128.20/63.93 MAYBE 128.20/63.94 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 128.20/63.94 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 128.20/63.94 128.20/63.94 128.20/63.94 Termination of the given C Problem could not be shown: 128.20/63.94 128.20/63.94 (0) C Problem 128.20/63.94 (1) CToLLVMProof [EQUIVALENT, 177 ms] 128.20/63.94 (2) LLVM problem 128.20/63.94 (3) LLVMToTerminationGraphProof [EQUIVALENT, 60.6 s] 128.20/63.94 (4) LLVM Symbolic Execution Graph 128.20/63.94 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 128.20/63.94 (6) AND 128.20/63.94 (7) LLVM Symbolic Execution SCC 128.20/63.94 (8) LLVM Symbolic Execution SCC 128.20/63.94 (9) LLVM Symbolic Execution SCC 128.20/63.94 (10) SymbolicExecutionGraphToLassoProof [COMPLETE, 91 ms] 128.20/63.94 (11) AND 128.20/63.94 (12) LLVM Symbolic Execution Lasso 128.20/63.94 (13) LLVM Symbolic Execution Lasso 128.20/63.94 (14) LLVM Symbolic Execution Lasso 128.20/63.94 (15) LLVM Symbolic Execution Lasso 128.20/63.94 128.20/63.94 128.20/63.94 ---------------------------------------- 128.20/63.94 128.20/63.94 (0) 128.20/63.94 Obligation: 128.20/63.94 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 128.20/63.94 ---------------------------------------- 128.20/63.94 128.20/63.94 (1) CToLLVMProof (EQUIVALENT) 128.20/63.94 Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. 128.20/63.94 ---------------------------------------- 128.20/63.94 128.20/63.94 (2) 128.20/63.94 Obligation: 128.20/63.94 LLVM Problem 128.20/63.94 128.20/63.94 Aliases: 128.20/63.94 128.20/63.94 Data layout: 128.20/63.94 128.20/63.94 "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" 128.20/63.94 128.20/63.94 Machine: 128.20/63.94 128.20/63.94 "x86_64-pc-linux-gnu" 128.20/63.94 128.20/63.94 Type definitions: 128.20/63.94 128.20/63.94 Global variables: 128.20/63.94 128.20/63.94 Name: nomsg initVal: -1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 128.20/63.94 128.20/63.94 Name: mode1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: r1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p8_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: id1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: send1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: st1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p1_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: mode2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p1_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: id2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: send2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: st2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p2_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: mode3 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p2_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: id3 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: send3 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: st3 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p3_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: mode4 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p3_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: id4 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: send4 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: st4 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p4_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: mode5 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p4_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: id5 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: send5 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: st5 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p5_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: mode6 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p5_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: id6 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: send6 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: st6 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p6_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: mode7 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p6_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: id7 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: send7 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: st7 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p7_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: mode8 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p7_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: id8 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: send8 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: st8 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p8_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: nodes initVal: (@node1,@node2,@node3,@node4,@node5,@node6,@node7,@node8) type: [8 x *BasicFunctionType varArgs: falsereturnType: BasicVoidTypeparamTypes: ()] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: null section: null 128.20/63.94 128.20/63.94 Name: p1 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p2 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p3 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p4 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p5 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p6 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p7 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Name: p8 initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 128.20/63.94 128.20/63.94 Function declarations and definitions: 128.20/63.94 128.20/63.94 *BasicFunctionTypename: "__VERIFIER_nondet_char" returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 *BasicFunctionTypename: "__VERIFIER_nondet_msg_t" returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 *BasicFunctionTypename: "__VERIFIER_nondet__Bool" returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 *BasicFunctionTypename: "node1" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 0: 128.20/63.94 %m1 = alloca i8, align 1 128.20/63.94 %1 = load @nomsg 128.20/63.94 store %1, %m1 128.20/63.94 %2 = load @mode1 128.20/63.94 %3 = trunc i8 %2 to i1 128.20/63.94 br %3, %4, %36 128.20/63.94 4: 128.20/63.94 %5 = load @r1 128.20/63.94 %6 = sext i8 %5 to i32 128.20/63.94 %7 = add %6 1 128.20/63.94 %8 = trunc i32 %7 to i8 128.20/63.94 store %8, @r1 128.20/63.94 %9 = load @p8_old 128.20/63.94 store %9, %m1 128.20/63.94 %10 = load @nomsg 128.20/63.94 store %10, @p8_old 128.20/63.94 %11 = load %m1 128.20/63.94 %12 = sext i8 %11 to i32 128.20/63.94 %13 = load @nomsg 128.20/63.94 %14 = sext i8 %13 to i32 128.20/63.94 %15 = icmp ne %12 %14 128.20/63.94 br %15, %16, %35 128.20/63.94 16: 128.20/63.94 %17 = load %m1 128.20/63.94 %18 = sext i8 %17 to i32 128.20/63.94 %19 = load @id1 128.20/63.94 %20 = sext i8 %19 to i32 128.20/63.94 %21 = icmp sgt %18 %20 128.20/63.94 br %21, %22, %24 128.20/63.94 22: 128.20/63.94 %23 = load %m1 128.20/63.94 store %23, @send1 128.20/63.94 br %34 128.20/63.94 24: 128.20/63.94 %25 = load %m1 128.20/63.94 %26 = sext i8 %25 to i32 128.20/63.94 %27 = load @id1 128.20/63.94 %28 = sext i8 %27 to i32 128.20/63.94 %29 = icmp eq %26 %28 128.20/63.94 br %29, %30, %31 128.20/63.94 30: 128.20/63.94 store 1, @st1 128.20/63.94 br %33 128.20/63.94 31: 128.20/63.94 %32 = load %m1 128.20/63.94 store %32, @send1 128.20/63.94 br %33 128.20/63.94 33: 128.20/63.94 br %34 128.20/63.94 34: 128.20/63.94 br %35 128.20/63.94 35: 128.20/63.94 store 0, @mode1 128.20/63.94 br %57 128.20/63.94 36: 128.20/63.94 %37 = load @send1 128.20/63.94 %38 = sext i8 %37 to i32 128.20/63.94 %39 = load @nomsg 128.20/63.94 %40 = sext i8 %39 to i32 128.20/63.94 %41 = icmp ne %38 %40 128.20/63.94 br %41, %42, %51 128.20/63.94 42: 128.20/63.94 %43 = load @p1_new 128.20/63.94 %44 = sext i8 %43 to i32 128.20/63.94 %45 = load @nomsg 128.20/63.94 %46 = sext i8 %45 to i32 128.20/63.94 %47 = icmp eq %44 %46 128.20/63.94 br %47, %48, %51 128.20/63.94 48: 128.20/63.94 %49 = load @send1 128.20/63.94 %50 = sext i8 %49 to i32 128.20/63.94 br %54 128.20/63.94 51: 128.20/63.94 %52 = load @p1_new 128.20/63.94 %53 = sext i8 %52 to i32 128.20/63.94 br %54 128.20/63.94 54: 128.20/63.94 %55 = phi [%50, %48], [%53, %51] 128.20/63.94 %56 = trunc i32 %55 to i8 128.20/63.94 store %56, @p1_new 128.20/63.94 store 1, @mode1 128.20/63.94 br %57 128.20/63.94 57: 128.20/63.94 ret void 128.20/63.94 128.20/63.94 *BasicFunctionTypename: "node2" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 0: 128.20/63.94 %m2 = alloca i8, align 1 128.20/63.94 %1 = load @nomsg 128.20/63.94 store %1, %m2 128.20/63.94 %2 = load @mode2 128.20/63.94 %3 = trunc i8 %2 to i1 128.20/63.94 br %3, %4, %30 128.20/63.94 4: 128.20/63.94 %5 = load @p1_old 128.20/63.94 store %5, %m2 128.20/63.94 %6 = load @nomsg 128.20/63.94 store %6, @p1_old 128.20/63.94 %7 = load %m2 128.20/63.94 %8 = sext i8 %7 to i32 128.20/63.94 %9 = load @nomsg 128.20/63.94 %10 = sext i8 %9 to i32 128.20/63.94 %11 = icmp ne %8 %10 128.20/63.94 br %11, %12, %29 128.20/63.94 12: 128.20/63.94 %13 = load %m2 128.20/63.94 %14 = sext i8 %13 to i32 128.20/63.94 %15 = load @id2 128.20/63.94 %16 = sext i8 %15 to i32 128.20/63.94 %17 = icmp sgt %14 %16 128.20/63.94 br %17, %18, %20 128.20/63.94 18: 128.20/63.94 %19 = load %m2 128.20/63.94 store %19, @send2 128.20/63.94 br %28 128.20/63.94 20: 128.20/63.94 %21 = load %m2 128.20/63.94 %22 = sext i8 %21 to i32 128.20/63.94 %23 = load @id2 128.20/63.94 %24 = sext i8 %23 to i32 128.20/63.94 %25 = icmp eq %22 %24 128.20/63.94 br %25, %26, %27 128.20/63.94 26: 128.20/63.94 store 1, @st2 128.20/63.94 br %27 128.20/63.94 27: 128.20/63.94 br %28 128.20/63.94 28: 128.20/63.94 br %29 128.20/63.94 29: 128.20/63.94 store 0, @mode2 128.20/63.94 br %51 128.20/63.94 30: 128.20/63.94 %31 = load @send2 128.20/63.94 %32 = sext i8 %31 to i32 128.20/63.94 %33 = load @nomsg 128.20/63.94 %34 = sext i8 %33 to i32 128.20/63.94 %35 = icmp ne %32 %34 128.20/63.94 br %35, %36, %45 128.20/63.94 36: 128.20/63.94 %37 = load @p2_new 128.20/63.94 %38 = sext i8 %37 to i32 128.20/63.94 %39 = load @nomsg 128.20/63.94 %40 = sext i8 %39 to i32 128.20/63.94 %41 = icmp eq %38 %40 128.20/63.94 br %41, %42, %45 128.20/63.94 42: 128.20/63.94 %43 = load @send2 128.20/63.94 %44 = sext i8 %43 to i32 128.20/63.94 br %48 128.20/63.94 45: 128.20/63.94 %46 = load @p2_new 128.20/63.94 %47 = sext i8 %46 to i32 128.20/63.94 br %48 128.20/63.94 48: 128.20/63.94 %49 = phi [%44, %42], [%47, %45] 128.20/63.94 %50 = trunc i32 %49 to i8 128.20/63.94 store %50, @p2_new 128.20/63.94 store 1, @mode2 128.20/63.94 br %51 128.20/63.94 51: 128.20/63.94 ret void 128.20/63.94 128.20/63.94 *BasicFunctionTypename: "node3" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 0: 128.20/63.94 %m3 = alloca i8, align 1 128.20/63.94 %1 = load @nomsg 128.20/63.94 store %1, %m3 128.20/63.94 %2 = load @mode3 128.20/63.94 %3 = trunc i8 %2 to i1 128.20/63.94 br %3, %4, %30 128.20/63.94 4: 128.20/63.94 %5 = load @p2_old 128.20/63.94 store %5, %m3 128.20/63.94 %6 = load @nomsg 128.20/63.94 store %6, @p2_old 128.20/63.94 %7 = load %m3 128.20/63.94 %8 = sext i8 %7 to i32 128.20/63.94 %9 = load @nomsg 128.20/63.94 %10 = sext i8 %9 to i32 128.20/63.94 %11 = icmp ne %8 %10 128.20/63.94 br %11, %12, %29 128.20/63.94 12: 128.20/63.94 %13 = load %m3 128.20/63.94 %14 = sext i8 %13 to i32 128.20/63.94 %15 = load @id3 128.20/63.94 %16 = sext i8 %15 to i32 128.20/63.94 %17 = icmp sgt %14 %16 128.20/63.94 br %17, %18, %20 128.20/63.94 18: 128.20/63.94 %19 = load %m3 128.20/63.94 store %19, @send3 128.20/63.94 br %28 128.20/63.94 20: 128.20/63.94 %21 = load %m3 128.20/63.94 %22 = sext i8 %21 to i32 128.20/63.94 %23 = load @id3 128.20/63.94 %24 = sext i8 %23 to i32 128.20/63.94 %25 = icmp eq %22 %24 128.20/63.94 br %25, %26, %27 128.20/63.94 26: 128.20/63.94 store 1, @st3 128.20/63.94 br %27 128.20/63.94 27: 128.20/63.94 br %28 128.20/63.94 28: 128.20/63.94 br %29 128.20/63.94 29: 128.20/63.94 store 0, @mode3 128.20/63.94 br %51 128.20/63.94 30: 128.20/63.94 %31 = load @send3 128.20/63.94 %32 = sext i8 %31 to i32 128.20/63.94 %33 = load @nomsg 128.20/63.94 %34 = sext i8 %33 to i32 128.20/63.94 %35 = icmp ne %32 %34 128.20/63.94 br %35, %36, %45 128.20/63.94 36: 128.20/63.94 %37 = load @p3_new 128.20/63.94 %38 = sext i8 %37 to i32 128.20/63.94 %39 = load @nomsg 128.20/63.94 %40 = sext i8 %39 to i32 128.20/63.94 %41 = icmp eq %38 %40 128.20/63.94 br %41, %42, %45 128.20/63.94 42: 128.20/63.94 %43 = load @send3 128.20/63.94 %44 = sext i8 %43 to i32 128.20/63.94 br %48 128.20/63.94 45: 128.20/63.94 %46 = load @p3_new 128.20/63.94 %47 = sext i8 %46 to i32 128.20/63.94 br %48 128.20/63.94 48: 128.20/63.94 %49 = phi [%44, %42], [%47, %45] 128.20/63.94 %50 = trunc i32 %49 to i8 128.20/63.94 store %50, @p3_new 128.20/63.94 store 1, @mode3 128.20/63.94 br %51 128.20/63.94 51: 128.20/63.94 ret void 128.20/63.94 128.20/63.94 *BasicFunctionTypename: "node4" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 0: 128.20/63.94 %m4 = alloca i8, align 1 128.20/63.94 %1 = load @nomsg 128.20/63.94 store %1, %m4 128.20/63.94 %2 = load @mode4 128.20/63.94 %3 = trunc i8 %2 to i1 128.20/63.94 br %3, %4, %30 128.20/63.94 4: 128.20/63.94 %5 = load @p3_old 128.20/63.94 store %5, %m4 128.20/63.94 %6 = load @nomsg 128.20/63.94 store %6, @p3_old 128.20/63.94 %7 = load %m4 128.20/63.94 %8 = sext i8 %7 to i32 128.20/63.94 %9 = load @nomsg 128.20/63.94 %10 = sext i8 %9 to i32 128.20/63.94 %11 = icmp ne %8 %10 128.20/63.94 br %11, %12, %29 128.20/63.94 12: 128.20/63.94 %13 = load %m4 128.20/63.94 %14 = sext i8 %13 to i32 128.20/63.94 %15 = load @id4 128.20/63.94 %16 = sext i8 %15 to i32 128.20/63.94 %17 = icmp sgt %14 %16 128.20/63.94 br %17, %18, %20 128.20/63.94 18: 128.20/63.94 %19 = load %m4 128.20/63.94 store %19, @send4 128.20/63.94 br %28 128.20/63.94 20: 128.20/63.94 %21 = load %m4 128.20/63.94 %22 = sext i8 %21 to i32 128.20/63.94 %23 = load @id4 128.20/63.94 %24 = sext i8 %23 to i32 128.20/63.94 %25 = icmp eq %22 %24 128.20/63.94 br %25, %26, %27 128.20/63.94 26: 128.20/63.94 store 1, @st4 128.20/63.94 br %27 128.20/63.94 27: 128.20/63.94 br %28 128.20/63.94 28: 128.20/63.94 br %29 128.20/63.94 29: 128.20/63.94 store 0, @mode4 128.20/63.94 br %51 128.20/63.94 30: 128.20/63.94 %31 = load @send4 128.20/63.94 %32 = sext i8 %31 to i32 128.20/63.94 %33 = load @nomsg 128.20/63.94 %34 = sext i8 %33 to i32 128.20/63.94 %35 = icmp ne %32 %34 128.20/63.94 br %35, %36, %45 128.20/63.94 36: 128.20/63.94 %37 = load @p4_new 128.20/63.94 %38 = sext i8 %37 to i32 128.20/63.94 %39 = load @nomsg 128.20/63.94 %40 = sext i8 %39 to i32 128.20/63.94 %41 = icmp eq %38 %40 128.20/63.94 br %41, %42, %45 128.20/63.94 42: 128.20/63.94 %43 = load @send4 128.20/63.94 %44 = sext i8 %43 to i32 128.20/63.94 br %48 128.20/63.94 45: 128.20/63.94 %46 = load @p4_new 128.20/63.94 %47 = sext i8 %46 to i32 128.20/63.94 br %48 128.20/63.94 48: 128.20/63.94 %49 = phi [%44, %42], [%47, %45] 128.20/63.94 %50 = trunc i32 %49 to i8 128.20/63.94 store %50, @p4_new 128.20/63.94 store 1, @mode4 128.20/63.94 br %51 128.20/63.94 51: 128.20/63.94 ret void 128.20/63.94 128.20/63.94 *BasicFunctionTypename: "node5" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 0: 128.20/63.94 %m5 = alloca i8, align 1 128.20/63.94 %1 = load @nomsg 128.20/63.94 store %1, %m5 128.20/63.94 %2 = load @mode5 128.20/63.94 %3 = trunc i8 %2 to i1 128.20/63.94 br %3, %4, %30 128.20/63.94 4: 128.20/63.94 %5 = load @p4_old 128.20/63.94 store %5, %m5 128.20/63.94 %6 = load @nomsg 128.20/63.94 store %6, @p4_old 128.20/63.94 %7 = load %m5 128.20/63.94 %8 = sext i8 %7 to i32 128.20/63.94 %9 = load @nomsg 128.20/63.94 %10 = sext i8 %9 to i32 128.20/63.94 %11 = icmp ne %8 %10 128.20/63.94 br %11, %12, %29 128.20/63.94 12: 128.20/63.94 %13 = load %m5 128.20/63.94 %14 = sext i8 %13 to i32 128.20/63.94 %15 = load @id5 128.20/63.94 %16 = sext i8 %15 to i32 128.20/63.94 %17 = icmp sgt %14 %16 128.20/63.94 br %17, %18, %20 128.20/63.94 18: 128.20/63.94 %19 = load %m5 128.20/63.94 store %19, @send5 128.20/63.94 br %28 128.20/63.94 20: 128.20/63.94 %21 = load %m5 128.20/63.94 %22 = sext i8 %21 to i32 128.20/63.94 %23 = load @id5 128.20/63.94 %24 = sext i8 %23 to i32 128.20/63.94 %25 = icmp eq %22 %24 128.20/63.94 br %25, %26, %27 128.20/63.94 26: 128.20/63.94 store 1, @st5 128.20/63.94 br %27 128.20/63.94 27: 128.20/63.94 br %28 128.20/63.94 28: 128.20/63.94 br %29 128.20/63.94 29: 128.20/63.94 store 0, @mode5 128.20/63.94 br %51 128.20/63.94 30: 128.20/63.94 %31 = load @send5 128.20/63.94 %32 = sext i8 %31 to i32 128.20/63.94 %33 = load @nomsg 128.20/63.94 %34 = sext i8 %33 to i32 128.20/63.94 %35 = icmp ne %32 %34 128.20/63.94 br %35, %36, %45 128.20/63.94 36: 128.20/63.94 %37 = load @p5_new 128.20/63.94 %38 = sext i8 %37 to i32 128.20/63.94 %39 = load @nomsg 128.20/63.94 %40 = sext i8 %39 to i32 128.20/63.94 %41 = icmp eq %38 %40 128.20/63.94 br %41, %42, %45 128.20/63.94 42: 128.20/63.94 %43 = load @send5 128.20/63.94 %44 = sext i8 %43 to i32 128.20/63.94 br %48 128.20/63.94 45: 128.20/63.94 %46 = load @p5_new 128.20/63.94 %47 = sext i8 %46 to i32 128.20/63.94 br %48 128.20/63.94 48: 128.20/63.94 %49 = phi [%44, %42], [%47, %45] 128.20/63.94 %50 = trunc i32 %49 to i8 128.20/63.94 store %50, @p5_new 128.20/63.94 store 1, @mode5 128.20/63.94 br %51 128.20/63.94 51: 128.20/63.94 ret void 128.20/63.94 128.20/63.94 *BasicFunctionTypename: "node6" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 0: 128.20/63.94 %m6 = alloca i8, align 1 128.20/63.94 %1 = load @nomsg 128.20/63.94 store %1, %m6 128.20/63.94 %2 = load @mode6 128.20/63.94 %3 = trunc i8 %2 to i1 128.20/63.94 br %3, %4, %30 128.20/63.94 4: 128.20/63.94 %5 = load @p5_old 128.20/63.94 store %5, %m6 128.20/63.94 %6 = load @nomsg 128.20/63.94 store %6, @p5_old 128.20/63.94 %7 = load %m6 128.20/63.94 %8 = sext i8 %7 to i32 128.20/63.94 %9 = load @nomsg 128.20/63.94 %10 = sext i8 %9 to i32 128.20/63.94 %11 = icmp ne %8 %10 128.20/63.94 br %11, %12, %29 128.20/63.94 12: 128.20/63.94 %13 = load %m6 128.20/63.94 %14 = sext i8 %13 to i32 128.20/63.94 %15 = load @id6 128.20/63.94 %16 = sext i8 %15 to i32 128.20/63.94 %17 = icmp sgt %14 %16 128.20/63.94 br %17, %18, %20 128.20/63.94 18: 128.20/63.94 %19 = load %m6 128.20/63.94 store %19, @send6 128.20/63.94 br %28 128.20/63.94 20: 128.20/63.94 %21 = load %m6 128.20/63.94 %22 = sext i8 %21 to i32 128.20/63.94 %23 = load @id6 128.20/63.94 %24 = sext i8 %23 to i32 128.20/63.94 %25 = icmp eq %22 %24 128.20/63.94 br %25, %26, %27 128.20/63.94 26: 128.20/63.94 store 1, @st6 128.20/63.94 br %27 128.20/63.94 27: 128.20/63.94 br %28 128.20/63.94 28: 128.20/63.94 br %29 128.20/63.94 29: 128.20/63.94 store 0, @mode6 128.20/63.94 br %51 128.20/63.94 30: 128.20/63.94 %31 = load @send6 128.20/63.94 %32 = sext i8 %31 to i32 128.20/63.94 %33 = load @nomsg 128.20/63.94 %34 = sext i8 %33 to i32 128.20/63.94 %35 = icmp ne %32 %34 128.20/63.94 br %35, %36, %45 128.20/63.94 36: 128.20/63.94 %37 = load @p6_new 128.20/63.94 %38 = sext i8 %37 to i32 128.20/63.94 %39 = load @nomsg 128.20/63.94 %40 = sext i8 %39 to i32 128.20/63.94 %41 = icmp eq %38 %40 128.20/63.94 br %41, %42, %45 128.20/63.94 42: 128.20/63.94 %43 = load @send6 128.20/63.94 %44 = sext i8 %43 to i32 128.20/63.94 br %48 128.20/63.94 45: 128.20/63.94 %46 = load @p6_new 128.20/63.94 %47 = sext i8 %46 to i32 128.20/63.94 br %48 128.20/63.94 48: 128.20/63.94 %49 = phi [%44, %42], [%47, %45] 128.20/63.94 %50 = trunc i32 %49 to i8 128.20/63.94 store %50, @p6_new 128.20/63.94 store 1, @mode6 128.20/63.94 br %51 128.20/63.94 51: 128.20/63.94 ret void 128.20/63.94 128.20/63.94 *BasicFunctionTypename: "node7" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 0: 128.20/63.94 %m7 = alloca i8, align 1 128.20/63.94 %1 = load @nomsg 128.20/63.94 store %1, %m7 128.20/63.94 %2 = load @mode7 128.20/63.94 %3 = trunc i8 %2 to i1 128.20/63.94 br %3, %4, %30 128.20/63.94 4: 128.20/63.94 %5 = load @p6_old 128.20/63.94 store %5, %m7 128.20/63.94 %6 = load @nomsg 128.20/63.94 store %6, @p6_old 128.20/63.94 %7 = load %m7 128.20/63.94 %8 = sext i8 %7 to i32 128.20/63.94 %9 = load @nomsg 128.20/63.94 %10 = sext i8 %9 to i32 128.20/63.94 %11 = icmp ne %8 %10 128.20/63.94 br %11, %12, %29 128.20/63.94 12: 128.20/63.94 %13 = load %m7 128.20/63.94 %14 = sext i8 %13 to i32 128.20/63.94 %15 = load @id7 128.20/63.94 %16 = sext i8 %15 to i32 128.20/63.94 %17 = icmp sgt %14 %16 128.20/63.94 br %17, %18, %20 128.20/63.94 18: 128.20/63.94 %19 = load %m7 128.20/63.94 store %19, @send7 128.20/63.94 br %28 128.20/63.94 20: 128.20/63.94 %21 = load %m7 128.20/63.94 %22 = sext i8 %21 to i32 128.20/63.94 %23 = load @id7 128.20/63.94 %24 = sext i8 %23 to i32 128.20/63.94 %25 = icmp eq %22 %24 128.20/63.94 br %25, %26, %27 128.20/63.94 26: 128.20/63.94 store 1, @st7 128.20/63.94 br %27 128.20/63.94 27: 128.20/63.94 br %28 128.20/63.94 28: 128.20/63.94 br %29 128.20/63.94 29: 128.20/63.94 store 0, @mode7 128.20/63.94 br %51 128.20/63.94 30: 128.20/63.94 %31 = load @send7 128.20/63.94 %32 = sext i8 %31 to i32 128.20/63.94 %33 = load @nomsg 128.20/63.94 %34 = sext i8 %33 to i32 128.20/63.94 %35 = icmp ne %32 %34 128.20/63.94 br %35, %36, %45 128.20/63.94 36: 128.20/63.94 %37 = load @p7_new 128.20/63.94 %38 = sext i8 %37 to i32 128.20/63.94 %39 = load @nomsg 128.20/63.94 %40 = sext i8 %39 to i32 128.20/63.94 %41 = icmp eq %38 %40 128.20/63.94 br %41, %42, %45 128.20/63.94 42: 128.20/63.94 %43 = load @send7 128.20/63.94 %44 = sext i8 %43 to i32 128.20/63.94 br %48 128.20/63.94 45: 128.20/63.94 %46 = load @p7_new 128.20/63.94 %47 = sext i8 %46 to i32 128.20/63.94 br %48 128.20/63.94 48: 128.20/63.94 %49 = phi [%44, %42], [%47, %45] 128.20/63.94 %50 = trunc i32 %49 to i8 128.20/63.94 store %50, @p7_new 128.20/63.94 store 1, @mode7 128.20/63.94 br %51 128.20/63.94 51: 128.20/63.94 ret void 128.20/63.94 128.20/63.94 *BasicFunctionTypename: "node8" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 0: 128.20/63.94 %m8 = alloca i8, align 1 128.20/63.94 %1 = load @nomsg 128.20/63.94 store %1, %m8 128.20/63.94 %2 = load @mode8 128.20/63.94 %3 = trunc i8 %2 to i1 128.20/63.94 br %3, %4, %30 128.20/63.94 4: 128.20/63.94 %5 = load @p7_old 128.20/63.94 store %5, %m8 128.20/63.94 %6 = load @nomsg 128.20/63.94 store %6, @p7_old 128.20/63.94 %7 = load %m8 128.20/63.94 %8 = sext i8 %7 to i32 128.20/63.94 %9 = load @nomsg 128.20/63.94 %10 = sext i8 %9 to i32 128.20/63.94 %11 = icmp ne %8 %10 128.20/63.94 br %11, %12, %29 128.20/63.94 12: 128.20/63.94 %13 = load %m8 128.20/63.94 %14 = sext i8 %13 to i32 128.20/63.94 %15 = load @id8 128.20/63.94 %16 = sext i8 %15 to i32 128.20/63.94 %17 = icmp sgt %14 %16 128.20/63.94 br %17, %18, %20 128.20/63.94 18: 128.20/63.94 %19 = load %m8 128.20/63.94 store %19, @send8 128.20/63.94 br %28 128.20/63.94 20: 128.20/63.94 %21 = load %m8 128.20/63.94 %22 = sext i8 %21 to i32 128.20/63.94 %23 = load @id8 128.20/63.94 %24 = sext i8 %23 to i32 128.20/63.94 %25 = icmp eq %22 %24 128.20/63.94 br %25, %26, %27 128.20/63.94 26: 128.20/63.94 store 1, @st8 128.20/63.94 br %27 128.20/63.94 27: 128.20/63.94 br %28 128.20/63.94 28: 128.20/63.94 br %29 128.20/63.94 29: 128.20/63.94 store 0, @mode8 128.20/63.94 br %51 128.20/63.94 30: 128.20/63.94 %31 = load @send8 128.20/63.94 %32 = sext i8 %31 to i32 128.20/63.94 %33 = load @nomsg 128.20/63.94 %34 = sext i8 %33 to i32 128.20/63.94 %35 = icmp ne %32 %34 128.20/63.94 br %35, %36, %45 128.20/63.94 36: 128.20/63.94 %37 = load @p8_new 128.20/63.94 %38 = sext i8 %37 to i32 128.20/63.94 %39 = load @nomsg 128.20/63.94 %40 = sext i8 %39 to i32 128.20/63.94 %41 = icmp eq %38 %40 128.20/63.94 br %41, %42, %45 128.20/63.94 42: 128.20/63.94 %43 = load @send8 128.20/63.94 %44 = sext i8 %43 to i32 128.20/63.94 br %48 128.20/63.94 45: 128.20/63.94 %46 = load @p8_new 128.20/63.94 %47 = sext i8 %46 to i32 128.20/63.94 br %48 128.20/63.94 48: 128.20/63.94 %49 = phi [%44, %42], [%47, %45] 128.20/63.94 %50 = trunc i32 %49 to i8 128.20/63.94 store %50, @p8_new 128.20/63.94 store 1, @mode8 128.20/63.94 br %51 128.20/63.94 51: 128.20/63.94 ret void 128.20/63.94 128.20/63.94 *BasicFunctionTypename: "init" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.94 0: 128.20/63.94 %tmp = alloca i32, align 4 128.20/63.94 %1 = load @r1 128.20/63.94 %2 = sext i8 %1 to i32 128.20/63.94 %3 = icmp eq %2 0 128.20/63.94 br %3, %4, %445 128.20/63.94 4: 128.20/63.94 %5 = load @id1 128.20/63.94 %6 = sext i8 %5 to i32 128.20/63.94 %7 = icmp sge %6 0 128.20/63.94 br %7, %8, %443 128.20/63.94 8: 128.20/63.94 %9 = load @st1 128.20/63.94 %10 = sext i8 %9 to i32 128.20/63.94 %11 = icmp eq %10 0 128.20/63.94 br %11, %12, %441 128.20/63.94 12: 128.20/63.94 %13 = load @send1 128.20/63.94 %14 = sext i8 %13 to i32 128.20/63.94 %15 = load @id1 128.20/63.94 %16 = sext i8 %15 to i32 128.20/63.94 %17 = icmp eq %14 %16 128.20/63.94 br %17, %18, %439 128.20/63.94 18: 128.20/63.94 %19 = load @mode1 128.20/63.94 %20 = trunc i8 %19 to i1 128.20/63.94 %21 = zext i1 %20 to i32 128.20/63.94 %22 = icmp eq %21 0 128.20/63.94 br %22, %23, %437 128.20/63.94 23: 128.20/63.94 %24 = load @id2 128.20/63.94 %25 = sext i8 %24 to i32 128.20/63.94 %26 = icmp sge %25 0 128.20/63.94 br %26, %27, %435 128.20/63.94 27: 128.20/63.94 %28 = load @st2 128.20/63.94 %29 = sext i8 %28 to i32 128.20/63.94 %30 = icmp eq %29 0 128.20/63.94 br %30, %31, %433 128.20/63.94 31: 128.20/63.94 %32 = load @send2 128.20/63.94 %33 = sext i8 %32 to i32 128.20/63.94 %34 = load @id2 128.20/63.94 %35 = sext i8 %34 to i32 128.20/63.94 %36 = icmp eq %33 %35 128.20/63.94 br %36, %37, %431 128.20/63.94 37: 128.20/63.94 %38 = load @mode2 128.20/63.94 %39 = trunc i8 %38 to i1 128.20/63.94 %40 = zext i1 %39 to i32 128.20/63.94 %41 = icmp eq %40 0 128.20/63.94 br %41, %42, %429 128.20/63.94 42: 128.20/63.94 %43 = load @id3 128.20/63.94 %44 = sext i8 %43 to i32 128.20/63.94 %45 = icmp sge %44 0 128.20/63.94 br %45, %46, %427 128.20/63.94 46: 128.20/63.94 %47 = load @st3 128.20/63.94 %48 = sext i8 %47 to i32 128.20/63.94 %49 = icmp eq %48 0 128.20/63.94 br %49, %50, %425 128.20/63.94 50: 128.20/63.94 %51 = load @send3 128.20/63.94 %52 = sext i8 %51 to i32 128.20/63.94 %53 = load @id3 128.20/63.94 %54 = sext i8 %53 to i32 128.20/63.94 %55 = icmp eq %52 %54 128.20/63.94 br %55, %56, %423 128.20/63.94 56: 128.20/63.94 %57 = load @mode3 128.20/63.94 %58 = trunc i8 %57 to i1 128.20/63.94 %59 = zext i1 %58 to i32 128.20/63.94 %60 = icmp eq %59 0 128.20/63.94 br %60, %61, %421 128.20/63.94 61: 128.20/63.94 %62 = load @id4 128.20/63.94 %63 = sext i8 %62 to i32 128.20/63.94 %64 = icmp sge %63 0 128.20/63.94 br %64, %65, %419 128.20/63.94 65: 128.20/63.94 %66 = load @st4 128.20/63.94 %67 = sext i8 %66 to i32 128.20/63.94 %68 = icmp eq %67 0 128.20/63.94 br %68, %69, %417 128.20/63.94 69: 128.20/63.94 %70 = load @send4 128.20/63.94 %71 = sext i8 %70 to i32 128.20/63.94 %72 = load @id4 128.20/63.94 %73 = sext i8 %72 to i32 128.20/63.94 %74 = icmp eq %71 %73 128.20/63.94 br %74, %75, %415 128.20/63.94 75: 128.20/63.94 %76 = load @mode4 128.20/63.94 %77 = trunc i8 %76 to i1 128.20/63.94 %78 = zext i1 %77 to i32 128.20/63.94 %79 = icmp eq %78 0 128.20/63.94 br %79, %80, %413 128.20/63.94 80: 128.20/63.94 %81 = load @id5 128.20/63.94 %82 = sext i8 %81 to i32 128.20/63.94 %83 = icmp sge %82 0 128.20/63.94 br %83, %84, %411 128.20/63.94 84: 128.20/63.94 %85 = load @st5 128.20/63.94 %86 = sext i8 %85 to i32 128.20/63.94 %87 = icmp eq %86 0 128.20/63.94 br %87, %88, %409 128.20/63.94 88: 128.20/63.94 %89 = load @send5 128.20/63.94 %90 = sext i8 %89 to i32 128.20/63.94 %91 = load @id5 128.20/63.94 %92 = sext i8 %91 to i32 128.20/63.94 %93 = icmp eq %90 %92 128.20/63.94 br %93, %94, %407 128.20/63.94 94: 128.20/63.94 %95 = load @mode5 128.20/63.94 %96 = trunc i8 %95 to i1 128.20/63.94 %97 = zext i1 %96 to i32 128.20/63.94 %98 = icmp eq %97 0 128.20/63.94 br %98, %99, %405 128.20/63.94 99: 128.20/63.94 %100 = load @id6 128.20/63.94 %101 = sext i8 %100 to i32 128.20/63.94 %102 = icmp sge %101 0 128.20/63.94 br %102, %103, %403 128.20/63.94 103: 128.20/63.94 %104 = load @st6 128.20/63.94 %105 = sext i8 %104 to i32 128.20/63.94 %106 = icmp eq %105 0 128.20/63.94 br %106, %107, %401 128.20/63.94 107: 128.20/63.94 %108 = load @send6 128.20/63.94 %109 = sext i8 %108 to i32 128.20/63.94 %110 = load @id6 128.20/63.94 %111 = sext i8 %110 to i32 128.20/63.94 %112 = icmp eq %109 %111 128.20/63.94 br %112, %113, %399 128.20/63.94 113: 128.20/63.94 %114 = load @mode6 128.20/63.94 %115 = trunc i8 %114 to i1 128.20/63.94 %116 = zext i1 %115 to i32 128.20/63.94 %117 = icmp eq %116 0 128.20/63.94 br %117, %118, %397 128.20/63.94 118: 128.20/63.94 %119 = load @id7 128.20/63.94 %120 = sext i8 %119 to i32 128.20/63.94 %121 = icmp sge %120 0 128.20/63.94 br %121, %122, %395 128.20/63.94 122: 128.20/63.94 %123 = load @st7 128.20/63.94 %124 = sext i8 %123 to i32 128.20/63.94 %125 = icmp eq %124 0 128.20/63.94 br %125, %126, %393 128.20/63.94 126: 128.20/63.94 %127 = load @send7 128.20/63.94 %128 = sext i8 %127 to i32 128.20/63.94 %129 = load @id7 128.20/63.94 %130 = sext i8 %129 to i32 128.20/63.94 %131 = icmp eq %128 %130 128.20/63.94 br %131, %132, %391 128.20/63.94 132: 128.20/63.94 %133 = load @mode7 128.20/63.94 %134 = trunc i8 %133 to i1 128.20/63.94 %135 = zext i1 %134 to i32 128.20/63.94 %136 = icmp eq %135 0 128.20/63.94 br %136, %137, %389 128.20/63.94 137: 128.20/63.94 %138 = load @id8 128.20/63.94 %139 = sext i8 %138 to i32 128.20/63.94 %140 = icmp sge %139 0 128.20/63.94 br %140, %141, %387 128.20/63.94 141: 128.20/63.94 %142 = load @st8 128.20/63.94 %143 = sext i8 %142 to i32 128.20/63.94 %144 = icmp eq %143 0 128.20/63.94 br %144, %145, %385 128.20/63.94 145: 128.20/63.94 %146 = load @send8 128.20/63.94 %147 = sext i8 %146 to i32 128.20/63.94 %148 = load @id8 128.20/63.94 %149 = sext i8 %148 to i32 128.20/63.94 %150 = icmp eq %147 %149 128.20/63.94 br %150, %151, %383 128.20/63.94 151: 128.20/63.94 %152 = load @mode8 128.20/63.94 %153 = trunc i8 %152 to i1 128.20/63.94 %154 = zext i1 %153 to i32 128.20/63.94 %155 = icmp eq %154 0 128.20/63.94 br %155, %156, %381 128.20/63.94 156: 128.20/63.94 %157 = load @id1 128.20/63.94 %158 = sext i8 %157 to i32 128.20/63.94 %159 = load @id2 128.20/63.94 %160 = sext i8 %159 to i32 128.20/63.94 %161 = icmp ne %158 %160 128.20/63.94 br %161, %162, %379 128.20/63.94 162: 128.20/63.94 %163 = load @id1 128.20/63.94 %164 = sext i8 %163 to i32 128.20/63.94 %165 = load @id3 128.20/63.94 %166 = sext i8 %165 to i32 128.20/63.94 %167 = icmp ne %164 %166 128.20/63.94 br %167, %168, %377 128.20/63.94 168: 128.20/63.94 %169 = load @id1 128.20/63.94 %170 = sext i8 %169 to i32 128.20/63.94 %171 = load @id4 128.20/63.94 %172 = sext i8 %171 to i32 128.20/63.94 %173 = icmp ne %170 %172 128.20/63.94 br %173, %174, %375 128.20/63.94 174: 128.20/63.94 %175 = load @id1 128.20/63.94 %176 = sext i8 %175 to i32 128.20/63.94 %177 = load @id5 128.20/63.94 %178 = sext i8 %177 to i32 128.20/63.94 %179 = icmp ne %176 %178 128.20/63.94 br %179, %180, %373 128.20/63.94 180: 128.20/63.94 %181 = load @id1 128.20/63.94 %182 = sext i8 %181 to i32 128.20/63.94 %183 = load @id6 128.20/63.94 %184 = sext i8 %183 to i32 128.20/63.94 %185 = icmp ne %182 %184 128.20/63.94 br %185, %186, %371 128.20/63.94 186: 128.20/63.94 %187 = load @id1 128.20/63.94 %188 = sext i8 %187 to i32 128.20/63.94 %189 = load @id7 128.20/63.94 %190 = sext i8 %189 to i32 128.20/63.94 %191 = icmp ne %188 %190 128.20/63.94 br %191, %192, %369 128.20/63.94 192: 128.20/63.94 %193 = load @id1 128.20/63.94 %194 = sext i8 %193 to i32 128.20/63.94 %195 = load @id8 128.20/63.94 %196 = sext i8 %195 to i32 128.20/63.94 %197 = icmp ne %194 %196 128.20/63.94 br %197, %198, %367 128.20/63.94 198: 128.20/63.94 %199 = load @id2 128.20/63.94 %200 = sext i8 %199 to i32 128.20/63.94 %201 = load @id3 128.20/63.94 %202 = sext i8 %201 to i32 128.20/63.94 %203 = icmp ne %200 %202 128.20/63.94 br %203, %204, %365 128.20/63.94 204: 128.20/63.94 %205 = load @id2 128.20/63.94 %206 = sext i8 %205 to i32 128.20/63.94 %207 = load @id4 128.20/63.94 %208 = sext i8 %207 to i32 128.20/63.94 %209 = icmp ne %206 %208 128.20/63.94 br %209, %210, %363 128.20/63.94 210: 128.20/63.94 %211 = load @id2 128.20/63.94 %212 = sext i8 %211 to i32 128.20/63.94 %213 = load @id5 128.20/63.94 %214 = sext i8 %213 to i32 128.20/63.94 %215 = icmp ne %212 %214 128.20/63.94 br %215, %216, %361 128.20/63.94 216: 128.20/63.94 %217 = load @id2 128.20/63.94 %218 = sext i8 %217 to i32 128.20/63.94 %219 = load @id6 128.20/63.94 %220 = sext i8 %219 to i32 128.20/63.94 %221 = icmp ne %218 %220 128.20/63.94 br %221, %222, %359 128.20/63.94 222: 128.20/63.94 %223 = load @id2 128.20/63.94 %224 = sext i8 %223 to i32 128.20/63.94 %225 = load @id7 128.20/63.94 %226 = sext i8 %225 to i32 128.20/63.94 %227 = icmp ne %224 %226 128.20/63.94 br %227, %228, %357 128.20/63.94 228: 128.20/63.94 %229 = load @id2 128.20/63.94 %230 = sext i8 %229 to i32 128.20/63.94 %231 = load @id8 128.20/63.94 %232 = sext i8 %231 to i32 128.20/63.94 %233 = icmp ne %230 %232 128.20/63.94 br %233, %234, %355 128.20/63.94 234: 128.20/63.94 %235 = load @id3 128.20/63.94 %236 = sext i8 %235 to i32 128.20/63.94 %237 = load @id4 128.20/63.94 %238 = sext i8 %237 to i32 128.20/63.94 %239 = icmp ne %236 %238 128.20/63.94 br %239, %240, %353 128.20/63.94 240: 128.20/63.94 %241 = load @id3 128.20/63.94 %242 = sext i8 %241 to i32 128.20/63.94 %243 = load @id5 128.20/63.94 %244 = sext i8 %243 to i32 128.20/63.94 %245 = icmp ne %242 %244 128.20/63.94 br %245, %246, %351 128.20/63.94 246: 128.20/63.94 %247 = load @id3 128.20/63.94 %248 = sext i8 %247 to i32 128.20/63.94 %249 = load @id6 128.20/63.94 %250 = sext i8 %249 to i32 128.20/63.94 %251 = icmp ne %248 %250 128.20/63.94 br %251, %252, %349 128.20/63.94 252: 128.20/63.94 %253 = load @id3 128.20/63.94 %254 = sext i8 %253 to i32 128.20/63.94 %255 = load @id7 128.20/63.94 %256 = sext i8 %255 to i32 128.20/63.94 %257 = icmp ne %254 %256 128.20/63.94 br %257, %258, %347 128.20/63.94 258: 128.20/63.94 %259 = load @id3 128.20/63.94 %260 = sext i8 %259 to i32 128.20/63.94 %261 = load @id8 128.20/63.94 %262 = sext i8 %261 to i32 128.20/63.94 %263 = icmp ne %260 %262 128.20/63.94 br %263, %264, %345 128.20/63.94 264: 128.20/63.94 %265 = load @id4 128.20/63.94 %266 = sext i8 %265 to i32 128.20/63.94 %267 = load @id5 128.20/63.94 %268 = sext i8 %267 to i32 128.20/63.94 %269 = icmp ne %266 %268 128.20/63.94 br %269, %270, %343 128.20/63.94 270: 128.20/63.94 %271 = load @id4 128.20/63.94 %272 = sext i8 %271 to i32 128.20/63.94 %273 = load @id6 128.20/63.94 %274 = sext i8 %273 to i32 128.20/63.94 %275 = icmp ne %272 %274 128.20/63.94 br %275, %276, %341 128.20/63.95 276: 128.20/63.95 %277 = load @id4 128.20/63.95 %278 = sext i8 %277 to i32 128.20/63.95 %279 = load @id7 128.20/63.95 %280 = sext i8 %279 to i32 128.20/63.95 %281 = icmp ne %278 %280 128.20/63.95 br %281, %282, %339 128.20/63.95 282: 128.20/63.95 %283 = load @id4 128.20/63.95 %284 = sext i8 %283 to i32 128.20/63.95 %285 = load @id8 128.20/63.95 %286 = sext i8 %285 to i32 128.20/63.95 %287 = icmp ne %284 %286 128.20/63.95 br %287, %288, %337 128.20/63.95 288: 128.20/63.95 %289 = load @id5 128.20/63.95 %290 = sext i8 %289 to i32 128.20/63.95 %291 = load @id6 128.20/63.95 %292 = sext i8 %291 to i32 128.20/63.95 %293 = icmp ne %290 %292 128.20/63.95 br %293, %294, %335 128.20/63.95 294: 128.20/63.95 %295 = load @id5 128.20/63.95 %296 = sext i8 %295 to i32 128.20/63.95 %297 = load @id7 128.20/63.95 %298 = sext i8 %297 to i32 128.20/63.95 %299 = icmp ne %296 %298 128.20/63.95 br %299, %300, %333 128.20/63.95 300: 128.20/63.95 %301 = load @id5 128.20/63.95 %302 = sext i8 %301 to i32 128.20/63.95 %303 = load @id8 128.20/63.95 %304 = sext i8 %303 to i32 128.20/63.95 %305 = icmp ne %302 %304 128.20/63.95 br %305, %306, %331 128.20/63.95 306: 128.20/63.95 %307 = load @id6 128.20/63.95 %308 = sext i8 %307 to i32 128.20/63.95 %309 = load @id7 128.20/63.95 %310 = sext i8 %309 to i32 128.20/63.95 %311 = icmp ne %308 %310 128.20/63.95 br %311, %312, %329 128.20/63.95 312: 128.20/63.95 %313 = load @id6 128.20/63.95 %314 = sext i8 %313 to i32 128.20/63.95 %315 = load @id8 128.20/63.95 %316 = sext i8 %315 to i32 128.20/63.95 %317 = icmp ne %314 %316 128.20/63.95 br %317, %318, %327 128.20/63.95 318: 128.20/63.95 %319 = load @id7 128.20/63.95 %320 = sext i8 %319 to i32 128.20/63.95 %321 = load @id8 128.20/63.95 %322 = sext i8 %321 to i32 128.20/63.95 %323 = icmp ne %320 %322 128.20/63.95 br %323, %324, %325 128.20/63.95 324: 128.20/63.95 store 1, %tmp 128.20/63.95 br %326 128.20/63.95 325: 128.20/63.95 store 0, %tmp 128.20/63.95 br %326 128.20/63.95 326: 128.20/63.95 br %328 128.20/63.95 327: 128.20/63.95 store 0, %tmp 128.20/63.95 br %328 128.20/63.95 328: 128.20/63.95 br %330 128.20/63.95 329: 128.20/63.95 store 0, %tmp 128.20/63.95 br %330 128.20/63.95 330: 128.20/63.95 br %332 128.20/63.95 331: 128.20/63.95 store 0, %tmp 128.20/63.95 br %332 128.20/63.95 332: 128.20/63.95 br %334 128.20/63.95 333: 128.20/63.95 store 0, %tmp 128.20/63.95 br %334 128.20/63.95 334: 128.20/63.95 br %336 128.20/63.95 335: 128.20/63.95 store 0, %tmp 128.20/63.95 br %336 128.20/63.95 336: 128.20/63.95 br %338 128.20/63.95 337: 128.20/63.95 store 0, %tmp 128.20/63.95 br %338 128.20/63.95 338: 128.20/63.95 br %340 128.20/63.95 339: 128.20/63.95 store 0, %tmp 128.20/63.95 br %340 128.20/63.95 340: 128.20/63.95 br %342 128.20/63.95 341: 128.20/63.95 store 0, %tmp 128.20/63.95 br %342 128.20/63.95 342: 128.20/63.95 br %344 128.20/63.95 343: 128.20/63.95 store 0, %tmp 128.20/63.95 br %344 128.20/63.95 344: 128.20/63.95 br %346 128.20/63.95 345: 128.20/63.95 store 0, %tmp 128.20/63.95 br %346 128.20/63.95 346: 128.20/63.95 br %348 128.20/63.95 347: 128.20/63.95 store 0, %tmp 128.20/63.95 br %348 128.20/63.95 348: 128.20/63.95 br %350 128.20/63.95 349: 128.20/63.95 store 0, %tmp 128.20/63.95 br %350 128.20/63.95 350: 128.20/63.95 br %352 128.20/63.95 351: 128.20/63.95 store 0, %tmp 128.20/63.95 br %352 128.20/63.95 352: 128.20/63.95 br %354 128.20/63.95 353: 128.20/63.95 store 0, %tmp 128.20/63.95 br %354 128.20/63.95 354: 128.20/63.95 br %356 128.20/63.95 355: 128.20/63.95 store 0, %tmp 128.20/63.95 br %356 128.20/63.95 356: 128.20/63.95 br %358 128.20/63.95 357: 128.20/63.95 store 0, %tmp 128.20/63.95 br %358 128.20/63.95 358: 128.20/63.95 br %360 128.20/63.95 359: 128.20/63.95 store 0, %tmp 128.20/63.95 br %360 128.20/63.95 360: 128.20/63.95 br %362 128.20/63.95 361: 128.20/63.95 store 0, %tmp 128.20/63.95 br %362 128.20/63.95 362: 128.20/63.95 br %364 128.20/63.95 363: 128.20/63.95 store 0, %tmp 128.20/63.95 br %364 128.20/63.95 364: 128.20/63.95 br %366 128.20/63.95 365: 128.20/63.95 store 0, %tmp 128.20/63.95 br %366 128.20/63.95 366: 128.20/63.95 br %368 128.20/63.95 367: 128.20/63.95 store 0, %tmp 128.20/63.95 br %368 128.20/63.95 368: 128.20/63.95 br %370 128.20/63.95 369: 128.20/63.95 store 0, %tmp 128.20/63.95 br %370 128.20/63.95 370: 128.20/63.95 br %372 128.20/63.95 371: 128.20/63.95 store 0, %tmp 128.20/63.95 br %372 128.20/63.95 372: 128.20/63.95 br %374 128.20/63.95 373: 128.20/63.95 store 0, %tmp 128.20/63.95 br %374 128.20/63.95 374: 128.20/63.95 br %376 128.20/63.95 375: 128.20/63.95 store 0, %tmp 128.20/63.95 br %376 128.20/63.95 376: 128.20/63.95 br %378 128.20/63.95 377: 128.20/63.95 store 0, %tmp 128.20/63.95 br %378 128.20/63.95 378: 128.20/63.95 br %380 128.20/63.95 379: 128.20/63.95 store 0, %tmp 128.20/63.95 br %380 128.20/63.95 380: 128.20/63.95 br %382 128.20/63.95 381: 128.20/63.95 store 0, %tmp 128.20/63.95 br %382 128.20/63.95 382: 128.20/63.95 br %384 128.20/63.95 383: 128.20/63.95 store 0, %tmp 128.20/63.95 br %384 128.20/63.95 384: 128.20/63.95 br %386 128.20/63.95 385: 128.20/63.95 store 0, %tmp 128.20/63.95 br %386 128.20/63.95 386: 128.20/63.95 br %388 128.20/63.95 387: 128.20/63.95 store 0, %tmp 128.20/63.95 br %388 128.20/63.95 388: 128.20/63.95 br %390 128.20/63.95 389: 128.20/63.95 store 0, %tmp 128.20/63.95 br %390 128.20/63.95 390: 128.20/63.95 br %392 128.20/63.95 391: 128.20/63.95 store 0, %tmp 128.20/63.95 br %392 128.20/63.95 392: 128.20/63.95 br %394 128.20/63.95 393: 128.20/63.95 store 0, %tmp 128.20/63.95 br %394 128.20/63.95 394: 128.20/63.95 br %396 128.20/63.95 395: 128.20/63.95 store 0, %tmp 128.20/63.95 br %396 128.20/63.95 396: 128.20/63.95 br %398 128.20/63.95 397: 128.20/63.95 store 0, %tmp 128.20/63.95 br %398 128.20/63.95 398: 128.20/63.95 br %400 128.20/63.95 399: 128.20/63.95 store 0, %tmp 128.20/63.95 br %400 128.20/63.95 400: 128.20/63.95 br %402 128.20/63.95 401: 128.20/63.95 store 0, %tmp 128.20/63.95 br %402 128.20/63.95 402: 128.20/63.95 br %404 128.20/63.95 403: 128.20/63.95 store 0, %tmp 128.20/63.95 br %404 128.20/63.95 404: 128.20/63.95 br %406 128.20/63.95 405: 128.20/63.95 store 0, %tmp 128.20/63.95 br %406 128.20/63.95 406: 128.20/63.95 br %408 128.20/63.95 407: 128.20/63.95 store 0, %tmp 128.20/63.95 br %408 128.20/63.95 408: 128.20/63.95 br %410 128.20/63.95 409: 128.20/63.95 store 0, %tmp 128.20/63.95 br %410 128.20/63.95 410: 128.20/63.95 br %412 128.20/63.95 411: 128.20/63.95 store 0, %tmp 128.20/63.95 br %412 128.20/63.95 412: 128.20/63.95 br %414 128.20/63.95 413: 128.20/63.95 store 0, %tmp 128.20/63.95 br %414 128.20/63.95 414: 128.20/63.95 br %416 128.20/63.95 415: 128.20/63.95 store 0, %tmp 128.20/63.95 br %416 128.20/63.95 416: 128.20/63.95 br %418 128.20/63.95 417: 128.20/63.95 store 0, %tmp 128.20/63.95 br %418 128.20/63.95 418: 128.20/63.95 br %420 128.20/63.95 419: 128.20/63.95 store 0, %tmp 128.20/63.95 br %420 128.20/63.95 420: 128.20/63.95 br %422 128.20/63.95 421: 128.20/63.95 store 0, %tmp 128.20/63.95 br %422 128.20/63.95 422: 128.20/63.95 br %424 128.20/63.95 423: 128.20/63.95 store 0, %tmp 128.20/63.95 br %424 128.20/63.95 424: 128.20/63.95 br %426 128.20/63.95 425: 128.20/63.95 store 0, %tmp 128.20/63.95 br %426 128.20/63.95 426: 128.20/63.95 br %428 128.20/63.95 427: 128.20/63.95 store 0, %tmp 128.20/63.95 br %428 128.20/63.95 428: 128.20/63.95 br %430 128.20/63.95 429: 128.20/63.95 store 0, %tmp 128.20/63.95 br %430 128.20/63.95 430: 128.20/63.95 br %432 128.20/63.95 431: 128.20/63.95 store 0, %tmp 128.20/63.95 br %432 128.20/63.95 432: 128.20/63.95 br %434 128.20/63.95 433: 128.20/63.95 store 0, %tmp 128.20/63.95 br %434 128.20/63.95 434: 128.20/63.95 br %436 128.20/63.95 435: 128.20/63.95 store 0, %tmp 128.20/63.95 br %436 128.20/63.95 436: 128.20/63.95 br %438 128.20/63.95 437: 128.20/63.95 store 0, %tmp 128.20/63.95 br %438 128.20/63.95 438: 128.20/63.95 br %440 128.20/63.95 439: 128.20/63.95 store 0, %tmp 128.20/63.95 br %440 128.20/63.95 440: 128.20/63.95 br %442 128.20/63.95 441: 128.20/63.95 store 0, %tmp 128.20/63.95 br %442 128.20/63.95 442: 128.20/63.95 br %444 128.20/63.95 443: 128.20/63.95 store 0, %tmp 128.20/63.95 br %444 128.20/63.95 444: 128.20/63.95 br %446 128.20/63.95 445: 128.20/63.95 store 0, %tmp 128.20/63.95 br %446 128.20/63.95 446: 128.20/63.95 %447 = load %tmp 128.20/63.95 ret %447 128.20/63.95 128.20/63.95 *BasicFunctionTypename: "check" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.95 0: 128.20/63.95 %tmp = alloca i32, align 4 128.20/63.95 %1 = load @st1 128.20/63.95 %2 = sext i8 %1 to i32 128.20/63.95 %3 = load @st2 128.20/63.95 %4 = sext i8 %3 to i32 128.20/63.95 %5 = add %2 %4 128.20/63.95 %6 = load @st3 128.20/63.95 %7 = sext i8 %6 to i32 128.20/63.95 %8 = add %5 %7 128.20/63.95 %9 = load @st4 128.20/63.95 %10 = sext i8 %9 to i32 128.20/63.95 %11 = add %8 %10 128.20/63.95 %12 = load @st5 128.20/63.95 %13 = sext i8 %12 to i32 128.20/63.95 %14 = add %11 %13 128.20/63.95 %15 = load @st6 128.20/63.95 %16 = sext i8 %15 to i32 128.20/63.95 %17 = add %14 %16 128.20/63.95 %18 = load @st7 128.20/63.95 %19 = sext i8 %18 to i32 128.20/63.95 %20 = add %17 %19 128.20/63.95 %21 = load @st8 128.20/63.95 %22 = sext i8 %21 to i32 128.20/63.95 %23 = add %20 %22 128.20/63.95 %24 = icmp sle %23 1 128.20/63.95 br %24, %25, %93 128.20/63.95 25: 128.20/63.95 %26 = load @r1 128.20/63.95 %27 = sext i8 %26 to i32 128.20/63.95 %28 = icmp sge %27 8 128.20/63.95 br %28, %29, %30 128.20/63.95 29: 128.20/63.95 br %56 128.20/63.95 30: 128.20/63.95 %31 = load @st1 128.20/63.95 %32 = sext i8 %31 to i32 128.20/63.95 %33 = load @st2 128.20/63.95 %34 = sext i8 %33 to i32 128.20/63.95 %35 = add %32 %34 128.20/63.95 %36 = load @st3 128.20/63.95 %37 = sext i8 %36 to i32 128.20/63.95 %38 = add %35 %37 128.20/63.95 %39 = load @st4 128.20/63.95 %40 = sext i8 %39 to i32 128.20/63.95 %41 = add %38 %40 128.20/63.95 %42 = load @st5 128.20/63.95 %43 = sext i8 %42 to i32 128.20/63.95 %44 = add %41 %43 128.20/63.95 %45 = load @st6 128.20/63.95 %46 = sext i8 %45 to i32 128.20/63.95 %47 = add %44 %46 128.20/63.95 %48 = load @st7 128.20/63.95 %49 = sext i8 %48 to i32 128.20/63.95 %50 = add %47 %49 128.20/63.95 %51 = load @st8 128.20/63.95 %52 = sext i8 %51 to i32 128.20/63.95 %53 = add %50 %52 128.20/63.95 %54 = icmp eq %53 0 128.20/63.95 br %54, %55, %90 128.20/63.95 55: 128.20/63.95 br %56 128.20/63.95 56: 128.20/63.95 %57 = load @r1 128.20/63.95 %58 = sext i8 %57 to i32 128.20/63.95 %59 = icmp slt %58 8 128.20/63.95 br %59, %60, %61 128.20/63.95 60: 128.20/63.95 store 1, %tmp 128.20/63.95 br %89 128.20/63.95 61: 128.20/63.95 %62 = load @st1 128.20/63.95 %63 = sext i8 %62 to i32 128.20/63.95 %64 = load @st2 128.20/63.95 %65 = sext i8 %64 to i32 128.20/63.95 %66 = add %63 %65 128.20/63.95 %67 = load @st3 128.20/63.95 %68 = sext i8 %67 to i32 128.20/63.95 %69 = add %66 %68 128.20/63.95 %70 = load @st4 128.20/63.95 %71 = sext i8 %70 to i32 128.20/63.95 %72 = add %69 %71 128.20/63.95 %73 = load @st5 128.20/63.95 %74 = sext i8 %73 to i32 128.20/63.95 %75 = add %72 %74 128.20/63.95 %76 = load @st6 128.20/63.95 %77 = sext i8 %76 to i32 128.20/63.95 %78 = add %75 %77 128.20/63.95 %79 = load @st7 128.20/63.95 %80 = sext i8 %79 to i32 128.20/63.95 %81 = add %78 %80 128.20/63.95 %82 = load @st8 128.20/63.95 %83 = sext i8 %82 to i32 128.20/63.95 %84 = add %81 %83 128.20/63.95 %85 = icmp eq %84 1 128.20/63.95 br %85, %86, %87 128.20/63.95 86: 128.20/63.95 store 1, %tmp 128.20/63.95 br %88 128.20/63.95 87: 128.20/63.95 store 0, %tmp 128.20/63.95 br %88 128.20/63.95 88: 128.20/63.95 br %89 128.20/63.95 89: 128.20/63.95 br %91 128.20/63.95 90: 128.20/63.95 store 0, %tmp 128.20/63.95 br %91 128.20/63.95 91: 128.20/63.95 br %92 128.20/63.95 92: 128.20/63.95 br %94 128.20/63.95 93: 128.20/63.95 store 0, %tmp 128.20/63.95 br %94 128.20/63.95 94: 128.20/63.95 %95 = load %tmp 128.20/63.95 ret %95 128.20/63.95 128.20/63.95 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.95 0: 128.20/63.95 %1 = alloca i32, align 4 128.20/63.95 %c1 = alloca i32, align 4 128.20/63.95 %i2 = alloca i32, align 4 128.20/63.95 store 0, %1 128.20/63.95 store 0, %c1 128.20/63.95 %2 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %2, @r1 128.20/63.95 %3 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %3, @id1 128.20/63.95 %4 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %4, @st1 128.20/63.95 %5 = call signext i8 @__VERIFIER_nondet_msg_t() 128.20/63.95 store %5, @send1 128.20/63.95 %6 = call zeroext i1 @__VERIFIER_nondet__Bool() 128.20/63.95 %7 = zext i1 %6 to i8 128.20/63.95 store %7, @mode1 128.20/63.95 %8 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %8, @id2 128.20/63.95 %9 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %9, @st2 128.20/63.95 %10 = call signext i8 @__VERIFIER_nondet_msg_t() 128.20/63.95 store %10, @send2 128.20/63.95 %11 = call zeroext i1 @__VERIFIER_nondet__Bool() 128.20/63.95 %12 = zext i1 %11 to i8 128.20/63.95 store %12, @mode2 128.20/63.95 %13 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %13, @id3 128.20/63.95 %14 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %14, @st3 128.20/63.95 %15 = call signext i8 @__VERIFIER_nondet_msg_t() 128.20/63.95 store %15, @send3 128.20/63.95 %16 = call zeroext i1 @__VERIFIER_nondet__Bool() 128.20/63.95 %17 = zext i1 %16 to i8 128.20/63.95 store %17, @mode3 128.20/63.95 %18 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %18, @id4 128.20/63.95 %19 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %19, @st4 128.20/63.95 %20 = call signext i8 @__VERIFIER_nondet_msg_t() 128.20/63.95 store %20, @send4 128.20/63.95 %21 = call zeroext i1 @__VERIFIER_nondet__Bool() 128.20/63.95 %22 = zext i1 %21 to i8 128.20/63.95 store %22, @mode4 128.20/63.95 %23 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %23, @id5 128.20/63.95 %24 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %24, @st5 128.20/63.95 %25 = call signext i8 @__VERIFIER_nondet_msg_t() 128.20/63.95 store %25, @send5 128.20/63.95 %26 = call zeroext i1 @__VERIFIER_nondet__Bool() 128.20/63.95 %27 = zext i1 %26 to i8 128.20/63.95 store %27, @mode5 128.20/63.95 %28 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %28, @id6 128.20/63.95 %29 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %29, @st6 128.20/63.95 %30 = call signext i8 @__VERIFIER_nondet_msg_t() 128.20/63.95 store %30, @send6 128.20/63.95 %31 = call zeroext i1 @__VERIFIER_nondet__Bool() 128.20/63.95 %32 = zext i1 %31 to i8 128.20/63.95 store %32, @mode6 128.20/63.95 %33 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %33, @id7 128.20/63.95 %34 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %34, @st7 128.20/63.95 %35 = call signext i8 @__VERIFIER_nondet_msg_t() 128.20/63.95 store %35, @send7 128.20/63.95 %36 = call zeroext i1 @__VERIFIER_nondet__Bool() 128.20/63.95 %37 = zext i1 %36 to i8 128.20/63.95 store %37, @mode7 128.20/63.95 %38 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %38, @id8 128.20/63.95 %39 = call signext i8 @__VERIFIER_nondet_char() 128.20/63.95 store %39, @st8 128.20/63.95 %40 = call signext i8 @__VERIFIER_nondet_msg_t() 128.20/63.95 store %40, @send8 128.20/63.95 %41 = call zeroext i1 @__VERIFIER_nondet__Bool() 128.20/63.95 %42 = zext i1 %41 to i8 128.20/63.95 store %42, @mode8 128.20/63.95 %43 = call i32 @init() 128.20/63.95 store %43, %i2 128.20/63.95 %44 = load %i2 128.20/63.95 %45 = icmp ne %44 0 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %45) 128.20/63.95 %46 = load @nomsg 128.20/63.95 store %46, @p1_old 128.20/63.95 %47 = load @nomsg 128.20/63.95 store %47, @p1_new 128.20/63.95 %48 = load @nomsg 128.20/63.95 store %48, @p2_old 128.20/63.95 %49 = load @nomsg 128.20/63.95 store %49, @p2_new 128.20/63.95 %50 = load @nomsg 128.20/63.95 store %50, @p3_old 128.20/63.95 %51 = load @nomsg 128.20/63.95 store %51, @p3_new 128.20/63.95 %52 = load @nomsg 128.20/63.95 store %52, @p4_old 128.20/63.95 %53 = load @nomsg 128.20/63.95 store %53, @p4_new 128.20/63.95 %54 = load @nomsg 128.20/63.95 store %54, @p5_old 128.20/63.95 %55 = load @nomsg 128.20/63.95 store %55, @p5_new 128.20/63.95 %56 = load @nomsg 128.20/63.95 store %56, @p6_old 128.20/63.95 %57 = load @nomsg 128.20/63.95 store %57, @p6_new 128.20/63.95 %58 = load @nomsg 128.20/63.95 store %58, @p7_old 128.20/63.95 %59 = load @nomsg 128.20/63.95 store %59, @p7_new 128.20/63.95 %60 = load @nomsg 128.20/63.95 store %60, @p8_old 128.20/63.95 %61 = load @nomsg 128.20/63.95 store %61, @p8_new 128.20/63.95 store 0, %i2 128.20/63.95 br %62 128.20/63.95 62: 128.20/63.95 %63 = load %i2 128.20/63.95 %64 = icmp slt %63 16 128.20/63.95 br %64, %65, %87 128.20/63.95 65: 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType @node1() 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType @node2() 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType @node3() 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType @node4() 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType @node5() 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType @node6() 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType @node7() 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType @node8() 128.20/63.95 %66 = load @p1_new 128.20/63.95 store %66, @p1_old 128.20/63.95 %67 = load @nomsg 128.20/63.95 store %67, @p1_new 128.20/63.95 %68 = load @p2_new 128.20/63.95 store %68, @p2_old 128.20/63.95 %69 = load @nomsg 128.20/63.95 store %69, @p2_new 128.20/63.95 %70 = load @p3_new 128.20/63.95 store %70, @p3_old 128.20/63.95 %71 = load @nomsg 128.20/63.95 store %71, @p3_new 128.20/63.95 %72 = load @p4_new 128.20/63.95 store %72, @p4_old 128.20/63.95 %73 = load @nomsg 128.20/63.95 store %73, @p4_new 128.20/63.95 %74 = load @p5_new 128.20/63.95 store %74, @p5_old 128.20/63.95 %75 = load @nomsg 128.20/63.95 store %75, @p5_new 128.20/63.95 %76 = load @p6_new 128.20/63.95 store %76, @p6_old 128.20/63.95 %77 = load @nomsg 128.20/63.95 store %77, @p6_new 128.20/63.95 %78 = load @p7_new 128.20/63.95 store %78, @p7_old 128.20/63.95 %79 = load @nomsg 128.20/63.95 store %79, @p7_new 128.20/63.95 %80 = load @p8_new 128.20/63.95 store %80, @p8_old 128.20/63.95 %81 = load @nomsg 128.20/63.95 store %81, @p8_new 128.20/63.95 %82 = call i32 @check() 128.20/63.95 store %82, %c1 128.20/63.95 %83 = load %c1 128.20/63.95 %84 = icmp ne %83 0 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext %84) 128.20/63.95 %85 = load %i2 128.20/63.95 %86 = add %85 1 128.20/63.95 store %86, %i2 128.20/63.95 br %62 128.20/63.95 87: 128.20/63.95 %88 = load %1 128.20/63.95 ret %88 128.20/63.95 128.20/63.95 *BasicFunctionTypename: "__VERIFIER_assume" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.95 0: 128.20/63.95 %1 = alloca i8, align 1 128.20/63.95 %2 = zext i1 %arg to i8 128.20/63.95 store %2, %1 128.20/63.95 br %3 128.20/63.95 3: 128.20/63.95 %4 = load %1 128.20/63.95 %5 = trunc i8 %4 to i1 128.20/63.95 %6 = xor %5 1 128.20/63.95 br %6, %7, %8 128.20/63.95 7: 128.20/63.95 br %3 128.20/63.95 8: 128.20/63.95 ret void 128.20/63.95 128.20/63.95 *BasicFunctionTypename: "assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 128.20/63.95 0: 128.20/63.95 %1 = alloca i8, align 1 128.20/63.95 %2 = zext i1 %arg to i8 128.20/63.95 store %2, %1 128.20/63.95 %3 = load %1 128.20/63.95 %4 = trunc i8 %3 to i1 128.20/63.95 br %4, %7, %5 128.20/63.95 5: 128.20/63.95 br %6 128.20/63.95 6: 128.20/63.95 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 128.20/63.95 unreachable 128.20/63.95 7: 128.20/63.95 ret void 128.20/63.95 128.20/63.95 128.20/63.95 Analyze Termination of all function calls matching the pattern: 128.20/63.95 main() 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (3) LLVMToTerminationGraphProof (EQUIVALENT) 128.20/63.95 Constructed symbolic execution graph for LLVM program and proved memory safety. 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (4) 128.20/63.95 Obligation: 128.20/63.95 SE Graph 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (5) SymbolicExecutionGraphToSCCProof (SOUND) 128.20/63.95 Splitted symbolic execution graph to 3 SCCs. 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (6) 128.20/63.95 Complex Obligation (AND) 128.20/63.95 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (7) 128.20/63.95 Obligation: 128.20/63.95 SCC 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (8) 128.20/63.95 Obligation: 128.20/63.95 SCC 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (9) 128.20/63.95 Obligation: 128.20/63.95 SCC 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (10) SymbolicExecutionGraphToLassoProof (COMPLETE) 128.20/63.95 Converted SEGraph to 4 dependent lassos. 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (11) 128.20/63.95 Complex Obligation (AND) 128.20/63.95 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (12) 128.20/63.95 Obligation: 128.20/63.95 Lasso 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (13) 128.20/63.95 Obligation: 128.20/63.95 Lasso 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (14) 128.20/63.95 Obligation: 128.20/63.95 Lasso 128.20/63.95 ---------------------------------------- 128.20/63.95 128.20/63.95 (15) 128.20/63.95 Obligation: 128.20/63.95 Lasso 128.34/63.98 EOF