@SHIFT_TABLE = global [16 x i32] [i32 1, i32 2, i32 4, i32 8, i32 16, i32 32, i32 64, i32 128, i32 256, i32 512, i32 1024, i32 2048, i32 4096, i32 8192, i32 16384, i32 32768] declare i32 @getint() declare float @getfloat() declare i32 @getarray(i32* %arg.a) declare i32 @getfarray(float* %arg.a) declare i32 @getch() declare void @putint(i32 %arg.x) declare void @putfloat(float %arg.x) declare void @putarray(i32 %arg.n, i32* %arg.a) declare void @putfarray(i32 %arg.n, float* %arg.a) declare void @putch(i32 %arg.x) declare void @starttime() declare void @stoptime() define i32 @long_func() { entry: %t0 = alloca i32 %t1 = alloca i32 %t2 = alloca i32 %t3 = alloca i32 %t4 = alloca i32 %t5 = alloca i32 %t6 = alloca i32 %t7 = alloca i32 %t36 = alloca i32 %t38 = alloca i32 %t40 = alloca i32 %t67 = alloca i32 %t69 = alloca i32 %t71 = alloca i32 %t162 = alloca i32 %t164 = alloca i32 %t166 = alloca i32 %t296 = alloca i32 %t298 = alloca i32 %t300 = alloca i32 %t327 = alloca i32 %t329 = alloca i32 %t331 = alloca i32 %t422 = alloca i32 %t424 = alloca i32 %t426 = alloca i32 %t597 = alloca i32 %t598 = alloca i32 %t599 = alloca i32 %t628 = alloca i32 %t630 = alloca i32 %t632 = alloca i32 %t659 = alloca i32 %t661 = alloca i32 %t663 = alloca i32 %t754 = alloca i32 %t756 = alloca i32 %t758 = alloca i32 %t888 = alloca i32 %t890 = alloca i32 %t892 = alloca i32 %t919 = alloca i32 %t921 = alloca i32 %t923 = alloca i32 %t1014 = alloca i32 %t1016 = alloca i32 %t1018 = alloca i32 %t1193 = alloca i32 %t1194 = alloca i32 %t1196 = alloca i32 %t1225 = alloca i32 %t1227 = alloca i32 %t1229 = alloca i32 %t1256 = alloca i32 %t1258 = alloca i32 %t1260 = alloca i32 %t1351 = alloca i32 %t1353 = alloca i32 %t1355 = alloca i32 %t1485 = alloca i32 %t1487 = alloca i32 %t1489 = alloca i32 %t1516 = alloca i32 %t1518 = alloca i32 %t1520 = alloca i32 %t1611 = alloca i32 %t1613 = alloca i32 %t1615 = alloca i32 %t1792 = alloca i32 %t1793 = alloca i32 %t1795 = alloca i32 %t1824 = alloca i32 %t1826 = alloca i32 %t1828 = alloca i32 %t1855 = alloca i32 %t1857 = alloca i32 %t1859 = alloca i32 %t1950 = alloca i32 %t1952 = alloca i32 %t1954 = alloca i32 %t2084 = alloca i32 %t2086 = alloca i32 %t2088 = alloca i32 %t2115 = alloca i32 %t2117 = alloca i32 %t2119 = alloca i32 %t2210 = alloca i32 %t2212 = alloca i32 %t2214 = alloca i32 store i32 0, i32* %t0 store i32 0, i32* %t1 store i32 0, i32* %t2 store i32 0, i32* %t3 store i32 0, i32* %t4 store i32 2, i32* %t5 store i32 0, i32* %t6 store i32 1, i32* %t7 br label %while.cond.1 while.cond.1: %t8 = load i32, i32* %t6 %t9 = icmp sgt i32 %t8, 0 %t10 = zext i1 %t9 to i32 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %while.body.2, label %while.end.3 while.body.2: store i32 0, i32* %t0 store i32 0, i32* %t1 %t12 = load i32, i32* %t6 store i32 %t12, i32* %t2 store i32 1, i32* %t3 br label %while.cond.4 while.end.3: %t593 = load i32, i32* %t7 store i32 %t593, i32* %t0 %t594 = load i32, i32* %t0 call void @putint(i32 %t594) call void @putch(i32 10) store i32 2, i32* %t597 store i32 1, i32* %t598 store i32 1, i32* %t599 br label %while.cond.182 while.cond.4: %t13 = load i32, i32* %t1 %t14 = icmp slt i32 %t13, 16 %t15 = zext i1 %t14 to i32 %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %while.body.5, label %while.end.6 while.body.5: %t17 = load i32, i32* %t2 %t18 = srem i32 %t17, 2 %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %land.rhs.9, label %if.end.8 while.end.6: %t34 = load i32, i32* %t0 %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %if.then.10, label %if.end.11 if.then.7: %t23 = load i32, i32* %t0 %t24 = load i32, i32* %t1 %t25 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t24 %t26 = load i32, i32* %t25 %t27 = add i32 %t23, %t26 store i32 %t27, i32* %t0 br label %if.end.8 if.end.8: %t28 = load i32, i32* %t2 %t29 = sdiv i32 %t28, 2 store i32 %t29, i32* %t2 %t30 = load i32, i32* %t3 %t31 = sdiv i32 %t30, 2 store i32 %t31, i32* %t3 %t32 = load i32, i32* %t1 %t33 = add i32 %t32, 1 store i32 %t33, i32* %t1 br label %while.cond.4 land.rhs.9: %t20 = load i32, i32* %t3 %t21 = srem i32 %t20, 2 %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %if.then.7, label %if.end.8 if.then.10: %t37 = load i32, i32* %t7 store i32 %t37, i32* %t36 %t39 = load i32, i32* %t5 store i32 %t39, i32* %t38 store i32 0, i32* %t40 br label %while.cond.12 if.end.11: %t297 = load i32, i32* %t5 store i32 %t297, i32* %t296 %t299 = load i32, i32* %t5 store i32 %t299, i32* %t298 store i32 0, i32* %t300 br label %while.cond.91 while.cond.12: %t41 = load i32, i32* %t38 %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %while.body.13, label %while.end.14 while.body.13: store i32 0, i32* %t0 store i32 0, i32* %t1 %t43 = load i32, i32* %t38 store i32 %t43, i32* %t2 store i32 1, i32* %t3 br label %while.cond.15 while.end.14: %t294 = load i32, i32* %t40 store i32 %t294, i32* %t0 %t295 = load i32, i32* %t0 store i32 %t295, i32* %t7 br label %if.end.11 while.cond.15: %t44 = load i32, i32* %t1 %t45 = icmp slt i32 %t44, 16 %t46 = zext i1 %t45 to i32 %t47 = icmp ne i32 %t46, 0 br i1 %t47, label %while.body.16, label %while.end.17 while.body.16: %t48 = load i32, i32* %t2 %t49 = srem i32 %t48, 2 %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %land.rhs.20, label %if.end.19 while.end.17: %t65 = load i32, i32* %t0 %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %if.then.21, label %if.end.22 if.then.18: %t54 = load i32, i32* %t0 %t55 = load i32, i32* %t1 %t56 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t55 %t57 = load i32, i32* %t56 %t58 = add i32 %t54, %t57 store i32 %t58, i32* %t0 br label %if.end.19 if.end.19: %t59 = load i32, i32* %t2 %t60 = sdiv i32 %t59, 2 store i32 %t60, i32* %t2 %t61 = load i32, i32* %t3 %t62 = sdiv i32 %t61, 2 store i32 %t62, i32* %t3 %t63 = load i32, i32* %t1 %t64 = add i32 %t63, 1 store i32 %t64, i32* %t1 br label %while.cond.15 land.rhs.20: %t51 = load i32, i32* %t3 %t52 = srem i32 %t51, 2 %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %if.then.18, label %if.end.19 if.then.21: %t68 = load i32, i32* %t40 store i32 %t68, i32* %t67 %t70 = load i32, i32* %t36 store i32 %t70, i32* %t69 store i32 0, i32* %t71 br label %while.cond.23 if.end.22: %t163 = load i32, i32* %t36 store i32 %t163, i32* %t162 %t165 = load i32, i32* %t36 store i32 %t165, i32* %t164 store i32 0, i32* %t166 br label %while.cond.51 while.cond.23: %t72 = load i32, i32* %t69 %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %while.body.24, label %while.end.25 while.body.24: store i32 0, i32* %t0 store i32 0, i32* %t1 %t74 = load i32, i32* %t67 store i32 %t74, i32* %t2 %t75 = load i32, i32* %t69 store i32 %t75, i32* %t3 br label %while.cond.26 while.end.25: %t160 = load i32, i32* %t67 store i32 %t160, i32* %t0 %t161 = load i32, i32* %t0 store i32 %t161, i32* %t40 br label %if.end.22 while.cond.26: %t76 = load i32, i32* %t1 %t77 = icmp slt i32 %t76, 16 %t78 = zext i1 %t77 to i32 %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %while.body.27, label %while.end.28 while.body.27: %t80 = load i32, i32* %t2 %t81 = srem i32 %t80, 2 %t82 = icmp ne i32 %t81, 0 br i1 %t82, label %if.then.29, label %if.else.30 while.end.28: %t107 = load i32, i32* %t0 store i32 %t107, i32* %t71 store i32 0, i32* %t0 store i32 0, i32* %t1 %t108 = load i32, i32* %t67 store i32 %t108, i32* %t2 %t109 = load i32, i32* %t69 store i32 %t109, i32* %t3 br label %while.cond.36 if.then.29: %t83 = load i32, i32* %t3 %t84 = srem i32 %t83, 2 %t85 = icmp eq i32 %t84, 0 %t86 = zext i1 %t85 to i32 %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %if.then.32, label %if.end.33 if.else.30: %t93 = load i32, i32* %t3 %t94 = srem i32 %t93, 2 %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %if.then.34, label %if.end.35 if.end.31: %t101 = load i32, i32* %t2 %t102 = sdiv i32 %t101, 2 store i32 %t102, i32* %t2 %t103 = load i32, i32* %t3 %t104 = sdiv i32 %t103, 2 store i32 %t104, i32* %t3 %t105 = load i32, i32* %t1 %t106 = add i32 %t105, 1 store i32 %t106, i32* %t1 br label %while.cond.26 if.then.32: %t88 = load i32, i32* %t0 %t89 = load i32, i32* %t1 %t90 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t89 %t91 = load i32, i32* %t90 %t92 = add i32 %t88, %t91 store i32 %t92, i32* %t0 br label %if.end.33 if.end.33: br label %if.end.31 if.then.34: %t96 = load i32, i32* %t0 %t97 = load i32, i32* %t1 %t98 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t97 %t99 = load i32, i32* %t98 %t100 = add i32 %t96, %t99 store i32 %t100, i32* %t0 br label %if.end.35 if.end.35: br label %if.end.31 while.cond.36: %t110 = load i32, i32* %t1 %t111 = icmp slt i32 %t110, 16 %t112 = zext i1 %t111 to i32 %t113 = icmp ne i32 %t112, 0 br i1 %t113, label %while.body.37, label %while.end.38 while.body.37: %t114 = load i32, i32* %t2 %t115 = srem i32 %t114, 2 %t116 = icmp ne i32 %t115, 0 br i1 %t116, label %land.rhs.41, label %if.end.40 while.end.38: %t131 = load i32, i32* %t0 store i32 %t131, i32* %t69 %t132 = icmp ne i32 0, 0 br i1 %t132, label %if.then.42, label %if.else.43 if.then.39: %t120 = load i32, i32* %t0 %t121 = load i32, i32* %t1 %t122 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t121 %t123 = load i32, i32* %t122 %t124 = add i32 %t120, %t123 store i32 %t124, i32* %t0 br label %if.end.40 if.end.40: %t125 = load i32, i32* %t2 %t126 = sdiv i32 %t125, 2 store i32 %t126, i32* %t2 %t127 = load i32, i32* %t3 %t128 = sdiv i32 %t127, 2 store i32 %t128, i32* %t3 %t129 = load i32, i32* %t1 %t130 = add i32 %t129, 1 store i32 %t130, i32* %t1 br label %while.cond.36 land.rhs.41: %t117 = load i32, i32* %t3 %t118 = srem i32 %t117, 2 %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %if.then.39, label %if.end.40 if.then.42: store i32 0, i32* %t0 br label %if.end.44 if.else.43: store i32 0, i32* %t0 store i32 0, i32* %t1 %t133 = load i32, i32* %t69 %t134 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t135 = load i32, i32* %t134 %t136 = mul i32 %t133, %t135 store i32 %t136, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.45 if.end.44: %t158 = load i32, i32* %t0 store i32 %t158, i32* %t69 %t159 = load i32, i32* %t71 store i32 %t159, i32* %t67 br label %while.cond.23 while.cond.45: %t137 = load i32, i32* %t1 %t138 = icmp slt i32 %t137, 16 %t139 = zext i1 %t138 to i32 %t140 = icmp ne i32 %t139, 0 br i1 %t140, label %while.body.46, label %while.end.47 while.body.46: %t141 = load i32, i32* %t2 %t142 = srem i32 %t141, 2 %t143 = icmp ne i32 %t142, 0 br i1 %t143, label %land.rhs.50, label %if.end.49 while.end.47: br label %if.end.44 if.then.48: %t147 = load i32, i32* %t0 %t148 = load i32, i32* %t1 %t149 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t148 %t150 = load i32, i32* %t149 %t151 = add i32 %t147, %t150 store i32 %t151, i32* %t0 br label %if.end.49 if.end.49: %t152 = load i32, i32* %t2 %t153 = sdiv i32 %t152, 2 store i32 %t153, i32* %t2 %t154 = load i32, i32* %t3 %t155 = sdiv i32 %t154, 2 store i32 %t155, i32* %t3 %t156 = load i32, i32* %t1 %t157 = add i32 %t156, 1 store i32 %t157, i32* %t1 br label %while.cond.45 land.rhs.50: %t144 = load i32, i32* %t3 %t145 = srem i32 %t144, 2 %t146 = icmp ne i32 %t145, 0 br i1 %t146, label %if.then.48, label %if.end.49 while.cond.51: %t167 = load i32, i32* %t164 %t168 = icmp ne i32 %t167, 0 br i1 %t168, label %while.body.52, label %while.end.53 while.body.52: store i32 0, i32* %t0 store i32 0, i32* %t1 %t169 = load i32, i32* %t162 store i32 %t169, i32* %t2 %t170 = load i32, i32* %t164 store i32 %t170, i32* %t3 br label %while.cond.54 while.end.53: %t255 = load i32, i32* %t162 store i32 %t255, i32* %t0 %t256 = load i32, i32* %t0 store i32 %t256, i32* %t36 %t257 = load i32, i32* %t38 store i32 %t257, i32* %t2 store i32 1, i32* %t3 %t258 = load i32, i32* %t3 %t259 = icmp sge i32 %t258, 15 %t260 = zext i1 %t259 to i32 %t261 = icmp ne i32 %t260, 0 br i1 %t261, label %if.then.79, label %if.else.80 while.cond.54: %t171 = load i32, i32* %t1 %t172 = icmp slt i32 %t171, 16 %t173 = zext i1 %t172 to i32 %t174 = icmp ne i32 %t173, 0 br i1 %t174, label %while.body.55, label %while.end.56 while.body.55: %t175 = load i32, i32* %t2 %t176 = srem i32 %t175, 2 %t177 = icmp ne i32 %t176, 0 br i1 %t177, label %if.then.57, label %if.else.58 while.end.56: %t202 = load i32, i32* %t0 store i32 %t202, i32* %t166 store i32 0, i32* %t0 store i32 0, i32* %t1 %t203 = load i32, i32* %t162 store i32 %t203, i32* %t2 %t204 = load i32, i32* %t164 store i32 %t204, i32* %t3 br label %while.cond.64 if.then.57: %t178 = load i32, i32* %t3 %t179 = srem i32 %t178, 2 %t180 = icmp eq i32 %t179, 0 %t181 = zext i1 %t180 to i32 %t182 = icmp ne i32 %t181, 0 br i1 %t182, label %if.then.60, label %if.end.61 if.else.58: %t188 = load i32, i32* %t3 %t189 = srem i32 %t188, 2 %t190 = icmp ne i32 %t189, 0 br i1 %t190, label %if.then.62, label %if.end.63 if.end.59: %t196 = load i32, i32* %t2 %t197 = sdiv i32 %t196, 2 store i32 %t197, i32* %t2 %t198 = load i32, i32* %t3 %t199 = sdiv i32 %t198, 2 store i32 %t199, i32* %t3 %t200 = load i32, i32* %t1 %t201 = add i32 %t200, 1 store i32 %t201, i32* %t1 br label %while.cond.54 if.then.60: %t183 = load i32, i32* %t0 %t184 = load i32, i32* %t1 %t185 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t184 %t186 = load i32, i32* %t185 %t187 = add i32 %t183, %t186 store i32 %t187, i32* %t0 br label %if.end.61 if.end.61: br label %if.end.59 if.then.62: %t191 = load i32, i32* %t0 %t192 = load i32, i32* %t1 %t193 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t192 %t194 = load i32, i32* %t193 %t195 = add i32 %t191, %t194 store i32 %t195, i32* %t0 br label %if.end.63 if.end.63: br label %if.end.59 while.cond.64: %t205 = load i32, i32* %t1 %t206 = icmp slt i32 %t205, 16 %t207 = zext i1 %t206 to i32 %t208 = icmp ne i32 %t207, 0 br i1 %t208, label %while.body.65, label %while.end.66 while.body.65: %t209 = load i32, i32* %t2 %t210 = srem i32 %t209, 2 %t211 = icmp ne i32 %t210, 0 br i1 %t211, label %land.rhs.69, label %if.end.68 while.end.66: %t226 = load i32, i32* %t0 store i32 %t226, i32* %t164 %t227 = icmp ne i32 0, 0 br i1 %t227, label %if.then.70, label %if.else.71 if.then.67: %t215 = load i32, i32* %t0 %t216 = load i32, i32* %t1 %t217 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t216 %t218 = load i32, i32* %t217 %t219 = add i32 %t215, %t218 store i32 %t219, i32* %t0 br label %if.end.68 if.end.68: %t220 = load i32, i32* %t2 %t221 = sdiv i32 %t220, 2 store i32 %t221, i32* %t2 %t222 = load i32, i32* %t3 %t223 = sdiv i32 %t222, 2 store i32 %t223, i32* %t3 %t224 = load i32, i32* %t1 %t225 = add i32 %t224, 1 store i32 %t225, i32* %t1 br label %while.cond.64 land.rhs.69: %t212 = load i32, i32* %t3 %t213 = srem i32 %t212, 2 %t214 = icmp ne i32 %t213, 0 br i1 %t214, label %if.then.67, label %if.end.68 if.then.70: store i32 0, i32* %t0 br label %if.end.72 if.else.71: store i32 0, i32* %t0 store i32 0, i32* %t1 %t228 = load i32, i32* %t164 %t229 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t230 = load i32, i32* %t229 %t231 = mul i32 %t228, %t230 store i32 %t231, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.73 if.end.72: %t253 = load i32, i32* %t0 store i32 %t253, i32* %t164 %t254 = load i32, i32* %t166 store i32 %t254, i32* %t162 br label %while.cond.51 while.cond.73: %t232 = load i32, i32* %t1 %t233 = icmp slt i32 %t232, 16 %t234 = zext i1 %t233 to i32 %t235 = icmp ne i32 %t234, 0 br i1 %t235, label %while.body.74, label %while.end.75 while.body.74: %t236 = load i32, i32* %t2 %t237 = srem i32 %t236, 2 %t238 = icmp ne i32 %t237, 0 br i1 %t238, label %land.rhs.78, label %if.end.77 while.end.75: br label %if.end.72 if.then.76: %t242 = load i32, i32* %t0 %t243 = load i32, i32* %t1 %t244 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t243 %t245 = load i32, i32* %t244 %t246 = add i32 %t242, %t245 store i32 %t246, i32* %t0 br label %if.end.77 if.end.77: %t247 = load i32, i32* %t2 %t248 = sdiv i32 %t247, 2 store i32 %t248, i32* %t2 %t249 = load i32, i32* %t3 %t250 = sdiv i32 %t249, 2 store i32 %t250, i32* %t3 %t251 = load i32, i32* %t1 %t252 = add i32 %t251, 1 store i32 %t252, i32* %t1 br label %while.cond.73 land.rhs.78: %t239 = load i32, i32* %t3 %t240 = srem i32 %t239, 2 %t241 = icmp ne i32 %t240, 0 br i1 %t241, label %if.then.76, label %if.end.77 if.then.79: %t262 = load i32, i32* %t2 %t263 = icmp slt i32 %t262, 0 %t264 = zext i1 %t263 to i32 %t265 = icmp ne i32 %t264, 0 br i1 %t265, label %if.then.82, label %if.else.83 if.else.80: %t266 = load i32, i32* %t3 %t267 = icmp sgt i32 %t266, 0 %t268 = zext i1 %t267 to i32 %t269 = icmp ne i32 %t268, 0 br i1 %t269, label %if.then.85, label %if.else.86 if.end.81: %t293 = load i32, i32* %t0 store i32 %t293, i32* %t38 br label %while.cond.12 if.then.82: store i32 65535, i32* %t0 br label %if.end.84 if.else.83: store i32 0, i32* %t0 br label %if.end.84 if.end.84: br label %if.end.81 if.then.85: %t270 = load i32, i32* %t2 %t271 = icmp sgt i32 %t270, 32767 %t272 = zext i1 %t271 to i32 %t273 = icmp ne i32 %t272, 0 br i1 %t273, label %if.then.88, label %if.else.89 if.else.86: %t292 = load i32, i32* %t2 store i32 %t292, i32* %t0 br label %if.end.87 if.end.87: br label %if.end.81 if.then.88: %t274 = load i32, i32* %t2 %t275 = load i32, i32* %t3 %t276 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t275 %t277 = load i32, i32* %t276 %t278 = sdiv i32 %t274, %t277 store i32 %t278, i32* %t2 %t279 = load i32, i32* %t2 %t280 = add i32 %t279, 65536 %t281 = load i32, i32* %t3 %t282 = sub i32 15, %t281 %t283 = add i32 %t282, 1 %t284 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t283 %t285 = load i32, i32* %t284 %t286 = sub i32 %t280, %t285 store i32 %t286, i32* %t0 br label %if.end.90 if.else.89: %t287 = load i32, i32* %t2 %t288 = load i32, i32* %t3 %t289 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t288 %t290 = load i32, i32* %t289 %t291 = sdiv i32 %t287, %t290 store i32 %t291, i32* %t0 br label %if.end.90 if.end.90: br label %if.end.87 while.cond.91: %t301 = load i32, i32* %t298 %t302 = icmp ne i32 %t301, 0 br i1 %t302, label %while.body.92, label %while.end.93 while.body.92: store i32 0, i32* %t0 store i32 0, i32* %t1 %t303 = load i32, i32* %t298 store i32 %t303, i32* %t2 store i32 1, i32* %t3 br label %while.cond.94 while.end.93: %t554 = load i32, i32* %t300 store i32 %t554, i32* %t0 %t555 = load i32, i32* %t0 store i32 %t555, i32* %t5 %t556 = load i32, i32* %t6 store i32 %t556, i32* %t2 store i32 1, i32* %t3 %t557 = load i32, i32* %t3 %t558 = icmp sge i32 %t557, 15 %t559 = zext i1 %t558 to i32 %t560 = icmp ne i32 %t559, 0 br i1 %t560, label %if.then.170, label %if.else.171 while.cond.94: %t304 = load i32, i32* %t1 %t305 = icmp slt i32 %t304, 16 %t306 = zext i1 %t305 to i32 %t307 = icmp ne i32 %t306, 0 br i1 %t307, label %while.body.95, label %while.end.96 while.body.95: %t308 = load i32, i32* %t2 %t309 = srem i32 %t308, 2 %t310 = icmp ne i32 %t309, 0 br i1 %t310, label %land.rhs.99, label %if.end.98 while.end.96: %t325 = load i32, i32* %t0 %t326 = icmp ne i32 %t325, 0 br i1 %t326, label %if.then.100, label %if.end.101 if.then.97: %t314 = load i32, i32* %t0 %t315 = load i32, i32* %t1 %t316 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t315 %t317 = load i32, i32* %t316 %t318 = add i32 %t314, %t317 store i32 %t318, i32* %t0 br label %if.end.98 if.end.98: %t319 = load i32, i32* %t2 %t320 = sdiv i32 %t319, 2 store i32 %t320, i32* %t2 %t321 = load i32, i32* %t3 %t322 = sdiv i32 %t321, 2 store i32 %t322, i32* %t3 %t323 = load i32, i32* %t1 %t324 = add i32 %t323, 1 store i32 %t324, i32* %t1 br label %while.cond.94 land.rhs.99: %t311 = load i32, i32* %t3 %t312 = srem i32 %t311, 2 %t313 = icmp ne i32 %t312, 0 br i1 %t313, label %if.then.97, label %if.end.98 if.then.100: %t328 = load i32, i32* %t300 store i32 %t328, i32* %t327 %t330 = load i32, i32* %t296 store i32 %t330, i32* %t329 store i32 0, i32* %t331 br label %while.cond.102 if.end.101: %t423 = load i32, i32* %t296 store i32 %t423, i32* %t422 %t425 = load i32, i32* %t296 store i32 %t425, i32* %t424 store i32 0, i32* %t426 br label %while.cond.130 while.cond.102: %t332 = load i32, i32* %t329 %t333 = icmp ne i32 %t332, 0 br i1 %t333, label %while.body.103, label %while.end.104 while.body.103: store i32 0, i32* %t0 store i32 0, i32* %t1 %t334 = load i32, i32* %t327 store i32 %t334, i32* %t2 %t335 = load i32, i32* %t329 store i32 %t335, i32* %t3 br label %while.cond.105 while.end.104: %t420 = load i32, i32* %t327 store i32 %t420, i32* %t0 %t421 = load i32, i32* %t0 store i32 %t421, i32* %t300 br label %if.end.101 while.cond.105: %t336 = load i32, i32* %t1 %t337 = icmp slt i32 %t336, 16 %t338 = zext i1 %t337 to i32 %t339 = icmp ne i32 %t338, 0 br i1 %t339, label %while.body.106, label %while.end.107 while.body.106: %t340 = load i32, i32* %t2 %t341 = srem i32 %t340, 2 %t342 = icmp ne i32 %t341, 0 br i1 %t342, label %if.then.108, label %if.else.109 while.end.107: %t367 = load i32, i32* %t0 store i32 %t367, i32* %t331 store i32 0, i32* %t0 store i32 0, i32* %t1 %t368 = load i32, i32* %t327 store i32 %t368, i32* %t2 %t369 = load i32, i32* %t329 store i32 %t369, i32* %t3 br label %while.cond.115 if.then.108: %t343 = load i32, i32* %t3 %t344 = srem i32 %t343, 2 %t345 = icmp eq i32 %t344, 0 %t346 = zext i1 %t345 to i32 %t347 = icmp ne i32 %t346, 0 br i1 %t347, label %if.then.111, label %if.end.112 if.else.109: %t353 = load i32, i32* %t3 %t354 = srem i32 %t353, 2 %t355 = icmp ne i32 %t354, 0 br i1 %t355, label %if.then.113, label %if.end.114 if.end.110: %t361 = load i32, i32* %t2 %t362 = sdiv i32 %t361, 2 store i32 %t362, i32* %t2 %t363 = load i32, i32* %t3 %t364 = sdiv i32 %t363, 2 store i32 %t364, i32* %t3 %t365 = load i32, i32* %t1 %t366 = add i32 %t365, 1 store i32 %t366, i32* %t1 br label %while.cond.105 if.then.111: %t348 = load i32, i32* %t0 %t349 = load i32, i32* %t1 %t350 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t349 %t351 = load i32, i32* %t350 %t352 = add i32 %t348, %t351 store i32 %t352, i32* %t0 br label %if.end.112 if.end.112: br label %if.end.110 if.then.113: %t356 = load i32, i32* %t0 %t357 = load i32, i32* %t1 %t358 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t357 %t359 = load i32, i32* %t358 %t360 = add i32 %t356, %t359 store i32 %t360, i32* %t0 br label %if.end.114 if.end.114: br label %if.end.110 while.cond.115: %t370 = load i32, i32* %t1 %t371 = icmp slt i32 %t370, 16 %t372 = zext i1 %t371 to i32 %t373 = icmp ne i32 %t372, 0 br i1 %t373, label %while.body.116, label %while.end.117 while.body.116: %t374 = load i32, i32* %t2 %t375 = srem i32 %t374, 2 %t376 = icmp ne i32 %t375, 0 br i1 %t376, label %land.rhs.120, label %if.end.119 while.end.117: %t391 = load i32, i32* %t0 store i32 %t391, i32* %t329 %t392 = icmp ne i32 0, 0 br i1 %t392, label %if.then.121, label %if.else.122 if.then.118: %t380 = load i32, i32* %t0 %t381 = load i32, i32* %t1 %t382 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t381 %t383 = load i32, i32* %t382 %t384 = add i32 %t380, %t383 store i32 %t384, i32* %t0 br label %if.end.119 if.end.119: %t385 = load i32, i32* %t2 %t386 = sdiv i32 %t385, 2 store i32 %t386, i32* %t2 %t387 = load i32, i32* %t3 %t388 = sdiv i32 %t387, 2 store i32 %t388, i32* %t3 %t389 = load i32, i32* %t1 %t390 = add i32 %t389, 1 store i32 %t390, i32* %t1 br label %while.cond.115 land.rhs.120: %t377 = load i32, i32* %t3 %t378 = srem i32 %t377, 2 %t379 = icmp ne i32 %t378, 0 br i1 %t379, label %if.then.118, label %if.end.119 if.then.121: store i32 0, i32* %t0 br label %if.end.123 if.else.122: store i32 0, i32* %t0 store i32 0, i32* %t1 %t393 = load i32, i32* %t329 %t394 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t395 = load i32, i32* %t394 %t396 = mul i32 %t393, %t395 store i32 %t396, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.124 if.end.123: %t418 = load i32, i32* %t0 store i32 %t418, i32* %t329 %t419 = load i32, i32* %t331 store i32 %t419, i32* %t327 br label %while.cond.102 while.cond.124: %t397 = load i32, i32* %t1 %t398 = icmp slt i32 %t397, 16 %t399 = zext i1 %t398 to i32 %t400 = icmp ne i32 %t399, 0 br i1 %t400, label %while.body.125, label %while.end.126 while.body.125: %t401 = load i32, i32* %t2 %t402 = srem i32 %t401, 2 %t403 = icmp ne i32 %t402, 0 br i1 %t403, label %land.rhs.129, label %if.end.128 while.end.126: br label %if.end.123 if.then.127: %t407 = load i32, i32* %t0 %t408 = load i32, i32* %t1 %t409 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t408 %t410 = load i32, i32* %t409 %t411 = add i32 %t407, %t410 store i32 %t411, i32* %t0 br label %if.end.128 if.end.128: %t412 = load i32, i32* %t2 %t413 = sdiv i32 %t412, 2 store i32 %t413, i32* %t2 %t414 = load i32, i32* %t3 %t415 = sdiv i32 %t414, 2 store i32 %t415, i32* %t3 %t416 = load i32, i32* %t1 %t417 = add i32 %t416, 1 store i32 %t417, i32* %t1 br label %while.cond.124 land.rhs.129: %t404 = load i32, i32* %t3 %t405 = srem i32 %t404, 2 %t406 = icmp ne i32 %t405, 0 br i1 %t406, label %if.then.127, label %if.end.128 while.cond.130: %t427 = load i32, i32* %t424 %t428 = icmp ne i32 %t427, 0 br i1 %t428, label %while.body.131, label %while.end.132 while.body.131: store i32 0, i32* %t0 store i32 0, i32* %t1 %t429 = load i32, i32* %t422 store i32 %t429, i32* %t2 %t430 = load i32, i32* %t424 store i32 %t430, i32* %t3 br label %while.cond.133 while.end.132: %t515 = load i32, i32* %t422 store i32 %t515, i32* %t0 %t516 = load i32, i32* %t0 store i32 %t516, i32* %t296 %t517 = load i32, i32* %t298 store i32 %t517, i32* %t2 store i32 1, i32* %t3 %t518 = load i32, i32* %t3 %t519 = icmp sge i32 %t518, 15 %t520 = zext i1 %t519 to i32 %t521 = icmp ne i32 %t520, 0 br i1 %t521, label %if.then.158, label %if.else.159 while.cond.133: %t431 = load i32, i32* %t1 %t432 = icmp slt i32 %t431, 16 %t433 = zext i1 %t432 to i32 %t434 = icmp ne i32 %t433, 0 br i1 %t434, label %while.body.134, label %while.end.135 while.body.134: %t435 = load i32, i32* %t2 %t436 = srem i32 %t435, 2 %t437 = icmp ne i32 %t436, 0 br i1 %t437, label %if.then.136, label %if.else.137 while.end.135: %t462 = load i32, i32* %t0 store i32 %t462, i32* %t426 store i32 0, i32* %t0 store i32 0, i32* %t1 %t463 = load i32, i32* %t422 store i32 %t463, i32* %t2 %t464 = load i32, i32* %t424 store i32 %t464, i32* %t3 br label %while.cond.143 if.then.136: %t438 = load i32, i32* %t3 %t439 = srem i32 %t438, 2 %t440 = icmp eq i32 %t439, 0 %t441 = zext i1 %t440 to i32 %t442 = icmp ne i32 %t441, 0 br i1 %t442, label %if.then.139, label %if.end.140 if.else.137: %t448 = load i32, i32* %t3 %t449 = srem i32 %t448, 2 %t450 = icmp ne i32 %t449, 0 br i1 %t450, label %if.then.141, label %if.end.142 if.end.138: %t456 = load i32, i32* %t2 %t457 = sdiv i32 %t456, 2 store i32 %t457, i32* %t2 %t458 = load i32, i32* %t3 %t459 = sdiv i32 %t458, 2 store i32 %t459, i32* %t3 %t460 = load i32, i32* %t1 %t461 = add i32 %t460, 1 store i32 %t461, i32* %t1 br label %while.cond.133 if.then.139: %t443 = load i32, i32* %t0 %t444 = load i32, i32* %t1 %t445 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t444 %t446 = load i32, i32* %t445 %t447 = add i32 %t443, %t446 store i32 %t447, i32* %t0 br label %if.end.140 if.end.140: br label %if.end.138 if.then.141: %t451 = load i32, i32* %t0 %t452 = load i32, i32* %t1 %t453 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t452 %t454 = load i32, i32* %t453 %t455 = add i32 %t451, %t454 store i32 %t455, i32* %t0 br label %if.end.142 if.end.142: br label %if.end.138 while.cond.143: %t465 = load i32, i32* %t1 %t466 = icmp slt i32 %t465, 16 %t467 = zext i1 %t466 to i32 %t468 = icmp ne i32 %t467, 0 br i1 %t468, label %while.body.144, label %while.end.145 while.body.144: %t469 = load i32, i32* %t2 %t470 = srem i32 %t469, 2 %t471 = icmp ne i32 %t470, 0 br i1 %t471, label %land.rhs.148, label %if.end.147 while.end.145: %t486 = load i32, i32* %t0 store i32 %t486, i32* %t424 %t487 = icmp ne i32 0, 0 br i1 %t487, label %if.then.149, label %if.else.150 if.then.146: %t475 = load i32, i32* %t0 %t476 = load i32, i32* %t1 %t477 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t476 %t478 = load i32, i32* %t477 %t479 = add i32 %t475, %t478 store i32 %t479, i32* %t0 br label %if.end.147 if.end.147: %t480 = load i32, i32* %t2 %t481 = sdiv i32 %t480, 2 store i32 %t481, i32* %t2 %t482 = load i32, i32* %t3 %t483 = sdiv i32 %t482, 2 store i32 %t483, i32* %t3 %t484 = load i32, i32* %t1 %t485 = add i32 %t484, 1 store i32 %t485, i32* %t1 br label %while.cond.143 land.rhs.148: %t472 = load i32, i32* %t3 %t473 = srem i32 %t472, 2 %t474 = icmp ne i32 %t473, 0 br i1 %t474, label %if.then.146, label %if.end.147 if.then.149: store i32 0, i32* %t0 br label %if.end.151 if.else.150: store i32 0, i32* %t0 store i32 0, i32* %t1 %t488 = load i32, i32* %t424 %t489 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t490 = load i32, i32* %t489 %t491 = mul i32 %t488, %t490 store i32 %t491, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.152 if.end.151: %t513 = load i32, i32* %t0 store i32 %t513, i32* %t424 %t514 = load i32, i32* %t426 store i32 %t514, i32* %t422 br label %while.cond.130 while.cond.152: %t492 = load i32, i32* %t1 %t493 = icmp slt i32 %t492, 16 %t494 = zext i1 %t493 to i32 %t495 = icmp ne i32 %t494, 0 br i1 %t495, label %while.body.153, label %while.end.154 while.body.153: %t496 = load i32, i32* %t2 %t497 = srem i32 %t496, 2 %t498 = icmp ne i32 %t497, 0 br i1 %t498, label %land.rhs.157, label %if.end.156 while.end.154: br label %if.end.151 if.then.155: %t502 = load i32, i32* %t0 %t503 = load i32, i32* %t1 %t504 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t503 %t505 = load i32, i32* %t504 %t506 = add i32 %t502, %t505 store i32 %t506, i32* %t0 br label %if.end.156 if.end.156: %t507 = load i32, i32* %t2 %t508 = sdiv i32 %t507, 2 store i32 %t508, i32* %t2 %t509 = load i32, i32* %t3 %t510 = sdiv i32 %t509, 2 store i32 %t510, i32* %t3 %t511 = load i32, i32* %t1 %t512 = add i32 %t511, 1 store i32 %t512, i32* %t1 br label %while.cond.152 land.rhs.157: %t499 = load i32, i32* %t3 %t500 = srem i32 %t499, 2 %t501 = icmp ne i32 %t500, 0 br i1 %t501, label %if.then.155, label %if.end.156 if.then.158: %t522 = load i32, i32* %t2 %t523 = icmp slt i32 %t522, 0 %t524 = zext i1 %t523 to i32 %t525 = icmp ne i32 %t524, 0 br i1 %t525, label %if.then.161, label %if.else.162 if.else.159: %t526 = load i32, i32* %t3 %t527 = icmp sgt i32 %t526, 0 %t528 = zext i1 %t527 to i32 %t529 = icmp ne i32 %t528, 0 br i1 %t529, label %if.then.164, label %if.else.165 if.end.160: %t553 = load i32, i32* %t0 store i32 %t553, i32* %t298 br label %while.cond.91 if.then.161: store i32 65535, i32* %t0 br label %if.end.163 if.else.162: store i32 0, i32* %t0 br label %if.end.163 if.end.163: br label %if.end.160 if.then.164: %t530 = load i32, i32* %t2 %t531 = icmp sgt i32 %t530, 32767 %t532 = zext i1 %t531 to i32 %t533 = icmp ne i32 %t532, 0 br i1 %t533, label %if.then.167, label %if.else.168 if.else.165: %t552 = load i32, i32* %t2 store i32 %t552, i32* %t0 br label %if.end.166 if.end.166: br label %if.end.160 if.then.167: %t534 = load i32, i32* %t2 %t535 = load i32, i32* %t3 %t536 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t535 %t537 = load i32, i32* %t536 %t538 = sdiv i32 %t534, %t537 store i32 %t538, i32* %t2 %t539 = load i32, i32* %t2 %t540 = add i32 %t539, 65536 %t541 = load i32, i32* %t3 %t542 = sub i32 15, %t541 %t543 = add i32 %t542, 1 %t544 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t543 %t545 = load i32, i32* %t544 %t546 = sub i32 %t540, %t545 store i32 %t546, i32* %t0 br label %if.end.169 if.else.168: %t547 = load i32, i32* %t2 %t548 = load i32, i32* %t3 %t549 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t548 %t550 = load i32, i32* %t549 %t551 = sdiv i32 %t547, %t550 store i32 %t551, i32* %t0 br label %if.end.169 if.end.169: br label %if.end.166 if.then.170: %t561 = load i32, i32* %t2 %t562 = icmp slt i32 %t561, 0 %t563 = zext i1 %t562 to i32 %t564 = icmp ne i32 %t563, 0 br i1 %t564, label %if.then.173, label %if.else.174 if.else.171: %t565 = load i32, i32* %t3 %t566 = icmp sgt i32 %t565, 0 %t567 = zext i1 %t566 to i32 %t568 = icmp ne i32 %t567, 0 br i1 %t568, label %if.then.176, label %if.else.177 if.end.172: %t592 = load i32, i32* %t0 store i32 %t592, i32* %t6 br label %while.cond.1 if.then.173: store i32 65535, i32* %t0 br label %if.end.175 if.else.174: store i32 0, i32* %t0 br label %if.end.175 if.end.175: br label %if.end.172 if.then.176: %t569 = load i32, i32* %t2 %t570 = icmp sgt i32 %t569, 32767 %t571 = zext i1 %t570 to i32 %t572 = icmp ne i32 %t571, 0 br i1 %t572, label %if.then.179, label %if.else.180 if.else.177: %t591 = load i32, i32* %t2 store i32 %t591, i32* %t0 br label %if.end.178 if.end.178: br label %if.end.172 if.then.179: %t573 = load i32, i32* %t2 %t574 = load i32, i32* %t3 %t575 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t574 %t576 = load i32, i32* %t575 %t577 = sdiv i32 %t573, %t576 store i32 %t577, i32* %t2 %t578 = load i32, i32* %t2 %t579 = add i32 %t578, 65536 %t580 = load i32, i32* %t3 %t581 = sub i32 15, %t580 %t582 = add i32 %t581, 1 %t583 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t582 %t584 = load i32, i32* %t583 %t585 = sub i32 %t579, %t584 store i32 %t585, i32* %t0 br label %if.end.181 if.else.180: %t586 = load i32, i32* %t2 %t587 = load i32, i32* %t3 %t588 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t587 %t589 = load i32, i32* %t588 %t590 = sdiv i32 %t586, %t589 store i32 %t590, i32* %t0 br label %if.end.181 if.end.181: br label %if.end.178 while.cond.182: %t600 = load i32, i32* %t598 %t601 = icmp sgt i32 %t600, 0 %t602 = zext i1 %t601 to i32 %t603 = icmp ne i32 %t602, 0 br i1 %t603, label %while.body.183, label %while.end.184 while.body.183: store i32 0, i32* %t0 store i32 0, i32* %t1 %t604 = load i32, i32* %t598 store i32 %t604, i32* %t2 store i32 1, i32* %t3 br label %while.cond.185 while.end.184: %t1185 = load i32, i32* %t599 store i32 %t1185, i32* %t0 %t1186 = load i32, i32* %t0 call void @putint(i32 %t1186) call void @putch(i32 10) store i32 2, i32* %t4 br label %while.cond.363 while.cond.185: %t605 = load i32, i32* %t1 %t606 = icmp slt i32 %t605, 16 %t607 = zext i1 %t606 to i32 %t608 = icmp ne i32 %t607, 0 br i1 %t608, label %while.body.186, label %while.end.187 while.body.186: %t609 = load i32, i32* %t2 %t610 = srem i32 %t609, 2 %t611 = icmp ne i32 %t610, 0 br i1 %t611, label %land.rhs.190, label %if.end.189 while.end.187: %t626 = load i32, i32* %t0 %t627 = icmp ne i32 %t626, 0 br i1 %t627, label %if.then.191, label %if.end.192 if.then.188: %t615 = load i32, i32* %t0 %t616 = load i32, i32* %t1 %t617 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t616 %t618 = load i32, i32* %t617 %t619 = add i32 %t615, %t618 store i32 %t619, i32* %t0 br label %if.end.189 if.end.189: %t620 = load i32, i32* %t2 %t621 = sdiv i32 %t620, 2 store i32 %t621, i32* %t2 %t622 = load i32, i32* %t3 %t623 = sdiv i32 %t622, 2 store i32 %t623, i32* %t3 %t624 = load i32, i32* %t1 %t625 = add i32 %t624, 1 store i32 %t625, i32* %t1 br label %while.cond.185 land.rhs.190: %t612 = load i32, i32* %t3 %t613 = srem i32 %t612, 2 %t614 = icmp ne i32 %t613, 0 br i1 %t614, label %if.then.188, label %if.end.189 if.then.191: %t629 = load i32, i32* %t599 store i32 %t629, i32* %t628 %t631 = load i32, i32* %t597 store i32 %t631, i32* %t630 store i32 0, i32* %t632 br label %while.cond.193 if.end.192: %t889 = load i32, i32* %t597 store i32 %t889, i32* %t888 %t891 = load i32, i32* %t597 store i32 %t891, i32* %t890 store i32 0, i32* %t892 br label %while.cond.272 while.cond.193: %t633 = load i32, i32* %t630 %t634 = icmp ne i32 %t633, 0 br i1 %t634, label %while.body.194, label %while.end.195 while.body.194: store i32 0, i32* %t0 store i32 0, i32* %t1 %t635 = load i32, i32* %t630 store i32 %t635, i32* %t2 store i32 1, i32* %t3 br label %while.cond.196 while.end.195: %t886 = load i32, i32* %t632 store i32 %t886, i32* %t0 %t887 = load i32, i32* %t0 store i32 %t887, i32* %t599 br label %if.end.192 while.cond.196: %t636 = load i32, i32* %t1 %t637 = icmp slt i32 %t636, 16 %t638 = zext i1 %t637 to i32 %t639 = icmp ne i32 %t638, 0 br i1 %t639, label %while.body.197, label %while.end.198 while.body.197: %t640 = load i32, i32* %t2 %t641 = srem i32 %t640, 2 %t642 = icmp ne i32 %t641, 0 br i1 %t642, label %land.rhs.201, label %if.end.200 while.end.198: %t657 = load i32, i32* %t0 %t658 = icmp ne i32 %t657, 0 br i1 %t658, label %if.then.202, label %if.end.203 if.then.199: %t646 = load i32, i32* %t0 %t647 = load i32, i32* %t1 %t648 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t647 %t649 = load i32, i32* %t648 %t650 = add i32 %t646, %t649 store i32 %t650, i32* %t0 br label %if.end.200 if.end.200: %t651 = load i32, i32* %t2 %t652 = sdiv i32 %t651, 2 store i32 %t652, i32* %t2 %t653 = load i32, i32* %t3 %t654 = sdiv i32 %t653, 2 store i32 %t654, i32* %t3 %t655 = load i32, i32* %t1 %t656 = add i32 %t655, 1 store i32 %t656, i32* %t1 br label %while.cond.196 land.rhs.201: %t643 = load i32, i32* %t3 %t644 = srem i32 %t643, 2 %t645 = icmp ne i32 %t644, 0 br i1 %t645, label %if.then.199, label %if.end.200 if.then.202: %t660 = load i32, i32* %t632 store i32 %t660, i32* %t659 %t662 = load i32, i32* %t628 store i32 %t662, i32* %t661 store i32 0, i32* %t663 br label %while.cond.204 if.end.203: %t755 = load i32, i32* %t628 store i32 %t755, i32* %t754 %t757 = load i32, i32* %t628 store i32 %t757, i32* %t756 store i32 0, i32* %t758 br label %while.cond.232 while.cond.204: %t664 = load i32, i32* %t661 %t665 = icmp ne i32 %t664, 0 br i1 %t665, label %while.body.205, label %while.end.206 while.body.205: store i32 0, i32* %t0 store i32 0, i32* %t1 %t666 = load i32, i32* %t659 store i32 %t666, i32* %t2 %t667 = load i32, i32* %t661 store i32 %t667, i32* %t3 br label %while.cond.207 while.end.206: %t752 = load i32, i32* %t659 store i32 %t752, i32* %t0 %t753 = load i32, i32* %t0 store i32 %t753, i32* %t632 br label %if.end.203 while.cond.207: %t668 = load i32, i32* %t1 %t669 = icmp slt i32 %t668, 16 %t670 = zext i1 %t669 to i32 %t671 = icmp ne i32 %t670, 0 br i1 %t671, label %while.body.208, label %while.end.209 while.body.208: %t672 = load i32, i32* %t2 %t673 = srem i32 %t672, 2 %t674 = icmp ne i32 %t673, 0 br i1 %t674, label %if.then.210, label %if.else.211 while.end.209: %t699 = load i32, i32* %t0 store i32 %t699, i32* %t663 store i32 0, i32* %t0 store i32 0, i32* %t1 %t700 = load i32, i32* %t659 store i32 %t700, i32* %t2 %t701 = load i32, i32* %t661 store i32 %t701, i32* %t3 br label %while.cond.217 if.then.210: %t675 = load i32, i32* %t3 %t676 = srem i32 %t675, 2 %t677 = icmp eq i32 %t676, 0 %t678 = zext i1 %t677 to i32 %t679 = icmp ne i32 %t678, 0 br i1 %t679, label %if.then.213, label %if.end.214 if.else.211: %t685 = load i32, i32* %t3 %t686 = srem i32 %t685, 2 %t687 = icmp ne i32 %t686, 0 br i1 %t687, label %if.then.215, label %if.end.216 if.end.212: %t693 = load i32, i32* %t2 %t694 = sdiv i32 %t693, 2 store i32 %t694, i32* %t2 %t695 = load i32, i32* %t3 %t696 = sdiv i32 %t695, 2 store i32 %t696, i32* %t3 %t697 = load i32, i32* %t1 %t698 = add i32 %t697, 1 store i32 %t698, i32* %t1 br label %while.cond.207 if.then.213: %t680 = load i32, i32* %t0 %t681 = load i32, i32* %t1 %t682 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t681 %t683 = load i32, i32* %t682 %t684 = add i32 %t680, %t683 store i32 %t684, i32* %t0 br label %if.end.214 if.end.214: br label %if.end.212 if.then.215: %t688 = load i32, i32* %t0 %t689 = load i32, i32* %t1 %t690 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t689 %t691 = load i32, i32* %t690 %t692 = add i32 %t688, %t691 store i32 %t692, i32* %t0 br label %if.end.216 if.end.216: br label %if.end.212 while.cond.217: %t702 = load i32, i32* %t1 %t703 = icmp slt i32 %t702, 16 %t704 = zext i1 %t703 to i32 %t705 = icmp ne i32 %t704, 0 br i1 %t705, label %while.body.218, label %while.end.219 while.body.218: %t706 = load i32, i32* %t2 %t707 = srem i32 %t706, 2 %t708 = icmp ne i32 %t707, 0 br i1 %t708, label %land.rhs.222, label %if.end.221 while.end.219: %t723 = load i32, i32* %t0 store i32 %t723, i32* %t661 %t724 = icmp ne i32 0, 0 br i1 %t724, label %if.then.223, label %if.else.224 if.then.220: %t712 = load i32, i32* %t0 %t713 = load i32, i32* %t1 %t714 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t713 %t715 = load i32, i32* %t714 %t716 = add i32 %t712, %t715 store i32 %t716, i32* %t0 br label %if.end.221 if.end.221: %t717 = load i32, i32* %t2 %t718 = sdiv i32 %t717, 2 store i32 %t718, i32* %t2 %t719 = load i32, i32* %t3 %t720 = sdiv i32 %t719, 2 store i32 %t720, i32* %t3 %t721 = load i32, i32* %t1 %t722 = add i32 %t721, 1 store i32 %t722, i32* %t1 br label %while.cond.217 land.rhs.222: %t709 = load i32, i32* %t3 %t710 = srem i32 %t709, 2 %t711 = icmp ne i32 %t710, 0 br i1 %t711, label %if.then.220, label %if.end.221 if.then.223: store i32 0, i32* %t0 br label %if.end.225 if.else.224: store i32 0, i32* %t0 store i32 0, i32* %t1 %t725 = load i32, i32* %t661 %t726 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t727 = load i32, i32* %t726 %t728 = mul i32 %t725, %t727 store i32 %t728, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.226 if.end.225: %t750 = load i32, i32* %t0 store i32 %t750, i32* %t661 %t751 = load i32, i32* %t663 store i32 %t751, i32* %t659 br label %while.cond.204 while.cond.226: %t729 = load i32, i32* %t1 %t730 = icmp slt i32 %t729, 16 %t731 = zext i1 %t730 to i32 %t732 = icmp ne i32 %t731, 0 br i1 %t732, label %while.body.227, label %while.end.228 while.body.227: %t733 = load i32, i32* %t2 %t734 = srem i32 %t733, 2 %t735 = icmp ne i32 %t734, 0 br i1 %t735, label %land.rhs.231, label %if.end.230 while.end.228: br label %if.end.225 if.then.229: %t739 = load i32, i32* %t0 %t740 = load i32, i32* %t1 %t741 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t740 %t742 = load i32, i32* %t741 %t743 = add i32 %t739, %t742 store i32 %t743, i32* %t0 br label %if.end.230 if.end.230: %t744 = load i32, i32* %t2 %t745 = sdiv i32 %t744, 2 store i32 %t745, i32* %t2 %t746 = load i32, i32* %t3 %t747 = sdiv i32 %t746, 2 store i32 %t747, i32* %t3 %t748 = load i32, i32* %t1 %t749 = add i32 %t748, 1 store i32 %t749, i32* %t1 br label %while.cond.226 land.rhs.231: %t736 = load i32, i32* %t3 %t737 = srem i32 %t736, 2 %t738 = icmp ne i32 %t737, 0 br i1 %t738, label %if.then.229, label %if.end.230 while.cond.232: %t759 = load i32, i32* %t756 %t760 = icmp ne i32 %t759, 0 br i1 %t760, label %while.body.233, label %while.end.234 while.body.233: store i32 0, i32* %t0 store i32 0, i32* %t1 %t761 = load i32, i32* %t754 store i32 %t761, i32* %t2 %t762 = load i32, i32* %t756 store i32 %t762, i32* %t3 br label %while.cond.235 while.end.234: %t847 = load i32, i32* %t754 store i32 %t847, i32* %t0 %t848 = load i32, i32* %t0 store i32 %t848, i32* %t628 %t849 = load i32, i32* %t630 store i32 %t849, i32* %t2 store i32 1, i32* %t3 %t850 = load i32, i32* %t3 %t851 = icmp sge i32 %t850, 15 %t852 = zext i1 %t851 to i32 %t853 = icmp ne i32 %t852, 0 br i1 %t853, label %if.then.260, label %if.else.261 while.cond.235: %t763 = load i32, i32* %t1 %t764 = icmp slt i32 %t763, 16 %t765 = zext i1 %t764 to i32 %t766 = icmp ne i32 %t765, 0 br i1 %t766, label %while.body.236, label %while.end.237 while.body.236: %t767 = load i32, i32* %t2 %t768 = srem i32 %t767, 2 %t769 = icmp ne i32 %t768, 0 br i1 %t769, label %if.then.238, label %if.else.239 while.end.237: %t794 = load i32, i32* %t0 store i32 %t794, i32* %t758 store i32 0, i32* %t0 store i32 0, i32* %t1 %t795 = load i32, i32* %t754 store i32 %t795, i32* %t2 %t796 = load i32, i32* %t756 store i32 %t796, i32* %t3 br label %while.cond.245 if.then.238: %t770 = load i32, i32* %t3 %t771 = srem i32 %t770, 2 %t772 = icmp eq i32 %t771, 0 %t773 = zext i1 %t772 to i32 %t774 = icmp ne i32 %t773, 0 br i1 %t774, label %if.then.241, label %if.end.242 if.else.239: %t780 = load i32, i32* %t3 %t781 = srem i32 %t780, 2 %t782 = icmp ne i32 %t781, 0 br i1 %t782, label %if.then.243, label %if.end.244 if.end.240: %t788 = load i32, i32* %t2 %t789 = sdiv i32 %t788, 2 store i32 %t789, i32* %t2 %t790 = load i32, i32* %t3 %t791 = sdiv i32 %t790, 2 store i32 %t791, i32* %t3 %t792 = load i32, i32* %t1 %t793 = add i32 %t792, 1 store i32 %t793, i32* %t1 br label %while.cond.235 if.then.241: %t775 = load i32, i32* %t0 %t776 = load i32, i32* %t1 %t777 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t776 %t778 = load i32, i32* %t777 %t779 = add i32 %t775, %t778 store i32 %t779, i32* %t0 br label %if.end.242 if.end.242: br label %if.end.240 if.then.243: %t783 = load i32, i32* %t0 %t784 = load i32, i32* %t1 %t785 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t784 %t786 = load i32, i32* %t785 %t787 = add i32 %t783, %t786 store i32 %t787, i32* %t0 br label %if.end.244 if.end.244: br label %if.end.240 while.cond.245: %t797 = load i32, i32* %t1 %t798 = icmp slt i32 %t797, 16 %t799 = zext i1 %t798 to i32 %t800 = icmp ne i32 %t799, 0 br i1 %t800, label %while.body.246, label %while.end.247 while.body.246: %t801 = load i32, i32* %t2 %t802 = srem i32 %t801, 2 %t803 = icmp ne i32 %t802, 0 br i1 %t803, label %land.rhs.250, label %if.end.249 while.end.247: %t818 = load i32, i32* %t0 store i32 %t818, i32* %t756 %t819 = icmp ne i32 0, 0 br i1 %t819, label %if.then.251, label %if.else.252 if.then.248: %t807 = load i32, i32* %t0 %t808 = load i32, i32* %t1 %t809 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t808 %t810 = load i32, i32* %t809 %t811 = add i32 %t807, %t810 store i32 %t811, i32* %t0 br label %if.end.249 if.end.249: %t812 = load i32, i32* %t2 %t813 = sdiv i32 %t812, 2 store i32 %t813, i32* %t2 %t814 = load i32, i32* %t3 %t815 = sdiv i32 %t814, 2 store i32 %t815, i32* %t3 %t816 = load i32, i32* %t1 %t817 = add i32 %t816, 1 store i32 %t817, i32* %t1 br label %while.cond.245 land.rhs.250: %t804 = load i32, i32* %t3 %t805 = srem i32 %t804, 2 %t806 = icmp ne i32 %t805, 0 br i1 %t806, label %if.then.248, label %if.end.249 if.then.251: store i32 0, i32* %t0 br label %if.end.253 if.else.252: store i32 0, i32* %t0 store i32 0, i32* %t1 %t820 = load i32, i32* %t756 %t821 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t822 = load i32, i32* %t821 %t823 = mul i32 %t820, %t822 store i32 %t823, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.254 if.end.253: %t845 = load i32, i32* %t0 store i32 %t845, i32* %t756 %t846 = load i32, i32* %t758 store i32 %t846, i32* %t754 br label %while.cond.232 while.cond.254: %t824 = load i32, i32* %t1 %t825 = icmp slt i32 %t824, 16 %t826 = zext i1 %t825 to i32 %t827 = icmp ne i32 %t826, 0 br i1 %t827, label %while.body.255, label %while.end.256 while.body.255: %t828 = load i32, i32* %t2 %t829 = srem i32 %t828, 2 %t830 = icmp ne i32 %t829, 0 br i1 %t830, label %land.rhs.259, label %if.end.258 while.end.256: br label %if.end.253 if.then.257: %t834 = load i32, i32* %t0 %t835 = load i32, i32* %t1 %t836 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t835 %t837 = load i32, i32* %t836 %t838 = add i32 %t834, %t837 store i32 %t838, i32* %t0 br label %if.end.258 if.end.258: %t839 = load i32, i32* %t2 %t840 = sdiv i32 %t839, 2 store i32 %t840, i32* %t2 %t841 = load i32, i32* %t3 %t842 = sdiv i32 %t841, 2 store i32 %t842, i32* %t3 %t843 = load i32, i32* %t1 %t844 = add i32 %t843, 1 store i32 %t844, i32* %t1 br label %while.cond.254 land.rhs.259: %t831 = load i32, i32* %t3 %t832 = srem i32 %t831, 2 %t833 = icmp ne i32 %t832, 0 br i1 %t833, label %if.then.257, label %if.end.258 if.then.260: %t854 = load i32, i32* %t2 %t855 = icmp slt i32 %t854, 0 %t856 = zext i1 %t855 to i32 %t857 = icmp ne i32 %t856, 0 br i1 %t857, label %if.then.263, label %if.else.264 if.else.261: %t858 = load i32, i32* %t3 %t859 = icmp sgt i32 %t858, 0 %t860 = zext i1 %t859 to i32 %t861 = icmp ne i32 %t860, 0 br i1 %t861, label %if.then.266, label %if.else.267 if.end.262: %t885 = load i32, i32* %t0 store i32 %t885, i32* %t630 br label %while.cond.193 if.then.263: store i32 65535, i32* %t0 br label %if.end.265 if.else.264: store i32 0, i32* %t0 br label %if.end.265 if.end.265: br label %if.end.262 if.then.266: %t862 = load i32, i32* %t2 %t863 = icmp sgt i32 %t862, 32767 %t864 = zext i1 %t863 to i32 %t865 = icmp ne i32 %t864, 0 br i1 %t865, label %if.then.269, label %if.else.270 if.else.267: %t884 = load i32, i32* %t2 store i32 %t884, i32* %t0 br label %if.end.268 if.end.268: br label %if.end.262 if.then.269: %t866 = load i32, i32* %t2 %t867 = load i32, i32* %t3 %t868 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t867 %t869 = load i32, i32* %t868 %t870 = sdiv i32 %t866, %t869 store i32 %t870, i32* %t2 %t871 = load i32, i32* %t2 %t872 = add i32 %t871, 65536 %t873 = load i32, i32* %t3 %t874 = sub i32 15, %t873 %t875 = add i32 %t874, 1 %t876 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t875 %t877 = load i32, i32* %t876 %t878 = sub i32 %t872, %t877 store i32 %t878, i32* %t0 br label %if.end.271 if.else.270: %t879 = load i32, i32* %t2 %t880 = load i32, i32* %t3 %t881 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t880 %t882 = load i32, i32* %t881 %t883 = sdiv i32 %t879, %t882 store i32 %t883, i32* %t0 br label %if.end.271 if.end.271: br label %if.end.268 while.cond.272: %t893 = load i32, i32* %t890 %t894 = icmp ne i32 %t893, 0 br i1 %t894, label %while.body.273, label %while.end.274 while.body.273: store i32 0, i32* %t0 store i32 0, i32* %t1 %t895 = load i32, i32* %t890 store i32 %t895, i32* %t2 store i32 1, i32* %t3 br label %while.cond.275 while.end.274: %t1146 = load i32, i32* %t892 store i32 %t1146, i32* %t0 %t1147 = load i32, i32* %t0 store i32 %t1147, i32* %t597 %t1148 = load i32, i32* %t598 store i32 %t1148, i32* %t2 store i32 1, i32* %t3 %t1149 = load i32, i32* %t3 %t1150 = icmp sge i32 %t1149, 15 %t1151 = zext i1 %t1150 to i32 %t1152 = icmp ne i32 %t1151, 0 br i1 %t1152, label %if.then.351, label %if.else.352 while.cond.275: %t896 = load i32, i32* %t1 %t897 = icmp slt i32 %t896, 16 %t898 = zext i1 %t897 to i32 %t899 = icmp ne i32 %t898, 0 br i1 %t899, label %while.body.276, label %while.end.277 while.body.276: %t900 = load i32, i32* %t2 %t901 = srem i32 %t900, 2 %t902 = icmp ne i32 %t901, 0 br i1 %t902, label %land.rhs.280, label %if.end.279 while.end.277: %t917 = load i32, i32* %t0 %t918 = icmp ne i32 %t917, 0 br i1 %t918, label %if.then.281, label %if.end.282 if.then.278: %t906 = load i32, i32* %t0 %t907 = load i32, i32* %t1 %t908 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t907 %t909 = load i32, i32* %t908 %t910 = add i32 %t906, %t909 store i32 %t910, i32* %t0 br label %if.end.279 if.end.279: %t911 = load i32, i32* %t2 %t912 = sdiv i32 %t911, 2 store i32 %t912, i32* %t2 %t913 = load i32, i32* %t3 %t914 = sdiv i32 %t913, 2 store i32 %t914, i32* %t3 %t915 = load i32, i32* %t1 %t916 = add i32 %t915, 1 store i32 %t916, i32* %t1 br label %while.cond.275 land.rhs.280: %t903 = load i32, i32* %t3 %t904 = srem i32 %t903, 2 %t905 = icmp ne i32 %t904, 0 br i1 %t905, label %if.then.278, label %if.end.279 if.then.281: %t920 = load i32, i32* %t892 store i32 %t920, i32* %t919 %t922 = load i32, i32* %t888 store i32 %t922, i32* %t921 store i32 0, i32* %t923 br label %while.cond.283 if.end.282: %t1015 = load i32, i32* %t888 store i32 %t1015, i32* %t1014 %t1017 = load i32, i32* %t888 store i32 %t1017, i32* %t1016 store i32 0, i32* %t1018 br label %while.cond.311 while.cond.283: %t924 = load i32, i32* %t921 %t925 = icmp ne i32 %t924, 0 br i1 %t925, label %while.body.284, label %while.end.285 while.body.284: store i32 0, i32* %t0 store i32 0, i32* %t1 %t926 = load i32, i32* %t919 store i32 %t926, i32* %t2 %t927 = load i32, i32* %t921 store i32 %t927, i32* %t3 br label %while.cond.286 while.end.285: %t1012 = load i32, i32* %t919 store i32 %t1012, i32* %t0 %t1013 = load i32, i32* %t0 store i32 %t1013, i32* %t892 br label %if.end.282 while.cond.286: %t928 = load i32, i32* %t1 %t929 = icmp slt i32 %t928, 16 %t930 = zext i1 %t929 to i32 %t931 = icmp ne i32 %t930, 0 br i1 %t931, label %while.body.287, label %while.end.288 while.body.287: %t932 = load i32, i32* %t2 %t933 = srem i32 %t932, 2 %t934 = icmp ne i32 %t933, 0 br i1 %t934, label %if.then.289, label %if.else.290 while.end.288: %t959 = load i32, i32* %t0 store i32 %t959, i32* %t923 store i32 0, i32* %t0 store i32 0, i32* %t1 %t960 = load i32, i32* %t919 store i32 %t960, i32* %t2 %t961 = load i32, i32* %t921 store i32 %t961, i32* %t3 br label %while.cond.296 if.then.289: %t935 = load i32, i32* %t3 %t936 = srem i32 %t935, 2 %t937 = icmp eq i32 %t936, 0 %t938 = zext i1 %t937 to i32 %t939 = icmp ne i32 %t938, 0 br i1 %t939, label %if.then.292, label %if.end.293 if.else.290: %t945 = load i32, i32* %t3 %t946 = srem i32 %t945, 2 %t947 = icmp ne i32 %t946, 0 br i1 %t947, label %if.then.294, label %if.end.295 if.end.291: %t953 = load i32, i32* %t2 %t954 = sdiv i32 %t953, 2 store i32 %t954, i32* %t2 %t955 = load i32, i32* %t3 %t956 = sdiv i32 %t955, 2 store i32 %t956, i32* %t3 %t957 = load i32, i32* %t1 %t958 = add i32 %t957, 1 store i32 %t958, i32* %t1 br label %while.cond.286 if.then.292: %t940 = load i32, i32* %t0 %t941 = load i32, i32* %t1 %t942 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t941 %t943 = load i32, i32* %t942 %t944 = add i32 %t940, %t943 store i32 %t944, i32* %t0 br label %if.end.293 if.end.293: br label %if.end.291 if.then.294: %t948 = load i32, i32* %t0 %t949 = load i32, i32* %t1 %t950 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t949 %t951 = load i32, i32* %t950 %t952 = add i32 %t948, %t951 store i32 %t952, i32* %t0 br label %if.end.295 if.end.295: br label %if.end.291 while.cond.296: %t962 = load i32, i32* %t1 %t963 = icmp slt i32 %t962, 16 %t964 = zext i1 %t963 to i32 %t965 = icmp ne i32 %t964, 0 br i1 %t965, label %while.body.297, label %while.end.298 while.body.297: %t966 = load i32, i32* %t2 %t967 = srem i32 %t966, 2 %t968 = icmp ne i32 %t967, 0 br i1 %t968, label %land.rhs.301, label %if.end.300 while.end.298: %t983 = load i32, i32* %t0 store i32 %t983, i32* %t921 %t984 = icmp ne i32 0, 0 br i1 %t984, label %if.then.302, label %if.else.303 if.then.299: %t972 = load i32, i32* %t0 %t973 = load i32, i32* %t1 %t974 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t973 %t975 = load i32, i32* %t974 %t976 = add i32 %t972, %t975 store i32 %t976, i32* %t0 br label %if.end.300 if.end.300: %t977 = load i32, i32* %t2 %t978 = sdiv i32 %t977, 2 store i32 %t978, i32* %t2 %t979 = load i32, i32* %t3 %t980 = sdiv i32 %t979, 2 store i32 %t980, i32* %t3 %t981 = load i32, i32* %t1 %t982 = add i32 %t981, 1 store i32 %t982, i32* %t1 br label %while.cond.296 land.rhs.301: %t969 = load i32, i32* %t3 %t970 = srem i32 %t969, 2 %t971 = icmp ne i32 %t970, 0 br i1 %t971, label %if.then.299, label %if.end.300 if.then.302: store i32 0, i32* %t0 br label %if.end.304 if.else.303: store i32 0, i32* %t0 store i32 0, i32* %t1 %t985 = load i32, i32* %t921 %t986 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t987 = load i32, i32* %t986 %t988 = mul i32 %t985, %t987 store i32 %t988, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.305 if.end.304: %t1010 = load i32, i32* %t0 store i32 %t1010, i32* %t921 %t1011 = load i32, i32* %t923 store i32 %t1011, i32* %t919 br label %while.cond.283 while.cond.305: %t989 = load i32, i32* %t1 %t990 = icmp slt i32 %t989, 16 %t991 = zext i1 %t990 to i32 %t992 = icmp ne i32 %t991, 0 br i1 %t992, label %while.body.306, label %while.end.307 while.body.306: %t993 = load i32, i32* %t2 %t994 = srem i32 %t993, 2 %t995 = icmp ne i32 %t994, 0 br i1 %t995, label %land.rhs.310, label %if.end.309 while.end.307: br label %if.end.304 if.then.308: %t999 = load i32, i32* %t0 %t1000 = load i32, i32* %t1 %t1001 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1000 %t1002 = load i32, i32* %t1001 %t1003 = add i32 %t999, %t1002 store i32 %t1003, i32* %t0 br label %if.end.309 if.end.309: %t1004 = load i32, i32* %t2 %t1005 = sdiv i32 %t1004, 2 store i32 %t1005, i32* %t2 %t1006 = load i32, i32* %t3 %t1007 = sdiv i32 %t1006, 2 store i32 %t1007, i32* %t3 %t1008 = load i32, i32* %t1 %t1009 = add i32 %t1008, 1 store i32 %t1009, i32* %t1 br label %while.cond.305 land.rhs.310: %t996 = load i32, i32* %t3 %t997 = srem i32 %t996, 2 %t998 = icmp ne i32 %t997, 0 br i1 %t998, label %if.then.308, label %if.end.309 while.cond.311: %t1019 = load i32, i32* %t1016 %t1020 = icmp ne i32 %t1019, 0 br i1 %t1020, label %while.body.312, label %while.end.313 while.body.312: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1021 = load i32, i32* %t1014 store i32 %t1021, i32* %t2 %t1022 = load i32, i32* %t1016 store i32 %t1022, i32* %t3 br label %while.cond.314 while.end.313: %t1107 = load i32, i32* %t1014 store i32 %t1107, i32* %t0 %t1108 = load i32, i32* %t0 store i32 %t1108, i32* %t888 %t1109 = load i32, i32* %t890 store i32 %t1109, i32* %t2 store i32 1, i32* %t3 %t1110 = load i32, i32* %t3 %t1111 = icmp sge i32 %t1110, 15 %t1112 = zext i1 %t1111 to i32 %t1113 = icmp ne i32 %t1112, 0 br i1 %t1113, label %if.then.339, label %if.else.340 while.cond.314: %t1023 = load i32, i32* %t1 %t1024 = icmp slt i32 %t1023, 16 %t1025 = zext i1 %t1024 to i32 %t1026 = icmp ne i32 %t1025, 0 br i1 %t1026, label %while.body.315, label %while.end.316 while.body.315: %t1027 = load i32, i32* %t2 %t1028 = srem i32 %t1027, 2 %t1029 = icmp ne i32 %t1028, 0 br i1 %t1029, label %if.then.317, label %if.else.318 while.end.316: %t1054 = load i32, i32* %t0 store i32 %t1054, i32* %t1018 store i32 0, i32* %t0 store i32 0, i32* %t1 %t1055 = load i32, i32* %t1014 store i32 %t1055, i32* %t2 %t1056 = load i32, i32* %t1016 store i32 %t1056, i32* %t3 br label %while.cond.324 if.then.317: %t1030 = load i32, i32* %t3 %t1031 = srem i32 %t1030, 2 %t1032 = icmp eq i32 %t1031, 0 %t1033 = zext i1 %t1032 to i32 %t1034 = icmp ne i32 %t1033, 0 br i1 %t1034, label %if.then.320, label %if.end.321 if.else.318: %t1040 = load i32, i32* %t3 %t1041 = srem i32 %t1040, 2 %t1042 = icmp ne i32 %t1041, 0 br i1 %t1042, label %if.then.322, label %if.end.323 if.end.319: %t1048 = load i32, i32* %t2 %t1049 = sdiv i32 %t1048, 2 store i32 %t1049, i32* %t2 %t1050 = load i32, i32* %t3 %t1051 = sdiv i32 %t1050, 2 store i32 %t1051, i32* %t3 %t1052 = load i32, i32* %t1 %t1053 = add i32 %t1052, 1 store i32 %t1053, i32* %t1 br label %while.cond.314 if.then.320: %t1035 = load i32, i32* %t0 %t1036 = load i32, i32* %t1 %t1037 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1036 %t1038 = load i32, i32* %t1037 %t1039 = add i32 %t1035, %t1038 store i32 %t1039, i32* %t0 br label %if.end.321 if.end.321: br label %if.end.319 if.then.322: %t1043 = load i32, i32* %t0 %t1044 = load i32, i32* %t1 %t1045 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1044 %t1046 = load i32, i32* %t1045 %t1047 = add i32 %t1043, %t1046 store i32 %t1047, i32* %t0 br label %if.end.323 if.end.323: br label %if.end.319 while.cond.324: %t1057 = load i32, i32* %t1 %t1058 = icmp slt i32 %t1057, 16 %t1059 = zext i1 %t1058 to i32 %t1060 = icmp ne i32 %t1059, 0 br i1 %t1060, label %while.body.325, label %while.end.326 while.body.325: %t1061 = load i32, i32* %t2 %t1062 = srem i32 %t1061, 2 %t1063 = icmp ne i32 %t1062, 0 br i1 %t1063, label %land.rhs.329, label %if.end.328 while.end.326: %t1078 = load i32, i32* %t0 store i32 %t1078, i32* %t1016 %t1079 = icmp ne i32 0, 0 br i1 %t1079, label %if.then.330, label %if.else.331 if.then.327: %t1067 = load i32, i32* %t0 %t1068 = load i32, i32* %t1 %t1069 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1068 %t1070 = load i32, i32* %t1069 %t1071 = add i32 %t1067, %t1070 store i32 %t1071, i32* %t0 br label %if.end.328 if.end.328: %t1072 = load i32, i32* %t2 %t1073 = sdiv i32 %t1072, 2 store i32 %t1073, i32* %t2 %t1074 = load i32, i32* %t3 %t1075 = sdiv i32 %t1074, 2 store i32 %t1075, i32* %t3 %t1076 = load i32, i32* %t1 %t1077 = add i32 %t1076, 1 store i32 %t1077, i32* %t1 br label %while.cond.324 land.rhs.329: %t1064 = load i32, i32* %t3 %t1065 = srem i32 %t1064, 2 %t1066 = icmp ne i32 %t1065, 0 br i1 %t1066, label %if.then.327, label %if.end.328 if.then.330: store i32 0, i32* %t0 br label %if.end.332 if.else.331: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1080 = load i32, i32* %t1016 %t1081 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t1082 = load i32, i32* %t1081 %t1083 = mul i32 %t1080, %t1082 store i32 %t1083, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.333 if.end.332: %t1105 = load i32, i32* %t0 store i32 %t1105, i32* %t1016 %t1106 = load i32, i32* %t1018 store i32 %t1106, i32* %t1014 br label %while.cond.311 while.cond.333: %t1084 = load i32, i32* %t1 %t1085 = icmp slt i32 %t1084, 16 %t1086 = zext i1 %t1085 to i32 %t1087 = icmp ne i32 %t1086, 0 br i1 %t1087, label %while.body.334, label %while.end.335 while.body.334: %t1088 = load i32, i32* %t2 %t1089 = srem i32 %t1088, 2 %t1090 = icmp ne i32 %t1089, 0 br i1 %t1090, label %land.rhs.338, label %if.end.337 while.end.335: br label %if.end.332 if.then.336: %t1094 = load i32, i32* %t0 %t1095 = load i32, i32* %t1 %t1096 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1095 %t1097 = load i32, i32* %t1096 %t1098 = add i32 %t1094, %t1097 store i32 %t1098, i32* %t0 br label %if.end.337 if.end.337: %t1099 = load i32, i32* %t2 %t1100 = sdiv i32 %t1099, 2 store i32 %t1100, i32* %t2 %t1101 = load i32, i32* %t3 %t1102 = sdiv i32 %t1101, 2 store i32 %t1102, i32* %t3 %t1103 = load i32, i32* %t1 %t1104 = add i32 %t1103, 1 store i32 %t1104, i32* %t1 br label %while.cond.333 land.rhs.338: %t1091 = load i32, i32* %t3 %t1092 = srem i32 %t1091, 2 %t1093 = icmp ne i32 %t1092, 0 br i1 %t1093, label %if.then.336, label %if.end.337 if.then.339: %t1114 = load i32, i32* %t2 %t1115 = icmp slt i32 %t1114, 0 %t1116 = zext i1 %t1115 to i32 %t1117 = icmp ne i32 %t1116, 0 br i1 %t1117, label %if.then.342, label %if.else.343 if.else.340: %t1118 = load i32, i32* %t3 %t1119 = icmp sgt i32 %t1118, 0 %t1120 = zext i1 %t1119 to i32 %t1121 = icmp ne i32 %t1120, 0 br i1 %t1121, label %if.then.345, label %if.else.346 if.end.341: %t1145 = load i32, i32* %t0 store i32 %t1145, i32* %t890 br label %while.cond.272 if.then.342: store i32 65535, i32* %t0 br label %if.end.344 if.else.343: store i32 0, i32* %t0 br label %if.end.344 if.end.344: br label %if.end.341 if.then.345: %t1122 = load i32, i32* %t2 %t1123 = icmp sgt i32 %t1122, 32767 %t1124 = zext i1 %t1123 to i32 %t1125 = icmp ne i32 %t1124, 0 br i1 %t1125, label %if.then.348, label %if.else.349 if.else.346: %t1144 = load i32, i32* %t2 store i32 %t1144, i32* %t0 br label %if.end.347 if.end.347: br label %if.end.341 if.then.348: %t1126 = load i32, i32* %t2 %t1127 = load i32, i32* %t3 %t1128 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1127 %t1129 = load i32, i32* %t1128 %t1130 = sdiv i32 %t1126, %t1129 store i32 %t1130, i32* %t2 %t1131 = load i32, i32* %t2 %t1132 = add i32 %t1131, 65536 %t1133 = load i32, i32* %t3 %t1134 = sub i32 15, %t1133 %t1135 = add i32 %t1134, 1 %t1136 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1135 %t1137 = load i32, i32* %t1136 %t1138 = sub i32 %t1132, %t1137 store i32 %t1138, i32* %t0 br label %if.end.350 if.else.349: %t1139 = load i32, i32* %t2 %t1140 = load i32, i32* %t3 %t1141 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1140 %t1142 = load i32, i32* %t1141 %t1143 = sdiv i32 %t1139, %t1142 store i32 %t1143, i32* %t0 br label %if.end.350 if.end.350: br label %if.end.347 if.then.351: %t1153 = load i32, i32* %t2 %t1154 = icmp slt i32 %t1153, 0 %t1155 = zext i1 %t1154 to i32 %t1156 = icmp ne i32 %t1155, 0 br i1 %t1156, label %if.then.354, label %if.else.355 if.else.352: %t1157 = load i32, i32* %t3 %t1158 = icmp sgt i32 %t1157, 0 %t1159 = zext i1 %t1158 to i32 %t1160 = icmp ne i32 %t1159, 0 br i1 %t1160, label %if.then.357, label %if.else.358 if.end.353: %t1184 = load i32, i32* %t0 store i32 %t1184, i32* %t598 br label %while.cond.182 if.then.354: store i32 65535, i32* %t0 br label %if.end.356 if.else.355: store i32 0, i32* %t0 br label %if.end.356 if.end.356: br label %if.end.353 if.then.357: %t1161 = load i32, i32* %t2 %t1162 = icmp sgt i32 %t1161, 32767 %t1163 = zext i1 %t1162 to i32 %t1164 = icmp ne i32 %t1163, 0 br i1 %t1164, label %if.then.360, label %if.else.361 if.else.358: %t1183 = load i32, i32* %t2 store i32 %t1183, i32* %t0 br label %if.end.359 if.end.359: br label %if.end.353 if.then.360: %t1165 = load i32, i32* %t2 %t1166 = load i32, i32* %t3 %t1167 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1166 %t1168 = load i32, i32* %t1167 %t1169 = sdiv i32 %t1165, %t1168 store i32 %t1169, i32* %t2 %t1170 = load i32, i32* %t2 %t1171 = add i32 %t1170, 65536 %t1172 = load i32, i32* %t3 %t1173 = sub i32 15, %t1172 %t1174 = add i32 %t1173, 1 %t1175 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1174 %t1176 = load i32, i32* %t1175 %t1177 = sub i32 %t1171, %t1176 store i32 %t1177, i32* %t0 br label %if.end.362 if.else.361: %t1178 = load i32, i32* %t2 %t1179 = load i32, i32* %t3 %t1180 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1179 %t1181 = load i32, i32* %t1180 %t1182 = sdiv i32 %t1178, %t1181 store i32 %t1182, i32* %t0 br label %if.end.362 if.end.362: br label %if.end.359 while.cond.363: %t1189 = load i32, i32* %t4 %t1190 = icmp slt i32 %t1189, 16 %t1191 = zext i1 %t1190 to i32 %t1192 = icmp ne i32 %t1191, 0 br i1 %t1192, label %while.body.364, label %while.end.365 while.body.364: store i32 2, i32* %t1193 %t1195 = load i32, i32* %t4 store i32 %t1195, i32* %t1194 store i32 1, i32* %t1196 br label %while.cond.366 while.end.365: store i32 0, i32* %t4 br label %while.cond.547 while.cond.366: %t1197 = load i32, i32* %t1194 %t1198 = icmp sgt i32 %t1197, 0 %t1199 = zext i1 %t1198 to i32 %t1200 = icmp ne i32 %t1199, 0 br i1 %t1200, label %while.body.367, label %while.end.368 while.body.367: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1201 = load i32, i32* %t1194 store i32 %t1201, i32* %t2 store i32 1, i32* %t3 br label %while.cond.369 while.end.368: %t1782 = load i32, i32* %t1196 store i32 %t1782, i32* %t0 %t1783 = load i32, i32* %t0 call void @putint(i32 %t1783) call void @putch(i32 10) %t1786 = load i32, i32* %t4 %t1787 = add i32 %t1786, 1 store i32 %t1787, i32* %t4 br label %while.cond.363 while.cond.369: %t1202 = load i32, i32* %t1 %t1203 = icmp slt i32 %t1202, 16 %t1204 = zext i1 %t1203 to i32 %t1205 = icmp ne i32 %t1204, 0 br i1 %t1205, label %while.body.370, label %while.end.371 while.body.370: %t1206 = load i32, i32* %t2 %t1207 = srem i32 %t1206, 2 %t1208 = icmp ne i32 %t1207, 0 br i1 %t1208, label %land.rhs.374, label %if.end.373 while.end.371: %t1223 = load i32, i32* %t0 %t1224 = icmp ne i32 %t1223, 0 br i1 %t1224, label %if.then.375, label %if.end.376 if.then.372: %t1212 = load i32, i32* %t0 %t1213 = load i32, i32* %t1 %t1214 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1213 %t1215 = load i32, i32* %t1214 %t1216 = add i32 %t1212, %t1215 store i32 %t1216, i32* %t0 br label %if.end.373 if.end.373: %t1217 = load i32, i32* %t2 %t1218 = sdiv i32 %t1217, 2 store i32 %t1218, i32* %t2 %t1219 = load i32, i32* %t3 %t1220 = sdiv i32 %t1219, 2 store i32 %t1220, i32* %t3 %t1221 = load i32, i32* %t1 %t1222 = add i32 %t1221, 1 store i32 %t1222, i32* %t1 br label %while.cond.369 land.rhs.374: %t1209 = load i32, i32* %t3 %t1210 = srem i32 %t1209, 2 %t1211 = icmp ne i32 %t1210, 0 br i1 %t1211, label %if.then.372, label %if.end.373 if.then.375: %t1226 = load i32, i32* %t1196 store i32 %t1226, i32* %t1225 %t1228 = load i32, i32* %t1193 store i32 %t1228, i32* %t1227 store i32 0, i32* %t1229 br label %while.cond.377 if.end.376: %t1486 = load i32, i32* %t1193 store i32 %t1486, i32* %t1485 %t1488 = load i32, i32* %t1193 store i32 %t1488, i32* %t1487 store i32 0, i32* %t1489 br label %while.cond.456 while.cond.377: %t1230 = load i32, i32* %t1227 %t1231 = icmp ne i32 %t1230, 0 br i1 %t1231, label %while.body.378, label %while.end.379 while.body.378: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1232 = load i32, i32* %t1227 store i32 %t1232, i32* %t2 store i32 1, i32* %t3 br label %while.cond.380 while.end.379: %t1483 = load i32, i32* %t1229 store i32 %t1483, i32* %t0 %t1484 = load i32, i32* %t0 store i32 %t1484, i32* %t1196 br label %if.end.376 while.cond.380: %t1233 = load i32, i32* %t1 %t1234 = icmp slt i32 %t1233, 16 %t1235 = zext i1 %t1234 to i32 %t1236 = icmp ne i32 %t1235, 0 br i1 %t1236, label %while.body.381, label %while.end.382 while.body.381: %t1237 = load i32, i32* %t2 %t1238 = srem i32 %t1237, 2 %t1239 = icmp ne i32 %t1238, 0 br i1 %t1239, label %land.rhs.385, label %if.end.384 while.end.382: %t1254 = load i32, i32* %t0 %t1255 = icmp ne i32 %t1254, 0 br i1 %t1255, label %if.then.386, label %if.end.387 if.then.383: %t1243 = load i32, i32* %t0 %t1244 = load i32, i32* %t1 %t1245 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1244 %t1246 = load i32, i32* %t1245 %t1247 = add i32 %t1243, %t1246 store i32 %t1247, i32* %t0 br label %if.end.384 if.end.384: %t1248 = load i32, i32* %t2 %t1249 = sdiv i32 %t1248, 2 store i32 %t1249, i32* %t2 %t1250 = load i32, i32* %t3 %t1251 = sdiv i32 %t1250, 2 store i32 %t1251, i32* %t3 %t1252 = load i32, i32* %t1 %t1253 = add i32 %t1252, 1 store i32 %t1253, i32* %t1 br label %while.cond.380 land.rhs.385: %t1240 = load i32, i32* %t3 %t1241 = srem i32 %t1240, 2 %t1242 = icmp ne i32 %t1241, 0 br i1 %t1242, label %if.then.383, label %if.end.384 if.then.386: %t1257 = load i32, i32* %t1229 store i32 %t1257, i32* %t1256 %t1259 = load i32, i32* %t1225 store i32 %t1259, i32* %t1258 store i32 0, i32* %t1260 br label %while.cond.388 if.end.387: %t1352 = load i32, i32* %t1225 store i32 %t1352, i32* %t1351 %t1354 = load i32, i32* %t1225 store i32 %t1354, i32* %t1353 store i32 0, i32* %t1355 br label %while.cond.416 while.cond.388: %t1261 = load i32, i32* %t1258 %t1262 = icmp ne i32 %t1261, 0 br i1 %t1262, label %while.body.389, label %while.end.390 while.body.389: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1263 = load i32, i32* %t1256 store i32 %t1263, i32* %t2 %t1264 = load i32, i32* %t1258 store i32 %t1264, i32* %t3 br label %while.cond.391 while.end.390: %t1349 = load i32, i32* %t1256 store i32 %t1349, i32* %t0 %t1350 = load i32, i32* %t0 store i32 %t1350, i32* %t1229 br label %if.end.387 while.cond.391: %t1265 = load i32, i32* %t1 %t1266 = icmp slt i32 %t1265, 16 %t1267 = zext i1 %t1266 to i32 %t1268 = icmp ne i32 %t1267, 0 br i1 %t1268, label %while.body.392, label %while.end.393 while.body.392: %t1269 = load i32, i32* %t2 %t1270 = srem i32 %t1269, 2 %t1271 = icmp ne i32 %t1270, 0 br i1 %t1271, label %if.then.394, label %if.else.395 while.end.393: %t1296 = load i32, i32* %t0 store i32 %t1296, i32* %t1260 store i32 0, i32* %t0 store i32 0, i32* %t1 %t1297 = load i32, i32* %t1256 store i32 %t1297, i32* %t2 %t1298 = load i32, i32* %t1258 store i32 %t1298, i32* %t3 br label %while.cond.401 if.then.394: %t1272 = load i32, i32* %t3 %t1273 = srem i32 %t1272, 2 %t1274 = icmp eq i32 %t1273, 0 %t1275 = zext i1 %t1274 to i32 %t1276 = icmp ne i32 %t1275, 0 br i1 %t1276, label %if.then.397, label %if.end.398 if.else.395: %t1282 = load i32, i32* %t3 %t1283 = srem i32 %t1282, 2 %t1284 = icmp ne i32 %t1283, 0 br i1 %t1284, label %if.then.399, label %if.end.400 if.end.396: %t1290 = load i32, i32* %t2 %t1291 = sdiv i32 %t1290, 2 store i32 %t1291, i32* %t2 %t1292 = load i32, i32* %t3 %t1293 = sdiv i32 %t1292, 2 store i32 %t1293, i32* %t3 %t1294 = load i32, i32* %t1 %t1295 = add i32 %t1294, 1 store i32 %t1295, i32* %t1 br label %while.cond.391 if.then.397: %t1277 = load i32, i32* %t0 %t1278 = load i32, i32* %t1 %t1279 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1278 %t1280 = load i32, i32* %t1279 %t1281 = add i32 %t1277, %t1280 store i32 %t1281, i32* %t0 br label %if.end.398 if.end.398: br label %if.end.396 if.then.399: %t1285 = load i32, i32* %t0 %t1286 = load i32, i32* %t1 %t1287 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1286 %t1288 = load i32, i32* %t1287 %t1289 = add i32 %t1285, %t1288 store i32 %t1289, i32* %t0 br label %if.end.400 if.end.400: br label %if.end.396 while.cond.401: %t1299 = load i32, i32* %t1 %t1300 = icmp slt i32 %t1299, 16 %t1301 = zext i1 %t1300 to i32 %t1302 = icmp ne i32 %t1301, 0 br i1 %t1302, label %while.body.402, label %while.end.403 while.body.402: %t1303 = load i32, i32* %t2 %t1304 = srem i32 %t1303, 2 %t1305 = icmp ne i32 %t1304, 0 br i1 %t1305, label %land.rhs.406, label %if.end.405 while.end.403: %t1320 = load i32, i32* %t0 store i32 %t1320, i32* %t1258 %t1321 = icmp ne i32 0, 0 br i1 %t1321, label %if.then.407, label %if.else.408 if.then.404: %t1309 = load i32, i32* %t0 %t1310 = load i32, i32* %t1 %t1311 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1310 %t1312 = load i32, i32* %t1311 %t1313 = add i32 %t1309, %t1312 store i32 %t1313, i32* %t0 br label %if.end.405 if.end.405: %t1314 = load i32, i32* %t2 %t1315 = sdiv i32 %t1314, 2 store i32 %t1315, i32* %t2 %t1316 = load i32, i32* %t3 %t1317 = sdiv i32 %t1316, 2 store i32 %t1317, i32* %t3 %t1318 = load i32, i32* %t1 %t1319 = add i32 %t1318, 1 store i32 %t1319, i32* %t1 br label %while.cond.401 land.rhs.406: %t1306 = load i32, i32* %t3 %t1307 = srem i32 %t1306, 2 %t1308 = icmp ne i32 %t1307, 0 br i1 %t1308, label %if.then.404, label %if.end.405 if.then.407: store i32 0, i32* %t0 br label %if.end.409 if.else.408: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1322 = load i32, i32* %t1258 %t1323 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t1324 = load i32, i32* %t1323 %t1325 = mul i32 %t1322, %t1324 store i32 %t1325, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.410 if.end.409: %t1347 = load i32, i32* %t0 store i32 %t1347, i32* %t1258 %t1348 = load i32, i32* %t1260 store i32 %t1348, i32* %t1256 br label %while.cond.388 while.cond.410: %t1326 = load i32, i32* %t1 %t1327 = icmp slt i32 %t1326, 16 %t1328 = zext i1 %t1327 to i32 %t1329 = icmp ne i32 %t1328, 0 br i1 %t1329, label %while.body.411, label %while.end.412 while.body.411: %t1330 = load i32, i32* %t2 %t1331 = srem i32 %t1330, 2 %t1332 = icmp ne i32 %t1331, 0 br i1 %t1332, label %land.rhs.415, label %if.end.414 while.end.412: br label %if.end.409 if.then.413: %t1336 = load i32, i32* %t0 %t1337 = load i32, i32* %t1 %t1338 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1337 %t1339 = load i32, i32* %t1338 %t1340 = add i32 %t1336, %t1339 store i32 %t1340, i32* %t0 br label %if.end.414 if.end.414: %t1341 = load i32, i32* %t2 %t1342 = sdiv i32 %t1341, 2 store i32 %t1342, i32* %t2 %t1343 = load i32, i32* %t3 %t1344 = sdiv i32 %t1343, 2 store i32 %t1344, i32* %t3 %t1345 = load i32, i32* %t1 %t1346 = add i32 %t1345, 1 store i32 %t1346, i32* %t1 br label %while.cond.410 land.rhs.415: %t1333 = load i32, i32* %t3 %t1334 = srem i32 %t1333, 2 %t1335 = icmp ne i32 %t1334, 0 br i1 %t1335, label %if.then.413, label %if.end.414 while.cond.416: %t1356 = load i32, i32* %t1353 %t1357 = icmp ne i32 %t1356, 0 br i1 %t1357, label %while.body.417, label %while.end.418 while.body.417: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1358 = load i32, i32* %t1351 store i32 %t1358, i32* %t2 %t1359 = load i32, i32* %t1353 store i32 %t1359, i32* %t3 br label %while.cond.419 while.end.418: %t1444 = load i32, i32* %t1351 store i32 %t1444, i32* %t0 %t1445 = load i32, i32* %t0 store i32 %t1445, i32* %t1225 %t1446 = load i32, i32* %t1227 store i32 %t1446, i32* %t2 store i32 1, i32* %t3 %t1447 = load i32, i32* %t3 %t1448 = icmp sge i32 %t1447, 15 %t1449 = zext i1 %t1448 to i32 %t1450 = icmp ne i32 %t1449, 0 br i1 %t1450, label %if.then.444, label %if.else.445 while.cond.419: %t1360 = load i32, i32* %t1 %t1361 = icmp slt i32 %t1360, 16 %t1362 = zext i1 %t1361 to i32 %t1363 = icmp ne i32 %t1362, 0 br i1 %t1363, label %while.body.420, label %while.end.421 while.body.420: %t1364 = load i32, i32* %t2 %t1365 = srem i32 %t1364, 2 %t1366 = icmp ne i32 %t1365, 0 br i1 %t1366, label %if.then.422, label %if.else.423 while.end.421: %t1391 = load i32, i32* %t0 store i32 %t1391, i32* %t1355 store i32 0, i32* %t0 store i32 0, i32* %t1 %t1392 = load i32, i32* %t1351 store i32 %t1392, i32* %t2 %t1393 = load i32, i32* %t1353 store i32 %t1393, i32* %t3 br label %while.cond.429 if.then.422: %t1367 = load i32, i32* %t3 %t1368 = srem i32 %t1367, 2 %t1369 = icmp eq i32 %t1368, 0 %t1370 = zext i1 %t1369 to i32 %t1371 = icmp ne i32 %t1370, 0 br i1 %t1371, label %if.then.425, label %if.end.426 if.else.423: %t1377 = load i32, i32* %t3 %t1378 = srem i32 %t1377, 2 %t1379 = icmp ne i32 %t1378, 0 br i1 %t1379, label %if.then.427, label %if.end.428 if.end.424: %t1385 = load i32, i32* %t2 %t1386 = sdiv i32 %t1385, 2 store i32 %t1386, i32* %t2 %t1387 = load i32, i32* %t3 %t1388 = sdiv i32 %t1387, 2 store i32 %t1388, i32* %t3 %t1389 = load i32, i32* %t1 %t1390 = add i32 %t1389, 1 store i32 %t1390, i32* %t1 br label %while.cond.419 if.then.425: %t1372 = load i32, i32* %t0 %t1373 = load i32, i32* %t1 %t1374 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1373 %t1375 = load i32, i32* %t1374 %t1376 = add i32 %t1372, %t1375 store i32 %t1376, i32* %t0 br label %if.end.426 if.end.426: br label %if.end.424 if.then.427: %t1380 = load i32, i32* %t0 %t1381 = load i32, i32* %t1 %t1382 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1381 %t1383 = load i32, i32* %t1382 %t1384 = add i32 %t1380, %t1383 store i32 %t1384, i32* %t0 br label %if.end.428 if.end.428: br label %if.end.424 while.cond.429: %t1394 = load i32, i32* %t1 %t1395 = icmp slt i32 %t1394, 16 %t1396 = zext i1 %t1395 to i32 %t1397 = icmp ne i32 %t1396, 0 br i1 %t1397, label %while.body.430, label %while.end.431 while.body.430: %t1398 = load i32, i32* %t2 %t1399 = srem i32 %t1398, 2 %t1400 = icmp ne i32 %t1399, 0 br i1 %t1400, label %land.rhs.434, label %if.end.433 while.end.431: %t1415 = load i32, i32* %t0 store i32 %t1415, i32* %t1353 %t1416 = icmp ne i32 0, 0 br i1 %t1416, label %if.then.435, label %if.else.436 if.then.432: %t1404 = load i32, i32* %t0 %t1405 = load i32, i32* %t1 %t1406 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1405 %t1407 = load i32, i32* %t1406 %t1408 = add i32 %t1404, %t1407 store i32 %t1408, i32* %t0 br label %if.end.433 if.end.433: %t1409 = load i32, i32* %t2 %t1410 = sdiv i32 %t1409, 2 store i32 %t1410, i32* %t2 %t1411 = load i32, i32* %t3 %t1412 = sdiv i32 %t1411, 2 store i32 %t1412, i32* %t3 %t1413 = load i32, i32* %t1 %t1414 = add i32 %t1413, 1 store i32 %t1414, i32* %t1 br label %while.cond.429 land.rhs.434: %t1401 = load i32, i32* %t3 %t1402 = srem i32 %t1401, 2 %t1403 = icmp ne i32 %t1402, 0 br i1 %t1403, label %if.then.432, label %if.end.433 if.then.435: store i32 0, i32* %t0 br label %if.end.437 if.else.436: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1417 = load i32, i32* %t1353 %t1418 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t1419 = load i32, i32* %t1418 %t1420 = mul i32 %t1417, %t1419 store i32 %t1420, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.438 if.end.437: %t1442 = load i32, i32* %t0 store i32 %t1442, i32* %t1353 %t1443 = load i32, i32* %t1355 store i32 %t1443, i32* %t1351 br label %while.cond.416 while.cond.438: %t1421 = load i32, i32* %t1 %t1422 = icmp slt i32 %t1421, 16 %t1423 = zext i1 %t1422 to i32 %t1424 = icmp ne i32 %t1423, 0 br i1 %t1424, label %while.body.439, label %while.end.440 while.body.439: %t1425 = load i32, i32* %t2 %t1426 = srem i32 %t1425, 2 %t1427 = icmp ne i32 %t1426, 0 br i1 %t1427, label %land.rhs.443, label %if.end.442 while.end.440: br label %if.end.437 if.then.441: %t1431 = load i32, i32* %t0 %t1432 = load i32, i32* %t1 %t1433 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1432 %t1434 = load i32, i32* %t1433 %t1435 = add i32 %t1431, %t1434 store i32 %t1435, i32* %t0 br label %if.end.442 if.end.442: %t1436 = load i32, i32* %t2 %t1437 = sdiv i32 %t1436, 2 store i32 %t1437, i32* %t2 %t1438 = load i32, i32* %t3 %t1439 = sdiv i32 %t1438, 2 store i32 %t1439, i32* %t3 %t1440 = load i32, i32* %t1 %t1441 = add i32 %t1440, 1 store i32 %t1441, i32* %t1 br label %while.cond.438 land.rhs.443: %t1428 = load i32, i32* %t3 %t1429 = srem i32 %t1428, 2 %t1430 = icmp ne i32 %t1429, 0 br i1 %t1430, label %if.then.441, label %if.end.442 if.then.444: %t1451 = load i32, i32* %t2 %t1452 = icmp slt i32 %t1451, 0 %t1453 = zext i1 %t1452 to i32 %t1454 = icmp ne i32 %t1453, 0 br i1 %t1454, label %if.then.447, label %if.else.448 if.else.445: %t1455 = load i32, i32* %t3 %t1456 = icmp sgt i32 %t1455, 0 %t1457 = zext i1 %t1456 to i32 %t1458 = icmp ne i32 %t1457, 0 br i1 %t1458, label %if.then.450, label %if.else.451 if.end.446: %t1482 = load i32, i32* %t0 store i32 %t1482, i32* %t1227 br label %while.cond.377 if.then.447: store i32 65535, i32* %t0 br label %if.end.449 if.else.448: store i32 0, i32* %t0 br label %if.end.449 if.end.449: br label %if.end.446 if.then.450: %t1459 = load i32, i32* %t2 %t1460 = icmp sgt i32 %t1459, 32767 %t1461 = zext i1 %t1460 to i32 %t1462 = icmp ne i32 %t1461, 0 br i1 %t1462, label %if.then.453, label %if.else.454 if.else.451: %t1481 = load i32, i32* %t2 store i32 %t1481, i32* %t0 br label %if.end.452 if.end.452: br label %if.end.446 if.then.453: %t1463 = load i32, i32* %t2 %t1464 = load i32, i32* %t3 %t1465 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1464 %t1466 = load i32, i32* %t1465 %t1467 = sdiv i32 %t1463, %t1466 store i32 %t1467, i32* %t2 %t1468 = load i32, i32* %t2 %t1469 = add i32 %t1468, 65536 %t1470 = load i32, i32* %t3 %t1471 = sub i32 15, %t1470 %t1472 = add i32 %t1471, 1 %t1473 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1472 %t1474 = load i32, i32* %t1473 %t1475 = sub i32 %t1469, %t1474 store i32 %t1475, i32* %t0 br label %if.end.455 if.else.454: %t1476 = load i32, i32* %t2 %t1477 = load i32, i32* %t3 %t1478 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1477 %t1479 = load i32, i32* %t1478 %t1480 = sdiv i32 %t1476, %t1479 store i32 %t1480, i32* %t0 br label %if.end.455 if.end.455: br label %if.end.452 while.cond.456: %t1490 = load i32, i32* %t1487 %t1491 = icmp ne i32 %t1490, 0 br i1 %t1491, label %while.body.457, label %while.end.458 while.body.457: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1492 = load i32, i32* %t1487 store i32 %t1492, i32* %t2 store i32 1, i32* %t3 br label %while.cond.459 while.end.458: %t1743 = load i32, i32* %t1489 store i32 %t1743, i32* %t0 %t1744 = load i32, i32* %t0 store i32 %t1744, i32* %t1193 %t1745 = load i32, i32* %t1194 store i32 %t1745, i32* %t2 store i32 1, i32* %t3 %t1746 = load i32, i32* %t3 %t1747 = icmp sge i32 %t1746, 15 %t1748 = zext i1 %t1747 to i32 %t1749 = icmp ne i32 %t1748, 0 br i1 %t1749, label %if.then.535, label %if.else.536 while.cond.459: %t1493 = load i32, i32* %t1 %t1494 = icmp slt i32 %t1493, 16 %t1495 = zext i1 %t1494 to i32 %t1496 = icmp ne i32 %t1495, 0 br i1 %t1496, label %while.body.460, label %while.end.461 while.body.460: %t1497 = load i32, i32* %t2 %t1498 = srem i32 %t1497, 2 %t1499 = icmp ne i32 %t1498, 0 br i1 %t1499, label %land.rhs.464, label %if.end.463 while.end.461: %t1514 = load i32, i32* %t0 %t1515 = icmp ne i32 %t1514, 0 br i1 %t1515, label %if.then.465, label %if.end.466 if.then.462: %t1503 = load i32, i32* %t0 %t1504 = load i32, i32* %t1 %t1505 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1504 %t1506 = load i32, i32* %t1505 %t1507 = add i32 %t1503, %t1506 store i32 %t1507, i32* %t0 br label %if.end.463 if.end.463: %t1508 = load i32, i32* %t2 %t1509 = sdiv i32 %t1508, 2 store i32 %t1509, i32* %t2 %t1510 = load i32, i32* %t3 %t1511 = sdiv i32 %t1510, 2 store i32 %t1511, i32* %t3 %t1512 = load i32, i32* %t1 %t1513 = add i32 %t1512, 1 store i32 %t1513, i32* %t1 br label %while.cond.459 land.rhs.464: %t1500 = load i32, i32* %t3 %t1501 = srem i32 %t1500, 2 %t1502 = icmp ne i32 %t1501, 0 br i1 %t1502, label %if.then.462, label %if.end.463 if.then.465: %t1517 = load i32, i32* %t1489 store i32 %t1517, i32* %t1516 %t1519 = load i32, i32* %t1485 store i32 %t1519, i32* %t1518 store i32 0, i32* %t1520 br label %while.cond.467 if.end.466: %t1612 = load i32, i32* %t1485 store i32 %t1612, i32* %t1611 %t1614 = load i32, i32* %t1485 store i32 %t1614, i32* %t1613 store i32 0, i32* %t1615 br label %while.cond.495 while.cond.467: %t1521 = load i32, i32* %t1518 %t1522 = icmp ne i32 %t1521, 0 br i1 %t1522, label %while.body.468, label %while.end.469 while.body.468: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1523 = load i32, i32* %t1516 store i32 %t1523, i32* %t2 %t1524 = load i32, i32* %t1518 store i32 %t1524, i32* %t3 br label %while.cond.470 while.end.469: %t1609 = load i32, i32* %t1516 store i32 %t1609, i32* %t0 %t1610 = load i32, i32* %t0 store i32 %t1610, i32* %t1489 br label %if.end.466 while.cond.470: %t1525 = load i32, i32* %t1 %t1526 = icmp slt i32 %t1525, 16 %t1527 = zext i1 %t1526 to i32 %t1528 = icmp ne i32 %t1527, 0 br i1 %t1528, label %while.body.471, label %while.end.472 while.body.471: %t1529 = load i32, i32* %t2 %t1530 = srem i32 %t1529, 2 %t1531 = icmp ne i32 %t1530, 0 br i1 %t1531, label %if.then.473, label %if.else.474 while.end.472: %t1556 = load i32, i32* %t0 store i32 %t1556, i32* %t1520 store i32 0, i32* %t0 store i32 0, i32* %t1 %t1557 = load i32, i32* %t1516 store i32 %t1557, i32* %t2 %t1558 = load i32, i32* %t1518 store i32 %t1558, i32* %t3 br label %while.cond.480 if.then.473: %t1532 = load i32, i32* %t3 %t1533 = srem i32 %t1532, 2 %t1534 = icmp eq i32 %t1533, 0 %t1535 = zext i1 %t1534 to i32 %t1536 = icmp ne i32 %t1535, 0 br i1 %t1536, label %if.then.476, label %if.end.477 if.else.474: %t1542 = load i32, i32* %t3 %t1543 = srem i32 %t1542, 2 %t1544 = icmp ne i32 %t1543, 0 br i1 %t1544, label %if.then.478, label %if.end.479 if.end.475: %t1550 = load i32, i32* %t2 %t1551 = sdiv i32 %t1550, 2 store i32 %t1551, i32* %t2 %t1552 = load i32, i32* %t3 %t1553 = sdiv i32 %t1552, 2 store i32 %t1553, i32* %t3 %t1554 = load i32, i32* %t1 %t1555 = add i32 %t1554, 1 store i32 %t1555, i32* %t1 br label %while.cond.470 if.then.476: %t1537 = load i32, i32* %t0 %t1538 = load i32, i32* %t1 %t1539 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1538 %t1540 = load i32, i32* %t1539 %t1541 = add i32 %t1537, %t1540 store i32 %t1541, i32* %t0 br label %if.end.477 if.end.477: br label %if.end.475 if.then.478: %t1545 = load i32, i32* %t0 %t1546 = load i32, i32* %t1 %t1547 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1546 %t1548 = load i32, i32* %t1547 %t1549 = add i32 %t1545, %t1548 store i32 %t1549, i32* %t0 br label %if.end.479 if.end.479: br label %if.end.475 while.cond.480: %t1559 = load i32, i32* %t1 %t1560 = icmp slt i32 %t1559, 16 %t1561 = zext i1 %t1560 to i32 %t1562 = icmp ne i32 %t1561, 0 br i1 %t1562, label %while.body.481, label %while.end.482 while.body.481: %t1563 = load i32, i32* %t2 %t1564 = srem i32 %t1563, 2 %t1565 = icmp ne i32 %t1564, 0 br i1 %t1565, label %land.rhs.485, label %if.end.484 while.end.482: %t1580 = load i32, i32* %t0 store i32 %t1580, i32* %t1518 %t1581 = icmp ne i32 0, 0 br i1 %t1581, label %if.then.486, label %if.else.487 if.then.483: %t1569 = load i32, i32* %t0 %t1570 = load i32, i32* %t1 %t1571 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1570 %t1572 = load i32, i32* %t1571 %t1573 = add i32 %t1569, %t1572 store i32 %t1573, i32* %t0 br label %if.end.484 if.end.484: %t1574 = load i32, i32* %t2 %t1575 = sdiv i32 %t1574, 2 store i32 %t1575, i32* %t2 %t1576 = load i32, i32* %t3 %t1577 = sdiv i32 %t1576, 2 store i32 %t1577, i32* %t3 %t1578 = load i32, i32* %t1 %t1579 = add i32 %t1578, 1 store i32 %t1579, i32* %t1 br label %while.cond.480 land.rhs.485: %t1566 = load i32, i32* %t3 %t1567 = srem i32 %t1566, 2 %t1568 = icmp ne i32 %t1567, 0 br i1 %t1568, label %if.then.483, label %if.end.484 if.then.486: store i32 0, i32* %t0 br label %if.end.488 if.else.487: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1582 = load i32, i32* %t1518 %t1583 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t1584 = load i32, i32* %t1583 %t1585 = mul i32 %t1582, %t1584 store i32 %t1585, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.489 if.end.488: %t1607 = load i32, i32* %t0 store i32 %t1607, i32* %t1518 %t1608 = load i32, i32* %t1520 store i32 %t1608, i32* %t1516 br label %while.cond.467 while.cond.489: %t1586 = load i32, i32* %t1 %t1587 = icmp slt i32 %t1586, 16 %t1588 = zext i1 %t1587 to i32 %t1589 = icmp ne i32 %t1588, 0 br i1 %t1589, label %while.body.490, label %while.end.491 while.body.490: %t1590 = load i32, i32* %t2 %t1591 = srem i32 %t1590, 2 %t1592 = icmp ne i32 %t1591, 0 br i1 %t1592, label %land.rhs.494, label %if.end.493 while.end.491: br label %if.end.488 if.then.492: %t1596 = load i32, i32* %t0 %t1597 = load i32, i32* %t1 %t1598 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1597 %t1599 = load i32, i32* %t1598 %t1600 = add i32 %t1596, %t1599 store i32 %t1600, i32* %t0 br label %if.end.493 if.end.493: %t1601 = load i32, i32* %t2 %t1602 = sdiv i32 %t1601, 2 store i32 %t1602, i32* %t2 %t1603 = load i32, i32* %t3 %t1604 = sdiv i32 %t1603, 2 store i32 %t1604, i32* %t3 %t1605 = load i32, i32* %t1 %t1606 = add i32 %t1605, 1 store i32 %t1606, i32* %t1 br label %while.cond.489 land.rhs.494: %t1593 = load i32, i32* %t3 %t1594 = srem i32 %t1593, 2 %t1595 = icmp ne i32 %t1594, 0 br i1 %t1595, label %if.then.492, label %if.end.493 while.cond.495: %t1616 = load i32, i32* %t1613 %t1617 = icmp ne i32 %t1616, 0 br i1 %t1617, label %while.body.496, label %while.end.497 while.body.496: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1618 = load i32, i32* %t1611 store i32 %t1618, i32* %t2 %t1619 = load i32, i32* %t1613 store i32 %t1619, i32* %t3 br label %while.cond.498 while.end.497: %t1704 = load i32, i32* %t1611 store i32 %t1704, i32* %t0 %t1705 = load i32, i32* %t0 store i32 %t1705, i32* %t1485 %t1706 = load i32, i32* %t1487 store i32 %t1706, i32* %t2 store i32 1, i32* %t3 %t1707 = load i32, i32* %t3 %t1708 = icmp sge i32 %t1707, 15 %t1709 = zext i1 %t1708 to i32 %t1710 = icmp ne i32 %t1709, 0 br i1 %t1710, label %if.then.523, label %if.else.524 while.cond.498: %t1620 = load i32, i32* %t1 %t1621 = icmp slt i32 %t1620, 16 %t1622 = zext i1 %t1621 to i32 %t1623 = icmp ne i32 %t1622, 0 br i1 %t1623, label %while.body.499, label %while.end.500 while.body.499: %t1624 = load i32, i32* %t2 %t1625 = srem i32 %t1624, 2 %t1626 = icmp ne i32 %t1625, 0 br i1 %t1626, label %if.then.501, label %if.else.502 while.end.500: %t1651 = load i32, i32* %t0 store i32 %t1651, i32* %t1615 store i32 0, i32* %t0 store i32 0, i32* %t1 %t1652 = load i32, i32* %t1611 store i32 %t1652, i32* %t2 %t1653 = load i32, i32* %t1613 store i32 %t1653, i32* %t3 br label %while.cond.508 if.then.501: %t1627 = load i32, i32* %t3 %t1628 = srem i32 %t1627, 2 %t1629 = icmp eq i32 %t1628, 0 %t1630 = zext i1 %t1629 to i32 %t1631 = icmp ne i32 %t1630, 0 br i1 %t1631, label %if.then.504, label %if.end.505 if.else.502: %t1637 = load i32, i32* %t3 %t1638 = srem i32 %t1637, 2 %t1639 = icmp ne i32 %t1638, 0 br i1 %t1639, label %if.then.506, label %if.end.507 if.end.503: %t1645 = load i32, i32* %t2 %t1646 = sdiv i32 %t1645, 2 store i32 %t1646, i32* %t2 %t1647 = load i32, i32* %t3 %t1648 = sdiv i32 %t1647, 2 store i32 %t1648, i32* %t3 %t1649 = load i32, i32* %t1 %t1650 = add i32 %t1649, 1 store i32 %t1650, i32* %t1 br label %while.cond.498 if.then.504: %t1632 = load i32, i32* %t0 %t1633 = load i32, i32* %t1 %t1634 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1633 %t1635 = load i32, i32* %t1634 %t1636 = add i32 %t1632, %t1635 store i32 %t1636, i32* %t0 br label %if.end.505 if.end.505: br label %if.end.503 if.then.506: %t1640 = load i32, i32* %t0 %t1641 = load i32, i32* %t1 %t1642 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1641 %t1643 = load i32, i32* %t1642 %t1644 = add i32 %t1640, %t1643 store i32 %t1644, i32* %t0 br label %if.end.507 if.end.507: br label %if.end.503 while.cond.508: %t1654 = load i32, i32* %t1 %t1655 = icmp slt i32 %t1654, 16 %t1656 = zext i1 %t1655 to i32 %t1657 = icmp ne i32 %t1656, 0 br i1 %t1657, label %while.body.509, label %while.end.510 while.body.509: %t1658 = load i32, i32* %t2 %t1659 = srem i32 %t1658, 2 %t1660 = icmp ne i32 %t1659, 0 br i1 %t1660, label %land.rhs.513, label %if.end.512 while.end.510: %t1675 = load i32, i32* %t0 store i32 %t1675, i32* %t1613 %t1676 = icmp ne i32 0, 0 br i1 %t1676, label %if.then.514, label %if.else.515 if.then.511: %t1664 = load i32, i32* %t0 %t1665 = load i32, i32* %t1 %t1666 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1665 %t1667 = load i32, i32* %t1666 %t1668 = add i32 %t1664, %t1667 store i32 %t1668, i32* %t0 br label %if.end.512 if.end.512: %t1669 = load i32, i32* %t2 %t1670 = sdiv i32 %t1669, 2 store i32 %t1670, i32* %t2 %t1671 = load i32, i32* %t3 %t1672 = sdiv i32 %t1671, 2 store i32 %t1672, i32* %t3 %t1673 = load i32, i32* %t1 %t1674 = add i32 %t1673, 1 store i32 %t1674, i32* %t1 br label %while.cond.508 land.rhs.513: %t1661 = load i32, i32* %t3 %t1662 = srem i32 %t1661, 2 %t1663 = icmp ne i32 %t1662, 0 br i1 %t1663, label %if.then.511, label %if.end.512 if.then.514: store i32 0, i32* %t0 br label %if.end.516 if.else.515: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1677 = load i32, i32* %t1613 %t1678 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t1679 = load i32, i32* %t1678 %t1680 = mul i32 %t1677, %t1679 store i32 %t1680, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.517 if.end.516: %t1702 = load i32, i32* %t0 store i32 %t1702, i32* %t1613 %t1703 = load i32, i32* %t1615 store i32 %t1703, i32* %t1611 br label %while.cond.495 while.cond.517: %t1681 = load i32, i32* %t1 %t1682 = icmp slt i32 %t1681, 16 %t1683 = zext i1 %t1682 to i32 %t1684 = icmp ne i32 %t1683, 0 br i1 %t1684, label %while.body.518, label %while.end.519 while.body.518: %t1685 = load i32, i32* %t2 %t1686 = srem i32 %t1685, 2 %t1687 = icmp ne i32 %t1686, 0 br i1 %t1687, label %land.rhs.522, label %if.end.521 while.end.519: br label %if.end.516 if.then.520: %t1691 = load i32, i32* %t0 %t1692 = load i32, i32* %t1 %t1693 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1692 %t1694 = load i32, i32* %t1693 %t1695 = add i32 %t1691, %t1694 store i32 %t1695, i32* %t0 br label %if.end.521 if.end.521: %t1696 = load i32, i32* %t2 %t1697 = sdiv i32 %t1696, 2 store i32 %t1697, i32* %t2 %t1698 = load i32, i32* %t3 %t1699 = sdiv i32 %t1698, 2 store i32 %t1699, i32* %t3 %t1700 = load i32, i32* %t1 %t1701 = add i32 %t1700, 1 store i32 %t1701, i32* %t1 br label %while.cond.517 land.rhs.522: %t1688 = load i32, i32* %t3 %t1689 = srem i32 %t1688, 2 %t1690 = icmp ne i32 %t1689, 0 br i1 %t1690, label %if.then.520, label %if.end.521 if.then.523: %t1711 = load i32, i32* %t2 %t1712 = icmp slt i32 %t1711, 0 %t1713 = zext i1 %t1712 to i32 %t1714 = icmp ne i32 %t1713, 0 br i1 %t1714, label %if.then.526, label %if.else.527 if.else.524: %t1715 = load i32, i32* %t3 %t1716 = icmp sgt i32 %t1715, 0 %t1717 = zext i1 %t1716 to i32 %t1718 = icmp ne i32 %t1717, 0 br i1 %t1718, label %if.then.529, label %if.else.530 if.end.525: %t1742 = load i32, i32* %t0 store i32 %t1742, i32* %t1487 br label %while.cond.456 if.then.526: store i32 65535, i32* %t0 br label %if.end.528 if.else.527: store i32 0, i32* %t0 br label %if.end.528 if.end.528: br label %if.end.525 if.then.529: %t1719 = load i32, i32* %t2 %t1720 = icmp sgt i32 %t1719, 32767 %t1721 = zext i1 %t1720 to i32 %t1722 = icmp ne i32 %t1721, 0 br i1 %t1722, label %if.then.532, label %if.else.533 if.else.530: %t1741 = load i32, i32* %t2 store i32 %t1741, i32* %t0 br label %if.end.531 if.end.531: br label %if.end.525 if.then.532: %t1723 = load i32, i32* %t2 %t1724 = load i32, i32* %t3 %t1725 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1724 %t1726 = load i32, i32* %t1725 %t1727 = sdiv i32 %t1723, %t1726 store i32 %t1727, i32* %t2 %t1728 = load i32, i32* %t2 %t1729 = add i32 %t1728, 65536 %t1730 = load i32, i32* %t3 %t1731 = sub i32 15, %t1730 %t1732 = add i32 %t1731, 1 %t1733 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1732 %t1734 = load i32, i32* %t1733 %t1735 = sub i32 %t1729, %t1734 store i32 %t1735, i32* %t0 br label %if.end.534 if.else.533: %t1736 = load i32, i32* %t2 %t1737 = load i32, i32* %t3 %t1738 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1737 %t1739 = load i32, i32* %t1738 %t1740 = sdiv i32 %t1736, %t1739 store i32 %t1740, i32* %t0 br label %if.end.534 if.end.534: br label %if.end.531 if.then.535: %t1750 = load i32, i32* %t2 %t1751 = icmp slt i32 %t1750, 0 %t1752 = zext i1 %t1751 to i32 %t1753 = icmp ne i32 %t1752, 0 br i1 %t1753, label %if.then.538, label %if.else.539 if.else.536: %t1754 = load i32, i32* %t3 %t1755 = icmp sgt i32 %t1754, 0 %t1756 = zext i1 %t1755 to i32 %t1757 = icmp ne i32 %t1756, 0 br i1 %t1757, label %if.then.541, label %if.else.542 if.end.537: %t1781 = load i32, i32* %t0 store i32 %t1781, i32* %t1194 br label %while.cond.366 if.then.538: store i32 65535, i32* %t0 br label %if.end.540 if.else.539: store i32 0, i32* %t0 br label %if.end.540 if.end.540: br label %if.end.537 if.then.541: %t1758 = load i32, i32* %t2 %t1759 = icmp sgt i32 %t1758, 32767 %t1760 = zext i1 %t1759 to i32 %t1761 = icmp ne i32 %t1760, 0 br i1 %t1761, label %if.then.544, label %if.else.545 if.else.542: %t1780 = load i32, i32* %t2 store i32 %t1780, i32* %t0 br label %if.end.543 if.end.543: br label %if.end.537 if.then.544: %t1762 = load i32, i32* %t2 %t1763 = load i32, i32* %t3 %t1764 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1763 %t1765 = load i32, i32* %t1764 %t1766 = sdiv i32 %t1762, %t1765 store i32 %t1766, i32* %t2 %t1767 = load i32, i32* %t2 %t1768 = add i32 %t1767, 65536 %t1769 = load i32, i32* %t3 %t1770 = sub i32 15, %t1769 %t1771 = add i32 %t1770, 1 %t1772 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1771 %t1773 = load i32, i32* %t1772 %t1774 = sub i32 %t1768, %t1773 store i32 %t1774, i32* %t0 br label %if.end.546 if.else.545: %t1775 = load i32, i32* %t2 %t1776 = load i32, i32* %t3 %t1777 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1776 %t1778 = load i32, i32* %t1777 %t1779 = sdiv i32 %t1775, %t1778 store i32 %t1779, i32* %t0 br label %if.end.546 if.end.546: br label %if.end.543 while.cond.547: %t1788 = load i32, i32* %t4 %t1789 = icmp slt i32 %t1788, 16 %t1790 = zext i1 %t1789 to i32 %t1791 = icmp ne i32 %t1790, 0 br i1 %t1791, label %while.body.548, label %while.end.549 while.body.548: store i32 2, i32* %t1792 %t1794 = load i32, i32* %t4 store i32 %t1794, i32* %t1793 store i32 1, i32* %t1795 br label %while.cond.550 while.end.549: ret i32 0 while.cond.550: %t1796 = load i32, i32* %t1793 %t1797 = icmp sgt i32 %t1796, 0 %t1798 = zext i1 %t1797 to i32 %t1799 = icmp ne i32 %t1798, 0 br i1 %t1799, label %while.body.551, label %while.end.552 while.body.551: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1800 = load i32, i32* %t1793 store i32 %t1800, i32* %t2 store i32 1, i32* %t3 br label %while.cond.553 while.end.552: %t2381 = load i32, i32* %t1795 store i32 %t2381, i32* %t0 %t2382 = load i32, i32* %t4 %t2383 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2382 %t2384 = load i32, i32* %t2383 %t2385 = load i32, i32* %t0 %t2386 = icmp ne i32 %t2384, %t2385 %t2387 = zext i1 %t2386 to i32 %t2388 = icmp ne i32 %t2387, 0 br i1 %t2388, label %if.then.731, label %if.end.732 while.cond.553: %t1801 = load i32, i32* %t1 %t1802 = icmp slt i32 %t1801, 16 %t1803 = zext i1 %t1802 to i32 %t1804 = icmp ne i32 %t1803, 0 br i1 %t1804, label %while.body.554, label %while.end.555 while.body.554: %t1805 = load i32, i32* %t2 %t1806 = srem i32 %t1805, 2 %t1807 = icmp ne i32 %t1806, 0 br i1 %t1807, label %land.rhs.558, label %if.end.557 while.end.555: %t1822 = load i32, i32* %t0 %t1823 = icmp ne i32 %t1822, 0 br i1 %t1823, label %if.then.559, label %if.end.560 if.then.556: %t1811 = load i32, i32* %t0 %t1812 = load i32, i32* %t1 %t1813 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1812 %t1814 = load i32, i32* %t1813 %t1815 = add i32 %t1811, %t1814 store i32 %t1815, i32* %t0 br label %if.end.557 if.end.557: %t1816 = load i32, i32* %t2 %t1817 = sdiv i32 %t1816, 2 store i32 %t1817, i32* %t2 %t1818 = load i32, i32* %t3 %t1819 = sdiv i32 %t1818, 2 store i32 %t1819, i32* %t3 %t1820 = load i32, i32* %t1 %t1821 = add i32 %t1820, 1 store i32 %t1821, i32* %t1 br label %while.cond.553 land.rhs.558: %t1808 = load i32, i32* %t3 %t1809 = srem i32 %t1808, 2 %t1810 = icmp ne i32 %t1809, 0 br i1 %t1810, label %if.then.556, label %if.end.557 if.then.559: %t1825 = load i32, i32* %t1795 store i32 %t1825, i32* %t1824 %t1827 = load i32, i32* %t1792 store i32 %t1827, i32* %t1826 store i32 0, i32* %t1828 br label %while.cond.561 if.end.560: %t2085 = load i32, i32* %t1792 store i32 %t2085, i32* %t2084 %t2087 = load i32, i32* %t1792 store i32 %t2087, i32* %t2086 store i32 0, i32* %t2088 br label %while.cond.640 while.cond.561: %t1829 = load i32, i32* %t1826 %t1830 = icmp ne i32 %t1829, 0 br i1 %t1830, label %while.body.562, label %while.end.563 while.body.562: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1831 = load i32, i32* %t1826 store i32 %t1831, i32* %t2 store i32 1, i32* %t3 br label %while.cond.564 while.end.563: %t2082 = load i32, i32* %t1828 store i32 %t2082, i32* %t0 %t2083 = load i32, i32* %t0 store i32 %t2083, i32* %t1795 br label %if.end.560 while.cond.564: %t1832 = load i32, i32* %t1 %t1833 = icmp slt i32 %t1832, 16 %t1834 = zext i1 %t1833 to i32 %t1835 = icmp ne i32 %t1834, 0 br i1 %t1835, label %while.body.565, label %while.end.566 while.body.565: %t1836 = load i32, i32* %t2 %t1837 = srem i32 %t1836, 2 %t1838 = icmp ne i32 %t1837, 0 br i1 %t1838, label %land.rhs.569, label %if.end.568 while.end.566: %t1853 = load i32, i32* %t0 %t1854 = icmp ne i32 %t1853, 0 br i1 %t1854, label %if.then.570, label %if.end.571 if.then.567: %t1842 = load i32, i32* %t0 %t1843 = load i32, i32* %t1 %t1844 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1843 %t1845 = load i32, i32* %t1844 %t1846 = add i32 %t1842, %t1845 store i32 %t1846, i32* %t0 br label %if.end.568 if.end.568: %t1847 = load i32, i32* %t2 %t1848 = sdiv i32 %t1847, 2 store i32 %t1848, i32* %t2 %t1849 = load i32, i32* %t3 %t1850 = sdiv i32 %t1849, 2 store i32 %t1850, i32* %t3 %t1851 = load i32, i32* %t1 %t1852 = add i32 %t1851, 1 store i32 %t1852, i32* %t1 br label %while.cond.564 land.rhs.569: %t1839 = load i32, i32* %t3 %t1840 = srem i32 %t1839, 2 %t1841 = icmp ne i32 %t1840, 0 br i1 %t1841, label %if.then.567, label %if.end.568 if.then.570: %t1856 = load i32, i32* %t1828 store i32 %t1856, i32* %t1855 %t1858 = load i32, i32* %t1824 store i32 %t1858, i32* %t1857 store i32 0, i32* %t1859 br label %while.cond.572 if.end.571: %t1951 = load i32, i32* %t1824 store i32 %t1951, i32* %t1950 %t1953 = load i32, i32* %t1824 store i32 %t1953, i32* %t1952 store i32 0, i32* %t1954 br label %while.cond.600 while.cond.572: %t1860 = load i32, i32* %t1857 %t1861 = icmp ne i32 %t1860, 0 br i1 %t1861, label %while.body.573, label %while.end.574 while.body.573: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1862 = load i32, i32* %t1855 store i32 %t1862, i32* %t2 %t1863 = load i32, i32* %t1857 store i32 %t1863, i32* %t3 br label %while.cond.575 while.end.574: %t1948 = load i32, i32* %t1855 store i32 %t1948, i32* %t0 %t1949 = load i32, i32* %t0 store i32 %t1949, i32* %t1828 br label %if.end.571 while.cond.575: %t1864 = load i32, i32* %t1 %t1865 = icmp slt i32 %t1864, 16 %t1866 = zext i1 %t1865 to i32 %t1867 = icmp ne i32 %t1866, 0 br i1 %t1867, label %while.body.576, label %while.end.577 while.body.576: %t1868 = load i32, i32* %t2 %t1869 = srem i32 %t1868, 2 %t1870 = icmp ne i32 %t1869, 0 br i1 %t1870, label %if.then.578, label %if.else.579 while.end.577: %t1895 = load i32, i32* %t0 store i32 %t1895, i32* %t1859 store i32 0, i32* %t0 store i32 0, i32* %t1 %t1896 = load i32, i32* %t1855 store i32 %t1896, i32* %t2 %t1897 = load i32, i32* %t1857 store i32 %t1897, i32* %t3 br label %while.cond.585 if.then.578: %t1871 = load i32, i32* %t3 %t1872 = srem i32 %t1871, 2 %t1873 = icmp eq i32 %t1872, 0 %t1874 = zext i1 %t1873 to i32 %t1875 = icmp ne i32 %t1874, 0 br i1 %t1875, label %if.then.581, label %if.end.582 if.else.579: %t1881 = load i32, i32* %t3 %t1882 = srem i32 %t1881, 2 %t1883 = icmp ne i32 %t1882, 0 br i1 %t1883, label %if.then.583, label %if.end.584 if.end.580: %t1889 = load i32, i32* %t2 %t1890 = sdiv i32 %t1889, 2 store i32 %t1890, i32* %t2 %t1891 = load i32, i32* %t3 %t1892 = sdiv i32 %t1891, 2 store i32 %t1892, i32* %t3 %t1893 = load i32, i32* %t1 %t1894 = add i32 %t1893, 1 store i32 %t1894, i32* %t1 br label %while.cond.575 if.then.581: %t1876 = load i32, i32* %t0 %t1877 = load i32, i32* %t1 %t1878 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1877 %t1879 = load i32, i32* %t1878 %t1880 = add i32 %t1876, %t1879 store i32 %t1880, i32* %t0 br label %if.end.582 if.end.582: br label %if.end.580 if.then.583: %t1884 = load i32, i32* %t0 %t1885 = load i32, i32* %t1 %t1886 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1885 %t1887 = load i32, i32* %t1886 %t1888 = add i32 %t1884, %t1887 store i32 %t1888, i32* %t0 br label %if.end.584 if.end.584: br label %if.end.580 while.cond.585: %t1898 = load i32, i32* %t1 %t1899 = icmp slt i32 %t1898, 16 %t1900 = zext i1 %t1899 to i32 %t1901 = icmp ne i32 %t1900, 0 br i1 %t1901, label %while.body.586, label %while.end.587 while.body.586: %t1902 = load i32, i32* %t2 %t1903 = srem i32 %t1902, 2 %t1904 = icmp ne i32 %t1903, 0 br i1 %t1904, label %land.rhs.590, label %if.end.589 while.end.587: %t1919 = load i32, i32* %t0 store i32 %t1919, i32* %t1857 %t1920 = icmp ne i32 0, 0 br i1 %t1920, label %if.then.591, label %if.else.592 if.then.588: %t1908 = load i32, i32* %t0 %t1909 = load i32, i32* %t1 %t1910 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1909 %t1911 = load i32, i32* %t1910 %t1912 = add i32 %t1908, %t1911 store i32 %t1912, i32* %t0 br label %if.end.589 if.end.589: %t1913 = load i32, i32* %t2 %t1914 = sdiv i32 %t1913, 2 store i32 %t1914, i32* %t2 %t1915 = load i32, i32* %t3 %t1916 = sdiv i32 %t1915, 2 store i32 %t1916, i32* %t3 %t1917 = load i32, i32* %t1 %t1918 = add i32 %t1917, 1 store i32 %t1918, i32* %t1 br label %while.cond.585 land.rhs.590: %t1905 = load i32, i32* %t3 %t1906 = srem i32 %t1905, 2 %t1907 = icmp ne i32 %t1906, 0 br i1 %t1907, label %if.then.588, label %if.end.589 if.then.591: store i32 0, i32* %t0 br label %if.end.593 if.else.592: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1921 = load i32, i32* %t1857 %t1922 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t1923 = load i32, i32* %t1922 %t1924 = mul i32 %t1921, %t1923 store i32 %t1924, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.594 if.end.593: %t1946 = load i32, i32* %t0 store i32 %t1946, i32* %t1857 %t1947 = load i32, i32* %t1859 store i32 %t1947, i32* %t1855 br label %while.cond.572 while.cond.594: %t1925 = load i32, i32* %t1 %t1926 = icmp slt i32 %t1925, 16 %t1927 = zext i1 %t1926 to i32 %t1928 = icmp ne i32 %t1927, 0 br i1 %t1928, label %while.body.595, label %while.end.596 while.body.595: %t1929 = load i32, i32* %t2 %t1930 = srem i32 %t1929, 2 %t1931 = icmp ne i32 %t1930, 0 br i1 %t1931, label %land.rhs.599, label %if.end.598 while.end.596: br label %if.end.593 if.then.597: %t1935 = load i32, i32* %t0 %t1936 = load i32, i32* %t1 %t1937 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1936 %t1938 = load i32, i32* %t1937 %t1939 = add i32 %t1935, %t1938 store i32 %t1939, i32* %t0 br label %if.end.598 if.end.598: %t1940 = load i32, i32* %t2 %t1941 = sdiv i32 %t1940, 2 store i32 %t1941, i32* %t2 %t1942 = load i32, i32* %t3 %t1943 = sdiv i32 %t1942, 2 store i32 %t1943, i32* %t3 %t1944 = load i32, i32* %t1 %t1945 = add i32 %t1944, 1 store i32 %t1945, i32* %t1 br label %while.cond.594 land.rhs.599: %t1932 = load i32, i32* %t3 %t1933 = srem i32 %t1932, 2 %t1934 = icmp ne i32 %t1933, 0 br i1 %t1934, label %if.then.597, label %if.end.598 while.cond.600: %t1955 = load i32, i32* %t1952 %t1956 = icmp ne i32 %t1955, 0 br i1 %t1956, label %while.body.601, label %while.end.602 while.body.601: store i32 0, i32* %t0 store i32 0, i32* %t1 %t1957 = load i32, i32* %t1950 store i32 %t1957, i32* %t2 %t1958 = load i32, i32* %t1952 store i32 %t1958, i32* %t3 br label %while.cond.603 while.end.602: %t2043 = load i32, i32* %t1950 store i32 %t2043, i32* %t0 %t2044 = load i32, i32* %t0 store i32 %t2044, i32* %t1824 %t2045 = load i32, i32* %t1826 store i32 %t2045, i32* %t2 store i32 1, i32* %t3 %t2046 = load i32, i32* %t3 %t2047 = icmp sge i32 %t2046, 15 %t2048 = zext i1 %t2047 to i32 %t2049 = icmp ne i32 %t2048, 0 br i1 %t2049, label %if.then.628, label %if.else.629 while.cond.603: %t1959 = load i32, i32* %t1 %t1960 = icmp slt i32 %t1959, 16 %t1961 = zext i1 %t1960 to i32 %t1962 = icmp ne i32 %t1961, 0 br i1 %t1962, label %while.body.604, label %while.end.605 while.body.604: %t1963 = load i32, i32* %t2 %t1964 = srem i32 %t1963, 2 %t1965 = icmp ne i32 %t1964, 0 br i1 %t1965, label %if.then.606, label %if.else.607 while.end.605: %t1990 = load i32, i32* %t0 store i32 %t1990, i32* %t1954 store i32 0, i32* %t0 store i32 0, i32* %t1 %t1991 = load i32, i32* %t1950 store i32 %t1991, i32* %t2 %t1992 = load i32, i32* %t1952 store i32 %t1992, i32* %t3 br label %while.cond.613 if.then.606: %t1966 = load i32, i32* %t3 %t1967 = srem i32 %t1966, 2 %t1968 = icmp eq i32 %t1967, 0 %t1969 = zext i1 %t1968 to i32 %t1970 = icmp ne i32 %t1969, 0 br i1 %t1970, label %if.then.609, label %if.end.610 if.else.607: %t1976 = load i32, i32* %t3 %t1977 = srem i32 %t1976, 2 %t1978 = icmp ne i32 %t1977, 0 br i1 %t1978, label %if.then.611, label %if.end.612 if.end.608: %t1984 = load i32, i32* %t2 %t1985 = sdiv i32 %t1984, 2 store i32 %t1985, i32* %t2 %t1986 = load i32, i32* %t3 %t1987 = sdiv i32 %t1986, 2 store i32 %t1987, i32* %t3 %t1988 = load i32, i32* %t1 %t1989 = add i32 %t1988, 1 store i32 %t1989, i32* %t1 br label %while.cond.603 if.then.609: %t1971 = load i32, i32* %t0 %t1972 = load i32, i32* %t1 %t1973 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1972 %t1974 = load i32, i32* %t1973 %t1975 = add i32 %t1971, %t1974 store i32 %t1975, i32* %t0 br label %if.end.610 if.end.610: br label %if.end.608 if.then.611: %t1979 = load i32, i32* %t0 %t1980 = load i32, i32* %t1 %t1981 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t1980 %t1982 = load i32, i32* %t1981 %t1983 = add i32 %t1979, %t1982 store i32 %t1983, i32* %t0 br label %if.end.612 if.end.612: br label %if.end.608 while.cond.613: %t1993 = load i32, i32* %t1 %t1994 = icmp slt i32 %t1993, 16 %t1995 = zext i1 %t1994 to i32 %t1996 = icmp ne i32 %t1995, 0 br i1 %t1996, label %while.body.614, label %while.end.615 while.body.614: %t1997 = load i32, i32* %t2 %t1998 = srem i32 %t1997, 2 %t1999 = icmp ne i32 %t1998, 0 br i1 %t1999, label %land.rhs.618, label %if.end.617 while.end.615: %t2014 = load i32, i32* %t0 store i32 %t2014, i32* %t1952 %t2015 = icmp ne i32 0, 0 br i1 %t2015, label %if.then.619, label %if.else.620 if.then.616: %t2003 = load i32, i32* %t0 %t2004 = load i32, i32* %t1 %t2005 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2004 %t2006 = load i32, i32* %t2005 %t2007 = add i32 %t2003, %t2006 store i32 %t2007, i32* %t0 br label %if.end.617 if.end.617: %t2008 = load i32, i32* %t2 %t2009 = sdiv i32 %t2008, 2 store i32 %t2009, i32* %t2 %t2010 = load i32, i32* %t3 %t2011 = sdiv i32 %t2010, 2 store i32 %t2011, i32* %t3 %t2012 = load i32, i32* %t1 %t2013 = add i32 %t2012, 1 store i32 %t2013, i32* %t1 br label %while.cond.613 land.rhs.618: %t2000 = load i32, i32* %t3 %t2001 = srem i32 %t2000, 2 %t2002 = icmp ne i32 %t2001, 0 br i1 %t2002, label %if.then.616, label %if.end.617 if.then.619: store i32 0, i32* %t0 br label %if.end.621 if.else.620: store i32 0, i32* %t0 store i32 0, i32* %t1 %t2016 = load i32, i32* %t1952 %t2017 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t2018 = load i32, i32* %t2017 %t2019 = mul i32 %t2016, %t2018 store i32 %t2019, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.622 if.end.621: %t2041 = load i32, i32* %t0 store i32 %t2041, i32* %t1952 %t2042 = load i32, i32* %t1954 store i32 %t2042, i32* %t1950 br label %while.cond.600 while.cond.622: %t2020 = load i32, i32* %t1 %t2021 = icmp slt i32 %t2020, 16 %t2022 = zext i1 %t2021 to i32 %t2023 = icmp ne i32 %t2022, 0 br i1 %t2023, label %while.body.623, label %while.end.624 while.body.623: %t2024 = load i32, i32* %t2 %t2025 = srem i32 %t2024, 2 %t2026 = icmp ne i32 %t2025, 0 br i1 %t2026, label %land.rhs.627, label %if.end.626 while.end.624: br label %if.end.621 if.then.625: %t2030 = load i32, i32* %t0 %t2031 = load i32, i32* %t1 %t2032 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2031 %t2033 = load i32, i32* %t2032 %t2034 = add i32 %t2030, %t2033 store i32 %t2034, i32* %t0 br label %if.end.626 if.end.626: %t2035 = load i32, i32* %t2 %t2036 = sdiv i32 %t2035, 2 store i32 %t2036, i32* %t2 %t2037 = load i32, i32* %t3 %t2038 = sdiv i32 %t2037, 2 store i32 %t2038, i32* %t3 %t2039 = load i32, i32* %t1 %t2040 = add i32 %t2039, 1 store i32 %t2040, i32* %t1 br label %while.cond.622 land.rhs.627: %t2027 = load i32, i32* %t3 %t2028 = srem i32 %t2027, 2 %t2029 = icmp ne i32 %t2028, 0 br i1 %t2029, label %if.then.625, label %if.end.626 if.then.628: %t2050 = load i32, i32* %t2 %t2051 = icmp slt i32 %t2050, 0 %t2052 = zext i1 %t2051 to i32 %t2053 = icmp ne i32 %t2052, 0 br i1 %t2053, label %if.then.631, label %if.else.632 if.else.629: %t2054 = load i32, i32* %t3 %t2055 = icmp sgt i32 %t2054, 0 %t2056 = zext i1 %t2055 to i32 %t2057 = icmp ne i32 %t2056, 0 br i1 %t2057, label %if.then.634, label %if.else.635 if.end.630: %t2081 = load i32, i32* %t0 store i32 %t2081, i32* %t1826 br label %while.cond.561 if.then.631: store i32 65535, i32* %t0 br label %if.end.633 if.else.632: store i32 0, i32* %t0 br label %if.end.633 if.end.633: br label %if.end.630 if.then.634: %t2058 = load i32, i32* %t2 %t2059 = icmp sgt i32 %t2058, 32767 %t2060 = zext i1 %t2059 to i32 %t2061 = icmp ne i32 %t2060, 0 br i1 %t2061, label %if.then.637, label %if.else.638 if.else.635: %t2080 = load i32, i32* %t2 store i32 %t2080, i32* %t0 br label %if.end.636 if.end.636: br label %if.end.630 if.then.637: %t2062 = load i32, i32* %t2 %t2063 = load i32, i32* %t3 %t2064 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2063 %t2065 = load i32, i32* %t2064 %t2066 = sdiv i32 %t2062, %t2065 store i32 %t2066, i32* %t2 %t2067 = load i32, i32* %t2 %t2068 = add i32 %t2067, 65536 %t2069 = load i32, i32* %t3 %t2070 = sub i32 15, %t2069 %t2071 = add i32 %t2070, 1 %t2072 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2071 %t2073 = load i32, i32* %t2072 %t2074 = sub i32 %t2068, %t2073 store i32 %t2074, i32* %t0 br label %if.end.639 if.else.638: %t2075 = load i32, i32* %t2 %t2076 = load i32, i32* %t3 %t2077 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2076 %t2078 = load i32, i32* %t2077 %t2079 = sdiv i32 %t2075, %t2078 store i32 %t2079, i32* %t0 br label %if.end.639 if.end.639: br label %if.end.636 while.cond.640: %t2089 = load i32, i32* %t2086 %t2090 = icmp ne i32 %t2089, 0 br i1 %t2090, label %while.body.641, label %while.end.642 while.body.641: store i32 0, i32* %t0 store i32 0, i32* %t1 %t2091 = load i32, i32* %t2086 store i32 %t2091, i32* %t2 store i32 1, i32* %t3 br label %while.cond.643 while.end.642: %t2342 = load i32, i32* %t2088 store i32 %t2342, i32* %t0 %t2343 = load i32, i32* %t0 store i32 %t2343, i32* %t1792 %t2344 = load i32, i32* %t1793 store i32 %t2344, i32* %t2 store i32 1, i32* %t3 %t2345 = load i32, i32* %t3 %t2346 = icmp sge i32 %t2345, 15 %t2347 = zext i1 %t2346 to i32 %t2348 = icmp ne i32 %t2347, 0 br i1 %t2348, label %if.then.719, label %if.else.720 while.cond.643: %t2092 = load i32, i32* %t1 %t2093 = icmp slt i32 %t2092, 16 %t2094 = zext i1 %t2093 to i32 %t2095 = icmp ne i32 %t2094, 0 br i1 %t2095, label %while.body.644, label %while.end.645 while.body.644: %t2096 = load i32, i32* %t2 %t2097 = srem i32 %t2096, 2 %t2098 = icmp ne i32 %t2097, 0 br i1 %t2098, label %land.rhs.648, label %if.end.647 while.end.645: %t2113 = load i32, i32* %t0 %t2114 = icmp ne i32 %t2113, 0 br i1 %t2114, label %if.then.649, label %if.end.650 if.then.646: %t2102 = load i32, i32* %t0 %t2103 = load i32, i32* %t1 %t2104 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2103 %t2105 = load i32, i32* %t2104 %t2106 = add i32 %t2102, %t2105 store i32 %t2106, i32* %t0 br label %if.end.647 if.end.647: %t2107 = load i32, i32* %t2 %t2108 = sdiv i32 %t2107, 2 store i32 %t2108, i32* %t2 %t2109 = load i32, i32* %t3 %t2110 = sdiv i32 %t2109, 2 store i32 %t2110, i32* %t3 %t2111 = load i32, i32* %t1 %t2112 = add i32 %t2111, 1 store i32 %t2112, i32* %t1 br label %while.cond.643 land.rhs.648: %t2099 = load i32, i32* %t3 %t2100 = srem i32 %t2099, 2 %t2101 = icmp ne i32 %t2100, 0 br i1 %t2101, label %if.then.646, label %if.end.647 if.then.649: %t2116 = load i32, i32* %t2088 store i32 %t2116, i32* %t2115 %t2118 = load i32, i32* %t2084 store i32 %t2118, i32* %t2117 store i32 0, i32* %t2119 br label %while.cond.651 if.end.650: %t2211 = load i32, i32* %t2084 store i32 %t2211, i32* %t2210 %t2213 = load i32, i32* %t2084 store i32 %t2213, i32* %t2212 store i32 0, i32* %t2214 br label %while.cond.679 while.cond.651: %t2120 = load i32, i32* %t2117 %t2121 = icmp ne i32 %t2120, 0 br i1 %t2121, label %while.body.652, label %while.end.653 while.body.652: store i32 0, i32* %t0 store i32 0, i32* %t1 %t2122 = load i32, i32* %t2115 store i32 %t2122, i32* %t2 %t2123 = load i32, i32* %t2117 store i32 %t2123, i32* %t3 br label %while.cond.654 while.end.653: %t2208 = load i32, i32* %t2115 store i32 %t2208, i32* %t0 %t2209 = load i32, i32* %t0 store i32 %t2209, i32* %t2088 br label %if.end.650 while.cond.654: %t2124 = load i32, i32* %t1 %t2125 = icmp slt i32 %t2124, 16 %t2126 = zext i1 %t2125 to i32 %t2127 = icmp ne i32 %t2126, 0 br i1 %t2127, label %while.body.655, label %while.end.656 while.body.655: %t2128 = load i32, i32* %t2 %t2129 = srem i32 %t2128, 2 %t2130 = icmp ne i32 %t2129, 0 br i1 %t2130, label %if.then.657, label %if.else.658 while.end.656: %t2155 = load i32, i32* %t0 store i32 %t2155, i32* %t2119 store i32 0, i32* %t0 store i32 0, i32* %t1 %t2156 = load i32, i32* %t2115 store i32 %t2156, i32* %t2 %t2157 = load i32, i32* %t2117 store i32 %t2157, i32* %t3 br label %while.cond.664 if.then.657: %t2131 = load i32, i32* %t3 %t2132 = srem i32 %t2131, 2 %t2133 = icmp eq i32 %t2132, 0 %t2134 = zext i1 %t2133 to i32 %t2135 = icmp ne i32 %t2134, 0 br i1 %t2135, label %if.then.660, label %if.end.661 if.else.658: %t2141 = load i32, i32* %t3 %t2142 = srem i32 %t2141, 2 %t2143 = icmp ne i32 %t2142, 0 br i1 %t2143, label %if.then.662, label %if.end.663 if.end.659: %t2149 = load i32, i32* %t2 %t2150 = sdiv i32 %t2149, 2 store i32 %t2150, i32* %t2 %t2151 = load i32, i32* %t3 %t2152 = sdiv i32 %t2151, 2 store i32 %t2152, i32* %t3 %t2153 = load i32, i32* %t1 %t2154 = add i32 %t2153, 1 store i32 %t2154, i32* %t1 br label %while.cond.654 if.then.660: %t2136 = load i32, i32* %t0 %t2137 = load i32, i32* %t1 %t2138 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2137 %t2139 = load i32, i32* %t2138 %t2140 = add i32 %t2136, %t2139 store i32 %t2140, i32* %t0 br label %if.end.661 if.end.661: br label %if.end.659 if.then.662: %t2144 = load i32, i32* %t0 %t2145 = load i32, i32* %t1 %t2146 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2145 %t2147 = load i32, i32* %t2146 %t2148 = add i32 %t2144, %t2147 store i32 %t2148, i32* %t0 br label %if.end.663 if.end.663: br label %if.end.659 while.cond.664: %t2158 = load i32, i32* %t1 %t2159 = icmp slt i32 %t2158, 16 %t2160 = zext i1 %t2159 to i32 %t2161 = icmp ne i32 %t2160, 0 br i1 %t2161, label %while.body.665, label %while.end.666 while.body.665: %t2162 = load i32, i32* %t2 %t2163 = srem i32 %t2162, 2 %t2164 = icmp ne i32 %t2163, 0 br i1 %t2164, label %land.rhs.669, label %if.end.668 while.end.666: %t2179 = load i32, i32* %t0 store i32 %t2179, i32* %t2117 %t2180 = icmp ne i32 0, 0 br i1 %t2180, label %if.then.670, label %if.else.671 if.then.667: %t2168 = load i32, i32* %t0 %t2169 = load i32, i32* %t1 %t2170 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2169 %t2171 = load i32, i32* %t2170 %t2172 = add i32 %t2168, %t2171 store i32 %t2172, i32* %t0 br label %if.end.668 if.end.668: %t2173 = load i32, i32* %t2 %t2174 = sdiv i32 %t2173, 2 store i32 %t2174, i32* %t2 %t2175 = load i32, i32* %t3 %t2176 = sdiv i32 %t2175, 2 store i32 %t2176, i32* %t3 %t2177 = load i32, i32* %t1 %t2178 = add i32 %t2177, 1 store i32 %t2178, i32* %t1 br label %while.cond.664 land.rhs.669: %t2165 = load i32, i32* %t3 %t2166 = srem i32 %t2165, 2 %t2167 = icmp ne i32 %t2166, 0 br i1 %t2167, label %if.then.667, label %if.end.668 if.then.670: store i32 0, i32* %t0 br label %if.end.672 if.else.671: store i32 0, i32* %t0 store i32 0, i32* %t1 %t2181 = load i32, i32* %t2117 %t2182 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t2183 = load i32, i32* %t2182 %t2184 = mul i32 %t2181, %t2183 store i32 %t2184, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.673 if.end.672: %t2206 = load i32, i32* %t0 store i32 %t2206, i32* %t2117 %t2207 = load i32, i32* %t2119 store i32 %t2207, i32* %t2115 br label %while.cond.651 while.cond.673: %t2185 = load i32, i32* %t1 %t2186 = icmp slt i32 %t2185, 16 %t2187 = zext i1 %t2186 to i32 %t2188 = icmp ne i32 %t2187, 0 br i1 %t2188, label %while.body.674, label %while.end.675 while.body.674: %t2189 = load i32, i32* %t2 %t2190 = srem i32 %t2189, 2 %t2191 = icmp ne i32 %t2190, 0 br i1 %t2191, label %land.rhs.678, label %if.end.677 while.end.675: br label %if.end.672 if.then.676: %t2195 = load i32, i32* %t0 %t2196 = load i32, i32* %t1 %t2197 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2196 %t2198 = load i32, i32* %t2197 %t2199 = add i32 %t2195, %t2198 store i32 %t2199, i32* %t0 br label %if.end.677 if.end.677: %t2200 = load i32, i32* %t2 %t2201 = sdiv i32 %t2200, 2 store i32 %t2201, i32* %t2 %t2202 = load i32, i32* %t3 %t2203 = sdiv i32 %t2202, 2 store i32 %t2203, i32* %t3 %t2204 = load i32, i32* %t1 %t2205 = add i32 %t2204, 1 store i32 %t2205, i32* %t1 br label %while.cond.673 land.rhs.678: %t2192 = load i32, i32* %t3 %t2193 = srem i32 %t2192, 2 %t2194 = icmp ne i32 %t2193, 0 br i1 %t2194, label %if.then.676, label %if.end.677 while.cond.679: %t2215 = load i32, i32* %t2212 %t2216 = icmp ne i32 %t2215, 0 br i1 %t2216, label %while.body.680, label %while.end.681 while.body.680: store i32 0, i32* %t0 store i32 0, i32* %t1 %t2217 = load i32, i32* %t2210 store i32 %t2217, i32* %t2 %t2218 = load i32, i32* %t2212 store i32 %t2218, i32* %t3 br label %while.cond.682 while.end.681: %t2303 = load i32, i32* %t2210 store i32 %t2303, i32* %t0 %t2304 = load i32, i32* %t0 store i32 %t2304, i32* %t2084 %t2305 = load i32, i32* %t2086 store i32 %t2305, i32* %t2 store i32 1, i32* %t3 %t2306 = load i32, i32* %t3 %t2307 = icmp sge i32 %t2306, 15 %t2308 = zext i1 %t2307 to i32 %t2309 = icmp ne i32 %t2308, 0 br i1 %t2309, label %if.then.707, label %if.else.708 while.cond.682: %t2219 = load i32, i32* %t1 %t2220 = icmp slt i32 %t2219, 16 %t2221 = zext i1 %t2220 to i32 %t2222 = icmp ne i32 %t2221, 0 br i1 %t2222, label %while.body.683, label %while.end.684 while.body.683: %t2223 = load i32, i32* %t2 %t2224 = srem i32 %t2223, 2 %t2225 = icmp ne i32 %t2224, 0 br i1 %t2225, label %if.then.685, label %if.else.686 while.end.684: %t2250 = load i32, i32* %t0 store i32 %t2250, i32* %t2214 store i32 0, i32* %t0 store i32 0, i32* %t1 %t2251 = load i32, i32* %t2210 store i32 %t2251, i32* %t2 %t2252 = load i32, i32* %t2212 store i32 %t2252, i32* %t3 br label %while.cond.692 if.then.685: %t2226 = load i32, i32* %t3 %t2227 = srem i32 %t2226, 2 %t2228 = icmp eq i32 %t2227, 0 %t2229 = zext i1 %t2228 to i32 %t2230 = icmp ne i32 %t2229, 0 br i1 %t2230, label %if.then.688, label %if.end.689 if.else.686: %t2236 = load i32, i32* %t3 %t2237 = srem i32 %t2236, 2 %t2238 = icmp ne i32 %t2237, 0 br i1 %t2238, label %if.then.690, label %if.end.691 if.end.687: %t2244 = load i32, i32* %t2 %t2245 = sdiv i32 %t2244, 2 store i32 %t2245, i32* %t2 %t2246 = load i32, i32* %t3 %t2247 = sdiv i32 %t2246, 2 store i32 %t2247, i32* %t3 %t2248 = load i32, i32* %t1 %t2249 = add i32 %t2248, 1 store i32 %t2249, i32* %t1 br label %while.cond.682 if.then.688: %t2231 = load i32, i32* %t0 %t2232 = load i32, i32* %t1 %t2233 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2232 %t2234 = load i32, i32* %t2233 %t2235 = add i32 %t2231, %t2234 store i32 %t2235, i32* %t0 br label %if.end.689 if.end.689: br label %if.end.687 if.then.690: %t2239 = load i32, i32* %t0 %t2240 = load i32, i32* %t1 %t2241 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2240 %t2242 = load i32, i32* %t2241 %t2243 = add i32 %t2239, %t2242 store i32 %t2243, i32* %t0 br label %if.end.691 if.end.691: br label %if.end.687 while.cond.692: %t2253 = load i32, i32* %t1 %t2254 = icmp slt i32 %t2253, 16 %t2255 = zext i1 %t2254 to i32 %t2256 = icmp ne i32 %t2255, 0 br i1 %t2256, label %while.body.693, label %while.end.694 while.body.693: %t2257 = load i32, i32* %t2 %t2258 = srem i32 %t2257, 2 %t2259 = icmp ne i32 %t2258, 0 br i1 %t2259, label %land.rhs.697, label %if.end.696 while.end.694: %t2274 = load i32, i32* %t0 store i32 %t2274, i32* %t2212 %t2275 = icmp ne i32 0, 0 br i1 %t2275, label %if.then.698, label %if.else.699 if.then.695: %t2263 = load i32, i32* %t0 %t2264 = load i32, i32* %t1 %t2265 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2264 %t2266 = load i32, i32* %t2265 %t2267 = add i32 %t2263, %t2266 store i32 %t2267, i32* %t0 br label %if.end.696 if.end.696: %t2268 = load i32, i32* %t2 %t2269 = sdiv i32 %t2268, 2 store i32 %t2269, i32* %t2 %t2270 = load i32, i32* %t3 %t2271 = sdiv i32 %t2270, 2 store i32 %t2271, i32* %t3 %t2272 = load i32, i32* %t1 %t2273 = add i32 %t2272, 1 store i32 %t2273, i32* %t1 br label %while.cond.692 land.rhs.697: %t2260 = load i32, i32* %t3 %t2261 = srem i32 %t2260, 2 %t2262 = icmp ne i32 %t2261, 0 br i1 %t2262, label %if.then.695, label %if.end.696 if.then.698: store i32 0, i32* %t0 br label %if.end.700 if.else.699: store i32 0, i32* %t0 store i32 0, i32* %t1 %t2276 = load i32, i32* %t2212 %t2277 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 1 %t2278 = load i32, i32* %t2277 %t2279 = mul i32 %t2276, %t2278 store i32 %t2279, i32* %t2 store i32 65535, i32* %t3 br label %while.cond.701 if.end.700: %t2301 = load i32, i32* %t0 store i32 %t2301, i32* %t2212 %t2302 = load i32, i32* %t2214 store i32 %t2302, i32* %t2210 br label %while.cond.679 while.cond.701: %t2280 = load i32, i32* %t1 %t2281 = icmp slt i32 %t2280, 16 %t2282 = zext i1 %t2281 to i32 %t2283 = icmp ne i32 %t2282, 0 br i1 %t2283, label %while.body.702, label %while.end.703 while.body.702: %t2284 = load i32, i32* %t2 %t2285 = srem i32 %t2284, 2 %t2286 = icmp ne i32 %t2285, 0 br i1 %t2286, label %land.rhs.706, label %if.end.705 while.end.703: br label %if.end.700 if.then.704: %t2290 = load i32, i32* %t0 %t2291 = load i32, i32* %t1 %t2292 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2291 %t2293 = load i32, i32* %t2292 %t2294 = add i32 %t2290, %t2293 store i32 %t2294, i32* %t0 br label %if.end.705 if.end.705: %t2295 = load i32, i32* %t2 %t2296 = sdiv i32 %t2295, 2 store i32 %t2296, i32* %t2 %t2297 = load i32, i32* %t3 %t2298 = sdiv i32 %t2297, 2 store i32 %t2298, i32* %t3 %t2299 = load i32, i32* %t1 %t2300 = add i32 %t2299, 1 store i32 %t2300, i32* %t1 br label %while.cond.701 land.rhs.706: %t2287 = load i32, i32* %t3 %t2288 = srem i32 %t2287, 2 %t2289 = icmp ne i32 %t2288, 0 br i1 %t2289, label %if.then.704, label %if.end.705 if.then.707: %t2310 = load i32, i32* %t2 %t2311 = icmp slt i32 %t2310, 0 %t2312 = zext i1 %t2311 to i32 %t2313 = icmp ne i32 %t2312, 0 br i1 %t2313, label %if.then.710, label %if.else.711 if.else.708: %t2314 = load i32, i32* %t3 %t2315 = icmp sgt i32 %t2314, 0 %t2316 = zext i1 %t2315 to i32 %t2317 = icmp ne i32 %t2316, 0 br i1 %t2317, label %if.then.713, label %if.else.714 if.end.709: %t2341 = load i32, i32* %t0 store i32 %t2341, i32* %t2086 br label %while.cond.640 if.then.710: store i32 65535, i32* %t0 br label %if.end.712 if.else.711: store i32 0, i32* %t0 br label %if.end.712 if.end.712: br label %if.end.709 if.then.713: %t2318 = load i32, i32* %t2 %t2319 = icmp sgt i32 %t2318, 32767 %t2320 = zext i1 %t2319 to i32 %t2321 = icmp ne i32 %t2320, 0 br i1 %t2321, label %if.then.716, label %if.else.717 if.else.714: %t2340 = load i32, i32* %t2 store i32 %t2340, i32* %t0 br label %if.end.715 if.end.715: br label %if.end.709 if.then.716: %t2322 = load i32, i32* %t2 %t2323 = load i32, i32* %t3 %t2324 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2323 %t2325 = load i32, i32* %t2324 %t2326 = sdiv i32 %t2322, %t2325 store i32 %t2326, i32* %t2 %t2327 = load i32, i32* %t2 %t2328 = add i32 %t2327, 65536 %t2329 = load i32, i32* %t3 %t2330 = sub i32 15, %t2329 %t2331 = add i32 %t2330, 1 %t2332 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2331 %t2333 = load i32, i32* %t2332 %t2334 = sub i32 %t2328, %t2333 store i32 %t2334, i32* %t0 br label %if.end.718 if.else.717: %t2335 = load i32, i32* %t2 %t2336 = load i32, i32* %t3 %t2337 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2336 %t2338 = load i32, i32* %t2337 %t2339 = sdiv i32 %t2335, %t2338 store i32 %t2339, i32* %t0 br label %if.end.718 if.end.718: br label %if.end.715 if.then.719: %t2349 = load i32, i32* %t2 %t2350 = icmp slt i32 %t2349, 0 %t2351 = zext i1 %t2350 to i32 %t2352 = icmp ne i32 %t2351, 0 br i1 %t2352, label %if.then.722, label %if.else.723 if.else.720: %t2353 = load i32, i32* %t3 %t2354 = icmp sgt i32 %t2353, 0 %t2355 = zext i1 %t2354 to i32 %t2356 = icmp ne i32 %t2355, 0 br i1 %t2356, label %if.then.725, label %if.else.726 if.end.721: %t2380 = load i32, i32* %t0 store i32 %t2380, i32* %t1793 br label %while.cond.550 if.then.722: store i32 65535, i32* %t0 br label %if.end.724 if.else.723: store i32 0, i32* %t0 br label %if.end.724 if.end.724: br label %if.end.721 if.then.725: %t2357 = load i32, i32* %t2 %t2358 = icmp sgt i32 %t2357, 32767 %t2359 = zext i1 %t2358 to i32 %t2360 = icmp ne i32 %t2359, 0 br i1 %t2360, label %if.then.728, label %if.else.729 if.else.726: %t2379 = load i32, i32* %t2 store i32 %t2379, i32* %t0 br label %if.end.727 if.end.727: br label %if.end.721 if.then.728: %t2361 = load i32, i32* %t2 %t2362 = load i32, i32* %t3 %t2363 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2362 %t2364 = load i32, i32* %t2363 %t2365 = sdiv i32 %t2361, %t2364 store i32 %t2365, i32* %t2 %t2366 = load i32, i32* %t2 %t2367 = add i32 %t2366, 65536 %t2368 = load i32, i32* %t3 %t2369 = sub i32 15, %t2368 %t2370 = add i32 %t2369, 1 %t2371 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2370 %t2372 = load i32, i32* %t2371 %t2373 = sub i32 %t2367, %t2372 store i32 %t2373, i32* %t0 br label %if.end.730 if.else.729: %t2374 = load i32, i32* %t2 %t2375 = load i32, i32* %t3 %t2376 = getelementptr inbounds [16 x i32], [16 x i32]* @SHIFT_TABLE, i32 0, i32 %t2375 %t2377 = load i32, i32* %t2376 %t2378 = sdiv i32 %t2374, %t2377 store i32 %t2378, i32* %t0 br label %if.end.730 if.end.730: br label %if.end.727 if.then.731: ret i32 1 if.end.732: %t2389 = load i32, i32* %t4 %t2390 = add i32 %t2389, 1 store i32 %t2390, i32* %t4 br label %while.cond.547 } define i32 @main() { entry: %t2391 = call i32 @long_func() ret i32 %t2391 }