int main(void) { unsigned __CPROVER_bitvector[3] __cs_tmp_t0_r0 = (unsigned __CPROVER_bitvector[3])nondet_uint(); unsigned __CPROVER_bitvector[1] __cs_tmp_t1_r0 = (unsigned __CPROVER_bitvector[1])nondet_uint(); unsigned __CPROVER_bitvector[2] __cs_tmp_t2_r0 = (unsigned __CPROVER_bitvector[2])nondet_uint(); unsigned __CPROVER_bitvector[2] __cs_tmp_t3_r0 = (unsigned __CPROVER_bitvector[2])nondet_uint(); unsigned __CPROVER_bitvector[3] __cs_tmp_t0_r1 = (unsigned __CPROVER_bitvector[3])nondet_uint(); unsigned __CPROVER_bitvector[1] __cs_tmp_t1_r1 = (unsigned __CPROVER_bitvector[1])nondet_uint(); unsigned __CPROVER_bitvector[2] __cs_tmp_t2_r1 = (unsigned __CPROVER_bitvector[2])nondet_uint(); unsigned __CPROVER_bitvector[2] __cs_tmp_t3_r1 = (unsigned __CPROVER_bitvector[2])nondet_uint(); unsigned __CPROVER_bitvector[3] __cs_tmp_t0_r2 = (unsigned __CPROVER_bitvector[3])nondet_uint(); /* round 0 */ __CPROVER_assume(__cs_tmp_t0_r0 > 0); __cs_thread_index = 0; __cs_pc_cs[0] = __cs_pc[0] + __cs_tmp_t0_r0; __CPROVER_assume(__cs_pc_cs[0] > 0); __CPROVER_assume(__cs_pc_cs[0] <= 6); main_thread(); __cs_pc[0] = __cs_pc_cs[0]; if (__cs_active_thread[1] == 1) { __cs_thread_index = 1; __cs_pc_cs[1] = __cs_pc[1] + __cs_tmp_t1_r0; __CPROVER_assume(__cs_pc_cs[1] <= 1); thr1_0(__cs_threadargs[1]); __cs_pc[1] = __cs_pc_cs[1]; } if (__cs_active_thread[2] == 1) { __cs_thread_index = 2; __cs_pc_cs[2] = __cs_pc[2] + __cs_tmp_t2_r0; __CPROVER_assume(__cs_pc_cs[2] <= 3); thr2_0(__cs_threadargs[2]); __cs_pc[2] = __cs_pc_cs[2]; } if (__cs_active_thread[3] == 1) { __cs_thread_index = 3; __cs_pc_cs[3] = __cs_pc[3] + __cs_tmp_t3_r0; __CPROVER_assume(__cs_pc_cs[3] <= 3); thr2_1(__cs_threadargs[3]); __cs_pc[3] = __cs_pc_cs[3]; } /* round 1 */ if (__cs_active_thread[0] == 1) { __cs_thread_index = 0; __cs_pc_cs[0] = __cs_pc[0] + __cs_tmp_t0_r1; __CPROVER_assume(__cs_pc_cs[0] >= __cs_pc[0]); __CPROVER_assume(__cs_pc_cs[0] <= 6); main_thread(); __cs_pc[0] = __cs_pc_cs[0]; } if (__cs_active_thread[1] == 1) { __cs_thread_index = 1; __cs_pc_cs[1] = __cs_pc[1] + __cs_tmp_t1_r1; __CPROVER_assume(__cs_pc_cs[1] >= __cs_pc[1]); __CPROVER_assume(__cs_pc_cs[1] <= 1); thr1_0(__cs_threadargs[__cs_thread_index]); __cs_pc[1] = __cs_pc_cs[1]; } if (__cs_active_thread[2] == 1) { __cs_thread_index = 2; __cs_pc_cs[2] = __cs_pc[2] + __cs_tmp_t2_r1; __CPROVER_assume(__cs_pc_cs[2] >= __cs_pc[2]); __CPROVER_assume(__cs_pc_cs[2] <= 3); thr2_0(__cs_threadargs[__cs_thread_index]); __cs_pc[2] = __cs_pc_cs[2]; } if (__cs_active_thread[3] == 1) { __cs_thread_index = 3; __cs_pc_cs[3] = __cs_pc[3] + __cs_tmp_t3_r1; __CPROVER_assume(__cs_pc_cs[3] >= __cs_pc[3]); __CPROVER_assume(__cs_pc_cs[3] <= 3); thr2_1(__cs_threadargs[__cs_thread_index]); __cs_pc[3] = __cs_pc_cs[3]; } if (__cs_active_thread[0] == 1) { __cs_thread_index = 0; __cs_pc_cs[0] = __cs_pc[0] + __cs_tmp_t0_r2; __CPROVER_assume(__cs_pc_cs[0] >= __cs_pc[0]); __CPROVER_assume(__cs_pc_cs[0] <= 6); main_thread(); } return 0; }
int main(void) { unsigned int __cs_tmp_t0_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t1_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t2_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t3_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t4_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t5_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t6_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t7_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t8_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t9_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t10_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t11_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t12_r0 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t0_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t1_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t2_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t3_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t4_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t5_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t6_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t7_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t8_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t9_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t10_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t11_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t12_r1 = __VERIFIER_nondet_uint(); unsigned int __cs_tmp_t0_r2 = __VERIFIER_nondet_uint(); /* round 0 */ __VERIFIER_assume(__cs_tmp_t0_r0 > 0); __cs_thread_index = 0; __cs_pc_cs[0] = __cs_pc[0] + __cs_tmp_t0_r0; __VERIFIER_assume(__cs_pc_cs[0] > 0); __VERIFIER_assume(__cs_pc_cs[0] <= 24); main_thread(); __cs_pc[0] = __cs_pc_cs[0]; if (__cs_active_thread[1] == 1) { __cs_thread_index = 1; __cs_pc_cs[1] = __cs_pc[1] + __cs_tmp_t1_r0; __VERIFIER_assume(__cs_pc_cs[1] <= 1); thr1_0(__cs_threadargs[1]); __cs_pc[1] = __cs_pc_cs[1]; } if (__cs_active_thread[2] == 1) { __cs_thread_index = 2; __cs_pc_cs[2] = __cs_pc[2] + __cs_tmp_t2_r0; __VERIFIER_assume(__cs_pc_cs[2] <= 3); thr2_0(__cs_threadargs[2]); __cs_pc[2] = __cs_pc_cs[2]; } if (__cs_active_thread[3] == 1) { __cs_thread_index = 3; __cs_pc_cs[3] = __cs_pc[3] + __cs_tmp_t3_r0; __VERIFIER_assume(__cs_pc_cs[3] <= 3); thr2_1(__cs_threadargs[3]); __cs_pc[3] = __cs_pc_cs[3]; } if (__cs_active_thread[4] == 1) { __cs_thread_index = 4; __cs_pc_cs[4] = __cs_pc[4] + __cs_tmp_t4_r0; __VERIFIER_assume(__cs_pc_cs[4] <= 3); thr2_2(__cs_threadargs[4]); __cs_pc[4] = __cs_pc_cs[4]; } if (__cs_active_thread[5] == 1) { __cs_thread_index = 5; __cs_pc_cs[5] = __cs_pc[5] + __cs_tmp_t5_r0; __VERIFIER_assume(__cs_pc_cs[5] <= 3); thr2_3(__cs_threadargs[5]); __cs_pc[5] = __cs_pc_cs[5]; } if (__cs_active_thread[6] == 1) { __cs_thread_index = 6; __cs_pc_cs[6] = __cs_pc[6] + __cs_tmp_t6_r0; __VERIFIER_assume(__cs_pc_cs[6] <= 3); thr2_4(__cs_threadargs[6]); __cs_pc[6] = __cs_pc_cs[6]; } if (__cs_active_thread[7] == 1) { __cs_thread_index = 7; __cs_pc_cs[7] = __cs_pc[7] + __cs_tmp_t7_r0; __VERIFIER_assume(__cs_pc_cs[7] <= 3); thr2_5(__cs_threadargs[7]); __cs_pc[7] = __cs_pc_cs[7]; } if (__cs_active_thread[8] == 1) { __cs_thread_index = 8; __cs_pc_cs[8] = __cs_pc[8] + __cs_tmp_t8_r0; __VERIFIER_assume(__cs_pc_cs[8] <= 3); thr2_6(__cs_threadargs[8]); __cs_pc[8] = __cs_pc_cs[8]; } if (__cs_active_thread[9] == 1) { __cs_thread_index = 9; __cs_pc_cs[9] = __cs_pc[9] + __cs_tmp_t9_r0; __VERIFIER_assume(__cs_pc_cs[9] <= 3); thr2_7(__cs_threadargs[9]); __cs_pc[9] = __cs_pc_cs[9]; } if (__cs_active_thread[10] == 1) { __cs_thread_index = 10; __cs_pc_cs[10] = __cs_pc[10] + __cs_tmp_t10_r0; __VERIFIER_assume(__cs_pc_cs[10] <= 3); thr2_8(__cs_threadargs[10]); __cs_pc[10] = __cs_pc_cs[10]; } if (__cs_active_thread[11] == 1) { __cs_thread_index = 11; __cs_pc_cs[11] = __cs_pc[11] + __cs_tmp_t11_r0; __VERIFIER_assume(__cs_pc_cs[11] <= 3); thr2_9(__cs_threadargs[11]); __cs_pc[11] = __cs_pc_cs[11]; } if (__cs_active_thread[12] == 1) { __cs_thread_index = 12; __cs_pc_cs[12] = __cs_pc[12] + __cs_tmp_t12_r0; __VERIFIER_assume(__cs_pc_cs[12] <= 3); thr2_10(__cs_threadargs[12]); __cs_pc[12] = __cs_pc_cs[12]; } /* round 1 */ if (__cs_active_thread[0] == 1) { __cs_thread_index = 0; __cs_pc_cs[0] = __cs_pc[0] + __cs_tmp_t0_r1; __VERIFIER_assume(__cs_pc_cs[0] >= __cs_pc[0]); __VERIFIER_assume(__cs_pc_cs[0] <= 24); main_thread(); __cs_pc[0] = __cs_pc_cs[0]; } if (__cs_active_thread[1] == 1) { __cs_thread_index = 1; __cs_pc_cs[1] = __cs_pc[1] + __cs_tmp_t1_r1; __VERIFIER_assume(__cs_pc_cs[1] >= __cs_pc[1]); __VERIFIER_assume(__cs_pc_cs[1] <= 1); thr1_0(__cs_threadargs[__cs_thread_index]); __cs_pc[1] = __cs_pc_cs[1]; } if (__cs_active_thread[2] == 1) { __cs_thread_index = 2; __cs_pc_cs[2] = __cs_pc[2] + __cs_tmp_t2_r1; __VERIFIER_assume(__cs_pc_cs[2] >= __cs_pc[2]); __VERIFIER_assume(__cs_pc_cs[2] <= 3); thr2_0(__cs_threadargs[__cs_thread_index]); __cs_pc[2] = __cs_pc_cs[2]; } if (__cs_active_thread[3] == 1) { __cs_thread_index = 3; __cs_pc_cs[3] = __cs_pc[3] + __cs_tmp_t3_r1; __VERIFIER_assume(__cs_pc_cs[3] >= __cs_pc[3]); __VERIFIER_assume(__cs_pc_cs[3] <= 3); thr2_1(__cs_threadargs[__cs_thread_index]); __cs_pc[3] = __cs_pc_cs[3]; } if (__cs_active_thread[4] == 1) { __cs_thread_index = 4; __cs_pc_cs[4] = __cs_pc[4] + __cs_tmp_t4_r1; __VERIFIER_assume(__cs_pc_cs[4] >= __cs_pc[4]); __VERIFIER_assume(__cs_pc_cs[4] <= 3); thr2_2(__cs_threadargs[__cs_thread_index]); __cs_pc[4] = __cs_pc_cs[4]; } if (__cs_active_thread[5] == 1) { __cs_thread_index = 5; __cs_pc_cs[5] = __cs_pc[5] + __cs_tmp_t5_r1; __VERIFIER_assume(__cs_pc_cs[5] >= __cs_pc[5]); __VERIFIER_assume(__cs_pc_cs[5] <= 3); thr2_3(__cs_threadargs[__cs_thread_index]); __cs_pc[5] = __cs_pc_cs[5]; } if (__cs_active_thread[6] == 1) { __cs_thread_index = 6; __cs_pc_cs[6] = __cs_pc[6] + __cs_tmp_t6_r1; __VERIFIER_assume(__cs_pc_cs[6] >= __cs_pc[6]); __VERIFIER_assume(__cs_pc_cs[6] <= 3); thr2_4(__cs_threadargs[__cs_thread_index]); __cs_pc[6] = __cs_pc_cs[6]; } if (__cs_active_thread[7] == 1) { __cs_thread_index = 7; __cs_pc_cs[7] = __cs_pc[7] + __cs_tmp_t7_r1; __VERIFIER_assume(__cs_pc_cs[7] >= __cs_pc[7]); __VERIFIER_assume(__cs_pc_cs[7] <= 3); thr2_5(__cs_threadargs[__cs_thread_index]); __cs_pc[7] = __cs_pc_cs[7]; } if (__cs_active_thread[8] == 1) { __cs_thread_index = 8; __cs_pc_cs[8] = __cs_pc[8] + __cs_tmp_t8_r1; __VERIFIER_assume(__cs_pc_cs[8] >= __cs_pc[8]); __VERIFIER_assume(__cs_pc_cs[8] <= 3); thr2_6(__cs_threadargs[__cs_thread_index]); __cs_pc[8] = __cs_pc_cs[8]; } if (__cs_active_thread[9] == 1) { __cs_thread_index = 9; __cs_pc_cs[9] = __cs_pc[9] + __cs_tmp_t9_r1; __VERIFIER_assume(__cs_pc_cs[9] >= __cs_pc[9]); __VERIFIER_assume(__cs_pc_cs[9] <= 3); thr2_7(__cs_threadargs[__cs_thread_index]); __cs_pc[9] = __cs_pc_cs[9]; } if (__cs_active_thread[10] == 1) { __cs_thread_index = 10; __cs_pc_cs[10] = __cs_pc[10] + __cs_tmp_t10_r1; __VERIFIER_assume(__cs_pc_cs[10] >= __cs_pc[10]); __VERIFIER_assume(__cs_pc_cs[10] <= 3); thr2_8(__cs_threadargs[__cs_thread_index]); __cs_pc[10] = __cs_pc_cs[10]; } if (__cs_active_thread[11] == 1) { __cs_thread_index = 11; __cs_pc_cs[11] = __cs_pc[11] + __cs_tmp_t11_r1; __VERIFIER_assume(__cs_pc_cs[11] >= __cs_pc[11]); __VERIFIER_assume(__cs_pc_cs[11] <= 3); thr2_9(__cs_threadargs[__cs_thread_index]); __cs_pc[11] = __cs_pc_cs[11]; } if (__cs_active_thread[12] == 1) { __cs_thread_index = 12; __cs_pc_cs[12] = __cs_pc[12] + __cs_tmp_t12_r1; __VERIFIER_assume(__cs_pc_cs[12] >= __cs_pc[12]); __VERIFIER_assume(__cs_pc_cs[12] <= 3); thr2_10(__cs_threadargs[__cs_thread_index]); __cs_pc[12] = __cs_pc_cs[12]; } if (__cs_active_thread[0] == 1) { __cs_thread_index = 0; __cs_pc_cs[0] = __cs_pc[0] + __cs_tmp_t0_r2; __VERIFIER_assume(__cs_pc_cs[0] >= __cs_pc[0]); __VERIFIER_assume(__cs_pc_cs[0] <= 24); main_thread(); } return 0; }
int main(void) { unsigned __CPROVER_bitvector[3] tmp_t0_r0; unsigned __CPROVER_bitvector[3] tmp_t1_r0; unsigned __CPROVER_bitvector[3] tmp_t2_r0; unsigned __CPROVER_bitvector[3] tmp_t0_r1; unsigned __CPROVER_bitvector[3] tmp_t1_r1; unsigned __CPROVER_bitvector[3] tmp_t2_r1; unsigned __CPROVER_bitvector[3] tmp_t0_r2; unsigned __CPROVER_bitvector[3] tmp_t1_r2; unsigned __CPROVER_bitvector[3] tmp_t2_r2; unsigned __CPROVER_bitvector[3] tmp_t0_r3; unsigned __CPROVER_bitvector[3] tmp_t1_r3; unsigned __CPROVER_bitvector[3] tmp_t2_r3; unsigned __CPROVER_bitvector[3] tmp_t0_r4; unsigned __CPROVER_bitvector[3] tmp_t1_r4; unsigned __CPROVER_bitvector[3] tmp_t2_r4; unsigned __CPROVER_bitvector[3] tmp_t0_r5; unsigned __CPROVER_bitvector[3] tmp_t1_r5; unsigned __CPROVER_bitvector[3] tmp_t2_r5; unsigned __CPROVER_bitvector[3] tmp_t0_r6; unsigned __CPROVER_bitvector[3] tmp_t1_r6; unsigned __CPROVER_bitvector[3] tmp_t2_r6; unsigned __CPROVER_bitvector[3] tmp_t0_r7; unsigned __CPROVER_bitvector[3] tmp_t1_r7; unsigned __CPROVER_bitvector[3] tmp_t2_r7; unsigned __CPROVER_bitvector[3] tmp_t0_r8; unsigned __CPROVER_bitvector[3] tmp_t1_r8; unsigned __CPROVER_bitvector[3] tmp_t2_r8; unsigned __CPROVER_bitvector[3] tmp_t0_r9; unsigned __CPROVER_bitvector[3] tmp_t1_r9; unsigned __CPROVER_bitvector[3] tmp_t2_r9; unsigned __CPROVER_bitvector[3] tmp_t0_r10; unsigned __CPROVER_bitvector[3] tmp_t1_r10; unsigned __CPROVER_bitvector[3] tmp_t2_r10; unsigned __CPROVER_bitvector[3] tmp_t0_r11; // round 0 thread_index = 0; pc_cs[0] = pc[0] + tmp_t0_r0; assume(pc_cs[0] > 0); assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r0; assume(pc_cs[1] <= 6); thr1_0(threadargs[1]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r0; assume(pc_cs[2] <= 6); thr2_0(threadargs[2]); pc[2] = pc_cs[2]; } // round 1 thread_index = 0; if (active_thread[thread_index] == 1) { // main pc_cs[0] = pc[0] + tmp_t0_r1; assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; } thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r1; assume(pc_cs[1] <= 6); thr1_0(threadargs[thread_index]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r1; assume(pc_cs[2] <= 6); thr2_0(threadargs[thread_index]); pc[2] = pc_cs[2]; } // round 2 thread_index = 0; if (active_thread[thread_index] == 1) { // main pc_cs[0] = pc[0] + tmp_t0_r2; assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; } thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r2; assume(pc_cs[1] <= 6); thr1_0(threadargs[thread_index]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r2; assume(pc_cs[2] <= 6); thr2_0(threadargs[thread_index]); pc[2] = pc_cs[2]; } // round 3 thread_index = 0; if (active_thread[thread_index] == 1) { // main pc_cs[0] = pc[0] + tmp_t0_r3; assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; } thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r3; assume(pc_cs[1] <= 6); thr1_0(threadargs[thread_index]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r3; assume(pc_cs[2] <= 6); thr2_0(threadargs[thread_index]); pc[2] = pc_cs[2]; } // round 4 thread_index = 0; if (active_thread[thread_index] == 1) { // main pc_cs[0] = pc[0] + tmp_t0_r4; assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; } thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r4; assume(pc_cs[1] <= 6); thr1_0(threadargs[thread_index]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r4; assume(pc_cs[2] <= 6); thr2_0(threadargs[thread_index]); pc[2] = pc_cs[2]; } // round 5 thread_index = 0; if (active_thread[thread_index] == 1) { // main pc_cs[0] = pc[0] + tmp_t0_r5; assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; } thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r5; assume(pc_cs[1] <= 6); thr1_0(threadargs[thread_index]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r5; assume(pc_cs[2] <= 6); thr2_0(threadargs[thread_index]); pc[2] = pc_cs[2]; } // round 6 thread_index = 0; if (active_thread[thread_index] == 1) { // main pc_cs[0] = pc[0] + tmp_t0_r6; assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; } thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r6; assume(pc_cs[1] <= 6); thr1_0(threadargs[thread_index]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r6; assume(pc_cs[2] <= 6); thr2_0(threadargs[thread_index]); pc[2] = pc_cs[2]; } // round 7 thread_index = 0; if (active_thread[thread_index] == 1) { // main pc_cs[0] = pc[0] + tmp_t0_r7; assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; } thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r7; assume(pc_cs[1] <= 6); thr1_0(threadargs[thread_index]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r7; assume(pc_cs[2] <= 6); thr2_0(threadargs[thread_index]); pc[2] = pc_cs[2]; } // round 8 thread_index = 0; if (active_thread[thread_index] == 1) { // main pc_cs[0] = pc[0] + tmp_t0_r8; assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; } thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r8; assume(pc_cs[1] <= 6); thr1_0(threadargs[thread_index]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r8; assume(pc_cs[2] <= 6); thr2_0(threadargs[thread_index]); pc[2] = pc_cs[2]; } // round 9 thread_index = 0; if (active_thread[thread_index] == 1) { // main pc_cs[0] = pc[0] + tmp_t0_r9; assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; } thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r9; assume(pc_cs[1] <= 6); thr1_0(threadargs[thread_index]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r9; assume(pc_cs[2] <= 6); thr2_0(threadargs[thread_index]); pc[2] = pc_cs[2]; } // round 10 thread_index = 0; if (active_thread[thread_index] == 1) { // main pc_cs[0] = pc[0] + tmp_t0_r10; assume(pc_cs[0] <= 4); main_thread(); pc[0] = pc_cs[0]; } thread_index = 1; if (active_thread[thread_index] == 1) { // thr1_0 pc_cs[1] = pc[1] + tmp_t1_r10; assume(pc_cs[1] <= 6); thr1_0(threadargs[thread_index]); pc[1] = pc_cs[1]; } thread_index = 2; if (active_thread[thread_index] == 1) { // thr2_0 pc_cs[2] = pc[2] + tmp_t2_r10; assume(pc_cs[2] <= 6); thr2_0(threadargs[thread_index]); pc[2] = pc_cs[2]; } thread_index = 0; if (active_thread[0] == 1) { pc_cs[0] = pc[0] + tmp_t0_r11; assume(pc_cs[0] <= 4); main_thread(); } return 0; }