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.

661 lines
21 KiB

@w = global i32 512
@h = global i32 270
@imgIn = global [138240 x float] zeroinitializer
@imgOut = global [138240 x float] zeroinitializer
@my_y1 = global [138240 x float] zeroinitializer
@my_y2 = global [138240 x float] zeroinitializer
@alpha = global float 0x3FD0000000000000
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 float @newExp(float %arg.x) {
entry:
%t0 = alloca float
store float %arg.x, float* %t0
%t1 = load float, float* %t0
%t2 = fdiv float %t1, 0x4070000000000000
%t3 = fadd float 0x3FF0000000000000, %t2
store float %t3, float* %t0
%t4 = load float, float* %t0
%t5 = load float, float* %t0
%t6 = fmul float %t4, %t5
store float %t6, float* %t0
%t7 = load float, float* %t0
%t8 = load float, float* %t0
%t9 = fmul float %t7, %t8
store float %t9, float* %t0
%t10 = load float, float* %t0
%t11 = load float, float* %t0
%t12 = fmul float %t10, %t11
store float %t12, float* %t0
%t13 = load float, float* %t0
%t14 = load float, float* %t0
%t15 = fmul float %t13, %t14
store float %t15, float* %t0
%t16 = load float, float* %t0
%t17 = load float, float* %t0
%t18 = fmul float %t16, %t17
store float %t18, float* %t0
%t19 = load float, float* %t0
%t20 = load float, float* %t0
%t21 = fmul float %t19, %t20
store float %t21, float* %t0
%t22 = load float, float* %t0
%t23 = load float, float* %t0
%t24 = fmul float %t22, %t23
store float %t24, float* %t0
%t25 = load float, float* %t0
%t26 = load float, float* %t0
%t27 = fmul float %t25, %t26
store float %t27, float* %t0
%t28 = load float, float* %t0
ret float %t28
}
define float @newPow(float %arg.num, i32 %arg.n) {
entry:
%t29 = alloca float
store float %arg.num, float* %t29
%t30 = alloca i32
store i32 %arg.n, i32* %t30
%t31 = load i32, i32* %t30
%t32 = icmp slt i32 %t31, 0
%t33 = zext i1 %t32 to i32
%t34 = icmp ne i32 %t33, 0
br i1 %t34, label %if.then.1, label %if.else.2
if.then.1:
%t35 = load float, float* %t29
%t36 = load i32, i32* %t30
%t37 = sub i32 0, %t36
%t38 = call float @newPow(float %t35, i32 %t37)
%t39 = fdiv float 0x3FF0000000000000, %t38
ret float %t39
if.else.2:
%t40 = load i32, i32* %t30
%t41 = icmp eq i32 %t40, 0
%t42 = zext i1 %t41 to i32
%t43 = icmp ne i32 %t42, 0
br i1 %t43, label %if.then.4, label %if.else.5
if.end.3:
ret float 0x0000000000000000
if.then.4:
ret float 0x3FF0000000000000
if.else.5:
%t44 = load i32, i32* %t30
%t45 = icmp sgt i32 %t44, 0
%t46 = zext i1 %t45 to i32
%t47 = icmp ne i32 %t46, 0
br i1 %t47, label %if.then.7, label %if.end.8
if.end.6:
br label %if.end.3
if.then.7:
%t48 = load float, float* %t29
%t49 = load float, float* %t29
%t50 = load i32, i32* %t30
%t51 = sub i32 %t50, 1
%t52 = call float @newPow(float %t49, i32 %t51)
%t53 = fmul float %t48, %t52
ret float %t53
if.end.8:
br label %if.end.6
}
define void @kernel_deriche(i32 %arg.w, i32 %arg.h, float %arg.alpha, float* %arg.imgIn, float* %arg.imgOut, float* %arg.y1, float* %arg.y2) {
entry:
%t57 = alloca i32
%t58 = alloca i32
%t59 = alloca float
%t60 = alloca float
%t61 = alloca float
%t62 = alloca float
%t63 = alloca float
%t64 = alloca float
%t65 = alloca float
%t66 = alloca float
%t67 = alloca float
%t68 = alloca float
%t69 = alloca float
%t70 = alloca float
%t71 = alloca float
%t72 = alloca float
%t73 = alloca float
%t74 = alloca float
%t75 = alloca float
%t76 = alloca float
%t77 = alloca float
%t78 = alloca float
%t79 = alloca float
%t80 = alloca float
%t81 = alloca float
%t54 = alloca i32
store i32 %arg.w, i32* %t54
%t55 = alloca i32
store i32 %arg.h, i32* %t55
%t56 = alloca float
store float %arg.alpha, float* %t56
store i32 0, i32* %t57
store i32 0, i32* %t58
store float 0x0000000000000000, float* %t59
store float 0x0000000000000000, float* %t60
store float 0x0000000000000000, float* %t61
store float 0x0000000000000000, float* %t62
store float 0x0000000000000000, float* %t63
store float 0x0000000000000000, float* %t64
store float 0x0000000000000000, float* %t65
store float 0x0000000000000000, float* %t66
store float 0x0000000000000000, float* %t67
store float 0x0000000000000000, float* %t68
store float 0x0000000000000000, float* %t69
store float 0x0000000000000000, float* %t70
store float 0x0000000000000000, float* %t71
store float 0x0000000000000000, float* %t72
store float 0x0000000000000000, float* %t73
store float 0x0000000000000000, float* %t74
store float 0x0000000000000000, float* %t75
store float 0x0000000000000000, float* %t76
store float 0x0000000000000000, float* %t77
store float 0x0000000000000000, float* %t78
store float 0x0000000000000000, float* %t79
store float 0x0000000000000000, float* %t80
store float 0x0000000000000000, float* %t81
%t82 = load float, float* %t56
%t83 = fsub float 0x0000000000000000, %t82
%t84 = call float @newExp(float %t83)
%t85 = fsub float 0x3FF0000000000000, %t84
%t86 = load float, float* %t56
%t87 = fsub float 0x0000000000000000, %t86
%t88 = call float @newExp(float %t87)
%t89 = fsub float 0x3FF0000000000000, %t88
%t90 = fmul float %t85, %t89
%t91 = load float, float* %t56
%t92 = fmul float 0x4000000000000000, %t91
%t93 = load float, float* %t56
%t94 = fsub float 0x0000000000000000, %t93
%t95 = call float @newExp(float %t94)
%t96 = fmul float %t92, %t95
%t97 = fadd float 0x3FF0000000000000, %t96
%t98 = load float, float* %t56
%t99 = fmul float 0x4000000000000000, %t98
%t100 = call float @newExp(float %t99)
%t101 = fsub float %t97, %t100
%t102 = fdiv float %t90, %t101
store float %t102, float* %t69
%t103 = load float, float* %t69
store float %t103, float* %t70
%t104 = load float, float* %t69
store float %t104, float* %t74
%t105 = load float, float* %t69
%t106 = load float, float* %t56
%t107 = fsub float 0x0000000000000000, %t106
%t108 = call float @newExp(float %t107)
%t109 = fmul float %t105, %t108
%t110 = load float, float* %t56
%t111 = fsub float %t110, 0x3FF0000000000000
%t112 = fmul float %t109, %t111
store float %t112, float* %t75
%t113 = load float, float* %t75
store float %t113, float* %t71
%t114 = load float, float* %t69
%t115 = load float, float* %t56
%t116 = fsub float 0x0000000000000000, %t115
%t117 = call float @newExp(float %t116)
%t118 = fmul float %t114, %t117
%t119 = load float, float* %t56
%t120 = fadd float %t119, 0x3FF0000000000000
%t121 = fmul float %t118, %t120
store float %t121, float* %t76
%t122 = load float, float* %t76
store float %t122, float* %t72
%t123 = load float, float* %t69
%t124 = fsub float 0x0000000000000000, %t123
%t125 = load float, float* %t56
%t126 = fmul float 0xC000000000000000, %t125
%t127 = call float @newExp(float %t126)
%t128 = fmul float %t124, %t127
store float %t128, float* %t77
%t129 = load float, float* %t77
store float %t129, float* %t73
%t130 = load float, float* %t56
%t131 = fsub float 0x0000000000000000, %t130
%t132 = fptosi float %t131 to i32
%t133 = call float @newPow(float 0x4000000000000000, i32 %t132)
store float %t133, float* %t78
%t134 = load float, float* %t56
%t135 = fmul float 0xC000000000000000, %t134
%t136 = call float @newExp(float %t135)
%t137 = fsub float 0x0000000000000000, %t136
store float %t137, float* %t79
store float 0x3FF0000000000000, float* %t80
store float 0x3FF0000000000000, float* %t81
store i32 0, i32* %t57
br label %while.cond.9
while.cond.9:
%t138 = load i32, i32* %t57
%t139 = load i32, i32* %t54
%t140 = icmp slt i32 %t138, %t139
%t141 = zext i1 %t140 to i32
%t142 = icmp ne i32 %t141, 0
br i1 %t142, label %while.body.10, label %while.end.11
while.body.10:
store float 0x0000000000000000, float* %t61
store float 0x0000000000000000, float* %t62
store float 0x0000000000000000, float* %t59
store i32 0, i32* %t58
br label %while.cond.12
while.end.11:
store i32 0, i32* %t57
br label %while.cond.15
while.cond.12:
%t143 = load i32, i32* %t58
%t144 = load i32, i32* %t55
%t145 = icmp slt i32 %t143, %t144
%t146 = zext i1 %t145 to i32
%t147 = icmp ne i32 %t146, 0
br i1 %t147, label %while.body.13, label %while.end.14
while.body.13:
%t148 = load i32, i32* %t57
%t149 = load i32, i32* %t58
%t150 = mul i32 %t148, 270
%t151 = add i32 %t150, %t149
%t152 = getelementptr inbounds float, float* %arg.y1, i32 %t151
%t153 = load float, float* %t70
%t154 = load i32, i32* %t57
%t155 = load i32, i32* %t58
%t156 = mul i32 %t154, 270
%t157 = add i32 %t156, %t155
%t158 = getelementptr inbounds float, float* %arg.imgIn, i32 %t157
%t159 = load float, float* %t158
%t160 = fmul float %t153, %t159
%t161 = load float, float* %t71
%t162 = load float, float* %t59
%t163 = fmul float %t161, %t162
%t164 = fadd float %t160, %t163
%t165 = load float, float* %t78
%t166 = load float, float* %t61
%t167 = fmul float %t165, %t166
%t168 = fadd float %t164, %t167
%t169 = load float, float* %t79
%t170 = load float, float* %t62
%t171 = fmul float %t169, %t170
%t172 = fadd float %t168, %t171
store float %t172, float* %t152
%t173 = load i32, i32* %t57
%t174 = load i32, i32* %t58
%t175 = mul i32 %t173, 270
%t176 = add i32 %t175, %t174
%t177 = getelementptr inbounds float, float* %arg.imgIn, i32 %t176
%t178 = load float, float* %t177
store float %t178, float* %t59
%t179 = load float, float* %t61
store float %t179, float* %t62
%t180 = load i32, i32* %t57
%t181 = load i32, i32* %t58
%t182 = mul i32 %t180, 270
%t183 = add i32 %t182, %t181
%t184 = getelementptr inbounds float, float* %arg.y1, i32 %t183
%t185 = load float, float* %t184
store float %t185, float* %t61
%t186 = load i32, i32* %t58
%t187 = add i32 %t186, 1
store i32 %t187, i32* %t58
br label %while.cond.12
while.end.14:
%t188 = load i32, i32* %t57
%t189 = add i32 %t188, 1
store i32 %t189, i32* %t57
br label %while.cond.9
while.cond.15:
%t190 = load i32, i32* %t57
%t191 = load i32, i32* %t54
%t192 = icmp slt i32 %t190, %t191
%t193 = zext i1 %t192 to i32
%t194 = icmp ne i32 %t193, 0
br i1 %t194, label %while.body.16, label %while.end.17
while.body.16:
store float 0x0000000000000000, float* %t67
store float 0x0000000000000000, float* %t68
store float 0x0000000000000000, float* %t63
store float 0x0000000000000000, float* %t64
%t195 = load i32, i32* %t55
%t196 = sub i32 %t195, 1
store i32 %t196, i32* %t58
br label %while.cond.18
while.end.17:
store i32 0, i32* %t57
br label %while.cond.21
while.cond.18:
%t197 = load i32, i32* %t58
%t198 = icmp sge i32 %t197, 0
%t199 = zext i1 %t198 to i32
%t200 = icmp ne i32 %t199, 0
br i1 %t200, label %while.body.19, label %while.end.20
while.body.19:
%t201 = load i32, i32* %t57
%t202 = load i32, i32* %t58
%t203 = mul i32 %t201, 270
%t204 = add i32 %t203, %t202
%t205 = getelementptr inbounds float, float* %arg.y2, i32 %t204
%t206 = load float, float* %t72
%t207 = load float, float* %t63
%t208 = fmul float %t206, %t207
%t209 = load float, float* %t73
%t210 = load float, float* %t64
%t211 = fmul float %t209, %t210
%t212 = fadd float %t208, %t211
%t213 = load float, float* %t78
%t214 = load float, float* %t67
%t215 = fmul float %t213, %t214
%t216 = fadd float %t212, %t215
%t217 = load float, float* %t79
%t218 = load float, float* %t68
%t219 = fmul float %t217, %t218
%t220 = fadd float %t216, %t219
store float %t220, float* %t205
%t221 = load float, float* %t63
store float %t221, float* %t64
%t222 = load i32, i32* %t57
%t223 = load i32, i32* %t58
%t224 = mul i32 %t222, 270
%t225 = add i32 %t224, %t223
%t226 = getelementptr inbounds float, float* %arg.imgIn, i32 %t225
%t227 = load float, float* %t226
store float %t227, float* %t63
%t228 = load float, float* %t67
store float %t228, float* %t68
%t229 = load i32, i32* %t57
%t230 = load i32, i32* %t58
%t231 = mul i32 %t229, 270
%t232 = add i32 %t231, %t230
%t233 = getelementptr inbounds float, float* %arg.y2, i32 %t232
%t234 = load float, float* %t233
store float %t234, float* %t67
%t235 = load i32, i32* %t58
%t236 = sub i32 %t235, 1
store i32 %t236, i32* %t58
br label %while.cond.18
while.end.20:
%t237 = load i32, i32* %t57
%t238 = add i32 %t237, 1
store i32 %t238, i32* %t57
br label %while.cond.15
while.cond.21:
%t239 = load i32, i32* %t57
%t240 = load i32, i32* %t54
%t241 = icmp slt i32 %t239, %t240
%t242 = zext i1 %t241 to i32
%t243 = icmp ne i32 %t242, 0
br i1 %t243, label %while.body.22, label %while.end.23
while.body.22:
store i32 0, i32* %t58
br label %while.cond.24
while.end.23:
store i32 0, i32* %t58
br label %while.cond.27
while.cond.24:
%t244 = load i32, i32* %t58
%t245 = load i32, i32* %t55
%t246 = icmp slt i32 %t244, %t245
%t247 = zext i1 %t246 to i32
%t248 = icmp ne i32 %t247, 0
br i1 %t248, label %while.body.25, label %while.end.26
while.body.25:
%t249 = load i32, i32* %t57
%t250 = load i32, i32* %t58
%t251 = mul i32 %t249, 270
%t252 = add i32 %t251, %t250
%t253 = getelementptr inbounds float, float* %arg.imgOut, i32 %t252
%t254 = load float, float* %t80
%t255 = load i32, i32* %t57
%t256 = load i32, i32* %t58
%t257 = mul i32 %t255, 270
%t258 = add i32 %t257, %t256
%t259 = getelementptr inbounds float, float* %arg.y1, i32 %t258
%t260 = load float, float* %t259
%t261 = load i32, i32* %t57
%t262 = load i32, i32* %t58
%t263 = mul i32 %t261, 270
%t264 = add i32 %t263, %t262
%t265 = getelementptr inbounds float, float* %arg.y2, i32 %t264
%t266 = load float, float* %t265
%t267 = fadd float %t260, %t266
%t268 = fmul float %t254, %t267
store float %t268, float* %t253
%t269 = load i32, i32* %t58
%t270 = add i32 %t269, 1
store i32 %t270, i32* %t58
br label %while.cond.24
while.end.26:
%t271 = load i32, i32* %t57
%t272 = add i32 %t271, 1
store i32 %t272, i32* %t57
br label %while.cond.21
while.cond.27:
%t273 = load i32, i32* %t58
%t274 = load i32, i32* %t55
%t275 = icmp slt i32 %t273, %t274
%t276 = zext i1 %t275 to i32
%t277 = icmp ne i32 %t276, 0
br i1 %t277, label %while.body.28, label %while.end.29
while.body.28:
store float 0x0000000000000000, float* %t60
store float 0x0000000000000000, float* %t61
store float 0x0000000000000000, float* %t62
store i32 0, i32* %t57
br label %while.cond.30
while.end.29:
store i32 0, i32* %t58
br label %while.cond.33
while.cond.30:
%t278 = load i32, i32* %t57
%t279 = load i32, i32* %t54
%t280 = icmp slt i32 %t278, %t279
%t281 = zext i1 %t280 to i32
%t282 = icmp ne i32 %t281, 0
br i1 %t282, label %while.body.31, label %while.end.32
while.body.31:
%t283 = load i32, i32* %t57
%t284 = load i32, i32* %t58
%t285 = mul i32 %t283, 270
%t286 = add i32 %t285, %t284
%t287 = getelementptr inbounds float, float* %arg.y1, i32 %t286
%t288 = load float, float* %t74
%t289 = load i32, i32* %t57
%t290 = load i32, i32* %t58
%t291 = mul i32 %t289, 270
%t292 = add i32 %t291, %t290
%t293 = getelementptr inbounds float, float* %arg.imgOut, i32 %t292
%t294 = load float, float* %t293
%t295 = fmul float %t288, %t294
%t296 = load float, float* %t75
%t297 = load float, float* %t60
%t298 = fmul float %t296, %t297
%t299 = fadd float %t295, %t298
%t300 = load float, float* %t78
%t301 = load float, float* %t61
%t302 = fmul float %t300, %t301
%t303 = fadd float %t299, %t302
%t304 = load float, float* %t79
%t305 = load float, float* %t62
%t306 = fmul float %t304, %t305
%t307 = fadd float %t303, %t306
store float %t307, float* %t287
%t308 = load i32, i32* %t57
%t309 = load i32, i32* %t58
%t310 = mul i32 %t308, 270
%t311 = add i32 %t310, %t309
%t312 = getelementptr inbounds float, float* %arg.imgOut, i32 %t311
%t313 = load float, float* %t312
store float %t313, float* %t60
%t314 = load float, float* %t61
store float %t314, float* %t62
%t315 = load i32, i32* %t57
%t316 = load i32, i32* %t58
%t317 = mul i32 %t315, 270
%t318 = add i32 %t317, %t316
%t319 = getelementptr inbounds float, float* %arg.y1, i32 %t318
%t320 = load float, float* %t319
store float %t320, float* %t61
%t321 = load i32, i32* %t57
%t322 = add i32 %t321, 1
store i32 %t322, i32* %t57
br label %while.cond.30
while.end.32:
%t323 = load i32, i32* %t58
%t324 = add i32 %t323, 1
store i32 %t324, i32* %t58
br label %while.cond.27
while.cond.33:
%t325 = load i32, i32* %t58
%t326 = load i32, i32* %t55
%t327 = icmp slt i32 %t325, %t326
%t328 = zext i1 %t327 to i32
%t329 = icmp ne i32 %t328, 0
br i1 %t329, label %while.body.34, label %while.end.35
while.body.34:
store float 0x0000000000000000, float* %t65
store float 0x0000000000000000, float* %t66
store float 0x0000000000000000, float* %t67
store float 0x0000000000000000, float* %t68
%t330 = load i32, i32* %t54
%t331 = sub i32 %t330, 1
store i32 %t331, i32* %t57
br label %while.cond.36
while.end.35:
store i32 0, i32* %t57
br label %while.cond.39
while.cond.36:
%t332 = load i32, i32* %t57
%t333 = icmp sge i32 %t332, 0
%t334 = zext i1 %t333 to i32
%t335 = icmp ne i32 %t334, 0
br i1 %t335, label %while.body.37, label %while.end.38
while.body.37:
%t336 = load i32, i32* %t57
%t337 = load i32, i32* %t58
%t338 = mul i32 %t336, 270
%t339 = add i32 %t338, %t337
%t340 = getelementptr inbounds float, float* %arg.y2, i32 %t339
%t341 = load float, float* %t76
%t342 = load float, float* %t65
%t343 = fmul float %t341, %t342
%t344 = load float, float* %t77
%t345 = load float, float* %t66
%t346 = fmul float %t344, %t345
%t347 = fadd float %t343, %t346
%t348 = load float, float* %t78
%t349 = load float, float* %t67
%t350 = fmul float %t348, %t349
%t351 = fadd float %t347, %t350
%t352 = load float, float* %t79
%t353 = load float, float* %t68
%t354 = fmul float %t352, %t353
%t355 = fadd float %t351, %t354
store float %t355, float* %t340
%t356 = load float, float* %t65
store float %t356, float* %t66
%t357 = load i32, i32* %t57
%t358 = load i32, i32* %t58
%t359 = mul i32 %t357, 270
%t360 = add i32 %t359, %t358
%t361 = getelementptr inbounds float, float* %arg.imgOut, i32 %t360
%t362 = load float, float* %t361
store float %t362, float* %t65
%t363 = load float, float* %t67
store float %t363, float* %t68
%t364 = load i32, i32* %t57
%t365 = load i32, i32* %t58
%t366 = mul i32 %t364, 270
%t367 = add i32 %t366, %t365
%t368 = getelementptr inbounds float, float* %arg.y2, i32 %t367
%t369 = load float, float* %t368
store float %t369, float* %t67
%t370 = load i32, i32* %t57
%t371 = sub i32 %t370, 1
store i32 %t371, i32* %t57
br label %while.cond.36
while.end.38:
%t372 = load i32, i32* %t58
%t373 = add i32 %t372, 1
store i32 %t373, i32* %t58
br label %while.cond.33
while.cond.39:
%t374 = load i32, i32* %t57
%t375 = load i32, i32* %t54
%t376 = icmp slt i32 %t374, %t375
%t377 = zext i1 %t376 to i32
%t378 = icmp ne i32 %t377, 0
br i1 %t378, label %while.body.40, label %while.end.41
while.body.40:
store i32 0, i32* %t58
br label %while.cond.42
while.end.41:
ret void
while.cond.42:
%t379 = load i32, i32* %t58
%t380 = load i32, i32* %t55
%t381 = icmp slt i32 %t379, %t380
%t382 = zext i1 %t381 to i32
%t383 = icmp ne i32 %t382, 0
br i1 %t383, label %while.body.43, label %while.end.44
while.body.43:
%t384 = load i32, i32* %t57
%t385 = load i32, i32* %t58
%t386 = mul i32 %t384, 270
%t387 = add i32 %t386, %t385
%t388 = getelementptr inbounds float, float* %arg.imgOut, i32 %t387
%t389 = load float, float* %t81
%t390 = load i32, i32* %t57
%t391 = load i32, i32* %t58
%t392 = mul i32 %t390, 270
%t393 = add i32 %t392, %t391
%t394 = getelementptr inbounds float, float* %arg.y1, i32 %t393
%t395 = load float, float* %t394
%t396 = load i32, i32* %t57
%t397 = load i32, i32* %t58
%t398 = mul i32 %t396, 270
%t399 = add i32 %t398, %t397
%t400 = getelementptr inbounds float, float* %arg.y2, i32 %t399
%t401 = load float, float* %t400
%t402 = fadd float %t395, %t401
%t403 = fmul float %t389, %t402
store float %t403, float* %t388
%t404 = load i32, i32* %t58
%t405 = add i32 %t404, 1
store i32 %t405, i32* %t58
br label %while.cond.42
while.end.44:
%t406 = load i32, i32* %t57
%t407 = add i32 %t406, 1
store i32 %t407, i32* %t57
br label %while.cond.39
}
define i32 @main() {
entry:
%t408 = getelementptr inbounds [138240 x float], [138240 x float]* @imgIn, i32 0, i32 0
%t409 = call i32 @getfarray(float* %t408)
call void @starttime()
%t411 = load i32, i32* @w
%t412 = load i32, i32* @h
%t413 = load float, float* @alpha
%t414 = getelementptr inbounds [138240 x float], [138240 x float]* @imgIn, i32 0, i32 0
%t415 = getelementptr inbounds [138240 x float], [138240 x float]* @imgOut, i32 0, i32 0
%t416 = getelementptr inbounds [138240 x float], [138240 x float]* @my_y1, i32 0, i32 0
%t417 = getelementptr inbounds [138240 x float], [138240 x float]* @my_y2, i32 0, i32 0
call void @kernel_deriche(i32 %t411, i32 %t412, float %t413, float* %t414, float* %t415, float* %t416, float* %t417)
call void @stoptime()
%t420 = load i32, i32* @w
%t421 = load i32, i32* @h
%t422 = mul i32 %t420, %t421
%t423 = getelementptr inbounds [138240 x float], [138240 x float]* @imgOut, i32 0, i32 0
call void @putfarray(i32 %t422, float* %t423)
ret i32 0
}