/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, 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: 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: b1 initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON 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: y initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null Name: b2 initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON 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 %225 6: br %7 7: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %8 = load @__CS_ret %9 = zext i8 %8 to i32 %10 = icmp ne %9 0 br %10, %11, %12 11: store null, %1 br %225 12: %13 = load @__CS_round %14 = zext i8 %13 to i64 %15 = getelementptr @b1, 0, %14 store 1, %15 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %16 = load @__CS_ret %17 = zext i8 %16 to i32 %18 = icmp ne %17 0 br %18, %19, %20 19: store null, %1 br %225 20: %21 = load @__CS_round %22 = zext i8 %21 to i64 %23 = getelementptr @x, 0, %22 store 1, %23 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %24 = load @__CS_ret %25 = zext i8 %24 to i32 %26 = icmp ne %25 0 br %26, %27, %28 27: store null, %1 br %225 28: %29 = load @__CS_round %30 = zext i8 %29 to i64 %31 = getelementptr @y, 0, %30 %32 = load %31 %33 = icmp ne %32 0 br %33, %34, %71 34: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %35 = load @__CS_ret %36 = zext i8 %35 to i32 %37 = icmp ne %36 0 br %37, %38, %39 38: store null, %1 br %225 39: %40 = load @__CS_round %41 = zext i8 %40 to i64 %42 = getelementptr @b1, 0, %41 store 0, %42 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %43 = load @__CS_ret %44 = zext i8 %43 to i32 %45 = icmp ne %44 0 br %45, %46, %47 46: store null, %1 br %225 47: br %48 48: %49 = load @__CS_round %50 = zext i8 %49 to i64 %51 = getelementptr @y, 0, %50 %52 = load %51 %53 = icmp ne %52 0 br %53, %54, %60 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 %225 59: br %48 60: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %61 = load @__CS_ret %62 = zext i8 %61 to i32 %63 = icmp ne %62 0 br %63, %64, %65 64: store null, %1 br %225 65: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %66 = load @__CS_ret %67 = zext i8 %66 to i32 %68 = icmp ne %67 0 br %68, %69, %70 69: store null, %1 br %225 70: br %7 71: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %72 = load @__CS_ret %73 = zext i8 %72 to i32 %74 = icmp ne %73 0 br %74, %75, %76 75: store null, %1 br %225 76: %77 = load @__CS_round %78 = zext i8 %77 to i64 %79 = getelementptr @y, 0, %78 store 1, %79 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %80 = load @__CS_ret %81 = zext i8 %80 to i32 %82 = icmp ne %81 0 br %82, %83, %84 83: store null, %1 br %225 84: %85 = load @__CS_round %86 = zext i8 %85 to i64 %87 = getelementptr @x, 0, %86 %88 = load %87 %89 = icmp ne %88 1 br %89, %90, %167 90: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %91 = load @__CS_ret %92 = zext i8 %91 to i32 %93 = icmp ne %92 0 br %93, %94, %95 94: store null, %1 br %225 95: %96 = load @__CS_round %97 = zext i8 %96 to i64 %98 = getelementptr @b1, 0, %97 store 0, %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 %225 103: br %104 104: %105 = load @__CS_round %106 = zext i8 %105 to i64 %107 = getelementptr @b2, 0, %106 %108 = load %107 %109 = icmp sge %108 1 br %109, %110, %116 110: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %111 = load @__CS_ret %112 = zext i8 %111 to i32 %113 = icmp ne %112 0 br %113, %114, %115 114: store null, %1 br %225 115: br %104 116: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %117 = load @__CS_ret %118 = zext i8 %117 to i32 %119 = icmp ne %118 0 br %119, %120, %121 120: store null, %1 br %225 121: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %122 = load @__CS_ret %123 = zext i8 %122 to i32 %124 = icmp ne %123 0 br %124, %125, %126 125: store null, %1 br %225 126: %127 = load @__CS_round %128 = zext i8 %127 to i64 %129 = getelementptr @y, 0, %128 %130 = load %129 %131 = icmp ne %130 1 br %131, %132, %161 132: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %133 = load @__CS_ret %134 = zext i8 %133 to i32 %135 = icmp ne %134 0 br %135, %136, %137 136: store null, %1 br %225 137: br %138 138: %139 = load @__CS_round %140 = zext i8 %139 to i64 %141 = getelementptr @y, 0, %140 %142 = load %141 %143 = icmp ne %142 0 br %143, %144, %150 144: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %145 = load @__CS_ret %146 = zext i8 %145 to i32 %147 = icmp ne %146 0 br %147, %148, %149 148: store null, %1 br %225 149: br %138 150: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %151 = load @__CS_ret %152 = zext i8 %151 to i32 %153 = icmp ne %152 0 br %153, %154, %155 154: store null, %1 br %225 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 %225 160: br %7 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 %225 166: br %167 167: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %168 = load @__CS_ret %169 = zext i8 %168 to i32 %170 = icmp ne %169 0 br %170, %171, %172 171: store null, %1 br %225 172: br %173 173: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %174 = load @__CS_ret %175 = zext i8 %174 to i32 %176 = icmp ne %175 0 br %176, %177, %178 177: store null, %1 br %225 178: %179 = load @__CS_round %180 = zext i8 %179 to i64 %181 = getelementptr @X, 0, %180 store 0, %181 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %182 = load @__CS_ret %183 = zext i8 %182 to i32 %184 = icmp ne %183 0 br %184, %185, %186 185: store null, %1 br %225 186: %187 = load @__CS_round %188 = zext i8 %187 to i64 %189 = getelementptr @X, 0, %188 %190 = load %189 %191 = icmp sle %190 0 br %191, %199, %192 192: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %193 = load @__CS_ret %194 = zext i8 %193 to i32 %195 = icmp ne %194 0 br %195, %196, %197 196: store null, %1 br %225 197: br %198 198: store 1, @__CS_error store 2, @__CS_ret store null, %1 br %225 199: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %200 = load @__CS_ret %201 = zext i8 %200 to i32 %202 = icmp ne %201 0 br %202, %203, %204 203: store null, %1 br %225 204: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %205 = load @__CS_ret %206 = zext i8 %205 to i32 %207 = icmp ne %206 0 br %207, %208, %209 208: store null, %1 br %225 209: %210 = load @__CS_round %211 = zext i8 %210 to i64 %212 = getelementptr @y, 0, %211 store 0, %212 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %213 = load @__CS_ret %214 = zext i8 %213 to i32 %215 = icmp ne %214 0 br %215, %216, %217 216: store null, %1 br %225 217: %218 = load @__CS_round %219 = zext i8 %218 to i64 %220 = getelementptr @b1, 0, %219 store 0, %220 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %221 = load @__CS_ret %222 = zext i8 %221 to i32 %223 = icmp ne %222 0 br %223, %224, %225 224: store null, %1 br %225 225: %226 = load %1 ret %226 *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 %225 6: br %7 7: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %8 = load @__CS_ret %9 = zext i8 %8 to i32 %10 = icmp ne %9 0 br %10, %11, %12 11: store null, %1 br %225 12: %13 = load @__CS_round %14 = zext i8 %13 to i64 %15 = getelementptr @b2, 0, %14 store 1, %15 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %16 = load @__CS_ret %17 = zext i8 %16 to i32 %18 = icmp ne %17 0 br %18, %19, %20 19: store null, %1 br %225 20: %21 = load @__CS_round %22 = zext i8 %21 to i64 %23 = getelementptr @x, 0, %22 store 2, %23 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %24 = load @__CS_ret %25 = zext i8 %24 to i32 %26 = icmp ne %25 0 br %26, %27, %28 27: store null, %1 br %225 28: %29 = load @__CS_round %30 = zext i8 %29 to i64 %31 = getelementptr @y, 0, %30 %32 = load %31 %33 = icmp ne %32 0 br %33, %34, %71 34: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %35 = load @__CS_ret %36 = zext i8 %35 to i32 %37 = icmp ne %36 0 br %37, %38, %39 38: store null, %1 br %225 39: %40 = load @__CS_round %41 = zext i8 %40 to i64 %42 = getelementptr @b2, 0, %41 store 0, %42 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %43 = load @__CS_ret %44 = zext i8 %43 to i32 %45 = icmp ne %44 0 br %45, %46, %47 46: store null, %1 br %225 47: br %48 48: %49 = load @__CS_round %50 = zext i8 %49 to i64 %51 = getelementptr @y, 0, %50 %52 = load %51 %53 = icmp ne %52 0 br %53, %54, %60 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 %225 59: br %48 60: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %61 = load @__CS_ret %62 = zext i8 %61 to i32 %63 = icmp ne %62 0 br %63, %64, %65 64: store null, %1 br %225 65: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %66 = load @__CS_ret %67 = zext i8 %66 to i32 %68 = icmp ne %67 0 br %68, %69, %70 69: store null, %1 br %225 70: br %7 71: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %72 = load @__CS_ret %73 = zext i8 %72 to i32 %74 = icmp ne %73 0 br %74, %75, %76 75: store null, %1 br %225 76: %77 = load @__CS_round %78 = zext i8 %77 to i64 %79 = getelementptr @y, 0, %78 store 2, %79 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %80 = load @__CS_ret %81 = zext i8 %80 to i32 %82 = icmp ne %81 0 br %82, %83, %84 83: store null, %1 br %225 84: %85 = load @__CS_round %86 = zext i8 %85 to i64 %87 = getelementptr @x, 0, %86 %88 = load %87 %89 = icmp ne %88 2 br %89, %90, %167 90: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %91 = load @__CS_ret %92 = zext i8 %91 to i32 %93 = icmp ne %92 0 br %93, %94, %95 94: store null, %1 br %225 95: %96 = load @__CS_round %97 = zext i8 %96 to i64 %98 = getelementptr @b2, 0, %97 store 0, %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 %225 103: br %104 104: %105 = load @__CS_round %106 = zext i8 %105 to i64 %107 = getelementptr @b1, 0, %106 %108 = load %107 %109 = icmp sge %108 1 br %109, %110, %116 110: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %111 = load @__CS_ret %112 = zext i8 %111 to i32 %113 = icmp ne %112 0 br %113, %114, %115 114: store null, %1 br %225 115: br %104 116: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %117 = load @__CS_ret %118 = zext i8 %117 to i32 %119 = icmp ne %118 0 br %119, %120, %121 120: store null, %1 br %225 121: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %122 = load @__CS_ret %123 = zext i8 %122 to i32 %124 = icmp ne %123 0 br %124, %125, %126 125: store null, %1 br %225 126: %127 = load @__CS_round %128 = zext i8 %127 to i64 %129 = getelementptr @y, 0, %128 %130 = load %129 %131 = icmp ne %130 2 br %131, %132, %161 132: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %133 = load @__CS_ret %134 = zext i8 %133 to i32 %135 = icmp ne %134 0 br %135, %136, %137 136: store null, %1 br %225 137: br %138 138: %139 = load @__CS_round %140 = zext i8 %139 to i64 %141 = getelementptr @y, 0, %140 %142 = load %141 %143 = icmp ne %142 0 br %143, %144, %150 144: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %145 = load @__CS_ret %146 = zext i8 %145 to i32 %147 = icmp ne %146 0 br %147, %148, %149 148: store null, %1 br %225 149: br %138 150: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %151 = load @__CS_ret %152 = zext i8 %151 to i32 %153 = icmp ne %152 0 br %153, %154, %155 154: store null, %1 br %225 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 %225 160: br %7 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 %225 166: br %167 167: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %168 = load @__CS_ret %169 = zext i8 %168 to i32 %170 = icmp ne %169 0 br %170, %171, %172 171: store null, %1 br %225 172: br %173 173: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %174 = load @__CS_ret %175 = zext i8 %174 to i32 %176 = icmp ne %175 0 br %176, %177, %178 177: store null, %1 br %225 178: %179 = load @__CS_round %180 = zext i8 %179 to i64 %181 = getelementptr @X, 0, %180 store 1, %181 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %182 = load @__CS_ret %183 = zext i8 %182 to i32 %184 = icmp ne %183 0 br %184, %185, %186 185: store null, %1 br %225 186: %187 = load @__CS_round %188 = zext i8 %187 to i64 %189 = getelementptr @X, 0, %188 %190 = load %189 %191 = icmp sge %190 1 br %191, %199, %192 192: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %193 = load @__CS_ret %194 = zext i8 %193 to i32 %195 = icmp ne %194 0 br %195, %196, %197 196: store null, %1 br %225 197: br %198 198: store 1, @__CS_error store 2, @__CS_ret store null, %1 br %225 199: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %200 = load @__CS_ret %201 = zext i8 %200 to i32 %202 = icmp ne %201 0 br %202, %203, %204 203: store null, %1 br %225 204: Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %205 = load @__CS_ret %206 = zext i8 %205 to i32 %207 = icmp ne %206 0 br %207, %208, %209 208: store null, %1 br %225 209: %210 = load @__CS_round %211 = zext i8 %210 to i64 %212 = getelementptr @y, 0, %211 store 0, %212 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %213 = load @__CS_ret %214 = zext i8 %213 to i32 %215 = icmp ne %214 0 br %215, %216, %217 216: store null, %1 br %225 217: %218 = load @__CS_round %219 = zext i8 %218 to i64 %220 = getelementptr @b2, 0, %219 store 0, %220 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() %221 = load @__CS_ret %222 = zext i8 %221 to i32 %223 = icmp ne %222 0 br %223, %224, %225 224: store null, %1 br %225 225: %226 = load %1 ret %226 *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@7d73f2a7, *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@7098d4a9, *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_x = alloca [3 x i32], align 4 %__CS_cp_y = alloca [3 x i32], align 4 %__CS_cp_b1 = alloca [3 x i32], align 4 %__CS_cp_b2 = 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@761759df %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@7be71713 %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@cc3a128 %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@345aa2b0 %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@78cfdc45 %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@3bd303c0 %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@2a082f73 %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@4ba647a0 %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@4d8d8765 %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@6ee35017 %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@5fb990f %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@7c994557 %38 = getelementptr %__CS_cp_x, 0, 1 %39 = load %38 store %39, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5d8e430e %40 = getelementptr %__CS_cp_x, 0, 2 %41 = load %40 store %41, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2999c340 %42 = getelementptr %__CS_cp_y, 0, 1 %43 = load %42 store %43, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7073149d %44 = getelementptr %__CS_cp_y, 0, 2 %45 = load %44 store %45, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46f64439 %46 = getelementptr %__CS_cp_b1, 0, 1 %47 = load %46 store %47, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@694ff9da %48 = getelementptr %__CS_cp_b1, 0, 2 %49 = load %48 store %49, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@e2ba470 %50 = getelementptr %__CS_cp_b2, 0, 1 %51 = load %50 store %51, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@66948ed4 %52 = getelementptr %__CS_cp_b2, 0, 2 %53 = load %52 store %53, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1237d9b3 %54 = getelementptr %__CS_cp_X, 0, 1 %55 = load %54 store %55, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4207306 %56 = getelementptr %__CS_cp_X, 0, 2 %57 = load %56 store %57, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@577b4fd6 store 0, @__CS_round store 0, @__CS_thread_index %58 = load @__CS_round store %58, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@155b99c3 store 1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@390d209a store @main_thread, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3e32ccfe store 1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@333a3111 %59 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7a662334 %60 = zext i8 %59 to i32 %61 = icmp eq %60 1 br %61, %62, %75 62: %63 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2abfc512 store %63, @__CS_round store 0, @__CS_ret %64 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@242a987 %65 = call *i8 %64(*i8 null) %66 = load @__CS_ret %67 = zext i8 %66 to i32 %68 = icmp ne %67 1 br %68, %69, %74 69: %70 = load @__CS_round %71 = zext i8 %70 to i64 %72 = getelementptr @__CS_thread_status, 0, %71 %73 = getelementptr %72, 0, 0 store 2, %73 br %74 74: br %75 75: %76 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6012b267 %77 = zext i8 %76 to i32 %78 = icmp eq %77 1 br %78, %79, %92 79: %80 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ba642d2 store %80, @__CS_round store 0, @__CS_ret %81 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7fe595e1 %82 = call *i8 %81(*i8 null) %83 = load @__CS_ret %84 = zext i8 %83 to i32 %85 = icmp ne %84 1 br %85, %86, %91 86: %87 = load @__CS_round %88 = zext i8 %87 to i64 %89 = getelementptr @__CS_thread_status, 0, %88 %90 = getelementptr %89, 0, 1 store 2, %90 br %91 91: br %92 92: %93 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@687c050b %94 = zext i8 %93 to i32 %95 = icmp eq %94 1 br %95, %96, %109 96: %97 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1d0813e9 store %97, @__CS_round store 0, @__CS_ret %98 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4217248 %99 = call *i8 %98(*i8 null) %100 = load @__CS_ret %101 = zext i8 %100 to i32 %102 = icmp ne %101 1 br %102, %103, %108 103: %104 = load @__CS_round %105 = zext i8 %104 to i64 %106 = getelementptr @__CS_thread_status, 0, %105 %107 = getelementptr %106, 0, 2 store 2, %107 br %108 108: br %109 109: %110 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5738b5b0 %111 = zext i8 %110 to i32 %112 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %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@5f64a601 %119 = zext i8 %118 to i32 %120 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %121 = getelementptr %120, 0, 0 %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@2ae715f %127 = zext i8 %126 to i32 %128 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %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@d92e070 %135 = zext i8 %134 to i32 %136 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %137 = getelementptr %136, 0, 1 %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@1f154147 %143 = zext i8 %142 to i32 %144 = getelementptr %__CS_cp___CS_thread_status, 0, 1 %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@65bbb80a %151 = zext i8 %150 to i32 %152 = getelementptr %__CS_cp___CS_thread_status, 0, 2 %153 = getelementptr %152, 0, 2 %154 = load %153 %155 = zext i8 %154 to i32 %156 = icmp eq %151 %155 %157 = zext i1 %156 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %157) %158 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@146e096b %159 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %160 = getelementptr %159, 0, 0 %161 = load %160 %162 = icmp eq %158 %161 %163 = zext i1 %162 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %163) %164 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@e65faf6 %165 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %166 = getelementptr %165, 0, 0 %167 = load %166 %168 = icmp eq %164 %167 %169 = zext i1 %168 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %169) %170 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bcf8d04 %171 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %172 = getelementptr %171, 0, 1 %173 = load %172 %174 = icmp eq %170 %173 %175 = zext i1 %174 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %175) %176 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@38c199f %177 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %178 = getelementptr %177, 0, 1 %179 = load %178 %180 = icmp eq %176 %179 %181 = zext i1 %180 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %181) %182 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@67cd6dd4 %183 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 %184 = getelementptr %183, 0, 2 %185 = load %184 %186 = icmp eq %182 %185 %187 = zext i1 %186 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %187) %188 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46de9991 %189 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 %190 = getelementptr %189, 0, 2 %191 = load %190 %192 = icmp eq %188 %191 %193 = zext i1 %192 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %193) %194 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@13e8be3 %195 = getelementptr %__CS_cp_x, 0, 1 %196 = load %195 %197 = icmp eq %194 %196 %198 = zext i1 %197 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %198) %199 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@621d3aba %200 = getelementptr %__CS_cp_x, 0, 2 %201 = load %200 %202 = icmp eq %199 %201 %203 = zext i1 %202 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %203) %204 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6eb248e0 %205 = getelementptr %__CS_cp_y, 0, 1 %206 = load %205 %207 = icmp eq %204 %206 %208 = zext i1 %207 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %208) %209 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5c9256b6 %210 = getelementptr %__CS_cp_y, 0, 2 %211 = load %210 %212 = icmp eq %209 %211 %213 = zext i1 %212 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %213) %214 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2986bf54 %215 = getelementptr %__CS_cp_b1, 0, 1 %216 = load %215 %217 = icmp eq %214 %216 %218 = zext i1 %217 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %218) %219 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@22458834 %220 = getelementptr %__CS_cp_b1, 0, 2 %221 = load %220 %222 = icmp eq %219 %221 %223 = zext i1 %222 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %223) %224 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5ecc21d4 %225 = getelementptr %__CS_cp_b2, 0, 1 %226 = load %225 %227 = icmp eq %224 %226 %228 = zext i1 %227 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %228) %229 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@10a5fb5d %230 = getelementptr %__CS_cp_b2, 0, 2 %231 = load %230 %232 = icmp eq %229 %231 %233 = zext i1 %232 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %233) %234 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@c458a02 %235 = getelementptr %__CS_cp_X, 0, 1 %236 = load %235 %237 = icmp eq %234 %236 %238 = zext i1 %237 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %238) %239 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2cfa796 %240 = getelementptr %__CS_cp_X, 0, 2 %241 = load %240 %242 = icmp eq %239 %241 %243 = zext i1 %242 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %243) %244 = load @__CS_error %245 = zext i8 %244 to i32 %246 = icmp ne %245 1 %247 = zext i1 %246 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %247) %248 = load %1 ret %248 Analyze Termination of all function calls matching the pattern: main()