; LLVM IR from glaretechnologies/substrata :: libs/fft2d (shrtdct)

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local void @ddct16x16s(i32 noundef %0, ptr noundef %1) #2 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca double, align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  store i32 %0, ptr %3, align 4, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #3
  %24 = load i32, ptr %3, align 4, !tbaa !5
  %25 = icmp slt i32 %24, 0
  br i1 %25, label %26, label %1117

26:                                               ; preds = %2
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %27

27:                                               ; preds = %568, %26
  %28 = load i32, ptr %5, align 4, !tbaa !5
  %29 = icmp sle i32 %28, 15
  br i1 %29, label %30, label %571

30:                                               ; preds = %27
  %31 = load ptr, ptr %4, align 8, !tbaa !9
  %32 = getelementptr inbounds ptr, ptr %31, i64 0
  %33 = load ptr, ptr %32, align 8, !tbaa !9
  %34 = load i32, ptr %5, align 4, !tbaa !5
  %35 = sext i32 %34 to i64
  %36 = getelementptr inbounds double, ptr %33, i64 %35
  %37 = load double, ptr %36, align 8, !tbaa !11
  %38 = load ptr, ptr %4, align 8, !tbaa !9
  %39 = getelementptr inbounds ptr, ptr %38, i64 15
  %40 = load ptr, ptr %39, align 8, !tbaa !9
  %41 = load i32, ptr %5, align 4, !tbaa !5
  %42 = sext i32 %41 to i64
  %43 = getelementptr inbounds double, ptr %40, i64 %42
  %44 = load double, ptr %43, align 8, !tbaa !11
  %45 = fsub double %37, %44
  store double %45, ptr %14, align 8, !tbaa !11
  %46 = load ptr, ptr %4, align 8, !tbaa !9
  %47 = getelementptr inbounds ptr, ptr %46, i64 0
  %48 = load ptr, ptr %47, align 8, !tbaa !9
  %49 = load i32, ptr %5, align 4, !tbaa !5
  %50 = sext i32 %49 to i64
  %51 = getelementptr inbounds double, ptr %48, i64 %50
  %52 = load double, ptr %51, align 8, !tbaa !11
  %53 = load ptr, ptr %4, align 8, !tbaa !9
  %54 = getelementptr inbounds ptr, ptr %53, i64 15
  %55 = load ptr, ptr %54, align 8, !tbaa !9
  %56 = load i32, ptr %5, align 4, !tbaa !5
  %57 = sext i32 %56 to i64
  %58 = getelementptr inbounds double, ptr %55, i64 %57
  %59 = load double, ptr %58, align 8, !tbaa !11
  %60 = fadd double %52, %59
  store double %60, ptr %22, align 8, !tbaa !11
  %61 = load ptr, ptr %4, align 8, !tbaa !9
  %62 = getelementptr inbounds ptr, ptr %61, i64 8
  %63 = load ptr, ptr %62, align 8, !tbaa !9
  %64 = load i32, ptr %5, align 4, !tbaa !5
  %65 = sext i32 %64 to i64
  %66 = getelementptr inbounds double, ptr %63, i64 %65
  %67 = load double, ptr %66, align 8, !tbaa !11
  %68 = load ptr, ptr %4, align 8, !tbaa !9
  %69 = getelementptr inbounds ptr, ptr %68, i64 7
  %70 = load ptr, ptr %69, align 8, !tbaa !9
  %71 = load i32, ptr %5, align 4, !tbaa !5
  %72 = sext i32 %71 to i64
  %73 = getelementptr inbounds double, ptr %70, i64 %72
  %74 = load double, ptr %73, align 8, !tbaa !11
  %75 = fsub double %67, %74
  store double %75, ptr %15, align 8, !tbaa !11
  %76 = load ptr, ptr %4, align 8, !tbaa !9
  %77 = getelementptr inbounds ptr, ptr %76, i64 8
  %78 = load ptr, ptr %77, align 8, !tbaa !9
  %79 = load i32, ptr %5, align 4, !tbaa !5
  %80 = sext i32 %79 to i64
  %81 = getelementptr inbounds double, ptr %78, i64 %80
  %82 = load double, ptr %81, align 8, !tbaa !11
  %83 = load ptr, ptr %4, align 8, !tbaa !9
  %84 = getelementptr inbounds ptr, ptr %83, i64 7
  %85 = load ptr, ptr %84, align 8, !tbaa !9
  %86 = load i32, ptr %5, align 4, !tbaa !5
  %87 = sext i32 %86 to i64
  %88 = getelementptr inbounds double, ptr %85, i64 %87
  %89 = load double, ptr %88, align 8, !tbaa !11
  %90 = fadd double %82, %89
  store double %90, ptr %23, align 8, !tbaa !11
  %91 = load double, ptr %22, align 8, !tbaa !11
  %92 = load double, ptr %23, align 8, !tbaa !11
  %93 = fadd double %91, %92
  store double %93, ptr %6, align 8, !tbaa !11
  %94 = load double, ptr %22, align 8, !tbaa !11
  %95 = load double, ptr %23, align 8, !tbaa !11
  %96 = fsub double %94, %95
  store double %96, ptr %7, align 8, !tbaa !11
  %97 = load ptr, ptr %4, align 8, !tbaa !9
  %98 = getelementptr inbounds ptr, ptr %97, i64 2
  %99 = load ptr, ptr %98, align 8, !tbaa !9
  %100 = load i32, ptr %5, align 4, !tbaa !5
  %101 = sext i32 %100 to i64
  %102 = getelementptr inbounds double, ptr %99, i64 %101
  %103 = load double, ptr %102, align 8, !tbaa !11
  %104 = load ptr, ptr %4, align 8, !tbaa !9
  %105 = getelementptr inbounds ptr, ptr %104, i64 13
  %106 = load ptr, ptr %105, align 8, !tbaa !9
  %107 = load i32, ptr %5, align 4, !tbaa !5
  %108 = sext i32 %107 to i64
  %109 = getelementptr inbounds double, ptr %106, i64 %108
  %110 = load double, ptr %109, align 8, !tbaa !11
  %111 = fsub double %103, %110
  store double %111, ptr %16, align 8, !tbaa !11
  %112 = load ptr, ptr %4, align 8, !tbaa !9
  %113 = getelementptr inbounds ptr, ptr %112, i64 2
  %114 = load ptr, ptr %113, align 8, !tbaa !9
  %115 = load i32, ptr %5, align 4, !tbaa !5
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds double, ptr %114, i64 %116
  %118 = load double, ptr %117, align 8, !tbaa !11
  %119 = load ptr, ptr %4, align 8, !tbaa !9
  %120 = getelementptr inbounds ptr, ptr %119, i64 13
  %121 = load ptr, ptr %120, align 8, !tbaa !9
  %122 = load i32, ptr %5, align 4, !tbaa !5
  %123 = sext i32 %122 to i64
  %124 = getelementptr inbounds double, ptr %121, i64 %123
  %125 = load double, ptr %124, align 8, !tbaa !11
  %126 = fadd double %118, %125
  store double %126, ptr %22, align 8, !tbaa !11
  %127 = load ptr, ptr %4, align 8, !tbaa !9
  %128 = getelementptr inbounds ptr, ptr %127, i64 10
  %129 = load ptr, ptr %128, align 8, !tbaa !9
  %130 = load i32, ptr %5, align 4, !tbaa !5
  %131 = sext i32 %130 to i64
  %132 = getelementptr inbounds double, ptr %129, i64 %131
  %133 = load double, ptr %132, align 8, !tbaa !11
  %134 = load ptr, ptr %4, align 8, !tbaa !9
  %135 = getelementptr inbounds ptr, ptr %134, i64 5
  %136 = load ptr, ptr %135, align 8, !tbaa !9
  %137 = load i32, ptr %5, align 4, !tbaa !5
  %138 = sext i32 %137 to i64
  %139 = getelementptr inbounds double, ptr %136, i64 %138
  %140 = load double, ptr %139, align 8, !tbaa !11
  %141 = fsub double %133, %140
  store double %141, ptr %17, align 8, !tbaa !11
  %142 = load ptr, ptr %4, align 8, !tbaa !9
  %143 = getelementptr inbounds ptr, ptr %142, i64 10
  %144 = load ptr, ptr %143, align 8, !tbaa !9
  %145 = load i32, ptr %5, align 4, !tbaa !5
  %146 = sext i32 %145 to i64
  %147 = getelementptr inbounds double, ptr %144, i64 %146
  %148 = load double, ptr %147, align 8, !tbaa !11
  %149 = load ptr, ptr %4, align 8, !tbaa !9
  %150 = getelementptr inbounds ptr, ptr %149, i64 5
  %151 = load ptr, ptr %150, align 8, !tbaa !9
  %152 = load i32, ptr %5, align 4, !tbaa !5
  %153 = sext i32 %152 to i64
  %154 = getelementptr inbounds double, ptr %151, i64 %153
  %155 = load double, ptr %154, align 8, !tbaa !11
  %156 = fadd double %148, %155
  store double %156, ptr %23, align 8, !tbaa !11
  %157 = load double, ptr %22, align 8, !tbaa !11
  %158 = load double, ptr %23, align 8, !tbaa !11
  %159 = fadd double %157, %158
  store double %159, ptr %8, align 8, !tbaa !11
  %160 = load double, ptr %22, align 8, !tbaa !11
  %161 = load double, ptr %23, align 8, !tbaa !11
  %162 = fsub double %160, %161
  store double %162, ptr %9, align 8, !tbaa !11
  %163 = load ptr, ptr %4, align 8, !tbaa !9
  %164 = getelementptr inbounds ptr, ptr %163, i64 4
  %165 = load ptr, ptr %164, align 8, !tbaa !9
  %166 = load i32, ptr %5, align 4, !tbaa !5
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds double, ptr %165, i64 %167
  %169 = load double, ptr %168, align 8, !tbaa !11
  %170 = load ptr, ptr %4, align 8, !tbaa !9
  %171 = getelementptr inbounds ptr, ptr %170, i64 11
  %172 = load ptr, ptr %171, align 8, !tbaa !9
  %173 = load i32, ptr %5, align 4, !tbaa !5
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds double, ptr %172, i64 %174
  %176 = load double, ptr %175, align 8, !tbaa !11
  %177 = fsub double %169, %176
  store double %177, ptr %18, align 8, !tbaa !11
  %178 = load ptr, ptr %4, align 8, !tbaa !9
  %179 = getelementptr inbounds ptr, ptr %178, i64 4
  %180 = load ptr, ptr %179, align 8, !tbaa !9
  %181 = load i32, ptr %5, align 4, !tbaa !5
  %182 = sext i32 %181 to i64
  %183 = getelementptr inbounds double, ptr %180, i64 %182
  %184 = load double, ptr %183, align 8, !tbaa !11
  %185 = load ptr, ptr %4, align 8, !tbaa !9
  %186 = getelementptr inbounds ptr, ptr %185, i64 11
  %187 = load ptr, ptr %186, align 8, !tbaa !9
  %188 = load i32, ptr %5, align 4, !tbaa !5
  %189 = sext i32 %188 to i64
  %190 = getelementptr inbounds double, ptr %187, i64 %189
  %191 = load double, ptr %190, align 8, !tbaa !11
  %192 = fadd double %184, %191
  store double %192, ptr %22, align 8, !tbaa !11
  %193 = load ptr, ptr %4, align 8, !tbaa !9
  %194 = getelementptr inbounds ptr, ptr %193, i64 12
  %195 = load ptr, ptr %194, align 8, !tbaa !9
  %196 = load i32, ptr %5, align 4, !tbaa !5
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds double, ptr %195, i64 %197
  %199 = load double, ptr %198, align 8, !tbaa !11
  %200 = load ptr, ptr %4, align 8, !tbaa !9
  %201 = getelementptr inbounds ptr, ptr %200, i64 3
  %202 = load ptr, ptr %201, align 8, !tbaa !9
  %203 = load i32, ptr %5, align 4, !tbaa !5
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds double, ptr %202, i64 %204
  %206 = load double, ptr %205, align 8, !tbaa !11
  %207 = fsub double %199, %206
  store double %207, ptr %19, align 8, !tbaa !11
  %208 = load ptr, ptr %4, align 8, !tbaa !9
  %209 = getelementptr inbounds ptr, ptr %208, i64 12
  %210 = load ptr, ptr %209, align 8, !tbaa !9
  %211 = load i32, ptr %5, align 4, !tbaa !5
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds double, ptr %210, i64 %212
  %214 = load double, ptr %213, align 8, !tbaa !11
  %215 = load ptr, ptr %4, align 8, !tbaa !9
  %216 = getelementptr inbounds ptr, ptr %215, i64 3
  %217 = load ptr, ptr %216, align 8, !tbaa !9
  %218 = load i32, ptr %5, align 4, !tbaa !5
  %219 = sext i32 %218 to i64
  %220 = getelementptr inbounds double, ptr %217, i64 %219
  %221 = load double, ptr %220, align 8, !tbaa !11
  %222 = fadd double %214, %221
  store double %222, ptr %23, align 8, !tbaa !11
  %223 = load double, ptr %22, align 8, !tbaa !11
  %224 = load double, ptr %23, align 8, !tbaa !11
  %225 = fadd double %223, %224
  store double %225, ptr %10, align 8, !tbaa !11
  %226 = load double, ptr %22, align 8, !tbaa !11
  %227 = load double, ptr %23, align 8, !tbaa !11
  %228 = fsub double %226, %227
  store double %228, ptr %11, align 8, !tbaa !11
  %229 = load ptr, ptr %4, align 8, !tbaa !9
  %230 = getelementptr inbounds ptr, ptr %229, i64 6
  %231 = load ptr, ptr %230, align 8, !tbaa !9
  %232 = load i32, ptr %5, align 4, !tbaa !5
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds double, ptr %231, i64 %233
  %235 = load double, ptr %234, align 8, !tbaa !11
  %236 = load ptr, ptr %4, align 8, !tbaa !9
  %237 = getelementptr inbounds ptr, ptr %236, i64 9
  %238 = load ptr, ptr %237, align 8, !tbaa !9
  %239 = load i32, ptr %5, align 4, !tbaa !5
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds double, ptr %238, i64 %240
  %242 = load double, ptr %241, align 8, !tbaa !11
  %243 = fsub double %235, %242
  store double %243, ptr %20, align 8, !tbaa !11
  %244 = load ptr, ptr %4, align 8, !tbaa !9
  %245 = getelementptr inbounds ptr, ptr %244, i64 6
  %246 = load ptr, ptr %245, align 8, !tbaa !9
  %247 = load i32, ptr %5, align 4, !tbaa !5
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds double, ptr %246, i64 %248
  %250 = load double, ptr %249, align 8, !tbaa !11
  %251 = load ptr, ptr %4, align 8, !tbaa !9
  %252 = getelementptr inbounds ptr, ptr %251, i64 9
  %253 = load ptr, ptr %252, align 8, !tbaa !9
  %254 = load i32, ptr %5, align 4, !tbaa !5
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds double, ptr %253, i64 %255
  %257 = load double, ptr %256, align 8, !tbaa !11
  %258 = fadd double %250, %257
  store double %258, ptr %22, align 8, !tbaa !11
  %259 = load ptr, ptr %4, align 8, !tbaa !9
  %260 = getelementptr inbounds ptr, ptr %259, i64 14
  %261 = load ptr, ptr %260, align 8, !tbaa !9
  %262 = load i32, ptr %5, align 4, !tbaa !5
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds double, ptr %261, i64 %263
  %265 = load double, ptr %264, align 8, !tbaa !11
  %266 = load ptr, ptr %4, align 8, !tbaa !9
  %267 = getelementptr inbounds ptr, ptr %266, i64 1
  %268 = load ptr, ptr %267, align 8, !tbaa !9
  %269 = load i32, ptr %5, align 4, !tbaa !5
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds double, ptr %268, i64 %270
  %272 = load double, ptr %271, align 8, !tbaa !11
  %273 = fsub double %265, %272
  store double %273, ptr %21, align 8, !tbaa !11
  %274 = load ptr, ptr %4, align 8, !tbaa !9
  %275 = getelementptr inbounds ptr, ptr %274, i64 14
  %276 = load ptr, ptr %275, align 8, !tbaa !9
  %277 = load i32, ptr %5, align 4, !tbaa !5
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds double, ptr %276, i64 %278
  %280 = load double, ptr %279, align 8, !tbaa !11
  %281 = load ptr, ptr %4, align 8, !tbaa !9
  %282 = getelementptr inbounds ptr, ptr %281, i64 1
  %283 = load ptr, ptr %282, align 8, !tbaa !9
  %284 = load i32, ptr %5, align 4, !tbaa !5
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds double, ptr %283, i64 %285
  %287 = load double, ptr %286, align 8, !tbaa !11
  %288 = fadd double %280, %287
  store double %288, ptr %23, align 8, !tbaa !11
  %289 = load double, ptr %22, align 8, !tbaa !11
  %290 = load double, ptr %23, align 8, !tbaa !11
  %291 = fadd double %289, %290
  store double %291, ptr %12, align 8, !tbaa !11
  %292 = load double, ptr %22, align 8, !tbaa !11
  %293 = load double, ptr %23, align 8, !tbaa !11
  %294 = fsub double %292, %293
  store double %294, ptr %13, align 8, !tbaa !11
  %295 = load double, ptr %6, align 8, !tbaa !11
  %296 = load double, ptr %10, align 8, !tbaa !11
  %297 = fadd double %295, %296
  store double %297, ptr %22, align 8, !tbaa !11
  %298 = load double, ptr %8, align 8, !tbaa !11
  %299 = load double, ptr %12, align 8, !tbaa !11
  %300 = fadd double %298, %299
  store double %300, ptr %23, align 8, !tbaa !11
  %301 = load double, ptr %22, align 8, !tbaa !11
  %302 = load double, ptr %23, align 8, !tbaa !11
  %303 = fadd double %301, %302
  %304 = fmul double 2.500000e-01, %303
  %305 = load ptr, ptr %4, align 8, !tbaa !9
  %306 = getelementptr inbounds ptr, ptr %305, i64 0
  %307 = load ptr, ptr %306, align 8, !tbaa !9
  %308 = load i32, ptr %5, align 4, !tbaa !5
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds double, ptr %307, i64 %309
  store double %304, ptr %310, align 8, !tbaa !11
  %311 = load double, ptr %22, align 8, !tbaa !11
  %312 = load double, ptr %23, align 8, !tbaa !11
  %313 = fsub double %311, %312
  %314 = fmul double 2.500000e-01, %313
  %315 = load ptr, ptr %4, align 8, !tbaa !9
  %316 = getelementptr inbounds ptr, ptr %315, i64 8
  %317 = load ptr, ptr %316, align 8, !tbaa !9
  %318 = load i32, ptr %5, align 4, !tbaa !5
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds double, ptr %317, i64 %319
  store double %314, ptr %320, align 8, !tbaa !11
  %321 = load double, ptr %6, align 8, !tbaa !11
  %322 = load double, ptr %10, align 8, !tbaa !11
  %323 = fsub double %321, %322
  store double %323, ptr %22, align 8, !tbaa !11
  %324 = load double, ptr %8, align 8, !tbaa !11
  %325 = load double, ptr %12, align 8, !tbaa !11
  %326 = fsub double %324, %325
  store double %326, ptr %23, align 8, !tbaa !11
  %327 = load double, ptr %22, align 8, !tbaa !11
  %328 = load double, ptr %23, align 8, !tbaa !11
  %329 = fmul double 0x3FC1517A7BDB3895, %328
  %330 = fneg double %329
  %331 = call double @llvm.fmuladd.f64(double 0x3FD4E7AE9144F0FC, double %327, double %330)
  %332 = load ptr, ptr %4, align 8, !tbaa !9
  %333 = getelementptr inbounds ptr, ptr %332, i64 4
  %334 = load ptr, ptr %333, align 8, !tbaa !9
  %335 = load i32, ptr %5, align 4, !tbaa !5
  %336 = sext i32 %335 to i64
  %337 = getelementptr inbounds double, ptr %334, i64 %336
  store double %331, ptr %337, align 8, !tbaa !11
  %338 = load double, ptr %23, align 8, !tbaa !11
  %339 = load double, ptr %22, align 8, !tbaa !11
  %340 = fmul double 0x3FC1517A7BDB3895, %339
  %341 = call double @llvm.fmuladd.f64(double 0x3FD4E7AE9144F0FC, double %338, double %340)
  %342 = load ptr, ptr %4, align 8, !tbaa !9
  %343 = getelementptr inbounds ptr, ptr %342, i64 12
  %344 = load ptr, ptr %343, align 8, !tbaa !9
  %345 = load i32, ptr %5, align 4, !tbaa !5
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds double, ptr %344, i64 %346
  store double %341, ptr %347, align 8, !tbaa !11
  %348 = load double, ptr %9, align 8, !tbaa !11
  %349 = load double, ptr %13, align 8, !tbaa !11
  %350 = fsub double %348, %349
  %351 = fmul double 0x3FE6A09E667F3BCD, %350
  store double %351, ptr %6, align 8, !tbaa !11
  %352 = load double, ptr %9, align 8, !tbaa !11
  %353 = load double, ptr %13, align 8, !tbaa !11
  %354 = fadd double %352, %353
  %355 = fmul double 0x3FE6A09E667F3BCD, %354
  store double %355, ptr %10, align 8, !tbaa !11
  %356 = load double, ptr %7, align 8, !tbaa !11
  %357 = load double, ptr %6, align 8, !tbaa !11
  %358 = fadd double %356, %357
  store double %358, ptr %22, align 8, !tbaa !11
  %359 = load double, ptr %10, align 8, !tbaa !11
  %360 = load double, ptr %11, align 8, !tbaa !11
  %361 = fadd double %359, %360
  store double %361, ptr %23, align 8, !tbaa !11
  %362 = load double, ptr %22, align 8, !tbaa !11
  %363 = load double, ptr %23, align 8, !tbaa !11
  %364 = fmul double 0x3FB1A855DEC071B5, %363
  %365 = fneg double %364
  %366 = call double @llvm.fmuladd.f64(double 0x3FD63150B15E8536, double %362, double %365)
  %367 = load ptr, ptr %4, align 8, !tbaa !9
  %368 = getelementptr inbounds ptr, ptr %367, i64 2
  %369 = load ptr, ptr %368, align 8, !tbaa !9
  %370 = load i32, ptr %5, align 4, !tbaa !5
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds double, ptr %369, i64 %371
  store double %366, ptr %372, align 8, !tbaa !11
  %373 = load double, ptr %23, align 8, !tbaa !11
  %374 = load double, ptr %22, align 8, !tbaa !11
  %375 = fmul double 0x3FB1A855DEC071B5, %374
  %376 = call double @llvm.fmuladd.f64(double 0x3FD63150B15E8536, double %373, double %375)
  %377 = load ptr, ptr %4, align 8, !tbaa !9
  %378 = getelementptr inbounds ptr, ptr %377, i64 14
  %379 = load ptr, ptr %378, align 8, !tbaa !9
  %380 = load i32, ptr %5, align 4, !tbaa !5
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds double, ptr %379, i64 %381
  store double %376, ptr %382, align 8, !tbaa !11
  %383 = load double, ptr %7, align 8, !tbaa !11
  %384 = load double, ptr %6, align 8, !tbaa !11
  %385 = fsub double %383, %384
  store double %385, ptr %22, align 8, !tbaa !11
  %386 = load double, ptr %10, align 8, !tbaa !11
  %387 = load double, ptr %11, align 8, !tbaa !11
  %388 = fsub double %386, %387
  store double %388, ptr %23, align 8, !tbaa !11
  %389 = load double, ptr %22, align 8, !tbaa !11
  %390 = load double, ptr %23, align 8, !tbaa !11
  %391 = fmul double 0x3FC92469C0DCF32D, %390
  %392 = fneg double %391
  %393 = call double @llvm.fmuladd.f64(double 0x3FD2D062EF88E319, double %389, double %392)
  %394 = load ptr, ptr %4, align 8, !tbaa !9
  %395 = getelementptr inbounds ptr, ptr %394, i64 6
  %396 = load ptr, ptr %395, align 8, !tbaa !9
  %397 = load i32, ptr %5, align 4, !tbaa !5
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds double, ptr %396, i64 %398
  store double %393, ptr %399, align 8, !tbaa !11
  %400 = load double, ptr %23, align 8, !tbaa !11
  %401 = load double, ptr %22, align 8, !tbaa !11
  %402 = fmul double 0x3FC92469C0DCF32D, %401
  %403 = call double @llvm.fmuladd.f64(double 0x3FD2D062EF88E319, double %400, double %402)
  %404 = load ptr, ptr %4, align 8, !tbaa !9
  %405 = getelementptr inbounds ptr, ptr %404, i64 10
  %406 = load ptr, ptr %405, align 8, !tbaa !9
  %407 = load i32, ptr %5, align 4, !tbaa !5
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds double, ptr %406, i64 %408
  store double %403, ptr %409, align 8, !tbaa !11
  %410 = load double, ptr %18, align 8, !tbaa !11
  %411 = load double, ptr %19, align 8, !tbaa !11
  %412 = fsub double %410, %411
  %413 = fmul double 0x3FE6A09E667F3BCD, %412
  store double %413, ptr %22, align 8, !tbaa !11
  %414 = load double, ptr %19, align 8, !tbaa !11
  %415 = load double, ptr %18, align 8, !tbaa !11
  %416 = fadd double %414, %415
  %417 = fmul double 0x3FE6A09E667F3BCD, %416
  store double %417, ptr %23, align 8, !tbaa !11
  %418 = load double, ptr %14, align 8, !tbaa !11
  %419 = load double, ptr %22, align 8, !tbaa !11
  %420 = fsub double %418, %419
  store double %420, ptr %18, align 8, !tbaa !11
  %421 = load double, ptr %15, align 8, !tbaa !11
  %422 = load double, ptr %23, align 8, !tbaa !11
  %423 = fsub double %421, %422
  store double %423, ptr %19, align 8, !tbaa !11
  %424 = load double, ptr %22, align 8, !tbaa !11
  %425 = load double, ptr %14, align 8, !tbaa !11
  %426 = fadd double %425, %424
  store double %426, ptr %14, align 8, !tbaa !11
  %427 = load double, ptr %23, align 8, !tbaa !11
  %428 = load double, ptr %15, align 8, !tbaa !11
  %429 = fadd double %428, %427
  store double %429, ptr %15, align 8, !tbaa !11
  %430 = load double, ptr %20, align 8, !tbaa !11
  %431 = load double, ptr %21, align 8, !tbaa !11
  %432 = fmul double 0x3FED906BCF328D46, %431
  %433 = fneg double %432
  %434 = call double @llvm.fmuladd.f64(double 0x3FD87DE2A6AEA963, double %430, double %433)
  store double %434, ptr %22, align 8, !tbaa !11
  %435 = load double, ptr %21, align 8, !tbaa !11
  %436 = load double, ptr %20, align 8, !tbaa !11
  %437 = fmul double 0x3FED906BCF328D46, %436
  %438 = call double @llvm.fmuladd.f64(double 0x3FD87DE2A6AEA963, double %435, double %437)
  store double %438, ptr %23, align 8, !tbaa !11
  %439 = load double, ptr %16, align 8, !tbaa !11
  %440 = load double, ptr %17, align 8, !tbaa !11
  %441 = fmul double 0x3FD87DE2A6AEA963, %440
  %442 = fneg double %441
  %443 = call double @llvm.fmuladd.f64(double 0x3FED906BCF328D46, double %439, double %442)
  store double %443, ptr %20, align 8, !tbaa !11
  %444 = load double, ptr %17, align 8, !tbaa !11
  %445 = load double, ptr %16, align 8, !tbaa !11
  %446 = fmul double 0x3FD87DE2A6AEA963, %445
  %447 = call double @llvm.fmuladd.f64(double 0x3FED906BCF328D46, double %444, double %446)
  store double %447, ptr %21, align 8, !tbaa !11
  %448 = load double, ptr %20, align 8, !tbaa !11
  %449 = load double, ptr %22, align 8, !tbaa !11
  %450 = fadd double %448, %449
  store double %450, ptr %16, align 8, !tbaa !11
  %451 = load double, ptr %21, align 8, !tbaa !11
  %452 = load double, ptr %23, align 8, !tbaa !11
  %453 = fadd double %451, %452
  store double %453, ptr %17, align 8, !tbaa !11
  %454 = load double, ptr %22, align 8, !tbaa !11
  %455 = load double, ptr %20, align 8, !tbaa !11
  %456 = fsub double %455, %454
  store double %456, ptr %20, align 8, !tbaa !11
  %457 = load double, ptr %23, align 8, !tbaa !11
  %458 = load double, ptr %21, align 8, !tbaa !11
  %459 = fsub double %458, %457
  store double %459, ptr %21, align 8, !tbaa !11
  %460 = load double, ptr %14, align 8, !tbaa !11
  %461 = load double, ptr %16, align 8, !tbaa !11
  %462 = fadd double %460, %461
  store double %462, ptr %22, align 8, !tbaa !11
  %463 = load double, ptr %17, align 8, !tbaa !11
  %464 = load double, ptr %15, align 8, !tbaa !11
  %465 = fadd double %463, %464
  store double %465, ptr %23, align 8, !tbaa !11
  %466 = load double, ptr %22, align 8, !tbaa !11
  %467 = load double, ptr %23, align 8, !tbaa !11
  %468 = fmul double 0x3FA1BE35182FE5AA, %467
  %469 = fneg double %468
  %470 = call double @llvm.fmuladd.f64(double 0x3FD684B9C80F1A8B, double %466, double %469)
  %471 = load ptr, ptr %4, align 8, !tbaa !9
  %472 = getelementptr inbounds ptr, ptr %471, i64 1
  %473 = load ptr, ptr %472, align 8, !tbaa !9
  %474 = load i32, ptr %5, align 4, !tbaa !5
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds double, ptr %473, i64 %475
  store double %470, ptr %476, align 8, !tbaa !11
  %477 = load double, ptr %23, align 8, !tbaa !11
  %478 = load double, ptr %22, align 8, !tbaa !11
  %479 = fmul double 0x3FA1BE35182FE5AA, %478
  %480 = call double @llvm.fmuladd.f64(double 0x3FD684B9C80F1A8B, double %477, double %479)
  %481 = load ptr, ptr %4, align 8, !tbaa !9
  %482 = getelementptr inbounds ptr, ptr %481, i64 15
  %483 = load ptr, ptr %482, align 8, !tbaa !9
  %484 = load i32, ptr %5, align 4, !tbaa !5
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds double, ptr %483, i64 %485
  store double %480, ptr %486, align 8, !tbaa !11
  %487 = load double, ptr %14, align 8, !tbaa !11
  %488 = load double, ptr %16, align 8, !tbaa !11
  %489 = fsub double %487, %488
  store double %489, ptr %22, align 8, !tbaa !11
  %490 = load double, ptr %17, align 8, !tbaa !11
  %491 = load double, ptr %15, align 8, !tbaa !11
  %492 = fsub double %490, %491
  store double %492, ptr %23, align 8, !tbaa !11
  %493 = load double, ptr %22, align 8, !tbaa !11
  %494 = load double, ptr %23, align 8, !tbaa !11
  %495 = fmul double 0x3FCCB598CC4BEEA0, %494
  %496 = fneg double %495
  %497 = call double @llvm.fmuladd.f64(double 0x3FD17DC13DAB2DD6, double %493, double %496)
  %498 = load ptr, ptr %4, align 8, !tbaa !9
  %499 = getelementptr inbounds ptr, ptr %498, i64 7
  %500 = load ptr, ptr %499, align 8, !tbaa !9
  %501 = load i32, ptr %5, align 4, !tbaa !5
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds double, ptr %500, i64 %502
  store double %497, ptr %503, align 8, !tbaa !11
  %504 = load double, ptr %23, align 8, !tbaa !11
  %505 = load double, ptr %22, align 8, !tbaa !11
  %506 = fmul double 0x3FCCB598CC4BEEA0, %505
  %507 = call double @llvm.fmuladd.f64(double 0x3FD17DC13DAB2DD6, double %504, double %506)
  %508 = load ptr, ptr %4, align 8, !tbaa !9
  %509 = getelementptr inbounds ptr, ptr %508, i64 9
  %510 = load ptr, ptr %509, align 8, !tbaa !9
  %511 = load i32, ptr %5, align 4, !tbaa !5
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds double, ptr %510, i64 %512
  store double %507, ptr %513, align 8, !tbaa !11
  %514 = load double, ptr %18, align 8, !tbaa !11
  %515 = load double, ptr %21, align 8, !tbaa !11
  %516 = fsub double %514, %515
  store double %516, ptr %22, align 8, !tbaa !11
  %517 = load double, ptr %20, align 8, !tbaa !11
  %518 = load double, ptr %19, align 8, !tbaa !11
  %519 = fadd double %517, %518
  store double %519, ptr %23, align 8, !tbaa !11
  %520 = load double, ptr %22, align 8, !tbaa !11
  %521 = load double, ptr %23, align 8, !tbaa !11
  %522 = fmul double 0x3FC5553E3F5B5E58, %521
  %523 = fneg double %522
  %524 = call double @llvm.fmuladd.f64(double 0x3FD3F4A237187EAF, double %520, double %523)
  %525 = load ptr, ptr %4, align 8, !tbaa !9
  %526 = getelementptr inbounds ptr, ptr %525, i64 5
  %527 = load ptr, ptr %526, align 8, !tbaa !9
  %528 = load i32, ptr %5, align 4, !tbaa !5
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds double, ptr %527, i64 %529
  store double %524, ptr %530, align 8, !tbaa !11
  %531 = load double, ptr %23, align 8, !tbaa !11
  %532 = load double, ptr %22, align 8, !tbaa !11
  %533 = fmul double 0x3FC5553E3F5B5E58, %532
  %534 = call double @llvm.fmuladd.f64(double 0x3FD3F4A237187EAF, double %531, double %533)
  %535 = load ptr, ptr %4, align 8, !tbaa !9
  %536 = getelementptr inbounds ptr, ptr %535, i64 11
  %537 = load ptr, ptr %536, align 8, !tbaa !9
  %538 = load i32, ptr %5, align 4, !tbaa !5
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds double, ptr %537, i64 %539
  store double %534, ptr %540, align 8, !tbaa !11
  %541 = load double, ptr %18, align 8, !tbaa !11
  %542 = load double, ptr %21, align 8, !tbaa !11
  %543 = fadd double %541, %542
  store double %543, ptr %22, align 8, !tbaa !11
  %544 = load double, ptr %20, align 8, !tbaa !11
  %545 = load double, ptr %19, align 8, !tbaa !11
  %546 = fsub double %544, %545
  store double %546, ptr %23, align 8, !tbaa !11
  %547 = load double, ptr %22, align 8, !tbaa !11
  %548 = load double, ptr %23, align 8, !tbaa !11
  %549 = fmul double 0x3FBA4608AAFA8527, %548
  %550 = fneg double %549
  %551 = call double @llvm.fmuladd.f64(double 0x3FD5A730C6C21C67, double %547, double %550)
  %552 = load ptr, ptr %4, align 8, !tbaa !9
  %553 = getelementptr inbounds ptr, ptr %552, i64 3
  %554 = load ptr, ptr %553, align 8, !tbaa !9
  %555 = load i32, ptr %5, align 4, !tbaa !5
  %556 = sext i32 %555 to i64
  %557 = getelementptr inbounds double, ptr %554, i64 %556
  store double %551, ptr %557, align 8, !tbaa !11
  %558 = load double, ptr %23, align 8, !tbaa !11
  %559 = load double, ptr %22, align 8, !tbaa !11
  %560 = fmul double 0x3FBA4608AAFA8527, %559
  %561 = call double @llvm.fmuladd.f64(double 0x3FD5A730C6C21C67, double %558, double %560)
  %562 = load ptr, ptr %4, align 8, !tbaa !9
  %563 = getelementptr inbounds ptr, ptr %562, i64 13
  %564 = load ptr, ptr %563, align 8, !tbaa !9
  %565 = load i32, ptr %5, align 4, !tbaa !5
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds double, ptr %564, i64 %566
  store double %561, ptr %567, align 8, !tbaa !11
  br label %568

568:                                              ; preds = %30
  %569 = load i32, ptr %5, align 4, !tbaa !5
  %570 = add nsw i32 %569, 1
  store i32 %570, ptr %5, align 4, !tbaa !5
  br label %27, !llvm.loop !13

571:                                              ; preds = %27
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %572

572:                                              ; preds = %1113, %571
  %573 = load i32, ptr %5, align 4, !tbaa !5
  %574 = icmp sle i32 %573, 15
  br i1 %574, label %575, label %1116

575:                                              ; preds = %572
  %576 = load ptr, ptr %4, align 8, !tbaa !9
  %577 = load i32, ptr %5, align 4, !tbaa !5
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds ptr, ptr %576, i64 %578
  %580 = load ptr, ptr %579, align 8, !tbaa !9
  %581 = getelementptr inbounds double, ptr %580, i64 0
  %582 = load double, ptr %581, align 8, !tbaa !11
  %583 = load ptr, ptr %4, align 8, !tbaa !9
  %584 = load i32, ptr %5, align 4, !tbaa !5
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds ptr, ptr %583, i64 %585
  %587 = load ptr, ptr %586, align 8, !tbaa !9
  %588 = getelementptr inbounds double, ptr %587, i64 15
  %589 = load double, ptr %588, align 8, !tbaa !11
  %590 = fsub double %582, %589
  store double %590, ptr %14, align 8, !tbaa !11
  %591 = load ptr, ptr %4, align 8, !tbaa !9
  %592 = load i32, ptr %5, align 4, !tbaa !5
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds ptr, ptr %591, i64 %593
  %595 = load ptr, ptr %594, align 8, !tbaa !9
  %596 = getelementptr inbounds double, ptr %595, i64 0
  %597 = load double, ptr %596, align 8, !tbaa !11
  %598 = load ptr, ptr %4, align 8, !tbaa !9
  %599 = load i32, ptr %5, align 4, !tbaa !5
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds ptr, ptr %598, i64 %600
  %602 = load ptr, ptr %601, align 8, !tbaa !9
  %603 = getelementptr inbounds double, ptr %602, i64 15
  %604 = load double, ptr %603, align 8, !tbaa !11
  %605 = fadd double %597, %604
  store double %605, ptr %22, align 8, !tbaa !11
  %606 = load ptr, ptr %4, align 8, !tbaa !9
  %607 = load i32, ptr %5, align 4, !tbaa !5
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds ptr, ptr %606, i64 %608
  %610 = load ptr, ptr %609, align 8, !tbaa !9
  %611 = getelementptr inbounds double, ptr %610, i64 8
  %612 = load double, ptr %611, align 8, !tbaa !11
  %613 = load ptr, ptr %4, align 8, !tbaa !9
  %614 = load i32, ptr %5, align 4, !tbaa !5
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds ptr, ptr %613, i64 %615
  %617 = load ptr, ptr %616, align 8, !tbaa !9
  %618 = getelementptr inbounds double, ptr %617, i64 7
  %619 = load double, ptr %618, align 8, !tbaa !11
  %620 = fsub double %612, %619
  store double %620, ptr %15, align 8, !tbaa !11
  %621 = load ptr, ptr %4, align 8, !tbaa !9
  %622 = load i32, ptr %5, align 4, !tbaa !5
  %623 = sext i32 %622 to i64
  %624 = getelementptr inbounds ptr, ptr %621, i64 %623
  %625 = load ptr, ptr %624, align 8, !tbaa !9
  %626 = getelementptr inbounds double, ptr %625, i64 8
  %627 = load double, ptr %626, align 8, !tbaa !11
  %628 = load ptr, ptr %4, align 8, !tbaa !9
  %629 = load i32, ptr %5, align 4, !tbaa !5
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds ptr, ptr %628, i64 %630
  %632 = load ptr, ptr %631, align 8, !tbaa !9
  %633 = getelementptr inbounds double, ptr %632, i64 7
  %634 = load double, ptr %633, align 8, !tbaa !11
  %635 = fadd double %627, %634
  store double %635, ptr %23, align 8, !tbaa !11
  %636 = load double, ptr %22, align 8, !tbaa !11
  %637 = load double, ptr %23, align 8, !tbaa !11
  %638 = fadd double %636, %637
  store double %638, ptr %6, align 8, !tbaa !11
  %639 = load double, ptr %22, align 8, !tbaa !11
  %640 = load double, ptr %23, align 8, !tbaa !11
  %641 = fsub double %639, %640
  store double %641, ptr %7, align 8, !tbaa !11
  %642 = load ptr, ptr %4, align 8, !tbaa !9
  %643 = load i32, ptr %5, align 4, !tbaa !5
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds ptr, ptr %642, i64 %644
  %646 = load ptr, ptr %645, align 8, !tbaa !9
  %647 = getelementptr inbounds double, ptr %646, i64 2
  %648 = load double, ptr %647, align 8, !tbaa !11
  %649 = load ptr, ptr %4, align 8, !tbaa !9
  %650 = load i32, ptr %5, align 4, !tbaa !5
  %651 = sext i32 %650 to i64
  %652 = getelementptr inbounds ptr, ptr %649, i64 %651
  %653 = load ptr, ptr %652, align 8, !tbaa !9
  %654 = getelementptr inbounds double, ptr %653, i64 13
  %655 = load double, ptr %654, align 8, !tbaa !11
  %656 = fsub double %648, %655
  store double %656, ptr %16, align 8, !tbaa !11
  %657 = load ptr, ptr %4, align 8, !tbaa !9
  %658 = load i32, ptr %5, align 4, !tbaa !5
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds ptr, ptr %657, i64 %659
  %661 = load ptr, ptr %660, align 8, !tbaa !9
  %662 = getelementptr inbounds double, ptr %661, i64 2
  %663 = load double, ptr %662, align 8, !tbaa !11
  %664 = load ptr, ptr %4, align 8, !tbaa !9
  %665 = load i32, ptr %5, align 4, !tbaa !5
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds ptr, ptr %664, i64 %666
  %668 = load ptr, ptr %667, align 8, !tbaa !9
  %669 = getelementptr inbounds double, ptr %668, i64 13
  %670 = load double, ptr %669, align 8, !tbaa !11
  %671 = fadd double %663, %670
  store double %671, ptr %22, align 8, !tbaa !11
  %672 = load ptr, ptr %4, align 8, !tbaa !9
  %673 = load i32, ptr %5, align 4, !tbaa !5
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds ptr, ptr %672, i64 %674
  %676 = load ptr, ptr %675, align 8, !tbaa !9
  %677 = getelementptr inbounds double, ptr %676, i64 10
  %678 = load double, ptr %677, align 8, !tbaa !11
  %679 = load ptr, ptr %4, align 8, !tbaa !9
  %680 = load i32, ptr %5, align 4, !tbaa !5
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds ptr, ptr %679, i64 %681
  %683 = load ptr, ptr %682, align 8, !tbaa !9
  %684 = getelementptr inbounds double, ptr %683, i64 5
  %685 = load double, ptr %684, align 8, !tbaa !11
  %686 = fsub double %678, %685
  store double %686, ptr %17, align 8, !tbaa !11
  %687 = load ptr, ptr %4, align 8, !tbaa !9
  %688 = load i32, ptr %5, align 4, !tbaa !5
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds ptr, ptr %687, i64 %689
  %691 = load ptr, ptr %690, align 8, !tbaa !9
  %692 = getelementptr inbounds double, ptr %691, i64 10
  %693 = load double, ptr %692, align 8, !tbaa !11
  %694 = load ptr, ptr %4, align 8, !tbaa !9
  %695 = load i32, ptr %5, align 4, !tbaa !5
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds ptr, ptr %694, i64 %696
  %698 = load ptr, ptr %697, align 8, !tbaa !9
  %699 = getelementptr inbounds double, ptr %698, i64 5
  %700 = load double, ptr %699, align 8, !tbaa !11
  %701 = fadd double %693, %700
  store double %701, ptr %23, align 8, !tbaa !11
  %702 = load double, ptr %22, align 8, !tbaa !11
  %703 = load double, ptr %23, align 8, !tbaa !11
  %704 = fadd double %702, %703
  store double %704, ptr %8, align 8, !tbaa !11
  %705 = load double, ptr %22, align 8, !tbaa !11
  %706 = load double, ptr %23, align 8, !tbaa !11
  %707 = fsub double %705, %706
  store double %707, ptr %9, align 8, !tbaa !11
  %708 = load ptr, ptr %4, align 8, !tbaa !9
  %709 = load i32, ptr %5, align 4, !tbaa !5
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds ptr, ptr %708, i64 %710
  %712 = load ptr, ptr %711, align 8, !tbaa !9
  %713 = getelementptr inbounds double, ptr %712, i64 4
  %714 = load double, ptr %713, align 8, !tbaa !11
  %715 = load ptr, ptr %4, align 8, !tbaa !9
  %716 = load i32, ptr %5, align 4, !tbaa !5
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds ptr, ptr %715, i64 %717
  %719 = load ptr, ptr %718, align 8, !tbaa !9
  %720 = getelementptr inbounds double, ptr %719, i64 11
  %721 = load double, ptr %720, align 8, !tbaa !11
  %722 = fsub double %714, %721
  store double %722, ptr %18, align 8, !tbaa !11
  %723 = load ptr, ptr %4, align 8, !tbaa !9
  %724 = load i32, ptr %5, align 4, !tbaa !5
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds ptr, ptr %723, i64 %725
  %727 = load ptr, ptr %726, align 8, !tbaa !9
  %728 = getelementptr inbounds double, ptr %727, i64 4
  %729 = load double, ptr %728, align 8, !tbaa !11
  %730 = load ptr, ptr %4, align 8, !tbaa !9
  %731 = load i32, ptr %5, align 4, !tbaa !5
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds ptr, ptr %730, i64 %732
  %734 = load ptr, ptr %733, align 8, !tbaa !9
  %735 = getelementptr inbounds double, ptr %734, i64 11
  %736 = load double, ptr %735, align 8, !tbaa !11
  %737 = fadd double %729, %736
  store double %737, ptr %22, align 8, !tbaa !11
  %738 = load ptr, ptr %4, align 8, !tbaa !9
  %739 = load i32, ptr %5, align 4, !tbaa !5
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds ptr, ptr %738, i64 %740
  %742 = load ptr, ptr %741, align 8, !tbaa !9
  %743 = getelementptr inbounds double, ptr %742, i64 12
  %744 = load double, ptr %743, align 8, !tbaa !11
  %745 = load ptr, ptr %4, align 8, !tbaa !9
  %746 = load i32, ptr %5, align 4, !tbaa !5
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds ptr, ptr %745, i64 %747
  %749 = load ptr, ptr %748, align 8, !tbaa !9
  %750 = getelementptr inbounds double, ptr %749, i64 3
  %751 = load double, ptr %750, align 8, !tbaa !11
  %752 = fsub double %744, %751
  store double %752, ptr %19, align 8, !tbaa !11
  %753 = load ptr, ptr %4, align 8, !tbaa !9
  %754 = load i32, ptr %5, align 4, !tbaa !5
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds ptr, ptr %753, i64 %755
  %757 = load ptr, ptr %756, align 8, !tbaa !9
  %758 = getelementptr inbounds double, ptr %757, i64 12
  %759 = load double, ptr %758, align 8, !tbaa !11
  %760 = load ptr, ptr %4, align 8, !tbaa !9
  %761 = load i32, ptr %5, align 4, !tbaa !5
  %762 = sext i32 %761 to i64
  %763 = getelementptr inbounds ptr, ptr %760, i64 %762
  %764 = load ptr, ptr %763, align 8, !tbaa !9
  %765 = getelementptr inbounds double, ptr %764, i64 3
  %766 = load double, ptr %765, align 8, !tbaa !11
  %767 = fadd double %759, %766
  store double %767, ptr %23, align 8, !tbaa !11
  %768 = load double, ptr %22, align 8, !tbaa !11
  %769 = load double, ptr %23, align 8, !tbaa !11
  %770 = fadd double %768, %769
  store double %770, ptr %10, align 8, !tbaa !11
  %771 = load double, ptr %22, align 8, !tbaa !11
  %772 = load double, ptr %23, align 8, !tbaa !11
  %773 = fsub double %771, %772
  store double %773, ptr %11, align 8, !tbaa !11
  %774 = load ptr, ptr %4, align 8, !tbaa !9
  %775 = load i32, ptr %5, align 4, !tbaa !5
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds ptr, ptr %774, i64 %776
  %778 = load ptr, ptr %777, align 8, !tbaa !9
  %779 = getelementptr inbounds double, ptr %778, i64 6
  %780 = load double, ptr %779, align 8, !tbaa !11
  %781 = load ptr, ptr %4, align 8, !tbaa !9
  %782 = load i32, ptr %5, align 4, !tbaa !5
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds ptr, ptr %781, i64 %783
  %785 = load ptr, ptr %784, align 8, !tbaa !9
  %786 = getelementptr inbounds double, ptr %785, i64 9
  %787 = load double, ptr %786, align 8, !tbaa !11
  %788 = fsub double %780, %787
  store double %788, ptr %20, align 8, !tbaa !11
  %789 = load ptr, ptr %4, align 8, !tbaa !9
  %790 = load i32, ptr %5, align 4, !tbaa !5
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds ptr, ptr %789, i64 %791
  %793 = load ptr, ptr %792, align 8, !tbaa !9
  %794 = getelementptr inbounds double, ptr %793, i64 6
  %795 = load double, ptr %794, align 8, !tbaa !11
  %796 = load ptr, ptr %4, align 8, !tbaa !9
  %797 = load i32, ptr %5, align 4, !tbaa !5
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds ptr, ptr %796, i64 %798
  %800 = load ptr, ptr %799, align 8, !tbaa !9
  %801 = getelementptr inbounds double, ptr %800, i64 9
  %802 = load double, ptr %801, align 8, !tbaa !11
  %803 = fadd double %795, %802
  store double %803, ptr %22, align 8, !tbaa !11
  %804 = load ptr, ptr %4, align 8, !tbaa !9
  %805 = load i32, ptr %5, align 4, !tbaa !5
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds ptr, ptr %804, i64 %806
  %808 = load ptr, ptr %807, align 8, !tbaa !9
  %809 = getelementptr inbounds double, ptr %808, i64 14
  %810 = load double, ptr %809, align 8, !tbaa !11
  %811 = load ptr, ptr %4, align 8, !tbaa !9
  %812 = load i32, ptr %5, align 4, !tbaa !5
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds ptr, ptr %811, i64 %813
  %815 = load ptr, ptr %814, align 8, !tbaa !9
  %816 = getelementptr inbounds double, ptr %815, i64 1
  %817 = load double, ptr %816, align 8, !tbaa !11
  %818 = fsub double %810, %817
  store double %818, ptr %21, align 8, !tbaa !11
  %819 = load ptr, ptr %4, align 8, !tbaa !9
  %820 = load i32, ptr %5, align 4, !tbaa !5
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds ptr, ptr %819, i64 %821
  %823 = load ptr, ptr %822, align 8, !tbaa !9
  %824 = getelementptr inbounds double, ptr %823, i64 14
  %825 = load double, ptr %824, align 8, !tbaa !11
  %826 = load ptr, ptr %4, align 8, !tbaa !9
  %827 = load i32, ptr %5, align 4, !tbaa !5
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds ptr, ptr %826, i64 %828
  %830 = load ptr, ptr %829, align 8, !tbaa !9
  %831 = getelementptr inbounds double, ptr %830, i64 1
  %832 = load double, ptr %831, align 8, !tbaa !11
  %833 = fadd double %825, %832
  store double %833, ptr %23, align 8, !tbaa !11
  %834 = load double, ptr %22, align 8, !tbaa !11
  %835 = load double, ptr %23, align 8, !tbaa !11
  %836 = fadd double %834, %835
  store double %836, ptr %12, align 8, !tbaa !11
  %837 = load double, ptr %22, align 8, !tbaa !11
  %838 = load double, ptr %23, align 8, !tbaa !11
  %839 = fsub double %837, %838
  store double %839, ptr %13, align 8, !tbaa !11
  %840 = load double, ptr %6, align 8, !tbaa !11
  %841 = load double, ptr %10, align 8, !tbaa !11
  %842 = fadd double %840, %841
  store double %842, ptr %22, align 8, !tbaa !11
  %843 = load double, ptr %8, align 8, !tbaa !11
  %844 = load double, ptr %12, align 8, !tbaa !11
  %845 = fadd double %843, %844
  store double %845, ptr %23, align 8, !tbaa !11
  %846 = load double, ptr %22, align 8, !tbaa !11
  %847 = load double, ptr %23, align 8, !tbaa !11
  %848 = fadd double %846, %847
  %849 = fmul double 2.500000e-01, %848
  %850 = load ptr, ptr %4, align 8, !tbaa !9
  %851 = load i32, ptr %5, align 4, !tbaa !5
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds ptr, ptr %850, i64 %852
  %854 = load ptr, ptr %853, align 8, !tbaa !9
  %855 = getelementptr inbounds double, ptr %854, i64 0
  store double %849, ptr %855, align 8, !tbaa !11
  %856 = load double, ptr %22, align 8, !tbaa !11
  %857 = load double, ptr %23, align 8, !tbaa !11
  %858 = fsub double %856, %857
  %859 = fmul double 2.500000e-01, %858
  %860 = load ptr, ptr %4, align 8, !tbaa !9
  %861 = load i32, ptr %5, align 4, !tbaa !5
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds ptr, ptr %860, i64 %862
  %864 = load ptr, ptr %863, align 8, !tbaa !9
  %865 = getelementptr inbounds double, ptr %864, i64 8
  store double %859, ptr %865, align 8, !tbaa !11
  %866 = load double, ptr %6, align 8, !tbaa !11
  %867 = load double, ptr %10, align 8, !tbaa !11
  %868 = fsub double %866, %867
  store double %868, ptr %22, align 8, !tbaa !11
  %869 = load double, ptr %8, align 8, !tbaa !11
  %870 = load double, ptr %12, align 8, !tbaa !11
  %871 = fsub double %869, %870
  store double %871, ptr %23, align 8, !tbaa !11
  %872 = load double, ptr %22, align 8, !tbaa !11
  %873 = load double, ptr %23, align 8, !tbaa !11
  %874 = fmul double 0x3FC1517A7BDB3895, %873
  %875 = fneg double %874
  %876 = call double @llvm.fmuladd.f64(double 0x3FD4E7AE9144F0FC, double %872, double %875)
  %877 = load ptr, ptr %4, align 8, !tbaa !9
  %878 = load i32, ptr %5, align 4, !tbaa !5
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds ptr, ptr %877, i64 %879
  %881 = load ptr, ptr %880, align 8, !tbaa !9
  %882 = getelementptr inbounds double, ptr %881, i64 4
  store double %876, ptr %882, align 8, !tbaa !11
  %883 = load double, ptr %23, align 8, !tbaa !11
  %884 = load double, ptr %22, align 8, !tbaa !11
  %885 = fmul double 0x3FC1517A7BDB3895, %884
  %886 = call double @llvm.fmuladd.f64(double 0x3FD4E7AE9144F0FC, double %883, double %885)
  %887 = load ptr, ptr %4, align 8, !tbaa !9
  %888 = load i32, ptr %5, align 4, !tbaa !5
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds ptr, ptr %887, i64 %889
  %891 = load ptr, ptr %890, align 8, !tbaa !9
  %892 = getelementptr inbounds double, ptr %891, i64 12
  store double %886, ptr %892, align 8, !tbaa !11
  %893 = load double, ptr %9, align 8, !tbaa !11
  %894 = load double, ptr %13, align 8, !tbaa !11
  %895 = fsub double %893, %894
  %896 = fmul double 0x3FE6A09E667F3BCD, %895
  store double %896, ptr %6, align 8, !tbaa !11
  %897 = load double, ptr %9, align 8, !tbaa !11
  %898 = load double, ptr %13, align 8, !tbaa !11
  %899 = fadd double %897, %898
  %900 = fmul double 0x3FE6A09E667F3BCD, %899
  store double %900, ptr %10, align 8, !tbaa !11
  %901 = load double, ptr %7, align 8, !tbaa !11
  %902 = load double, ptr %6, align 8, !tbaa !11
  %903 = fadd double %901, %902
  store double %903, ptr %22, align 8, !tbaa !11
  %904 = load double, ptr %10, align 8, !tbaa !11
  %905 = load double, ptr %11, align 8, !tbaa !11
  %906 = fadd double %904, %905
  store double %906, ptr %23, align 8, !tbaa !11
  %907 = load double, ptr %22, align 8, !tbaa !11
  %908 = load double, ptr %23, align 8, !tbaa !11
  %909 = fmul double 0x3FB1A855DEC071B5, %908
  %910 = fneg double %909
  %911 = call double @llvm.fmuladd.f64(double 0x3FD63150B15E8536, double %907, double %910)
  %912 = load ptr, ptr %4, align 8, !tbaa !9
  %913 = load i32, ptr %5, align 4, !tbaa !5
  %914 = sext i32 %913 to i64
  %915 = getelementptr inbounds ptr, ptr %912, i64 %914
  %916 = load ptr, ptr %915, align 8, !tbaa !9
  %917 = getelementptr inbounds double, ptr %916, i64 2
  store double %911, ptr %917, align 8, !tbaa !11
  %918 = load double, ptr %23, align 8, !tbaa !11
  %919 = load double, ptr %22, align 8, !tbaa !11
  %920 = fmul double 0x3FB1A855DEC071B5, %919
  %921 = call double @llvm.fmuladd.f64(double 0x3FD63150B15E8536, double %918, double %920)
  %922 = load ptr, ptr %4, align 8, !tbaa !9
  %923 = load i32, ptr %5, align 4, !tbaa !5
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds ptr, ptr %922, i64 %924
  %926 = load ptr, ptr %925, align 8, !tbaa !9
  %927 = getelementptr inbounds double, ptr %926, i64 14
  store double %921, ptr %927, align 8, !tbaa !11
  %928 = load double, ptr %7, align 8, !tbaa !11
  %929 = load double, ptr %6, align 8, !tbaa !11
  %930 = fsub double %928, %929
  store double %930, ptr %22, align 8, !tbaa !11
  %931 = load double, ptr %10, align 8, !tbaa !11
  %932 = load double, ptr %11, align 8, !tbaa !11
  %933 = fsub double %931, %932
  store double %933, ptr %23, align 8, !tbaa !11
  %934 = load double, ptr %22, align 8, !tbaa !11
  %935 = load double, ptr %23, align 8, !tbaa !11
  %936 = fmul double 0x3FC92469C0DCF32D, %935
  %937 = fneg double %936
  %938 = call double @llvm.fmuladd.f64(double 0x3FD2D062EF88E319, double %934, double %937)
  %939 = load ptr, ptr %4, align 8, !tbaa !9
  %940 = load i32, ptr %5, align 4, !tbaa !5
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds ptr, ptr %939, i64 %941
  %943 = load ptr, ptr %942, align 8, !tbaa !9
  %944 = getelementptr inbounds double, ptr %943, i64 6
  store double %938, ptr %944, align 8, !tbaa !11
  %945 = load double, ptr %23, align 8, !tbaa !11
  %946 = load double, ptr %22, align 8, !tbaa !11
  %947 = fmul double 0x3FC92469C0DCF32D, %946
  %948 = call double @llvm.fmuladd.f64(double 0x3FD2D062EF88E319, double %945, double %947)
  %949 = load ptr, ptr %4, align 8, !tbaa !9
  %950 = load i32, ptr %5, align 4, !tbaa !5
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds ptr, ptr %949, i64 %951
  %953 = load ptr, ptr %952, align 8, !tbaa !9
  %954 = getelementptr inbounds double, ptr %953, i64 10
  store double %948, ptr %954, align 8, !tbaa !11
  %955 = load double, ptr %18, align 8, !tbaa !11
  %956 = load double, ptr %19, align 8, !tbaa !11
  %957 = fsub double %955, %956
  %958 = fmul double 0x3FE6A09E667F3BCD, %957
  store double %958, ptr %22, align 8, !tbaa !11
  %959 = load double, ptr %19, align 8, !tbaa !11
  %960 = load double, ptr %18, align 8, !tbaa !11
  %961 = fadd double %959, %960
  %962 = fmul double 0x3FE6A09E667F3BCD, %961
  store double %962, ptr %23, align 8, !tbaa !11
  %963 = load double, ptr %14, align 8, !tbaa !11
  %964 = load double, ptr %22, align 8, !tbaa !11
  %965 = fsub double %963, %964
  store double %965, ptr %18, align 8, !tbaa !11
  %966 = load double, ptr %15, align 8, !tbaa !11
  %967 = load double, ptr %23, align 8, !tbaa !11
  %968 = fsub double %966, %967
  store double %968, ptr %19, align 8, !tbaa !11
  %969 = load double, ptr %22, align 8, !tbaa !11
  %970 = load double, ptr %14, align 8, !tbaa !11
  %971 = fadd double %970, %969
  store double %971, ptr %14, align 8, !tbaa !11
  %972 = load double, ptr %23, align 8, !tbaa !11
  %973 = load double, ptr %15, align 8, !tbaa !11
  %974 = fadd double %973, %972
  store double %974, ptr %15, align 8, !tbaa !11
  %975 = load double, ptr %20, align 8, !tbaa !11
  %976 = load double, ptr %21, align 8, !tbaa !11
  %977 = fmul double 0x3FED906BCF328D46, %976
  %978 = fneg double %977
  %979 = call double @llvm.fmuladd.f64(double 0x3FD87DE2A6AEA963, double %975, double %978)
  store double %979, ptr %22, align 8, !tbaa !11
  %980 = load double, ptr %21, align 8, !tbaa !11
  %981 = load double, ptr %20, align 8, !tbaa !11
  %982 = fmul double 0x3FED906BCF328D46, %981
  %983 = call double @llvm.fmuladd.f64(double 0x3FD87DE2A6AEA963, double %980, double %982)
  store double %983, ptr %23, align 8, !tbaa !11
  %984 = load double, ptr %16, align 8, !tbaa !11
  %985 = load double, ptr %17, align 8, !tbaa !11
  %986 = fmul double 0x3FD87DE2A6AEA963, %985
  %987 = fneg double %986
  %988 = call double @llvm.fmuladd.f64(double 0x3FED906BCF328D46, double %984, double %987)
  store double %988, ptr %20, align 8, !tbaa !11
  %989 = load double, ptr %17, align 8, !tbaa !11
  %990 = load double, ptr %16, align 8, !tbaa !11
  %991 = fmul double 0x3FD87DE2A6AEA963, %990
  %992 = call double @llvm.fmuladd.f64(double 0x3FED906BCF328D46, double %989, double %991)
  store double %992, ptr %21, align 8, !tbaa !11
  %993 = load double, ptr %20, align 8, !tbaa !11
  %994 = load double, ptr %22, align 8, !tbaa !11
  %995 = fadd double %993, %994
  store double %995, ptr %16, align 8, !tbaa !11
  %996 = load double, ptr %21, align 8, !tbaa !11
  %997 = load double, ptr %23, align 8, !tbaa !11
  %998 = fadd double %996, %997
  store double %998, ptr %17, align 8, !tbaa !11
  %999 = load double, ptr %22, align 8, !tbaa !11
  %1000 = load double, ptr %20, align 8, !tbaa !11
  %1001 = fsub double %1000, %999
  store double %1001, ptr %20, align 8, !tbaa !11
  %1002 = load double, ptr %23, align 8, !tbaa !11
  %1003 = load double, ptr %21, align 8, !tbaa !11
  %1004 = fsub double %1003, %1002
  store double %1004, ptr %21, align 8, !tbaa !11
  %1005 = load double, ptr %14, align 8, !tbaa !11
  %1006 = load double, ptr %16, align 8, !tbaa !11
  %1007 = fadd double %1005, %1006
  store double %1007, ptr %22, align 8, !tbaa !11
  %1008 = load double, ptr %17, align 8, !tbaa !11
  %1009 = load double, ptr %15, align 8, !tbaa !11
  %1010 = fadd double %1008, %1009
  store double %1010, ptr %23, align 8, !tbaa !11
  %1011 = load double, ptr %22, align 8, !tbaa !11
  %1012 = load double, ptr %23, align 8, !tbaa !11
  %1013 = fmul double 0x3FA1BE35182FE5AA, %1012
  %1014 = fneg double %1013
  %1015 = call double @llvm.fmuladd.f64(double 0x3FD684B9C80F1A8B, double %1011, double %1014)
  %1016 = load ptr, ptr %4, align 8, !tbaa !9
  %1017 = load i32, ptr %5, align 4, !tbaa !5
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds ptr, ptr %1016, i64 %1018
  %1020 = load ptr, ptr %1019, align 8, !tbaa !9
  %1021 = getelementptr inbounds double, ptr %1020, i64 1
  store double %1015, ptr %1021, align 8, !tbaa !11
  %1022 = load double, ptr %23, align 8, !tbaa !11
  %1023 = load double, ptr %22, align 8, !tbaa !11
  %1024 = fmul double 0x3FA1BE35182FE5AA, %1023
  %1025 = call double @llvm.fmuladd.f64(double 0x3FD684B9C80F1A8B, double %1022, double %1024)
  %1026 = load ptr, ptr %4, align 8, !tbaa !9
  %1027 = load i32, ptr %5, align 4, !tbaa !5
  %1028 = sext i32 %1027 to i64
  %1029 = getelementptr inbounds ptr, ptr %1026, i64 %1028
  %1030 = load ptr, ptr %1029, align 8, !tbaa !9
  %1031 = getelementptr inbounds double, ptr %1030, i64 15
  store double %1025, ptr %1031, align 8, !tbaa !11
  %1032 = load double, ptr %14, align 8, !tbaa !11
  %1033 = load double, ptr %16, align 8, !tbaa !11
  %1034 = fsub double %1032, %1033
  store double %1034, ptr %22, align 8, !tbaa !11
  %1035 = load double, ptr %17, align 8, !tbaa !11
  %1036 = load double, ptr %15, align 8, !tbaa !11
  %1037 = fsub double %1035, %1036
  store double %1037, ptr %23, align 8, !tbaa !11
  %1038 = load double, ptr %22, align 8, !tbaa !11
  %1039 = load double, ptr %23, align 8, !tbaa !11
  %1040 = fmul double 0x3FCCB598CC4BEEA0, %1039
  %1041 = fneg double %1040
  %1042 = call double @llvm.fmuladd.f64(double 0x3FD17DC13DAB2DD6, double %1038, double %1041)
  %1043 = load ptr, ptr %4, align 8, !tbaa !9
  %1044 = load i32, ptr %5, align 4, !tbaa !5
  %1045 = sext i32 %1044 to i64
  %1046 = getelementptr inbounds ptr, ptr %1043, i64 %1045
  %1047 = load ptr, ptr %1046, align 8, !tbaa !9
  %1048 = getelementptr inbounds double, ptr %1047, i64 7
  store double %1042, ptr %1048, align 8, !tbaa !11
  %1049 = load double, ptr %23, align 8, !tbaa !11
  %1050 = load double, ptr %22, align 8, !tbaa !11
  %1051 = fmul double 0x3FCCB598CC4BEEA0, %1050
  %1052 = call double @llvm.fmuladd.f64(double 0x3FD17DC13DAB2DD6, double %1049, double %1051)
  %1053 = load ptr, ptr %4, align 8, !tbaa !9
  %1054 = load i32, ptr %5, align 4, !tbaa !5
  %1055 = sext i32 %1054 to i64
  %1056 = getelementptr inbounds ptr, ptr %1053, i64 %1055
  %1057 = load ptr, ptr %1056, align 8, !tbaa !9
  %1058 = getelementptr inbounds double, ptr %1057, i64 9
  store double %1052, ptr %1058, align 8, !tbaa !11
  %1059 = load double, ptr %18, align 8, !tbaa !11
  %1060 = load double, ptr %21, align 8, !tbaa !11
  %1061 = fsub double %1059, %1060
  store double %1061, ptr %22, align 8, !tbaa !11
  %1062 = load double, ptr %20, align 8, !tbaa !11
  %1063 = load double, ptr %19, align 8, !tbaa !11
  %1064 = fadd double %1062, %1063
  store double %1064, ptr %23, align 8, !tbaa !11
  %1065 = load double, ptr %22, align 8, !tbaa !11
  %1066 = load double, ptr %23, align 8, !tbaa !11
  %1067 = fmul double 0x3FC5553E3F5B5E58, %1066
  %1068 = fneg double %1067
  %1069 = call double @llvm.fmuladd.f64(double 0x3FD3F4A237187EAF, double %1065, double %1068)
  %1070 = load ptr, ptr %4, align 8, !tbaa !9
  %1071 = load i32, ptr %5, align 4, !tbaa !5
  %1072 = sext i32 %1071 to i64
  %1073 = getelementptr inbounds ptr, ptr %1070, i64 %1072
  %1074 = load ptr, ptr %1073, align 8, !tbaa !9
  %1075 = getelementptr inbounds double, ptr %1074, i64 5
  store double %1069, ptr %1075, align 8, !tbaa !11
  %1076 = load double, ptr %23, align 8, !tbaa !11
  %1077 = load double, ptr %22, align 8, !tbaa !11
  %1078 = fmul double 0x3FC5553E3F5B5E58, %1077
  %1079 = call double @llvm.fmuladd.f64(double 0x3FD3F4A237187EAF, double %1076, double %1078)
  %1080 = load ptr, ptr %4, align 8, !tbaa !9
  %1081 = load i32, ptr %5, align 4, !tbaa !5
  %1082 = sext i32 %1081 to i64
  %1083 = getelementptr inbounds ptr, ptr %1080, i64 %1082
  %1084 = load ptr, ptr %1083, align 8, !tbaa !9
  %1085 = getelementptr inbounds double, ptr %1084, i64 11
  store double %1079, ptr %1085, align 8, !tbaa !11
  %1086 = load double, ptr %18, align 8, !tbaa !11
  %1087 = load double, ptr %21, align 8, !tbaa !11
  %1088 = fadd double %1086, %1087
  store double %1088, ptr %22, align 8, !tbaa !11
  %1089 = load double, ptr %20, align 8, !tbaa !11
  %1090 = load double, ptr %19, align 8, !tbaa !11
  %1091 = fsub double %1089, %1090
  store double %1091, ptr %23, align 8, !tbaa !11
  %1092 = load double, ptr %22, align 8, !tbaa !11
  %1093 = load double, ptr %23, align 8, !tbaa !11
  %1094 = fmul double 0x3FBA4608AAFA8527, %1093
  %1095 = fneg double %1094
  %1096 = call double @llvm.fmuladd.f64(double 0x3FD5A730C6C21C67, double %1092, double %1095)
  %1097 = load ptr, ptr %4, align 8, !tbaa !9
  %1098 = load i32, ptr %5, align 4, !tbaa !5
  %1099 = sext i32 %1098 to i64
  %1100 = getelementptr inbounds ptr, ptr %1097, i64 %1099
  %1101 = load ptr, ptr %1100, align 8, !tbaa !9
  %1102 = getelementptr inbounds double, ptr %1101, i64 3
  store double %1096, ptr %1102, align 8, !tbaa !11
  %1103 = load double, ptr %23, align 8, !tbaa !11
  %1104 = load double, ptr %22, align 8, !tbaa !11
  %1105 = fmul double 0x3FBA4608AAFA8527, %1104
  %1106 = call double @llvm.fmuladd.f64(double 0x3FD5A730C6C21C67, double %1103, double %1105)
  %1107 = load ptr, ptr %4, align 8, !tbaa !9
  %1108 = load i32, ptr %5, align 4, !tbaa !5
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds ptr, ptr %1107, i64 %1109
  %1111 = load ptr, ptr %1110, align 8, !tbaa !9
  %1112 = getelementptr inbounds double, ptr %1111, i64 13
  store double %1106, ptr %1112, align 8, !tbaa !11
  br label %1113

1113:                                             ; preds = %575
  %1114 = load i32, ptr %5, align 4, !tbaa !5
  %1115 = add nsw i32 %1114, 1
  store i32 %1115, ptr %5, align 4, !tbaa !5
  br label %572, !llvm.loop !15

1116:                                             ; preds = %572
  br label %2208

1117:                                             ; preds = %2
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %1118

1118:                                             ; preds = %1659, %1117
  %1119 = load i32, ptr %5, align 4, !tbaa !5
  %1120 = icmp sle i32 %1119, 15
  br i1 %1120, label %1121, label %1662

1121:                                             ; preds = %1118
  %1122 = load ptr, ptr %4, align 8, !tbaa !9
  %1123 = getelementptr inbounds ptr, ptr %1122, i64 1
  %1124 = load ptr, ptr %1123, align 8, !tbaa !9
  %1125 = load i32, ptr %5, align 4, !tbaa !5
  %1126 = sext i32 %1125 to i64
  %1127 = getelementptr inbounds double, ptr %1124, i64 %1126
  %1128 = load double, ptr %1127, align 8, !tbaa !11
  %1129 = load ptr, ptr %4, align 8, !tbaa !9
  %1130 = getelementptr inbounds ptr, ptr %1129, i64 15
  %1131 = load ptr, ptr %1130, align 8, !tbaa !9
  %1132 = load i32, ptr %5, align 4, !tbaa !5
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds double, ptr %1131, i64 %1133
  %1135 = load double, ptr %1134, align 8, !tbaa !11
  %1136 = fmul double 0x3FA1BE35182FE5AA, %1135
  %1137 = call double @llvm.fmuladd.f64(double 0x3FD684B9C80F1A8B, double %1128, double %1136)
  store double %1137, ptr %16, align 8, !tbaa !11
  %1138 = load ptr, ptr %4, align 8, !tbaa !9
  %1139 = getelementptr inbounds ptr, ptr %1138, i64 15
  %1140 = load ptr, ptr %1139, align 8, !tbaa !9
  %1141 = load i32, ptr %5, align 4, !tbaa !5
  %1142 = sext i32 %1141 to i64
  %1143 = getelementptr inbounds double, ptr %1140, i64 %1142
  %1144 = load double, ptr %1143, align 8, !tbaa !11
  %1145 = load ptr, ptr %4, align 8, !tbaa !9
  %1146 = getelementptr inbounds ptr, ptr %1145, i64 1
  %1147 = load ptr, ptr %1146, align 8, !tbaa !9
  %1148 = load i32, ptr %5, align 4, !tbaa !5
  %1149 = sext i32 %1148 to i64
  %1150 = getelementptr inbounds double, ptr %1147, i64 %1149
  %1151 = load double, ptr %1150, align 8, !tbaa !11
  %1152 = fmul double 0x3FA1BE35182FE5AA, %1151
  %1153 = fneg double %1152
  %1154 = call double @llvm.fmuladd.f64(double 0x3FD684B9C80F1A8B, double %1144, double %1153)
  store double %1154, ptr %17, align 8, !tbaa !11
  %1155 = load ptr, ptr %4, align 8, !tbaa !9
  %1156 = getelementptr inbounds ptr, ptr %1155, i64 7
  %1157 = load ptr, ptr %1156, align 8, !tbaa !9
  %1158 = load i32, ptr %5, align 4, !tbaa !5
  %1159 = sext i32 %1158 to i64
  %1160 = getelementptr inbounds double, ptr %1157, i64 %1159
  %1161 = load double, ptr %1160, align 8, !tbaa !11
  %1162 = load ptr, ptr %4, align 8, !tbaa !9
  %1163 = getelementptr inbounds ptr, ptr %1162, i64 9
  %1164 = load ptr, ptr %1163, align 8, !tbaa !9
  %1165 = load i32, ptr %5, align 4, !tbaa !5
  %1166 = sext i32 %1165 to i64
  %1167 = getelementptr inbounds double, ptr %1164, i64 %1166
  %1168 = load double, ptr %1167, align 8, !tbaa !11
  %1169 = fmul double 0x3FCCB598CC4BEEA0, %1168
  %1170 = call double @llvm.fmuladd.f64(double 0x3FD17DC13DAB2DD6, double %1161, double %1169)
  store double %1170, ptr %22, align 8, !tbaa !11
  %1171 = load ptr, ptr %4, align 8, !tbaa !9
  %1172 = getelementptr inbounds ptr, ptr %1171, i64 9
  %1173 = load ptr, ptr %1172, align 8, !tbaa !9
  %1174 = load i32, ptr %5, align 4, !tbaa !5
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds double, ptr %1173, i64 %1175
  %1177 = load double, ptr %1176, align 8, !tbaa !11
  %1178 = load ptr, ptr %4, align 8, !tbaa !9
  %1179 = getelementptr inbounds ptr, ptr %1178, i64 7
  %1180 = load ptr, ptr %1179, align 8, !tbaa !9
  %1181 = load i32, ptr %5, align 4, !tbaa !5
  %1182 = sext i32 %1181 to i64
  %1183 = getelementptr inbounds double, ptr %1180, i64 %1182
  %1184 = load double, ptr %1183, align 8, !tbaa !11
  %1185 = fmul double 0x3FCCB598CC4BEEA0, %1184
  %1186 = fneg double %1185
  %1187 = call double @llvm.fmuladd.f64(double 0x3FD17DC13DAB2DD6, double %1177, double %1186)
  store double %1187, ptr %23, align 8, !tbaa !11
  %1188 = load double, ptr %16, align 8, !tbaa !11
  %1189 = load double, ptr %22, align 8, !tbaa !11
  %1190 = fadd double %1188, %1189
  store double %1190, ptr %14, align 8, !tbaa !11
  %1191 = load double, ptr %17, align 8, !tbaa !11
  %1192 = load double, ptr %23, align 8, !tbaa !11
  %1193 = fsub double %1191, %1192
  store double %1193, ptr %15, align 8, !tbaa !11
  %1194 = load double, ptr %22, align 8, !tbaa !11
  %1195 = load double, ptr %16, align 8, !tbaa !11
  %1196 = fsub double %1195, %1194
  store double %1196, ptr %16, align 8, !tbaa !11
  %1197 = load double, ptr %23, align 8, !tbaa !11
  %1198 = load double, ptr %17, align 8, !tbaa !11
  %1199 = fadd double %1198, %1197
  store double %1199, ptr %17, align 8, !tbaa !11
  %1200 = load ptr, ptr %4, align 8, !tbaa !9
  %1201 = getelementptr inbounds ptr, ptr %1200, i64 5
  %1202 = load ptr, ptr %1201, align 8, !tbaa !9
  %1203 = load i32, ptr %5, align 4, !tbaa !5
  %1204 = sext i32 %1203 to i64
  %1205 = getelementptr inbounds double, ptr %1202, i64 %1204
  %1206 = load double, ptr %1205, align 8, !tbaa !11
  %1207 = load ptr, ptr %4, align 8, !tbaa !9
  %1208 = getelementptr inbounds ptr, ptr %1207, i64 11
  %1209 = load ptr, ptr %1208, align 8, !tbaa !9
  %1210 = load i32, ptr %5, align 4, !tbaa !5
  %1211 = sext i32 %1210 to i64
  %1212 = getelementptr inbounds double, ptr %1209, i64 %1211
  %1213 = load double, ptr %1212, align 8, !tbaa !11
  %1214 = fmul double 0x3FC5553E3F5B5E58, %1213
  %1215 = call double @llvm.fmuladd.f64(double 0x3FD3F4A237187EAF, double %1206, double %1214)
  store double %1215, ptr %20, align 8, !tbaa !11
  %1216 = load ptr, ptr %4, align 8, !tbaa !9
  %1217 = getelementptr inbounds ptr, ptr %1216, i64 11
  %1218 = load ptr, ptr %1217, align 8, !tbaa !9
  %1219 = load i32, ptr %5, align 4, !tbaa !5
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds double, ptr %1218, i64 %1220
  %1222 = load double, ptr %1221, align 8, !tbaa !11
  %1223 = load ptr, ptr %4, align 8, !tbaa !9
  %1224 = getelementptr inbounds ptr, ptr %1223, i64 5
  %1225 = load ptr, ptr %1224, align 8, !tbaa !9
  %1226 = load i32, ptr %5, align 4, !tbaa !5
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds double, ptr %1225, i64 %1227
  %1229 = load double, ptr %1228, align 8, !tbaa !11
  %1230 = fmul double 0x3FC5553E3F5B5E58, %1229
  %1231 = fneg double %1230
  %1232 = call double @llvm.fmuladd.f64(double 0x3FD3F4A237187EAF, double %1222, double %1231)
  store double %1232, ptr %21, align 8, !tbaa !11
  %1233 = load ptr, ptr %4, align 8, !tbaa !9
  %1234 = getelementptr inbounds ptr, ptr %1233, i64 3
  %1235 = load ptr, ptr %1234, align 8, !tbaa !9
  %1236 = load i32, ptr %5, align 4, !tbaa !5
  %1237 = sext i32 %1236 to i64
  %1238 = getelementptr inbounds double, ptr %1235, i64 %1237
  %1239 = load double, ptr %1238, align 8, !tbaa !11
  %1240 = load ptr, ptr %4, align 8, !tbaa !9
  %1241 = getelementptr inbounds ptr, ptr %1240, i64 13
  %1242 = load ptr, ptr %1241, align 8, !tbaa !9
  %1243 = load i32, ptr %5, align 4, !tbaa !5
  %1244 = sext i32 %1243 to i64
  %1245 = getelementptr inbounds double, ptr %1242, i64 %1244
  %1246 = load double, ptr %1245, align 8, !tbaa !11
  %1247 = fmul double 0x3FBA4608AAFA8527, %1246
  %1248 = call double @llvm.fmuladd.f64(double 0x3FD5A730C6C21C67, double %1239, double %1247)
  store double %1248, ptr %22, align 8, !tbaa !11
  %1249 = load ptr, ptr %4, align 8, !tbaa !9
  %1250 = getelementptr inbounds ptr, ptr %1249, i64 13
  %1251 = load ptr, ptr %1250, align 8, !tbaa !9
  %1252 = load i32, ptr %5, align 4, !tbaa !5
  %1253 = sext i32 %1252 to i64
  %1254 = getelementptr inbounds double, ptr %1251, i64 %1253
  %1255 = load double, ptr %1254, align 8, !tbaa !11
  %1256 = load ptr, ptr %4, align 8, !tbaa !9
  %1257 = getelementptr inbounds ptr, ptr %1256, i64 3
  %1258 = load ptr, ptr %1257, align 8, !tbaa !9
  %1259 = load i32, ptr %5, align 4, !tbaa !5
  %1260 = sext i32 %1259 to i64
  %1261 = getelementptr inbounds double, ptr %1258, i64 %1260
  %1262 = load double, ptr %1261, align 8, !tbaa !11
  %1263 = fmul double 0x3FBA4608AAFA8527, %1262
  %1264 = fneg double %1263
  %1265 = call double @llvm.fmuladd.f64(double 0x3FD5A730C6C21C67, double %1255, double %1264)
  store double %1265, ptr %23, align 8, !tbaa !11
  %1266 = load double, ptr %20, align 8, !tbaa !11
  %1267 = load double, ptr %22, align 8, !tbaa !11
  %1268 = fadd double %1266, %1267
  store double %1268, ptr %18, align 8, !tbaa !11
  %1269 = load double, ptr %21, align 8, !tbaa !11
  %1270 = load double, ptr %23, align 8, !tbaa !11
  %1271 = fsub double %1269, %1270
  store double %1271, ptr %19, align 8, !tbaa !11
  %1272 = load double, ptr %22, align 8, !tbaa !11
  %1273 = load double, ptr %20, align 8, !tbaa !11
  %1274 = fsub double %1273, %1272
  store double %1274, ptr %20, align 8, !tbaa !11
  %1275 = load double, ptr %23, align 8, !tbaa !11
  %1276 = load double, ptr %21, align 8, !tbaa !11
  %1277 = fadd double %1276, %1275
  store double %1277, ptr %21, align 8, !tbaa !11
  %1278 = load double, ptr %14, align 8, !tbaa !11
  %1279 = load double, ptr %18, align 8, !tbaa !11
  %1280 = fsub double %1278, %1279
  store double %1280, ptr %22, align 8, !tbaa !11
  %1281 = load double, ptr %15, align 8, !tbaa !11
  %1282 = load double, ptr %19, align 8, !tbaa !11
  %1283 = fsub double %1281, %1282
  store double %1283, ptr %23, align 8, !tbaa !11
  %1284 = load double, ptr %18, align 8, !tbaa !11
  %1285 = load double, ptr %14, align 8, !tbaa !11
  %1286 = fadd double %1285, %1284
  store double %1286, ptr %14, align 8, !tbaa !11
  %1287 = load double, ptr %19, align 8, !tbaa !11
  %1288 = load double, ptr %15, align 8, !tbaa !11
  %1289 = fadd double %1288, %1287
  store double %1289, ptr %15, align 8, !tbaa !11
  %1290 = load double, ptr %23, align 8, !tbaa !11
  %1291 = load double, ptr %22, align 8, !tbaa !11
  %1292 = fadd double %1290, %1291
  %1293 = fmul double 0x3FE6A09E667F3BCD, %1292
  store double %1293, ptr %18, align 8, !tbaa !11
  %1294 = load double, ptr %23, align 8, !tbaa !11
  %1295 = load double, ptr %22, align 8, !tbaa !11
  %1296 = fsub double %1294, %1295
  %1297 = fmul double 0x3FE6A09E667F3BCD, %1296
  store double %1297, ptr %19, align 8, !tbaa !11
  %1298 = load double, ptr %16, align 8, !tbaa !11
  %1299 = load double, ptr %21, align 8, !tbaa !11
  %1300 = fadd double %1298, %1299
  store double %1300, ptr %22, align 8, !tbaa !11
  %1301 = load double, ptr %17, align 8, !tbaa !11
  %1302 = load double, ptr %20, align 8, !tbaa !11
  %1303 = fsub double %1301, %1302
  store double %1303, ptr %23, align 8, !tbaa !11
  %1304 = load double, ptr %21, align 8, !tbaa !11
  %1305 = load double, ptr %16, align 8, !tbaa !11
  %1306 = fsub double %1305, %1304
  store double %1306, ptr %16, align 8, !tbaa !11
  %1307 = load double, ptr %20, align 8, !tbaa !11
  %1308 = load double, ptr %17, align 8, !tbaa !11
  %1309 = fadd double %1308, %1307
  store double %1309, ptr %17, align 8, !tbaa !11
  %1310 = load double, ptr %16, align 8, !tbaa !11
  %1311 = load double, ptr %17, align 8, !tbaa !11
  %1312 = fmul double 0x3FED906BCF328D46, %1311
  %1313 = call double @llvm.fmuladd.f64(double 0x3FD87DE2A6AEA963, double %1310, double %1312)
  store double %1313, ptr %20, align 8, !tbaa !11
  %1314 = load double, ptr %17, align 8, !tbaa !11
  %1315 = load double, ptr %16, align 8, !tbaa !11
  %1316 = fmul double 0x3FED906BCF328D46, %1315
  %1317 = fneg double %1316
  %1318 = call double @llvm.fmuladd.f64(double 0x3FD87DE2A6AEA963, double %1314, double %1317)
  store double %1318, ptr %21, align 8, !tbaa !11
  %1319 = load double, ptr %22, align 8, !tbaa !11
  %1320 = load double, ptr %23, align 8, !tbaa !11
  %1321 = fmul double 0x3FD87DE2A6AEA963, %1320
  %1322 = call double @llvm.fmuladd.f64(double 0x3FED906BCF328D46, double %1319, double %1321)
  store double %1322, ptr %16, align 8, !tbaa !11
  %1323 = load double, ptr %23, align 8, !tbaa !11
  %1324 = load double, ptr %22, align 8, !tbaa !11
  %1325 = fmul double 0x3FD87DE2A6AEA963, %1324
  %1326 = fneg double %1325
  %1327 = call double @llvm.fmuladd.f64(double 0x3FED906BCF328D46, double %1323, double %1326)
  store double %1327, ptr %17, align 8, !tbaa !11
  %1328 = load ptr, ptr %4, align 8, !tbaa !9
  %1329 = getelementptr inbounds ptr, ptr %1328, i64 4
  %1330 = load ptr, ptr %1329, align 8, !tbaa !9
  %1331 = load i32, ptr %5, align 4, !tbaa !5
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds double, ptr %1330, i64 %1332
  %1334 = load double, ptr %1333, align 8, !tbaa !11
  %1335 = load ptr, ptr %4, align 8, !tbaa !9
  %1336 = getelementptr inbounds ptr, ptr %1335, i64 12
  %1337 = load ptr, ptr %1336, align 8, !tbaa !9
  %1338 = load i32, ptr %5, align 4, !tbaa !5
  %1339 = sext i32 %1338 to i64
  %1340 = getelementptr inbounds double, ptr %1337, i64 %1339
  %1341 = load double, ptr %1340, align 8, !tbaa !11
  %1342 = fmul double 0x3FC1517A7BDB3895, %1341
  %1343 = call double @llvm.fmuladd.f64(double 0x3FD4E7AE9144F0FC, double %1334, double %1342)
  store double %1343, ptr %22, align 8, !tbaa !11
  %1344 = load ptr, ptr %4, align 8, !tbaa !9
  %1345 = getelementptr inbounds ptr, ptr %1344, i64 12
  %1346 = load ptr, ptr %1345, align 8, !tbaa !9
  %1347 = load i32, ptr %5, align 4, !tbaa !5
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds double, ptr %1346, i64 %1348
  %1350 = load double, ptr %1349, align 8, !tbaa !11
  %1351 = load ptr, ptr %4, align 8, !tbaa !9
  %1352 = getelementptr inbounds ptr, ptr %1351, i64 4
  %1353 = load ptr, ptr %1352, align 8, !tbaa !9
  %1354 = load i32, ptr %5, align 4, !tbaa !5
  %1355 = sext i32 %1354 to i64
  %1356 = getelementptr inbounds double, ptr %1353, i64 %1355
  %1357 = load double, ptr %1356, align 8, !tbaa !11
  %1358 = fmul double 0x3FC1517A7BDB3895, %1357
  %1359 = fneg double %1358
  %1360 = call double @llvm.fmuladd.f64(double 0x3FD4E7AE9144F0FC, double %1350, double %1359)
  store double %1360, ptr %23, align 8, !tbaa !11
  %1361 = load ptr, ptr %4, align 8, !tbaa !9
  %1362 = getelementptr inbounds ptr, ptr %1361, i64 0
  %1363 = load ptr, ptr %1362, align 8, !tbaa !9
  %1364 = load i32, ptr %5, align 4, !tbaa !5
  %1365 = sext i32 %1364 to i64
  %1366 = getelementptr inbounds double, ptr %1363, i64 %1365
  %1367 = load double, ptr %1366, align 8, !tbaa !11
  %1368 = load ptr, ptr %4, align 8, !tbaa !9
  %1369 = getelementptr inbounds ptr, ptr %1368, i64 8
  %1370 = load ptr, ptr %1369, align 8, !tbaa !9
  %1371 = load i32, ptr %5, align 4, !tbaa !5
  %1372 = sext i32 %1371 to i64
  %1373 = getelementptr inbounds double, ptr %1370, i64 %1372
  %1374 = load double, ptr %1373, align 8, !tbaa !11
  %1375 = fadd double %1367, %1374
  %1376 = fmul double 2.500000e-01, %1375
  store double %1376, ptr %10, align 8, !tbaa !11
  %1377 = load ptr, ptr %4, align 8, !tbaa !9
  %1378 = getelementptr inbounds ptr, ptr %1377, i64 0
  %1379 = load ptr, ptr %1378, align 8, !tbaa !9
  %1380 = load i32, ptr %5, align 4, !tbaa !5
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds double, ptr %1379, i64 %1381
  %1383 = load double, ptr %1382, align 8, !tbaa !11
  %1384 = load ptr, ptr %4, align 8, !tbaa !9
  %1385 = getelementptr inbounds ptr, ptr %1384, i64 8
  %1386 = load ptr, ptr %1385, align 8, !tbaa !9
  %1387 = load i32, ptr %5, align 4, !tbaa !5
  %1388 = sext i32 %1387 to i64
  %1389 = getelementptr inbounds double, ptr %1386, i64 %1388
  %1390 = load double, ptr %1389, align 8, !tbaa !11
  %1391 = fsub double %1383, %1390
  %1392 = fmul double 2.500000e-01, %1391
  store double %1392, ptr %12, align 8, !tbaa !11
  %1393 = load double, ptr %10, align 8, !tbaa !11
  %1394 = load double, ptr %22, align 8, !tbaa !11
  %1395 = fadd double %1393, %1394
  store double %1395, ptr %6, align 8, !tbaa !11
  %1396 = load double, ptr %12, align 8, !tbaa !11
  %1397 = load double, ptr %23, align 8, !tbaa !11
  %1398 = fadd double %1396, %1397
  store double %1398, ptr %8, align 8, !tbaa !11
  %1399 = load double, ptr %22, align 8, !tbaa !11
  %1400 = load double, ptr %10, align 8, !tbaa !11
  %1401 = fsub double %1400, %1399
  store double %1401, ptr %10, align 8, !tbaa !11
  %1402 = load double, ptr %23, align 8, !tbaa !11
  %1403 = load double, ptr %12, align 8, !tbaa !11
  %1404 = fsub double %1403, %1402
  store double %1404, ptr %12, align 8, !tbaa !11
  %1405 = load ptr, ptr %4, align 8, !tbaa !9
  %1406 = getelementptr inbounds ptr, ptr %1405, i64 2
  %1407 = load ptr, ptr %1406, align 8, !tbaa !9
  %1408 = load i32, ptr %5, align 4, !tbaa !5
  %1409 = sext i32 %1408 to i64
  %1410 = getelementptr inbounds double, ptr %1407, i64 %1409
  %1411 = load double, ptr %1410, align 8, !tbaa !11
  %1412 = load ptr, ptr %4, align 8, !tbaa !9
  %1413 = getelementptr inbounds ptr, ptr %1412, i64 14
  %1414 = load ptr, ptr %1413, align 8, !tbaa !9
  %1415 = load i32, ptr %5, align 4, !tbaa !5
  %1416 = sext i32 %1415 to i64
  %1417 = getelementptr inbounds double, ptr %1414, i64 %1416
  %1418 = load double, ptr %1417, align 8, !tbaa !11
  %1419 = fmul double 0x3FB1A855DEC071B5, %1418
  %1420 = call double @llvm.fmuladd.f64(double 0x3FD63150B15E8536, double %1411, double %1419)
  store double %1420, ptr %7, align 8, !tbaa !11
  %1421 = load ptr, ptr %4, align 8, !tbaa !9
  %1422 = getelementptr inbounds ptr, ptr %1421, i64 14
  %1423 = load ptr, ptr %1422, align 8, !tbaa !9
  %1424 = load i32, ptr %5, align 4, !tbaa !5
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds double, ptr %1423, i64 %1425
  %1427 = load double, ptr %1426, align 8, !tbaa !11
  %1428 = load ptr, ptr %4, align 8, !tbaa !9
  %1429 = getelementptr inbounds ptr, ptr %1428, i64 2
  %1430 = load ptr, ptr %1429, align 8, !tbaa !9
  %1431 = load i32, ptr %5, align 4, !tbaa !5
  %1432 = sext i32 %1431 to i64
  %1433 = getelementptr inbounds double, ptr %1430, i64 %1432
  %1434 = load double, ptr %1433, align 8, !tbaa !11
  %1435 = fmul double 0x3FB1A855DEC071B5, %1434
  %1436 = fneg double %1435
  %1437 = call double @llvm.fmuladd.f64(double 0x3FD63150B15E8536, double %1427, double %1436)
  store double %1437, ptr %11, align 8, !tbaa !11
  %1438 = load ptr, ptr %4, align 8, !tbaa !9
  %1439 = getelementptr inbounds ptr, ptr %1438, i64 6
  %1440 = load ptr, ptr %1439, align 8, !tbaa !9
  %1441 = load i32, ptr %5, align 4, !tbaa !5
  %1442 = sext i32 %1441 to i64
  %1443 = getelementptr inbounds double, ptr %1440, i64 %1442
  %1444 = load double, ptr %1443, align 8, !tbaa !11
  %1445 = load ptr, ptr %4, align 8, !tbaa !9
  %1446 = getelementptr inbounds ptr, ptr %1445, i64 10
  %1447 = load ptr, ptr %1446, align 8, !tbaa !9
  %1448 = load i32, ptr %5, align 4, !tbaa !5
  %1449 = sext i32 %1448 to i64
  %1450 = getelementptr inbounds double, ptr %1447, i64 %1449
  %1451 = load double, ptr %1450, align 8, !tbaa !11
  %1452 = fmul double 0x3FC92469C0DCF32D, %1451
  %1453 = call double @llvm.fmuladd.f64(double 0x3FD2D062EF88E319, double %1444, double %1452)
  store double %1453, ptr %9, align 8, !tbaa !11
  %1454 = load ptr, ptr %4, align 8, !tbaa !9
  %1455 = getelementptr inbounds ptr, ptr %1454, i64 10
  %1456 = load ptr, ptr %1455, align 8, !tbaa !9
  %1457 = load i32, ptr %5, align 4, !tbaa !5
  %1458 = sext i32 %1457 to i64
  %1459 = getelementptr inbounds double, ptr %1456, i64 %1458
  %1460 = load double, ptr %1459, align 8, !tbaa !11
  %1461 = load ptr, ptr %4, align 8, !tbaa !9
  %1462 = getelementptr inbounds ptr, ptr %1461, i64 6
  %1463 = load ptr, ptr %1462, align 8, !tbaa !9
  %1464 = load i32, ptr %5, align 4, !tbaa !5
  %1465 = sext i32 %1464 to i64
  %1466 = getelementptr inbounds double, ptr %1463, i64 %1465
  %1467 = load double, ptr %1466, align 8, !tbaa !11
  %1468 = fmul double 0x3FC92469C0DCF32D, %1467
  %1469 = fneg double %1468
  %1470 = call double @llvm.fmuladd.f64(double 0x3FD2D062EF88E319, double %1460, double %1469)
  store double %1470, ptr %13, align 8, !tbaa !11
  %1471 = load double, ptr %7, align 8, !tbaa !11
  %1472 = load double, ptr %9, align 8, !tbaa !11
  %1473 = fsub double %1471, %1472
  store double %1473, ptr %22, align 8, !tbaa !11
  %1474 = load double, ptr %11, align 8, !tbaa !11
  %1475 = load double, ptr %13, align 8, !tbaa !11
  %1476 = fadd double %1474, %1475
  store double %1476, ptr %23, align 8, !tbaa !11
  %1477 = load double, ptr %9, align 8, !tbaa !11
  %1478 = load double, ptr %7, align 8, !tbaa !11
  %1479 = fadd double %1478, %1477
  store double %1479, ptr %7, align 8, !tbaa !11
  %1480 = load double, ptr %13, align 8, !tbaa !11
  %1481 = load double, ptr %11, align 8, !tbaa !11
  %1482 = fsub double %1481, %1480
  store double %1482, ptr %11, align 8, !tbaa !11
  %1483 = load double, ptr %23, align 8, !tbaa !11
  %1484 = load double, ptr %22, align 8, !tbaa !11
  %1485 = fadd double %1483, %1484
  %1486 = fmul double 0x3FE6A09E667F3BCD, %1485
  store double %1486, ptr %9, align 8, !tbaa !11
  %1487 = load double, ptr %23, align 8, !tbaa !11
  %1488 = load double, ptr %22, align 8, !tbaa !11
  %1489 = fsub double %1487, %1488
  %1490 = fmul double 0x3FE6A09E667F3BCD, %1489
  store double %1490, ptr %13, align 8, !tbaa !11
  %1491 = load double, ptr %6, align 8, !tbaa !11
  %1492 = load double, ptr %7, align 8, !tbaa !11
  %1493 = fadd double %1491, %1492
  store double %1493, ptr %22, align 8, !tbaa !11
  %1494 = load double, ptr %6, align 8, !tbaa !11
  %1495 = load double, ptr %7, align 8, !tbaa !11
  %1496 = fsub double %1494, %1495
  store double %1496, ptr %23, align 8, !tbaa !11
  %1497 = load double, ptr %22, align 8, !tbaa !11
  %1498 = load double, ptr %14, align 8, !tbaa !11
  %1499 = fadd double %1497, %1498
  %1500 = load ptr, ptr %4, align 8, !tbaa !9
  %1501 = getelementptr inbounds ptr, ptr %1500, i64 0
  %1502 = load ptr, ptr %1501, align 8, !tbaa !9
  %1503 = load i32, ptr %5, align 4, !tbaa !5
  %1504 = sext i32 %1503 to i64
  %1505 = getelementptr inbounds double, ptr %1502, i64 %1504
  store double %1499, ptr %1505, align 8, !tbaa !11
  %1506 = load double, ptr %22, align 8, !tbaa !11
  %1507 = load double, ptr %14, align 8, !tbaa !11
  %1508 = fsub double %1506, %1507
  %1509 = load ptr, ptr %4, align 8, !tbaa !9
  %1510 = getelementptr inbounds ptr, ptr %1509, i64 15
  %1511 = load ptr, ptr %1510, align 8, !tbaa !9
  %1512 = load i32, ptr %5, align 4, !tbaa !5
  %1513 = sext i32 %1512 to i64
  %1514 = getelementptr inbounds double, ptr %1511, i64 %1513
  store double %1508, ptr %1514, align 8, !tbaa !11
  %1515 = load double, ptr %23, align 8, !tbaa !11
  %1516 = load double, ptr %15, align 8, !tbaa !11
  %1517 = fadd double %1515, %1516
  %1518 = load ptr, ptr %4, align 8, !tbaa !9
  %1519 = getelementptr inbounds ptr, ptr %1518, i64 8
  %1520 = load ptr, ptr %1519, align 8, !tbaa !9
  %1521 = load i32, ptr %5, align 4, !tbaa !5
  %1522 = sext i32 %1521 to i64
  %1523 = getelementptr inbounds double, ptr %1520, i64 %1522
  store double %1517, ptr %1523, align 8, !tbaa !11
  %1524 = load double, ptr %23, align 8, !tbaa !11
  %1525 = load double, ptr %15, align 8, !tbaa !11
  %1526 = fsub double %1524, %1525
  %1527 = load ptr, ptr %4, align 8, !tbaa !9
  %1528 = getelementptr inbounds ptr, ptr %1527, i64 7
  %1529 = load ptr, ptr %1528, align 8, !tbaa !9
  %1530 = load i32, ptr %5, align 4, !tbaa !5
  %1531 = sext i32 %1530 to i64
  %1532 = getelementptr inbounds double, ptr %1529, i64 %1531
  store double %1526, ptr %1532, align 8, !tbaa !11
  %1533 = load double, ptr %8, align 8, !tbaa !11
  %1534 = load double, ptr %9, align 8, !tbaa !11
  %1535 = fadd double %1533, %1534
  store double %1535, ptr %22, align 8, !tbaa !11
  %1536 = load double, ptr %8, align 8, !tbaa !11
  %1537 = load double, ptr %9, align 8, !tbaa !11
  %1538 = fsub double %1536, %1537
  store double %1538, ptr %23, align 8, !tbaa !11
  %1539 = load double, ptr %22, align 8, !tbaa !11
  %1540 = load double, ptr %16, align 8, !tbaa !11
  %1541 = fadd double %1539, %1540
  %1542 = load ptr, ptr %4, align 8, !tbaa !9
  %1543 = getelementptr inbounds ptr, ptr %1542, i64 2
  %1544 = load ptr, ptr %1543, align 8, !tbaa !9
  %1545 = load i32, ptr %5, align 4, !tbaa !5
  %1546 = sext i32 %1545 to i64
  %1547 = getelementptr inbounds double, ptr %1544, i64 %1546
  store double %1541, ptr %1547, align 8, !tbaa !11
  %1548 = load double, ptr %22, align 8, !tbaa !11
  %1549 = load double, ptr %16, align 8, !tbaa !11
  %1550 = fsub double %1548, %1549
  %1551 = load ptr, ptr %4, align 8, !tbaa !9
  %1552 = getelementptr inbounds ptr, ptr %1551, i64 13
  %1553 = load ptr, ptr %1552, align 8, !tbaa !9
  %1554 = load i32, ptr %5, align 4, !tbaa !5
  %1555 = sext i32 %1554 to i64
  %1556 = getelementptr inbounds double, ptr %1553, i64 %1555
  store double %1550, ptr %1556, align 8, !tbaa !11
  %1557 = load double, ptr %23, align 8, !tbaa !11
  %1558 = load double, ptr %17, align 8, !tbaa !11
  %1559 = fadd double %1557, %1558
  %1560 = load ptr, ptr %4, align 8, !tbaa !9
  %1561 = getelementptr inbounds ptr, ptr %1560, i64 10
  %1562 = load ptr, ptr %1561, align 8, !tbaa !9
  %1563 = load i32, ptr %5, align 4, !tbaa !5
  %1564 = sext i32 %1563 to i64
  %1565 = getelementptr inbounds double, ptr %1562, i64 %1564
  store double %1559, ptr %1565, align 8, !tbaa !11
  %1566 = load double, ptr %23, align 8, !tbaa !11
  %1567 = load double, ptr %17, align 8, !tbaa !11
  %1568 = fsub double %1566, %1567
  %1569 = load ptr, ptr %4, align 8, !tbaa !9
  %1570 = getelementptr inbounds ptr, ptr %1569, i64 5
  %1571 = load ptr, ptr %1570, align 8, !tbaa !9
  %1572 = load i32, ptr %5, align 4, !tbaa !5
  %1573 = sext i32 %1572 to i64
  %1574 = getelementptr inbounds double, ptr %1571, i64 %1573
  store double %1568, ptr %1574, align 8, !tbaa !11
  %1575 = load double, ptr %10, align 8, !tbaa !11
  %1576 = load double, ptr %11, align 8, !tbaa !11
  %1577 = fadd double %1575, %1576
  store double %1577, ptr %22, align 8, !tbaa !11
  %1578 = load double, ptr %10, align 8, !tbaa !11
  %1579 = load double, ptr %11, align 8, !tbaa !11
  %1580 = fsub double %1578, %1579
  store double %1580, ptr %23, align 8, !tbaa !11
  %1581 = load double, ptr %22, align 8, !tbaa !11
  %1582 = load double, ptr %18, align 8, !tbaa !11
  %1583 = fadd double %1581, %1582
  %1584 = load ptr, ptr %4, align 8, !tbaa !9
  %1585 = getelementptr inbounds ptr, ptr %1584, i64 4
  %1586 = load ptr, ptr %1585, align 8, !tbaa !9
  %1587 = load i32, ptr %5, align 4, !tbaa !5
  %1588 = sext i32 %1587 to i64
  %1589 = getelementptr inbounds double, ptr %1586, i64 %1588
  store double %1583, ptr %1589, align 8, !tbaa !11
  %1590 = load double, ptr %22, align 8, !tbaa !11
  %1591 = load double, ptr %18, align 8, !tbaa !11
  %1592 = fsub double %1590, %1591
  %1593 = load ptr, ptr %4, align 8, !tbaa !9
  %1594 = getelementptr inbounds ptr, ptr %1593, i64 11
  %1595 = load ptr, ptr %1594, align 8, !tbaa !9
  %1596 = load i32, ptr %5, align 4, !tbaa !5
  %1597 = sext i32 %1596 to i64
  %1598 = getelementptr inbounds double, ptr %1595, i64 %1597
  store double %1592, ptr %1598, align 8, !tbaa !11
  %1599 = load double, ptr %23, align 8, !tbaa !11
  %1600 = load double, ptr %19, align 8, !tbaa !11
  %1601 = fadd double %1599, %1600
  %1602 = load ptr, ptr %4, align 8, !tbaa !9
  %1603 = getelementptr inbounds ptr, ptr %1602, i64 12
  %1604 = load ptr, ptr %1603, align 8, !tbaa !9
  %1605 = load i32, ptr %5, align 4, !tbaa !5
  %1606 = sext i32 %1605 to i64
  %1607 = getelementptr inbounds double, ptr %1604, i64 %1606
  store double %1601, ptr %1607, align 8, !tbaa !11
  %1608 = load double, ptr %23, align 8, !tbaa !11
  %1609 = load double, ptr %19, align 8, !tbaa !11
  %1610 = fsub double %1608, %1609
  %1611 = load ptr, ptr %4, align 8, !tbaa !9
  %1612 = getelementptr inbounds ptr, ptr %1611, i64 3
  %1613 = load ptr, ptr %1612, align 8, !tbaa !9
  %1614 = load i32, ptr %5, align 4, !tbaa !5
  %1615 = sext i32 %1614 to i64
  %1616 = getelementptr inbounds double, ptr %1613, i64 %1615
  store double %1610, ptr %1616, align 8, !tbaa !11
  %1617 = load double, ptr %12, align 8, !tbaa !11
  %1618 = load double, ptr %13, align 8, !tbaa !11
  %1619 = fadd double %1617, %1618
  store double %1619, ptr %22, align 8, !tbaa !11
  %1620 = load double, ptr %12, align 8, !tbaa !11
  %1621 = load double, ptr %13, align 8, !tbaa !11
  %1622 = fsub double %1620, %1621
  store double %1622, ptr %23, align 8, !tbaa !11
  %1623 = load double, ptr %22, align 8, !tbaa !11
  %1624 = load double, ptr %20, align 8, !tbaa !11
  %1625 = fadd double %1623, %1624
  %1626 = load ptr, ptr %4, align 8, !tbaa !9
  %1627 = getelementptr inbounds ptr, ptr %1626, i64 6
  %1628 = load ptr, ptr %1627, align 8, !tbaa !9
  %1629 = load i32, ptr %5, align 4, !tbaa !5
  %1630 = sext i32 %1629 to i64
  %1631 = getelementptr inbounds double, ptr %1628, i64 %1630
  store double %1625, ptr %1631, align 8, !tbaa !11
  %1632 = load double, ptr %22, align 8, !tbaa !11
  %1633 = load double, ptr %20, align 8, !tbaa !11
  %1634 = fsub double %1632, %1633
  %1635 = load ptr, ptr %4, align 8, !tbaa !9
  %1636 = getelementptr inbounds ptr, ptr %1635, i64 9
  %1637 = load ptr, ptr %1636, align 8, !tbaa !9
  %1638 = load i32, ptr %5, align 4, !tbaa !5
  %1639 = sext i32 %1638 to i64
  %1640 = getelementptr inbounds double, ptr %1637, i64 %1639
  store double %1634, ptr %1640, align 8, !tbaa !11
  %1641 = load double, ptr %23, align 8, !tbaa !11
  %1642 = load double, ptr %21, align 8, !tbaa !11
  %1643 = fadd double %1641, %1642
  %1644 = load ptr, ptr %4, align 8, !tbaa !9
  %1645 = getelementptr inbounds ptr, ptr %1644, i64 14
  %1646 = load ptr, ptr %1645, align 8, !tbaa !9
  %1647 = load i32, ptr %5, align 4, !tbaa !5
  %1648 = sext i32 %1647 to i64
  %1649 = getelementptr inbounds double, ptr %1646, i64 %1648
  store double %1643, ptr %1649, align 8, !tbaa !11
  %1650 = load double, ptr %23, align 8, !tbaa !11
  %1651 = load double, ptr %21, align 8, !tbaa !11
  %1652 = fsub double %1650, %1651
  %1653 = load ptr, ptr %4, align 8, !tbaa !9
  %1654 = getelementptr inbounds ptr, ptr %1653, i64 1
  %1655 = load ptr, ptr %1654, align 8, !tbaa !9
  %1656 = load i32, ptr %5, align 4, !tbaa !5
  %1657 = sext i32 %1656 to i64
  %1658 = getelementptr inbounds double, ptr %1655, i64 %1657
  store double %1652, ptr %1658, align 8, !tbaa !11
  br label %1659

1659:                                             ; preds = %1121
  %1660 = load i32, ptr %5, align 4, !tbaa !5
  %1661 = add nsw i32 %1660, 1
  store i32 %1661, ptr %5, align 4, !tbaa !5
  br label %1118, !llvm.loop !16

1662:                                             ; preds = %1118
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %1663

1663:                                             ; preds = %2204, %1662
  %1664 = load i32, ptr %5, align 4, !tbaa !5
  %1665 = icmp sle i32 %1664, 15
  br i1 %1665, label %1666, label %2207

1666:                                             ; preds = %1663
  %1667 = load ptr, ptr %4, align 8, !tbaa !9
  %1668 = load i32, ptr %5, align 4, !tbaa !5
  %1669 = sext i32 %1668 to i64
  %1670 = getelementptr inbounds ptr, ptr %1667, i64 %1669
  %1671 = load ptr, ptr %1670, align 8, !tbaa !9
  %1672 = getelementptr inbounds double, ptr %1671, i64 1
  %1673 = load double, ptr %1672, align 8, !tbaa !11
  %1674 = load ptr, ptr %4, align 8, !tbaa !9
  %1675 = load i32, ptr %5, align 4, !tbaa !5
  %1676 = sext i32 %1675 to i64
  %1677 = getelementptr inbounds ptr, ptr %1674, i64 %1676
  %1678 = load ptr, ptr %1677, align 8, !tbaa !9
  %1679 = getelementptr inbounds double, ptr %1678, i64 15
  %1680 = load double, ptr %1679, align 8, !tbaa !11
  %1681 = fmul double 0x3FA1BE35182FE5AA, %1680
  %1682 = call double @llvm.fmuladd.f64(double 0x3FD684B9C80F1A8B, double %1673, double %1681)
  store double %1682, ptr %16, align 8, !tbaa !11
  %1683 = load ptr, ptr %4, align 8, !tbaa !9
  %1684 = load i32, ptr %5, align 4, !tbaa !5
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds ptr, ptr %1683, i64 %1685
  %1687 = load ptr, ptr %1686, align 8, !tbaa !9
  %1688 = getelementptr inbounds double, ptr %1687, i64 15
  %1689 = load double, ptr %1688, align 8, !tbaa !11
  %1690 = load ptr, ptr %4, align 8, !tbaa !9
  %1691 = load i32, ptr %5, align 4, !tbaa !5
  %1692 = sext i32 %1691 to i64
  %1693 = getelementptr inbounds ptr, ptr %1690, i64 %1692
  %1694 = load ptr, ptr %1693, align 8, !tbaa !9
  %1695 = getelementptr inbounds double, ptr %1694, i64 1
  %1696 = load double, ptr %1695, align 8, !tbaa !11
  %1697 = fmul double 0x3FA1BE35182FE5AA, %1696
  %1698 = fneg double %1697
  %1699 = call double @llvm.fmuladd.f64(double 0x3FD684B9C80F1A8B, double %1689, double %1698)
  store double %1699, ptr %17, align 8, !tbaa !11
  %1700 = load ptr, ptr %4, align 8, !tbaa !9
  %1701 = load i32, ptr %5, align 4, !tbaa !5
  %1702 = sext i32 %1701 to i64
  %1703 = getelementptr inbounds ptr, ptr %1700, i64 %1702
  %1704 = load ptr, ptr %1703, align 8, !tbaa !9
  %1705 = getelementptr inbounds double, ptr %1704, i64 7
  %1706 = load double, ptr %1705, align 8, !tbaa !11
  %1707 = load ptr, ptr %4, align 8, !tbaa !9
  %1708 = load i32, ptr %5, align 4, !tbaa !5
  %1709 = sext i32 %1708 to i64
  %1710 = getelementptr inbounds ptr, ptr %1707, i64 %1709
  %1711 = load ptr, ptr %1710, align 8, !tbaa !9
  %1712 = getelementptr inbounds double, ptr %1711, i64 9
  %1713 = load double, ptr %1712, align 8, !tbaa !11
  %1714 = fmul double 0x3FCCB598CC4BEEA0, %1713
  %1715 = call double @llvm.fmuladd.f64(double 0x3FD17DC13DAB2DD6, double %1706, double %1714)
  store double %1715, ptr %22, align 8, !tbaa !11
  %1716 = load ptr, ptr %4, align 8, !tbaa !9
  %1717 = load i32, ptr %5, align 4, !tbaa !5
  %1718 = sext i32 %1717 to i64
  %1719 = getelementptr inbounds ptr, ptr %1716, i64 %1718
  %1720 = load ptr, ptr %1719, align 8, !tbaa !9
  %1721 = getelementptr inbounds double, ptr %1720, i64 9
  %1722 = load double, ptr %1721, align 8, !tbaa !11
  %1723 = load ptr, ptr %4, align 8, !tbaa !9
  %1724 = load i32, ptr %5, align 4, !tbaa !5
  %1725 = sext i32 %1724 to i64
  %1726 = getelementptr inbounds ptr, ptr %1723, i64 %1725
  %1727 = load ptr, ptr %1726, align 8, !tbaa !9
  %1728 = getelementptr inbounds double, ptr %1727, i64 7
  %1729 = load double, ptr %1728, align 8, !tbaa !11
  %1730 = fmul double 0x3FCCB598CC4BEEA0, %1729
  %1731 = fneg double %1730
  %1732 = call double @llvm.fmuladd.f64(double 0x3FD17DC13DAB2DD6, double %1722, double %1731)
  store double %1732, ptr %23, align 8, !tbaa !11
  %1733 = load double, ptr %16, align 8, !tbaa !11
  %1734 = load double, ptr %22, align 8, !tbaa !11
  %1735 = fadd double %1733, %1734
  store double %1735, ptr %14, align 8, !tbaa !11
  %1736 = load double, ptr %17, align 8, !tbaa !11
  %1737 = load double, ptr %23, align 8, !tbaa !11
  %1738 = fsub double %1736, %1737
  store double %1738, ptr %15, align 8, !tbaa !11
  %1739 = load double, ptr %22, align 8, !tbaa !11
  %1740 = load double, ptr %16, align 8, !tbaa !11
  %1741 = fsub double %1740, %1739
  store double %1741, ptr %16, align 8, !tbaa !11
  %1742 = load double, ptr %23, align 8, !tbaa !11
  %1743 = load double, ptr %17, align 8, !tbaa !11
  %1744 = fadd double %1743, %1742
  store double %1744, ptr %17, align 8, !tbaa !11
  %1745 = load ptr, ptr %4, align 8, !tbaa !9
  %1746 = load i32, ptr %5, align 4, !tbaa !5
  %1747 = sext i32 %1746 to i64
  %1748 = getelementptr inbounds ptr, ptr %1745, i64 %1747
  %1749 = load ptr, ptr %1748, align 8, !tbaa !9
  %1750 = getelementptr inbounds double, ptr %1749, i64 5
  %1751 = load double, ptr %1750, align 8, !tbaa !11
  %1752 = load ptr, ptr %4, align 8, !tbaa !9
  %1753 = load i32, ptr %5, align 4, !tbaa !5
  %1754 = sext i32 %1753 to i64
  %1755 = getelementptr inbounds ptr, ptr %1752, i64 %1754
  %1756 = load ptr, ptr %1755, align 8, !tbaa !9
  %1757 = getelementptr inbounds double, ptr %1756, i64 11
  %1758 = load double, ptr %1757, align 8, !tbaa !11
  %1759 = fmul double 0x3FC5553E3F5B5E58, %1758
  %1760 = call double @llvm.fmuladd.f64(double 0x3FD3F4A237187EAF, double %1751, double %1759)
  store double %1760, ptr %20, align 8, !tbaa !11
  %1761 = load ptr, ptr %4, align 8, !tbaa !9
  %1762 = load i32, ptr %5, align 4, !tbaa !5
  %1763 = sext i32 %1762 to i64
  %1764 = getelementptr inbounds ptr, ptr %1761, i64 %1763
  %1765 = load ptr, ptr %1764, align 8, !tbaa !9
  %1766 = getelementptr inbounds double, ptr %1765, i64 11
  %1767 = load double, ptr %1766, align 8, !tbaa !11
  %1768 = load ptr, ptr %4, align 8, !tbaa !9
  %1769 = load i32, ptr %5, align 4, !tbaa !5
  %1770 = sext i32 %1769 to i64
  %1771 = getelementptr inbounds ptr, ptr %1768, i64 %1770
  %1772 = load ptr, ptr %1771, align 8, !tbaa !9
  %1773 = getelementptr inbounds double, ptr %1772, i64 5
  %1774 = load double, ptr %1773, align 8, !tbaa !11
  %1775 = fmul double 0x3FC5553E3F5B5E58, %1774
  %1776 = fneg double %1775
  %1777 = call double @llvm.fmuladd.f64(double 0x3FD3F4A237187EAF, double %1767, double %1776)
  store double %1777, ptr %21, align 8, !tbaa !11
  %1778 = load ptr, ptr %4, align 8, !tbaa !9
  %1779 = load i32, ptr %5, align 4, !tbaa !5
  %1780 = sext i32 %1779 to i64
  %1781 = getelementptr inbounds ptr, ptr %1778, i64 %1780
  %1782 = load ptr, ptr %1781, align 8, !tbaa !9
  %1783 = getelementptr inbounds double, ptr %1782, i64 3
  %1784 = load double, ptr %1783, align 8, !tbaa !11
  %1785 = load ptr, ptr %4, align 8, !tbaa !9
  %1786 = load i32, ptr %5, align 4, !tbaa !5
  %1787 = sext i32 %1786 to i64
  %1788 = getelementptr inbounds ptr, ptr %1785, i64 %1787
  %1789 = load ptr, ptr %1788, align 8, !tbaa !9
  %1790 = getelementptr inbounds double, ptr %1789, i64 13
  %1791 = load double, ptr %1790, align 8, !tbaa !11
  %1792 = fmul double 0x3FBA4608AAFA8527, %1791
  %1793 = call double @llvm.fmuladd.f64(double 0x3FD5A730C6C21C67, double %1784, double %1792)
  store double %1793, ptr %22, align 8, !tbaa !11
  %1794 = load ptr, ptr %4, align 8, !tbaa !9
  %1795 = load i32, ptr %5, align 4, !tbaa !5
  %1796 = sext i32 %1795 to i64
  %1797 = getelementptr inbounds ptr, ptr %1794, i64 %1796
  %1798 = load ptr, ptr %1797, align 8, !tbaa !9
  %1799 = getelementptr inbounds double, ptr %1798, i64 13
  %1800 = load double, ptr %1799, align 8, !tbaa !11
  %1801 = load ptr, ptr %4, align 8, !tbaa !9
  %1802 = load i32, ptr %5, align 4, !tbaa !5
  %1803 = sext i32 %1802 to i64
  %1804 = getelementptr inbounds ptr, ptr %1801, i64 %1803
  %1805 = load ptr, ptr %1804, align 8, !tbaa !9
  %1806 = getelementptr inbounds double, ptr %1805, i64 3
  %1807 = load double, ptr %1806, align 8, !tbaa !11
  %1808 = fmul double 0x3FBA4608AAFA8527, %1807
  %1809 = fneg double %1808
  %1810 = call double @llvm.fmuladd.f64(double 0x3FD5A730C6C21C67, double %1800, double %1809)
  store double %1810, ptr %23, align 8, !tbaa !11
  %1811 = load double, ptr %20, align 8, !tbaa !11
  %1812 = load double, ptr %22, align 8, !tbaa !11
  %1813 = fadd double %1811, %1812
  store double %1813, ptr %18, align 8, !tbaa !11
  %1814 = load double, ptr %21, align 8, !tbaa !11
  %1815 = load double, ptr %23, align 8, !tbaa !11
  %1816 = fsub double %1814, %1815
  store double %1816, ptr %19, align 8, !tbaa !11
  %1817 = load double, ptr %22, align 8, !tbaa !11
  %1818 = load double, ptr %20, align 8, !tbaa !11
  %1819 = fsub double %1818, %1817
  store double %1819, ptr %20, align 8, !tbaa !11
  %1820 = load double, ptr %23, align 8, !tbaa !11
  %1821 = load double, ptr %21, align 8, !tbaa !11
  %1822 = fadd double %1821, %1820
  store double %1822, ptr %21, align 8, !tbaa !11
  %1823 = load double, ptr %14, align 8, !tbaa !11
  %1824 = load double, ptr %18, align 8, !tbaa !11
  %1825 = fsub double %1823, %1824
  store double %1825, ptr %22, align 8, !tbaa !11
  %1826 = load double, ptr %15, align 8, !tbaa !11
  %1827 = load double, ptr %19, align 8, !tbaa !11
  %1828 = fsub double %1826, %1827
  store double %1828, ptr %23, align 8, !tbaa !11
  %1829 = load double, ptr %18, align 8, !tbaa !11
  %1830 = load double, ptr %14, align 8, !tbaa !11
  %1831 = fadd double %1830, %1829
  store double %1831, ptr %14, align 8, !tbaa !11
  %1832 = load double, ptr %19, align 8, !tbaa !11
  %1833 = load double, ptr %15, align 8, !tbaa !11
  %1834 = fadd double %1833, %1832
  store double %1834, ptr %15, align 8, !tbaa !11
  %1835 = load double, ptr %23, align 8, !tbaa !11
  %1836 = load double, ptr %22, align 8, !tbaa !11
  %1837 = fadd double %1835, %1836
  %1838 = fmul double 0x3FE6A09E667F3BCD, %1837
  store double %1838, ptr %18, align 8, !tbaa !11
  %1839 = load double, ptr %23, align 8, !tbaa !11
  %1840 = load double, ptr %22, align 8, !tbaa !11
  %1841 = fsub double %1839, %1840
  %1842 = fmul double 0x3FE6A09E667F3BCD, %1841
  store double %1842, ptr %19, align 8, !tbaa !11
  %1843 = load double, ptr %16, align 8, !tbaa !11
  %1844 = load double, ptr %21, align 8, !tbaa !11
  %1845 = fadd double %1843, %1844
  store double %1845, ptr %22, align 8, !tbaa !11
  %1846 = load double, ptr %17, align 8, !tbaa !11
  %1847 = load double, ptr %20, align 8, !tbaa !11
  %1848 = fsub double %1846, %1847
  store double %1848, ptr %23, align 8, !tbaa !11
  %1849 = load double, ptr %21, align 8, !tbaa !11
  %1850 = load double, ptr %16, align 8, !tbaa !11
  %1851 = fsub double %1850, %1849
  store double %1851, ptr %16, align 8, !tbaa !11
  %1852 = load double, ptr %20, align 8, !tbaa !11
  %1853 = load double, ptr %17, align 8, !tbaa !11
  %1854 = fadd double %1853, %1852
  store double %1854, ptr %17, align 8, !tbaa !11
  %1855 = load double, ptr %16, align 8, !tbaa !11
  %1856 = load double, ptr %17, align 8, !tbaa !11
  %1857 = fmul double 0x3FED906BCF328D46, %1856
  %1858 = call double @llvm.fmuladd.f64(double 0x3FD87DE2A6AEA963, double %1855, double %1857)
  store double %1858, ptr %20, align 8, !tbaa !11
  %1859 = load double, ptr %17, align 8, !tbaa !11
  %1860 = load double, ptr %16, align 8, !tbaa !11
  %1861 = fmul double 0x3FED906BCF328D46, %1860
  %1862 = fneg double %1861
  %1863 = call double @llvm.fmuladd.f64(double 0x3FD87DE2A6AEA963, double %1859, double %1862)
  store double %1863, ptr %21, align 8, !tbaa !11
  %1864 = load double, ptr %22, align 8, !tbaa !11
  %1865 = load double, ptr %23, align 8, !tbaa !11
  %1866 = fmul double 0x3FD87DE2A6AEA963, %1865
  %1867 = call double @llvm.fmuladd.f64(double 0x3FED906BCF328D46, double %1864, double %1866)
  store double %1867, ptr %16, align 8, !tbaa !11
  %1868 = load double, ptr %23, align 8, !tbaa !11
  %1869 = load double, ptr %22, align 8, !tbaa !11
  %1870 = fmul double 0x3FD87DE2A6AEA963, %1869
  %1871 = fneg double %1870
  %1872 = call double @llvm.fmuladd.f64(double 0x3FED906BCF328D46, double %1868, double %1871)
  store double %1872, ptr %17, align 8, !tbaa !11
  %1873 = load ptr, ptr %4, align 8, !tbaa !9
  %1874 = load i32, ptr %5, align 4, !tbaa !5
  %1875 = sext i32 %1874 to i64
  %1876 = getelementptr inbounds ptr, ptr %1873, i64 %1875
  %1877 = load ptr, ptr %1876, align 8, !tbaa !9
  %1878 = getelementptr inbounds double, ptr %1877, i64 4
  %1879 = load double, ptr %1878, align 8, !tbaa !11
  %1880 = load ptr, ptr %4, align 8, !tbaa !9
  %1881 = load i32, ptr %5, align 4, !tbaa !5
  %1882 = sext i32 %1881 to i64
  %1883 = getelementptr inbounds ptr, ptr %1880, i64 %1882
  %1884 = load ptr, ptr %1883, align 8, !tbaa !9
  %1885 = getelementptr inbounds double, ptr %1884, i64 12
  %1886 = load double, ptr %1885, align 8, !tbaa !11
  %1887 = fmul double 0x3FC1517A7BDB3895, %1886
  %1888 = call double @llvm.fmuladd.f64(double 0x3FD4E7AE9144F0FC, double %1879, double %1887)
  store double %1888, ptr %22, align 8, !tbaa !11
  %1889 = load ptr, ptr %4, align 8, !tbaa !9
  %1890 = load i32, ptr %5, align 4, !tbaa !5
  %1891 = sext i32 %1890 to i64
  %1892 = getelementptr inbounds ptr, ptr %1889, i64 %1891
  %1893 = load ptr, ptr %1892, align 8, !tbaa !9
  %1894 = getelementptr inbounds double, ptr %1893, i64 12
  %1895 = load double, ptr %1894, align 8, !tbaa !11
  %1896 = load ptr, ptr %4, align 8, !tbaa !9
  %1897 = load i32, ptr %5, align 4, !tbaa !5
  %1898 = sext i32 %1897 to i64
  %1899 = getelementptr inbounds ptr, ptr %1896, i64 %1898
  %1900 = load ptr, ptr %1899, align 8, !tbaa !9
  %1901 = getelementptr inbounds double, ptr %1900, i64 4
  %1902 = load double, ptr %1901, align 8, !tbaa !11
  %1903 = fmul double 0x3FC1517A7BDB3895, %1902
  %1904 = fneg double %1903
  %1905 = call double @llvm.fmuladd.f64(double 0x3FD4E7AE9144F0FC, double %1895, double %1904)
  store double %1905, ptr %23, align 8, !tbaa !11
  %1906 = load ptr, ptr %4, align 8, !tbaa !9
  %1907 = load i32, ptr %5, align 4, !tbaa !5
  %1908 = sext i32 %1907 to i64
  %1909 = getelementptr inbounds ptr, ptr %1906, i64 %1908
  %1910 = load ptr, ptr %1909, align 8, !tbaa !9
  %1911 = getelementptr inbounds double, ptr %1910, i64 0
  %1912 = load double, ptr %1911, align 8, !tbaa !11
  %1913 = load ptr, ptr %4, align 8, !tbaa !9
  %1914 = load i32, ptr %5, align 4, !tbaa !5
  %1915 = sext i32 %1914 to i64
  %1916 = getelementptr inbounds ptr, ptr %1913, i64 %1915
  %1917 = load ptr, ptr %1916, align 8, !tbaa !9
  %1918 = getelementptr inbounds double, ptr %1917, i64 8
  %1919 = load double, ptr %1918, align 8, !tbaa !11
  %1920 = fadd double %1912, %1919
  %1921 = fmul double 2.500000e-01, %1920
  store double %1921, ptr %10, align 8, !tbaa !11
  %1922 = load ptr, ptr %4, align 8, !tbaa !9
  %1923 = load i32, ptr %5, align 4, !tbaa !5
  %1924 = sext i32 %1923 to i64
  %1925 = getelementptr inbounds ptr, ptr %1922, i64 %1924
  %1926 = load ptr, ptr %1925, align 8, !tbaa !9
  %1927 = getelementptr inbounds double, ptr %1926, i64 0
  %1928 = load double, ptr %1927, align 8, !tbaa !11
  %1929 = load ptr, ptr %4, align 8, !tbaa !9
  %1930 = load i32, ptr %5, align 4, !tbaa !5
  %1931 = sext i32 %1930 to i64
  %1932 = getelementptr inbounds ptr, ptr %1929, i64 %1931
  %1933 = load ptr, ptr %1932, align 8, !tbaa !9
  %1934 = getelementptr inbounds double, ptr %1933, i64 8
  %1935 = load double, ptr %1934, align 8, !tbaa !11
  %1936 = fsub double %1928, %1935
  %1937 = fmul double 2.500000e-01, %1936
  store double %1937, ptr %12, align 8, !tbaa !11
  %1938 = load double, ptr %10, align 8, !tbaa !11
  %1939 = load double, ptr %22, align 8, !tbaa !11
  %1940 = fadd double %1938, %1939
  store double %1940, ptr %6, align 8, !tbaa !11
  %1941 = load double, ptr %12, align 8, !tbaa !11
  %1942 = load double, ptr %23, align 8, !tbaa !11
  %1943 = fadd double %1941, %1942
  store double %1943, ptr %8, align 8, !tbaa !11
  %1944 = load double, ptr %22, align 8, !tbaa !11
  %1945 = load double, ptr %10, align 8, !tbaa !11
  %1946 = fsub double %1945, %1944
  store double %1946, ptr %10, align 8, !tbaa !11
  %1947 = load double, ptr %23, align 8, !tbaa !11
  %1948 = load double, ptr %12, align 8, !tbaa !11
  %1949 = fsub double %1948, %1947
  store double %1949, ptr %12, align 8, !tbaa !11
  %1950 = load ptr, ptr %4, align 8, !tbaa !9
  %1951 = load i32, ptr %5, align 4, !tbaa !5
  %1952 = sext i32 %1951 to i64
  %1953 = getelementptr inbounds ptr, ptr %1950, i64 %1952
  %1954 = load ptr, ptr %1953, align 8, !tbaa !9
  %1955 = getelementptr inbounds double, ptr %1954, i64 2
  %1956 = load double, ptr %1955, align 8, !tbaa !11
  %1957 = load ptr, ptr %4, align 8, !tbaa !9
  %1958 = load i32, ptr %5, align 4, !tbaa !5
  %1959 = sext i32 %1958 to i64
  %1960 = getelementptr inbounds ptr, ptr %1957, i64 %1959
  %1961 = load ptr, ptr %1960, align 8, !tbaa !9
  %1962 = getelementptr inbounds double, ptr %1961, i64 14
  %1963 = load double, ptr %1962, align 8, !tbaa !11
  %1964 = fmul double 0x3FB1A855DEC071B5, %1963
  %1965 = call double @llvm.fmuladd.f64(double 0x3FD63150B15E8536, double %1956, double %1964)
  store double %1965, ptr %7, align 8, !tbaa !11
  %1966 = load ptr, ptr %4, align 8, !tbaa !9
  %1967 = load i32, ptr %5, align 4, !tbaa !5
  %1968 = sext i32 %1967 to i64
  %1969 = getelementptr inbounds ptr, ptr %1966, i64 %1968
  %1970 = load ptr, ptr %1969, align 8, !tbaa !9
  %1971 = getelementptr inbounds double, ptr %1970, i64 14
  %1972 = load double, ptr %1971, align 8, !tbaa !11
  %1973 = load ptr, ptr %4, align 8, !tbaa !9
  %1974 = load i32, ptr %5, align 4, !tbaa !5
  %1975 = sext i32 %1974 to i64
  %1976 = getelementptr inbounds ptr, ptr %1973, i64 %1975
  %1977 = load ptr, ptr %1976, align 8, !tbaa !9
  %1978 = getelementptr inbounds double, ptr %1977, i64 2
  %1979 = load double, ptr %1978, align 8, !tbaa !11
  %1980 = fmul double 0x3FB1A855DEC071B5, %1979
  %1981 = fneg double %1980
  %1982 = call double @llvm.fmuladd.f64(double 0x3FD63150B15E8536, double %1972, double %1981)
  store double %1982, ptr %11, align 8, !tbaa !11
  %1983 = load ptr, ptr %4, align 8, !tbaa !9
  %1984 = load i32, ptr %5, align 4, !tbaa !5
  %1985 = sext i32 %1984 to i64
  %1986 = getelementptr inbounds ptr, ptr %1983, i64 %1985
  %1987 = load ptr, ptr %1986, align 8, !tbaa !9
  %1988 = getelementptr inbounds double, ptr %1987, i64 6
  %1989 = load double, ptr %1988, align 8, !tbaa !11
  %1990 = load ptr, ptr %4, align 8, !tbaa !9
  %1991 = load i32, ptr %5, align 4, !tbaa !5
  %1992 = sext i32 %1991 to i64
  %1993 = getelementptr inbounds ptr, ptr %1990, i64 %1992
  %1994 = load ptr, ptr %1993, align 8, !tbaa !9
  %1995 = getelementptr inbounds double, ptr %1994, i64 10
  %1996 = load double, ptr %1995, align 8, !tbaa !11
  %1997 = fmul double 0x3FC92469C0DCF32D, %1996
  %1998 = call double @llvm.fmuladd.f64(double 0x3FD2D062EF88E319, double %1989, double %1997)
  store double %1998, ptr %9, align 8, !tbaa !11
  %1999 = load ptr, ptr %4, align 8, !tbaa !9
  %2000 = load i32, ptr %5, align 4, !tbaa !5
  %2001 = sext i32 %2000 to i64
  %2002 = getelementptr inbounds ptr, ptr %1999, i64 %2001
  %2003 = load ptr, ptr %2002, align 8, !tbaa !9
  %2004 = getelementptr inbounds double, ptr %2003, i64 10
  %2005 = load double, ptr %2004, align 8, !tbaa !11
  %2006 = load ptr, ptr %4, align 8, !tbaa !9
  %2007 = load i32, ptr %5, align 4, !tbaa !5
  %2008 = sext i32 %2007 to i64
  %2009 = getelementptr inbounds ptr, ptr %2006, i64 %2008
  %2010 = load ptr, ptr %2009, align 8, !tbaa !9
  %2011 = getelementptr inbounds double, ptr %2010, i64 6
  %2012 = load double, ptr %2011, align 8, !tbaa !11
  %2013 = fmul double 0x3FC92469C0DCF32D, %2012
  %2014 = fneg double %2013
  %2015 = call double @llvm.fmuladd.f64(double 0x3FD2D062EF88E319, double %2005, double %2014)
  store double %2015, ptr %13, align 8, !tbaa !11
  %2016 = load double, ptr %7, align 8, !tbaa !11
  %2017 = load double, ptr %9, align 8, !tbaa !11
  %2018 = fsub double %2016, %2017
  store double %2018, ptr %22, align 8, !tbaa !11
  %2019 = load double, ptr %11, align 8, !tbaa !11
  %2020 = load double, ptr %13, align 8, !tbaa !11
  %2021 = fadd double %2019, %2020
  store double %2021, ptr %23, align 8, !tbaa !11
  %2022 = load double, ptr %9, align 8, !tbaa !11
  %2023 = load double, ptr %7, align 8, !tbaa !11
  %2024 = fadd double %2023, %2022
  store double %2024, ptr %7, align 8, !tbaa !11
  %2025 = load double, ptr %13, align 8, !tbaa !11
  %2026 = load double, ptr %11, align 8, !tbaa !11
  %2027 = fsub double %2026, %2025
  store double %2027, ptr %11, align 8, !tbaa !11
  %2028 = load double, ptr %23, align 8, !tbaa !11
  %2029 = load double, ptr %22, align 8, !tbaa !11
  %2030 = fadd double %2028, %2029
  %2031 = fmul double 0x3FE6A09E667F3BCD, %2030
  store double %2031, ptr %9, align 8, !tbaa !11
  %2032 = load double, ptr %23, align 8, !tbaa !11
  %2033 = load double, ptr %22, align 8, !tbaa !11
  %2034 = fsub double %2032, %2033
  %2035 = fmul double 0x3FE6A09E667F3BCD, %2034
  store double %2035, ptr %13, align 8, !tbaa !11
  %2036 = load double, ptr %6, align 8, !tbaa !11
  %2037 = load double, ptr %7, align 8, !tbaa !11
  %2038 = fadd double %2036, %2037
  store double %2038, ptr %22, align 8, !tbaa !11
  %2039 = load double, ptr %6, align 8, !tbaa !11
  %2040 = load double, ptr %7, align 8, !tbaa !11
  %2041 = fsub double %2039, %2040
  store double %2041, ptr %23, align 8, !tbaa !11
  %2042 = load double, ptr %22, align 8, !tbaa !11
  %2043 = load double, ptr %14, align 8, !tbaa !11
  %2044 = fadd double %2042, %2043
  %2045 = load ptr, ptr %4, align 8, !tbaa !9
  %2046 = load i32, ptr %5, align 4, !tbaa !5
  %2047 = sext i32 %2046 to i64
  %2048 = getelementptr inbounds ptr, ptr %2045, i64 %2047
  %2049 = load ptr, ptr %2048, align 8, !tbaa !9
  %2050 = getelementptr inbounds double, ptr %2049, i64 0
  store double %2044, ptr %2050, align 8, !tbaa !11
  %2051 = load double, ptr %22, align 8, !tbaa !11
  %2052 = load double, ptr %14, align 8, !tbaa !11
  %2053 = fsub double %2051, %2052
  %2054 = load ptr, ptr %4, align 8, !tbaa !9
  %2055 = load i32, ptr %5, align 4, !tbaa !5
  %2056 = sext i32 %2055 to i64
  %2057 = getelementptr inbounds ptr, ptr %2054, i64 %2056
  %2058 = load ptr, ptr %2057, align 8, !tbaa !9
  %2059 = getelementptr inbounds double, ptr %2058, i64 15
  store double %2053, ptr %2059, align 8, !tbaa !11
  %2060 = load double, ptr %23, align 8, !tbaa !11
  %2061 = load double, ptr %15, align 8, !tbaa !11
  %2062 = fadd double %2060, %2061
  %2063 = load ptr, ptr %4, align 8, !tbaa !9
  %2064 = load i32, ptr %5, align 4, !tbaa !5
  %2065 = sext i32 %2064 to i64
  %2066 = getelementptr inbounds ptr, ptr %2063, i64 %2065
  %2067 = load ptr, ptr %2066, align 8, !tbaa !9
  %2068 = getelementptr inbounds double, ptr %2067, i64 8
  store double %2062, ptr %2068, align 8, !tbaa !11
  %2069 = load double, ptr %23, align 8, !tbaa !11
  %2070 = load double, ptr %15, align 8, !tbaa !11
  %2071 = fsub double %2069, %2070
  %2072 = load ptr, ptr %4, align 8, !tbaa !9
  %2073 = load i32, ptr %5, align 4, !tbaa !5
  %2074 = sext i32 %2073 to i64
  %2075 = getelementptr inbounds ptr, ptr %2072, i64 %2074
  %2076 = load ptr, ptr %2075, align 8, !tbaa !9
  %2077 = getelementptr inbounds double, ptr %2076, i64 7
  store double %2071, ptr %2077, align 8, !tbaa !11
  %2078 = load double, ptr %8, align 8, !tbaa !11
  %2079 = load double, ptr %9, align 8, !tbaa !11
  %2080 = fadd double %2078, %2079
  store double %2080, ptr %22, align 8, !tbaa !11
  %2081 = load double, ptr %8, align 8, !tbaa !11
  %2082 = load double, ptr %9, align 8, !tbaa !11
  %2083 = fsub double %2081, %2082
  store double %2083, ptr %23, align 8, !tbaa !11
  %2084 = load double, ptr %22, align 8, !tbaa !11
  %2085 = load double, ptr %16, align 8, !tbaa !11
  %2086 = fadd double %2084, %2085
  %2087 = load ptr, ptr %4, align 8, !tbaa !9
  %2088 = load i32, ptr %5, align 4, !tbaa !5
  %2089 = sext i32 %2088 to i64
  %2090 = getelementptr inbounds ptr, ptr %2087, i64 %2089
  %2091 = load ptr, ptr %2090, align 8, !tbaa !9
  %2092 = getelementptr inbounds double, ptr %2091, i64 2
  store double %2086, ptr %2092, align 8, !tbaa !11
  %2093 = load double, ptr %22, align 8, !tbaa !11
  %2094 = load double, ptr %16, align 8, !tbaa !11
  %2095 = fsub double %2093, %2094
  %2096 = load ptr, ptr %4, align 8, !tbaa !9
  %2097 = load i32, ptr %5, align 4, !tbaa !5
  %2098 = sext i32 %2097 to i64
  %2099 = getelementptr inbounds ptr, ptr %2096, i64 %2098
  %2100 = load ptr, ptr %2099, align 8, !tbaa !9
  %2101 = getelementptr inbounds double, ptr %2100, i64 13
  store double %2095, ptr %2101, align 8, !tbaa !11
  %2102 = load double, ptr %23, align 8, !tbaa !11
  %2103 = load double, ptr %17, align 8, !tbaa !11
  %2104 = fadd double %2102, %2103
  %2105 = load ptr, ptr %4, align 8, !tbaa !9
  %2106 = load i32, ptr %5, align 4, !tbaa !5
  %2107 = sext i32 %2106 to i64
  %2108 = getelementptr inbounds ptr, ptr %2105, i64 %2107
  %2109 = load ptr, ptr %2108, align 8, !tbaa !9
  %2110 = getelementptr inbounds double, ptr %2109, i64 10
  store double %2104, ptr %2110, align 8, !tbaa !11
  %2111 = load double, ptr %23, align 8, !tbaa !11
  %2112 = load double, ptr %17, align 8, !tbaa !11
  %2113 = fsub double %2111, %2112
  %2114 = load ptr, ptr %4, align 8, !tbaa !9
  %2115 = load i32, ptr %5, align 4, !tbaa !5
  %2116 = sext i32 %2115 to i64
  %2117 = getelementptr inbounds ptr, ptr %2114, i64 %2116
  %2118 = load ptr, ptr %2117, align 8, !tbaa !9
  %2119 = getelementptr inbounds double, ptr %2118, i64 5
  store double %2113, ptr %2119, align 8, !tbaa !11
  %2120 = load double, ptr %10, align 8, !tbaa !11
  %2121 = load double, ptr %11, align 8, !tbaa !11
  %2122 = fadd double %2120, %2121
  store double %2122, ptr %22, align 8, !tbaa !11
  %2123 = load double, ptr %10, align 8, !tbaa !11
  %2124 = load double, ptr %11, align 8, !tbaa !11
  %2125 = fsub double %2123, %2124
  store double %2125, ptr %23, align 8, !tbaa !11
  %2126 = load double, ptr %22, align 8, !tbaa !11
  %2127 = load double, ptr %18, align 8, !tbaa !11
  %2128 = fadd double %2126, %2127
  %2129 = load ptr, ptr %4, align 8, !tbaa !9
  %2130 = load i32, ptr %5, align 4, !tbaa !5
  %2131 = sext i32 %2130 to i64
  %2132 = getelementptr inbounds ptr, ptr %2129, i64 %2131
  %2133 = load ptr, ptr %2132, align 8, !tbaa !9
  %2134 = getelementptr inbounds double, ptr %2133, i64 4
  store double %2128, ptr %2134, align 8, !tbaa !11
  %2135 = load double, ptr %22, align 8, !tbaa !11
  %2136 = load double, ptr %18, align 8, !tbaa !11
  %2137 = fsub double %2135, %2136
  %2138 = load ptr, ptr %4, align 8, !tbaa !9
  %2139 = load i32, ptr %5, align 4, !tbaa !5
  %2140 = sext i32 %2139 to i64
  %2141 = getelementptr inbounds ptr, ptr %2138, i64 %2140
  %2142 = load ptr, ptr %2141, align 8, !tbaa !9
  %2143 = getelementptr inbounds double, ptr %2142, i64 11
  store double %2137, ptr %2143, align 8, !tbaa !11
  %2144 = load double, ptr %23, align 8, !tbaa !11
  %2145 = load double, ptr %19, align 8, !tbaa !11
  %2146 = fadd double %2144, %2145
  %2147 = load ptr, ptr %4, align 8, !tbaa !9
  %2148 = load i32, ptr %5, align 4, !tbaa !5
  %2149 = sext i32 %2148 to i64
  %2150 = getelementptr inbounds ptr, ptr %2147, i64 %2149
  %2151 = load ptr, ptr %2150, align 8, !tbaa !9
  %2152 = getelementptr inbounds double, ptr %2151, i64 12
  store double %2146, ptr %2152, align 8, !tbaa !11
  %2153 = load double, ptr %23, align 8, !tbaa !11
  %2154 = load double, ptr %19, align 8, !tbaa !11
  %2155 = fsub double %2153, %2154
  %2156 = load ptr, ptr %4, align 8, !tbaa !9
  %2157 = load i32, ptr %5, align 4, !tbaa !5
  %2158 = sext i32 %2157 to i64
  %2159 = getelementptr inbounds ptr, ptr %2156, i64 %2158
  %2160 = load ptr, ptr %2159, align 8, !tbaa !9
  %2161 = getelementptr inbounds double, ptr %2160, i64 3
  store double %2155, ptr %2161, align 8, !tbaa !11
  %2162 = load double, ptr %12, align 8, !tbaa !11
  %2163 = load double, ptr %13, align 8, !tbaa !11
  %2164 = fadd double %2162, %2163
  store double %2164, ptr %22, align 8, !tbaa !11
  %2165 = load double, ptr %12, align 8, !tbaa !11
  %2166 = load double, ptr %13, align 8, !tbaa !11
  %2167 = fsub double %2165, %2166
  store double %2167, ptr %23, align 8, !tbaa !11
  %2168 = load double, ptr %22, align 8, !tbaa !11
  %2169 = load double, ptr %20, align 8, !tbaa !11
  %2170 = fadd double %2168, %2169
  %2171 = load ptr, ptr %4, align 8, !tbaa !9
  %2172 = load i32, ptr %5, align 4, !tbaa !5
  %2173 = sext i32 %2172 to i64
  %2174 = getelementptr inbounds ptr, ptr %2171, i64 %2173
  %2175 = load ptr, ptr %2174, align 8, !tbaa !9
  %2176 = getelementptr inbounds double, ptr %2175, i64 6
  store double %2170, ptr %2176, align 8, !tbaa !11
  %2177 = load double, ptr %22, align 8, !tbaa !11
  %2178 = load double, ptr %20, align 8, !tbaa !11
  %2179 = fsub double %2177, %2178
  %2180 = load ptr, ptr %4, align 8, !tbaa !9
  %2181 = load i32, ptr %5, align 4, !tbaa !5
  %2182 = sext i32 %2181 to i64
  %2183 = getelementptr inbounds ptr, ptr %2180, i64 %2182
  %2184 = load ptr, ptr %2183, align 8, !tbaa !9
  %2185 = getelementptr inbounds double, ptr %2184, i64 9
  store double %2179, ptr %2185, align 8, !tbaa !11
  %2186 = load double, ptr %23, align 8, !tbaa !11
  %2187 = load double, ptr %21, align 8, !tbaa !11
  %2188 = fadd double %2186, %2187
  %2189 = load ptr, ptr %4, align 8, !tbaa !9
  %2190 = load i32, ptr %5, align 4, !tbaa !5
  %2191 = sext i32 %2190 to i64
  %2192 = getelementptr inbounds ptr, ptr %2189, i64 %2191
  %2193 = load ptr, ptr %2192, align 8, !tbaa !9
  %2194 = getelementptr inbounds double, ptr %2193, i64 14
  store double %2188, ptr %2194, align 8, !tbaa !11
  %2195 = load double, ptr %23, align 8, !tbaa !11
  %2196 = load double, ptr %21, align 8, !tbaa !11
  %2197 = fsub double %2195, %2196
  %2198 = load ptr, ptr %4, align 8, !tbaa !9
  %2199 = load i32, ptr %5, align 4, !tbaa !5
  %2200 = sext i32 %2199 to i64
  %2201 = getelementptr inbounds ptr, ptr %2198, i64 %2200
  %2202 = load ptr, ptr %2201, align 8, !tbaa !9
  %2203 = getelementptr inbounds double, ptr %2202, i64 1
  store double %2197, ptr %2203, align 8, !tbaa !11
  br label %2204

2204:                                             ; preds = %1666
  %2205 = load i32, ptr %5, align 4, !tbaa !5
  %2206 = add nsw i32 %2205, 1
  store i32 %2206, ptr %5, align 4, !tbaa !5
  br label %1663, !llvm.loop !17

2207:                                             ; preds = %1663
  br label %2208

2208:                                             ; preds = %2207, %1116
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #3
  ret void
}

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

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

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

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

; Function Attrs: nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable
define dso_local void @ddct16x16s(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #1 {
  %3 = icmp slt i32 %0, 0
  br i1 %3, label %.preheader840, label %.preheader843

.preheader843:                                    ; preds = %2
  %4 = getelementptr inbounds i8, ptr %1, i64 8
  %5 = load ptr, ptr %4, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %1, i64 120
  %7 = load ptr, ptr %6, align 8, !tbaa !5
  %8 = getelementptr inbounds i8, ptr %1, i64 56
  %9 = load ptr, ptr %8, align 8, !tbaa !5
  %10 = getelementptr inbounds i8, ptr %1, i64 72
  %11 = load ptr, ptr %10, align 8, !tbaa !5
  %12 = getelementptr inbounds i8, ptr %1, i64 40
  %13 = load ptr, ptr %12, align 8, !tbaa !5
  %14 = getelementptr inbounds i8, ptr %1, i64 88
  %15 = load ptr, ptr %14, align 8, !tbaa !5
  %16 = getelementptr inbounds i8, ptr %1, i64 24
  %17 = load ptr, ptr %16, align 8, !tbaa !5
  %18 = getelementptr inbounds i8, ptr %1, i64 104
  %19 = load ptr, ptr %18, align 8, !tbaa !5
  %20 = getelementptr inbounds i8, ptr %1, i64 32
  %21 = load ptr, ptr %20, align 8, !tbaa !5
  %22 = getelementptr inbounds i8, ptr %1, i64 96
  %23 = load ptr, ptr %22, align 8, !tbaa !5
  %24 = load ptr, ptr %1, align 8, !tbaa !5
  %25 = getelementptr inbounds i8, ptr %1, i64 64
  %26 = load ptr, ptr %25, align 8, !tbaa !5
  %27 = getelementptr inbounds i8, ptr %1, i64 16
  %28 = load ptr, ptr %27, align 8, !tbaa !5
  %29 = getelementptr inbounds i8, ptr %1, i64 112
  %30 = load ptr, ptr %29, align 8, !tbaa !5
  %31 = getelementptr inbounds i8, ptr %1, i64 48
  %32 = load ptr, ptr %31, align 8, !tbaa !5
  %33 = getelementptr inbounds i8, ptr %1, i64 80
  %34 = load ptr, ptr %33, align 8, !tbaa !5
  br label %330

.preheader840:                                    ; preds = %2
  %35 = load ptr, ptr %1, align 8, !tbaa !5
  %36 = getelementptr inbounds i8, ptr %1, i64 120
  %37 = load ptr, ptr %36, align 8, !tbaa !5
  %38 = getelementptr inbounds i8, ptr %1, i64 64
  %39 = load ptr, ptr %38, align 8, !tbaa !5
  %40 = getelementptr inbounds i8, ptr %1, i64 56
  %41 = load ptr, ptr %40, align 8, !tbaa !5
  %42 = getelementptr inbounds i8, ptr %1, i64 16
  %43 = load ptr, ptr %42, align 8, !tbaa !5
  %44 = getelementptr inbounds i8, ptr %1, i64 104
  %45 = load ptr, ptr %44, align 8, !tbaa !5
  %46 = getelementptr inbounds i8, ptr %1, i64 80
  %47 = load ptr, ptr %46, align 8, !tbaa !5
  %48 = getelementptr inbounds i8, ptr %1, i64 40
  %49 = load ptr, ptr %48, align 8, !tbaa !5
  %50 = getelementptr inbounds i8, ptr %1, i64 32
  %51 = load ptr, ptr %50, align 8, !tbaa !5
  %52 = getelementptr inbounds i8, ptr %1, i64 88
  %53 = load ptr, ptr %52, align 8, !tbaa !5
  %54 = getelementptr inbounds i8, ptr %1, i64 96
  %55 = load ptr, ptr %54, align 8, !tbaa !5
  %56 = getelementptr inbounds i8, ptr %1, i64 24
  %57 = load ptr, ptr %56, align 8, !tbaa !5
  %58 = getelementptr inbounds i8, ptr %1, i64 48
  %59 = load ptr, ptr %58, align 8, !tbaa !5
  %60 = getelementptr inbounds i8, ptr %1, i64 72
  %61 = load ptr, ptr %60, align 8, !tbaa !5
  %62 = getelementptr inbounds i8, ptr %1, i64 112
  %63 = load ptr, ptr %62, align 8, !tbaa !5
  %64 = getelementptr inbounds i8, ptr %1, i64 8
  %65 = load ptr, ptr %64, align 8, !tbaa !5
  br label %66

66:                                               ; preds = %.preheader840, %66
  %indvars.iv854 = phi i64 [ 0, %.preheader840 ], [ %indvars.iv.next855, %66 ]
  %67 = getelementptr inbounds double, ptr %35, i64 %indvars.iv854
  %68 = load double, ptr %67, align 8, !tbaa !9
  %69 = getelementptr inbounds double, ptr %37, i64 %indvars.iv854
  %70 = load double, ptr %69, align 8, !tbaa !9
  %71 = fsub double %68, %70
  %72 = fadd double %68, %70
  %73 = getelementptr inbounds double, ptr %39, i64 %indvars.iv854
  %74 = load double, ptr %73, align 8, !tbaa !9
  %75 = getelementptr inbounds double, ptr %41, i64 %indvars.iv854
  %76 = load double, ptr %75, align 8, !tbaa !9
  %77 = fsub double %74, %76
  %78 = fadd double %74, %76
  %79 = fadd double %72, %78
  %80 = fsub double %72, %78
  %81 = getelementptr inbounds double, ptr %43, i64 %indvars.iv854
  %82 = load double, ptr %81, align 8, !tbaa !9
  %83 = getelementptr inbounds double, ptr %45, i64 %indvars.iv854
  %84 = load double, ptr %83, align 8, !tbaa !9
  %85 = fadd double %82, %84
  %86 = getelementptr inbounds double, ptr %47, i64 %indvars.iv854
  %87 = load double, ptr %86, align 8, !tbaa !9
  %88 = getelementptr inbounds double, ptr %49, i64 %indvars.iv854
  %89 = load double, ptr %88, align 8, !tbaa !9
  %90 = fadd double %87, %89
  %91 = fadd double %85, %90
  %92 = fsub double %85, %90
  %93 = getelementptr inbounds double, ptr %51, i64 %indvars.iv854
  %94 = load double, ptr %93, align 8, !tbaa !9
  %95 = getelementptr inbounds double, ptr %53, i64 %indvars.iv854
  %96 = load double, ptr %95, align 8, !tbaa !9
  %97 = fsub double %94, %96
  %98 = fadd double %94, %96
  %99 = getelementptr inbounds double, ptr %55, i64 %indvars.iv854
  %100 = load double, ptr %99, align 8, !tbaa !9
  %101 = getelementptr inbounds double, ptr %57, i64 %indvars.iv854
  %102 = load double, ptr %101, align 8, !tbaa !9
  %103 = fsub double %100, %102
  %104 = fadd double %100, %102
  %105 = fadd double %98, %104
  %106 = fsub double %98, %104
  %107 = getelementptr inbounds double, ptr %59, i64 %indvars.iv854
  %108 = load double, ptr %107, align 8, !tbaa !9
  %109 = getelementptr inbounds double, ptr %61, i64 %indvars.iv854
  %110 = load double, ptr %109, align 8, !tbaa !9
  %111 = fadd double %108, %110
  %112 = getelementptr inbounds double, ptr %63, i64 %indvars.iv854
  %113 = load double, ptr %112, align 8, !tbaa !9
  %114 = getelementptr inbounds double, ptr %65, i64 %indvars.iv854
  %115 = load double, ptr %114, align 8, !tbaa !9
  %116 = fadd double %113, %115
  %117 = fadd double %111, %116
  %118 = fsub double %111, %116
  %119 = fadd double %79, %105
  %120 = fadd double %91, %117
  %121 = fadd double %119, %120
  %122 = fmul double %121, 2.500000e-01
  store double %122, ptr %67, align 8, !tbaa !9
  %123 = fsub double %119, %120
  %124 = fmul double %123, 2.500000e-01
  store double %124, ptr %73, align 8, !tbaa !9
  %125 = fsub double %79, %105
  %126 = fsub double %91, %117
  %127 = fmul double %126, 0xBFC1517A7BDB3895
  %128 = tail call double @llvm.fmuladd.f64(double %125, double 0x3FD4E7AE9144F0FC, double %127)
  store double %128, ptr %93, align 8, !tbaa !9
  %129 = fmul double %125, 0x3FC1517A7BDB3895
  %130 = tail call double @llvm.fmuladd.f64(double %126, double 0x3FD4E7AE9144F0FC, double %129)
  store double %130, ptr %99, align 8, !tbaa !9
  %131 = fsub double %92, %118
  %132 = fmul double %131, 0x3FE6A09E667F3BCD
  %133 = fadd double %92, %118
  %134 = fmul double %133, 0x3FE6A09E667F3BCD
  %135 = fadd double %80, %132
  %136 = fadd double %106, %134
  %137 = fmul double %136, 0xBFB1A855DEC071B5
  %138 = tail call double @llvm.fmuladd.f64(double %135, double 0x3FD63150B15E8536, double %137)
  store double %138, ptr %81, align 8, !tbaa !9
  %139 = fmul double %135, 0x3FB1A855DEC071B5
  %140 = tail call double @llvm.fmuladd.f64(double %136, double 0x3FD63150B15E8536, double %139)
  store double %140, ptr %112, align 8, !tbaa !9
  %141 = fsub double %80, %132
  %142 = fsub double %134, %106
  %143 = fmul double %142, 0xBFC92469C0DCF32D
  %144 = tail call double @llvm.fmuladd.f64(double %141, double 0x3FD2D062EF88E319, double %143)
  store double %144, ptr %107, align 8, !tbaa !9
  %145 = fmul double %141, 0x3FC92469C0DCF32D
  %146 = tail call double @llvm.fmuladd.f64(double %142, double 0x3FD2D062EF88E319, double %145)
  store double %146, ptr %86, align 8, !tbaa !9
  %147 = fsub double %97, %103
  %148 = fmul double %147, 0x3FE6A09E667F3BCD
  %149 = fadd double %97, %103
  %150 = fmul double %149, 0x3FE6A09E667F3BCD
  %151 = fsub double %71, %148
  %152 = fsub double %77, %150
  %153 = fadd double %71, %148
  %154 = fadd double %77, %150
  %155 = insertelement <2 x double> poison, double %82, i64 0
  %156 = insertelement <2 x double> %155, double %108, i64 1
  %157 = insertelement <2 x double> poison, double %84, i64 0
  %158 = insertelement <2 x double> %157, double %110, i64 1
  %159 = fsub <2 x double> %156, %158
  %160 = insertelement <2 x double> poison, double %87, i64 0
  %161 = insertelement <2 x double> %160, double %113, i64 1
  %162 = insertelement <2 x double> poison, double %89, i64 0
  %163 = insertelement <2 x double> %162, double %115, i64 1
  %164 = fsub <2 x double> %161, %163
  %165 = fmul <2 x double> %164, <double 0xBFD87DE2A6AEA963, double 0xBFED906BCF328D46>
  %166 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %159, <2 x double> <double 0x3FED906BCF328D46, double 0x3FD87DE2A6AEA963>, <2 x double> %165)
  %167 = fmul <2 x double> %159, <double 0x3FD87DE2A6AEA963, double 0x3FED906BCF328D46>
  %168 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %164, <2 x double> <double 0x3FED906BCF328D46, double 0x3FD87DE2A6AEA963>, <2 x double> %167)
  %169 = extractelement <2 x double> %166, i64 0
  %170 = extractelement <2 x double> %166, i64 1
  %171 = fadd double %169, %170
  %172 = extractelement <2 x double> %168, i64 0
  %173 = extractelement <2 x double> %168, i64 1
  %174 = fadd double %172, %173
  %175 = fsub double %169, %170
  %176 = fsub double %172, %173
  %177 = fadd double %153, %171
  %178 = fadd double %154, %174
  %179 = fmul double %178, 0xBFA1BE35182FE5AA
  %180 = tail call double @llvm.fmuladd.f64(double %177, double 0x3FD684B9C80F1A8B, double %179)
  store double %180, ptr %114, align 8, !tbaa !9
  %181 = fmul double %177, 0x3FA1BE35182FE5AA
  %182 = tail call double @llvm.fmuladd.f64(double %178, double 0x3FD684B9C80F1A8B, double %181)
  store double %182, ptr %69, align 8, !tbaa !9
  %183 = fsub double %153, %171
  %184 = fsub double %174, %154
  %185 = fmul double %184, 0xBFCCB598CC4BEEA0
  %186 = tail call double @llvm.fmuladd.f64(double %183, double 0x3FD17DC13DAB2DD6, double %185)
  store double %186, ptr %75, align 8, !tbaa !9
  %187 = fmul double %183, 0x3FCCB598CC4BEEA0
  %188 = tail call double @llvm.fmuladd.f64(double %184, double 0x3FD17DC13DAB2DD6, double %187)
  store double %188, ptr %109, align 8, !tbaa !9
  %189 = fsub double %151, %176
  %190 = fadd double %152, %175
  %191 = fmul double %190, 0xBFC5553E3F5B5E58
  %192 = tail call double @llvm.fmuladd.f64(double %189, double 0x3FD3F4A237187EAF, double %191)
  store double %192, ptr %88, align 8, !tbaa !9
  %193 = fmul double %189, 0x3FC5553E3F5B5E58
  %194 = tail call double @llvm.fmuladd.f64(double %190, double 0x3FD3F4A237187EAF, double %193)
  store double %194, ptr %95, align 8, !tbaa !9
  %195 = fadd double %151, %176
  %196 = fsub double %175, %152
  %197 = fmul double %196, 0xBFBA4608AAFA8527
  %198 = tail call double @llvm.fmuladd.f64(double %195, double 0x3FD5A730C6C21C67, double %197)
  store double %198, ptr %101, align 8, !tbaa !9
  %199 = fmul double %195, 0x3FBA4608AAFA8527
  %200 = tail call double @llvm.fmuladd.f64(double %196, double 0x3FD5A730C6C21C67, double %199)
  store double %200, ptr %83, align 8, !tbaa !9
  %indvars.iv.next855 = add nuw nsw i64 %indvars.iv854, 1
  %exitcond857.not = icmp eq i64 %indvars.iv.next855, 16
  br i1 %exitcond857.not, label %.preheader, label %66, !llvm.loop !11

.preheader:                                       ; preds = %66, %.preheader
  %indvars.iv858 = phi i64 [ %indvars.iv.next859, %.preheader ], [ 0, %66 ]
  %201 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv858
  %202 = load ptr, ptr %201, align 8, !tbaa !5
  %203 = load double, ptr %202, align 8, !tbaa !9
  %204 = getelementptr inbounds i8, ptr %202, i64 120
  %205 = load double, ptr %204, align 8, !tbaa !9
  %206 = fsub double %203, %205
  %207 = fadd double %203, %205
  %208 = getelementptr inbounds i8, ptr %202, i64 64
  %209 = load double, ptr %208, align 8, !tbaa !9
  %210 = getelementptr inbounds i8, ptr %202, i64 56
  %211 = load double, ptr %210, align 8, !tbaa !9
  %212 = fsub double %209, %211
  %213 = fadd double %209, %211
  %214 = fadd double %207, %213
  %215 = fsub double %207, %213
  %216 = getelementptr inbounds i8, ptr %202, i64 16
  %217 = load double, ptr %216, align 8, !tbaa !9
  %218 = getelementptr inbounds i8, ptr %202, i64 104
  %219 = load double, ptr %218, align 8, !tbaa !9
  %220 = fsub double %217, %219
  %221 = fadd double %217, %219
  %222 = getelementptr inbounds i8, ptr %202, i64 80
  %223 = load double, ptr %222, align 8, !tbaa !9
  %224 = getelementptr inbounds i8, ptr %202, i64 40
  %225 = load double, ptr %224, align 8, !tbaa !9
  %226 = fsub double %223, %225
  %227 = fadd double %223, %225
  %228 = fadd double %221, %227
  %229 = fsub double %221, %227
  %230 = getelementptr inbounds i8, ptr %202, i64 32
  %231 = load double, ptr %230, align 8, !tbaa !9
  %232 = getelementptr inbounds i8, ptr %202, i64 88
  %233 = load double, ptr %232, align 8, !tbaa !9
  %234 = fsub double %231, %233
  %235 = fadd double %231, %233
  %236 = getelementptr inbounds i8, ptr %202, i64 96
  %237 = load double, ptr %236, align 8, !tbaa !9
  %238 = getelementptr inbounds i8, ptr %202, i64 24
  %239 = load double, ptr %238, align 8, !tbaa !9
  %240 = fsub double %237, %239
  %241 = fadd double %237, %239
  %242 = fadd double %235, %241
  %243 = fsub double %235, %241
  %244 = getelementptr inbounds i8, ptr %202, i64 48
  %245 = load double, ptr %244, align 8, !tbaa !9
  %246 = getelementptr inbounds i8, ptr %202, i64 72
  %247 = load double, ptr %246, align 8, !tbaa !9
  %248 = fsub double %245, %247
  %249 = fadd double %245, %247
  %250 = getelementptr inbounds i8, ptr %202, i64 112
  %251 = load double, ptr %250, align 8, !tbaa !9
  %252 = getelementptr inbounds i8, ptr %202, i64 8
  %253 = load double, ptr %252, align 8, !tbaa !9
  %254 = fsub double %251, %253
  %255 = fadd double %251, %253
  %256 = fadd double %249, %255
  %257 = fsub double %249, %255
  %258 = fadd double %214, %242
  %259 = fadd double %228, %256
  %260 = fadd double %258, %259
  %261 = fmul double %260, 2.500000e-01
  store double %261, ptr %202, align 8, !tbaa !9
  %262 = fsub double %258, %259
  %263 = fmul double %262, 2.500000e-01
  store double %263, ptr %208, align 8, !tbaa !9
  %264 = fsub double %214, %242
  %265 = fsub double %228, %256
  %266 = fmul double %265, 0xBFC1517A7BDB3895
  %267 = tail call double @llvm.fmuladd.f64(double %264, double 0x3FD4E7AE9144F0FC, double %266)
  store double %267, ptr %230, align 8, !tbaa !9
  %268 = fmul double %264, 0x3FC1517A7BDB3895
  %269 = tail call double @llvm.fmuladd.f64(double %265, double 0x3FD4E7AE9144F0FC, double %268)
  store double %269, ptr %236, align 8, !tbaa !9
  %270 = fsub double %229, %257
  %271 = fmul double %270, 0x3FE6A09E667F3BCD
  %272 = fadd double %229, %257
  %273 = fmul double %272, 0x3FE6A09E667F3BCD
  %274 = fadd double %215, %271
  %275 = fadd double %243, %273
  %276 = fmul double %275, 0xBFB1A855DEC071B5
  %277 = tail call double @llvm.fmuladd.f64(double %274, double 0x3FD63150B15E8536, double %276)
  store double %277, ptr %216, align 8, !tbaa !9
  %278 = fmul double %274, 0x3FB1A855DEC071B5
  %279 = tail call double @llvm.fmuladd.f64(double %275, double 0x3FD63150B15E8536, double %278)
  store double %279, ptr %250, align 8, !tbaa !9
  %280 = fsub double %215, %271
  %281 = fsub double %273, %243
  %282 = fmul double %281, 0xBFC92469C0DCF32D
  %283 = tail call double @llvm.fmuladd.f64(double %280, double 0x3FD2D062EF88E319, double %282)
  store double %283, ptr %244, align 8, !tbaa !9
  %284 = fmul double %280, 0x3FC92469C0DCF32D
  %285 = tail call double @llvm.fmuladd.f64(double %281, double 0x3FD2D062EF88E319, double %284)
  store double %285, ptr %222, align 8, !tbaa !9
  %286 = fsub double %234, %240
  %287 = fmul double %286, 0x3FE6A09E667F3BCD
  %288 = fadd double %234, %240
  %289 = fmul double %288, 0x3FE6A09E667F3BCD
  %290 = fsub double %206, %287
  %291 = fsub double %212, %289
  %292 = fadd double %206, %287
  %293 = fadd double %212, %289
  %294 = fmul double %254, 0xBFED906BCF328D46
  %295 = tail call double @llvm.fmuladd.f64(double %248, double 0x3FD87DE2A6AEA963, double %294)
  %296 = fmul double %248, 0x3FED906BCF328D46
  %297 = tail call double @llvm.fmuladd.f64(double %254, double 0x3FD87DE2A6AEA963, double %296)
  %298 = fmul double %226, 0xBFD87DE2A6AEA963
  %299 = tail call double @llvm.fmuladd.f64(double %220, double 0x3FED906BCF328D46, double %298)
  %300 = fmul double %220, 0x3FD87DE2A6AEA963
  %301 = tail call double @llvm.fmuladd.f64(double %226, double 0x3FED906BCF328D46, double %300)
  %302 = fadd double %299, %295
  %303 = fadd double %301, %297
  %304 = fsub double %299, %295
  %305 = fsub double %301, %297
  %306 = fadd double %292, %302
  %307 = fadd double %293, %303
  %308 = fmul double %307, 0xBFA1BE35182FE5AA
  %309 = tail call double @llvm.fmuladd.f64(double %306, double 0x3FD684B9C80F1A8B, double %308)
  store double %309, ptr %252, align 8, !tbaa !9
  %310 = fmul double %306, 0x3FA1BE35182FE5AA
  %311 = tail call double @llvm.fmuladd.f64(double %307, double 0x3FD684B9C80F1A8B, double %310)
  store double %311, ptr %204, align 8, !tbaa !9
  %312 = fsub double %292, %302
  %313 = fsub double %303, %293
  %314 = fmul double %313, 0xBFCCB598CC4BEEA0
  %315 = tail call double @llvm.fmuladd.f64(double %312, double 0x3FD17DC13DAB2DD6, double %314)
  store double %315, ptr %210, align 8, !tbaa !9
  %316 = fmul double %312, 0x3FCCB598CC4BEEA0
  %317 = tail call double @llvm.fmuladd.f64(double %313, double 0x3FD17DC13DAB2DD6, double %316)
  store double %317, ptr %246, align 8, !tbaa !9
  %318 = fsub double %290, %305
  %319 = fadd double %291, %304
  %320 = fmul double %319, 0xBFC5553E3F5B5E58
  %321 = tail call double @llvm.fmuladd.f64(double %318, double 0x3FD3F4A237187EAF, double %320)
  store double %321, ptr %224, align 8, !tbaa !9
  %322 = fmul double %318, 0x3FC5553E3F5B5E58
  %323 = tail call double @llvm.fmuladd.f64(double %319, double 0x3FD3F4A237187EAF, double %322)
  store double %323, ptr %232, align 8, !tbaa !9
  %324 = fadd double %290, %305
  %325 = fsub double %304, %291
  %326 = fmul double %325, 0xBFBA4608AAFA8527
  %327 = tail call double @llvm.fmuladd.f64(double %324, double 0x3FD5A730C6C21C67, double %326)
  store double %327, ptr %238, align 8, !tbaa !9
  %328 = fmul double %324, 0x3FBA4608AAFA8527
  %329 = tail call double @llvm.fmuladd.f64(double %325, double 0x3FD5A730C6C21C67, double %328)
  store double %329, ptr %218, align 8, !tbaa !9
  %indvars.iv.next859 = add nuw nsw i64 %indvars.iv858, 1
  %exitcond861.not = icmp eq i64 %indvars.iv.next859, 16
  br i1 %exitcond861.not, label %.loopexit, label %.preheader, !llvm.loop !13

330:                                              ; preds = %.preheader843, %330
  %indvars.iv = phi i64 [ 0, %.preheader843 ], [ %indvars.iv.next, %330 ]
  %331 = getelementptr inbounds double, ptr %5, i64 %indvars.iv
  %332 = load double, ptr %331, align 8, !tbaa !9
  %333 = getelementptr inbounds double, ptr %7, i64 %indvars.iv
  %334 = load double, ptr %333, align 8, !tbaa !9
  %335 = getelementptr inbounds double, ptr %9, i64 %indvars.iv
  %336 = load double, ptr %335, align 8, !tbaa !9
  %337 = getelementptr inbounds double, ptr %11, i64 %indvars.iv
  %338 = load double, ptr %337, align 8, !tbaa !9
  %339 = fmul double %338, 0x3FCCB598CC4BEEA0
  %340 = tail call double @llvm.fmuladd.f64(double %336, double 0x3FD17DC13DAB2DD6, double %339)
  %341 = getelementptr inbounds double, ptr %13, i64 %indvars.iv
  %342 = load double, ptr %341, align 8, !tbaa !9
  %343 = getelementptr inbounds double, ptr %15, i64 %indvars.iv
  %344 = load double, ptr %343, align 8, !tbaa !9
  %345 = getelementptr inbounds double, ptr %17, i64 %indvars.iv
  %346 = load double, ptr %345, align 8, !tbaa !9
  %347 = getelementptr inbounds double, ptr %19, i64 %indvars.iv
  %348 = load double, ptr %347, align 8, !tbaa !9
  %349 = insertelement <2 x double> poison, double %332, i64 0
  %350 = insertelement <2 x double> %349, double %342, i64 1
  %351 = fmul <2 x double> %350, <double 0xBFA1BE35182FE5AA, double 0xBFC5553E3F5B5E58>
  %352 = insertelement <2 x double> poison, double %334, i64 0
  %353 = insertelement <2 x double> %352, double %344, i64 1
  %354 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %353, <2 x double> <double 0x3FD684B9C80F1A8B, double 0x3FD3F4A237187EAF>, <2 x double> %351)
  %355 = insertelement <2 x double> poison, double %336, i64 0
  %356 = insertelement <2 x double> %355, double %346, i64 1
  %357 = fmul <2 x double> %356, <double 0xBFCCB598CC4BEEA0, double 0xBFBA4608AAFA8527>
  %358 = insertelement <2 x double> poison, double %338, i64 0
  %359 = insertelement <2 x double> %358, double %348, i64 1
  %360 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %359, <2 x double> <double 0x3FD17DC13DAB2DD6, double 0x3FD5A730C6C21C67>, <2 x double> %357)
  %361 = fadd <2 x double> %354, %360
  %362 = fsub <2 x double> %354, %360
  %363 = fadd <2 x double> %354, %360
  %364 = extractelement <2 x double> %363, i64 1
  %365 = extractelement <2 x double> %362, i64 0
  %366 = extractelement <2 x double> %362, i64 1
  %367 = fsub double %365, %366
  %368 = fadd double %365, %366
  %369 = getelementptr inbounds double, ptr %21, i64 %indvars.iv
  %370 = load double, ptr %369, align 8, !tbaa !9
  %371 = getelementptr inbounds double, ptr %23, i64 %indvars.iv
  %372 = load double, ptr %371, align 8, !tbaa !9
  %373 = fmul double %370, 0xBFC1517A7BDB3895
  %374 = tail call double @llvm.fmuladd.f64(double %372, double 0x3FD4E7AE9144F0FC, double %373)
  %375 = getelementptr inbounds double, ptr %24, i64 %indvars.iv
  %376 = load double, ptr %375, align 8, !tbaa !9
  %377 = getelementptr inbounds double, ptr %26, i64 %indvars.iv
  %378 = load double, ptr %377, align 8, !tbaa !9
  %379 = fadd double %376, %378
  %380 = fmul double %379, 2.500000e-01
  %381 = fsub double %376, %378
  %382 = fmul double %381, 2.500000e-01
  %383 = fadd double %374, %382
  %384 = fsub double %382, %374
  %385 = getelementptr inbounds double, ptr %28, i64 %indvars.iv
  %386 = load double, ptr %385, align 8, !tbaa !9
  %387 = getelementptr inbounds double, ptr %30, i64 %indvars.iv
  %388 = load double, ptr %387, align 8, !tbaa !9
  %389 = getelementptr inbounds double, ptr %32, i64 %indvars.iv
  %390 = load double, ptr %389, align 8, !tbaa !9
  %391 = getelementptr inbounds double, ptr %34, i64 %indvars.iv
  %392 = load double, ptr %391, align 8, !tbaa !9
  %393 = insertelement <2 x double> poison, double %386, i64 0
  %394 = insertelement <2 x double> %393, double %390, i64 1
  %395 = fmul <2 x double> %394, <double 0xBFB1A855DEC071B5, double 0xBFC92469C0DCF32D>
  %396 = insertelement <2 x double> poison, double %388, i64 0
  %397 = insertelement <2 x double> %396, double %392, i64 1
  %398 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %397, <2 x double> <double 0x3FD63150B15E8536, double 0x3FD2D062EF88E319>, <2 x double> %395)
  %399 = extractelement <2 x double> %398, i64 0
  %400 = extractelement <2 x double> %398, i64 1
  %401 = fadd double %399, %400
  %402 = fsub double %399, %400
  %403 = insertelement <2 x double> %352, double %372, i64 1
  %404 = fmul <2 x double> %403, <double 0x3FA1BE35182FE5AA, double 0x3FC1517A7BDB3895>
  %405 = insertelement <2 x double> %349, double %370, i64 1
  %406 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %405, <2 x double> <double 0x3FD684B9C80F1A8B, double 0x3FD4E7AE9144F0FC>, <2 x double> %404)
  %407 = extractelement <2 x double> %406, i64 0
  %408 = fsub double %407, %340
  %409 = insertelement <2 x double> poison, double %344, i64 0
  %410 = insertelement <2 x double> %409, double %388, i64 1
  %411 = fmul <2 x double> %410, <double 0x3FC5553E3F5B5E58, double 0x3FB1A855DEC071B5>
  %412 = insertelement <2 x double> poison, double %342, i64 0
  %413 = insertelement <2 x double> %412, double %386, i64 1
  %414 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %413, <2 x double> <double 0x3FD3F4A237187EAF, double 0x3FD63150B15E8536>, <2 x double> %411)
  %415 = insertelement <2 x double> poison, double %348, i64 0
  %416 = insertelement <2 x double> %415, double %392, i64 1
  %417 = fmul <2 x double> %416, <double 0x3FBA4608AAFA8527, double 0x3FC92469C0DCF32D>
  %418 = insertelement <2 x double> poison, double %346, i64 0
  %419 = insertelement <2 x double> %418, double %390, i64 1
  %420 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %419, <2 x double> <double 0x3FD5A730C6C21C67, double 0x3FD2D062EF88E319>, <2 x double> %417)
  %421 = fsub <2 x double> %414, %420
  %422 = insertelement <2 x double> poison, double %340, i64 0
  %423 = insertelement <2 x double> %422, double %380, i64 1
  %424 = fadd <2 x double> %406, %423
  %425 = fadd <2 x double> %414, %420
  %426 = fsub <2 x double> %424, %425
  %427 = extractelement <2 x double> %426, i64 0
  %428 = fadd double %367, %427
  %429 = fmul double %428, 0x3FE6A09E667F3BCD
  %430 = fsub double %367, %427
  %431 = fmul double %430, 0x3FE6A09E667F3BCD
  %432 = fadd double %408, %364
  %433 = fsub <2 x double> %361, %421
  %434 = extractelement <2 x double> %433, i64 0
  %435 = fsub double %408, %364
  %436 = fadd <2 x double> %361, %421
  %437 = extractelement <2 x double> %436, i64 0
  %438 = fmul double %437, 0x3FED906BCF328D46
  %439 = tail call double @llvm.fmuladd.f64(double %435, double 0x3FD87DE2A6AEA963, double %438)
  %440 = fmul double %435, 0xBFED906BCF328D46
  %441 = tail call double @llvm.fmuladd.f64(double %437, double 0x3FD87DE2A6AEA963, double %440)
  %442 = fmul double %434, 0x3FD87DE2A6AEA963
  %443 = tail call double @llvm.fmuladd.f64(double %432, double 0x3FED906BCF328D46, double %442)
  %444 = fmul double %432, 0xBFD87DE2A6AEA963
  %445 = tail call double @llvm.fmuladd.f64(double %434, double 0x3FED906BCF328D46, double %444)
  %446 = extractelement <2 x double> %406, i64 1
  %447 = fsub double %380, %446
  %448 = fsub <2 x double> %414, %420
  %449 = extractelement <2 x double> %448, i64 1
  %450 = fadd double %401, %449
  %451 = fmul double %450, 0x3FE6A09E667F3BCD
  %452 = fsub double %401, %449
  %453 = fmul double %452, 0x3FE6A09E667F3BCD
  %454 = fadd <2 x double> %424, %425
  %455 = fsub <2 x double> %424, %425
  %456 = extractelement <2 x double> %455, i64 1
  %457 = extractelement <2 x double> %454, i64 0
  %458 = extractelement <2 x double> %454, i64 1
  %459 = fadd double %457, %458
  store double %459, ptr %375, align 8, !tbaa !9
  %460 = fsub double %458, %457
  store double %460, ptr %333, align 8, !tbaa !9
  %461 = fadd double %368, %456
  store double %461, ptr %377, align 8, !tbaa !9
  %462 = fsub double %456, %368
  store double %462, ptr %335, align 8, !tbaa !9
  %463 = fadd double %383, %451
  %464 = fsub double %383, %451
  %465 = fadd double %443, %463
  store double %465, ptr %385, align 8, !tbaa !9
  %466 = fsub double %463, %443
  store double %466, ptr %347, align 8, !tbaa !9
  %467 = fadd double %445, %464
  store double %467, ptr %391, align 8, !tbaa !9
  %468 = fsub double %464, %445
  store double %468, ptr %341, align 8, !tbaa !9
  %469 = fadd double %447, %402
  %470 = fsub double %447, %402
  %471 = fadd double %429, %469
  store double %471, ptr %369, align 8, !tbaa !9
  %472 = fsub double %469, %429
  store double %472, ptr %343, align 8, !tbaa !9
  %473 = fadd double %431, %470
  store double %473, ptr %371, align 8, !tbaa !9
  %474 = fsub double %470, %431
  store double %474, ptr %345, align 8, !tbaa !9
  %475 = fadd double %384, %453
  %476 = fsub double %384, %453
  %477 = fadd double %439, %475
  store double %477, ptr %389, align 8, !tbaa !9
  %478 = fsub double %475, %439
  store double %478, ptr %337, align 8, !tbaa !9
  %479 = fadd double %441, %476
  store double %479, ptr %387, align 8, !tbaa !9
  %480 = fsub double %476, %441
  store double %480, ptr %331, align 8, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 16
  br i1 %exitcond.not, label %.preheader841, label %330, !llvm.loop !14

.preheader841:                                    ; preds = %330, %.preheader841
  %indvars.iv850 = phi i64 [ %indvars.iv.next851, %.preheader841 ], [ 0, %330 ]
  %481 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv850
  %482 = load ptr, ptr %481, align 8, !tbaa !5
  %483 = getelementptr inbounds i8, ptr %482, i64 8
  %484 = load double, ptr %483, align 8, !tbaa !9
  %485 = getelementptr inbounds i8, ptr %482, i64 120
  %486 = load double, ptr %485, align 8, !tbaa !9
  %487 = getelementptr inbounds i8, ptr %482, i64 56
  %488 = load double, ptr %487, align 8, !tbaa !9
  %489 = getelementptr inbounds i8, ptr %482, i64 72
  %490 = load double, ptr %489, align 8, !tbaa !9
  %491 = getelementptr inbounds i8, ptr %482, i64 40
  %492 = load double, ptr %491, align 8, !tbaa !9
  %493 = getelementptr inbounds i8, ptr %482, i64 88
  %494 = load double, ptr %493, align 8, !tbaa !9
  %495 = getelementptr inbounds i8, ptr %482, i64 24
  %496 = load double, ptr %495, align 8, !tbaa !9
  %497 = getelementptr inbounds i8, ptr %482, i64 104
  %498 = load double, ptr %497, align 8, !tbaa !9
  %499 = getelementptr inbounds i8, ptr %482, i64 32
  %500 = load double, ptr %499, align 8, !tbaa !9
  %501 = getelementptr inbounds i8, ptr %482, i64 96
  %502 = load double, ptr %501, align 8, !tbaa !9
  %503 = fmul double %502, 0x3FC1517A7BDB3895
  %504 = tail call double @llvm.fmuladd.f64(double %500, double 0x3FD4E7AE9144F0FC, double %503)
  %505 = fmul double %500, 0xBFC1517A7BDB3895
  %506 = tail call double @llvm.fmuladd.f64(double %502, double 0x3FD4E7AE9144F0FC, double %505)
  %507 = load double, ptr %482, align 8, !tbaa !9
  %508 = getelementptr inbounds i8, ptr %482, i64 64
  %509 = load double, ptr %508, align 8, !tbaa !9
  %510 = fadd double %507, %509
  %511 = fmul double %510, 2.500000e-01
  %512 = fsub double %507, %509
  %513 = fmul double %512, 2.500000e-01
  %514 = fadd double %504, %511
  %515 = fadd double %506, %513
  %516 = fsub double %511, %504
  %517 = fsub double %513, %506
  %518 = getelementptr inbounds i8, ptr %482, i64 16
  %519 = load double, ptr %518, align 8, !tbaa !9
  %520 = getelementptr inbounds i8, ptr %482, i64 112
  %521 = load double, ptr %520, align 8, !tbaa !9
  %522 = getelementptr inbounds i8, ptr %482, i64 48
  %523 = load double, ptr %522, align 8, !tbaa !9
  %524 = getelementptr inbounds i8, ptr %482, i64 80
  %525 = load double, ptr %524, align 8, !tbaa !9
  %526 = insertelement <2 x double> poison, double %521, i64 0
  %527 = insertelement <2 x double> %526, double %525, i64 1
  %528 = fmul <2 x double> %527, <double 0x3FB1A855DEC071B5, double 0x3FC92469C0DCF32D>
  %529 = insertelement <2 x double> poison, double %519, i64 0
  %530 = insertelement <2 x double> %529, double %523, i64 1
  %531 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %530, <2 x double> <double 0x3FD63150B15E8536, double 0x3FD2D062EF88E319>, <2 x double> %528)
  %532 = fmul <2 x double> %530, <double 0xBFB1A855DEC071B5, double 0xBFC92469C0DCF32D>
  %533 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %527, <2 x double> <double 0x3FD63150B15E8536, double 0x3FD2D062EF88E319>, <2 x double> %532)
  %534 = extractelement <2 x double> %531, i64 0
  %535 = extractelement <2 x double> %531, i64 1
  %536 = fsub double %534, %535
  %537 = extractelement <2 x double> %533, i64 0
  %538 = extractelement <2 x double> %533, i64 1
  %539 = fadd double %537, %538
  %540 = fadd double %534, %535
  %541 = fsub double %537, %538
  %542 = fadd double %514, %540
  %543 = fsub double %514, %540
  %544 = fadd double %516, %541
  %545 = fsub double %516, %541
  %546 = insertelement <2 x double> poison, double %494, i64 0
  %547 = insertelement <2 x double> %546, double %486, i64 1
  %548 = fmul <2 x double> %547, <double 0x3FC5553E3F5B5E58, double 0x3FA1BE35182FE5AA>
  %549 = insertelement <2 x double> poison, double %492, i64 0
  %550 = insertelement <2 x double> %549, double %484, i64 1
  %551 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %550, <2 x double> <double 0x3FD3F4A237187EAF, double 0x3FD684B9C80F1A8B>, <2 x double> %548)
  %552 = insertelement <2 x double> poison, double %498, i64 0
  %553 = insertelement <2 x double> %552, double %490, i64 1
  %554 = fmul <2 x double> %553, <double 0x3FBA4608AAFA8527, double 0x3FCCB598CC4BEEA0>
  %555 = insertelement <2 x double> poison, double %496, i64 0
  %556 = insertelement <2 x double> %555, double %488, i64 1
  %557 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %556, <2 x double> <double 0x3FD5A730C6C21C67, double 0x3FD17DC13DAB2DD6>, <2 x double> %554)
  %558 = fadd <2 x double> %551, %557
  %559 = extractelement <2 x double> %558, i64 1
  %560 = fmul <2 x double> %550, <double 0xBFC5553E3F5B5E58, double 0xBFA1BE35182FE5AA>
  %561 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %547, <2 x double> <double 0x3FD3F4A237187EAF, double 0x3FD684B9C80F1A8B>, <2 x double> %560)
  %562 = fmul <2 x double> %556, <double 0xBFBA4608AAFA8527, double 0xBFCCB598CC4BEEA0>
  %563 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %553, <2 x double> <double 0x3FD5A730C6C21C67, double 0x3FD17DC13DAB2DD6>, <2 x double> %562)
  %564 = fsub <2 x double> %561, %563
  %565 = extractelement <2 x double> %564, i64 1
  %566 = fadd <2 x double> %551, %557
  %567 = extractelement <2 x double> %566, i64 0
  %568 = fsub <2 x double> %561, %563
  %569 = extractelement <2 x double> %568, i64 0
  %570 = fsub <2 x double> %551, %557
  %571 = fadd <2 x double> %561, %563
  %572 = shufflevector <2 x double> %571, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  %573 = fsub double %559, %567
  %574 = fsub double %565, %569
  %575 = fadd double %559, %567
  %576 = fadd double %565, %569
  %577 = fadd double %574, %573
  %578 = fmul double %577, 0x3FE6A09E667F3BCD
  %579 = fsub double %574, %573
  %580 = fmul double %579, 0x3FE6A09E667F3BCD
  %581 = shufflevector <2 x double> %570, <2 x double> %571, <2 x i32> <i32 1, i32 3>
  %582 = shufflevector <2 x double> %571, <2 x double> %570, <2 x i32> <i32 0, i32 2>
  %583 = fsub <2 x double> %581, %582
  %584 = fadd <2 x double> %572, %570
  %585 = fmul <2 x double> %583, <double 0xBFED906BCF328D46, double 0x3FD87DE2A6AEA963>
  %586 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %584, <2 x double> <double 0x3FD87DE2A6AEA963, double 0x3FED906BCF328D46>, <2 x double> %585)
  %587 = insertelement <2 x double> poison, double %539, i64 0
  %588 = insertelement <2 x double> poison, double %539, i64 0
  %589 = insertelement <2 x double> poison, double %536, i64 0
  %590 = insertelement <2 x double> poison, double %536, i64 0
  %591 = fsub <2 x double> %588, %590
  %592 = fadd <2 x double> %587, %589
  %593 = shufflevector <2 x double> %591, <2 x double> %592, <2 x i32> <i32 0, i32 2>
  %594 = fmul <2 x double> %593, <double 0x3FE6A09E667F3BCD, double 0x3FE6A09E667F3BCD>
  %595 = fadd double %575, %542
  store double %595, ptr %482, align 8, !tbaa !9
  %596 = fsub double %542, %575
  store double %596, ptr %485, align 8, !tbaa !9
  %597 = fadd double %576, %543
  store double %597, ptr %508, align 8, !tbaa !9
  %598 = fsub double %543, %576
  store double %598, ptr %487, align 8, !tbaa !9
  %599 = insertelement <2 x double> poison, double %517, i64 0
  %600 = insertelement <2 x double> %599, double %515, i64 1
  %601 = fsub <2 x double> %600, %594
  %602 = fadd <2 x double> %600, %594
  %603 = shufflevector <2 x double> %601, <2 x double> %602, <2 x i32> <i32 0, i32 3>
  %604 = fadd double %578, %544
  store double %604, ptr %499, align 8, !tbaa !9
  %605 = fsub double %544, %578
  store double %605, ptr %493, align 8, !tbaa !9
  %606 = fadd double %580, %545
  store double %606, ptr %501, align 8, !tbaa !9
  %607 = fsub double %545, %580
  store double %607, ptr %495, align 8, !tbaa !9
  %608 = fmul <2 x double> %584, <double 0x3FED906BCF328D46, double 0xBFD87DE2A6AEA963>
  %609 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %583, <2 x double> <double 0x3FD87DE2A6AEA963, double 0x3FED906BCF328D46>, <2 x double> %608)
  %610 = shufflevector <2 x double> %602, <2 x double> %601, <2 x i32> <i32 0, i32 3>
  %611 = fsub <2 x double> %610, %609
  %612 = fadd <2 x double> %610, %609
  %613 = shufflevector <2 x double> %611, <2 x double> %612, <2 x i32> <i32 1, i32 2>
  store <2 x double> %613, ptr %491, align 8, !tbaa !9
  %614 = shufflevector <2 x double> %611, <2 x double> %612, <2 x i32> <i32 0, i32 3>
  store <2 x double> %614, ptr %489, align 8, !tbaa !9
  %615 = fsub <2 x double> %603, %586
  %616 = fadd <2 x double> %603, %586
  %617 = shufflevector <2 x double> %615, <2 x double> %616, <2 x i32> <i32 1, i32 2>
  store <2 x double> %617, ptr %497, align 8, !tbaa !9
  %618 = shufflevector <2 x double> %615, <2 x double> %616, <2 x i32> <i32 0, i32 3>
  store <2 x double> %618, ptr %483, align 8, !tbaa !9
  %indvars.iv.next851 = add nuw nsw i64 %indvars.iv850, 1
  %exitcond853.not = icmp eq i64 %indvars.iv.next851, 16
  br i1 %exitcond853.not, label %.loopexit, label %.preheader841, !llvm.loop !15

.loopexit:                                        ; preds = %.preheader841, %.preheader
  ret void
}

; 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>) #2

attributes #0 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) 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 #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }

!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 = !{!"double", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}


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