; LLVM IR from romerojosh/zefr :: src (gimmik_cpu)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
define dso_local void @gimmik_mm_cpu_10573732836836701890_b1(i32 noundef %0, ptr noalias noundef %1, i32 noundef %2, ptr noalias noundef %3, i32 noundef %4) #2 {
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca double, align 8
  %12 = alloca i32, align 4
  store i32 %0, ptr %6, align 4, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !9
  store i32 %2, ptr %8, align 4, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !9
  store i32 %4, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #3
  store i32 0, ptr %12, align 4, !tbaa !5
  br label %13

13:                                               ; preds = %1747, %5
  %14 = load i32, ptr %12, align 4, !tbaa !5
  %15 = load i32, ptr %6, align 4, !tbaa !5
  %16 = icmp slt i32 %14, %15
  br i1 %16, label %18, label %17

17:                                               ; preds = %13
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #3
  br label %1750

18:                                               ; preds = %13
  %19 = load ptr, ptr %7, align 8, !tbaa !9
  %20 = load i32, ptr %12, align 4, !tbaa !5
  %21 = load i32, ptr %8, align 4, !tbaa !5
  %22 = mul nsw i32 0, %21
  %23 = add nsw i32 %20, %22
  %24 = sext i32 %23 to i64
  %25 = getelementptr inbounds double, ptr %19, i64 %24
  %26 = load double, ptr %25, align 8, !tbaa !11
  %27 = load ptr, ptr %7, align 8, !tbaa !9
  %28 = load i32, ptr %12, align 4, !tbaa !5
  %29 = load i32, ptr %8, align 4, !tbaa !5
  %30 = mul nsw i32 11, %29
  %31 = add nsw i32 %28, %30
  %32 = sext i32 %31 to i64
  %33 = getelementptr inbounds double, ptr %27, i64 %32
  %34 = load double, ptr %33, align 8, !tbaa !11
  %35 = fmul double 0x3FD5A3832341A92A, %34
  %36 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %26, double %35)
  %37 = load ptr, ptr %7, align 8, !tbaa !9
  %38 = load i32, ptr %12, align 4, !tbaa !5
  %39 = load i32, ptr %8, align 4, !tbaa !5
  %40 = mul nsw i32 18, %39
  %41 = add nsw i32 %38, %40
  %42 = sext i32 %41 to i64
  %43 = getelementptr inbounds double, ptr %37, i64 %42
  %44 = load double, ptr %43, align 8, !tbaa !11
  %45 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %44, double %36)
  %46 = load ptr, ptr %7, align 8, !tbaa !9
  %47 = load i32, ptr %12, align 4, !tbaa !5
  %48 = load i32, ptr %8, align 4, !tbaa !5
  %49 = mul nsw i32 29, %48
  %50 = add nsw i32 %47, %49
  %51 = sext i32 %50 to i64
  %52 = getelementptr inbounds double, ptr %46, i64 %51
  %53 = load double, ptr %52, align 8, !tbaa !11
  %54 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %53, double %45)
  %55 = load ptr, ptr %7, align 8, !tbaa !9
  %56 = load i32, ptr %12, align 4, !tbaa !5
  %57 = load i32, ptr %8, align 4, !tbaa !5
  %58 = mul nsw i32 38, %57
  %59 = add nsw i32 %56, %58
  %60 = sext i32 %59 to i64
  %61 = getelementptr inbounds double, ptr %55, i64 %60
  %62 = load double, ptr %61, align 8, !tbaa !11
  %63 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %62, double %54)
  %64 = load ptr, ptr %7, align 8, !tbaa !9
  %65 = load i32, ptr %12, align 4, !tbaa !5
  %66 = load i32, ptr %8, align 4, !tbaa !5
  %67 = mul nsw i32 45, %66
  %68 = add nsw i32 %65, %67
  %69 = sext i32 %68 to i64
  %70 = getelementptr inbounds double, ptr %64, i64 %69
  %71 = load double, ptr %70, align 8, !tbaa !11
  %72 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %71, double %63)
  store double %72, ptr %11, align 8, !tbaa !11
  %73 = load double, ptr %11, align 8, !tbaa !11
  %74 = load ptr, ptr %9, align 8, !tbaa !9
  %75 = load i32, ptr %12, align 4, !tbaa !5
  %76 = load i32, ptr %10, align 4, !tbaa !5
  %77 = mul nsw i32 0, %76
  %78 = add nsw i32 %75, %77
  %79 = sext i32 %78 to i64
  %80 = getelementptr inbounds double, ptr %74, i64 %79
  %81 = load double, ptr %80, align 8, !tbaa !11
  %82 = fadd double %81, %73
  store double %82, ptr %80, align 8, !tbaa !11
  %83 = load ptr, ptr %7, align 8, !tbaa !9
  %84 = load i32, ptr %12, align 4, !tbaa !5
  %85 = load i32, ptr %8, align 4, !tbaa !5
  %86 = mul nsw i32 1, %85
  %87 = add nsw i32 %84, %86
  %88 = sext i32 %87 to i64
  %89 = getelementptr inbounds double, ptr %83, i64 %88
  %90 = load double, ptr %89, align 8, !tbaa !11
  %91 = load ptr, ptr %7, align 8, !tbaa !9
  %92 = load i32, ptr %12, align 4, !tbaa !5
  %93 = load i32, ptr %8, align 4, !tbaa !5
  %94 = mul nsw i32 10, %93
  %95 = add nsw i32 %92, %94
  %96 = sext i32 %95 to i64
  %97 = getelementptr inbounds double, ptr %91, i64 %96
  %98 = load double, ptr %97, align 8, !tbaa !11
  %99 = fmul double 0x3FD5A3832341A92A, %98
  %100 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %90, double %99)
  %101 = load ptr, ptr %7, align 8, !tbaa !9
  %102 = load i32, ptr %12, align 4, !tbaa !5
  %103 = load i32, ptr %8, align 4, !tbaa !5
  %104 = mul nsw i32 18, %103
  %105 = add nsw i32 %102, %104
  %106 = sext i32 %105 to i64
  %107 = getelementptr inbounds double, ptr %101, i64 %106
  %108 = load double, ptr %107, align 8, !tbaa !11
  %109 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %108, double %100)
  %110 = load ptr, ptr %7, align 8, !tbaa !9
  %111 = load i32, ptr %12, align 4, !tbaa !5
  %112 = load i32, ptr %8, align 4, !tbaa !5
  %113 = mul nsw i32 29, %112
  %114 = add nsw i32 %111, %113
  %115 = sext i32 %114 to i64
  %116 = getelementptr inbounds double, ptr %110, i64 %115
  %117 = load double, ptr %116, align 8, !tbaa !11
  %118 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %117, double %109)
  %119 = load ptr, ptr %7, align 8, !tbaa !9
  %120 = load i32, ptr %12, align 4, !tbaa !5
  %121 = load i32, ptr %8, align 4, !tbaa !5
  %122 = mul nsw i32 37, %121
  %123 = add nsw i32 %120, %122
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds double, ptr %119, i64 %124
  %126 = load double, ptr %125, align 8, !tbaa !11
  %127 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %126, double %118)
  %128 = load ptr, ptr %7, align 8, !tbaa !9
  %129 = load i32, ptr %12, align 4, !tbaa !5
  %130 = load i32, ptr %8, align 4, !tbaa !5
  %131 = mul nsw i32 46, %130
  %132 = add nsw i32 %129, %131
  %133 = sext i32 %132 to i64
  %134 = getelementptr inbounds double, ptr %128, i64 %133
  %135 = load double, ptr %134, align 8, !tbaa !11
  %136 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %135, double %127)
  store double %136, ptr %11, align 8, !tbaa !11
  %137 = load double, ptr %11, align 8, !tbaa !11
  %138 = load ptr, ptr %9, align 8, !tbaa !9
  %139 = load i32, ptr %12, align 4, !tbaa !5
  %140 = load i32, ptr %10, align 4, !tbaa !5
  %141 = mul nsw i32 1, %140
  %142 = add nsw i32 %139, %141
  %143 = sext i32 %142 to i64
  %144 = getelementptr inbounds double, ptr %138, i64 %143
  %145 = load double, ptr %144, align 8, !tbaa !11
  %146 = fadd double %145, %137
  store double %146, ptr %144, align 8, !tbaa !11
  %147 = load ptr, ptr %7, align 8, !tbaa !9
  %148 = load i32, ptr %12, align 4, !tbaa !5
  %149 = load i32, ptr %8, align 4, !tbaa !5
  %150 = mul nsw i32 2, %149
  %151 = add nsw i32 %148, %150
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds double, ptr %147, i64 %152
  %154 = load double, ptr %153, align 8, !tbaa !11
  %155 = load ptr, ptr %7, align 8, !tbaa !9
  %156 = load i32, ptr %12, align 4, !tbaa !5
  %157 = load i32, ptr %8, align 4, !tbaa !5
  %158 = mul nsw i32 9, %157
  %159 = add nsw i32 %156, %158
  %160 = sext i32 %159 to i64
  %161 = getelementptr inbounds double, ptr %155, i64 %160
  %162 = load double, ptr %161, align 8, !tbaa !11
  %163 = fmul double 0x3FD5A3832341A92A, %162
  %164 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %154, double %163)
  %165 = load ptr, ptr %7, align 8, !tbaa !9
  %166 = load i32, ptr %12, align 4, !tbaa !5
  %167 = load i32, ptr %8, align 4, !tbaa !5
  %168 = mul nsw i32 18, %167
  %169 = add nsw i32 %166, %168
  %170 = sext i32 %169 to i64
  %171 = getelementptr inbounds double, ptr %165, i64 %170
  %172 = load double, ptr %171, align 8, !tbaa !11
  %173 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %172, double %164)
  %174 = load ptr, ptr %7, align 8, !tbaa !9
  %175 = load i32, ptr %12, align 4, !tbaa !5
  %176 = load i32, ptr %8, align 4, !tbaa !5
  %177 = mul nsw i32 29, %176
  %178 = add nsw i32 %175, %177
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds double, ptr %174, i64 %179
  %181 = load double, ptr %180, align 8, !tbaa !11
  %182 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %181, double %173)
  %183 = load ptr, ptr %7, align 8, !tbaa !9
  %184 = load i32, ptr %12, align 4, !tbaa !5
  %185 = load i32, ptr %8, align 4, !tbaa !5
  %186 = mul nsw i32 36, %185
  %187 = add nsw i32 %184, %186
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds double, ptr %183, i64 %188
  %190 = load double, ptr %189, align 8, !tbaa !11
  %191 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %190, double %182)
  %192 = load ptr, ptr %7, align 8, !tbaa !9
  %193 = load i32, ptr %12, align 4, !tbaa !5
  %194 = load i32, ptr %8, align 4, !tbaa !5
  %195 = mul nsw i32 47, %194
  %196 = add nsw i32 %193, %195
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds double, ptr %192, i64 %197
  %199 = load double, ptr %198, align 8, !tbaa !11
  %200 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %199, double %191)
  store double %200, ptr %11, align 8, !tbaa !11
  %201 = load double, ptr %11, align 8, !tbaa !11
  %202 = load ptr, ptr %9, align 8, !tbaa !9
  %203 = load i32, ptr %12, align 4, !tbaa !5
  %204 = load i32, ptr %10, align 4, !tbaa !5
  %205 = mul nsw i32 2, %204
  %206 = add nsw i32 %203, %205
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds double, ptr %202, i64 %207
  %209 = load double, ptr %208, align 8, !tbaa !11
  %210 = fadd double %209, %201
  store double %210, ptr %208, align 8, !tbaa !11
  %211 = load ptr, ptr %7, align 8, !tbaa !9
  %212 = load i32, ptr %12, align 4, !tbaa !5
  %213 = load i32, ptr %8, align 4, !tbaa !5
  %214 = mul nsw i32 3, %213
  %215 = add nsw i32 %212, %214
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds double, ptr %211, i64 %216
  %218 = load double, ptr %217, align 8, !tbaa !11
  %219 = load ptr, ptr %7, align 8, !tbaa !9
  %220 = load i32, ptr %12, align 4, !tbaa !5
  %221 = load i32, ptr %8, align 4, !tbaa !5
  %222 = mul nsw i32 14, %221
  %223 = add nsw i32 %220, %222
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds double, ptr %219, i64 %224
  %226 = load double, ptr %225, align 8, !tbaa !11
  %227 = fmul double 0x3FD5A3832341A92A, %226
  %228 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %218, double %227)
  %229 = load ptr, ptr %7, align 8, !tbaa !9
  %230 = load i32, ptr %12, align 4, !tbaa !5
  %231 = load i32, ptr %8, align 4, !tbaa !5
  %232 = mul nsw i32 19, %231
  %233 = add nsw i32 %230, %232
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds double, ptr %229, i64 %234
  %236 = load double, ptr %235, align 8, !tbaa !11
  %237 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %236, double %228)
  %238 = load ptr, ptr %7, align 8, !tbaa !9
  %239 = load i32, ptr %12, align 4, !tbaa !5
  %240 = load i32, ptr %8, align 4, !tbaa !5
  %241 = mul nsw i32 28, %240
  %242 = add nsw i32 %239, %241
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds double, ptr %238, i64 %243
  %245 = load double, ptr %244, align 8, !tbaa !11
  %246 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %245, double %237)
  %247 = load ptr, ptr %7, align 8, !tbaa !9
  %248 = load i32, ptr %12, align 4, !tbaa !5
  %249 = load i32, ptr %8, align 4, !tbaa !5
  %250 = mul nsw i32 38, %249
  %251 = add nsw i32 %248, %250
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds double, ptr %247, i64 %252
  %254 = load double, ptr %253, align 8, !tbaa !11
  %255 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %254, double %246)
  %256 = load ptr, ptr %7, align 8, !tbaa !9
  %257 = load i32, ptr %12, align 4, !tbaa !5
  %258 = load i32, ptr %8, align 4, !tbaa !5
  %259 = mul nsw i32 45, %258
  %260 = add nsw i32 %257, %259
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds double, ptr %256, i64 %261
  %263 = load double, ptr %262, align 8, !tbaa !11
  %264 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %263, double %255)
  store double %264, ptr %11, align 8, !tbaa !11
  %265 = load double, ptr %11, align 8, !tbaa !11
  %266 = load ptr, ptr %9, align 8, !tbaa !9
  %267 = load i32, ptr %12, align 4, !tbaa !5
  %268 = load i32, ptr %10, align 4, !tbaa !5
  %269 = mul nsw i32 3, %268
  %270 = add nsw i32 %267, %269
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds double, ptr %266, i64 %271
  %273 = load double, ptr %272, align 8, !tbaa !11
  %274 = fadd double %273, %265
  store double %274, ptr %272, align 8, !tbaa !11
  %275 = load ptr, ptr %7, align 8, !tbaa !9
  %276 = load i32, ptr %12, align 4, !tbaa !5
  %277 = load i32, ptr %8, align 4, !tbaa !5
  %278 = mul nsw i32 4, %277
  %279 = add nsw i32 %276, %278
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds double, ptr %275, i64 %280
  %282 = load double, ptr %281, align 8, !tbaa !11
  %283 = load ptr, ptr %7, align 8, !tbaa !9
  %284 = load i32, ptr %12, align 4, !tbaa !5
  %285 = load i32, ptr %8, align 4, !tbaa !5
  %286 = mul nsw i32 13, %285
  %287 = add nsw i32 %284, %286
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds double, ptr %283, i64 %288
  %290 = load double, ptr %289, align 8, !tbaa !11
  %291 = fmul double 0x3FD5A3832341A92A, %290
  %292 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %282, double %291)
  %293 = load ptr, ptr %7, align 8, !tbaa !9
  %294 = load i32, ptr %12, align 4, !tbaa !5
  %295 = load i32, ptr %8, align 4, !tbaa !5
  %296 = mul nsw i32 19, %295
  %297 = add nsw i32 %294, %296
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds double, ptr %293, i64 %298
  %300 = load double, ptr %299, align 8, !tbaa !11
  %301 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %300, double %292)
  %302 = load ptr, ptr %7, align 8, !tbaa !9
  %303 = load i32, ptr %12, align 4, !tbaa !5
  %304 = load i32, ptr %8, align 4, !tbaa !5
  %305 = mul nsw i32 28, %304
  %306 = add nsw i32 %303, %305
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds double, ptr %302, i64 %307
  %309 = load double, ptr %308, align 8, !tbaa !11
  %310 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %309, double %301)
  %311 = load ptr, ptr %7, align 8, !tbaa !9
  %312 = load i32, ptr %12, align 4, !tbaa !5
  %313 = load i32, ptr %8, align 4, !tbaa !5
  %314 = mul nsw i32 37, %313
  %315 = add nsw i32 %312, %314
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds double, ptr %311, i64 %316
  %318 = load double, ptr %317, align 8, !tbaa !11
  %319 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %318, double %310)
  %320 = load ptr, ptr %7, align 8, !tbaa !9
  %321 = load i32, ptr %12, align 4, !tbaa !5
  %322 = load i32, ptr %8, align 4, !tbaa !5
  %323 = mul nsw i32 46, %322
  %324 = add nsw i32 %321, %323
  %325 = sext i32 %324 to i64
  %326 = getelementptr inbounds double, ptr %320, i64 %325
  %327 = load double, ptr %326, align 8, !tbaa !11
  %328 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %327, double %319)
  store double %328, ptr %11, align 8, !tbaa !11
  %329 = load double, ptr %11, align 8, !tbaa !11
  %330 = load ptr, ptr %9, align 8, !tbaa !9
  %331 = load i32, ptr %12, align 4, !tbaa !5
  %332 = load i32, ptr %10, align 4, !tbaa !5
  %333 = mul nsw i32 4, %332
  %334 = add nsw i32 %331, %333
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds double, ptr %330, i64 %335
  %337 = load double, ptr %336, align 8, !tbaa !11
  %338 = fadd double %337, %329
  store double %338, ptr %336, align 8, !tbaa !11
  %339 = load ptr, ptr %7, align 8, !tbaa !9
  %340 = load i32, ptr %12, align 4, !tbaa !5
  %341 = load i32, ptr %8, align 4, !tbaa !5
  %342 = mul nsw i32 5, %341
  %343 = add nsw i32 %340, %342
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds double, ptr %339, i64 %344
  %346 = load double, ptr %345, align 8, !tbaa !11
  %347 = load ptr, ptr %7, align 8, !tbaa !9
  %348 = load i32, ptr %12, align 4, !tbaa !5
  %349 = load i32, ptr %8, align 4, !tbaa !5
  %350 = mul nsw i32 12, %349
  %351 = add nsw i32 %348, %350
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds double, ptr %347, i64 %352
  %354 = load double, ptr %353, align 8, !tbaa !11
  %355 = fmul double 0x3FD5A3832341A92A, %354
  %356 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %346, double %355)
  %357 = load ptr, ptr %7, align 8, !tbaa !9
  %358 = load i32, ptr %12, align 4, !tbaa !5
  %359 = load i32, ptr %8, align 4, !tbaa !5
  %360 = mul nsw i32 19, %359
  %361 = add nsw i32 %358, %360
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds double, ptr %357, i64 %362
  %364 = load double, ptr %363, align 8, !tbaa !11
  %365 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %364, double %356)
  %366 = load ptr, ptr %7, align 8, !tbaa !9
  %367 = load i32, ptr %12, align 4, !tbaa !5
  %368 = load i32, ptr %8, align 4, !tbaa !5
  %369 = mul nsw i32 28, %368
  %370 = add nsw i32 %367, %369
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds double, ptr %366, i64 %371
  %373 = load double, ptr %372, align 8, !tbaa !11
  %374 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %373, double %365)
  %375 = load ptr, ptr %7, align 8, !tbaa !9
  %376 = load i32, ptr %12, align 4, !tbaa !5
  %377 = load i32, ptr %8, align 4, !tbaa !5
  %378 = mul nsw i32 36, %377
  %379 = add nsw i32 %376, %378
  %380 = sext i32 %379 to i64
  %381 = getelementptr inbounds double, ptr %375, i64 %380
  %382 = load double, ptr %381, align 8, !tbaa !11
  %383 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %382, double %374)
  %384 = load ptr, ptr %7, align 8, !tbaa !9
  %385 = load i32, ptr %12, align 4, !tbaa !5
  %386 = load i32, ptr %8, align 4, !tbaa !5
  %387 = mul nsw i32 47, %386
  %388 = add nsw i32 %385, %387
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds double, ptr %384, i64 %389
  %391 = load double, ptr %390, align 8, !tbaa !11
  %392 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %391, double %383)
  store double %392, ptr %11, align 8, !tbaa !11
  %393 = load double, ptr %11, align 8, !tbaa !11
  %394 = load ptr, ptr %9, align 8, !tbaa !9
  %395 = load i32, ptr %12, align 4, !tbaa !5
  %396 = load i32, ptr %10, align 4, !tbaa !5
  %397 = mul nsw i32 5, %396
  %398 = add nsw i32 %395, %397
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds double, ptr %394, i64 %399
  %401 = load double, ptr %400, align 8, !tbaa !11
  %402 = fadd double %401, %393
  store double %402, ptr %400, align 8, !tbaa !11
  %403 = load ptr, ptr %7, align 8, !tbaa !9
  %404 = load i32, ptr %12, align 4, !tbaa !5
  %405 = load i32, ptr %8, align 4, !tbaa !5
  %406 = mul nsw i32 6, %405
  %407 = add nsw i32 %404, %406
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds double, ptr %403, i64 %408
  %410 = load double, ptr %409, align 8, !tbaa !11
  %411 = load ptr, ptr %7, align 8, !tbaa !9
  %412 = load i32, ptr %12, align 4, !tbaa !5
  %413 = load i32, ptr %8, align 4, !tbaa !5
  %414 = mul nsw i32 17, %413
  %415 = add nsw i32 %412, %414
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds double, ptr %411, i64 %416
  %418 = load double, ptr %417, align 8, !tbaa !11
  %419 = fmul double 0x3FD5A3832341A92A, %418
  %420 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %410, double %419)
  %421 = load ptr, ptr %7, align 8, !tbaa !9
  %422 = load i32, ptr %12, align 4, !tbaa !5
  %423 = load i32, ptr %8, align 4, !tbaa !5
  %424 = mul nsw i32 20, %423
  %425 = add nsw i32 %422, %424
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds double, ptr %421, i64 %426
  %428 = load double, ptr %427, align 8, !tbaa !11
  %429 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %428, double %420)
  %430 = load ptr, ptr %7, align 8, !tbaa !9
  %431 = load i32, ptr %12, align 4, !tbaa !5
  %432 = load i32, ptr %8, align 4, !tbaa !5
  %433 = mul nsw i32 27, %432
  %434 = add nsw i32 %431, %433
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds double, ptr %430, i64 %435
  %437 = load double, ptr %436, align 8, !tbaa !11
  %438 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %437, double %429)
  %439 = load ptr, ptr %7, align 8, !tbaa !9
  %440 = load i32, ptr %12, align 4, !tbaa !5
  %441 = load i32, ptr %8, align 4, !tbaa !5
  %442 = mul nsw i32 38, %441
  %443 = add nsw i32 %440, %442
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds double, ptr %439, i64 %444
  %446 = load double, ptr %445, align 8, !tbaa !11
  %447 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %446, double %438)
  %448 = load ptr, ptr %7, align 8, !tbaa !9
  %449 = load i32, ptr %12, align 4, !tbaa !5
  %450 = load i32, ptr %8, align 4, !tbaa !5
  %451 = mul nsw i32 45, %450
  %452 = add nsw i32 %449, %451
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds double, ptr %448, i64 %453
  %455 = load double, ptr %454, align 8, !tbaa !11
  %456 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %455, double %447)
  store double %456, ptr %11, align 8, !tbaa !11
  %457 = load double, ptr %11, align 8, !tbaa !11
  %458 = load ptr, ptr %9, align 8, !tbaa !9
  %459 = load i32, ptr %12, align 4, !tbaa !5
  %460 = load i32, ptr %10, align 4, !tbaa !5
  %461 = mul nsw i32 6, %460
  %462 = add nsw i32 %459, %461
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds double, ptr %458, i64 %463
  %465 = load double, ptr %464, align 8, !tbaa !11
  %466 = fadd double %465, %457
  store double %466, ptr %464, align 8, !tbaa !11
  %467 = load ptr, ptr %7, align 8, !tbaa !9
  %468 = load i32, ptr %12, align 4, !tbaa !5
  %469 = load i32, ptr %8, align 4, !tbaa !5
  %470 = mul nsw i32 7, %469
  %471 = add nsw i32 %468, %470
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds double, ptr %467, i64 %472
  %474 = load double, ptr %473, align 8, !tbaa !11
  %475 = load ptr, ptr %7, align 8, !tbaa !9
  %476 = load i32, ptr %12, align 4, !tbaa !5
  %477 = load i32, ptr %8, align 4, !tbaa !5
  %478 = mul nsw i32 16, %477
  %479 = add nsw i32 %476, %478
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds double, ptr %475, i64 %480
  %482 = load double, ptr %481, align 8, !tbaa !11
  %483 = fmul double 0x3FD5A3832341A92A, %482
  %484 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %474, double %483)
  %485 = load ptr, ptr %7, align 8, !tbaa !9
  %486 = load i32, ptr %12, align 4, !tbaa !5
  %487 = load i32, ptr %8, align 4, !tbaa !5
  %488 = mul nsw i32 20, %487
  %489 = add nsw i32 %486, %488
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds double, ptr %485, i64 %490
  %492 = load double, ptr %491, align 8, !tbaa !11
  %493 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %492, double %484)
  %494 = load ptr, ptr %7, align 8, !tbaa !9
  %495 = load i32, ptr %12, align 4, !tbaa !5
  %496 = load i32, ptr %8, align 4, !tbaa !5
  %497 = mul nsw i32 27, %496
  %498 = add nsw i32 %495, %497
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds double, ptr %494, i64 %499
  %501 = load double, ptr %500, align 8, !tbaa !11
  %502 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %501, double %493)
  %503 = load ptr, ptr %7, align 8, !tbaa !9
  %504 = load i32, ptr %12, align 4, !tbaa !5
  %505 = load i32, ptr %8, align 4, !tbaa !5
  %506 = mul nsw i32 37, %505
  %507 = add nsw i32 %504, %506
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds double, ptr %503, i64 %508
  %510 = load double, ptr %509, align 8, !tbaa !11
  %511 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %510, double %502)
  %512 = load ptr, ptr %7, align 8, !tbaa !9
  %513 = load i32, ptr %12, align 4, !tbaa !5
  %514 = load i32, ptr %8, align 4, !tbaa !5
  %515 = mul nsw i32 46, %514
  %516 = add nsw i32 %513, %515
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds double, ptr %512, i64 %517
  %519 = load double, ptr %518, align 8, !tbaa !11
  %520 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %519, double %511)
  store double %520, ptr %11, align 8, !tbaa !11
  %521 = load double, ptr %11, align 8, !tbaa !11
  %522 = load ptr, ptr %9, align 8, !tbaa !9
  %523 = load i32, ptr %12, align 4, !tbaa !5
  %524 = load i32, ptr %10, align 4, !tbaa !5
  %525 = mul nsw i32 7, %524
  %526 = add nsw i32 %523, %525
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds double, ptr %522, i64 %527
  %529 = load double, ptr %528, align 8, !tbaa !11
  %530 = fadd double %529, %521
  store double %530, ptr %528, align 8, !tbaa !11
  %531 = load ptr, ptr %7, align 8, !tbaa !9
  %532 = load i32, ptr %12, align 4, !tbaa !5
  %533 = load i32, ptr %8, align 4, !tbaa !5
  %534 = mul nsw i32 8, %533
  %535 = add nsw i32 %532, %534
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds double, ptr %531, i64 %536
  %538 = load double, ptr %537, align 8, !tbaa !11
  %539 = load ptr, ptr %7, align 8, !tbaa !9
  %540 = load i32, ptr %12, align 4, !tbaa !5
  %541 = load i32, ptr %8, align 4, !tbaa !5
  %542 = mul nsw i32 15, %541
  %543 = add nsw i32 %540, %542
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds double, ptr %539, i64 %544
  %546 = load double, ptr %545, align 8, !tbaa !11
  %547 = fmul double 0x3FD5A3832341A92A, %546
  %548 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %538, double %547)
  %549 = load ptr, ptr %7, align 8, !tbaa !9
  %550 = load i32, ptr %12, align 4, !tbaa !5
  %551 = load i32, ptr %8, align 4, !tbaa !5
  %552 = mul nsw i32 20, %551
  %553 = add nsw i32 %550, %552
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds double, ptr %549, i64 %554
  %556 = load double, ptr %555, align 8, !tbaa !11
  %557 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %556, double %548)
  %558 = load ptr, ptr %7, align 8, !tbaa !9
  %559 = load i32, ptr %12, align 4, !tbaa !5
  %560 = load i32, ptr %8, align 4, !tbaa !5
  %561 = mul nsw i32 27, %560
  %562 = add nsw i32 %559, %561
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds double, ptr %558, i64 %563
  %565 = load double, ptr %564, align 8, !tbaa !11
  %566 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %565, double %557)
  %567 = load ptr, ptr %7, align 8, !tbaa !9
  %568 = load i32, ptr %12, align 4, !tbaa !5
  %569 = load i32, ptr %8, align 4, !tbaa !5
  %570 = mul nsw i32 36, %569
  %571 = add nsw i32 %568, %570
  %572 = sext i32 %571 to i64
  %573 = getelementptr inbounds double, ptr %567, i64 %572
  %574 = load double, ptr %573, align 8, !tbaa !11
  %575 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %574, double %566)
  %576 = load ptr, ptr %7, align 8, !tbaa !9
  %577 = load i32, ptr %12, align 4, !tbaa !5
  %578 = load i32, ptr %8, align 4, !tbaa !5
  %579 = mul nsw i32 47, %578
  %580 = add nsw i32 %577, %579
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds double, ptr %576, i64 %581
  %583 = load double, ptr %582, align 8, !tbaa !11
  %584 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %583, double %575)
  store double %584, ptr %11, align 8, !tbaa !11
  %585 = load double, ptr %11, align 8, !tbaa !11
  %586 = load ptr, ptr %9, align 8, !tbaa !9
  %587 = load i32, ptr %12, align 4, !tbaa !5
  %588 = load i32, ptr %10, align 4, !tbaa !5
  %589 = mul nsw i32 8, %588
  %590 = add nsw i32 %587, %589
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds double, ptr %586, i64 %591
  %593 = load double, ptr %592, align 8, !tbaa !11
  %594 = fadd double %593, %585
  store double %594, ptr %592, align 8, !tbaa !11
  %595 = load ptr, ptr %7, align 8, !tbaa !9
  %596 = load i32, ptr %12, align 4, !tbaa !5
  %597 = load i32, ptr %8, align 4, !tbaa !5
  %598 = mul nsw i32 0, %597
  %599 = add nsw i32 %596, %598
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds double, ptr %595, i64 %600
  %602 = load double, ptr %601, align 8, !tbaa !11
  %603 = load ptr, ptr %7, align 8, !tbaa !9
  %604 = load i32, ptr %12, align 4, !tbaa !5
  %605 = load i32, ptr %8, align 4, !tbaa !5
  %606 = mul nsw i32 11, %605
  %607 = add nsw i32 %604, %606
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds double, ptr %603, i64 %608
  %610 = load double, ptr %609, align 8, !tbaa !11
  %611 = fmul double 0xBFE8000000000002, %610
  %612 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %602, double %611)
  %613 = load ptr, ptr %7, align 8, !tbaa !9
  %614 = load i32, ptr %12, align 4, !tbaa !5
  %615 = load i32, ptr %8, align 4, !tbaa !5
  %616 = mul nsw i32 21, %615
  %617 = add nsw i32 %614, %616
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds double, ptr %613, i64 %618
  %620 = load double, ptr %619, align 8, !tbaa !11
  %621 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %620, double %612)
  %622 = load ptr, ptr %7, align 8, !tbaa !9
  %623 = load i32, ptr %12, align 4, !tbaa !5
  %624 = load i32, ptr %8, align 4, !tbaa !5
  %625 = mul nsw i32 32, %624
  %626 = add nsw i32 %623, %625
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds double, ptr %622, i64 %627
  %629 = load double, ptr %628, align 8, !tbaa !11
  %630 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %629, double %621)
  %631 = load ptr, ptr %7, align 8, !tbaa !9
  %632 = load i32, ptr %12, align 4, !tbaa !5
  %633 = load i32, ptr %8, align 4, !tbaa !5
  %634 = mul nsw i32 41, %633
  %635 = add nsw i32 %632, %634
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds double, ptr %631, i64 %636
  %638 = load double, ptr %637, align 8, !tbaa !11
  %639 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %638, double %630)
  %640 = load ptr, ptr %7, align 8, !tbaa !9
  %641 = load i32, ptr %12, align 4, !tbaa !5
  %642 = load i32, ptr %8, align 4, !tbaa !5
  %643 = mul nsw i32 48, %642
  %644 = add nsw i32 %641, %643
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds double, ptr %640, i64 %645
  %647 = load double, ptr %646, align 8, !tbaa !11
  %648 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %647, double %639)
  store double %648, ptr %11, align 8, !tbaa !11
  %649 = load double, ptr %11, align 8, !tbaa !11
  %650 = load ptr, ptr %9, align 8, !tbaa !9
  %651 = load i32, ptr %12, align 4, !tbaa !5
  %652 = load i32, ptr %10, align 4, !tbaa !5
  %653 = mul nsw i32 9, %652
  %654 = add nsw i32 %651, %653
  %655 = sext i32 %654 to i64
  %656 = getelementptr inbounds double, ptr %650, i64 %655
  %657 = load double, ptr %656, align 8, !tbaa !11
  %658 = fadd double %657, %649
  store double %658, ptr %656, align 8, !tbaa !11
  %659 = load ptr, ptr %7, align 8, !tbaa !9
  %660 = load i32, ptr %12, align 4, !tbaa !5
  %661 = load i32, ptr %8, align 4, !tbaa !5
  %662 = mul nsw i32 1, %661
  %663 = add nsw i32 %660, %662
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds double, ptr %659, i64 %664
  %666 = load double, ptr %665, align 8, !tbaa !11
  %667 = load ptr, ptr %7, align 8, !tbaa !9
  %668 = load i32, ptr %12, align 4, !tbaa !5
  %669 = load i32, ptr %8, align 4, !tbaa !5
  %670 = mul nsw i32 10, %669
  %671 = add nsw i32 %668, %670
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds double, ptr %667, i64 %672
  %674 = load double, ptr %673, align 8, !tbaa !11
  %675 = fmul double 0xBFE8000000000002, %674
  %676 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %666, double %675)
  %677 = load ptr, ptr %7, align 8, !tbaa !9
  %678 = load i32, ptr %12, align 4, !tbaa !5
  %679 = load i32, ptr %8, align 4, !tbaa !5
  %680 = mul nsw i32 21, %679
  %681 = add nsw i32 %678, %680
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds double, ptr %677, i64 %682
  %684 = load double, ptr %683, align 8, !tbaa !11
  %685 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %684, double %676)
  %686 = load ptr, ptr %7, align 8, !tbaa !9
  %687 = load i32, ptr %12, align 4, !tbaa !5
  %688 = load i32, ptr %8, align 4, !tbaa !5
  %689 = mul nsw i32 32, %688
  %690 = add nsw i32 %687, %689
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds double, ptr %686, i64 %691
  %693 = load double, ptr %692, align 8, !tbaa !11
  %694 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %693, double %685)
  %695 = load ptr, ptr %7, align 8, !tbaa !9
  %696 = load i32, ptr %12, align 4, !tbaa !5
  %697 = load i32, ptr %8, align 4, !tbaa !5
  %698 = mul nsw i32 40, %697
  %699 = add nsw i32 %696, %698
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds double, ptr %695, i64 %700
  %702 = load double, ptr %701, align 8, !tbaa !11
  %703 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %702, double %694)
  %704 = load ptr, ptr %7, align 8, !tbaa !9
  %705 = load i32, ptr %12, align 4, !tbaa !5
  %706 = load i32, ptr %8, align 4, !tbaa !5
  %707 = mul nsw i32 49, %706
  %708 = add nsw i32 %705, %707
  %709 = sext i32 %708 to i64
  %710 = getelementptr inbounds double, ptr %704, i64 %709
  %711 = load double, ptr %710, align 8, !tbaa !11
  %712 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %711, double %703)
  store double %712, ptr %11, align 8, !tbaa !11
  %713 = load double, ptr %11, align 8, !tbaa !11
  %714 = load ptr, ptr %9, align 8, !tbaa !9
  %715 = load i32, ptr %12, align 4, !tbaa !5
  %716 = load i32, ptr %10, align 4, !tbaa !5
  %717 = mul nsw i32 10, %716
  %718 = add nsw i32 %715, %717
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds double, ptr %714, i64 %719
  %721 = load double, ptr %720, align 8, !tbaa !11
  %722 = fadd double %721, %713
  store double %722, ptr %720, align 8, !tbaa !11
  %723 = load ptr, ptr %7, align 8, !tbaa !9
  %724 = load i32, ptr %12, align 4, !tbaa !5
  %725 = load i32, ptr %8, align 4, !tbaa !5
  %726 = mul nsw i32 2, %725
  %727 = add nsw i32 %724, %726
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds double, ptr %723, i64 %728
  %730 = load double, ptr %729, align 8, !tbaa !11
  %731 = load ptr, ptr %7, align 8, !tbaa !9
  %732 = load i32, ptr %12, align 4, !tbaa !5
  %733 = load i32, ptr %8, align 4, !tbaa !5
  %734 = mul nsw i32 9, %733
  %735 = add nsw i32 %732, %734
  %736 = sext i32 %735 to i64
  %737 = getelementptr inbounds double, ptr %731, i64 %736
  %738 = load double, ptr %737, align 8, !tbaa !11
  %739 = fmul double 0xBFE8000000000002, %738
  %740 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %730, double %739)
  %741 = load ptr, ptr %7, align 8, !tbaa !9
  %742 = load i32, ptr %12, align 4, !tbaa !5
  %743 = load i32, ptr %8, align 4, !tbaa !5
  %744 = mul nsw i32 21, %743
  %745 = add nsw i32 %742, %744
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds double, ptr %741, i64 %746
  %748 = load double, ptr %747, align 8, !tbaa !11
  %749 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %748, double %740)
  %750 = load ptr, ptr %7, align 8, !tbaa !9
  %751 = load i32, ptr %12, align 4, !tbaa !5
  %752 = load i32, ptr %8, align 4, !tbaa !5
  %753 = mul nsw i32 32, %752
  %754 = add nsw i32 %751, %753
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds double, ptr %750, i64 %755
  %757 = load double, ptr %756, align 8, !tbaa !11
  %758 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %757, double %749)
  %759 = load ptr, ptr %7, align 8, !tbaa !9
  %760 = load i32, ptr %12, align 4, !tbaa !5
  %761 = load i32, ptr %8, align 4, !tbaa !5
  %762 = mul nsw i32 39, %761
  %763 = add nsw i32 %760, %762
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds double, ptr %759, i64 %764
  %766 = load double, ptr %765, align 8, !tbaa !11
  %767 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %766, double %758)
  %768 = load ptr, ptr %7, align 8, !tbaa !9
  %769 = load i32, ptr %12, align 4, !tbaa !5
  %770 = load i32, ptr %8, align 4, !tbaa !5
  %771 = mul nsw i32 50, %770
  %772 = add nsw i32 %769, %771
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds double, ptr %768, i64 %773
  %775 = load double, ptr %774, align 8, !tbaa !11
  %776 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %775, double %767)
  store double %776, ptr %11, align 8, !tbaa !11
  %777 = load double, ptr %11, align 8, !tbaa !11
  %778 = load ptr, ptr %9, align 8, !tbaa !9
  %779 = load i32, ptr %12, align 4, !tbaa !5
  %780 = load i32, ptr %10, align 4, !tbaa !5
  %781 = mul nsw i32 11, %780
  %782 = add nsw i32 %779, %781
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds double, ptr %778, i64 %783
  %785 = load double, ptr %784, align 8, !tbaa !11
  %786 = fadd double %785, %777
  store double %786, ptr %784, align 8, !tbaa !11
  %787 = load ptr, ptr %7, align 8, !tbaa !9
  %788 = load i32, ptr %12, align 4, !tbaa !5
  %789 = load i32, ptr %8, align 4, !tbaa !5
  %790 = mul nsw i32 3, %789
  %791 = add nsw i32 %788, %790
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds double, ptr %787, i64 %792
  %794 = load double, ptr %793, align 8, !tbaa !11
  %795 = load ptr, ptr %7, align 8, !tbaa !9
  %796 = load i32, ptr %12, align 4, !tbaa !5
  %797 = load i32, ptr %8, align 4, !tbaa !5
  %798 = mul nsw i32 14, %797
  %799 = add nsw i32 %796, %798
  %800 = sext i32 %799 to i64
  %801 = getelementptr inbounds double, ptr %795, i64 %800
  %802 = load double, ptr %801, align 8, !tbaa !11
  %803 = fmul double 0xBFE8000000000002, %802
  %804 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %794, double %803)
  %805 = load ptr, ptr %7, align 8, !tbaa !9
  %806 = load i32, ptr %12, align 4, !tbaa !5
  %807 = load i32, ptr %8, align 4, !tbaa !5
  %808 = mul nsw i32 22, %807
  %809 = add nsw i32 %806, %808
  %810 = sext i32 %809 to i64
  %811 = getelementptr inbounds double, ptr %805, i64 %810
  %812 = load double, ptr %811, align 8, !tbaa !11
  %813 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %812, double %804)
  %814 = load ptr, ptr %7, align 8, !tbaa !9
  %815 = load i32, ptr %12, align 4, !tbaa !5
  %816 = load i32, ptr %8, align 4, !tbaa !5
  %817 = mul nsw i32 31, %816
  %818 = add nsw i32 %815, %817
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds double, ptr %814, i64 %819
  %821 = load double, ptr %820, align 8, !tbaa !11
  %822 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %821, double %813)
  %823 = load ptr, ptr %7, align 8, !tbaa !9
  %824 = load i32, ptr %12, align 4, !tbaa !5
  %825 = load i32, ptr %8, align 4, !tbaa !5
  %826 = mul nsw i32 41, %825
  %827 = add nsw i32 %824, %826
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds double, ptr %823, i64 %828
  %830 = load double, ptr %829, align 8, !tbaa !11
  %831 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %830, double %822)
  %832 = load ptr, ptr %7, align 8, !tbaa !9
  %833 = load i32, ptr %12, align 4, !tbaa !5
  %834 = load i32, ptr %8, align 4, !tbaa !5
  %835 = mul nsw i32 48, %834
  %836 = add nsw i32 %833, %835
  %837 = sext i32 %836 to i64
  %838 = getelementptr inbounds double, ptr %832, i64 %837
  %839 = load double, ptr %838, align 8, !tbaa !11
  %840 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %839, double %831)
  store double %840, ptr %11, align 8, !tbaa !11
  %841 = load double, ptr %11, align 8, !tbaa !11
  %842 = load ptr, ptr %9, align 8, !tbaa !9
  %843 = load i32, ptr %12, align 4, !tbaa !5
  %844 = load i32, ptr %10, align 4, !tbaa !5
  %845 = mul nsw i32 12, %844
  %846 = add nsw i32 %843, %845
  %847 = sext i32 %846 to i64
  %848 = getelementptr inbounds double, ptr %842, i64 %847
  %849 = load double, ptr %848, align 8, !tbaa !11
  %850 = fadd double %849, %841
  store double %850, ptr %848, align 8, !tbaa !11
  %851 = load ptr, ptr %7, align 8, !tbaa !9
  %852 = load i32, ptr %12, align 4, !tbaa !5
  %853 = load i32, ptr %8, align 4, !tbaa !5
  %854 = mul nsw i32 4, %853
  %855 = add nsw i32 %852, %854
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds double, ptr %851, i64 %856
  %858 = load double, ptr %857, align 8, !tbaa !11
  %859 = load ptr, ptr %7, align 8, !tbaa !9
  %860 = load i32, ptr %12, align 4, !tbaa !5
  %861 = load i32, ptr %8, align 4, !tbaa !5
  %862 = mul nsw i32 13, %861
  %863 = add nsw i32 %860, %862
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds double, ptr %859, i64 %864
  %866 = load double, ptr %865, align 8, !tbaa !11
  %867 = fmul double 0xBFE8000000000002, %866
  %868 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %858, double %867)
  %869 = load ptr, ptr %7, align 8, !tbaa !9
  %870 = load i32, ptr %12, align 4, !tbaa !5
  %871 = load i32, ptr %8, align 4, !tbaa !5
  %872 = mul nsw i32 22, %871
  %873 = add nsw i32 %870, %872
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds double, ptr %869, i64 %874
  %876 = load double, ptr %875, align 8, !tbaa !11
  %877 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %876, double %868)
  %878 = load ptr, ptr %7, align 8, !tbaa !9
  %879 = load i32, ptr %12, align 4, !tbaa !5
  %880 = load i32, ptr %8, align 4, !tbaa !5
  %881 = mul nsw i32 31, %880
  %882 = add nsw i32 %879, %881
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds double, ptr %878, i64 %883
  %885 = load double, ptr %884, align 8, !tbaa !11
  %886 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %885, double %877)
  %887 = load ptr, ptr %7, align 8, !tbaa !9
  %888 = load i32, ptr %12, align 4, !tbaa !5
  %889 = load i32, ptr %8, align 4, !tbaa !5
  %890 = mul nsw i32 40, %889
  %891 = add nsw i32 %888, %890
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds double, ptr %887, i64 %892
  %894 = load double, ptr %893, align 8, !tbaa !11
  %895 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %894, double %886)
  %896 = load ptr, ptr %7, align 8, !tbaa !9
  %897 = load i32, ptr %12, align 4, !tbaa !5
  %898 = load i32, ptr %8, align 4, !tbaa !5
  %899 = mul nsw i32 49, %898
  %900 = add nsw i32 %897, %899
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds double, ptr %896, i64 %901
  %903 = load double, ptr %902, align 8, !tbaa !11
  %904 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %903, double %895)
  store double %904, ptr %11, align 8, !tbaa !11
  %905 = load double, ptr %11, align 8, !tbaa !11
  %906 = load ptr, ptr %9, align 8, !tbaa !9
  %907 = load i32, ptr %12, align 4, !tbaa !5
  %908 = load i32, ptr %10, align 4, !tbaa !5
  %909 = mul nsw i32 13, %908
  %910 = add nsw i32 %907, %909
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds double, ptr %906, i64 %911
  %913 = load double, ptr %912, align 8, !tbaa !11
  %914 = fadd double %913, %905
  store double %914, ptr %912, align 8, !tbaa !11
  %915 = load ptr, ptr %7, align 8, !tbaa !9
  %916 = load i32, ptr %12, align 4, !tbaa !5
  %917 = load i32, ptr %8, align 4, !tbaa !5
  %918 = mul nsw i32 5, %917
  %919 = add nsw i32 %916, %918
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds double, ptr %915, i64 %920
  %922 = load double, ptr %921, align 8, !tbaa !11
  %923 = load ptr, ptr %7, align 8, !tbaa !9
  %924 = load i32, ptr %12, align 4, !tbaa !5
  %925 = load i32, ptr %8, align 4, !tbaa !5
  %926 = mul nsw i32 12, %925
  %927 = add nsw i32 %924, %926
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds double, ptr %923, i64 %928
  %930 = load double, ptr %929, align 8, !tbaa !11
  %931 = fmul double 0xBFE8000000000002, %930
  %932 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %922, double %931)
  %933 = load ptr, ptr %7, align 8, !tbaa !9
  %934 = load i32, ptr %12, align 4, !tbaa !5
  %935 = load i32, ptr %8, align 4, !tbaa !5
  %936 = mul nsw i32 22, %935
  %937 = add nsw i32 %934, %936
  %938 = sext i32 %937 to i64
  %939 = getelementptr inbounds double, ptr %933, i64 %938
  %940 = load double, ptr %939, align 8, !tbaa !11
  %941 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %940, double %932)
  %942 = load ptr, ptr %7, align 8, !tbaa !9
  %943 = load i32, ptr %12, align 4, !tbaa !5
  %944 = load i32, ptr %8, align 4, !tbaa !5
  %945 = mul nsw i32 31, %944
  %946 = add nsw i32 %943, %945
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds double, ptr %942, i64 %947
  %949 = load double, ptr %948, align 8, !tbaa !11
  %950 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %949, double %941)
  %951 = load ptr, ptr %7, align 8, !tbaa !9
  %952 = load i32, ptr %12, align 4, !tbaa !5
  %953 = load i32, ptr %8, align 4, !tbaa !5
  %954 = mul nsw i32 39, %953
  %955 = add nsw i32 %952, %954
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds double, ptr %951, i64 %956
  %958 = load double, ptr %957, align 8, !tbaa !11
  %959 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %958, double %950)
  %960 = load ptr, ptr %7, align 8, !tbaa !9
  %961 = load i32, ptr %12, align 4, !tbaa !5
  %962 = load i32, ptr %8, align 4, !tbaa !5
  %963 = mul nsw i32 50, %962
  %964 = add nsw i32 %961, %963
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds double, ptr %960, i64 %965
  %967 = load double, ptr %966, align 8, !tbaa !11
  %968 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %967, double %959)
  store double %968, ptr %11, align 8, !tbaa !11
  %969 = load double, ptr %11, align 8, !tbaa !11
  %970 = load ptr, ptr %9, align 8, !tbaa !9
  %971 = load i32, ptr %12, align 4, !tbaa !5
  %972 = load i32, ptr %10, align 4, !tbaa !5
  %973 = mul nsw i32 14, %972
  %974 = add nsw i32 %971, %973
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds double, ptr %970, i64 %975
  %977 = load double, ptr %976, align 8, !tbaa !11
  %978 = fadd double %977, %969
  store double %978, ptr %976, align 8, !tbaa !11
  %979 = load ptr, ptr %7, align 8, !tbaa !9
  %980 = load i32, ptr %12, align 4, !tbaa !5
  %981 = load i32, ptr %8, align 4, !tbaa !5
  %982 = mul nsw i32 6, %981
  %983 = add nsw i32 %980, %982
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds double, ptr %979, i64 %984
  %986 = load double, ptr %985, align 8, !tbaa !11
  %987 = load ptr, ptr %7, align 8, !tbaa !9
  %988 = load i32, ptr %12, align 4, !tbaa !5
  %989 = load i32, ptr %8, align 4, !tbaa !5
  %990 = mul nsw i32 17, %989
  %991 = add nsw i32 %988, %990
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds double, ptr %987, i64 %992
  %994 = load double, ptr %993, align 8, !tbaa !11
  %995 = fmul double 0xBFE8000000000002, %994
  %996 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %986, double %995)
  %997 = load ptr, ptr %7, align 8, !tbaa !9
  %998 = load i32, ptr %12, align 4, !tbaa !5
  %999 = load i32, ptr %8, align 4, !tbaa !5
  %1000 = mul nsw i32 23, %999
  %1001 = add nsw i32 %998, %1000
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds double, ptr %997, i64 %1002
  %1004 = load double, ptr %1003, align 8, !tbaa !11
  %1005 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1004, double %996)
  %1006 = load ptr, ptr %7, align 8, !tbaa !9
  %1007 = load i32, ptr %12, align 4, !tbaa !5
  %1008 = load i32, ptr %8, align 4, !tbaa !5
  %1009 = mul nsw i32 30, %1008
  %1010 = add nsw i32 %1007, %1009
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds double, ptr %1006, i64 %1011
  %1013 = load double, ptr %1012, align 8, !tbaa !11
  %1014 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1013, double %1005)
  %1015 = load ptr, ptr %7, align 8, !tbaa !9
  %1016 = load i32, ptr %12, align 4, !tbaa !5
  %1017 = load i32, ptr %8, align 4, !tbaa !5
  %1018 = mul nsw i32 41, %1017
  %1019 = add nsw i32 %1016, %1018
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds double, ptr %1015, i64 %1020
  %1022 = load double, ptr %1021, align 8, !tbaa !11
  %1023 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1022, double %1014)
  %1024 = load ptr, ptr %7, align 8, !tbaa !9
  %1025 = load i32, ptr %12, align 4, !tbaa !5
  %1026 = load i32, ptr %8, align 4, !tbaa !5
  %1027 = mul nsw i32 48, %1026
  %1028 = add nsw i32 %1025, %1027
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds double, ptr %1024, i64 %1029
  %1031 = load double, ptr %1030, align 8, !tbaa !11
  %1032 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1031, double %1023)
  store double %1032, ptr %11, align 8, !tbaa !11
  %1033 = load double, ptr %11, align 8, !tbaa !11
  %1034 = load ptr, ptr %9, align 8, !tbaa !9
  %1035 = load i32, ptr %12, align 4, !tbaa !5
  %1036 = load i32, ptr %10, align 4, !tbaa !5
  %1037 = mul nsw i32 15, %1036
  %1038 = add nsw i32 %1035, %1037
  %1039 = sext i32 %1038 to i64
  %1040 = getelementptr inbounds double, ptr %1034, i64 %1039
  %1041 = load double, ptr %1040, align 8, !tbaa !11
  %1042 = fadd double %1041, %1033
  store double %1042, ptr %1040, align 8, !tbaa !11
  %1043 = load ptr, ptr %7, align 8, !tbaa !9
  %1044 = load i32, ptr %12, align 4, !tbaa !5
  %1045 = load i32, ptr %8, align 4, !tbaa !5
  %1046 = mul nsw i32 7, %1045
  %1047 = add nsw i32 %1044, %1046
  %1048 = sext i32 %1047 to i64
  %1049 = getelementptr inbounds double, ptr %1043, i64 %1048
  %1050 = load double, ptr %1049, align 8, !tbaa !11
  %1051 = load ptr, ptr %7, align 8, !tbaa !9
  %1052 = load i32, ptr %12, align 4, !tbaa !5
  %1053 = load i32, ptr %8, align 4, !tbaa !5
  %1054 = mul nsw i32 16, %1053
  %1055 = add nsw i32 %1052, %1054
  %1056 = sext i32 %1055 to i64
  %1057 = getelementptr inbounds double, ptr %1051, i64 %1056
  %1058 = load double, ptr %1057, align 8, !tbaa !11
  %1059 = fmul double 0xBFE8000000000002, %1058
  %1060 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1050, double %1059)
  %1061 = load ptr, ptr %7, align 8, !tbaa !9
  %1062 = load i32, ptr %12, align 4, !tbaa !5
  %1063 = load i32, ptr %8, align 4, !tbaa !5
  %1064 = mul nsw i32 23, %1063
  %1065 = add nsw i32 %1062, %1064
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds double, ptr %1061, i64 %1066
  %1068 = load double, ptr %1067, align 8, !tbaa !11
  %1069 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1068, double %1060)
  %1070 = load ptr, ptr %7, align 8, !tbaa !9
  %1071 = load i32, ptr %12, align 4, !tbaa !5
  %1072 = load i32, ptr %8, align 4, !tbaa !5
  %1073 = mul nsw i32 30, %1072
  %1074 = add nsw i32 %1071, %1073
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds double, ptr %1070, i64 %1075
  %1077 = load double, ptr %1076, align 8, !tbaa !11
  %1078 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1077, double %1069)
  %1079 = load ptr, ptr %7, align 8, !tbaa !9
  %1080 = load i32, ptr %12, align 4, !tbaa !5
  %1081 = load i32, ptr %8, align 4, !tbaa !5
  %1082 = mul nsw i32 40, %1081
  %1083 = add nsw i32 %1080, %1082
  %1084 = sext i32 %1083 to i64
  %1085 = getelementptr inbounds double, ptr %1079, i64 %1084
  %1086 = load double, ptr %1085, align 8, !tbaa !11
  %1087 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1086, double %1078)
  %1088 = load ptr, ptr %7, align 8, !tbaa !9
  %1089 = load i32, ptr %12, align 4, !tbaa !5
  %1090 = load i32, ptr %8, align 4, !tbaa !5
  %1091 = mul nsw i32 49, %1090
  %1092 = add nsw i32 %1089, %1091
  %1093 = sext i32 %1092 to i64
  %1094 = getelementptr inbounds double, ptr %1088, i64 %1093
  %1095 = load double, ptr %1094, align 8, !tbaa !11
  %1096 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1095, double %1087)
  store double %1096, ptr %11, align 8, !tbaa !11
  %1097 = load double, ptr %11, align 8, !tbaa !11
  %1098 = load ptr, ptr %9, align 8, !tbaa !9
  %1099 = load i32, ptr %12, align 4, !tbaa !5
  %1100 = load i32, ptr %10, align 4, !tbaa !5
  %1101 = mul nsw i32 16, %1100
  %1102 = add nsw i32 %1099, %1101
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds double, ptr %1098, i64 %1103
  %1105 = load double, ptr %1104, align 8, !tbaa !11
  %1106 = fadd double %1105, %1097
  store double %1106, ptr %1104, align 8, !tbaa !11
  %1107 = load ptr, ptr %7, align 8, !tbaa !9
  %1108 = load i32, ptr %12, align 4, !tbaa !5
  %1109 = load i32, ptr %8, align 4, !tbaa !5
  %1110 = mul nsw i32 8, %1109
  %1111 = add nsw i32 %1108, %1110
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds double, ptr %1107, i64 %1112
  %1114 = load double, ptr %1113, align 8, !tbaa !11
  %1115 = load ptr, ptr %7, align 8, !tbaa !9
  %1116 = load i32, ptr %12, align 4, !tbaa !5
  %1117 = load i32, ptr %8, align 4, !tbaa !5
  %1118 = mul nsw i32 15, %1117
  %1119 = add nsw i32 %1116, %1118
  %1120 = sext i32 %1119 to i64
  %1121 = getelementptr inbounds double, ptr %1115, i64 %1120
  %1122 = load double, ptr %1121, align 8, !tbaa !11
  %1123 = fmul double 0xBFE8000000000002, %1122
  %1124 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1114, double %1123)
  %1125 = load ptr, ptr %7, align 8, !tbaa !9
  %1126 = load i32, ptr %12, align 4, !tbaa !5
  %1127 = load i32, ptr %8, align 4, !tbaa !5
  %1128 = mul nsw i32 23, %1127
  %1129 = add nsw i32 %1126, %1128
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds double, ptr %1125, i64 %1130
  %1132 = load double, ptr %1131, align 8, !tbaa !11
  %1133 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1132, double %1124)
  %1134 = load ptr, ptr %7, align 8, !tbaa !9
  %1135 = load i32, ptr %12, align 4, !tbaa !5
  %1136 = load i32, ptr %8, align 4, !tbaa !5
  %1137 = mul nsw i32 30, %1136
  %1138 = add nsw i32 %1135, %1137
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds double, ptr %1134, i64 %1139
  %1141 = load double, ptr %1140, align 8, !tbaa !11
  %1142 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1141, double %1133)
  %1143 = load ptr, ptr %7, align 8, !tbaa !9
  %1144 = load i32, ptr %12, align 4, !tbaa !5
  %1145 = load i32, ptr %8, align 4, !tbaa !5
  %1146 = mul nsw i32 39, %1145
  %1147 = add nsw i32 %1144, %1146
  %1148 = sext i32 %1147 to i64
  %1149 = getelementptr inbounds double, ptr %1143, i64 %1148
  %1150 = load double, ptr %1149, align 8, !tbaa !11
  %1151 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1150, double %1142)
  %1152 = load ptr, ptr %7, align 8, !tbaa !9
  %1153 = load i32, ptr %12, align 4, !tbaa !5
  %1154 = load i32, ptr %8, align 4, !tbaa !5
  %1155 = mul nsw i32 50, %1154
  %1156 = add nsw i32 %1153, %1155
  %1157 = sext i32 %1156 to i64
  %1158 = getelementptr inbounds double, ptr %1152, i64 %1157
  %1159 = load double, ptr %1158, align 8, !tbaa !11
  %1160 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1159, double %1151)
  store double %1160, ptr %11, align 8, !tbaa !11
  %1161 = load double, ptr %11, align 8, !tbaa !11
  %1162 = load ptr, ptr %9, align 8, !tbaa !9
  %1163 = load i32, ptr %12, align 4, !tbaa !5
  %1164 = load i32, ptr %10, align 4, !tbaa !5
  %1165 = mul nsw i32 17, %1164
  %1166 = add nsw i32 %1163, %1165
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds double, ptr %1162, i64 %1167
  %1169 = load double, ptr %1168, align 8, !tbaa !11
  %1170 = fadd double %1169, %1161
  store double %1170, ptr %1168, align 8, !tbaa !11
  %1171 = load ptr, ptr %7, align 8, !tbaa !9
  %1172 = load i32, ptr %12, align 4, !tbaa !5
  %1173 = load i32, ptr %8, align 4, !tbaa !5
  %1174 = mul nsw i32 0, %1173
  %1175 = add nsw i32 %1172, %1174
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds double, ptr %1171, i64 %1176
  %1178 = load double, ptr %1177, align 8, !tbaa !11
  %1179 = load ptr, ptr %7, align 8, !tbaa !9
  %1180 = load i32, ptr %12, align 4, !tbaa !5
  %1181 = load i32, ptr %8, align 4, !tbaa !5
  %1182 = mul nsw i32 11, %1181
  %1183 = add nsw i32 %1180, %1182
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds double, ptr %1179, i64 %1184
  %1186 = load double, ptr %1185, align 8, !tbaa !11
  %1187 = fmul double 0x40054B8F9B97CADD, %1186
  %1188 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1178, double %1187)
  %1189 = load ptr, ptr %7, align 8, !tbaa !9
  %1190 = load i32, ptr %12, align 4, !tbaa !5
  %1191 = load i32, ptr %8, align 4, !tbaa !5
  %1192 = mul nsw i32 24, %1191
  %1193 = add nsw i32 %1190, %1192
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds double, ptr %1189, i64 %1194
  %1196 = load double, ptr %1195, align 8, !tbaa !11
  %1197 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1196, double %1188)
  %1198 = load ptr, ptr %7, align 8, !tbaa !9
  %1199 = load i32, ptr %12, align 4, !tbaa !5
  %1200 = load i32, ptr %8, align 4, !tbaa !5
  %1201 = mul nsw i32 35, %1200
  %1202 = add nsw i32 %1199, %1201
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds double, ptr %1198, i64 %1203
  %1205 = load double, ptr %1204, align 8, !tbaa !11
  %1206 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1205, double %1197)
  %1207 = load ptr, ptr %7, align 8, !tbaa !9
  %1208 = load i32, ptr %12, align 4, !tbaa !5
  %1209 = load i32, ptr %8, align 4, !tbaa !5
  %1210 = mul nsw i32 44, %1209
  %1211 = add nsw i32 %1208, %1210
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds double, ptr %1207, i64 %1212
  %1214 = load double, ptr %1213, align 8, !tbaa !11
  %1215 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1214, double %1206)
  %1216 = load ptr, ptr %7, align 8, !tbaa !9
  %1217 = load i32, ptr %12, align 4, !tbaa !5
  %1218 = load i32, ptr %8, align 4, !tbaa !5
  %1219 = mul nsw i32 51, %1218
  %1220 = add nsw i32 %1217, %1219
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds double, ptr %1216, i64 %1221
  %1223 = load double, ptr %1222, align 8, !tbaa !11
  %1224 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1223, double %1215)
  store double %1224, ptr %11, align 8, !tbaa !11
  %1225 = load double, ptr %11, align 8, !tbaa !11
  %1226 = load ptr, ptr %9, align 8, !tbaa !9
  %1227 = load i32, ptr %12, align 4, !tbaa !5
  %1228 = load i32, ptr %10, align 4, !tbaa !5
  %1229 = mul nsw i32 18, %1228
  %1230 = add nsw i32 %1227, %1229
  %1231 = sext i32 %1230 to i64
  %1232 = getelementptr inbounds double, ptr %1226, i64 %1231
  %1233 = load double, ptr %1232, align 8, !tbaa !11
  %1234 = fadd double %1233, %1225
  store double %1234, ptr %1232, align 8, !tbaa !11
  %1235 = load ptr, ptr %7, align 8, !tbaa !9
  %1236 = load i32, ptr %12, align 4, !tbaa !5
  %1237 = load i32, ptr %8, align 4, !tbaa !5
  %1238 = mul nsw i32 1, %1237
  %1239 = add nsw i32 %1236, %1238
  %1240 = sext i32 %1239 to i64
  %1241 = getelementptr inbounds double, ptr %1235, i64 %1240
  %1242 = load double, ptr %1241, align 8, !tbaa !11
  %1243 = load ptr, ptr %7, align 8, !tbaa !9
  %1244 = load i32, ptr %12, align 4, !tbaa !5
  %1245 = load i32, ptr %8, align 4, !tbaa !5
  %1246 = mul nsw i32 10, %1245
  %1247 = add nsw i32 %1244, %1246
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds double, ptr %1243, i64 %1248
  %1250 = load double, ptr %1249, align 8, !tbaa !11
  %1251 = fmul double 0x40054B8F9B97CADD, %1250
  %1252 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1242, double %1251)
  %1253 = load ptr, ptr %7, align 8, !tbaa !9
  %1254 = load i32, ptr %12, align 4, !tbaa !5
  %1255 = load i32, ptr %8, align 4, !tbaa !5
  %1256 = mul nsw i32 24, %1255
  %1257 = add nsw i32 %1254, %1256
  %1258 = sext i32 %1257 to i64
  %1259 = getelementptr inbounds double, ptr %1253, i64 %1258
  %1260 = load double, ptr %1259, align 8, !tbaa !11
  %1261 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1260, double %1252)
  %1262 = load ptr, ptr %7, align 8, !tbaa !9
  %1263 = load i32, ptr %12, align 4, !tbaa !5
  %1264 = load i32, ptr %8, align 4, !tbaa !5
  %1265 = mul nsw i32 35, %1264
  %1266 = add nsw i32 %1263, %1265
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds double, ptr %1262, i64 %1267
  %1269 = load double, ptr %1268, align 8, !tbaa !11
  %1270 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1269, double %1261)
  %1271 = load ptr, ptr %7, align 8, !tbaa !9
  %1272 = load i32, ptr %12, align 4, !tbaa !5
  %1273 = load i32, ptr %8, align 4, !tbaa !5
  %1274 = mul nsw i32 43, %1273
  %1275 = add nsw i32 %1272, %1274
  %1276 = sext i32 %1275 to i64
  %1277 = getelementptr inbounds double, ptr %1271, i64 %1276
  %1278 = load double, ptr %1277, align 8, !tbaa !11
  %1279 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1278, double %1270)
  %1280 = load ptr, ptr %7, align 8, !tbaa !9
  %1281 = load i32, ptr %12, align 4, !tbaa !5
  %1282 = load i32, ptr %8, align 4, !tbaa !5
  %1283 = mul nsw i32 52, %1282
  %1284 = add nsw i32 %1281, %1283
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds double, ptr %1280, i64 %1285
  %1287 = load double, ptr %1286, align 8, !tbaa !11
  %1288 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1287, double %1279)
  store double %1288, ptr %11, align 8, !tbaa !11
  %1289 = load double, ptr %11, align 8, !tbaa !11
  %1290 = load ptr, ptr %9, align 8, !tbaa !9
  %1291 = load i32, ptr %12, align 4, !tbaa !5
  %1292 = load i32, ptr %10, align 4, !tbaa !5
  %1293 = mul nsw i32 19, %1292
  %1294 = add nsw i32 %1291, %1293
  %1295 = sext i32 %1294 to i64
  %1296 = getelementptr inbounds double, ptr %1290, i64 %1295
  %1297 = load double, ptr %1296, align 8, !tbaa !11
  %1298 = fadd double %1297, %1289
  store double %1298, ptr %1296, align 8, !tbaa !11
  %1299 = load ptr, ptr %7, align 8, !tbaa !9
  %1300 = load i32, ptr %12, align 4, !tbaa !5
  %1301 = load i32, ptr %8, align 4, !tbaa !5
  %1302 = mul nsw i32 2, %1301
  %1303 = add nsw i32 %1300, %1302
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds double, ptr %1299, i64 %1304
  %1306 = load double, ptr %1305, align 8, !tbaa !11
  %1307 = load ptr, ptr %7, align 8, !tbaa !9
  %1308 = load i32, ptr %12, align 4, !tbaa !5
  %1309 = load i32, ptr %8, align 4, !tbaa !5
  %1310 = mul nsw i32 9, %1309
  %1311 = add nsw i32 %1308, %1310
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds double, ptr %1307, i64 %1312
  %1314 = load double, ptr %1313, align 8, !tbaa !11
  %1315 = fmul double 0x40054B8F9B97CADD, %1314
  %1316 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1306, double %1315)
  %1317 = load ptr, ptr %7, align 8, !tbaa !9
  %1318 = load i32, ptr %12, align 4, !tbaa !5
  %1319 = load i32, ptr %8, align 4, !tbaa !5
  %1320 = mul nsw i32 24, %1319
  %1321 = add nsw i32 %1318, %1320
  %1322 = sext i32 %1321 to i64
  %1323 = getelementptr inbounds double, ptr %1317, i64 %1322
  %1324 = load double, ptr %1323, align 8, !tbaa !11
  %1325 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1324, double %1316)
  %1326 = load ptr, ptr %7, align 8, !tbaa !9
  %1327 = load i32, ptr %12, align 4, !tbaa !5
  %1328 = load i32, ptr %8, align 4, !tbaa !5
  %1329 = mul nsw i32 35, %1328
  %1330 = add nsw i32 %1327, %1329
  %1331 = sext i32 %1330 to i64
  %1332 = getelementptr inbounds double, ptr %1326, i64 %1331
  %1333 = load double, ptr %1332, align 8, !tbaa !11
  %1334 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1333, double %1325)
  %1335 = load ptr, ptr %7, align 8, !tbaa !9
  %1336 = load i32, ptr %12, align 4, !tbaa !5
  %1337 = load i32, ptr %8, align 4, !tbaa !5
  %1338 = mul nsw i32 42, %1337
  %1339 = add nsw i32 %1336, %1338
  %1340 = sext i32 %1339 to i64
  %1341 = getelementptr inbounds double, ptr %1335, i64 %1340
  %1342 = load double, ptr %1341, align 8, !tbaa !11
  %1343 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1342, double %1334)
  %1344 = load ptr, ptr %7, align 8, !tbaa !9
  %1345 = load i32, ptr %12, align 4, !tbaa !5
  %1346 = load i32, ptr %8, align 4, !tbaa !5
  %1347 = mul nsw i32 53, %1346
  %1348 = add nsw i32 %1345, %1347
  %1349 = sext i32 %1348 to i64
  %1350 = getelementptr inbounds double, ptr %1344, i64 %1349
  %1351 = load double, ptr %1350, align 8, !tbaa !11
  %1352 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1351, double %1343)
  store double %1352, ptr %11, align 8, !tbaa !11
  %1353 = load double, ptr %11, align 8, !tbaa !11
  %1354 = load ptr, ptr %9, align 8, !tbaa !9
  %1355 = load i32, ptr %12, align 4, !tbaa !5
  %1356 = load i32, ptr %10, align 4, !tbaa !5
  %1357 = mul nsw i32 20, %1356
  %1358 = add nsw i32 %1355, %1357
  %1359 = sext i32 %1358 to i64
  %1360 = getelementptr inbounds double, ptr %1354, i64 %1359
  %1361 = load double, ptr %1360, align 8, !tbaa !11
  %1362 = fadd double %1361, %1353
  store double %1362, ptr %1360, align 8, !tbaa !11
  %1363 = load ptr, ptr %7, align 8, !tbaa !9
  %1364 = load i32, ptr %12, align 4, !tbaa !5
  %1365 = load i32, ptr %8, align 4, !tbaa !5
  %1366 = mul nsw i32 3, %1365
  %1367 = add nsw i32 %1364, %1366
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds double, ptr %1363, i64 %1368
  %1370 = load double, ptr %1369, align 8, !tbaa !11
  %1371 = load ptr, ptr %7, align 8, !tbaa !9
  %1372 = load i32, ptr %12, align 4, !tbaa !5
  %1373 = load i32, ptr %8, align 4, !tbaa !5
  %1374 = mul nsw i32 14, %1373
  %1375 = add nsw i32 %1372, %1374
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds double, ptr %1371, i64 %1376
  %1378 = load double, ptr %1377, align 8, !tbaa !11
  %1379 = fmul double 0x40054B8F9B97CADD, %1378
  %1380 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1370, double %1379)
  %1381 = load ptr, ptr %7, align 8, !tbaa !9
  %1382 = load i32, ptr %12, align 4, !tbaa !5
  %1383 = load i32, ptr %8, align 4, !tbaa !5
  %1384 = mul nsw i32 25, %1383
  %1385 = add nsw i32 %1382, %1384
  %1386 = sext i32 %1385 to i64
  %1387 = getelementptr inbounds double, ptr %1381, i64 %1386
  %1388 = load double, ptr %1387, align 8, !tbaa !11
  %1389 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1388, double %1380)
  %1390 = load ptr, ptr %7, align 8, !tbaa !9
  %1391 = load i32, ptr %12, align 4, !tbaa !5
  %1392 = load i32, ptr %8, align 4, !tbaa !5
  %1393 = mul nsw i32 34, %1392
  %1394 = add nsw i32 %1391, %1393
  %1395 = sext i32 %1394 to i64
  %1396 = getelementptr inbounds double, ptr %1390, i64 %1395
  %1397 = load double, ptr %1396, align 8, !tbaa !11
  %1398 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1397, double %1389)
  %1399 = load ptr, ptr %7, align 8, !tbaa !9
  %1400 = load i32, ptr %12, align 4, !tbaa !5
  %1401 = load i32, ptr %8, align 4, !tbaa !5
  %1402 = mul nsw i32 44, %1401
  %1403 = add nsw i32 %1400, %1402
  %1404 = sext i32 %1403 to i64
  %1405 = getelementptr inbounds double, ptr %1399, i64 %1404
  %1406 = load double, ptr %1405, align 8, !tbaa !11
  %1407 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1406, double %1398)
  %1408 = load ptr, ptr %7, align 8, !tbaa !9
  %1409 = load i32, ptr %12, align 4, !tbaa !5
  %1410 = load i32, ptr %8, align 4, !tbaa !5
  %1411 = mul nsw i32 51, %1410
  %1412 = add nsw i32 %1409, %1411
  %1413 = sext i32 %1412 to i64
  %1414 = getelementptr inbounds double, ptr %1408, i64 %1413
  %1415 = load double, ptr %1414, align 8, !tbaa !11
  %1416 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1415, double %1407)
  store double %1416, ptr %11, align 8, !tbaa !11
  %1417 = load double, ptr %11, align 8, !tbaa !11
  %1418 = load ptr, ptr %9, align 8, !tbaa !9
  %1419 = load i32, ptr %12, align 4, !tbaa !5
  %1420 = load i32, ptr %10, align 4, !tbaa !5
  %1421 = mul nsw i32 21, %1420
  %1422 = add nsw i32 %1419, %1421
  %1423 = sext i32 %1422 to i64
  %1424 = getelementptr inbounds double, ptr %1418, i64 %1423
  %1425 = load double, ptr %1424, align 8, !tbaa !11
  %1426 = fadd double %1425, %1417
  store double %1426, ptr %1424, align 8, !tbaa !11
  %1427 = load ptr, ptr %7, align 8, !tbaa !9
  %1428 = load i32, ptr %12, align 4, !tbaa !5
  %1429 = load i32, ptr %8, align 4, !tbaa !5
  %1430 = mul nsw i32 4, %1429
  %1431 = add nsw i32 %1428, %1430
  %1432 = sext i32 %1431 to i64
  %1433 = getelementptr inbounds double, ptr %1427, i64 %1432
  %1434 = load double, ptr %1433, align 8, !tbaa !11
  %1435 = load ptr, ptr %7, align 8, !tbaa !9
  %1436 = load i32, ptr %12, align 4, !tbaa !5
  %1437 = load i32, ptr %8, align 4, !tbaa !5
  %1438 = mul nsw i32 13, %1437
  %1439 = add nsw i32 %1436, %1438
  %1440 = sext i32 %1439 to i64
  %1441 = getelementptr inbounds double, ptr %1435, i64 %1440
  %1442 = load double, ptr %1441, align 8, !tbaa !11
  %1443 = fmul double 0x40054B8F9B97CADD, %1442
  %1444 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1434, double %1443)
  %1445 = load ptr, ptr %7, align 8, !tbaa !9
  %1446 = load i32, ptr %12, align 4, !tbaa !5
  %1447 = load i32, ptr %8, align 4, !tbaa !5
  %1448 = mul nsw i32 25, %1447
  %1449 = add nsw i32 %1446, %1448
  %1450 = sext i32 %1449 to i64
  %1451 = getelementptr inbounds double, ptr %1445, i64 %1450
  %1452 = load double, ptr %1451, align 8, !tbaa !11
  %1453 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1452, double %1444)
  %1454 = load ptr, ptr %7, align 8, !tbaa !9
  %1455 = load i32, ptr %12, align 4, !tbaa !5
  %1456 = load i32, ptr %8, align 4, !tbaa !5
  %1457 = mul nsw i32 34, %1456
  %1458 = add nsw i32 %1455, %1457
  %1459 = sext i32 %1458 to i64
  %1460 = getelementptr inbounds double, ptr %1454, i64 %1459
  %1461 = load double, ptr %1460, align 8, !tbaa !11
  %1462 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1461, double %1453)
  %1463 = load ptr, ptr %7, align 8, !tbaa !9
  %1464 = load i32, ptr %12, align 4, !tbaa !5
  %1465 = load i32, ptr %8, align 4, !tbaa !5
  %1466 = mul nsw i32 43, %1465
  %1467 = add nsw i32 %1464, %1466
  %1468 = sext i32 %1467 to i64
  %1469 = getelementptr inbounds double, ptr %1463, i64 %1468
  %1470 = load double, ptr %1469, align 8, !tbaa !11
  %1471 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1470, double %1462)
  %1472 = load ptr, ptr %7, align 8, !tbaa !9
  %1473 = load i32, ptr %12, align 4, !tbaa !5
  %1474 = load i32, ptr %8, align 4, !tbaa !5
  %1475 = mul nsw i32 52, %1474
  %1476 = add nsw i32 %1473, %1475
  %1477 = sext i32 %1476 to i64
  %1478 = getelementptr inbounds double, ptr %1472, i64 %1477
  %1479 = load double, ptr %1478, align 8, !tbaa !11
  %1480 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1479, double %1471)
  store double %1480, ptr %11, align 8, !tbaa !11
  %1481 = load double, ptr %11, align 8, !tbaa !11
  %1482 = load ptr, ptr %9, align 8, !tbaa !9
  %1483 = load i32, ptr %12, align 4, !tbaa !5
  %1484 = load i32, ptr %10, align 4, !tbaa !5
  %1485 = mul nsw i32 22, %1484
  %1486 = add nsw i32 %1483, %1485
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds double, ptr %1482, i64 %1487
  %1489 = load double, ptr %1488, align 8, !tbaa !11
  %1490 = fadd double %1489, %1481
  store double %1490, ptr %1488, align 8, !tbaa !11
  %1491 = load ptr, ptr %7, align 8, !tbaa !9
  %1492 = load i32, ptr %12, align 4, !tbaa !5
  %1493 = load i32, ptr %8, align 4, !tbaa !5
  %1494 = mul nsw i32 5, %1493
  %1495 = add nsw i32 %1492, %1494
  %1496 = sext i32 %1495 to i64
  %1497 = getelementptr inbounds double, ptr %1491, i64 %1496
  %1498 = load double, ptr %1497, align 8, !tbaa !11
  %1499 = load ptr, ptr %7, align 8, !tbaa !9
  %1500 = load i32, ptr %12, align 4, !tbaa !5
  %1501 = load i32, ptr %8, align 4, !tbaa !5
  %1502 = mul nsw i32 12, %1501
  %1503 = add nsw i32 %1500, %1502
  %1504 = sext i32 %1503 to i64
  %1505 = getelementptr inbounds double, ptr %1499, i64 %1504
  %1506 = load double, ptr %1505, align 8, !tbaa !11
  %1507 = fmul double 0x40054B8F9B97CADD, %1506
  %1508 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1498, double %1507)
  %1509 = load ptr, ptr %7, align 8, !tbaa !9
  %1510 = load i32, ptr %12, align 4, !tbaa !5
  %1511 = load i32, ptr %8, align 4, !tbaa !5
  %1512 = mul nsw i32 25, %1511
  %1513 = add nsw i32 %1510, %1512
  %1514 = sext i32 %1513 to i64
  %1515 = getelementptr inbounds double, ptr %1509, i64 %1514
  %1516 = load double, ptr %1515, align 8, !tbaa !11
  %1517 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1516, double %1508)
  %1518 = load ptr, ptr %7, align 8, !tbaa !9
  %1519 = load i32, ptr %12, align 4, !tbaa !5
  %1520 = load i32, ptr %8, align 4, !tbaa !5
  %1521 = mul nsw i32 34, %1520
  %1522 = add nsw i32 %1519, %1521
  %1523 = sext i32 %1522 to i64
  %1524 = getelementptr inbounds double, ptr %1518, i64 %1523
  %1525 = load double, ptr %1524, align 8, !tbaa !11
  %1526 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1525, double %1517)
  %1527 = load ptr, ptr %7, align 8, !tbaa !9
  %1528 = load i32, ptr %12, align 4, !tbaa !5
  %1529 = load i32, ptr %8, align 4, !tbaa !5
  %1530 = mul nsw i32 42, %1529
  %1531 = add nsw i32 %1528, %1530
  %1532 = sext i32 %1531 to i64
  %1533 = getelementptr inbounds double, ptr %1527, i64 %1532
  %1534 = load double, ptr %1533, align 8, !tbaa !11
  %1535 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1534, double %1526)
  %1536 = load ptr, ptr %7, align 8, !tbaa !9
  %1537 = load i32, ptr %12, align 4, !tbaa !5
  %1538 = load i32, ptr %8, align 4, !tbaa !5
  %1539 = mul nsw i32 53, %1538
  %1540 = add nsw i32 %1537, %1539
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds double, ptr %1536, i64 %1541
  %1543 = load double, ptr %1542, align 8, !tbaa !11
  %1544 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1543, double %1535)
  store double %1544, ptr %11, align 8, !tbaa !11
  %1545 = load double, ptr %11, align 8, !tbaa !11
  %1546 = load ptr, ptr %9, align 8, !tbaa !9
  %1547 = load i32, ptr %12, align 4, !tbaa !5
  %1548 = load i32, ptr %10, align 4, !tbaa !5
  %1549 = mul nsw i32 23, %1548
  %1550 = add nsw i32 %1547, %1549
  %1551 = sext i32 %1550 to i64
  %1552 = getelementptr inbounds double, ptr %1546, i64 %1551
  %1553 = load double, ptr %1552, align 8, !tbaa !11
  %1554 = fadd double %1553, %1545
  store double %1554, ptr %1552, align 8, !tbaa !11
  %1555 = load ptr, ptr %7, align 8, !tbaa !9
  %1556 = load i32, ptr %12, align 4, !tbaa !5
  %1557 = load i32, ptr %8, align 4, !tbaa !5
  %1558 = mul nsw i32 6, %1557
  %1559 = add nsw i32 %1556, %1558
  %1560 = sext i32 %1559 to i64
  %1561 = getelementptr inbounds double, ptr %1555, i64 %1560
  %1562 = load double, ptr %1561, align 8, !tbaa !11
  %1563 = load ptr, ptr %7, align 8, !tbaa !9
  %1564 = load i32, ptr %12, align 4, !tbaa !5
  %1565 = load i32, ptr %8, align 4, !tbaa !5
  %1566 = mul nsw i32 17, %1565
  %1567 = add nsw i32 %1564, %1566
  %1568 = sext i32 %1567 to i64
  %1569 = getelementptr inbounds double, ptr %1563, i64 %1568
  %1570 = load double, ptr %1569, align 8, !tbaa !11
  %1571 = fmul double 0x40054B8F9B97CADD, %1570
  %1572 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1562, double %1571)
  %1573 = load ptr, ptr %7, align 8, !tbaa !9
  %1574 = load i32, ptr %12, align 4, !tbaa !5
  %1575 = load i32, ptr %8, align 4, !tbaa !5
  %1576 = mul nsw i32 26, %1575
  %1577 = add nsw i32 %1574, %1576
  %1578 = sext i32 %1577 to i64
  %1579 = getelementptr inbounds double, ptr %1573, i64 %1578
  %1580 = load double, ptr %1579, align 8, !tbaa !11
  %1581 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1580, double %1572)
  %1582 = load ptr, ptr %7, align 8, !tbaa !9
  %1583 = load i32, ptr %12, align 4, !tbaa !5
  %1584 = load i32, ptr %8, align 4, !tbaa !5
  %1585 = mul nsw i32 33, %1584
  %1586 = add nsw i32 %1583, %1585
  %1587 = sext i32 %1586 to i64
  %1588 = getelementptr inbounds double, ptr %1582, i64 %1587
  %1589 = load double, ptr %1588, align 8, !tbaa !11
  %1590 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1589, double %1581)
  %1591 = load ptr, ptr %7, align 8, !tbaa !9
  %1592 = load i32, ptr %12, align 4, !tbaa !5
  %1593 = load i32, ptr %8, align 4, !tbaa !5
  %1594 = mul nsw i32 44, %1593
  %1595 = add nsw i32 %1592, %1594
  %1596 = sext i32 %1595 to i64
  %1597 = getelementptr inbounds double, ptr %1591, i64 %1596
  %1598 = load double, ptr %1597, align 8, !tbaa !11
  %1599 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1598, double %1590)
  %1600 = load ptr, ptr %7, align 8, !tbaa !9
  %1601 = load i32, ptr %12, align 4, !tbaa !5
  %1602 = load i32, ptr %8, align 4, !tbaa !5
  %1603 = mul nsw i32 51, %1602
  %1604 = add nsw i32 %1601, %1603
  %1605 = sext i32 %1604 to i64
  %1606 = getelementptr inbounds double, ptr %1600, i64 %1605
  %1607 = load double, ptr %1606, align 8, !tbaa !11
  %1608 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1607, double %1599)
  store double %1608, ptr %11, align 8, !tbaa !11
  %1609 = load double, ptr %11, align 8, !tbaa !11
  %1610 = load ptr, ptr %9, align 8, !tbaa !9
  %1611 = load i32, ptr %12, align 4, !tbaa !5
  %1612 = load i32, ptr %10, align 4, !tbaa !5
  %1613 = mul nsw i32 24, %1612
  %1614 = add nsw i32 %1611, %1613
  %1615 = sext i32 %1614 to i64
  %1616 = getelementptr inbounds double, ptr %1610, i64 %1615
  %1617 = load double, ptr %1616, align 8, !tbaa !11
  %1618 = fadd double %1617, %1609
  store double %1618, ptr %1616, align 8, !tbaa !11
  %1619 = load ptr, ptr %7, align 8, !tbaa !9
  %1620 = load i32, ptr %12, align 4, !tbaa !5
  %1621 = load i32, ptr %8, align 4, !tbaa !5
  %1622 = mul nsw i32 7, %1621
  %1623 = add nsw i32 %1620, %1622
  %1624 = sext i32 %1623 to i64
  %1625 = getelementptr inbounds double, ptr %1619, i64 %1624
  %1626 = load double, ptr %1625, align 8, !tbaa !11
  %1627 = load ptr, ptr %7, align 8, !tbaa !9
  %1628 = load i32, ptr %12, align 4, !tbaa !5
  %1629 = load i32, ptr %8, align 4, !tbaa !5
  %1630 = mul nsw i32 16, %1629
  %1631 = add nsw i32 %1628, %1630
  %1632 = sext i32 %1631 to i64
  %1633 = getelementptr inbounds double, ptr %1627, i64 %1632
  %1634 = load double, ptr %1633, align 8, !tbaa !11
  %1635 = fmul double 0x40054B8F9B97CADD, %1634
  %1636 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1626, double %1635)
  %1637 = load ptr, ptr %7, align 8, !tbaa !9
  %1638 = load i32, ptr %12, align 4, !tbaa !5
  %1639 = load i32, ptr %8, align 4, !tbaa !5
  %1640 = mul nsw i32 26, %1639
  %1641 = add nsw i32 %1638, %1640
  %1642 = sext i32 %1641 to i64
  %1643 = getelementptr inbounds double, ptr %1637, i64 %1642
  %1644 = load double, ptr %1643, align 8, !tbaa !11
  %1645 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1644, double %1636)
  %1646 = load ptr, ptr %7, align 8, !tbaa !9
  %1647 = load i32, ptr %12, align 4, !tbaa !5
  %1648 = load i32, ptr %8, align 4, !tbaa !5
  %1649 = mul nsw i32 33, %1648
  %1650 = add nsw i32 %1647, %1649
  %1651 = sext i32 %1650 to i64
  %1652 = getelementptr inbounds double, ptr %1646, i64 %1651
  %1653 = load double, ptr %1652, align 8, !tbaa !11
  %1654 = call double @llvm.fmuladd.f64(double 0xBFE8000000000002, double %1653, double %1645)
  %1655 = load ptr, ptr %7, align 8, !tbaa !9
  %1656 = load i32, ptr %12, align 4, !tbaa !5
  %1657 = load i32, ptr %8, align 4, !tbaa !5
  %1658 = mul nsw i32 43, %1657
  %1659 = add nsw i32 %1656, %1658
  %1660 = sext i32 %1659 to i64
  %1661 = getelementptr inbounds double, ptr %1655, i64 %1660
  %1662 = load double, ptr %1661, align 8, !tbaa !11
  %1663 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1662, double %1654)
  %1664 = load ptr, ptr %7, align 8, !tbaa !9
  %1665 = load i32, ptr %12, align 4, !tbaa !5
  %1666 = load i32, ptr %8, align 4, !tbaa !5
  %1667 = mul nsw i32 52, %1666
  %1668 = add nsw i32 %1665, %1667
  %1669 = sext i32 %1668 to i64
  %1670 = getelementptr inbounds double, ptr %1664, i64 %1669
  %1671 = load double, ptr %1670, align 8, !tbaa !11
  %1672 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1671, double %1663)
  store double %1672, ptr %11, align 8, !tbaa !11
  %1673 = load double, ptr %11, align 8, !tbaa !11
  %1674 = load ptr, ptr %9, align 8, !tbaa !9
  %1675 = load i32, ptr %12, align 4, !tbaa !5
  %1676 = load i32, ptr %10, align 4, !tbaa !5
  %1677 = mul nsw i32 25, %1676
  %1678 = add nsw i32 %1675, %1677
  %1679 = sext i32 %1678 to i64
  %1680 = getelementptr inbounds double, ptr %1674, i64 %1679
  %1681 = load double, ptr %1680, align 8, !tbaa !11
  %1682 = fadd double %1681, %1673
  store double %1682, ptr %1680, align 8, !tbaa !11
  %1683 = load ptr, ptr %7, align 8, !tbaa !9
  %1684 = load i32, ptr %12, align 4, !tbaa !5
  %1685 = load i32, ptr %8, align 4, !tbaa !5
  %1686 = mul nsw i32 8, %1685
  %1687 = add nsw i32 %1684, %1686
  %1688 = sext i32 %1687 to i64
  %1689 = getelementptr inbounds double, ptr %1683, i64 %1688
  %1690 = load double, ptr %1689, align 8, !tbaa !11
  %1691 = load ptr, ptr %7, align 8, !tbaa !9
  %1692 = load i32, ptr %12, align 4, !tbaa !5
  %1693 = load i32, ptr %8, align 4, !tbaa !5
  %1694 = mul nsw i32 15, %1693
  %1695 = add nsw i32 %1692, %1694
  %1696 = sext i32 %1695 to i64
  %1697 = getelementptr inbounds double, ptr %1691, i64 %1696
  %1698 = load double, ptr %1697, align 8, !tbaa !11
  %1699 = fmul double 0x40054B8F9B97CADD, %1698
  %1700 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1690, double %1699)
  %1701 = load ptr, ptr %7, align 8, !tbaa !9
  %1702 = load i32, ptr %12, align 4, !tbaa !5
  %1703 = load i32, ptr %8, align 4, !tbaa !5
  %1704 = mul nsw i32 26, %1703
  %1705 = add nsw i32 %1702, %1704
  %1706 = sext i32 %1705 to i64
  %1707 = getelementptr inbounds double, ptr %1701, i64 %1706
  %1708 = load double, ptr %1707, align 8, !tbaa !11
  %1709 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1708, double %1700)
  %1710 = load ptr, ptr %7, align 8, !tbaa !9
  %1711 = load i32, ptr %12, align 4, !tbaa !5
  %1712 = load i32, ptr %8, align 4, !tbaa !5
  %1713 = mul nsw i32 33, %1712
  %1714 = add nsw i32 %1711, %1713
  %1715 = sext i32 %1714 to i64
  %1716 = getelementptr inbounds double, ptr %1710, i64 %1715
  %1717 = load double, ptr %1716, align 8, !tbaa !11
  %1718 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1717, double %1709)
  %1719 = load ptr, ptr %7, align 8, !tbaa !9
  %1720 = load i32, ptr %12, align 4, !tbaa !5
  %1721 = load i32, ptr %8, align 4, !tbaa !5
  %1722 = mul nsw i32 42, %1721
  %1723 = add nsw i32 %1720, %1722
  %1724 = sext i32 %1723 to i64
  %1725 = getelementptr inbounds double, ptr %1719, i64 %1724
  %1726 = load double, ptr %1725, align 8, !tbaa !11
  %1727 = call double @llvm.fmuladd.f64(double 0x3FD5A3832341A92A, double %1726, double %1718)
  %1728 = load ptr, ptr %7, align 8, !tbaa !9
  %1729 = load i32, ptr %12, align 4, !tbaa !5
  %1730 = load i32, ptr %8, align 4, !tbaa !5
  %1731 = mul nsw i32 53, %1730
  %1732 = add nsw i32 %1729, %1731
  %1733 = sext i32 %1732 to i64
  %1734 = getelementptr inbounds double, ptr %1728, i64 %1733
  %1735 = load double, ptr %1734, align 8, !tbaa !11
  %1736 = call double @llvm.fmuladd.f64(double 0x40054B8F9B97CADD, double %1735, double %1727)
  store double %1736, ptr %11, align 8, !tbaa !11
  %1737 = load double, ptr %11, align 8, !tbaa !11
  %1738 = load ptr, ptr %9, align 8, !tbaa !9
  %1739 = load i32, ptr %12, align 4, !tbaa !5
  %1740 = load i32, ptr %10, align 4, !tbaa !5
  %1741 = mul nsw i32 26, %1740
  %1742 = add nsw i32 %1739, %1741
  %1743 = sext i32 %1742 to i64
  %1744 = getelementptr inbounds double, ptr %1738, i64 %1743
  %1745 = load double, ptr %1744, align 8, !tbaa !11
  %1746 = fadd double %1745, %1737
  store double %1746, ptr %1744, align 8, !tbaa !11
  br label %1747

