120.32/56.70 MAYBE 120.69/56.79 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 120.69/56.79 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 120.69/56.79 120.69/56.79 120.69/56.79 Termination of the given C Problem could not be shown: 120.69/56.79 120.69/56.79 (0) C Problem 120.69/56.79 (1) CToLLVMProof [EQUIVALENT, 256 ms] 120.69/56.79 (2) LLVM problem 120.69/56.79 (3) LLVMToTerminationGraphProof [EQUIVALENT, 45.5 s] 120.69/56.79 (4) LLVM Symbolic Execution Graph 120.69/56.79 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 120.69/56.79 (6) AND 120.69/56.79 (7) LLVM Symbolic Execution SCC 120.69/56.79 (8) LLVM Symbolic Execution SCC 120.69/56.79 (9) LLVM Symbolic Execution SCC 120.69/56.79 (10) SymbolicExecutionGraphToLassoProof [COMPLETE, 8089 ms] 120.69/56.79 (11) AND 120.69/56.79 (12) LLVM Symbolic Execution Lasso 120.69/56.79 (13) LLVM Symbolic Execution Lasso 120.69/56.79 (14) LLVM Symbolic Execution Lasso 120.69/56.79 (15) LLVM Symbolic Execution Lasso 120.69/56.79 (16) LLVM Symbolic Execution Lasso 120.69/56.79 (17) LLVM Symbolic Execution Lasso 120.69/56.79 (18) LLVM Symbolic Execution Lasso 120.69/56.79 (19) LLVM Symbolic Execution Lasso 120.69/56.79 (20) LLVM Symbolic Execution Lasso 120.69/56.79 (21) LLVM Symbolic Execution Lasso 120.69/56.79 (22) LLVM Symbolic Execution Lasso 120.69/56.79 (23) LLVM Symbolic Execution Lasso 120.69/56.79 (24) LLVM Symbolic Execution Lasso 120.69/56.79 (25) LLVM Symbolic Execution Lasso 120.69/56.79 (26) LLVM Symbolic Execution Lasso 120.69/56.79 (27) LLVM Symbolic Execution Lasso 120.69/56.79 120.69/56.79 120.69/56.79 ---------------------------------------- 120.69/56.79 120.69/56.79 (0) 120.69/56.79 Obligation: 120.69/56.79 c file /export/starexec/sandbox/benchmark/theBenchmark.c 120.69/56.79 ---------------------------------------- 120.69/56.79 120.69/56.79 (1) CToLLVMProof (EQUIVALENT) 120.69/56.79 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 120.69/56.79 ---------------------------------------- 120.69/56.79 120.69/56.79 (2) 120.69/56.79 Obligation: 120.69/56.79 LLVM Problem 120.69/56.79 120.69/56.79 Aliases: 120.69/56.79 120.69/56.79 Data layout: 120.69/56.79 120.69/56.79 "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" 120.69/56.79 120.69/56.79 Machine: 120.69/56.79 120.69/56.79 "x86_64-pc-linux-gnu" 120.69/56.79 120.69/56.79 Type definitions: 120.69/56.79 120.69/56.79 Global variables: 120.69/56.79 120.69/56.79 Name: nomsg initVal: -1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 120.69/56.79 120.69/56.79 Name: side1Failed_History_1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: side1Failed_History_2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: side1Failed_History_0 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: side2Failed_History_1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: side2Failed_History_2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: side2Failed_History_0 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: active_side_History_1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: active_side_History_2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: active_side_History_0 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: manual_selection_History_1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: manual_selection_History_2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: manual_selection_History_0 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: INTERNAL section: null 120.69/56.79 120.69/56.79 Name: cs1_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: cs2_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: side1Failed initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s1s1_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s1s2_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s1p_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: side1_written initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s1s1_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s2s1_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: cs1_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: side2Failed initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s2s1_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s2s2_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s2p_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: side2_written initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s1s2_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s2s2_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: cs2_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s1p_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s2p_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: nodes initVal: (@Console_task_each_pals_period,@Side1_activestandby_task_each_pals_period,@Side2_activestandby_task_each_pals_period,@Pendulum_prism_task_each_pals_period) type: [4 x *BasicFunctionType varArgs: falsereturnType: BasicVoidTypeparamTypes: ()] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: null section: null 120.69/56.79 120.69/56.79 Name: cs1 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: cs2 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s1s2 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s1s1 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s2s1 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s2s2 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s1p initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Name: s2p initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 120.69/56.79 120.69/56.79 Function declarations and definitions: 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "__VERIFIER_nondet_char" returnParam: i8 signext parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 *BasicFunctionTypename: "__VERIFIER_nondet_bool" returnParam: i1 zeroext parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 *BasicFunctionTypename: "__VERIFIER_nondet__Bool" returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 *BasicFunctionTypename: "__VERIFIER_nondet_msg_t" returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 *BasicFunctionTypename: "__VERIFIER_nondet_int8_t" returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 *BasicFunctionTypename: "write_side1_failed_history" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (val i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i8, align 1 120.69/56.79 %2 = zext i1 %val to i8 120.69/56.79 store %2, %1 120.69/56.79 %3 = load @side1Failed_History_1 120.69/56.79 %4 = trunc i8 %3 to i1 120.69/56.79 %5 = zext i1 %4 to i8 120.69/56.79 store %5, @side1Failed_History_2 120.69/56.79 %6 = load @side1Failed_History_0 120.69/56.79 %7 = trunc i8 %6 to i1 120.69/56.79 %8 = zext i1 %7 to i8 120.69/56.79 store %8, @side1Failed_History_1 120.69/56.79 %9 = load %1 120.69/56.79 %10 = trunc i8 %9 to i1 120.69/56.79 %11 = zext i1 %10 to i8 120.69/56.79 store %11, @side1Failed_History_0 120.69/56.79 ret void 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "read_side1_failed_history" linkageType: EXTERNALLY_VISIBLE returnParam: i1 zeroext parameters: (index i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i1, align 1 120.69/56.79 %2 = alloca i8, align 1 120.69/56.79 store %index, %2 120.69/56.79 %3 = load %2 120.69/56.79 %4 = zext i8 %3 to i32 120.69/56.79 %5 = icmp eq %4 0 120.69/56.79 br %5, %6, %9 120.69/56.79 6: 120.69/56.79 %7 = load @side1Failed_History_0 120.69/56.79 %8 = trunc i8 %7 to i1 120.69/56.79 store %8, %1 120.69/56.79 br %24 120.69/56.79 9: 120.69/56.79 %10 = load %2 120.69/56.79 %11 = zext i8 %10 to i32 120.69/56.79 %12 = icmp eq %11 1 120.69/56.79 br %12, %13, %16 120.69/56.79 13: 120.69/56.79 %14 = load @side1Failed_History_1 120.69/56.79 %15 = trunc i8 %14 to i1 120.69/56.79 store %15, %1 120.69/56.79 br %24 120.69/56.79 16: 120.69/56.79 %17 = load %2 120.69/56.79 %18 = zext i8 %17 to i32 120.69/56.79 %19 = icmp eq %18 2 120.69/56.79 br %19, %20, %23 120.69/56.79 20: 120.69/56.79 %21 = load @side1Failed_History_2 120.69/56.79 %22 = trunc i8 %21 to i1 120.69/56.79 store %22, %1 120.69/56.79 br %24 120.69/56.79 23: 120.69/56.79 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext 0) 120.69/56.79 store 0, %1 120.69/56.79 br %24 120.69/56.79 24: 120.69/56.79 %25 = load %1 120.69/56.79 ret %25 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i8, align 1 120.69/56.79 %2 = zext i1 %arg to i8 120.69/56.79 store %2, %1 120.69/56.79 %3 = load %1 120.69/56.79 %4 = trunc i8 %3 to i1 120.69/56.79 br %4, %7, %5 120.69/56.79 5: 120.69/56.79 br %6 120.69/56.79 6: 120.69/56.79 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 120.69/56.79 unreachable 120.69/56.79 7: 120.69/56.79 ret void 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "write_side2_failed_history" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (val i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i8, align 1 120.69/56.79 %2 = zext i1 %val to i8 120.69/56.79 store %2, %1 120.69/56.79 %3 = load @side2Failed_History_1 120.69/56.79 %4 = trunc i8 %3 to i1 120.69/56.79 %5 = zext i1 %4 to i8 120.69/56.79 store %5, @side2Failed_History_2 120.69/56.79 %6 = load @side2Failed_History_0 120.69/56.79 %7 = trunc i8 %6 to i1 120.69/56.79 %8 = zext i1 %7 to i8 120.69/56.79 store %8, @side2Failed_History_1 120.69/56.79 %9 = load %1 120.69/56.79 %10 = trunc i8 %9 to i1 120.69/56.79 %11 = zext i1 %10 to i8 120.69/56.79 store %11, @side2Failed_History_0 120.69/56.79 ret void 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "read_side2_failed_history" linkageType: EXTERNALLY_VISIBLE returnParam: i1 zeroext parameters: (index i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i1, align 1 120.69/56.79 %2 = alloca i8, align 1 120.69/56.79 store %index, %2 120.69/56.79 %3 = load %2 120.69/56.79 %4 = zext i8 %3 to i32 120.69/56.79 %5 = icmp eq %4 0 120.69/56.79 br %5, %6, %9 120.69/56.79 6: 120.69/56.79 %7 = load @side2Failed_History_0 120.69/56.79 %8 = trunc i8 %7 to i1 120.69/56.79 store %8, %1 120.69/56.79 br %24 120.69/56.79 9: 120.69/56.79 %10 = load %2 120.69/56.79 %11 = zext i8 %10 to i32 120.69/56.79 %12 = icmp eq %11 1 120.69/56.79 br %12, %13, %16 120.69/56.79 13: 120.69/56.79 %14 = load @side2Failed_History_1 120.69/56.79 %15 = trunc i8 %14 to i1 120.69/56.79 store %15, %1 120.69/56.79 br %24 120.69/56.79 16: 120.69/56.79 %17 = load %2 120.69/56.79 %18 = zext i8 %17 to i32 120.69/56.79 %19 = icmp eq %18 2 120.69/56.79 br %19, %20, %23 120.69/56.79 20: 120.69/56.79 %21 = load @side2Failed_History_2 120.69/56.79 %22 = trunc i8 %21 to i1 120.69/56.79 store %22, %1 120.69/56.79 br %24 120.69/56.79 23: 120.69/56.79 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext 0) 120.69/56.79 store 0, %1 120.69/56.79 br %24 120.69/56.79 24: 120.69/56.79 %25 = load %1 120.69/56.79 ret %25 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "write_active_side_history" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (val i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i8, align 1 120.69/56.79 store %val, %1 120.69/56.79 %2 = load @active_side_History_1 120.69/56.79 store %2, @active_side_History_2 120.69/56.79 %3 = load @active_side_History_0 120.69/56.79 store %3, @active_side_History_1 120.69/56.79 %4 = load %1 120.69/56.79 store %4, @active_side_History_0 120.69/56.79 ret void 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "read_active_side_history" linkageType: EXTERNALLY_VISIBLE returnParam: i8 signext parameters: (index i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i8, align 1 120.69/56.79 %2 = alloca i8, align 1 120.69/56.79 store %index, %2 120.69/56.79 %3 = load %2 120.69/56.79 %4 = zext i8 %3 to i32 120.69/56.79 %5 = icmp eq %4 0 120.69/56.79 br %5, %6, %8 120.69/56.79 6: 120.69/56.79 %7 = load @active_side_History_0 120.69/56.79 store %7, %1 120.69/56.79 br %21 120.69/56.79 8: 120.69/56.79 %9 = load %2 120.69/56.79 %10 = zext i8 %9 to i32 120.69/56.79 %11 = icmp eq %10 1 120.69/56.79 br %11, %12, %14 120.69/56.79 12: 120.69/56.79 %13 = load @active_side_History_1 120.69/56.79 store %13, %1 120.69/56.79 br %21 120.69/56.79 14: 120.69/56.79 %15 = load %2 120.69/56.79 %16 = zext i8 %15 to i32 120.69/56.79 %17 = icmp eq %16 2 120.69/56.79 br %17, %18, %20 120.69/56.79 18: 120.69/56.79 %19 = load @active_side_History_2 120.69/56.79 store %19, %1 120.69/56.79 br %21 120.69/56.79 20: 120.69/56.79 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext 0) 120.69/56.79 store -2, %1 120.69/56.79 br %21 120.69/56.79 21: 120.69/56.79 %22 = load %1 120.69/56.79 ret %22 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "write_manual_selection_history" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (val i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i8, align 1 120.69/56.79 store %val, %1 120.69/56.79 %2 = load @manual_selection_History_1 120.69/56.79 store %2, @manual_selection_History_2 120.69/56.79 %3 = load @manual_selection_History_0 120.69/56.79 store %3, @manual_selection_History_1 120.69/56.79 %4 = load %1 120.69/56.79 store %4, @manual_selection_History_0 120.69/56.79 ret void 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "read_manual_selection_history" linkageType: EXTERNALLY_VISIBLE returnParam: i8 signext parameters: (index i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i8, align 1 120.69/56.79 %2 = alloca i8, align 1 120.69/56.79 store %index, %2 120.69/56.79 %3 = load %2 120.69/56.79 %4 = zext i8 %3 to i32 120.69/56.79 %5 = icmp eq %4 0 120.69/56.79 br %5, %6, %8 120.69/56.79 6: 120.69/56.79 %7 = load @manual_selection_History_0 120.69/56.79 store %7, %1 120.69/56.79 br %21 120.69/56.79 8: 120.69/56.79 %9 = load %2 120.69/56.79 %10 = zext i8 %9 to i32 120.69/56.79 %11 = icmp eq %10 1 120.69/56.79 br %11, %12, %14 120.69/56.79 12: 120.69/56.79 %13 = load @manual_selection_History_1 120.69/56.79 store %13, %1 120.69/56.79 br %21 120.69/56.79 14: 120.69/56.79 %15 = load %2 120.69/56.79 %16 = zext i8 %15 to i32 120.69/56.79 %17 = icmp eq %16 2 120.69/56.79 br %17, %18, %20 120.69/56.79 18: 120.69/56.79 %19 = load @manual_selection_History_2 120.69/56.79 store %19, %1 120.69/56.79 br %21 120.69/56.79 20: 120.69/56.79 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext 0) 120.69/56.79 store 0, %1 120.69/56.79 br %21 120.69/56.79 21: 120.69/56.79 %22 = load %1 120.69/56.79 ret %22 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "init" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i32, align 4 120.69/56.79 %2 = load @side1Failed_History_0 120.69/56.79 %3 = trunc i8 %2 to i1 120.69/56.79 %4 = zext i1 %3 to i32 120.69/56.79 %5 = icmp ne %4 0 120.69/56.79 br %5, %6, %7 120.69/56.79 6: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 7: 120.69/56.79 %8 = load @side2Failed_History_0 120.69/56.79 %9 = trunc i8 %8 to i1 120.69/56.79 %10 = zext i1 %9 to i32 120.69/56.79 %11 = icmp ne %10 0 120.69/56.79 br %11, %12, %13 120.69/56.79 12: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 13: 120.69/56.79 %14 = load @active_side_History_0 120.69/56.79 %15 = sext i8 %14 to i32 120.69/56.79 %16 = icmp ne %15 -2 120.69/56.79 br %16, %17, %18 120.69/56.79 17: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 18: 120.69/56.79 %19 = load @manual_selection_History_0 120.69/56.79 %20 = sext i8 %19 to i32 120.69/56.79 %21 = icmp ne %20 0 120.69/56.79 br %21, %22, %23 120.69/56.79 22: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 23: 120.69/56.79 %24 = load @side1Failed_History_1 120.69/56.79 %25 = trunc i8 %24 to i1 120.69/56.79 %26 = zext i1 %25 to i32 120.69/56.79 %27 = icmp ne %26 0 120.69/56.79 br %27, %28, %29 120.69/56.79 28: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 29: 120.69/56.79 %30 = load @side2Failed_History_1 120.69/56.79 %31 = trunc i8 %30 to i1 120.69/56.79 %32 = zext i1 %31 to i32 120.69/56.79 %33 = icmp ne %32 0 120.69/56.79 br %33, %34, %35 120.69/56.79 34: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 35: 120.69/56.79 %36 = load @active_side_History_1 120.69/56.79 %37 = sext i8 %36 to i32 120.69/56.79 %38 = icmp ne %37 -2 120.69/56.79 br %38, %39, %40 120.69/56.79 39: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 40: 120.69/56.79 %41 = load @manual_selection_History_1 120.69/56.79 %42 = sext i8 %41 to i32 120.69/56.79 %43 = icmp ne %42 0 120.69/56.79 br %43, %44, %45 120.69/56.79 44: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 45: 120.69/56.79 %46 = load @side1Failed_History_2 120.69/56.79 %47 = trunc i8 %46 to i1 120.69/56.79 %48 = zext i1 %47 to i32 120.69/56.79 %49 = icmp ne %48 0 120.69/56.79 br %49, %50, %51 120.69/56.79 50: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 51: 120.69/56.79 %52 = load @side2Failed_History_2 120.69/56.79 %53 = trunc i8 %52 to i1 120.69/56.79 %54 = zext i1 %53 to i32 120.69/56.79 %55 = icmp ne %54 0 120.69/56.79 br %55, %56, %57 120.69/56.79 56: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 57: 120.69/56.79 %58 = load @active_side_History_2 120.69/56.79 %59 = sext i8 %58 to i32 120.69/56.79 %60 = icmp ne %59 -2 120.69/56.79 br %60, %61, %62 120.69/56.79 61: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 62: 120.69/56.79 %63 = load @manual_selection_History_2 120.69/56.79 %64 = sext i8 %63 to i32 120.69/56.79 %65 = icmp ne %64 0 120.69/56.79 br %65, %66, %67 120.69/56.79 66: 120.69/56.79 store 0, %1 120.69/56.79 br %68 120.69/56.79 67: 120.69/56.79 store 1, %1 120.69/56.79 br %68 120.69/56.79 68: 120.69/56.79 %69 = load %1 120.69/56.79 ret %69 120.69/56.79 120.69/56.79 *BasicFunctionTypename: "flip_the_side" linkageType: EXTERNALLY_VISIBLE returnParam: i8 signext parameters: (side i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.79 0: 120.69/56.79 %1 = alloca i8, align 1 120.69/56.79 %tmp = alloca i32, align 4 120.69/56.79 store %side, %1 120.69/56.80 %2 = load %1 120.69/56.80 %3 = sext i8 %2 to i32 120.69/56.80 %4 = icmp eq %3 1 120.69/56.80 br %4, %5, %6 120.69/56.80 5: 120.69/56.80 store 0, %tmp 120.69/56.80 br %7 120.69/56.80 6: 120.69/56.80 store 1, %tmp 120.69/56.80 br %7 120.69/56.80 7: 120.69/56.80 %8 = load %tmp 120.69/56.80 %9 = trunc i32 %8 to i8 120.69/56.80 ret %9 120.69/56.80 120.69/56.80 *BasicFunctionTypename: "Console_task_each_pals_period" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.80 0: 120.69/56.80 %manual_selection = alloca i8, align 1 120.69/56.80 %tmp = alloca i8, align 1 120.69/56.80 %1 = call signext i8 (...)* @__VERIFIER_nondet_char() 120.69/56.80 store %1, %tmp 120.69/56.80 %2 = load %tmp 120.69/56.80 store %2, %manual_selection 120.69/56.80 %3 = load %manual_selection 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @write_manual_selection_history(i8 signext %3) 120.69/56.80 %4 = load %manual_selection 120.69/56.80 %5 = sext i8 %4 to i32 120.69/56.80 %6 = load @nomsg 120.69/56.80 %7 = sext i8 %6 to i32 120.69/56.80 %8 = icmp ne %5 %7 120.69/56.80 br %8, %9, %18 120.69/56.80 9: 120.69/56.80 %10 = load @cs1_new 120.69/56.80 %11 = sext i8 %10 to i32 120.69/56.80 %12 = load @nomsg 120.69/56.80 %13 = sext i8 %12 to i32 120.69/56.80 %14 = icmp eq %11 %13 120.69/56.80 br %14, %15, %18 120.69/56.80 15: 120.69/56.80 %16 = load %manual_selection 120.69/56.80 %17 = sext i8 %16 to i32 120.69/56.80 br %21 120.69/56.80 18: 120.69/56.80 %19 = load @cs1_new 120.69/56.80 %20 = sext i8 %19 to i32 120.69/56.80 br %21 120.69/56.80 21: 120.69/56.80 %22 = phi [%17, %15], [%20, %18] 120.69/56.80 %23 = trunc i32 %22 to i8 120.69/56.80 store %23, @cs1_new 120.69/56.80 %24 = load %manual_selection 120.69/56.80 %25 = sext i8 %24 to i32 120.69/56.80 %26 = load @nomsg 120.69/56.80 %27 = sext i8 %26 to i32 120.69/56.80 %28 = icmp ne %25 %27 120.69/56.80 br %28, %29, %38 120.69/56.80 29: 120.69/56.80 %30 = load @cs2_new 120.69/56.80 %31 = sext i8 %30 to i32 120.69/56.80 %32 = load @nomsg 120.69/56.80 %33 = sext i8 %32 to i32 120.69/56.80 %34 = icmp eq %31 %33 120.69/56.80 br %34, %35, %38 120.69/56.80 35: 120.69/56.80 %36 = load %manual_selection 120.69/56.80 %37 = sext i8 %36 to i32 120.69/56.80 br %41 120.69/56.80 38: 120.69/56.80 %39 = load @cs2_new 120.69/56.80 %40 = sext i8 %39 to i32 120.69/56.80 br %41 120.69/56.80 41: 120.69/56.80 %42 = phi [%37, %35], [%40, %38] 120.69/56.80 %43 = trunc i32 %42 to i8 120.69/56.80 store %43, @cs2_new 120.69/56.80 store 0, %manual_selection 120.69/56.80 ret void 120.69/56.80 120.69/56.80 *BasicFunctionTypename: "Side1_activestandby_task_each_pals_period" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.80 0: 120.69/56.80 %side1 = alloca i8, align 1 120.69/56.80 %side2 = alloca i8, align 1 120.69/56.80 %manual_selection = alloca i8, align 1 120.69/56.80 %next_state = alloca i8, align 1 120.69/56.80 %1 = load @nomsg 120.69/56.80 store %1, %side1 120.69/56.80 %2 = load @nomsg 120.69/56.80 store %2, %side2 120.69/56.80 store 0, %manual_selection 120.69/56.80 %3 = call zeroext i1 (...)* @__VERIFIER_nondet_bool() 120.69/56.80 %4 = zext i1 %3 to i8 120.69/56.80 store %4, @side1Failed 120.69/56.80 %5 = load @side1Failed 120.69/56.80 %6 = trunc i8 %5 to i1 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @write_side1_failed_history(i1 zeroext %6) 120.69/56.80 %7 = load @side1Failed 120.69/56.80 %8 = trunc i8 %7 to i1 120.69/56.80 br %8, %9, %71 120.69/56.80 9: 120.69/56.80 %10 = load @nomsg 120.69/56.80 %11 = sext i8 %10 to i32 120.69/56.80 %12 = load @nomsg 120.69/56.80 %13 = sext i8 %12 to i32 120.69/56.80 %14 = icmp ne %11 %13 120.69/56.80 br %14, %15, %24 120.69/56.80 15: 120.69/56.80 %16 = load @s1s1_new 120.69/56.80 %17 = sext i8 %16 to i32 120.69/56.80 %18 = load @nomsg 120.69/56.80 %19 = sext i8 %18 to i32 120.69/56.80 %20 = icmp eq %17 %19 120.69/56.80 br %20, %21, %24 120.69/56.80 21: 120.69/56.80 %22 = load @nomsg 120.69/56.80 %23 = sext i8 %22 to i32 120.69/56.80 br %27 120.69/56.80 24: 120.69/56.80 %25 = load @s1s1_new 120.69/56.80 %26 = sext i8 %25 to i32 120.69/56.80 br %27 120.69/56.80 27: 120.69/56.80 %28 = phi [%23, %21], [%26, %24] 120.69/56.80 %29 = trunc i32 %28 to i8 120.69/56.80 store %29, @s1s1_new 120.69/56.80 %30 = load @nomsg 120.69/56.80 %31 = sext i8 %30 to i32 120.69/56.80 %32 = load @nomsg 120.69/56.80 %33 = sext i8 %32 to i32 120.69/56.80 %34 = icmp ne %31 %33 120.69/56.80 br %34, %35, %44 120.69/56.80 35: 120.69/56.80 %36 = load @s1s2_new 120.69/56.80 %37 = sext i8 %36 to i32 120.69/56.80 %38 = load @nomsg 120.69/56.80 %39 = sext i8 %38 to i32 120.69/56.80 %40 = icmp eq %37 %39 120.69/56.80 br %40, %41, %44 120.69/56.80 41: 120.69/56.80 %42 = load @nomsg 120.69/56.80 %43 = sext i8 %42 to i32 120.69/56.80 br %47 120.69/56.80 44: 120.69/56.80 %45 = load @s1s2_new 120.69/56.80 %46 = sext i8 %45 to i32 120.69/56.80 br %47 120.69/56.80 47: 120.69/56.80 %48 = phi [%43, %41], [%46, %44] 120.69/56.80 %49 = trunc i32 %48 to i8 120.69/56.80 store %49, @s1s2_new 120.69/56.80 %50 = load @nomsg 120.69/56.80 %51 = sext i8 %50 to i32 120.69/56.80 %52 = load @nomsg 120.69/56.80 %53 = sext i8 %52 to i32 120.69/56.80 %54 = icmp ne %51 %53 120.69/56.80 br %54, %55, %64 120.69/56.80 55: 120.69/56.80 %56 = load @s1p_new 120.69/56.80 %57 = sext i8 %56 to i32 120.69/56.80 %58 = load @nomsg 120.69/56.80 %59 = sext i8 %58 to i32 120.69/56.80 %60 = icmp eq %57 %59 120.69/56.80 br %60, %61, %64 120.69/56.80 61: 120.69/56.80 %62 = load @nomsg 120.69/56.80 %63 = sext i8 %62 to i32 120.69/56.80 br %67 120.69/56.80 64: 120.69/56.80 %65 = load @s1p_new 120.69/56.80 %66 = sext i8 %65 to i32 120.69/56.80 br %67 120.69/56.80 67: 120.69/56.80 %68 = phi [%63, %61], [%66, %64] 120.69/56.80 %69 = trunc i32 %68 to i8 120.69/56.80 store %69, @s1p_new 120.69/56.80 %70 = load @nomsg 120.69/56.80 store %70, @side1_written 120.69/56.80 br %190 120.69/56.80 71: 120.69/56.80 %72 = load @s1s1_old 120.69/56.80 store %72, %side1 120.69/56.80 %73 = load @nomsg 120.69/56.80 store %73, @s1s1_old 120.69/56.80 %74 = load @s2s1_old 120.69/56.80 store %74, %side2 120.69/56.80 %75 = load @nomsg 120.69/56.80 store %75, @s2s1_old 120.69/56.80 %76 = load @cs1_old 120.69/56.80 store %76, %manual_selection 120.69/56.80 %77 = load @nomsg 120.69/56.80 store %77, @cs1_old 120.69/56.80 %78 = load %side1 120.69/56.80 %79 = sext i8 %78 to i32 120.69/56.80 %80 = load %side2 120.69/56.80 %81 = sext i8 %80 to i32 120.69/56.80 %82 = icmp eq %79 %81 120.69/56.80 br %82, %83, %84 120.69/56.80 83: 120.69/56.80 store 1, %next_state 120.69/56.80 br %128 120.69/56.80 84: 120.69/56.80 %85 = load %side1 120.69/56.80 %86 = sext i8 %85 to i32 120.69/56.80 %87 = load @nomsg 120.69/56.80 %88 = sext i8 %87 to i32 120.69/56.80 %89 = icmp eq %86 %88 120.69/56.80 br %89, %90, %99 120.69/56.80 90: 120.69/56.80 %91 = load %side2 120.69/56.80 %92 = sext i8 %91 to i32 120.69/56.80 %93 = load @nomsg 120.69/56.80 %94 = sext i8 %93 to i32 120.69/56.80 %95 = icmp ne %92 %94 120.69/56.80 br %95, %96, %97 120.69/56.80 96: 120.69/56.80 store 0, %next_state 120.69/56.80 br %98 120.69/56.80 97: 120.69/56.80 br %100 120.69/56.80 98: 120.69/56.80 br %127 120.69/56.80 99: 120.69/56.80 br %100 120.69/56.80 100: 120.69/56.80 %101 = load %side1 120.69/56.80 %102 = sext i8 %101 to i32 120.69/56.80 %103 = load @nomsg 120.69/56.80 %104 = sext i8 %103 to i32 120.69/56.80 %105 = icmp ne %102 %104 120.69/56.80 br %105, %106, %115 120.69/56.80 106: 120.69/56.80 %107 = load %side2 120.69/56.80 %108 = sext i8 %107 to i32 120.69/56.80 %109 = load @nomsg 120.69/56.80 %110 = sext i8 %109 to i32 120.69/56.80 %111 = icmp eq %108 %110 120.69/56.80 br %111, %112, %113 120.69/56.80 112: 120.69/56.80 store 1, %next_state 120.69/56.80 br %114 120.69/56.80 113: 120.69/56.80 br %116 120.69/56.80 114: 120.69/56.80 br %126 120.69/56.80 115: 120.69/56.80 br %116 120.69/56.80 116: 120.69/56.80 %117 = load %manual_selection 120.69/56.80 %118 = sext i8 %117 to i32 120.69/56.80 %119 = icmp eq %118 1 120.69/56.80 br %119, %120, %123 120.69/56.80 120: 120.69/56.80 %121 = load %side1 120.69/56.80 %122 = call signext i8 @flip_the_side(i8 signext %121) 120.69/56.80 store %122, %next_state 120.69/56.80 br %125 120.69/56.80 123: 120.69/56.80 %124 = load %side1 120.69/56.80 store %124, %next_state 120.69/56.80 br %125 120.69/56.80 125: 120.69/56.80 br %126 120.69/56.80 126: 120.69/56.80 br %127 120.69/56.80 127: 120.69/56.80 br %128 120.69/56.80 128: 120.69/56.80 %129 = load %next_state 120.69/56.80 %130 = sext i8 %129 to i32 120.69/56.80 %131 = load @nomsg 120.69/56.80 %132 = sext i8 %131 to i32 120.69/56.80 %133 = icmp ne %130 %132 120.69/56.80 br %133, %134, %143 120.69/56.80 134: 120.69/56.80 %135 = load @s1s1_new 120.69/56.80 %136 = sext i8 %135 to i32 120.69/56.80 %137 = load @nomsg 120.69/56.80 %138 = sext i8 %137 to i32 120.69/56.80 %139 = icmp eq %136 %138 120.69/56.80 br %139, %140, %143 120.69/56.80 140: 120.69/56.80 %141 = load %next_state 120.69/56.80 %142 = sext i8 %141 to i32 120.69/56.80 br %146 120.69/56.80 143: 120.69/56.80 %144 = load @s1s1_new 120.69/56.80 %145 = sext i8 %144 to i32 120.69/56.80 br %146 120.69/56.80 146: 120.69/56.80 %147 = phi [%142, %140], [%145, %143] 120.69/56.80 %148 = trunc i32 %147 to i8 120.69/56.80 store %148, @s1s1_new 120.69/56.80 %149 = load %next_state 120.69/56.80 %150 = sext i8 %149 to i32 120.69/56.80 %151 = load @nomsg 120.69/56.80 %152 = sext i8 %151 to i32 120.69/56.80 %153 = icmp ne %150 %152 120.69/56.80 br %153, %154, %163 120.69/56.80 154: 120.69/56.80 %155 = load @s1s2_new 120.69/56.80 %156 = sext i8 %155 to i32 120.69/56.80 %157 = load @nomsg 120.69/56.80 %158 = sext i8 %157 to i32 120.69/56.80 %159 = icmp eq %156 %158 120.69/56.80 br %159, %160, %163 120.69/56.80 160: 120.69/56.80 %161 = load %next_state 120.69/56.80 %162 = sext i8 %161 to i32 120.69/56.80 br %166 120.69/56.80 163: 120.69/56.80 %164 = load @s1s2_new 120.69/56.80 %165 = sext i8 %164 to i32 120.69/56.80 br %166 120.69/56.80 166: 120.69/56.80 %167 = phi [%162, %160], [%165, %163] 120.69/56.80 %168 = trunc i32 %167 to i8 120.69/56.80 store %168, @s1s2_new 120.69/56.80 %169 = load %next_state 120.69/56.80 %170 = sext i8 %169 to i32 120.69/56.80 %171 = load @nomsg 120.69/56.80 %172 = sext i8 %171 to i32 120.69/56.80 %173 = icmp ne %170 %172 120.69/56.80 br %173, %174, %183 120.69/56.80 174: 120.69/56.80 %175 = load @s1p_new 120.69/56.80 %176 = sext i8 %175 to i32 120.69/56.80 %177 = load @nomsg 120.69/56.80 %178 = sext i8 %177 to i32 120.69/56.80 %179 = icmp eq %176 %178 120.69/56.80 br %179, %180, %183 120.69/56.80 180: 120.69/56.80 %181 = load %next_state 120.69/56.80 %182 = sext i8 %181 to i32 120.69/56.80 br %186 120.69/56.80 183: 120.69/56.80 %184 = load @s1p_new 120.69/56.80 %185 = sext i8 %184 to i32 120.69/56.80 br %186 120.69/56.80 186: 120.69/56.80 %187 = phi [%182, %180], [%185, %183] 120.69/56.80 %188 = trunc i32 %187 to i8 120.69/56.80 store %188, @s1p_new 120.69/56.80 %189 = load %next_state 120.69/56.80 store %189, @side1_written 120.69/56.80 br %190 120.69/56.80 190: 120.69/56.80 ret void 120.69/56.80 120.69/56.80 *BasicFunctionTypename: "Side2_activestandby_task_each_pals_period" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.80 0: 120.69/56.80 %side1 = alloca i8, align 1 120.69/56.80 %side2 = alloca i8, align 1 120.69/56.80 %manual_selection = alloca i8, align 1 120.69/56.80 %next_state = alloca i8, align 1 120.69/56.80 %1 = load @nomsg 120.69/56.80 store %1, %side1 120.69/56.80 %2 = load @nomsg 120.69/56.80 store %2, %side2 120.69/56.80 store 0, %manual_selection 120.69/56.80 %3 = call zeroext i1 (...)* @__VERIFIER_nondet_bool() 120.69/56.80 %4 = zext i1 %3 to i8 120.69/56.80 store %4, @side2Failed 120.69/56.80 %5 = load @side2Failed 120.69/56.80 %6 = trunc i8 %5 to i1 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @write_side2_failed_history(i1 zeroext %6) 120.69/56.80 %7 = load @side2Failed 120.69/56.80 %8 = trunc i8 %7 to i1 120.69/56.80 br %8, %9, %71 120.69/56.80 9: 120.69/56.80 %10 = load @nomsg 120.69/56.80 %11 = sext i8 %10 to i32 120.69/56.80 %12 = load @nomsg 120.69/56.80 %13 = sext i8 %12 to i32 120.69/56.80 %14 = icmp ne %11 %13 120.69/56.80 br %14, %15, %24 120.69/56.80 15: 120.69/56.80 %16 = load @s2s1_new 120.69/56.80 %17 = sext i8 %16 to i32 120.69/56.80 %18 = load @nomsg 120.69/56.80 %19 = sext i8 %18 to i32 120.69/56.80 %20 = icmp eq %17 %19 120.69/56.80 br %20, %21, %24 120.69/56.80 21: 120.69/56.80 %22 = load @nomsg 120.69/56.80 %23 = sext i8 %22 to i32 120.69/56.80 br %27 120.69/56.80 24: 120.69/56.80 %25 = load @s2s1_new 120.69/56.80 %26 = sext i8 %25 to i32 120.69/56.80 br %27 120.69/56.80 27: 120.69/56.80 %28 = phi [%23, %21], [%26, %24] 120.69/56.80 %29 = trunc i32 %28 to i8 120.69/56.80 store %29, @s2s1_new 120.69/56.80 %30 = load @nomsg 120.69/56.80 %31 = sext i8 %30 to i32 120.69/56.80 %32 = load @nomsg 120.69/56.80 %33 = sext i8 %32 to i32 120.69/56.80 %34 = icmp ne %31 %33 120.69/56.80 br %34, %35, %44 120.69/56.80 35: 120.69/56.80 %36 = load @s2s2_new 120.69/56.80 %37 = sext i8 %36 to i32 120.69/56.80 %38 = load @nomsg 120.69/56.80 %39 = sext i8 %38 to i32 120.69/56.80 %40 = icmp eq %37 %39 120.69/56.80 br %40, %41, %44 120.69/56.80 41: 120.69/56.80 %42 = load @nomsg 120.69/56.80 %43 = sext i8 %42 to i32 120.69/56.80 br %47 120.69/56.80 44: 120.69/56.80 %45 = load @s2s2_new 120.69/56.80 %46 = sext i8 %45 to i32 120.69/56.80 br %47 120.69/56.80 47: 120.69/56.80 %48 = phi [%43, %41], [%46, %44] 120.69/56.80 %49 = trunc i32 %48 to i8 120.69/56.80 store %49, @s2s2_new 120.69/56.80 %50 = load @nomsg 120.69/56.80 %51 = sext i8 %50 to i32 120.69/56.80 %52 = load @nomsg 120.69/56.80 %53 = sext i8 %52 to i32 120.69/56.80 %54 = icmp ne %51 %53 120.69/56.80 br %54, %55, %64 120.69/56.80 55: 120.69/56.80 %56 = load @s2p_new 120.69/56.80 %57 = sext i8 %56 to i32 120.69/56.80 %58 = load @nomsg 120.69/56.80 %59 = sext i8 %58 to i32 120.69/56.80 %60 = icmp eq %57 %59 120.69/56.80 br %60, %61, %64 120.69/56.80 61: 120.69/56.80 %62 = load @nomsg 120.69/56.80 %63 = sext i8 %62 to i32 120.69/56.80 br %67 120.69/56.80 64: 120.69/56.80 %65 = load @s2p_new 120.69/56.80 %66 = sext i8 %65 to i32 120.69/56.80 br %67 120.69/56.80 67: 120.69/56.80 %68 = phi [%63, %61], [%66, %64] 120.69/56.80 %69 = trunc i32 %68 to i8 120.69/56.80 store %69, @s2p_new 120.69/56.80 %70 = load @nomsg 120.69/56.80 store %70, @side2_written 120.69/56.80 br %190 120.69/56.80 71: 120.69/56.80 %72 = load @s1s2_old 120.69/56.80 store %72, %side1 120.69/56.80 %73 = load @nomsg 120.69/56.80 store %73, @s1s2_old 120.69/56.80 %74 = load @s2s2_old 120.69/56.80 store %74, %side2 120.69/56.80 %75 = load @nomsg 120.69/56.80 store %75, @s2s2_old 120.69/56.80 %76 = load @cs2_old 120.69/56.80 store %76, %manual_selection 120.69/56.80 %77 = load @nomsg 120.69/56.80 store %77, @cs2_old 120.69/56.80 %78 = load %side1 120.69/56.80 %79 = sext i8 %78 to i32 120.69/56.80 %80 = load %side2 120.69/56.80 %81 = sext i8 %80 to i32 120.69/56.80 %82 = icmp eq %79 %81 120.69/56.80 br %82, %83, %84 120.69/56.80 83: 120.69/56.80 store 1, %next_state 120.69/56.80 br %128 120.69/56.80 84: 120.69/56.80 %85 = load %side2 120.69/56.80 %86 = sext i8 %85 to i32 120.69/56.80 %87 = load @nomsg 120.69/56.80 %88 = sext i8 %87 to i32 120.69/56.80 %89 = icmp eq %86 %88 120.69/56.80 br %89, %90, %99 120.69/56.80 90: 120.69/56.80 %91 = load %side1 120.69/56.80 %92 = sext i8 %91 to i32 120.69/56.80 %93 = load @nomsg 120.69/56.80 %94 = sext i8 %93 to i32 120.69/56.80 %95 = icmp ne %92 %94 120.69/56.80 br %95, %96, %97 120.69/56.80 96: 120.69/56.80 store 0, %next_state 120.69/56.80 br %98 120.69/56.80 97: 120.69/56.80 br %100 120.69/56.80 98: 120.69/56.80 br %127 120.69/56.80 99: 120.69/56.80 br %100 120.69/56.80 100: 120.69/56.80 %101 = load %side2 120.69/56.80 %102 = sext i8 %101 to i32 120.69/56.80 %103 = load @nomsg 120.69/56.80 %104 = sext i8 %103 to i32 120.69/56.80 %105 = icmp ne %102 %104 120.69/56.80 br %105, %106, %115 120.69/56.80 106: 120.69/56.80 %107 = load %side1 120.69/56.80 %108 = sext i8 %107 to i32 120.69/56.80 %109 = load @nomsg 120.69/56.80 %110 = sext i8 %109 to i32 120.69/56.80 %111 = icmp eq %108 %110 120.69/56.80 br %111, %112, %113 120.69/56.80 112: 120.69/56.80 store 1, %next_state 120.69/56.80 br %114 120.69/56.80 113: 120.69/56.80 br %116 120.69/56.80 114: 120.69/56.80 br %126 120.69/56.80 115: 120.69/56.80 br %116 120.69/56.80 116: 120.69/56.80 %117 = load %manual_selection 120.69/56.80 %118 = sext i8 %117 to i32 120.69/56.80 %119 = icmp eq %118 1 120.69/56.80 br %119, %120, %123 120.69/56.80 120: 120.69/56.80 %121 = load %side2 120.69/56.80 %122 = call signext i8 @flip_the_side(i8 signext %121) 120.69/56.80 store %122, %next_state 120.69/56.80 br %125 120.69/56.80 123: 120.69/56.80 %124 = load %side2 120.69/56.80 store %124, %next_state 120.69/56.80 br %125 120.69/56.80 125: 120.69/56.80 br %126 120.69/56.80 126: 120.69/56.80 br %127 120.69/56.80 127: 120.69/56.80 br %128 120.69/56.80 128: 120.69/56.80 %129 = load %next_state 120.69/56.80 %130 = sext i8 %129 to i32 120.69/56.80 %131 = load @nomsg 120.69/56.80 %132 = sext i8 %131 to i32 120.69/56.80 %133 = icmp ne %130 %132 120.69/56.80 br %133, %134, %143 120.69/56.80 134: 120.69/56.80 %135 = load @s2s1_new 120.69/56.80 %136 = sext i8 %135 to i32 120.69/56.80 %137 = load @nomsg 120.69/56.80 %138 = sext i8 %137 to i32 120.69/56.80 %139 = icmp eq %136 %138 120.69/56.80 br %139, %140, %143 120.69/56.80 140: 120.69/56.80 %141 = load %next_state 120.69/56.80 %142 = sext i8 %141 to i32 120.69/56.80 br %146 120.69/56.80 143: 120.69/56.80 %144 = load @s2s1_new 120.69/56.80 %145 = sext i8 %144 to i32 120.69/56.80 br %146 120.69/56.80 146: 120.69/56.80 %147 = phi [%142, %140], [%145, %143] 120.69/56.80 %148 = trunc i32 %147 to i8 120.69/56.80 store %148, @s2s1_new 120.69/56.80 %149 = load %next_state 120.69/56.80 %150 = sext i8 %149 to i32 120.69/56.80 %151 = load @nomsg 120.69/56.80 %152 = sext i8 %151 to i32 120.69/56.80 %153 = icmp ne %150 %152 120.69/56.80 br %153, %154, %163 120.69/56.80 154: 120.69/56.80 %155 = load @s2s2_new 120.69/56.80 %156 = sext i8 %155 to i32 120.69/56.80 %157 = load @nomsg 120.69/56.80 %158 = sext i8 %157 to i32 120.69/56.80 %159 = icmp eq %156 %158 120.69/56.80 br %159, %160, %163 120.69/56.80 160: 120.69/56.80 %161 = load %next_state 120.69/56.80 %162 = sext i8 %161 to i32 120.69/56.80 br %166 120.69/56.80 163: 120.69/56.80 %164 = load @s2s2_new 120.69/56.80 %165 = sext i8 %164 to i32 120.69/56.80 br %166 120.69/56.80 166: 120.69/56.80 %167 = phi [%162, %160], [%165, %163] 120.69/56.80 %168 = trunc i32 %167 to i8 120.69/56.80 store %168, @s2s2_new 120.69/56.80 %169 = load %next_state 120.69/56.80 %170 = sext i8 %169 to i32 120.69/56.80 %171 = load @nomsg 120.69/56.80 %172 = sext i8 %171 to i32 120.69/56.80 %173 = icmp ne %170 %172 120.69/56.80 br %173, %174, %183 120.69/56.80 174: 120.69/56.80 %175 = load @s2p_new 120.69/56.80 %176 = sext i8 %175 to i32 120.69/56.80 %177 = load @nomsg 120.69/56.80 %178 = sext i8 %177 to i32 120.69/56.80 %179 = icmp eq %176 %178 120.69/56.80 br %179, %180, %183 120.69/56.80 180: 120.69/56.80 %181 = load %next_state 120.69/56.80 %182 = sext i8 %181 to i32 120.69/56.80 br %186 120.69/56.80 183: 120.69/56.80 %184 = load @s2p_new 120.69/56.80 %185 = sext i8 %184 to i32 120.69/56.80 br %186 120.69/56.80 186: 120.69/56.80 %187 = phi [%182, %180], [%185, %183] 120.69/56.80 %188 = trunc i32 %187 to i8 120.69/56.80 store %188, @s2p_new 120.69/56.80 %189 = load %next_state 120.69/56.80 store %189, @side2_written 120.69/56.80 br %190 120.69/56.80 190: 120.69/56.80 ret void 120.69/56.80 120.69/56.80 *BasicFunctionTypename: "Pendulum_prism_task_each_pals_period" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.80 0: 120.69/56.80 %active_side = alloca i8, align 1 120.69/56.80 %tmp = alloca i8, align 1 120.69/56.80 %side1 = alloca i8, align 1 120.69/56.80 %side2 = alloca i8, align 1 120.69/56.80 %1 = call signext i8 @read_active_side_history(i8 zeroext 0) 120.69/56.80 store %1, %tmp 120.69/56.80 %2 = load %tmp 120.69/56.80 store %2, %active_side 120.69/56.80 %3 = load @nomsg 120.69/56.80 store %3, %side1 120.69/56.80 %4 = load @nomsg 120.69/56.80 store %4, %side2 120.69/56.80 %5 = load @s1p_old 120.69/56.80 store %5, %side1 120.69/56.80 %6 = load @nomsg 120.69/56.80 store %6, @s1p_old 120.69/56.80 %7 = load @s2p_old 120.69/56.80 store %7, %side2 120.69/56.80 %8 = load @nomsg 120.69/56.80 store %8, @s2p_old 120.69/56.80 %9 = load %side1 120.69/56.80 %10 = sext i8 %9 to i32 120.69/56.80 %11 = icmp eq %10 1 120.69/56.80 br %11, %12, %13 120.69/56.80 12: 120.69/56.80 store 1, %active_side 120.69/56.80 br %49 120.69/56.80 13: 120.69/56.80 %14 = load %side2 120.69/56.80 %15 = sext i8 %14 to i32 120.69/56.80 %16 = icmp eq %15 1 120.69/56.80 br %16, %17, %18 120.69/56.80 17: 120.69/56.80 store 2, %active_side 120.69/56.80 br %48 120.69/56.80 18: 120.69/56.80 %19 = load %side1 120.69/56.80 %20 = sext i8 %19 to i32 120.69/56.80 %21 = icmp eq %20 0 120.69/56.80 br %21, %22, %31 120.69/56.80 22: 120.69/56.80 %23 = load %side2 120.69/56.80 %24 = sext i8 %23 to i32 120.69/56.80 %25 = load @nomsg 120.69/56.80 %26 = sext i8 %25 to i32 120.69/56.80 %27 = icmp eq %24 %26 120.69/56.80 br %27, %28, %29 120.69/56.80 28: 120.69/56.80 store 1, %active_side 120.69/56.80 br %30 120.69/56.80 29: 120.69/56.80 br %32 120.69/56.80 30: 120.69/56.80 br %47 120.69/56.80 31: 120.69/56.80 br %32 120.69/56.80 32: 120.69/56.80 %33 = load %side1 120.69/56.80 %34 = sext i8 %33 to i32 120.69/56.80 %35 = load @nomsg 120.69/56.80 %36 = sext i8 %35 to i32 120.69/56.80 %37 = icmp eq %34 %36 120.69/56.80 br %37, %38, %45 120.69/56.80 38: 120.69/56.80 %39 = load %side2 120.69/56.80 %40 = sext i8 %39 to i32 120.69/56.80 %41 = icmp eq %40 0 120.69/56.80 br %41, %42, %43 120.69/56.80 42: 120.69/56.80 store 2, %active_side 120.69/56.80 br %44 120.69/56.80 43: 120.69/56.80 store 0, %active_side 120.69/56.80 br %44 120.69/56.80 44: 120.69/56.80 br %46 120.69/56.80 45: 120.69/56.80 store 0, %active_side 120.69/56.80 br %46 120.69/56.80 46: 120.69/56.80 br %47 120.69/56.80 47: 120.69/56.80 br %48 120.69/56.80 48: 120.69/56.80 br %49 120.69/56.80 49: 120.69/56.80 %50 = load %active_side 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @write_active_side_history(i8 signext %50) 120.69/56.80 ret void 120.69/56.80 120.69/56.80 *BasicFunctionTypename: "check" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.80 0: 120.69/56.80 %1 = alloca i32, align 4 120.69/56.80 %tmp = alloca i32, align 4 120.69/56.80 %tmp___0 = alloca i8, align 1 120.69/56.80 %tmp___1 = alloca i8, align 1 120.69/56.80 %tmp___2 = alloca i8, align 1 120.69/56.80 %tmp___3 = alloca i8, align 1 120.69/56.80 %tmp___4 = alloca i8, align 1 120.69/56.80 %tmp___5 = alloca i8, align 1 120.69/56.80 %tmp___6 = alloca i8, align 1 120.69/56.80 %tmp___7 = alloca i8, align 1 120.69/56.80 %tmp___8 = alloca i8, align 1 120.69/56.80 %tmp___9 = alloca i8, align 1 120.69/56.80 %tmp___10 = alloca i8, align 1 120.69/56.80 %tmp___11 = alloca i8, align 1 120.69/56.80 %tmp___12 = alloca i8, align 1 120.69/56.80 %tmp___13 = alloca i8, align 1 120.69/56.80 %tmp___14 = alloca i8, align 1 120.69/56.80 %tmp___15 = alloca i8, align 1 120.69/56.80 %tmp___16 = alloca i8, align 1 120.69/56.80 %tmp___17 = alloca i8, align 1 120.69/56.80 %tmp___18 = alloca i8, align 1 120.69/56.80 %tmp___19 = alloca i8, align 1 120.69/56.80 %tmp___20 = alloca i8, align 1 120.69/56.80 %2 = load @side1Failed 120.69/56.80 %3 = trunc i8 %2 to i1 120.69/56.80 br %3, %5, %4 120.69/56.80 4: 120.69/56.80 store 1, %tmp 120.69/56.80 br %11 120.69/56.80 5: 120.69/56.80 %6 = load @side2Failed 120.69/56.80 %7 = trunc i8 %6 to i1 120.69/56.80 br %7, %9, %8 120.69/56.80 8: 120.69/56.80 store 1, %tmp 120.69/56.80 br %10 120.69/56.80 9: 120.69/56.80 store 0, %tmp 120.69/56.80 br %10 120.69/56.80 10: 120.69/56.80 br %11 120.69/56.80 11: 120.69/56.80 %12 = load %tmp 120.69/56.80 %13 = icmp ne %12 0 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %13) 120.69/56.80 %14 = call signext i8 @read_manual_selection_history(i8 zeroext 1) 120.69/56.80 store %14, %tmp___0 120.69/56.80 %15 = load %tmp___0 120.69/56.80 %16 = icmp ne %15 0 120.69/56.80 br %16, %72, %17 120.69/56.80 17: 120.69/56.80 %18 = call zeroext i1 @read_side1_failed_history(i8 zeroext 1) 120.69/56.80 %19 = zext i1 %18 to i8 120.69/56.80 store %19, %tmp___1 120.69/56.80 %20 = load %tmp___1 120.69/56.80 %21 = trunc i8 %20 to i1 120.69/56.80 br %21, %71, %22 120.69/56.80 22: 120.69/56.80 %23 = call zeroext i1 @read_side1_failed_history(i8 zeroext 0) 120.69/56.80 %24 = zext i1 %23 to i8 120.69/56.80 store %24, %tmp___2 120.69/56.80 %25 = load %tmp___2 120.69/56.80 %26 = trunc i8 %25 to i1 120.69/56.80 br %26, %70, %27 120.69/56.80 27: 120.69/56.80 %28 = call zeroext i1 @read_side2_failed_history(i8 zeroext 1) 120.69/56.80 %29 = zext i1 %28 to i8 120.69/56.80 store %29, %tmp___3 120.69/56.80 %30 = load %tmp___3 120.69/56.80 %31 = trunc i8 %30 to i1 120.69/56.80 br %31, %69, %32 120.69/56.80 32: 120.69/56.80 %33 = call zeroext i1 @read_side2_failed_history(i8 zeroext 0) 120.69/56.80 %34 = zext i1 %33 to i8 120.69/56.80 store %34, %tmp___4 120.69/56.80 %35 = load %tmp___4 120.69/56.80 %36 = trunc i8 %35 to i1 120.69/56.80 br %36, %68, %37 120.69/56.80 37: 120.69/56.80 %38 = load @side1_written 120.69/56.80 %39 = sext i8 %38 to i32 120.69/56.80 %40 = icmp eq %39 1 120.69/56.80 br %40, %47, %41 120.69/56.80 41: 120.69/56.80 %42 = load @side1_written 120.69/56.80 %43 = sext i8 %42 to i32 120.69/56.80 %44 = icmp eq %43 0 120.69/56.80 br %44, %46, %45 120.69/56.80 45: 120.69/56.80 store 0, %1 120.69/56.80 br %177 120.69/56.80 46: 120.69/56.80 br %47 120.69/56.80 47: 120.69/56.80 %48 = load @side1_written 120.69/56.80 %49 = sext i8 %48 to i32 120.69/56.80 %50 = icmp eq %49 0 120.69/56.80 br %50, %51, %57 120.69/56.80 51: 120.69/56.80 %52 = load @side2_written 120.69/56.80 %53 = sext i8 %52 to i32 120.69/56.80 %54 = icmp eq %53 1 120.69/56.80 br %54, %56, %55 120.69/56.80 55: 120.69/56.80 store 0, %1 120.69/56.80 br %177 120.69/56.80 56: 120.69/56.80 br %57 120.69/56.80 57: 120.69/56.80 %58 = load @side1_written 120.69/56.80 %59 = sext i8 %58 to i32 120.69/56.80 %60 = icmp eq %59 1 120.69/56.80 br %60, %61, %67 120.69/56.80 61: 120.69/56.80 %62 = load @side2_written 120.69/56.80 %63 = sext i8 %62 to i32 120.69/56.80 %64 = icmp eq %63 0 120.69/56.80 br %64, %66, %65 120.69/56.80 65: 120.69/56.80 store 0, %1 120.69/56.80 br %177 120.69/56.80 66: 120.69/56.80 br %67 120.69/56.80 67: 120.69/56.80 br %68 120.69/56.80 68: 120.69/56.80 br %69 120.69/56.80 69: 120.69/56.80 br %70 120.69/56.80 70: 120.69/56.80 br %71 120.69/56.80 71: 120.69/56.80 br %72 120.69/56.80 72: 120.69/56.80 %73 = call zeroext i1 @read_side1_failed_history(i8 zeroext 1) 120.69/56.80 %74 = zext i1 %73 to i8 120.69/56.80 store %74, %tmp___7 120.69/56.80 %75 = load %tmp___7 120.69/56.80 %76 = trunc i8 %75 to i1 120.69/56.80 br %76, %77, %101 120.69/56.80 77: 120.69/56.80 %78 = call zeroext i1 @read_side2_failed_history(i8 zeroext 1) 120.69/56.80 %79 = zext i1 %78 to i8 120.69/56.80 store %79, %tmp___8 120.69/56.80 %80 = load %tmp___8 120.69/56.80 %81 = trunc i8 %80 to i1 120.69/56.80 br %81, %100, %82 120.69/56.80 82: 120.69/56.80 %83 = call signext i8 @read_active_side_history(i8 zeroext 0) 120.69/56.80 store %83, %tmp___5 120.69/56.80 %84 = load %tmp___5 120.69/56.80 %85 = sext i8 %84 to i32 120.69/56.80 %86 = icmp eq %85 2 120.69/56.80 br %86, %88, %87 120.69/56.80 87: 120.69/56.80 store 0, %1 120.69/56.80 br %177 120.69/56.80 88: 120.69/56.80 %89 = call zeroext i1 @read_side2_failed_history(i8 zeroext 0) 120.69/56.80 %90 = zext i1 %89 to i8 120.69/56.80 store %90, %tmp___6 120.69/56.80 %91 = load %tmp___6 120.69/56.80 %92 = trunc i8 %91 to i1 120.69/56.80 br %92, %99, %93 120.69/56.80 93: 120.69/56.80 %94 = load @side2_written 120.69/56.80 %95 = sext i8 %94 to i32 120.69/56.80 %96 = icmp eq %95 1 120.69/56.80 br %96, %98, %97 120.69/56.80 97: 120.69/56.80 store 0, %1 120.69/56.80 br %177 120.69/56.80 98: 120.69/56.80 br %99 120.69/56.80 99: 120.69/56.80 br %100 120.69/56.80 100: 120.69/56.80 br %101 120.69/56.80 101: 120.69/56.80 %102 = call zeroext i1 @read_side1_failed_history(i8 zeroext 1) 120.69/56.80 %103 = zext i1 %102 to i8 120.69/56.80 store %103, %tmp___11 120.69/56.80 %104 = load %tmp___11 120.69/56.80 %105 = trunc i8 %104 to i1 120.69/56.80 br %105, %130, %106 120.69/56.80 106: 120.69/56.80 %107 = call zeroext i1 @read_side2_failed_history(i8 zeroext 1) 120.69/56.80 %108 = zext i1 %107 to i8 120.69/56.80 store %108, %tmp___12 120.69/56.80 %109 = load %tmp___12 120.69/56.80 %110 = trunc i8 %109 to i1 120.69/56.80 br %110, %111, %129 120.69/56.80 111: 120.69/56.80 %112 = call signext i8 @read_active_side_history(i8 zeroext 0) 120.69/56.80 store %112, %tmp___9 120.69/56.80 %113 = load %tmp___9 120.69/56.80 %114 = sext i8 %113 to i32 120.69/56.80 %115 = icmp eq %114 1 120.69/56.80 br %115, %117, %116 120.69/56.80 116: 120.69/56.80 store 0, %1 120.69/56.80 br %177 120.69/56.80 117: 120.69/56.80 %118 = call zeroext i1 @read_side1_failed_history(i8 zeroext 0) 120.69/56.80 %119 = zext i1 %118 to i8 120.69/56.80 store %119, %tmp___10 120.69/56.80 %120 = load %tmp___10 120.69/56.80 %121 = trunc i8 %120 to i1 120.69/56.80 br %121, %128, %122 120.69/56.80 122: 120.69/56.80 %123 = load @side1_written 120.69/56.80 %124 = sext i8 %123 to i32 120.69/56.80 %125 = icmp eq %124 1 120.69/56.80 br %125, %127, %126 120.69/56.80 126: 120.69/56.80 store 0, %1 120.69/56.80 br %177 120.69/56.80 127: 120.69/56.80 br %128 120.69/56.80 128: 120.69/56.80 br %129 120.69/56.80 129: 120.69/56.80 br %130 120.69/56.80 130: 120.69/56.80 %131 = call signext i8 @read_active_side_history(i8 zeroext 2) 120.69/56.80 store %131, %tmp___20 120.69/56.80 %132 = load %tmp___20 120.69/56.80 %133 = sext i8 %132 to i32 120.69/56.80 %134 = icmp sgt %133 -2 120.69/56.80 br %134, %135, %176 120.69/56.80 135: 120.69/56.80 %136 = call signext i8 @read_manual_selection_history(i8 zeroext 2) 120.69/56.80 store %136, %tmp___13 120.69/56.80 %137 = load %tmp___13 120.69/56.80 %138 = icmp ne %137 0 120.69/56.80 br %138, %175, %139 120.69/56.80 139: 120.69/56.80 %140 = call zeroext i1 @read_side1_failed_history(i8 zeroext 2) 120.69/56.80 %141 = zext i1 %140 to i8 120.69/56.80 store %141, %tmp___14 120.69/56.80 %142 = call zeroext i1 @read_side1_failed_history(i8 zeroext 1) 120.69/56.80 %143 = zext i1 %142 to i8 120.69/56.80 store %143, %tmp___15 120.69/56.80 %144 = load %tmp___14 120.69/56.80 %145 = trunc i8 %144 to i1 120.69/56.80 %146 = zext i1 %145 to i32 120.69/56.80 %147 = load %tmp___15 120.69/56.80 %148 = trunc i8 %147 to i1 120.69/56.80 %149 = zext i1 %148 to i32 120.69/56.80 %150 = icmp eq %146 %149 120.69/56.80 br %150, %151, %174 120.69/56.80 151: 120.69/56.80 %152 = call zeroext i1 @read_side2_failed_history(i8 zeroext 2) 120.69/56.80 %153 = zext i1 %152 to i8 120.69/56.80 store %153, %tmp___16 120.69/56.80 %154 = call zeroext i1 @read_side2_failed_history(i8 zeroext 1) 120.69/56.80 %155 = zext i1 %154 to i8 120.69/56.80 store %155, %tmp___17 120.69/56.80 %156 = load %tmp___16 120.69/56.80 %157 = trunc i8 %156 to i1 120.69/56.80 %158 = zext i1 %157 to i32 120.69/56.80 %159 = load %tmp___17 120.69/56.80 %160 = trunc i8 %159 to i1 120.69/56.80 %161 = zext i1 %160 to i32 120.69/56.80 %162 = icmp eq %158 %161 120.69/56.80 br %162, %163, %173 120.69/56.80 163: 120.69/56.80 %164 = call signext i8 @read_active_side_history(i8 zeroext 1) 120.69/56.80 store %164, %tmp___18 120.69/56.80 %165 = call signext i8 @read_active_side_history(i8 zeroext 0) 120.69/56.80 store %165, %tmp___19 120.69/56.80 %166 = load %tmp___18 120.69/56.80 %167 = sext i8 %166 to i32 120.69/56.80 %168 = load %tmp___19 120.69/56.80 %169 = sext i8 %168 to i32 120.69/56.80 %170 = icmp eq %167 %169 120.69/56.80 br %170, %172, %171 120.69/56.80 171: 120.69/56.80 store 0, %1 120.69/56.80 br %177 120.69/56.80 172: 120.69/56.80 br %173 120.69/56.80 173: 120.69/56.80 br %174 120.69/56.80 174: 120.69/56.80 br %175 120.69/56.80 175: 120.69/56.80 br %176 120.69/56.80 176: 120.69/56.80 store 1, %1 120.69/56.80 br %177 120.69/56.80 177: 120.69/56.80 %178 = load %1 120.69/56.80 ret %178 120.69/56.80 120.69/56.80 *BasicFunctionTypename: "__VERIFIER_assume" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.80 0: 120.69/56.80 %1 = alloca i8, align 1 120.69/56.80 %2 = zext i1 %arg to i8 120.69/56.80 store %2, %1 120.69/56.80 br %3 120.69/56.80 3: 120.69/56.80 %4 = load %1 120.69/56.80 %5 = trunc i8 %4 to i1 120.69/56.80 %6 = xor %5 1 120.69/56.80 br %6, %7, %8 120.69/56.80 7: 120.69/56.80 br %3 120.69/56.80 8: 120.69/56.80 ret void 120.69/56.80 120.69/56.80 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 120.69/56.80 0: 120.69/56.80 %1 = alloca i32, align 4 120.69/56.80 %c1 = alloca i32, align 4 120.69/56.80 %i2 = alloca i32, align 4 120.69/56.80 store 0, %1 120.69/56.80 store 0, %c1 120.69/56.80 %2 = call zeroext i1 @__VERIFIER_nondet__Bool() 120.69/56.80 %3 = zext i1 %2 to i8 120.69/56.80 store %3, @side1Failed 120.69/56.80 %4 = call zeroext i1 @__VERIFIER_nondet__Bool() 120.69/56.80 %5 = zext i1 %4 to i8 120.69/56.80 store %5, @side2Failed 120.69/56.80 %6 = call signext i8 @__VERIFIER_nondet_msg_t() 120.69/56.80 store %6, @side1_written 120.69/56.80 %7 = call signext i8 @__VERIFIER_nondet_msg_t() 120.69/56.80 store %7, @side2_written 120.69/56.80 %8 = call zeroext i1 @__VERIFIER_nondet__Bool() 120.69/56.80 %9 = zext i1 %8 to i8 120.69/56.80 store %9, @side1Failed_History_0 120.69/56.80 %10 = call zeroext i1 @__VERIFIER_nondet__Bool() 120.69/56.80 %11 = zext i1 %10 to i8 120.69/56.80 store %11, @side1Failed_History_1 120.69/56.80 %12 = call zeroext i1 @__VERIFIER_nondet__Bool() 120.69/56.80 %13 = zext i1 %12 to i8 120.69/56.80 store %13, @side1Failed_History_2 120.69/56.80 %14 = call zeroext i1 @__VERIFIER_nondet__Bool() 120.69/56.80 %15 = zext i1 %14 to i8 120.69/56.80 store %15, @side2Failed_History_0 120.69/56.80 %16 = call zeroext i1 @__VERIFIER_nondet__Bool() 120.69/56.80 %17 = zext i1 %16 to i8 120.69/56.80 store %17, @side2Failed_History_1 120.69/56.80 %18 = call zeroext i1 @__VERIFIER_nondet__Bool() 120.69/56.80 %19 = zext i1 %18 to i8 120.69/56.80 store %19, @side2Failed_History_2 120.69/56.80 %20 = call signext i8 @__VERIFIER_nondet_int8_t() 120.69/56.80 store %20, @active_side_History_0 120.69/56.80 %21 = call signext i8 @__VERIFIER_nondet_int8_t() 120.69/56.80 store %21, @active_side_History_1 120.69/56.80 %22 = call signext i8 @__VERIFIER_nondet_int8_t() 120.69/56.80 store %22, @active_side_History_2 120.69/56.80 %23 = call signext i8 @__VERIFIER_nondet_msg_t() 120.69/56.80 store %23, @manual_selection_History_0 120.69/56.80 %24 = call signext i8 @__VERIFIER_nondet_msg_t() 120.69/56.80 store %24, @manual_selection_History_1 120.69/56.80 %25 = call signext i8 @__VERIFIER_nondet_msg_t() 120.69/56.80 store %25, @manual_selection_History_2 120.69/56.80 %26 = call i32 @init() 120.69/56.80 store %26, %i2 120.69/56.80 %27 = load %i2 120.69/56.80 %28 = icmp ne %27 0 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %28) 120.69/56.80 %29 = load @nomsg 120.69/56.80 store %29, @cs1_old 120.69/56.80 %30 = load @nomsg 120.69/56.80 store %30, @cs1_new 120.69/56.80 %31 = load @nomsg 120.69/56.80 store %31, @cs2_old 120.69/56.80 %32 = load @nomsg 120.69/56.80 store %32, @cs2_new 120.69/56.80 %33 = load @nomsg 120.69/56.80 store %33, @s1s2_old 120.69/56.80 %34 = load @nomsg 120.69/56.80 store %34, @s1s2_new 120.69/56.80 %35 = load @nomsg 120.69/56.80 store %35, @s1s1_old 120.69/56.80 %36 = load @nomsg 120.69/56.80 store %36, @s1s1_new 120.69/56.80 %37 = load @nomsg 120.69/56.80 store %37, @s2s1_old 120.69/56.80 %38 = load @nomsg 120.69/56.80 store %38, @s2s1_new 120.69/56.80 %39 = load @nomsg 120.69/56.80 store %39, @s2s2_old 120.69/56.80 %40 = load @nomsg 120.69/56.80 store %40, @s2s2_new 120.69/56.80 %41 = load @nomsg 120.69/56.80 store %41, @s1p_old 120.69/56.80 %42 = load @nomsg 120.69/56.80 store %42, @s1p_new 120.69/56.80 %43 = load @nomsg 120.69/56.80 store %43, @s2p_old 120.69/56.80 %44 = load @nomsg 120.69/56.80 store %44, @s2p_new 120.69/56.80 store 0, %i2 120.69/56.80 br %45 120.69/56.80 45: 120.69/56.80 %46 = load %i2 120.69/56.80 %47 = icmp slt %46 10 120.69/56.80 br %47, %48, %70 120.69/56.80 48: 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @Console_task_each_pals_period() 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @Side1_activestandby_task_each_pals_period() 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @Side2_activestandby_task_each_pals_period() 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @Pendulum_prism_task_each_pals_period() 120.69/56.80 %49 = load @cs1_new 120.69/56.80 store %49, @cs1_old 120.69/56.80 %50 = load @nomsg 120.69/56.80 store %50, @cs1_new 120.69/56.80 %51 = load @cs2_new 120.69/56.80 store %51, @cs2_old 120.69/56.80 %52 = load @nomsg 120.69/56.80 store %52, @cs2_new 120.69/56.80 %53 = load @s1s2_new 120.69/56.80 store %53, @s1s2_old 120.69/56.80 %54 = load @nomsg 120.69/56.80 store %54, @s1s2_new 120.69/56.80 %55 = load @s1s1_new 120.69/56.80 store %55, @s1s1_old 120.69/56.80 %56 = load @nomsg 120.69/56.80 store %56, @s1s1_new 120.69/56.80 %57 = load @s2s1_new 120.69/56.80 store %57, @s2s1_old 120.69/56.80 %58 = load @nomsg 120.69/56.80 store %58, @s2s1_new 120.69/56.80 %59 = load @s2s2_new 120.69/56.80 store %59, @s2s2_old 120.69/56.80 %60 = load @nomsg 120.69/56.80 store %60, @s2s2_new 120.69/56.80 %61 = load @s1p_new 120.69/56.80 store %61, @s1p_old 120.69/56.80 %62 = load @nomsg 120.69/56.80 store %62, @s1p_new 120.69/56.80 %63 = load @s2p_new 120.69/56.80 store %63, @s2p_old 120.69/56.80 %64 = load @nomsg 120.69/56.80 store %64, @s2p_new 120.69/56.80 %65 = call i32 @check() 120.69/56.80 store %65, %c1 120.69/56.80 %66 = load %c1 120.69/56.80 %67 = icmp ne %66 0 120.69/56.80 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext %67) 120.69/56.80 %68 = load %i2 120.69/56.80 %69 = add %68 1 120.69/56.80 store %69, %i2 120.69/56.80 br %45 120.69/56.80 70: 120.69/56.80 %71 = load %1 120.69/56.80 ret %71 120.69/56.80 120.69/56.80 120.69/56.80 Analyze Termination of all function calls matching the pattern: 120.69/56.80 main() 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (3) LLVMToTerminationGraphProof (EQUIVALENT) 120.69/56.80 Constructed symbolic execution graph for LLVM program and proved memory safety. 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (4) 120.69/56.80 Obligation: 120.69/56.80 SE Graph 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (5) SymbolicExecutionGraphToSCCProof (SOUND) 120.69/56.80 Splitted symbolic execution graph to 3 SCCs. 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (6) 120.69/56.80 Complex Obligation (AND) 120.69/56.80 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (7) 120.69/56.80 Obligation: 120.69/56.80 SCC 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (8) 120.69/56.80 Obligation: 120.69/56.80 SCC 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (9) 120.69/56.80 Obligation: 120.69/56.80 SCC 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (10) SymbolicExecutionGraphToLassoProof (COMPLETE) 120.69/56.80 Converted SEGraph to 16 dependent lassos. 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (11) 120.69/56.80 Complex Obligation (AND) 120.69/56.80 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (12) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (13) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (14) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (15) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (16) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (17) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (18) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (19) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (20) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (21) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (22) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (23) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (24) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (25) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (26) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.80 ---------------------------------------- 120.69/56.80 120.69/56.80 (27) 120.69/56.80 Obligation: 120.69/56.80 Lasso 120.69/56.84 EOF