/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.c # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given C Problem could not be shown: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 269 ms] (2) LLVM problem ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Name: __LABS_time initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: tupleStart initVal: (0,0) type: [2 x i8] addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: tupleEnd initVal: \01\01 type: [2 x i8] addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: I initVal: ((0,0),(0,0),(0,0)) type: [3 x [2 x i8]] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: Ltstamp initVal: ((0,0),(0,0),(0,0)) type: [3 x [2 x i8]] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: HinCnt initVal: (0,0,0) type: [3 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: Hin initVal: ((0,0),(0,0),(0,0)) type: [3 x [2 x i8]] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: HoutCnt initVal: (0,0,0) type: [3 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: Hout initVal: ((0,0),(0,0),(0,0)) type: [3 x [2 x i8]] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: Lvalue initVal: ((0,0),(0,0),(0,0)) type: [3 x [2 x i8]] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: pc initVal: ((0),(0),(0)) type: [3 x [1 x i8]] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_assume" returnParam: i32 parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "mod" linkageType: EXTERNALLY_VISIBLE returnParam: i8 signext parameters: (n i8 signext, m i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = alloca i8, align 1 %3 = alloca i8, align 1 store %n, %2 store %m, %3 %4 = load %2 %5 = sext i8 %4 to i32 %6 = icmp sge %5 0 br %6, %7, %20 7: %8 = load %2 %9 = sext i8 %8 to i32 %10 = load %2 %11 = sext i8 %10 to i32 %12 = load %3 %13 = sext i8 %12 to i32 %14 = sdiv %11 %13 %15 = load %3 %16 = sext i8 %15 to i32 %17 = mul %14 %16 %18 = sub %9 %17 %19 = trunc i32 %18 to i8 store %19, %1 br %36 20: %21 = load %3 %22 = sext i8 %21 to i32 %23 = load %2 %24 = sext i8 %23 to i32 %25 = load %2 %26 = sext i8 %25 to i32 %27 = load %3 %28 = sext i8 %27 to i32 %29 = sdiv %26 %28 %30 = load %3 %31 = sext i8 %30 to i32 %32 = mul %29 %31 %33 = sub %24 %32 %34 = add %22 %33 %35 = trunc i32 %34 to i8 store %35, %1 br %36 36: %37 = load %1 ret %37 *BasicFunctionTypename: "now" linkageType: EXTERNALLY_VISIBLE returnParam: i8 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = load @__LABS_time %2 = add %1 1 store %2, @__LABS_time ret %2 *BasicFunctionTypename: "link" linkageType: EXTERNALLY_VISIBLE returnParam: i1 zeroext parameters: (__LABS_link1 i8 zeroext, __LABS_link2 i8 zeroext, key i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = alloca i8, align 1 %3 = alloca i8, align 1 %__LABS_link = alloca i8, align 1 store %__LABS_link1, %1 store %__LABS_link2, %2 store %key, %3 store 0, %__LABS_link %4 = load %3 %5 = zext i8 %4 to i32 %6 = icmp sge %5 0 br %6, %7, %69 7: %8 = load %3 %9 = zext i8 %8 to i32 %10 = icmp sle %9 1 br %10, %11, %69 11: %12 = load %1 %13 = zext i8 %12 to i64 %14 = getelementptr @I, 0, %13 %15 = getelementptr %14, 0, 0 %16 = load %15 %17 = sext i8 %16 to i32 %18 = load %2 %19 = zext i8 %18 to i64 %20 = getelementptr @I, 0, %19 %21 = getelementptr %20, 0, 0 %22 = load %21 %23 = sext i8 %22 to i32 %24 = sub %17 %23 %25 = load %1 %26 = zext i8 %25 to i64 %27 = getelementptr @I, 0, %26 %28 = getelementptr %27, 0, 0 %29 = load %28 %30 = sext i8 %29 to i32 %31 = load %2 %32 = zext i8 %31 to i64 %33 = getelementptr @I, 0, %32 %34 = getelementptr %33, 0, 0 %35 = load %34 %36 = sext i8 %35 to i32 %37 = sub %30 %36 %38 = mul %24 %37 %39 = load %1 %40 = zext i8 %39 to i64 %41 = getelementptr @I, 0, %40 %42 = getelementptr %41, 0, 1 %43 = load %42 %44 = sext i8 %43 to i32 %45 = load %2 %46 = zext i8 %45 to i64 %47 = getelementptr @I, 0, %46 %48 = getelementptr %47, 0, 1 %49 = load %48 %50 = sext i8 %49 to i32 %51 = sub %44 %50 %52 = load %1 %53 = zext i8 %52 to i64 %54 = getelementptr @I, 0, %53 %55 = getelementptr %54, 0, 1 %56 = load %55 %57 = sext i8 %56 to i32 %58 = load %2 %59 = zext i8 %58 to i64 %60 = getelementptr @I, 0, %59 %61 = getelementptr %60, 0, 1 %62 = load %61 %63 = sext i8 %62 to i32 %64 = sub %57 %63 %65 = mul %51 %64 %66 = add %38 %65 %67 = icmp sle %66 25 %68 = zext i1 %67 to i8 store %68, %__LABS_link br %69 69: %70 = load %__LABS_link %71 = trunc i8 %70 to i1 ret %71 *BasicFunctionTypename: "timeof" linkageType: EXTERNALLY_VISIBLE returnParam: i8 zeroext parameters: (id i8 zeroext, key i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = alloca i8, align 1 store %id, %1 store %key, %2 %3 = load %2 %4 = zext i8 %3 to i64 %5 = getelementptr @tupleStart, 0, %4 %6 = load %5 %7 = zext i8 %6 to i64 %8 = load %1 %9 = zext i8 %8 to i64 %10 = getelementptr @Ltstamp, 0, %9 %11 = getelementptr %10, 0, %7 %12 = load %11 ret %12 *BasicFunctionTypename: "setHin" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (id i8 zeroext, key i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = alloca i8, align 1 store %id, %1 store %key, %2 %3 = load %1 %4 = zext i8 %3 to i64 %5 = getelementptr @HinCnt, 0, %4 %6 = load %5 %7 = zext i8 %6 to i32 %8 = load %2 %9 = zext i8 %8 to i64 %10 = getelementptr @tupleStart, 0, %9 %11 = load %10 %12 = zext i8 %11 to i64 %13 = load %1 %14 = zext i8 %13 to i64 %15 = getelementptr @Hin, 0, %14 %16 = getelementptr %15, 0, %12 %17 = load %16 %18 = trunc i8 %17 to i1 %19 = xor %18 1 %20 = zext i1 %19 to i32 %21 = add %7 %20 %22 = trunc i32 %21 to i8 %23 = load %1 %24 = zext i8 %23 to i64 %25 = getelementptr @HinCnt, 0, %24 store %22, %25 %26 = load %2 %27 = zext i8 %26 to i64 %28 = getelementptr @tupleStart, 0, %27 %29 = load %28 %30 = zext i8 %29 to i64 %31 = load %1 %32 = zext i8 %31 to i64 %33 = getelementptr @Hin, 0, %32 %34 = getelementptr %33, 0, %30 store 1, %34 ret void *BasicFunctionTypename: "clearHin" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (id i8 zeroext, key i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = alloca i8, align 1 store %id, %1 store %key, %2 %3 = load %1 %4 = zext i8 %3 to i64 %5 = getelementptr @HinCnt, 0, %4 %6 = load %5 %7 = zext i8 %6 to i32 %8 = load %2 %9 = zext i8 %8 to i64 %10 = getelementptr @tupleStart, 0, %9 %11 = load %10 %12 = zext i8 %11 to i64 %13 = load %1 %14 = zext i8 %13 to i64 %15 = getelementptr @Hin, 0, %14 %16 = getelementptr %15, 0, %12 %17 = load %16 %18 = trunc i8 %17 to i1 %19 = zext i1 %18 to i32 %20 = sub %7 %19 %21 = trunc i32 %20 to i8 %22 = load %1 %23 = zext i8 %22 to i64 %24 = getelementptr @HinCnt, 0, %23 store %21, %24 %25 = load %2 %26 = zext i8 %25 to i64 %27 = getelementptr @tupleStart, 0, %26 %28 = load %27 %29 = zext i8 %28 to i64 %30 = load %1 %31 = zext i8 %30 to i64 %32 = getelementptr @Hin, 0, %31 %33 = getelementptr %32, 0, %29 store 0, %33 ret void *BasicFunctionTypename: "setHout" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (id i8 zeroext, key i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = alloca i8, align 1 store %id, %1 store %key, %2 %3 = load %1 %4 = zext i8 %3 to i64 %5 = getelementptr @HoutCnt, 0, %4 %6 = load %5 %7 = zext i8 %6 to i32 %8 = load %2 %9 = zext i8 %8 to i64 %10 = getelementptr @tupleStart, 0, %9 %11 = load %10 %12 = zext i8 %11 to i64 %13 = load %1 %14 = zext i8 %13 to i64 %15 = getelementptr @Hout, 0, %14 %16 = getelementptr %15, 0, %12 %17 = load %16 %18 = trunc i8 %17 to i1 %19 = xor %18 1 %20 = zext i1 %19 to i32 %21 = add %7 %20 %22 = trunc i32 %21 to i8 %23 = load %1 %24 = zext i8 %23 to i64 %25 = getelementptr @HoutCnt, 0, %24 store %22, %25 %26 = load %2 %27 = zext i8 %26 to i64 %28 = getelementptr @tupleStart, 0, %27 %29 = load %28 %30 = zext i8 %29 to i64 %31 = load %1 %32 = zext i8 %31 to i64 %33 = getelementptr @Hout, 0, %32 %34 = getelementptr %33, 0, %30 store 1, %34 ret void *BasicFunctionTypename: "clearHout" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (id i8 zeroext, key i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = alloca i8, align 1 store %id, %1 store %key, %2 %3 = load %1 %4 = zext i8 %3 to i64 %5 = getelementptr @HoutCnt, 0, %4 %6 = load %5 %7 = zext i8 %6 to i32 %8 = load %2 %9 = zext i8 %8 to i64 %10 = getelementptr @tupleStart, 0, %9 %11 = load %10 %12 = zext i8 %11 to i64 %13 = load %1 %14 = zext i8 %13 to i64 %15 = getelementptr @Hout, 0, %14 %16 = getelementptr %15, 0, %12 %17 = load %16 %18 = trunc i8 %17 to i1 %19 = zext i1 %18 to i32 %20 = sub %7 %19 %21 = trunc i32 %20 to i8 %22 = load %1 %23 = zext i8 %22 to i64 %24 = getelementptr @HoutCnt, 0, %23 store %21, %24 %25 = load %2 %26 = zext i8 %25 to i64 %27 = getelementptr @tupleStart, 0, %26 %28 = load %27 %29 = zext i8 %28 to i64 %30 = load %1 %31 = zext i8 %30 to i64 %32 = getelementptr @Hout, 0, %31 %33 = getelementptr %32, 0, %29 store 0, %33 ret void *BasicFunctionTypename: "attr" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (id i8 zeroext, key i8 zeroext, value i8 signext, check i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = alloca i8, align 1 %3 = alloca i8, align 1 %4 = alloca i8, align 1 store %id, %1 store %key, %2 store %value, %3 %5 = zext i1 %check to i8 store %5, %4 %6 = load %4 %7 = trunc i8 %6 to i1 br %7, %8, %15 8: %9 = load %1 %10 = zext i8 %9 to i64 %11 = getelementptr @HoutCnt, 0, %10 %12 = load %11 %13 = zext i8 %12 to i32 %14 = icmp eq %13 0 br %15 15: %16 = phi [1, %0], [%14, %8] %17 = zext i1 %16 to i32 %18 = call i32 (...)* @__VERIFIER_assume(i32 %17) %19 = load %4 %20 = trunc i8 %19 to i1 br %20, %21, %28 21: %22 = load %1 %23 = zext i8 %22 to i64 %24 = getelementptr @HinCnt, 0, %23 %25 = load %24 %26 = zext i8 %25 to i32 %27 = icmp eq %26 0 br %28 28: %29 = phi [1, %15], [%27, %21] %30 = zext i1 %29 to i32 %31 = call i32 (...)* @__VERIFIER_assume(i32 %30) %32 = load %3 %33 = load %2 %34 = zext i8 %33 to i64 %35 = load %1 %36 = zext i8 %35 to i64 %37 = getelementptr @I, 0, %36 %38 = getelementptr %37, 0, %34 store %32, %38 %39 = call zeroext i8 @now() ret void *BasicFunctionTypename: "lstig" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (id i8 zeroext, key i8 zeroext, value i8 signext, check i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 %2 = alloca i8, align 1 %3 = alloca i8, align 1 %4 = alloca i8, align 1 store %id, %1 store %key, %2 store %value, %3 %5 = zext i1 %check to i8 store %5, %4 %6 = load %4 %7 = trunc i8 %6 to i1 br %7, %8, %15 8: %9 = load %1 %10 = zext i8 %9 to i64 %11 = getelementptr @HoutCnt, 0, %10 %12 = load %11 %13 = zext i8 %12 to i32 %14 = icmp eq %13 0 br %15 15: %16 = phi [1, %0], [%14, %8] %17 = zext i1 %16 to i32 %18 = call i32 (...)* @__VERIFIER_assume(i32 %17) %19 = load %4 %20 = trunc i8 %19 to i1 br %20, %21, %28 21: %22 = load %1 %23 = zext i8 %22 to i64 %24 = getelementptr @HinCnt, 0, %23 %25 = load %24 %26 = zext i8 %25 to i32 %27 = icmp eq %26 0 br %28 28: %29 = phi [1, %15], [%27, %21] %30 = zext i1 %29 to i32 %31 = call i32 (...)* @__VERIFIER_assume(i32 %30) %32 = load %3 %33 = load %2 %34 = zext i8 %33 to i64 %35 = load %1 %36 = zext i8 %35 to i64 %37 = getelementptr @Lvalue, 0, %36 %38 = getelementptr %37, 0, %34 store %32, %38 %39 = call zeroext i8 @now() %40 = load %2 %41 = zext i8 %40 to i64 %42 = getelementptr @tupleStart, 0, %41 %43 = load %42 %44 = zext i8 %43 to i64 %45 = load %1 %46 = zext i8 %45 to i64 %47 = getelementptr @Ltstamp, 0, %46 %48 = getelementptr %47, 0, %44 store %39, %48 %49 = load %1 %50 = load %2 Unnamed Call-Instruction = call BasicVoidType @setHout(i8 zeroext %49, i8 zeroext %50) ret void *BasicFunctionTypename: "confirm" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %guessedcomp = alloca i8, align 1 %guessedkey = alloca i8, align 1 %i = alloca i8, align 1 %t = alloca i8, align 1 %k = alloca i8, align 1 %next = alloca i8, align 1 %1 = call i32 @__VERIFIER_nondet_int() %2 = trunc i32 %1 to i8 store %2, %guessedcomp %3 = load %guessedcomp %4 = zext i8 %3 to i32 %5 = icmp slt %4 3 %6 = zext i1 %5 to i32 %7 = call i32 (...)* @__VERIFIER_assume(i32 %6) %8 = load %guessedcomp %9 = zext i8 %8 to i64 %10 = getelementptr @HinCnt, 0, %9 %11 = load %10 %12 = zext i8 %11 to i32 %13 = icmp sgt %12 0 %14 = zext i1 %13 to i32 %15 = call i32 (...)* @__VERIFIER_assume(i32 %14) %16 = call i32 @__VERIFIER_nondet_int() %17 = trunc i32 %16 to i8 store %17, %guessedkey %18 = load %guessedkey %19 = zext i8 %18 to i32 %20 = icmp slt %19 2 %21 = zext i1 %20 to i32 %22 = call i32 (...)* @__VERIFIER_assume(i32 %21) %23 = load %guessedkey %24 = zext i8 %23 to i64 %25 = load %guessedcomp %26 = zext i8 %25 to i64 %27 = getelementptr @Hin, 0, %26 %28 = getelementptr %27, 0, %24 %29 = load %28 %30 = trunc i8 %29 to i1 %31 = zext i1 %30 to i32 %32 = icmp eq %31 1 %33 = zext i1 %32 to i32 %34 = call i32 (...)* @__VERIFIER_assume(i32 %33) %35 = call i32 @__VERIFIER_nondet_int() %36 = trunc i32 %35 to i8 store %36, %i %37 = load %guessedcomp %38 = load %guessedkey %39 = call zeroext i8 @timeof(i8 zeroext %37, i8 zeroext %38) store %39, %t store 0, %i br %40 40: %41 = load %i %42 = zext i8 %41 to i32 %43 = icmp slt %42 3 br %43, %44, %130 44: %45 = load %guessedcomp %46 = zext i8 %45 to i32 %47 = load %i %48 = zext i8 %47 to i32 %49 = icmp ne %46 %48 br %49, %50, %126 50: %51 = load %i %52 = load %guessedkey %53 = call zeroext i8 @timeof(i8 zeroext %51, i8 zeroext %52) %54 = zext i8 %53 to i32 %55 = load %t %56 = zext i8 %55 to i32 %57 = icmp ne %54 %56 br %57, %58, %126 58: %59 = load %guessedcomp %60 = load %i %61 = load %guessedkey %62 = call zeroext i1 @link(i8 zeroext %59, i8 zeroext %60, i8 zeroext %61) br %62, %63, %126 63: %64 = load %i %65 = load %guessedkey Unnamed Call-Instruction = call BasicVoidType @setHout(i8 zeroext %64, i8 zeroext %65) %66 = load %i %67 = load %guessedkey %68 = call zeroext i8 @timeof(i8 zeroext %66, i8 zeroext %67) %69 = zext i8 %68 to i32 %70 = load %t %71 = zext i8 %70 to i32 %72 = icmp slt %69 %71 br %72, %73, %125 73: %74 = call i32 @__VERIFIER_nondet_int() %75 = trunc i32 %74 to i8 store %75, %k %76 = call i32 @__VERIFIER_nondet_int() %77 = trunc i32 %76 to i8 store %77, %next %78 = load %i %79 = load %guessedkey Unnamed Call-Instruction = call BasicVoidType @clearHin(i8 zeroext %78, i8 zeroext %79) store 0, %k br %80 80: %81 = load %k %82 = zext i8 %81 to i32 %83 = icmp slt %82 2 br %83, %84, %117 84: %85 = load %guessedkey %86 = zext i8 %85 to i32 %87 = load %k %88 = zext i8 %87 to i32 %89 = add %86 %88 %90 = trunc i32 %89 to i8 store %90, %next %91 = load %next %92 = zext i8 %91 to i32 %93 = load %guessedkey %94 = zext i8 %93 to i64 %95 = getelementptr @tupleEnd, 0, %94 %96 = load %95 %97 = zext i8 %96 to i32 %98 = icmp sle %92 %97 br %98, %99, %113 99: %100 = load %next %101 = zext i8 %100 to i64 %102 = load %guessedcomp %103 = zext i8 %102 to i64 %104 = getelementptr @Lvalue, 0, %103 %105 = getelementptr %104, 0, %101 %106 = load %105 %107 = load %next %108 = zext i8 %107 to i64 %109 = load %i %110 = zext i8 %109 to i64 %111 = getelementptr @Lvalue, 0, %110 %112 = getelementptr %111, 0, %108 store %106, %112 br %113 113: br %114 114: %115 = load %k %116 = add %115 1 store %116, %k br %80 117: %118 = load %t %119 = load %guessedkey %120 = zext i8 %119 to i64 %121 = load %i %122 = zext i8 %121 to i64 %123 = getelementptr @Ltstamp, 0, %122 %124 = getelementptr %123, 0, %120 store %118, %124 br %125 125: br %126 126: br %127 127: %128 = load %i %129 = add %128 1 store %129, %i br %40 130: %131 = load %guessedcomp %132 = load %guessedkey Unnamed Call-Instruction = call BasicVoidType @clearHin(i8 zeroext %131, i8 zeroext %132) ret void *BasicFunctionTypename: "propagate" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %guessedcomp = alloca i8, align 1 %guessedkey = alloca i8, align 1 %i = alloca i8, align 1 %t = alloca i8, align 1 %k = alloca i8, align 1 %next = alloca i8, align 1 %1 = call i32 @__VERIFIER_nondet_int() %2 = trunc i32 %1 to i8 store %2, %guessedcomp %3 = load %guessedcomp %4 = zext i8 %3 to i32 %5 = icmp slt %4 3 %6 = zext i1 %5 to i32 %7 = call i32 (...)* @__VERIFIER_assume(i32 %6) %8 = load %guessedcomp %9 = zext i8 %8 to i64 %10 = getelementptr @HoutCnt, 0, %9 %11 = load %10 %12 = zext i8 %11 to i32 %13 = icmp sgt %12 0 %14 = zext i1 %13 to i32 %15 = call i32 (...)* @__VERIFIER_assume(i32 %14) %16 = call i32 @__VERIFIER_nondet_int() %17 = trunc i32 %16 to i8 store %17, %guessedkey %18 = load %guessedkey %19 = zext i8 %18 to i32 %20 = icmp slt %19 2 %21 = zext i1 %20 to i32 %22 = call i32 (...)* @__VERIFIER_assume(i32 %21) %23 = load %guessedkey %24 = zext i8 %23 to i64 %25 = load %guessedcomp %26 = zext i8 %25 to i64 %27 = getelementptr @Hout, 0, %26 %28 = getelementptr %27, 0, %24 %29 = load %28 %30 = trunc i8 %29 to i1 %31 = zext i1 %30 to i32 %32 = icmp eq %31 1 %33 = zext i1 %32 to i32 %34 = call i32 (...)* @__VERIFIER_assume(i32 %33) %35 = call i32 @__VERIFIER_nondet_int() %36 = trunc i32 %35 to i8 store %36, %i %37 = load %guessedcomp %38 = load %guessedkey %39 = call zeroext i8 @timeof(i8 zeroext %37, i8 zeroext %38) store %39, %t store 0, %i br %40 40: %41 = load %i %42 = zext i8 %41 to i32 %43 = icmp slt %42 3 br %43, %44, %121 44: %45 = load %guessedcomp %46 = zext i8 %45 to i32 %47 = load %i %48 = zext i8 %47 to i32 %49 = icmp ne %46 %48 br %49, %50, %117 50: %51 = load %i %52 = load %guessedkey %53 = call zeroext i8 @timeof(i8 zeroext %51, i8 zeroext %52) %54 = zext i8 %53 to i32 %55 = load %t %56 = zext i8 %55 to i32 %57 = icmp slt %54 %56 br %57, %58, %117 58: %59 = load %guessedcomp %60 = load %i %61 = load %guessedkey %62 = call zeroext i1 @link(i8 zeroext %59, i8 zeroext %60, i8 zeroext %61) br %62, %63, %117 63: %64 = load %i %65 = load %guessedkey Unnamed Call-Instruction = call BasicVoidType @setHout(i8 zeroext %64, i8 zeroext %65) %66 = load %i %67 = load %guessedkey Unnamed Call-Instruction = call BasicVoidType @clearHin(i8 zeroext %66, i8 zeroext %67) %68 = call i32 @__VERIFIER_nondet_int() %69 = trunc i32 %68 to i8 store %69, %k %70 = call i32 @__VERIFIER_nondet_int() %71 = trunc i32 %70 to i8 store %71, %next store 0, %k br %72 72: %73 = load %k %74 = zext i8 %73 to i32 %75 = icmp slt %74 2 br %75, %76, %109 76: %77 = load %guessedkey %78 = zext i8 %77 to i32 %79 = load %k %80 = zext i8 %79 to i32 %81 = add %78 %80 %82 = trunc i32 %81 to i8 store %82, %next %83 = load %next %84 = zext i8 %83 to i32 %85 = load %guessedkey %86 = zext i8 %85 to i64 %87 = getelementptr @tupleEnd, 0, %86 %88 = load %87 %89 = zext i8 %88 to i32 %90 = icmp sle %84 %89 br %90, %91, %105 91: %92 = load %next %93 = zext i8 %92 to i64 %94 = load %guessedcomp %95 = zext i8 %94 to i64 %96 = getelementptr @Lvalue, 0, %95 %97 = getelementptr %96, 0, %93 %98 = load %97 %99 = load %next %100 = zext i8 %99 to i64 %101 = load %i %102 = zext i8 %101 to i64 %103 = getelementptr @Lvalue, 0, %102 %104 = getelementptr %103, 0, %100 store %98, %104 br %105 105: br %106 106: %107 = load %k %108 = add %107 1 store %108, %k br %72 109: %110 = load %t %111 = load %guessedkey %112 = zext i8 %111 to i64 %113 = load %i %114 = zext i8 %113 to i64 %115 = getelementptr @Ltstamp, 0, %114 %116 = getelementptr %115, 0, %112 store %110, %116 br %117 117: br %118 118: %119 = load %i %120 = add %119 1 store %120, %i br %40 121: %122 = load %guessedcomp %123 = load %guessedkey Unnamed Call-Instruction = call BasicVoidType @clearHout(i8 zeroext %122, i8 zeroext %123) ret void *BasicFunctionTypename: "init" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %_I = alloca [3 x [2 x i8]], align 1 %_pc = alloca [3 x [1 x i8]], align 1 %_Lvalue = alloca [3 x [2 x i8]], align 1 %i = alloca i8, align 1 %j = alloca i8, align 1 %1 = call i32 @__VERIFIER_nondet_int() %2 = trunc i32 %1 to i8 store %2, %i %3 = call i32 @__VERIFIER_nondet_int() %4 = trunc i32 %3 to i8 store %4, %j store 0, %i br %5 5: %6 = load %i %7 = zext i8 %6 to i32 %8 = icmp slt %7 3 br %8, %9, %71 9: store 0, %j br %10 10: %11 = load %j %12 = zext i8 %11 to i32 %13 = icmp slt %12 2 br %13, %14, %26 14: %15 = call i32 @__VERIFIER_nondet_int() %16 = trunc i32 %15 to i8 %17 = load %j %18 = zext i8 %17 to i64 %19 = load %i %20 = zext i8 %19 to i64 %21 = getelementptr %_I, 0, %20 %22 = getelementptr %21, 0, %18 store %16, %22 br %23 23: %24 = load %j %25 = add %24 1 store %25, %j br %10 26: store 0, %j br %27 27: %28 = load %j %29 = zext i8 %28 to i32 %30 = icmp slt %29 2 br %30, %31, %61 31: %32 = call i32 @__VERIFIER_nondet_int() %33 = trunc i32 %32 to i8 %34 = load %j %35 = zext i8 %34 to i64 %36 = load %i %37 = zext i8 %36 to i64 %38 = getelementptr %_Lvalue, 0, %37 %39 = getelementptr %38, 0, %35 store %33, %39 %40 = load %j %41 = zext i8 %40 to i64 %42 = load %i %43 = zext i8 %42 to i64 %44 = getelementptr @Ltstamp, 0, %43 %45 = getelementptr %44, 0, %41 store 0, %45 %46 = load %j %47 = zext i8 %46 to i64 %48 = load %i %49 = zext i8 %48 to i64 %50 = getelementptr @Hin, 0, %49 %51 = getelementptr %50, 0, %47 store 0, %51 %52 = load %j %53 = zext i8 %52 to i64 %54 = load %i %55 = zext i8 %54 to i64 %56 = getelementptr @Hout, 0, %55 %57 = getelementptr %56, 0, %53 store 0, %57 br %58 58: %59 = load %j %60 = add %59 1 store %60, %j br %27 61: %62 = load %i %63 = zext i8 %62 to i64 %64 = getelementptr @HinCnt, 0, %63 store 0, %64 %65 = load %i %66 = zext i8 %65 to i64 %67 = getelementptr @HoutCnt, 0, %66 store 0, %67 br %68 68: %69 = load %i %70 = add %69 1 store %70, %i br %5 71: %72 = getelementptr %_pc, 0, 0 %73 = getelementptr %72, 0, 0 store 2, %73 %74 = getelementptr %_pc, 0, 1 %75 = getelementptr %74, 0, 0 store 2, %75 %76 = getelementptr %_pc, 0, 2 %77 = getelementptr %76, 0, 0 store 2, %77 %78 = getelementptr %_Lvalue, 0, 0 %79 = getelementptr %78, 0, 0 %80 = load %79 %81 = sext i8 %80 to i32 %82 = icmp eq %81 -1 br %82, %89, %83 83: %84 = getelementptr %_Lvalue, 0, 0 %85 = getelementptr %84, 0, 0 %86 = load %85 %87 = sext i8 %86 to i32 %88 = icmp eq %87 1 br %89 89: %90 = phi [1, %71], [%88, %83] %91 = zext i1 %90 to i32 %92 = call i32 (...)* @__VERIFIER_assume(i32 %91) %93 = getelementptr %_Lvalue, 0, 1 %94 = getelementptr %93, 0, 0 %95 = load %94 %96 = sext i8 %95 to i32 %97 = icmp eq %96 -1 br %97, %104, %98 98: %99 = getelementptr %_Lvalue, 0, 1 %100 = getelementptr %99, 0, 0 %101 = load %100 %102 = sext i8 %101 to i32 %103 = icmp eq %102 1 br %104 104: %105 = phi [1, %89], [%103, %98] %106 = zext i1 %105 to i32 %107 = call i32 (...)* @__VERIFIER_assume(i32 %106) %108 = getelementptr %_Lvalue, 0, 2 %109 = getelementptr %108, 0, 0 %110 = load %109 %111 = sext i8 %110 to i32 %112 = icmp eq %111 -1 br %112, %119, %113 113: %114 = getelementptr %_Lvalue, 0, 2 %115 = getelementptr %114, 0, 0 %116 = load %115 %117 = sext i8 %116 to i32 %118 = icmp eq %117 1 br %119 119: %120 = phi [1, %104], [%118, %113] %121 = zext i1 %120 to i32 %122 = call i32 (...)* @__VERIFIER_assume(i32 %121) %123 = getelementptr %_Lvalue, 0, 0 %124 = getelementptr %123, 0, 1 %125 = load %124 %126 = sext i8 %125 to i32 %127 = icmp eq %126 -1 br %127, %134, %128 128: %129 = getelementptr %_Lvalue, 0, 0 %130 = getelementptr %129, 0, 1 %131 = load %130 %132 = sext i8 %131 to i32 %133 = icmp eq %132 1 br %134 134: %135 = phi [1, %119], [%133, %128] %136 = zext i1 %135 to i32 %137 = call i32 (...)* @__VERIFIER_assume(i32 %136) %138 = getelementptr %_Lvalue, 0, 1 %139 = getelementptr %138, 0, 1 %140 = load %139 %141 = sext i8 %140 to i32 %142 = icmp eq %141 -1 br %142, %149, %143 143: %144 = getelementptr %_Lvalue, 0, 1 %145 = getelementptr %144, 0, 1 %146 = load %145 %147 = sext i8 %146 to i32 %148 = icmp eq %147 1 br %149 149: %150 = phi [1, %134], [%148, %143] %151 = zext i1 %150 to i32 %152 = call i32 (...)* @__VERIFIER_assume(i32 %151) %153 = getelementptr %_Lvalue, 0, 2 %154 = getelementptr %153, 0, 1 %155 = load %154 %156 = sext i8 %155 to i32 %157 = icmp eq %156 -1 br %157, %164, %158 158: %159 = getelementptr %_Lvalue, 0, 2 %160 = getelementptr %159, 0, 1 %161 = load %160 %162 = sext i8 %161 to i32 %163 = icmp eq %162 1 br %164 164: %165 = phi [1, %149], [%163, %158] %166 = zext i1 %165 to i32 %167 = call i32 (...)* @__VERIFIER_assume(i32 %166) %168 = getelementptr %_I, 0, 0 %169 = getelementptr %168, 0, 0 %170 = load %169 %171 = sext i8 %170 to i32 %172 = icmp sge %171 0 br %172, %173, %179 173: %174 = getelementptr %_I, 0, 0 %175 = getelementptr %174, 0, 0 %176 = load %175 %177 = sext i8 %176 to i32 %178 = icmp slt %177 5 br %179 179: %180 = phi [0, %164], [%178, %173] %181 = zext i1 %180 to i32 %182 = call i32 (...)* @__VERIFIER_assume(i32 %181) %183 = getelementptr %_I, 0, 1 %184 = getelementptr %183, 0, 0 %185 = load %184 %186 = sext i8 %185 to i32 %187 = icmp sge %186 0 br %187, %188, %194 188: %189 = getelementptr %_I, 0, 1 %190 = getelementptr %189, 0, 0 %191 = load %190 %192 = sext i8 %191 to i32 %193 = icmp slt %192 5 br %194 194: %195 = phi [0, %179], [%193, %188] %196 = zext i1 %195 to i32 %197 = call i32 (...)* @__VERIFIER_assume(i32 %196) %198 = getelementptr %_I, 0, 2 %199 = getelementptr %198, 0, 0 %200 = load %199 %201 = sext i8 %200 to i32 %202 = icmp sge %201 0 br %202, %203, %209 203: %204 = getelementptr %_I, 0, 2 %205 = getelementptr %204, 0, 0 %206 = load %205 %207 = sext i8 %206 to i32 %208 = icmp slt %207 5 br %209 209: %210 = phi [0, %194], [%208, %203] %211 = zext i1 %210 to i32 %212 = call i32 (...)* @__VERIFIER_assume(i32 %211) %213 = getelementptr %_I, 0, 0 %214 = getelementptr %213, 0, 1 %215 = load %214 %216 = sext i8 %215 to i32 %217 = icmp sge %216 0 br %217, %218, %224 218: %219 = getelementptr %_I, 0, 0 %220 = getelementptr %219, 0, 1 %221 = load %220 %222 = sext i8 %221 to i32 %223 = icmp slt %222 5 br %224 224: %225 = phi [0, %209], [%223, %218] %226 = zext i1 %225 to i32 %227 = call i32 (...)* @__VERIFIER_assume(i32 %226) %228 = getelementptr %_I, 0, 1 %229 = getelementptr %228, 0, 1 %230 = load %229 %231 = sext i8 %230 to i32 %232 = icmp sge %231 0 br %232, %233, %239 233: %234 = getelementptr %_I, 0, 1 %235 = getelementptr %234, 0, 1 %236 = load %235 %237 = sext i8 %236 to i32 %238 = icmp slt %237 5 br %239 239: %240 = phi [0, %224], [%238, %233] %241 = zext i1 %240 to i32 %242 = call i32 (...)* @__VERIFIER_assume(i32 %241) %243 = getelementptr %_I, 0, 2 %244 = getelementptr %243, 0, 1 %245 = load %244 %246 = sext i8 %245 to i32 %247 = icmp sge %246 0 br %247, %248, %254 248: %249 = getelementptr %_I, 0, 2 %250 = getelementptr %249, 0, 1 %251 = load %250 %252 = sext i8 %251 to i32 %253 = icmp slt %252 5 br %254 254: %255 = phi [0, %239], [%253, %248] %256 = zext i1 %255 to i32 %257 = call i32 (...)* @__VERIFIER_assume(i32 %256) %258 = call zeroext i8 @now() %259 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4deef58d %260 = zext i8 %259 to i64 %261 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46da99fb, 0, %260 store %258, %261 %262 = call zeroext i8 @now() %263 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@59f2fe18 %264 = zext i8 %263 to i64 %265 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2d8209a2, 0, %264 store %262, %265 %266 = call zeroext i8 @now() %267 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@17fac302 %268 = zext i8 %267 to i64 %269 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5fd8547, 0, %268 store %266, %269 %270 = call zeroext i8 @now() %271 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4b31a9de %272 = zext i8 %271 to i64 %273 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@76437603, 0, %272 store %270, %273 %274 = call zeroext i8 @now() %275 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@37e0591a %276 = zext i8 %275 to i64 %277 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5e5e251c, 0, %276 store %274, %277 %278 = call zeroext i8 @now() %279 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@18e71850 %280 = zext i8 %279 to i64 %281 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@75f98621, 0, %280 store %278, %281 %282 = call zeroext i8 @now() store 0, %i br %283 283: %284 = load %i %285 = zext i8 %284 to i32 %286 = icmp slt %285 3 br %286, %287, %357 287: store 0, %j br %288 288: %289 = load %j %290 = zext i8 %289 to i32 %291 = icmp slt %290 1 br %291, %292, %309 292: %293 = load %j %294 = zext i8 %293 to i64 %295 = load %i %296 = zext i8 %295 to i64 %297 = getelementptr %_pc, 0, %296 %298 = getelementptr %297, 0, %294 %299 = load %298 %300 = load %j %301 = zext i8 %300 to i64 %302 = load %i %303 = zext i8 %302 to i64 %304 = getelementptr @pc, 0, %303 %305 = getelementptr %304, 0, %301 store %299, %305 br %306 306: %307 = load %j %308 = add %307 1 store %308, %j br %288 309: store 0, %j br %310 310: %311 = load %j %312 = zext i8 %311 to i32 %313 = icmp slt %312 2 br %313, %314, %331 314: %315 = load %j %316 = zext i8 %315 to i64 %317 = load %i %318 = zext i8 %317 to i64 %319 = getelementptr %_I, 0, %318 %320 = getelementptr %319, 0, %316 %321 = load %320 %322 = load %j %323 = zext i8 %322 to i64 %324 = load %i %325 = zext i8 %324 to i64 %326 = getelementptr @I, 0, %325 %327 = getelementptr %326, 0, %323 store %321, %327 br %328 328: %329 = load %j %330 = add %329 1 store %330, %j br %310 331: store 0, %j br %332 332: %333 = load %j %334 = zext i8 %333 to i32 %335 = icmp slt %334 2 br %335, %336, %353 336: %337 = load %j %338 = zext i8 %337 to i64 %339 = load %i %340 = zext i8 %339 to i64 %341 = getelementptr %_Lvalue, 0, %340 %342 = getelementptr %341, 0, %338 %343 = load %342 %344 = load %j %345 = zext i8 %344 to i64 %346 = load %i %347 = zext i8 %346 to i64 %348 = getelementptr @Lvalue, 0, %347 %349 = getelementptr %348, 0, %345 store %343, %349 br %350 350: %351 = load %j %352 = add %351 1 store %352, %j br %332 353: br %354 354: %355 = load %i %356 = add %355 1 store %356, %i br %283 357: ret void *BasicFunctionTypename: "_0_2" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (tid i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %val0 = alloca i8, align 1 %val1 = alloca i8, align 1 store %tid, %1 %2 = load %1 %3 = sext i32 %2 to i64 %4 = getelementptr @I, 0, %3 %5 = getelementptr %4, 0, 0 %6 = load %5 %7 = sext i8 %6 to i32 %8 = load %1 %9 = sext i32 %8 to i64 %10 = getelementptr @Lvalue, 0, %9 %11 = getelementptr %10, 0, 0 %12 = load %11 %13 = sext i8 %12 to i32 %14 = add %7 %13 %15 = trunc i32 %14 to i8 %16 = call signext i8 @mod(i8 signext %15, i8 signext 5) store %16, %val0 %17 = load %1 %18 = sext i32 %17 to i64 %19 = getelementptr @I, 0, %18 %20 = getelementptr %19, 0, 1 %21 = load %20 %22 = sext i8 %21 to i32 %23 = load %1 %24 = sext i32 %23 to i64 %25 = getelementptr @Lvalue, 0, %24 %26 = getelementptr %25, 0, 1 %27 = load %26 %28 = sext i8 %27 to i32 %29 = add %22 %28 %30 = trunc i32 %29 to i8 %31 = call signext i8 @mod(i8 signext %30, i8 signext 5) store %31, %val1 %32 = load %1 %33 = trunc i32 %32 to i8 %34 = load %val0 Unnamed Call-Instruction = call BasicVoidType @attr(i8 zeroext %33, i8 zeroext 0, i8 signext %34, i1 zeroext 1) %35 = load %1 %36 = trunc i32 %35 to i8 %37 = load %val1 Unnamed Call-Instruction = call BasicVoidType @attr(i8 zeroext %36, i8 zeroext 1, i8 signext %37, i1 zeroext 0) %38 = load %1 %39 = trunc i32 %38 to i8 Unnamed Call-Instruction = call BasicVoidType @setHin(i8 zeroext %39, i8 zeroext 0) %40 = load %1 %41 = trunc i32 %40 to i8 Unnamed Call-Instruction = call BasicVoidType @setHin(i8 zeroext %41, i8 zeroext 1) %42 = load %1 %43 = sext i32 %42 to i64 %44 = getelementptr @pc, 0, %43 %45 = getelementptr %44, 0, 0 store 2, %45 ret void *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %firstAgent = alloca i8, align 1 %propagate_or_confirm = alloca i8, align 1 store 0, %1 Unnamed Call-Instruction = call BasicVoidType @init() store 0, %firstAgent br %2 2: %3 = call i32 @__VERIFIER_nondet_int() %4 = icmp ne %3 0 br %4, %5, %31 5: %6 = load %firstAgent %7 = zext i8 %6 to i32 %8 = icmp slt %7 3 %9 = zext i1 %8 to i32 %10 = call i32 (...)* @__VERIFIER_assume(i32 %9) %11 = load %firstAgent %12 = zext i8 %11 to i64 %13 = getelementptr @pc, 0, %12 %14 = getelementptr %13, 0, 0 %15 = load %14 %16 = zext i8 %15 to i32 switch %16, %20 [2, %17] 17: %18 = load %firstAgent %19 = zext i8 %18 to i32 Unnamed Call-Instruction = call BasicVoidType @_0_2(i32 %19) br %22 20: %21 = call i32 (...)* @__VERIFIER_assume(i32 0) br %22 22: %23 = load %firstAgent %24 = zext i8 %23 to i32 %25 = icmp eq %24 2 br %25, %26, %27 26: store 0, %firstAgent br %30 27: %28 = load %firstAgent %29 = add %28 1 store %29, %firstAgent br %30 30: br %40 31: %32 = call i32 @__VERIFIER_nondet_int() %33 = icmp ne %32 0 %34 = zext i1 %33 to i8 store %34, %propagate_or_confirm %35 = load %propagate_or_confirm %36 = trunc i8 %35 to i1 br %36, %37, %38 37: Unnamed Call-Instruction = call BasicVoidType @propagate() br %39 38: Unnamed Call-Instruction = call BasicVoidType @confirm() br %39 39: br %40 40: %41 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4064390d %42 = sext i8 %41 to i32 %43 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6f3d82d8 %44 = sext i8 %43 to i32 %45 = icmp eq %42 %44 br %45, %46, %113 46: %47 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4f3832f7 %48 = sext i8 %47 to i32 %49 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@76c97dbf %50 = sext i8 %49 to i32 %51 = icmp eq %48 %50 br %51, %52, %113 52: %53 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@17048e3a %54 = sext i8 %53 to i32 %55 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@14ace540 %56 = sext i8 %55 to i32 %57 = icmp eq %54 %56 br %57, %58, %113 58: %59 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1a8dd2a8 %60 = sext i8 %59 to i32 %61 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@279470c3 %62 = sext i8 %61 to i32 %63 = icmp eq %60 %62 br %63, %64, %113 64: %65 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@14d25f55 %66 = sext i8 %65 to i32 %67 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@67a73e6a %68 = sext i8 %67 to i32 %69 = icmp eq %66 %68 br %69, %70, %113 70: %71 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@13cba8a4 %72 = sext i8 %71 to i32 %73 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@175dc076 %74 = sext i8 %73 to i32 %75 = icmp eq %72 %74 br %75, %76, %113 76: %77 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@11f31d3f %78 = sext i8 %77 to i32 %79 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4f793505 %80 = sext i8 %79 to i32 %81 = icmp eq %78 %80 br %81, %82, %113 82: %83 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1393ac6 %84 = sext i8 %83 to i32 %85 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@789e04e7 %86 = sext i8 %85 to i32 %87 = icmp eq %84 %86 br %87, %88, %113 88: %89 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@718df42e %90 = sext i8 %89 to i32 %91 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@77da3607 %92 = sext i8 %91 to i32 %93 = icmp eq %90 %92 br %93, %94, %113 94: %95 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3f7dcd30 %96 = sext i8 %95 to i32 %97 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@374c5f04 %98 = sext i8 %97 to i32 %99 = icmp eq %96 %98 br %99, %100, %113 100: %101 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@297ef147 %102 = sext i8 %101 to i32 %103 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@f329061 %104 = sext i8 %103 to i32 %105 = icmp eq %102 %104 br %105, %106, %113 106: %107 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5e77c8fa %108 = sext i8 %107 to i32 %109 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@b96084f %110 = sext i8 %109 to i32 %111 = icmp eq %108 %110 br %111, %112, %113 112: ret 0 113: br %2 Analyze Termination of all function calls matching the pattern: main()