1747:                                             ; preds = %18
  %1748 = load i32, ptr %12, align 4, !tbaa !5
  %1749 = add nsw i32 %1748, 1
  store i32 %1749, ptr %12, align 4, !tbaa !5
  br label %13, !llvm.loop !13

1750:                                             ; preds = %17
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #3
  ret void
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #0

; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable
define dso_local void @gimmik_mm_cpu_10573732836836701890_b1(i32 noundef %0, ptr noalias noundef readonly %1, i32 noundef %2, ptr noalias nocapture noundef %3, i32 noundef %4) local_unnamed_addr #1 {
  %6 = icmp sgt i32 %0, 0
  br i1 %6, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %5
  %7 = mul nsw i32 %2, 11
  %8 = mul nsw i32 %2, 18
  %9 = mul nsw i32 %2, 29
  %10 = mul nsw i32 %2, 38
  %11 = mul nsw i32 %2, 45
  %12 = mul nsw i32 %2, 10
  %13 = mul nsw i32 %2, 37
  %14 = mul nsw i32 %2, 46
  %15 = shl nsw i32 %2, 1
  %16 = mul nsw i32 %2, 9
  %17 = mul nsw i32 %2, 36
  %18 = mul nsw i32 %2, 47
  %19 = shl nsw i32 %4, 1
  %20 = mul nsw i32 %2, 3
  %21 = mul nsw i32 %2, 14
  %22 = mul nsw i32 %2, 19
  %23 = mul nsw i32 %2, 28
  %24 = mul nsw i32 %4, 3
  %25 = shl nsw i32 %2, 2
  %26 = mul nsw i32 %2, 13
  %27 = shl nsw i32 %4, 2
  %28 = mul nsw i32 %2, 5
  %29 = mul nsw i32 %2, 12
  %30 = mul nsw i32 %4, 5
  %31 = mul nsw i32 %2, 6
  %32 = mul nsw i32 %2, 17
  %33 = mul nsw i32 %2, 20
  %34 = mul nsw i32 %2, 27
  %35 = mul nsw i32 %4, 6
  %36 = mul nsw i32 %2, 7
  %37 = shl nsw i32 %2, 4
  %38 = mul nsw i32 %4, 7
  %39 = shl nsw i32 %2, 3
  %40 = mul nsw i32 %2, 15
  %41 = shl nsw i32 %4, 3
  %42 = mul nsw i32 %2, 21
  %43 = shl nsw i32 %2, 5
  %44 = mul nsw i32 %2, 41
  %45 = mul nsw i32 %2, 48
  %46 = mul nsw i32 %4, 9
  %47 = mul nsw i32 %2, 40
  %48 = mul nsw i32 %2, 49
  %49 = mul nsw i32 %4, 10
  %50 = mul nsw i32 %2, 39
  %51 = mul nsw i32 %2, 50
  %52 = mul nsw i32 %4, 11
  %53 = mul nsw i32 %2, 22
  %54 = mul nsw i32 %2, 31
  %55 = mul nsw i32 %4, 12
  %56 = mul nsw i32 %4, 13
  %57 = mul nsw i32 %4, 14
  %58 = mul nsw i32 %2, 23
  %59 = mul nsw i32 %2, 30
  %60 = mul nsw i32 %4, 15
  %61 = shl nsw i32 %4, 4
  %62 = mul nsw i32 %4, 17
  %63 = mul nsw i32 %2, 24
  %64 = mul nsw i32 %2, 35
  %65 = mul nsw i32 %2, 44
  %66 = mul nsw i32 %2, 51
  %67 = mul nsw i32 %4, 18
  %68 = mul nsw i32 %2, 43
  %69 = mul nsw i32 %2, 52
  %70 = mul nsw i32 %4, 19
  %71 = mul nsw i32 %2, 42
  %72 = mul nsw i32 %2, 53
  %73 = mul nsw i32 %4, 20
  %74 = mul nsw i32 %2, 25
  %75 = mul nsw i32 %2, 34
  %76 = mul nsw i32 %4, 21
  %77 = mul nsw i32 %4, 22
  %78 = mul nsw i32 %4, 23
  %79 = mul nsw i32 %2, 26
  %80 = mul nsw i32 %2, 33
  %81 = mul nsw i32 %4, 24
  %82 = mul nsw i32 %4, 25
  %83 = mul nsw i32 %4, 26
  %84 = sext i32 %7 to i64
  %85 = sext i32 %8 to i64
  %86 = sext i32 %9 to i64
  %87 = sext i32 %10 to i64
  %88 = sext i32 %11 to i64
  %89 = sext i32 %2 to i64
  %90 = sext i32 %12 to i64
  %91 = sext i32 %13 to i64
  %92 = sext i32 %14 to i64
  %93 = sext i32 %4 to i64
  %94 = sext i32 %15 to i64
  %95 = sext i32 %16 to i64
  %96 = sext i32 %17 to i64
  %97 = sext i32 %18 to i64
  %98 = sext i32 %19 to i64
  %99 = sext i32 %20 to i64
  %100 = sext i32 %21 to i64
  %101 = sext i32 %22 to i64
  %102 = sext i32 %23 to i64
  %103 = sext i32 %24 to i64
  %104 = sext i32 %25 to i64
  %105 = sext i32 %26 to i64
  %106 = sext i32 %27 to i64
  %107 = sext i32 %28 to i64
  %108 = sext i32 %29 to i64
  %109 = sext i32 %30 to i64
  %110 = sext i32 %31 to i64
  %111 = sext i32 %32 to i64
  %112 = sext i32 %33 to i64
  %113 = sext i32 %34 to i64
  %114 = sext i32 %35 to i64
  %115 = sext i32 %36 to i64
  %116 = sext i32 %37 to i64
  %117 = sext i32 %38 to i64
  %118 = sext i32 %39 to i64
  %119 = sext i32 %40 to i64
  %120 = sext i32 %41 to i64
  %121 = sext i32 %42 to i64
  %122 = sext i32 %43 to i64
  %123 = sext i32 %44 to i64
  %124 = sext i32 %45 to i64
  %125 = sext i32 %46 to i64
  %126 = sext i32 %47 to i64
  %127 = sext i32 %48 to i64
  %128 = sext i32 %49 to i64
  %129 = sext i32 %50 to i64
  %130 = sext i32 %51 to i64
  %131 = sext i32 %52 to i64
  %132 = sext i32 %53 to i64
  %133 = sext i32 %54 to i64
  %134 = sext i32 %55 to i64
  %135 = sext i32 %56 to i64
  %136 = sext i32 %57 to i64
  %137 = sext i32 %58 to i64
  %138 = sext i32 %59 to i64
  %139 = sext i32 %60 to i64
  %140 = sext i32 %61 to i64
  %141 = sext i32 %62 to i64
  %142 = sext i32 %63 to i64
  %143 = sext i32 %64 to i64
  %144 = sext i32 %65 to i64
  %145 = sext i32 %66 to i64
  %146 = sext i32 %67 to i64
  %147 = sext i32 %68 to i64
  %148 = sext i32 %69 to i64
  %149 = sext i32 %70 to i64
  %150 = sext i32 %71 to i64
  %151 = sext i32 %72 to i64
  %152 = sext i32 %73 to i64
  %153 = sext i32 %74 to i64
  %154 = sext i32 %75 to i64
  %155 = sext i32 %76 to i64
  %156 = sext i32 %77 to i64
  %157 = sext i32 %78 to i64
  %158 = sext i32 %79 to i64
  %159 = sext i32 %80 to i64
  %160 = sext i32 %81 to i64
  %161 = sext i32 %82 to i64
  %162 = sext i32 %83 to i64
  %wide.trip.count = zext nneg i32 %0 to i64
  %invariant.gep = getelementptr double, ptr %1, i64 %84
  %invariant.gep598 = getelementptr double, ptr %1, i64 %85
  %invariant.gep600 = getelementptr double, ptr %1, i64 %86
  %invariant.gep602 = getelementptr double, ptr %1, i64 %87
  %invariant.gep604 = getelementptr double, ptr %1, i64 %88
  %invariant.gep606 = getelementptr double, ptr %1, i64 %89
  %invariant.gep608 = getelementptr double, ptr %1, i64 %90
  %invariant.gep610 = getelementptr double, ptr %1, i64 %91
  %invariant.gep612 = getelementptr double, ptr %1, i64 %92
  %invariant.gep614 = getelementptr double, ptr %3, i64 %93
  %invariant.gep616 = getelementptr double, ptr %1, i64 %94
  %invariant.gep618 = getelementptr double, ptr %1, i64 %95
  %invariant.gep620 = getelementptr double, ptr %1, i64 %96
  %invariant.gep622 = getelementptr double, ptr %1, i64 %97
  %invariant.gep624 = getelementptr double, ptr %3, i64 %98
  %invariant.gep626 = getelementptr double, ptr %1, i64 %99
  %invariant.gep628 = getelementptr double, ptr %1, i64 %100
  %invariant.gep630 = getelementptr double, ptr %1, i64 %101
  %invariant.gep632 = getelementptr double, ptr %1, i64 %102
  %invariant.gep634 = getelementptr double, ptr %3, i64 %103
  %invariant.gep636 = getelementptr double, ptr %1, i64 %104
  %invariant.gep638 = getelementptr double, ptr %1, i64 %105
  %invariant.gep640 = getelementptr double, ptr %3, i64 %106
  %invariant.gep642 = getelementptr double, ptr %1, i64 %107
  %invariant.gep644 = getelementptr double, ptr %1, i64 %108
  %invariant.gep646 = getelementptr double, ptr %3, i64 %109
  %invariant.gep648 = getelementptr double, ptr %1, i64 %110
  %invariant.gep650 = getelementptr double, ptr %1, i64 %111
  %invariant.gep652 = getelementptr double, ptr %1, i64 %112
  %invariant.gep654 = getelementptr double, ptr %1, i64 %113
  %invariant.gep656 = getelementptr double, ptr %3, i64 %114
  %invariant.gep658 = getelementptr double, ptr %1, i64 %115
  %invariant.gep660 = getelementptr double, ptr %1, i64 %116
  %invariant.gep662 = getelementptr double, ptr %3, i64 %117
  %invariant.gep664 = getelementptr double, ptr %1, i64 %118
  %invariant.gep666 = getelementptr double, ptr %1, i64 %119
  %invariant.gep668 = getelementptr double, ptr %3, i64 %120
  %invariant.gep670 = getelementptr double, ptr %1, i64 %121
  %invariant.gep672 = getelementptr double, ptr %1, i64 %122
  %invariant.gep674 = getelementptr double, ptr %1, i64 %123
  %invariant.gep676 = getelementptr double, ptr %1, i64 %124
  %invariant.gep678 = getelementptr double, ptr %3, i64 %125
  %invariant.gep680 = getelementptr double, ptr %1, i64 %126
  %invariant.gep682 = getelementptr double, ptr %1, i64 %127
  %invariant.gep684 = getelementptr double, ptr %3, i64 %128
  %invariant.gep686 = getelementptr double, ptr %1, i64 %129
  %invariant.gep688 = getelementptr double, ptr %1, i64 %130
  %invariant.gep690 = getelementptr double, ptr %3, i64 %131
  %invariant.gep692 = getelementptr double, ptr %1, i64 %132
  %invariant.gep694 = getelementptr double, ptr %1, i64 %133
  %invariant.gep696 = getelementptr double, ptr %3, i64 %134
  %invariant.gep698 = getelementptr double, ptr %3, i64 %135
  %invariant.gep700 = getelementptr double, ptr %3, i64 %136
  %invariant.gep702 = getelementptr double, ptr %1, i64 %137
  %invariant.gep704 = getelementptr double, ptr %1, i64 %138
  %invariant.gep706 = getelementptr double, ptr %3, i64 %139
  %invariant.gep708 = getelementptr double, ptr %3, i64 %140
  %invariant.gep710 = getelementptr double, ptr %3, i64 %141
  %invariant.gep712 = getelementptr double, ptr %1, i64 %142
  %invariant.gep714 = getelementptr double, ptr %1, i64 %143
  %invariant.gep716 = getelementptr double, ptr %1, i64 %144
  %invariant.gep718 = getelementptr double, ptr %1, i64 %145
  %invariant.gep720 = getelementptr double, ptr %3, i64 %146
  %invariant.gep722 = getelementptr double, ptr %1, i64 %147
  %invariant.gep724 = getelementptr double, ptr %1, i64 %148
  %invariant.gep726 = getelementptr double, ptr %3, i64 %149
  %invariant.gep728 = getelementptr double, ptr %1, i64 %150
  %invariant.gep730 = getelementptr double, ptr %1, i64 %151
  %invariant.gep732 = getelementptr double, ptr %3, i64 %152
  %invariant.gep734 = getelementptr double, ptr %1, i64 %153
  %invariant.gep736 = getelementptr double, ptr %1, i64 %154
  %invariant.gep738 = getelementptr double, ptr %3, i64 %155
  %invariant.gep740 = getelementptr double, ptr %3, i64 %156
  %invariant.gep742 = getelementptr double, ptr %3, i64 %157
  %invariant.gep744 = getelementptr double, ptr %1, i64 %158
  %invariant.gep746 = getelementptr double, ptr %1, i64 %159
  %invariant.gep748 = getelementptr double, ptr %3, i64 %160
  %invariant.gep750 = getelementptr double, ptr %3, i64 %161
  %invariant.gep752 = getelementptr double, ptr %3, i64 %162
  br label %163

