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.
539 lines
16 KiB
539 lines
16 KiB
@sum = global i32 0
|
|
@array = global [20 x i32] zeroinitializer
|
|
|
|
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 @f(i32 %arg.i, i32 %arg.j) {
|
|
entry:
|
|
%t0 = alloca i32
|
|
store i32 %arg.i, i32* %t0
|
|
%t1 = alloca i32
|
|
store i32 %arg.j, i32* %t1
|
|
%t2 = load i32, i32* @sum
|
|
%t3 = add i32 %t2, 1
|
|
store i32 %t3, i32* @sum
|
|
%t4 = load i32, i32* %t0
|
|
%t5 = load i32, i32* %t1
|
|
%t6 = icmp sge i32 %t4, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %if.then.1, label %lor.rhs.3
|
|
if.then.1:
|
|
ret i32 0
|
|
if.end.2:
|
|
%t13 = load i32, i32* %t0
|
|
%t14 = getelementptr inbounds [20 x i32], [20 x i32]* @array, i32 0, i32 %t13
|
|
store i32 1, i32* %t14
|
|
%t15 = load i32, i32* %t0
|
|
%t16 = icmp eq i32 %t15, 0
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %if.then.4, label %if.else.5
|
|
lor.rhs.3:
|
|
%t9 = load i32, i32* %t0
|
|
%t10 = icmp sge i32 %t9, 20
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %if.then.1, label %if.end.2
|
|
if.then.4:
|
|
%t19 = getelementptr inbounds [20 x i32], [20 x i32]* @array, i32 0, i32 0
|
|
%t20 = load i32, i32* %t19
|
|
ret i32 %t20
|
|
if.else.5:
|
|
%t21 = load i32, i32* %t0
|
|
%t22 = sub i32 %t21, 1
|
|
%t23 = getelementptr inbounds [20 x i32], [20 x i32]* @array, i32 0, i32 %t22
|
|
%t24 = load i32, i32* %t23
|
|
ret i32 %t24
|
|
if.end.6:
|
|
ret i32 0
|
|
}
|
|
define i32 @g(i32 %arg.i, i32 %arg.j) {
|
|
entry:
|
|
%t25 = alloca i32
|
|
store i32 %arg.i, i32* %t25
|
|
%t26 = alloca i32
|
|
store i32 %arg.j, i32* %t26
|
|
%t27 = load i32, i32* @sum
|
|
%t28 = add i32 %t27, 2
|
|
store i32 %t28, i32* @sum
|
|
%t29 = load i32, i32* %t25
|
|
%t30 = load i32, i32* %t26
|
|
%t31 = icmp sge i32 %t29, %t30
|
|
%t32 = zext i1 %t31 to i32
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %if.then.7, label %lor.rhs.9
|
|
if.then.7:
|
|
ret i32 1
|
|
if.end.8:
|
|
%t38 = load i32, i32* %t25
|
|
%t39 = getelementptr inbounds [20 x i32], [20 x i32]* @array, i32 0, i32 %t38
|
|
store i32 0, i32* %t39
|
|
%t40 = load i32, i32* %t25
|
|
%t41 = icmp eq i32 %t40, 0
|
|
%t42 = zext i1 %t41 to i32
|
|
%t43 = icmp ne i32 %t42, 0
|
|
br i1 %t43, label %if.then.10, label %if.else.11
|
|
lor.rhs.9:
|
|
%t34 = load i32, i32* %t25
|
|
%t35 = icmp sge i32 %t34, 20
|
|
%t36 = zext i1 %t35 to i32
|
|
%t37 = icmp ne i32 %t36, 0
|
|
br i1 %t37, label %if.then.7, label %if.end.8
|
|
if.then.10:
|
|
%t44 = getelementptr inbounds [20 x i32], [20 x i32]* @array, i32 0, i32 0
|
|
%t45 = load i32, i32* %t44
|
|
ret i32 %t45
|
|
if.else.11:
|
|
%t46 = load i32, i32* %t25
|
|
%t47 = sub i32 %t46, 1
|
|
%t48 = getelementptr inbounds [20 x i32], [20 x i32]* @array, i32 0, i32 %t47
|
|
%t49 = load i32, i32* %t48
|
|
ret i32 %t49
|
|
if.end.12:
|
|
ret i32 0
|
|
}
|
|
define i32 @h(i32 %arg.i) {
|
|
entry:
|
|
%t50 = alloca i32
|
|
store i32 %arg.i, i32* %t50
|
|
%t51 = load i32, i32* @sum
|
|
%t52 = add i32 %t51, 3
|
|
store i32 %t52, i32* @sum
|
|
%t53 = load i32, i32* %t50
|
|
%t54 = icmp slt i32 %t53, 0
|
|
%t55 = zext i1 %t54 to i32
|
|
%t56 = icmp ne i32 %t55, 0
|
|
br i1 %t56, label %if.then.13, label %lor.rhs.15
|
|
if.then.13:
|
|
ret i32 0
|
|
if.end.14:
|
|
%t61 = load i32, i32* %t50
|
|
%t62 = getelementptr inbounds [20 x i32], [20 x i32]* @array, i32 0, i32 %t61
|
|
%t63 = load i32, i32* %t62
|
|
ret i32 %t63
|
|
lor.rhs.15:
|
|
%t57 = load i32, i32* %t50
|
|
%t58 = icmp sge i32 %t57, 20
|
|
%t59 = zext i1 %t58 to i32
|
|
%t60 = icmp ne i32 %t59, 0
|
|
br i1 %t60, label %if.then.13, label %if.end.14
|
|
}
|
|
define i32 @main() {
|
|
entry:
|
|
%t64 = alloca i32
|
|
%t208 = alloca i32
|
|
store i32 0, i32* %t64
|
|
br label %while.cond.16
|
|
while.cond.16:
|
|
%t65 = load i32, i32* %t64
|
|
%t66 = icmp slt i32 %t65, 20
|
|
%t67 = zext i1 %t66 to i32
|
|
%t68 = icmp ne i32 %t67, 0
|
|
br i1 %t68, label %while.body.17, label %while.end.18
|
|
while.body.17:
|
|
%t69 = load i32, i32* %t64
|
|
%t70 = call i32 @f(i32 0, i32 %t69)
|
|
%t71 = icmp ne i32 %t70, 0
|
|
br i1 %t71, label %land.rhs.39, label %if.end.20
|
|
while.end.18:
|
|
store i32 0, i32* %t64
|
|
br label %while.cond.40
|
|
if.then.19:
|
|
br label %if.end.20
|
|
if.end.20:
|
|
%t129 = load i32, i32* %t64
|
|
%t130 = add i32 %t129, 1
|
|
store i32 %t130, i32* %t64
|
|
br label %while.cond.16
|
|
land.rhs.21:
|
|
%t126 = load i32, i32* %t64
|
|
%t127 = call i32 @f(i32 19, i32 %t126)
|
|
%t128 = icmp ne i32 %t127, 0
|
|
br i1 %t128, label %if.then.19, label %if.end.20
|
|
land.rhs.22:
|
|
%t123 = load i32, i32* %t64
|
|
%t124 = call i32 @f(i32 18, i32 %t123)
|
|
%t125 = icmp ne i32 %t124, 0
|
|
br i1 %t125, label %land.rhs.21, label %if.end.20
|
|
land.rhs.23:
|
|
%t120 = load i32, i32* %t64
|
|
%t121 = call i32 @f(i32 17, i32 %t120)
|
|
%t122 = icmp ne i32 %t121, 0
|
|
br i1 %t122, label %land.rhs.22, label %if.end.20
|
|
land.rhs.24:
|
|
%t117 = load i32, i32* %t64
|
|
%t118 = call i32 @f(i32 16, i32 %t117)
|
|
%t119 = icmp ne i32 %t118, 0
|
|
br i1 %t119, label %land.rhs.23, label %if.end.20
|
|
land.rhs.25:
|
|
%t114 = load i32, i32* %t64
|
|
%t115 = call i32 @f(i32 15, i32 %t114)
|
|
%t116 = icmp ne i32 %t115, 0
|
|
br i1 %t116, label %land.rhs.24, label %if.end.20
|
|
land.rhs.26:
|
|
%t111 = load i32, i32* %t64
|
|
%t112 = call i32 @f(i32 14, i32 %t111)
|
|
%t113 = icmp ne i32 %t112, 0
|
|
br i1 %t113, label %land.rhs.25, label %if.end.20
|
|
land.rhs.27:
|
|
%t108 = load i32, i32* %t64
|
|
%t109 = call i32 @f(i32 13, i32 %t108)
|
|
%t110 = icmp ne i32 %t109, 0
|
|
br i1 %t110, label %land.rhs.26, label %if.end.20
|
|
land.rhs.28:
|
|
%t105 = load i32, i32* %t64
|
|
%t106 = call i32 @f(i32 12, i32 %t105)
|
|
%t107 = icmp ne i32 %t106, 0
|
|
br i1 %t107, label %land.rhs.27, label %if.end.20
|
|
land.rhs.29:
|
|
%t102 = load i32, i32* %t64
|
|
%t103 = call i32 @f(i32 11, i32 %t102)
|
|
%t104 = icmp ne i32 %t103, 0
|
|
br i1 %t104, label %land.rhs.28, label %if.end.20
|
|
land.rhs.30:
|
|
%t99 = load i32, i32* %t64
|
|
%t100 = call i32 @f(i32 10, i32 %t99)
|
|
%t101 = icmp ne i32 %t100, 0
|
|
br i1 %t101, label %land.rhs.29, label %if.end.20
|
|
land.rhs.31:
|
|
%t96 = load i32, i32* %t64
|
|
%t97 = call i32 @f(i32 9, i32 %t96)
|
|
%t98 = icmp ne i32 %t97, 0
|
|
br i1 %t98, label %land.rhs.30, label %if.end.20
|
|
land.rhs.32:
|
|
%t93 = load i32, i32* %t64
|
|
%t94 = call i32 @f(i32 8, i32 %t93)
|
|
%t95 = icmp ne i32 %t94, 0
|
|
br i1 %t95, label %land.rhs.31, label %if.end.20
|
|
land.rhs.33:
|
|
%t90 = load i32, i32* %t64
|
|
%t91 = call i32 @f(i32 7, i32 %t90)
|
|
%t92 = icmp ne i32 %t91, 0
|
|
br i1 %t92, label %land.rhs.32, label %if.end.20
|
|
land.rhs.34:
|
|
%t87 = load i32, i32* %t64
|
|
%t88 = call i32 @f(i32 6, i32 %t87)
|
|
%t89 = icmp ne i32 %t88, 0
|
|
br i1 %t89, label %land.rhs.33, label %if.end.20
|
|
land.rhs.35:
|
|
%t84 = load i32, i32* %t64
|
|
%t85 = call i32 @f(i32 5, i32 %t84)
|
|
%t86 = icmp ne i32 %t85, 0
|
|
br i1 %t86, label %land.rhs.34, label %if.end.20
|
|
land.rhs.36:
|
|
%t81 = load i32, i32* %t64
|
|
%t82 = call i32 @f(i32 4, i32 %t81)
|
|
%t83 = icmp ne i32 %t82, 0
|
|
br i1 %t83, label %land.rhs.35, label %if.end.20
|
|
land.rhs.37:
|
|
%t78 = load i32, i32* %t64
|
|
%t79 = call i32 @f(i32 3, i32 %t78)
|
|
%t80 = icmp ne i32 %t79, 0
|
|
br i1 %t80, label %land.rhs.36, label %if.end.20
|
|
land.rhs.38:
|
|
%t75 = load i32, i32* %t64
|
|
%t76 = call i32 @f(i32 2, i32 %t75)
|
|
%t77 = icmp ne i32 %t76, 0
|
|
br i1 %t77, label %land.rhs.37, label %if.end.20
|
|
land.rhs.39:
|
|
%t72 = load i32, i32* %t64
|
|
%t73 = call i32 @f(i32 1, i32 %t72)
|
|
%t74 = icmp ne i32 %t73, 0
|
|
br i1 %t74, label %land.rhs.38, label %if.end.20
|
|
while.cond.40:
|
|
%t131 = load i32, i32* %t64
|
|
%t132 = icmp slt i32 %t131, 20
|
|
%t133 = zext i1 %t132 to i32
|
|
%t134 = icmp ne i32 %t133, 0
|
|
br i1 %t134, label %while.body.41, label %while.end.42
|
|
while.body.41:
|
|
%t135 = load i32, i32* %t64
|
|
%t136 = call i32 @g(i32 0, i32 %t135)
|
|
%t137 = icmp ne i32 %t136, 0
|
|
br i1 %t137, label %if.then.43, label %lor.rhs.63
|
|
while.end.42:
|
|
store i32 1, i32* %t64
|
|
br label %while.cond.64
|
|
if.then.43:
|
|
br label %if.end.44
|
|
if.end.44:
|
|
%t195 = load i32, i32* %t64
|
|
%t196 = add i32 %t195, 1
|
|
store i32 %t196, i32* %t64
|
|
br label %while.cond.40
|
|
lor.rhs.45:
|
|
%t192 = load i32, i32* %t64
|
|
%t193 = call i32 @g(i32 19, i32 %t192)
|
|
%t194 = icmp ne i32 %t193, 0
|
|
br i1 %t194, label %if.then.43, label %if.end.44
|
|
lor.rhs.46:
|
|
%t189 = load i32, i32* %t64
|
|
%t190 = call i32 @g(i32 18, i32 %t189)
|
|
%t191 = icmp ne i32 %t190, 0
|
|
br i1 %t191, label %if.then.43, label %lor.rhs.45
|
|
lor.rhs.47:
|
|
%t186 = load i32, i32* %t64
|
|
%t187 = call i32 @g(i32 17, i32 %t186)
|
|
%t188 = icmp ne i32 %t187, 0
|
|
br i1 %t188, label %if.then.43, label %lor.rhs.46
|
|
lor.rhs.48:
|
|
%t183 = load i32, i32* %t64
|
|
%t184 = call i32 @g(i32 16, i32 %t183)
|
|
%t185 = icmp ne i32 %t184, 0
|
|
br i1 %t185, label %if.then.43, label %lor.rhs.47
|
|
lor.rhs.49:
|
|
%t180 = load i32, i32* %t64
|
|
%t181 = call i32 @g(i32 15, i32 %t180)
|
|
%t182 = icmp ne i32 %t181, 0
|
|
br i1 %t182, label %if.then.43, label %lor.rhs.48
|
|
lor.rhs.50:
|
|
%t177 = load i32, i32* %t64
|
|
%t178 = call i32 @g(i32 14, i32 %t177)
|
|
%t179 = icmp ne i32 %t178, 0
|
|
br i1 %t179, label %if.then.43, label %lor.rhs.49
|
|
lor.rhs.51:
|
|
%t174 = load i32, i32* %t64
|
|
%t175 = call i32 @g(i32 13, i32 %t174)
|
|
%t176 = icmp ne i32 %t175, 0
|
|
br i1 %t176, label %if.then.43, label %lor.rhs.50
|
|
lor.rhs.52:
|
|
%t171 = load i32, i32* %t64
|
|
%t172 = call i32 @g(i32 12, i32 %t171)
|
|
%t173 = icmp ne i32 %t172, 0
|
|
br i1 %t173, label %if.then.43, label %lor.rhs.51
|
|
lor.rhs.53:
|
|
%t168 = load i32, i32* %t64
|
|
%t169 = call i32 @g(i32 11, i32 %t168)
|
|
%t170 = icmp ne i32 %t169, 0
|
|
br i1 %t170, label %if.then.43, label %lor.rhs.52
|
|
lor.rhs.54:
|
|
%t165 = load i32, i32* %t64
|
|
%t166 = call i32 @g(i32 10, i32 %t165)
|
|
%t167 = icmp ne i32 %t166, 0
|
|
br i1 %t167, label %if.then.43, label %lor.rhs.53
|
|
lor.rhs.55:
|
|
%t162 = load i32, i32* %t64
|
|
%t163 = call i32 @g(i32 9, i32 %t162)
|
|
%t164 = icmp ne i32 %t163, 0
|
|
br i1 %t164, label %if.then.43, label %lor.rhs.54
|
|
lor.rhs.56:
|
|
%t159 = load i32, i32* %t64
|
|
%t160 = call i32 @g(i32 8, i32 %t159)
|
|
%t161 = icmp ne i32 %t160, 0
|
|
br i1 %t161, label %if.then.43, label %lor.rhs.55
|
|
lor.rhs.57:
|
|
%t156 = load i32, i32* %t64
|
|
%t157 = call i32 @g(i32 7, i32 %t156)
|
|
%t158 = icmp ne i32 %t157, 0
|
|
br i1 %t158, label %if.then.43, label %lor.rhs.56
|
|
lor.rhs.58:
|
|
%t153 = load i32, i32* %t64
|
|
%t154 = call i32 @g(i32 6, i32 %t153)
|
|
%t155 = icmp ne i32 %t154, 0
|
|
br i1 %t155, label %if.then.43, label %lor.rhs.57
|
|
lor.rhs.59:
|
|
%t150 = load i32, i32* %t64
|
|
%t151 = call i32 @g(i32 5, i32 %t150)
|
|
%t152 = icmp ne i32 %t151, 0
|
|
br i1 %t152, label %if.then.43, label %lor.rhs.58
|
|
lor.rhs.60:
|
|
%t147 = load i32, i32* %t64
|
|
%t148 = call i32 @g(i32 4, i32 %t147)
|
|
%t149 = icmp ne i32 %t148, 0
|
|
br i1 %t149, label %if.then.43, label %lor.rhs.59
|
|
lor.rhs.61:
|
|
%t144 = load i32, i32* %t64
|
|
%t145 = call i32 @g(i32 3, i32 %t144)
|
|
%t146 = icmp ne i32 %t145, 0
|
|
br i1 %t146, label %if.then.43, label %lor.rhs.60
|
|
lor.rhs.62:
|
|
%t141 = load i32, i32* %t64
|
|
%t142 = call i32 @g(i32 2, i32 %t141)
|
|
%t143 = icmp ne i32 %t142, 0
|
|
br i1 %t143, label %if.then.43, label %lor.rhs.61
|
|
lor.rhs.63:
|
|
%t138 = load i32, i32* %t64
|
|
%t139 = call i32 @g(i32 1, i32 %t138)
|
|
%t140 = icmp ne i32 %t139, 0
|
|
br i1 %t140, label %if.then.43, label %lor.rhs.62
|
|
while.cond.64:
|
|
%t197 = load i32, i32* %t64
|
|
%t198 = icmp slt i32 %t197, 20
|
|
%t199 = zext i1 %t198 to i32
|
|
%t200 = icmp ne i32 %t199, 0
|
|
br i1 %t200, label %land.rhs.67, label %while.end.66
|
|
while.body.65:
|
|
%t206 = load i32, i32* %t64
|
|
%t207 = add i32 %t206, 1
|
|
store i32 %t207, i32* %t64
|
|
br label %while.cond.64
|
|
while.end.66:
|
|
store i32 0, i32* %t208
|
|
store i32 0, i32* %t208
|
|
%t209 = call i32 @h(i32 0)
|
|
%t210 = icmp ne i32 %t209, 0
|
|
br i1 %t210, label %land.rhs.72, label %lor.rhs.71
|
|
land.rhs.67:
|
|
%t201 = load i32, i32* %t64
|
|
%t202 = sub i32 %t201, 1
|
|
%t203 = load i32, i32* %t64
|
|
%t204 = call i32 @f(i32 %t202, i32 %t203)
|
|
%t205 = icmp ne i32 %t204, 0
|
|
br i1 %t205, label %while.body.65, label %while.end.66
|
|
if.then.68:
|
|
store i32 1, i32* %t208
|
|
br label %if.end.69
|
|
if.end.69:
|
|
%t219 = load i32, i32* @sum
|
|
%t220 = load i32, i32* %t208
|
|
%t221 = add i32 %t219, %t220
|
|
store i32 0, i32* %t208
|
|
%t222 = call i32 @h(i32 4)
|
|
%t223 = icmp eq i32 %t222, 0
|
|
%t224 = zext i1 %t223 to i32
|
|
%t225 = icmp ne i32 %t224, 0
|
|
br i1 %t225, label %if.then.73, label %lor.rhs.76
|
|
lor.rhs.70:
|
|
%t217 = call i32 @h(i32 3)
|
|
%t218 = icmp ne i32 %t217, 0
|
|
br i1 %t218, label %if.then.68, label %if.end.69
|
|
lor.rhs.71:
|
|
%t213 = call i32 @h(i32 2)
|
|
%t214 = icmp eq i32 %t213, 0
|
|
%t215 = zext i1 %t214 to i32
|
|
%t216 = icmp ne i32 %t215, 0
|
|
br i1 %t216, label %if.then.68, label %lor.rhs.70
|
|
land.rhs.72:
|
|
%t211 = call i32 @h(i32 1)
|
|
%t212 = icmp ne i32 %t211, 0
|
|
br i1 %t212, label %if.then.68, label %lor.rhs.71
|
|
if.then.73:
|
|
store i32 1, i32* %t208
|
|
br label %if.end.74
|
|
if.end.74:
|
|
%t238 = load i32, i32* @sum
|
|
%t239 = load i32, i32* %t208
|
|
%t240 = mul i32 %t238, %t239
|
|
store i32 0, i32* %t208
|
|
%t241 = call i32 @h(i32 9)
|
|
%t242 = icmp ne i32 %t241, 0
|
|
br i1 %t242, label %land.rhs.85, label %lor.rhs.84
|
|
lor.rhs.75:
|
|
%t234 = call i32 @h(i32 8)
|
|
%t235 = icmp eq i32 %t234, 0
|
|
%t236 = zext i1 %t235 to i32
|
|
%t237 = icmp ne i32 %t236, 0
|
|
br i1 %t237, label %if.then.73, label %if.end.74
|
|
lor.rhs.76:
|
|
%t226 = call i32 @h(i32 5)
|
|
%t227 = icmp ne i32 %t226, 0
|
|
br i1 %t227, label %land.rhs.78, label %lor.rhs.75
|
|
land.rhs.77:
|
|
%t232 = call i32 @h(i32 7)
|
|
%t233 = icmp ne i32 %t232, 0
|
|
br i1 %t233, label %if.then.73, label %lor.rhs.75
|
|
land.rhs.78:
|
|
%t228 = call i32 @h(i32 6)
|
|
%t229 = icmp eq i32 %t228, 0
|
|
%t230 = zext i1 %t229 to i32
|
|
%t231 = icmp ne i32 %t230, 0
|
|
br i1 %t231, label %land.rhs.77, label %lor.rhs.75
|
|
if.then.79:
|
|
store i32 1, i32* %t208
|
|
br label %if.end.80
|
|
if.end.80:
|
|
%t263 = load i32, i32* @sum
|
|
%t264 = load i32, i32* %t208
|
|
%t265 = sub i32 %t263, %t264
|
|
store i32 0, i32* %t208
|
|
%t266 = call i32 @h(i32 0)
|
|
%t267 = icmp ne i32 %t266, 0
|
|
br i1 %t267, label %land.rhs.94, label %lor.rhs.91
|
|
lor.rhs.81:
|
|
%t259 = call i32 @h(i32 14)
|
|
%t260 = icmp ne i32 %t259, 0
|
|
br i1 %t260, label %land.rhs.86, label %if.end.80
|
|
lor.rhs.82:
|
|
%t255 = call i32 @h(i32 13)
|
|
%t256 = icmp eq i32 %t255, 0
|
|
%t257 = zext i1 %t256 to i32
|
|
%t258 = icmp ne i32 %t257, 0
|
|
br i1 %t258, label %if.then.79, label %lor.rhs.81
|
|
lor.rhs.83:
|
|
%t251 = call i32 @h(i32 12)
|
|
%t252 = icmp eq i32 %t251, 0
|
|
%t253 = zext i1 %t252 to i32
|
|
%t254 = icmp ne i32 %t253, 0
|
|
br i1 %t254, label %if.then.79, label %lor.rhs.82
|
|
lor.rhs.84:
|
|
%t247 = call i32 @h(i32 11)
|
|
%t248 = icmp eq i32 %t247, 0
|
|
%t249 = zext i1 %t248 to i32
|
|
%t250 = icmp ne i32 %t249, 0
|
|
br i1 %t250, label %if.then.79, label %lor.rhs.83
|
|
land.rhs.85:
|
|
%t243 = call i32 @h(i32 10)
|
|
%t244 = icmp eq i32 %t243, 0
|
|
%t245 = zext i1 %t244 to i32
|
|
%t246 = icmp ne i32 %t245, 0
|
|
br i1 %t246, label %if.then.79, label %lor.rhs.84
|
|
land.rhs.86:
|
|
%t261 = call i32 @h(i32 15)
|
|
%t262 = icmp ne i32 %t261, 0
|
|
br i1 %t262, label %if.then.79, label %if.end.80
|
|
if.then.87:
|
|
store i32 1, i32* %t208
|
|
br label %if.end.88
|
|
if.end.88:
|
|
%t288 = load i32, i32* @sum
|
|
%t289 = load i32, i32* %t208
|
|
%t290 = add i32 %t288, %t289
|
|
call void @putint(i32 %t290)
|
|
ret i32 0
|
|
lor.rhs.89:
|
|
%t286 = call i32 @h(i32 8)
|
|
%t287 = icmp ne i32 %t286, 0
|
|
br i1 %t287, label %if.then.87, label %if.end.88
|
|
lor.rhs.90:
|
|
%t280 = call i32 @h(i32 6)
|
|
%t281 = icmp ne i32 %t280, 0
|
|
br i1 %t281, label %land.rhs.95, label %lor.rhs.89
|
|
lor.rhs.91:
|
|
%t278 = call i32 @h(i32 5)
|
|
%t279 = icmp ne i32 %t278, 0
|
|
br i1 %t279, label %if.then.87, label %lor.rhs.90
|
|
land.rhs.92:
|
|
%t274 = call i32 @h(i32 4)
|
|
%t275 = icmp eq i32 %t274, 0
|
|
%t276 = zext i1 %t275 to i32
|
|
%t277 = icmp ne i32 %t276, 0
|
|
br i1 %t277, label %if.then.87, label %lor.rhs.91
|
|
land.rhs.93:
|
|
%t270 = call i32 @h(i32 3)
|
|
%t271 = icmp eq i32 %t270, 0
|
|
%t272 = zext i1 %t271 to i32
|
|
%t273 = icmp ne i32 %t272, 0
|
|
br i1 %t273, label %land.rhs.92, label %lor.rhs.91
|
|
land.rhs.94:
|
|
%t268 = call i32 @h(i32 2)
|
|
%t269 = icmp ne i32 %t268, 0
|
|
br i1 %t269, label %land.rhs.93, label %lor.rhs.91
|
|
land.rhs.95:
|
|
%t282 = call i32 @h(i32 7)
|
|
%t283 = icmp eq i32 %t282, 0
|
|
%t284 = zext i1 %t283 to i32
|
|
%t285 = icmp ne i32 %t284, 0
|
|
br i1 %t285, label %if.then.87, label %lor.rhs.89
|
|
}
|