You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4708 lines
138 KiB

@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
}