/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/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, 266 ms] (2) LLVM problem ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/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: \00\00\00\00\04\04 type: [6 x i8] addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: tupleEnd initVal: \03\03\03\03\05\05 type: [6 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: Lvalue initVal: ((0,0,0,0,0,0),(0,0,0,0,0,0),(0,0,0,0,0,0)) type: [3 x [6 x i8]] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null Name: Ltstamp initVal: ((0,0,0,0,0,0),(0,0,0,0,0,0),(0,0,0,0,0,0)) type: [3 x [6 x i8]] addrSpace: null alignment: 16 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),(0,0,0,0,0,0),(0,0,0,0,0,0)) type: [3 x [6 x i8]] addrSpace: null alignment: 16 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),(0,0,0,0,0,0),(0,0,0,0,0,0)) type: [3 x [6 x i8]] addrSpace: null alignment: 16 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: "__abs" linkageType: EXTERNALLY_VISIBLE returnParam: i8 signext parameters: (x i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i8, align 1 store %x, %1 %2 = load %1 %3 = sext i8 %2 to i32 %4 = icmp sgt %3 0 br %4, %5, %8 5: %6 = load %1 %7 = sext i8 %6 to i32 br %12 8: %9 = load %1 %10 = sext i8 %9 to i32 %11 = sub 0 %10 br %12 12: %13 = phi [%7, %5], [%11, %8] %14 = trunc i32 %13 to i8 ret %14 *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 store %n, %1 store %m, %2 %3 = load %1 %4 = sext i8 %3 to i32 %5 = icmp sge %4 0 br %5, %6, %12 6: %7 = load %1 %8 = sext i8 %7 to i32 %9 = load %2 %10 = sext i8 %9 to i32 %11 = srem %8 %10 br %21 12: %13 = load %2 %14 = sext i8 %13 to i32 %15 = load %1 %16 = sext i8 %15 to i32 %17 = load %2 %18 = sext i8 %17 to i32 %19 = srem %16 %18 %20 = add %14 %19 br %21 21: %22 = phi [%11, %6], [%20, %12] %23 = trunc i32 %22 to i8 ret %23 *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 4 br %6, %7, %69 7: %8 = load %3 %9 = zext i8 %8 to i32 %10 = icmp sle %9 5 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 %93 69: %70 = load %3 %71 = zext i8 %70 to i32 %72 = icmp sge %71 0 br %72, %73, %92 73: %74 = load %3 %75 = zext i8 %74 to i32 %76 = icmp sle %75 3 br %76, %77, %92 77: %78 = load %1 %79 = zext i8 %78 to i64 %80 = getelementptr @Lvalue, 0, %79 %81 = getelementptr %80, 0, 0 %82 = load %81 %83 = sext i8 %82 to i32 %84 = load %2 %85 = zext i8 %84 to i64 %86 = getelementptr @Lvalue, 0, %85 %87 = getelementptr %86, 0, 0 %88 = load %87 %89 = sext i8 %88 to i32 %90 = icmp sge %83 %89 %91 = zext i1 %90 to i8 store %91, %__LABS_link br %92 92: br %93 93: %94 = load %__LABS_link %95 = trunc i8 %94 to i1 ret %95 *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 6 %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 4 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 6 %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 4 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 [6 x i8]], align 16 %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 6 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 8, %73 %74 = getelementptr %_pc, 0, 1 %75 = getelementptr %74, 0, 0 store 8, %75 %76 = getelementptr %_pc, 0, 2 %77 = getelementptr %76, 0, 0 store 8, %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 %83 = zext i1 %82 to i32 %84 = call i32 (...)* @__VERIFIER_assume(i32 %83) %85 = getelementptr %_Lvalue, 0, 1 %86 = getelementptr %85, 0, 0 %87 = load %86 %88 = sext i8 %87 to i32 %89 = icmp eq %88 1 %90 = zext i1 %89 to i32 %91 = call i32 (...)* @__VERIFIER_assume(i32 %90) %92 = getelementptr %_Lvalue, 0, 2 %93 = getelementptr %92, 0, 0 %94 = load %93 %95 = sext i8 %94 to i32 %96 = icmp eq %95 1 %97 = zext i1 %96 to i32 %98 = call i32 (...)* @__VERIFIER_assume(i32 %97) %99 = getelementptr %_Lvalue, 0, 0 %100 = getelementptr %99, 0, 1 %101 = load %100 %102 = sext i8 %101 to i32 %103 = icmp eq %102 0 %104 = zext i1 %103 to i32 %105 = call i32 (...)* @__VERIFIER_assume(i32 %104) %106 = getelementptr %_Lvalue, 0, 1 %107 = getelementptr %106, 0, 1 %108 = load %107 %109 = sext i8 %108 to i32 %110 = icmp eq %109 1 %111 = zext i1 %110 to i32 %112 = call i32 (...)* @__VERIFIER_assume(i32 %111) %113 = getelementptr %_Lvalue, 0, 2 %114 = getelementptr %113, 0, 1 %115 = load %114 %116 = sext i8 %115 to i32 %117 = icmp eq %116 2 %118 = zext i1 %117 to i32 %119 = call i32 (...)* @__VERIFIER_assume(i32 %118) %120 = getelementptr %_Lvalue, 0, 0 %121 = getelementptr %120, 0, 2 %122 = load %121 %123 = sext i8 %122 to i32 %124 = icmp eq %123 -1 %125 = zext i1 %124 to i32 %126 = call i32 (...)* @__VERIFIER_assume(i32 %125) %127 = getelementptr %_Lvalue, 0, 1 %128 = getelementptr %127, 0, 2 %129 = load %128 %130 = sext i8 %129 to i32 %131 = icmp eq %130 -1 %132 = zext i1 %131 to i32 %133 = call i32 (...)* @__VERIFIER_assume(i32 %132) %134 = getelementptr %_Lvalue, 0, 2 %135 = getelementptr %134, 0, 2 %136 = load %135 %137 = sext i8 %136 to i32 %138 = icmp eq %137 -1 %139 = zext i1 %138 to i32 %140 = call i32 (...)* @__VERIFIER_assume(i32 %139) %141 = getelementptr %_Lvalue, 0, 0 %142 = getelementptr %141, 0, 3 %143 = load %142 %144 = sext i8 %143 to i32 %145 = icmp eq %144 -1 %146 = zext i1 %145 to i32 %147 = call i32 (...)* @__VERIFIER_assume(i32 %146) %148 = getelementptr %_Lvalue, 0, 1 %149 = getelementptr %148, 0, 3 %150 = load %149 %151 = sext i8 %150 to i32 %152 = icmp eq %151 -1 %153 = zext i1 %152 to i32 %154 = call i32 (...)* @__VERIFIER_assume(i32 %153) %155 = getelementptr %_Lvalue, 0, 2 %156 = getelementptr %155, 0, 3 %157 = load %156 %158 = sext i8 %157 to i32 %159 = icmp eq %158 -1 %160 = zext i1 %159 to i32 %161 = call i32 (...)* @__VERIFIER_assume(i32 %160) %162 = getelementptr %_Lvalue, 0, 0 %163 = getelementptr %162, 0, 4 %164 = load %163 %165 = sext i8 %164 to i32 %166 = icmp eq %165 -1 br %166, %173, %167 167: %168 = getelementptr %_Lvalue, 0, 0 %169 = getelementptr %168, 0, 4 %170 = load %169 %171 = sext i8 %170 to i32 %172 = icmp eq %171 1 br %173 173: %174 = phi [1, %71], [%172, %167] %175 = zext i1 %174 to i32 %176 = call i32 (...)* @__VERIFIER_assume(i32 %175) %177 = getelementptr %_Lvalue, 0, 1 %178 = getelementptr %177, 0, 4 %179 = load %178 %180 = sext i8 %179 to i32 %181 = icmp eq %180 -1 br %181, %188, %182 182: %183 = getelementptr %_Lvalue, 0, 1 %184 = getelementptr %183, 0, 4 %185 = load %184 %186 = sext i8 %185 to i32 %187 = icmp eq %186 1 br %188 188: %189 = phi [1, %173], [%187, %182] %190 = zext i1 %189 to i32 %191 = call i32 (...)* @__VERIFIER_assume(i32 %190) %192 = getelementptr %_Lvalue, 0, 2 %193 = getelementptr %192, 0, 4 %194 = load %193 %195 = sext i8 %194 to i32 %196 = icmp eq %195 -1 br %196, %203, %197 197: %198 = getelementptr %_Lvalue, 0, 2 %199 = getelementptr %198, 0, 4 %200 = load %199 %201 = sext i8 %200 to i32 %202 = icmp eq %201 1 br %203 203: %204 = phi [1, %188], [%202, %197] %205 = zext i1 %204 to i32 %206 = call i32 (...)* @__VERIFIER_assume(i32 %205) %207 = getelementptr %_Lvalue, 0, 0 %208 = getelementptr %207, 0, 5 %209 = load %208 %210 = sext i8 %209 to i32 %211 = icmp eq %210 -1 br %211, %218, %212 212: %213 = getelementptr %_Lvalue, 0, 0 %214 = getelementptr %213, 0, 5 %215 = load %214 %216 = sext i8 %215 to i32 %217 = icmp eq %216 1 br %218 218: %219 = phi [1, %203], [%217, %212] %220 = zext i1 %219 to i32 %221 = call i32 (...)* @__VERIFIER_assume(i32 %220) %222 = getelementptr %_Lvalue, 0, 1 %223 = getelementptr %222, 0, 5 %224 = load %223 %225 = sext i8 %224 to i32 %226 = icmp eq %225 -1 br %226, %233, %227 227: %228 = getelementptr %_Lvalue, 0, 1 %229 = getelementptr %228, 0, 5 %230 = load %229 %231 = sext i8 %230 to i32 %232 = icmp eq %231 1 br %233 233: %234 = phi [1, %218], [%232, %227] %235 = zext i1 %234 to i32 %236 = call i32 (...)* @__VERIFIER_assume(i32 %235) %237 = getelementptr %_Lvalue, 0, 2 %238 = getelementptr %237, 0, 5 %239 = load %238 %240 = sext i8 %239 to i32 %241 = icmp eq %240 -1 br %241, %248, %242 242: %243 = getelementptr %_Lvalue, 0, 2 %244 = getelementptr %243, 0, 5 %245 = load %244 %246 = sext i8 %245 to i32 %247 = icmp eq %246 1 br %248 248: %249 = phi [1, %233], [%247, %242] %250 = zext i1 %249 to i32 %251 = call i32 (...)* @__VERIFIER_assume(i32 %250) %252 = getelementptr %_I, 0, 0 %253 = getelementptr %252, 0, 0 %254 = load %253 %255 = sext i8 %254 to i32 %256 = icmp sge %255 0 br %256, %257, %263 257: %258 = getelementptr %_I, 0, 0 %259 = getelementptr %258, 0, 0 %260 = load %259 %261 = sext i8 %260 to i32 %262 = icmp slt %261 5 br %263 263: %264 = phi [0, %248], [%262, %257] %265 = zext i1 %264 to i32 %266 = call i32 (...)* @__VERIFIER_assume(i32 %265) %267 = getelementptr %_I, 0, 1 %268 = getelementptr %267, 0, 0 %269 = load %268 %270 = sext i8 %269 to i32 %271 = icmp sge %270 0 br %271, %272, %278 272: %273 = getelementptr %_I, 0, 1 %274 = getelementptr %273, 0, 0 %275 = load %274 %276 = sext i8 %275 to i32 %277 = icmp slt %276 5 br %278 278: %279 = phi [0, %263], [%277, %272] %280 = zext i1 %279 to i32 %281 = call i32 (...)* @__VERIFIER_assume(i32 %280) %282 = getelementptr %_I, 0, 2 %283 = getelementptr %282, 0, 0 %284 = load %283 %285 = sext i8 %284 to i32 %286 = icmp sge %285 0 br %286, %287, %293 287: %288 = getelementptr %_I, 0, 2 %289 = getelementptr %288, 0, 0 %290 = load %289 %291 = sext i8 %290 to i32 %292 = icmp slt %291 5 br %293 293: %294 = phi [0, %278], [%292, %287] %295 = zext i1 %294 to i32 %296 = call i32 (...)* @__VERIFIER_assume(i32 %295) %297 = getelementptr %_I, 0, 0 %298 = getelementptr %297, 0, 1 %299 = load %298 %300 = sext i8 %299 to i32 %301 = icmp sge %300 0 br %301, %302, %308 302: %303 = getelementptr %_I, 0, 0 %304 = getelementptr %303, 0, 1 %305 = load %304 %306 = sext i8 %305 to i32 %307 = icmp slt %306 5 br %308 308: %309 = phi [0, %293], [%307, %302] %310 = zext i1 %309 to i32 %311 = call i32 (...)* @__VERIFIER_assume(i32 %310) %312 = getelementptr %_I, 0, 1 %313 = getelementptr %312, 0, 1 %314 = load %313 %315 = sext i8 %314 to i32 %316 = icmp sge %315 0 br %316, %317, %323 317: %318 = getelementptr %_I, 0, 1 %319 = getelementptr %318, 0, 1 %320 = load %319 %321 = sext i8 %320 to i32 %322 = icmp slt %321 5 br %323 323: %324 = phi [0, %308], [%322, %317] %325 = zext i1 %324 to i32 %326 = call i32 (...)* @__VERIFIER_assume(i32 %325) %327 = getelementptr %_I, 0, 2 %328 = getelementptr %327, 0, 1 %329 = load %328 %330 = sext i8 %329 to i32 %331 = icmp sge %330 0 br %331, %332, %338 332: %333 = getelementptr %_I, 0, 2 %334 = getelementptr %333, 0, 1 %335 = load %334 %336 = sext i8 %335 to i32 %337 = icmp slt %336 5 br %338 338: %339 = phi [0, %323], [%337, %332] %340 = zext i1 %339 to i32 %341 = call i32 (...)* @__VERIFIER_assume(i32 %340) %342 = call zeroext i8 @now() %343 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@761759df %344 = zext i8 %343 to i64 %345 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7be71713, 0, %344 store %342, %345 %346 = call zeroext i8 @now() %347 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@cc3a128 %348 = zext i8 %347 to i64 %349 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@345aa2b0, 0, %348 store %346, %349 %350 = call zeroext i8 @now() %351 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@78cfdc45 %352 = zext i8 %351 to i64 %353 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bd303c0, 0, %352 store %350, %353 %354 = call zeroext i8 @now() %355 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2a082f73 %356 = zext i8 %355 to i64 %357 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4ba647a0, 0, %356 store %354, %357 %358 = call zeroext i8 @now() %359 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4d8d8765 %360 = zext i8 %359 to i64 %361 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6ee35017, 0, %360 store %358, %361 %362 = call zeroext i8 @now() %363 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5fb990f %364 = zext i8 %363 to i64 %365 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7c994557, 0, %364 store %362, %365 %366 = call zeroext i8 @now() %367 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5d8e430e %368 = zext i8 %367 to i64 %369 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2999c340, 0, %368 store %366, %369 %370 = call zeroext i8 @now() %371 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7073149d %372 = zext i8 %371 to i64 %373 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46f64439, 0, %372 store %370, %373 %374 = call zeroext i8 @now() %375 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@694ff9da %376 = zext i8 %375 to i64 %377 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@e2ba470, 0, %376 store %374, %377 %378 = call zeroext i8 @now() %379 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@66948ed4 %380 = zext i8 %379 to i64 %381 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1237d9b3, 0, %380 store %378, %381 %382 = call zeroext i8 @now() %383 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4207306 %384 = zext i8 %383 to i64 %385 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@577b4fd6, 0, %384 store %382, %385 %386 = call zeroext i8 @now() %387 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@155b99c3 %388 = zext i8 %387 to i64 %389 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@390d209a, 0, %388 store %386, %389 %390 = call zeroext i8 @now() %391 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3e32ccfe %392 = zext i8 %391 to i64 %393 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@333a3111, 0, %392 store %390, %393 %394 = call zeroext i8 @now() %395 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7a662334 %396 = zext i8 %395 to i64 %397 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2abfc512, 0, %396 store %394, %397 %398 = call zeroext i8 @now() %399 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@242a987 %400 = zext i8 %399 to i64 %401 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6012b267, 0, %400 store %398, %401 %402 = call zeroext i8 @now() %403 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ba642d2 %404 = zext i8 %403 to i64 %405 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7fe595e1, 0, %404 store %402, %405 %406 = call zeroext i8 @now() %407 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@687c050b %408 = zext i8 %407 to i64 %409 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1d0813e9, 0, %408 store %406, %409 %410 = call zeroext i8 @now() %411 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4217248 %412 = zext i8 %411 to i64 %413 = getelementptr aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5738b5b0, 0, %412 store %410, %413 %414 = call zeroext i8 @now() store 0, %i br %415 415: %416 = load %i %417 = zext i8 %416 to i32 %418 = icmp slt %417 3 br %418, %419, %489 419: store 0, %j br %420 420: %421 = load %j %422 = zext i8 %421 to i32 %423 = icmp slt %422 1 br %423, %424, %441 424: %425 = load %j %426 = zext i8 %425 to i64 %427 = load %i %428 = zext i8 %427 to i64 %429 = getelementptr %_pc, 0, %428 %430 = getelementptr %429, 0, %426 %431 = load %430 %432 = load %j %433 = zext i8 %432 to i64 %434 = load %i %435 = zext i8 %434 to i64 %436 = getelementptr @pc, 0, %435 %437 = getelementptr %436, 0, %433 store %431, %437 br %438 438: %439 = load %j %440 = add %439 1 store %440, %j br %420 441: store 0, %j br %442 442: %443 = load %j %444 = zext i8 %443 to i32 %445 = icmp slt %444 2 br %445, %446, %463 446: %447 = load %j %448 = zext i8 %447 to i64 %449 = load %i %450 = zext i8 %449 to i64 %451 = getelementptr %_I, 0, %450 %452 = getelementptr %451, 0, %448 %453 = load %452 %454 = load %j %455 = zext i8 %454 to i64 %456 = load %i %457 = zext i8 %456 to i64 %458 = getelementptr @I, 0, %457 %459 = getelementptr %458, 0, %455 store %453, %459 br %460 460: %461 = load %j %462 = add %461 1 store %462, %j br %442 463: store 0, %j br %464 464: %465 = load %j %466 = zext i8 %465 to i32 %467 = icmp slt %466 6 br %467, %468, %485 468: %469 = load %j %470 = zext i8 %469 to i64 %471 = load %i %472 = zext i8 %471 to i64 %473 = getelementptr %_Lvalue, 0, %472 %474 = getelementptr %473, 0, %470 %475 = load %474 %476 = load %j %477 = zext i8 %476 to i64 %478 = load %i %479 = zext i8 %478 to i64 %480 = getelementptr @Lvalue, 0, %479 %481 = getelementptr %480, 0, %477 store %475, %481 br %482 482: %483 = load %j %484 = add %483 1 store %484, %j br %464 485: br %486 486: %487 = load %i %488 = add %487 1 store %488, %i br %415 489: 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 @Lvalue, 0, %3 %5 = getelementptr %4, 0, 1 %6 = load %5 %7 = sext i8 %6 to i32 %8 = load %1 %9 = icmp eq %7 %8 %10 = zext i1 %9 to i32 %11 = call i32 (...)* @__VERIFIER_assume(i32 %10) %12 = load %1 %13 = sext i32 %12 to i64 %14 = getelementptr @I, 0, %13 %15 = getelementptr %14, 0, 0 %16 = load %15 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 store %21, %val1 %22 = load %1 %23 = trunc i32 %22 to i8 %24 = load %val0 Unnamed Call-Instruction = call BasicVoidType @lstig(i8 zeroext %23, i8 zeroext 2, i8 signext %24, i1 zeroext 1) %25 = load %1 %26 = trunc i32 %25 to i8 %27 = load %val1 Unnamed Call-Instruction = call BasicVoidType @lstig(i8 zeroext %26, i8 zeroext 3, i8 signext %27, i1 zeroext 0) %28 = load %1 %29 = trunc i32 %28 to i8 Unnamed Call-Instruction = call BasicVoidType @setHin(i8 zeroext %29, i8 zeroext 1) %30 = load %1 %31 = sext i32 %30 to i64 %32 = getelementptr @pc, 0, %31 %33 = getelementptr %32, 0, 0 store 8, %33 ret void *BasicFunctionTypename: "_0_3" 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 store %tid, %1 %2 = load %1 %3 = sext i32 %2 to i64 %4 = getelementptr @I, 0, %3 %5 = getelementptr %4, 0, 1 %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, 3 %12 = load %11 %13 = sext i8 %12 to i32 %14 = sub %7 %13 %15 = trunc i32 %14 to i8 %16 = call signext i8 @__abs(i8 signext %15) %17 = sext i8 %16 to i32 %18 = icmp sgt %17 5 %19 = zext i1 %18 to i32 %20 = call i32 (...)* @__VERIFIER_assume(i32 %19) %21 = load %1 %22 = sext i32 %21 to i64 %23 = getelementptr @Lvalue, 0, %22 %24 = getelementptr %23, 0, 3 %25 = load %24 %26 = sext i8 %25 to i32 %27 = load %1 %28 = sext i32 %27 to i64 %29 = getelementptr @I, 0, %28 %30 = getelementptr %29, 0, 1 %31 = load %30 %32 = sext i8 %31 to i32 %33 = sub %26 %32 %34 = load %1 %35 = sext i32 %34 to i64 %36 = getelementptr @Lvalue, 0, %35 %37 = getelementptr %36, 0, 3 %38 = load %37 %39 = sext i8 %38 to i32 %40 = load %1 %41 = sext i32 %40 to i64 %42 = getelementptr @I, 0, %41 %43 = getelementptr %42, 0, 1 %44 = load %43 %45 = sext i8 %44 to i32 %46 = sub %39 %45 %47 = trunc i32 %46 to i8 %48 = call signext i8 @__abs(i8 signext %47) %49 = sext i8 %48 to i32 %50 = sdiv %33 %49 %51 = trunc i32 %50 to i8 store %51, %val0 %52 = load %1 %53 = trunc i32 %52 to i8 %54 = load %val0 Unnamed Call-Instruction = call BasicVoidType @lstig(i8 zeroext %53, i8 zeroext 5, i8 signext %54, i1 zeroext 1) %55 = load %1 %56 = trunc i32 %55 to i8 Unnamed Call-Instruction = call BasicVoidType @setHin(i8 zeroext %56, i8 zeroext 3) %57 = load %1 %58 = sext i32 %57 to i64 %59 = getelementptr @pc, 0, %58 %60 = getelementptr %59, 0, 0 store 8, %60 ret void *BasicFunctionTypename: "_0_4" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (tid i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store %tid, %1 %2 = load %1 %3 = sext i32 %2 to i64 %4 = getelementptr @HoutCnt, 0, %3 %5 = load %4 %6 = zext i8 %5 to i32 %7 = icmp eq %6 0 br %7, %8, %15 8: %9 = load %1 %10 = sext i32 %9 to i64 %11 = getelementptr @HinCnt, 0, %10 %12 = load %11 %13 = zext i8 %12 to i32 %14 = icmp eq %13 0 br %15 15: %16 = phi [0, %0], [%14, %8] %17 = zext i1 %16 to i32 %18 = call i32 (...)* @__VERIFIER_assume(i32 %17) %19 = load %1 %20 = sext i32 %19 to i64 %21 = getelementptr @I, 0, %20 %22 = getelementptr %21, 0, 1 %23 = load %22 %24 = sext i8 %23 to i32 %25 = load %1 %26 = sext i32 %25 to i64 %27 = getelementptr @Lvalue, 0, %26 %28 = getelementptr %27, 0, 3 %29 = load %28 %30 = sext i8 %29 to i32 %31 = sub %24 %30 %32 = trunc i32 %31 to i8 %33 = call signext i8 @__abs(i8 signext %32) %34 = sext i8 %33 to i32 %35 = icmp sle %34 5 %36 = zext i1 %35 to i32 %37 = call i32 (...)* @__VERIFIER_assume(i32 %36) %38 = load %1 %39 = trunc i32 %38 to i8 Unnamed Call-Instruction = call BasicVoidType @setHin(i8 zeroext %39, i8 zeroext 3) %40 = load %1 %41 = sext i32 %40 to i64 %42 = getelementptr @pc, 0, %41 %43 = getelementptr %42, 0, 0 store 8, %43 ret void *BasicFunctionTypename: "_0_5" 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 %pc0 = 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, 2 %12 = load %11 %13 = sext i8 %12 to i32 %14 = sub %7 %13 %15 = trunc i32 %14 to i8 %16 = call signext i8 @__abs(i8 signext %15) %17 = sext i8 %16 to i32 %18 = icmp sgt %17 5 %19 = zext i1 %18 to i32 %20 = call i32 (...)* @__VERIFIER_assume(i32 %19) %21 = load %1 %22 = sext i32 %21 to i64 %23 = getelementptr @Lvalue, 0, %22 %24 = getelementptr %23, 0, 2 %25 = load %24 %26 = sext i8 %25 to i32 %27 = load %1 %28 = sext i32 %27 to i64 %29 = getelementptr @I, 0, %28 %30 = getelementptr %29, 0, 0 %31 = load %30 %32 = sext i8 %31 to i32 %33 = sub %26 %32 %34 = load %1 %35 = sext i32 %34 to i64 %36 = getelementptr @Lvalue, 0, %35 %37 = getelementptr %36, 0, 2 %38 = load %37 %39 = sext i8 %38 to i32 %40 = load %1 %41 = sext i32 %40 to i64 %42 = getelementptr @I, 0, %41 %43 = getelementptr %42, 0, 0 %44 = load %43 %45 = sext i8 %44 to i32 %46 = sub %39 %45 %47 = trunc i32 %46 to i8 %48 = call signext i8 @__abs(i8 signext %47) %49 = sext i8 %48 to i32 %50 = sdiv %33 %49 %51 = trunc i32 %50 to i8 store %51, %val0 %52 = load %1 %53 = trunc i32 %52 to i8 %54 = load %val0 Unnamed Call-Instruction = call BasicVoidType @lstig(i8 zeroext %53, i8 zeroext 4, i8 signext %54, i1 zeroext 1) %55 = load %1 %56 = trunc i32 %55 to i8 Unnamed Call-Instruction = call BasicVoidType @setHin(i8 zeroext %56, i8 zeroext 2) %57 = call i32 @__VERIFIER_nondet_int() %58 = trunc i32 %57 to i8 store %58, %pc0 %59 = load %pc0 %60 = zext i8 %59 to i32 %61 = icmp eq %60 3 br %61, %66, %62 62: %63 = load %pc0 %64 = zext i8 %63 to i32 %65 = icmp eq %64 4 br %66 66: %67 = phi [1, %0], [%65, %62] %68 = zext i1 %67 to i32 %69 = call i32 (...)* @__VERIFIER_assume(i32 %68) %70 = load %pc0 %71 = load %1 %72 = sext i32 %71 to i64 %73 = getelementptr @pc, 0, %72 %74 = getelementptr %73, 0, 0 store %70, %74 ret void *BasicFunctionTypename: "_0_6" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (tid i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %pc0 = alloca i8, align 1 store %tid, %1 %2 = load %1 %3 = sext i32 %2 to i64 %4 = getelementptr @HoutCnt, 0, %3 %5 = load %4 %6 = zext i8 %5 to i32 %7 = icmp eq %6 0 br %7, %8, %15 8: %9 = load %1 %10 = sext i32 %9 to i64 %11 = getelementptr @HinCnt, 0, %10 %12 = load %11 %13 = zext i8 %12 to i32 %14 = icmp eq %13 0 br %15 15: %16 = phi [0, %0], [%14, %8] %17 = zext i1 %16 to i32 %18 = call i32 (...)* @__VERIFIER_assume(i32 %17) %19 = load %1 %20 = sext i32 %19 to i64 %21 = getelementptr @I, 0, %20 %22 = getelementptr %21, 0, 0 %23 = load %22 %24 = sext i8 %23 to i32 %25 = load %1 %26 = sext i32 %25 to i64 %27 = getelementptr @Lvalue, 0, %26 %28 = getelementptr %27, 0, 2 %29 = load %28 %30 = sext i8 %29 to i32 %31 = sub %24 %30 %32 = trunc i32 %31 to i8 %33 = call signext i8 @__abs(i8 signext %32) %34 = sext i8 %33 to i32 %35 = icmp sle %34 5 %36 = zext i1 %35 to i32 %37 = call i32 (...)* @__VERIFIER_assume(i32 %36) %38 = load %1 %39 = trunc i32 %38 to i8 Unnamed Call-Instruction = call BasicVoidType @setHin(i8 zeroext %39, i8 zeroext 2) %40 = call i32 @__VERIFIER_nondet_int() %41 = trunc i32 %40 to i8 store %41, %pc0 %42 = load %pc0 %43 = zext i8 %42 to i32 %44 = icmp eq %43 3 br %44, %49, %45 45: %46 = load %pc0 %47 = zext i8 %46 to i32 %48 = icmp eq %47 4 br %49 49: %50 = phi [1, %15], [%48, %45] %51 = zext i1 %50 to i32 %52 = call i32 (...)* @__VERIFIER_assume(i32 %51) %53 = load %pc0 %54 = load %1 %55 = sext i32 %54 to i64 %56 = getelementptr @pc, 0, %55 %57 = getelementptr %56, 0, 0 store %53, %57 ret void *BasicFunctionTypename: "_0_7" 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 %pc0 = alloca i8, align 1 store %tid, %1 %2 = load %1 %3 = sext i32 %2 to i64 %4 = getelementptr @Lvalue, 0, %3 %5 = getelementptr %4, 0, 1 %6 = load %5 %7 = sext i8 %6 to i32 %8 = load %1 %9 = icmp ne %7 %8 %10 = zext i1 %9 to i32 %11 = call i32 (...)* @__VERIFIER_assume(i32 %10) %12 = load %1 %13 = sext i32 %12 to i64 %14 = getelementptr @Lvalue, 0, %13 %15 = getelementptr %14, 0, 0 %16 = load %15 %17 = sext i8 %16 to i32 %18 = add %17 1 %19 = trunc i32 %18 to i8 store %19, %val0 %20 = load %1 %21 = trunc i32 %20 to i8 %22 = load %val0 Unnamed Call-Instruction = call BasicVoidType @lstig(i8 zeroext %21, i8 zeroext 0, i8 signext %22, i1 zeroext 1) %23 = load %1 %24 = trunc i32 %23 to i8 Unnamed Call-Instruction = call BasicVoidType @setHin(i8 zeroext %24, i8 zeroext 0) %25 = load %1 %26 = trunc i32 %25 to i8 Unnamed Call-Instruction = call BasicVoidType @setHin(i8 zeroext %26, i8 zeroext 1) %27 = call i32 @__VERIFIER_nondet_int() %28 = trunc i32 %27 to i8 store %28, %pc0 %29 = load %pc0 %30 = zext i8 %29 to i32 %31 = icmp eq %30 5 br %31, %36, %32 32: %33 = load %pc0 %34 = zext i8 %33 to i32 %35 = icmp eq %34 6 br %36 36: %37 = phi [1, %0], [%35, %32] %38 = zext i1 %37 to i32 %39 = call i32 (...)* @__VERIFIER_assume(i32 %38) %40 = load %pc0 %41 = load %1 %42 = sext i32 %41 to i64 %43 = getelementptr @pc, 0, %42 %44 = getelementptr %43, 0, 0 store %40, %44 ret void *BasicFunctionTypename: "_0_8" 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 %pc0 = 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, 4 %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, 5 %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 4) %40 = load %1 %41 = trunc i32 %40 to i8 Unnamed Call-Instruction = call BasicVoidType @setHin(i8 zeroext %41, i8 zeroext 5) %42 = call i32 @__VERIFIER_nondet_int() %43 = trunc i32 %42 to i8 store %43, %pc0 %44 = load %pc0 %45 = zext i8 %44 to i32 %46 = icmp eq %45 2 br %46, %51, %47 47: %48 = load %pc0 %49 = zext i8 %48 to i32 %50 = icmp eq %49 7 br %51 51: %52 = phi [1, %0], [%50, %47] %53 = zext i1 %52 to i32 %54 = call i32 (...)* @__VERIFIER_assume(i32 %53) %55 = load %pc0 %56 = load %1 %57 = sext i32 %56 to i64 %58 = getelementptr @pc, 0, %57 %59 = getelementptr %58, 0, 0 store %55, %59 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, %43 5: %6 = load %firstAgent %7 = zext i8 %6 to i64 %8 = getelementptr @pc, 0, %7 %9 = getelementptr %8, 0, 0 %10 = load %9 %11 = zext i8 %10 to i32 switch %11, %33 [2, %12 3, %15 4, %18 5, %21 6, %24 7, %27 8, %30] 12: %13 = load %firstAgent %14 = zext i8 %13 to i32 Unnamed Call-Instruction = call BasicVoidType @_0_2(i32 %14) br %34 15: %16 = load %firstAgent %17 = zext i8 %16 to i32 Unnamed Call-Instruction = call BasicVoidType @_0_3(i32 %17) br %34 18: %19 = load %firstAgent %20 = zext i8 %19 to i32 Unnamed Call-Instruction = call BasicVoidType @_0_4(i32 %20) br %34 21: %22 = load %firstAgent %23 = zext i8 %22 to i32 Unnamed Call-Instruction = call BasicVoidType @_0_5(i32 %23) br %34 24: %25 = load %firstAgent %26 = zext i8 %25 to i32 Unnamed Call-Instruction = call BasicVoidType @_0_6(i32 %26) br %34 27: %28 = load %firstAgent %29 = zext i8 %28 to i32 Unnamed Call-Instruction = call BasicVoidType @_0_7(i32 %29) br %34 30: %31 = load %firstAgent %32 = zext i8 %31 to i32 Unnamed Call-Instruction = call BasicVoidType @_0_8(i32 %32) br %34 33: br %34 34: %35 = load %firstAgent %36 = zext i8 %35 to i32 %37 = icmp eq %36 2 br %37, %38, %39 38: store 0, %firstAgent br %42 39: %40 = load %firstAgent %41 = add %40 1 store %41, %firstAgent br %42 42: br %52 43: %44 = call i32 @__VERIFIER_nondet_int() %45 = icmp ne %44 0 %46 = zext i1 %45 to i8 store %46, %propagate_or_confirm %47 = load %propagate_or_confirm %48 = trunc i8 %47 to i1 br %48, %49, %50 49: Unnamed Call-Instruction = call BasicVoidType @propagate() br %51 50: Unnamed Call-Instruction = call BasicVoidType @confirm() br %51 51: br %52 52: %53 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5f64a601 %54 = sext i8 %53 to i32 %55 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ae715f %56 = sext i8 %55 to i32 %57 = icmp eq %54 %56 br %57, %58, %89 58: %59 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@d92e070 %60 = sext i8 %59 to i32 %61 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1f154147 %62 = sext i8 %61 to i32 %63 = icmp eq %60 %62 br %63, %64, %89 64: %65 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@65bbb80a %66 = sext i8 %65 to i32 %67 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@146e096b %68 = sext i8 %67 to i32 %69 = icmp eq %66 %68 br %69, %70, %89 70: %71 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@e65faf6 %72 = sext i8 %71 to i32 %73 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bcf8d04 %74 = sext i8 %73 to i32 %75 = icmp eq %72 %74 br %75, %76, %89 76: %77 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@38c199f %78 = sext i8 %77 to i32 %79 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@67cd6dd4 %80 = sext i8 %79 to i32 %81 = icmp eq %78 %80 br %81, %82, %89 82: %83 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46de9991 %84 = sext i8 %83 to i32 %85 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@13e8be3 %86 = sext i8 %85 to i32 %87 = icmp eq %84 %86 br %87, %88, %89 88: ret 0 89: br %2 Analyze Termination of all function calls matching the pattern: main()