6.51/3.32 MAYBE 6.91/3.40 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 6.91/3.40 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.91/3.40 6.91/3.40 6.91/3.40 Termination of the given C Problem could not be shown: 6.91/3.40 6.91/3.40 (0) C Problem 6.91/3.40 (1) CToLLVMProof [EQUIVALENT, 261 ms] 6.91/3.40 (2) LLVM problem 6.91/3.40 6.91/3.40 6.91/3.40 ---------------------------------------- 6.91/3.40 6.91/3.40 (0) 6.91/3.40 Obligation: 6.91/3.40 c file /export/starexec/sandbox/benchmark/theBenchmark.c 6.91/3.40 ---------------------------------------- 6.91/3.40 6.91/3.40 (1) CToLLVMProof (EQUIVALENT) 6.91/3.40 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 6.91/3.40 ---------------------------------------- 6.91/3.40 6.91/3.40 (2) 6.91/3.40 Obligation: 6.91/3.40 LLVM Problem 6.91/3.40 6.91/3.40 Aliases: 6.91/3.40 6.91/3.40 Data layout: 6.91/3.40 6.91/3.40 "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" 6.91/3.40 6.91/3.40 Machine: 6.91/3.40 6.91/3.40 "x86_64-pc-linux-gnu" 6.91/3.40 6.91/3.40 Type definitions: 6.91/3.40 6.91/3.40 union.__CS__u --> BasicStructureType(elementType: [3 x i32]) 6.91/3.40 6.91/3.40 Global variables: 6.91/3.40 6.91/3.40 Name: __CS_round initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 6.91/3.40 6.91/3.40 Name: __CS_ret initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 6.91/3.40 6.91/3.40 Name: __CS_ret_PREEMPTED initVal: 1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null 6.91/3.40 6.91/3.40 Name: __CS_ret_ERROR initVal: 2 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null 6.91/3.40 6.91/3.40 Name: __CS_ret_FINISHED initVal: 4 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null 6.91/3.40 6.91/3.40 Name: __CS_error initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 6.91/3.40 6.91/3.40 Name: __THREAD_UNUSED initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null 6.91/3.40 6.91/3.40 Name: __THREAD_RUNNING initVal: 1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null 6.91/3.40 6.91/3.40 Name: __THREAD_FINISHED initVal: 2 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: true linkageType: null section: null 6.91/3.40 6.91/3.40 Name: __CS_thread_index initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 6.91/3.40 6.91/3.40 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 6.91/3.40 6.91/3.40 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 6.91/3.40 6.91/3.40 Name: __CS_thread_allocated initVal: (0,0,0) type: [3 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 6.91/3.40 6.91/3.40 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 6.91/3.40 6.91/3.40 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 6.91/3.40 6.91/3.40 Name: flag1 initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 6.91/3.40 6.91/3.40 Name: flag2 initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 6.91/3.40 6.91/3.40 Name: x initVal: (0,0,0) type: [3 x i32] addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 6.91/3.40 6.91/3.40 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 6.91/3.40 6.91/3.40 Function declarations and definitions: 6.91/3.40 6.91/3.40 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 6.91/3.40 *BasicFunctionTypename: "__VERIFIER_assume" returnParam: BasicVoidType parameters: (i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.40 *BasicFunctionTypename: "nondet_int" returnParam: i32 parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 6.91/3.40 *BasicFunctionTypename: "__VERIFIER_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (cond i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.40 0: 6.91/3.40 %1 = alloca i32, align 4 6.91/3.40 store %cond, %1 6.91/3.40 %2 = load %1 6.91/3.40 %3 = icmp ne %2 0 6.91/3.40 br %3, %6, %4 6.91/3.40 4: 6.91/3.40 br %5 6.91/3.40 5: 6.91/3.40 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 6.91/3.40 unreachable 6.91/3.40 6: 6.91/3.40 ret void 6.91/3.40 6.91/3.40 *BasicFunctionTypename: "__CS_cs" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.40 0: 6.91/3.40 %k = alloca i8, align 1 6.91/3.40 %1 = load @__CS_round 6.91/3.40 %2 = zext i8 %1 to i32 6.91/3.40 %3 = load %k 6.91/3.40 %4 = zext i8 %3 to i32 6.91/3.40 %5 = add %2 %4 6.91/3.40 %6 = icmp slt %5 3 6.91/3.40 %7 = zext i1 %6 to i32 6.91/3.40 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %7) 6.91/3.40 %8 = load %k 6.91/3.40 %9 = zext i8 %8 to i32 6.91/3.40 %10 = load @__CS_round 6.91/3.40 %11 = zext i8 %10 to i32 6.91/3.40 %12 = add %11 %9 6.91/3.40 %13 = trunc i32 %12 to i8 6.91/3.40 store %13, @__CS_round 6.91/3.40 %14 = call i32 (...)* @nondet_int() 6.91/3.40 %15 = icmp ne %14 0 6.91/3.40 br %15, %16, %21 6.91/3.40 16: 6.91/3.40 %17 = load @__CS_round 6.91/3.40 %18 = zext i8 %17 to i32 6.91/3.40 %19 = icmp eq %18 2 6.91/3.40 br %19, %20, %21 6.91/3.40 20: 6.91/3.40 br %24 6.91/3.40 21: 6.91/3.40 %22 = load @__CS_ret 6.91/3.40 %23 = zext i8 %22 to i32 6.91/3.40 br %24 6.91/3.40 24: 6.91/3.40 %25 = phi [1, %20], [%23, %21] 6.91/3.40 %26 = trunc i32 %25 to i8 6.91/3.40 store %26, @__CS_ret 6.91/3.40 ret void 6.91/3.40 6.91/3.40 *BasicFunctionTypename: "__CS_pthread_mutex_init" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (mutex *i8, attr *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.40 0: 6.91/3.40 %1 = alloca *i8, align 8 6.91/3.40 %2 = alloca *i8, align 8 6.91/3.40 store %mutex, %1 6.91/3.40 store %attr, %2 6.91/3.40 ret 0 6.91/3.40 6.91/3.40 *BasicFunctionTypename: "__CS_pthread_mutex_destroy" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.40 0: 6.91/3.40 %1 = alloca *i8, align 8 6.91/3.40 store %lock, %1 6.91/3.40 %2 = load %1 6.91/3.40 %3 = load %2 6.91/3.40 %4 = zext i8 %3 to i32 6.91/3.40 %5 = load @__CS_thread_index 6.91/3.40 %6 = zext i8 %5 to i32 6.91/3.40 %7 = icmp ne %4 %6 6.91/3.40 br %7, %8, %14 6.91/3.40 8: 6.91/3.40 %9 = load %1 6.91/3.40 %10 = load %9 6.91/3.40 %11 = zext i8 %10 to i32 6.91/3.40 %12 = icmp ne %11 0 6.91/3.40 br %12, %13, %14 6.91/3.40 13: 6.91/3.40 store 1, @__CS_error 6.91/3.40 store 2, @__CS_ret 6.91/3.40 br %16 6.91/3.40 14: 6.91/3.40 %15 = load %1 6.91/3.40 store 0, %15 6.91/3.40 br %16 6.91/3.40 16: 6.91/3.40 ret 0 6.91/3.40 6.91/3.40 *BasicFunctionTypename: "__CS_pthread_mutex_lock" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.40 0: 6.91/3.40 %1 = alloca i32, align 4 6.91/3.40 %2 = alloca *i8, align 8 6.91/3.40 store %lock, %2 6.91/3.40 %3 = load %2 6.91/3.40 %4 = load %3 6.91/3.40 %5 = zext i8 %4 to i32 6.91/3.40 %6 = icmp eq %5 0 6.91/3.40 br %6, %7, %13 6.91/3.40 7: 6.91/3.40 %8 = load @__CS_thread_index 6.91/3.40 %9 = zext i8 %8 to i32 6.91/3.40 %10 = add %9 1 6.91/3.40 %11 = trunc i32 %10 to i8 6.91/3.40 %12 = load %2 6.91/3.40 store %11, %12 6.91/3.40 br %14 6.91/3.40 13: 6.91/3.40 store 1, @__CS_ret 6.91/3.40 store 1, %1 6.91/3.40 br %15 6.91/3.40 14: 6.91/3.40 store 0, %1 6.91/3.40 br %15 6.91/3.40 15: 6.91/3.40 %16 = load %1 6.91/3.40 ret %16 6.91/3.40 6.91/3.40 *BasicFunctionTypename: "__CS_pthread_mutex_unlock" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.40 0: 6.91/3.40 %1 = alloca i32, align 4 6.91/3.40 %2 = alloca *i8, align 8 6.91/3.40 store %lock, %2 6.91/3.40 %3 = load %2 6.91/3.40 %4 = load %3 6.91/3.40 %5 = zext i8 %4 to i32 6.91/3.40 %6 = load @__CS_thread_index 6.91/3.40 %7 = zext i8 %6 to i32 6.91/3.40 %8 = add %7 1 6.91/3.40 %9 = icmp ne %5 %8 6.91/3.40 br %9, %10, %11 6.91/3.40 10: 6.91/3.40 store 1, @__CS_error 6.91/3.40 store 2, @__CS_ret 6.91/3.40 store 1, %1 6.91/3.40 br %14 6.91/3.40 11: 6.91/3.40 %12 = load %2 6.91/3.40 store 0, %12 6.91/3.40 br %13 6.91/3.40 13: 6.91/3.40 store 0, %1 6.91/3.40 br %14 6.91/3.40 14: 6.91/3.40 %15 = load %1 6.91/3.40 ret %15 6.91/3.40 6.91/3.40 *BasicFunctionTypename: "__CS_pthread_cond_init" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8, attr *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.40 0: 6.91/3.40 %1 = alloca *i8, align 8 6.91/3.40 %2 = alloca *i8, align 8 6.91/3.40 store %cond, %1 6.91/3.40 store %attr, %2 6.91/3.40 ret 0 6.91/3.40 6.91/3.40 *BasicFunctionTypename: "__CS_pthread_cond_signal" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.41 0: 6.91/3.41 %1 = alloca *i8, align 8 6.91/3.41 %j = alloca i32, align 4 6.91/3.41 store %cond, %1 6.91/3.41 store 0, %j 6.91/3.41 br %2 6.91/3.41 2: 6.91/3.41 %3 = load %j 6.91/3.41 %4 = icmp sle %3 2 6.91/3.41 br %4, %5, %26 6.91/3.41 5: 6.91/3.41 %6 = load %j 6.91/3.41 %7 = sext i32 %6 to i64 6.91/3.41 %8 = load @__CS_round 6.91/3.41 %9 = zext i8 %8 to i64 6.91/3.41 %10 = getelementptr @__CS_thread_lockedon, 0, %9 6.91/3.41 %11 = getelementptr %10, 0, %7 6.91/3.41 %12 = load %11 6.91/3.41 %13 = load %1 6.91/3.41 %14 = icmp eq %12 %13 6.91/3.41 br %14, %15, %22 6.91/3.41 15: 6.91/3.41 %16 = load %j 6.91/3.41 %17 = sext i32 %16 to i64 6.91/3.41 %18 = load @__CS_round 6.91/3.41 %19 = zext i8 %18 to i64 6.91/3.41 %20 = getelementptr @__CS_thread_lockedon, 0, %19 6.91/3.41 %21 = getelementptr %20, 0, %17 6.91/3.41 store null, %21 6.91/3.41 br %22 6.91/3.41 22: 6.91/3.41 br %23 6.91/3.41 23: 6.91/3.41 %24 = load %j 6.91/3.41 %25 = add %24 1 6.91/3.41 store %25, %j 6.91/3.41 br %2 6.91/3.41 26: 6.91/3.41 ret 0 6.91/3.41 6.91/3.41 *BasicFunctionTypename: "__CS_pthread_cond_broadcast" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.41 0: 6.91/3.41 %1 = alloca *i8, align 8 6.91/3.41 %j = alloca i32, align 4 6.91/3.41 store %cond, %1 6.91/3.41 store 0, %j 6.91/3.41 br %2 6.91/3.41 2: 6.91/3.41 %3 = load %j 6.91/3.41 %4 = icmp sle %3 2 6.91/3.41 br %4, %5, %26 6.91/3.41 5: 6.91/3.41 %6 = load %j 6.91/3.41 %7 = sext i32 %6 to i64 6.91/3.41 %8 = load @__CS_round 6.91/3.41 %9 = zext i8 %8 to i64 6.91/3.41 %10 = getelementptr @__CS_thread_lockedon, 0, %9 6.91/3.41 %11 = getelementptr %10, 0, %7 6.91/3.41 %12 = load %11 6.91/3.41 %13 = load %1 6.91/3.41 %14 = icmp eq %12 %13 6.91/3.41 br %14, %15, %22 6.91/3.41 15: 6.91/3.41 %16 = load %j 6.91/3.41 %17 = sext i32 %16 to i64 6.91/3.41 %18 = load @__CS_round 6.91/3.41 %19 = zext i8 %18 to i64 6.91/3.41 %20 = getelementptr @__CS_thread_lockedon, 0, %19 6.91/3.41 %21 = getelementptr %20, 0, %17 6.91/3.41 store null, %21 6.91/3.41 br %22 6.91/3.41 22: 6.91/3.41 br %23 6.91/3.41 23: 6.91/3.41 %24 = load %j 6.91/3.41 %25 = add %24 1 6.91/3.41 store %25, %j 6.91/3.41 br %2 6.91/3.41 26: 6.91/3.41 ret 0 6.91/3.41 6.91/3.41 *BasicFunctionTypename: "__CS_pthread_cond_wait" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (cond *i8, lock *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.41 0: 6.91/3.41 %1 = alloca i32, align 4 6.91/3.41 %2 = alloca *i8, align 8 6.91/3.41 %3 = alloca *i8, align 8 6.91/3.41 store %cond, %2 6.91/3.41 store %lock, %3 6.91/3.41 %4 = load %3 6.91/3.41 %5 = load %4 6.91/3.41 %6 = zext i8 %5 to i32 6.91/3.41 %7 = load @__CS_thread_index 6.91/3.41 %8 = zext i8 %7 to i32 6.91/3.41 %9 = add %8 1 6.91/3.41 %10 = icmp ne %6 %9 6.91/3.41 br %10, %11, %12 6.91/3.41 11: 6.91/3.41 store 1, @__CS_error 6.91/3.41 store 2, @__CS_ret 6.91/3.41 store 1, %1 6.91/3.41 br %34 6.91/3.41 12: 6.91/3.41 %13 = load %3 6.91/3.41 store 0, %13 6.91/3.41 br %14 6.91/3.41 14: 6.91/3.41 %15 = load %2 6.91/3.41 %16 = load @__CS_thread_index 6.91/3.41 %17 = zext i8 %16 to i64 6.91/3.41 %18 = load @__CS_round 6.91/3.41 %19 = zext i8 %18 to i64 6.91/3.41 %20 = getelementptr @__CS_thread_lockedon, 0, %19 6.91/3.41 %21 = getelementptr %20, 0, %17 6.91/3.41 store %15, %21 6.91/3.41 store 1, @__CS_ret 6.91/3.41 %22 = load %3 6.91/3.41 %23 = load %22 6.91/3.41 %24 = zext i8 %23 to i32 6.91/3.41 %25 = icmp eq %24 0 6.91/3.41 br %25, %26, %32 6.91/3.41 26: 6.91/3.41 %27 = load @__CS_thread_index 6.91/3.41 %28 = zext i8 %27 to i32 6.91/3.41 %29 = add %28 1 6.91/3.41 %30 = trunc i32 %29 to i8 6.91/3.41 %31 = load %3 6.91/3.41 store %30, %31 6.91/3.41 br %33 6.91/3.41 32: 6.91/3.41 store 1, @__CS_ret 6.91/3.41 store 1, %1 6.91/3.41 br %34 6.91/3.41 33: 6.91/3.41 store 0, %1 6.91/3.41 br %34 6.91/3.41 34: 6.91/3.41 %35 = load %1 6.91/3.41 ret %35 6.91/3.41 6.91/3.41 *BasicFunctionTypename: "__CS_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (expr i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.41 0: 6.91/3.41 %1 = alloca i32, align 4 6.91/3.41 store %expr, %1 6.91/3.41 %2 = load %1 6.91/3.41 %3 = icmp ne %2 0 6.91/3.41 br %3, %5, %4 6.91/3.41 4: 6.91/3.41 store 1, @__CS_error 6.91/3.41 store 2, @__CS_ret 6.91/3.41 br %5 6.91/3.41 5: 6.91/3.41 ret void 6.91/3.41 6.91/3.41 *BasicFunctionTypename: "__CS_assume" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (expr i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.41 0: 6.91/3.41 %1 = alloca i32, align 4 6.91/3.41 store %expr, %1 6.91/3.41 %2 = load %1 6.91/3.41 %3 = icmp ne %2 0 6.91/3.41 br %3, %5, %4 6.91/3.41 4: 6.91/3.41 store 1, @__CS_ret 6.91/3.41 br %5 6.91/3.41 5: 6.91/3.41 ret void 6.91/3.41 6.91/3.41 *BasicFunctionTypename: "__CS_pthread_join" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (thread i8 zeroext, value_ptr **i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.41 0: 6.91/3.41 %1 = alloca i32, align 4 6.91/3.41 %2 = alloca i8, align 1 6.91/3.41 %3 = alloca **i8, align 8 6.91/3.41 store %thread, %2 6.91/3.41 store %value_ptr, %3 6.91/3.41 %4 = load %2 6.91/3.41 %5 = zext i8 %4 to i32 6.91/3.41 %6 = icmp ne %5 123 6.91/3.41 br %6, %7, %12 6.91/3.41 7: 6.91/3.41 %8 = load %2 6.91/3.41 %9 = zext i8 %8 to i32 6.91/3.41 %10 = icmp sgt %9 3 6.91/3.41 br %10, %11, %12 6.91/3.41 11: 6.91/3.41 store 1, @__CS_error 6.91/3.41 store 2, @__CS_ret 6.91/3.41 store 0, %1 6.91/3.41 br %49 6.91/3.41 12: 6.91/3.41 %13 = load %2 6.91/3.41 %14 = zext i8 %13 to i32 6.91/3.41 %15 = icmp eq %14 123 6.91/3.41 br %15, %26, %16 6.91/3.41 16: 6.91/3.41 %17 = load %2 6.91/3.41 %18 = zext i8 %17 to i64 6.91/3.41 %19 = load @__CS_round 6.91/3.41 %20 = zext i8 %19 to i64 6.91/3.41 %21 = getelementptr @__CS_thread_status, 0, %20 6.91/3.41 %22 = getelementptr %21, 0, %18 6.91/3.41 %23 = load %22 6.91/3.41 %24 = zext i8 %23 to i32 6.91/3.41 %25 = icmp eq %24 1 6.91/3.41 br %25, %26, %27 6.91/3.41 26: 6.91/3.41 store 1, @__CS_ret 6.91/3.41 store 0, %1 6.91/3.41 br %49 6.91/3.41 27: 6.91/3.41 %28 = load %2 6.91/3.41 %29 = zext i8 %28 to i64 6.91/3.41 %30 = load @__CS_round 6.91/3.41 %31 = zext i8 %30 to i64 6.91/3.41 %32 = getelementptr @__CS_thread_status, 0, %31 6.91/3.41 %33 = getelementptr %32, 0, %29 6.91/3.41 %34 = load %33 6.91/3.41 %35 = zext i8 %34 to i32 6.91/3.41 %36 = icmp eq %35 0 6.91/3.41 br %36, %37, %38 6.91/3.41 37: 6.91/3.41 store 1, @__CS_error 6.91/3.41 store 2, @__CS_ret 6.91/3.41 store 0, %1 6.91/3.41 br %49 6.91/3.41 38: 6.91/3.41 %39 = load %2 6.91/3.41 %40 = zext i8 %39 to i64 6.91/3.41 %41 = load @__CS_round 6.91/3.41 %42 = zext i8 %41 to i64 6.91/3.41 %43 = getelementptr @__CS_thread_status, 0, %42 6.91/3.41 %44 = getelementptr %43, 0, %40 6.91/3.41 %45 = load %44 6.91/3.41 %46 = zext i8 %45 to i32 6.91/3.41 %47 = icmp eq %46 2 6.91/3.41 %48 = zext i1 %47 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %48) 6.91/3.41 store 0, %1 6.91/3.41 br %49 6.91/3.41 49: 6.91/3.41 %50 = load %1 6.91/3.41 ret %50 6.91/3.41 6.91/3.41 *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 6.91/3.41 0: 6.91/3.41 %1 = alloca i32, align 4 6.91/3.41 %2 = alloca *i8, align 8 6.91/3.41 %3 = alloca *i8, align 8 6.91/3.41 %4 = alloca *BasicFunctionType varArgs: falsereturnType: *i8paramTypes: (*i8), align 8 6.91/3.41 %5 = alloca *i8, align 8 6.91/3.41 store %id1, %2 6.91/3.41 store %attr, %3 6.91/3.41 store %t1, %4 6.91/3.41 store %arg, %5 6.91/3.41 %6 = load @__CS_thread_index 6.91/3.41 %7 = zext i8 %6 to i32 6.91/3.41 %8 = icmp eq %7 2 6.91/3.41 br %8, %9, %11 6.91/3.41 9: 6.91/3.41 %10 = load %2 6.91/3.41 store 123, %10 6.91/3.41 store -1, %1 6.91/3.41 br %35 6.91/3.41 11: 6.91/3.41 %12 = load @__CS_thread_index 6.91/3.41 %13 = add %12 1 6.91/3.41 store %13, @__CS_thread_index 6.91/3.41 %14 = load @__CS_thread_index 6.91/3.41 %15 = zext i8 %14 to i64 6.91/3.41 %16 = getelementptr @__CS_thread_allocated, 0, %15 6.91/3.41 store 1, %16 6.91/3.41 %17 = load @__CS_round 6.91/3.41 %18 = load @__CS_thread_index 6.91/3.41 %19 = zext i8 %18 to i64 6.91/3.41 %20 = getelementptr @__CS_thread_born_round, 0, %19 6.91/3.41 store %17, %20 6.91/3.41 %21 = load %4 6.91/3.41 %22 = load @__CS_thread_index 6.91/3.41 %23 = zext i8 %22 to i64 6.91/3.41 %24 = getelementptr @__CS_thread, 0, %23 6.91/3.41 store %21, %24 6.91/3.41 %25 = load @__CS_thread_index 6.91/3.41 %26 = zext i8 %25 to i64 6.91/3.41 %27 = load @__CS_round 6.91/3.41 %28 = zext i8 %27 to i64 6.91/3.41 %29 = getelementptr @__CS_thread_status, 0, %28 6.91/3.41 %30 = getelementptr %29, 0, %26 6.91/3.41 store 1, %30 6.91/3.41 %31 = load @__CS_thread_index 6.91/3.41 %32 = load %2 6.91/3.41 store %31, %32 6.91/3.41 %33 = load @__CS_thread_index 6.91/3.41 %34 = zext i8 %33 to i32 6.91/3.41 store %34, %1 6.91/3.41 br %35 6.91/3.41 35: 6.91/3.41 %36 = load %1 6.91/3.41 ret %36 6.91/3.41 6.91/3.41 *BasicFunctionTypename: "thr1" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.41 0: 6.91/3.41 %1 = alloca *i8, align 8 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %2 = load @__CS_ret 6.91/3.41 %3 = zext i8 %2 to i32 6.91/3.41 %4 = icmp ne %3 0 6.91/3.41 br %4, %5, %6 6.91/3.41 5: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 6: 6.91/3.41 %7 = load @__CS_round 6.91/3.41 %8 = zext i8 %7 to i64 6.91/3.41 %9 = getelementptr @flag1, 0, %8 6.91/3.41 store 1, %9 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %10 = load @__CS_ret 6.91/3.41 %11 = zext i8 %10 to i32 6.91/3.41 %12 = icmp ne %11 0 6.91/3.41 br %12, %13, %14 6.91/3.41 13: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 14: 6.91/3.41 br %15 6.91/3.41 15: 6.91/3.41 %16 = load @__CS_round 6.91/3.41 %17 = zext i8 %16 to i64 6.91/3.41 %18 = getelementptr @flag2, 0, %17 6.91/3.41 %19 = load %18 6.91/3.41 %20 = icmp sge %19 3 6.91/3.41 br %20, %21, %27 6.91/3.41 21: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %22 = load @__CS_ret 6.91/3.41 %23 = zext i8 %22 to i32 6.91/3.41 %24 = icmp ne %23 0 6.91/3.41 br %24, %25, %26 6.91/3.41 25: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 26: 6.91/3.41 br %15 6.91/3.41 27: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %28 = load @__CS_ret 6.91/3.41 %29 = zext i8 %28 to i32 6.91/3.41 %30 = icmp ne %29 0 6.91/3.41 br %30, %31, %32 6.91/3.41 31: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 32: 6.91/3.41 %33 = load @__CS_round 6.91/3.41 %34 = zext i8 %33 to i64 6.91/3.41 %35 = getelementptr @flag1, 0, %34 6.91/3.41 store 3, %35 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %36 = load @__CS_ret 6.91/3.41 %37 = zext i8 %36 to i32 6.91/3.41 %38 = icmp ne %37 0 6.91/3.41 br %38, %39, %40 6.91/3.41 39: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 40: 6.91/3.41 %41 = load @__CS_round 6.91/3.41 %42 = zext i8 %41 to i64 6.91/3.41 %43 = getelementptr @flag2, 0, %42 6.91/3.41 %44 = load %43 6.91/3.41 %45 = icmp eq %44 1 6.91/3.41 br %45, %46, %78 6.91/3.41 46: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %47 = load @__CS_ret 6.91/3.41 %48 = zext i8 %47 to i32 6.91/3.41 %49 = icmp ne %48 0 6.91/3.41 br %49, %50, %51 6.91/3.41 50: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 51: 6.91/3.41 %52 = load @__CS_round 6.91/3.41 %53 = zext i8 %52 to i64 6.91/3.41 %54 = getelementptr @flag1, 0, %53 6.91/3.41 store 2, %54 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %55 = load @__CS_ret 6.91/3.41 %56 = zext i8 %55 to i32 6.91/3.41 %57 = icmp ne %56 0 6.91/3.41 br %57, %58, %59 6.91/3.41 58: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 59: 6.91/3.41 br %60 6.91/3.41 60: 6.91/3.41 %61 = load @__CS_round 6.91/3.41 %62 = zext i8 %61 to i64 6.91/3.41 %63 = getelementptr @flag2, 0, %62 6.91/3.41 %64 = load %63 6.91/3.41 %65 = icmp ne %64 4 6.91/3.41 br %65, %66, %72 6.91/3.41 66: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %67 = load @__CS_ret 6.91/3.41 %68 = zext i8 %67 to i32 6.91/3.41 %69 = icmp ne %68 0 6.91/3.41 br %69, %70, %71 6.91/3.41 70: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 71: 6.91/3.41 br %60 6.91/3.41 72: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %73 = load @__CS_ret 6.91/3.41 %74 = zext i8 %73 to i32 6.91/3.41 %75 = icmp ne %74 0 6.91/3.41 br %75, %76, %77 6.91/3.41 76: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 77: 6.91/3.41 br %78 6.91/3.41 78: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %79 = load @__CS_ret 6.91/3.41 %80 = zext i8 %79 to i32 6.91/3.41 %81 = icmp ne %80 0 6.91/3.41 br %81, %82, %83 6.91/3.41 82: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 83: 6.91/3.41 %84 = load @__CS_round 6.91/3.41 %85 = zext i8 %84 to i64 6.91/3.41 %86 = getelementptr @flag1, 0, %85 6.91/3.41 store 4, %86 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %87 = load @__CS_ret 6.91/3.41 %88 = zext i8 %87 to i32 6.91/3.41 %89 = icmp ne %88 0 6.91/3.41 br %89, %90, %91 6.91/3.41 90: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 91: 6.91/3.41 br %92 6.91/3.41 92: 6.91/3.41 %93 = load @__CS_round 6.91/3.41 %94 = zext i8 %93 to i64 6.91/3.41 %95 = getelementptr @flag2, 0, %94 6.91/3.41 %96 = load %95 6.91/3.41 %97 = icmp sge %96 2 6.91/3.41 br %97, %98, %104 6.91/3.41 98: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %99 = load @__CS_ret 6.91/3.41 %100 = zext i8 %99 to i32 6.91/3.41 %101 = icmp ne %100 0 6.91/3.41 br %101, %102, %103 6.91/3.41 102: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 103: 6.91/3.41 br %92 6.91/3.41 104: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %105 = load @__CS_ret 6.91/3.41 %106 = zext i8 %105 to i32 6.91/3.41 %107 = icmp ne %106 0 6.91/3.41 br %107, %108, %109 6.91/3.41 108: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 109: 6.91/3.41 %110 = load @__CS_round 6.91/3.41 %111 = zext i8 %110 to i64 6.91/3.41 %112 = getelementptr @x, 0, %111 6.91/3.41 store 0, %112 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %113 = load @__CS_ret 6.91/3.41 %114 = zext i8 %113 to i32 6.91/3.41 %115 = icmp ne %114 0 6.91/3.41 br %115, %116, %117 6.91/3.41 116: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 117: 6.91/3.41 %118 = load @__CS_round 6.91/3.41 %119 = zext i8 %118 to i64 6.91/3.41 %120 = getelementptr @x, 0, %119 6.91/3.41 %121 = load %120 6.91/3.41 %122 = icmp sle %121 0 6.91/3.41 br %122, %130, %123 6.91/3.41 123: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %124 = load @__CS_ret 6.91/3.41 %125 = zext i8 %124 to i32 6.91/3.41 %126 = icmp ne %125 0 6.91/3.41 br %126, %127, %128 6.91/3.41 127: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 128: 6.91/3.41 br %129 6.91/3.41 129: 6.91/3.41 store 1, @__CS_error 6.91/3.41 store 2, @__CS_ret 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 130: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %131 = load @__CS_ret 6.91/3.41 %132 = zext i8 %131 to i32 6.91/3.41 %133 = icmp ne %132 0 6.91/3.41 br %133, %134, %135 6.91/3.41 134: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 135: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %136 = load @__CS_ret 6.91/3.41 %137 = zext i8 %136 to i32 6.91/3.41 %138 = icmp ne %137 0 6.91/3.41 br %138, %139, %140 6.91/3.41 139: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 140: 6.91/3.41 br %141 6.91/3.41 141: 6.91/3.41 %142 = load @__CS_round 6.91/3.41 %143 = zext i8 %142 to i64 6.91/3.41 %144 = getelementptr @flag2, 0, %143 6.91/3.41 %145 = load %144 6.91/3.41 %146 = icmp sle 2 %145 6.91/3.41 br %146, %147, %153 6.91/3.41 147: 6.91/3.41 %148 = load @__CS_round 6.91/3.41 %149 = zext i8 %148 to i64 6.91/3.41 %150 = getelementptr @flag2, 0, %149 6.91/3.41 %151 = load %150 6.91/3.41 %152 = icmp sle %151 3 6.91/3.41 br %153 6.91/3.41 153: 6.91/3.41 %154 = phi [0, %141], [%152, %147] 6.91/3.41 br %154, %155, %161 6.91/3.41 155: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %156 = load @__CS_ret 6.91/3.41 %157 = zext i8 %156 to i32 6.91/3.41 %158 = icmp ne %157 0 6.91/3.41 br %158, %159, %160 6.91/3.41 159: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 160: 6.91/3.41 br %141 6.91/3.41 161: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %162 = load @__CS_ret 6.91/3.41 %163 = zext i8 %162 to i32 6.91/3.41 %164 = icmp ne %163 0 6.91/3.41 br %164, %165, %166 6.91/3.41 165: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 166: 6.91/3.41 %167 = load @__CS_round 6.91/3.41 %168 = zext i8 %167 to i64 6.91/3.41 %169 = getelementptr @flag1, 0, %168 6.91/3.41 store 0, %169 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %170 = load @__CS_ret 6.91/3.41 %171 = zext i8 %170 to i32 6.91/3.41 %172 = icmp ne %171 0 6.91/3.41 br %172, %173, %174 6.91/3.41 173: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 174: 6.91/3.41 %175 = load %1 6.91/3.41 ret %175 6.91/3.41 6.91/3.41 *BasicFunctionTypename: "thr2" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.41 0: 6.91/3.41 %1 = alloca *i8, align 8 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %2 = load @__CS_ret 6.91/3.41 %3 = zext i8 %2 to i32 6.91/3.41 %4 = icmp ne %3 0 6.91/3.41 br %4, %5, %6 6.91/3.41 5: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 6: 6.91/3.41 %7 = load @__CS_round 6.91/3.41 %8 = zext i8 %7 to i64 6.91/3.41 %9 = getelementptr @flag2, 0, %8 6.91/3.41 store 1, %9 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %10 = load @__CS_ret 6.91/3.41 %11 = zext i8 %10 to i32 6.91/3.41 %12 = icmp ne %11 0 6.91/3.41 br %12, %13, %14 6.91/3.41 13: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 14: 6.91/3.41 br %15 6.91/3.41 15: 6.91/3.41 %16 = load @__CS_round 6.91/3.41 %17 = zext i8 %16 to i64 6.91/3.41 %18 = getelementptr @flag1, 0, %17 6.91/3.41 %19 = load %18 6.91/3.41 %20 = icmp sge %19 3 6.91/3.41 br %20, %21, %27 6.91/3.41 21: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %22 = load @__CS_ret 6.91/3.41 %23 = zext i8 %22 to i32 6.91/3.41 %24 = icmp ne %23 0 6.91/3.41 br %24, %25, %26 6.91/3.41 25: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 26: 6.91/3.41 br %15 6.91/3.41 27: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %28 = load @__CS_ret 6.91/3.41 %29 = zext i8 %28 to i32 6.91/3.41 %30 = icmp ne %29 0 6.91/3.41 br %30, %31, %32 6.91/3.41 31: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 32: 6.91/3.41 %33 = load @__CS_round 6.91/3.41 %34 = zext i8 %33 to i64 6.91/3.41 %35 = getelementptr @flag2, 0, %34 6.91/3.41 store 3, %35 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %36 = load @__CS_ret 6.91/3.41 %37 = zext i8 %36 to i32 6.91/3.41 %38 = icmp ne %37 0 6.91/3.41 br %38, %39, %40 6.91/3.41 39: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 40: 6.91/3.41 %41 = load @__CS_round 6.91/3.41 %42 = zext i8 %41 to i64 6.91/3.41 %43 = getelementptr @flag1, 0, %42 6.91/3.41 %44 = load %43 6.91/3.41 %45 = icmp eq %44 1 6.91/3.41 br %45, %46, %78 6.91/3.41 46: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %47 = load @__CS_ret 6.91/3.41 %48 = zext i8 %47 to i32 6.91/3.41 %49 = icmp ne %48 0 6.91/3.41 br %49, %50, %51 6.91/3.41 50: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 51: 6.91/3.41 %52 = load @__CS_round 6.91/3.41 %53 = zext i8 %52 to i64 6.91/3.41 %54 = getelementptr @flag2, 0, %53 6.91/3.41 store 2, %54 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %55 = load @__CS_ret 6.91/3.41 %56 = zext i8 %55 to i32 6.91/3.41 %57 = icmp ne %56 0 6.91/3.41 br %57, %58, %59 6.91/3.41 58: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 59: 6.91/3.41 br %60 6.91/3.41 60: 6.91/3.41 %61 = load @__CS_round 6.91/3.41 %62 = zext i8 %61 to i64 6.91/3.41 %63 = getelementptr @flag1, 0, %62 6.91/3.41 %64 = load %63 6.91/3.41 %65 = icmp ne %64 4 6.91/3.41 br %65, %66, %72 6.91/3.41 66: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %67 = load @__CS_ret 6.91/3.41 %68 = zext i8 %67 to i32 6.91/3.41 %69 = icmp ne %68 0 6.91/3.41 br %69, %70, %71 6.91/3.41 70: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 71: 6.91/3.41 br %60 6.91/3.41 72: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %73 = load @__CS_ret 6.91/3.41 %74 = zext i8 %73 to i32 6.91/3.41 %75 = icmp ne %74 0 6.91/3.41 br %75, %76, %77 6.91/3.41 76: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 77: 6.91/3.41 br %78 6.91/3.41 78: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %79 = load @__CS_ret 6.91/3.41 %80 = zext i8 %79 to i32 6.91/3.41 %81 = icmp ne %80 0 6.91/3.41 br %81, %82, %83 6.91/3.41 82: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 83: 6.91/3.41 %84 = load @__CS_round 6.91/3.41 %85 = zext i8 %84 to i64 6.91/3.41 %86 = getelementptr @flag2, 0, %85 6.91/3.41 store 4, %86 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %87 = load @__CS_ret 6.91/3.41 %88 = zext i8 %87 to i32 6.91/3.41 %89 = icmp ne %88 0 6.91/3.41 br %89, %90, %91 6.91/3.41 90: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 91: 6.91/3.41 br %92 6.91/3.41 92: 6.91/3.41 %93 = load @__CS_round 6.91/3.41 %94 = zext i8 %93 to i64 6.91/3.41 %95 = getelementptr @flag1, 0, %94 6.91/3.41 %96 = load %95 6.91/3.41 %97 = icmp sge %96 2 6.91/3.41 br %97, %98, %104 6.91/3.41 98: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %99 = load @__CS_ret 6.91/3.41 %100 = zext i8 %99 to i32 6.91/3.41 %101 = icmp ne %100 0 6.91/3.41 br %101, %102, %103 6.91/3.41 102: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 103: 6.91/3.41 br %92 6.91/3.41 104: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %105 = load @__CS_ret 6.91/3.41 %106 = zext i8 %105 to i32 6.91/3.41 %107 = icmp ne %106 0 6.91/3.41 br %107, %108, %109 6.91/3.41 108: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 109: 6.91/3.41 %110 = load @__CS_round 6.91/3.41 %111 = zext i8 %110 to i64 6.91/3.41 %112 = getelementptr @x, 0, %111 6.91/3.41 store 1, %112 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %113 = load @__CS_ret 6.91/3.41 %114 = zext i8 %113 to i32 6.91/3.41 %115 = icmp ne %114 0 6.91/3.41 br %115, %116, %117 6.91/3.41 116: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 117: 6.91/3.41 %118 = load @__CS_round 6.91/3.41 %119 = zext i8 %118 to i64 6.91/3.41 %120 = getelementptr @x, 0, %119 6.91/3.41 %121 = load %120 6.91/3.41 %122 = icmp sge %121 1 6.91/3.41 br %122, %130, %123 6.91/3.41 123: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %124 = load @__CS_ret 6.91/3.41 %125 = zext i8 %124 to i32 6.91/3.41 %126 = icmp ne %125 0 6.91/3.41 br %126, %127, %128 6.91/3.41 127: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 128: 6.91/3.41 br %129 6.91/3.41 129: 6.91/3.41 store 1, @__CS_error 6.91/3.41 store 2, @__CS_ret 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 130: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %131 = load @__CS_ret 6.91/3.41 %132 = zext i8 %131 to i32 6.91/3.41 %133 = icmp ne %132 0 6.91/3.41 br %133, %134, %135 6.91/3.41 134: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 135: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %136 = load @__CS_ret 6.91/3.41 %137 = zext i8 %136 to i32 6.91/3.41 %138 = icmp ne %137 0 6.91/3.41 br %138, %139, %140 6.91/3.41 139: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 140: 6.91/3.41 br %141 6.91/3.41 141: 6.91/3.41 %142 = load @__CS_round 6.91/3.41 %143 = zext i8 %142 to i64 6.91/3.41 %144 = getelementptr @flag1, 0, %143 6.91/3.41 %145 = load %144 6.91/3.41 %146 = icmp sle 2 %145 6.91/3.41 br %146, %147, %153 6.91/3.41 147: 6.91/3.41 %148 = load @__CS_round 6.91/3.41 %149 = zext i8 %148 to i64 6.91/3.41 %150 = getelementptr @flag1, 0, %149 6.91/3.41 %151 = load %150 6.91/3.41 %152 = icmp sle %151 3 6.91/3.41 br %153 6.91/3.41 153: 6.91/3.41 %154 = phi [0, %141], [%152, %147] 6.91/3.41 br %154, %155, %161 6.91/3.41 155: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %156 = load @__CS_ret 6.91/3.41 %157 = zext i8 %156 to i32 6.91/3.41 %158 = icmp ne %157 0 6.91/3.41 br %158, %159, %160 6.91/3.41 159: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 160: 6.91/3.41 br %141 6.91/3.41 161: 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %162 = load @__CS_ret 6.91/3.41 %163 = zext i8 %162 to i32 6.91/3.41 %164 = icmp ne %163 0 6.91/3.41 br %164, %165, %166 6.91/3.41 165: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 166: 6.91/3.41 %167 = load @__CS_round 6.91/3.41 %168 = zext i8 %167 to i64 6.91/3.41 %169 = getelementptr @flag2, 0, %168 6.91/3.41 store 0, %169 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %170 = load @__CS_ret 6.91/3.41 %171 = zext i8 %170 to i32 6.91/3.41 %172 = icmp ne %171 0 6.91/3.41 br %172, %173, %174 6.91/3.41 173: 6.91/3.41 store null, %1 6.91/3.41 br %174 6.91/3.41 174: 6.91/3.41 %175 = load %1 6.91/3.41 ret %175 6.91/3.41 6.91/3.41 *BasicFunctionTypename: "main_thread" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: (arg *i8) variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.41 0: 6.91/3.41 %1 = alloca *i8, align 8 6.91/3.41 %2 = alloca *i8, align 8 6.91/3.41 %t1 = alloca i8, align 1 6.91/3.41 %t2 = alloca i8, align 1 6.91/3.41 store %arg, %2 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %3 = load @__CS_ret 6.91/3.41 %4 = zext i8 %3 to i32 6.91/3.41 %5 = icmp ne %4 0 6.91/3.41 br %5, %6, %7 6.91/3.41 6: 6.91/3.41 store null, %1 6.91/3.41 br %33 6.91/3.41 7: 6.91/3.41 %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) 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %9 = load @__CS_ret 6.91/3.41 %10 = zext i8 %9 to i32 6.91/3.41 %11 = icmp ne %10 0 6.91/3.41 br %11, %12, %13 6.91/3.41 12: 6.91/3.41 store null, %1 6.91/3.41 br %33 6.91/3.41 13: 6.91/3.41 %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) 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %15 = load @__CS_ret 6.91/3.41 %16 = zext i8 %15 to i32 6.91/3.41 %17 = icmp ne %16 0 6.91/3.41 br %17, %18, %19 6.91/3.41 18: 6.91/3.41 store null, %1 6.91/3.41 br %33 6.91/3.41 19: 6.91/3.41 %20 = load %t1 6.91/3.41 %21 = call i32 @__CS_pthread_join(i8 zeroext %20, **i8 null) 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %22 = load @__CS_ret 6.91/3.41 %23 = zext i8 %22 to i32 6.91/3.41 %24 = icmp ne %23 0 6.91/3.41 br %24, %25, %26 6.91/3.41 25: 6.91/3.41 store null, %1 6.91/3.41 br %33 6.91/3.41 26: 6.91/3.41 %27 = load %t2 6.91/3.41 %28 = call i32 @__CS_pthread_join(i8 zeroext %27, **i8 null) 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__CS_cs() 6.91/3.41 %29 = load @__CS_ret 6.91/3.41 %30 = zext i8 %29 to i32 6.91/3.41 %31 = icmp ne %30 0 6.91/3.41 br %31, %32, %33 6.91/3.41 32: 6.91/3.41 store null, %1 6.91/3.41 br %33 6.91/3.41 33: 6.91/3.41 %34 = load %1 6.91/3.41 ret %34 6.91/3.41 6.91/3.41 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.91/3.41 0: 6.91/3.41 %1 = alloca i32, align 4 6.91/3.41 %__CS_cp___CS_thread_status = alloca [3 x [3 x i8]], align 1 6.91/3.41 %__CS_cp___CS_thread_lockedon = alloca [3 x [3 x *i8]], align 16 6.91/3.41 %__CS_cp_flag1 = alloca [3 x i32], align 4 6.91/3.41 %__CS_cp_flag2 = alloca [3 x i32], align 4 6.91/3.41 %__CS_cp_x = alloca [3 x i32], align 4 6.91/3.41 store 0, %1 6.91/3.41 %2 = getelementptr %__CS_cp___CS_thread_status, 0, 1 6.91/3.41 %3 = getelementptr %2, 0, 0 6.91/3.41 %4 = load %3 6.91/3.41 store %4, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@761759df 6.91/3.41 %5 = getelementptr %__CS_cp___CS_thread_status, 0, 2 6.91/3.41 %6 = getelementptr %5, 0, 0 6.91/3.41 %7 = load %6 6.91/3.41 store %7, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7be71713 6.91/3.41 %8 = getelementptr %__CS_cp___CS_thread_status, 0, 1 6.91/3.41 %9 = getelementptr %8, 0, 1 6.91/3.41 %10 = load %9 6.91/3.41 store %10, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@cc3a128 6.91/3.41 %11 = getelementptr %__CS_cp___CS_thread_status, 0, 2 6.91/3.41 %12 = getelementptr %11, 0, 1 6.91/3.41 %13 = load %12 6.91/3.41 store %13, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@345aa2b0 6.91/3.41 %14 = getelementptr %__CS_cp___CS_thread_status, 0, 1 6.91/3.41 %15 = getelementptr %14, 0, 2 6.91/3.41 %16 = load %15 6.91/3.41 store %16, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@78cfdc45 6.91/3.41 %17 = getelementptr %__CS_cp___CS_thread_status, 0, 2 6.91/3.41 %18 = getelementptr %17, 0, 2 6.91/3.41 %19 = load %18 6.91/3.41 store %19, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bd303c0 6.91/3.41 %20 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 6.91/3.41 %21 = getelementptr %20, 0, 0 6.91/3.41 %22 = load %21 6.91/3.41 store %22, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2a082f73 6.91/3.41 %23 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 6.91/3.41 %24 = getelementptr %23, 0, 0 6.91/3.41 %25 = load %24 6.91/3.41 store %25, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4ba647a0 6.91/3.41 %26 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 6.91/3.41 %27 = getelementptr %26, 0, 1 6.91/3.41 %28 = load %27 6.91/3.41 store %28, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4d8d8765 6.91/3.41 %29 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 6.91/3.41 %30 = getelementptr %29, 0, 1 6.91/3.41 %31 = load %30 6.91/3.41 store %31, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6ee35017 6.91/3.41 %32 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 6.91/3.41 %33 = getelementptr %32, 0, 2 6.91/3.41 %34 = load %33 6.91/3.41 store %34, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5fb990f 6.91/3.41 %35 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 6.91/3.41 %36 = getelementptr %35, 0, 2 6.91/3.41 %37 = load %36 6.91/3.41 store %37, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7c994557 6.91/3.41 %38 = getelementptr %__CS_cp_flag1, 0, 1 6.91/3.41 %39 = load %38 6.91/3.41 store %39, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5d8e430e 6.91/3.41 %40 = getelementptr %__CS_cp_flag1, 0, 2 6.91/3.41 %41 = load %40 6.91/3.41 store %41, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2999c340 6.91/3.41 %42 = getelementptr %__CS_cp_flag2, 0, 1 6.91/3.41 %43 = load %42 6.91/3.41 store %43, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7073149d 6.91/3.41 %44 = getelementptr %__CS_cp_flag2, 0, 2 6.91/3.41 %45 = load %44 6.91/3.41 store %45, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46f64439 6.91/3.41 %46 = getelementptr %__CS_cp_x, 0, 1 6.91/3.41 %47 = load %46 6.91/3.41 store %47, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@694ff9da 6.91/3.41 %48 = getelementptr %__CS_cp_x, 0, 2 6.91/3.41 %49 = load %48 6.91/3.41 store %49, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@e2ba470 6.91/3.41 store 0, @__CS_round 6.91/3.41 store 0, @__CS_thread_index 6.91/3.41 %50 = load @__CS_round 6.91/3.41 store %50, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@66948ed4 6.91/3.41 store 1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1237d9b3 6.91/3.41 store @main_thread, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4207306 6.91/3.41 store 1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@577b4fd6 6.91/3.41 %51 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@155b99c3 6.91/3.41 %52 = zext i8 %51 to i32 6.91/3.41 %53 = icmp eq %52 1 6.91/3.41 br %53, %54, %67 6.91/3.41 54: 6.91/3.41 %55 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@390d209a 6.91/3.41 store %55, @__CS_round 6.91/3.41 store 0, @__CS_ret 6.91/3.41 %56 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3e32ccfe 6.91/3.41 %57 = call *i8 %56(*i8 null) 6.91/3.41 %58 = load @__CS_ret 6.91/3.41 %59 = zext i8 %58 to i32 6.91/3.41 %60 = icmp ne %59 1 6.91/3.41 br %60, %61, %66 6.91/3.41 61: 6.91/3.41 %62 = load @__CS_round 6.91/3.41 %63 = zext i8 %62 to i64 6.91/3.41 %64 = getelementptr @__CS_thread_status, 0, %63 6.91/3.41 %65 = getelementptr %64, 0, 0 6.91/3.41 store 2, %65 6.91/3.41 br %66 6.91/3.41 66: 6.91/3.41 br %67 6.91/3.41 67: 6.91/3.41 %68 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@333a3111 6.91/3.41 %69 = zext i8 %68 to i32 6.91/3.41 %70 = icmp eq %69 1 6.91/3.41 br %70, %71, %84 6.91/3.41 71: 6.91/3.41 %72 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7a662334 6.91/3.41 store %72, @__CS_round 6.91/3.41 store 0, @__CS_ret 6.91/3.41 %73 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2abfc512 6.91/3.41 %74 = call *i8 %73(*i8 null) 6.91/3.41 %75 = load @__CS_ret 6.91/3.41 %76 = zext i8 %75 to i32 6.91/3.41 %77 = icmp ne %76 1 6.91/3.41 br %77, %78, %83 6.91/3.41 78: 6.91/3.41 %79 = load @__CS_round 6.91/3.41 %80 = zext i8 %79 to i64 6.91/3.41 %81 = getelementptr @__CS_thread_status, 0, %80 6.91/3.41 %82 = getelementptr %81, 0, 1 6.91/3.41 store 2, %82 6.91/3.41 br %83 6.91/3.41 83: 6.91/3.41 br %84 6.91/3.41 84: 6.91/3.41 %85 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@242a987 6.91/3.41 %86 = zext i8 %85 to i32 6.91/3.41 %87 = icmp eq %86 1 6.91/3.41 br %87, %88, %101 6.91/3.41 88: 6.91/3.41 %89 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6012b267 6.91/3.41 store %89, @__CS_round 6.91/3.41 store 0, @__CS_ret 6.91/3.41 %90 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ba642d2 6.91/3.41 %91 = call *i8 %90(*i8 null) 6.91/3.41 %92 = load @__CS_ret 6.91/3.41 %93 = zext i8 %92 to i32 6.91/3.41 %94 = icmp ne %93 1 6.91/3.41 br %94, %95, %100 6.91/3.41 95: 6.91/3.41 %96 = load @__CS_round 6.91/3.41 %97 = zext i8 %96 to i64 6.91/3.41 %98 = getelementptr @__CS_thread_status, 0, %97 6.91/3.41 %99 = getelementptr %98, 0, 2 6.91/3.41 store 2, %99 6.91/3.41 br %100 6.91/3.41 100: 6.91/3.41 br %101 6.91/3.41 101: 6.91/3.41 %102 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7fe595e1 6.91/3.41 %103 = zext i8 %102 to i32 6.91/3.41 %104 = getelementptr %__CS_cp___CS_thread_status, 0, 1 6.91/3.41 %105 = getelementptr %104, 0, 0 6.91/3.41 %106 = load %105 6.91/3.41 %107 = zext i8 %106 to i32 6.91/3.41 %108 = icmp eq %103 %107 6.91/3.41 %109 = zext i1 %108 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %109) 6.91/3.41 %110 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@687c050b 6.91/3.41 %111 = zext i8 %110 to i32 6.91/3.41 %112 = getelementptr %__CS_cp___CS_thread_status, 0, 2 6.91/3.41 %113 = getelementptr %112, 0, 0 6.91/3.41 %114 = load %113 6.91/3.41 %115 = zext i8 %114 to i32 6.91/3.41 %116 = icmp eq %111 %115 6.91/3.41 %117 = zext i1 %116 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %117) 6.91/3.41 %118 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1d0813e9 6.91/3.41 %119 = zext i8 %118 to i32 6.91/3.41 %120 = getelementptr %__CS_cp___CS_thread_status, 0, 1 6.91/3.41 %121 = getelementptr %120, 0, 1 6.91/3.41 %122 = load %121 6.91/3.41 %123 = zext i8 %122 to i32 6.91/3.41 %124 = icmp eq %119 %123 6.91/3.41 %125 = zext i1 %124 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %125) 6.91/3.41 %126 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4217248 6.91/3.41 %127 = zext i8 %126 to i32 6.91/3.41 %128 = getelementptr %__CS_cp___CS_thread_status, 0, 2 6.91/3.41 %129 = getelementptr %128, 0, 1 6.91/3.41 %130 = load %129 6.91/3.41 %131 = zext i8 %130 to i32 6.91/3.41 %132 = icmp eq %127 %131 6.91/3.41 %133 = zext i1 %132 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %133) 6.91/3.41 %134 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5738b5b0 6.91/3.41 %135 = zext i8 %134 to i32 6.91/3.41 %136 = getelementptr %__CS_cp___CS_thread_status, 0, 1 6.91/3.41 %137 = getelementptr %136, 0, 2 6.91/3.41 %138 = load %137 6.91/3.41 %139 = zext i8 %138 to i32 6.91/3.41 %140 = icmp eq %135 %139 6.91/3.41 %141 = zext i1 %140 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %141) 6.91/3.41 %142 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5f64a601 6.91/3.41 %143 = zext i8 %142 to i32 6.91/3.41 %144 = getelementptr %__CS_cp___CS_thread_status, 0, 2 6.91/3.41 %145 = getelementptr %144, 0, 2 6.91/3.41 %146 = load %145 6.91/3.41 %147 = zext i8 %146 to i32 6.91/3.41 %148 = icmp eq %143 %147 6.91/3.41 %149 = zext i1 %148 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %149) 6.91/3.41 %150 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ae715f 6.91/3.41 %151 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 6.91/3.41 %152 = getelementptr %151, 0, 0 6.91/3.41 %153 = load %152 6.91/3.41 %154 = icmp eq %150 %153 6.91/3.41 %155 = zext i1 %154 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %155) 6.91/3.41 %156 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@d92e070 6.91/3.41 %157 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 6.91/3.41 %158 = getelementptr %157, 0, 0 6.91/3.41 %159 = load %158 6.91/3.41 %160 = icmp eq %156 %159 6.91/3.41 %161 = zext i1 %160 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %161) 6.91/3.41 %162 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1f154147 6.91/3.41 %163 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 6.91/3.41 %164 = getelementptr %163, 0, 1 6.91/3.41 %165 = load %164 6.91/3.41 %166 = icmp eq %162 %165 6.91/3.41 %167 = zext i1 %166 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %167) 6.91/3.41 %168 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@65bbb80a 6.91/3.41 %169 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 6.91/3.41 %170 = getelementptr %169, 0, 1 6.91/3.41 %171 = load %170 6.91/3.41 %172 = icmp eq %168 %171 6.91/3.41 %173 = zext i1 %172 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %173) 6.91/3.41 %174 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@146e096b 6.91/3.41 %175 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 1 6.91/3.41 %176 = getelementptr %175, 0, 2 6.91/3.41 %177 = load %176 6.91/3.41 %178 = icmp eq %174 %177 6.91/3.41 %179 = zext i1 %178 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %179) 6.91/3.41 %180 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@e65faf6 6.91/3.41 %181 = getelementptr %__CS_cp___CS_thread_lockedon, 0, 2 6.91/3.41 %182 = getelementptr %181, 0, 2 6.91/3.41 %183 = load %182 6.91/3.41 %184 = icmp eq %180 %183 6.91/3.41 %185 = zext i1 %184 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %185) 6.91/3.41 %186 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bcf8d04 6.91/3.41 %187 = getelementptr %__CS_cp_flag1, 0, 1 6.91/3.41 %188 = load %187 6.91/3.41 %189 = icmp eq %186 %188 6.91/3.41 %190 = zext i1 %189 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %190) 6.91/3.41 %191 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@38c199f 6.91/3.41 %192 = getelementptr %__CS_cp_flag1, 0, 2 6.91/3.41 %193 = load %192 6.91/3.41 %194 = icmp eq %191 %193 6.91/3.41 %195 = zext i1 %194 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %195) 6.91/3.41 %196 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@67cd6dd4 6.91/3.41 %197 = getelementptr %__CS_cp_flag2, 0, 1 6.91/3.41 %198 = load %197 6.91/3.41 %199 = icmp eq %196 %198 6.91/3.41 %200 = zext i1 %199 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %200) 6.91/3.41 %201 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46de9991 6.91/3.41 %202 = getelementptr %__CS_cp_flag2, 0, 2 6.91/3.41 %203 = load %202 6.91/3.41 %204 = icmp eq %201 %203 6.91/3.41 %205 = zext i1 %204 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %205) 6.91/3.41 %206 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@13e8be3 6.91/3.41 %207 = getelementptr %__CS_cp_x, 0, 1 6.91/3.41 %208 = load %207 6.91/3.41 %209 = icmp eq %206 %208 6.91/3.41 %210 = zext i1 %209 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %210) 6.91/3.41 %211 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@621d3aba 6.91/3.41 %212 = getelementptr %__CS_cp_x, 0, 2 6.91/3.41 %213 = load %212 6.91/3.41 %214 = icmp eq %211 %213 6.91/3.41 %215 = zext i1 %214 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i32 %215) 6.91/3.41 %216 = load @__CS_error 6.91/3.41 %217 = zext i8 %216 to i32 6.91/3.41 %218 = icmp ne %217 1 6.91/3.41 %219 = zext i1 %218 to i32 6.91/3.41 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %219) 6.91/3.41 %220 = load %1 6.91/3.41 ret %220 6.91/3.41 6.91/3.41 6.91/3.41 Analyze Termination of all function calls matching the pattern: 6.91/3.41 main() 6.91/3.45 EOF