/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: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could not be shown: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 267 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: union.__CS__u --> BasicStructureType(elementType: [3 x i32]) Global variables: Name: __CS_round initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null Name: __CS_ret initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null Name: __CS_ret_PREEMPTED initVal: 1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __CS_ret_ERROR initVal: 2 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __CS_ret_FINISHED initVal: 4 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __CS_error initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null Name: __THREAD_UNUSED initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __THREAD_RUNNING initVal: 1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __THREAD_FINISHED initVal: 2 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null Name: __CS_thread_index initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_thread_lockedon initVal: ((null,null,null),(null,null,null),(null,null,null)) type: [3 x [3 x *i8]] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_thread_status initVal: ((0,0,0),(0,0,0),(0,0,0)) type: [3 x [3 x i8]] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_thread_allocated initVal: (0,0,0) type: [3 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_thread_born_round initVal: (0,0,0) type: [3 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_thread initVal: (null,null,null) type: [3 x *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8)] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null Name: flag1 initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null Name: flag2 initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null Name: x initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: __CS_u initVal: {(0,0,0)} type: BasicTypeName typeName: union.__CS__uBasicStructureType(elementType: [3 x i32]) addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_assume" returnParam: BasicVoidType parameters: (i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "nondet_int" returnParam: i32 parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (cond i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store %cond, %1 %2 = load %1 %3 = icmp ne %2 0 br %3, %6, %4 4: br %5 5: Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn unreachable 6: ret void *BasicFunctionTypename: "__CS_cs" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %k = alloca i8, align 1 %1 = load @__CS_round %2 = zext i8 %1 to i32 %3 = load %k %4 = zext i8 %3 to i32 %5 = add %2 %4 %6 = icmp slt %5 3 %7 = zext i1 %6 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %7) %8 = load %k %9 = zext i8 %8 to i32 %10 = load @__CS_round %11 = zext i8 %10 to i32 %12 = add %11 %9 %13 = trunc i32 %12 to i8 store %13, @__CS_round %14 = call i32 (...)* @nondet_int() %15 = icmp ne %14 0 br %15, %16, %21 16: %17 = load @__CS_round %18 = zext i8 %17 to i32 %19 = icmp eq %18 2 br %19, %20, %21 20: br %24 21: %22 = load @__CS_ret %23 = zext i8 %22 to i32 br %24 24: %25 = phi [1, %20], [%23, %21] %26 = trunc i32 %25 to i8 store %26, @__CS_ret ret void *BasicFunctionTypename: "__CS_pthread_mutex_init" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (mutex *i8, attr *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %2 = alloca *i8, align 8 store %mutex, %1 store %attr, %2 ret 0 *BasicFunctionTypename: "__CS_pthread_mutex_destroy" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 store %lock, %1 %2 = load %1 %3 = load %2 %4 = zext i8 %3 to i32 %5 = load @__CS_thread_index %6 = zext i8 %5 to i32 %7 = icmp ne %4 %6 br %7, %8, %14 8: %9 = load %1 %10 = load %9 %11 = zext i8 %10 to i32 %12 = icmp ne %11 0 br %12, %13, %14 13: store 1, @__CS_error store 2, @__CS_ret br %16 14: %15 = load %1 store 0, %15 br %16 16: ret 0 *BasicFunctionTypename: "__CS_pthread_mutex_lock" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca *i8, align 8 store %lock, %2 %3 = load %2 %4 = load %3 %5 = zext i8 %4 to i32 %6 = icmp eq %5 0 br %6, %7, %13 7: %8 = load @__CS_thread_index %9 = zext i8 %8 to i32 %10 = add %9 1 %11 = trunc i32 %10 to i8 %12 = load %2 store %11, %12 br %14 13: store 1, @__CS_ret store 1, %1 br %15 14: store 0, %1 br %15 15: %16 = load %1 ret %16 *BasicFunctionTypename: "__CS_pthread_mutex_unlock" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca *i8, align 8 store %lock, %2 %3 = load %2 %4 = load %3 %5 = zext i8 %4 to i32 %6 = load @__CS_thread_index %7 = zext i8 %6 to i32 %8 = add %7 1 %9 = icmp ne %5 %8 br %9, %10, %11 10: store 1, @__CS_error store 2, @__CS_ret store 1, %1 br %14 11: %12 = load %2 store 0, %12 br %13 13: store 0, %1 br %14 14: %15 = load %1 ret %15 *BasicFunctionTypename: "__CS_pthread_cond_init" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8, attr *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %2 = alloca *i8, align 8 store %cond, %1 store %attr, %2 ret 0 *BasicFunctionTypename: "__CS_pthread_cond_signal" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %j = alloca i32, align 4 store %cond, %1 store 0, %j br %2 2: %3 = load %j %4 = icmp sle %3 2 br %4, %5, %26 5: %6 = load %j %7 = sext i32 %6 to i64 %8 = load @__CS_round %9 = zext i8 %8 to i64 %10 = getelementptr @__CS_thread_lockedon, 0, %9 %11 = getelementptr %10, 0, %7 %12 = load %11 %13 = load %1 %14 = icmp eq %12 %13 br %14, %15, %22 15: %16 = load %j %17 = sext i32 %16 to i64 %18 = load @__CS_round %19 = zext i8 %18 to i64 %20 = getelementptr @__CS_thread_lockedon, 0, %19 %21 = getelementptr %20, 0, %17 store null, %21 br %22 22: br %23 23: %24 = load %j %25 = add %24 1 store %25, %j br %2 26: ret 0 *BasicFunctionTypename: "__CS_pthread_cond_broadcast" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %j = alloca i32, align 4 store %cond, %1 store 0, %j br %2 2: %3 = load %j %4 = icmp sle %3 2 br %4, %5, %26 5: %6 = load %j %7 = sext i32 %6 to i64 %8 = load @__CS_round %9 = zext i8 %8 to i64 %10 = getelementptr @__CS_thread_lockedon, 0, %9 %11 = getelementptr %10, 0, %7 %12 = load %11 %13 = load %1 %14 = icmp eq %12 %13 br %14, %15, %22 15: %16 = load %j %17 = sext i32 %16 to i64 %18 = load @__CS_round %19 = zext i8 %18 to i64 %20 = getelementptr @__CS_thread_lockedon, 0, %19 %21 = getelementptr %20, 0, %17 store null, %21 br %22 22: br %23 23: %24 = load %j %25 = add %24 1 store %25, %j br %2 26: ret 0 *BasicFunctionTypename: "__CS_pthread_cond_wait" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8, lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca *i8, align 8 %3 = alloca *i8, align 8 store %cond, %2 store %lock, %3 %4 = load %3 %5 = load %4 %6 = zext i8 %5 to i32 %7 = load @__CS_thread_index %8 = zext i8 %7 to i32 %9 = add %8 1 %10 = icmp ne %6 %9 br %10, %11, %12 11: store 1, @__CS_error store 2, @__CS_ret store 1, %1 br %34 12: %13 = load %3 store 0, %13 br %14 14: %15 = load %2 %16 = load @__CS_thread_index %17 = zext i8 %16 to i64 %18 = load @__CS_round %19 = zext i8 %18 to i64 %20 = getelementptr @__CS_thread_lockedon, 0, %19 %21 = getelementptr %20, 0, %17 store %15, %21 store 1, @__CS_ret %22 = load %3 %23 = load %22 %24 = zext i8 %23 to i32 %25 = icmp eq %24 0 br %25, %26, %32 26: %27 = load @__CS_thread_index %28 = zext i8 %27 to i32 %29 = add %28 1 %30 = trunc i32 %29 to i8 %31 = load %3 store %30, %31 br %33 32: store 1, @__CS_ret store 1, %1 br %34 33: store 0, %1 br %34 34: %35 = load %1 ret %35 *BasicFunctionTypename: "__CS_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (expr i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store %expr, %1 %2 = load %1 %3 = icmp ne %2 0 br %3, %5, %4 4: store 1, @__CS_error store 2, @__CS_ret br %5 5: ret void *BasicFunctionTypename: "__CS_assume" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (expr i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store %expr, %1 %2 = load %1 %3 = icmp ne %2 0 br %3, %5, %4 4: store 1, @__CS_ret br %5 5: ret void *BasicFunctionTypename: "__CS_pthread_join" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (thread i8 zeroext, value_ptr **i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca i8, align 1 %3 = alloca **i8, align 8 store %thread, %2 store %value_ptr, %3 %4 = load %2 %5 = zext i8 %4 to i32 %6 = icmp ne %5 123 br %6, %7, %12 7: %8 = load %2 %9 = zext i8 %8 to i32 %10 = icmp sgt %9 3 br %10, %11, %12 11: store 1, @__CS_error store 2, @__CS_ret store 0, %1 br %49 12: %13 = load %2 %14 = zext i8 %13 to i32 %15 = icmp eq %14 123 br %15, %26, %16 16: %17 = load %2 %18 = zext i8 %17 to i64 %19 = load @__CS_round %20 = zext i8 %19 to i64 %21 = getelementptr @__CS_thread_status, 0, %20 %22 = getelementptr %21, 0, %18 %23 = load %22 %24 = zext i8 %23 to i32 %25 = icmp eq %24 1 br %25, %26, %27 26: store 1, @__CS_ret store 0, %1 br %49 27: %28 = load %2 %29 = zext i8 %28 to i64 %30 = load @__CS_round %31 = zext i8 %30 to i64 %32 = getelementptr @__CS_thread_status, 0, %31 %33 = getelementptr %32, 0, %29 %34 = load %33 %35 = zext i8 %34 to i32 %36 = icmp eq %35 0 br %36, %37, %38 37: store 1, @__CS_error store 2, @__CS_ret store 0, %1 br %49 38: %39 = load %2 %40 = zext i8 %39 to i64 %41 = load @__CS_round %42 = zext i8 %41 to i64 %43 = getelementptr @__CS_thread_status, 0, %42 %44 = getelementptr %43, 0, %40 %45 = load %44 %46 = zext i8 %45 to i32 %47 = icmp eq %46 2 %48 = zext i1 %47 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %48) store 0, %1 br %49 49: %50 = load %1 ret %50 *BasicFunctionTypename: "__CS_pthread_create" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (id1 *i8, attr *i8, t1 *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8), arg *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca *i8, align 8 %3 = alloca *i8, align 8 %4 = alloca *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8), align 8 %5 = alloca *i8, align 8 store %id1, %2 store %attr, %3 store %t1, %4 store %arg, %5 %6 = load @__CS_thread_index %7 = zext i8 %6 to i32 %8 = icmp eq %7 2 br %8, %9, %11 9: %10 = load %2 store 123, %10 store -1, %1 br %35 11: %12 = load @__CS_thread_index %13 = add %12 1 store %13, @__CS_thread_index %14 = load @__CS_thread_index %15 = zext i8 %14 to i64 %16 = getelementptr @__CS_thread_allocated, 0, %15 store 1, %16 %17 = load @__CS_round %18 = load @__CS_thread_index %19 = zext i8 %18 to i64 %20 = getelementptr @__CS_thread_born_round, 0, %19 store %17, %20 %21 = load %4 %22 = load @__CS_thread_index %23 = zext i8 %22 to i64 %24 = getelementptr @__CS_thread, 0, %23 store %21, %24 %25 = load @__CS_thread_index %26 = zext i8 %25 to i64 %27 = load @__CS_round %28 = zext i8 %27 to i64 %29 = getelementptr @__CS_thread_status, 0, %28 %30 = getelementptr %29, 0, %26 store 1, %30 %31 = load @__CS_thread_index %32 = load %2 store %31, %32 %33 = load @__CS_thread_index %34 = zext i8 %33 to i32 store %34, %1 br %35 35: %36 = load %1 ret %36 *BasicFunctionTypename: "thr1" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %2 = load @__CS_ret %3 = zext i8 %2 to i32 %4 = icmp ne %3 0 br %4, %5, %6 5: store null, %1 br %174 6: %7 = load @__CS_round %8 = zext i8 %7 to i64 %9 = getelementptr @flag1, 0, %8 store 1, %9 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %10 = load @__CS_ret %11 = zext i8 %10 to i32 %12 = icmp ne %11 0 br %12, %13, %14 13: store null, %1 br %174 14: br %15 15: %16 = load @__CS_round %17 = zext i8 %16 to i64 %18 = getelementptr @flag2, 0, %17 %19 = load %18 %20 = icmp sge %19 3 br %20, %21, %27 21: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %22 = load @__CS_ret %23 = zext i8 %22 to i32 %24 = icmp ne %23 0 br %24, %25, %26 25: store null, %1 br %174 26: br %15 27: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %28 = load @__CS_ret %29 = zext i8 %28 to i32 %30 = icmp ne %29 0 br %30, %31, %32 31: store null, %1 br %174 32: %33 = load @__CS_round %34 = zext i8 %33 to i64 %35 = getelementptr @flag1, 0, %34 store 3, %35 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %36 = load @__CS_ret %37 = zext i8 %36 to i32 %38 = icmp ne %37 0 br %38, %39, %40 39: store null, %1 br %174 40: %41 = load @__CS_round %42 = zext i8 %41 to i64 %43 = getelementptr @flag2, 0, %42 %44 = load %43 %45 = icmp eq %44 1 br %45, %46, %78 46: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %47 = load @__CS_ret %48 = zext i8 %47 to i32 %49 = icmp ne %48 0 br %49, %50, %51 50: store null, %1 br %174 51: %52 = load @__CS_round %53 = zext i8 %52 to i64 %54 = getelementptr @flag1, 0, %53 store 2, %54 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %55 = load @__CS_ret %56 = zext i8 %55 to i32 %57 = icmp ne %56 0 br %57, %58, %59 58: store null, %1 br %174 59: br %60 60: %61 = load @__CS_round %62 = zext i8 %61 to i64 %63 = getelementptr @flag2, 0, %62 %64 = load %63 %65 = icmp ne %64 4 br %65, %66, %72 66: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %67 = load @__CS_ret %68 = zext i8 %67 to i32 %69 = icmp ne %68 0 br %69, %70, %71 70: store null, %1 br %174 71: br %60 72: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %73 = load @__CS_ret %74 = zext i8 %73 to i32 %75 = icmp ne %74 0 br %75, %76, %77 76: store null, %1 br %174 77: br %78 78: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %79 = load @__CS_ret %80 = zext i8 %79 to i32 %81 = icmp ne %80 0 br %81, %82, %83 82: store null, %1 br %174 83: %84 = load @__CS_round %85 = zext i8 %84 to i64 %86 = getelementptr @flag1, 0, %85 store 4, %86 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %87 = load @__CS_ret %88 = zext i8 %87 to i32 %89 = icmp ne %88 0 br %89, %90, %91 90: store null, %1 br %174 91: br %92 92: %93 = load @__CS_round %94 = zext i8 %93 to i64 %95 = getelementptr @flag2, 0, %94 %96 = load %95 %97 = icmp sge %96 2 br %97, %98, %104 98: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %99 = load @__CS_ret %100 = zext i8 %99 to i32 %101 = icmp ne %100 0 br %101, %102, %103 102: store null, %1 br %174 103: br %92 104: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %105 = load @__CS_ret %106 = zext i8 %105 to i32 %107 = icmp ne %106 0 br %107, %108, %109 108: store null, %1 br %174 109: %110 = load @__CS_round %111 = zext i8 %110 to i64 %112 = getelementptr @x, 0, %111 store 0, %112 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %113 = load @__CS_ret %114 = zext i8 %113 to i32 %115 = icmp ne %114 0 br %115, %116, %117 116: store null, %1 br %174 117: %118 = load @__CS_round %119 = zext i8 %118 to i64 %120 = getelementptr @x, 0, %119 %121 = load %120 %122 = icmp sle %121 0 br %122, %130, %123 123: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %124 = load @__CS_ret %125 = zext i8 %124 to i32 %126 = icmp ne %125 0 br %126, %127, %128 127: store null, %1 br %174 128: br %129 129: store 1, @__CS_error store 2, @__CS_ret store null, %1 br %174 130: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %131 = load @__CS_ret %132 = zext i8 %131 to i32 %133 = icmp ne %132 0 br %133, %134, %135 134: store null, %1 br %174 135: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %136 = load @__CS_ret %137 = zext i8 %136 to i32 %138 = icmp ne %137 0 br %138, %139, %140 139: store null, %1 br %174 140: br %141 141: %142 = load @__CS_round %143 = zext i8 %142 to i64 %144 = getelementptr @flag2, 0, %143 %145 = load %144 %146 = icmp sle 2 %145 br %146, %147, %153 147: %148 = load @__CS_round %149 = zext i8 %148 to i64 %150 = getelementptr @flag2, 0, %149 %151 = load %150 %152 = icmp sle %151 3 br %153 153: %154 = phi [0, %141], [%152, %147] br %154, %155, %161 155: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %156 = load @__CS_ret %157 = zext i8 %156 to i32 %158 = icmp ne %157 0 br %158, %159, %160 159: store null, %1 br %174 160: br %141 161: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %162 = load @__CS_ret %163 = zext i8 %162 to i32 %164 = icmp ne %163 0 br %164, %165, %166 165: store null, %1 br %174 166: %167 = load @__CS_round %168 = zext i8 %167 to i64 %169 = getelementptr @flag1, 0, %168 store 0, %169 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %170 = load @__CS_ret %171 = zext i8 %170 to i32 %172 = icmp ne %171 0 br %172, %173, %174 173: store null, %1 br %174 174: %175 = load %1 ret %175 *BasicFunctionTypename: "thr2" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %2 = load @__CS_ret %3 = zext i8 %2 to i32 %4 = icmp ne %3 0 br %4, %5, %6 5: store null, %1 br %174 6: %7 = load @__CS_round %8 = zext i8 %7 to i64 %9 = getelementptr @flag2, 0, %8 store 1, %9 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %10 = load @__CS_ret %11 = zext i8 %10 to i32 %12 = icmp ne %11 0 br %12, %13, %14 13: store null, %1 br %174 14: br %15 15: %16 = load @__CS_round %17 = zext i8 %16 to i64 %18 = getelementptr @flag1, 0, %17 %19 = load %18 %20 = icmp sge %19 3 br %20, %21, %27 21: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %22 = load @__CS_ret %23 = zext i8 %22 to i32 %24 = icmp ne %23 0 br %24, %25, %26 25: store null, %1 br %174 26: br %15 27: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %28 = load @__CS_ret %29 = zext i8 %28 to i32 %30 = icmp ne %29 0 br %30, %31, %32 31: store null, %1 br %174 32: %33 = load @__CS_round %34 = zext i8 %33 to i64 %35 = getelementptr @flag2, 0, %34 store 3, %35 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %36 = load @__CS_ret %37 = zext i8 %36 to i32 %38 = icmp ne %37 0 br %38, %39, %40 39: store null, %1 br %174 40: %41 = load @__CS_round %42 = zext i8 %41 to i64 %43 = getelementptr @flag1, 0, %42 %44 = load %43 %45 = icmp eq %44 1 br %45, %46, %78 46: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %47 = load @__CS_ret %48 = zext i8 %47 to i32 %49 = icmp ne %48 0 br %49, %50, %51 50: store null, %1 br %174 51: %52 = load @__CS_round %53 = zext i8 %52 to i64 %54 = getelementptr @flag2, 0, %53 store 2, %54 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %55 = load @__CS_ret %56 = zext i8 %55 to i32 %57 = icmp ne %56 0 br %57, %58, %59 58: store null, %1 br %174 59: br %60 60: %61 = load @__CS_round %62 = zext i8 %61 to i64 %63 = getelementptr @flag1, 0, %62 %64 = load %63 %65 = icmp ne %64 4 br %65, %66, %72 66: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %67 = load @__CS_ret %68 = zext i8 %67 to i32 %69 = icmp ne %68 0 br %69, %70, %71 70: store null, %1 br %174 71: br %60 72: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %73 = load @__CS_ret %74 = zext i8 %73 to i32 %75 = icmp ne %74 0 br %75, %76, %77 76: store null, %1 br %174 77: br %78 78: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %79 = load @__CS_ret %80 = zext i8 %79 to i32 %81 = icmp ne %80 0 br %81, %82, %83 82: store null, %1 br %174 83: %84 = load @__CS_round %85 = zext i8 %84 to i64 %86 = getelementptr @flag2, 0, %85 store 4, %86 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %87 = load @__CS_ret %88 = zext i8 %87 to i32 %89 = icmp ne %88 0 br %89, %90, %91 90: store null, %1 br %174 91: br %92 92: %93 = load @__CS_round %94 = zext i8 %93 to i64 %95 = getelementptr @flag1, 0, %94 %96 = load %95 %97 = icmp sge %96 2 br %97, %98, %104 98: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %99 = load @__CS_ret %100 = zext i8 %99 to i32 %101 = icmp ne %100 0 br %101, %102, %103 102: store null, %1 br %174 103: br %92 104: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %105 = load @__CS_ret %106 = zext i8 %105 to i32 %107 = icmp ne %106 0 br %107, %108, %109 108: store null, %1 br %174 109: %110 = load @__CS_round %111 = zext i8 %110 to i64 %112 = getelementptr @x, 0, %111 store 1, %112 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %113 = load @__CS_ret %114 = zext i8 %113 to i32 %115 = icmp ne %114 0 br %115, %116, %117 116: store null, %1 br %174 117: %118 = load @__CS_round %119 = zext i8 %118 to i64 %120 = getelementptr @x, 0, %119 %121 = load %120 %122 = icmp sge %121 1 br %122, %130, %123 123: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %124 = load @__CS_ret %125 = zext i8 %124 to i32 %126 = icmp ne %125 0 br %126, %127, %128 127: store null, %1 br %174 128: br %129 129: store 1, @__CS_error store 2, @__CS_ret store null, %1 br %174 130: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %131 = load @__CS_ret %132 = zext i8 %131 to i32 %133 = icmp ne %132 0 br %133, %134, %135 134: store null, %1 br %174 135: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %136 = load @__CS_ret %137 = zext i8 %136 to i32 %138 = icmp ne %137 0 br %138, %139, %140 139: store null, %1 br %174 140: br %141 141: %142 = load @__CS_round %143 = zext i8 %142 to i64 %144 = getelementptr @flag1, 0, %143 %145 = load %144 %146 = icmp sle 2 %145 br %146, %147, %153 147: %148 = load @__CS_round %149 = zext i8 %148 to i64 %150 = getelementptr @flag1, 0, %149 %151 = load %150 %152 = icmp sle %151 3 br %153 153: %154 = phi [0, %141], [%152, %147] br %154, %155, %161 155: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %156 = load @__CS_ret %157 = zext i8 %156 to i32 %158 = icmp ne %157 0 br %158, %159, %160 159: store null, %1 br %174 160: br %141 161: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %162 = load @__CS_ret %163 = zext i8 %162 to i32 %164 = icmp ne %163 0 br %164, %165, %166 165: store null, %1 br %174 166: %167 = load @__CS_round %168 = zext i8 %167 to i64 %169 = getelementptr @flag2, 0, %168 store 0, %169 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %170 = load @__CS_ret %171 = zext i8 %170 to i32 %172 = icmp ne %171 0 br %172, %173, %174 173: store null, %1 br %174 174: %175 = load %1 ret %175 *BasicFunctionTypename: "main_thread" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: (arg *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %2 = alloca *i8, align 8 %t1 = alloca i8, align 1 %t2 = alloca i8, align 1 store %arg, %2 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %3 = load @__CS_ret %4 = zext i8 %3 to i32 %5 = icmp ne %4 0 br %5, %6, %7 6: store null, %1 br %33 7: %8 = call i32 @__CS_pthread_create(*i8 %t1, *i8 null, *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8) aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMConversionConstExpr@13356943, *i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %9 = load @__CS_ret %10 = zext i8 %9 to i32 %11 = icmp ne %10 0 br %11, %12, %13 12: store null, %1 br %33 13: %14 = call i32 @__CS_pthread_create(*i8 %t2, *i8 null, *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8) aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMConversionConstExpr@41b8a32a, *i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %15 = load @__CS_ret %16 = zext i8 %15 to i32 %17 = icmp ne %16 0 br %17, %18, %19 18: store null, %1 br %33 19: %20 = load %t1 %21 = call i32 @__CS_pthread_join(i8 zeroext %20, **i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %22 = load @__CS_ret %23 = zext i8 %22 to i32 %24 = icmp ne %23 0 br %24, %25, %26 25: store null, %1 br %33 26: %27 = load %t2 %28 = call i32 @__CS_pthread_join(i8 zeroext %27, **i8 null) Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %29 = load @__CS_ret %30 = zext i8 %29 to i32 %31 = icmp ne %30 0 br %31, %32, %33 32: store null, %1 br %33 33: %34 = load %1 ret %34 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %__CS_cp___CS_thread_status = alloca [3 x [3 x i8]], align 1 %__CS_cp___CS_thread_lockedon = alloca [3 x [3 x *i8]], align 16 %__CS_cp_flag1 = alloca [3 x i32], align 4 %__CS_cp_flag2 = alloca [3 x i32], align 4 %__CS_cp_x = alloca [3 x i32], align 4 store 0, %1 %2 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %3 = getelementptr %2, 0, 0 %4 = load %3 store %4, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6fdb0111 %5 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %6 = getelementptr %5, 0, 0 %7 = load %6 store %7, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@611cf29a %8 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %9 = getelementptr %8, 0, 1 %10 = load %9 store %10, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@65236a61 %11 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %12 = getelementptr %11, 0, 1 %13 = load %12 store %13, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2021f8a1 %14 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %15 = getelementptr %14, 0, 2 %16 = load %15 store %16, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1745b63d %17 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %18 = getelementptr %17, 0, 2 %19 = load %18 store %19, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@11cb1e6d %20 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %21 = getelementptr %20, 0, 0 %22 = load %21 store %22, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6f450e57 %23 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %24 = getelementptr %23, 0, 0 %25 = load %24 store %25, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@400e07ee %26 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %27 = getelementptr %26, 0, 1 %28 = load %27 store %28, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7ac0a58c %29 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %30 = getelementptr %29, 0, 1 %31 = load %30 store %31, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@33b1e4cf %32 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %33 = getelementptr %32, 0, 2 %34 = load %33 store %34, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@74416358 %35 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %36 = getelementptr %35, 0, 2 %37 = load %36 store %37, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@44403b49 %38 = getelementptr %__CS_cp_flag1, 0, 1 %39 = load %38 store %39, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bd30a88 %40 = getelementptr %__CS_cp_flag1, 0, 2 %41 = load %40 store %41, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7f816a1 %42 = getelementptr %__CS_cp_flag2, 0, 1 %43 = load %42 store %43, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@785ceea5 %44 = getelementptr %__CS_cp_flag2, 0, 2 %45 = load %44 store %45, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3d031894 %46 = getelementptr %__CS_cp_x, 0, 1 %47 = load %46 store %47, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1ea7d2f6 %48 = getelementptr %__CS_cp_x, 0, 2 %49 = load %48 store %49, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@592d829d store 0, @__CS_round store 0, @__CS_thread_index %50 = load @__CS_round store %50, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@461b76db store 1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@63f91134 store @main_thread, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@43e95fdf store 1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@76651455 %51 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6bd519ec %52 = zext i8 %51 to i32 %53 = icmp eq %52 1 br %53, %54, %67 54: %55 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@408ed513 store %55, @__CS_round store 0, @__CS_ret %56 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@49106d7a %57 = call *i8 %56(*i8 null) %58 = load @__CS_ret %59 = zext i8 %58 to i32 %60 = icmp ne %59 1 br %60, %61, %66 61: %62 = load @__CS_round %63 = zext i8 %62 to i64 %64 = getelementptr @__CS_thread_status, 0, %63 %65 = getelementptr %64, 0, 0 store 2, %65 br %66 66: br %67 67: %68 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@17890fb1 %69 = zext i8 %68 to i32 %70 = icmp eq %69 1 br %70, %71, %84 71: %72 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@54507ed5 store %72, @__CS_round store 0, @__CS_ret %73 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@62401f01 %74 = call *i8 %73(*i8 null) %75 = load @__CS_ret %76 = zext i8 %75 to i32 %77 = icmp ne %76 1 br %77, %78, %83 78: %79 = load @__CS_round %80 = zext i8 %79 to i64 %81 = getelementptr @__CS_thread_status, 0, %80 %82 = getelementptr %81, 0, 1 store 2, %82 br %83 83: br %84 84: %85 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2871d58e %86 = zext i8 %85 to i32 %87 = icmp eq %86 1 br %87, %88, %101 88: %89 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@775aa3b6 store %89, @__CS_round store 0, @__CS_ret %90 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@202bcd5e %91 = call *i8 %90(*i8 null) %92 = load @__CS_ret %93 = zext i8 %92 to i32 %94 = icmp ne %93 1 br %94, %95, %100 95: %96 = load @__CS_round %97 = zext i8 %96 to i64 %98 = getelementptr @__CS_thread_status, 0, %97 %99 = getelementptr %98, 0, 2 store 2, %99 br %100 100: br %101 101: %102 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@42f1664d %103 = zext i8 %102 to i32 %104 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %105 = getelementptr %104, 0, 0 %106 = load %105 %107 = zext i8 %106 to i32 %108 = icmp eq %103 %107 %109 = zext i1 %108 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %109) %110 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@648a1638 %111 = zext i8 %110 to i32 %112 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %113 = getelementptr %112, 0, 0 %114 = load %113 %115 = zext i8 %114 to i32 %116 = icmp eq %111 %115 %117 = zext i1 %116 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %117) %118 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46ef5e0c %119 = zext i8 %118 to i32 %120 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %121 = getelementptr %120, 0, 1 %122 = load %121 %123 = zext i8 %122 to i32 %124 = icmp eq %119 %123 %125 = zext i1 %124 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %125) %126 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@38d03ab2 %127 = zext i8 %126 to i32 %128 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %129 = getelementptr %128, 0, 1 %130 = load %129 %131 = zext i8 %130 to i32 %132 = icmp eq %127 %131 %133 = zext i1 %132 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %133) %134 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@71dae0eb %135 = zext i8 %134 to i32 %136 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %137 = getelementptr %136, 0, 2 %138 = load %137 %139 = zext i8 %138 to i32 %140 = icmp eq %135 %139 %141 = zext i1 %140 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %141) %142 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4555033e %143 = zext i8 %142 to i32 %144 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %145 = getelementptr %144, 0, 2 %146 = load %145 %147 = zext i8 %146 to i32 %148 = icmp eq %143 %147 %149 = zext i1 %148 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %149) %150 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@79f63aa6 %151 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %152 = getelementptr %151, 0, 0 %153 = load %152 %154 = icmp eq %150 %153 %155 = zext i1 %154 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %155) %156 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@40ca9a80 %157 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %158 = getelementptr %157, 0, 0 %159 = load %158 %160 = icmp eq %156 %159 %161 = zext i1 %160 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %161) %162 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@66b1f7ca %163 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %164 = getelementptr %163, 0, 1 %165 = load %164 %166 = icmp eq %162 %165 %167 = zext i1 %166 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %167) %168 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@b9054d1 %169 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %170 = getelementptr %169, 0, 1 %171 = load %170 %172 = icmp eq %168 %171 %173 = zext i1 %172 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %173) %174 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@437b6c0f %175 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %176 = getelementptr %175, 0, 2 %177 = load %176 %178 = icmp eq %174 %177 %179 = zext i1 %178 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %179) %180 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5771e07a %181 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %182 = getelementptr %181, 0, 2 %183 = load %182 %184 = icmp eq %180 %183 %185 = zext i1 %184 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %185) %186 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3e1742f9 %187 = getelementptr %__CS_cp_flag1, 0, 1 %188 = load %187 %189 = icmp eq %186 %188 %190 = zext i1 %189 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %190) %191 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3728af36 %192 = getelementptr %__CS_cp_flag1, 0, 2 %193 = load %192 %194 = icmp eq %191 %193 %195 = zext i1 %194 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %195) %196 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2faba6c8 %197 = getelementptr %__CS_cp_flag2, 0, 1 %198 = load %197 %199 = icmp eq %196 %198 %200 = zext i1 %199 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %200) %201 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7701f177 %202 = getelementptr %__CS_cp_flag2, 0, 2 %203 = load %202 %204 = icmp eq %201 %203 %205 = zext i1 %204 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %205) %206 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@738575e4 %207 = getelementptr %__CS_cp_x, 0, 1 %208 = load %207 %209 = icmp eq %206 %208 %210 = zext i1 %209 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %210) %211 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1a625bd %212 = getelementptr %__CS_cp_x, 0, 2 %213 = load %212 %214 = icmp eq %211 %213 %215 = zext i1 %214 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %215) %216 = load @__CS_error %217 = zext i8 %216 to i32 %218 = icmp ne %217 1 %219 = zext i1 %218 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %219) %220 = load %1 ret %220 Analyze Termination of all function calls matching the pattern: main()