; LLVM IR from sp-nitech/SPTK :: third_party/WORLD/fft_world.ll (ZN4sptk5world10bitrv2conjEiPiPd)

; 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 willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

21:                                               ; preds = %27, %3
  %22 = load i32, ptr %11, align 4, !tbaa !5
  %23 = icmp sgt i32 %22, 8
  br i1 %23, label %24, label %30

24:                                               ; preds = %21
  %25 = load i32, ptr %12, align 4, !tbaa !5
  %26 = shl i32 %25, 1
  store i32 %26, ptr %12, align 4, !tbaa !5
  br label %27

27:                                               ; preds = %24
  %28 = load i32, ptr %11, align 4, !tbaa !5
  %29 = ashr i32 %28, 2
  store i32 %29, ptr %11, align 4, !tbaa !5
  br label %21, !llvm.loop !11

30:                                               ; preds = %21
  %31 = load i32, ptr %4, align 4, !tbaa !5
  %32 = ashr i32 %31, 1
  store i32 %32, ptr %13, align 4, !tbaa !5
  %33 = load i32, ptr %12, align 4, !tbaa !5
  %34 = mul nsw i32 4, %33
  store i32 %34, ptr %14, align 4, !tbaa !5
  %35 = load i32, ptr %11, align 4, !tbaa !5
  %36 = icmp eq i32 %35, 8
  br i1 %36, label %37, label %1285

37:                                               ; preds = %30
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %38

38:                                               ; preds = %1281, %37
  %39 = load i32, ptr %9, align 4, !tbaa !5
  %40 = load i32, ptr %12, align 4, !tbaa !5
  %41 = icmp slt i32 %39, %40
  br i1 %41, label %42, label %1284

42:                                               ; preds = %38
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %43

43:                                               ; preds = %901, %42
  %44 = load i32, ptr %7, align 4, !tbaa !5
  %45 = load i32, ptr %9, align 4, !tbaa !5
  %46 = icmp slt i32 %44, %45
  br i1 %46, label %47, label %904

47:                                               ; preds = %43
  %48 = load i32, ptr %7, align 4, !tbaa !5
  %49 = mul nsw i32 4, %48
  %50 = load ptr, ptr %5, align 8, !tbaa !9
  %51 = load i32, ptr %12, align 4, !tbaa !5
  %52 = load i32, ptr %9, align 4, !tbaa !5
  %53 = add nsw i32 %51, %52
  %54 = sext i32 %53 to i64
  %55 = getelementptr inbounds i32, ptr %50, i64 %54
  %56 = load i32, ptr %55, align 4, !tbaa !5
  %57 = mul nsw i32 2, %56
  %58 = add nsw i32 %49, %57
  store i32 %58, ptr %8, align 4, !tbaa !5
  %59 = load i32, ptr %9, align 4, !tbaa !5
  %60 = mul nsw i32 4, %59
  %61 = load ptr, ptr %5, align 8, !tbaa !9
  %62 = load i32, ptr %12, align 4, !tbaa !5
  %63 = load i32, ptr %7, align 4, !tbaa !5
  %64 = add nsw i32 %62, %63
  %65 = sext i32 %64 to i64
  %66 = getelementptr inbounds i32, ptr %61, i64 %65
  %67 = load i32, ptr %66, align 4, !tbaa !5
  %68 = mul nsw i32 2, %67
  %69 = add nsw i32 %60, %68
  store i32 %69, ptr %10, align 4, !tbaa !5
  %70 = load ptr, ptr %6, align 8, !tbaa !9
  %71 = load i32, ptr %8, 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 !13
  store double %74, ptr %15, align 8, !tbaa !13
  %75 = load ptr, ptr %6, align 8, !tbaa !9
  %76 = load i32, ptr %8, align 4, !tbaa !5
  %77 = add nsw i32 %76, 1
  %78 = sext i32 %77 to i64
  %79 = getelementptr inbounds double, ptr %75, i64 %78
  %80 = load double, ptr %79, align 8, !tbaa !13
  %81 = fneg double %80
  store double %81, ptr %16, align 8, !tbaa !13
  %82 = load ptr, ptr %6, align 8, !tbaa !9
  %83 = load i32, ptr %10, align 4, !tbaa !5
  %84 = sext i32 %83 to i64
  %85 = getelementptr inbounds double, ptr %82, i64 %84
  %86 = load double, ptr %85, align 8, !tbaa !13
  store double %86, ptr %17, align 8, !tbaa !13
  %87 = load ptr, ptr %6, align 8, !tbaa !9
  %88 = load i32, ptr %10, align 4, !tbaa !5
  %89 = add nsw i32 %88, 1
  %90 = sext i32 %89 to i64
  %91 = getelementptr inbounds double, ptr %87, i64 %90
  %92 = load double, ptr %91, align 8, !tbaa !13
  %93 = fneg double %92
  store double %93, ptr %18, align 8, !tbaa !13
  %94 = load double, ptr %17, align 8, !tbaa !13
  %95 = load ptr, ptr %6, align 8, !tbaa !9
  %96 = load i32, ptr %8, align 4, !tbaa !5
  %97 = sext i32 %96 to i64
  %98 = getelementptr inbounds double, ptr %95, i64 %97
  store double %94, ptr %98, align 8, !tbaa !13
  %99 = load double, ptr %18, align 8, !tbaa !13
  %100 = load ptr, ptr %6, align 8, !tbaa !9
  %101 = load i32, ptr %8, align 4, !tbaa !5
  %102 = add nsw i32 %101, 1
  %103 = sext i32 %102 to i64
  %104 = getelementptr inbounds double, ptr %100, i64 %103
  store double %99, ptr %104, align 8, !tbaa !13
  %105 = load double, ptr %15, align 8, !tbaa !13
  %106 = load ptr, ptr %6, align 8, !tbaa !9
  %107 = load i32, ptr %10, align 4, !tbaa !5
  %108 = sext i32 %107 to i64
  %109 = getelementptr inbounds double, ptr %106, i64 %108
  store double %105, ptr %109, align 8, !tbaa !13
  %110 = load double, ptr %16, align 8, !tbaa !13
  %111 = load ptr, ptr %6, align 8, !tbaa !9
  %112 = load i32, ptr %10, align 4, !tbaa !5
  %113 = add nsw i32 %112, 1
  %114 = sext i32 %113 to i64
  %115 = getelementptr inbounds double, ptr %111, i64 %114
  store double %110, ptr %115, align 8, !tbaa !13
  %116 = load i32, ptr %14, align 4, !tbaa !5
  %117 = load i32, ptr %8, align 4, !tbaa !5
  %118 = add nsw i32 %117, %116
  store i32 %118, ptr %8, align 4, !tbaa !5
  %119 = load i32, ptr %14, align 4, !tbaa !5
  %120 = mul nsw i32 2, %119
  %121 = load i32, ptr %10, align 4, !tbaa !5
  %122 = add nsw i32 %121, %120
  store i32 %122, ptr %10, align 4, !tbaa !5
  %123 = load ptr, ptr %6, align 8, !tbaa !9
  %124 = load i32, ptr %8, align 4, !tbaa !5
  %125 = sext i32 %124 to i64
  %126 = getelementptr inbounds double, ptr %123, i64 %125
  %127 = load double, ptr %126, align 8, !tbaa !13
  store double %127, ptr %15, align 8, !tbaa !13
  %128 = load ptr, ptr %6, align 8, !tbaa !9
  %129 = load i32, ptr %8, align 4, !tbaa !5
  %130 = add nsw i32 %129, 1
  %131 = sext i32 %130 to i64
  %132 = getelementptr inbounds double, ptr %128, i64 %131
  %133 = load double, ptr %132, align 8, !tbaa !13
  %134 = fneg double %133
  store double %134, ptr %16, align 8, !tbaa !13
  %135 = load ptr, ptr %6, align 8, !tbaa !9
  %136 = load i32, ptr %10, align 4, !tbaa !5
  %137 = sext i32 %136 to i64
  %138 = getelementptr inbounds double, ptr %135, i64 %137
  %139 = load double, ptr %138, align 8, !tbaa !13
  store double %139, ptr %17, align 8, !tbaa !13
  %140 = load ptr, ptr %6, align 8, !tbaa !9
  %141 = load i32, ptr %10, align 4, !tbaa !5
  %142 = add nsw i32 %141, 1
  %143 = sext i32 %142 to i64
  %144 = getelementptr inbounds double, ptr %140, i64 %143
  %145 = load double, ptr %144, align 8, !tbaa !13
  %146 = fneg double %145
  store double %146, ptr %18, align 8, !tbaa !13
  %147 = load double, ptr %17, align 8, !tbaa !13
  %148 = load ptr, ptr %6, align 8, !tbaa !9
  %149 = load i32, ptr %8, align 4, !tbaa !5
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds double, ptr %148, i64 %150
  store double %147, ptr %151, align 8, !tbaa !13
  %152 = load double, ptr %18, align 8, !tbaa !13
  %153 = load ptr, ptr %6, align 8, !tbaa !9
  %154 = load i32, ptr %8, align 4, !tbaa !5
  %155 = add nsw i32 %154, 1
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds double, ptr %153, i64 %156
  store double %152, ptr %157, align 8, !tbaa !13
  %158 = load double, ptr %15, align 8, !tbaa !13
  %159 = load ptr, ptr %6, align 8, !tbaa !9
  %160 = load i32, ptr %10, align 4, !tbaa !5
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds double, ptr %159, i64 %161
  store double %158, ptr %162, align 8, !tbaa !13
  %163 = load double, ptr %16, align 8, !tbaa !13
  %164 = load ptr, ptr %6, align 8, !tbaa !9
  %165 = load i32, ptr %10, align 4, !tbaa !5
  %166 = add nsw i32 %165, 1
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds double, ptr %164, i64 %167
  store double %163, ptr %168, align 8, !tbaa !13
  %169 = load i32, ptr %14, align 4, !tbaa !5
  %170 = load i32, ptr %8, align 4, !tbaa !5
  %171 = add nsw i32 %170, %169
  store i32 %171, ptr %8, align 4, !tbaa !5
  %172 = load i32, ptr %14, align 4, !tbaa !5
  %173 = load i32, ptr %10, align 4, !tbaa !5
  %174 = sub nsw i32 %173, %172
  store i32 %174, ptr %10, align 4, !tbaa !5
  %175 = load ptr, ptr %6, align 8, !tbaa !9
  %176 = load i32, ptr %8, align 4, !tbaa !5
  %177 = sext i32 %176 to i64
  %178 = getelementptr inbounds double, ptr %175, i64 %177
  %179 = load double, ptr %178, align 8, !tbaa !13
  store double %179, ptr %15, align 8, !tbaa !13
  %180 = load ptr, ptr %6, align 8, !tbaa !9
  %181 = load i32, ptr %8, align 4, !tbaa !5
  %182 = add nsw i32 %181, 1
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds double, ptr %180, i64 %183
  %185 = load double, ptr %184, align 8, !tbaa !13
  %186 = fneg double %185
  store double %186, ptr %16, align 8, !tbaa !13
  %187 = load ptr, ptr %6, align 8, !tbaa !9
  %188 = load i32, ptr %10, 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 !13
  store double %191, ptr %17, align 8, !tbaa !13
  %192 = load ptr, ptr %6, align 8, !tbaa !9
  %193 = load i32, ptr %10, align 4, !tbaa !5
  %194 = add nsw i32 %193, 1
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds double, ptr %192, i64 %195
  %197 = load double, ptr %196, align 8, !tbaa !13
  %198 = fneg double %197
  store double %198, ptr %18, align 8, !tbaa !13
  %199 = load double, ptr %17, align 8, !tbaa !13
  %200 = load ptr, ptr %6, align 8, !tbaa !9
  %201 = load i32, ptr %8, align 4, !tbaa !5
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds double, ptr %200, i64 %202
  store double %199, ptr %203, align 8, !tbaa !13
  %204 = load double, ptr %18, align 8, !tbaa !13
  %205 = load ptr, ptr %6, align 8, !tbaa !9
  %206 = load i32, ptr %8, align 4, !tbaa !5
  %207 = add nsw i32 %206, 1
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds double, ptr %205, i64 %208
  store double %204, ptr %209, align 8, !tbaa !13
  %210 = load double, ptr %15, align 8, !tbaa !13
  %211 = load ptr, ptr %6, align 8, !tbaa !9
  %212 = load i32, ptr %10, align 4, !tbaa !5
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds double, ptr %211, i64 %213
  store double %210, ptr %214, align 8, !tbaa !13
  %215 = load double, ptr %16, align 8, !tbaa !13
  %216 = load ptr, ptr %6, align 8, !tbaa !9
  %217 = load i32, ptr %10, align 4, !tbaa !5
  %218 = add nsw i32 %217, 1
  %219 = sext i32 %218 to i64
  %220 = getelementptr inbounds double, ptr %216, i64 %219
  store double %215, ptr %220, align 8, !tbaa !13
  %221 = load i32, ptr %14, align 4, !tbaa !5
  %222 = load i32, ptr %8, align 4, !tbaa !5
  %223 = add nsw i32 %222, %221
  store i32 %223, ptr %8, align 4, !tbaa !5
  %224 = load i32, ptr %14, align 4, !tbaa !5
  %225 = mul nsw i32 2, %224
  %226 = load i32, ptr %10, align 4, !tbaa !5
  %227 = add nsw i32 %226, %225
  store i32 %227, ptr %10, align 4, !tbaa !5
  %228 = load ptr, ptr %6, align 8, !tbaa !9
  %229 = load i32, ptr %8, align 4, !tbaa !5
  %230 = sext i32 %229 to i64
  %231 = getelementptr inbounds double, ptr %228, i64 %230
  %232 = load double, ptr %231, align 8, !tbaa !13
  store double %232, ptr %15, align 8, !tbaa !13
  %233 = load ptr, ptr %6, align 8, !tbaa !9
  %234 = load i32, ptr %8, align 4, !tbaa !5
  %235 = add nsw i32 %234, 1
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds double, ptr %233, i64 %236
  %238 = load double, ptr %237, align 8, !tbaa !13
  %239 = fneg double %238
  store double %239, ptr %16, align 8, !tbaa !13
  %240 = load ptr, ptr %6, align 8, !tbaa !9
  %241 = load i32, ptr %10, align 4, !tbaa !5
  %242 = sext i32 %241 to i64
  %243 = getelementptr inbounds double, ptr %240, i64 %242
  %244 = load double, ptr %243, align 8, !tbaa !13
  store double %244, ptr %17, align 8, !tbaa !13
  %245 = load ptr, ptr %6, align 8, !tbaa !9
  %246 = load i32, ptr %10, align 4, !tbaa !5
  %247 = add nsw i32 %246, 1
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds double, ptr %245, i64 %248
  %250 = load double, ptr %249, align 8, !tbaa !13
  %251 = fneg double %250
  store double %251, ptr %18, align 8, !tbaa !13
  %252 = load double, ptr %17, align 8, !tbaa !13
  %253 = load ptr, ptr %6, align 8, !tbaa !9
  %254 = load i32, ptr %8, align 4, !tbaa !5
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds double, ptr %253, i64 %255
  store double %252, ptr %256, align 8, !tbaa !13
  %257 = load double, ptr %18, align 8, !tbaa !13
  %258 = load ptr, ptr %6, align 8, !tbaa !9
  %259 = load i32, ptr %8, align 4, !tbaa !5
  %260 = add nsw i32 %259, 1
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds double, ptr %258, i64 %261
  store double %257, ptr %262, align 8, !tbaa !13
  %263 = load double, ptr %15, align 8, !tbaa !13
  %264 = load ptr, ptr %6, align 8, !tbaa !9
  %265 = load i32, ptr %10, align 4, !tbaa !5
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds double, ptr %264, i64 %266
  store double %263, ptr %267, align 8, !tbaa !13
  %268 = load double, ptr %16, align 8, !tbaa !13
  %269 = load ptr, ptr %6, align 8, !tbaa !9
  %270 = load i32, ptr %10, align 4, !tbaa !5
  %271 = add nsw i32 %270, 1
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds double, ptr %269, i64 %272
  store double %268, ptr %273, align 8, !tbaa !13
  %274 = load i32, ptr %13, align 4, !tbaa !5
  %275 = load i32, ptr %8, align 4, !tbaa !5
  %276 = add nsw i32 %275, %274
  store i32 %276, ptr %8, align 4, !tbaa !5
  %277 = load i32, ptr %10, align 4, !tbaa !5
  %278 = add nsw i32 %277, 2
  store i32 %278, ptr %10, align 4, !tbaa !5
  %279 = load ptr, ptr %6, align 8, !tbaa !9
  %280 = load i32, ptr %8, align 4, !tbaa !5
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds double, ptr %279, i64 %281
  %283 = load double, ptr %282, align 8, !tbaa !13
  store double %283, ptr %15, align 8, !tbaa !13
  %284 = load ptr, ptr %6, align 8, !tbaa !9
  %285 = load i32, ptr %8, align 4, !tbaa !5
  %286 = add nsw i32 %285, 1
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds double, ptr %284, i64 %287
  %289 = load double, ptr %288, align 8, !tbaa !13
  %290 = fneg double %289
  store double %290, ptr %16, align 8, !tbaa !13
  %291 = load ptr, ptr %6, align 8, !tbaa !9
  %292 = load i32, ptr %10, align 4, !tbaa !5
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds double, ptr %291, i64 %293
  %295 = load double, ptr %294, align 8, !tbaa !13
  store double %295, ptr %17, align 8, !tbaa !13
  %296 = load ptr, ptr %6, align 8, !tbaa !9
  %297 = load i32, ptr %10, align 4, !tbaa !5
  %298 = add nsw i32 %297, 1
  %299 = sext i32 %298 to i64
  %300 = getelementptr inbounds double, ptr %296, i64 %299
  %301 = load double, ptr %300, align 8, !tbaa !13
  %302 = fneg double %301
  store double %302, ptr %18, align 8, !tbaa !13
  %303 = load double, ptr %17, align 8, !tbaa !13
  %304 = load ptr, ptr %6, align 8, !tbaa !9
  %305 = load i32, ptr %8, align 4, !tbaa !5
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds double, ptr %304, i64 %306
  store double %303, ptr %307, align 8, !tbaa !13
  %308 = load double, ptr %18, align 8, !tbaa !13
  %309 = load ptr, ptr %6, align 8, !tbaa !9
  %310 = load i32, ptr %8, align 4, !tbaa !5
  %311 = add nsw i32 %310, 1
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds double, ptr %309, i64 %312
  store double %308, ptr %313, align 8, !tbaa !13
  %314 = load double, ptr %15, align 8, !tbaa !13
  %315 = load ptr, ptr %6, align 8, !tbaa !9
  %316 = load i32, ptr %10, align 4, !tbaa !5
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds double, ptr %315, i64 %317
  store double %314, ptr %318, align 8, !tbaa !13
  %319 = load double, ptr %16, align 8, !tbaa !13
  %320 = load ptr, ptr %6, align 8, !tbaa !9
  %321 = load i32, ptr %10, align 4, !tbaa !5
  %322 = add nsw i32 %321, 1
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds double, ptr %320, i64 %323
  store double %319, ptr %324, align 8, !tbaa !13
  %325 = load i32, ptr %14, align 4, !tbaa !5
  %326 = load i32, ptr %8, align 4, !tbaa !5
  %327 = sub nsw i32 %326, %325
  store i32 %327, ptr %8, align 4, !tbaa !5
  %328 = load i32, ptr %14, align 4, !tbaa !5
  %329 = mul nsw i32 2, %328
  %330 = load i32, ptr %10, align 4, !tbaa !5
  %331 = sub nsw i32 %330, %329
  store i32 %331, ptr %10, align 4, !tbaa !5
  %332 = load ptr, ptr %6, align 8, !tbaa !9
  %333 = load i32, ptr %8, align 4, !tbaa !5
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds double, ptr %332, i64 %334
  %336 = load double, ptr %335, align 8, !tbaa !13
  store double %336, ptr %15, align 8, !tbaa !13
  %337 = load ptr, ptr %6, align 8, !tbaa !9
  %338 = load i32, ptr %8, align 4, !tbaa !5
  %339 = add nsw i32 %338, 1
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds double, ptr %337, i64 %340
  %342 = load double, ptr %341, align 8, !tbaa !13
  %343 = fneg double %342
  store double %343, ptr %16, align 8, !tbaa !13
  %344 = load ptr, ptr %6, align 8, !tbaa !9
  %345 = load i32, ptr %10, align 4, !tbaa !5
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds double, ptr %344, i64 %346
  %348 = load double, ptr %347, align 8, !tbaa !13
  store double %348, ptr %17, align 8, !tbaa !13
  %349 = load ptr, ptr %6, align 8, !tbaa !9
  %350 = load i32, ptr %10, align 4, !tbaa !5
  %351 = add nsw i32 %350, 1
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds double, ptr %349, i64 %352
  %354 = load double, ptr %353, align 8, !tbaa !13
  %355 = fneg double %354
  store double %355, ptr %18, align 8, !tbaa !13
  %356 = load double, ptr %17, align 8, !tbaa !13
  %357 = load ptr, ptr %6, align 8, !tbaa !9
  %358 = load i32, ptr %8, align 4, !tbaa !5
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds double, ptr %357, i64 %359
  store double %356, ptr %360, align 8, !tbaa !13
  %361 = load double, ptr %18, align 8, !tbaa !13
  %362 = load ptr, ptr %6, align 8, !tbaa !9
  %363 = load i32, ptr %8, align 4, !tbaa !5
  %364 = add nsw i32 %363, 1
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds double, ptr %362, i64 %365
  store double %361, ptr %366, align 8, !tbaa !13
  %367 = load double, ptr %15, align 8, !tbaa !13
  %368 = load ptr, ptr %6, align 8, !tbaa !9
  %369 = load i32, ptr %10, align 4, !tbaa !5
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds double, ptr %368, i64 %370
  store double %367, ptr %371, align 8, !tbaa !13
  %372 = load double, ptr %16, align 8, !tbaa !13
  %373 = load ptr, ptr %6, align 8, !tbaa !9
  %374 = load i32, ptr %10, align 4, !tbaa !5
  %375 = add nsw i32 %374, 1
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds double, ptr %373, i64 %376
  store double %372, ptr %377, align 8, !tbaa !13
  %378 = load i32, ptr %14, align 4, !tbaa !5
  %379 = load i32, ptr %8, align 4, !tbaa !5
  %380 = sub nsw i32 %379, %378
  store i32 %380, ptr %8, align 4, !tbaa !5
  %381 = load i32, ptr %14, align 4, !tbaa !5
  %382 = load i32, ptr %10, align 4, !tbaa !5
  %383 = add nsw i32 %382, %381
  store i32 %383, ptr %10, align 4, !tbaa !5
  %384 = load ptr, ptr %6, align 8, !tbaa !9
  %385 = load i32, ptr %8, align 4, !tbaa !5
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds double, ptr %384, i64 %386
  %388 = load double, ptr %387, align 8, !tbaa !13
  store double %388, ptr %15, align 8, !tbaa !13
  %389 = load ptr, ptr %6, align 8, !tbaa !9
  %390 = load i32, ptr %8, align 4, !tbaa !5
  %391 = add nsw i32 %390, 1
  %392 = sext i32 %391 to i64
  %393 = getelementptr inbounds double, ptr %389, i64 %392
  %394 = load double, ptr %393, align 8, !tbaa !13
  %395 = fneg double %394
  store double %395, ptr %16, align 8, !tbaa !13
  %396 = load ptr, ptr %6, align 8, !tbaa !9
  %397 = load i32, ptr %10, align 4, !tbaa !5
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds double, ptr %396, i64 %398
  %400 = load double, ptr %399, align 8, !tbaa !13
  store double %400, ptr %17, align 8, !tbaa !13
  %401 = load ptr, ptr %6, align 8, !tbaa !9
  %402 = load i32, ptr %10, align 4, !tbaa !5
  %403 = add nsw i32 %402, 1
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds double, ptr %401, i64 %404
  %406 = load double, ptr %405, align 8, !tbaa !13
  %407 = fneg double %406
  store double %407, ptr %18, align 8, !tbaa !13
  %408 = load double, ptr %17, align 8, !tbaa !13
  %409 = load ptr, ptr %6, align 8, !tbaa !9
  %410 = load i32, ptr %8, align 4, !tbaa !5
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds double, ptr %409, i64 %411
  store double %408, ptr %412, align 8, !tbaa !13
  %413 = load double, ptr %18, align 8, !tbaa !13
  %414 = load ptr, ptr %6, align 8, !tbaa !9
  %415 = load i32, ptr %8, align 4, !tbaa !5
  %416 = add nsw i32 %415, 1
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds double, ptr %414, i64 %417
  store double %413, ptr %418, align 8, !tbaa !13
  %419 = load double, ptr %15, align 8, !tbaa !13
  %420 = load ptr, ptr %6, align 8, !tbaa !9
  %421 = load i32, ptr %10, align 4, !tbaa !5
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds double, ptr %420, i64 %422
  store double %419, ptr %423, align 8, !tbaa !13
  %424 = load double, ptr %16, align 8, !tbaa !13
  %425 = load ptr, ptr %6, align 8, !tbaa !9
  %426 = load i32, ptr %10, align 4, !tbaa !5
  %427 = add nsw i32 %426, 1
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds double, ptr %425, i64 %428
  store double %424, ptr %429, align 8, !tbaa !13
  %430 = load i32, ptr %14, align 4, !tbaa !5
  %431 = load i32, ptr %8, align 4, !tbaa !5
  %432 = sub nsw i32 %431, %430
  store i32 %432, ptr %8, align 4, !tbaa !5
  %433 = load i32, ptr %14, align 4, !tbaa !5
  %434 = mul nsw i32 2, %433
  %435 = load i32, ptr %10, align 4, !tbaa !5
  %436 = sub nsw i32 %435, %434
  store i32 %436, ptr %10, align 4, !tbaa !5
  %437 = load ptr, ptr %6, align 8, !tbaa !9
  %438 = load i32, ptr %8, align 4, !tbaa !5
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds double, ptr %437, i64 %439
  %441 = load double, ptr %440, align 8, !tbaa !13
  store double %441, ptr %15, align 8, !tbaa !13
  %442 = load ptr, ptr %6, align 8, !tbaa !9
  %443 = load i32, ptr %8, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds double, ptr %442, i64 %445
  %447 = load double, ptr %446, align 8, !tbaa !13
  %448 = fneg double %447
  store double %448, ptr %16, align 8, !tbaa !13
  %449 = load ptr, ptr %6, align 8, !tbaa !9
  %450 = load i32, ptr %10, align 4, !tbaa !5
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds double, ptr %449, i64 %451
  %453 = load double, ptr %452, align 8, !tbaa !13
  store double %453, ptr %17, align 8, !tbaa !13
  %454 = load ptr, ptr %6, align 8, !tbaa !9
  %455 = load i32, ptr %10, align 4, !tbaa !5
  %456 = add nsw i32 %455, 1
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds double, ptr %454, i64 %457
  %459 = load double, ptr %458, align 8, !tbaa !13
  %460 = fneg double %459
  store double %460, ptr %18, align 8, !tbaa !13
  %461 = load double, ptr %17, align 8, !tbaa !13
  %462 = load ptr, ptr %6, align 8, !tbaa !9
  %463 = load i32, ptr %8, align 4, !tbaa !5
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds double, ptr %462, i64 %464
  store double %461, ptr %465, align 8, !tbaa !13
  %466 = load double, ptr %18, align 8, !tbaa !13
  %467 = load ptr, ptr %6, align 8, !tbaa !9
  %468 = load i32, ptr %8, align 4, !tbaa !5
  %469 = add nsw i32 %468, 1
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds double, ptr %467, i64 %470
  store double %466, ptr %471, align 8, !tbaa !13
  %472 = load double, ptr %15, align 8, !tbaa !13
  %473 = load ptr, ptr %6, align 8, !tbaa !9
  %474 = load i32, ptr %10, align 4, !tbaa !5
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds double, ptr %473, i64 %475
  store double %472, ptr %476, align 8, !tbaa !13
  %477 = load double, ptr %16, align 8, !tbaa !13
  %478 = load ptr, ptr %6, align 8, !tbaa !9
  %479 = load i32, ptr %10, align 4, !tbaa !5
  %480 = add nsw i32 %479, 1
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds double, ptr %478, i64 %481
  store double %477, ptr %482, align 8, !tbaa !13
  %483 = load i32, ptr %8, align 4, !tbaa !5
  %484 = add nsw i32 %483, 2
  store i32 %484, ptr %8, align 4, !tbaa !5
  %485 = load i32, ptr %13, align 4, !tbaa !5
  %486 = load i32, ptr %10, align 4, !tbaa !5
  %487 = add nsw i32 %486, %485
  store i32 %487, ptr %10, align 4, !tbaa !5
  %488 = load ptr, ptr %6, align 8, !tbaa !9
  %489 = load i32, ptr %8, align 4, !tbaa !5
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds double, ptr %488, i64 %490
  %492 = load double, ptr %491, align 8, !tbaa !13
  store double %492, ptr %15, align 8, !tbaa !13
  %493 = load ptr, ptr %6, align 8, !tbaa !9
  %494 = load i32, ptr %8, align 4, !tbaa !5
  %495 = add nsw i32 %494, 1
  %496 = sext i32 %495 to i64
  %497 = getelementptr inbounds double, ptr %493, i64 %496
  %498 = load double, ptr %497, align 8, !tbaa !13
  %499 = fneg double %498
  store double %499, ptr %16, align 8, !tbaa !13
  %500 = load ptr, ptr %6, align 8, !tbaa !9
  %501 = load i32, ptr %10, align 4, !tbaa !5
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds double, ptr %500, i64 %502
  %504 = load double, ptr %503, align 8, !tbaa !13
  store double %504, ptr %17, align 8, !tbaa !13
  %505 = load ptr, ptr %6, align 8, !tbaa !9
  %506 = load i32, ptr %10, align 4, !tbaa !5
  %507 = add nsw i32 %506, 1
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds double, ptr %505, i64 %508
  %510 = load double, ptr %509, align 8, !tbaa !13
  %511 = fneg double %510
  store double %511, ptr %18, align 8, !tbaa !13
  %512 = load double, ptr %17, align 8, !tbaa !13
  %513 = load ptr, ptr %6, align 8, !tbaa !9
  %514 = load i32, ptr %8, align 4, !tbaa !5
  %515 = sext i32 %514 to i64
  %516 = getelementptr inbounds double, ptr %513, i64 %515
  store double %512, ptr %516, align 8, !tbaa !13
  %517 = load double, ptr %18, align 8, !tbaa !13
  %518 = load ptr, ptr %6, align 8, !tbaa !9
  %519 = load i32, ptr %8, align 4, !tbaa !5
  %520 = add nsw i32 %519, 1
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds double, ptr %518, i64 %521
  store double %517, ptr %522, align 8, !tbaa !13
  %523 = load double, ptr %15, align 8, !tbaa !13
  %524 = load ptr, ptr %6, align 8, !tbaa !9
  %525 = load i32, ptr %10, align 4, !tbaa !5
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds double, ptr %524, i64 %526
  store double %523, ptr %527, align 8, !tbaa !13
  %528 = load double, ptr %16, align 8, !tbaa !13
  %529 = load ptr, ptr %6, align 8, !tbaa !9
  %530 = load i32, ptr %10, align 4, !tbaa !5
  %531 = add nsw i32 %530, 1
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds double, ptr %529, i64 %532
  store double %528, ptr %533, align 8, !tbaa !13
  %534 = load i32, ptr %14, align 4, !tbaa !5
  %535 = load i32, ptr %8, align 4, !tbaa !5
  %536 = add nsw i32 %535, %534
  store i32 %536, ptr %8, align 4, !tbaa !5
  %537 = load i32, ptr %14, align 4, !tbaa !5
  %538 = mul nsw i32 2, %537
  %539 = load i32, ptr %10, align 4, !tbaa !5
  %540 = add nsw i32 %539, %538
  store i32 %540, ptr %10, align 4, !tbaa !5
  %541 = load ptr, ptr %6, align 8, !tbaa !9
  %542 = load i32, ptr %8, align 4, !tbaa !5
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds double, ptr %541, i64 %543
  %545 = load double, ptr %544, align 8, !tbaa !13
  store double %545, ptr %15, align 8, !tbaa !13
  %546 = load ptr, ptr %6, align 8, !tbaa !9
  %547 = load i32, ptr %8, align 4, !tbaa !5
  %548 = add nsw i32 %547, 1
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds double, ptr %546, i64 %549
  %551 = load double, ptr %550, align 8, !tbaa !13
  %552 = fneg double %551
  store double %552, ptr %16, align 8, !tbaa !13
  %553 = load ptr, ptr %6, align 8, !tbaa !9
  %554 = load i32, ptr %10, align 4, !tbaa !5
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds double, ptr %553, i64 %555
  %557 = load double, ptr %556, align 8, !tbaa !13
  store double %557, ptr %17, align 8, !tbaa !13
  %558 = load ptr, ptr %6, align 8, !tbaa !9
  %559 = load i32, ptr %10, align 4, !tbaa !5
  %560 = add nsw i32 %559, 1
  %561 = sext i32 %560 to i64
  %562 = getelementptr inbounds double, ptr %558, i64 %561
  %563 = load double, ptr %562, align 8, !tbaa !13
  %564 = fneg double %563
  store double %564, ptr %18, align 8, !tbaa !13
  %565 = load double, ptr %17, align 8, !tbaa !13
  %566 = load ptr, ptr %6, align 8, !tbaa !9
  %567 = load i32, ptr %8, align 4, !tbaa !5
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds double, ptr %566, i64 %568
  store double %565, ptr %569, align 8, !tbaa !13
  %570 = load double, ptr %18, align 8, !tbaa !13
  %571 = load ptr, ptr %6, align 8, !tbaa !9
  %572 = load i32, ptr %8, align 4, !tbaa !5
  %573 = add nsw i32 %572, 1
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds double, ptr %571, i64 %574
  store double %570, ptr %575, align 8, !tbaa !13
  %576 = load double, ptr %15, align 8, !tbaa !13
  %577 = load ptr, ptr %6, align 8, !tbaa !9
  %578 = load i32, ptr %10, align 4, !tbaa !5
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds double, ptr %577, i64 %579
  store double %576, ptr %580, align 8, !tbaa !13
  %581 = load double, ptr %16, align 8, !tbaa !13
  %582 = load ptr, ptr %6, align 8, !tbaa !9
  %583 = load i32, ptr %10, align 4, !tbaa !5
  %584 = add nsw i32 %583, 1
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds double, ptr %582, i64 %585
  store double %581, ptr %586, align 8, !tbaa !13
  %587 = load i32, ptr %14, align 4, !tbaa !5
  %588 = load i32, ptr %8, align 4, !tbaa !5
  %589 = add nsw i32 %588, %587
  store i32 %589, ptr %8, align 4, !tbaa !5
  %590 = load i32, ptr %14, align 4, !tbaa !5
  %591 = load i32, ptr %10, align 4, !tbaa !5
  %592 = sub nsw i32 %591, %590
  store i32 %592, ptr %10, align 4, !tbaa !5
  %593 = load ptr, ptr %6, align 8, !tbaa !9
  %594 = load i32, ptr %8, align 4, !tbaa !5
  %595 = sext i32 %594 to i64
  %596 = getelementptr inbounds double, ptr %593, i64 %595
  %597 = load double, ptr %596, align 8, !tbaa !13
  store double %597, ptr %15, align 8, !tbaa !13
  %598 = load ptr, ptr %6, align 8, !tbaa !9
  %599 = load i32, ptr %8, align 4, !tbaa !5
  %600 = add nsw i32 %599, 1
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds double, ptr %598, i64 %601
  %603 = load double, ptr %602, align 8, !tbaa !13
  %604 = fneg double %603
  store double %604, ptr %16, align 8, !tbaa !13
  %605 = load ptr, ptr %6, align 8, !tbaa !9
  %606 = load i32, ptr %10, align 4, !tbaa !5
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds double, ptr %605, i64 %607
  %609 = load double, ptr %608, align 8, !tbaa !13
  store double %609, ptr %17, align 8, !tbaa !13
  %610 = load ptr, ptr %6, align 8, !tbaa !9
  %611 = load i32, ptr %10, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds double, ptr %610, i64 %613
  %615 = load double, ptr %614, align 8, !tbaa !13
  %616 = fneg double %615
  store double %616, ptr %18, align 8, !tbaa !13
  %617 = load double, ptr %17, align 8, !tbaa !13
  %618 = load ptr, ptr %6, align 8, !tbaa !9
  %619 = load i32, ptr %8, align 4, !tbaa !5
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds double, ptr %618, i64 %620
  store double %617, ptr %621, align 8, !tbaa !13
  %622 = load double, ptr %18, align 8, !tbaa !13
  %623 = load ptr, ptr %6, align 8, !tbaa !9
  %624 = load i32, ptr %8, align 4, !tbaa !5
  %625 = add nsw i32 %624, 1
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds double, ptr %623, i64 %626
  store double %622, ptr %627, align 8, !tbaa !13
  %628 = load double, ptr %15, align 8, !tbaa !13
  %629 = load ptr, ptr %6, align 8, !tbaa !9
  %630 = load i32, ptr %10, align 4, !tbaa !5
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds double, ptr %629, i64 %631
  store double %628, ptr %632, align 8, !tbaa !13
  %633 = load double, ptr %16, align 8, !tbaa !13
  %634 = load ptr, ptr %6, align 8, !tbaa !9
  %635 = load i32, ptr %10, align 4, !tbaa !5
  %636 = add nsw i32 %635, 1
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds double, ptr %634, i64 %637
  store double %633, ptr %638, align 8, !tbaa !13
  %639 = load i32, ptr %14, align 4, !tbaa !5
  %640 = load i32, ptr %8, align 4, !tbaa !5
  %641 = add nsw i32 %640, %639
  store i32 %641, ptr %8, align 4, !tbaa !5
  %642 = load i32, ptr %14, align 4, !tbaa !5
  %643 = mul nsw i32 2, %642
  %644 = load i32, ptr %10, align 4, !tbaa !5
  %645 = add nsw i32 %644, %643
  store i32 %645, ptr %10, align 4, !tbaa !5
  %646 = load ptr, ptr %6, align 8, !tbaa !9
  %647 = load i32, ptr %8, align 4, !tbaa !5
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds double, ptr %646, i64 %648
  %650 = load double, ptr %649, align 8, !tbaa !13
  store double %650, ptr %15, align 8, !tbaa !13
  %651 = load ptr, ptr %6, align 8, !tbaa !9
  %652 = load i32, ptr %8, align 4, !tbaa !5
  %653 = add nsw i32 %652, 1
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds double, ptr %651, i64 %654
  %656 = load double, ptr %655, align 8, !tbaa !13
  %657 = fneg double %656
  store double %657, ptr %16, align 8, !tbaa !13
  %658 = load ptr, ptr %6, align 8, !tbaa !9
  %659 = load i32, ptr %10, align 4, !tbaa !5
  %660 = sext i32 %659 to i64
  %661 = getelementptr inbounds double, ptr %658, i64 %660
  %662 = load double, ptr %661, align 8, !tbaa !13
  store double %662, ptr %17, align 8, !tbaa !13
  %663 = load ptr, ptr %6, align 8, !tbaa !9
  %664 = load i32, ptr %10, align 4, !tbaa !5
  %665 = add nsw i32 %664, 1
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds double, ptr %663, i64 %666
  %668 = load double, ptr %667, align 8, !tbaa !13
  %669 = fneg double %668
  store double %669, ptr %18, align 8, !tbaa !13
  %670 = load double, ptr %17, align 8, !tbaa !13
  %671 = load ptr, ptr %6, align 8, !tbaa !9
  %672 = load i32, ptr %8, align 4, !tbaa !5
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds double, ptr %671, i64 %673
  store double %670, ptr %674, align 8, !tbaa !13
  %675 = load double, ptr %18, align 8, !tbaa !13
  %676 = load ptr, ptr %6, align 8, !tbaa !9
  %677 = load i32, ptr %8, align 4, !tbaa !5
  %678 = add nsw i32 %677, 1
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds double, ptr %676, i64 %679
  store double %675, ptr %680, align 8, !tbaa !13
  %681 = load double, ptr %15, align 8, !tbaa !13
  %682 = load ptr, ptr %6, align 8, !tbaa !9
  %683 = load i32, ptr %10, align 4, !tbaa !5
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds double, ptr %682, i64 %684
  store double %681, ptr %685, align 8, !tbaa !13
  %686 = load double, ptr %16, align 8, !tbaa !13
  %687 = load ptr, ptr %6, align 8, !tbaa !9
  %688 = load i32, ptr %10, align 4, !tbaa !5
  %689 = add nsw i32 %688, 1
  %690 = sext i32 %689 to i64
  %691 = getelementptr inbounds double, ptr %687, i64 %690
  store double %686, ptr %691, align 8, !tbaa !13
  %692 = load i32, ptr %13, align 4, !tbaa !5
  %693 = load i32, ptr %8, align 4, !tbaa !5
  %694 = sub nsw i32 %693, %692
  store i32 %694, ptr %8, align 4, !tbaa !5
  %695 = load i32, ptr %10, align 4, !tbaa !5
  %696 = sub nsw i32 %695, 2
  store i32 %696, ptr %10, align 4, !tbaa !5
  %697 = load ptr, ptr %6, align 8, !tbaa !9
  %698 = load i32, ptr %8, align 4, !tbaa !5
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds double, ptr %697, i64 %699
  %701 = load double, ptr %700, align 8, !tbaa !13
  store double %701, ptr %15, align 8, !tbaa !13
  %702 = load ptr, ptr %6, align 8, !tbaa !9
  %703 = load i32, ptr %8, align 4, !tbaa !5
  %704 = add nsw i32 %703, 1
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds double, ptr %702, i64 %705
  %707 = load double, ptr %706, align 8, !tbaa !13
  %708 = fneg double %707
  store double %708, ptr %16, align 8, !tbaa !13
  %709 = load ptr, ptr %6, align 8, !tbaa !9
  %710 = load i32, ptr %10, align 4, !tbaa !5
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds double, ptr %709, i64 %711
  %713 = load double, ptr %712, align 8, !tbaa !13
  store double %713, ptr %17, align 8, !tbaa !13
  %714 = load ptr, ptr %6, align 8, !tbaa !9
  %715 = load i32, ptr %10, align 4, !tbaa !5
  %716 = add nsw i32 %715, 1
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds double, ptr %714, i64 %717
  %719 = load double, ptr %718, align 8, !tbaa !13
  %720 = fneg double %719
  store double %720, ptr %18, align 8, !tbaa !13
  %721 = load double, ptr %17, align 8, !tbaa !13
  %722 = load ptr, ptr %6, align 8, !tbaa !9
  %723 = load i32, ptr %8, align 4, !tbaa !5
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds double, ptr %722, i64 %724
  store double %721, ptr %725, align 8, !tbaa !13
  %726 = load double, ptr %18, align 8, !tbaa !13
  %727 = load ptr, ptr %6, align 8, !tbaa !9
  %728 = load i32, ptr %8, align 4, !tbaa !5
  %729 = add nsw i32 %728, 1
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds double, ptr %727, i64 %730
  store double %726, ptr %731, align 8, !tbaa !13
  %732 = load double, ptr %15, align 8, !tbaa !13
  %733 = load ptr, ptr %6, align 8, !tbaa !9
  %734 = load i32, ptr %10, align 4, !tbaa !5
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds double, ptr %733, i64 %735
  store double %732, ptr %736, align 8, !tbaa !13
  %737 = load double, ptr %16, align 8, !tbaa !13
  %738 = load ptr, ptr %6, align 8, !tbaa !9
  %739 = load i32, ptr %10, align 4, !tbaa !5
  %740 = add nsw i32 %739, 1
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds double, ptr %738, i64 %741
  store double %737, ptr %742, align 8, !tbaa !13
  %743 = load i32, ptr %14, align 4, !tbaa !5
  %744 = load i32, ptr %8, align 4, !tbaa !5
  %745 = sub nsw i32 %744, %743
  store i32 %745, ptr %8, align 4, !tbaa !5
  %746 = load i32, ptr %14, align 4, !tbaa !5
  %747 = mul nsw i32 2, %746
  %748 = load i32, ptr %10, align 4, !tbaa !5
  %749 = sub nsw i32 %748, %747
  store i32 %749, ptr %10, align 4, !tbaa !5
  %750 = load ptr, ptr %6, align 8, !tbaa !9
  %751 = load i32, ptr %8, align 4, !tbaa !5
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds double, ptr %750, i64 %752
  %754 = load double, ptr %753, align 8, !tbaa !13
  store double %754, ptr %15, align 8, !tbaa !13
  %755 = load ptr, ptr %6, align 8, !tbaa !9
  %756 = load i32, ptr %8, align 4, !tbaa !5
  %757 = add nsw i32 %756, 1
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds double, ptr %755, i64 %758
  %760 = load double, ptr %759, align 8, !tbaa !13
  %761 = fneg double %760
  store double %761, ptr %16, align 8, !tbaa !13
  %762 = load ptr, ptr %6, align 8, !tbaa !9
  %763 = load i32, ptr %10, align 4, !tbaa !5
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds double, ptr %762, i64 %764
  %766 = load double, ptr %765, align 8, !tbaa !13
  store double %766, ptr %17, align 8, !tbaa !13
  %767 = load ptr, ptr %6, align 8, !tbaa !9
  %768 = load i32, ptr %10, align 4, !tbaa !5
  %769 = add nsw i32 %768, 1
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds double, ptr %767, i64 %770
  %772 = load double, ptr %771, align 8, !tbaa !13
  %773 = fneg double %772
  store double %773, ptr %18, align 8, !tbaa !13
  %774 = load double, ptr %17, align 8, !tbaa !13
  %775 = load ptr, ptr %6, align 8, !tbaa !9
  %776 = load i32, ptr %8, align 4, !tbaa !5
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds double, ptr %775, i64 %777
  store double %774, ptr %778, align 8, !tbaa !13
  %779 = load double, ptr %18, align 8, !tbaa !13
  %780 = load ptr, ptr %6, align 8, !tbaa !9
  %781 = load i32, ptr %8, align 4, !tbaa !5
  %782 = add nsw i32 %781, 1
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds double, ptr %780, i64 %783
  store double %779, ptr %784, align 8, !tbaa !13
  %785 = load double, ptr %15, align 8, !tbaa !13
  %786 = load ptr, ptr %6, align 8, !tbaa !9
  %787 = load i32, ptr %10, align 4, !tbaa !5
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds double, ptr %786, i64 %788
  store double %785, ptr %789, align 8, !tbaa !13
  %790 = load double, ptr %16, align 8, !tbaa !13
  %791 = load ptr, ptr %6, align 8, !tbaa !9
  %792 = load i32, ptr %10, align 4, !tbaa !5
  %793 = add nsw i32 %792, 1
  %794 = sext i32 %793 to i64
  %795 = getelementptr inbounds double, ptr %791, i64 %794
  store double %790, ptr %795, align 8, !tbaa !13
  %796 = load i32, ptr %14, align 4, !tbaa !5
  %797 = load i32, ptr %8, align 4, !tbaa !5
  %798 = sub nsw i32 %797, %796
  store i32 %798, ptr %8, align 4, !tbaa !5
  %799 = load i32, ptr %14, align 4, !tbaa !5
  %800 = load i32, ptr %10, align 4, !tbaa !5
  %801 = add nsw i32 %800, %799
  store i32 %801, ptr %10, align 4, !tbaa !5
  %802 = load ptr, ptr %6, align 8, !tbaa !9
  %803 = load i32, ptr %8, align 4, !tbaa !5
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds double, ptr %802, i64 %804
  %806 = load double, ptr %805, align 8, !tbaa !13
  store double %806, ptr %15, align 8, !tbaa !13
  %807 = load ptr, ptr %6, align 8, !tbaa !9
  %808 = load i32, ptr %8, align 4, !tbaa !5
  %809 = add nsw i32 %808, 1
  %810 = sext i32 %809 to i64
  %811 = getelementptr inbounds double, ptr %807, i64 %810
  %812 = load double, ptr %811, align 8, !tbaa !13
  %813 = fneg double %812
  store double %813, ptr %16, align 8, !tbaa !13
  %814 = load ptr, ptr %6, align 8, !tbaa !9
  %815 = load i32, ptr %10, align 4, !tbaa !5
  %816 = sext i32 %815 to i64
  %817 = getelementptr inbounds double, ptr %814, i64 %816
  %818 = load double, ptr %817, align 8, !tbaa !13
  store double %818, ptr %17, align 8, !tbaa !13
  %819 = load ptr, ptr %6, align 8, !tbaa !9
  %820 = load i32, ptr %10, align 4, !tbaa !5
  %821 = add nsw i32 %820, 1
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds double, ptr %819, i64 %822
  %824 = load double, ptr %823, align 8, !tbaa !13
  %825 = fneg double %824
  store double %825, ptr %18, align 8, !tbaa !13
  %826 = load double, ptr %17, align 8, !tbaa !13
  %827 = load ptr, ptr %6, align 8, !tbaa !9
  %828 = load i32, ptr %8, align 4, !tbaa !5
  %829 = sext i32 %828 to i64
  %830 = getelementptr inbounds double, ptr %827, i64 %829
  store double %826, ptr %830, align 8, !tbaa !13
  %831 = load double, ptr %18, align 8, !tbaa !13
  %832 = load ptr, ptr %6, align 8, !tbaa !9
  %833 = load i32, ptr %8, align 4, !tbaa !5
  %834 = add nsw i32 %833, 1
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds double, ptr %832, i64 %835
  store double %831, ptr %836, align 8, !tbaa !13
  %837 = load double, ptr %15, align 8, !tbaa !13
  %838 = load ptr, ptr %6, align 8, !tbaa !9
  %839 = load i32, ptr %10, align 4, !tbaa !5
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds double, ptr %838, i64 %840
  store double %837, ptr %841, align 8, !tbaa !13
  %842 = load double, ptr %16, align 8, !tbaa !13
  %843 = load ptr, ptr %6, align 8, !tbaa !9
  %844 = load i32, ptr %10, align 4, !tbaa !5
  %845 = add nsw i32 %844, 1
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds double, ptr %843, i64 %846
  store double %842, ptr %847, align 8, !tbaa !13
  %848 = load i32, ptr %14, align 4, !tbaa !5
  %849 = load i32, ptr %8, align 4, !tbaa !5
  %850 = sub nsw i32 %849, %848
  store i32 %850, ptr %8, align 4, !tbaa !5
  %851 = load i32, ptr %14, align 4, !tbaa !5
  %852 = mul nsw i32 2, %851
  %853 = load i32, ptr %10, align 4, !tbaa !5
  %854 = sub nsw i32 %853, %852
  store i32 %854, ptr %10, align 4, !tbaa !5
  %855 = load ptr, ptr %6, align 8, !tbaa !9
  %856 = load i32, ptr %8, align 4, !tbaa !5
  %857 = sext i32 %856 to i64
  %858 = getelementptr inbounds double, ptr %855, i64 %857
  %859 = load double, ptr %858, align 8, !tbaa !13
  store double %859, ptr %15, align 8, !tbaa !13
  %860 = load ptr, ptr %6, align 8, !tbaa !9
  %861 = load i32, ptr %8, align 4, !tbaa !5
  %862 = add nsw i32 %861, 1
  %863 = sext i32 %862 to i64
  %864 = getelementptr inbounds double, ptr %860, i64 %863
  %865 = load double, ptr %864, align 8, !tbaa !13
  %866 = fneg double %865
  store double %866, ptr %16, align 8, !tbaa !13
  %867 = load ptr, ptr %6, align 8, !tbaa !9
  %868 = load i32, ptr %10, align 4, !tbaa !5
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds double, ptr %867, i64 %869
  %871 = load double, ptr %870, align 8, !tbaa !13
  store double %871, ptr %17, align 8, !tbaa !13
  %872 = load ptr, ptr %6, align 8, !tbaa !9
  %873 = load i32, ptr %10, align 4, !tbaa !5
  %874 = add nsw i32 %873, 1
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds double, ptr %872, i64 %875
  %877 = load double, ptr %876, align 8, !tbaa !13
  %878 = fneg double %877
  store double %878, ptr %18, align 8, !tbaa !13
  %879 = load double, ptr %17, align 8, !tbaa !13
  %880 = load ptr, ptr %6, align 8, !tbaa !9
  %881 = load i32, ptr %8, align 4, !tbaa !5
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds double, ptr %880, i64 %882
  store double %879, ptr %883, align 8, !tbaa !13
  %884 = load double, ptr %18, align 8, !tbaa !13
  %885 = load ptr, ptr %6, align 8, !tbaa !9
  %886 = load i32, ptr %8, align 4, !tbaa !5
  %887 = add nsw i32 %886, 1
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds double, ptr %885, i64 %888
  store double %884, ptr %889, align 8, !tbaa !13
  %890 = load double, ptr %15, align 8, !tbaa !13
  %891 = load ptr, ptr %6, align 8, !tbaa !9
  %892 = load i32, ptr %10, align 4, !tbaa !5
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds double, ptr %891, i64 %893
  store double %890, ptr %894, align 8, !tbaa !13
  %895 = load double, ptr %16, align 8, !tbaa !13
  %896 = load ptr, ptr %6, align 8, !tbaa !9
  %897 = load i32, ptr %10, align 4, !tbaa !5
  %898 = add nsw i32 %897, 1
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds double, ptr %896, i64 %899
  store double %895, ptr %900, align 8, !tbaa !13
  br label %901

901:                                              ; preds = %47
  %902 = load i32, ptr %7, align 4, !tbaa !5
  %903 = add nsw i32 %902, 1
  store i32 %903, ptr %7, align 4, !tbaa !5
  br label %43, !llvm.loop !15

904:                                              ; preds = %43
  %905 = load i32, ptr %9, align 4, !tbaa !5
  %906 = mul nsw i32 4, %905
  %907 = load ptr, ptr %5, align 8, !tbaa !9
  %908 = load i32, ptr %12, align 4, !tbaa !5
  %909 = load i32, ptr %9, align 4, !tbaa !5
  %910 = add nsw i32 %908, %909
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds i32, ptr %907, i64 %911
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = mul nsw i32 2, %913
  %915 = add nsw i32 %906, %914
  store i32 %915, ptr %10, align 4, !tbaa !5
  %916 = load i32, ptr %10, align 4, !tbaa !5
  %917 = add nsw i32 %916, 2
  store i32 %917, ptr %8, align 4, !tbaa !5
  %918 = load i32, ptr %13, align 4, !tbaa !5
  %919 = load i32, ptr %10, align 4, !tbaa !5
  %920 = add nsw i32 %919, %918
  store i32 %920, ptr %10, align 4, !tbaa !5
  %921 = load ptr, ptr %6, align 8, !tbaa !9
  %922 = load i32, ptr %8, align 4, !tbaa !5
  %923 = sub nsw i32 %922, 1
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds double, ptr %921, i64 %924
  %926 = load double, ptr %925, align 8, !tbaa !13
  %927 = fneg double %926
  %928 = load ptr, ptr %6, align 8, !tbaa !9
  %929 = load i32, ptr %8, align 4, !tbaa !5
  %930 = sub nsw i32 %929, 1
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds double, ptr %928, i64 %931
  store double %927, ptr %932, align 8, !tbaa !13
  %933 = load ptr, ptr %6, align 8, !tbaa !9
  %934 = load i32, ptr %8, align 4, !tbaa !5
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds double, ptr %933, i64 %935
  %937 = load double, ptr %936, align 8, !tbaa !13
  store double %937, ptr %15, align 8, !tbaa !13
  %938 = load ptr, ptr %6, align 8, !tbaa !9
  %939 = load i32, ptr %8, align 4, !tbaa !5
  %940 = add nsw i32 %939, 1
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds double, ptr %938, i64 %941
  %943 = load double, ptr %942, align 8, !tbaa !13
  %944 = fneg double %943
  store double %944, ptr %16, align 8, !tbaa !13
  %945 = load ptr, ptr %6, align 8, !tbaa !9
  %946 = load i32, ptr %10, align 4, !tbaa !5
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds double, ptr %945, i64 %947
  %949 = load double, ptr %948, align 8, !tbaa !13
  store double %949, ptr %17, align 8, !tbaa !13
  %950 = load ptr, ptr %6, align 8, !tbaa !9
  %951 = load i32, ptr %10, align 4, !tbaa !5
  %952 = add nsw i32 %951, 1
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds double, ptr %950, i64 %953
  %955 = load double, ptr %954, align 8, !tbaa !13
  %956 = fneg double %955
  store double %956, ptr %18, align 8, !tbaa !13
  %957 = load double, ptr %17, align 8, !tbaa !13
  %958 = load ptr, ptr %6, align 8, !tbaa !9
  %959 = load i32, ptr %8, align 4, !tbaa !5
  %960 = sext i32 %959 to i64
  %961 = getelementptr inbounds double, ptr %958, i64 %960
  store double %957, ptr %961, align 8, !tbaa !13
  %962 = load double, ptr %18, align 8, !tbaa !13
  %963 = load ptr, ptr %6, align 8, !tbaa !9
  %964 = load i32, ptr %8, align 4, !tbaa !5
  %965 = add nsw i32 %964, 1
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds double, ptr %963, i64 %966
  store double %962, ptr %967, align 8, !tbaa !13
  %968 = load double, ptr %15, align 8, !tbaa !13
  %969 = load ptr, ptr %6, align 8, !tbaa !9
  %970 = load i32, ptr %10, align 4, !tbaa !5
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds double, ptr %969, i64 %971
  store double %968, ptr %972, align 8, !tbaa !13
  %973 = load double, ptr %16, align 8, !tbaa !13
  %974 = load ptr, ptr %6, align 8, !tbaa !9
  %975 = load i32, ptr %10, align 4, !tbaa !5
  %976 = add nsw i32 %975, 1
  %977 = sext i32 %976 to i64
  %978 = getelementptr inbounds double, ptr %974, i64 %977
  store double %973, ptr %978, align 8, !tbaa !13
  %979 = load ptr, ptr %6, align 8, !tbaa !9
  %980 = load i32, ptr %10, align 4, !tbaa !5
  %981 = add nsw i32 %980, 3
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds double, ptr %979, i64 %982
  %984 = load double, ptr %983, align 8, !tbaa !13
  %985 = fneg double %984
  %986 = load ptr, ptr %6, align 8, !tbaa !9
  %987 = load i32, ptr %10, align 4, !tbaa !5
  %988 = add nsw i32 %987, 3
  %989 = sext i32 %988 to i64
  %990 = getelementptr inbounds double, ptr %986, i64 %989
  store double %985, ptr %990, align 8, !tbaa !13
  %991 = load i32, ptr %14, align 4, !tbaa !5
  %992 = load i32, ptr %8, align 4, !tbaa !5
  %993 = add nsw i32 %992, %991
  store i32 %993, ptr %8, align 4, !tbaa !5
  %994 = load i32, ptr %14, align 4, !tbaa !5
  %995 = mul nsw i32 2, %994
  %996 = load i32, ptr %10, align 4, !tbaa !5
  %997 = add nsw i32 %996, %995
  store i32 %997, ptr %10, align 4, !tbaa !5
  %998 = load ptr, ptr %6, align 8, !tbaa !9
  %999 = load i32, ptr %8, align 4, !tbaa !5
  %1000 = sext i32 %999 to i64
  %1001 = getelementptr inbounds double, ptr %998, i64 %1000
  %1002 = load double, ptr %1001, align 8, !tbaa !13
  store double %1002, ptr %15, align 8, !tbaa !13
  %1003 = load ptr, ptr %6, align 8, !tbaa !9
  %1004 = load i32, ptr %8, align 4, !tbaa !5
  %1005 = add nsw i32 %1004, 1
  %1006 = sext i32 %1005 to i64
  %1007 = getelementptr inbounds double, ptr %1003, i64 %1006
  %1008 = load double, ptr %1007, align 8, !tbaa !13
  %1009 = fneg double %1008
  store double %1009, ptr %16, align 8, !tbaa !13
  %1010 = load ptr, ptr %6, align 8, !tbaa !9
  %1011 = load i32, ptr %10, align 4, !tbaa !5
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds double, ptr %1010, i64 %1012
  %1014 = load double, ptr %1013, align 8, !tbaa !13
  store double %1014, ptr %17, align 8, !tbaa !13
  %1015 = load ptr, ptr %6, align 8, !tbaa !9
  %1016 = load i32, ptr %10, align 4, !tbaa !5
  %1017 = add nsw i32 %1016, 1
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds double, ptr %1015, i64 %1018
  %1020 = load double, ptr %1019, align 8, !tbaa !13
  %1021 = fneg double %1020
  store double %1021, ptr %18, align 8, !tbaa !13
  %1022 = load double, ptr %17, align 8, !tbaa !13
  %1023 = load ptr, ptr %6, align 8, !tbaa !9
  %1024 = load i32, ptr %8, align 4, !tbaa !5
  %1025 = sext i32 %1024 to i64
  %1026 = getelementptr inbounds double, ptr %1023, i64 %1025
  store double %1022, ptr %1026, align 8, !tbaa !13
  %1027 = load double, ptr %18, align 8, !tbaa !13
  %1028 = load ptr, ptr %6, align 8, !tbaa !9
  %1029 = load i32, ptr %8, align 4, !tbaa !5
  %1030 = add nsw i32 %1029, 1
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds double, ptr %1028, i64 %1031
  store double %1027, ptr %1032, align 8, !tbaa !13
  %1033 = load double, ptr %15, align 8, !tbaa !13
  %1034 = load ptr, ptr %6, align 8, !tbaa !9
  %1035 = load i32, ptr %10, align 4, !tbaa !5
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds double, ptr %1034, i64 %1036
  store double %1033, ptr %1037, align 8, !tbaa !13
  %1038 = load double, ptr %16, align 8, !tbaa !13
  %1039 = load ptr, ptr %6, align 8, !tbaa !9
  %1040 = load i32, ptr %10, align 4, !tbaa !5
  %1041 = add nsw i32 %1040, 1
  %1042 = sext i32 %1041 to i64
  %1043 = getelementptr inbounds double, ptr %1039, i64 %1042
  store double %1038, ptr %1043, align 8, !tbaa !13
  %1044 = load i32, ptr %14, align 4, !tbaa !5
  %1045 = load i32, ptr %8, align 4, !tbaa !5
  %1046 = add nsw i32 %1045, %1044
  store i32 %1046, ptr %8, align 4, !tbaa !5
  %1047 = load i32, ptr %14, align 4, !tbaa !5
  %1048 = load i32, ptr %10, align 4, !tbaa !5
  %1049 = sub nsw i32 %1048, %1047
  store i32 %1049, ptr %10, align 4, !tbaa !5
  %1050 = load ptr, ptr %6, align 8, !tbaa !9
  %1051 = load i32, ptr %8, align 4, !tbaa !5
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds double, ptr %1050, i64 %1052
  %1054 = load double, ptr %1053, align 8, !tbaa !13
  store double %1054, ptr %15, align 8, !tbaa !13
  %1055 = load ptr, ptr %6, align 8, !tbaa !9
  %1056 = load i32, ptr %8, align 4, !tbaa !5
  %1057 = add nsw i32 %1056, 1
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds double, ptr %1055, i64 %1058
  %1060 = load double, ptr %1059, align 8, !tbaa !13
  %1061 = fneg double %1060
  store double %1061, ptr %16, align 8, !tbaa !13
  %1062 = load ptr, ptr %6, align 8, !tbaa !9
  %1063 = load i32, ptr %10, align 4, !tbaa !5
  %1064 = sext i32 %1063 to i64
  %1065 = getelementptr inbounds double, ptr %1062, i64 %1064
  %1066 = load double, ptr %1065, align 8, !tbaa !13
  store double %1066, ptr %17, align 8, !tbaa !13
  %1067 = load ptr, ptr %6, align 8, !tbaa !9
  %1068 = load i32, ptr %10, align 4, !tbaa !5
  %1069 = add nsw i32 %1068, 1
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds double, ptr %1067, i64 %1070
  %1072 = load double, ptr %1071, align 8, !tbaa !13
  %1073 = fneg double %1072
  store double %1073, ptr %18, align 8, !tbaa !13
  %1074 = load double, ptr %17, align 8, !tbaa !13
  %1075 = load ptr, ptr %6, align 8, !tbaa !9
  %1076 = load i32, ptr %8, align 4, !tbaa !5
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds double, ptr %1075, i64 %1077
  store double %1074, ptr %1078, align 8, !tbaa !13
  %1079 = load double, ptr %18, align 8, !tbaa !13
  %1080 = load ptr, ptr %6, align 8, !tbaa !9
  %1081 = load i32, ptr %8, align 4, !tbaa !5
  %1082 = add nsw i32 %1081, 1
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds double, ptr %1080, i64 %1083
  store double %1079, ptr %1084, align 8, !tbaa !13
  %1085 = load double, ptr %15, align 8, !tbaa !13
  %1086 = load ptr, ptr %6, align 8, !tbaa !9
  %1087 = load i32, ptr %10, align 4, !tbaa !5
  %1088 = sext i32 %1087 to i64
  %1089 = getelementptr inbounds double, ptr %1086, i64 %1088
  store double %1085, ptr %1089, align 8, !tbaa !13
  %1090 = load double, ptr %16, align 8, !tbaa !13
  %1091 = load ptr, ptr %6, align 8, !tbaa !9
  %1092 = load i32, ptr %10, align 4, !tbaa !5
  %1093 = add nsw i32 %1092, 1
  %1094 = sext i32 %1093 to i64
  %1095 = getelementptr inbounds double, ptr %1091, i64 %1094
  store double %1090, ptr %1095, align 8, !tbaa !13
  %1096 = load i32, ptr %8, align 4, !tbaa !5
  %1097 = sub nsw i32 %1096, 2
  store i32 %1097, ptr %8, align 4, !tbaa !5
  %1098 = load i32, ptr %13, align 4, !tbaa !5
  %1099 = load i32, ptr %10, align 4, !tbaa !5
  %1100 = sub nsw i32 %1099, %1098
  store i32 %1100, ptr %10, align 4, !tbaa !5
  %1101 = load ptr, ptr %6, align 8, !tbaa !9
  %1102 = load i32, ptr %8, align 4, !tbaa !5
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds double, ptr %1101, i64 %1103
  %1105 = load double, ptr %1104, align 8, !tbaa !13
  store double %1105, ptr %15, align 8, !tbaa !13
  %1106 = load ptr, ptr %6, align 8, !tbaa !9
  %1107 = load i32, ptr %8, align 4, !tbaa !5
  %1108 = add nsw i32 %1107, 1
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds double, ptr %1106, i64 %1109
  %1111 = load double, ptr %1110, align 8, !tbaa !13
  %1112 = fneg double %1111
  store double %1112, ptr %16, align 8, !tbaa !13
  %1113 = load ptr, ptr %6, align 8, !tbaa !9
  %1114 = load i32, ptr %10, align 4, !tbaa !5
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds double, ptr %1113, i64 %1115
  %1117 = load double, ptr %1116, align 8, !tbaa !13
  store double %1117, ptr %17, align 8, !tbaa !13
  %1118 = load ptr, ptr %6, align 8, !tbaa !9
  %1119 = load i32, ptr %10, align 4, !tbaa !5
  %1120 = add nsw i32 %1119, 1
  %1121 = sext i32 %1120 to i64
  %1122 = getelementptr inbounds double, ptr %1118, i64 %1121
  %1123 = load double, ptr %1122, align 8, !tbaa !13
  %1124 = fneg double %1123
  store double %1124, ptr %18, align 8, !tbaa !13
  %1125 = load double, ptr %17, align 8, !tbaa !13
  %1126 = load ptr, ptr %6, align 8, !tbaa !9
  %1127 = load i32, ptr %8, align 4, !tbaa !5
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds double, ptr %1126, i64 %1128
  store double %1125, ptr %1129, align 8, !tbaa !13
  %1130 = load double, ptr %18, align 8, !tbaa !13
  %1131 = load ptr, ptr %6, align 8, !tbaa !9
  %1132 = load i32, ptr %8, align 4, !tbaa !5
  %1133 = add nsw i32 %1132, 1
  %1134 = sext i32 %1133 to i64
  %1135 = getelementptr inbounds double, ptr %1131, i64 %1134
  store double %1130, ptr %1135, align 8, !tbaa !13
  %1136 = load double, ptr %15, align 8, !tbaa !13
  %1137 = load ptr, ptr %6, align 8, !tbaa !9
  %1138 = load i32, ptr %10, align 4, !tbaa !5
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds double, ptr %1137, i64 %1139
  store double %1136, ptr %1140, align 8, !tbaa !13
  %1141 = load double, ptr %16, align 8, !tbaa !13
  %1142 = load ptr, ptr %6, align 8, !tbaa !9
  %1143 = load i32, ptr %10, align 4, !tbaa !5
  %1144 = add nsw i32 %1143, 1
  %1145 = sext i32 %1144 to i64
  %1146 = getelementptr inbounds double, ptr %1142, i64 %1145
  store double %1141, ptr %1146, align 8, !tbaa !13
  %1147 = load i32, ptr %13, align 4, !tbaa !5
  %1148 = add nsw i32 %1147, 2
  %1149 = load i32, ptr %8, align 4, !tbaa !5
  %1150 = add nsw i32 %1149, %1148
  store i32 %1150, ptr %8, align 4, !tbaa !5
  %1151 = load i32, ptr %13, align 4, !tbaa !5
  %1152 = add nsw i32 %1151, 2
  %1153 = load i32, ptr %10, align 4, !tbaa !5
  %1154 = add nsw i32 %1153, %1152
  store i32 %1154, ptr %10, align 4, !tbaa !5
  %1155 = load ptr, ptr %6, align 8, !tbaa !9
  %1156 = load i32, ptr %8, align 4, !tbaa !5
  %1157 = sext i32 %1156 to i64
  %1158 = getelementptr inbounds double, ptr %1155, i64 %1157
  %1159 = load double, ptr %1158, align 8, !tbaa !13
  store double %1159, ptr %15, align 8, !tbaa !13
  %1160 = load ptr, ptr %6, align 8, !tbaa !9
  %1161 = load i32, ptr %8, align 4, !tbaa !5
  %1162 = add nsw i32 %1161, 1
  %1163 = sext i32 %1162 to i64
  %1164 = getelementptr inbounds double, ptr %1160, i64 %1163
  %1165 = load double, ptr %1164, align 8, !tbaa !13
  %1166 = fneg double %1165
  store double %1166, ptr %16, align 8, !tbaa !13
  %1167 = load ptr, ptr %6, align 8, !tbaa !9
  %1168 = load i32, ptr %10, align 4, !tbaa !5
  %1169 = sext i32 %1168 to i64
  %1170 = getelementptr inbounds double, ptr %1167, i64 %1169
  %1171 = load double, ptr %1170, align 8, !tbaa !13
  store double %1171, ptr %17, align 8, !tbaa !13
  %1172 = load ptr, ptr %6, align 8, !tbaa !9
  %1173 = load i32, ptr %10, align 4, !tbaa !5
  %1174 = add nsw i32 %1173, 1
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds double, ptr %1172, i64 %1175
  %1177 = load double, ptr %1176, align 8, !tbaa !13
  %1178 = fneg double %1177
  store double %1178, ptr %18, align 8, !tbaa !13
  %1179 = load double, ptr %17, align 8, !tbaa !13
  %1180 = load ptr, ptr %6, align 8, !tbaa !9
  %1181 = load i32, ptr %8, align 4, !tbaa !5
  %1182 = sext i32 %1181 to i64
  %1183 = getelementptr inbounds double, ptr %1180, i64 %1182
  store double %1179, ptr %1183, align 8, !tbaa !13
  %1184 = load double, ptr %18, align 8, !tbaa !13
  %1185 = load ptr, ptr %6, align 8, !tbaa !9
  %1186 = load i32, ptr %8, align 4, !tbaa !5
  %1187 = add nsw i32 %1186, 1
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds double, ptr %1185, i64 %1188
  store double %1184, ptr %1189, align 8, !tbaa !13
  %1190 = load double, ptr %15, align 8, !tbaa !13
  %1191 = load ptr, ptr %6, align 8, !tbaa !9
  %1192 = load i32, ptr %10, align 4, !tbaa !5
  %1193 = sext i32 %1192 to i64
  %1194 = getelementptr inbounds double, ptr %1191, i64 %1193
  store double %1190, ptr %1194, align 8, !tbaa !13
  %1195 = load double, ptr %16, align 8, !tbaa !13
  %1196 = load ptr, ptr %6, align 8, !tbaa !9
  %1197 = load i32, ptr %10, align 4, !tbaa !5
  %1198 = add nsw i32 %1197, 1
  %1199 = sext i32 %1198 to i64
  %1200 = getelementptr inbounds double, ptr %1196, i64 %1199
  store double %1195, ptr %1200, align 8, !tbaa !13
  %1201 = load i32, ptr %13, align 4, !tbaa !5
  %1202 = load i32, ptr %14, align 4, !tbaa !5
  %1203 = sub nsw i32 %1201, %1202
  %1204 = load i32, ptr %8, align 4, !tbaa !5
  %1205 = sub nsw i32 %1204, %1203
  store i32 %1205, ptr %8, align 4, !tbaa !5
  %1206 = load i32, ptr %14, align 4, !tbaa !5
  %1207 = mul nsw i32 2, %1206
  %1208 = sub nsw i32 %1207, 2
  %1209 = load i32, ptr %10, align 4, !tbaa !5
  %1210 = add nsw i32 %1209, %1208
  store i32 %1210, ptr %10, align 4, !tbaa !5
  %1211 = load ptr, ptr %6, align 8, !tbaa !9
  %1212 = load i32, ptr %8, align 4, !tbaa !5
  %1213 = sub nsw i32 %1212, 1
  %1214 = sext i32 %1213 to i64
  %1215 = getelementptr inbounds double, ptr %1211, i64 %1214
  %1216 = load double, ptr %1215, align 8, !tbaa !13
  %1217 = fneg double %1216
  %1218 = load ptr, ptr %6, align 8, !tbaa !9
  %1219 = load i32, ptr %8, align 4, !tbaa !5
  %1220 = sub nsw i32 %1219, 1
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds double, ptr %1218, i64 %1221
  store double %1217, ptr %1222, align 8, !tbaa !13
  %1223 = load ptr, ptr %6, align 8, !tbaa !9
  %1224 = load i32, ptr %8, align 4, !tbaa !5
  %1225 = sext i32 %1224 to i64
  %1226 = getelementptr inbounds double, ptr %1223, i64 %1225
  %1227 = load double, ptr %1226, align 8, !tbaa !13
  store double %1227, ptr %15, align 8, !tbaa !13
  %1228 = load ptr, ptr %6, align 8, !tbaa !9
  %1229 = load i32, ptr %8, align 4, !tbaa !5
  %1230 = add nsw i32 %1229, 1
  %1231 = sext i32 %1230 to i64
  %1232 = getelementptr inbounds double, ptr %1228, i64 %1231
  %1233 = load double, ptr %1232, align 8, !tbaa !13
  %1234 = fneg double %1233
  store double %1234, ptr %16, align 8, !tbaa !13
  %1235 = load ptr, ptr %6, align 8, !tbaa !9
  %1236 = load i32, ptr %10, 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 !13
  store double %1239, ptr %17, align 8, !tbaa !13
  %1240 = load ptr, ptr %6, align 8, !tbaa !9
  %1241 = load i32, ptr %10, align 4, !tbaa !5
  %1242 = add nsw i32 %1241, 1
  %1243 = sext i32 %1242 to i64
  %1244 = getelementptr inbounds double, ptr %1240, i64 %1243
  %1245 = load double, ptr %1244, align 8, !tbaa !13
  %1246 = fneg double %1245
  store double %1246, ptr %18, align 8, !tbaa !13
  %1247 = load double, ptr %17, align 8, !tbaa !13
  %1248 = load ptr, ptr %6, align 8, !tbaa !9
  %1249 = load i32, ptr %8, align 4, !tbaa !5
  %1250 = sext i32 %1249 to i64
  %1251 = getelementptr inbounds double, ptr %1248, i64 %1250
  store double %1247, ptr %1251, align 8, !tbaa !13
  %1252 = load double, ptr %18, align 8, !tbaa !13
  %1253 = load ptr, ptr %6, align 8, !tbaa !9
  %1254 = load i32, ptr %8, align 4, !tbaa !5
  %1255 = add nsw i32 %1254, 1
  %1256 = sext i32 %1255 to i64
  %1257 = getelementptr inbounds double, ptr %1253, i64 %1256
  store double %1252, ptr %1257, align 8, !tbaa !13
  %1258 = load double, ptr %15, align 8, !tbaa !13
  %1259 = load ptr, ptr %6, align 8, !tbaa !9
  %1260 = load i32, ptr %10, align 4, !tbaa !5
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds double, ptr %1259, i64 %1261
  store double %1258, ptr %1262, align 8, !tbaa !13
  %1263 = load double, ptr %16, align 8, !tbaa !13
  %1264 = load ptr, ptr %6, align 8, !tbaa !9
  %1265 = load i32, ptr %10, align 4, !tbaa !5
  %1266 = add nsw i32 %1265, 1
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds double, ptr %1264, i64 %1267
  store double %1263, ptr %1268, align 8, !tbaa !13
  %1269 = load ptr, ptr %6, align 8, !tbaa !9
  %1270 = load i32, ptr %10, align 4, !tbaa !5
  %1271 = add nsw i32 %1270, 3
  %1272 = sext i32 %1271 to i64
  %1273 = getelementptr inbounds double, ptr %1269, i64 %1272
  %1274 = load double, ptr %1273, align 8, !tbaa !13
  %1275 = fneg double %1274
  %1276 = load ptr, ptr %6, align 8, !tbaa !9
  %1277 = load i32, ptr %10, align 4, !tbaa !5
  %1278 = add nsw i32 %1277, 3
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds double, ptr %1276, i64 %1279
  store double %1275, ptr %1280, align 8, !tbaa !13
  br label %1281

1281:                                             ; preds = %904
  %1282 = load i32, ptr %9, align 4, !tbaa !5
  %1283 = add nsw i32 %1282, 1
  store i32 %1283, ptr %9, align 4, !tbaa !5
  br label %38, !llvm.loop !16

1284:                                             ; preds = %38
  br label %1892

1285:                                             ; preds = %30
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %1286

1286:                                             ; preds = %1888, %1285
  %1287 = load i32, ptr %9, align 4, !tbaa !5
  %1288 = load i32, ptr %12, align 4, !tbaa !5
  %1289 = icmp slt i32 %1287, %1288
  br i1 %1289, label %1290, label %1891

1290:                                             ; preds = %1286
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %1291

1291:                                             ; preds = %1723, %1290
  %1292 = load i32, ptr %7, align 4, !tbaa !5
  %1293 = load i32, ptr %9, align 4, !tbaa !5
  %1294 = icmp slt i32 %1292, %1293
  br i1 %1294, label %1295, label %1726

1295:                                             ; preds = %1291
  %1296 = load i32, ptr %7, align 4, !tbaa !5
  %1297 = mul nsw i32 4, %1296
  %1298 = load ptr, ptr %5, align 8, !tbaa !9
  %1299 = load i32, ptr %12, align 4, !tbaa !5
  %1300 = load i32, ptr %9, align 4, !tbaa !5
  %1301 = add nsw i32 %1299, %1300
  %1302 = sext i32 %1301 to i64
  %1303 = getelementptr inbounds i32, ptr %1298, i64 %1302
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = add nsw i32 %1297, %1304
  store i32 %1305, ptr %8, align 4, !tbaa !5
  %1306 = load i32, ptr %9, align 4, !tbaa !5
  %1307 = mul nsw i32 4, %1306
  %1308 = load ptr, ptr %5, align 8, !tbaa !9
  %1309 = load i32, ptr %12, align 4, !tbaa !5
  %1310 = load i32, ptr %7, align 4, !tbaa !5
  %1311 = add nsw i32 %1309, %1310
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds i32, ptr %1308, i64 %1312
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = add nsw i32 %1307, %1314
  store i32 %1315, ptr %10, align 4, !tbaa !5
  %1316 = load ptr, ptr %6, align 8, !tbaa !9
  %1317 = load i32, ptr %8, align 4, !tbaa !5
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds double, ptr %1316, i64 %1318
  %1320 = load double, ptr %1319, align 8, !tbaa !13
  store double %1320, ptr %15, align 8, !tbaa !13
  %1321 = load ptr, ptr %6, align 8, !tbaa !9
  %1322 = load i32, ptr %8, align 4, !tbaa !5
  %1323 = add nsw i32 %1322, 1
  %1324 = sext i32 %1323 to i64
  %1325 = getelementptr inbounds double, ptr %1321, i64 %1324
  %1326 = load double, ptr %1325, align 8, !tbaa !13
  %1327 = fneg double %1326
  store double %1327, ptr %16, align 8, !tbaa !13
  %1328 = load ptr, ptr %6, align 8, !tbaa !9
  %1329 = load i32, ptr %10, align 4, !tbaa !5
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds double, ptr %1328, i64 %1330
  %1332 = load double, ptr %1331, align 8, !tbaa !13
  store double %1332, ptr %17, align 8, !tbaa !13
  %1333 = load ptr, ptr %6, align 8, !tbaa !9
  %1334 = load i32, ptr %10, align 4, !tbaa !5
  %1335 = add nsw i32 %1334, 1
  %1336 = sext i32 %1335 to i64
  %1337 = getelementptr inbounds double, ptr %1333, i64 %1336
  %1338 = load double, ptr %1337, align 8, !tbaa !13
  %1339 = fneg double %1338
  store double %1339, ptr %18, align 8, !tbaa !13
  %1340 = load double, ptr %17, align 8, !tbaa !13
  %1341 = load ptr, ptr %6, align 8, !tbaa !9
  %1342 = load i32, ptr %8, align 4, !tbaa !5
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds double, ptr %1341, i64 %1343
  store double %1340, ptr %1344, align 8, !tbaa !13
  %1345 = load double, ptr %18, align 8, !tbaa !13
  %1346 = load ptr, ptr %6, align 8, !tbaa !9
  %1347 = load i32, ptr %8, align 4, !tbaa !5
  %1348 = add nsw i32 %1347, 1
  %1349 = sext i32 %1348 to i64
  %1350 = getelementptr inbounds double, ptr %1346, i64 %1349
  store double %1345, ptr %1350, align 8, !tbaa !13
  %1351 = load double, ptr %15, align 8, !tbaa !13
  %1352 = load ptr, ptr %6, align 8, !tbaa !9
  %1353 = load i32, ptr %10, align 4, !tbaa !5
  %1354 = sext i32 %1353 to i64
  %1355 = getelementptr inbounds double, ptr %1352, i64 %1354
  store double %1351, ptr %1355, align 8, !tbaa !13
  %1356 = load double, ptr %16, align 8, !tbaa !13
  %1357 = load ptr, ptr %6, align 8, !tbaa !9
  %1358 = load i32, ptr %10, align 4, !tbaa !5
  %1359 = add nsw i32 %1358, 1
  %1360 = sext i32 %1359 to i64
  %1361 = getelementptr inbounds double, ptr %1357, i64 %1360
  store double %1356, ptr %1361, align 8, !tbaa !13
  %1362 = load i32, ptr %14, align 4, !tbaa !5
  %1363 = load i32, ptr %8, align 4, !tbaa !5
  %1364 = add nsw i32 %1363, %1362
  store i32 %1364, ptr %8, align 4, !tbaa !5
  %1365 = load i32, ptr %14, align 4, !tbaa !5
  %1366 = load i32, ptr %10, align 4, !tbaa !5
  %1367 = add nsw i32 %1366, %1365
  store i32 %1367, ptr %10, align 4, !tbaa !5
  %1368 = load ptr, ptr %6, align 8, !tbaa !9
  %1369 = load i32, ptr %8, align 4, !tbaa !5
  %1370 = sext i32 %1369 to i64
  %1371 = getelementptr inbounds double, ptr %1368, i64 %1370
  %1372 = load double, ptr %1371, align 8, !tbaa !13
  store double %1372, ptr %15, align 8, !tbaa !13
  %1373 = load ptr, ptr %6, align 8, !tbaa !9
  %1374 = load i32, ptr %8, align 4, !tbaa !5
  %1375 = add nsw i32 %1374, 1
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds double, ptr %1373, i64 %1376
  %1378 = load double, ptr %1377, align 8, !tbaa !13
  %1379 = fneg double %1378
  store double %1379, ptr %16, align 8, !tbaa !13
  %1380 = load ptr, ptr %6, align 8, !tbaa !9
  %1381 = load i32, ptr %10, align 4, !tbaa !5
  %1382 = sext i32 %1381 to i64
  %1383 = getelementptr inbounds double, ptr %1380, i64 %1382
  %1384 = load double, ptr %1383, align 8, !tbaa !13
  store double %1384, ptr %17, align 8, !tbaa !13
  %1385 = load ptr, ptr %6, align 8, !tbaa !9
  %1386 = load i32, ptr %10, align 4, !tbaa !5
  %1387 = add nsw i32 %1386, 1
  %1388 = sext i32 %1387 to i64
  %1389 = getelementptr inbounds double, ptr %1385, i64 %1388
  %1390 = load double, ptr %1389, align 8, !tbaa !13
  %1391 = fneg double %1390
  store double %1391, ptr %18, align 8, !tbaa !13
  %1392 = load double, ptr %17, align 8, !tbaa !13
  %1393 = load ptr, ptr %6, align 8, !tbaa !9
  %1394 = load i32, ptr %8, align 4, !tbaa !5
  %1395 = sext i32 %1394 to i64
  %1396 = getelementptr inbounds double, ptr %1393, i64 %1395
  store double %1392, ptr %1396, align 8, !tbaa !13
  %1397 = load double, ptr %18, align 8, !tbaa !13
  %1398 = load ptr, ptr %6, align 8, !tbaa !9
  %1399 = load i32, ptr %8, align 4, !tbaa !5
  %1400 = add nsw i32 %1399, 1
  %1401 = sext i32 %1400 to i64
  %1402 = getelementptr inbounds double, ptr %1398, i64 %1401
  store double %1397, ptr %1402, align 8, !tbaa !13
  %1403 = load double, ptr %15, align 8, !tbaa !13
  %1404 = load ptr, ptr %6, align 8, !tbaa !9
  %1405 = load i32, ptr %10, align 4, !tbaa !5
  %1406 = sext i32 %1405 to i64
  %1407 = getelementptr inbounds double, ptr %1404, i64 %1406
  store double %1403, ptr %1407, align 8, !tbaa !13
  %1408 = load double, ptr %16, align 8, !tbaa !13
  %1409 = load ptr, ptr %6, align 8, !tbaa !9
  %1410 = load i32, ptr %10, align 4, !tbaa !5
  %1411 = add nsw i32 %1410, 1
  %1412 = sext i32 %1411 to i64
  %1413 = getelementptr inbounds double, ptr %1409, i64 %1412
  store double %1408, ptr %1413, align 8, !tbaa !13
  %1414 = load i32, ptr %13, align 4, !tbaa !5
  %1415 = load i32, ptr %8, align 4, !tbaa !5
  %1416 = add nsw i32 %1415, %1414
  store i32 %1416, ptr %8, align 4, !tbaa !5
  %1417 = load i32, ptr %10, align 4, !tbaa !5
  %1418 = add nsw i32 %1417, 2
  store i32 %1418, ptr %10, align 4, !tbaa !5
  %1419 = load ptr, ptr %6, align 8, !tbaa !9
  %1420 = load i32, ptr %8, align 4, !tbaa !5
  %1421 = sext i32 %1420 to i64
  %1422 = getelementptr inbounds double, ptr %1419, i64 %1421
  %1423 = load double, ptr %1422, align 8, !tbaa !13
  store double %1423, ptr %15, align 8, !tbaa !13
  %1424 = load ptr, ptr %6, align 8, !tbaa !9
  %1425 = load i32, ptr %8, align 4, !tbaa !5
  %1426 = add nsw i32 %1425, 1
  %1427 = sext i32 %1426 to i64
  %1428 = getelementptr inbounds double, ptr %1424, i64 %1427
  %1429 = load double, ptr %1428, align 8, !tbaa !13
  %1430 = fneg double %1429
  store double %1430, ptr %16, align 8, !tbaa !13
  %1431 = load ptr, ptr %6, align 8, !tbaa !9
  %1432 = load i32, ptr %10, align 4, !tbaa !5
  %1433 = sext i32 %1432 to i64
  %1434 = getelementptr inbounds double, ptr %1431, i64 %1433
  %1435 = load double, ptr %1434, align 8, !tbaa !13
  store double %1435, ptr %17, align 8, !tbaa !13
  %1436 = load ptr, ptr %6, align 8, !tbaa !9
  %1437 = load i32, ptr %10, align 4, !tbaa !5
  %1438 = add nsw i32 %1437, 1
  %1439 = sext i32 %1438 to i64
  %1440 = getelementptr inbounds double, ptr %1436, i64 %1439
  %1441 = load double, ptr %1440, align 8, !tbaa !13
  %1442 = fneg double %1441
  store double %1442, ptr %18, align 8, !tbaa !13
  %1443 = load double, ptr %17, align 8, !tbaa !13
  %1444 = load ptr, ptr %6, align 8, !tbaa !9
  %1445 = load i32, ptr %8, align 4, !tbaa !5
  %1446 = sext i32 %1445 to i64
  %1447 = getelementptr inbounds double, ptr %1444, i64 %1446
  store double %1443, ptr %1447, align 8, !tbaa !13
  %1448 = load double, ptr %18, align 8, !tbaa !13
  %1449 = load ptr, ptr %6, align 8, !tbaa !9
  %1450 = load i32, ptr %8, align 4, !tbaa !5
  %1451 = add nsw i32 %1450, 1
  %1452 = sext i32 %1451 to i64
  %1453 = getelementptr inbounds double, ptr %1449, i64 %1452
  store double %1448, ptr %1453, align 8, !tbaa !13
  %1454 = load double, ptr %15, align 8, !tbaa !13
  %1455 = load ptr, ptr %6, align 8, !tbaa !9
  %1456 = load i32, ptr %10, align 4, !tbaa !5
  %1457 = sext i32 %1456 to i64
  %1458 = getelementptr inbounds double, ptr %1455, i64 %1457
  store double %1454, ptr %1458, align 8, !tbaa !13
  %1459 = load double, ptr %16, align 8, !tbaa !13
  %1460 = load ptr, ptr %6, align 8, !tbaa !9
  %1461 = load i32, ptr %10, align 4, !tbaa !5
  %1462 = add nsw i32 %1461, 1
  %1463 = sext i32 %1462 to i64
  %1464 = getelementptr inbounds double, ptr %1460, i64 %1463
  store double %1459, ptr %1464, align 8, !tbaa !13
  %1465 = load i32, ptr %14, align 4, !tbaa !5
  %1466 = load i32, ptr %8, align 4, !tbaa !5
  %1467 = sub nsw i32 %1466, %1465
  store i32 %1467, ptr %8, align 4, !tbaa !5
  %1468 = load i32, ptr %14, align 4, !tbaa !5
  %1469 = load i32, ptr %10, align 4, !tbaa !5
  %1470 = sub nsw i32 %1469, %1468
  store i32 %1470, ptr %10, align 4, !tbaa !5
  %1471 = load ptr, ptr %6, align 8, !tbaa !9
  %1472 = load i32, ptr %8, align 4, !tbaa !5
  %1473 = sext i32 %1472 to i64
  %1474 = getelementptr inbounds double, ptr %1471, i64 %1473
  %1475 = load double, ptr %1474, align 8, !tbaa !13
  store double %1475, ptr %15, align 8, !tbaa !13
  %1476 = load ptr, ptr %6, align 8, !tbaa !9
  %1477 = load i32, ptr %8, align 4, !tbaa !5
  %1478 = add nsw i32 %1477, 1
  %1479 = sext i32 %1478 to i64
  %1480 = getelementptr inbounds double, ptr %1476, i64 %1479
  %1481 = load double, ptr %1480, align 8, !tbaa !13
  %1482 = fneg double %1481
  store double %1482, ptr %16, align 8, !tbaa !13
  %1483 = load ptr, ptr %6, align 8, !tbaa !9
  %1484 = load i32, ptr %10, align 4, !tbaa !5
  %1485 = sext i32 %1484 to i64
  %1486 = getelementptr inbounds double, ptr %1483, i64 %1485
  %1487 = load double, ptr %1486, align 8, !tbaa !13
  store double %1487, ptr %17, align 8, !tbaa !13
  %1488 = load ptr, ptr %6, align 8, !tbaa !9
  %1489 = load i32, ptr %10, align 4, !tbaa !5
  %1490 = add nsw i32 %1489, 1
  %1491 = sext i32 %1490 to i64
  %1492 = getelementptr inbounds double, ptr %1488, i64 %1491
  %1493 = load double, ptr %1492, align 8, !tbaa !13
  %1494 = fneg double %1493
  store double %1494, ptr %18, align 8, !tbaa !13
  %1495 = load double, ptr %17, align 8, !tbaa !13
  %1496 = load ptr, ptr %6, align 8, !tbaa !9
  %1497 = load i32, ptr %8, align 4, !tbaa !5
  %1498 = sext i32 %1497 to i64
  %1499 = getelementptr inbounds double, ptr %1496, i64 %1498
  store double %1495, ptr %1499, align 8, !tbaa !13
  %1500 = load double, ptr %18, align 8, !tbaa !13
  %1501 = load ptr, ptr %6, align 8, !tbaa !9
  %1502 = load i32, ptr %8, align 4, !tbaa !5
  %1503 = add nsw i32 %1502, 1
  %1504 = sext i32 %1503 to i64
  %1505 = getelementptr inbounds double, ptr %1501, i64 %1504
  store double %1500, ptr %1505, align 8, !tbaa !13
  %1506 = load double, ptr %15, align 8, !tbaa !13
  %1507 = load ptr, ptr %6, align 8, !tbaa !9
  %1508 = load i32, ptr %10, align 4, !tbaa !5
  %1509 = sext i32 %1508 to i64
  %1510 = getelementptr inbounds double, ptr %1507, i64 %1509
  store double %1506, ptr %1510, align 8, !tbaa !13
  %1511 = load double, ptr %16, align 8, !tbaa !13
  %1512 = load ptr, ptr %6, align 8, !tbaa !9
  %1513 = load i32, ptr %10, align 4, !tbaa !5
  %1514 = add nsw i32 %1513, 1
  %1515 = sext i32 %1514 to i64
  %1516 = getelementptr inbounds double, ptr %1512, i64 %1515
  store double %1511, ptr %1516, align 8, !tbaa !13
  %1517 = load i32, ptr %8, align 4, !tbaa !5
  %1518 = add nsw i32 %1517, 2
  store i32 %1518, ptr %8, align 4, !tbaa !5
  %1519 = load i32, ptr %13, align 4, !tbaa !5
  %1520 = load i32, ptr %10, align 4, !tbaa !5
  %1521 = add nsw i32 %1520, %1519
  store i32 %1521, ptr %10, align 4, !tbaa !5
  %1522 = load ptr, ptr %6, align 8, !tbaa !9
  %1523 = load i32, ptr %8, align 4, !tbaa !5
  %1524 = sext i32 %1523 to i64
  %1525 = getelementptr inbounds double, ptr %1522, i64 %1524
  %1526 = load double, ptr %1525, align 8, !tbaa !13
  store double %1526, ptr %15, align 8, !tbaa !13
  %1527 = load ptr, ptr %6, align 8, !tbaa !9
  %1528 = load i32, ptr %8, align 4, !tbaa !5
  %1529 = add nsw i32 %1528, 1
  %1530 = sext i32 %1529 to i64
  %1531 = getelementptr inbounds double, ptr %1527, i64 %1530
  %1532 = load double, ptr %1531, align 8, !tbaa !13
  %1533 = fneg double %1532
  store double %1533, ptr %16, align 8, !tbaa !13
  %1534 = load ptr, ptr %6, align 8, !tbaa !9
  %1535 = load i32, ptr %10, align 4, !tbaa !5
  %1536 = sext i32 %1535 to i64
  %1537 = getelementptr inbounds double, ptr %1534, i64 %1536
  %1538 = load double, ptr %1537, align 8, !tbaa !13
  store double %1538, ptr %17, align 8, !tbaa !13
  %1539 = load ptr, ptr %6, align 8, !tbaa !9
  %1540 = load i32, ptr %10, align 4, !tbaa !5
  %1541 = add nsw i32 %1540, 1
  %1542 = sext i32 %1541 to i64
  %1543 = getelementptr inbounds double, ptr %1539, i64 %1542
  %1544 = load double, ptr %1543, align 8, !tbaa !13
  %1545 = fneg double %1544
  store double %1545, ptr %18, align 8, !tbaa !13
  %1546 = load double, ptr %17, align 8, !tbaa !13
  %1547 = load ptr, ptr %6, align 8, !tbaa !9
  %1548 = load i32, ptr %8, align 4, !tbaa !5
  %1549 = sext i32 %1548 to i64
  %1550 = getelementptr inbounds double, ptr %1547, i64 %1549
  store double %1546, ptr %1550, align 8, !tbaa !13
  %1551 = load double, ptr %18, align 8, !tbaa !13
  %1552 = load ptr, ptr %6, align 8, !tbaa !9
  %1553 = load i32, ptr %8, align 4, !tbaa !5
  %1554 = add nsw i32 %1553, 1
  %1555 = sext i32 %1554 to i64
  %1556 = getelementptr inbounds double, ptr %1552, i64 %1555
  store double %1551, ptr %1556, align 8, !tbaa !13
  %1557 = load double, ptr %15, align 8, !tbaa !13
  %1558 = load ptr, ptr %6, align 8, !tbaa !9
  %1559 = load i32, ptr %10, align 4, !tbaa !5
  %1560 = sext i32 %1559 to i64
  %1561 = getelementptr inbounds double, ptr %1558, i64 %1560
  store double %1557, ptr %1561, align 8, !tbaa !13
  %1562 = load double, ptr %16, align 8, !tbaa !13
  %1563 = load ptr, ptr %6, align 8, !tbaa !9
  %1564 = load i32, ptr %10, align 4, !tbaa !5
  %1565 = add nsw i32 %1564, 1
  %1566 = sext i32 %1565 to i64
  %1567 = getelementptr inbounds double, ptr %1563, i64 %1566
  store double %1562, ptr %1567, align 8, !tbaa !13
  %1568 = load i32, ptr %14, align 4, !tbaa !5
  %1569 = load i32, ptr %8, align 4, !tbaa !5
  %1570 = add nsw i32 %1569, %1568
  store i32 %1570, ptr %8, align 4, !tbaa !5
  %1571 = load i32, ptr %14, align 4, !tbaa !5
  %1572 = load i32, ptr %10, align 4, !tbaa !5
  %1573 = add nsw i32 %1572, %1571
  store i32 %1573, ptr %10, align 4, !tbaa !5
  %1574 = load ptr, ptr %6, align 8, !tbaa !9
  %1575 = load i32, ptr %8, align 4, !tbaa !5
  %1576 = sext i32 %1575 to i64
  %1577 = getelementptr inbounds double, ptr %1574, i64 %1576
  %1578 = load double, ptr %1577, align 8, !tbaa !13
  store double %1578, ptr %15, align 8, !tbaa !13
  %1579 = load ptr, ptr %6, align 8, !tbaa !9
  %1580 = load i32, ptr %8, align 4, !tbaa !5
  %1581 = add nsw i32 %1580, 1
  %1582 = sext i32 %1581 to i64
  %1583 = getelementptr inbounds double, ptr %1579, i64 %1582
  %1584 = load double, ptr %1583, align 8, !tbaa !13
  %1585 = fneg double %1584
  store double %1585, ptr %16, align 8, !tbaa !13
  %1586 = load ptr, ptr %6, align 8, !tbaa !9
  %1587 = load i32, ptr %10, align 4, !tbaa !5
  %1588 = sext i32 %1587 to i64
  %1589 = getelementptr inbounds double, ptr %1586, i64 %1588
  %1590 = load double, ptr %1589, align 8, !tbaa !13
  store double %1590, ptr %17, align 8, !tbaa !13
  %1591 = load ptr, ptr %6, align 8, !tbaa !9
  %1592 = load i32, ptr %10, align 4, !tbaa !5
  %1593 = add nsw i32 %1592, 1
  %1594 = sext i32 %1593 to i64
  %1595 = getelementptr inbounds double, ptr %1591, i64 %1594
  %1596 = load double, ptr %1595, align 8, !tbaa !13
  %1597 = fneg double %1596
  store double %1597, ptr %18, align 8, !tbaa !13
  %1598 = load double, ptr %17, align 8, !tbaa !13
  %1599 = load ptr, ptr %6, align 8, !tbaa !9
  %1600 = load i32, ptr %8, align 4, !tbaa !5
  %1601 = sext i32 %1600 to i64
  %1602 = getelementptr inbounds double, ptr %1599, i64 %1601
  store double %1598, ptr %1602, align 8, !tbaa !13
  %1603 = load double, ptr %18, align 8, !tbaa !13
  %1604 = load ptr, ptr %6, align 8, !tbaa !9
  %1605 = load i32, ptr %8, align 4, !tbaa !5
  %1606 = add nsw i32 %1605, 1
  %1607 = sext i32 %1606 to i64
  %1608 = getelementptr inbounds double, ptr %1604, i64 %1607
  store double %1603, ptr %1608, align 8, !tbaa !13
  %1609 = load double, ptr %15, align 8, !tbaa !13
  %1610 = load ptr, ptr %6, align 8, !tbaa !9
  %1611 = load i32, ptr %10, align 4, !tbaa !5
  %1612 = sext i32 %1611 to i64
  %1613 = getelementptr inbounds double, ptr %1610, i64 %1612
  store double %1609, ptr %1613, align 8, !tbaa !13
  %1614 = load double, ptr %16, align 8, !tbaa !13
  %1615 = load ptr, ptr %6, align 8, !tbaa !9
  %1616 = load i32, ptr %10, align 4, !tbaa !5
  %1617 = add nsw i32 %1616, 1
  %1618 = sext i32 %1617 to i64
  %1619 = getelementptr inbounds double, ptr %1615, i64 %1618
  store double %1614, ptr %1619, align 8, !tbaa !13
  %1620 = load i32, ptr %13, align 4, !tbaa !5
  %1621 = load i32, ptr %8, align 4, !tbaa !5
  %1622 = sub nsw i32 %1621, %1620
  store i32 %1622, ptr %8, align 4, !tbaa !5
  %1623 = load i32, ptr %10, align 4, !tbaa !5
  %1624 = sub nsw i32 %1623, 2
  store i32 %1624, ptr %10, align 4, !tbaa !5
  %1625 = load ptr, ptr %6, align 8, !tbaa !9
  %1626 = load i32, ptr %8, align 4, !tbaa !5
  %1627 = sext i32 %1626 to i64
  %1628 = getelementptr inbounds double, ptr %1625, i64 %1627
  %1629 = load double, ptr %1628, align 8, !tbaa !13
  store double %1629, ptr %15, align 8, !tbaa !13
  %1630 = load ptr, ptr %6, align 8, !tbaa !9
  %1631 = load i32, ptr %8, align 4, !tbaa !5
  %1632 = add nsw i32 %1631, 1
  %1633 = sext i32 %1632 to i64
  %1634 = getelementptr inbounds double, ptr %1630, i64 %1633
  %1635 = load double, ptr %1634, align 8, !tbaa !13
  %1636 = fneg double %1635
  store double %1636, ptr %16, align 8, !tbaa !13
  %1637 = load ptr, ptr %6, align 8, !tbaa !9
  %1638 = load i32, ptr %10, align 4, !tbaa !5
  %1639 = sext i32 %1638 to i64
  %1640 = getelementptr inbounds double, ptr %1637, i64 %1639
  %1641 = load double, ptr %1640, align 8, !tbaa !13
  store double %1641, ptr %17, align 8, !tbaa !13
  %1642 = load ptr, ptr %6, align 8, !tbaa !9
  %1643 = load i32, ptr %10, align 4, !tbaa !5
  %1644 = add nsw i32 %1643, 1
  %1645 = sext i32 %1644 to i64
  %1646 = getelementptr inbounds double, ptr %1642, i64 %1645
  %1647 = load double, ptr %1646, align 8, !tbaa !13
  %1648 = fneg double %1647
  store double %1648, ptr %18, align 8, !tbaa !13
  %1649 = load double, ptr %17, align 8, !tbaa !13
  %1650 = load ptr, ptr %6, align 8, !tbaa !9
  %1651 = load i32, ptr %8, align 4, !tbaa !5
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds double, ptr %1650, i64 %1652
  store double %1649, ptr %1653, align 8, !tbaa !13
  %1654 = load double, ptr %18, align 8, !tbaa !13
  %1655 = load ptr, ptr %6, align 8, !tbaa !9
  %1656 = load i32, ptr %8, align 4, !tbaa !5
  %1657 = add nsw i32 %1656, 1
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds double, ptr %1655, i64 %1658
  store double %1654, ptr %1659, align 8, !tbaa !13
  %1660 = load double, ptr %15, align 8, !tbaa !13
  %1661 = load ptr, ptr %6, align 8, !tbaa !9
  %1662 = load i32, ptr %10, align 4, !tbaa !5
  %1663 = sext i32 %1662 to i64
  %1664 = getelementptr inbounds double, ptr %1661, i64 %1663
  store double %1660, ptr %1664, align 8, !tbaa !13
  %1665 = load double, ptr %16, align 8, !tbaa !13
  %1666 = load ptr, ptr %6, align 8, !tbaa !9
  %1667 = load i32, ptr %10, align 4, !tbaa !5
  %1668 = add nsw i32 %1667, 1
  %1669 = sext i32 %1668 to i64
  %1670 = getelementptr inbounds double, ptr %1666, i64 %1669
  store double %1665, ptr %1670, align 8, !tbaa !13
  %1671 = load i32, ptr %14, align 4, !tbaa !5
  %1672 = load i32, ptr %8, align 4, !tbaa !5
  %1673 = sub nsw i32 %1672, %1671
  store i32 %1673, ptr %8, align 4, !tbaa !5
  %1674 = load i32, ptr %14, align 4, !tbaa !5
  %1675 = load i32, ptr %10, align 4, !tbaa !5
  %1676 = sub nsw i32 %1675, %1674
  store i32 %1676, ptr %10, align 4, !tbaa !5
  %1677 = load ptr, ptr %6, align 8, !tbaa !9
  %1678 = load i32, ptr %8, align 4, !tbaa !5
  %1679 = sext i32 %1678 to i64
  %1680 = getelementptr inbounds double, ptr %1677, i64 %1679
  %1681 = load double, ptr %1680, align 8, !tbaa !13
  store double %1681, ptr %15, align 8, !tbaa !13
  %1682 = load ptr, ptr %6, align 8, !tbaa !9
  %1683 = load i32, ptr %8, align 4, !tbaa !5
  %1684 = add nsw i32 %1683, 1
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds double, ptr %1682, i64 %1685
  %1687 = load double, ptr %1686, align 8, !tbaa !13
  %1688 = fneg double %1687
  store double %1688, ptr %16, align 8, !tbaa !13
  %1689 = load ptr, ptr %6, align 8, !tbaa !9
  %1690 = load i32, ptr %10, align 4, !tbaa !5
  %1691 = sext i32 %1690 to i64
  %1692 = getelementptr inbounds double, ptr %1689, i64 %1691
  %1693 = load double, ptr %1692, align 8, !tbaa !13
  store double %1693, ptr %17, align 8, !tbaa !13
  %1694 = load ptr, ptr %6, align 8, !tbaa !9
  %1695 = load i32, ptr %10, align 4, !tbaa !5
  %1696 = add nsw i32 %1695, 1
  %1697 = sext i32 %1696 to i64
  %1698 = getelementptr inbounds double, ptr %1694, i64 %1697
  %1699 = load double, ptr %1698, align 8, !tbaa !13
  %1700 = fneg double %1699
  store double %1700, ptr %18, align 8, !tbaa !13
  %1701 = load double, ptr %17, align 8, !tbaa !13
  %1702 = load ptr, ptr %6, align 8, !tbaa !9
  %1703 = load i32, ptr %8, align 4, !tbaa !5
  %1704 = sext i32 %1703 to i64
  %1705 = getelementptr inbounds double, ptr %1702, i64 %1704
  store double %1701, ptr %1705, align 8, !tbaa !13
  %1706 = load double, ptr %18, align 8, !tbaa !13
  %1707 = load ptr, ptr %6, align 8, !tbaa !9
  %1708 = load i32, ptr %8, align 4, !tbaa !5
  %1709 = add nsw i32 %1708, 1
  %1710 = sext i32 %1709 to i64
  %1711 = getelementptr inbounds double, ptr %1707, i64 %1710
  store double %1706, ptr %1711, align 8, !tbaa !13
  %1712 = load double, ptr %15, align 8, !tbaa !13
  %1713 = load ptr, ptr %6, align 8, !tbaa !9
  %1714 = load i32, ptr %10, align 4, !tbaa !5
  %1715 = sext i32 %1714 to i64
  %1716 = getelementptr inbounds double, ptr %1713, i64 %1715
  store double %1712, ptr %1716, align 8, !tbaa !13
  %1717 = load double, ptr %16, align 8, !tbaa !13
  %1718 = load ptr, ptr %6, align 8, !tbaa !9
  %1719 = load i32, ptr %10, align 4, !tbaa !5
  %1720 = add nsw i32 %1719, 1
  %1721 = sext i32 %1720 to i64
  %1722 = getelementptr inbounds double, ptr %1718, i64 %1721
  store double %1717, ptr %1722, align 8, !tbaa !13
  br label %1723

1723:                                             ; preds = %1295
  %1724 = load i32, ptr %7, align 4, !tbaa !5
  %1725 = add nsw i32 %1724, 1
  store i32 %1725, ptr %7, align 4, !tbaa !5
  br label %1291, !llvm.loop !17

1726:                                             ; preds = %1291
  %1727 = load i32, ptr %9, align 4, !tbaa !5
  %1728 = mul nsw i32 4, %1727
  %1729 = load ptr, ptr %5, align 8, !tbaa !9
  %1730 = load i32, ptr %12, align 4, !tbaa !5
  %1731 = load i32, ptr %9, align 4, !tbaa !5
  %1732 = add nsw i32 %1730, %1731
  %1733 = sext i32 %1732 to i64
  %1734 = getelementptr inbounds i32, ptr %1729, i64 %1733
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = add nsw i32 %1728, %1735
  store i32 %1736, ptr %10, align 4, !tbaa !5
  %1737 = load i32, ptr %10, align 4, !tbaa !5
  %1738 = add nsw i32 %1737, 2
  store i32 %1738, ptr %8, align 4, !tbaa !5
  %1739 = load i32, ptr %13, align 4, !tbaa !5
  %1740 = load i32, ptr %10, align 4, !tbaa !5
  %1741 = add nsw i32 %1740, %1739
  store i32 %1741, ptr %10, align 4, !tbaa !5
  %1742 = load ptr, ptr %6, align 8, !tbaa !9
  %1743 = load i32, ptr %8, align 4, !tbaa !5
  %1744 = sub nsw i32 %1743, 1
  %1745 = sext i32 %1744 to i64
  %1746 = getelementptr inbounds double, ptr %1742, i64 %1745
  %1747 = load double, ptr %1746, align 8, !tbaa !13
  %1748 = fneg double %1747
  %1749 = load ptr, ptr %6, align 8, !tbaa !9
  %1750 = load i32, ptr %8, align 4, !tbaa !5
  %1751 = sub nsw i32 %1750, 1
  %1752 = sext i32 %1751 to i64
  %1753 = getelementptr inbounds double, ptr %1749, i64 %1752
  store double %1748, ptr %1753, align 8, !tbaa !13
  %1754 = load ptr, ptr %6, align 8, !tbaa !9
  %1755 = load i32, ptr %8, align 4, !tbaa !5
  %1756 = sext i32 %1755 to i64
  %1757 = getelementptr inbounds double, ptr %1754, i64 %1756
  %1758 = load double, ptr %1757, align 8, !tbaa !13
  store double %1758, ptr %15, align 8, !tbaa !13
  %1759 = load ptr, ptr %6, align 8, !tbaa !9
  %1760 = load i32, ptr %8, align 4, !tbaa !5
  %1761 = add nsw i32 %1760, 1
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds double, ptr %1759, i64 %1762
  %1764 = load double, ptr %1763, align 8, !tbaa !13
  %1765 = fneg double %1764
  store double %1765, ptr %16, align 8, !tbaa !13
  %1766 = load ptr, ptr %6, align 8, !tbaa !9
  %1767 = load i32, ptr %10, align 4, !tbaa !5
  %1768 = sext i32 %1767 to i64
  %1769 = getelementptr inbounds double, ptr %1766, i64 %1768
  %1770 = load double, ptr %1769, align 8, !tbaa !13
  store double %1770, ptr %17, align 8, !tbaa !13
  %1771 = load ptr, ptr %6, align 8, !tbaa !9
  %1772 = load i32, ptr %10, align 4, !tbaa !5
  %1773 = add nsw i32 %1772, 1
  %1774 = sext i32 %1773 to i64
  %1775 = getelementptr inbounds double, ptr %1771, i64 %1774
  %1776 = load double, ptr %1775, align 8, !tbaa !13
  %1777 = fneg double %1776
  store double %1777, ptr %18, align 8, !tbaa !13
  %1778 = load double, ptr %17, align 8, !tbaa !13
  %1779 = load ptr, ptr %6, align 8, !tbaa !9
  %1780 = load i32, ptr %8, align 4, !tbaa !5
  %1781 = sext i32 %1780 to i64
  %1782 = getelementptr inbounds double, ptr %1779, i64 %1781
  store double %1778, ptr %1782, align 8, !tbaa !13
  %1783 = load double, ptr %18, align 8, !tbaa !13
  %1784 = load ptr, ptr %6, align 8, !tbaa !9
  %1785 = load i32, ptr %8, align 4, !tbaa !5
  %1786 = add nsw i32 %1785, 1
  %1787 = sext i32 %1786 to i64
  %1788 = getelementptr inbounds double, ptr %1784, i64 %1787
  store double %1783, ptr %1788, align 8, !tbaa !13
  %1789 = load double, ptr %15, align 8, !tbaa !13
  %1790 = load ptr, ptr %6, align 8, !tbaa !9
  %1791 = load i32, ptr %10, align 4, !tbaa !5
  %1792 = sext i32 %1791 to i64
  %1793 = getelementptr inbounds double, ptr %1790, i64 %1792
  store double %1789, ptr %1793, align 8, !tbaa !13
  %1794 = load double, ptr %16, align 8, !tbaa !13
  %1795 = load ptr, ptr %6, align 8, !tbaa !9
  %1796 = load i32, ptr %10, align 4, !tbaa !5
  %1797 = add nsw i32 %1796, 1
  %1798 = sext i32 %1797 to i64
  %1799 = getelementptr inbounds double, ptr %1795, i64 %1798
  store double %1794, ptr %1799, align 8, !tbaa !13
  %1800 = load ptr, ptr %6, align 8, !tbaa !9
  %1801 = load i32, ptr %10, align 4, !tbaa !5
  %1802 = add nsw i32 %1801, 3
  %1803 = sext i32 %1802 to i64
  %1804 = getelementptr inbounds double, ptr %1800, i64 %1803
  %1805 = load double, ptr %1804, align 8, !tbaa !13
  %1806 = fneg double %1805
  %1807 = load ptr, ptr %6, align 8, !tbaa !9
  %1808 = load i32, ptr %10, align 4, !tbaa !5
  %1809 = add nsw i32 %1808, 3
  %1810 = sext i32 %1809 to i64
  %1811 = getelementptr inbounds double, ptr %1807, i64 %1810
  store double %1806, ptr %1811, align 8, !tbaa !13
  %1812 = load i32, ptr %14, align 4, !tbaa !5
  %1813 = load i32, ptr %8, align 4, !tbaa !5
  %1814 = add nsw i32 %1813, %1812
  store i32 %1814, ptr %8, align 4, !tbaa !5
  %1815 = load i32, ptr %14, align 4, !tbaa !5
  %1816 = load i32, ptr %10, align 4, !tbaa !5
  %1817 = add nsw i32 %1816, %1815
  store i32 %1817, ptr %10, align 4, !tbaa !5
  %1818 = load ptr, ptr %6, align 8, !tbaa !9
  %1819 = load i32, ptr %8, align 4, !tbaa !5
  %1820 = sub nsw i32 %1819, 1
  %1821 = sext i32 %1820 to i64
  %1822 = getelementptr inbounds double, ptr %1818, i64 %1821
  %1823 = load double, ptr %1822, align 8, !tbaa !13
  %1824 = fneg double %1823
  %1825 = load ptr, ptr %6, align 8, !tbaa !9
  %1826 = load i32, ptr %8, align 4, !tbaa !5
  %1827 = sub nsw i32 %1826, 1
  %1828 = sext i32 %1827 to i64
  %1829 = getelementptr inbounds double, ptr %1825, i64 %1828
  store double %1824, ptr %1829, align 8, !tbaa !13
  %1830 = load ptr, ptr %6, align 8, !tbaa !9
  %1831 = load i32, ptr %8, align 4, !tbaa !5
  %1832 = sext i32 %1831 to i64
  %1833 = getelementptr inbounds double, ptr %1830, i64 %1832
  %1834 = load double, ptr %1833, align 8, !tbaa !13
  store double %1834, ptr %15, align 8, !tbaa !13
  %1835 = load ptr, ptr %6, align 8, !tbaa !9
  %1836 = load i32, ptr %8, align 4, !tbaa !5
  %1837 = add nsw i32 %1836, 1
  %1838 = sext i32 %1837 to i64
  %1839 = getelementptr inbounds double, ptr %1835, i64 %1838
  %1840 = load double, ptr %1839, align 8, !tbaa !13
  %1841 = fneg double %1840
  store double %1841, ptr %16, align 8, !tbaa !13
  %1842 = load ptr, ptr %6, align 8, !tbaa !9
  %1843 = load i32, ptr %10, align 4, !tbaa !5
  %1844 = sext i32 %1843 to i64
  %1845 = getelementptr inbounds double, ptr %1842, i64 %1844
  %1846 = load double, ptr %1845, align 8, !tbaa !13
  store double %1846, ptr %17, align 8, !tbaa !13
  %1847 = load ptr, ptr %6, align 8, !tbaa !9
  %1848 = load i32, ptr %10, align 4, !tbaa !5
  %1849 = add nsw i32 %1848, 1
  %1850 = sext i32 %1849 to i64
  %1851 = getelementptr inbounds double, ptr %1847, i64 %1850
  %1852 = load double, ptr %1851, align 8, !tbaa !13
  %1853 = fneg double %1852
  store double %1853, ptr %18, align 8, !tbaa !13
  %1854 = load double, ptr %17, align 8, !tbaa !13
  %1855 = load ptr, ptr %6, align 8, !tbaa !9
  %1856 = load i32, ptr %8, align 4, !tbaa !5
  %1857 = sext i32 %1856 to i64
  %1858 = getelementptr inbounds double, ptr %1855, i64 %1857
  store double %1854, ptr %1858, align 8, !tbaa !13
  %1859 = load double, ptr %18, align 8, !tbaa !13
  %1860 = load ptr, ptr %6, align 8, !tbaa !9
  %1861 = load i32, ptr %8, align 4, !tbaa !5
  %1862 = add nsw i32 %1861, 1
  %1863 = sext i32 %1862 to i64
  %1864 = getelementptr inbounds double, ptr %1860, i64 %1863
  store double %1859, ptr %1864, align 8, !tbaa !13
  %1865 = load double, ptr %15, align 8, !tbaa !13
  %1866 = load ptr, ptr %6, align 8, !tbaa !9
  %1867 = load i32, ptr %10, align 4, !tbaa !5
  %1868 = sext i32 %1867 to i64
  %1869 = getelementptr inbounds double, ptr %1866, i64 %1868
  store double %1865, ptr %1869, align 8, !tbaa !13
  %1870 = load double, ptr %16, align 8, !tbaa !13
  %1871 = load ptr, ptr %6, align 8, !tbaa !9
  %1872 = load i32, ptr %10, align 4, !tbaa !5
  %1873 = add nsw i32 %1872, 1
  %1874 = sext i32 %1873 to i64
  %1875 = getelementptr inbounds double, ptr %1871, i64 %1874
  store double %1870, ptr %1875, align 8, !tbaa !13
  %1876 = load ptr, ptr %6, align 8, !tbaa !9
  %1877 = load i32, ptr %10, align 4, !tbaa !5
  %1878 = add nsw i32 %1877, 3
  %1879 = sext i32 %1878 to i64
  %1880 = getelementptr inbounds double, ptr %1876, i64 %1879
  %1881 = load double, ptr %1880, align 8, !tbaa !13
  %1882 = fneg double %1881
  %1883 = load ptr, ptr %6, align 8, !tbaa !9
  %1884 = load i32, ptr %10, align 4, !tbaa !5
  %1885 = add nsw i32 %1884, 3
  %1886 = sext i32 %1885 to i64
  %1887 = getelementptr inbounds double, ptr %1883, i64 %1886
  store double %1882, ptr %1887, align 8, !tbaa !13
  br label %1888

1888:                                             ; preds = %1726
  %1889 = load i32, ptr %9, align 4, !tbaa !5
  %1890 = add nsw i32 %1889, 1
  store i32 %1890, ptr %9, align 4, !tbaa !5
  br label %1286, !llvm.loop !18

1891:                                             ; preds = %1286
  br label %1892

1892:                                             ; preds = %1891, %1284
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #2
  ret void
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress 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 #2 = { 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++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !14, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}


; 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 nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable
define dso_local void @_ZN4sptk5world10bitrv2conjEiPiPd(i32 noundef %0, ptr nocapture noundef readonly %1, ptr noundef %2) local_unnamed_addr #0 {
  %4 = ashr i32 %0, 2
  %5 = icmp sgt i32 %4, 8
  br i1 %5, label %.lr.ph, label %._crit_edge.thread

.lr.ph:                                           ; preds = %3, %.lr.ph
  %.0826835 = phi i32 [ %6, %.lr.ph ], [ 1, %3 ]
  %.0827834 = phi i32 [ %7, %.lr.ph ], [ %4, %3 ]
  %6 = shl i32 %.0826835, 1
  %7 = lshr i32 %.0827834, 2
  %8 = icmp ugt i32 %.0827834, 35
  br i1 %8, label %.lr.ph, label %._crit_edge, !llvm.loop !5

._crit_edge:                                      ; preds = %.lr.ph
  %9 = ashr i32 %0, 1
  %10 = shl i32 %.0826835, 3
  %11 = icmp eq i32 %7, 8
  %12 = icmp sgt i32 %6, 0
  br i1 %11, label %.preheader830, label %.preheader832

._crit_edge.thread:                               ; preds = %3
  %13 = ashr i32 %0, 1
  %14 = icmp eq i32 %4, 8
  br i1 %14, label %.preheader.lr.ph, label %.preheader831.lr.ph

.preheader832:                                    ; preds = %._crit_edge
  br i1 %12, label %.preheader831.lr.ph, label %.loopexit

.preheader831.lr.ph:                              ; preds = %._crit_edge.thread, %.preheader832
  %.0826.lcssa887889 = phi i32 [ %6, %.preheader832 ], [ 1, %._crit_edge.thread ]
  %15 = phi i32 [ %9, %.preheader832 ], [ %13, %._crit_edge.thread ]
  %16 = phi i32 [ %10, %.preheader832 ], [ 4, %._crit_edge.thread ]
  %invariant.gep = getelementptr i8, ptr %2, i64 16
  %17 = zext nneg i32 %16 to i64
  %18 = sext i32 %15 to i64
  %19 = zext nneg i32 %.0826.lcssa887889 to i64
  %20 = zext nneg i32 %.0826.lcssa887889 to i64
  %invariant.gep900 = getelementptr inbounds i32, ptr %1, i64 %19
  br label %.preheader831

.preheader830:                                    ; preds = %._crit_edge
  br i1 %12, label %.preheader.lr.ph, label %.loopexit

.preheader.lr.ph:                                 ; preds = %._crit_edge.thread, %.preheader830
  %.0826.lcssa886893 = phi i32 [ %6, %.preheader830 ], [ 1, %._crit_edge.thread ]
  %21 = phi i32 [ %9, %.preheader830 ], [ %13, %._crit_edge.thread ]
  %22 = phi i32 [ %10, %.preheader830 ], [ 4, %._crit_edge.thread ]
  %invariant.gep846894 = getelementptr i8, ptr %2, i64 24
  %invariant.gep848895 = getelementptr i8, ptr %2, i64 -16
  %invariant.gep841 = getelementptr i8, ptr %2, i64 16
  %23 = shl nsw i32 %.0826.lcssa886893, 3
  %24 = zext nneg i32 %22 to i64
  %25 = sext i32 %21 to i64
  %26 = zext nneg i32 %.0826.lcssa886893 to i64
  %27 = zext nneg i32 %.0826.lcssa886893 to i64
  %invariant.gep902 = getelementptr inbounds i32, ptr %1, i64 %26
  br label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge845
  %indvars.iv864 = phi i64 [ 0, %.preheader.lr.ph ], [ %indvars.iv.next865, %._crit_edge845 ]
  %.not851 = icmp eq i64 %indvars.iv864, 0
  br i1 %.not851, label %._crit_edge845, label %.lr.ph844

.lr.ph844:                                        ; preds = %.preheader
  %28 = add nuw nsw i64 %indvars.iv864, %27
  %29 = getelementptr inbounds i32, ptr %1, i64 %28
  %30 = load i32, ptr %29, align 4, !tbaa !7
  %31 = shl nsw i32 %30, 1
  %32 = sext i32 %31 to i64
  %indvars.iv864.tr = trunc i64 %indvars.iv864 to i32
  %33 = shl i32 %indvars.iv864.tr, 2
  br label %34

34:                                               ; preds = %.lr.ph844, %34
  %indvars.iv860 = phi i64 [ 0, %.lr.ph844 ], [ %indvars.iv.next861, %34 ]
  %35 = shl nsw i64 %indvars.iv860, 2
  %36 = add nsw i64 %35, %32
  %gep903 = getelementptr inbounds i32, ptr %invariant.gep902, i64 %indvars.iv860
  %37 = load i32, ptr %gep903, align 4, !tbaa !7
  %38 = shl nsw i32 %37, 1
  %39 = add nsw i32 %38, %33
  %40 = getelementptr inbounds double, ptr %2, i64 %36
  %41 = load double, ptr %40, align 8, !tbaa !11
  %42 = or disjoint i64 %36, 1
  %43 = getelementptr inbounds double, ptr %2, i64 %42
  %44 = load double, ptr %43, align 8, !tbaa !11
  %45 = fneg double %44
  %46 = sext i32 %39 to i64
  %47 = getelementptr inbounds double, ptr %2, i64 %46
  %48 = load double, ptr %47, align 8, !tbaa !11
  %49 = or disjoint i32 %39, 1
  %50 = sext i32 %49 to i64
  %51 = getelementptr inbounds double, ptr %2, i64 %50
  %52 = load double, ptr %51, align 8, !tbaa !11
  %53 = fneg double %52
  store double %48, ptr %40, align 8, !tbaa !11
  store double %53, ptr %43, align 8, !tbaa !11
  store double %41, ptr %47, align 8, !tbaa !11
  store double %45, ptr %51, align 8, !tbaa !11
  %54 = add nsw i64 %36, %24
  %55 = add nsw i32 %39, %23
  %56 = getelementptr inbounds double, ptr %2, i64 %54
  %57 = load double, ptr %56, align 8, !tbaa !11
  %58 = or disjoint i64 %54, 1
  %59 = getelementptr inbounds double, ptr %2, i64 %58
  %60 = load double, ptr %59, align 8, !tbaa !11
  %61 = fneg double %60
  %62 = sext i32 %55 to i64
  %63 = getelementptr inbounds double, ptr %2, i64 %62
  %64 = load double, ptr %63, align 8, !tbaa !11
  %65 = or disjoint i32 %55, 1
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds double, ptr %2, i64 %66
  %68 = load double, ptr %67, align 8, !tbaa !11
  %69 = fneg double %68
  store double %64, ptr %56, align 8, !tbaa !11
  store double %69, ptr %59, align 8, !tbaa !11
  store double %57, ptr %63, align 8, !tbaa !11
  store double %61, ptr %67, align 8, !tbaa !11
  %70 = add nsw i64 %54, %24
  %71 = sub nsw i32 %55, %22
  %72 = getelementptr inbounds double, ptr %2, i64 %70
  %73 = load double, ptr %72, align 8, !tbaa !11
  %74 = or disjoint i64 %70, 1
  %75 = getelementptr inbounds double, ptr %2, i64 %74
  %76 = load double, ptr %75, align 8, !tbaa !11
  %77 = fneg double %76
  %78 = sext i32 %71 to i64
  %79 = getelementptr inbounds double, ptr %2, i64 %78
  %80 = load double, ptr %79, align 8, !tbaa !11
  %81 = or disjoint i32 %71, 1
  %82 = sext i32 %81 to i64
  %83 = getelementptr inbounds double, ptr %2, i64 %82
  %84 = load double, ptr %83, align 8, !tbaa !11
  %85 = fneg double %84
  store double %80, ptr %72, align 8, !tbaa !11
  store double %85, ptr %75, align 8, !tbaa !11
  store double %73, ptr %79, align 8, !tbaa !11
  store double %77, ptr %83, align 8, !tbaa !11
  %86 = add nsw i64 %70, %24
  %87 = add nsw i32 %71, %23
  %88 = getelementptr inbounds double, ptr %2, i64 %86
  %89 = load double, ptr %88, align 8, !tbaa !11
  %90 = or disjoint i64 %86, 1
  %91 = getelementptr inbounds double, ptr %2, i64 %90
  %92 = load double, ptr %91, align 8, !tbaa !11
  %93 = fneg double %92
  %94 = sext i32 %87 to i64
  %95 = getelementptr inbounds double, ptr %2, i64 %94
  %96 = load double, ptr %95, align 8, !tbaa !11
  %97 = or disjoint i32 %87, 1
  %98 = sext i32 %97 to i64
  %99 = getelementptr inbounds double, ptr %2, i64 %98
  %100 = load double, ptr %99, align 8, !tbaa !11
  %101 = fneg double %100
  store double %96, ptr %88, align 8, !tbaa !11
  store double %101, ptr %91, align 8, !tbaa !11
  store double %89, ptr %95, align 8, !tbaa !11
  store double %93, ptr %99, align 8, !tbaa !11
  %102 = add nsw i64 %86, %25
  %103 = add nsw i32 %87, 2
  %104 = getelementptr inbounds double, ptr %2, i64 %102
  %105 = load double, ptr %104, align 8, !tbaa !11
  %106 = getelementptr i8, ptr %104, i64 8
  %107 = load double, ptr %106, align 8, !tbaa !11
  %108 = fneg double %107
  %109 = sext i32 %103 to i64
  %110 = getelementptr inbounds double, ptr %2, i64 %109
  %111 = load double, ptr %110, align 8, !tbaa !11
  %112 = getelementptr i8, ptr %95, i64 24
  %113 = load double, ptr %112, align 8, !tbaa !11
  %114 = fneg double %113
  store double %111, ptr %104, align 8, !tbaa !11
  store double %114, ptr %106, align 8, !tbaa !11
  store double %105, ptr %110, align 8, !tbaa !11
  store double %108, ptr %112, align 8, !tbaa !11
  %115 = sub nsw i64 %102, %24
  %116 = sub nsw i32 %103, %23
  %117 = getelementptr inbounds double, ptr %2, i64 %115
  %118 = load double, ptr %117, align 8, !tbaa !11
  %119 = getelementptr i8, ptr %117, i64 8
  %120 = load double, ptr %119, align 8, !tbaa !11
  %121 = fneg double %120
  %122 = sext i32 %116 to i64
  %123 = getelementptr inbounds double, ptr %2, i64 %122
  %124 = load double, ptr %123, align 8, !tbaa !11
  %125 = getelementptr i8, ptr %123, i64 8
  %126 = load double, ptr %125, align 8, !tbaa !11
  %127 = fneg double %126
  store double %124, ptr %117, align 8, !tbaa !11
  store double %127, ptr %119, align 8, !tbaa !11
  store double %118, ptr %123, align 8, !tbaa !11
  store double %121, ptr %125, align 8, !tbaa !11
  %128 = sub nsw i64 %115, %24
  %129 = add nsw i32 %116, %22
  %130 = getelementptr inbounds double, ptr %2, i64 %128
  %131 = load double, ptr %130, align 8, !tbaa !11
  %132 = getelementptr i8, ptr %130, i64 8
  %133 = load double, ptr %132, align 8, !tbaa !11
  %134 = fneg double %133
  %135 = sext i32 %129 to i64
  %136 = getelementptr inbounds double, ptr %2, i64 %135
  %137 = load double, ptr %136, align 8, !tbaa !11
  %138 = getelementptr i8, ptr %136, i64 8
  %139 = load double, ptr %138, align 8, !tbaa !11
  %140 = fneg double %139
  store double %137, ptr %130, align 8, !tbaa !11
  store double %140, ptr %132, align 8, !tbaa !11
  store double %131, ptr %136, align 8, !tbaa !11
  store double %134, ptr %138, align 8, !tbaa !11
  %141 = sub nsw i64 %128, %24
  %142 = sub nsw i32 %129, %23
  %143 = getelementptr inbounds double, ptr %2, i64 %141
  %144 = load double, ptr %143, align 8, !tbaa !11
  %145 = getelementptr i8, ptr %143, i64 8
  %146 = load double, ptr %145, align 8, !tbaa !11
  %147 = fneg double %146
  %148 = sext i32 %142 to i64
  %149 = getelementptr inbounds double, ptr %2, i64 %148
  %150 = load double, ptr %149, align 8, !tbaa !11
  %151 = getelementptr i8, ptr %149, i64 8
  %152 = load double, ptr %151, align 8, !tbaa !11
  %153 = fneg double %152
  store double %150, ptr %143, align 8, !tbaa !11
  store double %153, ptr %145, align 8, !tbaa !11
  store double %144, ptr %149, align 8, !tbaa !11
  store double %147, ptr %151, align 8, !tbaa !11
  %154 = add nsw i32 %142, %21
  %gep842 = getelementptr double, ptr %invariant.gep841, i64 %141
  %155 = load double, ptr %gep842, align 8, !tbaa !11
  %156 = getelementptr i8, ptr %143, i64 24
  %157 = load double, ptr %156, align 8, !tbaa !11
  %158 = fneg double %157
  %159 = sext i32 %154 to i64
  %160 = getelementptr inbounds double, ptr %2, i64 %159
  %161 = load double, ptr %160, align 8, !tbaa !11
  %162 = getelementptr i8, ptr %160, i64 8
  %163 = load double, ptr %162, align 8, !tbaa !11
  %164 = fneg double %163
  store double %161, ptr %gep842, align 8, !tbaa !11
  store double %164, ptr %156, align 8, !tbaa !11
  store double %155, ptr %160, align 8, !tbaa !11
  store double %158, ptr %162, align 8, !tbaa !11
  %165 = add i32 %129, %21
  %166 = shl i64 %128, 32
  %sext879 = add i64 %166, 8589934592
  %167 = ashr exact i64 %sext879, 29
  %168 = getelementptr inbounds i8, ptr %2, i64 %167
  %169 = load double, ptr %168, align 8, !tbaa !11
  %170 = shl i64 %128, 32
  %sext880 = add i64 %170, 12884901888
  %171 = ashr exact i64 %sext880, 29
  %172 = getelementptr inbounds i8, ptr %2, i64 %171
  %173 = load double, ptr %172, align 8, !tbaa !11
  %174 = fneg double %173
  %175 = sext i32 %165 to i64
  %176 = getelementptr inbounds double, ptr %2, i64 %175
  %177 = load double, ptr %176, align 8, !tbaa !11
  %178 = getelementptr i8, ptr %176, i64 8
  %179 = load double, ptr %178, align 8, !tbaa !11
  %180 = fneg double %179
  store double %177, ptr %168, align 8, !tbaa !11
  store double %180, ptr %172, align 8, !tbaa !11
  store double %169, ptr %176, align 8, !tbaa !11
  store double %174, ptr %178, align 8, !tbaa !11
  %181 = sub nsw i32 %165, %22
  %182 = shl i64 %115, 32
  %sext881 = add i64 %182, 8589934592
  %183 = ashr exact i64 %sext881, 29
  %184 = getelementptr inbounds i8, ptr %2, i64 %183
  %185 = load double, ptr %184, align 8, !tbaa !11
  %186 = shl i64 %115, 32
  %sext882 = add i64 %186, 12884901888
  %187 = ashr exact i64 %sext882, 29
  %188 = getelementptr inbounds i8, ptr %2, i64 %187
  %189 = load double, ptr %188, align 8, !tbaa !11
  %190 = fneg double %189
  %191 = sext i32 %181 to i64
  %192 = getelementptr inbounds double, ptr %2, i64 %191
  %193 = load double, ptr %192, align 8, !tbaa !11
  %194 = getelementptr i8, ptr %192, i64 8
  %195 = load double, ptr %194, align 8, !tbaa !11
  %196 = fneg double %195
  store double %193, ptr %184, align 8, !tbaa !11
  store double %196, ptr %188, align 8, !tbaa !11
  store double %185, ptr %192, align 8, !tbaa !11
  store double %190, ptr %194, align 8, !tbaa !11
  %197 = trunc nsw i64 %102 to i32
  %198 = add i32 %197, 2
  %199 = add nsw i32 %181, %23
  %200 = sext i32 %198 to i64
  %201 = getelementptr inbounds double, ptr %2, i64 %200
  %202 = load double, ptr %201, align 8, !tbaa !11
  %203 = shl i64 %102, 32
  %sext883 = add i64 %203, 12884901888
  %204 = ashr exact i64 %sext883, 29
  %205 = getelementptr inbounds i8, ptr %2, i64 %204
  %206 = load double, ptr %205, align 8, !tbaa !11
  %207 = fneg double %206
  %208 = sext i32 %199 to i64
  %209 = getelementptr inbounds double, ptr %2, i64 %208
  %210 = load double, ptr %209, align 8, !tbaa !11
  %211 = getelementptr i8, ptr %209, i64 8
  %212 = load double, ptr %211, align 8, !tbaa !11
  %213 = fneg double %212
  store double %210, ptr %201, align 8, !tbaa !11
  store double %213, ptr %205, align 8, !tbaa !11
  store double %202, ptr %209, align 8, !tbaa !11
  store double %207, ptr %211, align 8, !tbaa !11
  %214 = sub nsw i32 %198, %21
  %215 = add nsw i32 %199, -2
  %216 = sext i32 %214 to i64
  %217 = getelementptr inbounds double, ptr %2, i64 %216
  %218 = load double, ptr %217, align 8, !tbaa !11
  %219 = getelementptr i8, ptr %217, i64 8
  %220 = load double, ptr %219, align 8, !tbaa !11
  %221 = fneg double %220
  %222 = sext i32 %215 to i64
  %223 = getelementptr inbounds double, ptr %2, i64 %222
  %224 = load double, ptr %223, align 8, !tbaa !11
  %225 = getelementptr i8, ptr %209, i64 -8
  %226 = load double, ptr %225, align 8, !tbaa !11
  %227 = fneg double %226
  store double %224, ptr %217, align 8, !tbaa !11
  store double %227, ptr %219, align 8, !tbaa !11
  store double %218, ptr %223, align 8, !tbaa !11
  store double %221, ptr %225, align 8, !tbaa !11
  %228 = sub nsw i32 %214, %22
  %229 = sub nsw i32 %215, %23
  %230 = sext i32 %228 to i64
  %231 = getelementptr inbounds double, ptr %2, i64 %230
  %232 = load double, ptr %231, align 8, !tbaa !11
  %233 = getelementptr i8, ptr %231, i64 8
  %234 = load double, ptr %233, align 8, !tbaa !11
  %235 = fneg double %234
  %236 = sext i32 %229 to i64
  %237 = getelementptr inbounds double, ptr %2, i64 %236
  %238 = load double, ptr %237, align 8, !tbaa !11
  %239 = getelementptr i8, ptr %237, i64 8
  %240 = load double, ptr %239, align 8, !tbaa !11
  %241 = fneg double %240
  store double %238, ptr %231, align 8, !tbaa !11
  store double %241, ptr %233, align 8, !tbaa !11
  store double %232, ptr %237, align 8, !tbaa !11
  store double %235, ptr %239, align 8, !tbaa !11
  %242 = sub nsw i32 %228, %22
  %243 = add nsw i32 %229, %22
  %244 = sext i32 %242 to i64
  %245 = getelementptr inbounds double, ptr %2, i64 %244
  %246 = load double, ptr %245, align 8, !tbaa !11
  %247 = getelementptr i8, ptr %245, i64 8
  %248 = load double, ptr %247, align 8, !tbaa !11
  %249 = fneg double %248
  %250 = sext i32 %243 to i64
  %251 = getelementptr inbounds double, ptr %2, i64 %250
  %252 = load double, ptr %251, align 8, !tbaa !11
  %253 = getelementptr i8, ptr %251, i64 8
  %254 = load double, ptr %253, align 8, !tbaa !11
  %255 = fneg double %254
  store double %252, ptr %245, align 8, !tbaa !11
  store double %255, ptr %247, align 8, !tbaa !11
  store double %246, ptr %251, align 8, !tbaa !11
  store double %249, ptr %253, align 8, !tbaa !11
  %256 = sub nsw i32 %242, %22
  %257 = sub nsw i32 %243, %23
  %258 = sext i32 %256 to i64
  %259 = getelementptr inbounds double, ptr %2, i64 %258
  %260 = load double, ptr %259, align 8, !tbaa !11
  %261 = getelementptr i8, ptr %259, i64 8
  %262 = load double, ptr %261, align 8, !tbaa !11
  %263 = fneg double %262
  %264 = sext i32 %257 to i64
  %265 = getelementptr inbounds double, ptr %2, i64 %264
  %266 = load double, ptr %265, align 8, !tbaa !11
  %267 = getelementptr i8, ptr %265, i64 8
  %268 = load double, ptr %267, align 8, !tbaa !11
  %269 = fneg double %268
  store double %266, ptr %259, align 8, !tbaa !11
  store double %269, ptr %261, align 8, !tbaa !11
  store double %260, ptr %265, align 8, !tbaa !11
  store double %263, ptr %267, align 8, !tbaa !11
  %indvars.iv.next861 = add nuw nsw i64 %indvars.iv860, 1
  %exitcond863.not = icmp eq i64 %indvars.iv.next861, %indvars.iv864
  br i1 %exitcond863.not, label %._crit_edge845, label %34, !llvm.loop !13

._crit_edge845:                                   ; preds = %34, %.preheader
  %.pre-phi872 = phi i32 [ 0, %.preheader ], [ %33, %34 ]
  %.pre-phi870 = phi i64 [ %27, %.preheader ], [ %28, %34 ]
  %270 = getelementptr inbounds i32, ptr %1, i64 %.pre-phi870
  %271 = load i32, ptr %270, align 4, !tbaa !7
  %272 = shl nsw i32 %271, 1
  %273 = add nsw i32 %272, %.pre-phi872
  %274 = add nsw i32 %273, 2
  %275 = add nsw i32 %273, %21
  %276 = or disjoint i32 %273, 1
  %277 = sext i32 %276 to i64
  %278 = getelementptr inbounds double, ptr %2, i64 %277
  %279 = load double, ptr %278, align 8, !tbaa !11
  %280 = fneg double %279
  store double %280, ptr %278, align 8, !tbaa !11
  %281 = sext i32 %274 to i64
  %282 = getelementptr inbounds double, ptr %2, i64 %281
  %283 = load double, ptr %282, align 8, !tbaa !11
  %284 = sext i32 %273 to i64
  %gep847 = getelementptr double, ptr %invariant.gep846894, i64 %284
  %285 = load double, ptr %gep847, align 8, !tbaa !11
  %286 = fneg double %285
  %287 = sext i32 %275 to i64
  %288 = getelementptr inbounds double, ptr %2, i64 %287
  %289 = load double, ptr %288, align 8, !tbaa !11
  %290 = getelementptr i8, ptr %288, i64 8
  %291 = load double, ptr %290, align 8, !tbaa !11
  %292 = fneg double %291
  store double %289, ptr %282, align 8, !tbaa !11
  store double %292, ptr %gep847, align 8, !tbaa !11
  store double %283, ptr %288, align 8, !tbaa !11
  store double %286, ptr %290, align 8, !tbaa !11
  %293 = getelementptr i8, ptr %288, i64 24
  %294 = load double, ptr %293, align 8, !tbaa !11
  %295 = fneg double %294
  store double %295, ptr %293, align 8, !tbaa !11
  %296 = add nsw i32 %274, %22
  %297 = add nsw i32 %275, %23
  %298 = sext i32 %296 to i64
  %299 = getelementptr inbounds double, ptr %2, i64 %298
  %300 = load double, ptr %299, align 8, !tbaa !11
  %301 = or disjoint i32 %296, 1
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds double, ptr %2, i64 %302
  %304 = load double, ptr %303, align 8, !tbaa !11
  %305 = fneg double %304
  %306 = sext i32 %297 to i64
  %307 = getelementptr inbounds double, ptr %2, i64 %306
  %308 = load double, ptr %307, align 8, !tbaa !11
  %309 = getelementptr i8, ptr %307, i64 8
  %310 = load double, ptr %309, align 8, !tbaa !11
  %311 = fneg double %310
  store double %308, ptr %299, align 8, !tbaa !11
  store double %311, ptr %303, align 8, !tbaa !11
  store double %300, ptr %307, align 8, !tbaa !11
  store double %305, ptr %309, align 8, !tbaa !11
  %312 = add nsw i32 %296, %22
  %313 = sub nsw i32 %297, %22
  %314 = sext i32 %312 to i64
  %315 = getelementptr inbounds double, ptr %2, i64 %314
  %316 = load double, ptr %315, align 8, !tbaa !11
  %317 = or disjoint i32 %312, 1
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds double, ptr %2, i64 %318
  %320 = load double, ptr %319, align 8, !tbaa !11
  %321 = fneg double %320
  %322 = sext i32 %313 to i64
  %323 = getelementptr inbounds double, ptr %2, i64 %322
  %324 = load double, ptr %323, align 8, !tbaa !11
  %325 = getelementptr i8, ptr %323, i64 8
  %326 = load double, ptr %325, align 8, !tbaa !11
  %327 = fneg double %326
  store double %324, ptr %315, align 8, !tbaa !11
  store double %327, ptr %319, align 8, !tbaa !11
  store double %316, ptr %323, align 8, !tbaa !11
  store double %321, ptr %325, align 8, !tbaa !11
  %328 = sub nsw i32 %313, %21
  %gep849 = getelementptr double, ptr %invariant.gep848895, i64 %314
  %329 = load double, ptr %gep849, align 8, !tbaa !11
  %330 = getelementptr i8, ptr %315, i64 -8
  %331 = load double, ptr %330, align 8, !tbaa !11
  %332 = fneg double %331
  %333 = sext i32 %328 to i64
  %334 = getelementptr inbounds double, ptr %2, i64 %333
  %335 = load double, ptr %334, align 8, !tbaa !11
  %336 = getelementptr i8, ptr %334, i64 8
  %337 = load double, ptr %336, align 8, !tbaa !11
  %338 = fneg double %337
  store double %335, ptr %gep849, align 8, !tbaa !11
  store double %338, ptr %330, align 8, !tbaa !11
  store double %329, ptr %334, align 8, !tbaa !11
  store double %332, ptr %336, align 8, !tbaa !11
  %339 = add i32 %312, %21
  %340 = add i32 %313, 2
  %341 = sext i32 %339 to i64
  %342 = getelementptr inbounds double, ptr %2, i64 %341
  %343 = load double, ptr %342, align 8, !tbaa !11
  %344 = getelementptr i8, ptr %342, i64 8
  %345 = load double, ptr %344, align 8, !tbaa !11
  %346 = fneg double %345
  %347 = sext i32 %340 to i64
  %348 = getelementptr inbounds double, ptr %2, i64 %347
  %349 = load double, ptr %348, align 8, !tbaa !11
  %350 = add i32 %313, 3
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds double, ptr %2, i64 %351
  %353 = load double, ptr %352, align 8, !tbaa !11
  %354 = fneg double %353
  store double %349, ptr %342, align 8, !tbaa !11
  store double %354, ptr %344, align 8, !tbaa !11
  store double %343, ptr %348, align 8, !tbaa !11
  store double %346, ptr %352, align 8, !tbaa !11
  %355 = add i32 %312, %22
  %356 = add i32 %313, %23
  %357 = sext i32 %355 to i64
  %358 = getelementptr double, ptr %2, i64 %357
  %359 = getelementptr i8, ptr %358, i64 -8
  %360 = load double, ptr %359, align 8, !tbaa !11
  %361 = fneg double %360
  store double %361, ptr %359, align 8, !tbaa !11
  %362 = load double, ptr %358, align 8, !tbaa !11
  %363 = or disjoint i32 %355, 1
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds double, ptr %2, i64 %364
  %366 = load double, ptr %365, align 8, !tbaa !11
  %367 = fneg double %366
  %368 = sext i32 %356 to i64
  %369 = getelementptr inbounds double, ptr %2, i64 %368
  %370 = load double, ptr %369, align 8, !tbaa !11
  %371 = getelementptr i8, ptr %369, i64 8
  %372 = load double, ptr %371, align 8, !tbaa !11
  %373 = fneg double %372
  store double %370, ptr %358, align 8, !tbaa !11
  store double %373, ptr %365, align 8, !tbaa !11
  store double %362, ptr %369, align 8, !tbaa !11
  store double %367, ptr %371, align 8, !tbaa !11
  %374 = getelementptr i8, ptr %369, i64 24
  %375 = load double, ptr %374, align 8, !tbaa !11
  %376 = fneg double %375
  store double %376, ptr %374, align 8, !tbaa !11
  %indvars.iv.next865 = add nuw nsw i64 %indvars.iv864, 1
  %exitcond868.not = icmp eq i64 %indvars.iv.next865, %27
  br i1 %exitcond868.not, label %.loopexit, label %.preheader, !llvm.loop !14

.preheader831:                                    ; preds = %.preheader831.lr.ph, %._crit_edge839
  %indvars.iv855 = phi i64 [ 0, %.preheader831.lr.ph ], [ %indvars.iv.next856, %._crit_edge839 ]
  %.not = icmp eq i64 %indvars.iv855, 0
  br i1 %.not, label %._crit_edge839, label %.lr.ph838

.lr.ph838:                                        ; preds = %.preheader831
  %377 = add nuw nsw i64 %indvars.iv855, %20
  %378 = getelementptr inbounds i32, ptr %1, i64 %377
  %379 = load i32, ptr %378, align 4, !tbaa !7
  %380 = sext i32 %379 to i64
  %indvars.iv855.tr = trunc i64 %indvars.iv855 to i32
  %381 = shl i32 %indvars.iv855.tr, 2
  br label %382

382:                                              ; preds = %.lr.ph838, %382
  %indvars.iv = phi i64 [ 0, %.lr.ph838 ], [ %indvars.iv.next, %382 ]
  %383 = shl nsw i64 %indvars.iv, 2
  %384 = add nsw i64 %383, %380
  %gep901 = getelementptr inbounds i32, ptr %invariant.gep900, i64 %indvars.iv
  %385 = load i32, ptr %gep901, align 4, !tbaa !7
  %386 = add nsw i32 %385, %381
  %387 = getelementptr inbounds double, ptr %2, i64 %384
  %388 = load double, ptr %387, align 8, !tbaa !11
  %389 = getelementptr i8, ptr %387, i64 8
  %390 = load double, ptr %389, align 8, !tbaa !11
  %391 = fneg double %390
  %392 = sext i32 %386 to i64
  %393 = getelementptr inbounds double, ptr %2, i64 %392
  %394 = load double, ptr %393, align 8, !tbaa !11
  %395 = getelementptr i8, ptr %393, i64 8
  %396 = load double, ptr %395, align 8, !tbaa !11
  %397 = fneg double %396
  store double %394, ptr %387, align 8, !tbaa !11
  store double %397, ptr %389, align 8, !tbaa !11
  store double %388, ptr %393, align 8, !tbaa !11
  store double %391, ptr %395, align 8, !tbaa !11
  %398 = add nsw i64 %384, %17
  %399 = add nsw i32 %386, %16
  %400 = getelementptr inbounds double, ptr %2, i64 %398
  %401 = load double, ptr %400, align 8, !tbaa !11
  %402 = getelementptr i8, ptr %400, i64 8
  %403 = load double, ptr %402, align 8, !tbaa !11
  %404 = fneg double %403
  %405 = sext i32 %399 to i64
  %406 = getelementptr inbounds double, ptr %2, i64 %405
  %407 = load double, ptr %406, align 8, !tbaa !11
  %408 = getelementptr i8, ptr %406, i64 8
  %409 = load double, ptr %408, align 8, !tbaa !11
  %410 = fneg double %409
  store double %407, ptr %400, align 8, !tbaa !11
  store double %410, ptr %402, align 8, !tbaa !11
  store double %401, ptr %406, align 8, !tbaa !11
  store double %404, ptr %408, align 8, !tbaa !11
  %411 = add nsw i64 %398, %18
  %412 = add nsw i32 %399, 2
  %413 = getelementptr inbounds double, ptr %2, i64 %411
  %414 = load double, ptr %413, align 8, !tbaa !11
  %415 = getelementptr i8, ptr %413, i64 8
  %416 = load double, ptr %415, align 8, !tbaa !11
  %417 = fneg double %416
  %418 = sext i32 %412 to i64
  %419 = getelementptr inbounds double, ptr %2, i64 %418
  %420 = load double, ptr %419, align 8, !tbaa !11
  %421 = getelementptr i8, ptr %406, i64 24
  %422 = load double, ptr %421, align 8, !tbaa !11
  %423 = fneg double %422
  store double %420, ptr %413, align 8, !tbaa !11
  store double %423, ptr %415, align 8, !tbaa !11
  store double %414, ptr %419, align 8, !tbaa !11
  store double %417, ptr %421, align 8, !tbaa !11
  %424 = sub nsw i64 %411, %17
  %425 = sub nsw i32 %412, %16
  %426 = getelementptr inbounds double, ptr %2, i64 %424
  %427 = load double, ptr %426, align 8, !tbaa !11
  %428 = getelementptr i8, ptr %426, i64 8
  %429 = load double, ptr %428, align 8, !tbaa !11
  %430 = fneg double %429
  %431 = sext i32 %425 to i64
  %432 = getelementptr inbounds double, ptr %2, i64 %431
  %433 = load double, ptr %432, align 8, !tbaa !11
  %434 = getelementptr i8, ptr %432, i64 8
  %435 = load double, ptr %434, align 8, !tbaa !11
  %436 = fneg double %435
  store double %433, ptr %426, align 8, !tbaa !11
  store double %436, ptr %428, align 8, !tbaa !11
  store double %427, ptr %432, align 8, !tbaa !11
  store double %430, ptr %434, align 8, !tbaa !11
  %437 = add nsw i32 %425, %15
  %gep = getelementptr double, ptr %invariant.gep, i64 %424
  %438 = load double, ptr %gep, align 8, !tbaa !11
  %439 = getelementptr i8, ptr %426, i64 24
  %440 = load double, ptr %439, align 8, !tbaa !11
  %441 = fneg double %440
  %442 = sext i32 %437 to i64
  %443 = getelementptr inbounds double, ptr %2, i64 %442
  %444 = load double, ptr %443, align 8, !tbaa !11
  %445 = getelementptr i8, ptr %443, i64 8
  %446 = load double, ptr %445, align 8, !tbaa !11
  %447 = fneg double %446
  store double %444, ptr %gep, align 8, !tbaa !11
  store double %447, ptr %439, align 8, !tbaa !11
  store double %438, ptr %443, align 8, !tbaa !11
  store double %441, ptr %445, align 8, !tbaa !11
  %448 = trunc nsw i64 %411 to i32
  %449 = add i32 %448, 2
  %450 = add i32 %412, %15
  %451 = sext i32 %449 to i64
  %452 = getelementptr inbounds double, ptr %2, i64 %451
  %453 = load double, ptr %452, align 8, !tbaa !11
  %454 = shl i64 %411, 32
  %sext = add i64 %454, 12884901888
  %455 = ashr exact i64 %sext, 29
  %456 = getelementptr inbounds i8, ptr %2, i64 %455
  %457 = load double, ptr %456, align 8, !tbaa !11
  %458 = fneg double %457
  %459 = sext i32 %450 to i64
  %460 = getelementptr inbounds double, ptr %2, i64 %459
  %461 = load double, ptr %460, align 8, !tbaa !11
  %462 = getelementptr i8, ptr %460, i64 8
  %463 = load double, ptr %462, align 8, !tbaa !11
  %464 = fneg double %463
  store double %461, ptr %452, align 8, !tbaa !11
  store double %464, ptr %456, align 8, !tbaa !11
  store double %453, ptr %460, align 8, !tbaa !11
  store double %458, ptr %462, align 8, !tbaa !11
  %465 = sub nsw i32 %449, %15
  %466 = add i32 %399, %15
  %467 = sext i32 %465 to i64
  %468 = getelementptr inbounds double, ptr %2, i64 %467
  %469 = load double, ptr %468, align 8, !tbaa !11
  %470 = getelementptr i8, ptr %468, i64 8
  %471 = load double, ptr %470, align 8, !tbaa !11
  %472 = fneg double %471
  %473 = sext i32 %466 to i64
  %474 = getelementptr inbounds double, ptr %2, i64 %473
  %475 = load double, ptr %474, align 8, !tbaa !11
  %476 = getelementptr i8, ptr %474, i64 8
  %477 = load double, ptr %476, align 8, !tbaa !11
  %478 = fneg double %477
  store double %475, ptr %468, align 8, !tbaa !11
  store double %478, ptr %470, align 8, !tbaa !11
  store double %469, ptr %474, align 8, !tbaa !11
  store double %472, ptr %476, align 8, !tbaa !11
  %479 = sub nsw i32 %465, %16
  %480 = sub nsw i32 %466, %16
  %481 = sext i32 %479 to i64
  %482 = getelementptr inbounds double, ptr %2, i64 %481
  %483 = load double, ptr %482, align 8, !tbaa !11
  %484 = getelementptr i8, ptr %482, i64 8
  %485 = load double, ptr %484, align 8, !tbaa !11
  %486 = fneg double %485
  %487 = sext i32 %480 to i64
  %488 = getelementptr inbounds double, ptr %2, i64 %487
  %489 = load double, ptr %488, align 8, !tbaa !11
  %490 = getelementptr i8, ptr %488, i64 8
  %491 = load double, ptr %490, align 8, !tbaa !11
  %492 = fneg double %491
  store double %489, ptr %482, align 8, !tbaa !11
  store double %492, ptr %484, align 8, !tbaa !11
  store double %483, ptr %488, align 8, !tbaa !11
  store double %486, ptr %490, align 8, !tbaa !11
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %indvars.iv855
  br i1 %exitcond.not, label %._crit_edge839, label %382, !llvm.loop !15

._crit_edge839:                                   ; preds = %382, %.preheader831
  %.pre-phi878 = phi i32 [ 0, %.preheader831 ], [ %381, %382 ]
  %.pre-phi876 = phi i64 [ %20, %.preheader831 ], [ %377, %382 ]
  %493 = getelementptr inbounds i32, ptr %1, i64 %.pre-phi876
  %494 = load i32, ptr %493, align 4, !tbaa !7
  %495 = add nsw i32 %494, %.pre-phi878
  %496 = add nsw i32 %495, 2
  %497 = add nsw i32 %495, %15
  %498 = sext i32 %495 to i64
  %499 = getelementptr double, ptr %2, i64 %498
  %500 = getelementptr i8, ptr %499, i64 8
  %501 = load double, ptr %500, align 8, !tbaa !11
  %502 = fneg double %501
  store double %502, ptr %500, align 8, !tbaa !11
  %503 = sext i32 %496 to i64
  %504 = getelementptr inbounds double, ptr %2, i64 %503
  %505 = load double, ptr %504, align 8, !tbaa !11
  %506 = getelementptr i8, ptr %499, i64 24
  %507 = load double, ptr %506, align 8, !tbaa !11
  %508 = fneg double %507
  %509 = sext i32 %497 to i64
  %510 = getelementptr inbounds double, ptr %2, i64 %509
  %511 = load double, ptr %510, align 8, !tbaa !11
  %512 = getelementptr i8, ptr %510, i64 8
  %513 = load double, ptr %512, align 8, !tbaa !11
  %514 = fneg double %513
  store double %511, ptr %504, align 8, !tbaa !11
  store double %514, ptr %506, align 8, !tbaa !11
  store double %505, ptr %510, align 8, !tbaa !11
  store double %508, ptr %512, align 8, !tbaa !11
  %515 = getelementptr i8, ptr %510, i64 24
  %516 = load double, ptr %515, align 8, !tbaa !11
  %517 = fneg double %516
  store double %517, ptr %515, align 8, !tbaa !11
  %518 = add nsw i32 %496, %16
  %519 = add nsw i32 %497, %16
  %520 = sext i32 %518 to i64
  %521 = getelementptr double, ptr %2, i64 %520
  %522 = getelementptr i8, ptr %521, i64 -8
  %523 = load double, ptr %522, align 8, !tbaa !11
  %524 = fneg double %523
  store double %524, ptr %522, align 8, !tbaa !11
  %525 = load double, ptr %521, align 8, !tbaa !11
  %526 = getelementptr i8, ptr %521, i64 8
  %527 = load double, ptr %526, align 8, !tbaa !11
  %528 = fneg double %527
  %529 = sext i32 %519 to i64
  %530 = getelementptr inbounds double, ptr %2, i64 %529
  %531 = load double, ptr %530, align 8, !tbaa !11
  %532 = getelementptr i8, ptr %530, i64 8
  %533 = load double, ptr %532, align 8, !tbaa !11
  %534 = fneg double %533
  store double %531, ptr %521, align 8, !tbaa !11
  store double %534, ptr %526, align 8, !tbaa !11
  store double %525, ptr %530, align 8, !tbaa !11
  store double %528, ptr %532, align 8, !tbaa !11
  %535 = getelementptr i8, ptr %530, i64 24
  %536 = load double, ptr %535, align 8, !tbaa !11
  %537 = fneg double %536
  store double %537, ptr %535, align 8, !tbaa !11
  %indvars.iv.next856 = add nuw nsw i64 %indvars.iv855, 1
  %exitcond859.not = icmp eq i64 %indvars.iv.next856, %20
  br i1 %exitcond859.not, label %.loopexit, label %.preheader831, !llvm.loop !16

.loopexit:                                        ; preds = %._crit_edge839, %._crit_edge845, %.preheader832, %.preheader830
  ret void
}

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

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

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


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass