Skip to content

Instantly share code, notes, and snippets.

@athas
Created April 13, 2020 20:16
Show Gist options
  • Select an option

  • Save athas/48f37664882e8f5110485e298741b862 to your computer and use it in GitHub Desktop.

Select an option

Save athas/48f37664882e8f5110485e298741b862 to your computer and use it in GitHub Desktop.
int futhark_mc_parloop_44110(void *args, int start, int end, int ntask_44065)
{
struct futhark_mc_parloop_struct_44109 *futhark_mc_parloop_struct_44109 =
(struct futhark_mc_parloop_struct_44109 *) args;
struct futhark_context *ctx = futhark_mc_parloop_struct_44109->ctx;
int64_t futhark_mc_parloop_44110_start, futhark_mc_parloop_44110_end;
if (ctx->profiling)
futhark_mc_parloop_44110_start = get_wall_time();
int32_t h_41993 = *futhark_mc_parloop_struct_44109->free_h_41993;
int32_t w_41994 = *futhark_mc_parloop_struct_44109->free_w_41994;
float horizzontal_41995 =
*futhark_mc_parloop_struct_44109->free_horizzontal_41995;
float horizzontal_41996 =
*futhark_mc_parloop_struct_44109->free_horizzontal_41996;
float horizzontal_41997 =
*futhark_mc_parloop_struct_44109->free_horizzontal_41997;
float llc_41998 = *futhark_mc_parloop_struct_44109->free_llc_41998;
float llc_41999 = *futhark_mc_parloop_struct_44109->free_llc_41999;
float llc_42000 = *futhark_mc_parloop_struct_44109->free_llc_42000;
float origin_42001 = *futhark_mc_parloop_struct_44109->free_origin_42001;
float origin_42002 = *futhark_mc_parloop_struct_44109->free_origin_42002;
float origin_42003 = *futhark_mc_parloop_struct_44109->free_origin_42003;
float vertical_42004 =
*futhark_mc_parloop_struct_44109->free_vertical_42004;
float vertical_42005 =
*futhark_mc_parloop_struct_44109->free_vertical_42005;
float vertical_42006 =
*futhark_mc_parloop_struct_44109->free_vertical_42006;
float res_42033 = *futhark_mc_parloop_struct_44109->free_res_42033;
float res_42034 = *futhark_mc_parloop_struct_44109->free_res_42034;
struct memblock I_mem_43770 =
*futhark_mc_parloop_struct_44109->free_I_mem_43770;
struct memblock I_mem_43771 =
*futhark_mc_parloop_struct_44109->free_I_mem_43771;
struct memblock I_mem_43772 =
*futhark_mc_parloop_struct_44109->free_I_mem_43772;
struct memblock I_mem_43773 =
*futhark_mc_parloop_struct_44109->free_I_mem_43773;
struct memblock I_mem_43774 =
*futhark_mc_parloop_struct_44109->free_I_mem_43774;
struct memblock I_mem_43775 =
*futhark_mc_parloop_struct_44109->free_I_mem_43775;
struct memblock I_mem_43776 =
*futhark_mc_parloop_struct_44109->free_I_mem_43776;
struct memblock I_mem_43777 =
*futhark_mc_parloop_struct_44109->free_I_mem_43777;
struct memblock I_mem_43778 =
*futhark_mc_parloop_struct_44109->free_I_mem_43778;
struct memblock I_mem_43779 =
*futhark_mc_parloop_struct_44109->free_I_mem_43779;
struct memblock I_mem_43780 =
*futhark_mc_parloop_struct_44109->free_I_mem_43780;
struct memblock L_mem_43781 =
*futhark_mc_parloop_struct_44109->free_L_mem_43781;
struct memblock L_mem_43782 =
*futhark_mc_parloop_struct_44109->free_L_mem_43782;
struct memblock L_mem_43783 =
*futhark_mc_parloop_struct_44109->free_L_mem_43783;
struct memblock L_mem_43784 =
*futhark_mc_parloop_struct_44109->free_L_mem_43784;
struct memblock L_mem_43785 =
*futhark_mc_parloop_struct_44109->free_L_mem_43785;
struct memblock L_mem_43786 =
*futhark_mc_parloop_struct_44109->free_L_mem_43786;
struct memblock L_mem_43787 =
*futhark_mc_parloop_struct_44109->free_L_mem_43787;
struct memblock mem_43792 =
*futhark_mc_parloop_struct_44109->free_mem_43792;
int phys_tid_43180 = start;
for (; phys_tid_43180 < end; phys_tid_43180++) {
if (ctx->debugging)
fprintf(stderr, "%s\n", "SegMap fbody");
int32_t gtid_43178 = squot32(phys_tid_43180, w_41994);
int32_t gtid_43179;
gtid_43179 = sub32(phys_tid_43180, mul32(squot32(phys_tid_43180,
w_41994), w_41994));
int32_t convop_x_43656 = sub32(h_41993, gtid_43178);
float binop_x_43657 = sitofp_i32_f32(convop_x_43656);
float binop_y_43658 = binop_x_43657 / res_42034;
float index_primexp_43659 = vertical_42004 * binop_y_43658;
float index_primexp_43655 = vertical_42005 * binop_y_43658;
float index_primexp_43651 = vertical_42006 * binop_y_43658;
float res_43197 = sitofp_i32_f32(gtid_43179);
float u_43198 = res_43197 / res_42033;
float res_43199 = horizzontal_41995 * u_43198;
float res_43200 = horizzontal_41996 * u_43198;
float res_43201 = horizzontal_41997 * u_43198;
float res_43202 = llc_41998 + res_43199;
float res_43203 = llc_41999 + res_43200;
float res_43204 = llc_42000 + res_43201;
float res_43205 = res_43202 + index_primexp_43659;
float res_43206 = res_43203 + index_primexp_43655;
float res_43207 = res_43204 + index_primexp_43651;
float res_43208 = res_43205 - origin_42001;
float res_43209 = res_43206 - origin_42002;
float res_43210 = res_43207 - origin_42003;
bool lifted_1_zlzb_arg_43211;
float lifted_1_zlzb_arg_43212;
float lifted_1_zlzb_arg_43213;
float lifted_1_zlzb_arg_43214;
float lifted_1_zlzb_arg_43215;
float lifted_1_zlzb_arg_43216;
float lifted_1_zlzb_arg_43217;
int32_t lifted_1_zlzb_arg_43218;
float lifted_1_zlzb_arg_43219;
float lifted_1_zlzb_arg_43220;
float lifted_1_zlzb_arg_43221;
float lifted_1_zlzb_arg_43222;
float lifted_1_zlzb_arg_43223;
float lifted_1_zlzb_arg_43224;
bool loop_while_43225;
float r_43226;
float r_43227;
float r_43228;
float r_43229;
float r_43230;
float r_43231;
int32_t depth_43232;
float light_43233;
float light_43234;
float light_43235;
float colour_43236;
float colour_43237;
float colour_43238;
loop_while_43225 = 1;
r_43226 = res_43208;
r_43227 = res_43209;
r_43228 = res_43210;
r_43229 = origin_42001;
r_43230 = origin_42002;
r_43231 = origin_42003;
depth_43232 = 0;
light_43233 = 1.0F;
light_43234 = 1.0F;
light_43235 = 1.0F;
colour_43236 = 0.0F;
colour_43237 = 0.0F;
colour_43238 = 0.0F;
while (loop_while_43225) {
bool lifted_1_zlzb_arg_43239;
int32_t lifted_1_zlzb_arg_43240;
float lifted_1_zlzb_arg_43241;
int32_t lifted_1_zlzb_arg_43242;
int8_t lifted_1_zlzb_arg_43243;
int32_t lifted_1_zlzb_arg_43244;
bool loop_while_43245;
int32_t acc_43246;
float acc_43247;
int32_t cur_43248;
int8_t prev_43249;
int32_t prev_43250;
loop_while_43245 = 1;
acc_43246 = -1;
acc_43247 = 1.0e9F;
cur_43248 = 0;
prev_43249 = 0;
prev_43250 = -1;
while (loop_while_43245) {
int8_t loopres_43257 = ((int8_t *) I_mem_43776.mem)[cur_43248];
int32_t loopres_43258 =
((int32_t *) I_mem_43777.mem)[cur_43248];
int8_t loopres_43260 = ((int8_t *) I_mem_43779.mem)[cur_43248];
int32_t loopres_43261 =
((int32_t *) I_mem_43780.mem)[cur_43248];
bool from_left_43262 = prev_43249 == loopres_43257;
bool from_left_43263 = prev_43250 == loopres_43258;
bool eq_43264 = from_left_43262 && from_left_43263;
bool from_right_43265 = prev_43249 == loopres_43260;
bool from_right_43266 = prev_43250 == loopres_43261;
bool eq_43267 = from_right_43265 && from_right_43266;
int8_t rec_child_43268;
int8_t rec_child_43269;
int32_t rec_child_43270;
if (eq_43264) {
rec_child_43268 = 1;
rec_child_43269 = loopres_43260;
rec_child_43270 = loopres_43261;
} else {
float loopres_43251 =
((float *) I_mem_43770.mem)[cur_43248];
float loopres_43252 =
((float *) I_mem_43771.mem)[cur_43248];
float loopres_43253 =
((float *) I_mem_43772.mem)[cur_43248];
float loopres_43254 =
((float *) I_mem_43773.mem)[cur_43248];
float loopres_43255 =
((float *) I_mem_43774.mem)[cur_43248];
float loopres_43256 =
((float *) I_mem_43775.mem)[cur_43248];
bool cond_43271 = !eq_43267;
float invD_43272 = 1.0F / r_43226;
float x_43273 = loopres_43254 - r_43229;
float t0_43274 = invD_43272 * x_43273;
float x_43275 = loopres_43251 - r_43229;
float t1_43276 = invD_43272 * x_43275;
bool cond_43277 = invD_43272 < 0.0F;
float res_43278;
if (cond_43277) {
res_43278 = t1_43276;
} else {
res_43278 = t0_43274;
}
float res_43279;
if (cond_43277) {
res_43279 = t0_43274;
} else {
res_43279 = t1_43276;
}
float res_43280 = fmax32(1.0e-3F, res_43278);
float res_43281 = fmin32(1.0e9F, res_43279);
bool cond_43282 = res_43281 <= res_43280;
float invD_43283 = 1.0F / r_43227;
float x_43284 = loopres_43255 - r_43230;
float t0_43285 = invD_43283 * x_43284;
float x_43286 = loopres_43252 - r_43230;
float t1_43287 = invD_43283 * x_43286;
bool cond_43288 = invD_43283 < 0.0F;
float res_43289;
if (cond_43288) {
res_43289 = t1_43287;
} else {
res_43289 = t0_43285;
}
float res_43290;
if (cond_43288) {
res_43290 = t0_43285;
} else {
res_43290 = t1_43287;
}
float res_43291 = fmax32(res_43280, res_43289);
float res_43292 = fmin32(res_43281, res_43290);
bool cond_43293 = res_43292 <= res_43291;
float invD_43294 = 1.0F / r_43228;
float x_43295 = loopres_43256 - r_43231;
float t0_43296 = invD_43294 * x_43295;
float x_43297 = loopres_43253 - r_43231;
float t1_43298 = invD_43294 * x_43297;
bool cond_43299 = invD_43294 < 0.0F;
float res_43300;
if (cond_43299) {
res_43300 = t1_43298;
} else {
res_43300 = t0_43296;
}
float res_43301;
if (cond_43299) {
res_43301 = t0_43296;
} else {
res_43301 = t1_43298;
}
float res_43302 = fmax32(res_43291, res_43300);
float res_43303 = fmin32(res_43292, res_43301);
bool complement_arg_43304 = res_43303 <= res_43302;
bool res_43305 = !complement_arg_43304;
bool x_43306 = !cond_43293;
bool y_43307 = res_43305 && x_43306;
bool x_43308 = !cond_43282;
bool y_43309 = y_43307 && x_43308;
bool x_43310 = cond_43271 && y_43309;
int8_t res_43311 = btoi_bool_i8(x_43310);
int8_t res_43312;
if (x_43310) {
res_43312 = loopres_43257;
} else {
res_43312 = 0;
}
int32_t res_43313;
if (x_43310) {
res_43313 = loopres_43258;
} else {
res_43313 = 0;
}
rec_child_43268 = res_43311;
rec_child_43269 = res_43312;
rec_child_43270 = res_43313;
}
bool match_constr_43314 = 0 == rec_child_43268;
int32_t loopres_43315;
float loopres_43316;
int32_t loopres_43317;
int8_t loopres_43318;
int32_t loopres_43319;
if (match_constr_43314) {
int32_t loopres_43259 =
((int32_t *) I_mem_43778.mem)[cur_43248];
loopres_43315 = acc_43246;
loopres_43316 = acc_43247;
loopres_43317 = loopres_43259;
loopres_43318 = 0;
loopres_43319 = cur_43248;
} else {
bool match_constr_43320 = 0 == rec_child_43269;
int32_t res_43321;
if (match_constr_43320) {
res_43321 = rec_child_43270;
} else {
res_43321 = cur_43248;
}
int8_t res_43322;
if (match_constr_43320) {
res_43322 = 0;
} else {
res_43322 = rec_child_43269;
}
int32_t res_43323;
if (match_constr_43320) {
res_43323 = cur_43248;
} else {
res_43323 = rec_child_43270;
}
int32_t res_43324;
float res_43325;
if (match_constr_43320) {
res_43324 = acc_43246;
res_43325 = acc_43247;
} else {
float lifted_2_op_arg_43326 =
((float *) L_mem_43784.mem)[rec_child_43270];
float lifted_2_op_arg_43327 =
((float *) L_mem_43785.mem)[rec_child_43270];
float lifted_2_op_arg_43328 =
((float *) L_mem_43786.mem)[rec_child_43270];
float lifted_2_op_arg_43329 =
((float *) L_mem_43787.mem)[rec_child_43270];
float res_43330 = r_43229 - lifted_2_op_arg_43326;
float res_43331 = r_43230 - lifted_2_op_arg_43327;
float res_43332 = r_43231 - lifted_2_op_arg_43328;
float res_43333 = r_43226 * r_43226;
float res_43334 = r_43227 * r_43227;
float res_43335 = r_43228 * r_43228;
float x_43336 = res_43333 + res_43334;
float res_43337 = res_43335 + x_43336;
float res_43338 = r_43226 * res_43330;
float res_43339 = r_43227 * res_43331;
float res_43340 = r_43228 * res_43332;
float x_43341 = res_43338 + res_43339;
float res_43342 = res_43340 + x_43341;
float res_43343 = res_43330 * res_43330;
float res_43344 = res_43331 * res_43331;
float res_43345 = res_43332 * res_43332;
float x_43346 = res_43343 + res_43344;
float res_43347 = res_43345 + x_43346;
float y_43348 = lifted_2_op_arg_43329 *
lifted_2_op_arg_43329;
float c_43349 = res_43347 - y_43348;
float x_43350 = res_43342 * res_43342;
float y_43351 = res_43337 * c_43349;
float discriminant_43352 = x_43350 - y_43351;
bool cond_43353 = discriminant_43352 <= 0.0F;
int8_t res_43354;
float res_43355;
if (cond_43353) {
res_43354 = 0;
res_43355 = 0.0F;
} else {
float x_43356 = 0.0F - res_43342;
float res_43357;
res_43357 = futrts_sqrt32(discriminant_43352);
float x_43358 = x_43356 - res_43357;
float lifted_0_f_arg_43359 = x_43358 / res_43337;
bool cond_43360 = lifted_0_f_arg_43359 < acc_43247;
bool res_43361 = 1.0e-3F < lifted_0_f_arg_43359;
bool x_43362 = cond_43360 && res_43361;
float res_43363;
if (x_43362) {
res_43363 = lifted_0_f_arg_43359;
} else {
res_43363 = 0.0F;
}
int8_t res_43364;
float res_43365;
if (x_43362) {
res_43364 = 1;
res_43365 = res_43363;
} else {
float x_43366 = x_43356 + res_43357;
float lifted_0_f_arg_43367 = x_43366 /
res_43337;
bool cond_43368 = lifted_0_f_arg_43367 <
acc_43247;
bool res_43369 = 1.0e-3F < lifted_0_f_arg_43367;
bool x_43370 = cond_43368 && res_43369;
int8_t res_43371 = btoi_bool_i8(x_43370);
float res_43372;
if (x_43370) {
res_43372 = lifted_0_f_arg_43367;
} else {
res_43372 = 0.0F;
}
res_43364 = res_43371;
res_43365 = res_43372;
}
res_43354 = res_43364;
res_43355 = res_43365;
}
bool match_constr_43373 = 0 == res_43354;
int32_t res_43374;
if (match_constr_43373) {
res_43374 = acc_43246;
} else {
res_43374 = rec_child_43270;
}
float res_43375;
if (match_constr_43373) {
res_43375 = acc_43247;
} else {
res_43375 = res_43355;
}
res_43324 = res_43374;
res_43325 = res_43375;
}
loopres_43315 = res_43324;
loopres_43316 = res_43325;
loopres_43317 = res_43321;
loopres_43318 = res_43322;
loopres_43319 = res_43323;
}
bool loop_cond_43376 = loopres_43317 == -1;
bool loop_cond_43377 = !loop_cond_43376;
bool loop_while_tmp_44080 = loop_cond_43377;
int32_t acc_tmp_44081 = loopres_43315;
float acc_tmp_44082 = loopres_43316;
int32_t cur_tmp_44083 = loopres_43317;
int8_t prev_tmp_44084 = loopres_43318;
int32_t prev_tmp_44085;
prev_tmp_44085 = loopres_43319;
loop_while_43245 = loop_while_tmp_44080;
acc_43246 = acc_tmp_44081;
acc_43247 = acc_tmp_44082;
cur_43248 = cur_tmp_44083;
prev_43249 = prev_tmp_44084;
prev_43250 = prev_tmp_44085;
}
lifted_1_zlzb_arg_43239 = loop_while_43245;
lifted_1_zlzb_arg_43240 = acc_43246;
lifted_1_zlzb_arg_43241 = acc_43247;
lifted_1_zlzb_arg_43242 = cur_43248;
lifted_1_zlzb_arg_43243 = prev_43249;
lifted_1_zlzb_arg_43244 = prev_43250;
bool cond_43378 = sle32(0, lifted_1_zlzb_arg_43240);
int8_t res_43379;
float res_43380;
float res_43381;
float res_43382;
float res_43383;
float res_43384;
float res_43385;
float res_43386;
float res_43387;
float res_43388;
if (cond_43378) {
float res_43392 =
((float *) L_mem_43784.mem)[lifted_1_zlzb_arg_43240];
float res_43393 =
((float *) L_mem_43785.mem)[lifted_1_zlzb_arg_43240];
float res_43394 =
((float *) L_mem_43786.mem)[lifted_1_zlzb_arg_43240];
float res_43395 =
((float *) L_mem_43787.mem)[lifted_1_zlzb_arg_43240];
float sphere_hit_arg_43396 = 1.0F + lifted_1_zlzb_arg_43241;
float res_43397 = r_43229 - res_43392;
float res_43398 = r_43230 - res_43393;
float res_43399 = r_43231 - res_43394;
float res_43400 = r_43226 * r_43226;
float res_43401 = r_43227 * r_43227;
float res_43402 = r_43228 * r_43228;
float x_43403 = res_43400 + res_43401;
float res_43404 = res_43402 + x_43403;
float res_43405 = r_43226 * res_43397;
float res_43406 = r_43227 * res_43398;
float res_43407 = r_43228 * res_43399;
float x_43408 = res_43405 + res_43406;
float res_43409 = res_43407 + x_43408;
float res_43410 = res_43397 * res_43397;
float res_43411 = res_43398 * res_43398;
float res_43412 = res_43399 * res_43399;
float x_43413 = res_43410 + res_43411;
float res_43414 = res_43412 + x_43413;
float y_43415 = res_43395 * res_43395;
float c_43416 = res_43414 - y_43415;
float x_43417 = res_43409 * res_43409;
float y_43418 = res_43404 * c_43416;
float discriminant_43419 = x_43417 - y_43418;
bool cond_43420 = discriminant_43419 <= 0.0F;
int8_t res_43421;
float res_43422;
float res_43423;
float res_43424;
float res_43425;
float res_43426;
float res_43427;
float res_43428;
float res_43429;
float res_43430;
if (cond_43420) {
res_43421 = 0;
res_43422 = 0.0F;
res_43423 = 0.0F;
res_43424 = 0.0F;
res_43425 = 0.0F;
res_43426 = 0.0F;
res_43427 = 0.0F;
res_43428 = 0.0F;
res_43429 = 0.0F;
res_43430 = 0.0F;
} else {
float res_43389 =
((float *) L_mem_43781.mem)[lifted_1_zlzb_arg_43240];
float res_43390 =
((float *) L_mem_43782.mem)[lifted_1_zlzb_arg_43240];
float res_43391 =
((float *) L_mem_43783.mem)[lifted_1_zlzb_arg_43240];
float x_43431 = 0.0F - res_43409;
float res_43432;
res_43432 = futrts_sqrt32(discriminant_43419);
float x_43433 = x_43431 - res_43432;
float lifted_0_f_arg_43434 = x_43433 / res_43404;
bool cond_43435 = lifted_0_f_arg_43434 <
sphere_hit_arg_43396;
bool res_43436 = 1.0e-3F < lifted_0_f_arg_43434;
bool x_43437 = cond_43435 && res_43436;
float res_43438;
if (x_43437) {
res_43438 = res_43389;
} else {
res_43438 = 0.0F;
}
float res_43439;
if (x_43437) {
res_43439 = res_43390;
} else {
res_43439 = 0.0F;
}
float res_43440;
if (x_43437) {
res_43440 = res_43391;
} else {
res_43440 = 0.0F;
}
float res_43441;
float res_43442;
float res_43443;
float res_43444;
float res_43445;
float res_43446;
if (x_43437) {
float res_43447 = r_43226 * lifted_0_f_arg_43434;
float res_43448 = r_43227 * lifted_0_f_arg_43434;
float res_43449 = r_43228 * lifted_0_f_arg_43434;
float res_43450 = r_43229 + res_43447;
float res_43451 = r_43230 + res_43448;
float res_43452 = r_43231 + res_43449;
float res_43453 = res_43450 - res_43392;
float res_43454 = res_43451 - res_43393;
float res_43455 = res_43452 - res_43394;
float scale_arg_43456 = 1.0F / res_43395;
float res_43457 = res_43453 * scale_arg_43456;
float res_43458 = res_43454 * scale_arg_43456;
float res_43459 = res_43455 * scale_arg_43456;
res_43441 = res_43457;
res_43442 = res_43458;
res_43443 = res_43459;
res_43444 = res_43450;
res_43445 = res_43451;
res_43446 = res_43452;
} else {
res_43441 = 0.0F;
res_43442 = 0.0F;
res_43443 = 0.0F;
res_43444 = 0.0F;
res_43445 = 0.0F;
res_43446 = 0.0F;
}
int8_t res_43460;
float res_43461;
float res_43462;
float res_43463;
float res_43464;
float res_43465;
float res_43466;
float res_43467;
float res_43468;
float res_43469;
if (x_43437) {
res_43460 = 1;
res_43461 = res_43438;
res_43462 = res_43439;
res_43463 = res_43440;
res_43464 = res_43441;
res_43465 = res_43442;
res_43466 = res_43443;
res_43467 = res_43444;
res_43468 = res_43445;
res_43469 = res_43446;
} else {
float x_43470 = x_43431 + res_43432;
float lifted_0_f_arg_43471 = x_43470 / res_43404;
bool cond_43472 = lifted_0_f_arg_43471 <
sphere_hit_arg_43396;
bool res_43473 = 1.0e-3F < lifted_0_f_arg_43471;
bool x_43474 = cond_43472 && res_43473;
int8_t res_43475 = btoi_bool_i8(x_43474);
float res_43476;
if (x_43474) {
res_43476 = res_43389;
} else {
res_43476 = 0.0F;
}
float res_43477;
if (x_43474) {
res_43477 = res_43390;
} else {
res_43477 = 0.0F;
}
float res_43478;
if (x_43474) {
res_43478 = res_43391;
} else {
res_43478 = 0.0F;
}
float res_43479;
float res_43480;
float res_43481;
float res_43482;
float res_43483;
float res_43484;
if (x_43474) {
float res_43485 = r_43226 * lifted_0_f_arg_43471;
float res_43486 = r_43227 * lifted_0_f_arg_43471;
float res_43487 = r_43228 * lifted_0_f_arg_43471;
float res_43488 = r_43229 + res_43485;
float res_43489 = r_43230 + res_43486;
float res_43490 = r_43231 + res_43487;
float res_43491 = res_43488 - res_43392;
float res_43492 = res_43489 - res_43393;
float res_43493 = res_43490 - res_43394;
float scale_arg_43494 = 1.0F / res_43395;
float res_43495 = res_43491 * scale_arg_43494;
float res_43496 = res_43492 * scale_arg_43494;
float res_43497 = res_43493 * scale_arg_43494;
res_43479 = res_43495;
res_43480 = res_43496;
res_43481 = res_43497;
res_43482 = res_43488;
res_43483 = res_43489;
res_43484 = res_43490;
} else {
res_43479 = 0.0F;
res_43480 = 0.0F;
res_43481 = 0.0F;
res_43482 = 0.0F;
res_43483 = 0.0F;
res_43484 = 0.0F;
}
res_43460 = res_43475;
res_43461 = res_43476;
res_43462 = res_43477;
res_43463 = res_43478;
res_43464 = res_43479;
res_43465 = res_43480;
res_43466 = res_43481;
res_43467 = res_43482;
res_43468 = res_43483;
res_43469 = res_43484;
}
res_43421 = res_43460;
res_43422 = res_43461;
res_43423 = res_43462;
res_43424 = res_43463;
res_43425 = res_43464;
res_43426 = res_43465;
res_43427 = res_43466;
res_43428 = res_43467;
res_43429 = res_43468;
res_43430 = res_43469;
}
res_43379 = res_43421;
res_43380 = res_43422;
res_43381 = res_43423;
res_43382 = res_43424;
res_43383 = res_43425;
res_43384 = res_43426;
res_43385 = res_43427;
res_43386 = res_43428;
res_43387 = res_43429;
res_43388 = res_43430;
} else {
res_43379 = 0;
res_43380 = 0.0F;
res_43381 = 0.0F;
res_43382 = 0.0F;
res_43383 = 0.0F;
res_43384 = 0.0F;
res_43385 = 0.0F;
res_43386 = 0.0F;
res_43387 = 0.0F;
res_43388 = 0.0F;
}
bool match_constr_43498 = 1 == res_43379;
float loopres_43499;
float loopres_43500;
float loopres_43501;
float loopres_43502;
float loopres_43503;
float loopres_43504;
int32_t loopres_43505;
float loopres_43506;
float loopres_43507;
float loopres_43508;
float loopres_43509;
float loopres_43510;
float loopres_43511;
if (match_constr_43498) {
float res_43512 = r_43226 * r_43226;
float res_43513 = r_43227 * r_43227;
float res_43514 = r_43228 * r_43228;
float x_43515 = res_43512 + res_43513;
float res_43516 = res_43514 + x_43515;
float res_43517;
res_43517 = futrts_sqrt32(res_43516);
float scale_arg_43518 = 1.0F / res_43517;
float res_43519 = r_43226 * scale_arg_43518;
float res_43520 = r_43227 * scale_arg_43518;
float res_43521 = r_43228 * scale_arg_43518;
float res_43522 = res_43383 * res_43519;
float res_43523 = res_43384 * res_43520;
float res_43524 = res_43385 * res_43521;
float x_43525 = res_43522 + res_43523;
float res_43526 = res_43524 + x_43525;
float scale_arg_43527 = 2.0F * res_43526;
float res_43528 = res_43383 * scale_arg_43527;
float res_43529 = res_43384 * scale_arg_43527;
float res_43530 = res_43385 * scale_arg_43527;
float res_43531 = res_43519 - res_43528;
float res_43532 = res_43520 - res_43529;
float res_43533 = res_43521 - res_43530;
float res_43534 = res_43383 * res_43531;
float res_43535 = res_43384 * res_43532;
float res_43536 = res_43385 * res_43533;
float x_43537 = res_43534 + res_43535;
float res_43538 = res_43536 + x_43537;
bool cond_43539 = 0.0F < res_43538;
float res_43540;
if (cond_43539) {
res_43540 = res_43531;
} else {
res_43540 = 0.0F;
}
float res_43541;
if (cond_43539) {
res_43541 = res_43532;
} else {
res_43541 = 0.0F;
}
float res_43542;
if (cond_43539) {
res_43542 = res_43533;
} else {
res_43542 = 0.0F;
}
float res_43543;
if (cond_43539) {
res_43543 = res_43386;
} else {
res_43543 = 0.0F;
}
float res_43544;
if (cond_43539) {
res_43544 = res_43387;
} else {
res_43544 = 0.0F;
}
float res_43545;
if (cond_43539) {
res_43545 = res_43388;
} else {
res_43545 = 0.0F;
}
float res_43546;
if (cond_43539) {
res_43546 = res_43380;
} else {
res_43546 = 0.0F;
}
float res_43547;
if (cond_43539) {
res_43547 = res_43381;
} else {
res_43547 = 0.0F;
}
float res_43548;
if (cond_43539) {
res_43548 = res_43382;
} else {
res_43548 = 0.0F;
}
float res_43549;
if (cond_43539) {
res_43549 = res_43540;
} else {
res_43549 = r_43226;
}
float res_43550;
if (cond_43539) {
res_43550 = res_43541;
} else {
res_43550 = r_43227;
}
float res_43551;
if (cond_43539) {
res_43551 = res_43542;
} else {
res_43551 = r_43228;
}
float res_43552;
if (cond_43539) {
res_43552 = res_43543;
} else {
res_43552 = r_43229;
}
float res_43553;
if (cond_43539) {
res_43553 = res_43544;
} else {
res_43553 = r_43230;
}
float res_43554;
if (cond_43539) {
res_43554 = res_43545;
} else {
res_43554 = r_43231;
}
int32_t res_43555;
float res_43556;
float res_43557;
float res_43558;
float res_43559;
float res_43560;
float res_43561;
if (cond_43539) {
int32_t res_43562 = add32(1, depth_43232);
float res_43563 = light_43233 * res_43546;
float res_43564 = light_43234 * res_43547;
float res_43565 = light_43235 * res_43548;
float res_43566 = light_43233 * colour_43236;
float res_43567 = light_43234 * colour_43237;
float res_43568 = light_43235 * colour_43238;
res_43555 = res_43562;
res_43556 = res_43563;
res_43557 = res_43564;
res_43558 = res_43565;
res_43559 = res_43566;
res_43560 = res_43567;
res_43561 = res_43568;
} else {
float res_43569 = light_43233 * colour_43236;
float res_43570 = light_43234 * colour_43237;
float res_43571 = light_43235 * colour_43238;
res_43555 = 50;
res_43556 = light_43233;
res_43557 = light_43234;
res_43558 = light_43235;
res_43559 = res_43569;
res_43560 = res_43570;
res_43561 = res_43571;
}
loopres_43499 = res_43549;
loopres_43500 = res_43550;
loopres_43501 = res_43551;
loopres_43502 = res_43552;
loopres_43503 = res_43553;
loopres_43504 = res_43554;
loopres_43505 = res_43555;
loopres_43506 = res_43556;
loopres_43507 = res_43557;
loopres_43508 = res_43558;
loopres_43509 = res_43559;
loopres_43510 = res_43560;
loopres_43511 = res_43561;
} else {
float res_43572 = r_43226 * r_43226;
float res_43573 = r_43227 * r_43227;
float res_43574 = r_43228 * r_43228;
float x_43575 = res_43572 + res_43573;
float res_43576 = res_43574 + x_43575;
float res_43577;
res_43577 = futrts_sqrt32(res_43576);
float scale_arg_43578 = 1.0F / res_43577;
float res_43579 = r_43227 * scale_arg_43578;
float y_43580 = 1.0F + res_43579;
float t_43581 = 0.5F * y_43580;
float res_43582 = 0.5F * t_43581;
float res_43583 = 0.7F * t_43581;
float scale_arg_43584 = 1.0F - t_43581;
float res_43585 = res_43582 + scale_arg_43584;
float res_43586 = res_43583 + scale_arg_43584;
float res_43587 = t_43581 + scale_arg_43584;
float res_43588 = light_43233 * res_43585;
float res_43589 = light_43234 * res_43586;
float res_43590 = light_43235 * res_43587;
loopres_43499 = r_43226;
loopres_43500 = r_43227;
loopres_43501 = r_43228;
loopres_43502 = r_43229;
loopres_43503 = r_43230;
loopres_43504 = r_43231;
loopres_43505 = 50;
loopres_43506 = light_43233;
loopres_43507 = light_43234;
loopres_43508 = light_43235;
loopres_43509 = res_43588;
loopres_43510 = res_43589;
loopres_43511 = res_43590;
}
bool loop_cond_43591 = slt32(loopres_43505, 50);
bool loop_while_tmp_44066 = loop_cond_43591;
float r_tmp_44067 = loopres_43499;
float r_tmp_44068 = loopres_43500;
float r_tmp_44069 = loopres_43501;
float r_tmp_44070 = loopres_43502;
float r_tmp_44071 = loopres_43503;
float r_tmp_44072 = loopres_43504;
int32_t depth_tmp_44073 = loopres_43505;
float light_tmp_44074 = loopres_43506;
float light_tmp_44075 = loopres_43507;
float light_tmp_44076 = loopres_43508;
float colour_tmp_44077 = loopres_43509;
float colour_tmp_44078 = loopres_43510;
float colour_tmp_44079;
colour_tmp_44079 = loopres_43511;
loop_while_43225 = loop_while_tmp_44066;
r_43226 = r_tmp_44067;
r_43227 = r_tmp_44068;
r_43228 = r_tmp_44069;
r_43229 = r_tmp_44070;
r_43230 = r_tmp_44071;
r_43231 = r_tmp_44072;
depth_43232 = depth_tmp_44073;
light_43233 = light_tmp_44074;
light_43234 = light_tmp_44075;
light_43235 = light_tmp_44076;
colour_43236 = colour_tmp_44077;
colour_43237 = colour_tmp_44078;
colour_43238 = colour_tmp_44079;
}
lifted_1_zlzb_arg_43211 = loop_while_43225;
lifted_1_zlzb_arg_43212 = r_43226;
lifted_1_zlzb_arg_43213 = r_43227;
lifted_1_zlzb_arg_43214 = r_43228;
lifted_1_zlzb_arg_43215 = r_43229;
lifted_1_zlzb_arg_43216 = r_43230;
lifted_1_zlzb_arg_43217 = r_43231;
lifted_1_zlzb_arg_43218 = depth_43232;
lifted_1_zlzb_arg_43219 = light_43233;
lifted_1_zlzb_arg_43220 = light_43234;
lifted_1_zlzb_arg_43221 = light_43235;
lifted_1_zlzb_arg_43222 = colour_43236;
lifted_1_zlzb_arg_43223 = colour_43237;
lifted_1_zlzb_arg_43224 = colour_43238;
float f32_arg_43592 = 255.99F * lifted_1_zlzb_arg_43222;
int32_t res_43593 = fptosi_f32_i32(f32_arg_43592);
float f32_arg_43594 = 255.99F * lifted_1_zlzb_arg_43223;
int32_t res_43595 = fptosi_f32_i32(f32_arg_43594);
float f32_arg_43596 = 255.99F * lifted_1_zlzb_arg_43224;
int32_t res_43597 = fptosi_f32_i32(f32_arg_43596);
int32_t x_43598 = res_43593 << 16;
int32_t y_43599 = res_43595 << 8;
int32_t x_43600 = x_43598 | y_43599;
int32_t res_43601 = res_43597 | x_43600;
((int32_t *) mem_43792.mem)[add32(mul32(gtid_43178, w_41994),
gtid_43179)] = res_43601;
}
;
if (ctx->profiling) {
futhark_mc_parloop_44110_end = get_wall_time();
uint64_t elapsed = futhark_mc_parloop_44110_end -
futhark_mc_parloop_44110_start;
CHECK_ERR(pthread_mutex_lock(&ctx->profile_mutex),
"pthread_mutex_lock");
ctx->futhark_mc_parloop_44110_runs++;
ctx->futhark_mc_parloop_44110_total_runtime += elapsed;
CHECK_ERR(pthread_mutex_unlock(&ctx->profile_mutex),
"pthread_mutex_unlock");
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment