forked from NUDT-compiler/nudt-compiler-cpp
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
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
|
|
}
|