|
| 1 | +0$Initrand store i64 74755, i64* @seed, align 8 |
| 2 | +1$Initrand ret void |
| 3 | +2$Rand %1 = load i64, i64* @seed, align 8 |
| 4 | +3$Rand %2 = mul nsw i64 %1, 1309 |
| 5 | +4$Rand %3 = add nsw i64 %2, 13849 |
| 6 | +5$Rand %4 = and i64 %3, 65535 |
| 7 | +6$Rand store i64 %4, i64* @seed, align 8 |
| 8 | +7$Rand %5 = load i64, i64* @seed, align 8 |
| 9 | +8$Rand %6 = trunc i64 %5 to i32 |
| 10 | +9$Rand ret i32 %6 |
| 11 | +10$rInitmatrix %2 = alloca [2 x float]*, align 8 |
| 12 | +11$rInitmatrix %3 = alloca i32, align 4 |
| 13 | +12$rInitmatrix %4 = alloca i32, align 4 |
| 14 | +13$rInitmatrix %5 = alloca i32, align 4 |
| 15 | +14$rInitmatrix store [2 x float]* %0, [2 x float]** %2, align 8 |
| 16 | +15$rInitmatrix store i32 1, i32* %4, align 4 |
| 17 | +16$rInitmatrix2 br label %6 |
| 18 | +17$rInitmatrix %7 = load i32, i32* %4, align 4 |
| 19 | +18$rInitmatrix %8 = icmp sle i32 %7, 1 |
| 20 | +19$rInitmatrix3 br i1 %8, label %9, label %37 |
| 21 | +20$rInitmatrix store i32 1, i32* %5, align 4 |
| 22 | +21$rInitmatrix4 br label %10 |
| 23 | +22$rInitmatrix %11 = load i32, i32* %5, align 4 |
| 24 | +23$rInitmatrix %12 = icmp sle i32 %11, 1 |
| 25 | +24$rInitmatrix6 br i1 %12, label %13, label %33 |
| 26 | +25$rInitmatrix %14 = call i32 @Rand() |
| 27 | +26$rInitmatrix store i32 %14, i32* %3, align 4 |
| 28 | +27$rInitmatrix %15 = load i32, i32* %3, align 4 |
| 29 | +28$rInitmatrix %16 = load i32, i32* %3, align 4 |
| 30 | +29$rInitmatrix %17 = sdiv i32 %16, 120 |
| 31 | +30$rInitmatrix %18 = mul nsw i32 %17, 120 |
| 32 | +31$rInitmatrix %19 = sub nsw i32 %15, %18 |
| 33 | +32$rInitmatrix %20 = sub nsw i32 %19, 60 |
| 34 | +33$rInitmatrix %21 = sitofp i32 %20 to float |
| 35 | +34$rInitmatrix %22 = fdiv float %21, 3.000000e+00 |
| 36 | +35$rInitmatrix %23 = load [2 x float]*, [2 x float]** %2, align 8 |
| 37 | +36$rInitmatrix %24 = load i32, i32* %4, align 4 |
| 38 | +37$rInitmatrix %25 = sext i32 %24 to i64 |
| 39 | +38$rInitmatrix %26 = getelementptr inbounds [2 x float], [2 x float]* %23, i64 %25 |
| 40 | +39$rInitmatrix %27 = load i32, i32* %5, align 4 |
| 41 | +40$rInitmatrix %28 = sext i32 %27 to i64 |
| 42 | +41$rInitmatrix %29 = getelementptr inbounds [2 x float], [2 x float]* %26, i64 0, i64 %28 |
| 43 | +42$rInitmatrix store float %22, float* %29, align 4 |
| 44 | +43$rInitmatrix7 br label %30 |
| 45 | +44$rInitmatrix %31 = load i32, i32* %5, align 4 |
| 46 | +45$rInitmatrix %32 = add nsw i32 %31, 1 |
| 47 | +46$rInitmatrix store i32 %32, i32* %5, align 4 |
| 48 | +47$rInitmatrix9 br label %10 |
| 49 | +48$rInitmatrix8 br label %34 |
| 50 | +49$rInitmatrix %35 = load i32, i32* %4, align 4 |
| 51 | +50$rInitmatrix %36 = add nsw i32 %35, 1 |
| 52 | +51$rInitmatrix store i32 %36, i32* %4, align 4 |
| 53 | +52$rInitmatrix10 br label %6 |
| 54 | +53$rInitmatrix ret void |
| 55 | +54$rInnerproduct %6 = alloca float*, align 8 |
| 56 | +55$rInnerproduct %7 = alloca [2 x float]*, align 8 |
| 57 | +56$rInnerproduct %8 = alloca [2 x float]*, align 8 |
| 58 | +57$rInnerproduct %9 = alloca i32, align 4 |
| 59 | +58$rInnerproduct %10 = alloca i32, align 4 |
| 60 | +59$rInnerproduct %11 = alloca i32, align 4 |
| 61 | +60$rInnerproduct store float* %0, float** %6, align 8 |
| 62 | +61$rInnerproduct store [2 x float]* %1, [2 x float]** %7, align 8 |
| 63 | +62$rInnerproduct store [2 x float]* %2, [2 x float]** %8, align 8 |
| 64 | +63$rInnerproduct store i32 %3, i32* %9, align 4 |
| 65 | +64$rInnerproduct store i32 %4, i32* %10, align 4 |
| 66 | +65$rInnerproduct %12 = load float*, float** %6, align 8 |
| 67 | +66$rInnerproduct store float 0.000000e+00, float* %12, align 4 |
| 68 | +67$rInnerproduct store i32 1, i32* %11, align 4 |
| 69 | +68$rInnerproduct11 br label %13 |
| 70 | +69$rInnerproduct %14 = load i32, i32* %11, align 4 |
| 71 | +70$rInnerproduct %15 = icmp sle i32 %14, 1 |
| 72 | +71$rInnerproduct12 br i1 %15, label %16, label %41 |
| 73 | +72$rInnerproduct %17 = load float*, float** %6, align 8 |
| 74 | +73$rInnerproduct %18 = load float, float* %17, align 4 |
| 75 | +74$rInnerproduct %19 = load [2 x float]*, [2 x float]** %7, align 8 |
| 76 | +75$rInnerproduct %20 = load i32, i32* %9, align 4 |
| 77 | +76$rInnerproduct %21 = sext i32 %20 to i64 |
| 78 | +77$rInnerproduct %22 = getelementptr inbounds [2 x float], [2 x float]* %19, i64 %21 |
| 79 | +78$rInnerproduct %23 = load i32, i32* %11, align 4 |
| 80 | +79$rInnerproduct %24 = sext i32 %23 to i64 |
| 81 | +80$rInnerproduct %25 = getelementptr inbounds [2 x float], [2 x float]* %22, i64 0, i64 %24 |
| 82 | +81$rInnerproduct %26 = load float, float* %25, align 4 |
| 83 | +82$rInnerproduct %27 = load [2 x float]*, [2 x float]** %8, align 8 |
| 84 | +83$rInnerproduct %28 = load i32, i32* %11, align 4 |
| 85 | +84$rInnerproduct %29 = sext i32 %28 to i64 |
| 86 | +85$rInnerproduct %30 = getelementptr inbounds [2 x float], [2 x float]* %27, i64 %29 |
| 87 | +86$rInnerproduct %31 = load i32, i32* %10, align 4 |
| 88 | +87$rInnerproduct %32 = sext i32 %31 to i64 |
| 89 | +88$rInnerproduct %33 = getelementptr inbounds [2 x float], [2 x float]* %30, i64 0, i64 %32 |
| 90 | +89$rInnerproduct %34 = load float, float* %33, align 4 |
| 91 | +90$rInnerproduct %35 = fmul float %26, %34 |
| 92 | +91$rInnerproduct %36 = fadd float %18, %35 |
| 93 | +92$rInnerproduct %37 = load float*, float** %6, align 8 |
| 94 | +93$rInnerproduct store float %36, float* %37, align 4 |
| 95 | +94$rInnerproduct13 br label %38 |
| 96 | +95$rInnerproduct %39 = load i32, i32* %11, align 4 |
| 97 | +96$rInnerproduct %40 = add nsw i32 %39, 1 |
| 98 | +97$rInnerproduct store i32 %40, i32* %11, align 4 |
| 99 | +98$rInnerproduct15 br label %13 |
| 100 | +99$rInnerproduct ret void |
| 101 | +100$Mm %2 = alloca i32, align 4 |
| 102 | +101$Mm %3 = alloca i32, align 4 |
| 103 | +102$Mm %4 = alloca i32, align 4 |
| 104 | +103$Mm store i32 %0, i32* %2, align 4 |
| 105 | +104$Mm call void @Initrand() |
| 106 | +105$Mm call void @rInitmatrix([2 x float]* getelementptr inbounds ([2 x [2 x float]], [2 x [2 x float]]* @rma, i32 0, i32 0)) |
| 107 | +106$Mm call void @rInitmatrix([2 x float]* getelementptr inbounds ([2 x [2 x float]], [2 x [2 x float]]* @rmb, i32 0, i32 0)) |
| 108 | +107$Mm store i32 1, i32* %3, align 4 |
| 109 | +108$Mm16 br label %5 |
| 110 | +109$Mm %6 = load i32, i32* %3, align 4 |
| 111 | +110$Mm %7 = icmp sle i32 %6, 1 |
| 112 | +111$Mm17 br i1 %7, label %8, label %28 |
| 113 | +112$Mm store i32 1, i32* %4, align 4 |
| 114 | +113$Mm18 br label %9 |
| 115 | +114$Mm %10 = load i32, i32* %4, align 4 |
| 116 | +115$Mm %11 = icmp sle i32 %10, 1 |
| 117 | +116$Mm20 br i1 %11, label %12, label %24 |
| 118 | +117$Mm %13 = load i32, i32* %3, align 4 |
| 119 | +118$Mm %14 = sext i32 %13 to i64 |
| 120 | +119$Mm %15 = getelementptr inbounds [2 x [2 x float]], [2 x [2 x float]]* @rmr, i64 0, i64 %14 |
| 121 | +120$Mm %16 = load i32, i32* %4, align 4 |
| 122 | +121$Mm %17 = sext i32 %16 to i64 |
| 123 | +122$Mm %18 = getelementptr inbounds [2 x float], [2 x float]* %15, i64 0, i64 %17 |
| 124 | +123$Mm %19 = load i32, i32* %3, align 4 |
| 125 | +124$Mm %20 = load i32, i32* %4, align 4 |
| 126 | +125$Mm call void @rInnerproduct(float* %18, [2 x float]* getelementptr inbounds ([2 x [2 x float]], [2 x [2 x float]]* @rma, i32 0, i32 0), [2 x float]* getelementptr inbounds ([2 x [2 x float]], [2 x [2 x float]]* @rmb, i32 0, i32 0), i32 %19, i32 %20) |
| 127 | +126$Mm21 br label %21 |
| 128 | +127$Mm %22 = load i32, i32* %4, align 4 |
| 129 | +128$Mm %23 = add nsw i32 %22, 1 |
| 130 | +129$Mm store i32 %23, i32* %4, align 4 |
| 131 | +130$Mm23 br label %9 |
| 132 | +131$Mm22 br label %25 |
| 133 | +132$Mm %26 = load i32, i32* %3, align 4 |
| 134 | +133$Mm %27 = add nsw i32 %26, 1 |
| 135 | +134$Mm store i32 %27, i32* %3, align 4 |
| 136 | +135$Mm24 br label %5 |
| 137 | +136$Mm %29 = load i32, i32* %2, align 4 |
| 138 | +137$Mm %30 = icmp slt i32 %29, 1 |
| 139 | +138$Mm19 br i1 %30, label %31, label %43 |
| 140 | +139$Mm %32 = load i32, i32* %2, align 4 |
| 141 | +140$Mm %33 = add nsw i32 %32, 1 |
| 142 | +141$Mm %34 = sext i32 %33 to i64 |
| 143 | +142$Mm %35 = getelementptr inbounds [2 x [2 x float]], [2 x [2 x float]]* @rmr, i64 0, i64 %34 |
| 144 | +143$Mm %36 = load i32, i32* %2, align 4 |
| 145 | +144$Mm %37 = add nsw i32 %36, 1 |
| 146 | +145$Mm %38 = sext i32 %37 to i64 |
| 147 | +146$Mm %39 = getelementptr inbounds [2 x float], [2 x float]* %35, i64 0, i64 %38 |
| 148 | +147$Mm %40 = load float, float* %39, align 4 |
| 149 | +148$Mm %41 = fpext float %40 to double |
| 150 | +149$Mm %42 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), double %41) |
| 151 | +150$Mm25 br label %43 |
| 152 | +151$Mm ret void |
| 153 | +152$main %1 = alloca i32, align 4 |
| 154 | +153$main %2 = alloca i32, align 4 |
| 155 | +154$main store i32 0, i32* %1, align 4 |
| 156 | +155$main store i32 0, i32* %2, align 4 |
| 157 | +156$main27 br label %3 |
| 158 | +157$main %4 = load i32, i32* %2, align 4 |
| 159 | +158$main %5 = icmp slt i32 %4, 1 |
| 160 | +159$main28 br i1 %5, label %6, label %11 |
| 161 | +160$main %7 = load i32, i32* %2, align 4 |
| 162 | +161$main call void @Mm(i32 %7) |
| 163 | +162$main29 br label %8 |
| 164 | +163$main %9 = load i32, i32* %2, align 4 |
| 165 | +164$main %10 = add nsw i32 %9, 1 |
| 166 | +165$main store i32 %10, i32* %2, align 4 |
| 167 | +166$main31 br label %3 |
| 168 | +167$main ret i32 0 |
0 commit comments