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