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.

862 lines
32 KiB

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 void @sort(i32* %arg.arr, i32 %arg.len) {
entry:
%t1 = alloca i32
%t8 = alloca i32
%t25 = alloca i32
%t0 = alloca i32
store i32 %arg.len, i32* %t0
store i32 0, i32* %t1
br label %while.cond.1
while.cond.1:
%t2 = load i32, i32* %t1
%t3 = load i32, i32* %t0
%t4 = sub i32 %t3, 1
%t5 = icmp slt i32 %t2, %t4
%t6 = zext i1 %t5 to i32
%t7 = icmp ne i32 %t6, 0
br i1 %t7, label %while.body.2, label %while.end.3
while.body.2:
%t9 = load i32, i32* %t1
%t10 = add i32 %t9, 1
store i32 %t10, i32* %t8
br label %while.cond.4
while.end.3:
ret void
while.cond.4:
%t11 = load i32, i32* %t8
%t12 = load i32, i32* %t0
%t13 = icmp slt i32 %t11, %t12
%t14 = zext i1 %t13 to i32
%t15 = icmp ne i32 %t14, 0
br i1 %t15, label %while.body.5, label %while.end.6
while.body.5:
%t16 = load i32, i32* %t1
%t17 = getelementptr inbounds i32, i32* %arg.arr, i32 %t16
%t18 = load i32, i32* %t17
%t19 = load i32, i32* %t8
%t20 = getelementptr inbounds i32, i32* %arg.arr, i32 %t19
%t21 = load i32, i32* %t20
%t22 = icmp slt i32 %t18, %t21
%t23 = zext i1 %t22 to i32
%t24 = icmp ne i32 %t23, 0
br i1 %t24, label %if.then.7, label %if.end.8
while.end.6:
%t39 = load i32, i32* %t1
%t40 = add i32 %t39, 1
store i32 %t40, i32* %t1
br label %while.cond.1
if.then.7:
%t26 = load i32, i32* %t1
%t27 = getelementptr inbounds i32, i32* %arg.arr, i32 %t26
%t28 = load i32, i32* %t27
store i32 %t28, i32* %t25
%t29 = load i32, i32* %t1
%t30 = getelementptr inbounds i32, i32* %arg.arr, i32 %t29
%t31 = load i32, i32* %t8
%t32 = getelementptr inbounds i32, i32* %arg.arr, i32 %t31
%t33 = load i32, i32* %t32
store i32 %t33, i32* %t30
%t34 = load i32, i32* %t8
%t35 = getelementptr inbounds i32, i32* %arg.arr, i32 %t34
%t36 = load i32, i32* %t25
store i32 %t36, i32* %t35
br label %if.end.8
if.end.8:
%t37 = load i32, i32* %t8
%t38 = add i32 %t37, 1
store i32 %t38, i32* %t8
br label %while.cond.4
}
define i32 @param32_rec(i32 %arg.a1, i32 %arg.a2, i32 %arg.a3, i32 %arg.a4, i32 %arg.a5, i32 %arg.a6, i32 %arg.a7, i32 %arg.a8, i32 %arg.a9, i32 %arg.a10, i32 %arg.a11, i32 %arg.a12, i32 %arg.a13, i32 %arg.a14, i32 %arg.a15, i32 %arg.a16, i32 %arg.a17, i32 %arg.a18, i32 %arg.a19, i32 %arg.a20, i32 %arg.a21, i32 %arg.a22, i32 %arg.a23, i32 %arg.a24, i32 %arg.a25, i32 %arg.a26, i32 %arg.a27, i32 %arg.a28, i32 %arg.a29, i32 %arg.a30, i32 %arg.a31, i32 %arg.a32) {
entry:
%t41 = alloca i32
store i32 %arg.a1, i32* %t41
%t42 = alloca i32
store i32 %arg.a2, i32* %t42
%t43 = alloca i32
store i32 %arg.a3, i32* %t43
%t44 = alloca i32
store i32 %arg.a4, i32* %t44
%t45 = alloca i32
store i32 %arg.a5, i32* %t45
%t46 = alloca i32
store i32 %arg.a6, i32* %t46
%t47 = alloca i32
store i32 %arg.a7, i32* %t47
%t48 = alloca i32
store i32 %arg.a8, i32* %t48
%t49 = alloca i32
store i32 %arg.a9, i32* %t49
%t50 = alloca i32
store i32 %arg.a10, i32* %t50
%t51 = alloca i32
store i32 %arg.a11, i32* %t51
%t52 = alloca i32
store i32 %arg.a12, i32* %t52
%t53 = alloca i32
store i32 %arg.a13, i32* %t53
%t54 = alloca i32
store i32 %arg.a14, i32* %t54
%t55 = alloca i32
store i32 %arg.a15, i32* %t55
%t56 = alloca i32
store i32 %arg.a16, i32* %t56
%t57 = alloca i32
store i32 %arg.a17, i32* %t57
%t58 = alloca i32
store i32 %arg.a18, i32* %t58
%t59 = alloca i32
store i32 %arg.a19, i32* %t59
%t60 = alloca i32
store i32 %arg.a20, i32* %t60
%t61 = alloca i32
store i32 %arg.a21, i32* %t61
%t62 = alloca i32
store i32 %arg.a22, i32* %t62
%t63 = alloca i32
store i32 %arg.a23, i32* %t63
%t64 = alloca i32
store i32 %arg.a24, i32* %t64
%t65 = alloca i32
store i32 %arg.a25, i32* %t65
%t66 = alloca i32
store i32 %arg.a26, i32* %t66
%t67 = alloca i32
store i32 %arg.a27, i32* %t67
%t68 = alloca i32
store i32 %arg.a28, i32* %t68
%t69 = alloca i32
store i32 %arg.a29, i32* %t69
%t70 = alloca i32
store i32 %arg.a30, i32* %t70
%t71 = alloca i32
store i32 %arg.a31, i32* %t71
%t72 = alloca i32
store i32 %arg.a32, i32* %t72
%t73 = load i32, i32* %t41
%t74 = icmp eq i32 %t73, 0
%t75 = zext i1 %t74 to i32
%t76 = icmp ne i32 %t75, 0
br i1 %t76, label %if.then.9, label %if.else.10
if.then.9:
%t77 = load i32, i32* %t42
ret i32 %t77
if.else.10:
%t78 = load i32, i32* %t41
%t79 = sub i32 %t78, 1
%t80 = load i32, i32* %t42
%t81 = load i32, i32* %t43
%t82 = add i32 %t80, %t81
%t83 = srem i32 %t82, 998244353
%t84 = load i32, i32* %t44
%t85 = load i32, i32* %t45
%t86 = load i32, i32* %t46
%t87 = load i32, i32* %t47
%t88 = load i32, i32* %t48
%t89 = load i32, i32* %t49
%t90 = load i32, i32* %t50
%t91 = load i32, i32* %t51
%t92 = load i32, i32* %t52
%t93 = load i32, i32* %t53
%t94 = load i32, i32* %t54
%t95 = load i32, i32* %t55
%t96 = load i32, i32* %t56
%t97 = load i32, i32* %t57
%t98 = load i32, i32* %t58
%t99 = load i32, i32* %t59
%t100 = load i32, i32* %t60
%t101 = load i32, i32* %t61
%t102 = load i32, i32* %t62
%t103 = load i32, i32* %t63
%t104 = load i32, i32* %t64
%t105 = load i32, i32* %t65
%t106 = load i32, i32* %t66
%t107 = load i32, i32* %t67
%t108 = load i32, i32* %t68
%t109 = load i32, i32* %t69
%t110 = load i32, i32* %t70
%t111 = load i32, i32* %t71
%t112 = load i32, i32* %t72
%t113 = call i32 @param32_rec(i32 %t79, i32 %t83, i32 %t84, i32 %t85, i32 %t86, i32 %t87, i32 %t88, i32 %t89, i32 %t90, i32 %t91, i32 %t92, i32 %t93, i32 %t94, i32 %t95, i32 %t96, i32 %t97, i32 %t98, i32 %t99, i32 %t100, i32 %t101, i32 %t102, i32 %t103, i32 %t104, i32 %t105, i32 %t106, i32 %t107, i32 %t108, i32 %t109, i32 %t110, i32 %t111, i32 %t112, i32 0)
ret i32 %t113
if.end.11:
ret i32 0
}
define i32 @param32_arr(i32* %arg.a1, i32* %arg.a2, i32* %arg.a3, i32* %arg.a4, i32* %arg.a5, i32* %arg.a6, i32* %arg.a7, i32* %arg.a8, i32* %arg.a9, i32* %arg.a10, i32* %arg.a11, i32* %arg.a12, i32* %arg.a13, i32* %arg.a14, i32* %arg.a15, i32* %arg.a16, i32* %arg.a17, i32* %arg.a18, i32* %arg.a19, i32* %arg.a20, i32* %arg.a21, i32* %arg.a22, i32* %arg.a23, i32* %arg.a24, i32* %arg.a25, i32* %arg.a26, i32* %arg.a27, i32* %arg.a28, i32* %arg.a29, i32* %arg.a30, i32* %arg.a31, i32* %arg.a32) {
entry:
%t114 = alloca i32
%t115 = getelementptr inbounds i32, i32* %arg.a1, i32 0
%t116 = load i32, i32* %t115
%t117 = getelementptr inbounds i32, i32* %arg.a1, i32 1
%t118 = load i32, i32* %t117
%t119 = add i32 %t116, %t118
store i32 %t119, i32* %t114
%t120 = load i32, i32* %t114
%t121 = getelementptr inbounds i32, i32* %arg.a2, i32 0
%t122 = load i32, i32* %t121
%t123 = add i32 %t120, %t122
%t124 = getelementptr inbounds i32, i32* %arg.a2, i32 1
%t125 = load i32, i32* %t124
%t126 = add i32 %t123, %t125
store i32 %t126, i32* %t114
%t127 = load i32, i32* %t114
%t128 = getelementptr inbounds i32, i32* %arg.a3, i32 0
%t129 = load i32, i32* %t128
%t130 = add i32 %t127, %t129
%t131 = getelementptr inbounds i32, i32* %arg.a3, i32 1
%t132 = load i32, i32* %t131
%t133 = add i32 %t130, %t132
store i32 %t133, i32* %t114
%t134 = load i32, i32* %t114
%t135 = getelementptr inbounds i32, i32* %arg.a4, i32 0
%t136 = load i32, i32* %t135
%t137 = add i32 %t134, %t136
%t138 = getelementptr inbounds i32, i32* %arg.a4, i32 1
%t139 = load i32, i32* %t138
%t140 = add i32 %t137, %t139
store i32 %t140, i32* %t114
%t141 = load i32, i32* %t114
%t142 = getelementptr inbounds i32, i32* %arg.a5, i32 0
%t143 = load i32, i32* %t142
%t144 = add i32 %t141, %t143
%t145 = getelementptr inbounds i32, i32* %arg.a5, i32 1
%t146 = load i32, i32* %t145
%t147 = add i32 %t144, %t146
store i32 %t147, i32* %t114
%t148 = load i32, i32* %t114
%t149 = getelementptr inbounds i32, i32* %arg.a6, i32 0
%t150 = load i32, i32* %t149
%t151 = add i32 %t148, %t150
%t152 = getelementptr inbounds i32, i32* %arg.a6, i32 1
%t153 = load i32, i32* %t152
%t154 = add i32 %t151, %t153
store i32 %t154, i32* %t114
%t155 = load i32, i32* %t114
%t156 = getelementptr inbounds i32, i32* %arg.a7, i32 0
%t157 = load i32, i32* %t156
%t158 = add i32 %t155, %t157
%t159 = getelementptr inbounds i32, i32* %arg.a7, i32 1
%t160 = load i32, i32* %t159
%t161 = add i32 %t158, %t160
store i32 %t161, i32* %t114
%t162 = load i32, i32* %t114
%t163 = getelementptr inbounds i32, i32* %arg.a8, i32 0
%t164 = load i32, i32* %t163
%t165 = add i32 %t162, %t164
%t166 = getelementptr inbounds i32, i32* %arg.a8, i32 1
%t167 = load i32, i32* %t166
%t168 = add i32 %t165, %t167
store i32 %t168, i32* %t114
%t169 = load i32, i32* %t114
%t170 = getelementptr inbounds i32, i32* %arg.a9, i32 0
%t171 = load i32, i32* %t170
%t172 = add i32 %t169, %t171
%t173 = getelementptr inbounds i32, i32* %arg.a9, i32 1
%t174 = load i32, i32* %t173
%t175 = add i32 %t172, %t174
store i32 %t175, i32* %t114
%t176 = load i32, i32* %t114
%t177 = getelementptr inbounds i32, i32* %arg.a10, i32 0
%t178 = load i32, i32* %t177
%t179 = add i32 %t176, %t178
%t180 = getelementptr inbounds i32, i32* %arg.a10, i32 1
%t181 = load i32, i32* %t180
%t182 = add i32 %t179, %t181
store i32 %t182, i32* %t114
%t183 = load i32, i32* %t114
%t184 = getelementptr inbounds i32, i32* %arg.a11, i32 0
%t185 = load i32, i32* %t184
%t186 = add i32 %t183, %t185
%t187 = getelementptr inbounds i32, i32* %arg.a11, i32 1
%t188 = load i32, i32* %t187
%t189 = add i32 %t186, %t188
store i32 %t189, i32* %t114
%t190 = load i32, i32* %t114
%t191 = getelementptr inbounds i32, i32* %arg.a12, i32 0
%t192 = load i32, i32* %t191
%t193 = add i32 %t190, %t192
%t194 = getelementptr inbounds i32, i32* %arg.a12, i32 1
%t195 = load i32, i32* %t194
%t196 = add i32 %t193, %t195
store i32 %t196, i32* %t114
%t197 = load i32, i32* %t114
%t198 = getelementptr inbounds i32, i32* %arg.a13, i32 0
%t199 = load i32, i32* %t198
%t200 = add i32 %t197, %t199
%t201 = getelementptr inbounds i32, i32* %arg.a13, i32 1
%t202 = load i32, i32* %t201
%t203 = add i32 %t200, %t202
store i32 %t203, i32* %t114
%t204 = load i32, i32* %t114
%t205 = getelementptr inbounds i32, i32* %arg.a14, i32 0
%t206 = load i32, i32* %t205
%t207 = add i32 %t204, %t206
%t208 = getelementptr inbounds i32, i32* %arg.a14, i32 1
%t209 = load i32, i32* %t208
%t210 = add i32 %t207, %t209
store i32 %t210, i32* %t114
%t211 = load i32, i32* %t114
%t212 = getelementptr inbounds i32, i32* %arg.a15, i32 0
%t213 = load i32, i32* %t212
%t214 = add i32 %t211, %t213
%t215 = getelementptr inbounds i32, i32* %arg.a15, i32 1
%t216 = load i32, i32* %t215
%t217 = add i32 %t214, %t216
store i32 %t217, i32* %t114
%t218 = load i32, i32* %t114
%t219 = getelementptr inbounds i32, i32* %arg.a16, i32 0
%t220 = load i32, i32* %t219
%t221 = add i32 %t218, %t220
%t222 = getelementptr inbounds i32, i32* %arg.a16, i32 1
%t223 = load i32, i32* %t222
%t224 = add i32 %t221, %t223
store i32 %t224, i32* %t114
%t225 = load i32, i32* %t114
%t226 = getelementptr inbounds i32, i32* %arg.a17, i32 0
%t227 = load i32, i32* %t226
%t228 = add i32 %t225, %t227
%t229 = getelementptr inbounds i32, i32* %arg.a17, i32 1
%t230 = load i32, i32* %t229
%t231 = add i32 %t228, %t230
store i32 %t231, i32* %t114
%t232 = load i32, i32* %t114
%t233 = getelementptr inbounds i32, i32* %arg.a18, i32 0
%t234 = load i32, i32* %t233
%t235 = add i32 %t232, %t234
%t236 = getelementptr inbounds i32, i32* %arg.a18, i32 1
%t237 = load i32, i32* %t236
%t238 = add i32 %t235, %t237
store i32 %t238, i32* %t114
%t239 = load i32, i32* %t114
%t240 = getelementptr inbounds i32, i32* %arg.a19, i32 0
%t241 = load i32, i32* %t240
%t242 = add i32 %t239, %t241
%t243 = getelementptr inbounds i32, i32* %arg.a19, i32 1
%t244 = load i32, i32* %t243
%t245 = add i32 %t242, %t244
store i32 %t245, i32* %t114
%t246 = load i32, i32* %t114
%t247 = getelementptr inbounds i32, i32* %arg.a20, i32 0
%t248 = load i32, i32* %t247
%t249 = add i32 %t246, %t248
%t250 = getelementptr inbounds i32, i32* %arg.a20, i32 1
%t251 = load i32, i32* %t250
%t252 = add i32 %t249, %t251
store i32 %t252, i32* %t114
%t253 = load i32, i32* %t114
%t254 = getelementptr inbounds i32, i32* %arg.a21, i32 0
%t255 = load i32, i32* %t254
%t256 = add i32 %t253, %t255
%t257 = getelementptr inbounds i32, i32* %arg.a21, i32 1
%t258 = load i32, i32* %t257
%t259 = add i32 %t256, %t258
store i32 %t259, i32* %t114
%t260 = load i32, i32* %t114
%t261 = getelementptr inbounds i32, i32* %arg.a22, i32 0
%t262 = load i32, i32* %t261
%t263 = add i32 %t260, %t262
%t264 = getelementptr inbounds i32, i32* %arg.a22, i32 1
%t265 = load i32, i32* %t264
%t266 = add i32 %t263, %t265
store i32 %t266, i32* %t114
%t267 = load i32, i32* %t114
%t268 = getelementptr inbounds i32, i32* %arg.a23, i32 0
%t269 = load i32, i32* %t268
%t270 = add i32 %t267, %t269
%t271 = getelementptr inbounds i32, i32* %arg.a23, i32 1
%t272 = load i32, i32* %t271
%t273 = add i32 %t270, %t272
store i32 %t273, i32* %t114
%t274 = load i32, i32* %t114
%t275 = getelementptr inbounds i32, i32* %arg.a24, i32 0
%t276 = load i32, i32* %t275
%t277 = add i32 %t274, %t276
%t278 = getelementptr inbounds i32, i32* %arg.a24, i32 1
%t279 = load i32, i32* %t278
%t280 = add i32 %t277, %t279
store i32 %t280, i32* %t114
%t281 = load i32, i32* %t114
%t282 = getelementptr inbounds i32, i32* %arg.a25, i32 0
%t283 = load i32, i32* %t282
%t284 = add i32 %t281, %t283
%t285 = getelementptr inbounds i32, i32* %arg.a25, i32 1
%t286 = load i32, i32* %t285
%t287 = add i32 %t284, %t286
store i32 %t287, i32* %t114
%t288 = load i32, i32* %t114
%t289 = getelementptr inbounds i32, i32* %arg.a26, i32 0
%t290 = load i32, i32* %t289
%t291 = add i32 %t288, %t290
%t292 = getelementptr inbounds i32, i32* %arg.a26, i32 1
%t293 = load i32, i32* %t292
%t294 = add i32 %t291, %t293
store i32 %t294, i32* %t114
%t295 = load i32, i32* %t114
%t296 = getelementptr inbounds i32, i32* %arg.a27, i32 0
%t297 = load i32, i32* %t296
%t298 = add i32 %t295, %t297
%t299 = getelementptr inbounds i32, i32* %arg.a27, i32 1
%t300 = load i32, i32* %t299
%t301 = add i32 %t298, %t300
store i32 %t301, i32* %t114
%t302 = load i32, i32* %t114
%t303 = getelementptr inbounds i32, i32* %arg.a28, i32 0
%t304 = load i32, i32* %t303
%t305 = add i32 %t302, %t304
%t306 = getelementptr inbounds i32, i32* %arg.a28, i32 1
%t307 = load i32, i32* %t306
%t308 = add i32 %t305, %t307
store i32 %t308, i32* %t114
%t309 = load i32, i32* %t114
%t310 = getelementptr inbounds i32, i32* %arg.a29, i32 0
%t311 = load i32, i32* %t310
%t312 = add i32 %t309, %t311
%t313 = getelementptr inbounds i32, i32* %arg.a29, i32 1
%t314 = load i32, i32* %t313
%t315 = add i32 %t312, %t314
store i32 %t315, i32* %t114
%t316 = load i32, i32* %t114
%t317 = getelementptr inbounds i32, i32* %arg.a30, i32 0
%t318 = load i32, i32* %t317
%t319 = add i32 %t316, %t318
%t320 = getelementptr inbounds i32, i32* %arg.a30, i32 1
%t321 = load i32, i32* %t320
%t322 = add i32 %t319, %t321
store i32 %t322, i32* %t114
%t323 = load i32, i32* %t114
%t324 = getelementptr inbounds i32, i32* %arg.a31, i32 0
%t325 = load i32, i32* %t324
%t326 = add i32 %t323, %t325
%t327 = getelementptr inbounds i32, i32* %arg.a31, i32 1
%t328 = load i32, i32* %t327
%t329 = add i32 %t326, %t328
store i32 %t329, i32* %t114
%t330 = load i32, i32* %t114
%t331 = getelementptr inbounds i32, i32* %arg.a32, i32 0
%t332 = load i32, i32* %t331
%t333 = add i32 %t330, %t332
%t334 = getelementptr inbounds i32, i32* %arg.a32, i32 1
%t335 = load i32, i32* %t334
%t336 = add i32 %t333, %t335
store i32 %t336, i32* %t114
%t337 = load i32, i32* %t114
ret i32 %t337
}
define i32 @param16(i32 %arg.a1, i32 %arg.a2, i32 %arg.a3, i32 %arg.a4, i32 %arg.a5, i32 %arg.a6, i32 %arg.a7, i32 %arg.a8, i32 %arg.a9, i32 %arg.a10, i32 %arg.a11, i32 %arg.a12, i32 %arg.a13, i32 %arg.a14, i32 %arg.a15, i32 %arg.a16) {
entry:
%t354 = alloca i32, i32 16
%t338 = alloca i32
store i32 %arg.a1, i32* %t338
%t339 = alloca i32
store i32 %arg.a2, i32* %t339
%t340 = alloca i32
store i32 %arg.a3, i32* %t340
%t341 = alloca i32
store i32 %arg.a4, i32* %t341
%t342 = alloca i32
store i32 %arg.a5, i32* %t342
%t343 = alloca i32
store i32 %arg.a6, i32* %t343
%t344 = alloca i32
store i32 %arg.a7, i32* %t344
%t345 = alloca i32
store i32 %arg.a8, i32* %t345
%t346 = alloca i32
store i32 %arg.a9, i32* %t346
%t347 = alloca i32
store i32 %arg.a10, i32* %t347
%t348 = alloca i32
store i32 %arg.a11, i32* %t348
%t349 = alloca i32
store i32 %arg.a12, i32* %t349
%t350 = alloca i32
store i32 %arg.a13, i32* %t350
%t351 = alloca i32
store i32 %arg.a14, i32* %t351
%t352 = alloca i32
store i32 %arg.a15, i32* %t352
%t353 = alloca i32
store i32 %arg.a16, i32* %t353
%t355 = getelementptr inbounds i32, i32* %t354, i32 0
%t356 = load i32, i32* %t338
store i32 %t356, i32* %t355
%t357 = getelementptr inbounds i32, i32* %t354, i32 1
%t358 = load i32, i32* %t339
store i32 %t358, i32* %t357
%t359 = getelementptr inbounds i32, i32* %t354, i32 2
%t360 = load i32, i32* %t340
store i32 %t360, i32* %t359
%t361 = getelementptr inbounds i32, i32* %t354, i32 3
%t362 = load i32, i32* %t341
store i32 %t362, i32* %t361
%t363 = getelementptr inbounds i32, i32* %t354, i32 4
%t364 = load i32, i32* %t342
store i32 %t364, i32* %t363
%t365 = getelementptr inbounds i32, i32* %t354, i32 5
%t366 = load i32, i32* %t343
store i32 %t366, i32* %t365
%t367 = getelementptr inbounds i32, i32* %t354, i32 6
%t368 = load i32, i32* %t344
store i32 %t368, i32* %t367
%t369 = getelementptr inbounds i32, i32* %t354, i32 7
%t370 = load i32, i32* %t345
store i32 %t370, i32* %t369
%t371 = getelementptr inbounds i32, i32* %t354, i32 8
%t372 = load i32, i32* %t346
store i32 %t372, i32* %t371
%t373 = getelementptr inbounds i32, i32* %t354, i32 9
%t374 = load i32, i32* %t347
store i32 %t374, i32* %t373
%t375 = getelementptr inbounds i32, i32* %t354, i32 10
%t376 = load i32, i32* %t348
store i32 %t376, i32* %t375
%t377 = getelementptr inbounds i32, i32* %t354, i32 11
%t378 = load i32, i32* %t349
store i32 %t378, i32* %t377
%t379 = getelementptr inbounds i32, i32* %t354, i32 12
%t380 = load i32, i32* %t350
store i32 %t380, i32* %t379
%t381 = getelementptr inbounds i32, i32* %t354, i32 13
%t382 = load i32, i32* %t351
store i32 %t382, i32* %t381
%t383 = getelementptr inbounds i32, i32* %t354, i32 14
%t384 = load i32, i32* %t352
store i32 %t384, i32* %t383
%t385 = getelementptr inbounds i32, i32* %t354, i32 15
%t386 = load i32, i32* %t353
store i32 %t386, i32* %t385
call void @sort(i32* %t354, i32 16)
%t388 = getelementptr inbounds i32, i32* %t354, i32 0
%t389 = load i32, i32* %t388
%t390 = getelementptr inbounds i32, i32* %t354, i32 1
%t391 = load i32, i32* %t390
%t392 = getelementptr inbounds i32, i32* %t354, i32 2
%t393 = load i32, i32* %t392
%t394 = getelementptr inbounds i32, i32* %t354, i32 3
%t395 = load i32, i32* %t394
%t396 = getelementptr inbounds i32, i32* %t354, i32 4
%t397 = load i32, i32* %t396
%t398 = getelementptr inbounds i32, i32* %t354, i32 5
%t399 = load i32, i32* %t398
%t400 = getelementptr inbounds i32, i32* %t354, i32 6
%t401 = load i32, i32* %t400
%t402 = getelementptr inbounds i32, i32* %t354, i32 7
%t403 = load i32, i32* %t402
%t404 = getelementptr inbounds i32, i32* %t354, i32 8
%t405 = load i32, i32* %t404
%t406 = getelementptr inbounds i32, i32* %t354, i32 9
%t407 = load i32, i32* %t406
%t408 = getelementptr inbounds i32, i32* %t354, i32 10
%t409 = load i32, i32* %t408
%t410 = getelementptr inbounds i32, i32* %t354, i32 11
%t411 = load i32, i32* %t410
%t412 = getelementptr inbounds i32, i32* %t354, i32 12
%t413 = load i32, i32* %t412
%t414 = getelementptr inbounds i32, i32* %t354, i32 13
%t415 = load i32, i32* %t414
%t416 = getelementptr inbounds i32, i32* %t354, i32 14
%t417 = load i32, i32* %t416
%t418 = getelementptr inbounds i32, i32* %t354, i32 15
%t419 = load i32, i32* %t418
%t420 = load i32, i32* %t338
%t421 = load i32, i32* %t339
%t422 = load i32, i32* %t340
%t423 = load i32, i32* %t341
%t424 = load i32, i32* %t342
%t425 = load i32, i32* %t343
%t426 = load i32, i32* %t344
%t427 = load i32, i32* %t345
%t428 = load i32, i32* %t346
%t429 = load i32, i32* %t347
%t430 = load i32, i32* %t348
%t431 = load i32, i32* %t349
%t432 = load i32, i32* %t350
%t433 = load i32, i32* %t351
%t434 = load i32, i32* %t352
%t435 = load i32, i32* %t353
%t436 = call i32 @param32_rec(i32 %t389, i32 %t391, i32 %t393, i32 %t395, i32 %t397, i32 %t399, i32 %t401, i32 %t403, i32 %t405, i32 %t407, i32 %t409, i32 %t411, i32 %t413, i32 %t415, i32 %t417, i32 %t419, i32 %t420, i32 %t421, i32 %t422, i32 %t423, i32 %t424, i32 %t425, i32 %t426, i32 %t427, i32 %t428, i32 %t429, i32 %t430, i32 %t431, i32 %t432, i32 %t433, i32 %t434, i32 %t435)
ret i32 %t436
}
define i32 @main() {
entry:
%t437 = alloca i32
%t439 = alloca i32
%t441 = alloca i32
%t443 = alloca i32
%t445 = alloca i32
%t447 = alloca i32
%t449 = alloca i32
%t451 = alloca i32
%t453 = alloca i32
%t455 = alloca i32
%t457 = alloca i32
%t459 = alloca i32
%t461 = alloca i32
%t463 = alloca i32
%t465 = alloca i32
%t467 = alloca i32
%t469 = alloca i32, i32 64
%t551 = alloca i32
%t438 = call i32 @getint()
store i32 %t438, i32* %t437
%t440 = call i32 @getint()
store i32 %t440, i32* %t439
%t442 = call i32 @getint()
store i32 %t442, i32* %t441
%t444 = call i32 @getint()
store i32 %t444, i32* %t443
%t446 = call i32 @getint()
store i32 %t446, i32* %t445
%t448 = call i32 @getint()
store i32 %t448, i32* %t447
%t450 = call i32 @getint()
store i32 %t450, i32* %t449
%t452 = call i32 @getint()
store i32 %t452, i32* %t451
%t454 = call i32 @getint()
store i32 %t454, i32* %t453
%t456 = call i32 @getint()
store i32 %t456, i32* %t455
%t458 = call i32 @getint()
store i32 %t458, i32* %t457
%t460 = call i32 @getint()
store i32 %t460, i32* %t459
%t462 = call i32 @getint()
store i32 %t462, i32* %t461
%t464 = call i32 @getint()
store i32 %t464, i32* %t463
%t466 = call i32 @getint()
store i32 %t466, i32* %t465
%t468 = call i32 @getint()
store i32 %t468, i32* %t467
%t470 = getelementptr inbounds i32, i32* %t469, i32 0
%t471 = load i32, i32* %t437
%t472 = load i32, i32* %t439
%t473 = load i32, i32* %t441
%t474 = load i32, i32* %t443
%t475 = load i32, i32* %t445
%t476 = load i32, i32* %t447
%t477 = load i32, i32* %t449
%t478 = load i32, i32* %t451
%t479 = load i32, i32* %t453
%t480 = load i32, i32* %t455
%t481 = load i32, i32* %t457
%t482 = load i32, i32* %t459
%t483 = load i32, i32* %t461
%t484 = load i32, i32* %t463
%t485 = load i32, i32* %t465
%t486 = load i32, i32* %t467
%t487 = call i32 @param16(i32 %t471, i32 %t472, i32 %t473, i32 %t474, i32 %t475, i32 %t476, i32 %t477, i32 %t478, i32 %t479, i32 %t480, i32 %t481, i32 %t482, i32 %t483, i32 %t484, i32 %t485, i32 %t486)
store i32 %t487, i32* %t470
%t488 = getelementptr inbounds i32, i32* %t469, i32 1
store i32 8848, i32* %t488
%t489 = getelementptr inbounds i32, i32* %t469, i32 2
store i32 0, i32* %t489
%t490 = getelementptr inbounds i32, i32* %t469, i32 3
store i32 0, i32* %t490
%t491 = getelementptr inbounds i32, i32* %t469, i32 4
store i32 0, i32* %t491
%t492 = getelementptr inbounds i32, i32* %t469, i32 5
store i32 0, i32* %t492
%t493 = getelementptr inbounds i32, i32* %t469, i32 6
store i32 0, i32* %t493
%t494 = getelementptr inbounds i32, i32* %t469, i32 7
store i32 0, i32* %t494
%t495 = getelementptr inbounds i32, i32* %t469, i32 8
store i32 0, i32* %t495
%t496 = getelementptr inbounds i32, i32* %t469, i32 9
store i32 0, i32* %t496
%t497 = getelementptr inbounds i32, i32* %t469, i32 10
store i32 0, i32* %t497
%t498 = getelementptr inbounds i32, i32* %t469, i32 11
store i32 0, i32* %t498
%t499 = getelementptr inbounds i32, i32* %t469, i32 12
store i32 0, i32* %t499
%t500 = getelementptr inbounds i32, i32* %t469, i32 13
store i32 0, i32* %t500
%t501 = getelementptr inbounds i32, i32* %t469, i32 14
store i32 0, i32* %t501
%t502 = getelementptr inbounds i32, i32* %t469, i32 15
store i32 0, i32* %t502
%t503 = getelementptr inbounds i32, i32* %t469, i32 16
store i32 0, i32* %t503
%t504 = getelementptr inbounds i32, i32* %t469, i32 17
store i32 0, i32* %t504
%t505 = getelementptr inbounds i32, i32* %t469, i32 18
store i32 0, i32* %t505
%t506 = getelementptr inbounds i32, i32* %t469, i32 19
store i32 0, i32* %t506
%t507 = getelementptr inbounds i32, i32* %t469, i32 20
store i32 0, i32* %t507
%t508 = getelementptr inbounds i32, i32* %t469, i32 21
store i32 0, i32* %t508
%t509 = getelementptr inbounds i32, i32* %t469, i32 22
store i32 0, i32* %t509
%t510 = getelementptr inbounds i32, i32* %t469, i32 23
store i32 0, i32* %t510
%t511 = getelementptr inbounds i32, i32* %t469, i32 24
store i32 0, i32* %t511
%t512 = getelementptr inbounds i32, i32* %t469, i32 25
store i32 0, i32* %t512
%t513 = getelementptr inbounds i32, i32* %t469, i32 26
store i32 0, i32* %t513
%t514 = getelementptr inbounds i32, i32* %t469, i32 27
store i32 0, i32* %t514
%t515 = getelementptr inbounds i32, i32* %t469, i32 28
store i32 0, i32* %t515
%t516 = getelementptr inbounds i32, i32* %t469, i32 29
store i32 0, i32* %t516
%t517 = getelementptr inbounds i32, i32* %t469, i32 30
store i32 0, i32* %t517
%t518 = getelementptr inbounds i32, i32* %t469, i32 31
store i32 0, i32* %t518
%t519 = getelementptr inbounds i32, i32* %t469, i32 32
store i32 0, i32* %t519
%t520 = getelementptr inbounds i32, i32* %t469, i32 33
store i32 0, i32* %t520
%t521 = getelementptr inbounds i32, i32* %t469, i32 34
store i32 0, i32* %t521
%t522 = getelementptr inbounds i32, i32* %t469, i32 35
store i32 0, i32* %t522
%t523 = getelementptr inbounds i32, i32* %t469, i32 36
store i32 0, i32* %t523
%t524 = getelementptr inbounds i32, i32* %t469, i32 37
store i32 0, i32* %t524
%t525 = getelementptr inbounds i32, i32* %t469, i32 38
store i32 0, i32* %t525
%t526 = getelementptr inbounds i32, i32* %t469, i32 39
store i32 0, i32* %t526
%t527 = getelementptr inbounds i32, i32* %t469, i32 40
store i32 0, i32* %t527
%t528 = getelementptr inbounds i32, i32* %t469, i32 41
store i32 0, i32* %t528
%t529 = getelementptr inbounds i32, i32* %t469, i32 42
store i32 0, i32* %t529
%t530 = getelementptr inbounds i32, i32* %t469, i32 43
store i32 0, i32* %t530
%t531 = getelementptr inbounds i32, i32* %t469, i32 44
store i32 0, i32* %t531
%t532 = getelementptr inbounds i32, i32* %t469, i32 45
store i32 0, i32* %t532
%t533 = getelementptr inbounds i32, i32* %t469, i32 46
store i32 0, i32* %t533
%t534 = getelementptr inbounds i32, i32* %t469, i32 47
store i32 0, i32* %t534
%t535 = getelementptr inbounds i32, i32* %t469, i32 48
store i32 0, i32* %t535
%t536 = getelementptr inbounds i32, i32* %t469, i32 49
store i32 0, i32* %t536
%t537 = getelementptr inbounds i32, i32* %t469, i32 50
store i32 0, i32* %t537
%t538 = getelementptr inbounds i32, i32* %t469, i32 51
store i32 0, i32* %t538
%t539 = getelementptr inbounds i32, i32* %t469, i32 52
store i32 0, i32* %t539
%t540 = getelementptr inbounds i32, i32* %t469, i32 53
store i32 0, i32* %t540
%t541 = getelementptr inbounds i32, i32* %t469, i32 54
store i32 0, i32* %t541
%t542 = getelementptr inbounds i32, i32* %t469, i32 55
store i32 0, i32* %t542
%t543 = getelementptr inbounds i32, i32* %t469, i32 56
store i32 0, i32* %t543
%t544 = getelementptr inbounds i32, i32* %t469, i32 57
store i32 0, i32* %t544
%t545 = getelementptr inbounds i32, i32* %t469, i32 58
store i32 0, i32* %t545
%t546 = getelementptr inbounds i32, i32* %t469, i32 59
store i32 0, i32* %t546
%t547 = getelementptr inbounds i32, i32* %t469, i32 60
store i32 0, i32* %t547
%t548 = getelementptr inbounds i32, i32* %t469, i32 61
store i32 0, i32* %t548
%t549 = getelementptr inbounds i32, i32* %t469, i32 62
store i32 0, i32* %t549
%t550 = getelementptr inbounds i32, i32* %t469, i32 63
store i32 0, i32* %t550
store i32 1, i32* %t551
br label %while.cond.12
while.cond.12:
%t552 = load i32, i32* %t551
%t553 = icmp slt i32 %t552, 32
%t554 = zext i1 %t553 to i32
%t555 = icmp ne i32 %t554, 0
br i1 %t555, label %while.body.13, label %while.end.14
while.body.13:
%t556 = load i32, i32* %t551
%t557 = mul i32 %t556, 2
%t558 = getelementptr inbounds i32, i32* %t469, i32 %t557
%t559 = load i32, i32* %t551
%t560 = sub i32 %t559, 1
%t561 = mul i32 %t560, 2
%t562 = add i32 %t561, 1
%t563 = getelementptr inbounds i32, i32* %t469, i32 %t562
%t564 = load i32, i32* %t563
%t565 = sub i32 %t564, 1
store i32 %t565, i32* %t558
%t566 = load i32, i32* %t551
%t567 = mul i32 %t566, 2
%t568 = add i32 %t567, 1
%t569 = getelementptr inbounds i32, i32* %t469, i32 %t568
%t570 = load i32, i32* %t551
%t571 = sub i32 %t570, 1
%t572 = mul i32 %t571, 2
%t573 = getelementptr inbounds i32, i32* %t469, i32 %t572
%t574 = load i32, i32* %t573
%t575 = sub i32 %t574, 2
store i32 %t575, i32* %t569
%t576 = load i32, i32* %t551
%t577 = add i32 %t576, 1
store i32 %t577, i32* %t551
br label %while.cond.12
while.end.14:
%t578 = getelementptr inbounds i32, i32* %t469, i32 0
%t579 = getelementptr inbounds i32, i32* %t469, i32 2
%t580 = getelementptr inbounds i32, i32* %t469, i32 4
%t581 = getelementptr inbounds i32, i32* %t469, i32 6
%t582 = getelementptr inbounds i32, i32* %t469, i32 8
%t583 = getelementptr inbounds i32, i32* %t469, i32 10
%t584 = getelementptr inbounds i32, i32* %t469, i32 12
%t585 = getelementptr inbounds i32, i32* %t469, i32 14
%t586 = getelementptr inbounds i32, i32* %t469, i32 16
%t587 = getelementptr inbounds i32, i32* %t469, i32 18
%t588 = getelementptr inbounds i32, i32* %t469, i32 20
%t589 = getelementptr inbounds i32, i32* %t469, i32 22
%t590 = getelementptr inbounds i32, i32* %t469, i32 24
%t591 = getelementptr inbounds i32, i32* %t469, i32 26
%t592 = getelementptr inbounds i32, i32* %t469, i32 28
%t593 = getelementptr inbounds i32, i32* %t469, i32 30
%t594 = getelementptr inbounds i32, i32* %t469, i32 32
%t595 = getelementptr inbounds i32, i32* %t469, i32 34
%t596 = getelementptr inbounds i32, i32* %t469, i32 36
%t597 = getelementptr inbounds i32, i32* %t469, i32 38
%t598 = getelementptr inbounds i32, i32* %t469, i32 40
%t599 = getelementptr inbounds i32, i32* %t469, i32 42
%t600 = getelementptr inbounds i32, i32* %t469, i32 44
%t601 = getelementptr inbounds i32, i32* %t469, i32 46
%t602 = getelementptr inbounds i32, i32* %t469, i32 48
%t603 = getelementptr inbounds i32, i32* %t469, i32 50
%t604 = getelementptr inbounds i32, i32* %t469, i32 52
%t605 = getelementptr inbounds i32, i32* %t469, i32 54
%t606 = getelementptr inbounds i32, i32* %t469, i32 56
%t607 = getelementptr inbounds i32, i32* %t469, i32 58
%t608 = getelementptr inbounds i32, i32* %t469, i32 60
%t609 = getelementptr inbounds i32, i32* %t469, i32 62
%t610 = call i32 @param32_arr(i32* %t578, i32* %t579, i32* %t580, i32* %t581, i32* %t582, i32* %t583, i32* %t584, i32* %t585, i32* %t586, i32* %t587, i32* %t588, i32* %t589, i32* %t590, i32* %t591, i32* %t592, i32* %t593, i32* %t594, i32* %t595, i32* %t596, i32* %t597, i32* %t598, i32* %t599, i32* %t600, i32* %t601, i32* %t602, i32* %t603, i32* %t604, i32* %t605, i32* %t606, i32* %t607, i32* %t608, i32* %t609)
call void @putint(i32 %t610)
call void @putch(i32 10)
ret i32 0
}