._crit_edge:                                      ; preds = %163, %5
  ret void

163:                                              ; preds = %.lr.ph, %163
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %163 ]
  %164 = getelementptr inbounds double, ptr %1, i64 %indvars.iv
  %165 = load double, ptr %164, align 8, !tbaa !5
  %gep = getelementptr double, ptr %invariant.gep, i64 %indvars.iv
  %166 = load double, ptr %gep, align 8, !tbaa !5
  %167 = fmul double %166, 0x3FD5A3832341A92A
  %168 = tail call double @llvm.fmuladd.f64(double %165, double 0x40054B8F9B97CADD, double %167)
  %gep599 = getelementptr double, ptr %invariant.gep598, i64 %indvars.iv
  %169 = load double, ptr %gep599, align 8, !tbaa !5
  %170 = tail call double @llvm.fmuladd.f64(double %169, double 0x40054B8F9B97CADD, double %168)
  %gep601 = getelementptr double, ptr %invariant.gep600, i64 %indvars.iv
  %171 = load double, ptr %gep601, align 8, !tbaa !5
  %172 = tail call double @llvm.fmuladd.f64(double %171, double 0x3FD5A3832341A92A, double %170)
  %gep603 = getelementptr double, ptr %invariant.gep602, i64 %indvars.iv
  %173 = load double, ptr %gep603, align 8, !tbaa !5
  %174 = tail call double @llvm.fmuladd.f64(double %173, double 0x40054B8F9B97CADD, double %172)
  %gep605 = getelementptr double, ptr %invariant.gep604, i64 %indvars.iv
  %175 = load double, ptr %gep605, align 8, !tbaa !5
  %176 = tail call double @llvm.fmuladd.f64(double %175, double 0x3FD5A3832341A92A, double %174)
  %177 = getelementptr inbounds double, ptr %3, i64 %indvars.iv
  %178 = load double, ptr %177, align 8, !tbaa !5
  %179 = fadd double %178, %176
  store double %179, ptr %177, align 8, !tbaa !5
  %gep607 = getelementptr double, ptr %invariant.gep606, i64 %indvars.iv
  %180 = load double, ptr %gep607, align 8, !tbaa !5
  %gep609 = getelementptr double, ptr %invariant.gep608, i64 %indvars.iv
  %181 = load double, ptr %gep609, align 8, !tbaa !5
  %182 = fmul double %181, 0x3FD5A3832341A92A
  %183 = tail call double @llvm.fmuladd.f64(double %180, double 0x40054B8F9B97CADD, double %182)
  %184 = tail call double @llvm.fmuladd.f64(double %169, double 0xBFE8000000000002, double %183)
  %185 = tail call double @llvm.fmuladd.f64(double %171, double 0xBFE8000000000002, double %184)
  %gep611 = getelementptr double, ptr %invariant.gep610, i64 %indvars.iv
  %186 = load double, ptr %gep611, align 8, !tbaa !5
  %187 = tail call double @llvm.fmuladd.f64(double %186, double 0x40054B8F9B97CADD, double %185)
  %gep613 = getelementptr double, ptr %invariant.gep612, i64 %indvars.iv
  %188 = load double, ptr %gep613, align 8, !tbaa !5
  %189 = tail call double @llvm.fmuladd.f64(double %188, double 0x3FD5A3832341A92A, double %187)
  %gep615 = getelementptr double, ptr %invariant.gep614, i64 %indvars.iv
  %190 = load double, ptr %gep615, align 8, !tbaa !5
  %191 = fadd double %190, %189
  store double %191, ptr %gep615, align 8, !tbaa !5
  %gep617 = getelementptr double, ptr %invariant.gep616, i64 %indvars.iv
  %192 = load double, ptr %gep617, align 8, !tbaa !5
  %gep619 = getelementptr double, ptr %invariant.gep618, i64 %indvars.iv
  %193 = load double, ptr %gep619, align 8, !tbaa !5
  %194 = fmul double %193, 0x3FD5A3832341A92A
  %195 = tail call double @llvm.fmuladd.f64(double %192, double 0x40054B8F9B97CADD, double %194)
  %196 = tail call double @llvm.fmuladd.f64(double %169, double 0x3FD5A3832341A92A, double %195)
  %197 = tail call double @llvm.fmuladd.f64(double %171, double 0x40054B8F9B97CADD, double %196)
  %gep621 = getelementptr double, ptr %invariant.gep620, i64 %indvars.iv
  %198 = load double, ptr %gep621, align 8, !tbaa !5
  %199 = tail call double @llvm.fmuladd.f64(double %198, double 0x40054B8F9B97CADD, double %197)
  %gep623 = getelementptr double, ptr %invariant.gep622, i64 %indvars.iv
  %200 = load double, ptr %gep623, align 8, !tbaa !5
  %201 = tail call double @llvm.fmuladd.f64(double %200, double 0x3FD5A3832341A92A, double %199)
  %gep625 = getelementptr double, ptr %invariant.gep624, i64 %indvars.iv
  %202 = load double, ptr %gep625, align 8, !tbaa !5
  %203 = fadd double %202, %201
  store double %203, ptr %gep625, align 8, !tbaa !5
  %gep627 = getelementptr double, ptr %invariant.gep626, i64 %indvars.iv
  %204 = load double, ptr %gep627, align 8, !tbaa !5
  %gep629 = getelementptr double, ptr %invariant.gep628, i64 %indvars.iv
  %205 = load double, ptr %gep629, align 8, !tbaa !5
  %206 = fmul double %205, 0x3FD5A3832341A92A
  %207 = tail call double @llvm.fmuladd.f64(double %204, double 0x40054B8F9B97CADD, double %206)
  %gep631 = getelementptr double, ptr %invariant.gep630, i64 %indvars.iv
  %208 = load double, ptr %gep631, align 8, !tbaa !5
  %209 = tail call double @llvm.fmuladd.f64(double %208, double 0x40054B8F9B97CADD, double %207)
  %gep633 = getelementptr double, ptr %invariant.gep632, i64 %indvars.iv
  %210 = load double, ptr %gep633, align 8, !tbaa !5
  %211 = tail call double @llvm.fmuladd.f64(double %210, double 0x3FD5A3832341A92A, double %209)
  %212 = tail call double @llvm.fmuladd.f64(double %173, double 0xBFE8000000000002, double %211)
  %213 = tail call double @llvm.fmuladd.f64(double %175, double 0xBFE8000000000002, double %212)
  %gep635 = getelementptr double, ptr %invariant.gep634, i64 %indvars.iv
  %214 = load double, ptr %gep635, align 8, !tbaa !5
  %215 = fadd double %214, %213
  store double %215, ptr %gep635, align 8, !tbaa !5
  %gep637 = getelementptr double, ptr %invariant.gep636, i64 %indvars.iv
  %216 = load double, ptr %gep637, align 8, !tbaa !5
  %gep639 = getelementptr double, ptr %invariant.gep638, i64 %indvars.iv
  %217 = load double, ptr %gep639, align 8, !tbaa !5
  %218 = fmul double %217, 0x3FD5A3832341A92A
  %219 = tail call double @llvm.fmuladd.f64(double %216, double 0x40054B8F9B97CADD, double %218)
  %220 = tail call double @llvm.fmuladd.f64(double %208, double 0xBFE8000000000002, double %219)
  %221 = tail call double @llvm.fmuladd.f64(double %210, double 0xBFE8000000000002, double %220)
  %222 = tail call double @llvm.fmuladd.f64(double %186, double 0xBFE8000000000002, double %221)
  %223 = tail call double @llvm.fmuladd.f64(double %188, double 0xBFE8000000000002, double %222)
  %gep641 = getelementptr double, ptr %invariant.gep640, i64 %indvars.iv
  %224 = load double, ptr %gep641, align 8, !tbaa !5
  %225 = fadd double %224, %223
  store double %225, ptr %gep641, align 8, !tbaa !5
  %gep643 = getelementptr double, ptr %invariant.gep642, i64 %indvars.iv
  %226 = load double, ptr %gep643, align 8, !tbaa !5
  %gep645 = getelementptr double, ptr %invariant.gep644, i64 %indvars.iv
  %227 = load double, ptr %gep645, align 8, !tbaa !5
  %228 = fmul double %227, 0x3FD5A3832341A92A
  %229 = tail call double @llvm.fmuladd.f64(double %226, double 0x40054B8F9B97CADD, double %228)
  %230 = tail call double @llvm.fmuladd.f64(double %208, double 0x3FD5A3832341A92A, double %229)
  %231 = tail call double @llvm.fmuladd.f64(double %210, double 0x40054B8F9B97CADD, double %230)
  %232 = tail call double @llvm.fmuladd.f64(double %198, double 0xBFE8000000000002, double %231)
  %233 = tail call double @llvm.fmuladd.f64(double %200, double 0xBFE8000000000002, double %232)
  %gep647 = getelementptr double, ptr %invariant.gep646, i64 %indvars.iv
  %234 = load double, ptr %gep647, align 8, !tbaa !5
  %235 = fadd double %234, %233
  store double %235, ptr %gep647, align 8, !tbaa !5
  %gep649 = getelementptr double, ptr %invariant.gep648, i64 %indvars.iv
  %236 = load double, ptr %gep649, align 8, !tbaa !5
  %gep651 = getelementptr double, ptr %invariant.gep650, i64 %indvars.iv
  %237 = load double, ptr %gep651, align 8, !tbaa !5
  %238 = fmul double %237, 0x3FD5A3832341A92A
  %239 = tail call double @llvm.fmuladd.f64(double %236, double 0x40054B8F9B97CADD, double %238)
  %gep653 = getelementptr double, ptr %invariant.gep652, i64 %indvars.iv
  %240 = load double, ptr %gep653, align 8, !tbaa !5
  %241 = tail call double @llvm.fmuladd.f64(double %240, double 0x40054B8F9B97CADD, double %239)
  %gep655 = getelementptr double, ptr %invariant.gep654, i64 %indvars.iv
  %242 = load double, ptr %gep655, align 8, !tbaa !5
  %243 = tail call double @llvm.fmuladd.f64(double %242, double 0x3FD5A3832341A92A, double %241)
  %244 = tail call double @llvm.fmuladd.f64(double %173, double 0x3FD5A3832341A92A, double %243)
  %245 = tail call double @llvm.fmuladd.f64(double %175, double 0x40054B8F9B97CADD, double %244)
  %gep657 = getelementptr double, ptr %invariant.gep656, i64 %indvars.iv
  %246 = load double, ptr %gep657, align 8, !tbaa !5
  %247 = fadd double %246, %245
  store double %247, ptr %gep657, align 8, !tbaa !5
  %gep659 = getelementptr double, ptr %invariant.gep658, i64 %indvars.iv
  %248 = load double, ptr %gep659, align 8, !tbaa !5
  %gep661 = getelementptr double, ptr %invariant.gep660, i64 %indvars.iv
  %249 = load double, ptr %gep661, align 8, !tbaa !5
  %250 = fmul double %249, 0x3FD5A3832341A92A
  %251 = tail call double @llvm.fmuladd.f64(double %248, double 0x40054B8F9B97CADD, double %250)
  %252 = tail call double @llvm.fmuladd.f64(double %240, double 0xBFE8000000000002, double %251)
  %253 = tail call double @llvm.fmuladd.f64(double %242, double 0xBFE8000000000002, double %252)
  %254 = tail call double @llvm.fmuladd.f64(double %186, double 0x3FD5A3832341A92A, double %253)
  %255 = tail call double @llvm.fmuladd.f64(double %188, double 0x40054B8F9B97CADD, double %254)
  %gep663 = getelementptr double, ptr %invariant.gep662, i64 %indvars.iv
  %256 = load double, ptr %gep663, align 8, !tbaa !5
  %257 = fadd double %256, %255
  store double %257, ptr %gep663, align 8, !tbaa !5
  %gep665 = getelementptr double, ptr %invariant.gep664, i64 %indvars.iv
  %258 = load double, ptr %gep665, align 8, !tbaa !5
  %gep667 = getelementptr double, ptr %invariant.gep666, i64 %indvars.iv
  %259 = load double, ptr %gep667, align 8, !tbaa !5
  %260 = fmul double %259, 0x3FD5A3832341A92A
  %261 = tail call double @llvm.fmuladd.f64(double %258, double 0x40054B8F9B97CADD, double %260)
  %262 = tail call double @llvm.fmuladd.f64(double %240, double 0x3FD5A3832341A92A, double %261)
  %263 = tail call double @llvm.fmuladd.f64(double %242, double 0x40054B8F9B97CADD, double %262)
  %264 = tail call double @llvm.fmuladd.f64(double %198, double 0x3FD5A3832341A92A, double %263)
  %265 = tail call double @llvm.fmuladd.f64(double %200, double 0x40054B8F9B97CADD, double %264)
  %gep669 = getelementptr double, ptr %invariant.gep668, i64 %indvars.iv
  %266 = load double, ptr %gep669, align 8, !tbaa !5
  %267 = fadd double %266, %265
  store double %267, ptr %gep669, align 8, !tbaa !5
  %268 = fmul double %166, 0xBFE8000000000002
  %269 = tail call double @llvm.fmuladd.f64(double %165, double 0xBFE8000000000002, double %268)
  %gep671 = getelementptr double, ptr %invariant.gep670, i64 %indvars.iv
  %270 = load double, ptr %gep671, align 8, !tbaa !5
  %271 = tail call double @llvm.fmuladd.f64(double %270, double 0x40054B8F9B97CADD, double %269)
  %gep673 = getelementptr double, ptr %invariant.gep672, i64 %indvars.iv
  %272 = load double, ptr %gep673, align 8, !tbaa !5
  %273 = tail call double @llvm.fmuladd.f64(double %272, double 0x3FD5A3832341A92A, double %271)
  %gep675 = getelementptr double, ptr %invariant.gep674, i64 %indvars.iv
  %274 = load double, ptr %gep675, align 8, !tbaa !5
  %275 = tail call double @llvm.fmuladd.f64(double %274, double 0x40054B8F9B97CADD, double %273)
  %gep677 = getelementptr double, ptr %invariant.gep676, i64 %indvars.iv
  %276 = load double, ptr %gep677, align 8, !tbaa !5
  %277 = tail call double @llvm.fmuladd.f64(double %276, double 0x3FD5A3832341A92A, double %275)
  %gep679 = getelementptr double, ptr %invariant.gep678, i64 %indvars.iv
  %278 = load double, ptr %gep679, align 8, !tbaa !5
  %279 = fadd double %278, %277
  store double %279, ptr %gep679, align 8, !tbaa !5
  %280 = fmul double %181, 0xBFE8000000000002
  %281 = tail call double @llvm.fmuladd.f64(double %180, double 0xBFE8000000000002, double %280)
  %282 = tail call double @llvm.fmuladd.f64(double %270, double 0xBFE8000000000002, double %281)
  %283 = tail call double @llvm.fmuladd.f64(double %272, double 0xBFE8000000000002, double %282)
  %gep681 = getelementptr double, ptr %invariant.gep680, i64 %indvars.iv
  %284 = load double, ptr %gep681, align 8, !tbaa !5
  %285 = tail call double @llvm.fmuladd.f64(double %284, double 0x40054B8F9B97CADD, double %283)
  %gep683 = getelementptr double, ptr %invariant.gep682, i64 %indvars.iv
  %286 = load double, ptr %gep683, align 8, !tbaa !5
  %287 = tail call double @llvm.fmuladd.f64(double %286, double 0x3FD5A3832341A92A, double %285)
  %gep685 = getelementptr double, ptr %invariant.gep684, i64 %indvars.iv
  %288 = load double, ptr %gep685, align 8, !tbaa !5
  %289 = fadd double %288, %287
  store double %289, ptr %gep685, align 8, !tbaa !5
  %290 = fmul double %193, 0xBFE8000000000002
  %291 = tail call double @llvm.fmuladd.f64(double %192, double 0xBFE8000000000002, double %290)
  %292 = tail call double @llvm.fmuladd.f64(double %270, double 0x3FD5A3832341A92A, double %291)
  %293 = tail call double @llvm.fmuladd.f64(double %272, double 0x40054B8F9B97CADD, double %292)
  %gep687 = getelementptr double, ptr %invariant.gep686, i64 %indvars.iv
  %294 = load double, ptr %gep687, align 8, !tbaa !5
  %295 = tail call double @llvm.fmuladd.f64(double %294, double 0x40054B8F9B97CADD, double %293)
  %gep689 = getelementptr double, ptr %invariant.gep688, i64 %indvars.iv
  %296 = load double, ptr %gep689, align 8, !tbaa !5
  %297 = tail call double @llvm.fmuladd.f64(double %296, double 0x3FD5A3832341A92A, double %295)
  %gep691 = getelementptr double, ptr %invariant.gep690, i64 %indvars.iv
  %298 = load double, ptr %gep691, align 8, !tbaa !5
  %299 = fadd double %298, %297
  store double %299, ptr %gep691, align 8, !tbaa !5
  %300 = fmul double %205, 0xBFE8000000000002
  %301 = tail call double @llvm.fmuladd.f64(double %204, double 0xBFE8000000000002, double %300)
  %gep693 = getelementptr double, ptr %invariant.gep692, i64 %indvars.iv
  %302 = load double, ptr %gep693, align 8, !tbaa !5
  %303 = tail call double @llvm.fmuladd.f64(double %302, double 0x40054B8F9B97CADD, double %301)
  %gep695 = getelementptr double, ptr %invariant.gep694, i64 %indvars.iv
  %304 = load double, ptr %gep695, align 8, !tbaa !5
  %305 = tail call double @llvm.fmuladd.f64(double %304, double 0x3FD5A3832341A92A, double %303)
  %306 = tail call double @llvm.fmuladd.f64(double %274, double 0xBFE8000000000002, double %305)
  %307 = tail call double @llvm.fmuladd.f64(double %276, double 0xBFE8000000000002, double %306)
  %gep697 = getelementptr double, ptr %invariant.gep696, i64 %indvars.iv
  %308 = load double, ptr %gep697, align 8, !tbaa !5
  %309 = fadd double %308, %307
  store double %309, ptr %gep697, align 8, !tbaa !5
  %310 = fmul double %217, 0xBFE8000000000002
  %311 = tail call double @llvm.fmuladd.f64(double %216, double 0xBFE8000000000002, double %310)
  %312 = tail call double @llvm.fmuladd.f64(double %302, double 0xBFE8000000000002, double %311)
  %313 = tail call double @llvm.fmuladd.f64(double %304, double 0xBFE8000000000002, double %312)
  %314 = tail call double @llvm.fmuladd.f64(double %284, double 0xBFE8000000000002, double %313)
  %315 = tail call double @llvm.fmuladd.f64(double %286, double 0xBFE8000000000002, double %314)
  %gep699 = getelementptr double, ptr %invariant.gep698, i64 %indvars.iv
  %316 = load double, ptr %gep699, align 8, !tbaa !5
  %317 = fadd double %316, %315
  store double %317, ptr %gep699, align 8, !tbaa !5
  %318 = fmul double %227, 0xBFE8000000000002
  %319 = tail call double @llvm.fmuladd.f64(double %226, double 0xBFE8000000000002, double %318)
  %320 = tail call double @llvm.fmuladd.f64(double %302, double 0x3FD5A3832341A92A, double %319)
  %321 = tail call double @llvm.fmuladd.f64(double %304, double 0x40054B8F9B97CADD, double %320)
  %322 = tail call double @llvm.fmuladd.f64(double %294, double 0xBFE8000000000002, double %321)
  %323 = tail call double @llvm.fmuladd.f64(double %296, double 0xBFE8000000000002, double %322)
  %gep701 = getelementptr double, ptr %invariant.gep700, i64 %indvars.iv
  %324 = load double, ptr %gep701, align 8, !tbaa !5
  %325 = fadd double %323, %324
  store double %325, ptr %gep701, align 8, !tbaa !5
  %326 = fmul double %237, 0xBFE8000000000002
  %327 = tail call double @llvm.fmuladd.f64(double %236, double 0xBFE8000000000002, double %326)
  %gep703 = getelementptr double, ptr %invariant.gep702, i64 %indvars.iv
  %328 = load double, ptr %gep703, align 8, !tbaa !5
  %329 = tail call double @llvm.fmuladd.f64(double %328, double 0x40054B8F9B97CADD, double %327)
  %gep705 = getelementptr double, ptr %invariant.gep704, i64 %indvars.iv
  %330 = load double, ptr %gep705, align 8, !tbaa !5
  %331 = tail call double @llvm.fmuladd.f64(double %330, double 0x3FD5A3832341A92A, double %329)
  %332 = tail call double @llvm.fmuladd.f64(double %274, double 0x3FD5A3832341A92A, double %331)
  %333 = tail call double @llvm.fmuladd.f64(double %276, double 0x40054B8F9B97CADD, double %332)
  %gep707 = getelementptr double, ptr %invariant.gep706, i64 %indvars.iv
  %334 = load double, ptr %gep707, align 8, !tbaa !5
  %335 = fadd double %334, %333
  store double %335, ptr %gep707, align 8, !tbaa !5
  %336 = fmul double %249, 0xBFE8000000000002
  %337 = tail call double @llvm.fmuladd.f64(double %248, double 0xBFE8000000000002, double %336)
  %338 = tail call double @llvm.fmuladd.f64(double %328, double 0xBFE8000000000002, double %337)
  %339 = tail call double @llvm.fmuladd.f64(double %330, double 0xBFE8000000000002, double %338)
  %340 = tail call double @llvm.fmuladd.f64(double %284, double 0x3FD5A3832341A92A, double %339)
  %341 = tail call double @llvm.fmuladd.f64(double %286, double 0x40054B8F9B97CADD, double %340)
  %gep709 = getelementptr double, ptr %invariant.gep708, i64 %indvars.iv
  %342 = load double, ptr %gep709, align 8, !tbaa !5
  %343 = fadd double %342, %341
  store double %343, ptr %gep709, align 8, !tbaa !5
  %344 = fmul double %259, 0xBFE8000000000002
  %345 = tail call double @llvm.fmuladd.f64(double %258, double 0xBFE8000000000002, double %344)
  %346 = tail call double @llvm.fmuladd.f64(double %328, double 0x3FD5A3832341A92A, double %345)
  %347 = tail call double @llvm.fmuladd.f64(double %330, double 0x40054B8F9B97CADD, double %346)
  %348 = tail call double @llvm.fmuladd.f64(double %294, double 0x3FD5A3832341A92A, double %347)
  %349 = tail call double @llvm.fmuladd.f64(double %296, double 0x40054B8F9B97CADD, double %348)
  %gep711 = getelementptr double, ptr %invariant.gep710, i64 %indvars.iv
  %350 = load double, ptr %gep711, align 8, !tbaa !5
  %351 = fadd double %349, %350
  store double %351, ptr %gep711, align 8, !tbaa !5
  %352 = fmul double %166, 0x40054B8F9B97CADD
  %353 = tail call double @llvm.fmuladd.f64(double %165, double 0x3FD5A3832341A92A, double %352)
  %gep713 = getelementptr double, ptr %invariant.gep712, i64 %indvars.iv
  %354 = load double, ptr %gep713, align 8, !tbaa !5
  %355 = tail call double @llvm.fmuladd.f64(double %354, double 0x40054B8F9B97CADD, double %353)
  %gep715 = getelementptr double, ptr %invariant.gep714, i64 %indvars.iv
  %356 = load double, ptr %gep715, align 8, !tbaa !5
  %357 = tail call double @llvm.fmuladd.f64(double %356, double 0x3FD5A3832341A92A, double %355)
  %gep717 = getelementptr double, ptr %invariant.gep716, i64 %indvars.iv
  %358 = load double, ptr %gep717, align 8, !tbaa !5
  %359 = tail call double @llvm.fmuladd.f64(double %358, double 0x40054B8F9B97CADD, double %357)
  %gep719 = getelementptr double, ptr %invariant.gep718, i64 %indvars.iv
  %360 = load double, ptr %gep719, align 8, !tbaa !5
  %361 = tail call double @llvm.fmuladd.f64(double %360, double 0x3FD5A3832341A92A, double %359)
  %gep721 = getelementptr double, ptr %invariant.gep720, i64 %indvars.iv
  %362 = load double, ptr %gep721, align 8, !tbaa !5
  %363 = fadd double %362, %361
  store double %363, ptr %gep721, align 8, !tbaa !5
  %364 = fmul double %181, 0x40054B8F9B97CADD
  %365 = tail call double @llvm.fmuladd.f64(double %180, double 0x3FD5A3832341A92A, double %364)
  %366 = tail call double @llvm.fmuladd.f64(double %354, double 0xBFE8000000000002, double %365)
  %367 = tail call double @llvm.fmuladd.f64(double %356, double 0xBFE8000000000002, double %366)
  %gep723 = getelementptr double, ptr %invariant.gep722, i64 %indvars.iv
  %368 = load double, ptr %gep723, align 8, !tbaa !5
  %369 = tail call double @llvm.fmuladd.f64(double %368, double 0x40054B8F9B97CADD, double %367)
  %gep725 = getelementptr double, ptr %invariant.gep724, i64 %indvars.iv
  %370 = load double, ptr %gep725, align 8, !tbaa !5
  %371 = tail call double @llvm.fmuladd.f64(double %370, double 0x3FD5A3832341A92A, double %369)
  %gep727 = getelementptr double, ptr %invariant.gep726, i64 %indvars.iv
  %372 = load double, ptr %gep727, align 8, !tbaa !5
  %373 = fadd double %372, %371
  store double %373, ptr %gep727, align 8, !tbaa !5
  %374 = fmul double %193, 0x40054B8F9B97CADD
  %375 = tail call double @llvm.fmuladd.f64(double %192, double 0x3FD5A3832341A92A, double %374)
  %376 = tail call double @llvm.fmuladd.f64(double %354, double 0x3FD5A3832341A92A, double %375)
  %377 = tail call double @llvm.fmuladd.f64(double %356, double 0x40054B8F9B97CADD, double %376)
  %gep729 = getelementptr double, ptr %invariant.gep728, i64 %indvars.iv
  %378 = load double, ptr %gep729, align 8, !tbaa !5
  %379 = tail call double @llvm.fmuladd.f64(double %378, double 0x40054B8F9B97CADD, double %377)
  %gep731 = getelementptr double, ptr %invariant.gep730, i64 %indvars.iv
  %380 = load double, ptr %gep731, align 8, !tbaa !5
  %381 = tail call double @llvm.fmuladd.f64(double %380, double 0x3FD5A3832341A92A, double %379)
  %gep733 = getelementptr double, ptr %invariant.gep732, i64 %indvars.iv
  %382 = load double, ptr %gep733, align 8, !tbaa !5
  %383 = fadd double %382, %381
  store double %383, ptr %gep733, align 8, !tbaa !5
  %384 = fmul double %205, 0x40054B8F9B97CADD
  %385 = tail call double @llvm.fmuladd.f64(double %204, double 0x3FD5A3832341A92A, double %384)
  %gep735 = getelementptr double, ptr %invariant.gep734, i64 %indvars.iv
  %386 = load double, ptr %gep735, align 8, !tbaa !5
  %387 = tail call double @llvm.fmuladd.f64(double %386, double 0x40054B8F9B97CADD, double %385)
  %gep737 = getelementptr double, ptr %invariant.gep736, i64 %indvars.iv
  %388 = load double, ptr %gep737, align 8, !tbaa !5
  %389 = tail call double @llvm.fmuladd.f64(double %388, double 0x3FD5A3832341A92A, double %387)
  %390 = tail call double @llvm.fmuladd.f64(double %358, double 0xBFE8000000000002, double %389)
  %391 = tail call double @llvm.fmuladd.f64(double %360, double 0xBFE8000000000002, double %390)
  %gep739 = getelementptr double, ptr %invariant.gep738, i64 %indvars.iv
  %392 = load double, ptr %gep739, align 8, !tbaa !5
  %393 = fadd double %392, %391
  store double %393, ptr %gep739, align 8, !tbaa !5
  %394 = fmul double %217, 0x40054B8F9B97CADD
  %395 = tail call double @llvm.fmuladd.f64(double %216, double 0x3FD5A3832341A92A, double %394)
  %396 = tail call double @llvm.fmuladd.f64(double %386, double 0xBFE8000000000002, double %395)
  %397 = tail call double @llvm.fmuladd.f64(double %388, double 0xBFE8000000000002, double %396)
  %398 = tail call double @llvm.fmuladd.f64(double %368, double 0xBFE8000000000002, double %397)
  %399 = tail call double @llvm.fmuladd.f64(double %370, double 0xBFE8000000000002, double %398)
  %gep741 = getelementptr double, ptr %invariant.gep740, i64 %indvars.iv
  %400 = load double, ptr %gep741, align 8, !tbaa !5
  %401 = fadd double %400, %399
  store double %401, ptr %gep741, align 8, !tbaa !5
  %402 = fmul double %227, 0x40054B8F9B97CADD
  %403 = tail call double @llvm.fmuladd.f64(double %226, double 0x3FD5A3832341A92A, double %402)
  %404 = tail call double @llvm.fmuladd.f64(double %386, double 0x3FD5A3832341A92A, double %403)
  %405 = tail call double @llvm.fmuladd.f64(double %388, double 0x40054B8F9B97CADD, double %404)
  %406 = tail call double @llvm.fmuladd.f64(double %378, double 0xBFE8000000000002, double %405)
  %407 = tail call double @llvm.fmuladd.f64(double %380, double 0xBFE8000000000002, double %406)
  %gep743 = getelementptr double, ptr %invariant.gep742, i64 %indvars.iv
  %408 = load double, ptr %gep743, align 8, !tbaa !5
  %409 = fadd double %407, %408
  store double %409, ptr %gep743, align 8, !tbaa !5
  %410 = fmul double %237, 0x40054B8F9B97CADD
  %411 = tail call double @llvm.fmuladd.f64(double %236, double 0x3FD5A3832341A92A, double %410)
  %gep745 = getelementptr double, ptr %invariant.gep744, i64 %indvars.iv
  %412 = load double, ptr %gep745, align 8, !tbaa !5
  %413 = tail call double @llvm.fmuladd.f64(double %412, double 0x40054B8F9B97CADD, double %411)
  %gep747 = getelementptr double, ptr %invariant.gep746, i64 %indvars.iv
  %414 = load double, ptr %gep747, align 8, !tbaa !5
  %415 = tail call double @llvm.fmuladd.f64(double %414, double 0x3FD5A3832341A92A, double %413)
  %416 = tail call double @llvm.fmuladd.f64(double %358, double 0x3FD5A3832341A92A, double %415)
  %417 = tail call double @llvm.fmuladd.f64(double %360, double 0x40054B8F9B97CADD, double %416)
  %gep749 = getelementptr double, ptr %invariant.gep748, i64 %indvars.iv
  %418 = load double, ptr %gep749, align 8, !tbaa !5
  %419 = fadd double %418, %417
  store double %419, ptr %gep749, align 8, !tbaa !5
  %420 = fmul double %249, 0x40054B8F9B97CADD
  %421 = tail call double @llvm.fmuladd.f64(double %248, double 0x3FD5A3832341A92A, double %420)
  %422 = tail call double @llvm.fmuladd.f64(double %412, double 0xBFE8000000000002, double %421)
  %423 = tail call double @llvm.fmuladd.f64(double %414, double 0xBFE8000000000002, double %422)
  %424 = tail call double @llvm.fmuladd.f64(double %368, double 0x3FD5A3832341A92A, double %423)
  %425 = tail call double @llvm.fmuladd.f64(double %370, double 0x40054B8F9B97CADD, double %424)
  %gep751 = getelementptr double, ptr %invariant.gep750, i64 %indvars.iv
  %426 = load double, ptr %gep751, align 8, !tbaa !5
  %427 = fadd double %426, %425
  store double %427, ptr %gep751, align 8, !tbaa !5
  %428 = fmul double %259, 0x40054B8F9B97CADD
  %429 = tail call double @llvm.fmuladd.f64(double %258, double 0x3FD5A3832341A92A, double %428)
  %430 = tail call double @llvm.fmuladd.f64(double %412, double 0x3FD5A3832341A92A, double %429)
  %431 = tail call double @llvm.fmuladd.f64(double %414, double 0x40054B8F9B97CADD, double %430)
  %432 = tail call double @llvm.fmuladd.f64(double %378, double 0x3FD5A3832341A92A, double %431)
  %433 = tail call double @llvm.fmuladd.f64(double %380, double 0x40054B8F9B97CADD, double %432)
  %gep753 = getelementptr double, ptr %invariant.gep752, i64 %indvars.iv
  %434 = load double, ptr %gep753, align 8, !tbaa !5
  %435 = fadd double %433, %434
  store double %435, ptr %gep753, align 8, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %163, !llvm.loop !9
}

attributes #0 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass