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