; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (dlarfx)

; 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"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @dlarfx_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) #0 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca i32, align 4
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store ptr %6, ptr %15, align 8, !tbaa !5
  store ptr %7, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #4
  %43 = load ptr, ptr %12, align 8, !tbaa !5
  %44 = getelementptr inbounds double, ptr %43, i32 -1
  store ptr %44, ptr %12, align 8, !tbaa !5
  %45 = load ptr, ptr %15, align 8, !tbaa !5
  %46 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %46, ptr %17, align 4, !tbaa !9
  %47 = load i32, ptr %17, align 4, !tbaa !9
  %48 = mul nsw i32 %47, 1
  %49 = add nsw i32 1, %48
  store i32 %49, ptr %18, align 4, !tbaa !9
  %50 = load i32, ptr %18, align 4, !tbaa !9
  %51 = load ptr, ptr %14, align 8, !tbaa !5
  %52 = sext i32 %50 to i64
  %53 = sub i64 0, %52
  %54 = getelementptr inbounds double, ptr %51, i64 %53
  store ptr %54, ptr %14, align 8, !tbaa !5
  %55 = load ptr, ptr %16, align 8, !tbaa !5
  %56 = getelementptr inbounds double, ptr %55, i32 -1
  store ptr %56, ptr %16, align 8, !tbaa !5
  %57 = load ptr, ptr %13, align 8, !tbaa !5
  %58 = load double, ptr %57, align 8, !tbaa !11
  %59 = fcmp oeq double %58, 0.000000e+00
  br i1 %59, label %60, label %61

60:                                               ; preds = %8
  store i32 1, ptr %42, align 4
  br label %3528

61:                                               ; preds = %8
  %62 = load ptr, ptr %9, align 8, !tbaa !5
  %63 = call i32 @lsame_(ptr noundef %62, ptr noundef @.str)
  %64 = icmp ne i32 %63, 0
  br i1 %64, label %65, label %1806

65:                                               ; preds = %61
  %66 = load ptr, ptr %10, align 8, !tbaa !5
  %67 = load i32, ptr %66, align 4, !tbaa !9
  switch i32 %67, label %78 [
    i32 1, label %68
    i32 2, label %69
    i32 3, label %70
    i32 4, label %71
    i32 5, label %72
    i32 6, label %73
    i32 7, label %74
    i32 8, label %75
    i32 9, label %76
    i32 10, label %77
  ]

68:                                               ; preds = %65
  br label %92

69:                                               ; preds = %65
  br label %132

70:                                               ; preds = %65
  br label %202

71:                                               ; preds = %65
  br label %301

72:                                               ; preds = %65
  br label %429

73:                                               ; preds = %65
  br label %586

74:                                               ; preds = %65
  br label %772

75:                                               ; preds = %65
  br label %987

76:                                               ; preds = %65
  br label %1231

77:                                               ; preds = %65
  br label %1504

78:                                               ; preds = %65
  %79 = load ptr, ptr %9, align 8, !tbaa !5
  %80 = load ptr, ptr %10, align 8, !tbaa !5
  %81 = load ptr, ptr %11, align 8, !tbaa !5
  %82 = load ptr, ptr %12, align 8, !tbaa !5
  %83 = getelementptr inbounds double, ptr %82, i64 1
  %84 = load ptr, ptr %13, align 8, !tbaa !5
  %85 = load ptr, ptr %14, align 8, !tbaa !5
  %86 = load i32, ptr %18, align 4, !tbaa !9
  %87 = sext i32 %86 to i64
  %88 = getelementptr inbounds double, ptr %85, i64 %87
  %89 = load ptr, ptr %15, align 8, !tbaa !5
  %90 = load ptr, ptr %16, align 8, !tbaa !5
  %91 = getelementptr inbounds double, ptr %90, i64 1
  call void @dlarf_(ptr noundef %79, ptr noundef %80, ptr noundef %81, ptr noundef %83, ptr noundef @c__1, ptr noundef %84, ptr noundef %88, ptr noundef %89, ptr noundef %91)
  br label %3527

92:                                               ; preds = %68
  %93 = load ptr, ptr %13, align 8, !tbaa !5
  %94 = load double, ptr %93, align 8, !tbaa !11
  %95 = load ptr, ptr %12, align 8, !tbaa !5
  %96 = getelementptr inbounds double, ptr %95, i64 1
  %97 = load double, ptr %96, align 8, !tbaa !11
  %98 = fmul double %94, %97
  %99 = load ptr, ptr %12, align 8, !tbaa !5
  %100 = getelementptr inbounds double, ptr %99, i64 1
  %101 = load double, ptr %100, align 8, !tbaa !11
  %102 = fneg double %98
  %103 = call double @llvm.fmuladd.f64(double %102, double %101, double 1.000000e+00)
  store double %103, ptr %21, align 8, !tbaa !11
  %104 = load ptr, ptr %11, align 8, !tbaa !5
  %105 = load i32, ptr %104, align 4, !tbaa !9
  store i32 %105, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %106

106:                                              ; preds = %128, %92
  %107 = load i32, ptr %20, align 4, !tbaa !9
  %108 = load i32, ptr %19, align 4, !tbaa !9
  %109 = icmp sle i32 %107, %108
  br i1 %109, label %110, label %131

110:                                              ; preds = %106
  %111 = load double, ptr %21, align 8, !tbaa !11
  %112 = load ptr, ptr %14, align 8, !tbaa !5
  %113 = load i32, ptr %20, align 4, !tbaa !9
  %114 = load i32, ptr %17, align 4, !tbaa !9
  %115 = mul nsw i32 %113, %114
  %116 = add nsw i32 %115, 1
  %117 = sext i32 %116 to i64
  %118 = getelementptr inbounds double, ptr %112, i64 %117
  %119 = load double, ptr %118, align 8, !tbaa !11
  %120 = fmul double %111, %119
  %121 = load ptr, ptr %14, align 8, !tbaa !5
  %122 = load i32, ptr %20, align 4, !tbaa !9
  %123 = load i32, ptr %17, align 4, !tbaa !9
  %124 = mul nsw i32 %122, %123
  %125 = add nsw i32 %124, 1
  %126 = sext i32 %125 to i64
  %127 = getelementptr inbounds double, ptr %121, i64 %126
  store double %120, ptr %127, align 8, !tbaa !11
  br label %128

128:                                              ; preds = %110
  %129 = load i32, ptr %20, align 4, !tbaa !9
  %130 = add nsw i32 %129, 1
  store i32 %130, ptr %20, align 4, !tbaa !9
  br label %106, !llvm.loop !13

131:                                              ; preds = %106
  br label %3527

132:                                              ; preds = %69
  %133 = load ptr, ptr %12, align 8, !tbaa !5
  %134 = getelementptr inbounds double, ptr %133, i64 1
  %135 = load double, ptr %134, align 8, !tbaa !11
  store double %135, ptr %30, align 8, !tbaa !11
  %136 = load ptr, ptr %13, align 8, !tbaa !5
  %137 = load double, ptr %136, align 8, !tbaa !11
  %138 = load double, ptr %30, align 8, !tbaa !11
  %139 = fmul double %137, %138
  store double %139, ptr %21, align 8, !tbaa !11
  %140 = load ptr, ptr %12, align 8, !tbaa !5
  %141 = getelementptr inbounds double, ptr %140, i64 2
  %142 = load double, ptr %141, align 8, !tbaa !11
  store double %142, ptr %31, align 8, !tbaa !11
  %143 = load ptr, ptr %13, align 8, !tbaa !5
  %144 = load double, ptr %143, align 8, !tbaa !11
  %145 = load double, ptr %31, align 8, !tbaa !11
  %146 = fmul double %144, %145
  store double %146, ptr %22, align 8, !tbaa !11
  %147 = load ptr, ptr %11, align 8, !tbaa !5
  %148 = load i32, ptr %147, align 4, !tbaa !9
  store i32 %148, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %149

149:                                              ; preds = %198, %132
  %150 = load i32, ptr %20, align 4, !tbaa !9
  %151 = load i32, ptr %19, align 4, !tbaa !9
  %152 = icmp sle i32 %150, %151
  br i1 %152, label %153, label %201

153:                                              ; preds = %149
  %154 = load double, ptr %30, align 8, !tbaa !11
  %155 = load ptr, ptr %14, align 8, !tbaa !5
  %156 = load i32, ptr %20, align 4, !tbaa !9
  %157 = load i32, ptr %17, align 4, !tbaa !9
  %158 = mul nsw i32 %156, %157
  %159 = add nsw i32 %158, 1
  %160 = sext i32 %159 to i64
  %161 = getelementptr inbounds double, ptr %155, i64 %160
  %162 = load double, ptr %161, align 8, !tbaa !11
  %163 = load double, ptr %31, align 8, !tbaa !11
  %164 = load ptr, ptr %14, align 8, !tbaa !5
  %165 = load i32, ptr %20, align 4, !tbaa !9
  %166 = load i32, ptr %17, align 4, !tbaa !9
  %167 = mul nsw i32 %165, %166
  %168 = add nsw i32 %167, 2
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds double, ptr %164, i64 %169
  %171 = load double, ptr %170, align 8, !tbaa !11
  %172 = fmul double %163, %171
  %173 = call double @llvm.fmuladd.f64(double %154, double %162, double %172)
  store double %173, ptr %41, align 8, !tbaa !11
  %174 = load double, ptr %41, align 8, !tbaa !11
  %175 = load double, ptr %21, align 8, !tbaa !11
  %176 = load ptr, ptr %14, align 8, !tbaa !5
  %177 = load i32, ptr %20, align 4, !tbaa !9
  %178 = load i32, ptr %17, align 4, !tbaa !9
  %179 = mul nsw i32 %177, %178
  %180 = add nsw i32 %179, 1
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds double, ptr %176, i64 %181
  %183 = load double, ptr %182, align 8, !tbaa !11
  %184 = fneg double %174
  %185 = call double @llvm.fmuladd.f64(double %184, double %175, double %183)
  store double %185, ptr %182, align 8, !tbaa !11
  %186 = load double, ptr %41, align 8, !tbaa !11
  %187 = load double, ptr %22, align 8, !tbaa !11
  %188 = load ptr, ptr %14, align 8, !tbaa !5
  %189 = load i32, ptr %20, align 4, !tbaa !9
  %190 = load i32, ptr %17, align 4, !tbaa !9
  %191 = mul nsw i32 %189, %190
  %192 = add nsw i32 %191, 2
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds double, ptr %188, i64 %193
  %195 = load double, ptr %194, align 8, !tbaa !11
  %196 = fneg double %186
  %197 = call double @llvm.fmuladd.f64(double %196, double %187, double %195)
  store double %197, ptr %194, align 8, !tbaa !11
  br label %198

198:                                              ; preds = %153
  %199 = load i32, ptr %20, align 4, !tbaa !9
  %200 = add nsw i32 %199, 1
  store i32 %200, ptr %20, align 4, !tbaa !9
  br label %149, !llvm.loop !15

201:                                              ; preds = %149
  br label %3527

202:                                              ; preds = %70
  %203 = load ptr, ptr %12, align 8, !tbaa !5
  %204 = getelementptr inbounds double, ptr %203, i64 1
  %205 = load double, ptr %204, align 8, !tbaa !11
  store double %205, ptr %30, align 8, !tbaa !11
  %206 = load ptr, ptr %13, align 8, !tbaa !5
  %207 = load double, ptr %206, align 8, !tbaa !11
  %208 = load double, ptr %30, align 8, !tbaa !11
  %209 = fmul double %207, %208
  store double %209, ptr %21, align 8, !tbaa !11
  %210 = load ptr, ptr %12, align 8, !tbaa !5
  %211 = getelementptr inbounds double, ptr %210, i64 2
  %212 = load double, ptr %211, align 8, !tbaa !11
  store double %212, ptr %31, align 8, !tbaa !11
  %213 = load ptr, ptr %13, align 8, !tbaa !5
  %214 = load double, ptr %213, align 8, !tbaa !11
  %215 = load double, ptr %31, align 8, !tbaa !11
  %216 = fmul double %214, %215
  store double %216, ptr %22, align 8, !tbaa !11
  %217 = load ptr, ptr %12, align 8, !tbaa !5
  %218 = getelementptr inbounds double, ptr %217, i64 3
  %219 = load double, ptr %218, align 8, !tbaa !11
  store double %219, ptr %32, align 8, !tbaa !11
  %220 = load ptr, ptr %13, align 8, !tbaa !5
  %221 = load double, ptr %220, align 8, !tbaa !11
  %222 = load double, ptr %32, align 8, !tbaa !11
  %223 = fmul double %221, %222
  store double %223, ptr %23, align 8, !tbaa !11
  %224 = load ptr, ptr %11, align 8, !tbaa !5
  %225 = load i32, ptr %224, align 4, !tbaa !9
  store i32 %225, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %226

226:                                              ; preds = %297, %202
  %227 = load i32, ptr %20, align 4, !tbaa !9
  %228 = load i32, ptr %19, align 4, !tbaa !9
  %229 = icmp sle i32 %227, %228
  br i1 %229, label %230, label %300

230:                                              ; preds = %226
  %231 = load double, ptr %30, align 8, !tbaa !11
  %232 = load ptr, ptr %14, align 8, !tbaa !5
  %233 = load i32, ptr %20, align 4, !tbaa !9
  %234 = load i32, ptr %17, align 4, !tbaa !9
  %235 = mul nsw i32 %233, %234
  %236 = add nsw i32 %235, 1
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds double, ptr %232, i64 %237
  %239 = load double, ptr %238, align 8, !tbaa !11
  %240 = load double, ptr %31, align 8, !tbaa !11
  %241 = load ptr, ptr %14, align 8, !tbaa !5
  %242 = load i32, ptr %20, align 4, !tbaa !9
  %243 = load i32, ptr %17, align 4, !tbaa !9
  %244 = mul nsw i32 %242, %243
  %245 = add nsw i32 %244, 2
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds double, ptr %241, i64 %246
  %248 = load double, ptr %247, align 8, !tbaa !11
  %249 = fmul double %240, %248
  %250 = call double @llvm.fmuladd.f64(double %231, double %239, double %249)
  %251 = load double, ptr %32, align 8, !tbaa !11
  %252 = load ptr, ptr %14, align 8, !tbaa !5
  %253 = load i32, ptr %20, align 4, !tbaa !9
  %254 = load i32, ptr %17, align 4, !tbaa !9
  %255 = mul nsw i32 %253, %254
  %256 = add nsw i32 %255, 3
  %257 = sext i32 %256 to i64
  %258 = getelementptr inbounds double, ptr %252, i64 %257
  %259 = load double, ptr %258, align 8, !tbaa !11
  %260 = call double @llvm.fmuladd.f64(double %251, double %259, double %250)
  store double %260, ptr %41, align 8, !tbaa !11
  %261 = load double, ptr %41, align 8, !tbaa !11
  %262 = load double, ptr %21, align 8, !tbaa !11
  %263 = load ptr, ptr %14, align 8, !tbaa !5
  %264 = load i32, ptr %20, align 4, !tbaa !9
  %265 = load i32, ptr %17, align 4, !tbaa !9
  %266 = mul nsw i32 %264, %265
  %267 = add nsw i32 %266, 1
  %268 = sext i32 %267 to i64
  %269 = getelementptr inbounds double, ptr %263, i64 %268
  %270 = load double, ptr %269, align 8, !tbaa !11
  %271 = fneg double %261
  %272 = call double @llvm.fmuladd.f64(double %271, double %262, double %270)
  store double %272, ptr %269, align 8, !tbaa !11
  %273 = load double, ptr %41, align 8, !tbaa !11
  %274 = load double, ptr %22, align 8, !tbaa !11
  %275 = load ptr, ptr %14, align 8, !tbaa !5
  %276 = load i32, ptr %20, align 4, !tbaa !9
  %277 = load i32, ptr %17, align 4, !tbaa !9
  %278 = mul nsw i32 %276, %277
  %279 = add nsw i32 %278, 2
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds double, ptr %275, i64 %280
  %282 = load double, ptr %281, align 8, !tbaa !11
  %283 = fneg double %273
  %284 = call double @llvm.fmuladd.f64(double %283, double %274, double %282)
  store double %284, ptr %281, align 8, !tbaa !11
  %285 = load double, ptr %41, align 8, !tbaa !11
  %286 = load double, ptr %23, align 8, !tbaa !11
  %287 = load ptr, ptr %14, align 8, !tbaa !5
  %288 = load i32, ptr %20, align 4, !tbaa !9
  %289 = load i32, ptr %17, align 4, !tbaa !9
  %290 = mul nsw i32 %288, %289
  %291 = add nsw i32 %290, 3
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds double, ptr %287, i64 %292
  %294 = load double, ptr %293, align 8, !tbaa !11
  %295 = fneg double %285
  %296 = call double @llvm.fmuladd.f64(double %295, double %286, double %294)
  store double %296, ptr %293, align 8, !tbaa !11
  br label %297

297:                                              ; preds = %230
  %298 = load i32, ptr %20, align 4, !tbaa !9
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr %20, align 4, !tbaa !9
  br label %226, !llvm.loop !16

300:                                              ; preds = %226
  br label %3527

301:                                              ; preds = %71
  %302 = load ptr, ptr %12, align 8, !tbaa !5
  %303 = getelementptr inbounds double, ptr %302, i64 1
  %304 = load double, ptr %303, align 8, !tbaa !11
  store double %304, ptr %30, align 8, !tbaa !11
  %305 = load ptr, ptr %13, align 8, !tbaa !5
  %306 = load double, ptr %305, align 8, !tbaa !11
  %307 = load double, ptr %30, align 8, !tbaa !11
  %308 = fmul double %306, %307
  store double %308, ptr %21, align 8, !tbaa !11
  %309 = load ptr, ptr %12, align 8, !tbaa !5
  %310 = getelementptr inbounds double, ptr %309, i64 2
  %311 = load double, ptr %310, align 8, !tbaa !11
  store double %311, ptr %31, align 8, !tbaa !11
  %312 = load ptr, ptr %13, align 8, !tbaa !5
  %313 = load double, ptr %312, align 8, !tbaa !11
  %314 = load double, ptr %31, align 8, !tbaa !11
  %315 = fmul double %313, %314
  store double %315, ptr %22, align 8, !tbaa !11
  %316 = load ptr, ptr %12, align 8, !tbaa !5
  %317 = getelementptr inbounds double, ptr %316, i64 3
  %318 = load double, ptr %317, align 8, !tbaa !11
  store double %318, ptr %32, align 8, !tbaa !11
  %319 = load ptr, ptr %13, align 8, !tbaa !5
  %320 = load double, ptr %319, align 8, !tbaa !11
  %321 = load double, ptr %32, align 8, !tbaa !11
  %322 = fmul double %320, %321
  store double %322, ptr %23, align 8, !tbaa !11
  %323 = load ptr, ptr %12, align 8, !tbaa !5
  %324 = getelementptr inbounds double, ptr %323, i64 4
  %325 = load double, ptr %324, align 8, !tbaa !11
  store double %325, ptr %33, align 8, !tbaa !11
  %326 = load ptr, ptr %13, align 8, !tbaa !5
  %327 = load double, ptr %326, align 8, !tbaa !11
  %328 = load double, ptr %33, align 8, !tbaa !11
  %329 = fmul double %327, %328
  store double %329, ptr %24, align 8, !tbaa !11
  %330 = load ptr, ptr %11, align 8, !tbaa !5
  %331 = load i32, ptr %330, align 4, !tbaa !9
  store i32 %331, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %332

332:                                              ; preds = %425, %301
  %333 = load i32, ptr %20, align 4, !tbaa !9
  %334 = load i32, ptr %19, align 4, !tbaa !9
  %335 = icmp sle i32 %333, %334
  br i1 %335, label %336, label %428

336:                                              ; preds = %332
  %337 = load double, ptr %30, align 8, !tbaa !11
  %338 = load ptr, ptr %14, align 8, !tbaa !5
  %339 = load i32, ptr %20, align 4, !tbaa !9
  %340 = load i32, ptr %17, align 4, !tbaa !9
  %341 = mul nsw i32 %339, %340
  %342 = add nsw i32 %341, 1
  %343 = sext i32 %342 to i64
  %344 = getelementptr inbounds double, ptr %338, i64 %343
  %345 = load double, ptr %344, align 8, !tbaa !11
  %346 = load double, ptr %31, align 8, !tbaa !11
  %347 = load ptr, ptr %14, align 8, !tbaa !5
  %348 = load i32, ptr %20, align 4, !tbaa !9
  %349 = load i32, ptr %17, align 4, !tbaa !9
  %350 = mul nsw i32 %348, %349
  %351 = add nsw i32 %350, 2
  %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 %346, %354
  %356 = call double @llvm.fmuladd.f64(double %337, double %345, double %355)
  %357 = load double, ptr %32, align 8, !tbaa !11
  %358 = load ptr, ptr %14, align 8, !tbaa !5
  %359 = load i32, ptr %20, align 4, !tbaa !9
  %360 = load i32, ptr %17, align 4, !tbaa !9
  %361 = mul nsw i32 %359, %360
  %362 = add nsw i32 %361, 3
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds double, ptr %358, i64 %363
  %365 = load double, ptr %364, align 8, !tbaa !11
  %366 = call double @llvm.fmuladd.f64(double %357, double %365, double %356)
  %367 = load double, ptr %33, align 8, !tbaa !11
  %368 = load ptr, ptr %14, align 8, !tbaa !5
  %369 = load i32, ptr %20, align 4, !tbaa !9
  %370 = load i32, ptr %17, align 4, !tbaa !9
  %371 = mul nsw i32 %369, %370
  %372 = add nsw i32 %371, 4
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds double, ptr %368, i64 %373
  %375 = load double, ptr %374, align 8, !tbaa !11
  %376 = call double @llvm.fmuladd.f64(double %367, double %375, double %366)
  store double %376, ptr %41, align 8, !tbaa !11
  %377 = load double, ptr %41, align 8, !tbaa !11
  %378 = load double, ptr %21, align 8, !tbaa !11
  %379 = load ptr, ptr %14, align 8, !tbaa !5
  %380 = load i32, ptr %20, align 4, !tbaa !9
  %381 = load i32, ptr %17, align 4, !tbaa !9
  %382 = mul nsw i32 %380, %381
  %383 = add nsw i32 %382, 1
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds double, ptr %379, i64 %384
  %386 = load double, ptr %385, align 8, !tbaa !11
  %387 = fneg double %377
  %388 = call double @llvm.fmuladd.f64(double %387, double %378, double %386)
  store double %388, ptr %385, align 8, !tbaa !11
  %389 = load double, ptr %41, align 8, !tbaa !11
  %390 = load double, ptr %22, align 8, !tbaa !11
  %391 = load ptr, ptr %14, align 8, !tbaa !5
  %392 = load i32, ptr %20, align 4, !tbaa !9
  %393 = load i32, ptr %17, align 4, !tbaa !9
  %394 = mul nsw i32 %392, %393
  %395 = add nsw i32 %394, 2
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds double, ptr %391, i64 %396
  %398 = load double, ptr %397, align 8, !tbaa !11
  %399 = fneg double %389
  %400 = call double @llvm.fmuladd.f64(double %399, double %390, double %398)
  store double %400, ptr %397, align 8, !tbaa !11
  %401 = load double, ptr %41, align 8, !tbaa !11
  %402 = load double, ptr %23, align 8, !tbaa !11
  %403 = load ptr, ptr %14, align 8, !tbaa !5
  %404 = load i32, ptr %20, align 4, !tbaa !9
  %405 = load i32, ptr %17, align 4, !tbaa !9
  %406 = mul nsw i32 %404, %405
  %407 = add nsw i32 %406, 3
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds double, ptr %403, i64 %408
  %410 = load double, ptr %409, align 8, !tbaa !11
  %411 = fneg double %401
  %412 = call double @llvm.fmuladd.f64(double %411, double %402, double %410)
  store double %412, ptr %409, align 8, !tbaa !11
  %413 = load double, ptr %41, align 8, !tbaa !11
  %414 = load double, ptr %24, align 8, !tbaa !11
  %415 = load ptr, ptr %14, align 8, !tbaa !5
  %416 = load i32, ptr %20, align 4, !tbaa !9
  %417 = load i32, ptr %17, align 4, !tbaa !9
  %418 = mul nsw i32 %416, %417
  %419 = add nsw i32 %418, 4
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds double, ptr %415, i64 %420
  %422 = load double, ptr %421, align 8, !tbaa !11
  %423 = fneg double %413
  %424 = call double @llvm.fmuladd.f64(double %423, double %414, double %422)
  store double %424, ptr %421, align 8, !tbaa !11
  br label %425

425:                                              ; preds = %336
  %426 = load i32, ptr %20, align 4, !tbaa !9
  %427 = add nsw i32 %426, 1
  store i32 %427, ptr %20, align 4, !tbaa !9
  br label %332, !llvm.loop !17

428:                                              ; preds = %332
  br label %3527

429:                                              ; preds = %72
  %430 = load ptr, ptr %12, align 8, !tbaa !5
  %431 = getelementptr inbounds double, ptr %430, i64 1
  %432 = load double, ptr %431, align 8, !tbaa !11
  store double %432, ptr %30, align 8, !tbaa !11
  %433 = load ptr, ptr %13, align 8, !tbaa !5
  %434 = load double, ptr %433, align 8, !tbaa !11
  %435 = load double, ptr %30, align 8, !tbaa !11
  %436 = fmul double %434, %435
  store double %436, ptr %21, align 8, !tbaa !11
  %437 = load ptr, ptr %12, align 8, !tbaa !5
  %438 = getelementptr inbounds double, ptr %437, i64 2
  %439 = load double, ptr %438, align 8, !tbaa !11
  store double %439, ptr %31, align 8, !tbaa !11
  %440 = load ptr, ptr %13, align 8, !tbaa !5
  %441 = load double, ptr %440, align 8, !tbaa !11
  %442 = load double, ptr %31, align 8, !tbaa !11
  %443 = fmul double %441, %442
  store double %443, ptr %22, align 8, !tbaa !11
  %444 = load ptr, ptr %12, align 8, !tbaa !5
  %445 = getelementptr inbounds double, ptr %444, i64 3
  %446 = load double, ptr %445, align 8, !tbaa !11
  store double %446, ptr %32, align 8, !tbaa !11
  %447 = load ptr, ptr %13, align 8, !tbaa !5
  %448 = load double, ptr %447, align 8, !tbaa !11
  %449 = load double, ptr %32, align 8, !tbaa !11
  %450 = fmul double %448, %449
  store double %450, ptr %23, align 8, !tbaa !11
  %451 = load ptr, ptr %12, align 8, !tbaa !5
  %452 = getelementptr inbounds double, ptr %451, i64 4
  %453 = load double, ptr %452, align 8, !tbaa !11
  store double %453, ptr %33, align 8, !tbaa !11
  %454 = load ptr, ptr %13, align 8, !tbaa !5
  %455 = load double, ptr %454, align 8, !tbaa !11
  %456 = load double, ptr %33, align 8, !tbaa !11
  %457 = fmul double %455, %456
  store double %457, ptr %24, align 8, !tbaa !11
  %458 = load ptr, ptr %12, align 8, !tbaa !5
  %459 = getelementptr inbounds double, ptr %458, i64 5
  %460 = load double, ptr %459, align 8, !tbaa !11
  store double %460, ptr %34, align 8, !tbaa !11
  %461 = load ptr, ptr %13, align 8, !tbaa !5
  %462 = load double, ptr %461, align 8, !tbaa !11
  %463 = load double, ptr %34, align 8, !tbaa !11
  %464 = fmul double %462, %463
  store double %464, ptr %25, align 8, !tbaa !11
  %465 = load ptr, ptr %11, align 8, !tbaa !5
  %466 = load i32, ptr %465, align 4, !tbaa !9
  store i32 %466, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %467

467:                                              ; preds = %582, %429
  %468 = load i32, ptr %20, align 4, !tbaa !9
  %469 = load i32, ptr %19, align 4, !tbaa !9
  %470 = icmp sle i32 %468, %469
  br i1 %470, label %471, label %585

471:                                              ; preds = %467
  %472 = load double, ptr %30, align 8, !tbaa !11
  %473 = load ptr, ptr %14, align 8, !tbaa !5
  %474 = load i32, ptr %20, align 4, !tbaa !9
  %475 = load i32, ptr %17, align 4, !tbaa !9
  %476 = mul nsw i32 %474, %475
  %477 = add nsw i32 %476, 1
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds double, ptr %473, i64 %478
  %480 = load double, ptr %479, align 8, !tbaa !11
  %481 = load double, ptr %31, align 8, !tbaa !11
  %482 = load ptr, ptr %14, align 8, !tbaa !5
  %483 = load i32, ptr %20, align 4, !tbaa !9
  %484 = load i32, ptr %17, align 4, !tbaa !9
  %485 = mul nsw i32 %483, %484
  %486 = add nsw i32 %485, 2
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds double, ptr %482, i64 %487
  %489 = load double, ptr %488, align 8, !tbaa !11
  %490 = fmul double %481, %489
  %491 = call double @llvm.fmuladd.f64(double %472, double %480, double %490)
  %492 = load double, ptr %32, align 8, !tbaa !11
  %493 = load ptr, ptr %14, align 8, !tbaa !5
  %494 = load i32, ptr %20, align 4, !tbaa !9
  %495 = load i32, ptr %17, align 4, !tbaa !9
  %496 = mul nsw i32 %494, %495
  %497 = add nsw i32 %496, 3
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds double, ptr %493, i64 %498
  %500 = load double, ptr %499, align 8, !tbaa !11
  %501 = call double @llvm.fmuladd.f64(double %492, double %500, double %491)
  %502 = load double, ptr %33, align 8, !tbaa !11
  %503 = load ptr, ptr %14, align 8, !tbaa !5
  %504 = load i32, ptr %20, align 4, !tbaa !9
  %505 = load i32, ptr %17, align 4, !tbaa !9
  %506 = mul nsw i32 %504, %505
  %507 = add nsw i32 %506, 4
  %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 %502, double %510, double %501)
  %512 = load double, ptr %34, align 8, !tbaa !11
  %513 = load ptr, ptr %14, align 8, !tbaa !5
  %514 = load i32, ptr %20, align 4, !tbaa !9
  %515 = load i32, ptr %17, align 4, !tbaa !9
  %516 = mul nsw i32 %514, %515
  %517 = add nsw i32 %516, 5
  %518 = sext i32 %517 to i64
  %519 = getelementptr inbounds double, ptr %513, i64 %518
  %520 = load double, ptr %519, align 8, !tbaa !11
  %521 = call double @llvm.fmuladd.f64(double %512, double %520, double %511)
  store double %521, ptr %41, align 8, !tbaa !11
  %522 = load double, ptr %41, align 8, !tbaa !11
  %523 = load double, ptr %21, align 8, !tbaa !11
  %524 = load ptr, ptr %14, align 8, !tbaa !5
  %525 = load i32, ptr %20, align 4, !tbaa !9
  %526 = load i32, ptr %17, align 4, !tbaa !9
  %527 = mul nsw i32 %525, %526
  %528 = add nsw i32 %527, 1
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds double, ptr %524, i64 %529
  %531 = load double, ptr %530, align 8, !tbaa !11
  %532 = fneg double %522
  %533 = call double @llvm.fmuladd.f64(double %532, double %523, double %531)
  store double %533, ptr %530, align 8, !tbaa !11
  %534 = load double, ptr %41, align 8, !tbaa !11
  %535 = load double, ptr %22, align 8, !tbaa !11
  %536 = load ptr, ptr %14, align 8, !tbaa !5
  %537 = load i32, ptr %20, align 4, !tbaa !9
  %538 = load i32, ptr %17, align 4, !tbaa !9
  %539 = mul nsw i32 %537, %538
  %540 = add nsw i32 %539, 2
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds double, ptr %536, i64 %541
  %543 = load double, ptr %542, align 8, !tbaa !11
  %544 = fneg double %534
  %545 = call double @llvm.fmuladd.f64(double %544, double %535, double %543)
  store double %545, ptr %542, align 8, !tbaa !11
  %546 = load double, ptr %41, align 8, !tbaa !11
  %547 = load double, ptr %23, align 8, !tbaa !11
  %548 = load ptr, ptr %14, align 8, !tbaa !5
  %549 = load i32, ptr %20, align 4, !tbaa !9
  %550 = load i32, ptr %17, align 4, !tbaa !9
  %551 = mul nsw i32 %549, %550
  %552 = add nsw i32 %551, 3
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds double, ptr %548, i64 %553
  %555 = load double, ptr %554, align 8, !tbaa !11
  %556 = fneg double %546
  %557 = call double @llvm.fmuladd.f64(double %556, double %547, double %555)
  store double %557, ptr %554, align 8, !tbaa !11
  %558 = load double, ptr %41, align 8, !tbaa !11
  %559 = load double, ptr %24, align 8, !tbaa !11
  %560 = load ptr, ptr %14, align 8, !tbaa !5
  %561 = load i32, ptr %20, align 4, !tbaa !9
  %562 = load i32, ptr %17, align 4, !tbaa !9
  %563 = mul nsw i32 %561, %562
  %564 = add nsw i32 %563, 4
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds double, ptr %560, i64 %565
  %567 = load double, ptr %566, align 8, !tbaa !11
  %568 = fneg double %558
  %569 = call double @llvm.fmuladd.f64(double %568, double %559, double %567)
  store double %569, ptr %566, align 8, !tbaa !11
  %570 = load double, ptr %41, align 8, !tbaa !11
  %571 = load double, ptr %25, align 8, !tbaa !11
  %572 = load ptr, ptr %14, align 8, !tbaa !5
  %573 = load i32, ptr %20, align 4, !tbaa !9
  %574 = load i32, ptr %17, align 4, !tbaa !9
  %575 = mul nsw i32 %573, %574
  %576 = add nsw i32 %575, 5
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds double, ptr %572, i64 %577
  %579 = load double, ptr %578, align 8, !tbaa !11
  %580 = fneg double %570
  %581 = call double @llvm.fmuladd.f64(double %580, double %571, double %579)
  store double %581, ptr %578, align 8, !tbaa !11
  br label %582

582:                                              ; preds = %471
  %583 = load i32, ptr %20, align 4, !tbaa !9
  %584 = add nsw i32 %583, 1
  store i32 %584, ptr %20, align 4, !tbaa !9
  br label %467, !llvm.loop !18

585:                                              ; preds = %467
  br label %3527

586:                                              ; preds = %73
  %587 = load ptr, ptr %12, align 8, !tbaa !5
  %588 = getelementptr inbounds double, ptr %587, i64 1
  %589 = load double, ptr %588, align 8, !tbaa !11
  store double %589, ptr %30, align 8, !tbaa !11
  %590 = load ptr, ptr %13, align 8, !tbaa !5
  %591 = load double, ptr %590, align 8, !tbaa !11
  %592 = load double, ptr %30, align 8, !tbaa !11
  %593 = fmul double %591, %592
  store double %593, ptr %21, align 8, !tbaa !11
  %594 = load ptr, ptr %12, align 8, !tbaa !5
  %595 = getelementptr inbounds double, ptr %594, i64 2
  %596 = load double, ptr %595, align 8, !tbaa !11
  store double %596, ptr %31, align 8, !tbaa !11
  %597 = load ptr, ptr %13, align 8, !tbaa !5
  %598 = load double, ptr %597, align 8, !tbaa !11
  %599 = load double, ptr %31, align 8, !tbaa !11
  %600 = fmul double %598, %599
  store double %600, ptr %22, align 8, !tbaa !11
  %601 = load ptr, ptr %12, align 8, !tbaa !5
  %602 = getelementptr inbounds double, ptr %601, i64 3
  %603 = load double, ptr %602, align 8, !tbaa !11
  store double %603, ptr %32, align 8, !tbaa !11
  %604 = load ptr, ptr %13, align 8, !tbaa !5
  %605 = load double, ptr %604, align 8, !tbaa !11
  %606 = load double, ptr %32, align 8, !tbaa !11
  %607 = fmul double %605, %606
  store double %607, ptr %23, align 8, !tbaa !11
  %608 = load ptr, ptr %12, align 8, !tbaa !5
  %609 = getelementptr inbounds double, ptr %608, i64 4
  %610 = load double, ptr %609, align 8, !tbaa !11
  store double %610, ptr %33, align 8, !tbaa !11
  %611 = load ptr, ptr %13, align 8, !tbaa !5
  %612 = load double, ptr %611, align 8, !tbaa !11
  %613 = load double, ptr %33, align 8, !tbaa !11
  %614 = fmul double %612, %613
  store double %614, ptr %24, align 8, !tbaa !11
  %615 = load ptr, ptr %12, align 8, !tbaa !5
  %616 = getelementptr inbounds double, ptr %615, i64 5
  %617 = load double, ptr %616, align 8, !tbaa !11
  store double %617, ptr %34, align 8, !tbaa !11
  %618 = load ptr, ptr %13, align 8, !tbaa !5
  %619 = load double, ptr %618, align 8, !tbaa !11
  %620 = load double, ptr %34, align 8, !tbaa !11
  %621 = fmul double %619, %620
  store double %621, ptr %25, align 8, !tbaa !11
  %622 = load ptr, ptr %12, align 8, !tbaa !5
  %623 = getelementptr inbounds double, ptr %622, i64 6
  %624 = load double, ptr %623, align 8, !tbaa !11
  store double %624, ptr %35, align 8, !tbaa !11
  %625 = load ptr, ptr %13, align 8, !tbaa !5
  %626 = load double, ptr %625, align 8, !tbaa !11
  %627 = load double, ptr %35, align 8, !tbaa !11
  %628 = fmul double %626, %627
  store double %628, ptr %26, align 8, !tbaa !11
  %629 = load ptr, ptr %11, align 8, !tbaa !5
  %630 = load i32, ptr %629, align 4, !tbaa !9
  store i32 %630, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %631

631:                                              ; preds = %768, %586
  %632 = load i32, ptr %20, align 4, !tbaa !9
  %633 = load i32, ptr %19, align 4, !tbaa !9
  %634 = icmp sle i32 %632, %633
  br i1 %634, label %635, label %771

635:                                              ; preds = %631
  %636 = load double, ptr %30, align 8, !tbaa !11
  %637 = load ptr, ptr %14, align 8, !tbaa !5
  %638 = load i32, ptr %20, align 4, !tbaa !9
  %639 = load i32, ptr %17, align 4, !tbaa !9
  %640 = mul nsw i32 %638, %639
  %641 = add nsw i32 %640, 1
  %642 = sext i32 %641 to i64
  %643 = getelementptr inbounds double, ptr %637, i64 %642
  %644 = load double, ptr %643, align 8, !tbaa !11
  %645 = load double, ptr %31, align 8, !tbaa !11
  %646 = load ptr, ptr %14, align 8, !tbaa !5
  %647 = load i32, ptr %20, align 4, !tbaa !9
  %648 = load i32, ptr %17, align 4, !tbaa !9
  %649 = mul nsw i32 %647, %648
  %650 = add nsw i32 %649, 2
  %651 = sext i32 %650 to i64
  %652 = getelementptr inbounds double, ptr %646, i64 %651
  %653 = load double, ptr %652, align 8, !tbaa !11
  %654 = fmul double %645, %653
  %655 = call double @llvm.fmuladd.f64(double %636, double %644, double %654)
  %656 = load double, ptr %32, align 8, !tbaa !11
  %657 = load ptr, ptr %14, align 8, !tbaa !5
  %658 = load i32, ptr %20, align 4, !tbaa !9
  %659 = load i32, ptr %17, align 4, !tbaa !9
  %660 = mul nsw i32 %658, %659
  %661 = add nsw i32 %660, 3
  %662 = sext i32 %661 to i64
  %663 = getelementptr inbounds double, ptr %657, i64 %662
  %664 = load double, ptr %663, align 8, !tbaa !11
  %665 = call double @llvm.fmuladd.f64(double %656, double %664, double %655)
  %666 = load double, ptr %33, align 8, !tbaa !11
  %667 = load ptr, ptr %14, align 8, !tbaa !5
  %668 = load i32, ptr %20, align 4, !tbaa !9
  %669 = load i32, ptr %17, align 4, !tbaa !9
  %670 = mul nsw i32 %668, %669
  %671 = add nsw i32 %670, 4
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds double, ptr %667, i64 %672
  %674 = load double, ptr %673, align 8, !tbaa !11
  %675 = call double @llvm.fmuladd.f64(double %666, double %674, double %665)
  %676 = load double, ptr %34, align 8, !tbaa !11
  %677 = load ptr, ptr %14, align 8, !tbaa !5
  %678 = load i32, ptr %20, align 4, !tbaa !9
  %679 = load i32, ptr %17, align 4, !tbaa !9
  %680 = mul nsw i32 %678, %679
  %681 = add nsw i32 %680, 5
  %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 %676, double %684, double %675)
  %686 = load double, ptr %35, align 8, !tbaa !11
  %687 = load ptr, ptr %14, align 8, !tbaa !5
  %688 = load i32, ptr %20, align 4, !tbaa !9
  %689 = load i32, ptr %17, align 4, !tbaa !9
  %690 = mul nsw i32 %688, %689
  %691 = add nsw i32 %690, 6
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds double, ptr %687, i64 %692
  %694 = load double, ptr %693, align 8, !tbaa !11
  %695 = call double @llvm.fmuladd.f64(double %686, double %694, double %685)
  store double %695, ptr %41, align 8, !tbaa !11
  %696 = load double, ptr %41, align 8, !tbaa !11
  %697 = load double, ptr %21, align 8, !tbaa !11
  %698 = load ptr, ptr %14, align 8, !tbaa !5
  %699 = load i32, ptr %20, align 4, !tbaa !9
  %700 = load i32, ptr %17, align 4, !tbaa !9
  %701 = mul nsw i32 %699, %700
  %702 = add nsw i32 %701, 1
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds double, ptr %698, i64 %703
  %705 = load double, ptr %704, align 8, !tbaa !11
  %706 = fneg double %696
  %707 = call double @llvm.fmuladd.f64(double %706, double %697, double %705)
  store double %707, ptr %704, align 8, !tbaa !11
  %708 = load double, ptr %41, align 8, !tbaa !11
  %709 = load double, ptr %22, align 8, !tbaa !11
  %710 = load ptr, ptr %14, align 8, !tbaa !5
  %711 = load i32, ptr %20, align 4, !tbaa !9
  %712 = load i32, ptr %17, align 4, !tbaa !9
  %713 = mul nsw i32 %711, %712
  %714 = add nsw i32 %713, 2
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds double, ptr %710, i64 %715
  %717 = load double, ptr %716, align 8, !tbaa !11
  %718 = fneg double %708
  %719 = call double @llvm.fmuladd.f64(double %718, double %709, double %717)
  store double %719, ptr %716, align 8, !tbaa !11
  %720 = load double, ptr %41, align 8, !tbaa !11
  %721 = load double, ptr %23, align 8, !tbaa !11
  %722 = load ptr, ptr %14, align 8, !tbaa !5
  %723 = load i32, ptr %20, align 4, !tbaa !9
  %724 = load i32, ptr %17, align 4, !tbaa !9
  %725 = mul nsw i32 %723, %724
  %726 = add nsw i32 %725, 3
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds double, ptr %722, i64 %727
  %729 = load double, ptr %728, align 8, !tbaa !11
  %730 = fneg double %720
  %731 = call double @llvm.fmuladd.f64(double %730, double %721, double %729)
  store double %731, ptr %728, align 8, !tbaa !11
  %732 = load double, ptr %41, align 8, !tbaa !11
  %733 = load double, ptr %24, align 8, !tbaa !11
  %734 = load ptr, ptr %14, align 8, !tbaa !5
  %735 = load i32, ptr %20, align 4, !tbaa !9
  %736 = load i32, ptr %17, align 4, !tbaa !9
  %737 = mul nsw i32 %735, %736
  %738 = add nsw i32 %737, 4
  %739 = sext i32 %738 to i64
  %740 = getelementptr inbounds double, ptr %734, i64 %739
  %741 = load double, ptr %740, align 8, !tbaa !11
  %742 = fneg double %732
  %743 = call double @llvm.fmuladd.f64(double %742, double %733, double %741)
  store double %743, ptr %740, align 8, !tbaa !11
  %744 = load double, ptr %41, align 8, !tbaa !11
  %745 = load double, ptr %25, align 8, !tbaa !11
  %746 = load ptr, ptr %14, align 8, !tbaa !5
  %747 = load i32, ptr %20, align 4, !tbaa !9
  %748 = load i32, ptr %17, align 4, !tbaa !9
  %749 = mul nsw i32 %747, %748
  %750 = add nsw i32 %749, 5
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds double, ptr %746, i64 %751
  %753 = load double, ptr %752, align 8, !tbaa !11
  %754 = fneg double %744
  %755 = call double @llvm.fmuladd.f64(double %754, double %745, double %753)
  store double %755, ptr %752, align 8, !tbaa !11
  %756 = load double, ptr %41, align 8, !tbaa !11
  %757 = load double, ptr %26, align 8, !tbaa !11
  %758 = load ptr, ptr %14, align 8, !tbaa !5
  %759 = load i32, ptr %20, align 4, !tbaa !9
  %760 = load i32, ptr %17, align 4, !tbaa !9
  %761 = mul nsw i32 %759, %760
  %762 = add nsw i32 %761, 6
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds double, ptr %758, i64 %763
  %765 = load double, ptr %764, align 8, !tbaa !11
  %766 = fneg double %756
  %767 = call double @llvm.fmuladd.f64(double %766, double %757, double %765)
  store double %767, ptr %764, align 8, !tbaa !11
  br label %768

768:                                              ; preds = %635
  %769 = load i32, ptr %20, align 4, !tbaa !9
  %770 = add nsw i32 %769, 1
  store i32 %770, ptr %20, align 4, !tbaa !9
  br label %631, !llvm.loop !19

771:                                              ; preds = %631
  br label %3527

772:                                              ; preds = %74
  %773 = load ptr, ptr %12, align 8, !tbaa !5
  %774 = getelementptr inbounds double, ptr %773, i64 1
  %775 = load double, ptr %774, align 8, !tbaa !11
  store double %775, ptr %30, align 8, !tbaa !11
  %776 = load ptr, ptr %13, align 8, !tbaa !5
  %777 = load double, ptr %776, align 8, !tbaa !11
  %778 = load double, ptr %30, align 8, !tbaa !11
  %779 = fmul double %777, %778
  store double %779, ptr %21, align 8, !tbaa !11
  %780 = load ptr, ptr %12, align 8, !tbaa !5
  %781 = getelementptr inbounds double, ptr %780, i64 2
  %782 = load double, ptr %781, align 8, !tbaa !11
  store double %782, ptr %31, align 8, !tbaa !11
  %783 = load ptr, ptr %13, align 8, !tbaa !5
  %784 = load double, ptr %783, align 8, !tbaa !11
  %785 = load double, ptr %31, align 8, !tbaa !11
  %786 = fmul double %784, %785
  store double %786, ptr %22, align 8, !tbaa !11
  %787 = load ptr, ptr %12, align 8, !tbaa !5
  %788 = getelementptr inbounds double, ptr %787, i64 3
  %789 = load double, ptr %788, align 8, !tbaa !11
  store double %789, ptr %32, align 8, !tbaa !11
  %790 = load ptr, ptr %13, align 8, !tbaa !5
  %791 = load double, ptr %790, align 8, !tbaa !11
  %792 = load double, ptr %32, align 8, !tbaa !11
  %793 = fmul double %791, %792
  store double %793, ptr %23, align 8, !tbaa !11
  %794 = load ptr, ptr %12, align 8, !tbaa !5
  %795 = getelementptr inbounds double, ptr %794, i64 4
  %796 = load double, ptr %795, align 8, !tbaa !11
  store double %796, ptr %33, align 8, !tbaa !11
  %797 = load ptr, ptr %13, align 8, !tbaa !5
  %798 = load double, ptr %797, align 8, !tbaa !11
  %799 = load double, ptr %33, align 8, !tbaa !11
  %800 = fmul double %798, %799
  store double %800, ptr %24, align 8, !tbaa !11
  %801 = load ptr, ptr %12, align 8, !tbaa !5
  %802 = getelementptr inbounds double, ptr %801, i64 5
  %803 = load double, ptr %802, align 8, !tbaa !11
  store double %803, ptr %34, align 8, !tbaa !11
  %804 = load ptr, ptr %13, align 8, !tbaa !5
  %805 = load double, ptr %804, align 8, !tbaa !11
  %806 = load double, ptr %34, align 8, !tbaa !11
  %807 = fmul double %805, %806
  store double %807, ptr %25, align 8, !tbaa !11
  %808 = load ptr, ptr %12, align 8, !tbaa !5
  %809 = getelementptr inbounds double, ptr %808, i64 6
  %810 = load double, ptr %809, align 8, !tbaa !11
  store double %810, ptr %35, align 8, !tbaa !11
  %811 = load ptr, ptr %13, align 8, !tbaa !5
  %812 = load double, ptr %811, align 8, !tbaa !11
  %813 = load double, ptr %35, align 8, !tbaa !11
  %814 = fmul double %812, %813
  store double %814, ptr %26, align 8, !tbaa !11
  %815 = load ptr, ptr %12, align 8, !tbaa !5
  %816 = getelementptr inbounds double, ptr %815, i64 7
  %817 = load double, ptr %816, align 8, !tbaa !11
  store double %817, ptr %36, align 8, !tbaa !11
  %818 = load ptr, ptr %13, align 8, !tbaa !5
  %819 = load double, ptr %818, align 8, !tbaa !11
  %820 = load double, ptr %36, align 8, !tbaa !11
  %821 = fmul double %819, %820
  store double %821, ptr %27, align 8, !tbaa !11
  %822 = load ptr, ptr %11, align 8, !tbaa !5
  %823 = load i32, ptr %822, align 4, !tbaa !9
  store i32 %823, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %824

824:                                              ; preds = %983, %772
  %825 = load i32, ptr %20, align 4, !tbaa !9
  %826 = load i32, ptr %19, align 4, !tbaa !9
  %827 = icmp sle i32 %825, %826
  br i1 %827, label %828, label %986

828:                                              ; preds = %824
  %829 = load double, ptr %30, align 8, !tbaa !11
  %830 = load ptr, ptr %14, align 8, !tbaa !5
  %831 = load i32, ptr %20, align 4, !tbaa !9
  %832 = load i32, ptr %17, align 4, !tbaa !9
  %833 = mul nsw i32 %831, %832
  %834 = add nsw i32 %833, 1
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds double, ptr %830, i64 %835
  %837 = load double, ptr %836, align 8, !tbaa !11
  %838 = load double, ptr %31, align 8, !tbaa !11
  %839 = load ptr, ptr %14, align 8, !tbaa !5
  %840 = load i32, ptr %20, align 4, !tbaa !9
  %841 = load i32, ptr %17, align 4, !tbaa !9
  %842 = mul nsw i32 %840, %841
  %843 = add nsw i32 %842, 2
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds double, ptr %839, i64 %844
  %846 = load double, ptr %845, align 8, !tbaa !11
  %847 = fmul double %838, %846
  %848 = call double @llvm.fmuladd.f64(double %829, double %837, double %847)
  %849 = load double, ptr %32, align 8, !tbaa !11
  %850 = load ptr, ptr %14, align 8, !tbaa !5
  %851 = load i32, ptr %20, align 4, !tbaa !9
  %852 = load i32, ptr %17, align 4, !tbaa !9
  %853 = mul nsw i32 %851, %852
  %854 = add nsw i32 %853, 3
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds double, ptr %850, i64 %855
  %857 = load double, ptr %856, align 8, !tbaa !11
  %858 = call double @llvm.fmuladd.f64(double %849, double %857, double %848)
  %859 = load double, ptr %33, align 8, !tbaa !11
  %860 = load ptr, ptr %14, align 8, !tbaa !5
  %861 = load i32, ptr %20, align 4, !tbaa !9
  %862 = load i32, ptr %17, align 4, !tbaa !9
  %863 = mul nsw i32 %861, %862
  %864 = add nsw i32 %863, 4
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds double, ptr %860, i64 %865
  %867 = load double, ptr %866, align 8, !tbaa !11
  %868 = call double @llvm.fmuladd.f64(double %859, double %867, double %858)
  %869 = load double, ptr %34, align 8, !tbaa !11
  %870 = load ptr, ptr %14, align 8, !tbaa !5
  %871 = load i32, ptr %20, align 4, !tbaa !9
  %872 = load i32, ptr %17, align 4, !tbaa !9
  %873 = mul nsw i32 %871, %872
  %874 = add nsw i32 %873, 5
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds double, ptr %870, i64 %875
  %877 = load double, ptr %876, align 8, !tbaa !11
  %878 = call double @llvm.fmuladd.f64(double %869, double %877, double %868)
  %879 = load double, ptr %35, align 8, !tbaa !11
  %880 = load ptr, ptr %14, align 8, !tbaa !5
  %881 = load i32, ptr %20, align 4, !tbaa !9
  %882 = load i32, ptr %17, align 4, !tbaa !9
  %883 = mul nsw i32 %881, %882
  %884 = add nsw i32 %883, 6
  %885 = sext i32 %884 to i64
  %886 = getelementptr inbounds double, ptr %880, i64 %885
  %887 = load double, ptr %886, align 8, !tbaa !11
  %888 = call double @llvm.fmuladd.f64(double %879, double %887, double %878)
  %889 = load double, ptr %36, align 8, !tbaa !11
  %890 = load ptr, ptr %14, align 8, !tbaa !5
  %891 = load i32, ptr %20, align 4, !tbaa !9
  %892 = load i32, ptr %17, align 4, !tbaa !9
  %893 = mul nsw i32 %891, %892
  %894 = add nsw i32 %893, 7
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds double, ptr %890, i64 %895
  %897 = load double, ptr %896, align 8, !tbaa !11
  %898 = call double @llvm.fmuladd.f64(double %889, double %897, double %888)
  store double %898, ptr %41, align 8, !tbaa !11
  %899 = load double, ptr %41, align 8, !tbaa !11
  %900 = load double, ptr %21, align 8, !tbaa !11
  %901 = load ptr, ptr %14, align 8, !tbaa !5
  %902 = load i32, ptr %20, align 4, !tbaa !9
  %903 = load i32, ptr %17, align 4, !tbaa !9
  %904 = mul nsw i32 %902, %903
  %905 = add nsw i32 %904, 1
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds double, ptr %901, i64 %906
  %908 = load double, ptr %907, align 8, !tbaa !11
  %909 = fneg double %899
  %910 = call double @llvm.fmuladd.f64(double %909, double %900, double %908)
  store double %910, ptr %907, align 8, !tbaa !11
  %911 = load double, ptr %41, align 8, !tbaa !11
  %912 = load double, ptr %22, align 8, !tbaa !11
  %913 = load ptr, ptr %14, align 8, !tbaa !5
  %914 = load i32, ptr %20, align 4, !tbaa !9
  %915 = load i32, ptr %17, align 4, !tbaa !9
  %916 = mul nsw i32 %914, %915
  %917 = add nsw i32 %916, 2
  %918 = sext i32 %917 to i64
  %919 = getelementptr inbounds double, ptr %913, i64 %918
  %920 = load double, ptr %919, align 8, !tbaa !11
  %921 = fneg double %911
  %922 = call double @llvm.fmuladd.f64(double %921, double %912, double %920)
  store double %922, ptr %919, align 8, !tbaa !11
  %923 = load double, ptr %41, align 8, !tbaa !11
  %924 = load double, ptr %23, align 8, !tbaa !11
  %925 = load ptr, ptr %14, align 8, !tbaa !5
  %926 = load i32, ptr %20, align 4, !tbaa !9
  %927 = load i32, ptr %17, align 4, !tbaa !9
  %928 = mul nsw i32 %926, %927
  %929 = add nsw i32 %928, 3
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds double, ptr %925, i64 %930
  %932 = load double, ptr %931, align 8, !tbaa !11
  %933 = fneg double %923
  %934 = call double @llvm.fmuladd.f64(double %933, double %924, double %932)
  store double %934, ptr %931, align 8, !tbaa !11
  %935 = load double, ptr %41, align 8, !tbaa !11
  %936 = load double, ptr %24, align 8, !tbaa !11
  %937 = load ptr, ptr %14, align 8, !tbaa !5
  %938 = load i32, ptr %20, align 4, !tbaa !9
  %939 = load i32, ptr %17, align 4, !tbaa !9
  %940 = mul nsw i32 %938, %939
  %941 = add nsw i32 %940, 4
  %942 = sext i32 %941 to i64
  %943 = getelementptr inbounds double, ptr %937, i64 %942
  %944 = load double, ptr %943, align 8, !tbaa !11
  %945 = fneg double %935
  %946 = call double @llvm.fmuladd.f64(double %945, double %936, double %944)
  store double %946, ptr %943, align 8, !tbaa !11
  %947 = load double, ptr %41, align 8, !tbaa !11
  %948 = load double, ptr %25, align 8, !tbaa !11
  %949 = load ptr, ptr %14, align 8, !tbaa !5
  %950 = load i32, ptr %20, align 4, !tbaa !9
  %951 = load i32, ptr %17, align 4, !tbaa !9
  %952 = mul nsw i32 %950, %951
  %953 = add nsw i32 %952, 5
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds double, ptr %949, i64 %954
  %956 = load double, ptr %955, align 8, !tbaa !11
  %957 = fneg double %947
  %958 = call double @llvm.fmuladd.f64(double %957, double %948, double %956)
  store double %958, ptr %955, align 8, !tbaa !11
  %959 = load double, ptr %41, align 8, !tbaa !11
  %960 = load double, ptr %26, align 8, !tbaa !11
  %961 = load ptr, ptr %14, align 8, !tbaa !5
  %962 = load i32, ptr %20, align 4, !tbaa !9
  %963 = load i32, ptr %17, align 4, !tbaa !9
  %964 = mul nsw i32 %962, %963
  %965 = add nsw i32 %964, 6
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds double, ptr %961, i64 %966
  %968 = load double, ptr %967, align 8, !tbaa !11
  %969 = fneg double %959
  %970 = call double @llvm.fmuladd.f64(double %969, double %960, double %968)
  store double %970, ptr %967, align 8, !tbaa !11
  %971 = load double, ptr %41, align 8, !tbaa !11
  %972 = load double, ptr %27, align 8, !tbaa !11
  %973 = load ptr, ptr %14, align 8, !tbaa !5
  %974 = load i32, ptr %20, align 4, !tbaa !9
  %975 = load i32, ptr %17, align 4, !tbaa !9
  %976 = mul nsw i32 %974, %975
  %977 = add nsw i32 %976, 7
  %978 = sext i32 %977 to i64
  %979 = getelementptr inbounds double, ptr %973, i64 %978
  %980 = load double, ptr %979, align 8, !tbaa !11
  %981 = fneg double %971
  %982 = call double @llvm.fmuladd.f64(double %981, double %972, double %980)
  store double %982, ptr %979, align 8, !tbaa !11
  br label %983

983:                                              ; preds = %828
  %984 = load i32, ptr %20, align 4, !tbaa !9
  %985 = add nsw i32 %984, 1
  store i32 %985, ptr %20, align 4, !tbaa !9
  br label %824, !llvm.loop !20

986:                                              ; preds = %824
  br label %3527

987:                                              ; preds = %75
  %988 = load ptr, ptr %12, align 8, !tbaa !5
  %989 = getelementptr inbounds double, ptr %988, i64 1
  %990 = load double, ptr %989, align 8, !tbaa !11
  store double %990, ptr %30, align 8, !tbaa !11
  %991 = load ptr, ptr %13, align 8, !tbaa !5
  %992 = load double, ptr %991, align 8, !tbaa !11
  %993 = load double, ptr %30, align 8, !tbaa !11
  %994 = fmul double %992, %993
  store double %994, ptr %21, align 8, !tbaa !11
  %995 = load ptr, ptr %12, align 8, !tbaa !5
  %996 = getelementptr inbounds double, ptr %995, i64 2
  %997 = load double, ptr %996, align 8, !tbaa !11
  store double %997, ptr %31, align 8, !tbaa !11
  %998 = load ptr, ptr %13, align 8, !tbaa !5
  %999 = load double, ptr %998, align 8, !tbaa !11
  %1000 = load double, ptr %31, align 8, !tbaa !11
  %1001 = fmul double %999, %1000
  store double %1001, ptr %22, align 8, !tbaa !11
  %1002 = load ptr, ptr %12, align 8, !tbaa !5
  %1003 = getelementptr inbounds double, ptr %1002, i64 3
  %1004 = load double, ptr %1003, align 8, !tbaa !11
  store double %1004, ptr %32, align 8, !tbaa !11
  %1005 = load ptr, ptr %13, align 8, !tbaa !5
  %1006 = load double, ptr %1005, align 8, !tbaa !11
  %1007 = load double, ptr %32, align 8, !tbaa !11
  %1008 = fmul double %1006, %1007
  store double %1008, ptr %23, align 8, !tbaa !11
  %1009 = load ptr, ptr %12, align 8, !tbaa !5
  %1010 = getelementptr inbounds double, ptr %1009, i64 4
  %1011 = load double, ptr %1010, align 8, !tbaa !11
  store double %1011, ptr %33, align 8, !tbaa !11
  %1012 = load ptr, ptr %13, align 8, !tbaa !5
  %1013 = load double, ptr %1012, align 8, !tbaa !11
  %1014 = load double, ptr %33, align 8, !tbaa !11
  %1015 = fmul double %1013, %1014
  store double %1015, ptr %24, align 8, !tbaa !11
  %1016 = load ptr, ptr %12, align 8, !tbaa !5
  %1017 = getelementptr inbounds double, ptr %1016, i64 5
  %1018 = load double, ptr %1017, align 8, !tbaa !11
  store double %1018, ptr %34, align 8, !tbaa !11
  %1019 = load ptr, ptr %13, align 8, !tbaa !5
  %1020 = load double, ptr %1019, align 8, !tbaa !11
  %1021 = load double, ptr %34, align 8, !tbaa !11
  %1022 = fmul double %1020, %1021
  store double %1022, ptr %25, align 8, !tbaa !11
  %1023 = load ptr, ptr %12, align 8, !tbaa !5
  %1024 = getelementptr inbounds double, ptr %1023, i64 6
  %1025 = load double, ptr %1024, align 8, !tbaa !11
  store double %1025, ptr %35, align 8, !tbaa !11
  %1026 = load ptr, ptr %13, align 8, !tbaa !5
  %1027 = load double, ptr %1026, align 8, !tbaa !11
  %1028 = load double, ptr %35, align 8, !tbaa !11
  %1029 = fmul double %1027, %1028
  store double %1029, ptr %26, align 8, !tbaa !11
  %1030 = load ptr, ptr %12, align 8, !tbaa !5
  %1031 = getelementptr inbounds double, ptr %1030, i64 7
  %1032 = load double, ptr %1031, align 8, !tbaa !11
  store double %1032, ptr %36, align 8, !tbaa !11
  %1033 = load ptr, ptr %13, align 8, !tbaa !5
  %1034 = load double, ptr %1033, align 8, !tbaa !11
  %1035 = load double, ptr %36, align 8, !tbaa !11
  %1036 = fmul double %1034, %1035
  store double %1036, ptr %27, align 8, !tbaa !11
  %1037 = load ptr, ptr %12, align 8, !tbaa !5
  %1038 = getelementptr inbounds double, ptr %1037, i64 8
  %1039 = load double, ptr %1038, align 8, !tbaa !11
  store double %1039, ptr %37, align 8, !tbaa !11
  %1040 = load ptr, ptr %13, align 8, !tbaa !5
  %1041 = load double, ptr %1040, align 8, !tbaa !11
  %1042 = load double, ptr %37, align 8, !tbaa !11
  %1043 = fmul double %1041, %1042
  store double %1043, ptr %28, align 8, !tbaa !11
  %1044 = load ptr, ptr %11, align 8, !tbaa !5
  %1045 = load i32, ptr %1044, align 4, !tbaa !9
  store i32 %1045, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %1046

1046:                                             ; preds = %1227, %987
  %1047 = load i32, ptr %20, align 4, !tbaa !9
  %1048 = load i32, ptr %19, align 4, !tbaa !9
  %1049 = icmp sle i32 %1047, %1048
  br i1 %1049, label %1050, label %1230

1050:                                             ; preds = %1046
  %1051 = load double, ptr %30, align 8, !tbaa !11
  %1052 = load ptr, ptr %14, align 8, !tbaa !5
  %1053 = load i32, ptr %20, align 4, !tbaa !9
  %1054 = load i32, ptr %17, align 4, !tbaa !9
  %1055 = mul nsw i32 %1053, %1054
  %1056 = add nsw i32 %1055, 1
  %1057 = sext i32 %1056 to i64
  %1058 = getelementptr inbounds double, ptr %1052, i64 %1057
  %1059 = load double, ptr %1058, align 8, !tbaa !11
  %1060 = load double, ptr %31, align 8, !tbaa !11
  %1061 = load ptr, ptr %14, align 8, !tbaa !5
  %1062 = load i32, ptr %20, align 4, !tbaa !9
  %1063 = load i32, ptr %17, align 4, !tbaa !9
  %1064 = mul nsw i32 %1062, %1063
  %1065 = add nsw i32 %1064, 2
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds double, ptr %1061, i64 %1066
  %1068 = load double, ptr %1067, align 8, !tbaa !11
  %1069 = fmul double %1060, %1068
  %1070 = call double @llvm.fmuladd.f64(double %1051, double %1059, double %1069)
  %1071 = load double, ptr %32, align 8, !tbaa !11
  %1072 = load ptr, ptr %14, align 8, !tbaa !5
  %1073 = load i32, ptr %20, align 4, !tbaa !9
  %1074 = load i32, ptr %17, align 4, !tbaa !9
  %1075 = mul nsw i32 %1073, %1074
  %1076 = add nsw i32 %1075, 3
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds double, ptr %1072, i64 %1077
  %1079 = load double, ptr %1078, align 8, !tbaa !11
  %1080 = call double @llvm.fmuladd.f64(double %1071, double %1079, double %1070)
  %1081 = load double, ptr %33, align 8, !tbaa !11
  %1082 = load ptr, ptr %14, align 8, !tbaa !5
  %1083 = load i32, ptr %20, align 4, !tbaa !9
  %1084 = load i32, ptr %17, align 4, !tbaa !9
  %1085 = mul nsw i32 %1083, %1084
  %1086 = add nsw i32 %1085, 4
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds double, ptr %1082, i64 %1087
  %1089 = load double, ptr %1088, align 8, !tbaa !11
  %1090 = call double @llvm.fmuladd.f64(double %1081, double %1089, double %1080)
  %1091 = load double, ptr %34, align 8, !tbaa !11
  %1092 = load ptr, ptr %14, align 8, !tbaa !5
  %1093 = load i32, ptr %20, align 4, !tbaa !9
  %1094 = load i32, ptr %17, align 4, !tbaa !9
  %1095 = mul nsw i32 %1093, %1094
  %1096 = add nsw i32 %1095, 5
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds double, ptr %1092, i64 %1097
  %1099 = load double, ptr %1098, align 8, !tbaa !11
  %1100 = call double @llvm.fmuladd.f64(double %1091, double %1099, double %1090)
  %1101 = load double, ptr %35, align 8, !tbaa !11
  %1102 = load ptr, ptr %14, align 8, !tbaa !5
  %1103 = load i32, ptr %20, align 4, !tbaa !9
  %1104 = load i32, ptr %17, align 4, !tbaa !9
  %1105 = mul nsw i32 %1103, %1104
  %1106 = add nsw i32 %1105, 6
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds double, ptr %1102, i64 %1107
  %1109 = load double, ptr %1108, align 8, !tbaa !11
  %1110 = call double @llvm.fmuladd.f64(double %1101, double %1109, double %1100)
  %1111 = load double, ptr %36, align 8, !tbaa !11
  %1112 = load ptr, ptr %14, align 8, !tbaa !5
  %1113 = load i32, ptr %20, align 4, !tbaa !9
  %1114 = load i32, ptr %17, align 4, !tbaa !9
  %1115 = mul nsw i32 %1113, %1114
  %1116 = add nsw i32 %1115, 7
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds double, ptr %1112, i64 %1117
  %1119 = load double, ptr %1118, align 8, !tbaa !11
  %1120 = call double @llvm.fmuladd.f64(double %1111, double %1119, double %1110)
  %1121 = load double, ptr %37, align 8, !tbaa !11
  %1122 = load ptr, ptr %14, align 8, !tbaa !5
  %1123 = load i32, ptr %20, align 4, !tbaa !9
  %1124 = load i32, ptr %17, align 4, !tbaa !9
  %1125 = mul nsw i32 %1123, %1124
  %1126 = add nsw i32 %1125, 8
  %1127 = sext i32 %1126 to i64
  %1128 = getelementptr inbounds double, ptr %1122, i64 %1127
  %1129 = load double, ptr %1128, align 8, !tbaa !11
  %1130 = call double @llvm.fmuladd.f64(double %1121, double %1129, double %1120)
  store double %1130, ptr %41, align 8, !tbaa !11
  %1131 = load double, ptr %41, align 8, !tbaa !11
  %1132 = load double, ptr %21, align 8, !tbaa !11
  %1133 = load ptr, ptr %14, align 8, !tbaa !5
  %1134 = load i32, ptr %20, align 4, !tbaa !9
  %1135 = load i32, ptr %17, align 4, !tbaa !9
  %1136 = mul nsw i32 %1134, %1135
  %1137 = add nsw i32 %1136, 1
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds double, ptr %1133, i64 %1138
  %1140 = load double, ptr %1139, align 8, !tbaa !11
  %1141 = fneg double %1131
  %1142 = call double @llvm.fmuladd.f64(double %1141, double %1132, double %1140)
  store double %1142, ptr %1139, align 8, !tbaa !11
  %1143 = load double, ptr %41, align 8, !tbaa !11
  %1144 = load double, ptr %22, align 8, !tbaa !11
  %1145 = load ptr, ptr %14, align 8, !tbaa !5
  %1146 = load i32, ptr %20, align 4, !tbaa !9
  %1147 = load i32, ptr %17, align 4, !tbaa !9
  %1148 = mul nsw i32 %1146, %1147
  %1149 = add nsw i32 %1148, 2
  %1150 = sext i32 %1149 to i64
  %1151 = getelementptr inbounds double, ptr %1145, i64 %1150
  %1152 = load double, ptr %1151, align 8, !tbaa !11
  %1153 = fneg double %1143
  %1154 = call double @llvm.fmuladd.f64(double %1153, double %1144, double %1152)
  store double %1154, ptr %1151, align 8, !tbaa !11
  %1155 = load double, ptr %41, align 8, !tbaa !11
  %1156 = load double, ptr %23, align 8, !tbaa !11
  %1157 = load ptr, ptr %14, align 8, !tbaa !5
  %1158 = load i32, ptr %20, align 4, !tbaa !9
  %1159 = load i32, ptr %17, align 4, !tbaa !9
  %1160 = mul nsw i32 %1158, %1159
  %1161 = add nsw i32 %1160, 3
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds double, ptr %1157, i64 %1162
  %1164 = load double, ptr %1163, align 8, !tbaa !11
  %1165 = fneg double %1155
  %1166 = call double @llvm.fmuladd.f64(double %1165, double %1156, double %1164)
  store double %1166, ptr %1163, align 8, !tbaa !11
  %1167 = load double, ptr %41, align 8, !tbaa !11
  %1168 = load double, ptr %24, align 8, !tbaa !11
  %1169 = load ptr, ptr %14, align 8, !tbaa !5
  %1170 = load i32, ptr %20, align 4, !tbaa !9
  %1171 = load i32, ptr %17, align 4, !tbaa !9
  %1172 = mul nsw i32 %1170, %1171
  %1173 = add nsw i32 %1172, 4
  %1174 = sext i32 %1173 to i64
  %1175 = getelementptr inbounds double, ptr %1169, i64 %1174
  %1176 = load double, ptr %1175, align 8, !tbaa !11
  %1177 = fneg double %1167
  %1178 = call double @llvm.fmuladd.f64(double %1177, double %1168, double %1176)
  store double %1178, ptr %1175, align 8, !tbaa !11
  %1179 = load double, ptr %41, align 8, !tbaa !11
  %1180 = load double, ptr %25, align 8, !tbaa !11
  %1181 = load ptr, ptr %14, align 8, !tbaa !5
  %1182 = load i32, ptr %20, align 4, !tbaa !9
  %1183 = load i32, ptr %17, align 4, !tbaa !9
  %1184 = mul nsw i32 %1182, %1183
  %1185 = add nsw i32 %1184, 5
  %1186 = sext i32 %1185 to i64
  %1187 = getelementptr inbounds double, ptr %1181, i64 %1186
  %1188 = load double, ptr %1187, align 8, !tbaa !11
  %1189 = fneg double %1179
  %1190 = call double @llvm.fmuladd.f64(double %1189, double %1180, double %1188)
  store double %1190, ptr %1187, align 8, !tbaa !11
  %1191 = load double, ptr %41, align 8, !tbaa !11
  %1192 = load double, ptr %26, align 8, !tbaa !11
  %1193 = load ptr, ptr %14, align 8, !tbaa !5
  %1194 = load i32, ptr %20, align 4, !tbaa !9
  %1195 = load i32, ptr %17, align 4, !tbaa !9
  %1196 = mul nsw i32 %1194, %1195
  %1197 = add nsw i32 %1196, 6
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds double, ptr %1193, i64 %1198
  %1200 = load double, ptr %1199, align 8, !tbaa !11
  %1201 = fneg double %1191
  %1202 = call double @llvm.fmuladd.f64(double %1201, double %1192, double %1200)
  store double %1202, ptr %1199, align 8, !tbaa !11
  %1203 = load double, ptr %41, align 8, !tbaa !11
  %1204 = load double, ptr %27, align 8, !tbaa !11
  %1205 = load ptr, ptr %14, align 8, !tbaa !5
  %1206 = load i32, ptr %20, align 4, !tbaa !9
  %1207 = load i32, ptr %17, align 4, !tbaa !9
  %1208 = mul nsw i32 %1206, %1207
  %1209 = add nsw i32 %1208, 7
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds double, ptr %1205, i64 %1210
  %1212 = load double, ptr %1211, align 8, !tbaa !11
  %1213 = fneg double %1203
  %1214 = call double @llvm.fmuladd.f64(double %1213, double %1204, double %1212)
  store double %1214, ptr %1211, align 8, !tbaa !11
  %1215 = load double, ptr %41, align 8, !tbaa !11
  %1216 = load double, ptr %28, align 8, !tbaa !11
  %1217 = load ptr, ptr %14, align 8, !tbaa !5
  %1218 = load i32, ptr %20, align 4, !tbaa !9
  %1219 = load i32, ptr %17, align 4, !tbaa !9
  %1220 = mul nsw i32 %1218, %1219
  %1221 = add nsw i32 %1220, 8
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds double, ptr %1217, i64 %1222
  %1224 = load double, ptr %1223, align 8, !tbaa !11
  %1225 = fneg double %1215
  %1226 = call double @llvm.fmuladd.f64(double %1225, double %1216, double %1224)
  store double %1226, ptr %1223, align 8, !tbaa !11
  br label %1227

1227:                                             ; preds = %1050
  %1228 = load i32, ptr %20, align 4, !tbaa !9
  %1229 = add nsw i32 %1228, 1
  store i32 %1229, ptr %20, align 4, !tbaa !9
  br label %1046, !llvm.loop !21

1230:                                             ; preds = %1046
  br label %3527

1231:                                             ; preds = %76
  %1232 = load ptr, ptr %12, align 8, !tbaa !5
  %1233 = getelementptr inbounds double, ptr %1232, i64 1
  %1234 = load double, ptr %1233, align 8, !tbaa !11
  store double %1234, ptr %30, align 8, !tbaa !11
  %1235 = load ptr, ptr %13, align 8, !tbaa !5
  %1236 = load double, ptr %1235, align 8, !tbaa !11
  %1237 = load double, ptr %30, align 8, !tbaa !11
  %1238 = fmul double %1236, %1237
  store double %1238, ptr %21, align 8, !tbaa !11
  %1239 = load ptr, ptr %12, align 8, !tbaa !5
  %1240 = getelementptr inbounds double, ptr %1239, i64 2
  %1241 = load double, ptr %1240, align 8, !tbaa !11
  store double %1241, ptr %31, align 8, !tbaa !11
  %1242 = load ptr, ptr %13, align 8, !tbaa !5
  %1243 = load double, ptr %1242, align 8, !tbaa !11
  %1244 = load double, ptr %31, align 8, !tbaa !11
  %1245 = fmul double %1243, %1244
  store double %1245, ptr %22, align 8, !tbaa !11
  %1246 = load ptr, ptr %12, align 8, !tbaa !5
  %1247 = getelementptr inbounds double, ptr %1246, i64 3
  %1248 = load double, ptr %1247, align 8, !tbaa !11
  store double %1248, ptr %32, align 8, !tbaa !11
  %1249 = load ptr, ptr %13, align 8, !tbaa !5
  %1250 = load double, ptr %1249, align 8, !tbaa !11
  %1251 = load double, ptr %32, align 8, !tbaa !11
  %1252 = fmul double %1250, %1251
  store double %1252, ptr %23, align 8, !tbaa !11
  %1253 = load ptr, ptr %12, align 8, !tbaa !5
  %1254 = getelementptr inbounds double, ptr %1253, i64 4
  %1255 = load double, ptr %1254, align 8, !tbaa !11
  store double %1255, ptr %33, align 8, !tbaa !11
  %1256 = load ptr, ptr %13, align 8, !tbaa !5
  %1257 = load double, ptr %1256, align 8, !tbaa !11
  %1258 = load double, ptr %33, align 8, !tbaa !11
  %1259 = fmul double %1257, %1258
  store double %1259, ptr %24, align 8, !tbaa !11
  %1260 = load ptr, ptr %12, align 8, !tbaa !5
  %1261 = getelementptr inbounds double, ptr %1260, i64 5
  %1262 = load double, ptr %1261, align 8, !tbaa !11
  store double %1262, ptr %34, align 8, !tbaa !11
  %1263 = load ptr, ptr %13, align 8, !tbaa !5
  %1264 = load double, ptr %1263, align 8, !tbaa !11
  %1265 = load double, ptr %34, align 8, !tbaa !11
  %1266 = fmul double %1264, %1265
  store double %1266, ptr %25, align 8, !tbaa !11
  %1267 = load ptr, ptr %12, align 8, !tbaa !5
  %1268 = getelementptr inbounds double, ptr %1267, i64 6
  %1269 = load double, ptr %1268, align 8, !tbaa !11
  store double %1269, ptr %35, align 8, !tbaa !11
  %1270 = load ptr, ptr %13, align 8, !tbaa !5
  %1271 = load double, ptr %1270, align 8, !tbaa !11
  %1272 = load double, ptr %35, align 8, !tbaa !11
  %1273 = fmul double %1271, %1272
  store double %1273, ptr %26, align 8, !tbaa !11
  %1274 = load ptr, ptr %12, align 8, !tbaa !5
  %1275 = getelementptr inbounds double, ptr %1274, i64 7
  %1276 = load double, ptr %1275, align 8, !tbaa !11
  store double %1276, ptr %36, align 8, !tbaa !11
  %1277 = load ptr, ptr %13, align 8, !tbaa !5
  %1278 = load double, ptr %1277, align 8, !tbaa !11
  %1279 = load double, ptr %36, align 8, !tbaa !11
  %1280 = fmul double %1278, %1279
  store double %1280, ptr %27, align 8, !tbaa !11
  %1281 = load ptr, ptr %12, align 8, !tbaa !5
  %1282 = getelementptr inbounds double, ptr %1281, i64 8
  %1283 = load double, ptr %1282, align 8, !tbaa !11
  store double %1283, ptr %37, align 8, !tbaa !11
  %1284 = load ptr, ptr %13, align 8, !tbaa !5
  %1285 = load double, ptr %1284, align 8, !tbaa !11
  %1286 = load double, ptr %37, align 8, !tbaa !11
  %1287 = fmul double %1285, %1286
  store double %1287, ptr %28, align 8, !tbaa !11
  %1288 = load ptr, ptr %12, align 8, !tbaa !5
  %1289 = getelementptr inbounds double, ptr %1288, i64 9
  %1290 = load double, ptr %1289, align 8, !tbaa !11
  store double %1290, ptr %38, align 8, !tbaa !11
  %1291 = load ptr, ptr %13, align 8, !tbaa !5
  %1292 = load double, ptr %1291, align 8, !tbaa !11
  %1293 = load double, ptr %38, align 8, !tbaa !11
  %1294 = fmul double %1292, %1293
  store double %1294, ptr %29, align 8, !tbaa !11
  %1295 = load ptr, ptr %11, align 8, !tbaa !5
  %1296 = load i32, ptr %1295, align 4, !tbaa !9
  store i32 %1296, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %1297

1297:                                             ; preds = %1500, %1231
  %1298 = load i32, ptr %20, align 4, !tbaa !9
  %1299 = load i32, ptr %19, align 4, !tbaa !9
  %1300 = icmp sle i32 %1298, %1299
  br i1 %1300, label %1301, label %1503

1301:                                             ; preds = %1297
  %1302 = load double, ptr %30, align 8, !tbaa !11
  %1303 = load ptr, ptr %14, align 8, !tbaa !5
  %1304 = load i32, ptr %20, align 4, !tbaa !9
  %1305 = load i32, ptr %17, align 4, !tbaa !9
  %1306 = mul nsw i32 %1304, %1305
  %1307 = add nsw i32 %1306, 1
  %1308 = sext i32 %1307 to i64
  %1309 = getelementptr inbounds double, ptr %1303, i64 %1308
  %1310 = load double, ptr %1309, align 8, !tbaa !11
  %1311 = load double, ptr %31, align 8, !tbaa !11
  %1312 = load ptr, ptr %14, align 8, !tbaa !5
  %1313 = load i32, ptr %20, align 4, !tbaa !9
  %1314 = load i32, ptr %17, align 4, !tbaa !9
  %1315 = mul nsw i32 %1313, %1314
  %1316 = add nsw i32 %1315, 2
  %1317 = sext i32 %1316 to i64
  %1318 = getelementptr inbounds double, ptr %1312, i64 %1317
  %1319 = load double, ptr %1318, align 8, !tbaa !11
  %1320 = fmul double %1311, %1319
  %1321 = call double @llvm.fmuladd.f64(double %1302, double %1310, double %1320)
  %1322 = load double, ptr %32, align 8, !tbaa !11
  %1323 = load ptr, ptr %14, align 8, !tbaa !5
  %1324 = load i32, ptr %20, align 4, !tbaa !9
  %1325 = load i32, ptr %17, align 4, !tbaa !9
  %1326 = mul nsw i32 %1324, %1325
  %1327 = add nsw i32 %1326, 3
  %1328 = sext i32 %1327 to i64
  %1329 = getelementptr inbounds double, ptr %1323, i64 %1328
  %1330 = load double, ptr %1329, align 8, !tbaa !11
  %1331 = call double @llvm.fmuladd.f64(double %1322, double %1330, double %1321)
  %1332 = load double, ptr %33, align 8, !tbaa !11
  %1333 = load ptr, ptr %14, align 8, !tbaa !5
  %1334 = load i32, ptr %20, align 4, !tbaa !9
  %1335 = load i32, ptr %17, align 4, !tbaa !9
  %1336 = mul nsw i32 %1334, %1335
  %1337 = add nsw i32 %1336, 4
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds double, ptr %1333, i64 %1338
  %1340 = load double, ptr %1339, align 8, !tbaa !11
  %1341 = call double @llvm.fmuladd.f64(double %1332, double %1340, double %1331)
  %1342 = load double, ptr %34, align 8, !tbaa !11
  %1343 = load ptr, ptr %14, align 8, !tbaa !5
  %1344 = load i32, ptr %20, align 4, !tbaa !9
  %1345 = load i32, ptr %17, align 4, !tbaa !9
  %1346 = mul nsw i32 %1344, %1345
  %1347 = add nsw i32 %1346, 5
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds double, ptr %1343, i64 %1348
  %1350 = load double, ptr %1349, align 8, !tbaa !11
  %1351 = call double @llvm.fmuladd.f64(double %1342, double %1350, double %1341)
  %1352 = load double, ptr %35, align 8, !tbaa !11
  %1353 = load ptr, ptr %14, align 8, !tbaa !5
  %1354 = load i32, ptr %20, align 4, !tbaa !9
  %1355 = load i32, ptr %17, align 4, !tbaa !9
  %1356 = mul nsw i32 %1354, %1355
  %1357 = add nsw i32 %1356, 6
  %1358 = sext i32 %1357 to i64
  %1359 = getelementptr inbounds double, ptr %1353, i64 %1358
  %1360 = load double, ptr %1359, align 8, !tbaa !11
  %1361 = call double @llvm.fmuladd.f64(double %1352, double %1360, double %1351)
  %1362 = load double, ptr %36, align 8, !tbaa !11
  %1363 = load ptr, ptr %14, align 8, !tbaa !5
  %1364 = load i32, ptr %20, align 4, !tbaa !9
  %1365 = load i32, ptr %17, align 4, !tbaa !9
  %1366 = mul nsw i32 %1364, %1365
  %1367 = add nsw i32 %1366, 7
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds double, ptr %1363, i64 %1368
  %1370 = load double, ptr %1369, align 8, !tbaa !11
  %1371 = call double @llvm.fmuladd.f64(double %1362, double %1370, double %1361)
  %1372 = load double, ptr %37, align 8, !tbaa !11
  %1373 = load ptr, ptr %14, align 8, !tbaa !5
  %1374 = load i32, ptr %20, align 4, !tbaa !9
  %1375 = load i32, ptr %17, align 4, !tbaa !9
  %1376 = mul nsw i32 %1374, %1375
  %1377 = add nsw i32 %1376, 8
  %1378 = sext i32 %1377 to i64
  %1379 = getelementptr inbounds double, ptr %1373, i64 %1378
  %1380 = load double, ptr %1379, align 8, !tbaa !11
  %1381 = call double @llvm.fmuladd.f64(double %1372, double %1380, double %1371)
  %1382 = load double, ptr %38, align 8, !tbaa !11
  %1383 = load ptr, ptr %14, align 8, !tbaa !5
  %1384 = load i32, ptr %20, align 4, !tbaa !9
  %1385 = load i32, ptr %17, align 4, !tbaa !9
  %1386 = mul nsw i32 %1384, %1385
  %1387 = add nsw i32 %1386, 9
  %1388 = sext i32 %1387 to i64
  %1389 = getelementptr inbounds double, ptr %1383, i64 %1388
  %1390 = load double, ptr %1389, align 8, !tbaa !11
  %1391 = call double @llvm.fmuladd.f64(double %1382, double %1390, double %1381)
  store double %1391, ptr %41, align 8, !tbaa !11
  %1392 = load double, ptr %41, align 8, !tbaa !11
  %1393 = load double, ptr %21, align 8, !tbaa !11
  %1394 = load ptr, ptr %14, align 8, !tbaa !5
  %1395 = load i32, ptr %20, align 4, !tbaa !9
  %1396 = load i32, ptr %17, align 4, !tbaa !9
  %1397 = mul nsw i32 %1395, %1396
  %1398 = add nsw i32 %1397, 1
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds double, ptr %1394, i64 %1399
  %1401 = load double, ptr %1400, align 8, !tbaa !11
  %1402 = fneg double %1392
  %1403 = call double @llvm.fmuladd.f64(double %1402, double %1393, double %1401)
  store double %1403, ptr %1400, align 8, !tbaa !11
  %1404 = load double, ptr %41, align 8, !tbaa !11
  %1405 = load double, ptr %22, align 8, !tbaa !11
  %1406 = load ptr, ptr %14, align 8, !tbaa !5
  %1407 = load i32, ptr %20, align 4, !tbaa !9
  %1408 = load i32, ptr %17, align 4, !tbaa !9
  %1409 = mul nsw i32 %1407, %1408
  %1410 = add nsw i32 %1409, 2
  %1411 = sext i32 %1410 to i64
  %1412 = getelementptr inbounds double, ptr %1406, i64 %1411
  %1413 = load double, ptr %1412, align 8, !tbaa !11
  %1414 = fneg double %1404
  %1415 = call double @llvm.fmuladd.f64(double %1414, double %1405, double %1413)
  store double %1415, ptr %1412, align 8, !tbaa !11
  %1416 = load double, ptr %41, align 8, !tbaa !11
  %1417 = load double, ptr %23, align 8, !tbaa !11
  %1418 = load ptr, ptr %14, align 8, !tbaa !5
  %1419 = load i32, ptr %20, align 4, !tbaa !9
  %1420 = load i32, ptr %17, align 4, !tbaa !9
  %1421 = mul nsw i32 %1419, %1420
  %1422 = add nsw i32 %1421, 3
  %1423 = sext i32 %1422 to i64
  %1424 = getelementptr inbounds double, ptr %1418, i64 %1423
  %1425 = load double, ptr %1424, align 8, !tbaa !11
  %1426 = fneg double %1416
  %1427 = call double @llvm.fmuladd.f64(double %1426, double %1417, double %1425)
  store double %1427, ptr %1424, align 8, !tbaa !11
  %1428 = load double, ptr %41, align 8, !tbaa !11
  %1429 = load double, ptr %24, align 8, !tbaa !11
  %1430 = load ptr, ptr %14, align 8, !tbaa !5
  %1431 = load i32, ptr %20, align 4, !tbaa !9
  %1432 = load i32, ptr %17, align 4, !tbaa !9
  %1433 = mul nsw i32 %1431, %1432
  %1434 = add nsw i32 %1433, 4
  %1435 = sext i32 %1434 to i64
  %1436 = getelementptr inbounds double, ptr %1430, i64 %1435
  %1437 = load double, ptr %1436, align 8, !tbaa !11
  %1438 = fneg double %1428
  %1439 = call double @llvm.fmuladd.f64(double %1438, double %1429, double %1437)
  store double %1439, ptr %1436, align 8, !tbaa !11
  %1440 = load double, ptr %41, align 8, !tbaa !11
  %1441 = load double, ptr %25, align 8, !tbaa !11
  %1442 = load ptr, ptr %14, align 8, !tbaa !5
  %1443 = load i32, ptr %20, align 4, !tbaa !9
  %1444 = load i32, ptr %17, align 4, !tbaa !9
  %1445 = mul nsw i32 %1443, %1444
  %1446 = add nsw i32 %1445, 5
  %1447 = sext i32 %1446 to i64
  %1448 = getelementptr inbounds double, ptr %1442, i64 %1447
  %1449 = load double, ptr %1448, align 8, !tbaa !11
  %1450 = fneg double %1440
  %1451 = call double @llvm.fmuladd.f64(double %1450, double %1441, double %1449)
  store double %1451, ptr %1448, align 8, !tbaa !11
  %1452 = load double, ptr %41, align 8, !tbaa !11
  %1453 = load double, ptr %26, align 8, !tbaa !11
  %1454 = load ptr, ptr %14, align 8, !tbaa !5
  %1455 = load i32, ptr %20, align 4, !tbaa !9
  %1456 = load i32, ptr %17, align 4, !tbaa !9
  %1457 = mul nsw i32 %1455, %1456
  %1458 = add nsw i32 %1457, 6
  %1459 = sext i32 %1458 to i64
  %1460 = getelementptr inbounds double, ptr %1454, i64 %1459
  %1461 = load double, ptr %1460, align 8, !tbaa !11
  %1462 = fneg double %1452
  %1463 = call double @llvm.fmuladd.f64(double %1462, double %1453, double %1461)
  store double %1463, ptr %1460, align 8, !tbaa !11
  %1464 = load double, ptr %41, align 8, !tbaa !11
  %1465 = load double, ptr %27, align 8, !tbaa !11
  %1466 = load ptr, ptr %14, align 8, !tbaa !5
  %1467 = load i32, ptr %20, align 4, !tbaa !9
  %1468 = load i32, ptr %17, align 4, !tbaa !9
  %1469 = mul nsw i32 %1467, %1468
  %1470 = add nsw i32 %1469, 7
  %1471 = sext i32 %1470 to i64
  %1472 = getelementptr inbounds double, ptr %1466, i64 %1471
  %1473 = load double, ptr %1472, align 8, !tbaa !11
  %1474 = fneg double %1464
  %1475 = call double @llvm.fmuladd.f64(double %1474, double %1465, double %1473)
  store double %1475, ptr %1472, align 8, !tbaa !11
  %1476 = load double, ptr %41, align 8, !tbaa !11
  %1477 = load double, ptr %28, align 8, !tbaa !11
  %1478 = load ptr, ptr %14, align 8, !tbaa !5
  %1479 = load i32, ptr %20, align 4, !tbaa !9
  %1480 = load i32, ptr %17, align 4, !tbaa !9
  %1481 = mul nsw i32 %1479, %1480
  %1482 = add nsw i32 %1481, 8
  %1483 = sext i32 %1482 to i64
  %1484 = getelementptr inbounds double, ptr %1478, i64 %1483
  %1485 = load double, ptr %1484, align 8, !tbaa !11
  %1486 = fneg double %1476
  %1487 = call double @llvm.fmuladd.f64(double %1486, double %1477, double %1485)
  store double %1487, ptr %1484, align 8, !tbaa !11
  %1488 = load double, ptr %41, align 8, !tbaa !11
  %1489 = load double, ptr %29, align 8, !tbaa !11
  %1490 = load ptr, ptr %14, align 8, !tbaa !5
  %1491 = load i32, ptr %20, align 4, !tbaa !9
  %1492 = load i32, ptr %17, align 4, !tbaa !9
  %1493 = mul nsw i32 %1491, %1492
  %1494 = add nsw i32 %1493, 9
  %1495 = sext i32 %1494 to i64
  %1496 = getelementptr inbounds double, ptr %1490, i64 %1495
  %1497 = load double, ptr %1496, align 8, !tbaa !11
  %1498 = fneg double %1488
  %1499 = call double @llvm.fmuladd.f64(double %1498, double %1489, double %1497)
  store double %1499, ptr %1496, align 8, !tbaa !11
  br label %1500

1500:                                             ; preds = %1301
  %1501 = load i32, ptr %20, align 4, !tbaa !9
  %1502 = add nsw i32 %1501, 1
  store i32 %1502, ptr %20, align 4, !tbaa !9
  br label %1297, !llvm.loop !22

1503:                                             ; preds = %1297
  br label %3527

1504:                                             ; preds = %77
  %1505 = load ptr, ptr %12, align 8, !tbaa !5
  %1506 = getelementptr inbounds double, ptr %1505, i64 1
  %1507 = load double, ptr %1506, align 8, !tbaa !11
  store double %1507, ptr %30, align 8, !tbaa !11
  %1508 = load ptr, ptr %13, align 8, !tbaa !5
  %1509 = load double, ptr %1508, align 8, !tbaa !11
  %1510 = load double, ptr %30, align 8, !tbaa !11
  %1511 = fmul double %1509, %1510
  store double %1511, ptr %21, align 8, !tbaa !11
  %1512 = load ptr, ptr %12, align 8, !tbaa !5
  %1513 = getelementptr inbounds double, ptr %1512, i64 2
  %1514 = load double, ptr %1513, align 8, !tbaa !11
  store double %1514, ptr %31, align 8, !tbaa !11
  %1515 = load ptr, ptr %13, align 8, !tbaa !5
  %1516 = load double, ptr %1515, align 8, !tbaa !11
  %1517 = load double, ptr %31, align 8, !tbaa !11
  %1518 = fmul double %1516, %1517
  store double %1518, ptr %22, align 8, !tbaa !11
  %1519 = load ptr, ptr %12, align 8, !tbaa !5
  %1520 = getelementptr inbounds double, ptr %1519, i64 3
  %1521 = load double, ptr %1520, align 8, !tbaa !11
  store double %1521, ptr %32, align 8, !tbaa !11
  %1522 = load ptr, ptr %13, align 8, !tbaa !5
  %1523 = load double, ptr %1522, align 8, !tbaa !11
  %1524 = load double, ptr %32, align 8, !tbaa !11
  %1525 = fmul double %1523, %1524
  store double %1525, ptr %23, align 8, !tbaa !11
  %1526 = load ptr, ptr %12, align 8, !tbaa !5
  %1527 = getelementptr inbounds double, ptr %1526, i64 4
  %1528 = load double, ptr %1527, align 8, !tbaa !11
  store double %1528, ptr %33, align 8, !tbaa !11
  %1529 = load ptr, ptr %13, align 8, !tbaa !5
  %1530 = load double, ptr %1529, align 8, !tbaa !11
  %1531 = load double, ptr %33, align 8, !tbaa !11
  %1532 = fmul double %1530, %1531
  store double %1532, ptr %24, align 8, !tbaa !11
  %1533 = load ptr, ptr %12, align 8, !tbaa !5
  %1534 = getelementptr inbounds double, ptr %1533, i64 5
  %1535 = load double, ptr %1534, align 8, !tbaa !11
  store double %1535, ptr %34, align 8, !tbaa !11
  %1536 = load ptr, ptr %13, align 8, !tbaa !5
  %1537 = load double, ptr %1536, align 8, !tbaa !11
  %1538 = load double, ptr %34, align 8, !tbaa !11
  %1539 = fmul double %1537, %1538
  store double %1539, ptr %25, align 8, !tbaa !11
  %1540 = load ptr, ptr %12, align 8, !tbaa !5
  %1541 = getelementptr inbounds double, ptr %1540, i64 6
  %1542 = load double, ptr %1541, align 8, !tbaa !11
  store double %1542, ptr %35, align 8, !tbaa !11
  %1543 = load ptr, ptr %13, align 8, !tbaa !5
  %1544 = load double, ptr %1543, align 8, !tbaa !11
  %1545 = load double, ptr %35, align 8, !tbaa !11
  %1546 = fmul double %1544, %1545
  store double %1546, ptr %26, align 8, !tbaa !11
  %1547 = load ptr, ptr %12, align 8, !tbaa !5
  %1548 = getelementptr inbounds double, ptr %1547, i64 7
  %1549 = load double, ptr %1548, align 8, !tbaa !11
  store double %1549, ptr %36, align 8, !tbaa !11
  %1550 = load ptr, ptr %13, align 8, !tbaa !5
  %1551 = load double, ptr %1550, align 8, !tbaa !11
  %1552 = load double, ptr %36, align 8, !tbaa !11
  %1553 = fmul double %1551, %1552
  store double %1553, ptr %27, align 8, !tbaa !11
  %1554 = load ptr, ptr %12, align 8, !tbaa !5
  %1555 = getelementptr inbounds double, ptr %1554, i64 8
  %1556 = load double, ptr %1555, align 8, !tbaa !11
  store double %1556, ptr %37, align 8, !tbaa !11
  %1557 = load ptr, ptr %13, align 8, !tbaa !5
  %1558 = load double, ptr %1557, align 8, !tbaa !11
  %1559 = load double, ptr %37, align 8, !tbaa !11
  %1560 = fmul double %1558, %1559
  store double %1560, ptr %28, align 8, !tbaa !11
  %1561 = load ptr, ptr %12, align 8, !tbaa !5
  %1562 = getelementptr inbounds double, ptr %1561, i64 9
  %1563 = load double, ptr %1562, align 8, !tbaa !11
  store double %1563, ptr %38, align 8, !tbaa !11
  %1564 = load ptr, ptr %13, align 8, !tbaa !5
  %1565 = load double, ptr %1564, align 8, !tbaa !11
  %1566 = load double, ptr %38, align 8, !tbaa !11
  %1567 = fmul double %1565, %1566
  store double %1567, ptr %29, align 8, !tbaa !11
  %1568 = load ptr, ptr %12, align 8, !tbaa !5
  %1569 = getelementptr inbounds double, ptr %1568, i64 10
  %1570 = load double, ptr %1569, align 8, !tbaa !11
  store double %1570, ptr %40, align 8, !tbaa !11
  %1571 = load ptr, ptr %13, align 8, !tbaa !5
  %1572 = load double, ptr %1571, align 8, !tbaa !11
  %1573 = load double, ptr %40, align 8, !tbaa !11
  %1574 = fmul double %1572, %1573
  store double %1574, ptr %39, align 8, !tbaa !11
  %1575 = load ptr, ptr %11, align 8, !tbaa !5
  %1576 = load i32, ptr %1575, align 4, !tbaa !9
  store i32 %1576, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %1577

1577:                                             ; preds = %1802, %1504
  %1578 = load i32, ptr %20, align 4, !tbaa !9
  %1579 = load i32, ptr %19, align 4, !tbaa !9
  %1580 = icmp sle i32 %1578, %1579
  br i1 %1580, label %1581, label %1805

1581:                                             ; preds = %1577
  %1582 = load double, ptr %30, align 8, !tbaa !11
  %1583 = load ptr, ptr %14, align 8, !tbaa !5
  %1584 = load i32, ptr %20, align 4, !tbaa !9
  %1585 = load i32, ptr %17, align 4, !tbaa !9
  %1586 = mul nsw i32 %1584, %1585
  %1587 = add nsw i32 %1586, 1
  %1588 = sext i32 %1587 to i64
  %1589 = getelementptr inbounds double, ptr %1583, i64 %1588
  %1590 = load double, ptr %1589, align 8, !tbaa !11
  %1591 = load double, ptr %31, align 8, !tbaa !11
  %1592 = load ptr, ptr %14, align 8, !tbaa !5
  %1593 = load i32, ptr %20, align 4, !tbaa !9
  %1594 = load i32, ptr %17, align 4, !tbaa !9
  %1595 = mul nsw i32 %1593, %1594
  %1596 = add nsw i32 %1595, 2
  %1597 = sext i32 %1596 to i64
  %1598 = getelementptr inbounds double, ptr %1592, i64 %1597
  %1599 = load double, ptr %1598, align 8, !tbaa !11
  %1600 = fmul double %1591, %1599
  %1601 = call double @llvm.fmuladd.f64(double %1582, double %1590, double %1600)
  %1602 = load double, ptr %32, align 8, !tbaa !11
  %1603 = load ptr, ptr %14, align 8, !tbaa !5
  %1604 = load i32, ptr %20, align 4, !tbaa !9
  %1605 = load i32, ptr %17, align 4, !tbaa !9
  %1606 = mul nsw i32 %1604, %1605
  %1607 = add nsw i32 %1606, 3
  %1608 = sext i32 %1607 to i64
  %1609 = getelementptr inbounds double, ptr %1603, i64 %1608
  %1610 = load double, ptr %1609, align 8, !tbaa !11
  %1611 = call double @llvm.fmuladd.f64(double %1602, double %1610, double %1601)
  %1612 = load double, ptr %33, align 8, !tbaa !11
  %1613 = load ptr, ptr %14, align 8, !tbaa !5
  %1614 = load i32, ptr %20, align 4, !tbaa !9
  %1615 = load i32, ptr %17, align 4, !tbaa !9
  %1616 = mul nsw i32 %1614, %1615
  %1617 = add nsw i32 %1616, 4
  %1618 = sext i32 %1617 to i64
  %1619 = getelementptr inbounds double, ptr %1613, i64 %1618
  %1620 = load double, ptr %1619, align 8, !tbaa !11
  %1621 = call double @llvm.fmuladd.f64(double %1612, double %1620, double %1611)
  %1622 = load double, ptr %34, align 8, !tbaa !11
  %1623 = load ptr, ptr %14, align 8, !tbaa !5
  %1624 = load i32, ptr %20, align 4, !tbaa !9
  %1625 = load i32, ptr %17, align 4, !tbaa !9
  %1626 = mul nsw i32 %1624, %1625
  %1627 = add nsw i32 %1626, 5
  %1628 = sext i32 %1627 to i64
  %1629 = getelementptr inbounds double, ptr %1623, i64 %1628
  %1630 = load double, ptr %1629, align 8, !tbaa !11
  %1631 = call double @llvm.fmuladd.f64(double %1622, double %1630, double %1621)
  %1632 = load double, ptr %35, align 8, !tbaa !11
  %1633 = load ptr, ptr %14, align 8, !tbaa !5
  %1634 = load i32, ptr %20, align 4, !tbaa !9
  %1635 = load i32, ptr %17, align 4, !tbaa !9
  %1636 = mul nsw i32 %1634, %1635
  %1637 = add nsw i32 %1636, 6
  %1638 = sext i32 %1637 to i64
  %1639 = getelementptr inbounds double, ptr %1633, i64 %1638
  %1640 = load double, ptr %1639, align 8, !tbaa !11
  %1641 = call double @llvm.fmuladd.f64(double %1632, double %1640, double %1631)
  %1642 = load double, ptr %36, align 8, !tbaa !11
  %1643 = load ptr, ptr %14, align 8, !tbaa !5
  %1644 = load i32, ptr %20, align 4, !tbaa !9
  %1645 = load i32, ptr %17, align 4, !tbaa !9
  %1646 = mul nsw i32 %1644, %1645
  %1647 = add nsw i32 %1646, 7
  %1648 = sext i32 %1647 to i64
  %1649 = getelementptr inbounds double, ptr %1643, i64 %1648
  %1650 = load double, ptr %1649, align 8, !tbaa !11
  %1651 = call double @llvm.fmuladd.f64(double %1642, double %1650, double %1641)
  %1652 = load double, ptr %37, align 8, !tbaa !11
  %1653 = load ptr, ptr %14, align 8, !tbaa !5
  %1654 = load i32, ptr %20, align 4, !tbaa !9
  %1655 = load i32, ptr %17, align 4, !tbaa !9
  %1656 = mul nsw i32 %1654, %1655
  %1657 = add nsw i32 %1656, 8
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds double, ptr %1653, i64 %1658
  %1660 = load double, ptr %1659, align 8, !tbaa !11
  %1661 = call double @llvm.fmuladd.f64(double %1652, double %1660, double %1651)
  %1662 = load double, ptr %38, align 8, !tbaa !11
  %1663 = load ptr, ptr %14, align 8, !tbaa !5
  %1664 = load i32, ptr %20, align 4, !tbaa !9
  %1665 = load i32, ptr %17, align 4, !tbaa !9
  %1666 = mul nsw i32 %1664, %1665
  %1667 = add nsw i32 %1666, 9
  %1668 = sext i32 %1667 to i64
  %1669 = getelementptr inbounds double, ptr %1663, i64 %1668
  %1670 = load double, ptr %1669, align 8, !tbaa !11
  %1671 = call double @llvm.fmuladd.f64(double %1662, double %1670, double %1661)
  %1672 = load double, ptr %40, align 8, !tbaa !11
  %1673 = load ptr, ptr %14, align 8, !tbaa !5
  %1674 = load i32, ptr %20, align 4, !tbaa !9
  %1675 = load i32, ptr %17, align 4, !tbaa !9
  %1676 = mul nsw i32 %1674, %1675
  %1677 = add nsw i32 %1676, 10
  %1678 = sext i32 %1677 to i64
  %1679 = getelementptr inbounds double, ptr %1673, i64 %1678
  %1680 = load double, ptr %1679, align 8, !tbaa !11
  %1681 = call double @llvm.fmuladd.f64(double %1672, double %1680, double %1671)
  store double %1681, ptr %41, align 8, !tbaa !11
  %1682 = load double, ptr %41, align 8, !tbaa !11
  %1683 = load double, ptr %21, align 8, !tbaa !11
  %1684 = load ptr, ptr %14, align 8, !tbaa !5
  %1685 = load i32, ptr %20, align 4, !tbaa !9
  %1686 = load i32, ptr %17, align 4, !tbaa !9
  %1687 = mul nsw i32 %1685, %1686
  %1688 = add nsw i32 %1687, 1
  %1689 = sext i32 %1688 to i64
  %1690 = getelementptr inbounds double, ptr %1684, i64 %1689
  %1691 = load double, ptr %1690, align 8, !tbaa !11
  %1692 = fneg double %1682
  %1693 = call double @llvm.fmuladd.f64(double %1692, double %1683, double %1691)
  store double %1693, ptr %1690, align 8, !tbaa !11
  %1694 = load double, ptr %41, align 8, !tbaa !11
  %1695 = load double, ptr %22, align 8, !tbaa !11
  %1696 = load ptr, ptr %14, align 8, !tbaa !5
  %1697 = load i32, ptr %20, align 4, !tbaa !9
  %1698 = load i32, ptr %17, align 4, !tbaa !9
  %1699 = mul nsw i32 %1697, %1698
  %1700 = add nsw i32 %1699, 2
  %1701 = sext i32 %1700 to i64
  %1702 = getelementptr inbounds double, ptr %1696, i64 %1701
  %1703 = load double, ptr %1702, align 8, !tbaa !11
  %1704 = fneg double %1694
  %1705 = call double @llvm.fmuladd.f64(double %1704, double %1695, double %1703)
  store double %1705, ptr %1702, align 8, !tbaa !11
  %1706 = load double, ptr %41, align 8, !tbaa !11
  %1707 = load double, ptr %23, align 8, !tbaa !11
  %1708 = load ptr, ptr %14, align 8, !tbaa !5
  %1709 = load i32, ptr %20, align 4, !tbaa !9
  %1710 = load i32, ptr %17, align 4, !tbaa !9
  %1711 = mul nsw i32 %1709, %1710
  %1712 = add nsw i32 %1711, 3
  %1713 = sext i32 %1712 to i64
  %1714 = getelementptr inbounds double, ptr %1708, i64 %1713
  %1715 = load double, ptr %1714, align 8, !tbaa !11
  %1716 = fneg double %1706
  %1717 = call double @llvm.fmuladd.f64(double %1716, double %1707, double %1715)
  store double %1717, ptr %1714, align 8, !tbaa !11
  %1718 = load double, ptr %41, align 8, !tbaa !11
  %1719 = load double, ptr %24, align 8, !tbaa !11
  %1720 = load ptr, ptr %14, align 8, !tbaa !5
  %1721 = load i32, ptr %20, align 4, !tbaa !9
  %1722 = load i32, ptr %17, align 4, !tbaa !9
  %1723 = mul nsw i32 %1721, %1722
  %1724 = add nsw i32 %1723, 4
  %1725 = sext i32 %1724 to i64
  %1726 = getelementptr inbounds double, ptr %1720, i64 %1725
  %1727 = load double, ptr %1726, align 8, !tbaa !11
  %1728 = fneg double %1718
  %1729 = call double @llvm.fmuladd.f64(double %1728, double %1719, double %1727)
  store double %1729, ptr %1726, align 8, !tbaa !11
  %1730 = load double, ptr %41, align 8, !tbaa !11
  %1731 = load double, ptr %25, align 8, !tbaa !11
  %1732 = load ptr, ptr %14, align 8, !tbaa !5
  %1733 = load i32, ptr %20, align 4, !tbaa !9
  %1734 = load i32, ptr %17, align 4, !tbaa !9
  %1735 = mul nsw i32 %1733, %1734
  %1736 = add nsw i32 %1735, 5
  %1737 = sext i32 %1736 to i64
  %1738 = getelementptr inbounds double, ptr %1732, i64 %1737
  %1739 = load double, ptr %1738, align 8, !tbaa !11
  %1740 = fneg double %1730
  %1741 = call double @llvm.fmuladd.f64(double %1740, double %1731, double %1739)
  store double %1741, ptr %1738, align 8, !tbaa !11
  %1742 = load double, ptr %41, align 8, !tbaa !11
  %1743 = load double, ptr %26, align 8, !tbaa !11
  %1744 = load ptr, ptr %14, align 8, !tbaa !5
  %1745 = load i32, ptr %20, align 4, !tbaa !9
  %1746 = load i32, ptr %17, align 4, !tbaa !9
  %1747 = mul nsw i32 %1745, %1746
  %1748 = add nsw i32 %1747, 6
  %1749 = sext i32 %1748 to i64
  %1750 = getelementptr inbounds double, ptr %1744, i64 %1749
  %1751 = load double, ptr %1750, align 8, !tbaa !11
  %1752 = fneg double %1742
  %1753 = call double @llvm.fmuladd.f64(double %1752, double %1743, double %1751)
  store double %1753, ptr %1750, align 8, !tbaa !11
  %1754 = load double, ptr %41, align 8, !tbaa !11
  %1755 = load double, ptr %27, align 8, !tbaa !11
  %1756 = load ptr, ptr %14, align 8, !tbaa !5
  %1757 = load i32, ptr %20, align 4, !tbaa !9
  %1758 = load i32, ptr %17, align 4, !tbaa !9
  %1759 = mul nsw i32 %1757, %1758
  %1760 = add nsw i32 %1759, 7
  %1761 = sext i32 %1760 to i64
  %1762 = getelementptr inbounds double, ptr %1756, i64 %1761
  %1763 = load double, ptr %1762, align 8, !tbaa !11
  %1764 = fneg double %1754
  %1765 = call double @llvm.fmuladd.f64(double %1764, double %1755, double %1763)
  store double %1765, ptr %1762, align 8, !tbaa !11
  %1766 = load double, ptr %41, align 8, !tbaa !11
  %1767 = load double, ptr %28, align 8, !tbaa !11
  %1768 = load ptr, ptr %14, align 8, !tbaa !5
  %1769 = load i32, ptr %20, align 4, !tbaa !9
  %1770 = load i32, ptr %17, align 4, !tbaa !9
  %1771 = mul nsw i32 %1769, %1770
  %1772 = add nsw i32 %1771, 8
  %1773 = sext i32 %1772 to i64
  %1774 = getelementptr inbounds double, ptr %1768, i64 %1773
  %1775 = load double, ptr %1774, align 8, !tbaa !11
  %1776 = fneg double %1766
  %1777 = call double @llvm.fmuladd.f64(double %1776, double %1767, double %1775)
  store double %1777, ptr %1774, align 8, !tbaa !11
  %1778 = load double, ptr %41, align 8, !tbaa !11
  %1779 = load double, ptr %29, align 8, !tbaa !11
  %1780 = load ptr, ptr %14, align 8, !tbaa !5
  %1781 = load i32, ptr %20, align 4, !tbaa !9
  %1782 = load i32, ptr %17, align 4, !tbaa !9
  %1783 = mul nsw i32 %1781, %1782
  %1784 = add nsw i32 %1783, 9
  %1785 = sext i32 %1784 to i64
  %1786 = getelementptr inbounds double, ptr %1780, i64 %1785
  %1787 = load double, ptr %1786, align 8, !tbaa !11
  %1788 = fneg double %1778
  %1789 = call double @llvm.fmuladd.f64(double %1788, double %1779, double %1787)
  store double %1789, ptr %1786, align 8, !tbaa !11
  %1790 = load double, ptr %41, align 8, !tbaa !11
  %1791 = load double, ptr %39, align 8, !tbaa !11
  %1792 = load ptr, ptr %14, align 8, !tbaa !5
  %1793 = load i32, ptr %20, align 4, !tbaa !9
  %1794 = load i32, ptr %17, align 4, !tbaa !9
  %1795 = mul nsw i32 %1793, %1794
  %1796 = add nsw i32 %1795, 10
  %1797 = sext i32 %1796 to i64
  %1798 = getelementptr inbounds double, ptr %1792, i64 %1797
  %1799 = load double, ptr %1798, align 8, !tbaa !11
  %1800 = fneg double %1790
  %1801 = call double @llvm.fmuladd.f64(double %1800, double %1791, double %1799)
  store double %1801, ptr %1798, align 8, !tbaa !11
  br label %1802

1802:                                             ; preds = %1581
  %1803 = load i32, ptr %20, align 4, !tbaa !9
  %1804 = add nsw i32 %1803, 1
  store i32 %1804, ptr %20, align 4, !tbaa !9
  br label %1577, !llvm.loop !23

1805:                                             ; preds = %1577
  br label %3527

1806:                                             ; preds = %61
  %1807 = load ptr, ptr %11, align 8, !tbaa !5
  %1808 = load i32, ptr %1807, align 4, !tbaa !9
  switch i32 %1808, label %1819 [
    i32 1, label %1809
    i32 2, label %1810
    i32 3, label %1811
    i32 4, label %1812
    i32 5, label %1813
    i32 6, label %1814
    i32 7, label %1815
    i32 8, label %1816
    i32 9, label %1817
    i32 10, label %1818
  ]

1809:                                             ; preds = %1806
  br label %1833

1810:                                             ; preds = %1806
  br label %1871

1811:                                             ; preds = %1806
  br label %1939

1812:                                             ; preds = %1806
  br label %2036

1813:                                             ; preds = %1806
  br label %2162

1814:                                             ; preds = %1806
  br label %2317

1815:                                             ; preds = %1806
  br label %2501

1816:                                             ; preds = %1806
  br label %2714

1817:                                             ; preds = %1806
  br label %2956

1818:                                             ; preds = %1806
  br label %3227

1819:                                             ; preds = %1806
  %1820 = load ptr, ptr %9, align 8, !tbaa !5
  %1821 = load ptr, ptr %10, align 8, !tbaa !5
  %1822 = load ptr, ptr %11, align 8, !tbaa !5
  %1823 = load ptr, ptr %12, align 8, !tbaa !5
  %1824 = getelementptr inbounds double, ptr %1823, i64 1
  %1825 = load ptr, ptr %13, align 8, !tbaa !5
  %1826 = load ptr, ptr %14, align 8, !tbaa !5
  %1827 = load i32, ptr %18, align 4, !tbaa !9
  %1828 = sext i32 %1827 to i64
  %1829 = getelementptr inbounds double, ptr %1826, i64 %1828
  %1830 = load ptr, ptr %15, align 8, !tbaa !5
  %1831 = load ptr, ptr %16, align 8, !tbaa !5
  %1832 = getelementptr inbounds double, ptr %1831, i64 1
  call void @dlarf_(ptr noundef %1820, ptr noundef %1821, ptr noundef %1822, ptr noundef %1824, ptr noundef @c__1, ptr noundef %1825, ptr noundef %1829, ptr noundef %1830, ptr noundef %1832)
  br label %3527

1833:                                             ; preds = %1809
  %1834 = load ptr, ptr %13, align 8, !tbaa !5
  %1835 = load double, ptr %1834, align 8, !tbaa !11
  %1836 = load ptr, ptr %12, align 8, !tbaa !5
  %1837 = getelementptr inbounds double, ptr %1836, i64 1
  %1838 = load double, ptr %1837, align 8, !tbaa !11
  %1839 = fmul double %1835, %1838
  %1840 = load ptr, ptr %12, align 8, !tbaa !5
  %1841 = getelementptr inbounds double, ptr %1840, i64 1
  %1842 = load double, ptr %1841, align 8, !tbaa !11
  %1843 = fneg double %1839
  %1844 = call double @llvm.fmuladd.f64(double %1843, double %1842, double 1.000000e+00)
  store double %1844, ptr %21, align 8, !tbaa !11
  %1845 = load ptr, ptr %10, align 8, !tbaa !5
  %1846 = load i32, ptr %1845, align 4, !tbaa !9
  store i32 %1846, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %1847

1847:                                             ; preds = %1867, %1833
  %1848 = load i32, ptr %20, align 4, !tbaa !9
  %1849 = load i32, ptr %19, align 4, !tbaa !9
  %1850 = icmp sle i32 %1848, %1849
  br i1 %1850, label %1851, label %1870

1851:                                             ; preds = %1847
  %1852 = load double, ptr %21, align 8, !tbaa !11
  %1853 = load ptr, ptr %14, align 8, !tbaa !5
  %1854 = load i32, ptr %20, align 4, !tbaa !9
  %1855 = load i32, ptr %17, align 4, !tbaa !9
  %1856 = add nsw i32 %1854, %1855
  %1857 = sext i32 %1856 to i64
  %1858 = getelementptr inbounds double, ptr %1853, i64 %1857
  %1859 = load double, ptr %1858, align 8, !tbaa !11
  %1860 = fmul double %1852, %1859
  %1861 = load ptr, ptr %14, align 8, !tbaa !5
  %1862 = load i32, ptr %20, align 4, !tbaa !9
  %1863 = load i32, ptr %17, align 4, !tbaa !9
  %1864 = add nsw i32 %1862, %1863
  %1865 = sext i32 %1864 to i64
  %1866 = getelementptr inbounds double, ptr %1861, i64 %1865
  store double %1860, ptr %1866, align 8, !tbaa !11
  br label %1867

1867:                                             ; preds = %1851
  %1868 = load i32, ptr %20, align 4, !tbaa !9
  %1869 = add nsw i32 %1868, 1
  store i32 %1869, ptr %20, align 4, !tbaa !9
  br label %1847, !llvm.loop !24

1870:                                             ; preds = %1847
  br label %3527

1871:                                             ; preds = %1810
  %1872 = load ptr, ptr %12, align 8, !tbaa !5
  %1873 = getelementptr inbounds double, ptr %1872, i64 1
  %1874 = load double, ptr %1873, align 8, !tbaa !11
  store double %1874, ptr %30, align 8, !tbaa !11
  %1875 = load ptr, ptr %13, align 8, !tbaa !5
  %1876 = load double, ptr %1875, align 8, !tbaa !11
  %1877 = load double, ptr %30, align 8, !tbaa !11
  %1878 = fmul double %1876, %1877
  store double %1878, ptr %21, align 8, !tbaa !11
  %1879 = load ptr, ptr %12, align 8, !tbaa !5
  %1880 = getelementptr inbounds double, ptr %1879, i64 2
  %1881 = load double, ptr %1880, align 8, !tbaa !11
  store double %1881, ptr %31, align 8, !tbaa !11
  %1882 = load ptr, ptr %13, align 8, !tbaa !5
  %1883 = load double, ptr %1882, align 8, !tbaa !11
  %1884 = load double, ptr %31, align 8, !tbaa !11
  %1885 = fmul double %1883, %1884
  store double %1885, ptr %22, align 8, !tbaa !11
  %1886 = load ptr, ptr %10, align 8, !tbaa !5
  %1887 = load i32, ptr %1886, align 4, !tbaa !9
  store i32 %1887, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %1888

1888:                                             ; preds = %1935, %1871
  %1889 = load i32, ptr %20, align 4, !tbaa !9
  %1890 = load i32, ptr %19, align 4, !tbaa !9
  %1891 = icmp sle i32 %1889, %1890
  br i1 %1891, label %1892, label %1938

1892:                                             ; preds = %1888
  %1893 = load double, ptr %30, align 8, !tbaa !11
  %1894 = load ptr, ptr %14, align 8, !tbaa !5
  %1895 = load i32, ptr %20, align 4, !tbaa !9
  %1896 = load i32, ptr %17, align 4, !tbaa !9
  %1897 = add nsw i32 %1895, %1896
  %1898 = sext i32 %1897 to i64
  %1899 = getelementptr inbounds double, ptr %1894, i64 %1898
  %1900 = load double, ptr %1899, align 8, !tbaa !11
  %1901 = load double, ptr %31, align 8, !tbaa !11
  %1902 = load ptr, ptr %14, align 8, !tbaa !5
  %1903 = load i32, ptr %20, align 4, !tbaa !9
  %1904 = load i32, ptr %17, align 4, !tbaa !9
  %1905 = shl i32 %1904, 1
  %1906 = add nsw i32 %1903, %1905
  %1907 = sext i32 %1906 to i64
  %1908 = getelementptr inbounds double, ptr %1902, i64 %1907
  %1909 = load double, ptr %1908, align 8, !tbaa !11
  %1910 = fmul double %1901, %1909
  %1911 = call double @llvm.fmuladd.f64(double %1893, double %1900, double %1910)
  store double %1911, ptr %41, align 8, !tbaa !11
  %1912 = load double, ptr %41, align 8, !tbaa !11
  %1913 = load double, ptr %21, align 8, !tbaa !11
  %1914 = load ptr, ptr %14, align 8, !tbaa !5
  %1915 = load i32, ptr %20, align 4, !tbaa !9
  %1916 = load i32, ptr %17, align 4, !tbaa !9
  %1917 = add nsw i32 %1915, %1916
  %1918 = sext i32 %1917 to i64
  %1919 = getelementptr inbounds double, ptr %1914, i64 %1918
  %1920 = load double, ptr %1919, align 8, !tbaa !11
  %1921 = fneg double %1912
  %1922 = call double @llvm.fmuladd.f64(double %1921, double %1913, double %1920)
  store double %1922, ptr %1919, align 8, !tbaa !11
  %1923 = load double, ptr %41, align 8, !tbaa !11
  %1924 = load double, ptr %22, align 8, !tbaa !11
  %1925 = load ptr, ptr %14, align 8, !tbaa !5
  %1926 = load i32, ptr %20, align 4, !tbaa !9
  %1927 = load i32, ptr %17, align 4, !tbaa !9
  %1928 = shl i32 %1927, 1
  %1929 = add nsw i32 %1926, %1928
  %1930 = sext i32 %1929 to i64
  %1931 = getelementptr inbounds double, ptr %1925, i64 %1930
  %1932 = load double, ptr %1931, align 8, !tbaa !11
  %1933 = fneg double %1923
  %1934 = call double @llvm.fmuladd.f64(double %1933, double %1924, double %1932)
  store double %1934, ptr %1931, align 8, !tbaa !11
  br label %1935

1935:                                             ; preds = %1892
  %1936 = load i32, ptr %20, align 4, !tbaa !9
  %1937 = add nsw i32 %1936, 1
  store i32 %1937, ptr %20, align 4, !tbaa !9
  br label %1888, !llvm.loop !25

1938:                                             ; preds = %1888
  br label %3527

1939:                                             ; preds = %1811
  %1940 = load ptr, ptr %12, align 8, !tbaa !5
  %1941 = getelementptr inbounds double, ptr %1940, i64 1
  %1942 = load double, ptr %1941, align 8, !tbaa !11
  store double %1942, ptr %30, align 8, !tbaa !11
  %1943 = load ptr, ptr %13, align 8, !tbaa !5
  %1944 = load double, ptr %1943, align 8, !tbaa !11
  %1945 = load double, ptr %30, align 8, !tbaa !11
  %1946 = fmul double %1944, %1945
  store double %1946, ptr %21, align 8, !tbaa !11
  %1947 = load ptr, ptr %12, align 8, !tbaa !5
  %1948 = getelementptr inbounds double, ptr %1947, i64 2
  %1949 = load double, ptr %1948, align 8, !tbaa !11
  store double %1949, ptr %31, align 8, !tbaa !11
  %1950 = load ptr, ptr %13, align 8, !tbaa !5
  %1951 = load double, ptr %1950, align 8, !tbaa !11
  %1952 = load double, ptr %31, align 8, !tbaa !11
  %1953 = fmul double %1951, %1952
  store double %1953, ptr %22, align 8, !tbaa !11
  %1954 = load ptr, ptr %12, align 8, !tbaa !5
  %1955 = getelementptr inbounds double, ptr %1954, i64 3
  %1956 = load double, ptr %1955, align 8, !tbaa !11
  store double %1956, ptr %32, align 8, !tbaa !11
  %1957 = load ptr, ptr %13, align 8, !tbaa !5
  %1958 = load double, ptr %1957, align 8, !tbaa !11
  %1959 = load double, ptr %32, align 8, !tbaa !11
  %1960 = fmul double %1958, %1959
  store double %1960, ptr %23, align 8, !tbaa !11
  %1961 = load ptr, ptr %10, align 8, !tbaa !5
  %1962 = load i32, ptr %1961, align 4, !tbaa !9
  store i32 %1962, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %1963

1963:                                             ; preds = %2032, %1939
  %1964 = load i32, ptr %20, align 4, !tbaa !9
  %1965 = load i32, ptr %19, align 4, !tbaa !9
  %1966 = icmp sle i32 %1964, %1965
  br i1 %1966, label %1967, label %2035

1967:                                             ; preds = %1963
  %1968 = load double, ptr %30, align 8, !tbaa !11
  %1969 = load ptr, ptr %14, align 8, !tbaa !5
  %1970 = load i32, ptr %20, align 4, !tbaa !9
  %1971 = load i32, ptr %17, align 4, !tbaa !9
  %1972 = add nsw i32 %1970, %1971
  %1973 = sext i32 %1972 to i64
  %1974 = getelementptr inbounds double, ptr %1969, i64 %1973
  %1975 = load double, ptr %1974, align 8, !tbaa !11
  %1976 = load double, ptr %31, align 8, !tbaa !11
  %1977 = load ptr, ptr %14, align 8, !tbaa !5
  %1978 = load i32, ptr %20, align 4, !tbaa !9
  %1979 = load i32, ptr %17, align 4, !tbaa !9
  %1980 = shl i32 %1979, 1
  %1981 = add nsw i32 %1978, %1980
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds double, ptr %1977, i64 %1982
  %1984 = load double, ptr %1983, align 8, !tbaa !11
  %1985 = fmul double %1976, %1984
  %1986 = call double @llvm.fmuladd.f64(double %1968, double %1975, double %1985)
  %1987 = load double, ptr %32, align 8, !tbaa !11
  %1988 = load ptr, ptr %14, align 8, !tbaa !5
  %1989 = load i32, ptr %20, align 4, !tbaa !9
  %1990 = load i32, ptr %17, align 4, !tbaa !9
  %1991 = mul nsw i32 %1990, 3
  %1992 = add nsw i32 %1989, %1991
  %1993 = sext i32 %1992 to i64
  %1994 = getelementptr inbounds double, ptr %1988, i64 %1993
  %1995 = load double, ptr %1994, align 8, !tbaa !11
  %1996 = call double @llvm.fmuladd.f64(double %1987, double %1995, double %1986)
  store double %1996, ptr %41, align 8, !tbaa !11
  %1997 = load double, ptr %41, align 8, !tbaa !11
  %1998 = load double, ptr %21, align 8, !tbaa !11
  %1999 = load ptr, ptr %14, align 8, !tbaa !5
  %2000 = load i32, ptr %20, align 4, !tbaa !9
  %2001 = load i32, ptr %17, align 4, !tbaa !9
  %2002 = add nsw i32 %2000, %2001
  %2003 = sext i32 %2002 to i64
  %2004 = getelementptr inbounds double, ptr %1999, i64 %2003
  %2005 = load double, ptr %2004, align 8, !tbaa !11
  %2006 = fneg double %1997
  %2007 = call double @llvm.fmuladd.f64(double %2006, double %1998, double %2005)
  store double %2007, ptr %2004, align 8, !tbaa !11
  %2008 = load double, ptr %41, align 8, !tbaa !11
  %2009 = load double, ptr %22, align 8, !tbaa !11
  %2010 = load ptr, ptr %14, align 8, !tbaa !5
  %2011 = load i32, ptr %20, align 4, !tbaa !9
  %2012 = load i32, ptr %17, align 4, !tbaa !9
  %2013 = shl i32 %2012, 1
  %2014 = add nsw i32 %2011, %2013
  %2015 = sext i32 %2014 to i64
  %2016 = getelementptr inbounds double, ptr %2010, i64 %2015
  %2017 = load double, ptr %2016, align 8, !tbaa !11
  %2018 = fneg double %2008
  %2019 = call double @llvm.fmuladd.f64(double %2018, double %2009, double %2017)
  store double %2019, ptr %2016, align 8, !tbaa !11
  %2020 = load double, ptr %41, align 8, !tbaa !11
  %2021 = load double, ptr %23, align 8, !tbaa !11
  %2022 = load ptr, ptr %14, align 8, !tbaa !5
  %2023 = load i32, ptr %20, align 4, !tbaa !9
  %2024 = load i32, ptr %17, align 4, !tbaa !9
  %2025 = mul nsw i32 %2024, 3
  %2026 = add nsw i32 %2023, %2025
  %2027 = sext i32 %2026 to i64
  %2028 = getelementptr inbounds double, ptr %2022, i64 %2027
  %2029 = load double, ptr %2028, align 8, !tbaa !11
  %2030 = fneg double %2020
  %2031 = call double @llvm.fmuladd.f64(double %2030, double %2021, double %2029)
  store double %2031, ptr %2028, align 8, !tbaa !11
  br label %2032

2032:                                             ; preds = %1967
  %2033 = load i32, ptr %20, align 4, !tbaa !9
  %2034 = add nsw i32 %2033, 1
  store i32 %2034, ptr %20, align 4, !tbaa !9
  br label %1963, !llvm.loop !26

2035:                                             ; preds = %1963
  br label %3527

2036:                                             ; preds = %1812
  %2037 = load ptr, ptr %12, align 8, !tbaa !5
  %2038 = getelementptr inbounds double, ptr %2037, i64 1
  %2039 = load double, ptr %2038, align 8, !tbaa !11
  store double %2039, ptr %30, align 8, !tbaa !11
  %2040 = load ptr, ptr %13, align 8, !tbaa !5
  %2041 = load double, ptr %2040, align 8, !tbaa !11
  %2042 = load double, ptr %30, align 8, !tbaa !11
  %2043 = fmul double %2041, %2042
  store double %2043, ptr %21, align 8, !tbaa !11
  %2044 = load ptr, ptr %12, align 8, !tbaa !5
  %2045 = getelementptr inbounds double, ptr %2044, i64 2
  %2046 = load double, ptr %2045, align 8, !tbaa !11
  store double %2046, ptr %31, align 8, !tbaa !11
  %2047 = load ptr, ptr %13, align 8, !tbaa !5
  %2048 = load double, ptr %2047, align 8, !tbaa !11
  %2049 = load double, ptr %31, align 8, !tbaa !11
  %2050 = fmul double %2048, %2049
  store double %2050, ptr %22, align 8, !tbaa !11
  %2051 = load ptr, ptr %12, align 8, !tbaa !5
  %2052 = getelementptr inbounds double, ptr %2051, i64 3
  %2053 = load double, ptr %2052, align 8, !tbaa !11
  store double %2053, ptr %32, align 8, !tbaa !11
  %2054 = load ptr, ptr %13, align 8, !tbaa !5
  %2055 = load double, ptr %2054, align 8, !tbaa !11
  %2056 = load double, ptr %32, align 8, !tbaa !11
  %2057 = fmul double %2055, %2056
  store double %2057, ptr %23, align 8, !tbaa !11
  %2058 = load ptr, ptr %12, align 8, !tbaa !5
  %2059 = getelementptr inbounds double, ptr %2058, i64 4
  %2060 = load double, ptr %2059, align 8, !tbaa !11
  store double %2060, ptr %33, align 8, !tbaa !11
  %2061 = load ptr, ptr %13, align 8, !tbaa !5
  %2062 = load double, ptr %2061, align 8, !tbaa !11
  %2063 = load double, ptr %33, align 8, !tbaa !11
  %2064 = fmul double %2062, %2063
  store double %2064, ptr %24, align 8, !tbaa !11
  %2065 = load ptr, ptr %10, align 8, !tbaa !5
  %2066 = load i32, ptr %2065, align 4, !tbaa !9
  store i32 %2066, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %2067

2067:                                             ; preds = %2158, %2036
  %2068 = load i32, ptr %20, align 4, !tbaa !9
  %2069 = load i32, ptr %19, align 4, !tbaa !9
  %2070 = icmp sle i32 %2068, %2069
  br i1 %2070, label %2071, label %2161

2071:                                             ; preds = %2067
  %2072 = load double, ptr %30, align 8, !tbaa !11
  %2073 = load ptr, ptr %14, align 8, !tbaa !5
  %2074 = load i32, ptr %20, align 4, !tbaa !9
  %2075 = load i32, ptr %17, align 4, !tbaa !9
  %2076 = add nsw i32 %2074, %2075
  %2077 = sext i32 %2076 to i64
  %2078 = getelementptr inbounds double, ptr %2073, i64 %2077
  %2079 = load double, ptr %2078, align 8, !tbaa !11
  %2080 = load double, ptr %31, align 8, !tbaa !11
  %2081 = load ptr, ptr %14, align 8, !tbaa !5
  %2082 = load i32, ptr %20, align 4, !tbaa !9
  %2083 = load i32, ptr %17, align 4, !tbaa !9
  %2084 = shl i32 %2083, 1
  %2085 = add nsw i32 %2082, %2084
  %2086 = sext i32 %2085 to i64
  %2087 = getelementptr inbounds double, ptr %2081, i64 %2086
  %2088 = load double, ptr %2087, align 8, !tbaa !11
  %2089 = fmul double %2080, %2088
  %2090 = call double @llvm.fmuladd.f64(double %2072, double %2079, double %2089)
  %2091 = load double, ptr %32, align 8, !tbaa !11
  %2092 = load ptr, ptr %14, align 8, !tbaa !5
  %2093 = load i32, ptr %20, align 4, !tbaa !9
  %2094 = load i32, ptr %17, align 4, !tbaa !9
  %2095 = mul nsw i32 %2094, 3
  %2096 = add nsw i32 %2093, %2095
  %2097 = sext i32 %2096 to i64
  %2098 = getelementptr inbounds double, ptr %2092, i64 %2097
  %2099 = load double, ptr %2098, align 8, !tbaa !11
  %2100 = call double @llvm.fmuladd.f64(double %2091, double %2099, double %2090)
  %2101 = load double, ptr %33, align 8, !tbaa !11
  %2102 = load ptr, ptr %14, align 8, !tbaa !5
  %2103 = load i32, ptr %20, align 4, !tbaa !9
  %2104 = load i32, ptr %17, align 4, !tbaa !9
  %2105 = shl i32 %2104, 2
  %2106 = add nsw i32 %2103, %2105
  %2107 = sext i32 %2106 to i64
  %2108 = getelementptr inbounds double, ptr %2102, i64 %2107
  %2109 = load double, ptr %2108, align 8, !tbaa !11
  %2110 = call double @llvm.fmuladd.f64(double %2101, double %2109, double %2100)
  store double %2110, ptr %41, align 8, !tbaa !11
  %2111 = load double, ptr %41, align 8, !tbaa !11
  %2112 = load double, ptr %21, align 8, !tbaa !11
  %2113 = load ptr, ptr %14, align 8, !tbaa !5
  %2114 = load i32, ptr %20, align 4, !tbaa !9
  %2115 = load i32, ptr %17, align 4, !tbaa !9
  %2116 = add nsw i32 %2114, %2115
  %2117 = sext i32 %2116 to i64
  %2118 = getelementptr inbounds double, ptr %2113, i64 %2117
  %2119 = load double, ptr %2118, align 8, !tbaa !11
  %2120 = fneg double %2111
  %2121 = call double @llvm.fmuladd.f64(double %2120, double %2112, double %2119)
  store double %2121, ptr %2118, align 8, !tbaa !11
  %2122 = load double, ptr %41, align 8, !tbaa !11
  %2123 = load double, ptr %22, align 8, !tbaa !11
  %2124 = load ptr, ptr %14, align 8, !tbaa !5
  %2125 = load i32, ptr %20, align 4, !tbaa !9
  %2126 = load i32, ptr %17, align 4, !tbaa !9
  %2127 = shl i32 %2126, 1
  %2128 = add nsw i32 %2125, %2127
  %2129 = sext i32 %2128 to i64
  %2130 = getelementptr inbounds double, ptr %2124, i64 %2129
  %2131 = load double, ptr %2130, align 8, !tbaa !11
  %2132 = fneg double %2122
  %2133 = call double @llvm.fmuladd.f64(double %2132, double %2123, double %2131)
  store double %2133, ptr %2130, align 8, !tbaa !11
  %2134 = load double, ptr %41, align 8, !tbaa !11
  %2135 = load double, ptr %23, align 8, !tbaa !11
  %2136 = load ptr, ptr %14, align 8, !tbaa !5
  %2137 = load i32, ptr %20, align 4, !tbaa !9
  %2138 = load i32, ptr %17, align 4, !tbaa !9
  %2139 = mul nsw i32 %2138, 3
  %2140 = add nsw i32 %2137, %2139
  %2141 = sext i32 %2140 to i64
  %2142 = getelementptr inbounds double, ptr %2136, i64 %2141
  %2143 = load double, ptr %2142, align 8, !tbaa !11
  %2144 = fneg double %2134
  %2145 = call double @llvm.fmuladd.f64(double %2144, double %2135, double %2143)
  store double %2145, ptr %2142, align 8, !tbaa !11
  %2146 = load double, ptr %41, align 8, !tbaa !11
  %2147 = load double, ptr %24, align 8, !tbaa !11
  %2148 = load ptr, ptr %14, align 8, !tbaa !5
  %2149 = load i32, ptr %20, align 4, !tbaa !9
  %2150 = load i32, ptr %17, align 4, !tbaa !9
  %2151 = shl i32 %2150, 2
  %2152 = add nsw i32 %2149, %2151
  %2153 = sext i32 %2152 to i64
  %2154 = getelementptr inbounds double, ptr %2148, i64 %2153
  %2155 = load double, ptr %2154, align 8, !tbaa !11
  %2156 = fneg double %2146
  %2157 = call double @llvm.fmuladd.f64(double %2156, double %2147, double %2155)
  store double %2157, ptr %2154, align 8, !tbaa !11
  br label %2158

2158:                                             ; preds = %2071
  %2159 = load i32, ptr %20, align 4, !tbaa !9
  %2160 = add nsw i32 %2159, 1
  store i32 %2160, ptr %20, align 4, !tbaa !9
  br label %2067, !llvm.loop !27

2161:                                             ; preds = %2067
  br label %3527

2162:                                             ; preds = %1813
  %2163 = load ptr, ptr %12, align 8, !tbaa !5
  %2164 = getelementptr inbounds double, ptr %2163, i64 1
  %2165 = load double, ptr %2164, align 8, !tbaa !11
  store double %2165, ptr %30, align 8, !tbaa !11
  %2166 = load ptr, ptr %13, align 8, !tbaa !5
  %2167 = load double, ptr %2166, align 8, !tbaa !11
  %2168 = load double, ptr %30, align 8, !tbaa !11
  %2169 = fmul double %2167, %2168
  store double %2169, ptr %21, align 8, !tbaa !11
  %2170 = load ptr, ptr %12, align 8, !tbaa !5
  %2171 = getelementptr inbounds double, ptr %2170, i64 2
  %2172 = load double, ptr %2171, align 8, !tbaa !11
  store double %2172, ptr %31, align 8, !tbaa !11
  %2173 = load ptr, ptr %13, align 8, !tbaa !5
  %2174 = load double, ptr %2173, align 8, !tbaa !11
  %2175 = load double, ptr %31, align 8, !tbaa !11
  %2176 = fmul double %2174, %2175
  store double %2176, ptr %22, align 8, !tbaa !11
  %2177 = load ptr, ptr %12, align 8, !tbaa !5
  %2178 = getelementptr inbounds double, ptr %2177, i64 3
  %2179 = load double, ptr %2178, align 8, !tbaa !11
  store double %2179, ptr %32, align 8, !tbaa !11
  %2180 = load ptr, ptr %13, align 8, !tbaa !5
  %2181 = load double, ptr %2180, align 8, !tbaa !11
  %2182 = load double, ptr %32, align 8, !tbaa !11
  %2183 = fmul double %2181, %2182
  store double %2183, ptr %23, align 8, !tbaa !11
  %2184 = load ptr, ptr %12, align 8, !tbaa !5
  %2185 = getelementptr inbounds double, ptr %2184, i64 4
  %2186 = load double, ptr %2185, align 8, !tbaa !11
  store double %2186, ptr %33, align 8, !tbaa !11
  %2187 = load ptr, ptr %13, align 8, !tbaa !5
  %2188 = load double, ptr %2187, align 8, !tbaa !11
  %2189 = load double, ptr %33, align 8, !tbaa !11
  %2190 = fmul double %2188, %2189
  store double %2190, ptr %24, align 8, !tbaa !11
  %2191 = load ptr, ptr %12, align 8, !tbaa !5
  %2192 = getelementptr inbounds double, ptr %2191, i64 5
  %2193 = load double, ptr %2192, align 8, !tbaa !11
  store double %2193, ptr %34, align 8, !tbaa !11
  %2194 = load ptr, ptr %13, align 8, !tbaa !5
  %2195 = load double, ptr %2194, align 8, !tbaa !11
  %2196 = load double, ptr %34, align 8, !tbaa !11
  %2197 = fmul double %2195, %2196
  store double %2197, ptr %25, align 8, !tbaa !11
  %2198 = load ptr, ptr %10, align 8, !tbaa !5
  %2199 = load i32, ptr %2198, align 4, !tbaa !9
  store i32 %2199, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %2200

2200:                                             ; preds = %2313, %2162
  %2201 = load i32, ptr %20, align 4, !tbaa !9
  %2202 = load i32, ptr %19, align 4, !tbaa !9
  %2203 = icmp sle i32 %2201, %2202
  br i1 %2203, label %2204, label %2316

2204:                                             ; preds = %2200
  %2205 = load double, ptr %30, align 8, !tbaa !11
  %2206 = load ptr, ptr %14, align 8, !tbaa !5
  %2207 = load i32, ptr %20, align 4, !tbaa !9
  %2208 = load i32, ptr %17, align 4, !tbaa !9
  %2209 = add nsw i32 %2207, %2208
  %2210 = sext i32 %2209 to i64
  %2211 = getelementptr inbounds double, ptr %2206, i64 %2210
  %2212 = load double, ptr %2211, align 8, !tbaa !11
  %2213 = load double, ptr %31, align 8, !tbaa !11
  %2214 = load ptr, ptr %14, align 8, !tbaa !5
  %2215 = load i32, ptr %20, align 4, !tbaa !9
  %2216 = load i32, ptr %17, align 4, !tbaa !9
  %2217 = shl i32 %2216, 1
  %2218 = add nsw i32 %2215, %2217
  %2219 = sext i32 %2218 to i64
  %2220 = getelementptr inbounds double, ptr %2214, i64 %2219
  %2221 = load double, ptr %2220, align 8, !tbaa !11
  %2222 = fmul double %2213, %2221
  %2223 = call double @llvm.fmuladd.f64(double %2205, double %2212, double %2222)
  %2224 = load double, ptr %32, align 8, !tbaa !11
  %2225 = load ptr, ptr %14, align 8, !tbaa !5
  %2226 = load i32, ptr %20, align 4, !tbaa !9
  %2227 = load i32, ptr %17, align 4, !tbaa !9
  %2228 = mul nsw i32 %2227, 3
  %2229 = add nsw i32 %2226, %2228
  %2230 = sext i32 %2229 to i64
  %2231 = getelementptr inbounds double, ptr %2225, i64 %2230
  %2232 = load double, ptr %2231, align 8, !tbaa !11
  %2233 = call double @llvm.fmuladd.f64(double %2224, double %2232, double %2223)
  %2234 = load double, ptr %33, align 8, !tbaa !11
  %2235 = load ptr, ptr %14, align 8, !tbaa !5
  %2236 = load i32, ptr %20, align 4, !tbaa !9
  %2237 = load i32, ptr %17, align 4, !tbaa !9
  %2238 = shl i32 %2237, 2
  %2239 = add nsw i32 %2236, %2238
  %2240 = sext i32 %2239 to i64
  %2241 = getelementptr inbounds double, ptr %2235, i64 %2240
  %2242 = load double, ptr %2241, align 8, !tbaa !11
  %2243 = call double @llvm.fmuladd.f64(double %2234, double %2242, double %2233)
  %2244 = load double, ptr %34, align 8, !tbaa !11
  %2245 = load ptr, ptr %14, align 8, !tbaa !5
  %2246 = load i32, ptr %20, align 4, !tbaa !9
  %2247 = load i32, ptr %17, align 4, !tbaa !9
  %2248 = mul nsw i32 %2247, 5
  %2249 = add nsw i32 %2246, %2248
  %2250 = sext i32 %2249 to i64
  %2251 = getelementptr inbounds double, ptr %2245, i64 %2250
  %2252 = load double, ptr %2251, align 8, !tbaa !11
  %2253 = call double @llvm.fmuladd.f64(double %2244, double %2252, double %2243)
  store double %2253, ptr %41, align 8, !tbaa !11
  %2254 = load double, ptr %41, align 8, !tbaa !11
  %2255 = load double, ptr %21, align 8, !tbaa !11
  %2256 = load ptr, ptr %14, align 8, !tbaa !5
  %2257 = load i32, ptr %20, align 4, !tbaa !9
  %2258 = load i32, ptr %17, align 4, !tbaa !9
  %2259 = add nsw i32 %2257, %2258
  %2260 = sext i32 %2259 to i64
  %2261 = getelementptr inbounds double, ptr %2256, i64 %2260
  %2262 = load double, ptr %2261, align 8, !tbaa !11
  %2263 = fneg double %2254
  %2264 = call double @llvm.fmuladd.f64(double %2263, double %2255, double %2262)
  store double %2264, ptr %2261, align 8, !tbaa !11
  %2265 = load double, ptr %41, align 8, !tbaa !11
  %2266 = load double, ptr %22, align 8, !tbaa !11
  %2267 = load ptr, ptr %14, align 8, !tbaa !5
  %2268 = load i32, ptr %20, align 4, !tbaa !9
  %2269 = load i32, ptr %17, align 4, !tbaa !9
  %2270 = shl i32 %2269, 1
  %2271 = add nsw i32 %2268, %2270
  %2272 = sext i32 %2271 to i64
  %2273 = getelementptr inbounds double, ptr %2267, i64 %2272
  %2274 = load double, ptr %2273, align 8, !tbaa !11
  %2275 = fneg double %2265
  %2276 = call double @llvm.fmuladd.f64(double %2275, double %2266, double %2274)
  store double %2276, ptr %2273, align 8, !tbaa !11
  %2277 = load double, ptr %41, align 8, !tbaa !11
  %2278 = load double, ptr %23, align 8, !tbaa !11
  %2279 = load ptr, ptr %14, align 8, !tbaa !5
  %2280 = load i32, ptr %20, align 4, !tbaa !9
  %2281 = load i32, ptr %17, align 4, !tbaa !9
  %2282 = mul nsw i32 %2281, 3
  %2283 = add nsw i32 %2280, %2282
  %2284 = sext i32 %2283 to i64
  %2285 = getelementptr inbounds double, ptr %2279, i64 %2284
  %2286 = load double, ptr %2285, align 8, !tbaa !11
  %2287 = fneg double %2277
  %2288 = call double @llvm.fmuladd.f64(double %2287, double %2278, double %2286)
  store double %2288, ptr %2285, align 8, !tbaa !11
  %2289 = load double, ptr %41, align 8, !tbaa !11
  %2290 = load double, ptr %24, align 8, !tbaa !11
  %2291 = load ptr, ptr %14, align 8, !tbaa !5
  %2292 = load i32, ptr %20, align 4, !tbaa !9
  %2293 = load i32, ptr %17, align 4, !tbaa !9
  %2294 = shl i32 %2293, 2
  %2295 = add nsw i32 %2292, %2294
  %2296 = sext i32 %2295 to i64
  %2297 = getelementptr inbounds double, ptr %2291, i64 %2296
  %2298 = load double, ptr %2297, align 8, !tbaa !11
  %2299 = fneg double %2289
  %2300 = call double @llvm.fmuladd.f64(double %2299, double %2290, double %2298)
  store double %2300, ptr %2297, align 8, !tbaa !11
  %2301 = load double, ptr %41, align 8, !tbaa !11
  %2302 = load double, ptr %25, align 8, !tbaa !11
  %2303 = load ptr, ptr %14, align 8, !tbaa !5
  %2304 = load i32, ptr %20, align 4, !tbaa !9
  %2305 = load i32, ptr %17, align 4, !tbaa !9
  %2306 = mul nsw i32 %2305, 5
  %2307 = add nsw i32 %2304, %2306
  %2308 = sext i32 %2307 to i64
  %2309 = getelementptr inbounds double, ptr %2303, i64 %2308
  %2310 = load double, ptr %2309, align 8, !tbaa !11
  %2311 = fneg double %2301
  %2312 = call double @llvm.fmuladd.f64(double %2311, double %2302, double %2310)
  store double %2312, ptr %2309, align 8, !tbaa !11
  br label %2313

2313:                                             ; preds = %2204
  %2314 = load i32, ptr %20, align 4, !tbaa !9
  %2315 = add nsw i32 %2314, 1
  store i32 %2315, ptr %20, align 4, !tbaa !9
  br label %2200, !llvm.loop !28

2316:                                             ; preds = %2200
  br label %3527

2317:                                             ; preds = %1814
  %2318 = load ptr, ptr %12, align 8, !tbaa !5
  %2319 = getelementptr inbounds double, ptr %2318, i64 1
  %2320 = load double, ptr %2319, align 8, !tbaa !11
  store double %2320, ptr %30, align 8, !tbaa !11
  %2321 = load ptr, ptr %13, align 8, !tbaa !5
  %2322 = load double, ptr %2321, align 8, !tbaa !11
  %2323 = load double, ptr %30, align 8, !tbaa !11
  %2324 = fmul double %2322, %2323
  store double %2324, ptr %21, align 8, !tbaa !11
  %2325 = load ptr, ptr %12, align 8, !tbaa !5
  %2326 = getelementptr inbounds double, ptr %2325, i64 2
  %2327 = load double, ptr %2326, align 8, !tbaa !11
  store double %2327, ptr %31, align 8, !tbaa !11
  %2328 = load ptr, ptr %13, align 8, !tbaa !5
  %2329 = load double, ptr %2328, align 8, !tbaa !11
  %2330 = load double, ptr %31, align 8, !tbaa !11
  %2331 = fmul double %2329, %2330
  store double %2331, ptr %22, align 8, !tbaa !11
  %2332 = load ptr, ptr %12, align 8, !tbaa !5
  %2333 = getelementptr inbounds double, ptr %2332, i64 3
  %2334 = load double, ptr %2333, align 8, !tbaa !11
  store double %2334, ptr %32, align 8, !tbaa !11
  %2335 = load ptr, ptr %13, align 8, !tbaa !5
  %2336 = load double, ptr %2335, align 8, !tbaa !11
  %2337 = load double, ptr %32, align 8, !tbaa !11
  %2338 = fmul double %2336, %2337
  store double %2338, ptr %23, align 8, !tbaa !11
  %2339 = load ptr, ptr %12, align 8, !tbaa !5
  %2340 = getelementptr inbounds double, ptr %2339, i64 4
  %2341 = load double, ptr %2340, align 8, !tbaa !11
  store double %2341, ptr %33, align 8, !tbaa !11
  %2342 = load ptr, ptr %13, align 8, !tbaa !5
  %2343 = load double, ptr %2342, align 8, !tbaa !11
  %2344 = load double, ptr %33, align 8, !tbaa !11
  %2345 = fmul double %2343, %2344
  store double %2345, ptr %24, align 8, !tbaa !11
  %2346 = load ptr, ptr %12, align 8, !tbaa !5
  %2347 = getelementptr inbounds double, ptr %2346, i64 5
  %2348 = load double, ptr %2347, align 8, !tbaa !11
  store double %2348, ptr %34, align 8, !tbaa !11
  %2349 = load ptr, ptr %13, align 8, !tbaa !5
  %2350 = load double, ptr %2349, align 8, !tbaa !11
  %2351 = load double, ptr %34, align 8, !tbaa !11
  %2352 = fmul double %2350, %2351
  store double %2352, ptr %25, align 8, !tbaa !11
  %2353 = load ptr, ptr %12, align 8, !tbaa !5
  %2354 = getelementptr inbounds double, ptr %2353, i64 6
  %2355 = load double, ptr %2354, align 8, !tbaa !11
  store double %2355, ptr %35, align 8, !tbaa !11
  %2356 = load ptr, ptr %13, align 8, !tbaa !5
  %2357 = load double, ptr %2356, align 8, !tbaa !11
  %2358 = load double, ptr %35, align 8, !tbaa !11
  %2359 = fmul double %2357, %2358
  store double %2359, ptr %26, align 8, !tbaa !11
  %2360 = load ptr, ptr %10, align 8, !tbaa !5
  %2361 = load i32, ptr %2360, align 4, !tbaa !9
  store i32 %2361, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %2362

2362:                                             ; preds = %2497, %2317
  %2363 = load i32, ptr %20, align 4, !tbaa !9
  %2364 = load i32, ptr %19, align 4, !tbaa !9
  %2365 = icmp sle i32 %2363, %2364
  br i1 %2365, label %2366, label %2500

2366:                                             ; preds = %2362
  %2367 = load double, ptr %30, align 8, !tbaa !11
  %2368 = load ptr, ptr %14, align 8, !tbaa !5
  %2369 = load i32, ptr %20, align 4, !tbaa !9
  %2370 = load i32, ptr %17, align 4, !tbaa !9
  %2371 = add nsw i32 %2369, %2370
  %2372 = sext i32 %2371 to i64
  %2373 = getelementptr inbounds double, ptr %2368, i64 %2372
  %2374 = load double, ptr %2373, align 8, !tbaa !11
  %2375 = load double, ptr %31, align 8, !tbaa !11
  %2376 = load ptr, ptr %14, align 8, !tbaa !5
  %2377 = load i32, ptr %20, align 4, !tbaa !9
  %2378 = load i32, ptr %17, align 4, !tbaa !9
  %2379 = shl i32 %2378, 1
  %2380 = add nsw i32 %2377, %2379
  %2381 = sext i32 %2380 to i64
  %2382 = getelementptr inbounds double, ptr %2376, i64 %2381
  %2383 = load double, ptr %2382, align 8, !tbaa !11
  %2384 = fmul double %2375, %2383
  %2385 = call double @llvm.fmuladd.f64(double %2367, double %2374, double %2384)
  %2386 = load double, ptr %32, align 8, !tbaa !11
  %2387 = load ptr, ptr %14, align 8, !tbaa !5
  %2388 = load i32, ptr %20, align 4, !tbaa !9
  %2389 = load i32, ptr %17, align 4, !tbaa !9
  %2390 = mul nsw i32 %2389, 3
  %2391 = add nsw i32 %2388, %2390
  %2392 = sext i32 %2391 to i64
  %2393 = getelementptr inbounds double, ptr %2387, i64 %2392
  %2394 = load double, ptr %2393, align 8, !tbaa !11
  %2395 = call double @llvm.fmuladd.f64(double %2386, double %2394, double %2385)
  %2396 = load double, ptr %33, align 8, !tbaa !11
  %2397 = load ptr, ptr %14, align 8, !tbaa !5
  %2398 = load i32, ptr %20, align 4, !tbaa !9
  %2399 = load i32, ptr %17, align 4, !tbaa !9
  %2400 = shl i32 %2399, 2
  %2401 = add nsw i32 %2398, %2400
  %2402 = sext i32 %2401 to i64
  %2403 = getelementptr inbounds double, ptr %2397, i64 %2402
  %2404 = load double, ptr %2403, align 8, !tbaa !11
  %2405 = call double @llvm.fmuladd.f64(double %2396, double %2404, double %2395)
  %2406 = load double, ptr %34, align 8, !tbaa !11
  %2407 = load ptr, ptr %14, align 8, !tbaa !5
  %2408 = load i32, ptr %20, align 4, !tbaa !9
  %2409 = load i32, ptr %17, align 4, !tbaa !9
  %2410 = mul nsw i32 %2409, 5
  %2411 = add nsw i32 %2408, %2410
  %2412 = sext i32 %2411 to i64
  %2413 = getelementptr inbounds double, ptr %2407, i64 %2412
  %2414 = load double, ptr %2413, align 8, !tbaa !11
  %2415 = call double @llvm.fmuladd.f64(double %2406, double %2414, double %2405)
  %2416 = load double, ptr %35, align 8, !tbaa !11
  %2417 = load ptr, ptr %14, align 8, !tbaa !5
  %2418 = load i32, ptr %20, align 4, !tbaa !9
  %2419 = load i32, ptr %17, align 4, !tbaa !9
  %2420 = mul nsw i32 %2419, 6
  %2421 = add nsw i32 %2418, %2420
  %2422 = sext i32 %2421 to i64
  %2423 = getelementptr inbounds double, ptr %2417, i64 %2422
  %2424 = load double, ptr %2423, align 8, !tbaa !11
  %2425 = call double @llvm.fmuladd.f64(double %2416, double %2424, double %2415)
  store double %2425, ptr %41, align 8, !tbaa !11
  %2426 = load double, ptr %41, align 8, !tbaa !11
  %2427 = load double, ptr %21, align 8, !tbaa !11
  %2428 = load ptr, ptr %14, align 8, !tbaa !5
  %2429 = load i32, ptr %20, align 4, !tbaa !9
  %2430 = load i32, ptr %17, align 4, !tbaa !9
  %2431 = add nsw i32 %2429, %2430
  %2432 = sext i32 %2431 to i64
  %2433 = getelementptr inbounds double, ptr %2428, i64 %2432
  %2434 = load double, ptr %2433, align 8, !tbaa !11
  %2435 = fneg double %2426
  %2436 = call double @llvm.fmuladd.f64(double %2435, double %2427, double %2434)
  store double %2436, ptr %2433, align 8, !tbaa !11
  %2437 = load double, ptr %41, align 8, !tbaa !11
  %2438 = load double, ptr %22, align 8, !tbaa !11
  %2439 = load ptr, ptr %14, align 8, !tbaa !5
  %2440 = load i32, ptr %20, align 4, !tbaa !9
  %2441 = load i32, ptr %17, align 4, !tbaa !9
  %2442 = shl i32 %2441, 1
  %2443 = add nsw i32 %2440, %2442
  %2444 = sext i32 %2443 to i64
  %2445 = getelementptr inbounds double, ptr %2439, i64 %2444
  %2446 = load double, ptr %2445, align 8, !tbaa !11
  %2447 = fneg double %2437
  %2448 = call double @llvm.fmuladd.f64(double %2447, double %2438, double %2446)
  store double %2448, ptr %2445, align 8, !tbaa !11
  %2449 = load double, ptr %41, align 8, !tbaa !11
  %2450 = load double, ptr %23, align 8, !tbaa !11
  %2451 = load ptr, ptr %14, align 8, !tbaa !5
  %2452 = load i32, ptr %20, align 4, !tbaa !9
  %2453 = load i32, ptr %17, align 4, !tbaa !9
  %2454 = mul nsw i32 %2453, 3
  %2455 = add nsw i32 %2452, %2454
  %2456 = sext i32 %2455 to i64
  %2457 = getelementptr inbounds double, ptr %2451, i64 %2456
  %2458 = load double, ptr %2457, align 8, !tbaa !11
  %2459 = fneg double %2449
  %2460 = call double @llvm.fmuladd.f64(double %2459, double %2450, double %2458)
  store double %2460, ptr %2457, align 8, !tbaa !11
  %2461 = load double, ptr %41, align 8, !tbaa !11
  %2462 = load double, ptr %24, align 8, !tbaa !11
  %2463 = load ptr, ptr %14, align 8, !tbaa !5
  %2464 = load i32, ptr %20, align 4, !tbaa !9
  %2465 = load i32, ptr %17, align 4, !tbaa !9
  %2466 = shl i32 %2465, 2
  %2467 = add nsw i32 %2464, %2466
  %2468 = sext i32 %2467 to i64
  %2469 = getelementptr inbounds double, ptr %2463, i64 %2468
  %2470 = load double, ptr %2469, align 8, !tbaa !11
  %2471 = fneg double %2461
  %2472 = call double @llvm.fmuladd.f64(double %2471, double %2462, double %2470)
  store double %2472, ptr %2469, align 8, !tbaa !11
  %2473 = load double, ptr %41, align 8, !tbaa !11
  %2474 = load double, ptr %25, align 8, !tbaa !11
  %2475 = load ptr, ptr %14, align 8, !tbaa !5
  %2476 = load i32, ptr %20, align 4, !tbaa !9
  %2477 = load i32, ptr %17, align 4, !tbaa !9
  %2478 = mul nsw i32 %2477, 5
  %2479 = add nsw i32 %2476, %2478
  %2480 = sext i32 %2479 to i64
  %2481 = getelementptr inbounds double, ptr %2475, i64 %2480
  %2482 = load double, ptr %2481, align 8, !tbaa !11
  %2483 = fneg double %2473
  %2484 = call double @llvm.fmuladd.f64(double %2483, double %2474, double %2482)
  store double %2484, ptr %2481, align 8, !tbaa !11
  %2485 = load double, ptr %41, align 8, !tbaa !11
  %2486 = load double, ptr %26, align 8, !tbaa !11
  %2487 = load ptr, ptr %14, align 8, !tbaa !5
  %2488 = load i32, ptr %20, align 4, !tbaa !9
  %2489 = load i32, ptr %17, align 4, !tbaa !9
  %2490 = mul nsw i32 %2489, 6
  %2491 = add nsw i32 %2488, %2490
  %2492 = sext i32 %2491 to i64
  %2493 = getelementptr inbounds double, ptr %2487, i64 %2492
  %2494 = load double, ptr %2493, align 8, !tbaa !11
  %2495 = fneg double %2485
  %2496 = call double @llvm.fmuladd.f64(double %2495, double %2486, double %2494)
  store double %2496, ptr %2493, align 8, !tbaa !11
  br label %2497

2497:                                             ; preds = %2366
  %2498 = load i32, ptr %20, align 4, !tbaa !9
  %2499 = add nsw i32 %2498, 1
  store i32 %2499, ptr %20, align 4, !tbaa !9
  br label %2362, !llvm.loop !29

2500:                                             ; preds = %2362
  br label %3527

2501:                                             ; preds = %1815
  %2502 = load ptr, ptr %12, align 8, !tbaa !5
  %2503 = getelementptr inbounds double, ptr %2502, i64 1
  %2504 = load double, ptr %2503, align 8, !tbaa !11
  store double %2504, ptr %30, align 8, !tbaa !11
  %2505 = load ptr, ptr %13, align 8, !tbaa !5
  %2506 = load double, ptr %2505, align 8, !tbaa !11
  %2507 = load double, ptr %30, align 8, !tbaa !11
  %2508 = fmul double %2506, %2507
  store double %2508, ptr %21, align 8, !tbaa !11
  %2509 = load ptr, ptr %12, align 8, !tbaa !5
  %2510 = getelementptr inbounds double, ptr %2509, i64 2
  %2511 = load double, ptr %2510, align 8, !tbaa !11
  store double %2511, ptr %31, align 8, !tbaa !11
  %2512 = load ptr, ptr %13, align 8, !tbaa !5
  %2513 = load double, ptr %2512, align 8, !tbaa !11
  %2514 = load double, ptr %31, align 8, !tbaa !11
  %2515 = fmul double %2513, %2514
  store double %2515, ptr %22, align 8, !tbaa !11
  %2516 = load ptr, ptr %12, align 8, !tbaa !5
  %2517 = getelementptr inbounds double, ptr %2516, i64 3
  %2518 = load double, ptr %2517, align 8, !tbaa !11
  store double %2518, ptr %32, align 8, !tbaa !11
  %2519 = load ptr, ptr %13, align 8, !tbaa !5
  %2520 = load double, ptr %2519, align 8, !tbaa !11
  %2521 = load double, ptr %32, align 8, !tbaa !11
  %2522 = fmul double %2520, %2521
  store double %2522, ptr %23, align 8, !tbaa !11
  %2523 = load ptr, ptr %12, align 8, !tbaa !5
  %2524 = getelementptr inbounds double, ptr %2523, i64 4
  %2525 = load double, ptr %2524, align 8, !tbaa !11
  store double %2525, ptr %33, align 8, !tbaa !11
  %2526 = load ptr, ptr %13, align 8, !tbaa !5
  %2527 = load double, ptr %2526, align 8, !tbaa !11
  %2528 = load double, ptr %33, align 8, !tbaa !11
  %2529 = fmul double %2527, %2528
  store double %2529, ptr %24, align 8, !tbaa !11
  %2530 = load ptr, ptr %12, align 8, !tbaa !5
  %2531 = getelementptr inbounds double, ptr %2530, i64 5
  %2532 = load double, ptr %2531, align 8, !tbaa !11
  store double %2532, ptr %34, align 8, !tbaa !11
  %2533 = load ptr, ptr %13, align 8, !tbaa !5
  %2534 = load double, ptr %2533, align 8, !tbaa !11
  %2535 = load double, ptr %34, align 8, !tbaa !11
  %2536 = fmul double %2534, %2535
  store double %2536, ptr %25, align 8, !tbaa !11
  %2537 = load ptr, ptr %12, align 8, !tbaa !5
  %2538 = getelementptr inbounds double, ptr %2537, i64 6
  %2539 = load double, ptr %2538, align 8, !tbaa !11
  store double %2539, ptr %35, align 8, !tbaa !11
  %2540 = load ptr, ptr %13, align 8, !tbaa !5
  %2541 = load double, ptr %2540, align 8, !tbaa !11
  %2542 = load double, ptr %35, align 8, !tbaa !11
  %2543 = fmul double %2541, %2542
  store double %2543, ptr %26, align 8, !tbaa !11
  %2544 = load ptr, ptr %12, align 8, !tbaa !5
  %2545 = getelementptr inbounds double, ptr %2544, i64 7
  %2546 = load double, ptr %2545, align 8, !tbaa !11
  store double %2546, ptr %36, align 8, !tbaa !11
  %2547 = load ptr, ptr %13, align 8, !tbaa !5
  %2548 = load double, ptr %2547, align 8, !tbaa !11
  %2549 = load double, ptr %36, align 8, !tbaa !11
  %2550 = fmul double %2548, %2549
  store double %2550, ptr %27, align 8, !tbaa !11
  %2551 = load ptr, ptr %10, align 8, !tbaa !5
  %2552 = load i32, ptr %2551, align 4, !tbaa !9
  store i32 %2552, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %2553

2553:                                             ; preds = %2710, %2501
  %2554 = load i32, ptr %20, align 4, !tbaa !9
  %2555 = load i32, ptr %19, align 4, !tbaa !9
  %2556 = icmp sle i32 %2554, %2555
  br i1 %2556, label %2557, label %2713

2557:                                             ; preds = %2553
  %2558 = load double, ptr %30, align 8, !tbaa !11
  %2559 = load ptr, ptr %14, align 8, !tbaa !5
  %2560 = load i32, ptr %20, align 4, !tbaa !9
  %2561 = load i32, ptr %17, align 4, !tbaa !9
  %2562 = add nsw i32 %2560, %2561
  %2563 = sext i32 %2562 to i64
  %2564 = getelementptr inbounds double, ptr %2559, i64 %2563
  %2565 = load double, ptr %2564, align 8, !tbaa !11
  %2566 = load double, ptr %31, align 8, !tbaa !11
  %2567 = load ptr, ptr %14, align 8, !tbaa !5
  %2568 = load i32, ptr %20, align 4, !tbaa !9
  %2569 = load i32, ptr %17, align 4, !tbaa !9
  %2570 = shl i32 %2569, 1
  %2571 = add nsw i32 %2568, %2570
  %2572 = sext i32 %2571 to i64
  %2573 = getelementptr inbounds double, ptr %2567, i64 %2572
  %2574 = load double, ptr %2573, align 8, !tbaa !11
  %2575 = fmul double %2566, %2574
  %2576 = call double @llvm.fmuladd.f64(double %2558, double %2565, double %2575)
  %2577 = load double, ptr %32, align 8, !tbaa !11
  %2578 = load ptr, ptr %14, align 8, !tbaa !5
  %2579 = load i32, ptr %20, align 4, !tbaa !9
  %2580 = load i32, ptr %17, align 4, !tbaa !9
  %2581 = mul nsw i32 %2580, 3
  %2582 = add nsw i32 %2579, %2581
  %2583 = sext i32 %2582 to i64
  %2584 = getelementptr inbounds double, ptr %2578, i64 %2583
  %2585 = load double, ptr %2584, align 8, !tbaa !11
  %2586 = call double @llvm.fmuladd.f64(double %2577, double %2585, double %2576)
  %2587 = load double, ptr %33, align 8, !tbaa !11
  %2588 = load ptr, ptr %14, align 8, !tbaa !5
  %2589 = load i32, ptr %20, align 4, !tbaa !9
  %2590 = load i32, ptr %17, align 4, !tbaa !9
  %2591 = shl i32 %2590, 2
  %2592 = add nsw i32 %2589, %2591
  %2593 = sext i32 %2592 to i64
  %2594 = getelementptr inbounds double, ptr %2588, i64 %2593
  %2595 = load double, ptr %2594, align 8, !tbaa !11
  %2596 = call double @llvm.fmuladd.f64(double %2587, double %2595, double %2586)
  %2597 = load double, ptr %34, align 8, !tbaa !11
  %2598 = load ptr, ptr %14, align 8, !tbaa !5
  %2599 = load i32, ptr %20, align 4, !tbaa !9
  %2600 = load i32, ptr %17, align 4, !tbaa !9
  %2601 = mul nsw i32 %2600, 5
  %2602 = add nsw i32 %2599, %2601
  %2603 = sext i32 %2602 to i64
  %2604 = getelementptr inbounds double, ptr %2598, i64 %2603
  %2605 = load double, ptr %2604, align 8, !tbaa !11
  %2606 = call double @llvm.fmuladd.f64(double %2597, double %2605, double %2596)
  %2607 = load double, ptr %35, align 8, !tbaa !11
  %2608 = load ptr, ptr %14, align 8, !tbaa !5
  %2609 = load i32, ptr %20, align 4, !tbaa !9
  %2610 = load i32, ptr %17, align 4, !tbaa !9
  %2611 = mul nsw i32 %2610, 6
  %2612 = add nsw i32 %2609, %2611
  %2613 = sext i32 %2612 to i64
  %2614 = getelementptr inbounds double, ptr %2608, i64 %2613
  %2615 = load double, ptr %2614, align 8, !tbaa !11
  %2616 = call double @llvm.fmuladd.f64(double %2607, double %2615, double %2606)
  %2617 = load double, ptr %36, align 8, !tbaa !11
  %2618 = load ptr, ptr %14, align 8, !tbaa !5
  %2619 = load i32, ptr %20, align 4, !tbaa !9
  %2620 = load i32, ptr %17, align 4, !tbaa !9
  %2621 = mul nsw i32 %2620, 7
  %2622 = add nsw i32 %2619, %2621
  %2623 = sext i32 %2622 to i64
  %2624 = getelementptr inbounds double, ptr %2618, i64 %2623
  %2625 = load double, ptr %2624, align 8, !tbaa !11
  %2626 = call double @llvm.fmuladd.f64(double %2617, double %2625, double %2616)
  store double %2626, ptr %41, align 8, !tbaa !11
  %2627 = load double, ptr %41, align 8, !tbaa !11
  %2628 = load double, ptr %21, align 8, !tbaa !11
  %2629 = load ptr, ptr %14, align 8, !tbaa !5
  %2630 = load i32, ptr %20, align 4, !tbaa !9
  %2631 = load i32, ptr %17, align 4, !tbaa !9
  %2632 = add nsw i32 %2630, %2631
  %2633 = sext i32 %2632 to i64
  %2634 = getelementptr inbounds double, ptr %2629, i64 %2633
  %2635 = load double, ptr %2634, align 8, !tbaa !11
  %2636 = fneg double %2627
  %2637 = call double @llvm.fmuladd.f64(double %2636, double %2628, double %2635)
  store double %2637, ptr %2634, align 8, !tbaa !11
  %2638 = load double, ptr %41, align 8, !tbaa !11
  %2639 = load double, ptr %22, align 8, !tbaa !11
  %2640 = load ptr, ptr %14, align 8, !tbaa !5
  %2641 = load i32, ptr %20, align 4, !tbaa !9
  %2642 = load i32, ptr %17, align 4, !tbaa !9
  %2643 = shl i32 %2642, 1
  %2644 = add nsw i32 %2641, %2643
  %2645 = sext i32 %2644 to i64
  %2646 = getelementptr inbounds double, ptr %2640, i64 %2645
  %2647 = load double, ptr %2646, align 8, !tbaa !11
  %2648 = fneg double %2638
  %2649 = call double @llvm.fmuladd.f64(double %2648, double %2639, double %2647)
  store double %2649, ptr %2646, align 8, !tbaa !11
  %2650 = load double, ptr %41, align 8, !tbaa !11
  %2651 = load double, ptr %23, align 8, !tbaa !11
  %2652 = load ptr, ptr %14, align 8, !tbaa !5
  %2653 = load i32, ptr %20, align 4, !tbaa !9
  %2654 = load i32, ptr %17, align 4, !tbaa !9
  %2655 = mul nsw i32 %2654, 3
  %2656 = add nsw i32 %2653, %2655
  %2657 = sext i32 %2656 to i64
  %2658 = getelementptr inbounds double, ptr %2652, i64 %2657
  %2659 = load double, ptr %2658, align 8, !tbaa !11
  %2660 = fneg double %2650
  %2661 = call double @llvm.fmuladd.f64(double %2660, double %2651, double %2659)
  store double %2661, ptr %2658, align 8, !tbaa !11
  %2662 = load double, ptr %41, align 8, !tbaa !11
  %2663 = load double, ptr %24, align 8, !tbaa !11
  %2664 = load ptr, ptr %14, align 8, !tbaa !5
  %2665 = load i32, ptr %20, align 4, !tbaa !9
  %2666 = load i32, ptr %17, align 4, !tbaa !9
  %2667 = shl i32 %2666, 2
  %2668 = add nsw i32 %2665, %2667
  %2669 = sext i32 %2668 to i64
  %2670 = getelementptr inbounds double, ptr %2664, i64 %2669
  %2671 = load double, ptr %2670, align 8, !tbaa !11
  %2672 = fneg double %2662
  %2673 = call double @llvm.fmuladd.f64(double %2672, double %2663, double %2671)
  store double %2673, ptr %2670, align 8, !tbaa !11
  %2674 = load double, ptr %41, align 8, !tbaa !11
  %2675 = load double, ptr %25, align 8, !tbaa !11
  %2676 = load ptr, ptr %14, align 8, !tbaa !5
  %2677 = load i32, ptr %20, align 4, !tbaa !9
  %2678 = load i32, ptr %17, align 4, !tbaa !9
  %2679 = mul nsw i32 %2678, 5
  %2680 = add nsw i32 %2677, %2679
  %2681 = sext i32 %2680 to i64
  %2682 = getelementptr inbounds double, ptr %2676, i64 %2681
  %2683 = load double, ptr %2682, align 8, !tbaa !11
  %2684 = fneg double %2674
  %2685 = call double @llvm.fmuladd.f64(double %2684, double %2675, double %2683)
  store double %2685, ptr %2682, align 8, !tbaa !11
  %2686 = load double, ptr %41, align 8, !tbaa !11
  %2687 = load double, ptr %26, align 8, !tbaa !11
  %2688 = load ptr, ptr %14, align 8, !tbaa !5
  %2689 = load i32, ptr %20, align 4, !tbaa !9
  %2690 = load i32, ptr %17, align 4, !tbaa !9
  %2691 = mul nsw i32 %2690, 6
  %2692 = add nsw i32 %2689, %2691
  %2693 = sext i32 %2692 to i64
  %2694 = getelementptr inbounds double, ptr %2688, i64 %2693
  %2695 = load double, ptr %2694, align 8, !tbaa !11
  %2696 = fneg double %2686
  %2697 = call double @llvm.fmuladd.f64(double %2696, double %2687, double %2695)
  store double %2697, ptr %2694, align 8, !tbaa !11
  %2698 = load double, ptr %41, align 8, !tbaa !11
  %2699 = load double, ptr %27, align 8, !tbaa !11
  %2700 = load ptr, ptr %14, align 8, !tbaa !5
  %2701 = load i32, ptr %20, align 4, !tbaa !9
  %2702 = load i32, ptr %17, align 4, !tbaa !9
  %2703 = mul nsw i32 %2702, 7
  %2704 = add nsw i32 %2701, %2703
  %2705 = sext i32 %2704 to i64
  %2706 = getelementptr inbounds double, ptr %2700, i64 %2705
  %2707 = load double, ptr %2706, align 8, !tbaa !11
  %2708 = fneg double %2698
  %2709 = call double @llvm.fmuladd.f64(double %2708, double %2699, double %2707)
  store double %2709, ptr %2706, align 8, !tbaa !11
  br label %2710

2710:                                             ; preds = %2557
  %2711 = load i32, ptr %20, align 4, !tbaa !9
  %2712 = add nsw i32 %2711, 1
  store i32 %2712, ptr %20, align 4, !tbaa !9
  br label %2553, !llvm.loop !30

2713:                                             ; preds = %2553
  br label %3527

2714:                                             ; preds = %1816
  %2715 = load ptr, ptr %12, align 8, !tbaa !5
  %2716 = getelementptr inbounds double, ptr %2715, i64 1
  %2717 = load double, ptr %2716, align 8, !tbaa !11
  store double %2717, ptr %30, align 8, !tbaa !11
  %2718 = load ptr, ptr %13, align 8, !tbaa !5
  %2719 = load double, ptr %2718, align 8, !tbaa !11
  %2720 = load double, ptr %30, align 8, !tbaa !11
  %2721 = fmul double %2719, %2720
  store double %2721, ptr %21, align 8, !tbaa !11
  %2722 = load ptr, ptr %12, align 8, !tbaa !5
  %2723 = getelementptr inbounds double, ptr %2722, i64 2
  %2724 = load double, ptr %2723, align 8, !tbaa !11
  store double %2724, ptr %31, align 8, !tbaa !11
  %2725 = load ptr, ptr %13, align 8, !tbaa !5
  %2726 = load double, ptr %2725, align 8, !tbaa !11
  %2727 = load double, ptr %31, align 8, !tbaa !11
  %2728 = fmul double %2726, %2727
  store double %2728, ptr %22, align 8, !tbaa !11
  %2729 = load ptr, ptr %12, align 8, !tbaa !5
  %2730 = getelementptr inbounds double, ptr %2729, i64 3
  %2731 = load double, ptr %2730, align 8, !tbaa !11
  store double %2731, ptr %32, align 8, !tbaa !11
  %2732 = load ptr, ptr %13, align 8, !tbaa !5
  %2733 = load double, ptr %2732, align 8, !tbaa !11
  %2734 = load double, ptr %32, align 8, !tbaa !11
  %2735 = fmul double %2733, %2734
  store double %2735, ptr %23, align 8, !tbaa !11
  %2736 = load ptr, ptr %12, align 8, !tbaa !5
  %2737 = getelementptr inbounds double, ptr %2736, i64 4
  %2738 = load double, ptr %2737, align 8, !tbaa !11
  store double %2738, ptr %33, align 8, !tbaa !11
  %2739 = load ptr, ptr %13, align 8, !tbaa !5
  %2740 = load double, ptr %2739, align 8, !tbaa !11
  %2741 = load double, ptr %33, align 8, !tbaa !11
  %2742 = fmul double %2740, %2741
  store double %2742, ptr %24, align 8, !tbaa !11
  %2743 = load ptr, ptr %12, align 8, !tbaa !5
  %2744 = getelementptr inbounds double, ptr %2743, i64 5
  %2745 = load double, ptr %2744, align 8, !tbaa !11
  store double %2745, ptr %34, align 8, !tbaa !11
  %2746 = load ptr, ptr %13, align 8, !tbaa !5
  %2747 = load double, ptr %2746, align 8, !tbaa !11
  %2748 = load double, ptr %34, align 8, !tbaa !11
  %2749 = fmul double %2747, %2748
  store double %2749, ptr %25, align 8, !tbaa !11
  %2750 = load ptr, ptr %12, align 8, !tbaa !5
  %2751 = getelementptr inbounds double, ptr %2750, i64 6
  %2752 = load double, ptr %2751, align 8, !tbaa !11
  store double %2752, ptr %35, align 8, !tbaa !11
  %2753 = load ptr, ptr %13, align 8, !tbaa !5
  %2754 = load double, ptr %2753, align 8, !tbaa !11
  %2755 = load double, ptr %35, align 8, !tbaa !11
  %2756 = fmul double %2754, %2755
  store double %2756, ptr %26, align 8, !tbaa !11
  %2757 = load ptr, ptr %12, align 8, !tbaa !5
  %2758 = getelementptr inbounds double, ptr %2757, i64 7
  %2759 = load double, ptr %2758, align 8, !tbaa !11
  store double %2759, ptr %36, align 8, !tbaa !11
  %2760 = load ptr, ptr %13, align 8, !tbaa !5
  %2761 = load double, ptr %2760, align 8, !tbaa !11
  %2762 = load double, ptr %36, align 8, !tbaa !11
  %2763 = fmul double %2761, %2762
  store double %2763, ptr %27, align 8, !tbaa !11
  %2764 = load ptr, ptr %12, align 8, !tbaa !5
  %2765 = getelementptr inbounds double, ptr %2764, i64 8
  %2766 = load double, ptr %2765, align 8, !tbaa !11
  store double %2766, ptr %37, align 8, !tbaa !11
  %2767 = load ptr, ptr %13, align 8, !tbaa !5
  %2768 = load double, ptr %2767, align 8, !tbaa !11
  %2769 = load double, ptr %37, align 8, !tbaa !11
  %2770 = fmul double %2768, %2769
  store double %2770, ptr %28, align 8, !tbaa !11
  %2771 = load ptr, ptr %10, align 8, !tbaa !5
  %2772 = load i32, ptr %2771, align 4, !tbaa !9
  store i32 %2772, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %2773

2773:                                             ; preds = %2952, %2714
  %2774 = load i32, ptr %20, align 4, !tbaa !9
  %2775 = load i32, ptr %19, align 4, !tbaa !9
  %2776 = icmp sle i32 %2774, %2775
  br i1 %2776, label %2777, label %2955

2777:                                             ; preds = %2773
  %2778 = load double, ptr %30, align 8, !tbaa !11
  %2779 = load ptr, ptr %14, align 8, !tbaa !5
  %2780 = load i32, ptr %20, align 4, !tbaa !9
  %2781 = load i32, ptr %17, align 4, !tbaa !9
  %2782 = add nsw i32 %2780, %2781
  %2783 = sext i32 %2782 to i64
  %2784 = getelementptr inbounds double, ptr %2779, i64 %2783
  %2785 = load double, ptr %2784, align 8, !tbaa !11
  %2786 = load double, ptr %31, align 8, !tbaa !11
  %2787 = load ptr, ptr %14, align 8, !tbaa !5
  %2788 = load i32, ptr %20, align 4, !tbaa !9
  %2789 = load i32, ptr %17, align 4, !tbaa !9
  %2790 = shl i32 %2789, 1
  %2791 = add nsw i32 %2788, %2790
  %2792 = sext i32 %2791 to i64
  %2793 = getelementptr inbounds double, ptr %2787, i64 %2792
  %2794 = load double, ptr %2793, align 8, !tbaa !11
  %2795 = fmul double %2786, %2794
  %2796 = call double @llvm.fmuladd.f64(double %2778, double %2785, double %2795)
  %2797 = load double, ptr %32, align 8, !tbaa !11
  %2798 = load ptr, ptr %14, align 8, !tbaa !5
  %2799 = load i32, ptr %20, align 4, !tbaa !9
  %2800 = load i32, ptr %17, align 4, !tbaa !9
  %2801 = mul nsw i32 %2800, 3
  %2802 = add nsw i32 %2799, %2801
  %2803 = sext i32 %2802 to i64
  %2804 = getelementptr inbounds double, ptr %2798, i64 %2803
  %2805 = load double, ptr %2804, align 8, !tbaa !11
  %2806 = call double @llvm.fmuladd.f64(double %2797, double %2805, double %2796)
  %2807 = load double, ptr %33, align 8, !tbaa !11
  %2808 = load ptr, ptr %14, align 8, !tbaa !5
  %2809 = load i32, ptr %20, align 4, !tbaa !9
  %2810 = load i32, ptr %17, align 4, !tbaa !9
  %2811 = shl i32 %2810, 2
  %2812 = add nsw i32 %2809, %2811
  %2813 = sext i32 %2812 to i64
  %2814 = getelementptr inbounds double, ptr %2808, i64 %2813
  %2815 = load double, ptr %2814, align 8, !tbaa !11
  %2816 = call double @llvm.fmuladd.f64(double %2807, double %2815, double %2806)
  %2817 = load double, ptr %34, align 8, !tbaa !11
  %2818 = load ptr, ptr %14, align 8, !tbaa !5
  %2819 = load i32, ptr %20, align 4, !tbaa !9
  %2820 = load i32, ptr %17, align 4, !tbaa !9
  %2821 = mul nsw i32 %2820, 5
  %2822 = add nsw i32 %2819, %2821
  %2823 = sext i32 %2822 to i64
  %2824 = getelementptr inbounds double, ptr %2818, i64 %2823
  %2825 = load double, ptr %2824, align 8, !tbaa !11
  %2826 = call double @llvm.fmuladd.f64(double %2817, double %2825, double %2816)
  %2827 = load double, ptr %35, align 8, !tbaa !11
  %2828 = load ptr, ptr %14, align 8, !tbaa !5
  %2829 = load i32, ptr %20, align 4, !tbaa !9
  %2830 = load i32, ptr %17, align 4, !tbaa !9
  %2831 = mul nsw i32 %2830, 6
  %2832 = add nsw i32 %2829, %2831
  %2833 = sext i32 %2832 to i64
  %2834 = getelementptr inbounds double, ptr %2828, i64 %2833
  %2835 = load double, ptr %2834, align 8, !tbaa !11
  %2836 = call double @llvm.fmuladd.f64(double %2827, double %2835, double %2826)
  %2837 = load double, ptr %36, align 8, !tbaa !11
  %2838 = load ptr, ptr %14, align 8, !tbaa !5
  %2839 = load i32, ptr %20, align 4, !tbaa !9
  %2840 = load i32, ptr %17, align 4, !tbaa !9
  %2841 = mul nsw i32 %2840, 7
  %2842 = add nsw i32 %2839, %2841
  %2843 = sext i32 %2842 to i64
  %2844 = getelementptr inbounds double, ptr %2838, i64 %2843
  %2845 = load double, ptr %2844, align 8, !tbaa !11
  %2846 = call double @llvm.fmuladd.f64(double %2837, double %2845, double %2836)
  %2847 = load double, ptr %37, align 8, !tbaa !11
  %2848 = load ptr, ptr %14, align 8, !tbaa !5
  %2849 = load i32, ptr %20, align 4, !tbaa !9
  %2850 = load i32, ptr %17, align 4, !tbaa !9
  %2851 = shl i32 %2850, 3
  %2852 = add nsw i32 %2849, %2851
  %2853 = sext i32 %2852 to i64
  %2854 = getelementptr inbounds double, ptr %2848, i64 %2853
  %2855 = load double, ptr %2854, align 8, !tbaa !11
  %2856 = call double @llvm.fmuladd.f64(double %2847, double %2855, double %2846)
  store double %2856, ptr %41, align 8, !tbaa !11
  %2857 = load double, ptr %41, align 8, !tbaa !11
  %2858 = load double, ptr %21, align 8, !tbaa !11
  %2859 = load ptr, ptr %14, align 8, !tbaa !5
  %2860 = load i32, ptr %20, align 4, !tbaa !9
  %2861 = load i32, ptr %17, align 4, !tbaa !9
  %2862 = add nsw i32 %2860, %2861
  %2863 = sext i32 %2862 to i64
  %2864 = getelementptr inbounds double, ptr %2859, i64 %2863
  %2865 = load double, ptr %2864, align 8, !tbaa !11
  %2866 = fneg double %2857
  %2867 = call double @llvm.fmuladd.f64(double %2866, double %2858, double %2865)
  store double %2867, ptr %2864, align 8, !tbaa !11
  %2868 = load double, ptr %41, align 8, !tbaa !11
  %2869 = load double, ptr %22, align 8, !tbaa !11
  %2870 = load ptr, ptr %14, align 8, !tbaa !5
  %2871 = load i32, ptr %20, align 4, !tbaa !9
  %2872 = load i32, ptr %17, align 4, !tbaa !9
  %2873 = shl i32 %2872, 1
  %2874 = add nsw i32 %2871, %2873
  %2875 = sext i32 %2874 to i64
  %2876 = getelementptr inbounds double, ptr %2870, i64 %2875
  %2877 = load double, ptr %2876, align 8, !tbaa !11
  %2878 = fneg double %2868
  %2879 = call double @llvm.fmuladd.f64(double %2878, double %2869, double %2877)
  store double %2879, ptr %2876, align 8, !tbaa !11
  %2880 = load double, ptr %41, align 8, !tbaa !11
  %2881 = load double, ptr %23, align 8, !tbaa !11
  %2882 = load ptr, ptr %14, align 8, !tbaa !5
  %2883 = load i32, ptr %20, align 4, !tbaa !9
  %2884 = load i32, ptr %17, align 4, !tbaa !9
  %2885 = mul nsw i32 %2884, 3
  %2886 = add nsw i32 %2883, %2885
  %2887 = sext i32 %2886 to i64
  %2888 = getelementptr inbounds double, ptr %2882, i64 %2887
  %2889 = load double, ptr %2888, align 8, !tbaa !11
  %2890 = fneg double %2880
  %2891 = call double @llvm.fmuladd.f64(double %2890, double %2881, double %2889)
  store double %2891, ptr %2888, align 8, !tbaa !11
  %2892 = load double, ptr %41, align 8, !tbaa !11
  %2893 = load double, ptr %24, align 8, !tbaa !11
  %2894 = load ptr, ptr %14, align 8, !tbaa !5
  %2895 = load i32, ptr %20, align 4, !tbaa !9
  %2896 = load i32, ptr %17, align 4, !tbaa !9
  %2897 = shl i32 %2896, 2
  %2898 = add nsw i32 %2895, %2897
  %2899 = sext i32 %2898 to i64
  %2900 = getelementptr inbounds double, ptr %2894, i64 %2899
  %2901 = load double, ptr %2900, align 8, !tbaa !11
  %2902 = fneg double %2892
  %2903 = call double @llvm.fmuladd.f64(double %2902, double %2893, double %2901)
  store double %2903, ptr %2900, align 8, !tbaa !11
  %2904 = load double, ptr %41, align 8, !tbaa !11
  %2905 = load double, ptr %25, align 8, !tbaa !11
  %2906 = load ptr, ptr %14, align 8, !tbaa !5
  %2907 = load i32, ptr %20, align 4, !tbaa !9
  %2908 = load i32, ptr %17, align 4, !tbaa !9
  %2909 = mul nsw i32 %2908, 5
  %2910 = add nsw i32 %2907, %2909
  %2911 = sext i32 %2910 to i64
  %2912 = getelementptr inbounds double, ptr %2906, i64 %2911
  %2913 = load double, ptr %2912, align 8, !tbaa !11
  %2914 = fneg double %2904
  %2915 = call double @llvm.fmuladd.f64(double %2914, double %2905, double %2913)
  store double %2915, ptr %2912, align 8, !tbaa !11
  %2916 = load double, ptr %41, align 8, !tbaa !11
  %2917 = load double, ptr %26, align 8, !tbaa !11
  %2918 = load ptr, ptr %14, align 8, !tbaa !5
  %2919 = load i32, ptr %20, align 4, !tbaa !9
  %2920 = load i32, ptr %17, align 4, !tbaa !9
  %2921 = mul nsw i32 %2920, 6
  %2922 = add nsw i32 %2919, %2921
  %2923 = sext i32 %2922 to i64
  %2924 = getelementptr inbounds double, ptr %2918, i64 %2923
  %2925 = load double, ptr %2924, align 8, !tbaa !11
  %2926 = fneg double %2916
  %2927 = call double @llvm.fmuladd.f64(double %2926, double %2917, double %2925)
  store double %2927, ptr %2924, align 8, !tbaa !11
  %2928 = load double, ptr %41, align 8, !tbaa !11
  %2929 = load double, ptr %27, align 8, !tbaa !11
  %2930 = load ptr, ptr %14, align 8, !tbaa !5
  %2931 = load i32, ptr %20, align 4, !tbaa !9
  %2932 = load i32, ptr %17, align 4, !tbaa !9
  %2933 = mul nsw i32 %2932, 7
  %2934 = add nsw i32 %2931, %2933
  %2935 = sext i32 %2934 to i64
  %2936 = getelementptr inbounds double, ptr %2930, i64 %2935
  %2937 = load double, ptr %2936, align 8, !tbaa !11
  %2938 = fneg double %2928
  %2939 = call double @llvm.fmuladd.f64(double %2938, double %2929, double %2937)
  store double %2939, ptr %2936, align 8, !tbaa !11
  %2940 = load double, ptr %41, align 8, !tbaa !11
  %2941 = load double, ptr %28, align 8, !tbaa !11
  %2942 = load ptr, ptr %14, align 8, !tbaa !5
  %2943 = load i32, ptr %20, align 4, !tbaa !9
  %2944 = load i32, ptr %17, align 4, !tbaa !9
  %2945 = shl i32 %2944, 3
  %2946 = add nsw i32 %2943, %2945
  %2947 = sext i32 %2946 to i64
  %2948 = getelementptr inbounds double, ptr %2942, i64 %2947
  %2949 = load double, ptr %2948, align 8, !tbaa !11
  %2950 = fneg double %2940
  %2951 = call double @llvm.fmuladd.f64(double %2950, double %2941, double %2949)
  store double %2951, ptr %2948, align 8, !tbaa !11
  br label %2952

2952:                                             ; preds = %2777
  %2953 = load i32, ptr %20, align 4, !tbaa !9
  %2954 = add nsw i32 %2953, 1
  store i32 %2954, ptr %20, align 4, !tbaa !9
  br label %2773, !llvm.loop !31

2955:                                             ; preds = %2773
  br label %3527

2956:                                             ; preds = %1817
  %2957 = load ptr, ptr %12, align 8, !tbaa !5
  %2958 = getelementptr inbounds double, ptr %2957, i64 1
  %2959 = load double, ptr %2958, align 8, !tbaa !11
  store double %2959, ptr %30, align 8, !tbaa !11
  %2960 = load ptr, ptr %13, align 8, !tbaa !5
  %2961 = load double, ptr %2960, align 8, !tbaa !11
  %2962 = load double, ptr %30, align 8, !tbaa !11
  %2963 = fmul double %2961, %2962
  store double %2963, ptr %21, align 8, !tbaa !11
  %2964 = load ptr, ptr %12, align 8, !tbaa !5
  %2965 = getelementptr inbounds double, ptr %2964, i64 2
  %2966 = load double, ptr %2965, align 8, !tbaa !11
  store double %2966, ptr %31, align 8, !tbaa !11
  %2967 = load ptr, ptr %13, align 8, !tbaa !5
  %2968 = load double, ptr %2967, align 8, !tbaa !11
  %2969 = load double, ptr %31, align 8, !tbaa !11
  %2970 = fmul double %2968, %2969
  store double %2970, ptr %22, align 8, !tbaa !11
  %2971 = load ptr, ptr %12, align 8, !tbaa !5
  %2972 = getelementptr inbounds double, ptr %2971, i64 3
  %2973 = load double, ptr %2972, align 8, !tbaa !11
  store double %2973, ptr %32, align 8, !tbaa !11
  %2974 = load ptr, ptr %13, align 8, !tbaa !5
  %2975 = load double, ptr %2974, align 8, !tbaa !11
  %2976 = load double, ptr %32, align 8, !tbaa !11
  %2977 = fmul double %2975, %2976
  store double %2977, ptr %23, align 8, !tbaa !11
  %2978 = load ptr, ptr %12, align 8, !tbaa !5
  %2979 = getelementptr inbounds double, ptr %2978, i64 4
  %2980 = load double, ptr %2979, align 8, !tbaa !11
  store double %2980, ptr %33, align 8, !tbaa !11
  %2981 = load ptr, ptr %13, align 8, !tbaa !5
  %2982 = load double, ptr %2981, align 8, !tbaa !11
  %2983 = load double, ptr %33, align 8, !tbaa !11
  %2984 = fmul double %2982, %2983
  store double %2984, ptr %24, align 8, !tbaa !11
  %2985 = load ptr, ptr %12, align 8, !tbaa !5
  %2986 = getelementptr inbounds double, ptr %2985, i64 5
  %2987 = load double, ptr %2986, align 8, !tbaa !11
  store double %2987, ptr %34, align 8, !tbaa !11
  %2988 = load ptr, ptr %13, align 8, !tbaa !5
  %2989 = load double, ptr %2988, align 8, !tbaa !11
  %2990 = load double, ptr %34, align 8, !tbaa !11
  %2991 = fmul double %2989, %2990
  store double %2991, ptr %25, align 8, !tbaa !11
  %2992 = load ptr, ptr %12, align 8, !tbaa !5
  %2993 = getelementptr inbounds double, ptr %2992, i64 6
  %2994 = load double, ptr %2993, align 8, !tbaa !11
  store double %2994, ptr %35, align 8, !tbaa !11
  %2995 = load ptr, ptr %13, align 8, !tbaa !5
  %2996 = load double, ptr %2995, align 8, !tbaa !11
  %2997 = load double, ptr %35, align 8, !tbaa !11
  %2998 = fmul double %2996, %2997
  store double %2998, ptr %26, align 8, !tbaa !11
  %2999 = load ptr, ptr %12, align 8, !tbaa !5
  %3000 = getelementptr inbounds double, ptr %2999, i64 7
  %3001 = load double, ptr %3000, align 8, !tbaa !11
  store double %3001, ptr %36, align 8, !tbaa !11
  %3002 = load ptr, ptr %13, align 8, !tbaa !5
  %3003 = load double, ptr %3002, align 8, !tbaa !11
  %3004 = load double, ptr %36, align 8, !tbaa !11
  %3005 = fmul double %3003, %3004
  store double %3005, ptr %27, align 8, !tbaa !11
  %3006 = load ptr, ptr %12, align 8, !tbaa !5
  %3007 = getelementptr inbounds double, ptr %3006, i64 8
  %3008 = load double, ptr %3007, align 8, !tbaa !11
  store double %3008, ptr %37, align 8, !tbaa !11
  %3009 = load ptr, ptr %13, align 8, !tbaa !5
  %3010 = load double, ptr %3009, align 8, !tbaa !11
  %3011 = load double, ptr %37, align 8, !tbaa !11
  %3012 = fmul double %3010, %3011
  store double %3012, ptr %28, align 8, !tbaa !11
  %3013 = load ptr, ptr %12, align 8, !tbaa !5
  %3014 = getelementptr inbounds double, ptr %3013, i64 9
  %3015 = load double, ptr %3014, align 8, !tbaa !11
  store double %3015, ptr %38, align 8, !tbaa !11
  %3016 = load ptr, ptr %13, align 8, !tbaa !5
  %3017 = load double, ptr %3016, align 8, !tbaa !11
  %3018 = load double, ptr %38, align 8, !tbaa !11
  %3019 = fmul double %3017, %3018
  store double %3019, ptr %29, align 8, !tbaa !11
  %3020 = load ptr, ptr %10, align 8, !tbaa !5
  %3021 = load i32, ptr %3020, align 4, !tbaa !9
  store i32 %3021, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %3022

3022:                                             ; preds = %3223, %2956
  %3023 = load i32, ptr %20, align 4, !tbaa !9
  %3024 = load i32, ptr %19, align 4, !tbaa !9
  %3025 = icmp sle i32 %3023, %3024
  br i1 %3025, label %3026, label %3226

3026:                                             ; preds = %3022
  %3027 = load double, ptr %30, align 8, !tbaa !11
  %3028 = load ptr, ptr %14, align 8, !tbaa !5
  %3029 = load i32, ptr %20, align 4, !tbaa !9
  %3030 = load i32, ptr %17, align 4, !tbaa !9
  %3031 = add nsw i32 %3029, %3030
  %3032 = sext i32 %3031 to i64
  %3033 = getelementptr inbounds double, ptr %3028, i64 %3032
  %3034 = load double, ptr %3033, align 8, !tbaa !11
  %3035 = load double, ptr %31, align 8, !tbaa !11
  %3036 = load ptr, ptr %14, align 8, !tbaa !5
  %3037 = load i32, ptr %20, align 4, !tbaa !9
  %3038 = load i32, ptr %17, align 4, !tbaa !9
  %3039 = shl i32 %3038, 1
  %3040 = add nsw i32 %3037, %3039
  %3041 = sext i32 %3040 to i64
  %3042 = getelementptr inbounds double, ptr %3036, i64 %3041
  %3043 = load double, ptr %3042, align 8, !tbaa !11
  %3044 = fmul double %3035, %3043
  %3045 = call double @llvm.fmuladd.f64(double %3027, double %3034, double %3044)
  %3046 = load double, ptr %32, align 8, !tbaa !11
  %3047 = load ptr, ptr %14, align 8, !tbaa !5
  %3048 = load i32, ptr %20, align 4, !tbaa !9
  %3049 = load i32, ptr %17, align 4, !tbaa !9
  %3050 = mul nsw i32 %3049, 3
  %3051 = add nsw i32 %3048, %3050
  %3052 = sext i32 %3051 to i64
  %3053 = getelementptr inbounds double, ptr %3047, i64 %3052
  %3054 = load double, ptr %3053, align 8, !tbaa !11
  %3055 = call double @llvm.fmuladd.f64(double %3046, double %3054, double %3045)
  %3056 = load double, ptr %33, align 8, !tbaa !11
  %3057 = load ptr, ptr %14, align 8, !tbaa !5
  %3058 = load i32, ptr %20, align 4, !tbaa !9
  %3059 = load i32, ptr %17, align 4, !tbaa !9
  %3060 = shl i32 %3059, 2
  %3061 = add nsw i32 %3058, %3060
  %3062 = sext i32 %3061 to i64
  %3063 = getelementptr inbounds double, ptr %3057, i64 %3062
  %3064 = load double, ptr %3063, align 8, !tbaa !11
  %3065 = call double @llvm.fmuladd.f64(double %3056, double %3064, double %3055)
  %3066 = load double, ptr %34, align 8, !tbaa !11
  %3067 = load ptr, ptr %14, align 8, !tbaa !5
  %3068 = load i32, ptr %20, align 4, !tbaa !9
  %3069 = load i32, ptr %17, align 4, !tbaa !9
  %3070 = mul nsw i32 %3069, 5
  %3071 = add nsw i32 %3068, %3070
  %3072 = sext i32 %3071 to i64
  %3073 = getelementptr inbounds double, ptr %3067, i64 %3072
  %3074 = load double, ptr %3073, align 8, !tbaa !11
  %3075 = call double @llvm.fmuladd.f64(double %3066, double %3074, double %3065)
  %3076 = load double, ptr %35, align 8, !tbaa !11
  %3077 = load ptr, ptr %14, align 8, !tbaa !5
  %3078 = load i32, ptr %20, align 4, !tbaa !9
  %3079 = load i32, ptr %17, align 4, !tbaa !9
  %3080 = mul nsw i32 %3079, 6
  %3081 = add nsw i32 %3078, %3080
  %3082 = sext i32 %3081 to i64
  %3083 = getelementptr inbounds double, ptr %3077, i64 %3082
  %3084 = load double, ptr %3083, align 8, !tbaa !11
  %3085 = call double @llvm.fmuladd.f64(double %3076, double %3084, double %3075)
  %3086 = load double, ptr %36, align 8, !tbaa !11
  %3087 = load ptr, ptr %14, align 8, !tbaa !5
  %3088 = load i32, ptr %20, align 4, !tbaa !9
  %3089 = load i32, ptr %17, align 4, !tbaa !9
  %3090 = mul nsw i32 %3089, 7
  %3091 = add nsw i32 %3088, %3090
  %3092 = sext i32 %3091 to i64
  %3093 = getelementptr inbounds double, ptr %3087, i64 %3092
  %3094 = load double, ptr %3093, align 8, !tbaa !11
  %3095 = call double @llvm.fmuladd.f64(double %3086, double %3094, double %3085)
  %3096 = load double, ptr %37, align 8, !tbaa !11
  %3097 = load ptr, ptr %14, align 8, !tbaa !5
  %3098 = load i32, ptr %20, align 4, !tbaa !9
  %3099 = load i32, ptr %17, align 4, !tbaa !9
  %3100 = shl i32 %3099, 3
  %3101 = add nsw i32 %3098, %3100
  %3102 = sext i32 %3101 to i64
  %3103 = getelementptr inbounds double, ptr %3097, i64 %3102
  %3104 = load double, ptr %3103, align 8, !tbaa !11
  %3105 = call double @llvm.fmuladd.f64(double %3096, double %3104, double %3095)
  %3106 = load double, ptr %38, align 8, !tbaa !11
  %3107 = load ptr, ptr %14, align 8, !tbaa !5
  %3108 = load i32, ptr %20, align 4, !tbaa !9
  %3109 = load i32, ptr %17, align 4, !tbaa !9
  %3110 = mul nsw i32 %3109, 9
  %3111 = add nsw i32 %3108, %3110
  %3112 = sext i32 %3111 to i64
  %3113 = getelementptr inbounds double, ptr %3107, i64 %3112
  %3114 = load double, ptr %3113, align 8, !tbaa !11
  %3115 = call double @llvm.fmuladd.f64(double %3106, double %3114, double %3105)
  store double %3115, ptr %41, align 8, !tbaa !11
  %3116 = load double, ptr %41, align 8, !tbaa !11
  %3117 = load double, ptr %21, align 8, !tbaa !11
  %3118 = load ptr, ptr %14, align 8, !tbaa !5
  %3119 = load i32, ptr %20, align 4, !tbaa !9
  %3120 = load i32, ptr %17, align 4, !tbaa !9
  %3121 = add nsw i32 %3119, %3120
  %3122 = sext i32 %3121 to i64
  %3123 = getelementptr inbounds double, ptr %3118, i64 %3122
  %3124 = load double, ptr %3123, align 8, !tbaa !11
  %3125 = fneg double %3116
  %3126 = call double @llvm.fmuladd.f64(double %3125, double %3117, double %3124)
  store double %3126, ptr %3123, align 8, !tbaa !11
  %3127 = load double, ptr %41, align 8, !tbaa !11
  %3128 = load double, ptr %22, align 8, !tbaa !11
  %3129 = load ptr, ptr %14, align 8, !tbaa !5
  %3130 = load i32, ptr %20, align 4, !tbaa !9
  %3131 = load i32, ptr %17, align 4, !tbaa !9
  %3132 = shl i32 %3131, 1
  %3133 = add nsw i32 %3130, %3132
  %3134 = sext i32 %3133 to i64
  %3135 = getelementptr inbounds double, ptr %3129, i64 %3134
  %3136 = load double, ptr %3135, align 8, !tbaa !11
  %3137 = fneg double %3127
  %3138 = call double @llvm.fmuladd.f64(double %3137, double %3128, double %3136)
  store double %3138, ptr %3135, align 8, !tbaa !11
  %3139 = load double, ptr %41, align 8, !tbaa !11
  %3140 = load double, ptr %23, align 8, !tbaa !11
  %3141 = load ptr, ptr %14, align 8, !tbaa !5
  %3142 = load i32, ptr %20, align 4, !tbaa !9
  %3143 = load i32, ptr %17, align 4, !tbaa !9
  %3144 = mul nsw i32 %3143, 3
  %3145 = add nsw i32 %3142, %3144
  %3146 = sext i32 %3145 to i64
  %3147 = getelementptr inbounds double, ptr %3141, i64 %3146
  %3148 = load double, ptr %3147, align 8, !tbaa !11
  %3149 = fneg double %3139
  %3150 = call double @llvm.fmuladd.f64(double %3149, double %3140, double %3148)
  store double %3150, ptr %3147, align 8, !tbaa !11
  %3151 = load double, ptr %41, align 8, !tbaa !11
  %3152 = load double, ptr %24, align 8, !tbaa !11
  %3153 = load ptr, ptr %14, align 8, !tbaa !5
  %3154 = load i32, ptr %20, align 4, !tbaa !9
  %3155 = load i32, ptr %17, align 4, !tbaa !9
  %3156 = shl i32 %3155, 2
  %3157 = add nsw i32 %3154, %3156
  %3158 = sext i32 %3157 to i64
  %3159 = getelementptr inbounds double, ptr %3153, i64 %3158
  %3160 = load double, ptr %3159, align 8, !tbaa !11
  %3161 = fneg double %3151
  %3162 = call double @llvm.fmuladd.f64(double %3161, double %3152, double %3160)
  store double %3162, ptr %3159, align 8, !tbaa !11
  %3163 = load double, ptr %41, align 8, !tbaa !11
  %3164 = load double, ptr %25, align 8, !tbaa !11
  %3165 = load ptr, ptr %14, align 8, !tbaa !5
  %3166 = load i32, ptr %20, align 4, !tbaa !9
  %3167 = load i32, ptr %17, align 4, !tbaa !9
  %3168 = mul nsw i32 %3167, 5
  %3169 = add nsw i32 %3166, %3168
  %3170 = sext i32 %3169 to i64
  %3171 = getelementptr inbounds double, ptr %3165, i64 %3170
  %3172 = load double, ptr %3171, align 8, !tbaa !11
  %3173 = fneg double %3163
  %3174 = call double @llvm.fmuladd.f64(double %3173, double %3164, double %3172)
  store double %3174, ptr %3171, align 8, !tbaa !11
  %3175 = load double, ptr %41, align 8, !tbaa !11
  %3176 = load double, ptr %26, align 8, !tbaa !11
  %3177 = load ptr, ptr %14, align 8, !tbaa !5
  %3178 = load i32, ptr %20, align 4, !tbaa !9
  %3179 = load i32, ptr %17, align 4, !tbaa !9
  %3180 = mul nsw i32 %3179, 6
  %3181 = add nsw i32 %3178, %3180
  %3182 = sext i32 %3181 to i64
  %3183 = getelementptr inbounds double, ptr %3177, i64 %3182
  %3184 = load double, ptr %3183, align 8, !tbaa !11
  %3185 = fneg double %3175
  %3186 = call double @llvm.fmuladd.f64(double %3185, double %3176, double %3184)
  store double %3186, ptr %3183, align 8, !tbaa !11
  %3187 = load double, ptr %41, align 8, !tbaa !11
  %3188 = load double, ptr %27, align 8, !tbaa !11
  %3189 = load ptr, ptr %14, align 8, !tbaa !5
  %3190 = load i32, ptr %20, align 4, !tbaa !9
  %3191 = load i32, ptr %17, align 4, !tbaa !9
  %3192 = mul nsw i32 %3191, 7
  %3193 = add nsw i32 %3190, %3192
  %3194 = sext i32 %3193 to i64
  %3195 = getelementptr inbounds double, ptr %3189, i64 %3194
  %3196 = load double, ptr %3195, align 8, !tbaa !11
  %3197 = fneg double %3187
  %3198 = call double @llvm.fmuladd.f64(double %3197, double %3188, double %3196)
  store double %3198, ptr %3195, align 8, !tbaa !11
  %3199 = load double, ptr %41, align 8, !tbaa !11
  %3200 = load double, ptr %28, align 8, !tbaa !11
  %3201 = load ptr, ptr %14, align 8, !tbaa !5
  %3202 = load i32, ptr %20, align 4, !tbaa !9
  %3203 = load i32, ptr %17, align 4, !tbaa !9
  %3204 = shl i32 %3203, 3
  %3205 = add nsw i32 %3202, %3204
  %3206 = sext i32 %3205 to i64
  %3207 = getelementptr inbounds double, ptr %3201, i64 %3206
  %3208 = load double, ptr %3207, align 8, !tbaa !11
  %3209 = fneg double %3199
  %3210 = call double @llvm.fmuladd.f64(double %3209, double %3200, double %3208)
  store double %3210, ptr %3207, align 8, !tbaa !11
  %3211 = load double, ptr %41, align 8, !tbaa !11
  %3212 = load double, ptr %29, align 8, !tbaa !11
  %3213 = load ptr, ptr %14, align 8, !tbaa !5
  %3214 = load i32, ptr %20, align 4, !tbaa !9
  %3215 = load i32, ptr %17, align 4, !tbaa !9
  %3216 = mul nsw i32 %3215, 9
  %3217 = add nsw i32 %3214, %3216
  %3218 = sext i32 %3217 to i64
  %3219 = getelementptr inbounds double, ptr %3213, i64 %3218
  %3220 = load double, ptr %3219, align 8, !tbaa !11
  %3221 = fneg double %3211
  %3222 = call double @llvm.fmuladd.f64(double %3221, double %3212, double %3220)
  store double %3222, ptr %3219, align 8, !tbaa !11
  br label %3223

3223:                                             ; preds = %3026
  %3224 = load i32, ptr %20, align 4, !tbaa !9
  %3225 = add nsw i32 %3224, 1
  store i32 %3225, ptr %20, align 4, !tbaa !9
  br label %3022, !llvm.loop !32

3226:                                             ; preds = %3022
  br label %3527

3227:                                             ; preds = %1818
  %3228 = load ptr, ptr %12, align 8, !tbaa !5
  %3229 = getelementptr inbounds double, ptr %3228, i64 1
  %3230 = load double, ptr %3229, align 8, !tbaa !11
  store double %3230, ptr %30, align 8, !tbaa !11
  %3231 = load ptr, ptr %13, align 8, !tbaa !5
  %3232 = load double, ptr %3231, align 8, !tbaa !11
  %3233 = load double, ptr %30, align 8, !tbaa !11
  %3234 = fmul double %3232, %3233
  store double %3234, ptr %21, align 8, !tbaa !11
  %3235 = load ptr, ptr %12, align 8, !tbaa !5
  %3236 = getelementptr inbounds double, ptr %3235, i64 2
  %3237 = load double, ptr %3236, align 8, !tbaa !11
  store double %3237, ptr %31, align 8, !tbaa !11
  %3238 = load ptr, ptr %13, align 8, !tbaa !5
  %3239 = load double, ptr %3238, align 8, !tbaa !11
  %3240 = load double, ptr %31, align 8, !tbaa !11
  %3241 = fmul double %3239, %3240
  store double %3241, ptr %22, align 8, !tbaa !11
  %3242 = load ptr, ptr %12, align 8, !tbaa !5
  %3243 = getelementptr inbounds double, ptr %3242, i64 3
  %3244 = load double, ptr %3243, align 8, !tbaa !11
  store double %3244, ptr %32, align 8, !tbaa !11
  %3245 = load ptr, ptr %13, align 8, !tbaa !5
  %3246 = load double, ptr %3245, align 8, !tbaa !11
  %3247 = load double, ptr %32, align 8, !tbaa !11
  %3248 = fmul double %3246, %3247
  store double %3248, ptr %23, align 8, !tbaa !11
  %3249 = load ptr, ptr %12, align 8, !tbaa !5
  %3250 = getelementptr inbounds double, ptr %3249, i64 4
  %3251 = load double, ptr %3250, align 8, !tbaa !11
  store double %3251, ptr %33, align 8, !tbaa !11
  %3252 = load ptr, ptr %13, align 8, !tbaa !5
  %3253 = load double, ptr %3252, align 8, !tbaa !11
  %3254 = load double, ptr %33, align 8, !tbaa !11
  %3255 = fmul double %3253, %3254
  store double %3255, ptr %24, align 8, !tbaa !11
  %3256 = load ptr, ptr %12, align 8, !tbaa !5
  %3257 = getelementptr inbounds double, ptr %3256, i64 5
  %3258 = load double, ptr %3257, align 8, !tbaa !11
  store double %3258, ptr %34, align 8, !tbaa !11
  %3259 = load ptr, ptr %13, align 8, !tbaa !5
  %3260 = load double, ptr %3259, align 8, !tbaa !11
  %3261 = load double, ptr %34, align 8, !tbaa !11
  %3262 = fmul double %3260, %3261
  store double %3262, ptr %25, align 8, !tbaa !11
  %3263 = load ptr, ptr %12, align 8, !tbaa !5
  %3264 = getelementptr inbounds double, ptr %3263, i64 6
  %3265 = load double, ptr %3264, align 8, !tbaa !11
  store double %3265, ptr %35, align 8, !tbaa !11
  %3266 = load ptr, ptr %13, align 8, !tbaa !5
  %3267 = load double, ptr %3266, align 8, !tbaa !11
  %3268 = load double, ptr %35, align 8, !tbaa !11
  %3269 = fmul double %3267, %3268
  store double %3269, ptr %26, align 8, !tbaa !11
  %3270 = load ptr, ptr %12, align 8, !tbaa !5
  %3271 = getelementptr inbounds double, ptr %3270, i64 7
  %3272 = load double, ptr %3271, align 8, !tbaa !11
  store double %3272, ptr %36, align 8, !tbaa !11
  %3273 = load ptr, ptr %13, align 8, !tbaa !5
  %3274 = load double, ptr %3273, align 8, !tbaa !11
  %3275 = load double, ptr %36, align 8, !tbaa !11
  %3276 = fmul double %3274, %3275
  store double %3276, ptr %27, align 8, !tbaa !11
  %3277 = load ptr, ptr %12, align 8, !tbaa !5
  %3278 = getelementptr inbounds double, ptr %3277, i64 8
  %3279 = load double, ptr %3278, align 8, !tbaa !11
  store double %3279, ptr %37, align 8, !tbaa !11
  %3280 = load ptr, ptr %13, align 8, !tbaa !5
  %3281 = load double, ptr %3280, align 8, !tbaa !11
  %3282 = load double, ptr %37, align 8, !tbaa !11
  %3283 = fmul double %3281, %3282
  store double %3283, ptr %28, align 8, !tbaa !11
  %3284 = load ptr, ptr %12, align 8, !tbaa !5
  %3285 = getelementptr inbounds double, ptr %3284, i64 9
  %3286 = load double, ptr %3285, align 8, !tbaa !11
  store double %3286, ptr %38, align 8, !tbaa !11
  %3287 = load ptr, ptr %13, align 8, !tbaa !5
  %3288 = load double, ptr %3287, align 8, !tbaa !11
  %3289 = load double, ptr %38, align 8, !tbaa !11
  %3290 = fmul double %3288, %3289
  store double %3290, ptr %29, align 8, !tbaa !11
  %3291 = load ptr, ptr %12, align 8, !tbaa !5
  %3292 = getelementptr inbounds double, ptr %3291, i64 10
  %3293 = load double, ptr %3292, align 8, !tbaa !11
  store double %3293, ptr %40, align 8, !tbaa !11
  %3294 = load ptr, ptr %13, align 8, !tbaa !5
  %3295 = load double, ptr %3294, align 8, !tbaa !11
  %3296 = load double, ptr %40, align 8, !tbaa !11
  %3297 = fmul double %3295, %3296
  store double %3297, ptr %39, align 8, !tbaa !11
  %3298 = load ptr, ptr %10, align 8, !tbaa !5
  %3299 = load i32, ptr %3298, align 4, !tbaa !9
  store i32 %3299, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %3300

3300:                                             ; preds = %3523, %3227
  %3301 = load i32, ptr %20, align 4, !tbaa !9
  %3302 = load i32, ptr %19, align 4, !tbaa !9
  %3303 = icmp sle i32 %3301, %3302
  br i1 %3303, label %3304, label %3526

3304:                                             ; preds = %3300
  %3305 = load double, ptr %30, align 8, !tbaa !11
  %3306 = load ptr, ptr %14, align 8, !tbaa !5
  %3307 = load i32, ptr %20, align 4, !tbaa !9
  %3308 = load i32, ptr %17, align 4, !tbaa !9
  %3309 = add nsw i32 %3307, %3308
  %3310 = sext i32 %3309 to i64
  %3311 = getelementptr inbounds double, ptr %3306, i64 %3310
  %3312 = load double, ptr %3311, align 8, !tbaa !11
  %3313 = load double, ptr %31, align 8, !tbaa !11
  %3314 = load ptr, ptr %14, align 8, !tbaa !5
  %3315 = load i32, ptr %20, align 4, !tbaa !9
  %3316 = load i32, ptr %17, align 4, !tbaa !9
  %3317 = shl i32 %3316, 1
  %3318 = add nsw i32 %3315, %3317
  %3319 = sext i32 %3318 to i64
  %3320 = getelementptr inbounds double, ptr %3314, i64 %3319
  %3321 = load double, ptr %3320, align 8, !tbaa !11
  %3322 = fmul double %3313, %3321
  %3323 = call double @llvm.fmuladd.f64(double %3305, double %3312, double %3322)
  %3324 = load double, ptr %32, align 8, !tbaa !11
  %3325 = load ptr, ptr %14, align 8, !tbaa !5
  %3326 = load i32, ptr %20, align 4, !tbaa !9
  %3327 = load i32, ptr %17, align 4, !tbaa !9
  %3328 = mul nsw i32 %3327, 3
  %3329 = add nsw i32 %3326, %3328
  %3330 = sext i32 %3329 to i64
  %3331 = getelementptr inbounds double, ptr %3325, i64 %3330
  %3332 = load double, ptr %3331, align 8, !tbaa !11
  %3333 = call double @llvm.fmuladd.f64(double %3324, double %3332, double %3323)
  %3334 = load double, ptr %33, align 8, !tbaa !11
  %3335 = load ptr, ptr %14, align 8, !tbaa !5
  %3336 = load i32, ptr %20, align 4, !tbaa !9
  %3337 = load i32, ptr %17, align 4, !tbaa !9
  %3338 = shl i32 %3337, 2
  %3339 = add nsw i32 %3336, %3338
  %3340 = sext i32 %3339 to i64
  %3341 = getelementptr inbounds double, ptr %3335, i64 %3340
  %3342 = load double, ptr %3341, align 8, !tbaa !11
  %3343 = call double @llvm.fmuladd.f64(double %3334, double %3342, double %3333)
  %3344 = load double, ptr %34, align 8, !tbaa !11
  %3345 = load ptr, ptr %14, align 8, !tbaa !5
  %3346 = load i32, ptr %20, align 4, !tbaa !9
  %3347 = load i32, ptr %17, align 4, !tbaa !9
  %3348 = mul nsw i32 %3347, 5
  %3349 = add nsw i32 %3346, %3348
  %3350 = sext i32 %3349 to i64
  %3351 = getelementptr inbounds double, ptr %3345, i64 %3350
  %3352 = load double, ptr %3351, align 8, !tbaa !11
  %3353 = call double @llvm.fmuladd.f64(double %3344, double %3352, double %3343)
  %3354 = load double, ptr %35, align 8, !tbaa !11
  %3355 = load ptr, ptr %14, align 8, !tbaa !5
  %3356 = load i32, ptr %20, align 4, !tbaa !9
  %3357 = load i32, ptr %17, align 4, !tbaa !9
  %3358 = mul nsw i32 %3357, 6
  %3359 = add nsw i32 %3356, %3358
  %3360 = sext i32 %3359 to i64
  %3361 = getelementptr inbounds double, ptr %3355, i64 %3360
  %3362 = load double, ptr %3361, align 8, !tbaa !11
  %3363 = call double @llvm.fmuladd.f64(double %3354, double %3362, double %3353)
  %3364 = load double, ptr %36, align 8, !tbaa !11
  %3365 = load ptr, ptr %14, align 8, !tbaa !5
  %3366 = load i32, ptr %20, align 4, !tbaa !9
  %3367 = load i32, ptr %17, align 4, !tbaa !9
  %3368 = mul nsw i32 %3367, 7
  %3369 = add nsw i32 %3366, %3368
  %3370 = sext i32 %3369 to i64
  %3371 = getelementptr inbounds double, ptr %3365, i64 %3370
  %3372 = load double, ptr %3371, align 8, !tbaa !11
  %3373 = call double @llvm.fmuladd.f64(double %3364, double %3372, double %3363)
  %3374 = load double, ptr %37, align 8, !tbaa !11
  %3375 = load ptr, ptr %14, align 8, !tbaa !5
  %3376 = load i32, ptr %20, align 4, !tbaa !9
  %3377 = load i32, ptr %17, align 4, !tbaa !9
  %3378 = shl i32 %3377, 3
  %3379 = add nsw i32 %3376, %3378
  %3380 = sext i32 %3379 to i64
  %3381 = getelementptr inbounds double, ptr %3375, i64 %3380
  %3382 = load double, ptr %3381, align 8, !tbaa !11
  %3383 = call double @llvm.fmuladd.f64(double %3374, double %3382, double %3373)
  %3384 = load double, ptr %38, align 8, !tbaa !11
  %3385 = load ptr, ptr %14, align 8, !tbaa !5
  %3386 = load i32, ptr %20, align 4, !tbaa !9
  %3387 = load i32, ptr %17, align 4, !tbaa !9
  %3388 = mul nsw i32 %3387, 9
  %3389 = add nsw i32 %3386, %3388
  %3390 = sext i32 %3389 to i64
  %3391 = getelementptr inbounds double, ptr %3385, i64 %3390
  %3392 = load double, ptr %3391, align 8, !tbaa !11
  %3393 = call double @llvm.fmuladd.f64(double %3384, double %3392, double %3383)
  %3394 = load double, ptr %40, align 8, !tbaa !11
  %3395 = load ptr, ptr %14, align 8, !tbaa !5
  %3396 = load i32, ptr %20, align 4, !tbaa !9
  %3397 = load i32, ptr %17, align 4, !tbaa !9
  %3398 = mul nsw i32 %3397, 10
  %3399 = add nsw i32 %3396, %3398
  %3400 = sext i32 %3399 to i64
  %3401 = getelementptr inbounds double, ptr %3395, i64 %3400
  %3402 = load double, ptr %3401, align 8, !tbaa !11
  %3403 = call double @llvm.fmuladd.f64(double %3394, double %3402, double %3393)
  store double %3403, ptr %41, align 8, !tbaa !11
  %3404 = load double, ptr %41, align 8, !tbaa !11
  %3405 = load double, ptr %21, align 8, !tbaa !11
  %3406 = load ptr, ptr %14, align 8, !tbaa !5
  %3407 = load i32, ptr %20, align 4, !tbaa !9
  %3408 = load i32, ptr %17, align 4, !tbaa !9
  %3409 = add nsw i32 %3407, %3408
  %3410 = sext i32 %3409 to i64
  %3411 = getelementptr inbounds double, ptr %3406, i64 %3410
  %3412 = load double, ptr %3411, align 8, !tbaa !11
  %3413 = fneg double %3404
  %3414 = call double @llvm.fmuladd.f64(double %3413, double %3405, double %3412)
  store double %3414, ptr %3411, align 8, !tbaa !11
  %3415 = load double, ptr %41, align 8, !tbaa !11
  %3416 = load double, ptr %22, align 8, !tbaa !11
  %3417 = load ptr, ptr %14, align 8, !tbaa !5
  %3418 = load i32, ptr %20, align 4, !tbaa !9
  %3419 = load i32, ptr %17, align 4, !tbaa !9
  %3420 = shl i32 %3419, 1
  %3421 = add nsw i32 %3418, %3420
  %3422 = sext i32 %3421 to i64
  %3423 = getelementptr inbounds double, ptr %3417, i64 %3422
  %3424 = load double, ptr %3423, align 8, !tbaa !11
  %3425 = fneg double %3415
  %3426 = call double @llvm.fmuladd.f64(double %3425, double %3416, double %3424)
  store double %3426, ptr %3423, align 8, !tbaa !11
  %3427 = load double, ptr %41, align 8, !tbaa !11
  %3428 = load double, ptr %23, align 8, !tbaa !11
  %3429 = load ptr, ptr %14, align 8, !tbaa !5
  %3430 = load i32, ptr %20, align 4, !tbaa !9
  %3431 = load i32, ptr %17, align 4, !tbaa !9
  %3432 = mul nsw i32 %3431, 3
  %3433 = add nsw i32 %3430, %3432
  %3434 = sext i32 %3433 to i64
  %3435 = getelementptr inbounds double, ptr %3429, i64 %3434
  %3436 = load double, ptr %3435, align 8, !tbaa !11
  %3437 = fneg double %3427
  %3438 = call double @llvm.fmuladd.f64(double %3437, double %3428, double %3436)
  store double %3438, ptr %3435, align 8, !tbaa !11
  %3439 = load double, ptr %41, align 8, !tbaa !11
  %3440 = load double, ptr %24, align 8, !tbaa !11
  %3441 = load ptr, ptr %14, align 8, !tbaa !5
  %3442 = load i32, ptr %20, align 4, !tbaa !9
  %3443 = load i32, ptr %17, align 4, !tbaa !9
  %3444 = shl i32 %3443, 2
  %3445 = add nsw i32 %3442, %3444
  %3446 = sext i32 %3445 to i64
  %3447 = getelementptr inbounds double, ptr %3441, i64 %3446
  %3448 = load double, ptr %3447, align 8, !tbaa !11
  %3449 = fneg double %3439
  %3450 = call double @llvm.fmuladd.f64(double %3449, double %3440, double %3448)
  store double %3450, ptr %3447, align 8, !tbaa !11
  %3451 = load double, ptr %41, align 8, !tbaa !11
  %3452 = load double, ptr %25, align 8, !tbaa !11
  %3453 = load ptr, ptr %14, align 8, !tbaa !5
  %3454 = load i32, ptr %20, align 4, !tbaa !9
  %3455 = load i32, ptr %17, align 4, !tbaa !9
  %3456 = mul nsw i32 %3455, 5
  %3457 = add nsw i32 %3454, %3456
  %3458 = sext i32 %3457 to i64
  %3459 = getelementptr inbounds double, ptr %3453, i64 %3458
  %3460 = load double, ptr %3459, align 8, !tbaa !11
  %3461 = fneg double %3451
  %3462 = call double @llvm.fmuladd.f64(double %3461, double %3452, double %3460)
  store double %3462, ptr %3459, align 8, !tbaa !11
  %3463 = load double, ptr %41, align 8, !tbaa !11
  %3464 = load double, ptr %26, align 8, !tbaa !11
  %3465 = load ptr, ptr %14, align 8, !tbaa !5
  %3466 = load i32, ptr %20, align 4, !tbaa !9
  %3467 = load i32, ptr %17, align 4, !tbaa !9
  %3468 = mul nsw i32 %3467, 6
  %3469 = add nsw i32 %3466, %3468
  %3470 = sext i32 %3469 to i64
  %3471 = getelementptr inbounds double, ptr %3465, i64 %3470
  %3472 = load double, ptr %3471, align 8, !tbaa !11
  %3473 = fneg double %3463
  %3474 = call double @llvm.fmuladd.f64(double %3473, double %3464, double %3472)
  store double %3474, ptr %3471, align 8, !tbaa !11
  %3475 = load double, ptr %41, align 8, !tbaa !11
  %3476 = load double, ptr %27, align 8, !tbaa !11
  %3477 = load ptr, ptr %14, align 8, !tbaa !5
  %3478 = load i32, ptr %20, align 4, !tbaa !9
  %3479 = load i32, ptr %17, align 4, !tbaa !9
  %3480 = mul nsw i32 %3479, 7
  %3481 = add nsw i32 %3478, %3480
  %3482 = sext i32 %3481 to i64
  %3483 = getelementptr inbounds double, ptr %3477, i64 %3482
  %3484 = load double, ptr %3483, align 8, !tbaa !11
  %3485 = fneg double %3475
  %3486 = call double @llvm.fmuladd.f64(double %3485, double %3476, double %3484)
  store double %3486, ptr %3483, align 8, !tbaa !11
  %3487 = load double, ptr %41, align 8, !tbaa !11
  %3488 = load double, ptr %28, align 8, !tbaa !11
  %3489 = load ptr, ptr %14, align 8, !tbaa !5
  %3490 = load i32, ptr %20, align 4, !tbaa !9
  %3491 = load i32, ptr %17, align 4, !tbaa !9
  %3492 = shl i32 %3491, 3
  %3493 = add nsw i32 %3490, %3492
  %3494 = sext i32 %3493 to i64
  %3495 = getelementptr inbounds double, ptr %3489, i64 %3494
  %3496 = load double, ptr %3495, align 8, !tbaa !11
  %3497 = fneg double %3487
  %3498 = call double @llvm.fmuladd.f64(double %3497, double %3488, double %3496)
  store double %3498, ptr %3495, align 8, !tbaa !11
  %3499 = load double, ptr %41, align 8, !tbaa !11
  %3500 = load double, ptr %29, align 8, !tbaa !11
  %3501 = load ptr, ptr %14, align 8, !tbaa !5
  %3502 = load i32, ptr %20, align 4, !tbaa !9
  %3503 = load i32, ptr %17, align 4, !tbaa !9
  %3504 = mul nsw i32 %3503, 9
  %3505 = add nsw i32 %3502, %3504
  %3506 = sext i32 %3505 to i64
  %3507 = getelementptr inbounds double, ptr %3501, i64 %3506
  %3508 = load double, ptr %3507, align 8, !tbaa !11
  %3509 = fneg double %3499
  %3510 = call double @llvm.fmuladd.f64(double %3509, double %3500, double %3508)
  store double %3510, ptr %3507, align 8, !tbaa !11
  %3511 = load double, ptr %41, align 8, !tbaa !11
  %3512 = load double, ptr %39, align 8, !tbaa !11
  %3513 = load ptr, ptr %14, align 8, !tbaa !5
  %3514 = load i32, ptr %20, align 4, !tbaa !9
  %3515 = load i32, ptr %17, align 4, !tbaa !9
  %3516 = mul nsw i32 %3515, 10
  %3517 = add nsw i32 %3514, %3516
  %3518 = sext i32 %3517 to i64
  %3519 = getelementptr inbounds double, ptr %3513, i64 %3518
  %3520 = load double, ptr %3519, align 8, !tbaa !11
  %3521 = fneg double %3511
  %3522 = call double @llvm.fmuladd.f64(double %3521, double %3512, double %3520)
  store double %3522, ptr %3519, align 8, !tbaa !11
  br label %3523

3523:                                             ; preds = %3304
  %3524 = load i32, ptr %20, align 4, !tbaa !9
  %3525 = add nsw i32 %3524, 1
  store i32 %3525, ptr %20, align 4, !tbaa !9
  br label %3300, !llvm.loop !33

3526:                                             ; preds = %3300
  br label %3527

3527:                                             ; preds = %3526, %3226, %2955, %2713, %2500, %2316, %2161, %2035, %1938, %1870, %1819, %1805, %1503, %1230, %986, %771, %585, %428, %300, %201, %131, %78
  store i32 1, ptr %42, align 4
  br label %3528

3528:                                             ; preds = %3527, %60
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  ret void
}

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

declare i32 @lsame_(ptr noundef, ptr noundef) #2

declare void @dlarf_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { 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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}


; 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"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @dlarfx_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) local_unnamed_addr #0 {
  %9 = load i32, ptr %6, align 4, !tbaa !5
  %narrow = xor i32 %9, -1
  %10 = sext i32 %narrow to i64
  %11 = getelementptr inbounds double, ptr %5, i64 %10
  %12 = load double, ptr %4, align 8, !tbaa !9
  %13 = fcmp oeq double %12, 0.000000e+00
  br i1 %13, label %.loopexit, label %14

14:                                               ; preds = %8
  %15 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %.not = icmp eq i32 %15, 0
  br i1 %.not, label %480, label %16

16:                                               ; preds = %14
  %17 = load i32, ptr %1, align 4, !tbaa !5
  switch i32 %17, label %18 [
    i32 1, label %19
    i32 2, label %53
    i32 3, label %84
    i32 4, label %113
    i32 5, label %147
    i32 6, label %188
    i32 7, label %234
    i32 8, label %287
    i32 9, label %345
    i32 10, label %410
  ]

18:                                               ; preds = %16
  tail call void @dlarf_(ptr noundef %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7) #4
  br label %.loopexit

19:                                               ; preds = %16
  %20 = load double, ptr %4, align 8, !tbaa !9
  %21 = load double, ptr %3, align 8, !tbaa !9
  %22 = fneg double %20
  %23 = fmul double %21, %22
  %24 = tail call double @llvm.fmuladd.f64(double %23, double %21, double 1.000000e+00)
  %25 = load i32, ptr %2, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %11, i64 8
  %.not14421488 = icmp slt i32 %25, 1
  br i1 %.not14421488, label %.loopexit, label %.lr.ph1490.preheader

.lr.ph1490.preheader:                             ; preds = %19
  %26 = sext i32 %9 to i64
  %27 = add nuw i32 %25, 1
  %wide.trip.count1584 = zext i32 %27 to i64
  %28 = zext nneg i32 %25 to i64
  %min.iters.check = icmp ugt i32 %25, 3
  %ident.check.not = icmp eq i32 %9, 1
  %or.cond = select i1 %min.iters.check, i1 %ident.check.not, i1 false
  br i1 %or.cond, label %vector.ph, label %.lr.ph1490.preheader3006

vector.ph:                                        ; preds = %.lr.ph1490.preheader
  %n.vec = and i64 %28, 2147483644
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <2 x double> poison, double %24, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %29 = getelementptr double, ptr %invariant.gep, i64 %offset.idx
  %30 = getelementptr i8, ptr %29, i64 16
  %wide.load = load <2 x double>, ptr %29, align 8, !tbaa !9
  %wide.load1784 = load <2 x double>, ptr %30, align 8, !tbaa !9
  %31 = fmul <2 x double> %broadcast.splat, %wide.load
  %32 = fmul <2 x double> %broadcast.splat, %wide.load1784
  store <2 x double> %31, ptr %29, align 8, !tbaa !9
  store <2 x double> %32, ptr %30, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %33 = icmp eq i64 %index.next, %n.vec
  br i1 %33, label %middle.block, label %vector.body, !llvm.loop !11

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %28
  br i1 %cmp.n, label %.loopexit, label %.lr.ph1490.preheader3006

.lr.ph1490.preheader3006:                         ; preds = %middle.block, %.lr.ph1490.preheader
  %indvars.iv1581.ph = phi i64 [ 1, %.lr.ph1490.preheader ], [ %ind.end, %middle.block ]
  %34 = sub nsw i64 %wide.trip.count1584, %indvars.iv1581.ph
  %35 = zext nneg i32 %25 to i64
  %36 = sub nsw i64 %35, %indvars.iv1581.ph
  %xtraiter3017 = and i64 %34, 3
  %lcmp.mod3018.not = icmp eq i64 %xtraiter3017, 0
  br i1 %lcmp.mod3018.not, label %.lr.ph1490.prol.loopexit, label %.lr.ph1490.prol

.lr.ph1490.prol:                                  ; preds = %.lr.ph1490.preheader3006, %.lr.ph1490.prol
  %indvars.iv1581.prol = phi i64 [ %indvars.iv.next1582.prol, %.lr.ph1490.prol ], [ %indvars.iv1581.ph, %.lr.ph1490.preheader3006 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1490.prol ], [ 0, %.lr.ph1490.preheader3006 ]
  %37 = mul nsw i64 %indvars.iv1581.prol, %26
  %gep.prol = getelementptr double, ptr %invariant.gep, i64 %37
  %38 = load double, ptr %gep.prol, align 8, !tbaa !9
  %39 = fmul double %24, %38
  store double %39, ptr %gep.prol, align 8, !tbaa !9
  %indvars.iv.next1582.prol = add nuw nsw i64 %indvars.iv1581.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter3017
  br i1 %prol.iter.cmp.not, label %.lr.ph1490.prol.loopexit, label %.lr.ph1490.prol, !llvm.loop !15

.lr.ph1490.prol.loopexit:                         ; preds = %.lr.ph1490.prol, %.lr.ph1490.preheader3006
  %indvars.iv1581.unr = phi i64 [ %indvars.iv1581.ph, %.lr.ph1490.preheader3006 ], [ %indvars.iv.next1582.prol, %.lr.ph1490.prol ]
  %40 = icmp ult i64 %36, 3
  br i1 %40, label %.loopexit, label %.lr.ph1490

.lr.ph1490:                                       ; preds = %.lr.ph1490.prol.loopexit, %.lr.ph1490
  %indvars.iv1581 = phi i64 [ %indvars.iv.next1582.3, %.lr.ph1490 ], [ %indvars.iv1581.unr, %.lr.ph1490.prol.loopexit ]
  %41 = mul nsw i64 %indvars.iv1581, %26
  %gep = getelementptr double, ptr %invariant.gep, i64 %41
  %42 = load double, ptr %gep, align 8, !tbaa !9
  %43 = fmul double %24, %42
  store double %43, ptr %gep, align 8, !tbaa !9
  %indvars.iv.next1582 = add nuw nsw i64 %indvars.iv1581, 1
  %44 = mul nsw i64 %indvars.iv.next1582, %26
  %gep.1 = getelementptr double, ptr %invariant.gep, i64 %44
  %45 = load double, ptr %gep.1, align 8, !tbaa !9
  %46 = fmul double %24, %45
  store double %46, ptr %gep.1, align 8, !tbaa !9
  %indvars.iv.next1582.1 = add nuw nsw i64 %indvars.iv1581, 2
  %47 = mul nsw i64 %indvars.iv.next1582.1, %26
  %gep.2 = getelementptr double, ptr %invariant.gep, i64 %47
  %48 = load double, ptr %gep.2, align 8, !tbaa !9
  %49 = fmul double %24, %48
  store double %49, ptr %gep.2, align 8, !tbaa !9
  %indvars.iv.next1582.2 = add nuw nsw i64 %indvars.iv1581, 3
  %50 = mul nsw i64 %indvars.iv.next1582.2, %26
  %gep.3 = getelementptr double, ptr %invariant.gep, i64 %50
  %51 = load double, ptr %gep.3, align 8, !tbaa !9
  %52 = fmul double %24, %51
  store double %52, ptr %gep.3, align 8, !tbaa !9
  %indvars.iv.next1582.3 = add nuw nsw i64 %indvars.iv1581, 4
  %exitcond1585.not.3 = icmp eq i64 %indvars.iv.next1582.3, %wide.trip.count1584
  br i1 %exitcond1585.not.3, label %.loopexit, label %.lr.ph1490, !llvm.loop !17

53:                                               ; preds = %16
  %54 = load double, ptr %4, align 8, !tbaa !9
  %55 = load <2 x double>, ptr %3, align 8, !tbaa !9
  %56 = insertelement <2 x double> poison, double %54, i64 0
  %57 = shufflevector <2 x double> %56, <2 x double> poison, <2 x i32> zeroinitializer
  %58 = fmul <2 x double> %57, %55
  %59 = load i32, ptr %2, align 4, !tbaa !5
  %.not14411485 = icmp slt i32 %59, 1
  br i1 %.not14411485, label %.loopexit, label %.lr.ph1487.preheader

.lr.ph1487.preheader:                             ; preds = %53
  %60 = sext i32 %9 to i64
  %61 = extractelement <2 x double> %55, i64 0
  %62 = zext nneg i32 %59 to i64
  %xtraiter = and i64 %62, 1
  %63 = icmp eq i32 %59, 1
  br i1 %63, label %.loopexit.loopexit3008.unr-lcssa, label %.lr.ph1487.preheader.new

.lr.ph1487.preheader.new:                         ; preds = %.lr.ph1487.preheader
  %unroll_iter = and i64 %62, 2147483646
  %invariant.gep3019 = getelementptr i8, ptr %11, i64 8
  %invariant.gep3021 = getelementptr i8, ptr %11, i64 8
  br label %.lr.ph1487

.lr.ph1487:                                       ; preds = %.lr.ph1487, %.lr.ph1487.preheader.new
  %indvars.iv1576 = phi i64 [ 1, %.lr.ph1487.preheader.new ], [ %indvars.iv.next1577.1, %.lr.ph1487 ]
  %niter = phi i64 [ 0, %.lr.ph1487.preheader.new ], [ %niter.next.1, %.lr.ph1487 ]
  %64 = mul nsw i64 %indvars.iv1576, %60
  %gep3020 = getelementptr double, ptr %invariant.gep3019, i64 %64
  %65 = load <2 x double>, ptr %gep3020, align 8, !tbaa !9
  %66 = fmul <2 x double> %55, %65
  %67 = extractelement <2 x double> %66, i64 1
  %68 = extractelement <2 x double> %65, i64 0
  %69 = tail call double @llvm.fmuladd.f64(double %61, double %68, double %67)
  %70 = fneg double %69
  %71 = insertelement <2 x double> poison, double %70, i64 0
  %72 = shufflevector <2 x double> %71, <2 x double> poison, <2 x i32> zeroinitializer
  %73 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %72, <2 x double> %58, <2 x double> %65)
  store <2 x double> %73, ptr %gep3020, align 8, !tbaa !9
  %indvars.iv.next1577 = add nuw nsw i64 %indvars.iv1576, 1
  %74 = mul nsw i64 %indvars.iv.next1577, %60
  %gep3022 = getelementptr double, ptr %invariant.gep3021, i64 %74
  %75 = load <2 x double>, ptr %gep3022, align 8, !tbaa !9
  %76 = fmul <2 x double> %55, %75
  %77 = extractelement <2 x double> %76, i64 1
  %78 = extractelement <2 x double> %75, i64 0
  %79 = tail call double @llvm.fmuladd.f64(double %61, double %78, double %77)
  %80 = fneg double %79
  %81 = insertelement <2 x double> poison, double %80, i64 0
  %82 = shufflevector <2 x double> %81, <2 x double> poison, <2 x i32> zeroinitializer
  %83 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %82, <2 x double> %58, <2 x double> %75)
  store <2 x double> %83, ptr %gep3022, align 8, !tbaa !9
  %indvars.iv.next1577.1 = add nuw nsw i64 %indvars.iv1576, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.loopexit.loopexit3008.unr-lcssa, label %.lr.ph1487, !llvm.loop !18

84:                                               ; preds = %16
  %85 = load double, ptr %4, align 8, !tbaa !9
  %86 = load <2 x double>, ptr %3, align 8, !tbaa !9
  %87 = insertelement <2 x double> poison, double %85, i64 0
  %88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer
  %89 = fmul <2 x double> %88, %86
  %90 = getelementptr inbounds i8, ptr %3, i64 16
  %91 = load double, ptr %90, align 8, !tbaa !9
  %92 = fmul double %85, %91
  %93 = load i32, ptr %2, align 4, !tbaa !5
  %.not14401482 = icmp slt i32 %93, 1
  br i1 %.not14401482, label %.loopexit, label %.lr.ph1484.preheader

.lr.ph1484.preheader:                             ; preds = %84
  %94 = sext i32 %9 to i64
  %95 = add nuw i32 %93, 1
  %wide.trip.count1574 = zext i32 %95 to i64
  %96 = extractelement <2 x double> %86, i64 0
  br label %.lr.ph1484

.lr.ph1484:                                       ; preds = %.lr.ph1484.preheader, %.lr.ph1484
  %indvars.iv1571 = phi i64 [ 1, %.lr.ph1484.preheader ], [ %indvars.iv.next1572, %.lr.ph1484 ]
  %97 = mul nsw i64 %indvars.iv1571, %94
  %98 = getelementptr double, ptr %11, i64 %97
  %99 = getelementptr i8, ptr %98, i64 8
  %100 = getelementptr i8, ptr %98, i64 24
  %101 = load double, ptr %100, align 8, !tbaa !9
  %102 = load <2 x double>, ptr %99, align 8, !tbaa !9
  %103 = fmul <2 x double> %86, %102
  %104 = extractelement <2 x double> %103, i64 1
  %105 = extractelement <2 x double> %102, i64 0
  %106 = tail call double @llvm.fmuladd.f64(double %96, double %105, double %104)
  %107 = tail call double @llvm.fmuladd.f64(double %91, double %101, double %106)
  %108 = fneg double %107
  %109 = insertelement <2 x double> poison, double %108, i64 0
  %110 = shufflevector <2 x double> %109, <2 x double> poison, <2 x i32> zeroinitializer
  %111 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %110, <2 x double> %89, <2 x double> %102)
  store <2 x double> %111, ptr %99, align 8, !tbaa !9
  %112 = tail call double @llvm.fmuladd.f64(double %108, double %92, double %101)
  store double %112, ptr %100, align 8, !tbaa !9
  %indvars.iv.next1572 = add nuw nsw i64 %indvars.iv1571, 1
  %exitcond1575.not = icmp eq i64 %indvars.iv.next1572, %wide.trip.count1574
  br i1 %exitcond1575.not, label %.loopexit, label %.lr.ph1484, !llvm.loop !19

113:                                              ; preds = %16
  %114 = load double, ptr %4, align 8, !tbaa !9
  %115 = load <2 x double>, ptr %3, align 8, !tbaa !9
  %116 = insertelement <2 x double> poison, double %114, i64 0
  %117 = shufflevector <2 x double> %116, <2 x double> poison, <2 x i32> zeroinitializer
  %118 = fmul <2 x double> %117, %115
  %119 = getelementptr inbounds i8, ptr %3, i64 16
  %120 = load <2 x double>, ptr %119, align 8, !tbaa !9
  %121 = fmul <2 x double> %117, %120
  %122 = load i32, ptr %2, align 4, !tbaa !5
  %.not14391479 = icmp slt i32 %122, 1
  br i1 %.not14391479, label %.loopexit, label %.lr.ph1481.preheader

.lr.ph1481.preheader:                             ; preds = %113
  %123 = sext i32 %9 to i64
  %124 = add nuw i32 %122, 1
  %wide.trip.count1569 = zext i32 %124 to i64
  %125 = extractelement <2 x double> %115, i64 0
  %126 = extractelement <2 x double> %120, i64 0
  %127 = extractelement <2 x double> %120, i64 1
  br label %.lr.ph1481

.lr.ph1481:                                       ; preds = %.lr.ph1481.preheader, %.lr.ph1481
  %indvars.iv1566 = phi i64 [ 1, %.lr.ph1481.preheader ], [ %indvars.iv.next1567, %.lr.ph1481 ]
  %128 = mul nsw i64 %indvars.iv1566, %123
  %129 = getelementptr double, ptr %11, i64 %128
  %130 = getelementptr i8, ptr %129, i64 8
  %131 = getelementptr i8, ptr %129, i64 24
  %132 = load <2 x double>, ptr %130, align 8, !tbaa !9
  %133 = fmul <2 x double> %115, %132
  %134 = extractelement <2 x double> %133, i64 1
  %135 = extractelement <2 x double> %132, i64 0
  %136 = tail call double @llvm.fmuladd.f64(double %125, double %135, double %134)
  %137 = load <2 x double>, ptr %131, align 8, !tbaa !9
  %138 = extractelement <2 x double> %137, i64 0
  %139 = tail call double @llvm.fmuladd.f64(double %126, double %138, double %136)
  %140 = extractelement <2 x double> %137, i64 1
  %141 = tail call double @llvm.fmuladd.f64(double %127, double %140, double %139)
  %142 = fneg double %141
  %143 = insertelement <2 x double> poison, double %142, i64 0
  %144 = shufflevector <2 x double> %143, <2 x double> poison, <2 x i32> zeroinitializer
  %145 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %118, <2 x double> %132)
  store <2 x double> %145, ptr %130, align 8, !tbaa !9
  %146 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %121, <2 x double> %137)
  store <2 x double> %146, ptr %131, align 8, !tbaa !9
  %indvars.iv.next1567 = add nuw nsw i64 %indvars.iv1566, 1
  %exitcond1570.not = icmp eq i64 %indvars.iv.next1567, %wide.trip.count1569
  br i1 %exitcond1570.not, label %.loopexit, label %.lr.ph1481, !llvm.loop !20

147:                                              ; preds = %16
  %148 = load double, ptr %4, align 8, !tbaa !9
  %149 = load <2 x double>, ptr %3, align 8, !tbaa !9
  %150 = insertelement <2 x double> poison, double %148, i64 0
  %151 = shufflevector <2 x double> %150, <2 x double> poison, <2 x i32> zeroinitializer
  %152 = fmul <2 x double> %151, %149
  %153 = getelementptr inbounds i8, ptr %3, i64 16
  %154 = load <2 x double>, ptr %153, align 8, !tbaa !9
  %155 = fmul <2 x double> %151, %154
  %156 = getelementptr inbounds i8, ptr %3, i64 32
  %157 = load double, ptr %156, align 8, !tbaa !9
  %158 = fmul double %148, %157
  %159 = load i32, ptr %2, align 4, !tbaa !5
  %.not14381476 = icmp slt i32 %159, 1
  br i1 %.not14381476, label %.loopexit, label %.lr.ph1478.preheader

.lr.ph1478.preheader:                             ; preds = %147
  %160 = sext i32 %9 to i64
  %161 = add nuw i32 %159, 1
  %wide.trip.count1564 = zext i32 %161 to i64
  %162 = extractelement <2 x double> %149, i64 0
  %163 = extractelement <2 x double> %154, i64 0
  %164 = extractelement <2 x double> %154, i64 1
  br label %.lr.ph1478

.lr.ph1478:                                       ; preds = %.lr.ph1478.preheader, %.lr.ph1478
  %indvars.iv1561 = phi i64 [ 1, %.lr.ph1478.preheader ], [ %indvars.iv.next1562, %.lr.ph1478 ]
  %165 = mul nsw i64 %indvars.iv1561, %160
  %166 = getelementptr double, ptr %11, i64 %165
  %167 = getelementptr i8, ptr %166, i64 8
  %168 = getelementptr i8, ptr %166, i64 24
  %169 = getelementptr i8, ptr %166, i64 40
  %170 = load double, ptr %169, align 8, !tbaa !9
  %171 = load <2 x double>, ptr %167, align 8, !tbaa !9
  %172 = fmul <2 x double> %149, %171
  %173 = extractelement <2 x double> %172, i64 1
  %174 = extractelement <2 x double> %171, i64 0
  %175 = tail call double @llvm.fmuladd.f64(double %162, double %174, double %173)
  %176 = load <2 x double>, ptr %168, align 8, !tbaa !9
  %177 = extractelement <2 x double> %176, i64 0
  %178 = tail call double @llvm.fmuladd.f64(double %163, double %177, double %175)
  %179 = extractelement <2 x double> %176, i64 1
  %180 = tail call double @llvm.fmuladd.f64(double %164, double %179, double %178)
  %181 = tail call double @llvm.fmuladd.f64(double %157, double %170, double %180)
  %182 = fneg double %181
  %183 = insertelement <2 x double> poison, double %182, i64 0
  %184 = shufflevector <2 x double> %183, <2 x double> poison, <2 x i32> zeroinitializer
  %185 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %184, <2 x double> %152, <2 x double> %171)
  store <2 x double> %185, ptr %167, align 8, !tbaa !9
  %186 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %184, <2 x double> %155, <2 x double> %176)
  store <2 x double> %186, ptr %168, align 8, !tbaa !9
  %187 = tail call double @llvm.fmuladd.f64(double %182, double %158, double %170)
  store double %187, ptr %169, align 8, !tbaa !9
  %indvars.iv.next1562 = add nuw nsw i64 %indvars.iv1561, 1
  %exitcond1565.not = icmp eq i64 %indvars.iv.next1562, %wide.trip.count1564
  br i1 %exitcond1565.not, label %.loopexit, label %.lr.ph1478, !llvm.loop !21

188:                                              ; preds = %16
  %189 = load double, ptr %4, align 8, !tbaa !9
  %190 = load <2 x double>, ptr %3, align 8, !tbaa !9
  %191 = insertelement <2 x double> poison, double %189, i64 0
  %192 = shufflevector <2 x double> %191, <2 x double> poison, <2 x i32> zeroinitializer
  %193 = fmul <2 x double> %192, %190
  %194 = getelementptr inbounds i8, ptr %3, i64 16
  %195 = load <2 x double>, ptr %194, align 8, !tbaa !9
  %196 = fmul <2 x double> %192, %195
  %197 = getelementptr inbounds i8, ptr %3, i64 32
  %198 = load <2 x double>, ptr %197, align 8, !tbaa !9
  %199 = fmul <2 x double> %192, %198
  %200 = load i32, ptr %2, align 4, !tbaa !5
  %.not14371473 = icmp slt i32 %200, 1
  br i1 %.not14371473, label %.loopexit, label %.lr.ph1475.preheader

.lr.ph1475.preheader:                             ; preds = %188
  %201 = sext i32 %9 to i64
  %202 = add nuw i32 %200, 1
  %wide.trip.count1559 = zext i32 %202 to i64
  %203 = extractelement <2 x double> %190, i64 0
  %204 = extractelement <2 x double> %195, i64 0
  %205 = extractelement <2 x double> %195, i64 1
  %206 = extractelement <2 x double> %198, i64 0
  %207 = extractelement <2 x double> %198, i64 1
  br label %.lr.ph1475

.lr.ph1475:                                       ; preds = %.lr.ph1475.preheader, %.lr.ph1475
  %indvars.iv1556 = phi i64 [ 1, %.lr.ph1475.preheader ], [ %indvars.iv.next1557, %.lr.ph1475 ]
  %208 = mul nsw i64 %indvars.iv1556, %201
  %209 = getelementptr double, ptr %11, i64 %208
  %210 = getelementptr i8, ptr %209, i64 8
  %211 = getelementptr i8, ptr %209, i64 24
  %212 = getelementptr i8, ptr %209, i64 40
  %213 = load <2 x double>, ptr %210, align 8, !tbaa !9
  %214 = fmul <2 x double> %190, %213
  %215 = extractelement <2 x double> %214, i64 1
  %216 = extractelement <2 x double> %213, i64 0
  %217 = tail call double @llvm.fmuladd.f64(double %203, double %216, double %215)
  %218 = load <2 x double>, ptr %211, align 8, !tbaa !9
  %219 = extractelement <2 x double> %218, i64 0
  %220 = tail call double @llvm.fmuladd.f64(double %204, double %219, double %217)
  %221 = extractelement <2 x double> %218, i64 1
  %222 = tail call double @llvm.fmuladd.f64(double %205, double %221, double %220)
  %223 = load <2 x double>, ptr %212, align 8, !tbaa !9
  %224 = extractelement <2 x double> %223, i64 0
  %225 = tail call double @llvm.fmuladd.f64(double %206, double %224, double %222)
  %226 = extractelement <2 x double> %223, i64 1
  %227 = tail call double @llvm.fmuladd.f64(double %207, double %226, double %225)
  %228 = fneg double %227
  %229 = insertelement <2 x double> poison, double %228, i64 0
  %230 = shufflevector <2 x double> %229, <2 x double> poison, <2 x i32> zeroinitializer
  %231 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %230, <2 x double> %193, <2 x double> %213)
  store <2 x double> %231, ptr %210, align 8, !tbaa !9
  %232 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %230, <2 x double> %196, <2 x double> %218)
  store <2 x double> %232, ptr %211, align 8, !tbaa !9
  %233 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %230, <2 x double> %199, <2 x double> %223)
  store <2 x double> %233, ptr %212, align 8, !tbaa !9
  %indvars.iv.next1557 = add nuw nsw i64 %indvars.iv1556, 1
  %exitcond1560.not = icmp eq i64 %indvars.iv.next1557, %wide.trip.count1559
  br i1 %exitcond1560.not, label %.loopexit, label %.lr.ph1475, !llvm.loop !22

234:                                              ; preds = %16
  %235 = load double, ptr %4, align 8, !tbaa !9
  %236 = load <2 x double>, ptr %3, align 8, !tbaa !9
  %237 = insertelement <2 x double> poison, double %235, i64 0
  %238 = shufflevector <2 x double> %237, <2 x double> poison, <2 x i32> zeroinitializer
  %239 = fmul <2 x double> %238, %236
  %240 = getelementptr inbounds i8, ptr %3, i64 16
  %241 = load <2 x double>, ptr %240, align 8, !tbaa !9
  %242 = fmul <2 x double> %238, %241
  %243 = getelementptr inbounds i8, ptr %3, i64 32
  %244 = load <2 x double>, ptr %243, align 8, !tbaa !9
  %245 = fmul <2 x double> %238, %244
  %246 = getelementptr inbounds i8, ptr %3, i64 48
  %247 = load double, ptr %246, align 8, !tbaa !9
  %248 = fmul double %235, %247
  %249 = load i32, ptr %2, align 4, !tbaa !5
  %.not14361470 = icmp slt i32 %249, 1
  br i1 %.not14361470, label %.loopexit, label %.lr.ph1472.preheader

.lr.ph1472.preheader:                             ; preds = %234
  %250 = sext i32 %9 to i64
  %251 = add nuw i32 %249, 1
  %wide.trip.count1554 = zext i32 %251 to i64
  %252 = extractelement <2 x double> %236, i64 0
  %253 = extractelement <2 x double> %241, i64 0
  %254 = extractelement <2 x double> %241, i64 1
  %255 = extractelement <2 x double> %244, i64 0
  %256 = extractelement <2 x double> %244, i64 1
  br label %.lr.ph1472

.lr.ph1472:                                       ; preds = %.lr.ph1472.preheader, %.lr.ph1472
  %indvars.iv1551 = phi i64 [ 1, %.lr.ph1472.preheader ], [ %indvars.iv.next1552, %.lr.ph1472 ]
  %257 = mul nsw i64 %indvars.iv1551, %250
  %258 = getelementptr double, ptr %11, i64 %257
  %259 = getelementptr i8, ptr %258, i64 8
  %260 = getelementptr i8, ptr %258, i64 24
  %261 = getelementptr i8, ptr %258, i64 40
  %262 = getelementptr i8, ptr %258, i64 56
  %263 = load double, ptr %262, align 8, !tbaa !9
  %264 = load <2 x double>, ptr %259, align 8, !tbaa !9
  %265 = fmul <2 x double> %236, %264
  %266 = extractelement <2 x double> %265, i64 1
  %267 = extractelement <2 x double> %264, i64 0
  %268 = tail call double @llvm.fmuladd.f64(double %252, double %267, double %266)
  %269 = load <2 x double>, ptr %260, align 8, !tbaa !9
  %270 = extractelement <2 x double> %269, i64 0
  %271 = tail call double @llvm.fmuladd.f64(double %253, double %270, double %268)
  %272 = extractelement <2 x double> %269, i64 1
  %273 = tail call double @llvm.fmuladd.f64(double %254, double %272, double %271)
  %274 = load <2 x double>, ptr %261, align 8, !tbaa !9
  %275 = extractelement <2 x double> %274, i64 0
  %276 = tail call double @llvm.fmuladd.f64(double %255, double %275, double %273)
  %277 = extractelement <2 x double> %274, i64 1
  %278 = tail call double @llvm.fmuladd.f64(double %256, double %277, double %276)
  %279 = tail call double @llvm.fmuladd.f64(double %247, double %263, double %278)
  %280 = fneg double %279
  %281 = insertelement <2 x double> poison, double %280, i64 0
  %282 = shufflevector <2 x double> %281, <2 x double> poison, <2 x i32> zeroinitializer
  %283 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %282, <2 x double> %239, <2 x double> %264)
  store <2 x double> %283, ptr %259, align 8, !tbaa !9
  %284 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %282, <2 x double> %242, <2 x double> %269)
  store <2 x double> %284, ptr %260, align 8, !tbaa !9
  %285 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %282, <2 x double> %245, <2 x double> %274)
  store <2 x double> %285, ptr %261, align 8, !tbaa !9
  %286 = tail call double @llvm.fmuladd.f64(double %280, double %248, double %263)
  store double %286, ptr %262, align 8, !tbaa !9
  %indvars.iv.next1552 = add nuw nsw i64 %indvars.iv1551, 1
  %exitcond1555.not = icmp eq i64 %indvars.iv.next1552, %wide.trip.count1554
  br i1 %exitcond1555.not, label %.loopexit, label %.lr.ph1472, !llvm.loop !23

287:                                              ; preds = %16
  %288 = load double, ptr %4, align 8, !tbaa !9
  %289 = load <2 x double>, ptr %3, align 8, !tbaa !9
  %290 = insertelement <2 x double> poison, double %288, i64 0
  %291 = shufflevector <2 x double> %290, <2 x double> poison, <2 x i32> zeroinitializer
  %292 = fmul <2 x double> %291, %289
  %293 = getelementptr inbounds i8, ptr %3, i64 16
  %294 = load <2 x double>, ptr %293, align 8, !tbaa !9
  %295 = fmul <2 x double> %291, %294
  %296 = getelementptr inbounds i8, ptr %3, i64 32
  %297 = load <2 x double>, ptr %296, align 8, !tbaa !9
  %298 = fmul <2 x double> %291, %297
  %299 = getelementptr inbounds i8, ptr %3, i64 48
  %300 = load <2 x double>, ptr %299, align 8, !tbaa !9
  %301 = fmul <2 x double> %291, %300
  %302 = load i32, ptr %2, align 4, !tbaa !5
  %.not14351467 = icmp slt i32 %302, 1
  br i1 %.not14351467, label %.loopexit, label %.lr.ph1469.preheader

.lr.ph1469.preheader:                             ; preds = %287
  %303 = sext i32 %9 to i64
  %304 = add nuw i32 %302, 1
  %wide.trip.count1549 = zext i32 %304 to i64
  %305 = extractelement <2 x double> %289, i64 0
  %306 = extractelement <2 x double> %294, i64 0
  %307 = extractelement <2 x double> %294, i64 1
  %308 = extractelement <2 x double> %297, i64 0
  %309 = extractelement <2 x double> %297, i64 1
  %310 = extractelement <2 x double> %300, i64 0
  %311 = extractelement <2 x double> %300, i64 1
  br label %.lr.ph1469

.lr.ph1469:                                       ; preds = %.lr.ph1469.preheader, %.lr.ph1469
  %indvars.iv1546 = phi i64 [ 1, %.lr.ph1469.preheader ], [ %indvars.iv.next1547, %.lr.ph1469 ]
  %312 = mul nsw i64 %indvars.iv1546, %303
  %313 = getelementptr double, ptr %11, i64 %312
  %314 = getelementptr i8, ptr %313, i64 8
  %315 = getelementptr i8, ptr %313, i64 24
  %316 = getelementptr i8, ptr %313, i64 40
  %317 = getelementptr i8, ptr %313, i64 56
  %318 = load <2 x double>, ptr %314, align 8, !tbaa !9
  %319 = fmul <2 x double> %289, %318
  %320 = extractelement <2 x double> %319, i64 1
  %321 = extractelement <2 x double> %318, i64 0
  %322 = tail call double @llvm.fmuladd.f64(double %305, double %321, double %320)
  %323 = load <2 x double>, ptr %315, align 8, !tbaa !9
  %324 = extractelement <2 x double> %323, i64 0
  %325 = tail call double @llvm.fmuladd.f64(double %306, double %324, double %322)
  %326 = extractelement <2 x double> %323, i64 1
  %327 = tail call double @llvm.fmuladd.f64(double %307, double %326, double %325)
  %328 = load <2 x double>, ptr %316, align 8, !tbaa !9
  %329 = extractelement <2 x double> %328, i64 0
  %330 = tail call double @llvm.fmuladd.f64(double %308, double %329, double %327)
  %331 = extractelement <2 x double> %328, i64 1
  %332 = tail call double @llvm.fmuladd.f64(double %309, double %331, double %330)
  %333 = load <2 x double>, ptr %317, align 8, !tbaa !9
  %334 = extractelement <2 x double> %333, i64 0
  %335 = tail call double @llvm.fmuladd.f64(double %310, double %334, double %332)
  %336 = extractelement <2 x double> %333, i64 1
  %337 = tail call double @llvm.fmuladd.f64(double %311, double %336, double %335)
  %338 = fneg double %337
  %339 = insertelement <2 x double> poison, double %338, i64 0
  %340 = shufflevector <2 x double> %339, <2 x double> poison, <2 x i32> zeroinitializer
  %341 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %340, <2 x double> %292, <2 x double> %318)
  store <2 x double> %341, ptr %314, align 8, !tbaa !9
  %342 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %340, <2 x double> %295, <2 x double> %323)
  store <2 x double> %342, ptr %315, align 8, !tbaa !9
  %343 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %340, <2 x double> %298, <2 x double> %328)
  store <2 x double> %343, ptr %316, align 8, !tbaa !9
  %344 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %340, <2 x double> %301, <2 x double> %333)
  store <2 x double> %344, ptr %317, align 8, !tbaa !9
  %indvars.iv.next1547 = add nuw nsw i64 %indvars.iv1546, 1
  %exitcond1550.not = icmp eq i64 %indvars.iv.next1547, %wide.trip.count1549
  br i1 %exitcond1550.not, label %.loopexit, label %.lr.ph1469, !llvm.loop !24

345:                                              ; preds = %16
  %346 = load double, ptr %4, align 8, !tbaa !9
  %347 = load <2 x double>, ptr %3, align 8, !tbaa !9
  %348 = insertelement <2 x double> poison, double %346, i64 0
  %349 = shufflevector <2 x double> %348, <2 x double> poison, <2 x i32> zeroinitializer
  %350 = fmul <2 x double> %349, %347
  %351 = getelementptr inbounds i8, ptr %3, i64 16
  %352 = load <2 x double>, ptr %351, align 8, !tbaa !9
  %353 = fmul <2 x double> %349, %352
  %354 = getelementptr inbounds i8, ptr %3, i64 32
  %355 = load <2 x double>, ptr %354, align 8, !tbaa !9
  %356 = fmul <2 x double> %349, %355
  %357 = getelementptr inbounds i8, ptr %3, i64 48
  %358 = load <2 x double>, ptr %357, align 8, !tbaa !9
  %359 = fmul <2 x double> %349, %358
  %360 = getelementptr inbounds i8, ptr %3, i64 64
  %361 = load double, ptr %360, align 8, !tbaa !9
  %362 = fmul double %346, %361
  %363 = load i32, ptr %2, align 4, !tbaa !5
  %.not14341464 = icmp slt i32 %363, 1
  br i1 %.not14341464, label %.loopexit, label %.lr.ph1466.preheader

.lr.ph1466.preheader:                             ; preds = %345
  %364 = sext i32 %9 to i64
  %365 = add nuw i32 %363, 1
  %wide.trip.count1544 = zext i32 %365 to i64
  %366 = extractelement <2 x double> %347, i64 0
  %367 = extractelement <2 x double> %352, i64 0
  %368 = extractelement <2 x double> %352, i64 1
  %369 = extractelement <2 x double> %355, i64 0
  %370 = extractelement <2 x double> %355, i64 1
  %371 = extractelement <2 x double> %358, i64 0
  %372 = extractelement <2 x double> %358, i64 1
  br label %.lr.ph1466

.lr.ph1466:                                       ; preds = %.lr.ph1466.preheader, %.lr.ph1466
  %indvars.iv1541 = phi i64 [ 1, %.lr.ph1466.preheader ], [ %indvars.iv.next1542, %.lr.ph1466 ]
  %373 = mul nsw i64 %indvars.iv1541, %364
  %374 = getelementptr double, ptr %11, i64 %373
  %375 = getelementptr i8, ptr %374, i64 8
  %376 = getelementptr i8, ptr %374, i64 24
  %377 = getelementptr i8, ptr %374, i64 40
  %378 = getelementptr i8, ptr %374, i64 56
  %379 = getelementptr i8, ptr %374, i64 72
  %380 = load double, ptr %379, align 8, !tbaa !9
  %381 = load <2 x double>, ptr %375, align 8, !tbaa !9
  %382 = fmul <2 x double> %347, %381
  %383 = extractelement <2 x double> %382, i64 1
  %384 = extractelement <2 x double> %381, i64 0
  %385 = tail call double @llvm.fmuladd.f64(double %366, double %384, double %383)
  %386 = load <2 x double>, ptr %376, align 8, !tbaa !9
  %387 = extractelement <2 x double> %386, i64 0
  %388 = tail call double @llvm.fmuladd.f64(double %367, double %387, double %385)
  %389 = extractelement <2 x double> %386, i64 1
  %390 = tail call double @llvm.fmuladd.f64(double %368, double %389, double %388)
  %391 = load <2 x double>, ptr %377, align 8, !tbaa !9
  %392 = extractelement <2 x double> %391, i64 0
  %393 = tail call double @llvm.fmuladd.f64(double %369, double %392, double %390)
  %394 = extractelement <2 x double> %391, i64 1
  %395 = tail call double @llvm.fmuladd.f64(double %370, double %394, double %393)
  %396 = load <2 x double>, ptr %378, align 8, !tbaa !9
  %397 = extractelement <2 x double> %396, i64 0
  %398 = tail call double @llvm.fmuladd.f64(double %371, double %397, double %395)
  %399 = extractelement <2 x double> %396, i64 1
  %400 = tail call double @llvm.fmuladd.f64(double %372, double %399, double %398)
  %401 = tail call double @llvm.fmuladd.f64(double %361, double %380, double %400)
  %402 = fneg double %401
  %403 = insertelement <2 x double> poison, double %402, i64 0
  %404 = shufflevector <2 x double> %403, <2 x double> poison, <2 x i32> zeroinitializer
  %405 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %404, <2 x double> %350, <2 x double> %381)
  store <2 x double> %405, ptr %375, align 8, !tbaa !9
  %406 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %404, <2 x double> %353, <2 x double> %386)
  store <2 x double> %406, ptr %376, align 8, !tbaa !9
  %407 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %404, <2 x double> %356, <2 x double> %391)
  store <2 x double> %407, ptr %377, align 8, !tbaa !9
  %408 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %404, <2 x double> %359, <2 x double> %396)
  store <2 x double> %408, ptr %378, align 8, !tbaa !9
  %409 = tail call double @llvm.fmuladd.f64(double %402, double %362, double %380)
  store double %409, ptr %379, align 8, !tbaa !9
  %indvars.iv.next1542 = add nuw nsw i64 %indvars.iv1541, 1
  %exitcond1545.not = icmp eq i64 %indvars.iv.next1542, %wide.trip.count1544
  br i1 %exitcond1545.not, label %.loopexit, label %.lr.ph1466, !llvm.loop !25

410:                                              ; preds = %16
  %411 = load double, ptr %4, align 8, !tbaa !9
  %412 = load <2 x double>, ptr %3, align 8, !tbaa !9
  %413 = insertelement <2 x double> poison, double %411, i64 0
  %414 = shufflevector <2 x double> %413, <2 x double> poison, <2 x i32> zeroinitializer
  %415 = fmul <2 x double> %414, %412
  %416 = getelementptr inbounds i8, ptr %3, i64 16
  %417 = load <2 x double>, ptr %416, align 8, !tbaa !9
  %418 = fmul <2 x double> %414, %417
  %419 = getelementptr inbounds i8, ptr %3, i64 32
  %420 = load <2 x double>, ptr %419, align 8, !tbaa !9
  %421 = fmul <2 x double> %414, %420
  %422 = getelementptr inbounds i8, ptr %3, i64 48
  %423 = load <2 x double>, ptr %422, align 8, !tbaa !9
  %424 = fmul <2 x double> %414, %423
  %425 = getelementptr inbounds i8, ptr %3, i64 64
  %426 = load <2 x double>, ptr %425, align 8, !tbaa !9
  %427 = fmul <2 x double> %414, %426
  %428 = load i32, ptr %2, align 4, !tbaa !5
  %.not14331462 = icmp slt i32 %428, 1
  br i1 %.not14331462, label %.loopexit, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %410
  %429 = sext i32 %9 to i64
  %430 = add nuw i32 %428, 1
  %wide.trip.count = zext i32 %430 to i64
  %431 = extractelement <2 x double> %412, i64 0
  %432 = extractelement <2 x double> %417, i64 0
  %433 = extractelement <2 x double> %417, i64 1
  %434 = extractelement <2 x double> %420, i64 0
  %435 = extractelement <2 x double> %420, i64 1
  %436 = extractelement <2 x double> %423, i64 0
  %437 = extractelement <2 x double> %423, i64 1
  %438 = extractelement <2 x double> %426, i64 0
  %439 = extractelement <2 x double> %426, i64 1
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %440 = mul nsw i64 %indvars.iv, %429
  %441 = getelementptr double, ptr %11, i64 %440
  %442 = getelementptr i8, ptr %441, i64 8
  %443 = getelementptr i8, ptr %441, i64 24
  %444 = getelementptr i8, ptr %441, i64 40
  %445 = getelementptr i8, ptr %441, i64 56
  %446 = getelementptr i8, ptr %441, i64 72
  %447 = load <2 x double>, ptr %442, align 8, !tbaa !9
  %448 = fmul <2 x double> %412, %447
  %449 = extractelement <2 x double> %448, i64 1
  %450 = extractelement <2 x double> %447, i64 0
  %451 = tail call double @llvm.fmuladd.f64(double %431, double %450, double %449)
  %452 = load <2 x double>, ptr %443, align 8, !tbaa !9
  %453 = extractelement <2 x double> %452, i64 0
  %454 = tail call double @llvm.fmuladd.f64(double %432, double %453, double %451)
  %455 = extractelement <2 x double> %452, i64 1
  %456 = tail call double @llvm.fmuladd.f64(double %433, double %455, double %454)
  %457 = load <2 x double>, ptr %444, align 8, !tbaa !9
  %458 = extractelement <2 x double> %457, i64 0
  %459 = tail call double @llvm.fmuladd.f64(double %434, double %458, double %456)
  %460 = extractelement <2 x double> %457, i64 1
  %461 = tail call double @llvm.fmuladd.f64(double %435, double %460, double %459)
  %462 = load <2 x double>, ptr %445, align 8, !tbaa !9
  %463 = extractelement <2 x double> %462, i64 0
  %464 = tail call double @llvm.fmuladd.f64(double %436, double %463, double %461)
  %465 = extractelement <2 x double> %462, i64 1
  %466 = tail call double @llvm.fmuladd.f64(double %437, double %465, double %464)
  %467 = load <2 x double>, ptr %446, align 8, !tbaa !9
  %468 = extractelement <2 x double> %467, i64 0
  %469 = tail call double @llvm.fmuladd.f64(double %438, double %468, double %466)
  %470 = extractelement <2 x double> %467, i64 1
  %471 = tail call double @llvm.fmuladd.f64(double %439, double %470, double %469)
  %472 = fneg double %471
  %473 = insertelement <2 x double> poison, double %472, i64 0
  %474 = shufflevector <2 x double> %473, <2 x double> poison, <2 x i32> zeroinitializer
  %475 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %474, <2 x double> %415, <2 x double> %447)
  store <2 x double> %475, ptr %442, align 8, !tbaa !9
  %476 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %474, <2 x double> %418, <2 x double> %452)
  store <2 x double> %476, ptr %443, align 8, !tbaa !9
  %477 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %474, <2 x double> %421, <2 x double> %457)
  store <2 x double> %477, ptr %444, align 8, !tbaa !9
  %478 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %474, <2 x double> %424, <2 x double> %462)
  store <2 x double> %478, ptr %445, align 8, !tbaa !9
  %479 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %474, <2 x double> %427, <2 x double> %467)
  store <2 x double> %479, ptr %446, align 8, !tbaa !9
  %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 %.loopexit, label %.lr.ph, !llvm.loop !26

480:                                              ; preds = %14
  %481 = load i32, ptr %2, align 4, !tbaa !5
  switch i32 %481, label %482 [
    i32 1, label %483
    i32 2, label %500
    i32 3, label %538
    i32 4, label %592
    i32 5, label %662
    i32 6, label %748
    i32 7, label %850
    i32 8, label %968
    i32 9, label %1102
    i32 10, label %1252
  ]

482:                                              ; preds = %480
  tail call void @dlarf_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7) #4
  br label %.loopexit

483:                                              ; preds = %480
  %484 = load double, ptr %4, align 8, !tbaa !9
  %485 = load double, ptr %3, align 8, !tbaa !9
  %486 = fneg double %484
  %487 = fmul double %485, %486
  %488 = tail call double @llvm.fmuladd.f64(double %487, double %485, double 1.000000e+00)
  %489 = load i32, ptr %1, align 4, !tbaa !5
  %.not14321518 = icmp slt i32 %489, 1
  br i1 %.not14321518, label %.loopexit, label %.lr.ph1520.preheader

.lr.ph1520.preheader:                             ; preds = %483
  %490 = sext i32 %9 to i64
  %491 = add nuw i32 %489, 1
  %wide.trip.count1634 = zext i32 %491 to i64
  %invariant.gep1763 = getelementptr double, ptr %11, i64 %490
  %492 = zext nneg i32 %489 to i64
  %min.iters.check2981 = icmp ult i32 %489, 4
  br i1 %min.iters.check2981, label %.lr.ph1520.preheader2996, label %vector.ph2982

vector.ph2982:                                    ; preds = %.lr.ph1520.preheader
  %n.vec2984 = and i64 %492, 2147483644
  %ind.end2985 = or disjoint i64 %n.vec2984, 1
  %broadcast.splatinsert2992 = insertelement <2 x double> poison, double %488, i64 0
  %broadcast.splat2993 = shufflevector <2 x double> %broadcast.splatinsert2992, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2987

vector.body2987:                                  ; preds = %vector.body2987, %vector.ph2982
  %index2988 = phi i64 [ 0, %vector.ph2982 ], [ %index.next2994, %vector.body2987 ]
  %offset.idx2989 = or disjoint i64 %index2988, 1
  %493 = getelementptr double, ptr %invariant.gep1763, i64 %offset.idx2989
  %494 = getelementptr i8, ptr %493, i64 16
  %wide.load2990 = load <2 x double>, ptr %493, align 8, !tbaa !9
  %wide.load2991 = load <2 x double>, ptr %494, align 8, !tbaa !9
  %495 = fmul <2 x double> %broadcast.splat2993, %wide.load2990
  %496 = fmul <2 x double> %broadcast.splat2993, %wide.load2991
  store <2 x double> %495, ptr %493, align 8, !tbaa !9
  store <2 x double> %496, ptr %494, align 8, !tbaa !9
  %index.next2994 = add nuw i64 %index2988, 4
  %497 = icmp eq i64 %index.next2994, %n.vec2984
  br i1 %497, label %middle.block2979, label %vector.body2987, !llvm.loop !27

middle.block2979:                                 ; preds = %vector.body2987
  %cmp.n2995 = icmp eq i64 %n.vec2984, %492
  br i1 %cmp.n2995, label %.loopexit, label %.lr.ph1520.preheader2996

.lr.ph1520.preheader2996:                         ; preds = %middle.block2979, %.lr.ph1520.preheader
  %indvars.iv1631.ph = phi i64 [ 1, %.lr.ph1520.preheader ], [ %ind.end2985, %middle.block2979 ]
  br label %.lr.ph1520

.lr.ph1520:                                       ; preds = %.lr.ph1520.preheader2996, %.lr.ph1520
  %indvars.iv1631 = phi i64 [ %indvars.iv.next1632, %.lr.ph1520 ], [ %indvars.iv1631.ph, %.lr.ph1520.preheader2996 ]
  %gep1764 = getelementptr double, ptr %invariant.gep1763, i64 %indvars.iv1631
  %498 = load double, ptr %gep1764, align 8, !tbaa !9
  %499 = fmul double %488, %498
  store double %499, ptr %gep1764, align 8, !tbaa !9
  %indvars.iv.next1632 = add nuw nsw i64 %indvars.iv1631, 1
  %exitcond1635.not = icmp eq i64 %indvars.iv.next1632, %wide.trip.count1634
  br i1 %exitcond1635.not, label %.loopexit, label %.lr.ph1520, !llvm.loop !28

500:                                              ; preds = %480
  %501 = load double, ptr %3, align 8, !tbaa !9
  %502 = load double, ptr %4, align 8, !tbaa !9
  %503 = fmul double %501, %502
  %504 = getelementptr inbounds i8, ptr %3, i64 8
  %505 = load double, ptr %504, align 8, !tbaa !9
  %506 = fmul double %502, %505
  %507 = load i32, ptr %1, align 4, !tbaa !5
  %.not14311515 = icmp slt i32 %507, 1
  br i1 %.not14311515, label %.loopexit, label %.lr.ph1517

.lr.ph1517:                                       ; preds = %500
  %508 = shl i32 %9, 1
  %509 = sext i32 %9 to i64
  %510 = sext i32 %508 to i64
  %511 = add nuw i32 %507, 1
  %wide.trip.count1629 = zext i32 %511 to i64
  %invariant.gep1759 = getelementptr double, ptr %11, i64 %509
  %invariant.gep1761 = getelementptr double, ptr %11, i64 %510
  %512 = zext nneg i32 %507 to i64
  %min.iters.check2957 = icmp ult i32 %507, 6
  br i1 %min.iters.check2957, label %scalar.ph2956.preheader, label %vector.memcheck2947

vector.memcheck2947:                              ; preds = %.lr.ph1517
  %513 = add nsw i64 %509, %10
  %514 = shl nsw i64 %513, 3
  %515 = getelementptr i8, ptr %5, i64 %514
  %scevgep2948 = getelementptr i8, ptr %515, i64 8
  %516 = shl nuw nsw i64 %wide.trip.count1629, 3
  %517 = getelementptr i8, ptr %5, i64 %514
  %scevgep2949 = getelementptr i8, ptr %517, i64 %516
  %518 = add nsw i64 %510, %10
  %519 = shl nsw i64 %518, 3
  %520 = getelementptr i8, ptr %5, i64 %519
  %scevgep2950 = getelementptr i8, ptr %520, i64 8
  %521 = getelementptr i8, ptr %5, i64 %519
  %scevgep2951 = getelementptr i8, ptr %521, i64 %516
  %bound02952 = icmp ult ptr %scevgep2948, %scevgep2951
  %bound12953 = icmp ult ptr %scevgep2950, %scevgep2949
  %found.conflict2954 = and i1 %bound02952, %bound12953
  br i1 %found.conflict2954, label %scalar.ph2956.preheader, label %vector.ph2958

vector.ph2958:                                    ; preds = %vector.memcheck2947
  %n.vec2960 = and i64 %512, 2147483646
  %ind.end2961 = or i64 %512, 1
  %broadcast.splatinsert2968 = insertelement <2 x double> poison, double %505, i64 0
  %broadcast.splat2969 = shufflevector <2 x double> %broadcast.splatinsert2968, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2970 = insertelement <2 x double> poison, double %501, i64 0
  %broadcast.splat2971 = shufflevector <2 x double> %broadcast.splatinsert2970, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2972 = insertelement <2 x double> poison, double %503, i64 0
  %broadcast.splat2973 = shufflevector <2 x double> %broadcast.splatinsert2972, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2975 = insertelement <2 x double> poison, double %506, i64 0
  %broadcast.splat2976 = shufflevector <2 x double> %broadcast.splatinsert2975, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2963

vector.body2963:                                  ; preds = %vector.body2963, %vector.ph2958
  %index2964 = phi i64 [ 0, %vector.ph2958 ], [ %index.next2977, %vector.body2963 ]
  %offset.idx2965 = or disjoint i64 %index2964, 1
  %522 = getelementptr double, ptr %invariant.gep1759, i64 %offset.idx2965
  %wide.load2966 = load <2 x double>, ptr %522, align 8, !tbaa !9, !alias.scope !29, !noalias !32
  %523 = getelementptr double, ptr %invariant.gep1761, i64 %offset.idx2965
  %wide.load2967 = load <2 x double>, ptr %523, align 8, !tbaa !9, !alias.scope !32
  %524 = fmul <2 x double> %broadcast.splat2969, %wide.load2967
  %525 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2971, <2 x double> %wide.load2966, <2 x double> %524)
  %526 = fneg <2 x double> %525
  %527 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %526, <2 x double> %broadcast.splat2973, <2 x double> %wide.load2966)
  store <2 x double> %527, ptr %522, align 8, !tbaa !9, !alias.scope !29, !noalias !32
  %528 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %526, <2 x double> %broadcast.splat2976, <2 x double> %wide.load2967)
  store <2 x double> %528, ptr %523, align 8, !tbaa !9, !alias.scope !32
  %index.next2977 = add nuw i64 %index2964, 2
  %529 = icmp eq i64 %index.next2977, %n.vec2960
  br i1 %529, label %middle.block2955, label %vector.body2963, !llvm.loop !34

middle.block2955:                                 ; preds = %vector.body2963
  %cmp.n2978 = icmp eq i64 %n.vec2960, %512
  br i1 %cmp.n2978, label %.loopexit, label %scalar.ph2956.preheader

scalar.ph2956.preheader:                          ; preds = %middle.block2955, %vector.memcheck2947, %.lr.ph1517
  %indvars.iv1626.ph = phi i64 [ 1, %vector.memcheck2947 ], [ 1, %.lr.ph1517 ], [ %ind.end2961, %middle.block2955 ]
  br label %scalar.ph2956

scalar.ph2956:                                    ; preds = %scalar.ph2956.preheader, %scalar.ph2956
  %indvars.iv1626 = phi i64 [ %indvars.iv.next1627, %scalar.ph2956 ], [ %indvars.iv1626.ph, %scalar.ph2956.preheader ]
  %gep1760 = getelementptr double, ptr %invariant.gep1759, i64 %indvars.iv1626
  %530 = load double, ptr %gep1760, align 8, !tbaa !9
  %gep1762 = getelementptr double, ptr %invariant.gep1761, i64 %indvars.iv1626
  %531 = load double, ptr %gep1762, align 8, !tbaa !9
  %532 = fmul double %505, %531
  %533 = tail call double @llvm.fmuladd.f64(double %501, double %530, double %532)
  %534 = fneg double %533
  %535 = tail call double @llvm.fmuladd.f64(double %534, double %503, double %530)
  store double %535, ptr %gep1760, align 8, !tbaa !9
  %536 = load double, ptr %gep1762, align 8, !tbaa !9
  %537 = tail call double @llvm.fmuladd.f64(double %534, double %506, double %536)
  store double %537, ptr %gep1762, align 8, !tbaa !9
  %indvars.iv.next1627 = add nuw nsw i64 %indvars.iv1626, 1
  %exitcond1630.not = icmp eq i64 %indvars.iv.next1627, %wide.trip.count1629
  br i1 %exitcond1630.not, label %.loopexit, label %scalar.ph2956, !llvm.loop !35

538:                                              ; preds = %480
  %539 = load double, ptr %3, align 8, !tbaa !9
  %540 = load double, ptr %4, align 8, !tbaa !9
  %541 = fmul double %539, %540
  %542 = getelementptr inbounds i8, ptr %3, i64 8
  %543 = load double, ptr %542, align 8, !tbaa !9
  %544 = fmul double %540, %543
  %545 = getelementptr inbounds i8, ptr %3, i64 16
  %546 = load double, ptr %545, align 8, !tbaa !9
  %547 = fmul double %540, %546
  %548 = load i32, ptr %1, align 4, !tbaa !5
  %.not14301512 = icmp slt i32 %548, 1
  br i1 %.not14301512, label %.loopexit, label %.lr.ph1514

.lr.ph1514:                                       ; preds = %538
  %549 = shl i32 %9, 1
  %550 = mul nsw i32 %9, 3
  %551 = sext i32 %9 to i64
  %552 = sext i32 %549 to i64
  %553 = sext i32 %550 to i64
  %554 = add nuw i32 %548, 1
  %wide.trip.count1624 = zext i32 %554 to i64
  %invariant.gep1753 = getelementptr double, ptr %11, i64 %551
  %invariant.gep1755 = getelementptr double, ptr %11, i64 %552
  %invariant.gep1757 = getelementptr double, ptr %11, i64 %553
  %555 = zext nneg i32 %548 to i64
  %min.iters.check2919 = icmp ult i32 %548, 8
  br i1 %min.iters.check2919, label %scalar.ph2918.preheader, label %vector.memcheck2899

vector.memcheck2899:                              ; preds = %.lr.ph1514
  %556 = add nsw i64 %551, %10
  %557 = shl nsw i64 %556, 3
  %558 = getelementptr i8, ptr %5, i64 %557
  %scevgep2900 = getelementptr i8, ptr %558, i64 8
  %559 = shl nuw nsw i64 %wide.trip.count1624, 3
  %560 = getelementptr i8, ptr %5, i64 %557
  %scevgep2901 = getelementptr i8, ptr %560, i64 %559
  %561 = add nsw i64 %552, %10
  %562 = shl nsw i64 %561, 3
  %563 = getelementptr i8, ptr %5, i64 %562
  %scevgep2902 = getelementptr i8, ptr %563, i64 8
  %564 = getelementptr i8, ptr %5, i64 %562
  %scevgep2903 = getelementptr i8, ptr %564, i64 %559
  %565 = add nsw i64 %553, %10
  %566 = shl nsw i64 %565, 3
  %567 = getelementptr i8, ptr %5, i64 %566
  %scevgep2904 = getelementptr i8, ptr %567, i64 8
  %568 = getelementptr i8, ptr %5, i64 %566
  %scevgep2905 = getelementptr i8, ptr %568, i64 %559
  %bound02906 = icmp ult ptr %scevgep2900, %scevgep2903
  %bound12907 = icmp ult ptr %scevgep2902, %scevgep2901
  %found.conflict2908 = and i1 %bound02906, %bound12907
  %bound02909 = icmp ult ptr %scevgep2900, %scevgep2905
  %bound12910 = icmp ult ptr %scevgep2904, %scevgep2901
  %found.conflict2911 = and i1 %bound02909, %bound12910
  %conflict.rdx2912 = or i1 %found.conflict2908, %found.conflict2911
  %bound02913 = icmp ult ptr %scevgep2902, %scevgep2905
  %bound12914 = icmp ult ptr %scevgep2904, %scevgep2903
  %found.conflict2915 = and i1 %bound02913, %bound12914
  %conflict.rdx2916 = or i1 %conflict.rdx2912, %found.conflict2915
  br i1 %conflict.rdx2916, label %scalar.ph2918.preheader, label %vector.ph2920

vector.ph2920:                                    ; preds = %vector.memcheck2899
  %n.vec2922 = and i64 %555, 2147483646
  %ind.end2923 = or i64 %555, 1
  %broadcast.splatinsert2930 = insertelement <2 x double> poison, double %543, i64 0
  %broadcast.splat2931 = shufflevector <2 x double> %broadcast.splatinsert2930, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2932 = insertelement <2 x double> poison, double %539, i64 0
  %broadcast.splat2933 = shufflevector <2 x double> %broadcast.splatinsert2932, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2935 = insertelement <2 x double> poison, double %546, i64 0
  %broadcast.splat2936 = shufflevector <2 x double> %broadcast.splatinsert2935, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2937 = insertelement <2 x double> poison, double %541, i64 0
  %broadcast.splat2938 = shufflevector <2 x double> %broadcast.splatinsert2937, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2940 = insertelement <2 x double> poison, double %544, i64 0
  %broadcast.splat2941 = shufflevector <2 x double> %broadcast.splatinsert2940, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2943 = insertelement <2 x double> poison, double %547, i64 0
  %broadcast.splat2944 = shufflevector <2 x double> %broadcast.splatinsert2943, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2925

vector.body2925:                                  ; preds = %vector.body2925, %vector.ph2920
  %index2926 = phi i64 [ 0, %vector.ph2920 ], [ %index.next2945, %vector.body2925 ]
  %offset.idx2927 = or disjoint i64 %index2926, 1
  %569 = getelementptr double, ptr %invariant.gep1753, i64 %offset.idx2927
  %wide.load2928 = load <2 x double>, ptr %569, align 8, !tbaa !9, !alias.scope !36, !noalias !39
  %570 = getelementptr double, ptr %invariant.gep1755, i64 %offset.idx2927
  %wide.load2929 = load <2 x double>, ptr %570, align 8, !tbaa !9, !alias.scope !42, !noalias !43
  %571 = fmul <2 x double> %broadcast.splat2931, %wide.load2929
  %572 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2933, <2 x double> %wide.load2928, <2 x double> %571)
  %573 = getelementptr double, ptr %invariant.gep1757, i64 %offset.idx2927
  %wide.load2934 = load <2 x double>, ptr %573, align 8, !tbaa !9, !alias.scope !43
  %574 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2936, <2 x double> %wide.load2934, <2 x double> %572)
  %575 = fneg <2 x double> %574
  %576 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %575, <2 x double> %broadcast.splat2938, <2 x double> %wide.load2928)
  store <2 x double> %576, ptr %569, align 8, !tbaa !9, !alias.scope !36, !noalias !39
  %wide.load2939 = load <2 x double>, ptr %570, align 8, !tbaa !9, !alias.scope !42, !noalias !43
  %577 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %575, <2 x double> %broadcast.splat2941, <2 x double> %wide.load2939)
  store <2 x double> %577, ptr %570, align 8, !tbaa !9, !alias.scope !42, !noalias !43
  %wide.load2942 = load <2 x double>, ptr %573, align 8, !tbaa !9, !alias.scope !43
  %578 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %575, <2 x double> %broadcast.splat2944, <2 x double> %wide.load2942)
  store <2 x double> %578, ptr %573, align 8, !tbaa !9, !alias.scope !43
  %index.next2945 = add nuw i64 %index2926, 2
  %579 = icmp eq i64 %index.next2945, %n.vec2922
  br i1 %579, label %middle.block2917, label %vector.body2925, !llvm.loop !44

middle.block2917:                                 ; preds = %vector.body2925
  %cmp.n2946 = icmp eq i64 %n.vec2922, %555
  br i1 %cmp.n2946, label %.loopexit, label %scalar.ph2918.preheader

scalar.ph2918.preheader:                          ; preds = %middle.block2917, %vector.memcheck2899, %.lr.ph1514
  %indvars.iv1621.ph = phi i64 [ 1, %vector.memcheck2899 ], [ 1, %.lr.ph1514 ], [ %ind.end2923, %middle.block2917 ]
  br label %scalar.ph2918

scalar.ph2918:                                    ; preds = %scalar.ph2918.preheader, %scalar.ph2918
  %indvars.iv1621 = phi i64 [ %indvars.iv.next1622, %scalar.ph2918 ], [ %indvars.iv1621.ph, %scalar.ph2918.preheader ]
  %gep1754 = getelementptr double, ptr %invariant.gep1753, i64 %indvars.iv1621
  %580 = load double, ptr %gep1754, align 8, !tbaa !9
  %gep1756 = getelementptr double, ptr %invariant.gep1755, i64 %indvars.iv1621
  %581 = load double, ptr %gep1756, align 8, !tbaa !9
  %582 = fmul double %543, %581
  %583 = tail call double @llvm.fmuladd.f64(double %539, double %580, double %582)
  %gep1758 = getelementptr double, ptr %invariant.gep1757, i64 %indvars.iv1621
  %584 = load double, ptr %gep1758, align 8, !tbaa !9
  %585 = tail call double @llvm.fmuladd.f64(double %546, double %584, double %583)
  %586 = fneg double %585
  %587 = tail call double @llvm.fmuladd.f64(double %586, double %541, double %580)
  store double %587, ptr %gep1754, align 8, !tbaa !9
  %588 = load double, ptr %gep1756, align 8, !tbaa !9
  %589 = tail call double @llvm.fmuladd.f64(double %586, double %544, double %588)
  store double %589, ptr %gep1756, align 8, !tbaa !9
  %590 = load double, ptr %gep1758, align 8, !tbaa !9
  %591 = tail call double @llvm.fmuladd.f64(double %586, double %547, double %590)
  store double %591, ptr %gep1758, align 8, !tbaa !9
  %indvars.iv.next1622 = add nuw nsw i64 %indvars.iv1621, 1
  %exitcond1625.not = icmp eq i64 %indvars.iv.next1622, %wide.trip.count1624
  br i1 %exitcond1625.not, label %.loopexit, label %scalar.ph2918, !llvm.loop !45

592:                                              ; preds = %480
  %593 = load double, ptr %3, align 8, !tbaa !9
  %594 = load double, ptr %4, align 8, !tbaa !9
  %595 = fmul double %593, %594
  %596 = getelementptr inbounds i8, ptr %3, i64 8
  %597 = load double, ptr %596, align 8, !tbaa !9
  %598 = fmul double %594, %597
  %599 = getelementptr inbounds i8, ptr %3, i64 16
  %600 = load double, ptr %599, align 8, !tbaa !9
  %601 = fmul double %594, %600
  %602 = getelementptr inbounds i8, ptr %3, i64 24
  %603 = load double, ptr %602, align 8, !tbaa !9
  %604 = fmul double %594, %603
  %605 = load i32, ptr %1, align 4, !tbaa !5
  %.not14291509 = icmp slt i32 %605, 1
  br i1 %.not14291509, label %.loopexit, label %.lr.ph1511

.lr.ph1511:                                       ; preds = %592
  %606 = shl i32 %9, 1
  %607 = mul nsw i32 %9, 3
  %608 = shl i32 %9, 2
  %609 = sext i32 %9 to i64
  %610 = sext i32 %606 to i64
  %611 = sext i32 %607 to i64
  %612 = sext i32 %608 to i64
  %613 = add nuw i32 %605, 1
  %wide.trip.count1619 = zext i32 %613 to i64
  %invariant.gep1745 = getelementptr double, ptr %11, i64 %609
  %invariant.gep1747 = getelementptr double, ptr %11, i64 %610
  %invariant.gep1749 = getelementptr double, ptr %11, i64 %611
  %invariant.gep1751 = getelementptr double, ptr %11, i64 %612
  %614 = zext nneg i32 %605 to i64
  %min.iters.check2865 = icmp ult i32 %605, 10
  br i1 %min.iters.check2865, label %scalar.ph2864.preheader, label %vector.memcheck2831

vector.memcheck2831:                              ; preds = %.lr.ph1511
  %615 = add nsw i64 %609, %10
  %616 = shl nsw i64 %615, 3
  %617 = getelementptr i8, ptr %5, i64 %616
  %scevgep2832 = getelementptr i8, ptr %617, i64 8
  %618 = shl nuw nsw i64 %wide.trip.count1619, 3
  %619 = getelementptr i8, ptr %5, i64 %616
  %scevgep2833 = getelementptr i8, ptr %619, i64 %618
  %620 = add nsw i64 %610, %10
  %621 = shl nsw i64 %620, 3
  %622 = getelementptr i8, ptr %5, i64 %621
  %scevgep2834 = getelementptr i8, ptr %622, i64 8
  %623 = getelementptr i8, ptr %5, i64 %621
  %scevgep2835 = getelementptr i8, ptr %623, i64 %618
  %624 = add nsw i64 %611, %10
  %625 = shl nsw i64 %624, 3
  %626 = getelementptr i8, ptr %5, i64 %625
  %scevgep2836 = getelementptr i8, ptr %626, i64 8
  %627 = getelementptr i8, ptr %5, i64 %625
  %scevgep2837 = getelementptr i8, ptr %627, i64 %618
  %628 = add nsw i64 %612, %10
  %629 = shl nsw i64 %628, 3
  %630 = getelementptr i8, ptr %5, i64 %629
  %scevgep2838 = getelementptr i8, ptr %630, i64 8
  %631 = getelementptr i8, ptr %5, i64 %629
  %scevgep2839 = getelementptr i8, ptr %631, i64 %618
  %bound02840 = icmp ult ptr %scevgep2832, %scevgep2835
  %bound12841 = icmp ult ptr %scevgep2834, %scevgep2833
  %found.conflict2842 = and i1 %bound02840, %bound12841
  %bound02843 = icmp ult ptr %scevgep2832, %scevgep2837
  %bound12844 = icmp ult ptr %scevgep2836, %scevgep2833
  %found.conflict2845 = and i1 %bound02843, %bound12844
  %conflict.rdx2846 = or i1 %found.conflict2842, %found.conflict2845
  %bound02847 = icmp ult ptr %scevgep2832, %scevgep2839
  %bound12848 = icmp ult ptr %scevgep2838, %scevgep2833
  %found.conflict2849 = and i1 %bound02847, %bound12848
  %conflict.rdx2850 = or i1 %conflict.rdx2846, %found.conflict2849
  %bound02851 = icmp ult ptr %scevgep2834, %scevgep2837
  %bound12852 = icmp ult ptr %scevgep2836, %scevgep2835
  %found.conflict2853 = and i1 %bound02851, %bound12852
  %conflict.rdx2854 = or i1 %conflict.rdx2850, %found.conflict2853
  %bound02855 = icmp ult ptr %scevgep2834, %scevgep2839
  %bound12856 = icmp ult ptr %scevgep2838, %scevgep2835
  %found.conflict2857 = and i1 %bound02855, %bound12856
  %conflict.rdx2858 = or i1 %conflict.rdx2854, %found.conflict2857
  %bound02859 = icmp ult ptr %scevgep2836, %scevgep2839
  %bound12860 = icmp ult ptr %scevgep2838, %scevgep2837
  %found.conflict2861 = and i1 %bound02859, %bound12860
  %conflict.rdx2862 = or i1 %conflict.rdx2858, %found.conflict2861
  br i1 %conflict.rdx2862, label %scalar.ph2864.preheader, label %vector.ph2866

vector.ph2866:                                    ; preds = %vector.memcheck2831
  %n.vec2868 = and i64 %614, 2147483646
  %ind.end2869 = or i64 %614, 1
  %broadcast.splatinsert2876 = insertelement <2 x double> poison, double %597, i64 0
  %broadcast.splat2877 = shufflevector <2 x double> %broadcast.splatinsert2876, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2878 = insertelement <2 x double> poison, double %593, i64 0
  %broadcast.splat2879 = shufflevector <2 x double> %broadcast.splatinsert2878, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2881 = insertelement <2 x double> poison, double %600, i64 0
  %broadcast.splat2882 = shufflevector <2 x double> %broadcast.splatinsert2881, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2884 = insertelement <2 x double> poison, double %603, i64 0
  %broadcast.splat2885 = shufflevector <2 x double> %broadcast.splatinsert2884, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2886 = insertelement <2 x double> poison, double %595, i64 0
  %broadcast.splat2887 = shufflevector <2 x double> %broadcast.splatinsert2886, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2889 = insertelement <2 x double> poison, double %598, i64 0
  %broadcast.splat2890 = shufflevector <2 x double> %broadcast.splatinsert2889, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2892 = insertelement <2 x double> poison, double %601, i64 0
  %broadcast.splat2893 = shufflevector <2 x double> %broadcast.splatinsert2892, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2895 = insertelement <2 x double> poison, double %604, i64 0
  %broadcast.splat2896 = shufflevector <2 x double> %broadcast.splatinsert2895, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2871

vector.body2871:                                  ; preds = %vector.body2871, %vector.ph2866
  %index2872 = phi i64 [ 0, %vector.ph2866 ], [ %index.next2897, %vector.body2871 ]
  %offset.idx2873 = or disjoint i64 %index2872, 1
  %632 = getelementptr double, ptr %invariant.gep1745, i64 %offset.idx2873
  %wide.load2874 = load <2 x double>, ptr %632, align 8, !tbaa !9, !alias.scope !46, !noalias !49
  %633 = getelementptr double, ptr %invariant.gep1747, i64 %offset.idx2873
  %wide.load2875 = load <2 x double>, ptr %633, align 8, !tbaa !9, !alias.scope !53, !noalias !54
  %634 = fmul <2 x double> %broadcast.splat2877, %wide.load2875
  %635 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2879, <2 x double> %wide.load2874, <2 x double> %634)
  %636 = getelementptr double, ptr %invariant.gep1749, i64 %offset.idx2873
  %wide.load2880 = load <2 x double>, ptr %636, align 8, !tbaa !9, !alias.scope !55, !noalias !56
  %637 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2882, <2 x double> %wide.load2880, <2 x double> %635)
  %638 = getelementptr double, ptr %invariant.gep1751, i64 %offset.idx2873
  %wide.load2883 = load <2 x double>, ptr %638, align 8, !tbaa !9, !alias.scope !56
  %639 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2885, <2 x double> %wide.load2883, <2 x double> %637)
  %640 = fneg <2 x double> %639
  %641 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %640, <2 x double> %broadcast.splat2887, <2 x double> %wide.load2874)
  store <2 x double> %641, ptr %632, align 8, !tbaa !9, !alias.scope !46, !noalias !49
  %wide.load2888 = load <2 x double>, ptr %633, align 8, !tbaa !9, !alias.scope !53, !noalias !54
  %642 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %640, <2 x double> %broadcast.splat2890, <2 x double> %wide.load2888)
  store <2 x double> %642, ptr %633, align 8, !tbaa !9, !alias.scope !53, !noalias !54
  %wide.load2891 = load <2 x double>, ptr %636, align 8, !tbaa !9, !alias.scope !55, !noalias !56
  %643 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %640, <2 x double> %broadcast.splat2893, <2 x double> %wide.load2891)
  store <2 x double> %643, ptr %636, align 8, !tbaa !9, !alias.scope !55, !noalias !56
  %wide.load2894 = load <2 x double>, ptr %638, align 8, !tbaa !9, !alias.scope !56
  %644 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %640, <2 x double> %broadcast.splat2896, <2 x double> %wide.load2894)
  store <2 x double> %644, ptr %638, align 8, !tbaa !9, !alias.scope !56
  %index.next2897 = add nuw i64 %index2872, 2
  %645 = icmp eq i64 %index.next2897, %n.vec2868
  br i1 %645, label %middle.block2863, label %vector.body2871, !llvm.loop !57

middle.block2863:                                 ; preds = %vector.body2871
  %cmp.n2898 = icmp eq i64 %n.vec2868, %614
  br i1 %cmp.n2898, label %.loopexit, label %scalar.ph2864.preheader

scalar.ph2864.preheader:                          ; preds = %middle.block2863, %vector.memcheck2831, %.lr.ph1511
  %indvars.iv1616.ph = phi i64 [ 1, %vector.memcheck2831 ], [ 1, %.lr.ph1511 ], [ %ind.end2869, %middle.block2863 ]
  br label %scalar.ph2864

scalar.ph2864:                                    ; preds = %scalar.ph2864.preheader, %scalar.ph2864
  %indvars.iv1616 = phi i64 [ %indvars.iv.next1617, %scalar.ph2864 ], [ %indvars.iv1616.ph, %scalar.ph2864.preheader ]
  %gep1746 = getelementptr double, ptr %invariant.gep1745, i64 %indvars.iv1616
  %646 = load double, ptr %gep1746, align 8, !tbaa !9
  %gep1748 = getelementptr double, ptr %invariant.gep1747, i64 %indvars.iv1616
  %647 = load double, ptr %gep1748, align 8, !tbaa !9
  %648 = fmul double %597, %647
  %649 = tail call double @llvm.fmuladd.f64(double %593, double %646, double %648)
  %gep1750 = getelementptr double, ptr %invariant.gep1749, i64 %indvars.iv1616
  %650 = load double, ptr %gep1750, align 8, !tbaa !9
  %651 = tail call double @llvm.fmuladd.f64(double %600, double %650, double %649)
  %gep1752 = getelementptr double, ptr %invariant.gep1751, i64 %indvars.iv1616
  %652 = load double, ptr %gep1752, align 8, !tbaa !9
  %653 = tail call double @llvm.fmuladd.f64(double %603, double %652, double %651)
  %654 = fneg double %653
  %655 = tail call double @llvm.fmuladd.f64(double %654, double %595, double %646)
  store double %655, ptr %gep1746, align 8, !tbaa !9
  %656 = load double, ptr %gep1748, align 8, !tbaa !9
  %657 = tail call double @llvm.fmuladd.f64(double %654, double %598, double %656)
  store double %657, ptr %gep1748, align 8, !tbaa !9
  %658 = load double, ptr %gep1750, align 8, !tbaa !9
  %659 = tail call double @llvm.fmuladd.f64(double %654, double %601, double %658)
  store double %659, ptr %gep1750, align 8, !tbaa !9
  %660 = load double, ptr %gep1752, align 8, !tbaa !9
  %661 = tail call double @llvm.fmuladd.f64(double %654, double %604, double %660)
  store double %661, ptr %gep1752, align 8, !tbaa !9
  %indvars.iv.next1617 = add nuw nsw i64 %indvars.iv1616, 1
  %exitcond1620.not = icmp eq i64 %indvars.iv.next1617, %wide.trip.count1619
  br i1 %exitcond1620.not, label %.loopexit, label %scalar.ph2864, !llvm.loop !58

662:                                              ; preds = %480
  %663 = load double, ptr %3, align 8, !tbaa !9
  %664 = load double, ptr %4, align 8, !tbaa !9
  %665 = fmul double %663, %664
  %666 = getelementptr inbounds i8, ptr %3, i64 8
  %667 = load double, ptr %666, align 8, !tbaa !9
  %668 = fmul double %664, %667
  %669 = getelementptr inbounds i8, ptr %3, i64 16
  %670 = load double, ptr %669, align 8, !tbaa !9
  %671 = fmul double %664, %670
  %672 = getelementptr inbounds i8, ptr %3, i64 24
  %673 = load double, ptr %672, align 8, !tbaa !9
  %674 = fmul double %664, %673
  %675 = getelementptr inbounds i8, ptr %3, i64 32
  %676 = load double, ptr %675, align 8, !tbaa !9
  %677 = fmul double %664, %676
  %678 = load i32, ptr %1, align 4, !tbaa !5
  %.not14281506 = icmp slt i32 %678, 1
  br i1 %.not14281506, label %.loopexit, label %.lr.ph1508

.lr.ph1508:                                       ; preds = %662
  %679 = shl i32 %9, 1
  %680 = mul i32 %9, 3
  %681 = shl i32 %9, 2
  %682 = mul i32 %9, 5
  %683 = sext i32 %9 to i64
  %684 = sext i32 %679 to i64
  %685 = sext i32 %680 to i64
  %686 = sext i32 %681 to i64
  %687 = sext i32 %682 to i64
  %688 = add nuw i32 %678, 1
  %wide.trip.count1614 = zext i32 %688 to i64
  %invariant.gep1735 = getelementptr double, ptr %11, i64 %683
  %invariant.gep1737 = getelementptr double, ptr %11, i64 %684
  %invariant.gep1739 = getelementptr double, ptr %11, i64 %685
  %invariant.gep1741 = getelementptr double, ptr %11, i64 %686
  %invariant.gep1743 = getelementptr double, ptr %11, i64 %687
  %689 = zext nneg i32 %678 to i64
  %min.iters.check2791 = icmp ult i32 %678, 12
  br i1 %min.iters.check2791, label %scalar.ph2790.preheader, label %vector.memcheck2739

vector.memcheck2739:                              ; preds = %.lr.ph1508
  %690 = add nsw i64 %683, %10
  %691 = shl nsw i64 %690, 3
  %692 = getelementptr i8, ptr %5, i64 %691
  %scevgep2740 = getelementptr i8, ptr %692, i64 8
  %693 = shl nuw nsw i64 %wide.trip.count1614, 3
  %694 = getelementptr i8, ptr %5, i64 %691
  %scevgep2741 = getelementptr i8, ptr %694, i64 %693
  %695 = add nsw i64 %684, %10
  %696 = shl nsw i64 %695, 3
  %697 = getelementptr i8, ptr %5, i64 %696
  %scevgep2742 = getelementptr i8, ptr %697, i64 8
  %698 = getelementptr i8, ptr %5, i64 %696
  %scevgep2743 = getelementptr i8, ptr %698, i64 %693
  %699 = add nsw i64 %685, %10
  %700 = shl nsw i64 %699, 3
  %701 = getelementptr i8, ptr %5, i64 %700
  %scevgep2744 = getelementptr i8, ptr %701, i64 8
  %702 = getelementptr i8, ptr %5, i64 %700
  %scevgep2745 = getelementptr i8, ptr %702, i64 %693
  %703 = add nsw i64 %686, %10
  %704 = shl nsw i64 %703, 3
  %705 = getelementptr i8, ptr %5, i64 %704
  %scevgep2746 = getelementptr i8, ptr %705, i64 8
  %706 = getelementptr i8, ptr %5, i64 %704
  %scevgep2747 = getelementptr i8, ptr %706, i64 %693
  %707 = add nsw i64 %687, %10
  %708 = shl nsw i64 %707, 3
  %709 = getelementptr i8, ptr %5, i64 %708
  %scevgep2748 = getelementptr i8, ptr %709, i64 8
  %710 = getelementptr i8, ptr %5, i64 %708
  %scevgep2749 = getelementptr i8, ptr %710, i64 %693
  %bound02750 = icmp ult ptr %scevgep2740, %scevgep2743
  %bound12751 = icmp ult ptr %scevgep2742, %scevgep2741
  %found.conflict2752 = and i1 %bound02750, %bound12751
  %bound02753 = icmp ult ptr %scevgep2740, %scevgep2745
  %bound12754 = icmp ult ptr %scevgep2744, %scevgep2741
  %found.conflict2755 = and i1 %bound02753, %bound12754
  %conflict.rdx2756 = or i1 %found.conflict2752, %found.conflict2755
  %bound02757 = icmp ult ptr %scevgep2740, %scevgep2747
  %bound12758 = icmp ult ptr %scevgep2746, %scevgep2741
  %found.conflict2759 = and i1 %bound02757, %bound12758
  %conflict.rdx2760 = or i1 %conflict.rdx2756, %found.conflict2759
  %bound02761 = icmp ult ptr %scevgep2740, %scevgep2749
  %bound12762 = icmp ult ptr %scevgep2748, %scevgep2741
  %found.conflict2763 = and i1 %bound02761, %bound12762
  %conflict.rdx2764 = or i1 %conflict.rdx2760, %found.conflict2763
  %bound02765 = icmp ult ptr %scevgep2742, %scevgep2745
  %bound12766 = icmp ult ptr %scevgep2744, %scevgep2743
  %found.conflict2767 = and i1 %bound02765, %bound12766
  %conflict.rdx2768 = or i1 %conflict.rdx2764, %found.conflict2767
  %bound02769 = icmp ult ptr %scevgep2742, %scevgep2747
  %bound12770 = icmp ult ptr %scevgep2746, %scevgep2743
  %found.conflict2771 = and i1 %bound02769, %bound12770
  %conflict.rdx2772 = or i1 %conflict.rdx2768, %found.conflict2771
  %bound02773 = icmp ult ptr %scevgep2742, %scevgep2749
  %bound12774 = icmp ult ptr %scevgep2748, %scevgep2743
  %found.conflict2775 = and i1 %bound02773, %bound12774
  %conflict.rdx2776 = or i1 %conflict.rdx2772, %found.conflict2775
  %bound02777 = icmp ult ptr %scevgep2744, %scevgep2747
  %bound12778 = icmp ult ptr %scevgep2746, %scevgep2745
  %found.conflict2779 = and i1 %bound02777, %bound12778
  %conflict.rdx2780 = or i1 %conflict.rdx2776, %found.conflict2779
  %bound02781 = icmp ult ptr %scevgep2744, %scevgep2749
  %bound12782 = icmp ult ptr %scevgep2748, %scevgep2745
  %found.conflict2783 = and i1 %bound02781, %bound12782
  %conflict.rdx2784 = or i1 %conflict.rdx2780, %found.conflict2783
  %bound02785 = icmp ult ptr %scevgep2746, %scevgep2749
  %bound12786 = icmp ult ptr %scevgep2748, %scevgep2747
  %found.conflict2787 = and i1 %bound02785, %bound12786
  %conflict.rdx2788 = or i1 %conflict.rdx2784, %found.conflict2787
  br i1 %conflict.rdx2788, label %scalar.ph2790.preheader, label %vector.ph2792

vector.ph2792:                                    ; preds = %vector.memcheck2739
  %n.vec2794 = and i64 %689, 2147483646
  %ind.end2795 = or i64 %689, 1
  %broadcast.splatinsert2802 = insertelement <2 x double> poison, double %667, i64 0
  %broadcast.splat2803 = shufflevector <2 x double> %broadcast.splatinsert2802, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2804 = insertelement <2 x double> poison, double %663, i64 0
  %broadcast.splat2805 = shufflevector <2 x double> %broadcast.splatinsert2804, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2807 = insertelement <2 x double> poison, double %670, i64 0
  %broadcast.splat2808 = shufflevector <2 x double> %broadcast.splatinsert2807, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2810 = insertelement <2 x double> poison, double %673, i64 0
  %broadcast.splat2811 = shufflevector <2 x double> %broadcast.splatinsert2810, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2813 = insertelement <2 x double> poison, double %676, i64 0
  %broadcast.splat2814 = shufflevector <2 x double> %broadcast.splatinsert2813, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2815 = insertelement <2 x double> poison, double %665, i64 0
  %broadcast.splat2816 = shufflevector <2 x double> %broadcast.splatinsert2815, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2818 = insertelement <2 x double> poison, double %668, i64 0
  %broadcast.splat2819 = shufflevector <2 x double> %broadcast.splatinsert2818, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2821 = insertelement <2 x double> poison, double %671, i64 0
  %broadcast.splat2822 = shufflevector <2 x double> %broadcast.splatinsert2821, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2824 = insertelement <2 x double> poison, double %674, i64 0
  %broadcast.splat2825 = shufflevector <2 x double> %broadcast.splatinsert2824, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2827 = insertelement <2 x double> poison, double %677, i64 0
  %broadcast.splat2828 = shufflevector <2 x double> %broadcast.splatinsert2827, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2797

vector.body2797:                                  ; preds = %vector.body2797, %vector.ph2792
  %index2798 = phi i64 [ 0, %vector.ph2792 ], [ %index.next2829, %vector.body2797 ]
  %offset.idx2799 = or disjoint i64 %index2798, 1
  %711 = getelementptr double, ptr %invariant.gep1735, i64 %offset.idx2799
  %wide.load2800 = load <2 x double>, ptr %711, align 8, !tbaa !9, !alias.scope !59, !noalias !62
  %712 = getelementptr double, ptr %invariant.gep1737, i64 %offset.idx2799
  %wide.load2801 = load <2 x double>, ptr %712, align 8, !tbaa !9, !alias.scope !67, !noalias !68
  %713 = fmul <2 x double> %broadcast.splat2803, %wide.load2801
  %714 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2805, <2 x double> %wide.load2800, <2 x double> %713)
  %715 = getelementptr double, ptr %invariant.gep1739, i64 %offset.idx2799
  %wide.load2806 = load <2 x double>, ptr %715, align 8, !tbaa !9, !alias.scope !69, !noalias !70
  %716 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2808, <2 x double> %wide.load2806, <2 x double> %714)
  %717 = getelementptr double, ptr %invariant.gep1741, i64 %offset.idx2799
  %wide.load2809 = load <2 x double>, ptr %717, align 8, !tbaa !9, !alias.scope !71, !noalias !72
  %718 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2811, <2 x double> %wide.load2809, <2 x double> %716)
  %719 = getelementptr double, ptr %invariant.gep1743, i64 %offset.idx2799
  %wide.load2812 = load <2 x double>, ptr %719, align 8, !tbaa !9, !alias.scope !72
  %720 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2814, <2 x double> %wide.load2812, <2 x double> %718)
  %721 = fneg <2 x double> %720
  %722 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %721, <2 x double> %broadcast.splat2816, <2 x double> %wide.load2800)
  store <2 x double> %722, ptr %711, align 8, !tbaa !9, !alias.scope !59, !noalias !62
  %wide.load2817 = load <2 x double>, ptr %712, align 8, !tbaa !9, !alias.scope !67, !noalias !68
  %723 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %721, <2 x double> %broadcast.splat2819, <2 x double> %wide.load2817)
  store <2 x double> %723, ptr %712, align 8, !tbaa !9, !alias.scope !67, !noalias !68
  %wide.load2820 = load <2 x double>, ptr %715, align 8, !tbaa !9, !alias.scope !69, !noalias !70
  %724 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %721, <2 x double> %broadcast.splat2822, <2 x double> %wide.load2820)
  store <2 x double> %724, ptr %715, align 8, !tbaa !9, !alias.scope !69, !noalias !70
  %wide.load2823 = load <2 x double>, ptr %717, align 8, !tbaa !9, !alias.scope !71, !noalias !72
  %725 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %721, <2 x double> %broadcast.splat2825, <2 x double> %wide.load2823)
  store <2 x double> %725, ptr %717, align 8, !tbaa !9, !alias.scope !71, !noalias !72
  %wide.load2826 = load <2 x double>, ptr %719, align 8, !tbaa !9, !alias.scope !72
  %726 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %721, <2 x double> %broadcast.splat2828, <2 x double> %wide.load2826)
  store <2 x double> %726, ptr %719, align 8, !tbaa !9, !alias.scope !72
  %index.next2829 = add nuw i64 %index2798, 2
  %727 = icmp eq i64 %index.next2829, %n.vec2794
  br i1 %727, label %middle.block2789, label %vector.body2797, !llvm.loop !73

middle.block2789:                                 ; preds = %vector.body2797
  %cmp.n2830 = icmp eq i64 %n.vec2794, %689
  br i1 %cmp.n2830, label %.loopexit, label %scalar.ph2790.preheader

scalar.ph2790.preheader:                          ; preds = %middle.block2789, %vector.memcheck2739, %.lr.ph1508
  %indvars.iv1611.ph = phi i64 [ 1, %vector.memcheck2739 ], [ 1, %.lr.ph1508 ], [ %ind.end2795, %middle.block2789 ]
  br label %scalar.ph2790

scalar.ph2790:                                    ; preds = %scalar.ph2790.preheader, %scalar.ph2790
  %indvars.iv1611 = phi i64 [ %indvars.iv.next1612, %scalar.ph2790 ], [ %indvars.iv1611.ph, %scalar.ph2790.preheader ]
  %gep1736 = getelementptr double, ptr %invariant.gep1735, i64 %indvars.iv1611
  %728 = load double, ptr %gep1736, align 8, !tbaa !9
  %gep1738 = getelementptr double, ptr %invariant.gep1737, i64 %indvars.iv1611
  %729 = load double, ptr %gep1738, align 8, !tbaa !9
  %730 = fmul double %667, %729
  %731 = tail call double @llvm.fmuladd.f64(double %663, double %728, double %730)
  %gep1740 = getelementptr double, ptr %invariant.gep1739, i64 %indvars.iv1611
  %732 = load double, ptr %gep1740, align 8, !tbaa !9
  %733 = tail call double @llvm.fmuladd.f64(double %670, double %732, double %731)
  %gep1742 = getelementptr double, ptr %invariant.gep1741, i64 %indvars.iv1611
  %734 = load double, ptr %gep1742, align 8, !tbaa !9
  %735 = tail call double @llvm.fmuladd.f64(double %673, double %734, double %733)
  %gep1744 = getelementptr double, ptr %invariant.gep1743, i64 %indvars.iv1611
  %736 = load double, ptr %gep1744, align 8, !tbaa !9
  %737 = tail call double @llvm.fmuladd.f64(double %676, double %736, double %735)
  %738 = fneg double %737
  %739 = tail call double @llvm.fmuladd.f64(double %738, double %665, double %728)
  store double %739, ptr %gep1736, align 8, !tbaa !9
  %740 = load double, ptr %gep1738, align 8, !tbaa !9
  %741 = tail call double @llvm.fmuladd.f64(double %738, double %668, double %740)
  store double %741, ptr %gep1738, align 8, !tbaa !9
  %742 = load double, ptr %gep1740, align 8, !tbaa !9
  %743 = tail call double @llvm.fmuladd.f64(double %738, double %671, double %742)
  store double %743, ptr %gep1740, align 8, !tbaa !9
  %744 = load double, ptr %gep1742, align 8, !tbaa !9
  %745 = tail call double @llvm.fmuladd.f64(double %738, double %674, double %744)
  store double %745, ptr %gep1742, align 8, !tbaa !9
  %746 = load double, ptr %gep1744, align 8, !tbaa !9
  %747 = tail call double @llvm.fmuladd.f64(double %738, double %677, double %746)
  store double %747, ptr %gep1744, align 8, !tbaa !9
  %indvars.iv.next1612 = add nuw nsw i64 %indvars.iv1611, 1
  %exitcond1615.not = icmp eq i64 %indvars.iv.next1612, %wide.trip.count1614
  br i1 %exitcond1615.not, label %.loopexit, label %scalar.ph2790, !llvm.loop !74

748:                                              ; preds = %480
  %749 = load double, ptr %3, align 8, !tbaa !9
  %750 = load double, ptr %4, align 8, !tbaa !9
  %751 = fmul double %749, %750
  %752 = getelementptr inbounds i8, ptr %3, i64 8
  %753 = load double, ptr %752, align 8, !tbaa !9
  %754 = fmul double %750, %753
  %755 = getelementptr inbounds i8, ptr %3, i64 16
  %756 = load double, ptr %755, align 8, !tbaa !9
  %757 = fmul double %750, %756
  %758 = getelementptr inbounds i8, ptr %3, i64 24
  %759 = load double, ptr %758, align 8, !tbaa !9
  %760 = fmul double %750, %759
  %761 = getelementptr inbounds i8, ptr %3, i64 32
  %762 = load double, ptr %761, align 8, !tbaa !9
  %763 = fmul double %750, %762
  %764 = getelementptr inbounds i8, ptr %3, i64 40
  %765 = load double, ptr %764, align 8, !tbaa !9
  %766 = fmul double %750, %765
  %767 = load i32, ptr %1, align 4, !tbaa !5
  %.not14271503 = icmp slt i32 %767, 1
  br i1 %.not14271503, label %.loopexit, label %.lr.ph1505

.lr.ph1505:                                       ; preds = %748
  %768 = shl i32 %9, 1
  %769 = mul i32 %9, 3
  %770 = shl i32 %9, 2
  %771 = mul i32 %9, 5
  %772 = mul i32 %9, 6
  %773 = sext i32 %9 to i64
  %774 = sext i32 %768 to i64
  %775 = sext i32 %769 to i64
  %776 = sext i32 %770 to i64
  %777 = sext i32 %771 to i64
  %778 = sext i32 %772 to i64
  %779 = add nuw i32 %767, 1
  %wide.trip.count1609 = zext i32 %779 to i64
  %invariant.gep1723 = getelementptr double, ptr %11, i64 %773
  %invariant.gep1725 = getelementptr double, ptr %11, i64 %774
  %invariant.gep1727 = getelementptr double, ptr %11, i64 %775
  %invariant.gep1729 = getelementptr double, ptr %11, i64 %776
  %invariant.gep1731 = getelementptr double, ptr %11, i64 %777
  %invariant.gep1733 = getelementptr double, ptr %11, i64 %778
  %780 = zext nneg i32 %767 to i64
  %min.iters.check2693 = icmp ult i32 %767, 14
  br i1 %min.iters.check2693, label %scalar.ph2692.preheader, label %vector.memcheck2619

vector.memcheck2619:                              ; preds = %.lr.ph1505
  %781 = add nsw i64 %773, %10
  %782 = shl nsw i64 %781, 3
  %783 = getelementptr i8, ptr %5, i64 %782
  %scevgep2620 = getelementptr i8, ptr %783, i64 8
  %784 = shl nuw nsw i64 %wide.trip.count1609, 3
  %785 = getelementptr i8, ptr %5, i64 %782
  %scevgep2621 = getelementptr i8, ptr %785, i64 %784
  %786 = add nsw i64 %774, %10
  %787 = shl nsw i64 %786, 3
  %788 = getelementptr i8, ptr %5, i64 %787
  %scevgep2622 = getelementptr i8, ptr %788, i64 8
  %789 = getelementptr i8, ptr %5, i64 %787
  %scevgep2623 = getelementptr i8, ptr %789, i64 %784
  %790 = add nsw i64 %775, %10
  %791 = shl nsw i64 %790, 3
  %792 = getelementptr i8, ptr %5, i64 %791
  %scevgep2624 = getelementptr i8, ptr %792, i64 8
  %793 = getelementptr i8, ptr %5, i64 %791
  %scevgep2625 = getelementptr i8, ptr %793, i64 %784
  %794 = add nsw i64 %776, %10
  %795 = shl nsw i64 %794, 3
  %796 = getelementptr i8, ptr %5, i64 %795
  %scevgep2626 = getelementptr i8, ptr %796, i64 8
  %797 = getelementptr i8, ptr %5, i64 %795
  %scevgep2627 = getelementptr i8, ptr %797, i64 %784
  %798 = add nsw i64 %777, %10
  %799 = shl nsw i64 %798, 3
  %800 = getelementptr i8, ptr %5, i64 %799
  %scevgep2628 = getelementptr i8, ptr %800, i64 8
  %801 = getelementptr i8, ptr %5, i64 %799
  %scevgep2629 = getelementptr i8, ptr %801, i64 %784
  %802 = add nsw i64 %778, %10
  %803 = shl nsw i64 %802, 3
  %804 = getelementptr i8, ptr %5, i64 %803
  %scevgep2630 = getelementptr i8, ptr %804, i64 8
  %805 = getelementptr i8, ptr %5, i64 %803
  %scevgep2631 = getelementptr i8, ptr %805, i64 %784
  %bound02632 = icmp ult ptr %scevgep2620, %scevgep2623
  %bound12633 = icmp ult ptr %scevgep2622, %scevgep2621
  %found.conflict2634 = and i1 %bound02632, %bound12633
  %bound02635 = icmp ult ptr %scevgep2620, %scevgep2625
  %bound12636 = icmp ult ptr %scevgep2624, %scevgep2621
  %found.conflict2637 = and i1 %bound02635, %bound12636
  %conflict.rdx2638 = or i1 %found.conflict2634, %found.conflict2637
  %bound02639 = icmp ult ptr %scevgep2620, %scevgep2627
  %bound12640 = icmp ult ptr %scevgep2626, %scevgep2621
  %found.conflict2641 = and i1 %bound02639, %bound12640
  %conflict.rdx2642 = or i1 %conflict.rdx2638, %found.conflict2641
  %bound02643 = icmp ult ptr %scevgep2620, %scevgep2629
  %bound12644 = icmp ult ptr %scevgep2628, %scevgep2621
  %found.conflict2645 = and i1 %bound02643, %bound12644
  %conflict.rdx2646 = or i1 %conflict.rdx2642, %found.conflict2645
  %bound02647 = icmp ult ptr %scevgep2620, %scevgep2631
  %bound12648 = icmp ult ptr %scevgep2630, %scevgep2621
  %found.conflict2649 = and i1 %bound02647, %bound12648
  %conflict.rdx2650 = or i1 %conflict.rdx2646, %found.conflict2649
  %bound02651 = icmp ult ptr %scevgep2622, %scevgep2625
  %bound12652 = icmp ult ptr %scevgep2624, %scevgep2623
  %found.conflict2653 = and i1 %bound02651, %bound12652
  %conflict.rdx2654 = or i1 %conflict.rdx2650, %found.conflict2653
  %bound02655 = icmp ult ptr %scevgep2622, %scevgep2627
  %bound12656 = icmp ult ptr %scevgep2626, %scevgep2623
  %found.conflict2657 = and i1 %bound02655, %bound12656
  %conflict.rdx2658 = or i1 %conflict.rdx2654, %found.conflict2657
  %bound02659 = icmp ult ptr %scevgep2622, %scevgep2629
  %bound12660 = icmp ult ptr %scevgep2628, %scevgep2623
  %found.conflict2661 = and i1 %bound02659, %bound12660
  %conflict.rdx2662 = or i1 %conflict.rdx2658, %found.conflict2661
  %bound02663 = icmp ult ptr %scevgep2622, %scevgep2631
  %bound12664 = icmp ult ptr %scevgep2630, %scevgep2623
  %found.conflict2665 = and i1 %bound02663, %bound12664
  %conflict.rdx2666 = or i1 %conflict.rdx2662, %found.conflict2665
  %bound02667 = icmp ult ptr %scevgep2624, %scevgep2627
  %bound12668 = icmp ult ptr %scevgep2626, %scevgep2625
  %found.conflict2669 = and i1 %bound02667, %bound12668
  %conflict.rdx2670 = or i1 %conflict.rdx2666, %found.conflict2669
  %bound02671 = icmp ult ptr %scevgep2624, %scevgep2629
  %bound12672 = icmp ult ptr %scevgep2628, %scevgep2625
  %found.conflict2673 = and i1 %bound02671, %bound12672
  %conflict.rdx2674 = or i1 %conflict.rdx2670, %found.conflict2673
  %bound02675 = icmp ult ptr %scevgep2624, %scevgep2631
  %bound12676 = icmp ult ptr %scevgep2630, %scevgep2625
  %found.conflict2677 = and i1 %bound02675, %bound12676
  %conflict.rdx2678 = or i1 %conflict.rdx2674, %found.conflict2677
  %bound02679 = icmp ult ptr %scevgep2626, %scevgep2629
  %bound12680 = icmp ult ptr %scevgep2628, %scevgep2627
  %found.conflict2681 = and i1 %bound02679, %bound12680
  %conflict.rdx2682 = or i1 %conflict.rdx2678, %found.conflict2681
  %bound02683 = icmp ult ptr %scevgep2626, %scevgep2631
  %bound12684 = icmp ult ptr %scevgep2630, %scevgep2627
  %found.conflict2685 = and i1 %bound02683, %bound12684
  %conflict.rdx2686 = or i1 %conflict.rdx2682, %found.conflict2685
  %bound02687 = icmp ult ptr %scevgep2628, %scevgep2631
  %bound12688 = icmp ult ptr %scevgep2630, %scevgep2629
  %found.conflict2689 = and i1 %bound02687, %bound12688
  %conflict.rdx2690 = or i1 %conflict.rdx2686, %found.conflict2689
  br i1 %conflict.rdx2690, label %scalar.ph2692.preheader, label %vector.ph2694

vector.ph2694:                                    ; preds = %vector.memcheck2619
  %n.vec2696 = and i64 %780, 2147483646
  %ind.end2697 = or i64 %780, 1
  %broadcast.splatinsert2704 = insertelement <2 x double> poison, double %753, i64 0
  %broadcast.splat2705 = shufflevector <2 x double> %broadcast.splatinsert2704, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2706 = insertelement <2 x double> poison, double %749, i64 0
  %broadcast.splat2707 = shufflevector <2 x double> %broadcast.splatinsert2706, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2709 = insertelement <2 x double> poison, double %756, i64 0
  %broadcast.splat2710 = shufflevector <2 x double> %broadcast.splatinsert2709, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2712 = insertelement <2 x double> poison, double %759, i64 0
  %broadcast.splat2713 = shufflevector <2 x double> %broadcast.splatinsert2712, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2715 = insertelement <2 x double> poison, double %762, i64 0
  %broadcast.splat2716 = shufflevector <2 x double> %broadcast.splatinsert2715, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2718 = insertelement <2 x double> poison, double %765, i64 0
  %broadcast.splat2719 = shufflevector <2 x double> %broadcast.splatinsert2718, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2720 = insertelement <2 x double> poison, double %751, i64 0
  %broadcast.splat2721 = shufflevector <2 x double> %broadcast.splatinsert2720, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2723 = insertelement <2 x double> poison, double %754, i64 0
  %broadcast.splat2724 = shufflevector <2 x double> %broadcast.splatinsert2723, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2726 = insertelement <2 x double> poison, double %757, i64 0
  %broadcast.splat2727 = shufflevector <2 x double> %broadcast.splatinsert2726, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2729 = insertelement <2 x double> poison, double %760, i64 0
  %broadcast.splat2730 = shufflevector <2 x double> %broadcast.splatinsert2729, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2732 = insertelement <2 x double> poison, double %763, i64 0
  %broadcast.splat2733 = shufflevector <2 x double> %broadcast.splatinsert2732, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2735 = insertelement <2 x double> poison, double %766, i64 0
  %broadcast.splat2736 = shufflevector <2 x double> %broadcast.splatinsert2735, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2699

vector.body2699:                                  ; preds = %vector.body2699, %vector.ph2694
  %index2700 = phi i64 [ 0, %vector.ph2694 ], [ %index.next2737, %vector.body2699 ]
  %offset.idx2701 = or disjoint i64 %index2700, 1
  %806 = getelementptr double, ptr %invariant.gep1723, i64 %offset.idx2701
  %wide.load2702 = load <2 x double>, ptr %806, align 8, !tbaa !9, !alias.scope !75, !noalias !78
  %807 = getelementptr double, ptr %invariant.gep1725, i64 %offset.idx2701
  %wide.load2703 = load <2 x double>, ptr %807, align 8, !tbaa !9, !alias.scope !84, !noalias !85
  %808 = fmul <2 x double> %broadcast.splat2705, %wide.load2703
  %809 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2707, <2 x double> %wide.load2702, <2 x double> %808)
  %810 = getelementptr double, ptr %invariant.gep1727, i64 %offset.idx2701
  %wide.load2708 = load <2 x double>, ptr %810, align 8, !tbaa !9, !alias.scope !86, !noalias !87
  %811 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2710, <2 x double> %wide.load2708, <2 x double> %809)
  %812 = getelementptr double, ptr %invariant.gep1729, i64 %offset.idx2701
  %wide.load2711 = load <2 x double>, ptr %812, align 8, !tbaa !9, !alias.scope !88, !noalias !89
  %813 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2713, <2 x double> %wide.load2711, <2 x double> %811)
  %814 = getelementptr double, ptr %invariant.gep1731, i64 %offset.idx2701
  %wide.load2714 = load <2 x double>, ptr %814, align 8, !tbaa !9, !alias.scope !90, !noalias !91
  %815 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2716, <2 x double> %wide.load2714, <2 x double> %813)
  %816 = getelementptr double, ptr %invariant.gep1733, i64 %offset.idx2701
  %wide.load2717 = load <2 x double>, ptr %816, align 8, !tbaa !9, !alias.scope !91
  %817 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2719, <2 x double> %wide.load2717, <2 x double> %815)
  %818 = fneg <2 x double> %817
  %819 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %818, <2 x double> %broadcast.splat2721, <2 x double> %wide.load2702)
  store <2 x double> %819, ptr %806, align 8, !tbaa !9, !alias.scope !75, !noalias !78
  %wide.load2722 = load <2 x double>, ptr %807, align 8, !tbaa !9, !alias.scope !84, !noalias !85
  %820 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %818, <2 x double> %broadcast.splat2724, <2 x double> %wide.load2722)
  store <2 x double> %820, ptr %807, align 8, !tbaa !9, !alias.scope !84, !noalias !85
  %wide.load2725 = load <2 x double>, ptr %810, align 8, !tbaa !9, !alias.scope !86, !noalias !87
  %821 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %818, <2 x double> %broadcast.splat2727, <2 x double> %wide.load2725)
  store <2 x double> %821, ptr %810, align 8, !tbaa !9, !alias.scope !86, !noalias !87
  %wide.load2728 = load <2 x double>, ptr %812, align 8, !tbaa !9, !alias.scope !88, !noalias !89
  %822 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %818, <2 x double> %broadcast.splat2730, <2 x double> %wide.load2728)
  store <2 x double> %822, ptr %812, align 8, !tbaa !9, !alias.scope !88, !noalias !89
  %wide.load2731 = load <2 x double>, ptr %814, align 8, !tbaa !9, !alias.scope !90, !noalias !91
  %823 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %818, <2 x double> %broadcast.splat2733, <2 x double> %wide.load2731)
  store <2 x double> %823, ptr %814, align 8, !tbaa !9, !alias.scope !90, !noalias !91
  %wide.load2734 = load <2 x double>, ptr %816, align 8, !tbaa !9, !alias.scope !91
  %824 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %818, <2 x double> %broadcast.splat2736, <2 x double> %wide.load2734)
  store <2 x double> %824, ptr %816, align 8, !tbaa !9, !alias.scope !91
  %index.next2737 = add nuw i64 %index2700, 2
  %825 = icmp eq i64 %index.next2737, %n.vec2696
  br i1 %825, label %middle.block2691, label %vector.body2699, !llvm.loop !92

middle.block2691:                                 ; preds = %vector.body2699
  %cmp.n2738 = icmp eq i64 %n.vec2696, %780
  br i1 %cmp.n2738, label %.loopexit, label %scalar.ph2692.preheader

scalar.ph2692.preheader:                          ; preds = %middle.block2691, %vector.memcheck2619, %.lr.ph1505
  %indvars.iv1606.ph = phi i64 [ 1, %vector.memcheck2619 ], [ 1, %.lr.ph1505 ], [ %ind.end2697, %middle.block2691 ]
  br label %scalar.ph2692

scalar.ph2692:                                    ; preds = %scalar.ph2692.preheader, %scalar.ph2692
  %indvars.iv1606 = phi i64 [ %indvars.iv.next1607, %scalar.ph2692 ], [ %indvars.iv1606.ph, %scalar.ph2692.preheader ]
  %gep1724 = getelementptr double, ptr %invariant.gep1723, i64 %indvars.iv1606
  %826 = load double, ptr %gep1724, align 8, !tbaa !9
  %gep1726 = getelementptr double, ptr %invariant.gep1725, i64 %indvars.iv1606
  %827 = load double, ptr %gep1726, align 8, !tbaa !9
  %828 = fmul double %753, %827
  %829 = tail call double @llvm.fmuladd.f64(double %749, double %826, double %828)
  %gep1728 = getelementptr double, ptr %invariant.gep1727, i64 %indvars.iv1606
  %830 = load double, ptr %gep1728, align 8, !tbaa !9
  %831 = tail call double @llvm.fmuladd.f64(double %756, double %830, double %829)
  %gep1730 = getelementptr double, ptr %invariant.gep1729, i64 %indvars.iv1606
  %832 = load double, ptr %gep1730, align 8, !tbaa !9
  %833 = tail call double @llvm.fmuladd.f64(double %759, double %832, double %831)
  %gep1732 = getelementptr double, ptr %invariant.gep1731, i64 %indvars.iv1606
  %834 = load double, ptr %gep1732, align 8, !tbaa !9
  %835 = tail call double @llvm.fmuladd.f64(double %762, double %834, double %833)
  %gep1734 = getelementptr double, ptr %invariant.gep1733, i64 %indvars.iv1606
  %836 = load double, ptr %gep1734, align 8, !tbaa !9
  %837 = tail call double @llvm.fmuladd.f64(double %765, double %836, double %835)
  %838 = fneg double %837
  %839 = tail call double @llvm.fmuladd.f64(double %838, double %751, double %826)
  store double %839, ptr %gep1724, align 8, !tbaa !9
  %840 = load double, ptr %gep1726, align 8, !tbaa !9
  %841 = tail call double @llvm.fmuladd.f64(double %838, double %754, double %840)
  store double %841, ptr %gep1726, align 8, !tbaa !9
  %842 = load double, ptr %gep1728, align 8, !tbaa !9
  %843 = tail call double @llvm.fmuladd.f64(double %838, double %757, double %842)
  store double %843, ptr %gep1728, align 8, !tbaa !9
  %844 = load double, ptr %gep1730, align 8, !tbaa !9
  %845 = tail call double @llvm.fmuladd.f64(double %838, double %760, double %844)
  store double %845, ptr %gep1730, align 8, !tbaa !9
  %846 = load double, ptr %gep1732, align 8, !tbaa !9
  %847 = tail call double @llvm.fmuladd.f64(double %838, double %763, double %846)
  store double %847, ptr %gep1732, align 8, !tbaa !9
  %848 = load double, ptr %gep1734, align 8, !tbaa !9
  %849 = tail call double @llvm.fmuladd.f64(double %838, double %766, double %848)
  store double %849, ptr %gep1734, align 8, !tbaa !9
  %indvars.iv.next1607 = add nuw nsw i64 %indvars.iv1606, 1
  %exitcond1610.not = icmp eq i64 %indvars.iv.next1607, %wide.trip.count1609
  br i1 %exitcond1610.not, label %.loopexit, label %scalar.ph2692, !llvm.loop !93

850:                                              ; preds = %480
  %851 = load double, ptr %3, align 8, !tbaa !9
  %852 = load double, ptr %4, align 8, !tbaa !9
  %853 = fmul double %851, %852
  %854 = getelementptr inbounds i8, ptr %3, i64 8
  %855 = load double, ptr %854, align 8, !tbaa !9
  %856 = fmul double %852, %855
  %857 = getelementptr inbounds i8, ptr %3, i64 16
  %858 = load double, ptr %857, align 8, !tbaa !9
  %859 = fmul double %852, %858
  %860 = getelementptr inbounds i8, ptr %3, i64 24
  %861 = load double, ptr %860, align 8, !tbaa !9
  %862 = fmul double %852, %861
  %863 = getelementptr inbounds i8, ptr %3, i64 32
  %864 = load double, ptr %863, align 8, !tbaa !9
  %865 = fmul double %852, %864
  %866 = getelementptr inbounds i8, ptr %3, i64 40
  %867 = load double, ptr %866, align 8, !tbaa !9
  %868 = fmul double %852, %867
  %869 = getelementptr inbounds i8, ptr %3, i64 48
  %870 = load double, ptr %869, align 8, !tbaa !9
  %871 = fmul double %852, %870
  %872 = load i32, ptr %1, align 4, !tbaa !5
  %.not14261500 = icmp slt i32 %872, 1
  br i1 %.not14261500, label %.loopexit, label %.lr.ph1502

.lr.ph1502:                                       ; preds = %850
  %873 = shl i32 %9, 1
  %874 = mul i32 %9, 3
  %875 = shl i32 %9, 2
  %876 = mul i32 %9, 5
  %877 = mul i32 %9, 6
  %878 = mul i32 %9, 7
  %879 = sext i32 %9 to i64
  %880 = sext i32 %873 to i64
  %881 = sext i32 %874 to i64
  %882 = sext i32 %875 to i64
  %883 = sext i32 %876 to i64
  %884 = sext i32 %877 to i64
  %885 = sext i32 %878 to i64
  %886 = add nuw i32 %872, 1
  %wide.trip.count1604 = zext i32 %886 to i64
  %invariant.gep1709 = getelementptr double, ptr %11, i64 %879
  %invariant.gep1711 = getelementptr double, ptr %11, i64 %880
  %invariant.gep1713 = getelementptr double, ptr %11, i64 %881
  %invariant.gep1715 = getelementptr double, ptr %11, i64 %882
  %invariant.gep1717 = getelementptr double, ptr %11, i64 %883
  %invariant.gep1719 = getelementptr double, ptr %11, i64 %884
  %invariant.gep1721 = getelementptr double, ptr %11, i64 %885
  %887 = zext nneg i32 %872 to i64
  %min.iters.check2567 = icmp ult i32 %872, 16
  br i1 %min.iters.check2567, label %scalar.ph2566.preheader, label %vector.memcheck2467

vector.memcheck2467:                              ; preds = %.lr.ph1502
  %888 = add nsw i64 %879, %10
  %889 = shl nsw i64 %888, 3
  %890 = getelementptr i8, ptr %5, i64 %889
  %scevgep2468 = getelementptr i8, ptr %890, i64 8
  %891 = shl nuw nsw i64 %wide.trip.count1604, 3
  %892 = getelementptr i8, ptr %5, i64 %889
  %scevgep2469 = getelementptr i8, ptr %892, i64 %891
  %893 = add nsw i64 %880, %10
  %894 = shl nsw i64 %893, 3
  %895 = getelementptr i8, ptr %5, i64 %894
  %scevgep2470 = getelementptr i8, ptr %895, i64 8
  %896 = getelementptr i8, ptr %5, i64 %894
  %scevgep2471 = getelementptr i8, ptr %896, i64 %891
  %897 = add nsw i64 %881, %10
  %898 = shl nsw i64 %897, 3
  %899 = getelementptr i8, ptr %5, i64 %898
  %scevgep2472 = getelementptr i8, ptr %899, i64 8
  %900 = getelementptr i8, ptr %5, i64 %898
  %scevgep2473 = getelementptr i8, ptr %900, i64 %891
  %901 = add nsw i64 %882, %10
  %902 = shl nsw i64 %901, 3
  %903 = getelementptr i8, ptr %5, i64 %902
  %scevgep2474 = getelementptr i8, ptr %903, i64 8
  %904 = getelementptr i8, ptr %5, i64 %902
  %scevgep2475 = getelementptr i8, ptr %904, i64 %891
  %905 = add nsw i64 %883, %10
  %906 = shl nsw i64 %905, 3
  %907 = getelementptr i8, ptr %5, i64 %906
  %scevgep2476 = getelementptr i8, ptr %907, i64 8
  %908 = getelementptr i8, ptr %5, i64 %906
  %scevgep2477 = getelementptr i8, ptr %908, i64 %891
  %909 = add nsw i64 %884, %10
  %910 = shl nsw i64 %909, 3
  %911 = getelementptr i8, ptr %5, i64 %910
  %scevgep2478 = getelementptr i8, ptr %911, i64 8
  %912 = getelementptr i8, ptr %5, i64 %910
  %scevgep2479 = getelementptr i8, ptr %912, i64 %891
  %913 = add nsw i64 %885, %10
  %914 = shl nsw i64 %913, 3
  %915 = getelementptr i8, ptr %5, i64 %914
  %scevgep2480 = getelementptr i8, ptr %915, i64 8
  %916 = getelementptr i8, ptr %5, i64 %914
  %scevgep2481 = getelementptr i8, ptr %916, i64 %891
  %bound02482 = icmp ult ptr %scevgep2468, %scevgep2471
  %bound12483 = icmp ult ptr %scevgep2470, %scevgep2469
  %found.conflict2484 = and i1 %bound02482, %bound12483
  %bound02485 = icmp ult ptr %scevgep2468, %scevgep2473
  %bound12486 = icmp ult ptr %scevgep2472, %scevgep2469
  %found.conflict2487 = and i1 %bound02485, %bound12486
  %conflict.rdx2488 = or i1 %found.conflict2484, %found.conflict2487
  %bound02489 = icmp ult ptr %scevgep2468, %scevgep2475
  %bound12490 = icmp ult ptr %scevgep2474, %scevgep2469
  %found.conflict2491 = and i1 %bound02489, %bound12490
  %conflict.rdx2492 = or i1 %conflict.rdx2488, %found.conflict2491
  %bound02493 = icmp ult ptr %scevgep2468, %scevgep2477
  %bound12494 = icmp ult ptr %scevgep2476, %scevgep2469
  %found.conflict2495 = and i1 %bound02493, %bound12494
  %conflict.rdx2496 = or i1 %conflict.rdx2492, %found.conflict2495
  %bound02497 = icmp ult ptr %scevgep2468, %scevgep2479
  %bound12498 = icmp ult ptr %scevgep2478, %scevgep2469
  %found.conflict2499 = and i1 %bound02497, %bound12498
  %conflict.rdx2500 = or i1 %conflict.rdx2496, %found.conflict2499
  %bound02501 = icmp ult ptr %scevgep2468, %scevgep2481
  %bound12502 = icmp ult ptr %scevgep2480, %scevgep2469
  %found.conflict2503 = and i1 %bound02501, %bound12502
  %conflict.rdx2504 = or i1 %conflict.rdx2500, %found.conflict2503
  %bound02505 = icmp ult ptr %scevgep2470, %scevgep2473
  %bound12506 = icmp ult ptr %scevgep2472, %scevgep2471
  %found.conflict2507 = and i1 %bound02505, %bound12506
  %conflict.rdx2508 = or i1 %conflict.rdx2504, %found.conflict2507
  %bound02509 = icmp ult ptr %scevgep2470, %scevgep2475
  %bound12510 = icmp ult ptr %scevgep2474, %scevgep2471
  %found.conflict2511 = and i1 %bound02509, %bound12510
  %conflict.rdx2512 = or i1 %conflict.rdx2508, %found.conflict2511
  %bound02513 = icmp ult ptr %scevgep2470, %scevgep2477
  %bound12514 = icmp ult ptr %scevgep2476, %scevgep2471
  %found.conflict2515 = and i1 %bound02513, %bound12514
  %conflict.rdx2516 = or i1 %conflict.rdx2512, %found.conflict2515
  %bound02517 = icmp ult ptr %scevgep2470, %scevgep2479
  %bound12518 = icmp ult ptr %scevgep2478, %scevgep2471
  %found.conflict2519 = and i1 %bound02517, %bound12518
  %conflict.rdx2520 = or i1 %conflict.rdx2516, %found.conflict2519
  %bound02521 = icmp ult ptr %scevgep2470, %scevgep2481
  %bound12522 = icmp ult ptr %scevgep2480, %scevgep2471
  %found.conflict2523 = and i1 %bound02521, %bound12522
  %conflict.rdx2524 = or i1 %conflict.rdx2520, %found.conflict2523
  %bound02525 = icmp ult ptr %scevgep2472, %scevgep2475
  %bound12526 = icmp ult ptr %scevgep2474, %scevgep2473
  %found.conflict2527 = and i1 %bound02525, %bound12526
  %conflict.rdx2528 = or i1 %conflict.rdx2524, %found.conflict2527
  %bound02529 = icmp ult ptr %scevgep2472, %scevgep2477
  %bound12530 = icmp ult ptr %scevgep2476, %scevgep2473
  %found.conflict2531 = and i1 %bound02529, %bound12530
  %conflict.rdx2532 = or i1 %conflict.rdx2528, %found.conflict2531
  %bound02533 = icmp ult ptr %scevgep2472, %scevgep2479
  %bound12534 = icmp ult ptr %scevgep2478, %scevgep2473
  %found.conflict2535 = and i1 %bound02533, %bound12534
  %conflict.rdx2536 = or i1 %conflict.rdx2532, %found.conflict2535
  %bound02537 = icmp ult ptr %scevgep2472, %scevgep2481
  %bound12538 = icmp ult ptr %scevgep2480, %scevgep2473
  %found.conflict2539 = and i1 %bound02537, %bound12538
  %conflict.rdx2540 = or i1 %conflict.rdx2536, %found.conflict2539
  %bound02541 = icmp ult ptr %scevgep2474, %scevgep2477
  %bound12542 = icmp ult ptr %scevgep2476, %scevgep2475
  %found.conflict2543 = and i1 %bound02541, %bound12542
  %conflict.rdx2544 = or i1 %conflict.rdx2540, %found.conflict2543
  %bound02545 = icmp ult ptr %scevgep2474, %scevgep2479
  %bound12546 = icmp ult ptr %scevgep2478, %scevgep2475
  %found.conflict2547 = and i1 %bound02545, %bound12546
  %conflict.rdx2548 = or i1 %conflict.rdx2544, %found.conflict2547
  %bound02549 = icmp ult ptr %scevgep2474, %scevgep2481
  %bound12550 = icmp ult ptr %scevgep2480, %scevgep2475
  %found.conflict2551 = and i1 %bound02549, %bound12550
  %conflict.rdx2552 = or i1 %conflict.rdx2548, %found.conflict2551
  %bound02553 = icmp ult ptr %scevgep2476, %scevgep2479
  %bound12554 = icmp ult ptr %scevgep2478, %scevgep2477
  %found.conflict2555 = and i1 %bound02553, %bound12554
  %conflict.rdx2556 = or i1 %conflict.rdx2552, %found.conflict2555
  %bound02557 = icmp ult ptr %scevgep2476, %scevgep2481
  %bound12558 = icmp ult ptr %scevgep2480, %scevgep2477
  %found.conflict2559 = and i1 %bound02557, %bound12558
  %conflict.rdx2560 = or i1 %conflict.rdx2556, %found.conflict2559
  %bound02561 = icmp ult ptr %scevgep2478, %scevgep2481
  %bound12562 = icmp ult ptr %scevgep2480, %scevgep2479
  %found.conflict2563 = and i1 %bound02561, %bound12562
  %conflict.rdx2564 = or i1 %conflict.rdx2560, %found.conflict2563
  br i1 %conflict.rdx2564, label %scalar.ph2566.preheader, label %vector.ph2568

vector.ph2568:                                    ; preds = %vector.memcheck2467
  %n.vec2570 = and i64 %887, 2147483646
  %ind.end2571 = or i64 %887, 1
  %broadcast.splatinsert2578 = insertelement <2 x double> poison, double %855, i64 0
  %broadcast.splat2579 = shufflevector <2 x double> %broadcast.splatinsert2578, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2580 = insertelement <2 x double> poison, double %851, i64 0
  %broadcast.splat2581 = shufflevector <2 x double> %broadcast.splatinsert2580, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2583 = insertelement <2 x double> poison, double %858, i64 0
  %broadcast.splat2584 = shufflevector <2 x double> %broadcast.splatinsert2583, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2586 = insertelement <2 x double> poison, double %861, i64 0
  %broadcast.splat2587 = shufflevector <2 x double> %broadcast.splatinsert2586, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2589 = insertelement <2 x double> poison, double %864, i64 0
  %broadcast.splat2590 = shufflevector <2 x double> %broadcast.splatinsert2589, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2592 = insertelement <2 x double> poison, double %867, i64 0
  %broadcast.splat2593 = shufflevector <2 x double> %broadcast.splatinsert2592, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2595 = insertelement <2 x double> poison, double %870, i64 0
  %broadcast.splat2596 = shufflevector <2 x double> %broadcast.splatinsert2595, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2597 = insertelement <2 x double> poison, double %853, i64 0
  %broadcast.splat2598 = shufflevector <2 x double> %broadcast.splatinsert2597, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2600 = insertelement <2 x double> poison, double %856, i64 0
  %broadcast.splat2601 = shufflevector <2 x double> %broadcast.splatinsert2600, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2603 = insertelement <2 x double> poison, double %859, i64 0
  %broadcast.splat2604 = shufflevector <2 x double> %broadcast.splatinsert2603, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2606 = insertelement <2 x double> poison, double %862, i64 0
  %broadcast.splat2607 = shufflevector <2 x double> %broadcast.splatinsert2606, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2609 = insertelement <2 x double> poison, double %865, i64 0
  %broadcast.splat2610 = shufflevector <2 x double> %broadcast.splatinsert2609, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2612 = insertelement <2 x double> poison, double %868, i64 0
  %broadcast.splat2613 = shufflevector <2 x double> %broadcast.splatinsert2612, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2615 = insertelement <2 x double> poison, double %871, i64 0
  %broadcast.splat2616 = shufflevector <2 x double> %broadcast.splatinsert2615, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2573

vector.body2573:                                  ; preds = %vector.body2573, %vector.ph2568
  %index2574 = phi i64 [ 0, %vector.ph2568 ], [ %index.next2617, %vector.body2573 ]
  %offset.idx2575 = or disjoint i64 %index2574, 1
  %917 = getelementptr double, ptr %invariant.gep1709, i64 %offset.idx2575
  %wide.load2576 = load <2 x double>, ptr %917, align 8, !tbaa !9, !alias.scope !94, !noalias !97
  %918 = getelementptr double, ptr %invariant.gep1711, i64 %offset.idx2575
  %wide.load2577 = load <2 x double>, ptr %918, align 8, !tbaa !9, !alias.scope !104, !noalias !105
  %919 = fmul <2 x double> %broadcast.splat2579, %wide.load2577
  %920 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2581, <2 x double> %wide.load2576, <2 x double> %919)
  %921 = getelementptr double, ptr %invariant.gep1713, i64 %offset.idx2575
  %wide.load2582 = load <2 x double>, ptr %921, align 8, !tbaa !9, !alias.scope !106, !noalias !107
  %922 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2584, <2 x double> %wide.load2582, <2 x double> %920)
  %923 = getelementptr double, ptr %invariant.gep1715, i64 %offset.idx2575
  %wide.load2585 = load <2 x double>, ptr %923, align 8, !tbaa !9, !alias.scope !108, !noalias !109
  %924 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2587, <2 x double> %wide.load2585, <2 x double> %922)
  %925 = getelementptr double, ptr %invariant.gep1717, i64 %offset.idx2575
  %wide.load2588 = load <2 x double>, ptr %925, align 8, !tbaa !9, !alias.scope !110, !noalias !111
  %926 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2590, <2 x double> %wide.load2588, <2 x double> %924)
  %927 = getelementptr double, ptr %invariant.gep1719, i64 %offset.idx2575
  %wide.load2591 = load <2 x double>, ptr %927, align 8, !tbaa !9, !alias.scope !112, !noalias !113
  %928 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2593, <2 x double> %wide.load2591, <2 x double> %926)
  %929 = getelementptr double, ptr %invariant.gep1721, i64 %offset.idx2575
  %wide.load2594 = load <2 x double>, ptr %929, align 8, !tbaa !9, !alias.scope !113
  %930 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2596, <2 x double> %wide.load2594, <2 x double> %928)
  %931 = fneg <2 x double> %930
  %932 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %931, <2 x double> %broadcast.splat2598, <2 x double> %wide.load2576)
  store <2 x double> %932, ptr %917, align 8, !tbaa !9, !alias.scope !94, !noalias !97
  %wide.load2599 = load <2 x double>, ptr %918, align 8, !tbaa !9, !alias.scope !104, !noalias !105
  %933 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %931, <2 x double> %broadcast.splat2601, <2 x double> %wide.load2599)
  store <2 x double> %933, ptr %918, align 8, !tbaa !9, !alias.scope !104, !noalias !105
  %wide.load2602 = load <2 x double>, ptr %921, align 8, !tbaa !9, !alias.scope !106, !noalias !107
  %934 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %931, <2 x double> %broadcast.splat2604, <2 x double> %wide.load2602)
  store <2 x double> %934, ptr %921, align 8, !tbaa !9, !alias.scope !106, !noalias !107
  %wide.load2605 = load <2 x double>, ptr %923, align 8, !tbaa !9, !alias.scope !108, !noalias !109
  %935 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %931, <2 x double> %broadcast.splat2607, <2 x double> %wide.load2605)
  store <2 x double> %935, ptr %923, align 8, !tbaa !9, !alias.scope !108, !noalias !109
  %wide.load2608 = load <2 x double>, ptr %925, align 8, !tbaa !9, !alias.scope !110, !noalias !111
  %936 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %931, <2 x double> %broadcast.splat2610, <2 x double> %wide.load2608)
  store <2 x double> %936, ptr %925, align 8, !tbaa !9, !alias.scope !110, !noalias !111
  %wide.load2611 = load <2 x double>, ptr %927, align 8, !tbaa !9, !alias.scope !112, !noalias !113
  %937 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %931, <2 x double> %broadcast.splat2613, <2 x double> %wide.load2611)
  store <2 x double> %937, ptr %927, align 8, !tbaa !9, !alias.scope !112, !noalias !113
  %wide.load2614 = load <2 x double>, ptr %929, align 8, !tbaa !9, !alias.scope !113
  %938 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %931, <2 x double> %broadcast.splat2616, <2 x double> %wide.load2614)
  store <2 x double> %938, ptr %929, align 8, !tbaa !9, !alias.scope !113
  %index.next2617 = add nuw i64 %index2574, 2
  %939 = icmp eq i64 %index.next2617, %n.vec2570
  br i1 %939, label %middle.block2565, label %vector.body2573, !llvm.loop !114

middle.block2565:                                 ; preds = %vector.body2573
  %cmp.n2618 = icmp eq i64 %n.vec2570, %887
  br i1 %cmp.n2618, label %.loopexit, label %scalar.ph2566.preheader

scalar.ph2566.preheader:                          ; preds = %middle.block2565, %vector.memcheck2467, %.lr.ph1502
  %indvars.iv1601.ph = phi i64 [ 1, %vector.memcheck2467 ], [ 1, %.lr.ph1502 ], [ %ind.end2571, %middle.block2565 ]
  br label %scalar.ph2566

scalar.ph2566:                                    ; preds = %scalar.ph2566.preheader, %scalar.ph2566
  %indvars.iv1601 = phi i64 [ %indvars.iv.next1602, %scalar.ph2566 ], [ %indvars.iv1601.ph, %scalar.ph2566.preheader ]
  %gep1710 = getelementptr double, ptr %invariant.gep1709, i64 %indvars.iv1601
  %940 = load double, ptr %gep1710, align 8, !tbaa !9
  %gep1712 = getelementptr double, ptr %invariant.gep1711, i64 %indvars.iv1601
  %941 = load double, ptr %gep1712, align 8, !tbaa !9
  %942 = fmul double %855, %941
  %943 = tail call double @llvm.fmuladd.f64(double %851, double %940, double %942)
  %gep1714 = getelementptr double, ptr %invariant.gep1713, i64 %indvars.iv1601
  %944 = load double, ptr %gep1714, align 8, !tbaa !9
  %945 = tail call double @llvm.fmuladd.f64(double %858, double %944, double %943)
  %gep1716 = getelementptr double, ptr %invariant.gep1715, i64 %indvars.iv1601
  %946 = load double, ptr %gep1716, align 8, !tbaa !9
  %947 = tail call double @llvm.fmuladd.f64(double %861, double %946, double %945)
  %gep1718 = getelementptr double, ptr %invariant.gep1717, i64 %indvars.iv1601
  %948 = load double, ptr %gep1718, align 8, !tbaa !9
  %949 = tail call double @llvm.fmuladd.f64(double %864, double %948, double %947)
  %gep1720 = getelementptr double, ptr %invariant.gep1719, i64 %indvars.iv1601
  %950 = load double, ptr %gep1720, align 8, !tbaa !9
  %951 = tail call double @llvm.fmuladd.f64(double %867, double %950, double %949)
  %gep1722 = getelementptr double, ptr %invariant.gep1721, i64 %indvars.iv1601
  %952 = load double, ptr %gep1722, align 8, !tbaa !9
  %953 = tail call double @llvm.fmuladd.f64(double %870, double %952, double %951)
  %954 = fneg double %953
  %955 = tail call double @llvm.fmuladd.f64(double %954, double %853, double %940)
  store double %955, ptr %gep1710, align 8, !tbaa !9
  %956 = load double, ptr %gep1712, align 8, !tbaa !9
  %957 = tail call double @llvm.fmuladd.f64(double %954, double %856, double %956)
  store double %957, ptr %gep1712, align 8, !tbaa !9
  %958 = load double, ptr %gep1714, align 8, !tbaa !9
  %959 = tail call double @llvm.fmuladd.f64(double %954, double %859, double %958)
  store double %959, ptr %gep1714, align 8, !tbaa !9
  %960 = load double, ptr %gep1716, align 8, !tbaa !9
  %961 = tail call double @llvm.fmuladd.f64(double %954, double %862, double %960)
  store double %961, ptr %gep1716, align 8, !tbaa !9
  %962 = load double, ptr %gep1718, align 8, !tbaa !9
  %963 = tail call double @llvm.fmuladd.f64(double %954, double %865, double %962)
  store double %963, ptr %gep1718, align 8, !tbaa !9
  %964 = load double, ptr %gep1720, align 8, !tbaa !9
  %965 = tail call double @llvm.fmuladd.f64(double %954, double %868, double %964)
  store double %965, ptr %gep1720, align 8, !tbaa !9
  %966 = load double, ptr %gep1722, align 8, !tbaa !9
  %967 = tail call double @llvm.fmuladd.f64(double %954, double %871, double %966)
  store double %967, ptr %gep1722, align 8, !tbaa !9
  %indvars.iv.next1602 = add nuw nsw i64 %indvars.iv1601, 1
  %exitcond1605.not = icmp eq i64 %indvars.iv.next1602, %wide.trip.count1604
  br i1 %exitcond1605.not, label %.loopexit, label %scalar.ph2566, !llvm.loop !115

968:                                              ; preds = %480
  %969 = load double, ptr %3, align 8, !tbaa !9
  %970 = load double, ptr %4, align 8, !tbaa !9
  %971 = fmul double %969, %970
  %972 = getelementptr inbounds i8, ptr %3, i64 8
  %973 = load double, ptr %972, align 8, !tbaa !9
  %974 = fmul double %970, %973
  %975 = getelementptr inbounds i8, ptr %3, i64 16
  %976 = load double, ptr %975, align 8, !tbaa !9
  %977 = fmul double %970, %976
  %978 = getelementptr inbounds i8, ptr %3, i64 24
  %979 = load double, ptr %978, align 8, !tbaa !9
  %980 = fmul double %970, %979
  %981 = getelementptr inbounds i8, ptr %3, i64 32
  %982 = load double, ptr %981, align 8, !tbaa !9
  %983 = fmul double %970, %982
  %984 = getelementptr inbounds i8, ptr %3, i64 40
  %985 = load double, ptr %984, align 8, !tbaa !9
  %986 = fmul double %970, %985
  %987 = getelementptr inbounds i8, ptr %3, i64 48
  %988 = load double, ptr %987, align 8, !tbaa !9
  %989 = fmul double %970, %988
  %990 = getelementptr inbounds i8, ptr %3, i64 56
  %991 = load double, ptr %990, align 8, !tbaa !9
  %992 = fmul double %970, %991
  %993 = load i32, ptr %1, align 4, !tbaa !5
  %.not14251497 = icmp slt i32 %993, 1
  br i1 %.not14251497, label %.loopexit, label %.lr.ph1499

.lr.ph1499:                                       ; preds = %968
  %994 = shl i32 %9, 1
  %995 = mul i32 %9, 3
  %996 = shl i32 %9, 2
  %997 = mul i32 %9, 5
  %998 = mul i32 %9, 6
  %999 = mul i32 %9, 7
  %1000 = shl i32 %9, 3
  %1001 = sext i32 %9 to i64
  %1002 = sext i32 %994 to i64
  %1003 = sext i32 %995 to i64
  %1004 = sext i32 %996 to i64
  %1005 = sext i32 %997 to i64
  %1006 = sext i32 %998 to i64
  %1007 = sext i32 %999 to i64
  %1008 = sext i32 %1000 to i64
  %1009 = add nuw i32 %993, 1
  %wide.trip.count1599 = zext i32 %1009 to i64
  %invariant.gep1693 = getelementptr double, ptr %11, i64 %1001
  %invariant.gep1695 = getelementptr double, ptr %11, i64 %1002
  %invariant.gep1697 = getelementptr double, ptr %11, i64 %1003
  %invariant.gep1699 = getelementptr double, ptr %11, i64 %1004
  %invariant.gep1701 = getelementptr double, ptr %11, i64 %1005
  %invariant.gep1703 = getelementptr double, ptr %11, i64 %1006
  %invariant.gep1705 = getelementptr double, ptr %11, i64 %1007
  %invariant.gep1707 = getelementptr double, ptr %11, i64 %1008
  %1010 = zext nneg i32 %993 to i64
  %min.iters.check2409 = icmp ult i32 %993, 18
  br i1 %min.iters.check2409, label %scalar.ph2408.preheader, label %vector.memcheck2279

vector.memcheck2279:                              ; preds = %.lr.ph1499
  %1011 = add nsw i64 %1001, %10
  %1012 = shl nsw i64 %1011, 3
  %1013 = getelementptr i8, ptr %5, i64 %1012
  %scevgep2280 = getelementptr i8, ptr %1013, i64 8
  %1014 = shl nuw nsw i64 %wide.trip.count1599, 3
  %1015 = getelementptr i8, ptr %5, i64 %1012
  %scevgep2281 = getelementptr i8, ptr %1015, i64 %1014
  %1016 = add nsw i64 %1002, %10
  %1017 = shl nsw i64 %1016, 3
  %1018 = getelementptr i8, ptr %5, i64 %1017
  %scevgep2282 = getelementptr i8, ptr %1018, i64 8
  %1019 = getelementptr i8, ptr %5, i64 %1017
  %scevgep2283 = getelementptr i8, ptr %1019, i64 %1014
  %1020 = add nsw i64 %1003, %10
  %1021 = shl nsw i64 %1020, 3
  %1022 = getelementptr i8, ptr %5, i64 %1021
  %scevgep2284 = getelementptr i8, ptr %1022, i64 8
  %1023 = getelementptr i8, ptr %5, i64 %1021
  %scevgep2285 = getelementptr i8, ptr %1023, i64 %1014
  %1024 = add nsw i64 %1004, %10
  %1025 = shl nsw i64 %1024, 3
  %1026 = getelementptr i8, ptr %5, i64 %1025
  %scevgep2286 = getelementptr i8, ptr %1026, i64 8
  %1027 = getelementptr i8, ptr %5, i64 %1025
  %scevgep2287 = getelementptr i8, ptr %1027, i64 %1014
  %1028 = add nsw i64 %1005, %10
  %1029 = shl nsw i64 %1028, 3
  %1030 = getelementptr i8, ptr %5, i64 %1029
  %scevgep2288 = getelementptr i8, ptr %1030, i64 8
  %1031 = getelementptr i8, ptr %5, i64 %1029
  %scevgep2289 = getelementptr i8, ptr %1031, i64 %1014
  %1032 = add nsw i64 %1006, %10
  %1033 = shl nsw i64 %1032, 3
  %1034 = getelementptr i8, ptr %5, i64 %1033
  %scevgep2290 = getelementptr i8, ptr %1034, i64 8
  %1035 = getelementptr i8, ptr %5, i64 %1033
  %scevgep2291 = getelementptr i8, ptr %1035, i64 %1014
  %1036 = add nsw i64 %1007, %10
  %1037 = shl nsw i64 %1036, 3
  %1038 = getelementptr i8, ptr %5, i64 %1037
  %scevgep2292 = getelementptr i8, ptr %1038, i64 8
  %1039 = getelementptr i8, ptr %5, i64 %1037
  %scevgep2293 = getelementptr i8, ptr %1039, i64 %1014
  %1040 = add nsw i64 %1008, %10
  %1041 = shl nsw i64 %1040, 3
  %1042 = getelementptr i8, ptr %5, i64 %1041
  %scevgep2294 = getelementptr i8, ptr %1042, i64 8
  %1043 = getelementptr i8, ptr %5, i64 %1041
  %scevgep2295 = getelementptr i8, ptr %1043, i64 %1014
  %bound02296 = icmp ult ptr %scevgep2280, %scevgep2283
  %bound12297 = icmp ult ptr %scevgep2282, %scevgep2281
  %found.conflict2298 = and i1 %bound02296, %bound12297
  %bound02299 = icmp ult ptr %scevgep2280, %scevgep2285
  %bound12300 = icmp ult ptr %scevgep2284, %scevgep2281
  %found.conflict2301 = and i1 %bound02299, %bound12300
  %conflict.rdx2302 = or i1 %found.conflict2298, %found.conflict2301
  %bound02303 = icmp ult ptr %scevgep2280, %scevgep2287
  %bound12304 = icmp ult ptr %scevgep2286, %scevgep2281
  %found.conflict2305 = and i1 %bound02303, %bound12304
  %conflict.rdx2306 = or i1 %conflict.rdx2302, %found.conflict2305
  %bound02307 = icmp ult ptr %scevgep2280, %scevgep2289
  %bound12308 = icmp ult ptr %scevgep2288, %scevgep2281
  %found.conflict2309 = and i1 %bound02307, %bound12308
  %conflict.rdx2310 = or i1 %conflict.rdx2306, %found.conflict2309
  %bound02311 = icmp ult ptr %scevgep2280, %scevgep2291
  %bound12312 = icmp ult ptr %scevgep2290, %scevgep2281
  %found.conflict2313 = and i1 %bound02311, %bound12312
  %conflict.rdx2314 = or i1 %conflict.rdx2310, %found.conflict2313
  %bound02315 = icmp ult ptr %scevgep2280, %scevgep2293
  %bound12316 = icmp ult ptr %scevgep2292, %scevgep2281
  %found.conflict2317 = and i1 %bound02315, %bound12316
  %conflict.rdx2318 = or i1 %conflict.rdx2314, %found.conflict2317
  %bound02319 = icmp ult ptr %scevgep2280, %scevgep2295
  %bound12320 = icmp ult ptr %scevgep2294, %scevgep2281
  %found.conflict2321 = and i1 %bound02319, %bound12320
  %conflict.rdx2322 = or i1 %conflict.rdx2318, %found.conflict2321
  %bound02323 = icmp ult ptr %scevgep2282, %scevgep2285
  %bound12324 = icmp ult ptr %scevgep2284, %scevgep2283
  %found.conflict2325 = and i1 %bound02323, %bound12324
  %conflict.rdx2326 = or i1 %conflict.rdx2322, %found.conflict2325
  %bound02327 = icmp ult ptr %scevgep2282, %scevgep2287
  %bound12328 = icmp ult ptr %scevgep2286, %scevgep2283
  %found.conflict2329 = and i1 %bound02327, %bound12328
  %conflict.rdx2330 = or i1 %conflict.rdx2326, %found.conflict2329
  %bound02331 = icmp ult ptr %scevgep2282, %scevgep2289
  %bound12332 = icmp ult ptr %scevgep2288, %scevgep2283
  %found.conflict2333 = and i1 %bound02331, %bound12332
  %conflict.rdx2334 = or i1 %conflict.rdx2330, %found.conflict2333
  %bound02335 = icmp ult ptr %scevgep2282, %scevgep2291
  %bound12336 = icmp ult ptr %scevgep2290, %scevgep2283
  %found.conflict2337 = and i1 %bound02335, %bound12336
  %conflict.rdx2338 = or i1 %conflict.rdx2334, %found.conflict2337
  %bound02339 = icmp ult ptr %scevgep2282, %scevgep2293
  %bound12340 = icmp ult ptr %scevgep2292, %scevgep2283
  %found.conflict2341 = and i1 %bound02339, %bound12340
  %conflict.rdx2342 = or i1 %conflict.rdx2338, %found.conflict2341
  %bound02343 = icmp ult ptr %scevgep2282, %scevgep2295
  %bound12344 = icmp ult ptr %scevgep2294, %scevgep2283
  %found.conflict2345 = and i1 %bound02343, %bound12344
  %conflict.rdx2346 = or i1 %conflict.rdx2342, %found.conflict2345
  %bound02347 = icmp ult ptr %scevgep2284, %scevgep2287
  %bound12348 = icmp ult ptr %scevgep2286, %scevgep2285
  %found.conflict2349 = and i1 %bound02347, %bound12348
  %conflict.rdx2350 = or i1 %conflict.rdx2346, %found.conflict2349
  %bound02351 = icmp ult ptr %scevgep2284, %scevgep2289
  %bound12352 = icmp ult ptr %scevgep2288, %scevgep2285
  %found.conflict2353 = and i1 %bound02351, %bound12352
  %conflict.rdx2354 = or i1 %conflict.rdx2350, %found.conflict2353
  %bound02355 = icmp ult ptr %scevgep2284, %scevgep2291
  %bound12356 = icmp ult ptr %scevgep2290, %scevgep2285
  %found.conflict2357 = and i1 %bound02355, %bound12356
  %conflict.rdx2358 = or i1 %conflict.rdx2354, %found.conflict2357
  %bound02359 = icmp ult ptr %scevgep2284, %scevgep2293
  %bound12360 = icmp ult ptr %scevgep2292, %scevgep2285
  %found.conflict2361 = and i1 %bound02359, %bound12360
  %conflict.rdx2362 = or i1 %conflict.rdx2358, %found.conflict2361
  %bound02363 = icmp ult ptr %scevgep2284, %scevgep2295
  %bound12364 = icmp ult ptr %scevgep2294, %scevgep2285
  %found.conflict2365 = and i1 %bound02363, %bound12364
  %conflict.rdx2366 = or i1 %conflict.rdx2362, %found.conflict2365
  %bound02367 = icmp ult ptr %scevgep2286, %scevgep2289
  %bound12368 = icmp ult ptr %scevgep2288, %scevgep2287
  %found.conflict2369 = and i1 %bound02367, %bound12368
  %conflict.rdx2370 = or i1 %conflict.rdx2366, %found.conflict2369
  %bound02371 = icmp ult ptr %scevgep2286, %scevgep2291
  %bound12372 = icmp ult ptr %scevgep2290, %scevgep2287
  %found.conflict2373 = and i1 %bound02371, %bound12372
  %conflict.rdx2374 = or i1 %conflict.rdx2370, %found.conflict2373
  %bound02375 = icmp ult ptr %scevgep2286, %scevgep2293
  %bound12376 = icmp ult ptr %scevgep2292, %scevgep2287
  %found.conflict2377 = and i1 %bound02375, %bound12376
  %conflict.rdx2378 = or i1 %conflict.rdx2374, %found.conflict2377
  %bound02379 = icmp ult ptr %scevgep2286, %scevgep2295
  %bound12380 = icmp ult ptr %scevgep2294, %scevgep2287
  %found.conflict2381 = and i1 %bound02379, %bound12380
  %conflict.rdx2382 = or i1 %conflict.rdx2378, %found.conflict2381
  %bound02383 = icmp ult ptr %scevgep2288, %scevgep2291
  %bound12384 = icmp ult ptr %scevgep2290, %scevgep2289
  %found.conflict2385 = and i1 %bound02383, %bound12384
  %conflict.rdx2386 = or i1 %conflict.rdx2382, %found.conflict2385
  %bound02387 = icmp ult ptr %scevgep2288, %scevgep2293
  %bound12388 = icmp ult ptr %scevgep2292, %scevgep2289
  %found.conflict2389 = and i1 %bound02387, %bound12388
  %conflict.rdx2390 = or i1 %conflict.rdx2386, %found.conflict2389
  %bound02391 = icmp ult ptr %scevgep2288, %scevgep2295
  %bound12392 = icmp ult ptr %scevgep2294, %scevgep2289
  %found.conflict2393 = and i1 %bound02391, %bound12392
  %conflict.rdx2394 = or i1 %conflict.rdx2390, %found.conflict2393
  %bound02395 = icmp ult ptr %scevgep2290, %scevgep2293
  %bound12396 = icmp ult ptr %scevgep2292, %scevgep2291
  %found.conflict2397 = and i1 %bound02395, %bound12396
  %conflict.rdx2398 = or i1 %conflict.rdx2394, %found.conflict2397
  %bound02399 = icmp ult ptr %scevgep2290, %scevgep2295
  %bound12400 = icmp ult ptr %scevgep2294, %scevgep2291
  %found.conflict2401 = and i1 %bound02399, %bound12400
  %conflict.rdx2402 = or i1 %conflict.rdx2398, %found.conflict2401
  %bound02403 = icmp ult ptr %scevgep2292, %scevgep2295
  %bound12404 = icmp ult ptr %scevgep2294, %scevgep2293
  %found.conflict2405 = and i1 %bound02403, %bound12404
  %conflict.rdx2406 = or i1 %conflict.rdx2402, %found.conflict2405
  br i1 %conflict.rdx2406, label %scalar.ph2408.preheader, label %vector.ph2410

vector.ph2410:                                    ; preds = %vector.memcheck2279
  %n.vec2412 = and i64 %1010, 2147483646
  %ind.end2413 = or i64 %1010, 1
  %broadcast.splatinsert2420 = insertelement <2 x double> poison, double %973, i64 0
  %broadcast.splat2421 = shufflevector <2 x double> %broadcast.splatinsert2420, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2422 = insertelement <2 x double> poison, double %969, i64 0
  %broadcast.splat2423 = shufflevector <2 x double> %broadcast.splatinsert2422, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2425 = insertelement <2 x double> poison, double %976, i64 0
  %broadcast.splat2426 = shufflevector <2 x double> %broadcast.splatinsert2425, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2428 = insertelement <2 x double> poison, double %979, i64 0
  %broadcast.splat2429 = shufflevector <2 x double> %broadcast.splatinsert2428, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2431 = insertelement <2 x double> poison, double %982, i64 0
  %broadcast.splat2432 = shufflevector <2 x double> %broadcast.splatinsert2431, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2434 = insertelement <2 x double> poison, double %985, i64 0
  %broadcast.splat2435 = shufflevector <2 x double> %broadcast.splatinsert2434, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2437 = insertelement <2 x double> poison, double %988, i64 0
  %broadcast.splat2438 = shufflevector <2 x double> %broadcast.splatinsert2437, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2440 = insertelement <2 x double> poison, double %991, i64 0
  %broadcast.splat2441 = shufflevector <2 x double> %broadcast.splatinsert2440, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2442 = insertelement <2 x double> poison, double %971, i64 0
  %broadcast.splat2443 = shufflevector <2 x double> %broadcast.splatinsert2442, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2445 = insertelement <2 x double> poison, double %974, i64 0
  %broadcast.splat2446 = shufflevector <2 x double> %broadcast.splatinsert2445, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2448 = insertelement <2 x double> poison, double %977, i64 0
  %broadcast.splat2449 = shufflevector <2 x double> %broadcast.splatinsert2448, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2451 = insertelement <2 x double> poison, double %980, i64 0
  %broadcast.splat2452 = shufflevector <2 x double> %broadcast.splatinsert2451, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2454 = insertelement <2 x double> poison, double %983, i64 0
  %broadcast.splat2455 = shufflevector <2 x double> %broadcast.splatinsert2454, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2457 = insertelement <2 x double> poison, double %986, i64 0
  %broadcast.splat2458 = shufflevector <2 x double> %broadcast.splatinsert2457, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2460 = insertelement <2 x double> poison, double %989, i64 0
  %broadcast.splat2461 = shufflevector <2 x double> %broadcast.splatinsert2460, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2463 = insertelement <2 x double> poison, double %992, i64 0
  %broadcast.splat2464 = shufflevector <2 x double> %broadcast.splatinsert2463, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2415

vector.body2415:                                  ; preds = %vector.body2415, %vector.ph2410
  %index2416 = phi i64 [ 0, %vector.ph2410 ], [ %index.next2465, %vector.body2415 ]
  %offset.idx2417 = or disjoint i64 %index2416, 1
  %1044 = getelementptr double, ptr %invariant.gep1693, i64 %offset.idx2417
  %wide.load2418 = load <2 x double>, ptr %1044, align 8, !tbaa !9, !alias.scope !116, !noalias !119
  %1045 = getelementptr double, ptr %invariant.gep1695, i64 %offset.idx2417
  %wide.load2419 = load <2 x double>, ptr %1045, align 8, !tbaa !9, !alias.scope !127, !noalias !128
  %1046 = fmul <2 x double> %broadcast.splat2421, %wide.load2419
  %1047 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2423, <2 x double> %wide.load2418, <2 x double> %1046)
  %1048 = getelementptr double, ptr %invariant.gep1697, i64 %offset.idx2417
  %wide.load2424 = load <2 x double>, ptr %1048, align 8, !tbaa !9, !alias.scope !129, !noalias !130
  %1049 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2426, <2 x double> %wide.load2424, <2 x double> %1047)
  %1050 = getelementptr double, ptr %invariant.gep1699, i64 %offset.idx2417
  %wide.load2427 = load <2 x double>, ptr %1050, align 8, !tbaa !9, !alias.scope !131, !noalias !132
  %1051 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2429, <2 x double> %wide.load2427, <2 x double> %1049)
  %1052 = getelementptr double, ptr %invariant.gep1701, i64 %offset.idx2417
  %wide.load2430 = load <2 x double>, ptr %1052, align 8, !tbaa !9, !alias.scope !133, !noalias !134
  %1053 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2432, <2 x double> %wide.load2430, <2 x double> %1051)
  %1054 = getelementptr double, ptr %invariant.gep1703, i64 %offset.idx2417
  %wide.load2433 = load <2 x double>, ptr %1054, align 8, !tbaa !9, !alias.scope !135, !noalias !136
  %1055 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2435, <2 x double> %wide.load2433, <2 x double> %1053)
  %1056 = getelementptr double, ptr %invariant.gep1705, i64 %offset.idx2417
  %wide.load2436 = load <2 x double>, ptr %1056, align 8, !tbaa !9, !alias.scope !137, !noalias !138
  %1057 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2438, <2 x double> %wide.load2436, <2 x double> %1055)
  %1058 = getelementptr double, ptr %invariant.gep1707, i64 %offset.idx2417
  %wide.load2439 = load <2 x double>, ptr %1058, align 8, !tbaa !9, !alias.scope !138
  %1059 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2441, <2 x double> %wide.load2439, <2 x double> %1057)
  %1060 = fneg <2 x double> %1059
  %1061 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1060, <2 x double> %broadcast.splat2443, <2 x double> %wide.load2418)
  store <2 x double> %1061, ptr %1044, align 8, !tbaa !9, !alias.scope !116, !noalias !119
  %wide.load2444 = load <2 x double>, ptr %1045, align 8, !tbaa !9, !alias.scope !127, !noalias !128
  %1062 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1060, <2 x double> %broadcast.splat2446, <2 x double> %wide.load2444)
  store <2 x double> %1062, ptr %1045, align 8, !tbaa !9, !alias.scope !127, !noalias !128
  %wide.load2447 = load <2 x double>, ptr %1048, align 8, !tbaa !9, !alias.scope !129, !noalias !130
  %1063 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1060, <2 x double> %broadcast.splat2449, <2 x double> %wide.load2447)
  store <2 x double> %1063, ptr %1048, align 8, !tbaa !9, !alias.scope !129, !noalias !130
  %wide.load2450 = load <2 x double>, ptr %1050, align 8, !tbaa !9, !alias.scope !131, !noalias !132
  %1064 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1060, <2 x double> %broadcast.splat2452, <2 x double> %wide.load2450)
  store <2 x double> %1064, ptr %1050, align 8, !tbaa !9, !alias.scope !131, !noalias !132
  %wide.load2453 = load <2 x double>, ptr %1052, align 8, !tbaa !9, !alias.scope !133, !noalias !134
  %1065 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1060, <2 x double> %broadcast.splat2455, <2 x double> %wide.load2453)
  store <2 x double> %1065, ptr %1052, align 8, !tbaa !9, !alias.scope !133, !noalias !134
  %wide.load2456 = load <2 x double>, ptr %1054, align 8, !tbaa !9, !alias.scope !135, !noalias !136
  %1066 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1060, <2 x double> %broadcast.splat2458, <2 x double> %wide.load2456)
  store <2 x double> %1066, ptr %1054, align 8, !tbaa !9, !alias.scope !135, !noalias !136
  %wide.load2459 = load <2 x double>, ptr %1056, align 8, !tbaa !9, !alias.scope !137, !noalias !138
  %1067 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1060, <2 x double> %broadcast.splat2461, <2 x double> %wide.load2459)
  store <2 x double> %1067, ptr %1056, align 8, !tbaa !9, !alias.scope !137, !noalias !138
  %wide.load2462 = load <2 x double>, ptr %1058, align 8, !tbaa !9, !alias.scope !138
  %1068 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1060, <2 x double> %broadcast.splat2464, <2 x double> %wide.load2462)
  store <2 x double> %1068, ptr %1058, align 8, !tbaa !9, !alias.scope !138
  %index.next2465 = add nuw i64 %index2416, 2
  %1069 = icmp eq i64 %index.next2465, %n.vec2412
  br i1 %1069, label %middle.block2407, label %vector.body2415, !llvm.loop !139

middle.block2407:                                 ; preds = %vector.body2415
  %cmp.n2466 = icmp eq i64 %n.vec2412, %1010
  br i1 %cmp.n2466, label %.loopexit, label %scalar.ph2408.preheader

scalar.ph2408.preheader:                          ; preds = %middle.block2407, %vector.memcheck2279, %.lr.ph1499
  %indvars.iv1596.ph = phi i64 [ 1, %vector.memcheck2279 ], [ 1, %.lr.ph1499 ], [ %ind.end2413, %middle.block2407 ]
  br label %scalar.ph2408

scalar.ph2408:                                    ; preds = %scalar.ph2408.preheader, %scalar.ph2408
  %indvars.iv1596 = phi i64 [ %indvars.iv.next1597, %scalar.ph2408 ], [ %indvars.iv1596.ph, %scalar.ph2408.preheader ]
  %gep1694 = getelementptr double, ptr %invariant.gep1693, i64 %indvars.iv1596
  %1070 = load double, ptr %gep1694, align 8, !tbaa !9
  %gep1696 = getelementptr double, ptr %invariant.gep1695, i64 %indvars.iv1596
  %1071 = load double, ptr %gep1696, align 8, !tbaa !9
  %1072 = fmul double %973, %1071
  %1073 = tail call double @llvm.fmuladd.f64(double %969, double %1070, double %1072)
  %gep1698 = getelementptr double, ptr %invariant.gep1697, i64 %indvars.iv1596
  %1074 = load double, ptr %gep1698, align 8, !tbaa !9
  %1075 = tail call double @llvm.fmuladd.f64(double %976, double %1074, double %1073)
  %gep1700 = getelementptr double, ptr %invariant.gep1699, i64 %indvars.iv1596
  %1076 = load double, ptr %gep1700, align 8, !tbaa !9
  %1077 = tail call double @llvm.fmuladd.f64(double %979, double %1076, double %1075)
  %gep1702 = getelementptr double, ptr %invariant.gep1701, i64 %indvars.iv1596
  %1078 = load double, ptr %gep1702, align 8, !tbaa !9
  %1079 = tail call double @llvm.fmuladd.f64(double %982, double %1078, double %1077)
  %gep1704 = getelementptr double, ptr %invariant.gep1703, i64 %indvars.iv1596
  %1080 = load double, ptr %gep1704, align 8, !tbaa !9
  %1081 = tail call double @llvm.fmuladd.f64(double %985, double %1080, double %1079)
  %gep1706 = getelementptr double, ptr %invariant.gep1705, i64 %indvars.iv1596
  %1082 = load double, ptr %gep1706, align 8, !tbaa !9
  %1083 = tail call double @llvm.fmuladd.f64(double %988, double %1082, double %1081)
  %gep1708 = getelementptr double, ptr %invariant.gep1707, i64 %indvars.iv1596
  %1084 = load double, ptr %gep1708, align 8, !tbaa !9
  %1085 = tail call double @llvm.fmuladd.f64(double %991, double %1084, double %1083)
  %1086 = fneg double %1085
  %1087 = tail call double @llvm.fmuladd.f64(double %1086, double %971, double %1070)
  store double %1087, ptr %gep1694, align 8, !tbaa !9
  %1088 = load double, ptr %gep1696, align 8, !tbaa !9
  %1089 = tail call double @llvm.fmuladd.f64(double %1086, double %974, double %1088)
  store double %1089, ptr %gep1696, align 8, !tbaa !9
  %1090 = load double, ptr %gep1698, align 8, !tbaa !9
  %1091 = tail call double @llvm.fmuladd.f64(double %1086, double %977, double %1090)
  store double %1091, ptr %gep1698, align 8, !tbaa !9
  %1092 = load double, ptr %gep1700, align 8, !tbaa !9
  %1093 = tail call double @llvm.fmuladd.f64(double %1086, double %980, double %1092)
  store double %1093, ptr %gep1700, align 8, !tbaa !9
  %1094 = load double, ptr %gep1702, align 8, !tbaa !9
  %1095 = tail call double @llvm.fmuladd.f64(double %1086, double %983, double %1094)
  store double %1095, ptr %gep1702, align 8, !tbaa !9
  %1096 = load double, ptr %gep1704, align 8, !tbaa !9
  %1097 = tail call double @llvm.fmuladd.f64(double %1086, double %986, double %1096)
  store double %1097, ptr %gep1704, align 8, !tbaa !9
  %1098 = load double, ptr %gep1706, align 8, !tbaa !9
  %1099 = tail call double @llvm.fmuladd.f64(double %1086, double %989, double %1098)
  store double %1099, ptr %gep1706, align 8, !tbaa !9
  %1100 = load double, ptr %gep1708, align 8, !tbaa !9
  %1101 = tail call double @llvm.fmuladd.f64(double %1086, double %992, double %1100)
  store double %1101, ptr %gep1708, align 8, !tbaa !9
  %indvars.iv.next1597 = add nuw nsw i64 %indvars.iv1596, 1
  %exitcond1600.not = icmp eq i64 %indvars.iv.next1597, %wide.trip.count1599
  br i1 %exitcond1600.not, label %.loopexit, label %scalar.ph2408, !llvm.loop !140

1102:                                             ; preds = %480
  %1103 = load double, ptr %3, align 8, !tbaa !9
  %1104 = load double, ptr %4, align 8, !tbaa !9
  %1105 = fmul double %1103, %1104
  %1106 = getelementptr inbounds i8, ptr %3, i64 8
  %1107 = load double, ptr %1106, align 8, !tbaa !9
  %1108 = fmul double %1104, %1107
  %1109 = getelementptr inbounds i8, ptr %3, i64 16
  %1110 = load double, ptr %1109, align 8, !tbaa !9
  %1111 = fmul double %1104, %1110
  %1112 = getelementptr inbounds i8, ptr %3, i64 24
  %1113 = load double, ptr %1112, align 8, !tbaa !9
  %1114 = fmul double %1104, %1113
  %1115 = getelementptr inbounds i8, ptr %3, i64 32
  %1116 = load double, ptr %1115, align 8, !tbaa !9
  %1117 = fmul double %1104, %1116
  %1118 = getelementptr inbounds i8, ptr %3, i64 40
  %1119 = load double, ptr %1118, align 8, !tbaa !9
  %1120 = fmul double %1104, %1119
  %1121 = getelementptr inbounds i8, ptr %3, i64 48
  %1122 = load double, ptr %1121, align 8, !tbaa !9
  %1123 = fmul double %1104, %1122
  %1124 = getelementptr inbounds i8, ptr %3, i64 56
  %1125 = load double, ptr %1124, align 8, !tbaa !9
  %1126 = fmul double %1104, %1125
  %1127 = getelementptr inbounds i8, ptr %3, i64 64
  %1128 = load double, ptr %1127, align 8, !tbaa !9
  %1129 = fmul double %1104, %1128
  %1130 = load i32, ptr %1, align 4, !tbaa !5
  %.not14241494 = icmp slt i32 %1130, 1
  br i1 %.not14241494, label %.loopexit, label %.lr.ph1496

.lr.ph1496:                                       ; preds = %1102
  %1131 = shl i32 %9, 1
  %1132 = mul i32 %9, 3
  %1133 = shl i32 %9, 2
  %1134 = mul i32 %9, 5
  %1135 = mul i32 %9, 6
  %1136 = mul i32 %9, 7
  %1137 = shl i32 %9, 3
  %1138 = mul i32 %9, 9
  %1139 = sext i32 %9 to i64
  %1140 = sext i32 %1131 to i64
  %1141 = sext i32 %1132 to i64
  %1142 = sext i32 %1133 to i64
  %1143 = sext i32 %1134 to i64
  %1144 = sext i32 %1135 to i64
  %1145 = sext i32 %1136 to i64
  %1146 = sext i32 %1137 to i64
  %1147 = sext i32 %1138 to i64
  %1148 = add nuw i32 %1130, 1
  %wide.trip.count1594 = zext i32 %1148 to i64
  %invariant.gep1675 = getelementptr double, ptr %11, i64 %1139
  %invariant.gep1677 = getelementptr double, ptr %11, i64 %1140
  %invariant.gep1679 = getelementptr double, ptr %11, i64 %1141
  %invariant.gep1681 = getelementptr double, ptr %11, i64 %1142
  %invariant.gep1683 = getelementptr double, ptr %11, i64 %1143
  %invariant.gep1685 = getelementptr double, ptr %11, i64 %1144
  %invariant.gep1687 = getelementptr double, ptr %11, i64 %1145
  %invariant.gep1689 = getelementptr double, ptr %11, i64 %1146
  %invariant.gep1691 = getelementptr double, ptr %11, i64 %1147
  %1149 = zext nneg i32 %1130 to i64
  %min.iters.check2215 = icmp ult i32 %1130, 20
  br i1 %min.iters.check2215, label %scalar.ph2214.preheader, label %vector.memcheck2051

vector.memcheck2051:                              ; preds = %.lr.ph1496
  %1150 = add nsw i64 %1139, %10
  %1151 = shl nsw i64 %1150, 3
  %1152 = getelementptr i8, ptr %5, i64 %1151
  %scevgep2052 = getelementptr i8, ptr %1152, i64 8
  %1153 = shl nuw nsw i64 %wide.trip.count1594, 3
  %1154 = getelementptr i8, ptr %5, i64 %1151
  %scevgep2053 = getelementptr i8, ptr %1154, i64 %1153
  %1155 = add nsw i64 %1140, %10
  %1156 = shl nsw i64 %1155, 3
  %1157 = getelementptr i8, ptr %5, i64 %1156
  %scevgep2054 = getelementptr i8, ptr %1157, i64 8
  %1158 = getelementptr i8, ptr %5, i64 %1156
  %scevgep2055 = getelementptr i8, ptr %1158, i64 %1153
  %1159 = add nsw i64 %1141, %10
  %1160 = shl nsw i64 %1159, 3
  %1161 = getelementptr i8, ptr %5, i64 %1160
  %scevgep2056 = getelementptr i8, ptr %1161, i64 8
  %1162 = getelementptr i8, ptr %5, i64 %1160
  %scevgep2057 = getelementptr i8, ptr %1162, i64 %1153
  %1163 = add nsw i64 %1142, %10
  %1164 = shl nsw i64 %1163, 3
  %1165 = getelementptr i8, ptr %5, i64 %1164
  %scevgep2058 = getelementptr i8, ptr %1165, i64 8
  %1166 = getelementptr i8, ptr %5, i64 %1164
  %scevgep2059 = getelementptr i8, ptr %1166, i64 %1153
  %1167 = add nsw i64 %1143, %10
  %1168 = shl nsw i64 %1167, 3
  %1169 = getelementptr i8, ptr %5, i64 %1168
  %scevgep2060 = getelementptr i8, ptr %1169, i64 8
  %1170 = getelementptr i8, ptr %5, i64 %1168
  %scevgep2061 = getelementptr i8, ptr %1170, i64 %1153
  %1171 = add nsw i64 %1144, %10
  %1172 = shl nsw i64 %1171, 3
  %1173 = getelementptr i8, ptr %5, i64 %1172
  %scevgep2062 = getelementptr i8, ptr %1173, i64 8
  %1174 = getelementptr i8, ptr %5, i64 %1172
  %scevgep2063 = getelementptr i8, ptr %1174, i64 %1153
  %1175 = add nsw i64 %1145, %10
  %1176 = shl nsw i64 %1175, 3
  %1177 = getelementptr i8, ptr %5, i64 %1176
  %scevgep2064 = getelementptr i8, ptr %1177, i64 8
  %1178 = getelementptr i8, ptr %5, i64 %1176
  %scevgep2065 = getelementptr i8, ptr %1178, i64 %1153
  %1179 = add nsw i64 %1146, %10
  %1180 = shl nsw i64 %1179, 3
  %1181 = getelementptr i8, ptr %5, i64 %1180
  %scevgep2066 = getelementptr i8, ptr %1181, i64 8
  %1182 = getelementptr i8, ptr %5, i64 %1180
  %scevgep2067 = getelementptr i8, ptr %1182, i64 %1153
  %1183 = add nsw i64 %1147, %10
  %1184 = shl nsw i64 %1183, 3
  %1185 = getelementptr i8, ptr %5, i64 %1184
  %scevgep2068 = getelementptr i8, ptr %1185, i64 8
  %1186 = getelementptr i8, ptr %5, i64 %1184
  %scevgep2069 = getelementptr i8, ptr %1186, i64 %1153
  %bound02070 = icmp ult ptr %scevgep2052, %scevgep2055
  %bound12071 = icmp ult ptr %scevgep2054, %scevgep2053
  %found.conflict2072 = and i1 %bound02070, %bound12071
  %bound02073 = icmp ult ptr %scevgep2052, %scevgep2057
  %bound12074 = icmp ult ptr %scevgep2056, %scevgep2053
  %found.conflict2075 = and i1 %bound02073, %bound12074
  %conflict.rdx2076 = or i1 %found.conflict2072, %found.conflict2075
  %bound02077 = icmp ult ptr %scevgep2052, %scevgep2059
  %bound12078 = icmp ult ptr %scevgep2058, %scevgep2053
  %found.conflict2079 = and i1 %bound02077, %bound12078
  %conflict.rdx2080 = or i1 %conflict.rdx2076, %found.conflict2079
  %bound02081 = icmp ult ptr %scevgep2052, %scevgep2061
  %bound12082 = icmp ult ptr %scevgep2060, %scevgep2053
  %found.conflict2083 = and i1 %bound02081, %bound12082
  %conflict.rdx2084 = or i1 %conflict.rdx2080, %found.conflict2083
  %bound02085 = icmp ult ptr %scevgep2052, %scevgep2063
  %bound12086 = icmp ult ptr %scevgep2062, %scevgep2053
  %found.conflict2087 = and i1 %bound02085, %bound12086
  %conflict.rdx2088 = or i1 %conflict.rdx2084, %found.conflict2087
  %bound02089 = icmp ult ptr %scevgep2052, %scevgep2065
  %bound12090 = icmp ult ptr %scevgep2064, %scevgep2053
  %found.conflict2091 = and i1 %bound02089, %bound12090
  %conflict.rdx2092 = or i1 %conflict.rdx2088, %found.conflict2091
  %bound02093 = icmp ult ptr %scevgep2052, %scevgep2067
  %bound12094 = icmp ult ptr %scevgep2066, %scevgep2053
  %found.conflict2095 = and i1 %bound02093, %bound12094
  %conflict.rdx2096 = or i1 %conflict.rdx2092, %found.conflict2095
  %bound02097 = icmp ult ptr %scevgep2052, %scevgep2069
  %bound12098 = icmp ult ptr %scevgep2068, %scevgep2053
  %found.conflict2099 = and i1 %bound02097, %bound12098
  %conflict.rdx2100 = or i1 %conflict.rdx2096, %found.conflict2099
  %bound02101 = icmp ult ptr %scevgep2054, %scevgep2057
  %bound12102 = icmp ult ptr %scevgep2056, %scevgep2055
  %found.conflict2103 = and i1 %bound02101, %bound12102
  %conflict.rdx2104 = or i1 %conflict.rdx2100, %found.conflict2103
  %bound02105 = icmp ult ptr %scevgep2054, %scevgep2059
  %bound12106 = icmp ult ptr %scevgep2058, %scevgep2055
  %found.conflict2107 = and i1 %bound02105, %bound12106
  %conflict.rdx2108 = or i1 %conflict.rdx2104, %found.conflict2107
  %bound02109 = icmp ult ptr %scevgep2054, %scevgep2061
  %bound12110 = icmp ult ptr %scevgep2060, %scevgep2055
  %found.conflict2111 = and i1 %bound02109, %bound12110
  %conflict.rdx2112 = or i1 %conflict.rdx2108, %found.conflict2111
  %bound02113 = icmp ult ptr %scevgep2054, %scevgep2063
  %bound12114 = icmp ult ptr %scevgep2062, %scevgep2055
  %found.conflict2115 = and i1 %bound02113, %bound12114
  %conflict.rdx2116 = or i1 %conflict.rdx2112, %found.conflict2115
  %bound02117 = icmp ult ptr %scevgep2054, %scevgep2065
  %bound12118 = icmp ult ptr %scevgep2064, %scevgep2055
  %found.conflict2119 = and i1 %bound02117, %bound12118
  %conflict.rdx2120 = or i1 %conflict.rdx2116, %found.conflict2119
  %bound02121 = icmp ult ptr %scevgep2054, %scevgep2067
  %bound12122 = icmp ult ptr %scevgep2066, %scevgep2055
  %found.conflict2123 = and i1 %bound02121, %bound12122
  %conflict.rdx2124 = or i1 %conflict.rdx2120, %found.conflict2123
  %bound02125 = icmp ult ptr %scevgep2054, %scevgep2069
  %bound12126 = icmp ult ptr %scevgep2068, %scevgep2055
  %found.conflict2127 = and i1 %bound02125, %bound12126
  %conflict.rdx2128 = or i1 %conflict.rdx2124, %found.conflict2127
  %bound02129 = icmp ult ptr %scevgep2056, %scevgep2059
  %bound12130 = icmp ult ptr %scevgep2058, %scevgep2057
  %found.conflict2131 = and i1 %bound02129, %bound12130
  %conflict.rdx2132 = or i1 %conflict.rdx2128, %found.conflict2131
  %bound02133 = icmp ult ptr %scevgep2056, %scevgep2061
  %bound12134 = icmp ult ptr %scevgep2060, %scevgep2057
  %found.conflict2135 = and i1 %bound02133, %bound12134
  %conflict.rdx2136 = or i1 %conflict.rdx2132, %found.conflict2135
  %bound02137 = icmp ult ptr %scevgep2056, %scevgep2063
  %bound12138 = icmp ult ptr %scevgep2062, %scevgep2057
  %found.conflict2139 = and i1 %bound02137, %bound12138
  %conflict.rdx2140 = or i1 %conflict.rdx2136, %found.conflict2139
  %bound02141 = icmp ult ptr %scevgep2056, %scevgep2065
  %bound12142 = icmp ult ptr %scevgep2064, %scevgep2057
  %found.conflict2143 = and i1 %bound02141, %bound12142
  %conflict.rdx2144 = or i1 %conflict.rdx2140, %found.conflict2143
  %bound02145 = icmp ult ptr %scevgep2056, %scevgep2067
  %bound12146 = icmp ult ptr %scevgep2066, %scevgep2057
  %found.conflict2147 = and i1 %bound02145, %bound12146
  %conflict.rdx2148 = or i1 %conflict.rdx2144, %found.conflict2147
  %bound02149 = icmp ult ptr %scevgep2056, %scevgep2069
  %bound12150 = icmp ult ptr %scevgep2068, %scevgep2057
  %found.conflict2151 = and i1 %bound02149, %bound12150
  %conflict.rdx2152 = or i1 %conflict.rdx2148, %found.conflict2151
  %bound02153 = icmp ult ptr %scevgep2058, %scevgep2061
  %bound12154 = icmp ult ptr %scevgep2060, %scevgep2059
  %found.conflict2155 = and i1 %bound02153, %bound12154
  %conflict.rdx2156 = or i1 %conflict.rdx2152, %found.conflict2155
  %bound02157 = icmp ult ptr %scevgep2058, %scevgep2063
  %bound12158 = icmp ult ptr %scevgep2062, %scevgep2059
  %found.conflict2159 = and i1 %bound02157, %bound12158
  %conflict.rdx2160 = or i1 %conflict.rdx2156, %found.conflict2159
  %bound02161 = icmp ult ptr %scevgep2058, %scevgep2065
  %bound12162 = icmp ult ptr %scevgep2064, %scevgep2059
  %found.conflict2163 = and i1 %bound02161, %bound12162
  %conflict.rdx2164 = or i1 %conflict.rdx2160, %found.conflict2163
  %bound02165 = icmp ult ptr %scevgep2058, %scevgep2067
  %bound12166 = icmp ult ptr %scevgep2066, %scevgep2059
  %found.conflict2167 = and i1 %bound02165, %bound12166
  %conflict.rdx2168 = or i1 %conflict.rdx2164, %found.conflict2167
  %bound02169 = icmp ult ptr %scevgep2058, %scevgep2069
  %bound12170 = icmp ult ptr %scevgep2068, %scevgep2059
  %found.conflict2171 = and i1 %bound02169, %bound12170
  %conflict.rdx2172 = or i1 %conflict.rdx2168, %found.conflict2171
  %bound02173 = icmp ult ptr %scevgep2060, %scevgep2063
  %bound12174 = icmp ult ptr %scevgep2062, %scevgep2061
  %found.conflict2175 = and i1 %bound02173, %bound12174
  %conflict.rdx2176 = or i1 %conflict.rdx2172, %found.conflict2175
  %bound02177 = icmp ult ptr %scevgep2060, %scevgep2065
  %bound12178 = icmp ult ptr %scevgep2064, %scevgep2061
  %found.conflict2179 = and i1 %bound02177, %bound12178
  %conflict.rdx2180 = or i1 %conflict.rdx2176, %found.conflict2179
  %bound02181 = icmp ult ptr %scevgep2060, %scevgep2067
  %bound12182 = icmp ult ptr %scevgep2066, %scevgep2061
  %found.conflict2183 = and i1 %bound02181, %bound12182
  %conflict.rdx2184 = or i1 %conflict.rdx2180, %found.conflict2183
  %bound02185 = icmp ult ptr %scevgep2060, %scevgep2069
  %bound12186 = icmp ult ptr %scevgep2068, %scevgep2061
  %found.conflict2187 = and i1 %bound02185, %bound12186
  %conflict.rdx2188 = or i1 %conflict.rdx2184, %found.conflict2187
  %bound02189 = icmp ult ptr %scevgep2062, %scevgep2065
  %bound12190 = icmp ult ptr %scevgep2064, %scevgep2063
  %found.conflict2191 = and i1 %bound02189, %bound12190
  %conflict.rdx2192 = or i1 %conflict.rdx2188, %found.conflict2191
  %bound02193 = icmp ult ptr %scevgep2062, %scevgep2067
  %bound12194 = icmp ult ptr %scevgep2066, %scevgep2063
  %found.conflict2195 = and i1 %bound02193, %bound12194
  %conflict.rdx2196 = or i1 %conflict.rdx2192, %found.conflict2195
  %bound02197 = icmp ult ptr %scevgep2062, %scevgep2069
  %bound12198 = icmp ult ptr %scevgep2068, %scevgep2063
  %found.conflict2199 = and i1 %bound02197, %bound12198
  %conflict.rdx2200 = or i1 %conflict.rdx2196, %found.conflict2199
  %bound02201 = icmp ult ptr %scevgep2064, %scevgep2067
  %bound12202 = icmp ult ptr %scevgep2066, %scevgep2065
  %found.conflict2203 = and i1 %bound02201, %bound12202
  %conflict.rdx2204 = or i1 %conflict.rdx2200, %found.conflict2203
  %bound02205 = icmp ult ptr %scevgep2064, %scevgep2069
  %bound12206 = icmp ult ptr %scevgep2068, %scevgep2065
  %found.conflict2207 = and i1 %bound02205, %bound12206
  %conflict.rdx2208 = or i1 %conflict.rdx2204, %found.conflict2207
  %bound02209 = icmp ult ptr %scevgep2066, %scevgep2069
  %bound12210 = icmp ult ptr %scevgep2068, %scevgep2067
  %found.conflict2211 = and i1 %bound02209, %bound12210
  %conflict.rdx2212 = or i1 %conflict.rdx2208, %found.conflict2211
  br i1 %conflict.rdx2212, label %scalar.ph2214.preheader, label %vector.ph2216

vector.ph2216:                                    ; preds = %vector.memcheck2051
  %n.vec2218 = and i64 %1149, 2147483646
  %ind.end2219 = or i64 %1149, 1
  %broadcast.splatinsert2226 = insertelement <2 x double> poison, double %1107, i64 0
  %broadcast.splat2227 = shufflevector <2 x double> %broadcast.splatinsert2226, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2228 = insertelement <2 x double> poison, double %1103, i64 0
  %broadcast.splat2229 = shufflevector <2 x double> %broadcast.splatinsert2228, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2231 = insertelement <2 x double> poison, double %1110, i64 0
  %broadcast.splat2232 = shufflevector <2 x double> %broadcast.splatinsert2231, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2234 = insertelement <2 x double> poison, double %1113, i64 0
  %broadcast.splat2235 = shufflevector <2 x double> %broadcast.splatinsert2234, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2237 = insertelement <2 x double> poison, double %1116, i64 0
  %broadcast.splat2238 = shufflevector <2 x double> %broadcast.splatinsert2237, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2240 = insertelement <2 x double> poison, double %1119, i64 0
  %broadcast.splat2241 = shufflevector <2 x double> %broadcast.splatinsert2240, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2243 = insertelement <2 x double> poison, double %1122, i64 0
  %broadcast.splat2244 = shufflevector <2 x double> %broadcast.splatinsert2243, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2246 = insertelement <2 x double> poison, double %1125, i64 0
  %broadcast.splat2247 = shufflevector <2 x double> %broadcast.splatinsert2246, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2249 = insertelement <2 x double> poison, double %1128, i64 0
  %broadcast.splat2250 = shufflevector <2 x double> %broadcast.splatinsert2249, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2251 = insertelement <2 x double> poison, double %1105, i64 0
  %broadcast.splat2252 = shufflevector <2 x double> %broadcast.splatinsert2251, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2254 = insertelement <2 x double> poison, double %1108, i64 0
  %broadcast.splat2255 = shufflevector <2 x double> %broadcast.splatinsert2254, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2257 = insertelement <2 x double> poison, double %1111, i64 0
  %broadcast.splat2258 = shufflevector <2 x double> %broadcast.splatinsert2257, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2260 = insertelement <2 x double> poison, double %1114, i64 0
  %broadcast.splat2261 = shufflevector <2 x double> %broadcast.splatinsert2260, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2263 = insertelement <2 x double> poison, double %1117, i64 0
  %broadcast.splat2264 = shufflevector <2 x double> %broadcast.splatinsert2263, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2266 = insertelement <2 x double> poison, double %1120, i64 0
  %broadcast.splat2267 = shufflevector <2 x double> %broadcast.splatinsert2266, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2269 = insertelement <2 x double> poison, double %1123, i64 0
  %broadcast.splat2270 = shufflevector <2 x double> %broadcast.splatinsert2269, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2272 = insertelement <2 x double> poison, double %1126, i64 0
  %broadcast.splat2273 = shufflevector <2 x double> %broadcast.splatinsert2272, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2275 = insertelement <2 x double> poison, double %1129, i64 0
  %broadcast.splat2276 = shufflevector <2 x double> %broadcast.splatinsert2275, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body2221

vector.body2221:                                  ; preds = %vector.body2221, %vector.ph2216
  %index2222 = phi i64 [ 0, %vector.ph2216 ], [ %index.next2277, %vector.body2221 ]
  %offset.idx2223 = or disjoint i64 %index2222, 1
  %1187 = getelementptr double, ptr %invariant.gep1675, i64 %offset.idx2223
  %wide.load2224 = load <2 x double>, ptr %1187, align 8, !tbaa !9, !alias.scope !141, !noalias !144
  %1188 = getelementptr double, ptr %invariant.gep1677, i64 %offset.idx2223
  %wide.load2225 = load <2 x double>, ptr %1188, align 8, !tbaa !9, !alias.scope !153, !noalias !154
  %1189 = fmul <2 x double> %broadcast.splat2227, %wide.load2225
  %1190 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2229, <2 x double> %wide.load2224, <2 x double> %1189)
  %1191 = getelementptr double, ptr %invariant.gep1679, i64 %offset.idx2223
  %wide.load2230 = load <2 x double>, ptr %1191, align 8, !tbaa !9, !alias.scope !155, !noalias !156
  %1192 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2232, <2 x double> %wide.load2230, <2 x double> %1190)
  %1193 = getelementptr double, ptr %invariant.gep1681, i64 %offset.idx2223
  %wide.load2233 = load <2 x double>, ptr %1193, align 8, !tbaa !9, !alias.scope !157, !noalias !158
  %1194 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2235, <2 x double> %wide.load2233, <2 x double> %1192)
  %1195 = getelementptr double, ptr %invariant.gep1683, i64 %offset.idx2223
  %wide.load2236 = load <2 x double>, ptr %1195, align 8, !tbaa !9, !alias.scope !159, !noalias !160
  %1196 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2238, <2 x double> %wide.load2236, <2 x double> %1194)
  %1197 = getelementptr double, ptr %invariant.gep1685, i64 %offset.idx2223
  %wide.load2239 = load <2 x double>, ptr %1197, align 8, !tbaa !9, !alias.scope !161, !noalias !162
  %1198 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2241, <2 x double> %wide.load2239, <2 x double> %1196)
  %1199 = getelementptr double, ptr %invariant.gep1687, i64 %offset.idx2223
  %wide.load2242 = load <2 x double>, ptr %1199, align 8, !tbaa !9, !alias.scope !163, !noalias !164
  %1200 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2244, <2 x double> %wide.load2242, <2 x double> %1198)
  %1201 = getelementptr double, ptr %invariant.gep1689, i64 %offset.idx2223
  %wide.load2245 = load <2 x double>, ptr %1201, align 8, !tbaa !9, !alias.scope !165, !noalias !166
  %1202 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2247, <2 x double> %wide.load2245, <2 x double> %1200)
  %1203 = getelementptr double, ptr %invariant.gep1691, i64 %offset.idx2223
  %wide.load2248 = load <2 x double>, ptr %1203, align 8, !tbaa !9, !alias.scope !166
  %1204 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2250, <2 x double> %wide.load2248, <2 x double> %1202)
  %1205 = fneg <2 x double> %1204
  %1206 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1205, <2 x double> %broadcast.splat2252, <2 x double> %wide.load2224)
  store <2 x double> %1206, ptr %1187, align 8, !tbaa !9, !alias.scope !141, !noalias !144
  %wide.load2253 = load <2 x double>, ptr %1188, align 8, !tbaa !9, !alias.scope !153, !noalias !154
  %1207 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1205, <2 x double> %broadcast.splat2255, <2 x double> %wide.load2253)
  store <2 x double> %1207, ptr %1188, align 8, !tbaa !9, !alias.scope !153, !noalias !154
  %wide.load2256 = load <2 x double>, ptr %1191, align 8, !tbaa !9, !alias.scope !155, !noalias !156
  %1208 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1205, <2 x double> %broadcast.splat2258, <2 x double> %wide.load2256)
  store <2 x double> %1208, ptr %1191, align 8, !tbaa !9, !alias.scope !155, !noalias !156
  %wide.load2259 = load <2 x double>, ptr %1193, align 8, !tbaa !9, !alias.scope !157, !noalias !158
  %1209 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1205, <2 x double> %broadcast.splat2261, <2 x double> %wide.load2259)
  store <2 x double> %1209, ptr %1193, align 8, !tbaa !9, !alias.scope !157, !noalias !158
  %wide.load2262 = load <2 x double>, ptr %1195, align 8, !tbaa !9, !alias.scope !159, !noalias !160
  %1210 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1205, <2 x double> %broadcast.splat2264, <2 x double> %wide.load2262)
  store <2 x double> %1210, ptr %1195, align 8, !tbaa !9, !alias.scope !159, !noalias !160
  %wide.load2265 = load <2 x double>, ptr %1197, align 8, !tbaa !9, !alias.scope !161, !noalias !162
  %1211 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1205, <2 x double> %broadcast.splat2267, <2 x double> %wide.load2265)
  store <2 x double> %1211, ptr %1197, align 8, !tbaa !9, !alias.scope !161, !noalias !162
  %wide.load2268 = load <2 x double>, ptr %1199, align 8, !tbaa !9, !alias.scope !163, !noalias !164
  %1212 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1205, <2 x double> %broadcast.splat2270, <2 x double> %wide.load2268)
  store <2 x double> %1212, ptr %1199, align 8, !tbaa !9, !alias.scope !163, !noalias !164
  %wide.load2271 = load <2 x double>, ptr %1201, align 8, !tbaa !9, !alias.scope !165, !noalias !166
  %1213 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1205, <2 x double> %broadcast.splat2273, <2 x double> %wide.load2271)
  store <2 x double> %1213, ptr %1201, align 8, !tbaa !9, !alias.scope !165, !noalias !166
  %wide.load2274 = load <2 x double>, ptr %1203, align 8, !tbaa !9, !alias.scope !166
  %1214 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1205, <2 x double> %broadcast.splat2276, <2 x double> %wide.load2274)
  store <2 x double> %1214, ptr %1203, align 8, !tbaa !9, !alias.scope !166
  %index.next2277 = add nuw i64 %index2222, 2
  %1215 = icmp eq i64 %index.next2277, %n.vec2218
  br i1 %1215, label %middle.block2213, label %vector.body2221, !llvm.loop !167

middle.block2213:                                 ; preds = %vector.body2221
  %cmp.n2278 = icmp eq i64 %n.vec2218, %1149
  br i1 %cmp.n2278, label %.loopexit, label %scalar.ph2214.preheader

scalar.ph2214.preheader:                          ; preds = %middle.block2213, %vector.memcheck2051, %.lr.ph1496
  %indvars.iv1591.ph = phi i64 [ 1, %vector.memcheck2051 ], [ 1, %.lr.ph1496 ], [ %ind.end2219, %middle.block2213 ]
  br label %scalar.ph2214

scalar.ph2214:                                    ; preds = %scalar.ph2214.preheader, %scalar.ph2214
  %indvars.iv1591 = phi i64 [ %indvars.iv.next1592, %scalar.ph2214 ], [ %indvars.iv1591.ph, %scalar.ph2214.preheader ]
  %gep1676 = getelementptr double, ptr %invariant.gep1675, i64 %indvars.iv1591
  %1216 = load double, ptr %gep1676, align 8, !tbaa !9
  %gep1678 = getelementptr double, ptr %invariant.gep1677, i64 %indvars.iv1591
  %1217 = load double, ptr %gep1678, align 8, !tbaa !9
  %1218 = fmul double %1107, %1217
  %1219 = tail call double @llvm.fmuladd.f64(double %1103, double %1216, double %1218)
  %gep1680 = getelementptr double, ptr %invariant.gep1679, i64 %indvars.iv1591
  %1220 = load double, ptr %gep1680, align 8, !tbaa !9
  %1221 = tail call double @llvm.fmuladd.f64(double %1110, double %1220, double %1219)
  %gep1682 = getelementptr double, ptr %invariant.gep1681, i64 %indvars.iv1591
  %1222 = load double, ptr %gep1682, align 8, !tbaa !9
  %1223 = tail call double @llvm.fmuladd.f64(double %1113, double %1222, double %1221)
  %gep1684 = getelementptr double, ptr %invariant.gep1683, i64 %indvars.iv1591
  %1224 = load double, ptr %gep1684, align 8, !tbaa !9
  %1225 = tail call double @llvm.fmuladd.f64(double %1116, double %1224, double %1223)
  %gep1686 = getelementptr double, ptr %invariant.gep1685, i64 %indvars.iv1591
  %1226 = load double, ptr %gep1686, align 8, !tbaa !9
  %1227 = tail call double @llvm.fmuladd.f64(double %1119, double %1226, double %1225)
  %gep1688 = getelementptr double, ptr %invariant.gep1687, i64 %indvars.iv1591
  %1228 = load double, ptr %gep1688, align 8, !tbaa !9
  %1229 = tail call double @llvm.fmuladd.f64(double %1122, double %1228, double %1227)
  %gep1690 = getelementptr double, ptr %invariant.gep1689, i64 %indvars.iv1591
  %1230 = load double, ptr %gep1690, align 8, !tbaa !9
  %1231 = tail call double @llvm.fmuladd.f64(double %1125, double %1230, double %1229)
  %gep1692 = getelementptr double, ptr %invariant.gep1691, i64 %indvars.iv1591
  %1232 = load double, ptr %gep1692, align 8, !tbaa !9
  %1233 = tail call double @llvm.fmuladd.f64(double %1128, double %1232, double %1231)
  %1234 = fneg double %1233
  %1235 = tail call double @llvm.fmuladd.f64(double %1234, double %1105, double %1216)
  store double %1235, ptr %gep1676, align 8, !tbaa !9
  %1236 = load double, ptr %gep1678, align 8, !tbaa !9
  %1237 = tail call double @llvm.fmuladd.f64(double %1234, double %1108, double %1236)
  store double %1237, ptr %gep1678, align 8, !tbaa !9
  %1238 = load double, ptr %gep1680, align 8, !tbaa !9
  %1239 = tail call double @llvm.fmuladd.f64(double %1234, double %1111, double %1238)
  store double %1239, ptr %gep1680, align 8, !tbaa !9
  %1240 = load double, ptr %gep1682, align 8, !tbaa !9
  %1241 = tail call double @llvm.fmuladd.f64(double %1234, double %1114, double %1240)
  store double %1241, ptr %gep1682, align 8, !tbaa !9
  %1242 = load double, ptr %gep1684, align 8, !tbaa !9
  %1243 = tail call double @llvm.fmuladd.f64(double %1234, double %1117, double %1242)
  store double %1243, ptr %gep1684, align 8, !tbaa !9
  %1244 = load double, ptr %gep1686, align 8, !tbaa !9
  %1245 = tail call double @llvm.fmuladd.f64(double %1234, double %1120, double %1244)
  store double %1245, ptr %gep1686, align 8, !tbaa !9
  %1246 = load double, ptr %gep1688, align 8, !tbaa !9
  %1247 = tail call double @llvm.fmuladd.f64(double %1234, double %1123, double %1246)
  store double %1247, ptr %gep1688, align 8, !tbaa !9
  %1248 = load double, ptr %gep1690, align 8, !tbaa !9
  %1249 = tail call double @llvm.fmuladd.f64(double %1234, double %1126, double %1248)
  store double %1249, ptr %gep1690, align 8, !tbaa !9
  %1250 = load double, ptr %gep1692, align 8, !tbaa !9
  %1251 = tail call double @llvm.fmuladd.f64(double %1234, double %1129, double %1250)
  store double %1251, ptr %gep1692, align 8, !tbaa !9
  %indvars.iv.next1592 = add nuw nsw i64 %indvars.iv1591, 1
  %exitcond1595.not = icmp eq i64 %indvars.iv.next1592, %wide.trip.count1594
  br i1 %exitcond1595.not, label %.loopexit, label %scalar.ph2214, !llvm.loop !168

1252:                                             ; preds = %480
  %1253 = load double, ptr %3, align 8, !tbaa !9
  %1254 = load double, ptr %4, align 8, !tbaa !9
  %1255 = fmul double %1253, %1254
  %1256 = getelementptr inbounds i8, ptr %3, i64 8
  %1257 = load double, ptr %1256, align 8, !tbaa !9
  %1258 = fmul double %1254, %1257
  %1259 = getelementptr inbounds i8, ptr %3, i64 16
  %1260 = load double, ptr %1259, align 8, !tbaa !9
  %1261 = fmul double %1254, %1260
  %1262 = getelementptr inbounds i8, ptr %3, i64 24
  %1263 = load double, ptr %1262, align 8, !tbaa !9
  %1264 = fmul double %1254, %1263
  %1265 = getelementptr inbounds i8, ptr %3, i64 32
  %1266 = load double, ptr %1265, align 8, !tbaa !9
  %1267 = fmul double %1254, %1266
  %1268 = getelementptr inbounds i8, ptr %3, i64 40
  %1269 = load double, ptr %1268, align 8, !tbaa !9
  %1270 = fmul double %1254, %1269
  %1271 = getelementptr inbounds i8, ptr %3, i64 48
  %1272 = load double, ptr %1271, align 8, !tbaa !9
  %1273 = fmul double %1254, %1272
  %1274 = getelementptr inbounds i8, ptr %3, i64 56
  %1275 = load double, ptr %1274, align 8, !tbaa !9
  %1276 = fmul double %1254, %1275
  %1277 = getelementptr inbounds i8, ptr %3, i64 64
  %1278 = load double, ptr %1277, align 8, !tbaa !9
  %1279 = fmul double %1254, %1278
  %1280 = getelementptr inbounds i8, ptr %3, i64 72
  %1281 = load double, ptr %1280, align 8, !tbaa !9
  %1282 = fmul double %1254, %1281
  %1283 = load i32, ptr %1, align 4, !tbaa !5
  %.not14231491 = icmp slt i32 %1283, 1
  br i1 %.not14231491, label %.loopexit, label %.lr.ph1493

.lr.ph1493:                                       ; preds = %1252
  %1284 = shl i32 %9, 1
  %1285 = mul i32 %9, 3
  %1286 = shl i32 %9, 2
  %1287 = mul i32 %9, 5
  %1288 = mul i32 %9, 6
  %1289 = mul i32 %9, 7
  %1290 = shl i32 %9, 3
  %1291 = mul i32 %9, 9
  %1292 = mul i32 %9, 10
  %1293 = sext i32 %9 to i64
  %1294 = sext i32 %1284 to i64
  %1295 = sext i32 %1285 to i64
  %1296 = sext i32 %1286 to i64
  %1297 = sext i32 %1287 to i64
  %1298 = sext i32 %1288 to i64
  %1299 = sext i32 %1289 to i64
  %1300 = sext i32 %1290 to i64
  %1301 = sext i32 %1291 to i64
  %1302 = sext i32 %1292 to i64
  %1303 = add nuw i32 %1283, 1
  %wide.trip.count1589 = zext i32 %1303 to i64
  %invariant.gep1655 = getelementptr double, ptr %11, i64 %1293
  %invariant.gep1657 = getelementptr double, ptr %11, i64 %1294
  %invariant.gep1659 = getelementptr double, ptr %11, i64 %1295
  %invariant.gep1661 = getelementptr double, ptr %11, i64 %1296
  %invariant.gep1663 = getelementptr double, ptr %11, i64 %1297
  %invariant.gep1665 = getelementptr double, ptr %11, i64 %1298
  %invariant.gep1667 = getelementptr double, ptr %11, i64 %1299
  %invariant.gep1669 = getelementptr double, ptr %11, i64 %1300
  %invariant.gep1671 = getelementptr double, ptr %11, i64 %1301
  %invariant.gep1673 = getelementptr double, ptr %11, i64 %1302
  %1304 = zext nneg i32 %1283 to i64
  %min.iters.check1981 = icmp ult i32 %1283, 22
  br i1 %min.iters.check1981, label %scalar.ph1980.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph1493
  %1305 = add nsw i64 %1293, %10
  %1306 = shl nsw i64 %1305, 3
  %1307 = getelementptr i8, ptr %5, i64 %1306
  %scevgep = getelementptr i8, ptr %1307, i64 8
  %1308 = shl nuw nsw i64 %wide.trip.count1589, 3
  %1309 = getelementptr i8, ptr %5, i64 %1306
  %scevgep1785 = getelementptr i8, ptr %1309, i64 %1308
  %1310 = add nsw i64 %1294, %10
  %1311 = shl nsw i64 %1310, 3
  %1312 = getelementptr i8, ptr %5, i64 %1311
  %scevgep1786 = getelementptr i8, ptr %1312, i64 8
  %1313 = getelementptr i8, ptr %5, i64 %1311
  %scevgep1787 = getelementptr i8, ptr %1313, i64 %1308
  %1314 = add nsw i64 %1295, %10
  %1315 = shl nsw i64 %1314, 3
  %1316 = getelementptr i8, ptr %5, i64 %1315
  %scevgep1788 = getelementptr i8, ptr %1316, i64 8
  %1317 = getelementptr i8, ptr %5, i64 %1315
  %scevgep1789 = getelementptr i8, ptr %1317, i64 %1308
  %1318 = add nsw i64 %1296, %10
  %1319 = shl nsw i64 %1318, 3
  %1320 = getelementptr i8, ptr %5, i64 %1319
  %scevgep1790 = getelementptr i8, ptr %1320, i64 8
  %1321 = getelementptr i8, ptr %5, i64 %1319
  %scevgep1791 = getelementptr i8, ptr %1321, i64 %1308
  %1322 = add nsw i64 %1297, %10
  %1323 = shl nsw i64 %1322, 3
  %1324 = getelementptr i8, ptr %5, i64 %1323
  %scevgep1792 = getelementptr i8, ptr %1324, i64 8
  %1325 = getelementptr i8, ptr %5, i64 %1323
  %scevgep1793 = getelementptr i8, ptr %1325, i64 %1308
  %1326 = add nsw i64 %1298, %10
  %1327 = shl nsw i64 %1326, 3
  %1328 = getelementptr i8, ptr %5, i64 %1327
  %scevgep1794 = getelementptr i8, ptr %1328, i64 8
  %1329 = getelementptr i8, ptr %5, i64 %1327
  %scevgep1795 = getelementptr i8, ptr %1329, i64 %1308
  %1330 = add nsw i64 %1299, %10
  %1331 = shl nsw i64 %1330, 3
  %1332 = getelementptr i8, ptr %5, i64 %1331
  %scevgep1796 = getelementptr i8, ptr %1332, i64 8
  %1333 = getelementptr i8, ptr %5, i64 %1331
  %scevgep1797 = getelementptr i8, ptr %1333, i64 %1308
  %1334 = add nsw i64 %1300, %10
  %1335 = shl nsw i64 %1334, 3
  %1336 = getelementptr i8, ptr %5, i64 %1335
  %scevgep1798 = getelementptr i8, ptr %1336, i64 8
  %1337 = getelementptr i8, ptr %5, i64 %1335
  %scevgep1799 = getelementptr i8, ptr %1337, i64 %1308
  %1338 = add nsw i64 %1301, %10
  %1339 = shl nsw i64 %1338, 3
  %1340 = getelementptr i8, ptr %5, i64 %1339
  %scevgep1800 = getelementptr i8, ptr %1340, i64 8
  %1341 = getelementptr i8, ptr %5, i64 %1339
  %scevgep1801 = getelementptr i8, ptr %1341, i64 %1308
  %1342 = add nsw i64 %1302, %10
  %1343 = shl nsw i64 %1342, 3
  %1344 = getelementptr i8, ptr %5, i64 %1343
  %scevgep1802 = getelementptr i8, ptr %1344, i64 8
  %1345 = getelementptr i8, ptr %5, i64 %1343
  %scevgep1803 = getelementptr i8, ptr %1345, i64 %1308
  %bound0 = icmp ult ptr %scevgep, %scevgep1787
  %bound1 = icmp ult ptr %scevgep1786, %scevgep1785
  %found.conflict = and i1 %bound0, %bound1
  %bound01804 = icmp ult ptr %scevgep, %scevgep1789
  %bound11805 = icmp ult ptr %scevgep1788, %scevgep1785
  %found.conflict1806 = and i1 %bound01804, %bound11805
  %conflict.rdx = or i1 %found.conflict, %found.conflict1806
  %bound01807 = icmp ult ptr %scevgep, %scevgep1791
  %bound11808 = icmp ult ptr %scevgep1790, %scevgep1785
  %found.conflict1809 = and i1 %bound01807, %bound11808
  %conflict.rdx1810 = or i1 %conflict.rdx, %found.conflict1809
  %bound01811 = icmp ult ptr %scevgep, %scevgep1793
  %bound11812 = icmp ult ptr %scevgep1792, %scevgep1785
  %found.conflict1813 = and i1 %bound01811, %bound11812
  %conflict.rdx1814 = or i1 %conflict.rdx1810, %found.conflict1813
  %bound01815 = icmp ult ptr %scevgep, %scevgep1795
  %bound11816 = icmp ult ptr %scevgep1794, %scevgep1785
  %found.conflict1817 = and i1 %bound01815, %bound11816
  %conflict.rdx1818 = or i1 %conflict.rdx1814, %found.conflict1817
  %bound01819 = icmp ult ptr %scevgep, %scevgep1797
  %bound11820 = icmp ult ptr %scevgep1796, %scevgep1785
  %found.conflict1821 = and i1 %bound01819, %bound11820
  %conflict.rdx1822 = or i1 %conflict.rdx1818, %found.conflict1821
  %bound01823 = icmp ult ptr %scevgep, %scevgep1799
  %bound11824 = icmp ult ptr %scevgep1798, %scevgep1785
  %found.conflict1825 = and i1 %bound01823, %bound11824
  %conflict.rdx1826 = or i1 %conflict.rdx1822, %found.conflict1825
  %bound01827 = icmp ult ptr %scevgep, %scevgep1801
  %bound11828 = icmp ult ptr %scevgep1800, %scevgep1785
  %found.conflict1829 = and i1 %bound01827, %bound11828
  %conflict.rdx1830 = or i1 %conflict.rdx1826, %found.conflict1829
  %bound01831 = icmp ult ptr %scevgep, %scevgep1803
  %bound11832 = icmp ult ptr %scevgep1802, %scevgep1785
  %found.conflict1833 = and i1 %bound01831, %bound11832
  %conflict.rdx1834 = or i1 %conflict.rdx1830, %found.conflict1833
  %bound01835 = icmp ult ptr %scevgep1786, %scevgep1789
  %bound11836 = icmp ult ptr %scevgep1788, %scevgep1787
  %found.conflict1837 = and i1 %bound01835, %bound11836
  %conflict.rdx1838 = or i1 %conflict.rdx1834, %found.conflict1837
  %bound01839 = icmp ult ptr %scevgep1786, %scevgep1791
  %bound11840 = icmp ult ptr %scevgep1790, %scevgep1787
  %found.conflict1841 = and i1 %bound01839, %bound11840
  %conflict.rdx1842 = or i1 %conflict.rdx1838, %found.conflict1841
  %bound01843 = icmp ult ptr %scevgep1786, %scevgep1793
  %bound11844 = icmp ult ptr %scevgep1792, %scevgep1787
  %found.conflict1845 = and i1 %bound01843, %bound11844
  %conflict.rdx1846 = or i1 %conflict.rdx1842, %found.conflict1845
  %bound01847 = icmp ult ptr %scevgep1786, %scevgep1795
  %bound11848 = icmp ult ptr %scevgep1794, %scevgep1787
  %found.conflict1849 = and i1 %bound01847, %bound11848
  %conflict.rdx1850 = or i1 %conflict.rdx1846, %found.conflict1849
  %bound01851 = icmp ult ptr %scevgep1786, %scevgep1797
  %bound11852 = icmp ult ptr %scevgep1796, %scevgep1787
  %found.conflict1853 = and i1 %bound01851, %bound11852
  %conflict.rdx1854 = or i1 %conflict.rdx1850, %found.conflict1853
  %bound01855 = icmp ult ptr %scevgep1786, %scevgep1799
  %bound11856 = icmp ult ptr %scevgep1798, %scevgep1787
  %found.conflict1857 = and i1 %bound01855, %bound11856
  %conflict.rdx1858 = or i1 %conflict.rdx1854, %found.conflict1857
  %bound01859 = icmp ult ptr %scevgep1786, %scevgep1801
  %bound11860 = icmp ult ptr %scevgep1800, %scevgep1787
  %found.conflict1861 = and i1 %bound01859, %bound11860
  %conflict.rdx1862 = or i1 %conflict.rdx1858, %found.conflict1861
  %bound01863 = icmp ult ptr %scevgep1786, %scevgep1803
  %bound11864 = icmp ult ptr %scevgep1802, %scevgep1787
  %found.conflict1865 = and i1 %bound01863, %bound11864
  %conflict.rdx1866 = or i1 %conflict.rdx1862, %found.conflict1865
  %bound01867 = icmp ult ptr %scevgep1788, %scevgep1791
  %bound11868 = icmp ult ptr %scevgep1790, %scevgep1789
  %found.conflict1869 = and i1 %bound01867, %bound11868
  %conflict.rdx1870 = or i1 %conflict.rdx1866, %found.conflict1869
  %bound01871 = icmp ult ptr %scevgep1788, %scevgep1793
  %bound11872 = icmp ult ptr %scevgep1792, %scevgep1789
  %found.conflict1873 = and i1 %bound01871, %bound11872
  %conflict.rdx1874 = or i1 %conflict.rdx1870, %found.conflict1873
  %bound01875 = icmp ult ptr %scevgep1788, %scevgep1795
  %bound11876 = icmp ult ptr %scevgep1794, %scevgep1789
  %found.conflict1877 = and i1 %bound01875, %bound11876
  %conflict.rdx1878 = or i1 %conflict.rdx1874, %found.conflict1877
  %bound01879 = icmp ult ptr %scevgep1788, %scevgep1797
  %bound11880 = icmp ult ptr %scevgep1796, %scevgep1789
  %found.conflict1881 = and i1 %bound01879, %bound11880
  %conflict.rdx1882 = or i1 %conflict.rdx1878, %found.conflict1881
  %bound01883 = icmp ult ptr %scevgep1788, %scevgep1799
  %bound11884 = icmp ult ptr %scevgep1798, %scevgep1789
  %found.conflict1885 = and i1 %bound01883, %bound11884
  %conflict.rdx1886 = or i1 %conflict.rdx1882, %found.conflict1885
  %bound01887 = icmp ult ptr %scevgep1788, %scevgep1801
  %bound11888 = icmp ult ptr %scevgep1800, %scevgep1789
  %found.conflict1889 = and i1 %bound01887, %bound11888
  %conflict.rdx1890 = or i1 %conflict.rdx1886, %found.conflict1889
  %bound01891 = icmp ult ptr %scevgep1788, %scevgep1803
  %bound11892 = icmp ult ptr %scevgep1802, %scevgep1789
  %found.conflict1893 = and i1 %bound01891, %bound11892
  %conflict.rdx1894 = or i1 %conflict.rdx1890, %found.conflict1893
  %bound01895 = icmp ult ptr %scevgep1790, %scevgep1793
  %bound11896 = icmp ult ptr %scevgep1792, %scevgep1791
  %found.conflict1897 = and i1 %bound01895, %bound11896
  %conflict.rdx1898 = or i1 %conflict.rdx1894, %found.conflict1897
  %bound01899 = icmp ult ptr %scevgep1790, %scevgep1795
  %bound11900 = icmp ult ptr %scevgep1794, %scevgep1791
  %found.conflict1901 = and i1 %bound01899, %bound11900
  %conflict.rdx1902 = or i1 %conflict.rdx1898, %found.conflict1901
  %bound01903 = icmp ult ptr %scevgep1790, %scevgep1797
  %bound11904 = icmp ult ptr %scevgep1796, %scevgep1791
  %found.conflict1905 = and i1 %bound01903, %bound11904
  %conflict.rdx1906 = or i1 %conflict.rdx1902, %found.conflict1905
  %bound01907 = icmp ult ptr %scevgep1790, %scevgep1799
  %bound11908 = icmp ult ptr %scevgep1798, %scevgep1791
  %found.conflict1909 = and i1 %bound01907, %bound11908
  %conflict.rdx1910 = or i1 %conflict.rdx1906, %found.conflict1909
  %bound01911 = icmp ult ptr %scevgep1790, %scevgep1801
  %bound11912 = icmp ult ptr %scevgep1800, %scevgep1791
  %found.conflict1913 = and i1 %bound01911, %bound11912
  %conflict.rdx1914 = or i1 %conflict.rdx1910, %found.conflict1913
  %bound01915 = icmp ult ptr %scevgep1790, %scevgep1803
  %bound11916 = icmp ult ptr %scevgep1802, %scevgep1791
  %found.conflict1917 = and i1 %bound01915, %bound11916
  %conflict.rdx1918 = or i1 %conflict.rdx1914, %found.conflict1917
  %bound01919 = icmp ult ptr %scevgep1792, %scevgep1795
  %bound11920 = icmp ult ptr %scevgep1794, %scevgep1793
  %found.conflict1921 = and i1 %bound01919, %bound11920
  %conflict.rdx1922 = or i1 %conflict.rdx1918, %found.conflict1921
  %bound01923 = icmp ult ptr %scevgep1792, %scevgep1797
  %bound11924 = icmp ult ptr %scevgep1796, %scevgep1793
  %found.conflict1925 = and i1 %bound01923, %bound11924
  %conflict.rdx1926 = or i1 %conflict.rdx1922, %found.conflict1925
  %bound01927 = icmp ult ptr %scevgep1792, %scevgep1799
  %bound11928 = icmp ult ptr %scevgep1798, %scevgep1793
  %found.conflict1929 = and i1 %bound01927, %bound11928
  %conflict.rdx1930 = or i1 %conflict.rdx1926, %found.conflict1929
  %bound01931 = icmp ult ptr %scevgep1792, %scevgep1801
  %bound11932 = icmp ult ptr %scevgep1800, %scevgep1793
  %found.conflict1933 = and i1 %bound01931, %bound11932
  %conflict.rdx1934 = or i1 %conflict.rdx1930, %found.conflict1933
  %bound01935 = icmp ult ptr %scevgep1792, %scevgep1803
  %bound11936 = icmp ult ptr %scevgep1802, %scevgep1793
  %found.conflict1937 = and i1 %bound01935, %bound11936
  %conflict.rdx1938 = or i1 %conflict.rdx1934, %found.conflict1937
  %bound01939 = icmp ult ptr %scevgep1794, %scevgep1797
  %bound11940 = icmp ult ptr %scevgep1796, %scevgep1795
  %found.conflict1941 = and i1 %bound01939, %bound11940
  %conflict.rdx1942 = or i1 %conflict.rdx1938, %found.conflict1941
  %bound01943 = icmp ult ptr %scevgep1794, %scevgep1799
  %bound11944 = icmp ult ptr %scevgep1798, %scevgep1795
  %found.conflict1945 = and i1 %bound01943, %bound11944
  %conflict.rdx1946 = or i1 %conflict.rdx1942, %found.conflict1945
  %bound01947 = icmp ult ptr %scevgep1794, %scevgep1801
  %bound11948 = icmp ult ptr %scevgep1800, %scevgep1795
  %found.conflict1949 = and i1 %bound01947, %bound11948
  %conflict.rdx1950 = or i1 %conflict.rdx1946, %found.conflict1949
  %bound01951 = icmp ult ptr %scevgep1794, %scevgep1803
  %bound11952 = icmp ult ptr %scevgep1802, %scevgep1795
  %found.conflict1953 = and i1 %bound01951, %bound11952
  %conflict.rdx1954 = or i1 %conflict.rdx1950, %found.conflict1953
  %bound01955 = icmp ult ptr %scevgep1796, %scevgep1799
  %bound11956 = icmp ult ptr %scevgep1798, %scevgep1797
  %found.conflict1957 = and i1 %bound01955, %bound11956
  %conflict.rdx1958 = or i1 %conflict.rdx1954, %found.conflict1957
  %bound01959 = icmp ult ptr %scevgep1796, %scevgep1801
  %bound11960 = icmp ult ptr %scevgep1800, %scevgep1797
  %found.conflict1961 = and i1 %bound01959, %bound11960
  %conflict.rdx1962 = or i1 %conflict.rdx1958, %found.conflict1961
  %bound01963 = icmp ult ptr %scevgep1796, %scevgep1803
  %bound11964 = icmp ult ptr %scevgep1802, %scevgep1797
  %found.conflict1965 = and i1 %bound01963, %bound11964
  %conflict.rdx1966 = or i1 %conflict.rdx1962, %found.conflict1965
  %bound01967 = icmp ult ptr %scevgep1798, %scevgep1801
  %bound11968 = icmp ult ptr %scevgep1800, %scevgep1799
  %found.conflict1969 = and i1 %bound01967, %bound11968
  %conflict.rdx1970 = or i1 %conflict.rdx1966, %found.conflict1969
  %bound01971 = icmp ult ptr %scevgep1798, %scevgep1803
  %bound11972 = icmp ult ptr %scevgep1802, %scevgep1799
  %found.conflict1973 = and i1 %bound01971, %bound11972
  %conflict.rdx1974 = or i1 %conflict.rdx1970, %found.conflict1973
  %bound01975 = icmp ult ptr %scevgep1800, %scevgep1803
  %bound11976 = icmp ult ptr %scevgep1802, %scevgep1801
  %found.conflict1977 = and i1 %bound01975, %bound11976
  %conflict.rdx1978 = or i1 %conflict.rdx1974, %found.conflict1977
  br i1 %conflict.rdx1978, label %scalar.ph1980.preheader, label %vector.ph1982

vector.ph1982:                                    ; preds = %vector.memcheck
  %n.vec1984 = and i64 %1304, 2147483646
  %ind.end1985 = or i64 %1304, 1
  %broadcast.splatinsert1992 = insertelement <2 x double> poison, double %1257, i64 0
  %broadcast.splat1993 = shufflevector <2 x double> %broadcast.splatinsert1992, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert1994 = insertelement <2 x double> poison, double %1253, i64 0
  %broadcast.splat1995 = shufflevector <2 x double> %broadcast.splatinsert1994, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert1997 = insertelement <2 x double> poison, double %1260, i64 0
  %broadcast.splat1998 = shufflevector <2 x double> %broadcast.splatinsert1997, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2000 = insertelement <2 x double> poison, double %1263, i64 0
  %broadcast.splat2001 = shufflevector <2 x double> %broadcast.splatinsert2000, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2003 = insertelement <2 x double> poison, double %1266, i64 0
  %broadcast.splat2004 = shufflevector <2 x double> %broadcast.splatinsert2003, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2006 = insertelement <2 x double> poison, double %1269, i64 0
  %broadcast.splat2007 = shufflevector <2 x double> %broadcast.splatinsert2006, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2009 = insertelement <2 x double> poison, double %1272, i64 0
  %broadcast.splat2010 = shufflevector <2 x double> %broadcast.splatinsert2009, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2012 = insertelement <2 x double> poison, double %1275, i64 0
  %broadcast.splat2013 = shufflevector <2 x double> %broadcast.splatinsert2012, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2015 = insertelement <2 x double> poison, double %1278, i64 0
  %broadcast.splat2016 = shufflevector <2 x double> %broadcast.splatinsert2015, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2018 = insertelement <2 x double> poison, double %1281, i64 0
  %broadcast.splat2019 = shufflevector <2 x double> %broadcast.splatinsert2018, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2020 = insertelement <2 x double> poison, double %1255, i64 0
  %broadcast.splat2021 = shufflevector <2 x double> %broadcast.splatinsert2020, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2023 = insertelement <2 x double> poison, double %1258, i64 0
  %broadcast.splat2024 = shufflevector <2 x double> %broadcast.splatinsert2023, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2026 = insertelement <2 x double> poison, double %1261, i64 0
  %broadcast.splat2027 = shufflevector <2 x double> %broadcast.splatinsert2026, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2029 = insertelement <2 x double> poison, double %1264, i64 0
  %broadcast.splat2030 = shufflevector <2 x double> %broadcast.splatinsert2029, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2032 = insertelement <2 x double> poison, double %1267, i64 0
  %broadcast.splat2033 = shufflevector <2 x double> %broadcast.splatinsert2032, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2035 = insertelement <2 x double> poison, double %1270, i64 0
  %broadcast.splat2036 = shufflevector <2 x double> %broadcast.splatinsert2035, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2038 = insertelement <2 x double> poison, double %1273, i64 0
  %broadcast.splat2039 = shufflevector <2 x double> %broadcast.splatinsert2038, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2041 = insertelement <2 x double> poison, double %1276, i64 0
  %broadcast.splat2042 = shufflevector <2 x double> %broadcast.splatinsert2041, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2044 = insertelement <2 x double> poison, double %1279, i64 0
  %broadcast.splat2045 = shufflevector <2 x double> %broadcast.splatinsert2044, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert2047 = insertelement <2 x double> poison, double %1282, i64 0
  %broadcast.splat2048 = shufflevector <2 x double> %broadcast.splatinsert2047, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1987

vector.body1987:                                  ; preds = %vector.body1987, %vector.ph1982
  %index1988 = phi i64 [ 0, %vector.ph1982 ], [ %index.next2049, %vector.body1987 ]
  %offset.idx1989 = or disjoint i64 %index1988, 1
  %1346 = getelementptr double, ptr %invariant.gep1655, i64 %offset.idx1989
  %wide.load1990 = load <2 x double>, ptr %1346, align 8, !tbaa !9, !alias.scope !169, !noalias !172
  %1347 = getelementptr double, ptr %invariant.gep1657, i64 %offset.idx1989
  %wide.load1991 = load <2 x double>, ptr %1347, align 8, !tbaa !9, !alias.scope !182, !noalias !183
  %1348 = fmul <2 x double> %broadcast.splat1993, %wide.load1991
  %1349 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat1995, <2 x double> %wide.load1990, <2 x double> %1348)
  %1350 = getelementptr double, ptr %invariant.gep1659, i64 %offset.idx1989
  %wide.load1996 = load <2 x double>, ptr %1350, align 8, !tbaa !9, !alias.scope !184, !noalias !185
  %1351 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat1998, <2 x double> %wide.load1996, <2 x double> %1349)
  %1352 = getelementptr double, ptr %invariant.gep1661, i64 %offset.idx1989
  %wide.load1999 = load <2 x double>, ptr %1352, align 8, !tbaa !9, !alias.scope !186, !noalias !187
  %1353 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2001, <2 x double> %wide.load1999, <2 x double> %1351)
  %1354 = getelementptr double, ptr %invariant.gep1663, i64 %offset.idx1989
  %wide.load2002 = load <2 x double>, ptr %1354, align 8, !tbaa !9, !alias.scope !188, !noalias !189
  %1355 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2004, <2 x double> %wide.load2002, <2 x double> %1353)
  %1356 = getelementptr double, ptr %invariant.gep1665, i64 %offset.idx1989
  %wide.load2005 = load <2 x double>, ptr %1356, align 8, !tbaa !9, !alias.scope !190, !noalias !191
  %1357 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2007, <2 x double> %wide.load2005, <2 x double> %1355)
  %1358 = getelementptr double, ptr %invariant.gep1667, i64 %offset.idx1989
  %wide.load2008 = load <2 x double>, ptr %1358, align 8, !tbaa !9, !alias.scope !192, !noalias !193
  %1359 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2010, <2 x double> %wide.load2008, <2 x double> %1357)
  %1360 = getelementptr double, ptr %invariant.gep1669, i64 %offset.idx1989
  %wide.load2011 = load <2 x double>, ptr %1360, align 8, !tbaa !9, !alias.scope !194, !noalias !195
  %1361 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2013, <2 x double> %wide.load2011, <2 x double> %1359)
  %1362 = getelementptr double, ptr %invariant.gep1671, i64 %offset.idx1989
  %wide.load2014 = load <2 x double>, ptr %1362, align 8, !tbaa !9, !alias.scope !196, !noalias !197
  %1363 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2016, <2 x double> %wide.load2014, <2 x double> %1361)
  %1364 = getelementptr double, ptr %invariant.gep1673, i64 %offset.idx1989
  %wide.load2017 = load <2 x double>, ptr %1364, align 8, !tbaa !9, !alias.scope !197
  %1365 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2019, <2 x double> %wide.load2017, <2 x double> %1363)
  %1366 = fneg <2 x double> %1365
  %1367 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1366, <2 x double> %broadcast.splat2021, <2 x double> %wide.load1990)
  store <2 x double> %1367, ptr %1346, align 8, !tbaa !9, !alias.scope !169, !noalias !172
  %wide.load2022 = load <2 x double>, ptr %1347, align 8, !tbaa !9, !alias.scope !182, !noalias !183
  %1368 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1366, <2 x double> %broadcast.splat2024, <2 x double> %wide.load2022)
  store <2 x double> %1368, ptr %1347, align 8, !tbaa !9, !alias.scope !182, !noalias !183
  %wide.load2025 = load <2 x double>, ptr %1350, align 8, !tbaa !9, !alias.scope !184, !noalias !185
  %1369 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1366, <2 x double> %broadcast.splat2027, <2 x double> %wide.load2025)
  store <2 x double> %1369, ptr %1350, align 8, !tbaa !9, !alias.scope !184, !noalias !185
  %wide.load2028 = load <2 x double>, ptr %1352, align 8, !tbaa !9, !alias.scope !186, !noalias !187
  %1370 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1366, <2 x double> %broadcast.splat2030, <2 x double> %wide.load2028)
  store <2 x double> %1370, ptr %1352, align 8, !tbaa !9, !alias.scope !186, !noalias !187
  %wide.load2031 = load <2 x double>, ptr %1354, align 8, !tbaa !9, !alias.scope !188, !noalias !189
  %1371 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1366, <2 x double> %broadcast.splat2033, <2 x double> %wide.load2031)
  store <2 x double> %1371, ptr %1354, align 8, !tbaa !9, !alias.scope !188, !noalias !189
  %wide.load2034 = load <2 x double>, ptr %1356, align 8, !tbaa !9, !alias.scope !190, !noalias !191
  %1372 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1366, <2 x double> %broadcast.splat2036, <2 x double> %wide.load2034)
  store <2 x double> %1372, ptr %1356, align 8, !tbaa !9, !alias.scope !190, !noalias !191
  %wide.load2037 = load <2 x double>, ptr %1358, align 8, !tbaa !9, !alias.scope !192, !noalias !193
  %1373 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1366, <2 x double> %broadcast.splat2039, <2 x double> %wide.load2037)
  store <2 x double> %1373, ptr %1358, align 8, !tbaa !9, !alias.scope !192, !noalias !193
  %wide.load2040 = load <2 x double>, ptr %1360, align 8, !tbaa !9, !alias.scope !194, !noalias !195
  %1374 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1366, <2 x double> %broadcast.splat2042, <2 x double> %wide.load2040)
  store <2 x double> %1374, ptr %1360, align 8, !tbaa !9, !alias.scope !194, !noalias !195
  %wide.load2043 = load <2 x double>, ptr %1362, align 8, !tbaa !9, !alias.scope !196, !noalias !197
  %1375 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1366, <2 x double> %broadcast.splat2045, <2 x double> %wide.load2043)
  store <2 x double> %1375, ptr %1362, align 8, !tbaa !9, !alias.scope !196, !noalias !197
  %wide.load2046 = load <2 x double>, ptr %1364, align 8, !tbaa !9, !alias.scope !197
  %1376 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1366, <2 x double> %broadcast.splat2048, <2 x double> %wide.load2046)
  store <2 x double> %1376, ptr %1364, align 8, !tbaa !9, !alias.scope !197
  %index.next2049 = add nuw i64 %index1988, 2
  %1377 = icmp eq i64 %index.next2049, %n.vec1984
  br i1 %1377, label %middle.block1979, label %vector.body1987, !llvm.loop !198

middle.block1979:                                 ; preds = %vector.body1987
  %cmp.n2050 = icmp eq i64 %n.vec1984, %1304
  br i1 %cmp.n2050, label %.loopexit, label %scalar.ph1980.preheader

scalar.ph1980.preheader:                          ; preds = %middle.block1979, %vector.memcheck, %.lr.ph1493
  %indvars.iv1586.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph1493 ], [ %ind.end1985, %middle.block1979 ]
  br label %scalar.ph1980

scalar.ph1980:                                    ; preds = %scalar.ph1980.preheader, %scalar.ph1980
  %indvars.iv1586 = phi i64 [ %indvars.iv.next1587, %scalar.ph1980 ], [ %indvars.iv1586.ph, %scalar.ph1980.preheader ]
  %gep1656 = getelementptr double, ptr %invariant.gep1655, i64 %indvars.iv1586
  %1378 = load double, ptr %gep1656, align 8, !tbaa !9
  %gep1658 = getelementptr double, ptr %invariant.gep1657, i64 %indvars.iv1586
  %1379 = load double, ptr %gep1658, align 8, !tbaa !9
  %1380 = fmul double %1257, %1379
  %1381 = tail call double @llvm.fmuladd.f64(double %1253, double %1378, double %1380)
  %gep1660 = getelementptr double, ptr %invariant.gep1659, i64 %indvars.iv1586
  %1382 = load double, ptr %gep1660, align 8, !tbaa !9
  %1383 = tail call double @llvm.fmuladd.f64(double %1260, double %1382, double %1381)
  %gep1662 = getelementptr double, ptr %invariant.gep1661, i64 %indvars.iv1586
  %1384 = load double, ptr %gep1662, align 8, !tbaa !9
  %1385 = tail call double @llvm.fmuladd.f64(double %1263, double %1384, double %1383)
  %gep1664 = getelementptr double, ptr %invariant.gep1663, i64 %indvars.iv1586
  %1386 = load double, ptr %gep1664, align 8, !tbaa !9
  %1387 = tail call double @llvm.fmuladd.f64(double %1266, double %1386, double %1385)
  %gep1666 = getelementptr double, ptr %invariant.gep1665, i64 %indvars.iv1586
  %1388 = load double, ptr %gep1666, align 8, !tbaa !9
  %1389 = tail call double @llvm.fmuladd.f64(double %1269, double %1388, double %1387)
  %gep1668 = getelementptr double, ptr %invariant.gep1667, i64 %indvars.iv1586
  %1390 = load double, ptr %gep1668, align 8, !tbaa !9
  %1391 = tail call double @llvm.fmuladd.f64(double %1272, double %1390, double %1389)
  %gep1670 = getelementptr double, ptr %invariant.gep1669, i64 %indvars.iv1586
  %1392 = load double, ptr %gep1670, align 8, !tbaa !9
  %1393 = tail call double @llvm.fmuladd.f64(double %1275, double %1392, double %1391)
  %gep1672 = getelementptr double, ptr %invariant.gep1671, i64 %indvars.iv1586
  %1394 = load double, ptr %gep1672, align 8, !tbaa !9
  %1395 = tail call double @llvm.fmuladd.f64(double %1278, double %1394, double %1393)
  %gep1674 = getelementptr double, ptr %invariant.gep1673, i64 %indvars.iv1586
  %1396 = load double, ptr %gep1674, align 8, !tbaa !9
  %1397 = tail call double @llvm.fmuladd.f64(double %1281, double %1396, double %1395)
  %1398 = fneg double %1397
  %1399 = tail call double @llvm.fmuladd.f64(double %1398, double %1255, double %1378)
  store double %1399, ptr %gep1656, align 8, !tbaa !9
  %1400 = load double, ptr %gep1658, align 8, !tbaa !9
  %1401 = tail call double @llvm.fmuladd.f64(double %1398, double %1258, double %1400)
  store double %1401, ptr %gep1658, align 8, !tbaa !9
  %1402 = load double, ptr %gep1660, align 8, !tbaa !9
  %1403 = tail call double @llvm.fmuladd.f64(double %1398, double %1261, double %1402)
  store double %1403, ptr %gep1660, align 8, !tbaa !9
  %1404 = load double, ptr %gep1662, align 8, !tbaa !9
  %1405 = tail call double @llvm.fmuladd.f64(double %1398, double %1264, double %1404)
  store double %1405, ptr %gep1662, align 8, !tbaa !9
  %1406 = load double, ptr %gep1664, align 8, !tbaa !9
  %1407 = tail call double @llvm.fmuladd.f64(double %1398, double %1267, double %1406)
  store double %1407, ptr %gep1664, align 8, !tbaa !9
  %1408 = load double, ptr %gep1666, align 8, !tbaa !9
  %1409 = tail call double @llvm.fmuladd.f64(double %1398, double %1270, double %1408)
  store double %1409, ptr %gep1666, align 8, !tbaa !9
  %1410 = load double, ptr %gep1668, align 8, !tbaa !9
  %1411 = tail call double @llvm.fmuladd.f64(double %1398, double %1273, double %1410)
  store double %1411, ptr %gep1668, align 8, !tbaa !9
  %1412 = load double, ptr %gep1670, align 8, !tbaa !9
  %1413 = tail call double @llvm.fmuladd.f64(double %1398, double %1276, double %1412)
  store double %1413, ptr %gep1670, align 8, !tbaa !9
  %1414 = load double, ptr %gep1672, align 8, !tbaa !9
  %1415 = tail call double @llvm.fmuladd.f64(double %1398, double %1279, double %1414)
  store double %1415, ptr %gep1672, align 8, !tbaa !9
  %1416 = load double, ptr %gep1674, align 8, !tbaa !9
  %1417 = tail call double @llvm.fmuladd.f64(double %1398, double %1282, double %1416)
  store double %1417, ptr %gep1674, align 8, !tbaa !9
  %indvars.iv.next1587 = add nuw nsw i64 %indvars.iv1586, 1
  %exitcond1590.not = icmp eq i64 %indvars.iv.next1587, %wide.trip.count1589
  br i1 %exitcond1590.not, label %.loopexit, label %scalar.ph1980, !llvm.loop !199

.loopexit.loopexit3008.unr-lcssa:                 ; preds = %.lr.ph1487, %.lr.ph1487.preheader
  %indvars.iv1576.unr = phi i64 [ 1, %.lr.ph1487.preheader ], [ %indvars.iv.next1577.1, %.lr.ph1487 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.loopexit, label %.lr.ph1487.epil

.lr.ph1487.epil:                                  ; preds = %.loopexit.loopexit3008.unr-lcssa
  %1418 = mul nsw i64 %indvars.iv1576.unr, %60
  %1419 = getelementptr double, ptr %11, i64 %1418
  %1420 = getelementptr i8, ptr %1419, i64 8
  %1421 = load <2 x double>, ptr %1420, align 8, !tbaa !9
  %1422 = fmul <2 x double> %55, %1421
  %1423 = extractelement <2 x double> %1422, i64 1
  %1424 = extractelement <2 x double> %1421, i64 0
  %1425 = tail call double @llvm.fmuladd.f64(double %61, double %1424, double %1423)
  %1426 = fneg double %1425
  %1427 = insertelement <2 x double> poison, double %1426, i64 0
  %1428 = shufflevector <2 x double> %1427, <2 x double> poison, <2 x i32> zeroinitializer
  %1429 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1428, <2 x double> %58, <2 x double> %1421)
  store <2 x double> %1429, ptr %1420, align 8, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph, %.lr.ph1466, %.lr.ph1469, %.lr.ph1472, %.lr.ph1475, %.lr.ph1478, %.lr.ph1481, %.lr.ph1484, %.lr.ph1487.epil, %.loopexit.loopexit3008.unr-lcssa, %.lr.ph1490.prol.loopexit, %.lr.ph1490, %scalar.ph1980, %scalar.ph2214, %scalar.ph2408, %scalar.ph2566, %scalar.ph2692, %scalar.ph2790, %scalar.ph2864, %scalar.ph2918, %scalar.ph2956, %.lr.ph1520, %middle.block, %middle.block1979, %middle.block2213, %middle.block2407, %middle.block2565, %middle.block2691, %middle.block2789, %middle.block2863, %middle.block2917, %middle.block2955, %middle.block2979, %410, %345, %287, %234, %188, %147, %113, %84, %53, %19, %1252, %1102, %968, %850, %748, %662, %592, %538, %500, %483, %18, %482, %8
  ret void
}

declare i32 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @dlarf_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #3

attributes #0 = { 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 #1 = { "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 #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { 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 = !{!"double", !7, i64 0}
!11 = distinct !{!11, !12, !13, !14}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!"llvm.loop.isvectorized", i32 1}
!14 = !{!"llvm.loop.unroll.runtime.disable"}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.unroll.disable"}
!17 = distinct !{!17, !12, !13}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12, !13, !14}
!28 = distinct !{!28, !12, !14, !13}
!29 = !{!30}
!30 = distinct !{!30, !31}
!31 = distinct !{!31, !"LVerDomain"}
!32 = !{!33}
!33 = distinct !{!33, !31}
!34 = distinct !{!34, !12, !13, !14}
!35 = distinct !{!35, !12, !13}
!36 = !{!37}
!37 = distinct !{!37, !38}
!38 = distinct !{!38, !"LVerDomain"}
!39 = !{!40, !41}
!40 = distinct !{!40, !38}
!41 = distinct !{!41, !38}
!42 = !{!40}
!43 = !{!41}
!44 = distinct !{!44, !12, !13, !14}
!45 = distinct !{!45, !12, !13}
!46 = !{!47}
!47 = distinct !{!47, !48}
!48 = distinct !{!48, !"LVerDomain"}
!49 = !{!50, !51, !52}
!50 = distinct !{!50, !48}
!51 = distinct !{!51, !48}
!52 = distinct !{!52, !48}
!53 = !{!50}
!54 = !{!51, !52}
!55 = !{!51}
!56 = !{!52}
!57 = distinct !{!57, !12, !13, !14}
!58 = distinct !{!58, !12, !13}
!59 = !{!60}
!60 = distinct !{!60, !61}
!61 = distinct !{!61, !"LVerDomain"}
!62 = !{!63, !64, !65, !66}
!63 = distinct !{!63, !61}
!64 = distinct !{!64, !61}
!65 = distinct !{!65, !61}
!66 = distinct !{!66, !61}
!67 = !{!63}
!68 = !{!64, !65, !66}
!69 = !{!64}
!70 = !{!65, !66}
!71 = !{!65}
!72 = !{!66}
!73 = distinct !{!73, !12, !13, !14}
!74 = distinct !{!74, !12, !13}
!75 = !{!76}
!76 = distinct !{!76, !77}
!77 = distinct !{!77, !"LVerDomain"}
!78 = !{!79, !80, !81, !82, !83}
!79 = distinct !{!79, !77}
!80 = distinct !{!80, !77}
!81 = distinct !{!81, !77}
!82 = distinct !{!82, !77}
!83 = distinct !{!83, !77}
!84 = !{!79}
!85 = !{!80, !81, !82, !83}
!86 = !{!80}
!87 = !{!81, !82, !83}
!88 = !{!81}
!89 = !{!82, !83}
!90 = !{!82}
!91 = !{!83}
!92 = distinct !{!92, !12, !13, !14}
!93 = distinct !{!93, !12, !13}
!94 = !{!95}
!95 = distinct !{!95, !96}
!96 = distinct !{!96, !"LVerDomain"}
!97 = !{!98, !99, !100, !101, !102, !103}
!98 = distinct !{!98, !96}
!99 = distinct !{!99, !96}
!100 = distinct !{!100, !96}
!101 = distinct !{!101, !96}
!102 = distinct !{!102, !96}
!103 = distinct !{!103, !96}
!104 = !{!98}
!105 = !{!99, !100, !101, !102, !103}
!106 = !{!99}
!107 = !{!100, !101, !102, !103}
!108 = !{!100}
!109 = !{!101, !102, !103}
!110 = !{!101}
!111 = !{!102, !103}
!112 = !{!102}
!113 = !{!103}
!114 = distinct !{!114, !12, !13, !14}
!115 = distinct !{!115, !12, !13}
!116 = !{!117}
!117 = distinct !{!117, !118}
!118 = distinct !{!118, !"LVerDomain"}
!119 = !{!120, !121, !122, !123, !124, !125, !126}
!120 = distinct !{!120, !118}
!121 = distinct !{!121, !118}
!122 = distinct !{!122, !118}
!123 = distinct !{!123, !118}
!124 = distinct !{!124, !118}
!125 = distinct !{!125, !118}
!126 = distinct !{!126, !118}
!127 = !{!120}
!128 = !{!121, !122, !123, !124, !125, !126}
!129 = !{!121}
!130 = !{!122, !123, !124, !125, !126}
!131 = !{!122}
!132 = !{!123, !124, !125, !126}
!133 = !{!123}
!134 = !{!124, !125, !126}
!135 = !{!124}
!136 = !{!125, !126}
!137 = !{!125}
!138 = !{!126}
!139 = distinct !{!139, !12, !13, !14}
!140 = distinct !{!140, !12, !13}
!141 = !{!142}
!142 = distinct !{!142, !143}
!143 = distinct !{!143, !"LVerDomain"}
!144 = !{!145, !146, !147, !148, !149, !150, !151, !152}
!145 = distinct !{!145, !143}
!146 = distinct !{!146, !143}
!147 = distinct !{!147, !143}
!148 = distinct !{!148, !143}
!149 = distinct !{!149, !143}
!150 = distinct !{!150, !143}
!151 = distinct !{!151, !143}
!152 = distinct !{!152, !143}
!153 = !{!145}
!154 = !{!146, !147, !148, !149, !150, !151, !152}
!155 = !{!146}
!156 = !{!147, !148, !149, !150, !151, !152}
!157 = !{!147}
!158 = !{!148, !149, !150, !151, !152}
!159 = !{!148}
!160 = !{!149, !150, !151, !152}
!161 = !{!149}
!162 = !{!150, !151, !152}
!163 = !{!150}
!164 = !{!151, !152}
!165 = !{!151}
!166 = !{!152}
!167 = distinct !{!167, !12, !13, !14}
!168 = distinct !{!168, !12, !13}
!169 = !{!170}
!170 = distinct !{!170, !171}
!171 = distinct !{!171, !"LVerDomain"}
!172 = !{!173, !174, !175, !176, !177, !178, !179, !180, !181}
!173 = distinct !{!173, !171}
!174 = distinct !{!174, !171}
!175 = distinct !{!175, !171}
!176 = distinct !{!176, !171}
!177 = distinct !{!177, !171}
!178 = distinct !{!178, !171}
!179 = distinct !{!179, !171}
!180 = distinct !{!180, !171}
!181 = distinct !{!181, !171}
!182 = !{!173}
!183 = !{!174, !175, !176, !177, !178, !179, !180, !181}
!184 = !{!174}
!185 = !{!175, !176, !177, !178, !179, !180, !181}
!186 = !{!175}
!187 = !{!176, !177, !178, !179, !180, !181}
!188 = !{!176}
!189 = !{!177, !178, !179, !180, !181}
!190 = !{!177}
!191 = !{!178, !179, !180, !181}
!192 = !{!178}
!193 = !{!179, !180, !181}
!194 = !{!179}
!195 = !{!180, !181}
!196 = !{!180}
!197 = !{!181}
!198 = distinct !{!198, !12, !13, !14}
!199 = distinct !{!199, !12, !13}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass