@M = dso_local global i32 0 @L = dso_local global i32 0 @N = dso_local global i32 0 declare i32 @getint() declare i32 @getch() declare float @getfloat() declare void @putint(i32 %p0) declare void @putch(i32 %p0) declare void @putfloat(float %p0) declare i32 @getarray(i32* %p0) declare i32 @getfarray(float* %p0) declare void @putarray(i32 %p0, i32* %p1) declare void @putfarray(i32 %p0, float* %p1) declare void @_sysy_starttime(i32 %p0) declare void @_sysy_stoptime(i32 %p0) declare i32 @thrd_create(i32 %p0) declare void @thrd_join() declare void @putf() declare void @llvm.memset.p0.i32(i32* %p0, i8 %p1, i32 %p2, i1 %p3) define i32 @main() { entry: store i32 3, ptr @N store i32 3, ptr @M store i32 3, ptr @L %alloca_269 = alloca [3 x float] %alloca_270 = alloca [3 x float] %alloca_271 = alloca [3 x float] %alloca_272 = alloca [3 x float] %alloca_273 = alloca [3 x float] %alloca_274 = alloca [3 x float] %alloca_275 = alloca [6 x float] %alloca_276 = alloca [3 x float] %alloca_277 = alloca [3 x float] %getelementptr_663 = getelementptr [3 x float], ptr %alloca_269, i32 0 %getelementptr_664 = getelementptr [3 x float], ptr %alloca_271, i32 0 %getelementptr_665 = getelementptr [3 x float], ptr %alloca_274, i32 0 %getelementptr_666 = getelementptr [3 x float], ptr %alloca_273, i32 0 %getelementptr_667 = getelementptr [3 x float], ptr %alloca_272, i32 0 %getelementptr_668 = getelementptr [3 x float], ptr %alloca_270, i32 0 %call_669 = call i32 @thrd_create(i32 4) %Mul_671 = mul i32 %call_669, 3 %SDiv_672 = sdiv i32 %Mul_671, 5 %Add_674 = add i32 %Mul_671, 3 %SDiv_675 = sdiv i32 %Add_674, 5 br label %cond0 cond0: %phi_404 = phi i32 [%SDiv_672, %entry], [%Add_315, %body1] %icmp_677 = icmp slt i32 %phi_404, %SDiv_675 br i1 %icmp_677, label %body1, label %final2_split2 body1: %getelementptr_285 = getelementptr [3 x float], ptr %getelementptr_663, i32 0, i32 %phi_404 %itofp_287 = sitofp i32 %phi_404 to float store float %itofp_287, ptr %getelementptr_285 %getelementptr_290 = getelementptr [3 x float], ptr %getelementptr_668, i32 0, i32 %phi_404 store float %itofp_287, ptr %getelementptr_290 %getelementptr_295 = getelementptr [3 x float], ptr %getelementptr_664, i32 0, i32 %phi_404 store float %itofp_287, ptr %getelementptr_295 %getelementptr_300 = getelementptr [3 x float], ptr %getelementptr_667, i32 0, i32 %phi_404 store float %itofp_287, ptr %getelementptr_300 %getelementptr_305 = getelementptr [3 x float], ptr %getelementptr_666, i32 0, i32 %phi_404 store float %itofp_287, ptr %getelementptr_305 %getelementptr_310 = getelementptr [3 x float], ptr %getelementptr_665, i32 0, i32 %phi_404 store float %itofp_287, ptr %getelementptr_310 %Add_315 = add i32 %phi_404, 1 br label %cond0 final2_split2: call void @thrd_join() %getelementptr_600 = getelementptr [3 x float], ptr %alloca_269, i32 0, i32 0 %getelementptr_601 = getelementptr [3 x float], ptr %alloca_272, i32 0, i32 0 %load_425 = load float, ptr %getelementptr_600 %load_426 = load float, ptr %getelementptr_601 %FMul_427 = fmul float %load_425, %load_426 %getelementptr_602 = getelementptr [3 x float], ptr %alloca_269, i32 0, i32 1 %getelementptr_603 = getelementptr [3 x float], ptr %alloca_273, i32 0, i32 0 %load_430 = load float, ptr %getelementptr_602 %load_431 = load float, ptr %getelementptr_603 %FMul_432 = fmul float %load_430, %load_431 %FAdd_433 = fadd float %FMul_427, %FMul_432 %getelementptr_604 = getelementptr [3 x float], ptr %alloca_269, i32 0, i32 2 %getelementptr_605 = getelementptr [3 x float], ptr %alloca_274, i32 0, i32 0 %load_436 = load float, ptr %getelementptr_604 %load_437 = load float, ptr %getelementptr_605 %FMul_438 = fmul float %load_436, %load_437 %FAdd_439 = fadd float %FAdd_433, %FMul_438 %getelementptr_606 = getelementptr [6 x float], ptr %alloca_275, i32 0, i32 0 store float %FAdd_439, ptr %getelementptr_606 %getelementptr_608 = getelementptr [3 x float], ptr %alloca_272, i32 0, i32 1 %load_445 = load float, ptr %getelementptr_608 %FMul_446 = fmul float %load_425, %load_445 %getelementptr_610 = getelementptr [3 x float], ptr %alloca_273, i32 0, i32 1 %load_450 = load float, ptr %getelementptr_610 %FMul_451 = fmul float %load_430, %load_450 %FAdd_452 = fadd float %FMul_446, %FMul_451 %getelementptr_612 = getelementptr [3 x float], ptr %alloca_274, i32 0, i32 1 %load_456 = load float, ptr %getelementptr_612 %FMul_457 = fmul float %load_436, %load_456 %FAdd_458 = fadd float %FAdd_452, %FMul_457 %getelementptr_613 = getelementptr [6 x float], ptr %alloca_275, i32 0, i32 1 store float %FAdd_458, ptr %getelementptr_613 %getelementptr_615 = getelementptr [3 x float], ptr %alloca_272, i32 0, i32 2 %load_464 = load float, ptr %getelementptr_615 %FMul_465 = fmul float %load_425, %load_464 %getelementptr_617 = getelementptr [3 x float], ptr %alloca_273, i32 0, i32 2 %load_469 = load float, ptr %getelementptr_617 %FMul_470 = fmul float %load_430, %load_469 %FAdd_471 = fadd float %FMul_465, %FMul_470 %getelementptr_619 = getelementptr [3 x float], ptr %alloca_274, i32 0, i32 2 %load_475 = load float, ptr %getelementptr_619 %FMul_476 = fmul float %load_436, %load_475 %FAdd_477 = fadd float %FAdd_471, %FMul_476 %getelementptr_620 = getelementptr [6 x float], ptr %alloca_275, i32 0, i32 2 store float %FAdd_477, ptr %getelementptr_620 %getelementptr_621 = getelementptr [3 x float], ptr %alloca_270, i32 0, i32 0 %load_482 = load float, ptr %getelementptr_621 %FMul_484 = fmul float %load_482, %load_426 %getelementptr_623 = getelementptr [3 x float], ptr %alloca_270, i32 0, i32 1 %load_487 = load float, ptr %getelementptr_623 %FMul_489 = fmul float %load_487, %load_431 %FAdd_490 = fadd float %FMul_484, %FMul_489 %getelementptr_625 = getelementptr [3 x float], ptr %alloca_270, i32 0, i32 2 %load_493 = load float, ptr %getelementptr_625 %FMul_495 = fmul float %load_493, %load_437 %FAdd_496 = fadd float %FAdd_490, %FMul_495 %getelementptr_627 = getelementptr [3 x float], ptr %alloca_276, i32 0, i32 0 store float %FAdd_496, ptr %getelementptr_627 %FMul_503 = fmul float %load_482, %load_445 %FMul_508 = fmul float %load_487, %load_450 %FAdd_509 = fadd float %FMul_503, %FMul_508 %FMul_514 = fmul float %load_493, %load_456 %FAdd_515 = fadd float %FAdd_509, %FMul_514 %getelementptr_634 = getelementptr [3 x float], ptr %alloca_276, i32 0, i32 1 store float %FAdd_515, ptr %getelementptr_634 %FMul_522 = fmul float %load_482, %load_464 %FMul_527 = fmul float %load_487, %load_469 %FAdd_528 = fadd float %FMul_522, %FMul_527 %FMul_533 = fmul float %load_493, %load_475 %FAdd_534 = fadd float %FAdd_528, %FMul_533 %getelementptr_641 = getelementptr [3 x float], ptr %alloca_276, i32 0, i32 2 store float %FAdd_534, ptr %getelementptr_641 %getelementptr_642 = getelementptr [3 x float], ptr %alloca_271, i32 0, i32 0 %load_539 = load float, ptr %getelementptr_642 %FMul_541 = fmul float %load_539, %load_426 %getelementptr_644 = getelementptr [3 x float], ptr %alloca_271, i32 0, i32 1 %load_544 = load float, ptr %getelementptr_644 %FMul_546 = fmul float %load_544, %load_431 %FAdd_547 = fadd float %FMul_541, %FMul_546 %getelementptr_646 = getelementptr [3 x float], ptr %alloca_271, i32 0, i32 2 %load_550 = load float, ptr %getelementptr_646 %FMul_552 = fmul float %load_550, %load_437 %FAdd_553 = fadd float %FAdd_547, %FMul_552 %getelementptr_648 = getelementptr [3 x float], ptr %alloca_277, i32 0, i32 0 store float %FAdd_553, ptr %getelementptr_648 %FMul_560 = fmul float %load_539, %load_445 %FMul_565 = fmul float %load_544, %load_450 %FAdd_566 = fadd float %FMul_560, %FMul_565 %FMul_571 = fmul float %load_550, %load_456 %FAdd_572 = fadd float %FAdd_566, %FMul_571 %getelementptr_655 = getelementptr [3 x float], ptr %alloca_277, i32 0, i32 1 store float %FAdd_572, ptr %getelementptr_655 %FMul_579 = fmul float %load_539, %load_464 %FMul_584 = fmul float %load_544, %load_469 %FAdd_585 = fadd float %FMul_579, %FMul_584 %FMul_590 = fmul float %load_550, %load_475 %FAdd_591 = fadd float %FAdd_585, %FMul_590 %getelementptr_662 = getelementptr [3 x float], ptr %alloca_277, i32 0, i32 2 store float %FAdd_591, ptr %getelementptr_662 %getelementptr_679 = getelementptr [6 x float], ptr %alloca_275, i32 0 %call_680 = call i32 @thrd_create(i32 4) %Mul_682 = mul i32 %call_680, 3 %SDiv_683 = sdiv i32 %Mul_682, 5 %Add_685 = add i32 %Mul_682, 3 %SDiv_686 = sdiv i32 %Add_685, 5 br label %cond3 cond3: %phi_405 = phi i32 [%SDiv_683, %final2_split2], [%Add_346, %body4] %icmp_688 = icmp slt i32 %phi_405, %SDiv_686 br i1 %icmp_688, label %body4, label %final5 body4: %getelementptr_339 = getelementptr [6 x float], ptr %getelementptr_679, i32 0, i32 %phi_405 %load_340 = load float, ptr %getelementptr_339 %fptoi_341 = fptosi float %load_340 to i32 call void @putint(i32 %fptoi_341) %Add_346 = add i32 %phi_405, 1 br label %cond3 final5: call void @thrd_join() call void @putch(i32 10) %getelementptr_690 = getelementptr [3 x float], ptr %alloca_276, i32 0 %call_691 = call i32 @thrd_create(i32 4) %Mul_693 = mul i32 %call_691, 3 %SDiv_694 = sdiv i32 %Mul_693, 5 %Add_696 = add i32 %Mul_693, 3 %SDiv_697 = sdiv i32 %Add_696, 5 br label %cond6 cond6: %phi_406 = phi i32 [%SDiv_694, %final5], [%Add_369, %body7] %icmp_699 = icmp slt i32 %phi_406, %SDiv_697 br i1 %icmp_699, label %body7, label %final8 body7: %getelementptr_362 = getelementptr [3 x float], ptr %getelementptr_690, i32 0, i32 %phi_406 %load_363 = load float, ptr %getelementptr_362 %fptoi_364 = fptosi float %load_363 to i32 call void @putint(i32 %fptoi_364) %Add_369 = add i32 %phi_406, 1 br label %cond6 final8: call void @thrd_join() call void @putch(i32 10) %getelementptr_701 = getelementptr [3 x float], ptr %alloca_277, i32 0 %call_702 = call i32 @thrd_create(i32 4) %Mul_704 = mul i32 %call_702, 3 %SDiv_705 = sdiv i32 %Mul_704, 5 %Add_707 = add i32 %Mul_704, 3 %SDiv_708 = sdiv i32 %Add_707, 5 br label %cond9 cond9: %phi_407 = phi i32 [%SDiv_705, %final8], [%Add_392, %body10] %icmp_710 = icmp slt i32 %phi_407, %SDiv_708 br i1 %icmp_710, label %body10, label %exit body10: %getelementptr_385 = getelementptr [3 x float], ptr %getelementptr_701, i32 0, i32 %phi_407 %load_386 = load float, ptr %getelementptr_385 %fptoi_387 = fptosi float %load_386 to i32 call void @putint(i32 %fptoi_387) %Add_392 = add i32 %phi_407, 1 br label %cond9 exit: call void @thrd_join() call void @putch(i32 10) ret i32 0 }