27.60/20.63 MAYBE 27.88/20.64 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 27.88/20.64 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 27.88/20.64 27.88/20.64 27.88/20.64 Termination of the given C Problem could not be shown: 27.88/20.64 27.88/20.64 (0) C Problem 27.88/20.64 (1) CToLLVMProof [EQUIVALENT, 310 ms] 27.88/20.64 (2) LLVM problem 27.88/20.64 27.88/20.64 27.88/20.64 ---------------------------------------- 27.88/20.64 27.88/20.64 (0) 27.88/20.64 Obligation: 27.88/20.64 c file /export/starexec/sandbox/benchmark/theBenchmark.c 27.88/20.64 ---------------------------------------- 27.88/20.64 27.88/20.64 (1) CToLLVMProof (EQUIVALENT) 27.88/20.64 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 27.88/20.64 ---------------------------------------- 27.88/20.64 27.88/20.64 (2) 27.88/20.64 Obligation: 27.88/20.64 LLVM Problem 27.88/20.64 27.88/20.64 Aliases: 27.88/20.64 27.88/20.64 Data layout: 27.88/20.64 27.88/20.64 "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" 27.88/20.64 27.88/20.64 Machine: 27.88/20.64 27.88/20.64 "x86_64-pc-linux-gnu" 27.88/20.64 27.88/20.64 Type definitions: 27.88/20.64 27.88/20.64 Global variables: 27.88/20.64 27.88/20.64 Name: __startrek_Assert_t3_i0 initVal: \01\01\01\01\01\01\01\01 type: [8 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_Assert_t2_i0 initVal: \01\01\01\01\01\01\01\01 type: [8 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_Assert_t1_i0 initVal: \01\01\01\01\01\01\01\01 type: [8 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_Assert_t0_i0 initVal: \01\01\01\01 type: [4 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_lock initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_pi_locks_held initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_task_base_priority initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden___startrek_current_priority initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_R_count initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_R_speed initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_W_count initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_W_speed initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_T_count initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_T_speed initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: state initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_need_to_read initVal: 1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_need_to_run_nxtbg initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_threshold initVal: 200 type: i16 addrSpace: null alignment: 2 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_R_state initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_W_state initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_T_state initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: C_state initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: TM_mode initVal: 2 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: moved initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: sign initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: INTERNAL section: null 27.88/20.64 27.88/20.64 Name: __startrek_time_bound initVal: 2000 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_base_priority_Controller initVal: 1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden___startrek_job_count_Controller initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_period_Controller initVal: 500 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_wcet_Controller initVal: 440 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_arrival_min_Controller initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_arrival_max_Controller initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_base_priority_TapeMover initVal: 2 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden___startrek_job_count_TapeMover initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_period_TapeMover initVal: 250 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_wcet_TapeMover initVal: 10 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_arrival_min_TapeMover initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_arrival_max_TapeMover initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_base_priority_Reader initVal: 3 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden___startrek_job_count_Reader initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_period_Reader initVal: 250 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_wcet_Reader initVal: 10 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_arrival_min_Reader initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_arrival_max_Reader initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_base_priority_Writer initVal: 4 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden___startrek_job_count_Writer initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_period_Writer initVal: 250 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_wcet_Writer initVal: 10 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_arrival_min_Writer initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_arrival_max_Writer initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: null section: null 27.88/20.64 27.88/20.64 Name: __startrek_error_round initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_task initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_job initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_is_first_cs initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_start_t0 initVal: (0,0,0,0) type: [4 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_round initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_end_t0 initVal: (0,0,0,0) type: [4 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_job_end initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_start_t1 initVal: (0,0,0,0,0,0,0,0) type: [8 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_end_t1 initVal: (0,0,0,0,0,0,0,0) type: [8 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_start_t2 initVal: (0,0,0,0,0,0,0,0) type: [8 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_end_t2 initVal: (0,0,0,0,0,0,0,0) type: [8 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_start_t3 initVal: (0,0,0,0,0,0,0,0) type: [8 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_end_t3 initVal: (0,0,0,0,0,0,0,0) type: [8 x i8] addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_hyper_period initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: ___startrek_job_count_Writer_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: ___startrek_job_count_Reader_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: ___startrek_job_count_TapeMover_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: ___startrek_job_count_Controller_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: _T_state_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: _W_state_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: _R_state_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: _threshold_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i16] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: _need_to_run_nxtbg_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: _need_to_read_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_dir initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: _dir_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.64 27.88/20.64 Name: __startrek_hidden_output initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _output_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: __startrek_hidden_input initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _input_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: __startrek_hidden_nxtcolorsensor_mode initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _nxtcolorsensor_mode_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: __startrek_hidden_nxtcolorsensor_data_mode initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _nxtcolorsensor_data_mode_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _T_speed_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _T_count_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i32] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _W_speed_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _W_count_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i32] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _R_speed_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _R_count_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i32] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: ___startrek_current_priority_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i___startrek_current_priority_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_R_count_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i32] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_R_speed_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_W_count_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i32] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_W_speed_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_T_count_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i32] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_T_speed_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_nxtcolorsensor_data_mode_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_nxtcolorsensor_mode_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_input_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_output_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_dir_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_need_to_read_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_need_to_run_nxtbg_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_threshold_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i16] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_R_state_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_W_state_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i_T_state_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i___startrek_job_count_Controller_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i___startrek_job_count_TapeMover_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i___startrek_job_count_Reader_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Name: _i___startrek_job_count_Writer_ initVal: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) type: [28 x i8] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: COMMON section: null 27.88/20.65 27.88/20.65 Function declarations and definitions: 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__VERIFIER_nondet_U8" returnParam: i8 zeroext parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__VERIFIER_nondet_Bool" returnParam: i1 zeroext parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__startrek_schedule_jobs" returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__startrek_init_globals" returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__VERIFIER_assume" returnParam: BasicVoidType parameters: (i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__startrek_check_assumptions" returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__startrek_check_assertions" returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__startrek_user_final" returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__startrek_user_init" returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__VERIFIER_nondet_bool" returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "__VERIFIER_nondet_uchar" returnParam: i8 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 *BasicFunctionTypename: "assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %2 = zext i1 %arg to i8 27.88/20.65 store %2, %1 27.88/20.65 %3 = load %1 27.88/20.65 %4 = trunc i8 %3 to i1 27.88/20.65 br %4, %7, %5 27.88/20.65 5: 27.88/20.65 br %6 27.88/20.65 6: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 27.88/20.65 unreachable 27.88/20.65 7: 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "calibrate" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %tmp = alloca i8, align 1 27.88/20.65 %1 = call zeroext i8 (...)* @__VERIFIER_nondet_U8() 27.88/20.65 store %1, %tmp 27.88/20.65 %2 = load %tmp 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 ret %3 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "ecrobot_set_nxtcolorsensor" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (port_id i8 zeroext, mode i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %2 = alloca i8, align 1 27.88/20.65 store %port_id, %1 27.88/20.65 store %mode, %2 27.88/20.65 %3 = load %2 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_nxtcolorsensor_data_mode(i8 zeroext %3) 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_nxtcolorsensor_data_mode" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_nxtcolorsensor_data_mode_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "ecrobot_get_nxtcolorsensor_mode" linkageType: EXTERNALLY_VISIBLE returnParam: i8 zeroext parameters: (port_id i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %tmp = alloca i8, align 1 27.88/20.65 store %port_id, %1 27.88/20.65 %2 = call zeroext i8 @__startrek_read_nxtcolorsensor_mode() 27.88/20.65 store %2, %tmp 27.88/20.65 %3 = load %tmp 27.88/20.65 ret %3 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_nxtcolorsensor_mode" linkageType: INTERNAL returnParam: i8 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.65 store %14, %c2 27.88/20.65 br %19 27.88/20.65 15: 27.88/20.65 %16 = load @__startrek_round 27.88/20.65 store %16, %or3 27.88/20.65 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %18 = zext i1 %17 to i8 27.88/20.65 store %18, %c2 27.88/20.65 br %19 27.88/20.65 19: 27.88/20.65 %20 = load @__startrek_round 27.88/20.65 %21 = zext i8 %20 to i64 27.88/20.65 %22 = getelementptr @_nxtcolorsensor_mode_, 0, %21 27.88/20.65 %23 = load %22 27.88/20.65 store %23, %r1 27.88/20.65 %24 = load %r1 27.88/20.65 ret %24 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "bg_nxtcolorsensor" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (take_long_time i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %tmp = alloca i8, align 1 27.88/20.65 %tmp___0 = alloca i8, align 1 27.88/20.65 %tmp___1 = alloca i8, align 1 27.88/20.65 %2 = zext i1 %take_long_time to i8 27.88/20.65 store %2, %1 27.88/20.65 %3 = call zeroext i8 @__startrek_read_nxtcolorsensor_data_mode() 27.88/20.65 store %3, %tmp___0 27.88/20.65 %4 = call zeroext i8 @__startrek_read_nxtcolorsensor_mode() 27.88/20.65 store %4, %tmp___1 27.88/20.65 %5 = load %tmp___0 27.88/20.65 %6 = zext i8 %5 to i32 27.88/20.65 %7 = load %tmp___1 27.88/20.65 %8 = zext i8 %7 to i32 27.88/20.65 %9 = icmp ne %6 %8 27.88/20.65 br %9, %10, %13 27.88/20.65 10: 27.88/20.65 %11 = call zeroext i8 @__startrek_read_nxtcolorsensor_data_mode() 27.88/20.65 store %11, %tmp 27.88/20.65 %12 = load %tmp 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_nxtcolorsensor_mode(i8 zeroext %12) 27.88/20.65 br %13 27.88/20.65 13: 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_nxtcolorsensor_data_mode" linkageType: INTERNAL returnParam: i8 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.65 store %14, %c2 27.88/20.65 br %19 27.88/20.65 15: 27.88/20.65 %16 = load @__startrek_round 27.88/20.65 store %16, %or3 27.88/20.65 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %18 = zext i1 %17 to i8 27.88/20.65 store %18, %c2 27.88/20.65 br %19 27.88/20.65 19: 27.88/20.65 %20 = load @__startrek_round 27.88/20.65 %21 = zext i8 %20 to i64 27.88/20.65 %22 = getelementptr @_nxtcolorsensor_data_mode_, 0, %21 27.88/20.65 %23 = load %22 27.88/20.65 store %23, %r1 27.88/20.65 %24 = load %r1 27.88/20.65 ret %24 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_nxtcolorsensor_mode" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_nxtcolorsensor_mode_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "ecrobot_is_ENTER_button_pressed" linkageType: EXTERNALLY_VISIBLE returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %tmp = alloca i8, align 1 27.88/20.65 %1 = call zeroext i1 (...)* @__VERIFIER_nondet_Bool() 27.88/20.65 %2 = zext i1 %1 to i8 27.88/20.65 store %2, %tmp 27.88/20.65 %3 = load %tmp 27.88/20.65 %4 = trunc i8 %3 to i1 27.88/20.65 ret %4 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "nxt_motor_set_speed" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (n i32, speed i32, b i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i32, align 4 27.88/20.65 %2 = alloca i32, align 4 27.88/20.65 %3 = alloca i8, align 1 27.88/20.65 %diff = alloca i8, align 1 27.88/20.65 %prev_speed = alloca i8, align 1 27.88/20.65 %tmp = alloca i32, align 4 27.88/20.65 %tmp___0 = alloca i32, align 4 27.88/20.65 %tmp___1 = alloca i32, align 4 27.88/20.65 %tmp___2 = alloca i32, align 4 27.88/20.65 %tmp___3 = alloca i32, align 4 27.88/20.65 %tmp___4 = alloca i32, align 4 27.88/20.65 store %n, %1 27.88/20.65 store %speed, %2 27.88/20.65 %4 = zext i1 %b to i8 27.88/20.65 store %4, %3 27.88/20.65 %5 = load %1 27.88/20.65 switch %5, %81 [0, %6 1, %31 2, %56] 27.88/20.65 6: 27.88/20.65 %7 = call signext i8 @__startrek_read_R_speed() 27.88/20.65 store %7, %prev_speed 27.88/20.65 %8 = load %prev_speed 27.88/20.65 %9 = sext i8 %8 to i32 27.88/20.65 %10 = icmp ne %9 0 27.88/20.65 br %10, %11, %28 27.88/20.65 11: 27.88/20.65 %12 = call zeroext i8 (...)* @__VERIFIER_nondet_U8() 27.88/20.65 store %12, %diff 27.88/20.65 %13 = call i32 @__startrek_read_R_count() 27.88/20.65 store %13, %tmp 27.88/20.65 %14 = load %prev_speed 27.88/20.65 %15 = sext i8 %14 to i32 27.88/20.65 %16 = icmp sgt %15 0 27.88/20.65 br %16, %17, %20 27.88/20.65 17: 27.88/20.65 %18 = load %diff 27.88/20.65 %19 = zext i8 %18 to i32 27.88/20.65 store %19, %tmp___0 27.88/20.65 br %24 27.88/20.65 20: 27.88/20.65 %21 = load %diff 27.88/20.65 %22 = zext i8 %21 to i32 27.88/20.65 %23 = sub 0 %22 27.88/20.65 store %23, %tmp___0 27.88/20.65 br %24 27.88/20.65 24: 27.88/20.65 %25 = load %tmp 27.88/20.65 %26 = load %tmp___0 27.88/20.65 %27 = add %25 %26 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_count(i32 %27) 27.88/20.65 br %28 27.88/20.65 28: 27.88/20.65 %29 = load %2 27.88/20.65 %30 = trunc i32 %29 to i8 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_speed(i8 signext %30) 27.88/20.65 br %82 27.88/20.65 31: 27.88/20.65 %32 = call signext i8 @__startrek_read_W_speed() 27.88/20.65 store %32, %prev_speed 27.88/20.65 %33 = load %prev_speed 27.88/20.65 %34 = sext i8 %33 to i32 27.88/20.65 %35 = icmp ne %34 0 27.88/20.65 br %35, %36, %53 27.88/20.65 36: 27.88/20.65 %37 = call zeroext i8 (...)* @__VERIFIER_nondet_U8() 27.88/20.65 store %37, %diff 27.88/20.65 %38 = call i32 @__startrek_read_W_count() 27.88/20.65 store %38, %tmp___1 27.88/20.65 %39 = load %prev_speed 27.88/20.65 %40 = sext i8 %39 to i32 27.88/20.65 %41 = icmp sgt %40 0 27.88/20.65 br %41, %42, %45 27.88/20.65 42: 27.88/20.65 %43 = load %diff 27.88/20.65 %44 = zext i8 %43 to i32 27.88/20.65 store %44, %tmp___2 27.88/20.65 br %49 27.88/20.65 45: 27.88/20.65 %46 = load %diff 27.88/20.65 %47 = zext i8 %46 to i32 27.88/20.65 %48 = sub 0 %47 27.88/20.65 store %48, %tmp___2 27.88/20.65 br %49 27.88/20.65 49: 27.88/20.65 %50 = load %tmp___1 27.88/20.65 %51 = load %tmp___2 27.88/20.65 %52 = add %50 %51 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_W_count(i32 %52) 27.88/20.65 br %53 27.88/20.65 53: 27.88/20.65 %54 = load %2 27.88/20.65 %55 = trunc i32 %54 to i8 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_W_speed(i8 signext %55) 27.88/20.65 br %82 27.88/20.65 56: 27.88/20.65 %57 = call signext i8 @__startrek_read_T_speed() 27.88/20.65 store %57, %prev_speed 27.88/20.65 %58 = load %prev_speed 27.88/20.65 %59 = sext i8 %58 to i32 27.88/20.65 %60 = icmp ne %59 0 27.88/20.65 br %60, %61, %78 27.88/20.65 61: 27.88/20.65 %62 = call zeroext i8 (...)* @__VERIFIER_nondet_U8() 27.88/20.65 store %62, %diff 27.88/20.65 %63 = call i32 @__startrek_read_T_count() 27.88/20.65 store %63, %tmp___3 27.88/20.65 %64 = load %prev_speed 27.88/20.65 %65 = sext i8 %64 to i32 27.88/20.65 %66 = icmp sgt %65 0 27.88/20.65 br %66, %67, %70 27.88/20.65 67: 27.88/20.65 %68 = load %diff 27.88/20.65 %69 = zext i8 %68 to i32 27.88/20.65 store %69, %tmp___4 27.88/20.65 br %74 27.88/20.65 70: 27.88/20.65 %71 = load %diff 27.88/20.65 %72 = zext i8 %71 to i32 27.88/20.65 %73 = sub 0 %72 27.88/20.65 store %73, %tmp___4 27.88/20.65 br %74 27.88/20.65 74: 27.88/20.65 %75 = load %tmp___3 27.88/20.65 %76 = load %tmp___4 27.88/20.65 %77 = add %75 %76 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_T_count(i32 %77) 27.88/20.65 br %78 27.88/20.65 78: 27.88/20.65 %79 = load %2 27.88/20.65 %80 = trunc i32 %79 to i8 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_T_speed(i8 signext %80) 27.88/20.65 br %82 27.88/20.65 81: 27.88/20.65 br %82 27.88/20.65 82: 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_R_speed" linkageType: INTERNAL returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.65 store %14, %c2 27.88/20.65 br %19 27.88/20.65 15: 27.88/20.65 %16 = load @__startrek_round 27.88/20.65 store %16, %or3 27.88/20.65 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %18 = zext i1 %17 to i8 27.88/20.65 store %18, %c2 27.88/20.65 br %19 27.88/20.65 19: 27.88/20.65 %20 = load @__startrek_round 27.88/20.65 %21 = zext i8 %20 to i64 27.88/20.65 %22 = getelementptr @_R_speed_, 0, %21 27.88/20.65 %23 = load %22 27.88/20.65 store %23, %r1 27.88/20.65 %24 = load %r1 27.88/20.65 ret %24 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_R_count" linkageType: INTERNAL returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i32, align 4 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.65 store %14, %c2 27.88/20.65 br %19 27.88/20.65 15: 27.88/20.65 %16 = load @__startrek_round 27.88/20.65 store %16, %or3 27.88/20.65 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %18 = zext i1 %17 to i8 27.88/20.65 store %18, %c2 27.88/20.65 br %19 27.88/20.65 19: 27.88/20.65 %20 = load @__startrek_round 27.88/20.65 %21 = zext i8 %20 to i64 27.88/20.65 %22 = getelementptr @_R_count_, 0, %21 27.88/20.65 %23 = load %22 27.88/20.65 store %23, %r1 27.88/20.65 %24 = load %r1 27.88/20.65 ret %24 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_R_count" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i32, align 4 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_R_count_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_R_speed" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_R_speed_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_W_speed" linkageType: INTERNAL returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.65 store %14, %c2 27.88/20.65 br %19 27.88/20.65 15: 27.88/20.65 %16 = load @__startrek_round 27.88/20.65 store %16, %or3 27.88/20.65 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %18 = zext i1 %17 to i8 27.88/20.65 store %18, %c2 27.88/20.65 br %19 27.88/20.65 19: 27.88/20.65 %20 = load @__startrek_round 27.88/20.65 %21 = zext i8 %20 to i64 27.88/20.65 %22 = getelementptr @_W_speed_, 0, %21 27.88/20.65 %23 = load %22 27.88/20.65 store %23, %r1 27.88/20.65 %24 = load %r1 27.88/20.65 ret %24 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_W_count" linkageType: INTERNAL returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i32, align 4 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.65 store %14, %c2 27.88/20.65 br %19 27.88/20.65 15: 27.88/20.65 %16 = load @__startrek_round 27.88/20.65 store %16, %or3 27.88/20.65 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %18 = zext i1 %17 to i8 27.88/20.65 store %18, %c2 27.88/20.65 br %19 27.88/20.65 19: 27.88/20.65 %20 = load @__startrek_round 27.88/20.65 %21 = zext i8 %20 to i64 27.88/20.65 %22 = getelementptr @_W_count_, 0, %21 27.88/20.65 %23 = load %22 27.88/20.65 store %23, %r1 27.88/20.65 %24 = load %r1 27.88/20.65 ret %24 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_W_count" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i32, align 4 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_W_count_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_W_speed" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_W_speed_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_T_speed" linkageType: INTERNAL returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.65 store %14, %c2 27.88/20.65 br %19 27.88/20.65 15: 27.88/20.65 %16 = load @__startrek_round 27.88/20.65 store %16, %or3 27.88/20.65 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %18 = zext i1 %17 to i8 27.88/20.65 store %18, %c2 27.88/20.65 br %19 27.88/20.65 19: 27.88/20.65 %20 = load @__startrek_round 27.88/20.65 %21 = zext i8 %20 to i64 27.88/20.65 %22 = getelementptr @_T_speed_, 0, %21 27.88/20.65 %23 = load %22 27.88/20.65 store %23, %r1 27.88/20.65 %24 = load %r1 27.88/20.65 ret %24 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_T_count" linkageType: INTERNAL returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i32, align 4 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.65 store %14, %c2 27.88/20.65 br %19 27.88/20.65 15: 27.88/20.65 %16 = load @__startrek_round 27.88/20.65 store %16, %or3 27.88/20.65 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %18 = zext i1 %17 to i8 27.88/20.65 store %18, %c2 27.88/20.65 br %19 27.88/20.65 19: 27.88/20.65 %20 = load @__startrek_round 27.88/20.65 %21 = zext i8 %20 to i64 27.88/20.65 %22 = getelementptr @_T_count_, 0, %21 27.88/20.65 %23 = load %22 27.88/20.65 store %23, %r1 27.88/20.65 %24 = load %r1 27.88/20.65 ret %24 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_T_count" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i32, align 4 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_T_count_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_T_speed" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_T_speed_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "nxt_motor_get_count" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (n i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i32, align 4 27.88/20.65 %2 = alloca i32, align 4 27.88/20.65 %delta = alloca i8, align 1 27.88/20.65 %new_count = alloca i32, align 4 27.88/20.65 %count = alloca i32, align 4 27.88/20.65 %speed = alloca i8, align 1 27.88/20.65 %tmp = alloca i8, align 1 27.88/20.65 %tmp___0 = alloca i8, align 1 27.88/20.65 %tmp___1 = alloca i8, align 1 27.88/20.65 store %n, %2 27.88/20.65 store 0, %count 27.88/20.65 store 0, %speed 27.88/20.65 %3 = load %2 27.88/20.65 switch %3, %82 [0, %4 1, %30 2, %56] 27.88/20.65 4: 27.88/20.65 %5 = call signext i8 @__startrek_read_R_speed() 27.88/20.65 store %5, %tmp 27.88/20.65 %6 = load %tmp 27.88/20.65 store %6, %speed 27.88/20.65 %7 = call i32 @__startrek_read_R_count() 27.88/20.65 store %7, %count 27.88/20.65 %8 = load %speed 27.88/20.65 %9 = sext i8 %8 to i32 27.88/20.65 %10 = icmp eq %9 0 27.88/20.65 br %10, %11, %13 27.88/20.65 11: 27.88/20.65 %12 = load %count 27.88/20.65 store %12, %1 27.88/20.65 br %85 27.88/20.65 13: 27.88/20.65 %14 = call zeroext i8 (...)* @__VERIFIER_nondet_U8() 27.88/20.65 store %14, %delta 27.88/20.65 %15 = load %count 27.88/20.65 %16 = load %speed 27.88/20.65 %17 = sext i8 %16 to i32 27.88/20.65 %18 = add %15 %17 27.88/20.65 %19 = icmp sgt %18 0 27.88/20.65 br %19, %20, %23 27.88/20.65 20: 27.88/20.65 %21 = load %delta 27.88/20.65 %22 = zext i8 %21 to i32 27.88/20.65 store %22, %new_count 27.88/20.65 br %27 27.88/20.65 23: 27.88/20.65 %24 = load %delta 27.88/20.65 %25 = zext i8 %24 to i32 27.88/20.65 %26 = sub 0 %25 27.88/20.65 store %26, %new_count 27.88/20.65 br %27 27.88/20.65 27: 27.88/20.65 %28 = load %new_count 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_count(i32 %28) 27.88/20.65 br %29 27.88/20.65 29: 27.88/20.65 br %83 27.88/20.65 30: 27.88/20.65 %31 = call signext i8 @__startrek_read_W_speed() 27.88/20.65 store %31, %tmp___0 27.88/20.65 %32 = load %tmp___0 27.88/20.65 store %32, %speed 27.88/20.65 %33 = call i32 @__startrek_read_W_count() 27.88/20.65 store %33, %count 27.88/20.65 %34 = load %speed 27.88/20.65 %35 = sext i8 %34 to i32 27.88/20.65 %36 = icmp eq %35 0 27.88/20.65 br %36, %37, %39 27.88/20.65 37: 27.88/20.65 %38 = load %count 27.88/20.65 store %38, %1 27.88/20.65 br %85 27.88/20.65 39: 27.88/20.65 %40 = call zeroext i8 (...)* @__VERIFIER_nondet_U8() 27.88/20.65 store %40, %delta 27.88/20.65 %41 = load %count 27.88/20.65 %42 = load %speed 27.88/20.65 %43 = sext i8 %42 to i32 27.88/20.65 %44 = add %41 %43 27.88/20.65 %45 = icmp sgt %44 0 27.88/20.65 br %45, %46, %49 27.88/20.65 46: 27.88/20.65 %47 = load %delta 27.88/20.65 %48 = zext i8 %47 to i32 27.88/20.65 store %48, %new_count 27.88/20.65 br %53 27.88/20.65 49: 27.88/20.65 %50 = load %delta 27.88/20.65 %51 = zext i8 %50 to i32 27.88/20.65 %52 = sub 0 %51 27.88/20.65 store %52, %new_count 27.88/20.65 br %53 27.88/20.65 53: 27.88/20.65 %54 = load %new_count 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_W_count(i32 %54) 27.88/20.65 br %55 27.88/20.65 55: 27.88/20.65 br %83 27.88/20.65 56: 27.88/20.65 %57 = call signext i8 @__startrek_read_T_speed() 27.88/20.65 store %57, %tmp___1 27.88/20.65 %58 = load %tmp___1 27.88/20.65 store %58, %speed 27.88/20.65 %59 = call i32 @__startrek_read_T_count() 27.88/20.65 store %59, %count 27.88/20.65 %60 = load %speed 27.88/20.65 %61 = sext i8 %60 to i32 27.88/20.65 %62 = icmp eq %61 0 27.88/20.65 br %62, %63, %65 27.88/20.65 63: 27.88/20.65 %64 = load %count 27.88/20.65 store %64, %1 27.88/20.65 br %85 27.88/20.65 65: 27.88/20.65 %66 = call zeroext i8 (...)* @__VERIFIER_nondet_U8() 27.88/20.65 store %66, %delta 27.88/20.65 %67 = load %count 27.88/20.65 %68 = load %speed 27.88/20.65 %69 = sext i8 %68 to i32 27.88/20.65 %70 = add %67 %69 27.88/20.65 %71 = icmp sgt %70 0 27.88/20.65 br %71, %72, %75 27.88/20.65 72: 27.88/20.65 %73 = load %delta 27.88/20.65 %74 = zext i8 %73 to i32 27.88/20.65 store %74, %new_count 27.88/20.65 br %79 27.88/20.65 75: 27.88/20.65 %76 = load %delta 27.88/20.65 %77 = zext i8 %76 to i32 27.88/20.65 %78 = sub 0 %77 27.88/20.65 store %78, %new_count 27.88/20.65 br %79 27.88/20.65 79: 27.88/20.65 %80 = load %new_count 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_T_count(i32 %80) 27.88/20.65 br %81 27.88/20.65 81: 27.88/20.65 br %83 27.88/20.65 82: 27.88/20.65 br %83 27.88/20.65 83: 27.88/20.65 %84 = load %new_count 27.88/20.65 store %84, %1 27.88/20.65 br %85 27.88/20.65 85: 27.88/20.65 %86 = load %1 27.88/20.65 ret %86 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "nxt_motor_set_count" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (n i32, count i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i32, align 4 27.88/20.65 %2 = alloca i32, align 4 27.88/20.65 store %n, %1 27.88/20.65 store %count, %2 27.88/20.65 %3 = load %1 27.88/20.65 switch %3, %10 [0, %4 1, %6 2, %8] 27.88/20.65 4: 27.88/20.65 %5 = load %2 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_count(i32 %5) 27.88/20.65 br %10 27.88/20.65 6: 27.88/20.65 %7 = load %2 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_W_count(i32 %7) 27.88/20.65 br %10 27.88/20.65 8: 27.88/20.65 %9 = load %2 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_T_count(i32 %9) 27.88/20.65 br %10 27.88/20.65 10: 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "ecrobot_get_nxtcolorsensor_light" linkageType: EXTERNALLY_VISIBLE returnParam: i8 zeroext parameters: (port i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %tmp = alloca i8, align 1 27.88/20.65 store %port, %1 27.88/20.65 %2 = call zeroext i8 (...)* @__VERIFIER_nondet_U8() 27.88/20.65 store %2, %tmp 27.88/20.65 %3 = load %tmp 27.88/20.65 ret %3 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "TerminateTask" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "transition" linkageType: EXTERNALLY_VISIBLE returnParam: i1 zeroext parameters: (in_state i16 zeroext, input___0 i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i16, align 2 27.88/20.65 %2 = alloca i8, align 1 27.88/20.65 %halt = alloca i8, align 1 27.88/20.65 store %in_state, %1 27.88/20.65 %3 = zext i1 %input___0 to i8 27.88/20.65 store %3, %2 27.88/20.65 store 0, %halt 27.88/20.65 %4 = load %1 27.88/20.65 %5 = zext i16 %4 to i32 27.88/20.65 switch %5, %14 [0, %6] 27.88/20.65 6: 27.88/20.65 %7 = load %2 27.88/20.65 %8 = trunc i8 %7 to i1 27.88/20.65 %9 = zext i1 %8 to i32 27.88/20.65 %10 = icmp eq %9 0 27.88/20.65 br %10, %11, %12 27.88/20.65 11: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_output(i1 zeroext 1) 27.88/20.65 store 0, @state 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_dir(i1 zeroext 0) 27.88/20.65 br %13 27.88/20.65 12: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_output(i1 zeroext 0) 27.88/20.65 store 0, @state 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_dir(i1 zeroext 0) 27.88/20.65 br %13 27.88/20.65 13: 27.88/20.65 br %14 27.88/20.65 14: 27.88/20.65 %15 = load %halt 27.88/20.65 %16 = trunc i8 %15 to i1 27.88/20.65 ret %16 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_output" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %2 = zext i1 %arg to i8 27.88/20.65 store %2, %1 27.88/20.65 %3 = load @__startrek_task 27.88/20.65 %4 = zext i8 %3 to i32 27.88/20.65 switch %4, %21 [0, %5 1, %9 2, %13 3, %17] 27.88/20.65 5: 27.88/20.65 %6 = load @__startrek_round 27.88/20.65 store %6, %or3 27.88/20.65 %7 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %8 = zext i1 %7 to i8 27.88/20.65 store %8, %c2 27.88/20.65 br %21 27.88/20.65 9: 27.88/20.65 %10 = load @__startrek_round 27.88/20.65 store %10, %or3 27.88/20.65 %11 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %12 = zext i1 %11 to i8 27.88/20.65 store %12, %c2 27.88/20.65 br %21 27.88/20.65 13: 27.88/20.65 %14 = load @__startrek_round 27.88/20.65 store %14, %or3 27.88/20.65 %15 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %16 = zext i1 %15 to i8 27.88/20.65 store %16, %c2 27.88/20.65 br %21 27.88/20.65 17: 27.88/20.65 %18 = load @__startrek_round 27.88/20.65 store %18, %or3 27.88/20.65 %19 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %20 = zext i1 %19 to i8 27.88/20.65 store %20, %c2 27.88/20.65 br %21 27.88/20.65 21: 27.88/20.65 %22 = load %1 27.88/20.65 %23 = trunc i8 %22 to i1 27.88/20.65 %24 = load @__startrek_round 27.88/20.65 %25 = zext i8 %24 to i64 27.88/20.65 %26 = getelementptr @_output_, 0, %25 27.88/20.65 %27 = zext i1 %23 to i8 27.88/20.65 store %27, %26 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_dir" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %2 = zext i1 %arg to i8 27.88/20.65 store %2, %1 27.88/20.65 %3 = load @__startrek_task 27.88/20.65 %4 = zext i8 %3 to i32 27.88/20.65 switch %4, %21 [0, %5 1, %9 2, %13 3, %17] 27.88/20.65 5: 27.88/20.65 %6 = load @__startrek_round 27.88/20.65 store %6, %or3 27.88/20.65 %7 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %8 = zext i1 %7 to i8 27.88/20.65 store %8, %c2 27.88/20.65 br %21 27.88/20.65 9: 27.88/20.65 %10 = load @__startrek_round 27.88/20.65 store %10, %or3 27.88/20.65 %11 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %12 = zext i1 %11 to i8 27.88/20.65 store %12, %c2 27.88/20.65 br %21 27.88/20.65 13: 27.88/20.65 %14 = load @__startrek_round 27.88/20.65 store %14, %or3 27.88/20.65 %15 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %16 = zext i1 %15 to i8 27.88/20.65 store %16, %c2 27.88/20.65 br %21 27.88/20.65 17: 27.88/20.65 %18 = load @__startrek_round 27.88/20.65 store %18, %or3 27.88/20.65 %19 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %20 = zext i1 %19 to i8 27.88/20.65 store %20, %c2 27.88/20.65 br %21 27.88/20.65 21: 27.88/20.65 %22 = load %1 27.88/20.65 %23 = trunc i8 %22 to i1 27.88/20.65 %24 = load @__startrek_round 27.88/20.65 %25 = zext i8 %24 to i64 27.88/20.65 %26 = getelementptr @_dir_, 0, %25 27.88/20.65 %27 = zext i1 %23 to i8 27.88/20.65 store %27, %26 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "init" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_state(i8 zeroext 0) 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_W_state(i8 zeroext 0) 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_T_state(i8 zeroext 0) 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @nxt_motor_set_count(i32 0, i32 0) 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @nxt_motor_set_count(i32 1, i32 0) 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @nxt_motor_set_count(i32 2, i32 0) 27.88/20.65 store 0, @C_state 27.88/20.65 store 0, @state 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_need_to_read(i1 zeroext 1) 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_need_to_run_nxtbg(i1 zeroext 0) 27.88/20.65 store 0, @moved 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_R_state" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_R_state_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_W_state" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_W_state_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_T_state" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_T_state_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_need_to_read" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %2 = zext i1 %arg to i8 27.88/20.65 store %2, %1 27.88/20.65 %3 = load @__startrek_task 27.88/20.65 %4 = zext i8 %3 to i32 27.88/20.65 switch %4, %21 [0, %5 1, %9 2, %13 3, %17] 27.88/20.65 5: 27.88/20.65 %6 = load @__startrek_round 27.88/20.65 store %6, %or3 27.88/20.65 %7 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %8 = zext i1 %7 to i8 27.88/20.65 store %8, %c2 27.88/20.65 br %21 27.88/20.65 9: 27.88/20.65 %10 = load @__startrek_round 27.88/20.65 store %10, %or3 27.88/20.65 %11 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %12 = zext i1 %11 to i8 27.88/20.65 store %12, %c2 27.88/20.65 br %21 27.88/20.65 13: 27.88/20.65 %14 = load @__startrek_round 27.88/20.65 store %14, %or3 27.88/20.65 %15 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %16 = zext i1 %15 to i8 27.88/20.65 store %16, %c2 27.88/20.65 br %21 27.88/20.65 17: 27.88/20.65 %18 = load @__startrek_round 27.88/20.65 store %18, %or3 27.88/20.65 %19 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %20 = zext i1 %19 to i8 27.88/20.65 store %20, %c2 27.88/20.65 br %21 27.88/20.65 21: 27.88/20.65 %22 = load %1 27.88/20.65 %23 = trunc i8 %22 to i1 27.88/20.65 %24 = load @__startrek_round 27.88/20.65 %25 = zext i8 %24 to i64 27.88/20.65 %26 = getelementptr @_need_to_read_, 0, %25 27.88/20.65 %27 = zext i1 %23 to i8 27.88/20.65 store %27, %26 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_need_to_run_nxtbg" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %2 = zext i1 %arg to i8 27.88/20.65 store %2, %1 27.88/20.65 %3 = load @__startrek_task 27.88/20.65 %4 = zext i8 %3 to i32 27.88/20.65 switch %4, %21 [0, %5 1, %9 2, %13 3, %17] 27.88/20.65 5: 27.88/20.65 %6 = load @__startrek_round 27.88/20.65 store %6, %or3 27.88/20.65 %7 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %8 = zext i1 %7 to i8 27.88/20.65 store %8, %c2 27.88/20.65 br %21 27.88/20.65 9: 27.88/20.65 %10 = load @__startrek_round 27.88/20.65 store %10, %or3 27.88/20.65 %11 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %12 = zext i1 %11 to i8 27.88/20.65 store %12, %c2 27.88/20.65 br %21 27.88/20.65 13: 27.88/20.65 %14 = load @__startrek_round 27.88/20.65 store %14, %or3 27.88/20.65 %15 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %16 = zext i1 %15 to i8 27.88/20.65 store %16, %c2 27.88/20.65 br %21 27.88/20.65 17: 27.88/20.65 %18 = load @__startrek_round 27.88/20.65 store %18, %or3 27.88/20.65 %19 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %20 = zext i1 %19 to i8 27.88/20.65 store %20, %c2 27.88/20.65 br %21 27.88/20.65 21: 27.88/20.65 %22 = load %1 27.88/20.65 %23 = trunc i8 %22 to i1 27.88/20.65 %24 = load @__startrek_round 27.88/20.65 %25 = zext i8 %24 to i64 27.88/20.65 %26 = getelementptr @_need_to_run_nxtbg_, 0, %25 27.88/20.65 %27 = zext i1 %23 to i8 27.88/20.65 store %27, %26 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "move_motor" linkageType: EXTERNALLY_VISIBLE returnParam: i1 zeroext parameters: (n i32, speed_percent i32, target_count i32, sign i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i32, align 4 27.88/20.65 %2 = alloca i32, align 4 27.88/20.65 %3 = alloca i32, align 4 27.88/20.65 %4 = alloca i32, align 4 27.88/20.65 %count = alloca i32, align 4 27.88/20.65 %tmp = alloca i32, align 4 27.88/20.65 %speed = alloca i32, align 4 27.88/20.65 %ret = alloca i8, align 1 27.88/20.65 store %n, %1 27.88/20.65 store %speed_percent, %2 27.88/20.65 store %target_count, %3 27.88/20.65 store %sign, %4 27.88/20.65 %5 = load %1 27.88/20.65 %6 = call i32 @nxt_motor_get_count(i32 %5) 27.88/20.65 store %6, %tmp 27.88/20.65 %7 = load %tmp 27.88/20.65 store %7, %count 27.88/20.65 store 0, %ret 27.88/20.65 %8 = load %4 27.88/20.65 %9 = load %count 27.88/20.65 %10 = mul %8 %9 27.88/20.65 %11 = load %4 27.88/20.65 %12 = load %3 27.88/20.65 %13 = mul %11 %12 27.88/20.65 %14 = icmp sge %10 %13 27.88/20.65 br %14, %15, %16 27.88/20.65 15: 27.88/20.65 store 0, %speed 27.88/20.65 store 1, %ret 27.88/20.65 br %31 27.88/20.65 16: 27.88/20.65 %17 = load %4 27.88/20.65 %18 = load %3 27.88/20.65 %19 = load %count 27.88/20.65 %20 = sub %18 %19 27.88/20.65 %21 = mul %17 %20 27.88/20.65 %22 = icmp slt %21 60 27.88/20.65 br %22, %23, %26 27.88/20.65 23: 27.88/20.65 %24 = load %4 27.88/20.65 %25 = mul %24 15 27.88/20.65 store %25, %speed 27.88/20.65 br %30 27.88/20.65 26: 27.88/20.65 %27 = load %4 27.88/20.65 %28 = load %2 27.88/20.65 %29 = mul %27 %28 27.88/20.65 store %29, %speed 27.88/20.65 br %30 27.88/20.65 30: 27.88/20.65 store 0, %ret 27.88/20.65 br %31 27.88/20.65 31: 27.88/20.65 %32 = load %1 27.88/20.65 %33 = load %speed 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @nxt_motor_set_speed(i32 %32, i32 %33, i1 zeroext 1) 27.88/20.65 %34 = load %ret 27.88/20.65 %35 = trunc i8 %34 to i1 27.88/20.65 ret %35 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "Controller" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %old_state = alloca i32, align 4 27.88/20.65 %tmp = alloca i8, align 1 27.88/20.65 %tmp___0 = alloca i32, align 4 27.88/20.65 %tmp___1 = alloca i16, align 2 27.88/20.65 %tmp___2 = alloca i32, align 4 27.88/20.65 %tmp___3 = alloca i8, align 1 27.88/20.65 %tmp___4 = alloca i32, align 4 27.88/20.65 %tmp___5 = alloca i8, align 1 27.88/20.65 %tmp___6 = alloca i8, align 1 27.88/20.65 %tmp___7 = alloca i8, align 1 27.88/20.65 %tmp___8 = alloca i8, align 1 27.88/20.65 %tmp___9 = alloca i32, align 4 27.88/20.65 %tmp___10 = alloca i8, align 1 27.88/20.65 %tmp___11 = alloca i32, align 4 27.88/20.65 %tmp___12 = alloca i8, align 1 27.88/20.65 %tmp___13 = alloca i8, align 1 27.88/20.65 %tmp___14 = alloca i8, align 1 27.88/20.65 %tmp___15 = alloca i8, align 1 27.88/20.65 %tmp___16 = alloca i8, align 1 27.88/20.65 %tmp___17 = alloca i8, align 1 27.88/20.65 %1 = load @state 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 store %2, %old_state 27.88/20.65 %3 = call zeroext i1 @__startrek_read_need_to_run_nxtbg() 27.88/20.65 %4 = zext i1 %3 to i8 27.88/20.65 store %4, %tmp 27.88/20.65 %5 = load %tmp 27.88/20.65 %6 = trunc i8 %5 to i1 27.88/20.65 br %6, %7, %8 27.88/20.65 7: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @bg_nxtcolorsensor(i1 zeroext 1) 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_need_to_run_nxtbg(i1 zeroext 0) 27.88/20.65 br %8 27.88/20.65 8: 27.88/20.65 %9 = load @TM_mode 27.88/20.65 %10 = zext i8 %9 to i32 27.88/20.65 switch %10, %133 [0, %11 1, %21 2, %22 3, %126] 27.88/20.65 11: 27.88/20.65 %12 = call i32 @calibrate() 27.88/20.65 store %12, %tmp___0 27.88/20.65 %13 = load %tmp___0 27.88/20.65 %14 = trunc i32 %13 to i16 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_threshold(i16 zeroext %14) 27.88/20.65 %15 = call zeroext i16 @__startrek_read_threshold() 27.88/20.65 store %15, %tmp___1 27.88/20.65 %16 = load %tmp___1 27.88/20.65 %17 = zext i16 %16 to i32 27.88/20.65 %18 = icmp sgt %17 0 27.88/20.65 br %18, %19, %20 27.88/20.65 19: 27.88/20.65 store 1, @TM_mode 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 br %133 27.88/20.65 21: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @init() 27.88/20.65 store 3, @TM_mode 27.88/20.65 br %133 27.88/20.65 22: 27.88/20.65 %23 = load @C_state 27.88/20.65 %24 = zext i8 %23 to i32 27.88/20.65 switch %24, %125 [0, %25 1, %58 2, %74 3, %111] 27.88/20.65 25: 27.88/20.65 %26 = call zeroext i1 @__startrek_read_need_to_read() 27.88/20.65 %27 = zext i1 %26 to i8 27.88/20.65 store %27, %tmp___6 27.88/20.65 %28 = load %tmp___6 27.88/20.65 %29 = trunc i8 %28 to i1 27.88/20.65 br %29, %30, %56 27.88/20.65 30: 27.88/20.65 %31 = call i32 @nxt_motor_get_count(i32 0) 27.88/20.65 store %31, %tmp___4 27.88/20.65 %32 = load %tmp___4 27.88/20.65 %33 = icmp slt %32 45 27.88/20.65 br %33, %34, %42 27.88/20.65 34: 27.88/20.65 %35 = call zeroext i8 @__startrek_read_R_state() 27.88/20.65 store %35, %tmp___5 27.88/20.65 %36 = load %tmp___5 27.88/20.65 %37 = zext i8 %36 to i32 27.88/20.65 %38 = icmp eq %37 0 27.88/20.65 br %38, %39, %40 27.88/20.65 39: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_state(i8 zeroext 1) 27.88/20.65 br %41 27.88/20.65 40: 27.88/20.65 br %43 27.88/20.65 41: 27.88/20.65 br %55 27.88/20.65 42: 27.88/20.65 br %43 27.88/20.65 43: 27.88/20.65 %44 = call i32 @nxt_motor_get_count(i32 0) 27.88/20.65 store %44, %tmp___2 27.88/20.65 %45 = load %tmp___2 27.88/20.65 %46 = icmp sge %45 45 27.88/20.65 br %46, %47, %54 27.88/20.65 47: 27.88/20.65 %48 = call zeroext i8 @__startrek_read_R_state() 27.88/20.65 store %48, %tmp___3 27.88/20.65 %49 = load %tmp___3 27.88/20.65 %50 = zext i8 %49 to i32 27.88/20.65 %51 = icmp eq %50 0 27.88/20.65 br %51, %52, %53 27.88/20.65 52: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_state(i8 zeroext 3) 27.88/20.65 br %53 27.88/20.65 53: 27.88/20.65 br %54 27.88/20.65 54: 27.88/20.65 br %55 27.88/20.65 55: 27.88/20.65 br %57 27.88/20.65 56: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_state(i8 zeroext 0) 27.88/20.65 store 1, @C_state 27.88/20.65 br %57 27.88/20.65 57: 27.88/20.65 br %125 27.88/20.65 58: 27.88/20.65 %59 = load @state 27.88/20.65 %60 = zext i8 %59 to i32 27.88/20.65 store %60, %old_state 27.88/20.65 %61 = call zeroext i1 @__startrek_read_input() 27.88/20.65 %62 = zext i1 %61 to i8 27.88/20.65 store %62, %tmp___7 27.88/20.65 %63 = load @state 27.88/20.65 %64 = zext i8 %63 to i16 27.88/20.65 %65 = load %tmp___7 27.88/20.65 %66 = trunc i8 %65 to i1 27.88/20.65 %67 = call zeroext i1 @transition(i16 zeroext %64, i1 zeroext %66) 27.88/20.65 %68 = zext i1 %67 to i8 27.88/20.65 store %68, %tmp___8 27.88/20.65 %69 = load %tmp___8 27.88/20.65 %70 = trunc i8 %69 to i1 27.88/20.65 br %70, %71, %72 27.88/20.65 71: 27.88/20.65 store 3, @TM_mode 27.88/20.65 br %73 27.88/20.65 72: 27.88/20.65 store 2, @C_state 27.88/20.65 br %73 27.88/20.65 73: 27.88/20.65 br %125 27.88/20.65 74: 27.88/20.65 %75 = call zeroext i1 @__startrek_read_input() 27.88/20.65 %76 = zext i1 %75 to i8 27.88/20.65 store %76, %tmp___13 27.88/20.65 %77 = call zeroext i1 @__startrek_read_output() 27.88/20.65 %78 = zext i1 %77 to i8 27.88/20.65 store %78, %tmp___14 27.88/20.65 %79 = load %tmp___13 27.88/20.65 %80 = trunc i8 %79 to i1 27.88/20.65 %81 = zext i1 %80 to i32 27.88/20.65 %82 = load %tmp___14 27.88/20.65 %83 = trunc i8 %82 to i1 27.88/20.65 %84 = zext i1 %83 to i32 27.88/20.65 %85 = icmp ne %81 %84 27.88/20.65 br %85, %86, %109 27.88/20.65 86: 27.88/20.65 %87 = call i32 @nxt_motor_get_count(i32 0) 27.88/20.65 store %87, %tmp___9 27.88/20.65 %88 = load %tmp___9 27.88/20.65 %89 = icmp sgt %88 0 27.88/20.65 br %89, %90, %97 27.88/20.65 90: 27.88/20.65 %91 = call zeroext i8 @__startrek_read_R_state() 27.88/20.65 store %91, %tmp___10 27.88/20.65 %92 = load %tmp___10 27.88/20.65 %93 = zext i8 %92 to i32 27.88/20.65 %94 = icmp eq %93 0 27.88/20.65 br %94, %95, %96 27.88/20.65 95: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_state(i8 zeroext 2) 27.88/20.65 br %96 27.88/20.65 96: 27.88/20.65 br %97 27.88/20.65 97: 27.88/20.65 %98 = call i32 @nxt_motor_get_count(i32 0) 27.88/20.65 store %98, %tmp___11 27.88/20.65 %99 = load %tmp___11 27.88/20.65 %100 = icmp sle %99 0 27.88/20.65 br %100, %101, %108 27.88/20.65 101: 27.88/20.65 %102 = call zeroext i8 @__startrek_read_W_state() 27.88/20.65 store %102, %tmp___12 27.88/20.65 %103 = load %tmp___12 27.88/20.65 %104 = zext i8 %103 to i32 27.88/20.65 %105 = icmp eq %104 0 27.88/20.65 br %105, %106, %107 27.88/20.65 106: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_W_state(i8 zeroext 1) 27.88/20.65 br %107 27.88/20.65 107: 27.88/20.65 br %108 27.88/20.65 108: 27.88/20.65 br %110 27.88/20.65 109: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_W_state(i8 zeroext 0) 27.88/20.65 store 3, @C_state 27.88/20.65 br %110 27.88/20.65 110: 27.88/20.65 br %125 27.88/20.65 111: 27.88/20.65 %112 = call zeroext i8 @__startrek_read_T_state() 27.88/20.65 store %112, %tmp___16 27.88/20.65 %113 = load %tmp___16 27.88/20.65 %114 = zext i8 %113 to i32 27.88/20.65 %115 = icmp eq %114 0 27.88/20.65 br %115, %116, %117 27.88/20.65 116: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_T_state(i8 zeroext 1) 27.88/20.65 br %124 27.88/20.65 117: 27.88/20.65 %118 = call zeroext i8 @__startrek_read_T_state() 27.88/20.65 store %118, %tmp___15 27.88/20.65 %119 = load %tmp___15 27.88/20.65 %120 = zext i8 %119 to i32 27.88/20.65 %121 = icmp eq %120 2 27.88/20.65 br %121, %122, %123 27.88/20.65 122: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_T_state(i8 zeroext 0) 27.88/20.65 store 0, @C_state 27.88/20.65 br %123 27.88/20.65 123: 27.88/20.65 br %124 27.88/20.65 124: 27.88/20.65 br %125 27.88/20.65 125: 27.88/20.65 br %133 27.88/20.65 126: 27.88/20.65 %127 = call zeroext i1 @ecrobot_is_ENTER_button_pressed() 27.88/20.65 %128 = zext i1 %127 to i8 27.88/20.65 store %128, %tmp___17 27.88/20.65 %129 = load %tmp___17 27.88/20.65 %130 = trunc i8 %129 to i1 27.88/20.65 br %130, %131, %132 27.88/20.65 131: 27.88/20.65 store 2, @TM_mode 27.88/20.65 br %132 27.88/20.65 132: 27.88/20.65 br %133 27.88/20.65 133: 27.88/20.65 Unnamed Call-Instruction = call BasicVoidType @TerminateTask() 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_need_to_run_nxtbg" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.65 store %14, %c2 27.88/20.65 br %19 27.88/20.65 15: 27.88/20.65 %16 = load @__startrek_round 27.88/20.65 store %16, %or3 27.88/20.65 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %18 = zext i1 %17 to i8 27.88/20.65 store %18, %c2 27.88/20.65 br %19 27.88/20.65 19: 27.88/20.65 %20 = load @__startrek_round 27.88/20.65 %21 = zext i8 %20 to i64 27.88/20.65 %22 = getelementptr @_need_to_run_nxtbg_, 0, %21 27.88/20.65 %23 = load %22 27.88/20.65 %24 = trunc i8 %23 to i1 27.88/20.65 %25 = zext i1 %24 to i8 27.88/20.65 store %25, %r1 27.88/20.65 %26 = load %r1 27.88/20.65 %27 = trunc i8 %26 to i1 27.88/20.65 ret %27 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_write_threshold" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i16 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %1 = alloca i16, align 2 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 store %arg, %1 27.88/20.65 %2 = load @__startrek_task 27.88/20.65 %3 = zext i8 %2 to i32 27.88/20.65 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.65 4: 27.88/20.65 %5 = load @__startrek_round 27.88/20.65 store %5, %or3 27.88/20.65 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %7 = zext i1 %6 to i8 27.88/20.65 store %7, %c2 27.88/20.65 br %20 27.88/20.65 8: 27.88/20.65 %9 = load @__startrek_round 27.88/20.65 store %9, %or3 27.88/20.65 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %11 = zext i1 %10 to i8 27.88/20.65 store %11, %c2 27.88/20.65 br %20 27.88/20.65 12: 27.88/20.65 %13 = load @__startrek_round 27.88/20.65 store %13, %or3 27.88/20.65 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %15 = zext i1 %14 to i8 27.88/20.65 store %15, %c2 27.88/20.65 br %20 27.88/20.65 16: 27.88/20.65 %17 = load @__startrek_round 27.88/20.65 store %17, %or3 27.88/20.65 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %19 = zext i1 %18 to i8 27.88/20.65 store %19, %c2 27.88/20.65 br %20 27.88/20.65 20: 27.88/20.65 %21 = load %1 27.88/20.65 %22 = load @__startrek_round 27.88/20.65 %23 = zext i8 %22 to i64 27.88/20.65 %24 = getelementptr @_threshold_, 0, %23 27.88/20.65 store %21, %24 27.88/20.65 ret void 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_threshold" linkageType: INTERNAL returnParam: i16 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i16, align 2 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.65 store %14, %c2 27.88/20.65 br %19 27.88/20.65 15: 27.88/20.65 %16 = load @__startrek_round 27.88/20.65 store %16, %or3 27.88/20.65 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.65 %18 = zext i1 %17 to i8 27.88/20.65 store %18, %c2 27.88/20.65 br %19 27.88/20.65 19: 27.88/20.65 %20 = load @__startrek_round 27.88/20.65 %21 = zext i8 %20 to i64 27.88/20.65 %22 = getelementptr @_threshold_, 0, %21 27.88/20.65 %23 = load %22 27.88/20.65 store %23, %r1 27.88/20.65 %24 = load %r1 27.88/20.65 ret %24 27.88/20.65 27.88/20.65 *BasicFunctionTypename: "__startrek_read_need_to_read" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.65 0: 27.88/20.65 %r1 = alloca i8, align 1 27.88/20.65 %c2 = alloca i8, align 1 27.88/20.65 %or3 = alloca i8, align 1 27.88/20.65 %1 = load @__startrek_task 27.88/20.65 %2 = zext i8 %1 to i32 27.88/20.65 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.65 3: 27.88/20.65 %4 = load @__startrek_round 27.88/20.65 store %4, %or3 27.88/20.65 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.65 %6 = zext i1 %5 to i8 27.88/20.65 store %6, %c2 27.88/20.65 br %19 27.88/20.65 7: 27.88/20.65 %8 = load @__startrek_round 27.88/20.65 store %8, %or3 27.88/20.65 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.65 %10 = zext i1 %9 to i8 27.88/20.65 store %10, %c2 27.88/20.65 br %19 27.88/20.65 11: 27.88/20.65 %12 = load @__startrek_round 27.88/20.65 store %12, %or3 27.88/20.65 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.65 %14 = zext i1 %13 to i8 27.88/20.66 store %14, %c2 27.88/20.66 br %19 27.88/20.66 15: 27.88/20.66 %16 = load @__startrek_round 27.88/20.66 store %16, %or3 27.88/20.66 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.66 %18 = zext i1 %17 to i8 27.88/20.66 store %18, %c2 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load @__startrek_round 27.88/20.66 %21 = zext i8 %20 to i64 27.88/20.66 %22 = getelementptr @_need_to_read_, 0, %21 27.88/20.66 %23 = load %22 27.88/20.66 %24 = trunc i8 %23 to i1 27.88/20.66 %25 = zext i1 %24 to i8 27.88/20.66 store %25, %r1 27.88/20.66 %26 = load %r1 27.88/20.66 %27 = trunc i8 %26 to i1 27.88/20.66 ret %27 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_read_R_state" linkageType: INTERNAL returnParam: i8 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %r1 = alloca i8, align 1 27.88/20.66 %c2 = alloca i8, align 1 27.88/20.66 %or3 = alloca i8, align 1 27.88/20.66 %1 = load @__startrek_task 27.88/20.66 %2 = zext i8 %1 to i32 27.88/20.66 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.66 3: 27.88/20.66 %4 = load @__startrek_round 27.88/20.66 store %4, %or3 27.88/20.66 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.66 %6 = zext i1 %5 to i8 27.88/20.66 store %6, %c2 27.88/20.66 br %19 27.88/20.66 7: 27.88/20.66 %8 = load @__startrek_round 27.88/20.66 store %8, %or3 27.88/20.66 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.66 %10 = zext i1 %9 to i8 27.88/20.66 store %10, %c2 27.88/20.66 br %19 27.88/20.66 11: 27.88/20.66 %12 = load @__startrek_round 27.88/20.66 store %12, %or3 27.88/20.66 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.66 %14 = zext i1 %13 to i8 27.88/20.66 store %14, %c2 27.88/20.66 br %19 27.88/20.66 15: 27.88/20.66 %16 = load @__startrek_round 27.88/20.66 store %16, %or3 27.88/20.66 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.66 %18 = zext i1 %17 to i8 27.88/20.66 store %18, %c2 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load @__startrek_round 27.88/20.66 %21 = zext i8 %20 to i64 27.88/20.66 %22 = getelementptr @_R_state_, 0, %21 27.88/20.66 %23 = load %22 27.88/20.66 store %23, %r1 27.88/20.66 %24 = load %r1 27.88/20.66 ret %24 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_read_input" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %r1 = alloca i8, align 1 27.88/20.66 %c2 = alloca i8, align 1 27.88/20.66 %or3 = alloca i8, align 1 27.88/20.66 %1 = load @__startrek_task 27.88/20.66 %2 = zext i8 %1 to i32 27.88/20.66 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.66 3: 27.88/20.66 %4 = load @__startrek_round 27.88/20.66 store %4, %or3 27.88/20.66 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.66 %6 = zext i1 %5 to i8 27.88/20.66 store %6, %c2 27.88/20.66 br %19 27.88/20.66 7: 27.88/20.66 %8 = load @__startrek_round 27.88/20.66 store %8, %or3 27.88/20.66 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.66 %10 = zext i1 %9 to i8 27.88/20.66 store %10, %c2 27.88/20.66 br %19 27.88/20.66 11: 27.88/20.66 %12 = load @__startrek_round 27.88/20.66 store %12, %or3 27.88/20.66 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.66 %14 = zext i1 %13 to i8 27.88/20.66 store %14, %c2 27.88/20.66 br %19 27.88/20.66 15: 27.88/20.66 %16 = load @__startrek_round 27.88/20.66 store %16, %or3 27.88/20.66 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.66 %18 = zext i1 %17 to i8 27.88/20.66 store %18, %c2 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load @__startrek_round 27.88/20.66 %21 = zext i8 %20 to i64 27.88/20.66 %22 = getelementptr @_input_, 0, %21 27.88/20.66 %23 = load %22 27.88/20.66 %24 = trunc i8 %23 to i1 27.88/20.66 %25 = zext i1 %24 to i8 27.88/20.66 store %25, %r1 27.88/20.66 %26 = load %r1 27.88/20.66 %27 = trunc i8 %26 to i1 27.88/20.66 ret %27 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_read_output" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %r1 = alloca i8, align 1 27.88/20.66 %c2 = alloca i8, align 1 27.88/20.66 %or3 = alloca i8, align 1 27.88/20.66 %1 = load @__startrek_task 27.88/20.66 %2 = zext i8 %1 to i32 27.88/20.66 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.66 3: 27.88/20.66 %4 = load @__startrek_round 27.88/20.66 store %4, %or3 27.88/20.66 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.66 %6 = zext i1 %5 to i8 27.88/20.66 store %6, %c2 27.88/20.66 br %19 27.88/20.66 7: 27.88/20.66 %8 = load @__startrek_round 27.88/20.66 store %8, %or3 27.88/20.66 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.66 %10 = zext i1 %9 to i8 27.88/20.66 store %10, %c2 27.88/20.66 br %19 27.88/20.66 11: 27.88/20.66 %12 = load @__startrek_round 27.88/20.66 store %12, %or3 27.88/20.66 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.66 %14 = zext i1 %13 to i8 27.88/20.66 store %14, %c2 27.88/20.66 br %19 27.88/20.66 15: 27.88/20.66 %16 = load @__startrek_round 27.88/20.66 store %16, %or3 27.88/20.66 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.66 %18 = zext i1 %17 to i8 27.88/20.66 store %18, %c2 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load @__startrek_round 27.88/20.66 %21 = zext i8 %20 to i64 27.88/20.66 %22 = getelementptr @_output_, 0, %21 27.88/20.66 %23 = load %22 27.88/20.66 %24 = trunc i8 %23 to i1 27.88/20.66 %25 = zext i1 %24 to i8 27.88/20.66 store %25, %r1 27.88/20.66 %26 = load %r1 27.88/20.66 %27 = trunc i8 %26 to i1 27.88/20.66 ret %27 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_read_W_state" linkageType: INTERNAL returnParam: i8 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %r1 = alloca i8, align 1 27.88/20.66 %c2 = alloca i8, align 1 27.88/20.66 %or3 = alloca i8, align 1 27.88/20.66 %1 = load @__startrek_task 27.88/20.66 %2 = zext i8 %1 to i32 27.88/20.66 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.66 3: 27.88/20.66 %4 = load @__startrek_round 27.88/20.66 store %4, %or3 27.88/20.66 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.66 %6 = zext i1 %5 to i8 27.88/20.66 store %6, %c2 27.88/20.66 br %19 27.88/20.66 7: 27.88/20.66 %8 = load @__startrek_round 27.88/20.66 store %8, %or3 27.88/20.66 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.66 %10 = zext i1 %9 to i8 27.88/20.66 store %10, %c2 27.88/20.66 br %19 27.88/20.66 11: 27.88/20.66 %12 = load @__startrek_round 27.88/20.66 store %12, %or3 27.88/20.66 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.66 %14 = zext i1 %13 to i8 27.88/20.66 store %14, %c2 27.88/20.66 br %19 27.88/20.66 15: 27.88/20.66 %16 = load @__startrek_round 27.88/20.66 store %16, %or3 27.88/20.66 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.66 %18 = zext i1 %17 to i8 27.88/20.66 store %18, %c2 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load @__startrek_round 27.88/20.66 %21 = zext i8 %20 to i64 27.88/20.66 %22 = getelementptr @_W_state_, 0, %21 27.88/20.66 %23 = load %22 27.88/20.66 store %23, %r1 27.88/20.66 %24 = load %r1 27.88/20.66 ret %24 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_read_T_state" linkageType: INTERNAL returnParam: i8 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %r1 = alloca i8, align 1 27.88/20.66 %c2 = alloca i8, align 1 27.88/20.66 %or3 = alloca i8, align 1 27.88/20.66 %1 = load @__startrek_task 27.88/20.66 %2 = zext i8 %1 to i32 27.88/20.66 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.66 3: 27.88/20.66 %4 = load @__startrek_round 27.88/20.66 store %4, %or3 27.88/20.66 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.66 %6 = zext i1 %5 to i8 27.88/20.66 store %6, %c2 27.88/20.66 br %19 27.88/20.66 7: 27.88/20.66 %8 = load @__startrek_round 27.88/20.66 store %8, %or3 27.88/20.66 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.66 %10 = zext i1 %9 to i8 27.88/20.66 store %10, %c2 27.88/20.66 br %19 27.88/20.66 11: 27.88/20.66 %12 = load @__startrek_round 27.88/20.66 store %12, %or3 27.88/20.66 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.66 %14 = zext i1 %13 to i8 27.88/20.66 store %14, %c2 27.88/20.66 br %19 27.88/20.66 15: 27.88/20.66 %16 = load @__startrek_round 27.88/20.66 store %16, %or3 27.88/20.66 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.66 %18 = zext i1 %17 to i8 27.88/20.66 store %18, %c2 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load @__startrek_round 27.88/20.66 %21 = zext i8 %20 to i64 27.88/20.66 %22 = getelementptr @_T_state_, 0, %21 27.88/20.66 %23 = load %22 27.88/20.66 store %23, %r1 27.88/20.66 %24 = load %r1 27.88/20.66 ret %24 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "Reader" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %color = alloca i16, align 2 27.88/20.66 %tmp = alloca i8, align 1 27.88/20.66 %tmp___0 = alloca i8, align 1 27.88/20.66 %tmp___1 = alloca i8, align 1 27.88/20.66 %tmp___2 = alloca i8, align 1 27.88/20.66 %tmp___3 = alloca i8, align 1 27.88/20.66 %tmp___4 = alloca i8, align 1 27.88/20.66 %tmp___6 = alloca i32, align 4 27.88/20.66 %tmp___7 = alloca i16, align 2 27.88/20.66 %1 = call zeroext i8 @__startrek_read_R_state() 27.88/20.66 store %1, %tmp 27.88/20.66 %2 = load %tmp 27.88/20.66 %3 = zext i8 %2 to i32 27.88/20.66 switch %3, %43 [0, %43 1, %4 2, %11 3, %18] 27.88/20.66 4: 27.88/20.66 %5 = call zeroext i1 @move_motor(i32 0, i32 15, i32 45, i32 1) 27.88/20.66 %6 = zext i1 %5 to i8 27.88/20.66 store %6, %tmp___0 27.88/20.66 %7 = load %tmp___0 27.88/20.66 %8 = trunc i8 %7 to i1 27.88/20.66 br %8, %9, %10 27.88/20.66 9: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_state(i8 zeroext 0) 27.88/20.66 br %10 27.88/20.66 10: 27.88/20.66 br %43 27.88/20.66 11: 27.88/20.66 %12 = call zeroext i1 @move_motor(i32 0, i32 15, i32 0, i32 -1) 27.88/20.66 %13 = zext i1 %12 to i8 27.88/20.66 store %13, %tmp___1 27.88/20.66 %14 = load %tmp___1 27.88/20.66 %15 = trunc i8 %14 to i1 27.88/20.66 br %15, %16, %17 27.88/20.66 16: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_state(i8 zeroext 0) 27.88/20.66 br %17 27.88/20.66 17: 27.88/20.66 br %43 27.88/20.66 18: 27.88/20.66 %19 = call zeroext i8 @ecrobot_get_nxtcolorsensor_mode(i8 zeroext 0) 27.88/20.66 store %19, %tmp___2 27.88/20.66 %20 = load %tmp___2 27.88/20.66 %21 = zext i8 %20 to i32 27.88/20.66 %22 = icmp ne %21 2 27.88/20.66 br %22, %23, %24 27.88/20.66 23: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @ecrobot_set_nxtcolorsensor(i8 zeroext 0, i8 zeroext 2) 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_need_to_run_nxtbg(i1 zeroext 1) 27.88/20.66 br %24 27.88/20.66 24: 27.88/20.66 %25 = call zeroext i8 @ecrobot_get_nxtcolorsensor_mode(i8 zeroext 0) 27.88/20.66 store %25, %tmp___3 27.88/20.66 %26 = load %tmp___3 27.88/20.66 %27 = zext i8 %26 to i32 27.88/20.66 %28 = icmp eq %27 2 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_assert_i0(i1 zeroext %28) 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @bg_nxtcolorsensor(i1 zeroext 0) 27.88/20.66 %29 = call zeroext i8 @ecrobot_get_nxtcolorsensor_light(i8 zeroext 0) 27.88/20.66 store %29, %tmp___4 27.88/20.66 %30 = load %tmp___4 27.88/20.66 %31 = zext i8 %30 to i16 27.88/20.66 store %31, %color 27.88/20.66 %32 = call zeroext i16 @__startrek_read_threshold() 27.88/20.66 store %32, %tmp___7 27.88/20.66 %33 = load %color 27.88/20.66 %34 = zext i16 %33 to i32 27.88/20.66 %35 = load %tmp___7 27.88/20.66 %36 = zext i16 %35 to i32 27.88/20.66 %37 = icmp slt %34 %36 27.88/20.66 br %37, %38, %39 27.88/20.66 38: 27.88/20.66 store 1, %tmp___6 27.88/20.66 br %40 27.88/20.66 39: 27.88/20.66 store 0, %tmp___6 27.88/20.66 br %40 27.88/20.66 40: 27.88/20.66 %41 = load %tmp___6 27.88/20.66 %42 = icmp ne %41 0 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_input(i1 zeroext %42) 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @ecrobot_set_nxtcolorsensor(i8 zeroext 0, i8 zeroext 5) 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_need_to_run_nxtbg(i1 zeroext 1) 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_R_state(i8 zeroext 0) 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_need_to_read(i1 zeroext 0) 27.88/20.66 br %43 27.88/20.66 43: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @TerminateTask() 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_assert_i0" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = alloca i8, align 1 27.88/20.66 %2 = zext i1 %arg to i8 27.88/20.66 store %2, %1 27.88/20.66 %3 = load @__startrek_hyper_period 27.88/20.66 %4 = zext i8 %3 to i32 27.88/20.66 %5 = icmp ne %4 0 27.88/20.66 br %5, %6, %7 27.88/20.66 6: 27.88/20.66 br %38 27.88/20.66 7: 27.88/20.66 %8 = load %1 27.88/20.66 %9 = trunc i8 %8 to i1 27.88/20.66 br %9, %10, %11 27.88/20.66 10: 27.88/20.66 br %38 27.88/20.66 11: 27.88/20.66 %12 = load @__startrek_round 27.88/20.66 %13 = zext i8 %12 to i32 27.88/20.66 %14 = load @__startrek_error_round 27.88/20.66 %15 = zext i8 %14 to i32 27.88/20.66 %16 = icmp slt %13 %15 27.88/20.66 br %16, %17, %19 27.88/20.66 17: 27.88/20.66 %18 = load @__startrek_round 27.88/20.66 store %18, @__startrek_error_round 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load @__startrek_task 27.88/20.66 %21 = zext i8 %20 to i32 27.88/20.66 switch %21, %38 [0, %22 1, %26 2, %30 3, %34] 27.88/20.66 22: 27.88/20.66 %23 = load @__startrek_job 27.88/20.66 %24 = zext i8 %23 to i64 27.88/20.66 %25 = getelementptr @__startrek_Assert_t0_i0, 0, %24 27.88/20.66 store 0, %25 27.88/20.66 br %38 27.88/20.66 26: 27.88/20.66 %27 = load @__startrek_job 27.88/20.66 %28 = zext i8 %27 to i64 27.88/20.66 %29 = getelementptr @__startrek_Assert_t1_i0, 0, %28 27.88/20.66 store 0, %29 27.88/20.66 br %38 27.88/20.66 30: 27.88/20.66 %31 = load @__startrek_job 27.88/20.66 %32 = zext i8 %31 to i64 27.88/20.66 %33 = getelementptr @__startrek_Assert_t2_i0, 0, %32 27.88/20.66 store 0, %33 27.88/20.66 br %38 27.88/20.66 34: 27.88/20.66 %35 = load @__startrek_job 27.88/20.66 %36 = zext i8 %35 to i64 27.88/20.66 %37 = getelementptr @__startrek_Assert_t3_i0, 0, %36 27.88/20.66 store 0, %37 27.88/20.66 br %38 27.88/20.66 38: 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_write_input" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = alloca i8, align 1 27.88/20.66 %c2 = alloca i8, align 1 27.88/20.66 %or3 = alloca i8, align 1 27.88/20.66 %2 = zext i1 %arg to i8 27.88/20.66 store %2, %1 27.88/20.66 %3 = load @__startrek_task 27.88/20.66 %4 = zext i8 %3 to i32 27.88/20.66 switch %4, %21 [0, %5 1, %9 2, %13 3, %17] 27.88/20.66 5: 27.88/20.66 %6 = load @__startrek_round 27.88/20.66 store %6, %or3 27.88/20.66 %7 = call zeroext i1 @__startrek_cs_t0() 27.88/20.66 %8 = zext i1 %7 to i8 27.88/20.66 store %8, %c2 27.88/20.66 br %21 27.88/20.66 9: 27.88/20.66 %10 = load @__startrek_round 27.88/20.66 store %10, %or3 27.88/20.66 %11 = call zeroext i1 @__startrek_cs_t1() 27.88/20.66 %12 = zext i1 %11 to i8 27.88/20.66 store %12, %c2 27.88/20.66 br %21 27.88/20.66 13: 27.88/20.66 %14 = load @__startrek_round 27.88/20.66 store %14, %or3 27.88/20.66 %15 = call zeroext i1 @__startrek_cs_t2() 27.88/20.66 %16 = zext i1 %15 to i8 27.88/20.66 store %16, %c2 27.88/20.66 br %21 27.88/20.66 17: 27.88/20.66 %18 = load @__startrek_round 27.88/20.66 store %18, %or3 27.88/20.66 %19 = call zeroext i1 @__startrek_cs_t3() 27.88/20.66 %20 = zext i1 %19 to i8 27.88/20.66 store %20, %c2 27.88/20.66 br %21 27.88/20.66 21: 27.88/20.66 %22 = load %1 27.88/20.66 %23 = trunc i8 %22 to i1 27.88/20.66 %24 = load @__startrek_round 27.88/20.66 %25 = zext i8 %24 to i64 27.88/20.66 %26 = getelementptr @_input_, 0, %25 27.88/20.66 %27 = zext i1 %23 to i8 27.88/20.66 store %27, %26 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "Writer" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %sign = alloca i32, align 4 27.88/20.66 %tmp___0 = alloca i8, align 1 27.88/20.66 %tmp___1 = alloca i8, align 1 27.88/20.66 %tmp___2 = alloca i32, align 4 27.88/20.66 %tmp___3 = alloca i8, align 1 27.88/20.66 %tmp___4 = alloca i32, align 4 27.88/20.66 %tmp___5 = alloca i8, align 1 27.88/20.66 %1 = call zeroext i1 @__startrek_read_output() 27.88/20.66 %2 = zext i1 %1 to i8 27.88/20.66 store %2, %tmp___0 27.88/20.66 %3 = load %tmp___0 27.88/20.66 %4 = trunc i8 %3 to i1 27.88/20.66 %5 = zext i1 %4 to i32 27.88/20.66 %6 = icmp eq %5 1 27.88/20.66 br %6, %7, %8 27.88/20.66 7: 27.88/20.66 store 1, %sign 27.88/20.66 br %9 27.88/20.66 8: 27.88/20.66 store -1, %sign 27.88/20.66 br %9 27.88/20.66 9: 27.88/20.66 %10 = call zeroext i8 @__startrek_read_W_state() 27.88/20.66 store %10, %tmp___1 27.88/20.66 %11 = load %tmp___1 27.88/20.66 %12 = zext i8 %11 to i32 27.88/20.66 switch %12, %35 [0, %35 1, %13] 27.88/20.66 13: 27.88/20.66 %14 = load %sign 27.88/20.66 %15 = mul %14 180 27.88/20.66 %16 = load %sign 27.88/20.66 %17 = call zeroext i1 @move_motor(i32 1, i32 30, i32 %15, i32 %16) 27.88/20.66 %18 = zext i1 %17 to i8 27.88/20.66 store %18, %tmp___5 27.88/20.66 %19 = load %tmp___5 27.88/20.66 %20 = trunc i8 %19 to i1 27.88/20.66 br %20, %21, %34 27.88/20.66 21: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_W_state(i8 zeroext 0) 27.88/20.66 %22 = call i32 @nxt_motor_get_count(i32 1) 27.88/20.66 store %22, %tmp___2 27.88/20.66 %23 = load %tmp___2 27.88/20.66 %24 = srem %23 180 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @nxt_motor_set_count(i32 1, i32 %24) 27.88/20.66 %25 = call zeroext i1 @__startrek_read_input() 27.88/20.66 %26 = zext i1 %25 to i8 27.88/20.66 store %26, %tmp___3 27.88/20.66 %27 = load %tmp___3 27.88/20.66 %28 = trunc i8 %27 to i1 27.88/20.66 br %28, %29, %30 27.88/20.66 29: 27.88/20.66 store 0, %tmp___4 27.88/20.66 br %31 27.88/20.66 30: 27.88/20.66 store 1, %tmp___4 27.88/20.66 br %31 27.88/20.66 31: 27.88/20.66 %32 = load %tmp___4 27.88/20.66 %33 = icmp ne %32 0 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_input(i1 zeroext %33) 27.88/20.66 br %34 27.88/20.66 34: 27.88/20.66 br %35 27.88/20.66 35: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @TerminateTask() 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "TapeMover" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %tmp___0 = alloca i8, align 1 27.88/20.66 %tmp___1 = alloca i8, align 1 27.88/20.66 %tmp___2 = alloca i32, align 4 27.88/20.66 %tmp___3 = alloca i8, align 1 27.88/20.66 %1 = call zeroext i1 @__startrek_read_dir() 27.88/20.66 %2 = zext i1 %1 to i8 27.88/20.66 store %2, %tmp___0 27.88/20.66 %3 = load %tmp___0 27.88/20.66 %4 = trunc i8 %3 to i1 27.88/20.66 %5 = zext i1 %4 to i32 27.88/20.66 %6 = icmp eq %5 0 27.88/20.66 br %6, %7, %8 27.88/20.66 7: 27.88/20.66 store 1, @sign 27.88/20.66 br %9 27.88/20.66 8: 27.88/20.66 store -1, @sign 27.88/20.66 br %9 27.88/20.66 9: 27.88/20.66 %10 = call zeroext i8 @__startrek_read_T_state() 27.88/20.66 store %10, %tmp___1 27.88/20.66 %11 = load %tmp___1 27.88/20.66 %12 = zext i8 %11 to i32 27.88/20.66 switch %12, %27 [0, %13 2, %13 1, %14] 27.88/20.66 13: 27.88/20.66 br %27 27.88/20.66 14: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_need_to_read(i1 zeroext 1) 27.88/20.66 %15 = load @sign 27.88/20.66 %16 = mul %15 1800 27.88/20.66 %17 = load @sign 27.88/20.66 %18 = call zeroext i1 @move_motor(i32 2, i32 100, i32 %16, i32 %17) 27.88/20.66 %19 = zext i1 %18 to i8 27.88/20.66 store %19, %tmp___3 27.88/20.66 %20 = load %tmp___3 27.88/20.66 %21 = trunc i8 %20 to i1 27.88/20.66 br %21, %22, %26 27.88/20.66 22: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write_T_state(i8 zeroext 2) 27.88/20.66 %23 = call i32 @nxt_motor_get_count(i32 2) 27.88/20.66 store %23, %tmp___2 27.88/20.66 %24 = load %tmp___2 27.88/20.66 %25 = srem %24 1800 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @nxt_motor_set_count(i32 2, i32 %25) 27.88/20.66 br %26 27.88/20.66 26: 27.88/20.66 br %27 27.88/20.66 27: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @TerminateTask() 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_read_dir" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %r1 = alloca i8, align 1 27.88/20.66 %c2 = alloca i8, align 1 27.88/20.66 %or3 = alloca i8, align 1 27.88/20.66 %1 = load @__startrek_task 27.88/20.66 %2 = zext i8 %1 to i32 27.88/20.66 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.66 3: 27.88/20.66 %4 = load @__startrek_round 27.88/20.66 store %4, %or3 27.88/20.66 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.66 %6 = zext i1 %5 to i8 27.88/20.66 store %6, %c2 27.88/20.66 br %19 27.88/20.66 7: 27.88/20.66 %8 = load @__startrek_round 27.88/20.66 store %8, %or3 27.88/20.66 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.66 %10 = zext i1 %9 to i8 27.88/20.66 store %10, %c2 27.88/20.66 br %19 27.88/20.66 11: 27.88/20.66 %12 = load @__startrek_round 27.88/20.66 store %12, %or3 27.88/20.66 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.66 %14 = zext i1 %13 to i8 27.88/20.66 store %14, %c2 27.88/20.66 br %19 27.88/20.66 15: 27.88/20.66 %16 = load @__startrek_round 27.88/20.66 store %16, %or3 27.88/20.66 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.66 %18 = zext i1 %17 to i8 27.88/20.66 store %18, %c2 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load @__startrek_round 27.88/20.66 %21 = zext i8 %20 to i64 27.88/20.66 %22 = getelementptr @_dir_, 0, %21 27.88/20.66 %23 = load %22 27.88/20.66 %24 = trunc i8 %23 to i1 27.88/20.66 %25 = zext i1 %24 to i8 27.88/20.66 store %25, %r1 27.88/20.66 %26 = load %r1 27.88/20.66 %27 = trunc i8 %26 to i1 27.88/20.66 ret %27 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "cil_keeperController" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = call zeroext i1 @__startrek_entry_pt_Controller() 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_entry_pt_Controller" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = alloca i1, align 1 27.88/20.66 %sp = alloca i8, align 1 27.88/20.66 %tmp = alloca i8, align 1 27.88/20.66 %tmp___0 = alloca i8, align 1 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %2 = call signext i8 @__startrek_read___startrek_current_priority() 27.88/20.66 store %2, %tmp 27.88/20.66 %3 = load %tmp 27.88/20.66 store %3, %sp 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %4 = load @__startrek_base_priority_Controller 27.88/20.66 %5 = sext i8 %4 to i32 27.88/20.66 %6 = load %sp 27.88/20.66 %7 = sext i8 %6 to i32 27.88/20.66 %8 = icmp sle %5 %7 27.88/20.66 br %8, %9, %10 27.88/20.66 9: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext 0) 27.88/20.66 store 0, %1 27.88/20.66 br %19 27.88/20.66 10: 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %11 = load @__startrek_base_priority_Controller 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_current_priority(i8 signext %11) 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 store 0, @__startrek_pi_locks_held 27.88/20.66 %12 = load @__startrek_base_priority_Controller 27.88/20.66 store %12, @__startrek_task_base_priority 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @Controller() 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %13 = call signext i8 @__startrek_read___startrek_job_count_Controller() 27.88/20.66 store %13, %tmp___0 27.88/20.66 %14 = load %tmp___0 27.88/20.66 %15 = sext i8 %14 to i32 27.88/20.66 %16 = add %15 1 27.88/20.66 %17 = trunc i32 %16 to i8 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_job_count_Controller(i8 signext %17) 27.88/20.66 %18 = load %sp 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_current_priority(i8 signext %18) 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 store 1, %1 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load %1 27.88/20.66 ret %20 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "cil_keeperTapeMover" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = call zeroext i1 @__startrek_entry_pt_TapeMover() 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_entry_pt_TapeMover" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = alloca i1, align 1 27.88/20.66 %sp = alloca i8, align 1 27.88/20.66 %tmp = alloca i8, align 1 27.88/20.66 %tmp___0 = alloca i8, align 1 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %2 = call signext i8 @__startrek_read___startrek_current_priority() 27.88/20.66 store %2, %tmp 27.88/20.66 %3 = load %tmp 27.88/20.66 store %3, %sp 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %4 = load @__startrek_base_priority_TapeMover 27.88/20.66 %5 = sext i8 %4 to i32 27.88/20.66 %6 = load %sp 27.88/20.66 %7 = sext i8 %6 to i32 27.88/20.66 %8 = icmp sle %5 %7 27.88/20.66 br %8, %9, %10 27.88/20.66 9: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext 0) 27.88/20.66 store 0, %1 27.88/20.66 br %19 27.88/20.66 10: 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %11 = load @__startrek_base_priority_TapeMover 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_current_priority(i8 signext %11) 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 store 0, @__startrek_pi_locks_held 27.88/20.66 %12 = load @__startrek_base_priority_TapeMover 27.88/20.66 store %12, @__startrek_task_base_priority 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @TapeMover() 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %13 = call signext i8 @__startrek_read___startrek_job_count_TapeMover() 27.88/20.66 store %13, %tmp___0 27.88/20.66 %14 = load %tmp___0 27.88/20.66 %15 = sext i8 %14 to i32 27.88/20.66 %16 = add %15 1 27.88/20.66 %17 = trunc i32 %16 to i8 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_job_count_TapeMover(i8 signext %17) 27.88/20.66 %18 = load %sp 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_current_priority(i8 signext %18) 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 store 1, %1 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load %1 27.88/20.66 ret %20 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "cil_keeperReader" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = call zeroext i1 @__startrek_entry_pt_Reader() 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_entry_pt_Reader" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = alloca i1, align 1 27.88/20.66 %sp = alloca i8, align 1 27.88/20.66 %tmp = alloca i8, align 1 27.88/20.66 %tmp___0 = alloca i8, align 1 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %2 = call signext i8 @__startrek_read___startrek_current_priority() 27.88/20.66 store %2, %tmp 27.88/20.66 %3 = load %tmp 27.88/20.66 store %3, %sp 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %4 = load @__startrek_base_priority_Reader 27.88/20.66 %5 = sext i8 %4 to i32 27.88/20.66 %6 = load %sp 27.88/20.66 %7 = sext i8 %6 to i32 27.88/20.66 %8 = icmp sle %5 %7 27.88/20.66 br %8, %9, %10 27.88/20.66 9: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext 0) 27.88/20.66 store 0, %1 27.88/20.66 br %19 27.88/20.66 10: 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %11 = load @__startrek_base_priority_Reader 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_current_priority(i8 signext %11) 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 store 0, @__startrek_pi_locks_held 27.88/20.66 %12 = load @__startrek_base_priority_Reader 27.88/20.66 store %12, @__startrek_task_base_priority 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @Reader() 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %13 = call signext i8 @__startrek_read___startrek_job_count_Reader() 27.88/20.66 store %13, %tmp___0 27.88/20.66 %14 = load %tmp___0 27.88/20.66 %15 = sext i8 %14 to i32 27.88/20.66 %16 = add %15 1 27.88/20.66 %17 = trunc i32 %16 to i8 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_job_count_Reader(i8 signext %17) 27.88/20.66 %18 = load %sp 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_current_priority(i8 signext %18) 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 store 1, %1 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load %1 27.88/20.66 ret %20 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "cil_keeperWriter" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = call zeroext i1 @__startrek_entry_pt_Writer() 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_entry_pt_Writer" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = alloca i1, align 1 27.88/20.66 %sp = alloca i8, align 1 27.88/20.66 %tmp = alloca i8, align 1 27.88/20.66 %tmp___0 = alloca i8, align 1 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %2 = call signext i8 @__startrek_read___startrek_current_priority() 27.88/20.66 store %2, %tmp 27.88/20.66 %3 = load %tmp 27.88/20.66 store %3, %sp 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %4 = load @__startrek_base_priority_Writer 27.88/20.66 %5 = sext i8 %4 to i32 27.88/20.66 %6 = load %sp 27.88/20.66 %7 = sext i8 %6 to i32 27.88/20.66 %8 = icmp sle %5 %7 27.88/20.66 br %8, %9, %10 27.88/20.66 9: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext 0) 27.88/20.66 store 0, %1 27.88/20.66 br %19 27.88/20.66 10: 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %11 = load @__startrek_base_priority_Writer 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_current_priority(i8 signext %11) 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 store 0, @__startrek_pi_locks_held 27.88/20.66 %12 = load @__startrek_base_priority_Writer 27.88/20.66 store %12, @__startrek_task_base_priority 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @Writer() 27.88/20.66 store 1, @__startrek_lock 27.88/20.66 %13 = call signext i8 @__startrek_read___startrek_job_count_Writer() 27.88/20.66 store %13, %tmp___0 27.88/20.66 %14 = load %tmp___0 27.88/20.66 %15 = sext i8 %14 to i32 27.88/20.66 %16 = add %15 1 27.88/20.66 %17 = trunc i32 %16 to i8 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_job_count_Writer(i8 signext %17) 27.88/20.66 %18 = load %sp 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_write___startrek_current_priority(i8 signext %18) 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 store 1, %1 27.88/20.66 br %19 27.88/20.66 19: 27.88/20.66 %20 = load %1 27.88/20.66 ret %20 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__main" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %c1 = alloca i8, align 1 27.88/20.66 store 28, @__startrek_error_round 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_schedule_jobs() 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_init_globals() 27.88/20.66 store 0, @__startrek_task 27.88/20.66 store 0, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %1 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@761759df 27.88/20.66 store %1, @__startrek_round 27.88/20.66 %2 = load @__startrek_round 27.88/20.66 %3 = zext i8 %2 to i32 27.88/20.66 %4 = load @__startrek_error_round 27.88/20.66 %5 = zext i8 %4 to i32 27.88/20.66 %6 = icmp slt %3 %5 27.88/20.66 br %6, %7, %16 27.88/20.66 7: 27.88/20.66 %8 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7be71713 27.88/20.66 store %8, @__startrek_job_end 27.88/20.66 %9 = call zeroext i1 @__startrek_entry_pt_Controller() 27.88/20.66 %10 = zext i1 %9 to i8 27.88/20.66 store %10, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %11 = load @__startrek_round 27.88/20.66 %12 = zext i8 %11 to i32 27.88/20.66 %13 = load @__startrek_job_end 27.88/20.66 %14 = zext i8 %13 to i32 27.88/20.66 %15 = icmp eq %12 %14 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %15) 27.88/20.66 br %16 27.88/20.66 16: 27.88/20.66 store 1, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %17 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@cc3a128 27.88/20.66 store %17, @__startrek_round 27.88/20.66 %18 = load @__startrek_round 27.88/20.66 %19 = zext i8 %18 to i32 27.88/20.66 %20 = load @__startrek_error_round 27.88/20.66 %21 = zext i8 %20 to i32 27.88/20.66 %22 = icmp slt %19 %21 27.88/20.66 br %22, %23, %32 27.88/20.66 23: 27.88/20.66 %24 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@345aa2b0 27.88/20.66 store %24, @__startrek_job_end 27.88/20.66 %25 = call zeroext i1 @__startrek_entry_pt_Controller() 27.88/20.66 %26 = zext i1 %25 to i8 27.88/20.66 store %26, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %27 = load @__startrek_round 27.88/20.66 %28 = zext i8 %27 to i32 27.88/20.66 %29 = load @__startrek_job_end 27.88/20.66 %30 = zext i8 %29 to i32 27.88/20.66 %31 = icmp eq %28 %30 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %31) 27.88/20.66 br %32 27.88/20.66 32: 27.88/20.66 store 2, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %33 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@78cfdc45 27.88/20.66 store %33, @__startrek_round 27.88/20.66 %34 = load @__startrek_round 27.88/20.66 %35 = zext i8 %34 to i32 27.88/20.66 %36 = load @__startrek_error_round 27.88/20.66 %37 = zext i8 %36 to i32 27.88/20.66 %38 = icmp slt %35 %37 27.88/20.66 br %38, %39, %48 27.88/20.66 39: 27.88/20.66 %40 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bd303c0 27.88/20.66 store %40, @__startrek_job_end 27.88/20.66 %41 = call zeroext i1 @__startrek_entry_pt_Controller() 27.88/20.66 %42 = zext i1 %41 to i8 27.88/20.66 store %42, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %43 = load @__startrek_round 27.88/20.66 %44 = zext i8 %43 to i32 27.88/20.66 %45 = load @__startrek_job_end 27.88/20.66 %46 = zext i8 %45 to i32 27.88/20.66 %47 = icmp eq %44 %46 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %47) 27.88/20.66 br %48 27.88/20.66 48: 27.88/20.66 store 3, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %49 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2a082f73 27.88/20.66 store %49, @__startrek_round 27.88/20.66 %50 = load @__startrek_round 27.88/20.66 %51 = zext i8 %50 to i32 27.88/20.66 %52 = load @__startrek_error_round 27.88/20.66 %53 = zext i8 %52 to i32 27.88/20.66 %54 = icmp slt %51 %53 27.88/20.66 br %54, %55, %64 27.88/20.66 55: 27.88/20.66 %56 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4ba647a0 27.88/20.66 store %56, @__startrek_job_end 27.88/20.66 %57 = call zeroext i1 @__startrek_entry_pt_Controller() 27.88/20.66 %58 = zext i1 %57 to i8 27.88/20.66 store %58, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %59 = load @__startrek_round 27.88/20.66 %60 = zext i8 %59 to i32 27.88/20.66 %61 = load @__startrek_job_end 27.88/20.66 %62 = zext i8 %61 to i32 27.88/20.66 %63 = icmp eq %60 %62 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %63) 27.88/20.66 br %64 27.88/20.66 64: 27.88/20.66 store 1, @__startrek_task 27.88/20.66 store 0, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %65 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4d8d8765 27.88/20.66 store %65, @__startrek_round 27.88/20.66 %66 = load @__startrek_round 27.88/20.66 %67 = zext i8 %66 to i32 27.88/20.66 %68 = load @__startrek_error_round 27.88/20.66 %69 = zext i8 %68 to i32 27.88/20.66 %70 = icmp slt %67 %69 27.88/20.66 br %70, %71, %80 27.88/20.66 71: 27.88/20.66 %72 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6ee35017 27.88/20.66 store %72, @__startrek_job_end 27.88/20.66 %73 = call zeroext i1 @__startrek_entry_pt_TapeMover() 27.88/20.66 %74 = zext i1 %73 to i8 27.88/20.66 store %74, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %75 = load @__startrek_round 27.88/20.66 %76 = zext i8 %75 to i32 27.88/20.66 %77 = load @__startrek_job_end 27.88/20.66 %78 = zext i8 %77 to i32 27.88/20.66 %79 = icmp eq %76 %78 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %79) 27.88/20.66 br %80 27.88/20.66 80: 27.88/20.66 store 1, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %81 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5fb990f 27.88/20.66 store %81, @__startrek_round 27.88/20.66 %82 = load @__startrek_round 27.88/20.66 %83 = zext i8 %82 to i32 27.88/20.66 %84 = load @__startrek_error_round 27.88/20.66 %85 = zext i8 %84 to i32 27.88/20.66 %86 = icmp slt %83 %85 27.88/20.66 br %86, %87, %96 27.88/20.66 87: 27.88/20.66 %88 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7c994557 27.88/20.66 store %88, @__startrek_job_end 27.88/20.66 %89 = call zeroext i1 @__startrek_entry_pt_TapeMover() 27.88/20.66 %90 = zext i1 %89 to i8 27.88/20.66 store %90, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %91 = load @__startrek_round 27.88/20.66 %92 = zext i8 %91 to i32 27.88/20.66 %93 = load @__startrek_job_end 27.88/20.66 %94 = zext i8 %93 to i32 27.88/20.66 %95 = icmp eq %92 %94 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %95) 27.88/20.66 br %96 27.88/20.66 96: 27.88/20.66 store 2, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %97 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5d8e430e 27.88/20.66 store %97, @__startrek_round 27.88/20.66 %98 = load @__startrek_round 27.88/20.66 %99 = zext i8 %98 to i32 27.88/20.66 %100 = load @__startrek_error_round 27.88/20.66 %101 = zext i8 %100 to i32 27.88/20.66 %102 = icmp slt %99 %101 27.88/20.66 br %102, %103, %112 27.88/20.66 103: 27.88/20.66 %104 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2999c340 27.88/20.66 store %104, @__startrek_job_end 27.88/20.66 %105 = call zeroext i1 @__startrek_entry_pt_TapeMover() 27.88/20.66 %106 = zext i1 %105 to i8 27.88/20.66 store %106, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %107 = load @__startrek_round 27.88/20.66 %108 = zext i8 %107 to i32 27.88/20.66 %109 = load @__startrek_job_end 27.88/20.66 %110 = zext i8 %109 to i32 27.88/20.66 %111 = icmp eq %108 %110 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %111) 27.88/20.66 br %112 27.88/20.66 112: 27.88/20.66 store 3, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %113 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7073149d 27.88/20.66 store %113, @__startrek_round 27.88/20.66 %114 = load @__startrek_round 27.88/20.66 %115 = zext i8 %114 to i32 27.88/20.66 %116 = load @__startrek_error_round 27.88/20.66 %117 = zext i8 %116 to i32 27.88/20.66 %118 = icmp slt %115 %117 27.88/20.66 br %118, %119, %128 27.88/20.66 119: 27.88/20.66 %120 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46f64439 27.88/20.66 store %120, @__startrek_job_end 27.88/20.66 %121 = call zeroext i1 @__startrek_entry_pt_TapeMover() 27.88/20.66 %122 = zext i1 %121 to i8 27.88/20.66 store %122, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %123 = load @__startrek_round 27.88/20.66 %124 = zext i8 %123 to i32 27.88/20.66 %125 = load @__startrek_job_end 27.88/20.66 %126 = zext i8 %125 to i32 27.88/20.66 %127 = icmp eq %124 %126 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %127) 27.88/20.66 br %128 27.88/20.66 128: 27.88/20.66 store 4, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %129 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@694ff9da 27.88/20.66 store %129, @__startrek_round 27.88/20.66 %130 = load @__startrek_round 27.88/20.66 %131 = zext i8 %130 to i32 27.88/20.66 %132 = load @__startrek_error_round 27.88/20.66 %133 = zext i8 %132 to i32 27.88/20.66 %134 = icmp slt %131 %133 27.88/20.66 br %134, %135, %144 27.88/20.66 135: 27.88/20.66 %136 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@e2ba470 27.88/20.66 store %136, @__startrek_job_end 27.88/20.66 %137 = call zeroext i1 @__startrek_entry_pt_TapeMover() 27.88/20.66 %138 = zext i1 %137 to i8 27.88/20.66 store %138, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %139 = load @__startrek_round 27.88/20.66 %140 = zext i8 %139 to i32 27.88/20.66 %141 = load @__startrek_job_end 27.88/20.66 %142 = zext i8 %141 to i32 27.88/20.66 %143 = icmp eq %140 %142 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %143) 27.88/20.66 br %144 27.88/20.66 144: 27.88/20.66 store 5, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %145 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@66948ed4 27.88/20.66 store %145, @__startrek_round 27.88/20.66 %146 = load @__startrek_round 27.88/20.66 %147 = zext i8 %146 to i32 27.88/20.66 %148 = load @__startrek_error_round 27.88/20.66 %149 = zext i8 %148 to i32 27.88/20.66 %150 = icmp slt %147 %149 27.88/20.66 br %150, %151, %160 27.88/20.66 151: 27.88/20.66 %152 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1237d9b3 27.88/20.66 store %152, @__startrek_job_end 27.88/20.66 %153 = call zeroext i1 @__startrek_entry_pt_TapeMover() 27.88/20.66 %154 = zext i1 %153 to i8 27.88/20.66 store %154, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %155 = load @__startrek_round 27.88/20.66 %156 = zext i8 %155 to i32 27.88/20.66 %157 = load @__startrek_job_end 27.88/20.66 %158 = zext i8 %157 to i32 27.88/20.66 %159 = icmp eq %156 %158 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %159) 27.88/20.66 br %160 27.88/20.66 160: 27.88/20.66 store 6, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %161 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4207306 27.88/20.66 store %161, @__startrek_round 27.88/20.66 %162 = load @__startrek_round 27.88/20.66 %163 = zext i8 %162 to i32 27.88/20.66 %164 = load @__startrek_error_round 27.88/20.66 %165 = zext i8 %164 to i32 27.88/20.66 %166 = icmp slt %163 %165 27.88/20.66 br %166, %167, %176 27.88/20.66 167: 27.88/20.66 %168 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@577b4fd6 27.88/20.66 store %168, @__startrek_job_end 27.88/20.66 %169 = call zeroext i1 @__startrek_entry_pt_TapeMover() 27.88/20.66 %170 = zext i1 %169 to i8 27.88/20.66 store %170, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %171 = load @__startrek_round 27.88/20.66 %172 = zext i8 %171 to i32 27.88/20.66 %173 = load @__startrek_job_end 27.88/20.66 %174 = zext i8 %173 to i32 27.88/20.66 %175 = icmp eq %172 %174 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %175) 27.88/20.66 br %176 27.88/20.66 176: 27.88/20.66 store 7, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %177 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@155b99c3 27.88/20.66 store %177, @__startrek_round 27.88/20.66 %178 = load @__startrek_round 27.88/20.66 %179 = zext i8 %178 to i32 27.88/20.66 %180 = load @__startrek_error_round 27.88/20.66 %181 = zext i8 %180 to i32 27.88/20.66 %182 = icmp slt %179 %181 27.88/20.66 br %182, %183, %192 27.88/20.66 183: 27.88/20.66 %184 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@390d209a 27.88/20.66 store %184, @__startrek_job_end 27.88/20.66 %185 = call zeroext i1 @__startrek_entry_pt_TapeMover() 27.88/20.66 %186 = zext i1 %185 to i8 27.88/20.66 store %186, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %187 = load @__startrek_round 27.88/20.66 %188 = zext i8 %187 to i32 27.88/20.66 %189 = load @__startrek_job_end 27.88/20.66 %190 = zext i8 %189 to i32 27.88/20.66 %191 = icmp eq %188 %190 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %191) 27.88/20.66 br %192 27.88/20.66 192: 27.88/20.66 store 2, @__startrek_task 27.88/20.66 store 0, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %193 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3e32ccfe 27.88/20.66 store %193, @__startrek_round 27.88/20.66 %194 = load @__startrek_round 27.88/20.66 %195 = zext i8 %194 to i32 27.88/20.66 %196 = load @__startrek_error_round 27.88/20.66 %197 = zext i8 %196 to i32 27.88/20.66 %198 = icmp slt %195 %197 27.88/20.66 br %198, %199, %208 27.88/20.66 199: 27.88/20.66 %200 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@333a3111 27.88/20.66 store %200, @__startrek_job_end 27.88/20.66 %201 = call zeroext i1 @__startrek_entry_pt_Reader() 27.88/20.66 %202 = zext i1 %201 to i8 27.88/20.66 store %202, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %203 = load @__startrek_round 27.88/20.66 %204 = zext i8 %203 to i32 27.88/20.66 %205 = load @__startrek_job_end 27.88/20.66 %206 = zext i8 %205 to i32 27.88/20.66 %207 = icmp eq %204 %206 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %207) 27.88/20.66 br %208 27.88/20.66 208: 27.88/20.66 store 1, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %209 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7a662334 27.88/20.66 store %209, @__startrek_round 27.88/20.66 %210 = load @__startrek_round 27.88/20.66 %211 = zext i8 %210 to i32 27.88/20.66 %212 = load @__startrek_error_round 27.88/20.66 %213 = zext i8 %212 to i32 27.88/20.66 %214 = icmp slt %211 %213 27.88/20.66 br %214, %215, %224 27.88/20.66 215: 27.88/20.66 %216 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2abfc512 27.88/20.66 store %216, @__startrek_job_end 27.88/20.66 %217 = call zeroext i1 @__startrek_entry_pt_Reader() 27.88/20.66 %218 = zext i1 %217 to i8 27.88/20.66 store %218, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %219 = load @__startrek_round 27.88/20.66 %220 = zext i8 %219 to i32 27.88/20.66 %221 = load @__startrek_job_end 27.88/20.66 %222 = zext i8 %221 to i32 27.88/20.66 %223 = icmp eq %220 %222 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %223) 27.88/20.66 br %224 27.88/20.66 224: 27.88/20.66 store 2, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %225 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@242a987 27.88/20.66 store %225, @__startrek_round 27.88/20.66 %226 = load @__startrek_round 27.88/20.66 %227 = zext i8 %226 to i32 27.88/20.66 %228 = load @__startrek_error_round 27.88/20.66 %229 = zext i8 %228 to i32 27.88/20.66 %230 = icmp slt %227 %229 27.88/20.66 br %230, %231, %240 27.88/20.66 231: 27.88/20.66 %232 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6012b267 27.88/20.66 store %232, @__startrek_job_end 27.88/20.66 %233 = call zeroext i1 @__startrek_entry_pt_Reader() 27.88/20.66 %234 = zext i1 %233 to i8 27.88/20.66 store %234, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %235 = load @__startrek_round 27.88/20.66 %236 = zext i8 %235 to i32 27.88/20.66 %237 = load @__startrek_job_end 27.88/20.66 %238 = zext i8 %237 to i32 27.88/20.66 %239 = icmp eq %236 %238 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %239) 27.88/20.66 br %240 27.88/20.66 240: 27.88/20.66 store 3, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %241 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ba642d2 27.88/20.66 store %241, @__startrek_round 27.88/20.66 %242 = load @__startrek_round 27.88/20.66 %243 = zext i8 %242 to i32 27.88/20.66 %244 = load @__startrek_error_round 27.88/20.66 %245 = zext i8 %244 to i32 27.88/20.66 %246 = icmp slt %243 %245 27.88/20.66 br %246, %247, %256 27.88/20.66 247: 27.88/20.66 %248 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7fe595e1 27.88/20.66 store %248, @__startrek_job_end 27.88/20.66 %249 = call zeroext i1 @__startrek_entry_pt_Reader() 27.88/20.66 %250 = zext i1 %249 to i8 27.88/20.66 store %250, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %251 = load @__startrek_round 27.88/20.66 %252 = zext i8 %251 to i32 27.88/20.66 %253 = load @__startrek_job_end 27.88/20.66 %254 = zext i8 %253 to i32 27.88/20.66 %255 = icmp eq %252 %254 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %255) 27.88/20.66 br %256 27.88/20.66 256: 27.88/20.66 store 4, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %257 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@687c050b 27.88/20.66 store %257, @__startrek_round 27.88/20.66 %258 = load @__startrek_round 27.88/20.66 %259 = zext i8 %258 to i32 27.88/20.66 %260 = load @__startrek_error_round 27.88/20.66 %261 = zext i8 %260 to i32 27.88/20.66 %262 = icmp slt %259 %261 27.88/20.66 br %262, %263, %272 27.88/20.66 263: 27.88/20.66 %264 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1d0813e9 27.88/20.66 store %264, @__startrek_job_end 27.88/20.66 %265 = call zeroext i1 @__startrek_entry_pt_Reader() 27.88/20.66 %266 = zext i1 %265 to i8 27.88/20.66 store %266, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %267 = load @__startrek_round 27.88/20.66 %268 = zext i8 %267 to i32 27.88/20.66 %269 = load @__startrek_job_end 27.88/20.66 %270 = zext i8 %269 to i32 27.88/20.66 %271 = icmp eq %268 %270 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %271) 27.88/20.66 br %272 27.88/20.66 272: 27.88/20.66 store 5, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %273 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4217248 27.88/20.66 store %273, @__startrek_round 27.88/20.66 %274 = load @__startrek_round 27.88/20.66 %275 = zext i8 %274 to i32 27.88/20.66 %276 = load @__startrek_error_round 27.88/20.66 %277 = zext i8 %276 to i32 27.88/20.66 %278 = icmp slt %275 %277 27.88/20.66 br %278, %279, %288 27.88/20.66 279: 27.88/20.66 %280 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5738b5b0 27.88/20.66 store %280, @__startrek_job_end 27.88/20.66 %281 = call zeroext i1 @__startrek_entry_pt_Reader() 27.88/20.66 %282 = zext i1 %281 to i8 27.88/20.66 store %282, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %283 = load @__startrek_round 27.88/20.66 %284 = zext i8 %283 to i32 27.88/20.66 %285 = load @__startrek_job_end 27.88/20.66 %286 = zext i8 %285 to i32 27.88/20.66 %287 = icmp eq %284 %286 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %287) 27.88/20.66 br %288 27.88/20.66 288: 27.88/20.66 store 6, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %289 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5f64a601 27.88/20.66 store %289, @__startrek_round 27.88/20.66 %290 = load @__startrek_round 27.88/20.66 %291 = zext i8 %290 to i32 27.88/20.66 %292 = load @__startrek_error_round 27.88/20.66 %293 = zext i8 %292 to i32 27.88/20.66 %294 = icmp slt %291 %293 27.88/20.66 br %294, %295, %304 27.88/20.66 295: 27.88/20.66 %296 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2ae715f 27.88/20.66 store %296, @__startrek_job_end 27.88/20.66 %297 = call zeroext i1 @__startrek_entry_pt_Reader() 27.88/20.66 %298 = zext i1 %297 to i8 27.88/20.66 store %298, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %299 = load @__startrek_round 27.88/20.66 %300 = zext i8 %299 to i32 27.88/20.66 %301 = load @__startrek_job_end 27.88/20.66 %302 = zext i8 %301 to i32 27.88/20.66 %303 = icmp eq %300 %302 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %303) 27.88/20.66 br %304 27.88/20.66 304: 27.88/20.66 store 7, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %305 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@d92e070 27.88/20.66 store %305, @__startrek_round 27.88/20.66 %306 = load @__startrek_round 27.88/20.66 %307 = zext i8 %306 to i32 27.88/20.66 %308 = load @__startrek_error_round 27.88/20.66 %309 = zext i8 %308 to i32 27.88/20.66 %310 = icmp slt %307 %309 27.88/20.66 br %310, %311, %320 27.88/20.66 311: 27.88/20.66 %312 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1f154147 27.88/20.66 store %312, @__startrek_job_end 27.88/20.66 %313 = call zeroext i1 @__startrek_entry_pt_Reader() 27.88/20.66 %314 = zext i1 %313 to i8 27.88/20.66 store %314, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %315 = load @__startrek_round 27.88/20.66 %316 = zext i8 %315 to i32 27.88/20.66 %317 = load @__startrek_job_end 27.88/20.66 %318 = zext i8 %317 to i32 27.88/20.66 %319 = icmp eq %316 %318 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %319) 27.88/20.66 br %320 27.88/20.66 320: 27.88/20.66 store 3, @__startrek_task 27.88/20.66 store 0, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %321 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@65bbb80a 27.88/20.66 store %321, @__startrek_round 27.88/20.66 %322 = load @__startrek_round 27.88/20.66 %323 = zext i8 %322 to i32 27.88/20.66 %324 = load @__startrek_error_round 27.88/20.66 %325 = zext i8 %324 to i32 27.88/20.66 %326 = icmp slt %323 %325 27.88/20.66 br %326, %327, %336 27.88/20.66 327: 27.88/20.66 %328 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@146e096b 27.88/20.66 store %328, @__startrek_job_end 27.88/20.66 %329 = call zeroext i1 @__startrek_entry_pt_Writer() 27.88/20.66 %330 = zext i1 %329 to i8 27.88/20.66 store %330, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %331 = load @__startrek_round 27.88/20.66 %332 = zext i8 %331 to i32 27.88/20.66 %333 = load @__startrek_job_end 27.88/20.66 %334 = zext i8 %333 to i32 27.88/20.66 %335 = icmp eq %332 %334 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %335) 27.88/20.66 br %336 27.88/20.66 336: 27.88/20.66 store 1, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %337 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@e65faf6 27.88/20.66 store %337, @__startrek_round 27.88/20.66 %338 = load @__startrek_round 27.88/20.66 %339 = zext i8 %338 to i32 27.88/20.66 %340 = load @__startrek_error_round 27.88/20.66 %341 = zext i8 %340 to i32 27.88/20.66 %342 = icmp slt %339 %341 27.88/20.66 br %342, %343, %352 27.88/20.66 343: 27.88/20.66 %344 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3bcf8d04 27.88/20.66 store %344, @__startrek_job_end 27.88/20.66 %345 = call zeroext i1 @__startrek_entry_pt_Writer() 27.88/20.66 %346 = zext i1 %345 to i8 27.88/20.66 store %346, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %347 = load @__startrek_round 27.88/20.66 %348 = zext i8 %347 to i32 27.88/20.66 %349 = load @__startrek_job_end 27.88/20.66 %350 = zext i8 %349 to i32 27.88/20.66 %351 = icmp eq %348 %350 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %351) 27.88/20.66 br %352 27.88/20.66 352: 27.88/20.66 store 2, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %353 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@38c199f 27.88/20.66 store %353, @__startrek_round 27.88/20.66 %354 = load @__startrek_round 27.88/20.66 %355 = zext i8 %354 to i32 27.88/20.66 %356 = load @__startrek_error_round 27.88/20.66 %357 = zext i8 %356 to i32 27.88/20.66 %358 = icmp slt %355 %357 27.88/20.66 br %358, %359, %368 27.88/20.66 359: 27.88/20.66 %360 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@67cd6dd4 27.88/20.66 store %360, @__startrek_job_end 27.88/20.66 %361 = call zeroext i1 @__startrek_entry_pt_Writer() 27.88/20.66 %362 = zext i1 %361 to i8 27.88/20.66 store %362, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %363 = load @__startrek_round 27.88/20.66 %364 = zext i8 %363 to i32 27.88/20.66 %365 = load @__startrek_job_end 27.88/20.66 %366 = zext i8 %365 to i32 27.88/20.66 %367 = icmp eq %364 %366 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %367) 27.88/20.66 br %368 27.88/20.66 368: 27.88/20.66 store 3, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %369 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46de9991 27.88/20.66 store %369, @__startrek_round 27.88/20.66 %370 = load @__startrek_round 27.88/20.66 %371 = zext i8 %370 to i32 27.88/20.66 %372 = load @__startrek_error_round 27.88/20.66 %373 = zext i8 %372 to i32 27.88/20.66 %374 = icmp slt %371 %373 27.88/20.66 br %374, %375, %384 27.88/20.66 375: 27.88/20.66 %376 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@13e8be3 27.88/20.66 store %376, @__startrek_job_end 27.88/20.66 %377 = call zeroext i1 @__startrek_entry_pt_Writer() 27.88/20.66 %378 = zext i1 %377 to i8 27.88/20.66 store %378, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %379 = load @__startrek_round 27.88/20.66 %380 = zext i8 %379 to i32 27.88/20.66 %381 = load @__startrek_job_end 27.88/20.66 %382 = zext i8 %381 to i32 27.88/20.66 %383 = icmp eq %380 %382 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %383) 27.88/20.66 br %384 27.88/20.66 384: 27.88/20.66 store 4, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %385 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@621d3aba 27.88/20.66 store %385, @__startrek_round 27.88/20.66 %386 = load @__startrek_round 27.88/20.66 %387 = zext i8 %386 to i32 27.88/20.66 %388 = load @__startrek_error_round 27.88/20.66 %389 = zext i8 %388 to i32 27.88/20.66 %390 = icmp slt %387 %389 27.88/20.66 br %390, %391, %400 27.88/20.66 391: 27.88/20.66 %392 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6eb248e0 27.88/20.66 store %392, @__startrek_job_end 27.88/20.66 %393 = call zeroext i1 @__startrek_entry_pt_Writer() 27.88/20.66 %394 = zext i1 %393 to i8 27.88/20.66 store %394, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %395 = load @__startrek_round 27.88/20.66 %396 = zext i8 %395 to i32 27.88/20.66 %397 = load @__startrek_job_end 27.88/20.66 %398 = zext i8 %397 to i32 27.88/20.66 %399 = icmp eq %396 %398 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %399) 27.88/20.66 br %400 27.88/20.66 400: 27.88/20.66 store 5, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %401 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5c9256b6 27.88/20.66 store %401, @__startrek_round 27.88/20.66 %402 = load @__startrek_round 27.88/20.66 %403 = zext i8 %402 to i32 27.88/20.66 %404 = load @__startrek_error_round 27.88/20.66 %405 = zext i8 %404 to i32 27.88/20.66 %406 = icmp slt %403 %405 27.88/20.66 br %406, %407, %416 27.88/20.66 407: 27.88/20.66 %408 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2986bf54 27.88/20.66 store %408, @__startrek_job_end 27.88/20.66 %409 = call zeroext i1 @__startrek_entry_pt_Writer() 27.88/20.66 %410 = zext i1 %409 to i8 27.88/20.66 store %410, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %411 = load @__startrek_round 27.88/20.66 %412 = zext i8 %411 to i32 27.88/20.66 %413 = load @__startrek_job_end 27.88/20.66 %414 = zext i8 %413 to i32 27.88/20.66 %415 = icmp eq %412 %414 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %415) 27.88/20.66 br %416 27.88/20.66 416: 27.88/20.66 store 6, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %417 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@22458834 27.88/20.66 store %417, @__startrek_round 27.88/20.66 %418 = load @__startrek_round 27.88/20.66 %419 = zext i8 %418 to i32 27.88/20.66 %420 = load @__startrek_error_round 27.88/20.66 %421 = zext i8 %420 to i32 27.88/20.66 %422 = icmp slt %419 %421 27.88/20.66 br %422, %423, %432 27.88/20.66 423: 27.88/20.66 %424 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5ecc21d4 27.88/20.66 store %424, @__startrek_job_end 27.88/20.66 %425 = call zeroext i1 @__startrek_entry_pt_Writer() 27.88/20.66 %426 = zext i1 %425 to i8 27.88/20.66 store %426, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %427 = load @__startrek_round 27.88/20.66 %428 = zext i8 %427 to i32 27.88/20.66 %429 = load @__startrek_job_end 27.88/20.66 %430 = zext i8 %429 to i32 27.88/20.66 %431 = icmp eq %428 %430 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %431) 27.88/20.66 br %432 27.88/20.66 432: 27.88/20.66 store 7, @__startrek_job 27.88/20.66 store 1, @__startrek_is_first_cs 27.88/20.66 %433 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@10a5fb5d 27.88/20.66 store %433, @__startrek_round 27.88/20.66 %434 = load @__startrek_round 27.88/20.66 %435 = zext i8 %434 to i32 27.88/20.66 %436 = load @__startrek_error_round 27.88/20.66 %437 = zext i8 %436 to i32 27.88/20.66 %438 = icmp slt %435 %437 27.88/20.66 br %438, %439, %448 27.88/20.66 439: 27.88/20.66 %440 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@c458a02 27.88/20.66 store %440, @__startrek_job_end 27.88/20.66 %441 = call zeroext i1 @__startrek_entry_pt_Writer() 27.88/20.66 %442 = zext i1 %441 to i8 27.88/20.66 store %442, %c1 27.88/20.66 store 0, @__startrek_lock 27.88/20.66 %443 = load @__startrek_round 27.88/20.66 %444 = zext i8 %443 to i32 27.88/20.66 %445 = load @__startrek_job_end 27.88/20.66 %446 = zext i8 %445 to i32 27.88/20.66 %447 = icmp eq %444 %446 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %447) 27.88/20.66 br %448 27.88/20.66 448: 27.88/20.66 store 28, @__startrek_round 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_check_assumptions() 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_check_assertions() 27.88/20.66 %449 = load @__startrek_hyper_period 27.88/20.66 %450 = zext i8 %449 to i32 27.88/20.66 %451 = icmp eq %450 0 27.88/20.66 br %451, %452, %453 27.88/20.66 452: 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_user_final() 27.88/20.66 br %453 27.88/20.66 453: 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = alloca i32, align 4 27.88/20.66 store 0, %1 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_init_shared() 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__startrek_user_init() 27.88/20.66 store 0, @__startrek_hyper_period 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__main() 27.88/20.66 %2 = load %1 27.88/20.66 ret %2 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_init_shared" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = load @__startrek_hidden___startrek_job_count_Writer 27.88/20.66 store %1, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2cfa796 27.88/20.66 %2 = load @__startrek_hidden___startrek_job_count_Reader 27.88/20.66 store %2, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3db2f49a 27.88/20.66 %3 = load @__startrek_hidden___startrek_job_count_TapeMover 27.88/20.66 store %3, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2729f62 27.88/20.66 %4 = load @__startrek_hidden___startrek_job_count_Controller 27.88/20.66 store %4, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@224700b4 27.88/20.66 %5 = load @__startrek_hidden_T_state 27.88/20.66 store %5, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5d4bf07d 27.88/20.66 %6 = load @__startrek_hidden_W_state 27.88/20.66 store %6, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@77f7c96a 27.88/20.66 %7 = load @__startrek_hidden_R_state 27.88/20.66 store %7, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6168d179 27.88/20.66 %8 = load @__startrek_hidden_threshold 27.88/20.66 store %8, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7bb02f40 27.88/20.66 %9 = load @__startrek_hidden_need_to_run_nxtbg 27.88/20.66 %10 = trunc i8 %9 to i1 27.88/20.66 %11 = zext i1 %10 to i8 27.88/20.66 store %11, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@797af053 27.88/20.66 %12 = load @__startrek_hidden_need_to_read 27.88/20.66 %13 = trunc i8 %12 to i1 27.88/20.66 %14 = zext i1 %13 to i8 27.88/20.66 store %14, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@308fda8f 27.88/20.66 %15 = load @__startrek_hidden_dir 27.88/20.66 %16 = trunc i8 %15 to i1 27.88/20.66 %17 = zext i1 %16 to i8 27.88/20.66 store %17, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@17cb26fe 27.88/20.66 %18 = load @__startrek_hidden_output 27.88/20.66 %19 = trunc i8 %18 to i1 27.88/20.66 %20 = zext i1 %19 to i8 27.88/20.66 store %20, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6dfbd168 27.88/20.66 %21 = load @__startrek_hidden_input 27.88/20.66 %22 = trunc i8 %21 to i1 27.88/20.66 %23 = zext i1 %22 to i8 27.88/20.66 store %23, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@43ad4cec 27.88/20.66 %24 = load @__startrek_hidden_nxtcolorsensor_mode 27.88/20.66 store %24, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@db8adb4 27.88/20.66 %25 = load @__startrek_hidden_nxtcolorsensor_data_mode 27.88/20.66 store %25, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@438a962b 27.88/20.66 %26 = load @__startrek_hidden_T_speed 27.88/20.66 store %26, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@70497fa3 27.88/20.66 %27 = load @__startrek_hidden_T_count 27.88/20.66 store %27, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@592a876a 27.88/20.66 %28 = load @__startrek_hidden_W_speed 27.88/20.66 store %28, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@11b754f6 27.88/20.66 %29 = load @__startrek_hidden_W_count 27.88/20.66 store %29, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@69ba325 27.88/20.66 %30 = load @__startrek_hidden_R_speed 27.88/20.66 store %30, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3d947032 27.88/20.66 %31 = load @__startrek_hidden_R_count 27.88/20.66 store %31, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3088a13d 27.88/20.66 %32 = load @__startrek_hidden___startrek_current_priority 27.88/20.66 store %32, aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1b33433e 27.88/20.66 ret void 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_cs_t0" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = alloca i1, align 1 27.88/20.66 %c1 = alloca i8, align 1 27.88/20.66 %o2 = alloca i8, align 1 27.88/20.66 %2 = load @__startrek_is_first_cs 27.88/20.66 %3 = trunc i8 %2 to i1 27.88/20.66 br %3, %4, %5 27.88/20.66 4: 27.88/20.66 store 0, @__startrek_is_first_cs 27.88/20.66 br %5 27.88/20.66 5: 27.88/20.66 %6 = load @__startrek_lock 27.88/20.66 %7 = trunc i8 %6 to i1 27.88/20.66 br %7, %8, %9 27.88/20.66 8: 27.88/20.66 store 0, %1 27.88/20.66 br %227 27.88/20.66 9: 27.88/20.66 %10 = call zeroext i1 @__VERIFIER_nondet_bool() 27.88/20.66 %11 = zext i1 %10 to i8 27.88/20.66 store %11, %c1 27.88/20.66 %12 = load %c1 27.88/20.66 %13 = trunc i8 %12 to i1 27.88/20.66 br %13, %14, %15 27.88/20.66 14: 27.88/20.66 store 0, %1 27.88/20.66 br %227 27.88/20.66 15: 27.88/20.66 %16 = load @__startrek_round 27.88/20.66 store %16, %o2 27.88/20.66 %17 = call zeroext i8 @__VERIFIER_nondet_uchar() 27.88/20.66 store %17, @__startrek_round 27.88/20.66 %18 = load @__startrek_round 27.88/20.66 %19 = zext i8 %18 to i32 27.88/20.66 %20 = load %o2 27.88/20.66 %21 = zext i8 %20 to i32 27.88/20.66 %22 = icmp sgt %19 %21 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %22) 27.88/20.66 %23 = load @__startrek_round 27.88/20.66 %24 = zext i8 %23 to i32 27.88/20.66 %25 = load @__startrek_job_end 27.88/20.66 %26 = zext i8 %25 to i32 27.88/20.66 %27 = icmp sle %24 %26 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %27) 27.88/20.66 %28 = load @__startrek_round 27.88/20.66 %29 = zext i8 %28 to i32 27.88/20.66 %30 = load @__startrek_job_end 27.88/20.66 %31 = zext i8 %30 to i32 27.88/20.66 %32 = icmp ne %29 %31 27.88/20.66 br %32, %33, %226 27.88/20.66 33: 27.88/20.66 %34 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@406a49f6 27.88/20.66 %35 = zext i8 %34 to i32 27.88/20.66 %36 = load @__startrek_round 27.88/20.66 %37 = zext i8 %36 to i32 27.88/20.66 %38 = icmp slt %35 %37 27.88/20.66 br %38, %39, %45 27.88/20.66 39: 27.88/20.66 %40 = load @__startrek_round 27.88/20.66 %41 = zext i8 %40 to i32 27.88/20.66 %42 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@5e61a429 27.88/20.66 %43 = zext i8 %42 to i32 27.88/20.66 %44 = icmp sgt %41 %43 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %44) 27.88/20.66 br %45 27.88/20.66 45: 27.88/20.66 %46 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2b157791 27.88/20.66 %47 = zext i8 %46 to i32 27.88/20.66 %48 = load @__startrek_round 27.88/20.66 %49 = zext i8 %48 to i32 27.88/20.66 %50 = icmp slt %47 %49 27.88/20.66 br %50, %51, %57 27.88/20.66 51: 27.88/20.66 %52 = load @__startrek_round 27.88/20.66 %53 = zext i8 %52 to i32 27.88/20.66 %54 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2abeeb7e 27.88/20.66 %55 = zext i8 %54 to i32 27.88/20.66 %56 = icmp sgt %53 %55 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %56) 27.88/20.66 br %57 27.88/20.66 57: 27.88/20.66 %58 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@38092226 27.88/20.66 %59 = zext i8 %58 to i32 27.88/20.66 %60 = load @__startrek_round 27.88/20.66 %61 = zext i8 %60 to i32 27.88/20.66 %62 = icmp slt %59 %61 27.88/20.66 br %62, %63, %69 27.88/20.66 63: 27.88/20.66 %64 = load @__startrek_round 27.88/20.66 %65 = zext i8 %64 to i32 27.88/20.66 %66 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6b9a89e2 27.88/20.66 %67 = zext i8 %66 to i32 27.88/20.66 %68 = icmp sgt %65 %67 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %68) 27.88/20.66 br %69 27.88/20.66 69: 27.88/20.66 %70 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6bb3c2ff 27.88/20.66 %71 = zext i8 %70 to i32 27.88/20.66 %72 = load @__startrek_round 27.88/20.66 %73 = zext i8 %72 to i32 27.88/20.66 %74 = icmp slt %71 %73 27.88/20.66 br %74, %75, %81 27.88/20.66 75: 27.88/20.66 %76 = load @__startrek_round 27.88/20.66 %77 = zext i8 %76 to i32 27.88/20.66 %78 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@360b31ec 27.88/20.66 %79 = zext i8 %78 to i32 27.88/20.66 %80 = icmp sgt %77 %79 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %80) 27.88/20.66 br %81 27.88/20.66 81: 27.88/20.66 %82 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@47623d19 27.88/20.66 %83 = zext i8 %82 to i32 27.88/20.66 %84 = load @__startrek_round 27.88/20.66 %85 = zext i8 %84 to i32 27.88/20.66 %86 = icmp slt %83 %85 27.88/20.66 br %86, %87, %93 27.88/20.66 87: 27.88/20.66 %88 = load @__startrek_round 27.88/20.66 %89 = zext i8 %88 to i32 27.88/20.66 %90 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7888798e 27.88/20.66 %91 = zext i8 %90 to i32 27.88/20.66 %92 = icmp sgt %89 %91 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %92) 27.88/20.66 br %93 27.88/20.66 93: 27.88/20.66 %94 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@dd9e85a 27.88/20.66 %95 = zext i8 %94 to i32 27.88/20.66 %96 = load @__startrek_round 27.88/20.66 %97 = zext i8 %96 to i32 27.88/20.66 %98 = icmp slt %95 %97 27.88/20.66 br %98, %99, %105 27.88/20.66 99: 27.88/20.66 %100 = load @__startrek_round 27.88/20.66 %101 = zext i8 %100 to i32 27.88/20.66 %102 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@62322c5c 27.88/20.66 %103 = zext i8 %102 to i32 27.88/20.66 %104 = icmp sgt %101 %103 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %104) 27.88/20.66 br %105 27.88/20.66 105: 27.88/20.66 %106 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@34ee4ff6 27.88/20.66 %107 = zext i8 %106 to i32 27.88/20.66 %108 = load @__startrek_round 27.88/20.66 %109 = zext i8 %108 to i32 27.88/20.66 %110 = icmp slt %107 %109 27.88/20.66 br %110, %111, %117 27.88/20.66 111: 27.88/20.66 %112 = load @__startrek_round 27.88/20.66 %113 = zext i8 %112 to i32 27.88/20.66 %114 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@f9114ec 27.88/20.66 %115 = zext i8 %114 to i32 27.88/20.66 %116 = icmp sgt %113 %115 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %116) 27.88/20.66 br %117 27.88/20.66 117: 27.88/20.66 %118 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4d48a67c 27.88/20.66 %119 = zext i8 %118 to i32 27.88/20.66 %120 = load @__startrek_round 27.88/20.66 %121 = zext i8 %120 to i32 27.88/20.66 %122 = icmp slt %119 %121 27.88/20.66 br %122, %123, %129 27.88/20.66 123: 27.88/20.66 %124 = load @__startrek_round 27.88/20.66 %125 = zext i8 %124 to i32 27.88/20.66 %126 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3e6b2345 27.88/20.66 %127 = zext i8 %126 to i32 27.88/20.66 %128 = icmp sgt %125 %127 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %128) 27.88/20.66 br %129 27.88/20.66 129: 27.88/20.66 %130 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@783c5a81 27.88/20.66 %131 = zext i8 %130 to i32 27.88/20.66 %132 = load @__startrek_round 27.88/20.66 %133 = zext i8 %132 to i32 27.88/20.66 %134 = icmp slt %131 %133 27.88/20.66 br %134, %135, %141 27.88/20.66 135: 27.88/20.66 %136 = load @__startrek_round 27.88/20.66 %137 = zext i8 %136 to i32 27.88/20.66 %138 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7f0d171e 27.88/20.66 %139 = zext i8 %138 to i32 27.88/20.66 %140 = icmp sgt %137 %139 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %140) 27.88/20.66 br %141 27.88/20.66 141: 27.88/20.66 %142 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@77fe25c5 27.88/20.66 %143 = zext i8 %142 to i32 27.88/20.66 %144 = load @__startrek_round 27.88/20.66 %145 = zext i8 %144 to i32 27.88/20.66 %146 = icmp slt %143 %145 27.88/20.66 br %146, %147, %153 27.88/20.66 147: 27.88/20.66 %148 = load @__startrek_round 27.88/20.66 %149 = zext i8 %148 to i32 27.88/20.66 %150 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@10684174 27.88/20.66 %151 = zext i8 %150 to i32 27.88/20.66 %152 = icmp sgt %149 %151 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %152) 27.88/20.66 br %153 27.88/20.66 153: 27.88/20.66 %154 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@a1af9aa 27.88/20.66 %155 = zext i8 %154 to i32 27.88/20.66 %156 = load @__startrek_round 27.88/20.66 %157 = zext i8 %156 to i32 27.88/20.66 %158 = icmp slt %155 %157 27.88/20.66 br %158, %159, %165 27.88/20.66 159: 27.88/20.66 %160 = load @__startrek_round 27.88/20.66 %161 = zext i8 %160 to i32 27.88/20.66 %162 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1db8ba10 27.88/20.66 %163 = zext i8 %162 to i32 27.88/20.66 %164 = icmp sgt %161 %163 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %164) 27.88/20.66 br %165 27.88/20.66 165: 27.88/20.66 %166 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1b6e746f 27.88/20.66 %167 = zext i8 %166 to i32 27.88/20.66 %168 = load @__startrek_round 27.88/20.66 %169 = zext i8 %168 to i32 27.88/20.66 %170 = icmp slt %167 %169 27.88/20.66 br %170, %171, %177 27.88/20.66 171: 27.88/20.66 %172 = load @__startrek_round 27.88/20.66 %173 = zext i8 %172 to i32 27.88/20.66 %174 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@495fe597 27.88/20.66 %175 = zext i8 %174 to i32 27.88/20.66 %176 = icmp sgt %173 %175 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %176) 27.88/20.66 br %177 27.88/20.66 177: 27.88/20.66 %178 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@14d582bf 27.88/20.66 %179 = zext i8 %178 to i32 27.88/20.66 %180 = load @__startrek_round 27.88/20.66 %181 = zext i8 %180 to i32 27.88/20.66 %182 = icmp slt %179 %181 27.88/20.66 br %182, %183, %189 27.88/20.66 183: 27.88/20.66 %184 = load @__startrek_round 27.88/20.66 %185 = zext i8 %184 to i32 27.88/20.66 %186 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4ce5c20f 27.88/20.66 %187 = zext i8 %186 to i32 27.88/20.66 %188 = icmp sgt %185 %187 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %188) 27.88/20.66 br %189 27.88/20.66 189: 27.88/20.66 %190 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@24c01af0 27.88/20.66 %191 = zext i8 %190 to i32 27.88/20.66 %192 = load @__startrek_round 27.88/20.66 %193 = zext i8 %192 to i32 27.88/20.66 %194 = icmp slt %191 %193 27.88/20.66 br %194, %195, %201 27.88/20.66 195: 27.88/20.66 %196 = load @__startrek_round 27.88/20.66 %197 = zext i8 %196 to i32 27.88/20.66 %198 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@128530a2 27.88/20.66 %199 = zext i8 %198 to i32 27.88/20.66 %200 = icmp sgt %197 %199 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %200) 27.88/20.66 br %201 27.88/20.66 201: 27.88/20.66 %202 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@2a7d8837 27.88/20.66 %203 = zext i8 %202 to i32 27.88/20.66 %204 = load @__startrek_round 27.88/20.66 %205 = zext i8 %204 to i32 27.88/20.66 %206 = icmp slt %203 %205 27.88/20.66 br %206, %207, %213 27.88/20.66 207: 27.88/20.66 %208 = load @__startrek_round 27.88/20.66 %209 = zext i8 %208 to i32 27.88/20.66 %210 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@486ac2cd 27.88/20.66 %211 = zext i8 %210 to i32 27.88/20.66 %212 = icmp sgt %209 %211 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %212) 27.88/20.66 br %213 27.88/20.66 213: 27.88/20.66 %214 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6c5956aa 27.88/20.66 %215 = zext i8 %214 to i32 27.88/20.66 %216 = load @__startrek_round 27.88/20.66 %217 = zext i8 %216 to i32 27.88/20.66 %218 = icmp slt %215 %217 27.88/20.66 br %218, %219, %225 27.88/20.66 219: 27.88/20.66 %220 = load @__startrek_round 27.88/20.66 %221 = zext i8 %220 to i32 27.88/20.66 %222 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@57626ba3 27.88/20.66 %223 = zext i8 %222 to i32 27.88/20.66 %224 = icmp sgt %221 %223 27.88/20.66 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %224) 27.88/20.66 br %225 27.88/20.66 225: 27.88/20.66 br %226 27.88/20.66 226: 27.88/20.66 store 1, %1 27.88/20.66 br %227 27.88/20.66 227: 27.88/20.66 %228 = load %1 27.88/20.66 ret %228 27.88/20.66 27.88/20.66 *BasicFunctionTypename: "__startrek_cs_t1" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.66 0: 27.88/20.66 %1 = alloca i1, align 1 27.88/20.66 %c1 = alloca i8, align 1 27.88/20.66 %o2 = alloca i8, align 1 27.88/20.66 %2 = load @__startrek_is_first_cs 27.88/20.66 %3 = trunc i8 %2 to i1 27.88/20.66 br %3, %4, %5 27.88/20.66 4: 27.88/20.66 store 0, @__startrek_is_first_cs 27.88/20.66 br %5 27.88/20.66 5: 27.88/20.66 %6 = load @__startrek_lock 27.88/20.66 %7 = trunc i8 %6 to i1 27.88/20.66 br %7, %8, %9 27.88/20.66 8: 27.88/20.66 store 0, %1 27.88/20.66 br %131 27.88/20.66 9: 27.88/20.66 %10 = call zeroext i1 @__VERIFIER_nondet_bool() 27.88/20.66 %11 = zext i1 %10 to i8 27.88/20.66 store %11, %c1 27.88/20.66 %12 = load %c1 27.88/20.66 %13 = trunc i8 %12 to i1 27.88/20.66 br %13, %14, %15 27.88/20.66 14: 27.88/20.66 store 0, %1 27.88/20.66 br %131 27.88/20.66 15: 27.88/20.66 %16 = load @__startrek_round 27.88/20.66 store %16, %o2 27.88/20.66 %17 = call zeroext i8 @__VERIFIER_nondet_uchar() 27.88/20.67 store %17, @__startrek_round 27.88/20.67 %18 = load @__startrek_round 27.88/20.67 %19 = zext i8 %18 to i32 27.88/20.67 %20 = load %o2 27.88/20.67 %21 = zext i8 %20 to i32 27.88/20.67 %22 = icmp sgt %19 %21 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %22) 27.88/20.67 %23 = load @__startrek_round 27.88/20.67 %24 = zext i8 %23 to i32 27.88/20.67 %25 = load @__startrek_job_end 27.88/20.67 %26 = zext i8 %25 to i32 27.88/20.67 %27 = icmp sle %24 %26 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %27) 27.88/20.67 %28 = load @__startrek_round 27.88/20.67 %29 = zext i8 %28 to i32 27.88/20.67 %30 = load @__startrek_job_end 27.88/20.67 %31 = zext i8 %30 to i32 27.88/20.67 %32 = icmp ne %29 %31 27.88/20.67 br %32, %33, %130 27.88/20.67 33: 27.88/20.67 %34 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@11987d48 27.88/20.67 %35 = zext i8 %34 to i32 27.88/20.67 %36 = load @__startrek_round 27.88/20.67 %37 = zext i8 %36 to i32 27.88/20.67 %38 = icmp slt %35 %37 27.88/20.67 br %38, %39, %45 27.88/20.67 39: 27.88/20.67 %40 = load @__startrek_round 27.88/20.67 %41 = zext i8 %40 to i32 27.88/20.67 %42 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@f7aa91c 27.88/20.67 %43 = zext i8 %42 to i32 27.88/20.67 %44 = icmp sgt %41 %43 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %44) 27.88/20.67 br %45 27.88/20.67 45: 27.88/20.67 %46 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@29b0525f 27.88/20.67 %47 = zext i8 %46 to i32 27.88/20.67 %48 = load @__startrek_round 27.88/20.67 %49 = zext i8 %48 to i32 27.88/20.67 %50 = icmp slt %47 %49 27.88/20.67 br %50, %51, %57 27.88/20.67 51: 27.88/20.67 %52 = load @__startrek_round 27.88/20.67 %53 = zext i8 %52 to i32 27.88/20.67 %54 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@6d4b0bb9 27.88/20.67 %55 = zext i8 %54 to i32 27.88/20.67 %56 = icmp sgt %53 %55 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %56) 27.88/20.67 br %57 27.88/20.67 57: 27.88/20.67 %58 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3feb4965 27.88/20.67 %59 = zext i8 %58 to i32 27.88/20.67 %60 = load @__startrek_round 27.88/20.67 %61 = zext i8 %60 to i32 27.88/20.67 %62 = icmp slt %59 %61 27.88/20.67 br %62, %63, %69 27.88/20.67 63: 27.88/20.67 %64 = load @__startrek_round 27.88/20.67 %65 = zext i8 %64 to i32 27.88/20.67 %66 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@658325cd 27.88/20.67 %67 = zext i8 %66 to i32 27.88/20.67 %68 = icmp sgt %65 %67 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %68) 27.88/20.67 br %69 27.88/20.67 69: 27.88/20.67 %70 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@4e8ab188 27.88/20.67 %71 = zext i8 %70 to i32 27.88/20.67 %72 = load @__startrek_round 27.88/20.67 %73 = zext i8 %72 to i32 27.88/20.67 %74 = icmp slt %71 %73 27.88/20.67 br %74, %75, %81 27.88/20.67 75: 27.88/20.67 %76 = load @__startrek_round 27.88/20.67 %77 = zext i8 %76 to i32 27.88/20.67 %78 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7ba97d23 27.88/20.67 %79 = zext i8 %78 to i32 27.88/20.67 %80 = icmp sgt %77 %79 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %80) 27.88/20.67 br %81 27.88/20.67 81: 27.88/20.67 %82 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@1eeca352 27.88/20.67 %83 = zext i8 %82 to i32 27.88/20.67 %84 = load @__startrek_round 27.88/20.67 %85 = zext i8 %84 to i32 27.88/20.67 %86 = icmp slt %83 %85 27.88/20.67 br %86, %87, %93 27.88/20.67 87: 27.88/20.67 %88 = load @__startrek_round 27.88/20.67 %89 = zext i8 %88 to i32 27.88/20.67 %90 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@62bd400f 27.88/20.67 %91 = zext i8 %90 to i32 27.88/20.67 %92 = icmp sgt %89 %91 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %92) 27.88/20.67 br %93 27.88/20.67 93: 27.88/20.67 %94 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@7920ab21 27.88/20.67 %95 = zext i8 %94 to i32 27.88/20.67 %96 = load @__startrek_round 27.88/20.67 %97 = zext i8 %96 to i32 27.88/20.67 %98 = icmp slt %95 %97 27.88/20.67 br %98, %99, %105 27.88/20.67 99: 27.88/20.67 %100 = load @__startrek_round 27.88/20.67 %101 = zext i8 %100 to i32 27.88/20.67 %102 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@49d08143 27.88/20.67 %103 = zext i8 %102 to i32 27.88/20.67 %104 = icmp sgt %101 %103 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %104) 27.88/20.67 br %105 27.88/20.67 105: 27.88/20.67 %106 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@325d5d18 27.88/20.67 %107 = zext i8 %106 to i32 27.88/20.67 %108 = load @__startrek_round 27.88/20.67 %109 = zext i8 %108 to i32 27.88/20.67 %110 = icmp slt %107 %109 27.88/20.67 br %110, %111, %117 27.88/20.67 111: 27.88/20.67 %112 = load @__startrek_round 27.88/20.67 %113 = zext i8 %112 to i32 27.88/20.67 %114 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@3ae8ce64 27.88/20.67 %115 = zext i8 %114 to i32 27.88/20.67 %116 = icmp sgt %113 %115 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %116) 27.88/20.67 br %117 27.88/20.67 117: 27.88/20.67 %118 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@46ed03bb 27.88/20.67 %119 = zext i8 %118 to i32 27.88/20.67 %120 = load @__startrek_round 27.88/20.67 %121 = zext i8 %120 to i32 27.88/20.67 %122 = icmp slt %119 %121 27.88/20.67 br %122, %123, %129 27.88/20.67 123: 27.88/20.67 %124 = load @__startrek_round 27.88/20.67 %125 = zext i8 %124 to i32 27.88/20.67 %126 = load aprove.InputModules.Programs.llvm.internalStructures.literals.const_expr.LLVMGetElementPtrConstExpr@b7a58bc 27.88/20.67 %127 = zext i8 %126 to i32 27.88/20.67 %128 = icmp sgt %125 %127 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %128) 27.88/20.67 br %129 27.88/20.67 129: 27.88/20.67 br %130 27.88/20.67 130: 27.88/20.67 store 1, %1 27.88/20.67 br %131 27.88/20.67 131: 27.88/20.67 %132 = load %1 27.88/20.67 ret %132 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_cs_t2" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %1 = alloca i1, align 1 27.88/20.67 %c1 = alloca i8, align 1 27.88/20.67 %o2 = alloca i8, align 1 27.88/20.67 %2 = load @__startrek_is_first_cs 27.88/20.67 %3 = trunc i8 %2 to i1 27.88/20.67 br %3, %4, %5 27.88/20.67 4: 27.88/20.67 store 0, @__startrek_is_first_cs 27.88/20.67 br %5 27.88/20.67 5: 27.88/20.67 %6 = load @__startrek_lock 27.88/20.67 %7 = trunc i8 %6 to i1 27.88/20.67 br %7, %8, %9 27.88/20.67 8: 27.88/20.67 store 0, %1 27.88/20.67 br %35 27.88/20.67 9: 27.88/20.67 %10 = call zeroext i1 @__VERIFIER_nondet_bool() 27.88/20.67 %11 = zext i1 %10 to i8 27.88/20.67 store %11, %c1 27.88/20.67 %12 = load %c1 27.88/20.67 %13 = trunc i8 %12 to i1 27.88/20.67 br %13, %14, %15 27.88/20.67 14: 27.88/20.67 store 0, %1 27.88/20.67 br %35 27.88/20.67 15: 27.88/20.67 %16 = load @__startrek_round 27.88/20.67 store %16, %o2 27.88/20.67 %17 = call zeroext i8 @__VERIFIER_nondet_uchar() 27.88/20.67 store %17, @__startrek_round 27.88/20.67 %18 = load @__startrek_round 27.88/20.67 %19 = zext i8 %18 to i32 27.88/20.67 %20 = load %o2 27.88/20.67 %21 = zext i8 %20 to i32 27.88/20.67 %22 = icmp sgt %19 %21 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %22) 27.88/20.67 %23 = load @__startrek_round 27.88/20.67 %24 = zext i8 %23 to i32 27.88/20.67 %25 = load @__startrek_job_end 27.88/20.67 %26 = zext i8 %25 to i32 27.88/20.67 %27 = icmp sle %24 %26 27.88/20.67 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %27) 27.88/20.67 %28 = load @__startrek_round 27.88/20.67 %29 = zext i8 %28 to i32 27.88/20.67 %30 = load @__startrek_job_end 27.88/20.67 %31 = zext i8 %30 to i32 27.88/20.67 %32 = icmp ne %29 %31 27.88/20.67 br %32, %33, %34 27.88/20.67 33: 27.88/20.67 br %34 27.88/20.67 34: 27.88/20.67 store 1, %1 27.88/20.67 br %35 27.88/20.67 35: 27.88/20.67 %36 = load %1 27.88/20.67 ret %36 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_cs_t3" linkageType: INTERNAL returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 ret 0 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_read___startrek_current_priority" linkageType: INTERNAL returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %r1 = alloca i8, align 1 27.88/20.67 %c2 = alloca i8, align 1 27.88/20.67 %or3 = alloca i8, align 1 27.88/20.67 %1 = load @__startrek_task 27.88/20.67 %2 = zext i8 %1 to i32 27.88/20.67 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.67 3: 27.88/20.67 %4 = load @__startrek_round 27.88/20.67 store %4, %or3 27.88/20.67 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.67 %6 = zext i1 %5 to i8 27.88/20.67 store %6, %c2 27.88/20.67 br %19 27.88/20.67 7: 27.88/20.67 %8 = load @__startrek_round 27.88/20.67 store %8, %or3 27.88/20.67 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.67 %10 = zext i1 %9 to i8 27.88/20.67 store %10, %c2 27.88/20.67 br %19 27.88/20.67 11: 27.88/20.67 %12 = load @__startrek_round 27.88/20.67 store %12, %or3 27.88/20.67 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.67 %14 = zext i1 %13 to i8 27.88/20.67 store %14, %c2 27.88/20.67 br %19 27.88/20.67 15: 27.88/20.67 %16 = load @__startrek_round 27.88/20.67 store %16, %or3 27.88/20.67 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.67 %18 = zext i1 %17 to i8 27.88/20.67 store %18, %c2 27.88/20.67 br %19 27.88/20.67 19: 27.88/20.67 %20 = load @__startrek_round 27.88/20.67 %21 = zext i8 %20 to i64 27.88/20.67 %22 = getelementptr @___startrek_current_priority_, 0, %21 27.88/20.67 %23 = load %22 27.88/20.67 store %23, %r1 27.88/20.67 %24 = load %r1 27.88/20.67 ret %24 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_write___startrek_current_priority" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %1 = alloca i8, align 1 27.88/20.67 %c2 = alloca i8, align 1 27.88/20.67 %or3 = alloca i8, align 1 27.88/20.67 store %arg, %1 27.88/20.67 %2 = load @__startrek_task 27.88/20.67 %3 = zext i8 %2 to i32 27.88/20.67 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.67 4: 27.88/20.67 %5 = load @__startrek_round 27.88/20.67 store %5, %or3 27.88/20.67 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.67 %7 = zext i1 %6 to i8 27.88/20.67 store %7, %c2 27.88/20.67 br %20 27.88/20.67 8: 27.88/20.67 %9 = load @__startrek_round 27.88/20.67 store %9, %or3 27.88/20.67 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.67 %11 = zext i1 %10 to i8 27.88/20.67 store %11, %c2 27.88/20.67 br %20 27.88/20.67 12: 27.88/20.67 %13 = load @__startrek_round 27.88/20.67 store %13, %or3 27.88/20.67 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.67 %15 = zext i1 %14 to i8 27.88/20.67 store %15, %c2 27.88/20.67 br %20 27.88/20.67 16: 27.88/20.67 %17 = load @__startrek_round 27.88/20.67 store %17, %or3 27.88/20.67 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.67 %19 = zext i1 %18 to i8 27.88/20.67 store %19, %c2 27.88/20.67 br %20 27.88/20.67 20: 27.88/20.67 %21 = load %1 27.88/20.67 %22 = load @__startrek_round 27.88/20.67 %23 = zext i8 %22 to i64 27.88/20.67 %24 = getelementptr @___startrek_current_priority_, 0, %23 27.88/20.67 store %21, %24 27.88/20.67 ret void 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_read___startrek_job_count_Writer" linkageType: INTERNAL returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %r1 = alloca i8, align 1 27.88/20.67 %c2 = alloca i8, align 1 27.88/20.67 %or3 = alloca i8, align 1 27.88/20.67 %1 = load @__startrek_task 27.88/20.67 %2 = zext i8 %1 to i32 27.88/20.67 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.67 3: 27.88/20.67 %4 = load @__startrek_round 27.88/20.67 store %4, %or3 27.88/20.67 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.67 %6 = zext i1 %5 to i8 27.88/20.67 store %6, %c2 27.88/20.67 br %19 27.88/20.67 7: 27.88/20.67 %8 = load @__startrek_round 27.88/20.67 store %8, %or3 27.88/20.67 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.67 %10 = zext i1 %9 to i8 27.88/20.67 store %10, %c2 27.88/20.67 br %19 27.88/20.67 11: 27.88/20.67 %12 = load @__startrek_round 27.88/20.67 store %12, %or3 27.88/20.67 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.67 %14 = zext i1 %13 to i8 27.88/20.67 store %14, %c2 27.88/20.67 br %19 27.88/20.67 15: 27.88/20.67 %16 = load @__startrek_round 27.88/20.67 store %16, %or3 27.88/20.67 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.67 %18 = zext i1 %17 to i8 27.88/20.67 store %18, %c2 27.88/20.67 br %19 27.88/20.67 19: 27.88/20.67 %20 = load @__startrek_round 27.88/20.67 %21 = zext i8 %20 to i64 27.88/20.67 %22 = getelementptr @___startrek_job_count_Writer_, 0, %21 27.88/20.67 %23 = load %22 27.88/20.67 store %23, %r1 27.88/20.67 %24 = load %r1 27.88/20.67 ret %24 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_write___startrek_job_count_Writer" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %1 = alloca i8, align 1 27.88/20.67 %c2 = alloca i8, align 1 27.88/20.67 %or3 = alloca i8, align 1 27.88/20.67 store %arg, %1 27.88/20.67 %2 = load @__startrek_task 27.88/20.67 %3 = zext i8 %2 to i32 27.88/20.67 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.67 4: 27.88/20.67 %5 = load @__startrek_round 27.88/20.67 store %5, %or3 27.88/20.67 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.67 %7 = zext i1 %6 to i8 27.88/20.67 store %7, %c2 27.88/20.67 br %20 27.88/20.67 8: 27.88/20.67 %9 = load @__startrek_round 27.88/20.67 store %9, %or3 27.88/20.67 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.67 %11 = zext i1 %10 to i8 27.88/20.67 store %11, %c2 27.88/20.67 br %20 27.88/20.67 12: 27.88/20.67 %13 = load @__startrek_round 27.88/20.67 store %13, %or3 27.88/20.67 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.67 %15 = zext i1 %14 to i8 27.88/20.67 store %15, %c2 27.88/20.67 br %20 27.88/20.67 16: 27.88/20.67 %17 = load @__startrek_round 27.88/20.67 store %17, %or3 27.88/20.67 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.67 %19 = zext i1 %18 to i8 27.88/20.67 store %19, %c2 27.88/20.67 br %20 27.88/20.67 20: 27.88/20.67 %21 = load %1 27.88/20.67 %22 = load @__startrek_round 27.88/20.67 %23 = zext i8 %22 to i64 27.88/20.67 %24 = getelementptr @___startrek_job_count_Writer_, 0, %23 27.88/20.67 store %21, %24 27.88/20.67 ret void 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_read___startrek_job_count_Reader" linkageType: INTERNAL returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %r1 = alloca i8, align 1 27.88/20.67 %c2 = alloca i8, align 1 27.88/20.67 %or3 = alloca i8, align 1 27.88/20.67 %1 = load @__startrek_task 27.88/20.67 %2 = zext i8 %1 to i32 27.88/20.67 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.67 3: 27.88/20.67 %4 = load @__startrek_round 27.88/20.67 store %4, %or3 27.88/20.67 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.67 %6 = zext i1 %5 to i8 27.88/20.67 store %6, %c2 27.88/20.67 br %19 27.88/20.67 7: 27.88/20.67 %8 = load @__startrek_round 27.88/20.67 store %8, %or3 27.88/20.67 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.67 %10 = zext i1 %9 to i8 27.88/20.67 store %10, %c2 27.88/20.67 br %19 27.88/20.67 11: 27.88/20.67 %12 = load @__startrek_round 27.88/20.67 store %12, %or3 27.88/20.67 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.67 %14 = zext i1 %13 to i8 27.88/20.67 store %14, %c2 27.88/20.67 br %19 27.88/20.67 15: 27.88/20.67 %16 = load @__startrek_round 27.88/20.67 store %16, %or3 27.88/20.67 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.67 %18 = zext i1 %17 to i8 27.88/20.67 store %18, %c2 27.88/20.67 br %19 27.88/20.67 19: 27.88/20.67 %20 = load @__startrek_round 27.88/20.67 %21 = zext i8 %20 to i64 27.88/20.67 %22 = getelementptr @___startrek_job_count_Reader_, 0, %21 27.88/20.67 %23 = load %22 27.88/20.67 store %23, %r1 27.88/20.67 %24 = load %r1 27.88/20.67 ret %24 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_write___startrek_job_count_Reader" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %1 = alloca i8, align 1 27.88/20.67 %c2 = alloca i8, align 1 27.88/20.67 %or3 = alloca i8, align 1 27.88/20.67 store %arg, %1 27.88/20.67 %2 = load @__startrek_task 27.88/20.67 %3 = zext i8 %2 to i32 27.88/20.67 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.67 4: 27.88/20.67 %5 = load @__startrek_round 27.88/20.67 store %5, %or3 27.88/20.67 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.67 %7 = zext i1 %6 to i8 27.88/20.67 store %7, %c2 27.88/20.67 br %20 27.88/20.67 8: 27.88/20.67 %9 = load @__startrek_round 27.88/20.67 store %9, %or3 27.88/20.67 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.67 %11 = zext i1 %10 to i8 27.88/20.67 store %11, %c2 27.88/20.67 br %20 27.88/20.67 12: 27.88/20.67 %13 = load @__startrek_round 27.88/20.67 store %13, %or3 27.88/20.67 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.67 %15 = zext i1 %14 to i8 27.88/20.67 store %15, %c2 27.88/20.67 br %20 27.88/20.67 16: 27.88/20.67 %17 = load @__startrek_round 27.88/20.67 store %17, %or3 27.88/20.67 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.67 %19 = zext i1 %18 to i8 27.88/20.67 store %19, %c2 27.88/20.67 br %20 27.88/20.67 20: 27.88/20.67 %21 = load %1 27.88/20.67 %22 = load @__startrek_round 27.88/20.67 %23 = zext i8 %22 to i64 27.88/20.67 %24 = getelementptr @___startrek_job_count_Reader_, 0, %23 27.88/20.67 store %21, %24 27.88/20.67 ret void 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_read___startrek_job_count_TapeMover" linkageType: INTERNAL returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %r1 = alloca i8, align 1 27.88/20.67 %c2 = alloca i8, align 1 27.88/20.67 %or3 = alloca i8, align 1 27.88/20.67 %1 = load @__startrek_task 27.88/20.67 %2 = zext i8 %1 to i32 27.88/20.67 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.67 3: 27.88/20.67 %4 = load @__startrek_round 27.88/20.67 store %4, %or3 27.88/20.67 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.67 %6 = zext i1 %5 to i8 27.88/20.67 store %6, %c2 27.88/20.67 br %19 27.88/20.67 7: 27.88/20.67 %8 = load @__startrek_round 27.88/20.67 store %8, %or3 27.88/20.67 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.67 %10 = zext i1 %9 to i8 27.88/20.67 store %10, %c2 27.88/20.67 br %19 27.88/20.67 11: 27.88/20.67 %12 = load @__startrek_round 27.88/20.67 store %12, %or3 27.88/20.67 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.67 %14 = zext i1 %13 to i8 27.88/20.67 store %14, %c2 27.88/20.67 br %19 27.88/20.67 15: 27.88/20.67 %16 = load @__startrek_round 27.88/20.67 store %16, %or3 27.88/20.67 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.67 %18 = zext i1 %17 to i8 27.88/20.67 store %18, %c2 27.88/20.67 br %19 27.88/20.67 19: 27.88/20.67 %20 = load @__startrek_round 27.88/20.67 %21 = zext i8 %20 to i64 27.88/20.67 %22 = getelementptr @___startrek_job_count_TapeMover_, 0, %21 27.88/20.67 %23 = load %22 27.88/20.67 store %23, %r1 27.88/20.67 %24 = load %r1 27.88/20.67 ret %24 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_write___startrek_job_count_TapeMover" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %1 = alloca i8, align 1 27.88/20.67 %c2 = alloca i8, align 1 27.88/20.67 %or3 = alloca i8, align 1 27.88/20.67 store %arg, %1 27.88/20.67 %2 = load @__startrek_task 27.88/20.67 %3 = zext i8 %2 to i32 27.88/20.67 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.67 4: 27.88/20.67 %5 = load @__startrek_round 27.88/20.67 store %5, %or3 27.88/20.67 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.67 %7 = zext i1 %6 to i8 27.88/20.67 store %7, %c2 27.88/20.67 br %20 27.88/20.67 8: 27.88/20.67 %9 = load @__startrek_round 27.88/20.67 store %9, %or3 27.88/20.67 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.67 %11 = zext i1 %10 to i8 27.88/20.67 store %11, %c2 27.88/20.67 br %20 27.88/20.67 12: 27.88/20.67 %13 = load @__startrek_round 27.88/20.67 store %13, %or3 27.88/20.67 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.67 %15 = zext i1 %14 to i8 27.88/20.67 store %15, %c2 27.88/20.67 br %20 27.88/20.67 16: 27.88/20.67 %17 = load @__startrek_round 27.88/20.67 store %17, %or3 27.88/20.67 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.67 %19 = zext i1 %18 to i8 27.88/20.67 store %19, %c2 27.88/20.67 br %20 27.88/20.67 20: 27.88/20.67 %21 = load %1 27.88/20.67 %22 = load @__startrek_round 27.88/20.67 %23 = zext i8 %22 to i64 27.88/20.67 %24 = getelementptr @___startrek_job_count_TapeMover_, 0, %23 27.88/20.67 store %21, %24 27.88/20.67 ret void 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_read___startrek_job_count_Controller" linkageType: INTERNAL returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %r1 = alloca i8, align 1 27.88/20.67 %c2 = alloca i8, align 1 27.88/20.67 %or3 = alloca i8, align 1 27.88/20.67 %1 = load @__startrek_task 27.88/20.67 %2 = zext i8 %1 to i32 27.88/20.67 switch %2, %19 [0, %3 1, %7 2, %11 3, %15] 27.88/20.67 3: 27.88/20.67 %4 = load @__startrek_round 27.88/20.67 store %4, %or3 27.88/20.67 %5 = call zeroext i1 @__startrek_cs_t0() 27.88/20.67 %6 = zext i1 %5 to i8 27.88/20.67 store %6, %c2 27.88/20.67 br %19 27.88/20.67 7: 27.88/20.67 %8 = load @__startrek_round 27.88/20.67 store %8, %or3 27.88/20.67 %9 = call zeroext i1 @__startrek_cs_t1() 27.88/20.67 %10 = zext i1 %9 to i8 27.88/20.67 store %10, %c2 27.88/20.67 br %19 27.88/20.67 11: 27.88/20.67 %12 = load @__startrek_round 27.88/20.67 store %12, %or3 27.88/20.67 %13 = call zeroext i1 @__startrek_cs_t2() 27.88/20.67 %14 = zext i1 %13 to i8 27.88/20.67 store %14, %c2 27.88/20.67 br %19 27.88/20.67 15: 27.88/20.67 %16 = load @__startrek_round 27.88/20.67 store %16, %or3 27.88/20.67 %17 = call zeroext i1 @__startrek_cs_t3() 27.88/20.67 %18 = zext i1 %17 to i8 27.88/20.67 store %18, %c2 27.88/20.67 br %19 27.88/20.67 19: 27.88/20.67 %20 = load @__startrek_round 27.88/20.67 %21 = zext i8 %20 to i64 27.88/20.67 %22 = getelementptr @___startrek_job_count_Controller_, 0, %21 27.88/20.67 %23 = load %22 27.88/20.67 store %23, %r1 27.88/20.67 %24 = load %r1 27.88/20.67 ret %24 27.88/20.67 27.88/20.67 *BasicFunctionTypename: "__startrek_write___startrek_job_count_Controller" linkageType: INTERNAL returnParam: BasicVoidType parameters: (arg i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.88/20.67 0: 27.88/20.67 %1 = alloca i8, align 1 27.88/20.67 %c2 = alloca i8, align 1 27.88/20.67 %or3 = alloca i8, align 1 27.88/20.67 store %arg, %1 27.88/20.67 %2 = load @__startrek_task 27.88/20.67 %3 = zext i8 %2 to i32 27.88/20.67 switch %3, %20 [0, %4 1, %8 2, %12 3, %16] 27.88/20.67 4: 27.88/20.67 %5 = load @__startrek_round 27.88/20.67 store %5, %or3 27.88/20.67 %6 = call zeroext i1 @__startrek_cs_t0() 27.88/20.67 %7 = zext i1 %6 to i8 27.88/20.67 store %7, %c2 27.88/20.67 br %20 27.88/20.67 8: 27.88/20.67 %9 = load @__startrek_round 27.88/20.67 store %9, %or3 27.88/20.67 %10 = call zeroext i1 @__startrek_cs_t1() 27.88/20.67 %11 = zext i1 %10 to i8 27.88/20.67 store %11, %c2 27.88/20.67 br %20 27.88/20.67 12: 27.88/20.67 %13 = load @__startrek_round 27.88/20.67 store %13, %or3 27.88/20.67 %14 = call zeroext i1 @__startrek_cs_t2() 27.88/20.67 %15 = zext i1 %14 to i8 27.88/20.67 store %15, %c2 27.88/20.67 br %20 27.88/20.67 16: 27.88/20.67 %17 = load @__startrek_round 27.88/20.67 store %17, %or3 27.88/20.67 %18 = call zeroext i1 @__startrek_cs_t3() 27.88/20.67 %19 = zext i1 %18 to i8 27.88/20.67 store %19, %c2 27.88/20.67 br %20 27.88/20.67 20: 27.88/20.67 %21 = load %1 27.88/20.67 %22 = load @__startrek_round 27.88/20.67 %23 = zext i8 %22 to i64 27.88/20.67 %24 = getelementptr @___startrek_job_count_Controller_, 0, %23 27.88/20.67 store %21, %24 27.88/20.67 ret void 27.88/20.67 27.88/20.67 27.88/20.67 Analyze Termination of all function calls matching the pattern: 27.88/20.67 main() 27.97/20.72 EOF