; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (dlasq3)

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

@.str = external hidden unnamed_addr constant [10 x i8], align 1

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

67:                                               ; preds = %341, %132, %20
  %68 = load ptr, ptr %23, align 8, !tbaa !5
  %69 = load i64, ptr %68, align 8, !tbaa !9
  %70 = load ptr, ptr %22, align 8, !tbaa !5
  %71 = load i64, ptr %70, align 8, !tbaa !9
  %72 = icmp slt i64 %69, %71
  br i1 %72, label %73, label %74

73:                                               ; preds = %67
  store i32 0, ptr %21, align 4
  store i32 1, ptr %55, align 4
  br label %977

74:                                               ; preds = %67
  %75 = load ptr, ptr %23, align 8, !tbaa !5
  %76 = load i64, ptr %75, align 8, !tbaa !9
  %77 = load ptr, ptr %22, align 8, !tbaa !5
  %78 = load i64, ptr %77, align 8, !tbaa !9
  %79 = icmp eq i64 %76, %78
  br i1 %79, label %80, label %81

80:                                               ; preds = %74
  br label %132

81:                                               ; preds = %74
  %82 = load ptr, ptr %23, align 8, !tbaa !5
  %83 = load i64, ptr %82, align 8, !tbaa !9
  %84 = shl i64 %83, 2
  %85 = load ptr, ptr %25, align 8, !tbaa !5
  %86 = load i64, ptr %85, align 8, !tbaa !9
  %87 = add nsw i64 %84, %86
  store i64 %87, ptr %48, align 8, !tbaa !9
  %88 = load ptr, ptr %23, align 8, !tbaa !5
  %89 = load i64, ptr %88, align 8, !tbaa !9
  %90 = load ptr, ptr %22, align 8, !tbaa !5
  %91 = load i64, ptr %90, align 8, !tbaa !9
  %92 = add nsw i64 %91, 1
  %93 = icmp eq i64 %89, %92
  br i1 %93, label %94, label %95

94:                                               ; preds = %81
  br label %186

95:                                               ; preds = %81
  %96 = load ptr, ptr %24, align 8, !tbaa !5
  %97 = load i64, ptr %48, align 8, !tbaa !9
  %98 = sub nsw i64 %97, 5
  %99 = getelementptr inbounds double, ptr %96, i64 %98
  %100 = load double, ptr %99, align 8, !tbaa !11
  %101 = load double, ptr %53, align 8, !tbaa !11
  %102 = load ptr, ptr %27, align 8, !tbaa !5
  %103 = load double, ptr %102, align 8, !tbaa !11
  %104 = load ptr, ptr %24, align 8, !tbaa !5
  %105 = load i64, ptr %48, align 8, !tbaa !9
  %106 = sub nsw i64 %105, 3
  %107 = getelementptr inbounds double, ptr %104, i64 %106
  %108 = load double, ptr %107, align 8, !tbaa !11
  %109 = fadd double %103, %108
  %110 = fmul double %101, %109
  %111 = fcmp ogt double %100, %110
  br i1 %111, label %112, label %131

112:                                              ; preds = %95
  %113 = load ptr, ptr %24, align 8, !tbaa !5
  %114 = load i64, ptr %48, align 8, !tbaa !9
  %115 = load ptr, ptr %25, align 8, !tbaa !5
  %116 = load i64, ptr %115, align 8, !tbaa !9
  %117 = shl i64 %116, 1
  %118 = sub nsw i64 %114, %117
  %119 = sub nsw i64 %118, 4
  %120 = getelementptr inbounds double, ptr %113, i64 %119
  %121 = load double, ptr %120, align 8, !tbaa !11
  %122 = load double, ptr %53, align 8, !tbaa !11
  %123 = load ptr, ptr %24, align 8, !tbaa !5
  %124 = load i64, ptr %48, align 8, !tbaa !9
  %125 = sub nsw i64 %124, 7
  %126 = getelementptr inbounds double, ptr %123, i64 %125
  %127 = load double, ptr %126, align 8, !tbaa !11
  %128 = fmul double %122, %127
  %129 = fcmp ogt double %121, %128
  br i1 %129, label %130, label %131

130:                                              ; preds = %112
  br label %155

131:                                              ; preds = %112, %95
  br label %132

132:                                              ; preds = %131, %80
  %133 = load ptr, ptr %24, align 8, !tbaa !5
  %134 = load ptr, ptr %23, align 8, !tbaa !5
  %135 = load i64, ptr %134, align 8, !tbaa !9
  %136 = shl i64 %135, 2
  %137 = load ptr, ptr %25, align 8, !tbaa !5
  %138 = load i64, ptr %137, align 8, !tbaa !9
  %139 = add nsw i64 %136, %138
  %140 = sub nsw i64 %139, 3
  %141 = getelementptr inbounds double, ptr %133, i64 %140
  %142 = load double, ptr %141, align 8, !tbaa !11
  %143 = load ptr, ptr %27, align 8, !tbaa !5
  %144 = load double, ptr %143, align 8, !tbaa !11
  %145 = fadd double %142, %144
  %146 = load ptr, ptr %24, align 8, !tbaa !5
  %147 = load ptr, ptr %23, align 8, !tbaa !5
  %148 = load i64, ptr %147, align 8, !tbaa !9
  %149 = shl i64 %148, 2
  %150 = sub nsw i64 %149, 3
  %151 = getelementptr inbounds double, ptr %146, i64 %150
  store double %145, ptr %151, align 8, !tbaa !11
  %152 = load ptr, ptr %23, align 8, !tbaa !5
  %153 = load i64, ptr %152, align 8, !tbaa !9
  %154 = add nsw i64 %153, -1
  store i64 %154, ptr %152, align 8, !tbaa !9
  br label %67

155:                                              ; preds = %130
  %156 = load ptr, ptr %24, align 8, !tbaa !5
  %157 = load i64, ptr %48, align 8, !tbaa !9
  %158 = sub nsw i64 %157, 9
  %159 = getelementptr inbounds double, ptr %156, i64 %158
  %160 = load double, ptr %159, align 8, !tbaa !11
  %161 = load double, ptr %53, align 8, !tbaa !11
  %162 = load ptr, ptr %27, align 8, !tbaa !5
  %163 = load double, ptr %162, align 8, !tbaa !11
  %164 = fmul double %161, %163
  %165 = fcmp ogt double %160, %164
  br i1 %165, label %166, label %185

166:                                              ; preds = %155
  %167 = load ptr, ptr %24, align 8, !tbaa !5
  %168 = load i64, ptr %48, align 8, !tbaa !9
  %169 = load ptr, ptr %25, align 8, !tbaa !5
  %170 = load i64, ptr %169, align 8, !tbaa !9
  %171 = shl i64 %170, 1
  %172 = sub nsw i64 %168, %171
  %173 = sub nsw i64 %172, 8
  %174 = getelementptr inbounds double, ptr %167, i64 %173
  %175 = load double, ptr %174, align 8, !tbaa !11
  %176 = load double, ptr %53, align 8, !tbaa !11
  %177 = load ptr, ptr %24, align 8, !tbaa !5
  %178 = load i64, ptr %48, align 8, !tbaa !9
  %179 = sub nsw i64 %178, 11
  %180 = getelementptr inbounds double, ptr %177, i64 %179
  %181 = load double, ptr %180, align 8, !tbaa !11
  %182 = fmul double %176, %181
  %183 = fcmp ogt double %175, %182
  br i1 %183, label %184, label %185

184:                                              ; preds = %166
  br label %373

185:                                              ; preds = %166, %155
  br label %186

186:                                              ; preds = %185, %94
  %187 = load ptr, ptr %24, align 8, !tbaa !5
  %188 = load i64, ptr %48, align 8, !tbaa !9
  %189 = sub nsw i64 %188, 3
  %190 = getelementptr inbounds double, ptr %187, i64 %189
  %191 = load double, ptr %190, align 8, !tbaa !11
  %192 = load ptr, ptr %24, align 8, !tbaa !5
  %193 = load i64, ptr %48, align 8, !tbaa !9
  %194 = sub nsw i64 %193, 7
  %195 = getelementptr inbounds double, ptr %192, i64 %194
  %196 = load double, ptr %195, align 8, !tbaa !11
  %197 = fcmp ogt double %191, %196
  br i1 %197, label %198, label %218

198:                                              ; preds = %186
  %199 = load ptr, ptr %24, align 8, !tbaa !5
  %200 = load i64, ptr %48, align 8, !tbaa !9
  %201 = sub nsw i64 %200, 3
  %202 = getelementptr inbounds double, ptr %199, i64 %201
  %203 = load double, ptr %202, align 8, !tbaa !11
  store double %203, ptr %45, align 8, !tbaa !11
  %204 = load ptr, ptr %24, align 8, !tbaa !5
  %205 = load i64, ptr %48, align 8, !tbaa !9
  %206 = sub nsw i64 %205, 7
  %207 = getelementptr inbounds double, ptr %204, i64 %206
  %208 = load double, ptr %207, align 8, !tbaa !11
  %209 = load ptr, ptr %24, align 8, !tbaa !5
  %210 = load i64, ptr %48, align 8, !tbaa !9
  %211 = sub nsw i64 %210, 3
  %212 = getelementptr inbounds double, ptr %209, i64 %211
  store double %208, ptr %212, align 8, !tbaa !11
  %213 = load double, ptr %45, align 8, !tbaa !11
  %214 = load ptr, ptr %24, align 8, !tbaa !5
  %215 = load i64, ptr %48, align 8, !tbaa !9
  %216 = sub nsw i64 %215, 7
  %217 = getelementptr inbounds double, ptr %214, i64 %216
  store double %213, ptr %217, align 8, !tbaa !11
  br label %218

218:                                              ; preds = %198, %186
  %219 = load ptr, ptr %24, align 8, !tbaa !5
  %220 = load i64, ptr %48, align 8, !tbaa !9
  %221 = sub nsw i64 %220, 5
  %222 = getelementptr inbounds double, ptr %219, i64 %221
  %223 = load double, ptr %222, align 8, !tbaa !11
  %224 = load ptr, ptr %24, align 8, !tbaa !5
  %225 = load i64, ptr %48, align 8, !tbaa !9
  %226 = sub nsw i64 %225, 3
  %227 = getelementptr inbounds double, ptr %224, i64 %226
  %228 = load double, ptr %227, align 8, !tbaa !11
  %229 = load double, ptr %53, align 8, !tbaa !11
  %230 = fmul double %228, %229
  %231 = fcmp ogt double %223, %230
  br i1 %231, label %232, label %341

232:                                              ; preds = %218
  %233 = load ptr, ptr %24, align 8, !tbaa !5
  %234 = load i64, ptr %48, align 8, !tbaa !9
  %235 = sub nsw i64 %234, 7
  %236 = getelementptr inbounds double, ptr %233, i64 %235
  %237 = load double, ptr %236, align 8, !tbaa !11
  %238 = load ptr, ptr %24, align 8, !tbaa !5
  %239 = load i64, ptr %48, align 8, !tbaa !9
  %240 = sub nsw i64 %239, 3
  %241 = getelementptr inbounds double, ptr %238, i64 %240
  %242 = load double, ptr %241, align 8, !tbaa !11
  %243 = fsub double %237, %242
  %244 = load ptr, ptr %24, align 8, !tbaa !5
  %245 = load i64, ptr %48, align 8, !tbaa !9
  %246 = sub nsw i64 %245, 5
  %247 = getelementptr inbounds double, ptr %244, i64 %246
  %248 = load double, ptr %247, align 8, !tbaa !11
  %249 = fadd double %243, %248
  %250 = fmul double %249, 5.000000e-01
  store double %250, ptr %46, align 8, !tbaa !11
  %251 = load ptr, ptr %24, align 8, !tbaa !5
  %252 = load i64, ptr %48, align 8, !tbaa !9
  %253 = sub nsw i64 %252, 3
  %254 = getelementptr inbounds double, ptr %251, i64 %253
  %255 = load double, ptr %254, align 8, !tbaa !11
  %256 = load ptr, ptr %24, align 8, !tbaa !5
  %257 = load i64, ptr %48, align 8, !tbaa !9
  %258 = sub nsw i64 %257, 5
  %259 = getelementptr inbounds double, ptr %256, i64 %258
  %260 = load double, ptr %259, align 8, !tbaa !11
  %261 = load double, ptr %46, align 8, !tbaa !11
  %262 = fdiv double %260, %261
  %263 = fmul double %255, %262
  store double %263, ptr %45, align 8, !tbaa !11
  %264 = load double, ptr %45, align 8, !tbaa !11
  %265 = load double, ptr %46, align 8, !tbaa !11
  %266 = fcmp ole double %264, %265
  br i1 %266, label %267, label %288

267:                                              ; preds = %232
  %268 = load ptr, ptr %24, align 8, !tbaa !5
  %269 = load i64, ptr %48, align 8, !tbaa !9
  %270 = sub nsw i64 %269, 3
  %271 = getelementptr inbounds double, ptr %268, i64 %270
  %272 = load double, ptr %271, align 8, !tbaa !11
  %273 = load ptr, ptr %24, align 8, !tbaa !5
  %274 = load i64, ptr %48, align 8, !tbaa !9
  %275 = sub nsw i64 %274, 5
  %276 = getelementptr inbounds double, ptr %273, i64 %275
  %277 = load double, ptr %276, align 8, !tbaa !11
  %278 = load double, ptr %46, align 8, !tbaa !11
  %279 = load double, ptr %45, align 8, !tbaa !11
  %280 = load double, ptr %46, align 8, !tbaa !11
  %281 = fdiv double %279, %280
  %282 = fadd double %281, 1.000000e+00
  %283 = call double @sqrt(double noundef %282) #5
  %284 = fadd double %283, 1.000000e+00
  %285 = fmul double %278, %284
  %286 = fdiv double %277, %285
  %287 = fmul double %272, %286
  store double %287, ptr %45, align 8, !tbaa !11
  br label %309

288:                                              ; preds = %232
  %289 = load ptr, ptr %24, align 8, !tbaa !5
  %290 = load i64, ptr %48, align 8, !tbaa !9
  %291 = sub nsw i64 %290, 3
  %292 = getelementptr inbounds double, ptr %289, i64 %291
  %293 = load double, ptr %292, align 8, !tbaa !11
  %294 = load ptr, ptr %24, align 8, !tbaa !5
  %295 = load i64, ptr %48, align 8, !tbaa !9
  %296 = sub nsw i64 %295, 5
  %297 = getelementptr inbounds double, ptr %294, i64 %296
  %298 = load double, ptr %297, align 8, !tbaa !11
  %299 = load double, ptr %46, align 8, !tbaa !11
  %300 = load double, ptr %46, align 8, !tbaa !11
  %301 = call double @sqrt(double noundef %300) #5
  %302 = load double, ptr %46, align 8, !tbaa !11
  %303 = load double, ptr %45, align 8, !tbaa !11
  %304 = fadd double %302, %303
  %305 = call double @sqrt(double noundef %304) #5
  %306 = call double @llvm.fmuladd.f64(double %301, double %305, double %299)
  %307 = fdiv double %298, %306
  %308 = fmul double %293, %307
  store double %308, ptr %45, align 8, !tbaa !11
  br label %309

309:                                              ; preds = %288, %267
  %310 = load ptr, ptr %24, align 8, !tbaa !5
  %311 = load i64, ptr %48, align 8, !tbaa !9
  %312 = sub nsw i64 %311, 7
  %313 = getelementptr inbounds double, ptr %310, i64 %312
  %314 = load double, ptr %313, align 8, !tbaa !11
  %315 = load double, ptr %45, align 8, !tbaa !11
  %316 = load ptr, ptr %24, align 8, !tbaa !5
  %317 = load i64, ptr %48, align 8, !tbaa !9
  %318 = sub nsw i64 %317, 5
  %319 = getelementptr inbounds double, ptr %316, i64 %318
  %320 = load double, ptr %319, align 8, !tbaa !11
  %321 = fadd double %315, %320
  %322 = fadd double %314, %321
  store double %322, ptr %46, align 8, !tbaa !11
  %323 = load ptr, ptr %24, align 8, !tbaa !5
  %324 = load i64, ptr %48, align 8, !tbaa !9
  %325 = sub nsw i64 %324, 7
  %326 = getelementptr inbounds double, ptr %323, i64 %325
  %327 = load double, ptr %326, align 8, !tbaa !11
  %328 = load double, ptr %46, align 8, !tbaa !11
  %329 = fdiv double %327, %328
  %330 = load ptr, ptr %24, align 8, !tbaa !5
  %331 = load i64, ptr %48, align 8, !tbaa !9
  %332 = sub nsw i64 %331, 3
  %333 = getelementptr inbounds double, ptr %330, i64 %332
  %334 = load double, ptr %333, align 8, !tbaa !11
  %335 = fmul double %334, %329
  store double %335, ptr %333, align 8, !tbaa !11
  %336 = load double, ptr %46, align 8, !tbaa !11
  %337 = load ptr, ptr %24, align 8, !tbaa !5
  %338 = load i64, ptr %48, align 8, !tbaa !9
  %339 = sub nsw i64 %338, 7
  %340 = getelementptr inbounds double, ptr %337, i64 %339
  store double %336, ptr %340, align 8, !tbaa !11
  br label %341

341:                                              ; preds = %309, %218
  %342 = load ptr, ptr %24, align 8, !tbaa !5
  %343 = load i64, ptr %48, align 8, !tbaa !9
  %344 = sub nsw i64 %343, 7
  %345 = getelementptr inbounds double, ptr %342, i64 %344
  %346 = load double, ptr %345, align 8, !tbaa !11
  %347 = load ptr, ptr %27, align 8, !tbaa !5
  %348 = load double, ptr %347, align 8, !tbaa !11
  %349 = fadd double %346, %348
  %350 = load ptr, ptr %24, align 8, !tbaa !5
  %351 = load ptr, ptr %23, align 8, !tbaa !5
  %352 = load i64, ptr %351, align 8, !tbaa !9
  %353 = shl i64 %352, 2
  %354 = sub nsw i64 %353, 7
  %355 = getelementptr inbounds double, ptr %350, i64 %354
  store double %349, ptr %355, align 8, !tbaa !11
  %356 = load ptr, ptr %24, align 8, !tbaa !5
  %357 = load i64, ptr %48, align 8, !tbaa !9
  %358 = sub nsw i64 %357, 3
  %359 = getelementptr inbounds double, ptr %356, i64 %358
  %360 = load double, ptr %359, align 8, !tbaa !11
  %361 = load ptr, ptr %27, align 8, !tbaa !5
  %362 = load double, ptr %361, align 8, !tbaa !11
  %363 = fadd double %360, %362
  %364 = load ptr, ptr %24, align 8, !tbaa !5
  %365 = load ptr, ptr %23, align 8, !tbaa !5
  %366 = load i64, ptr %365, align 8, !tbaa !9
  %367 = shl i64 %366, 2
  %368 = sub nsw i64 %367, 3
  %369 = getelementptr inbounds double, ptr %364, i64 %368
  store double %363, ptr %369, align 8, !tbaa !11
  %370 = load ptr, ptr %23, align 8, !tbaa !5
  %371 = load i64, ptr %370, align 8, !tbaa !9
  %372 = add nsw i64 %371, -2
  store i64 %372, ptr %370, align 8, !tbaa !9
  br label %67

373:                                              ; preds = %184
  %374 = load ptr, ptr %25, align 8, !tbaa !5
  %375 = load i64, ptr %374, align 8, !tbaa !9
  %376 = icmp eq i64 %375, 2
  br i1 %376, label %377, label %379

377:                                              ; preds = %373
  %378 = load ptr, ptr %25, align 8, !tbaa !5
  store i64 0, ptr %378, align 8, !tbaa !9
  br label %379

379:                                              ; preds = %377, %373
  %380 = load ptr, ptr %26, align 8, !tbaa !5
  %381 = load double, ptr %380, align 8, !tbaa !11
  %382 = fcmp ole double %381, 0.000000e+00
  br i1 %382, label %388, label %383

383:                                              ; preds = %379
  %384 = load ptr, ptr %23, align 8, !tbaa !5
  %385 = load i64, ptr %384, align 8, !tbaa !9
  %386 = load i64, ptr %51, align 8, !tbaa !9
  %387 = icmp slt i64 %385, %386
  br i1 %387, label %388, label %747

388:                                              ; preds = %383, %379
  %389 = load ptr, ptr %24, align 8, !tbaa !5
  %390 = load ptr, ptr %22, align 8, !tbaa !5
  %391 = load i64, ptr %390, align 8, !tbaa !9
  %392 = shl i64 %391, 2
  %393 = load ptr, ptr %25, align 8, !tbaa !5
  %394 = load i64, ptr %393, align 8, !tbaa !9
  %395 = add nsw i64 %392, %394
  %396 = sub nsw i64 %395, 3
  %397 = getelementptr inbounds double, ptr %389, i64 %396
  %398 = load double, ptr %397, align 8, !tbaa !11
  %399 = fmul double %398, 1.500000e+00
  %400 = load ptr, ptr %24, align 8, !tbaa !5
  %401 = load ptr, ptr %23, align 8, !tbaa !5
  %402 = load i64, ptr %401, align 8, !tbaa !9
  %403 = shl i64 %402, 2
  %404 = load ptr, ptr %25, align 8, !tbaa !5
  %405 = load i64, ptr %404, align 8, !tbaa !9
  %406 = add nsw i64 %403, %405
  %407 = sub nsw i64 %406, 3
  %408 = getelementptr inbounds double, ptr %400, i64 %407
  %409 = load double, ptr %408, align 8, !tbaa !11
  %410 = fcmp olt double %399, %409
  br i1 %410, label %411, label %746

411:                                              ; preds = %388
  %412 = load ptr, ptr %22, align 8, !tbaa !5
  %413 = load i64, ptr %412, align 8, !tbaa !9
  %414 = load ptr, ptr %23, align 8, !tbaa !5
  %415 = load i64, ptr %414, align 8, !tbaa !9
  %416 = add nsw i64 %413, %415
  %417 = shl i64 %416, 2
  store i64 %417, ptr %52, align 8, !tbaa !9
  %418 = load ptr, ptr %22, align 8, !tbaa !5
  %419 = load i64, ptr %418, align 8, !tbaa !9
  %420 = load ptr, ptr %23, align 8, !tbaa !5
  %421 = load i64, ptr %420, align 8, !tbaa !9
  %422 = add nsw i64 %419, %421
  %423 = sub nsw i64 %422, 1
  %424 = shl i64 %423, 1
  store i64 %424, ptr %42, align 8, !tbaa !9
  %425 = load ptr, ptr %22, align 8, !tbaa !5
  %426 = load i64, ptr %425, align 8, !tbaa !9
  %427 = shl i64 %426, 2
  store i64 %427, ptr %47, align 8, !tbaa !9
  br label %428

428:                                              ; preds = %523, %411
  %429 = load i64, ptr %47, align 8, !tbaa !9
  %430 = load i64, ptr %42, align 8, !tbaa !9
  %431 = icmp sle i64 %429, %430
  br i1 %431, label %432, label %526

432:                                              ; preds = %428
  %433 = load ptr, ptr %24, align 8, !tbaa !5
  %434 = load i64, ptr %47, align 8, !tbaa !9
  %435 = sub nsw i64 %434, 3
  %436 = getelementptr inbounds double, ptr %433, i64 %435
  %437 = load double, ptr %436, align 8, !tbaa !11
  store double %437, ptr %54, align 8, !tbaa !11
  %438 = load ptr, ptr %24, align 8, !tbaa !5
  %439 = load i64, ptr %52, align 8, !tbaa !9
  %440 = load i64, ptr %47, align 8, !tbaa !9
  %441 = sub nsw i64 %439, %440
  %442 = sub nsw i64 %441, 3
  %443 = getelementptr inbounds double, ptr %438, i64 %442
  %444 = load double, ptr %443, align 8, !tbaa !11
  %445 = load ptr, ptr %24, align 8, !tbaa !5
  %446 = load i64, ptr %47, align 8, !tbaa !9
  %447 = sub nsw i64 %446, 3
  %448 = getelementptr inbounds double, ptr %445, i64 %447
  store double %444, ptr %448, align 8, !tbaa !11
  %449 = load double, ptr %54, align 8, !tbaa !11
  %450 = load ptr, ptr %24, align 8, !tbaa !5
  %451 = load i64, ptr %52, align 8, !tbaa !9
  %452 = load i64, ptr %47, align 8, !tbaa !9
  %453 = sub nsw i64 %451, %452
  %454 = sub nsw i64 %453, 3
  %455 = getelementptr inbounds double, ptr %450, i64 %454
  store double %449, ptr %455, align 8, !tbaa !11
  %456 = load ptr, ptr %24, align 8, !tbaa !5
  %457 = load i64, ptr %47, align 8, !tbaa !9
  %458 = sub nsw i64 %457, 2
  %459 = getelementptr inbounds double, ptr %456, i64 %458
  %460 = load double, ptr %459, align 8, !tbaa !11
  store double %460, ptr %54, align 8, !tbaa !11
  %461 = load ptr, ptr %24, align 8, !tbaa !5
  %462 = load i64, ptr %52, align 8, !tbaa !9
  %463 = load i64, ptr %47, align 8, !tbaa !9
  %464 = sub nsw i64 %462, %463
  %465 = sub nsw i64 %464, 2
  %466 = getelementptr inbounds double, ptr %461, i64 %465
  %467 = load double, ptr %466, align 8, !tbaa !11
  %468 = load ptr, ptr %24, align 8, !tbaa !5
  %469 = load i64, ptr %47, align 8, !tbaa !9
  %470 = sub nsw i64 %469, 2
  %471 = getelementptr inbounds double, ptr %468, i64 %470
  store double %467, ptr %471, align 8, !tbaa !11
  %472 = load double, ptr %54, align 8, !tbaa !11
  %473 = load ptr, ptr %24, align 8, !tbaa !5
  %474 = load i64, ptr %52, align 8, !tbaa !9
  %475 = load i64, ptr %47, align 8, !tbaa !9
  %476 = sub nsw i64 %474, %475
  %477 = sub nsw i64 %476, 2
  %478 = getelementptr inbounds double, ptr %473, i64 %477
  store double %472, ptr %478, align 8, !tbaa !11
  %479 = load ptr, ptr %24, align 8, !tbaa !5
  %480 = load i64, ptr %47, align 8, !tbaa !9
  %481 = sub nsw i64 %480, 1
  %482 = getelementptr inbounds double, ptr %479, i64 %481
  %483 = load double, ptr %482, align 8, !tbaa !11
  store double %483, ptr %54, align 8, !tbaa !11
  %484 = load ptr, ptr %24, align 8, !tbaa !5
  %485 = load i64, ptr %52, align 8, !tbaa !9
  %486 = load i64, ptr %47, align 8, !tbaa !9
  %487 = sub nsw i64 %485, %486
  %488 = sub nsw i64 %487, 5
  %489 = getelementptr inbounds double, ptr %484, i64 %488
  %490 = load double, ptr %489, align 8, !tbaa !11
  %491 = load ptr, ptr %24, align 8, !tbaa !5
  %492 = load i64, ptr %47, align 8, !tbaa !9
  %493 = sub nsw i64 %492, 1
  %494 = getelementptr inbounds double, ptr %491, i64 %493
  store double %490, ptr %494, align 8, !tbaa !11
  %495 = load double, ptr %54, align 8, !tbaa !11
  %496 = load ptr, ptr %24, align 8, !tbaa !5
  %497 = load i64, ptr %52, align 8, !tbaa !9
  %498 = load i64, ptr %47, align 8, !tbaa !9
  %499 = sub nsw i64 %497, %498
  %500 = sub nsw i64 %499, 5
  %501 = getelementptr inbounds double, ptr %496, i64 %500
  store double %495, ptr %501, align 8, !tbaa !11
  %502 = load ptr, ptr %24, align 8, !tbaa !5
  %503 = load i64, ptr %47, align 8, !tbaa !9
  %504 = getelementptr inbounds double, ptr %502, i64 %503
  %505 = load double, ptr %504, align 8, !tbaa !11
  store double %505, ptr %54, align 8, !tbaa !11
  %506 = load ptr, ptr %24, align 8, !tbaa !5
  %507 = load i64, ptr %52, align 8, !tbaa !9
  %508 = load i64, ptr %47, align 8, !tbaa !9
  %509 = sub nsw i64 %507, %508
  %510 = sub nsw i64 %509, 4
  %511 = getelementptr inbounds double, ptr %506, i64 %510
  %512 = load double, ptr %511, align 8, !tbaa !11
  %513 = load ptr, ptr %24, align 8, !tbaa !5
  %514 = load i64, ptr %47, align 8, !tbaa !9
  %515 = getelementptr inbounds double, ptr %513, i64 %514
  store double %512, ptr %515, align 8, !tbaa !11
  %516 = load double, ptr %54, align 8, !tbaa !11
  %517 = load ptr, ptr %24, align 8, !tbaa !5
  %518 = load i64, ptr %52, align 8, !tbaa !9
  %519 = load i64, ptr %47, align 8, !tbaa !9
  %520 = sub nsw i64 %518, %519
  %521 = sub nsw i64 %520, 4
  %522 = getelementptr inbounds double, ptr %517, i64 %521
  store double %516, ptr %522, align 8, !tbaa !11
  br label %523

523:                                              ; preds = %432
  %524 = load i64, ptr %47, align 8, !tbaa !9
  %525 = add nsw i64 %524, 4
  store i64 %525, ptr %47, align 8, !tbaa !9
  br label %428, !llvm.loop !13

526:                                              ; preds = %428
  %527 = load ptr, ptr %23, align 8, !tbaa !5
  %528 = load i64, ptr %527, align 8, !tbaa !9
  %529 = load ptr, ptr %22, align 8, !tbaa !5
  %530 = load i64, ptr %529, align 8, !tbaa !9
  %531 = sub nsw i64 %528, %530
  %532 = icmp sle i64 %531, 4
  br i1 %532, label %533, label %570

533:                                              ; preds = %526
  %534 = load ptr, ptr %24, align 8, !tbaa !5
  %535 = load ptr, ptr %22, align 8, !tbaa !5
  %536 = load i64, ptr %535, align 8, !tbaa !9
  %537 = shl i64 %536, 2
  %538 = load ptr, ptr %25, align 8, !tbaa !5
  %539 = load i64, ptr %538, align 8, !tbaa !9
  %540 = add nsw i64 %537, %539
  %541 = sub nsw i64 %540, 1
  %542 = getelementptr inbounds double, ptr %534, i64 %541
  %543 = load double, ptr %542, align 8, !tbaa !11
  %544 = load ptr, ptr %24, align 8, !tbaa !5
  %545 = load ptr, ptr %23, align 8, !tbaa !5
  %546 = load i64, ptr %545, align 8, !tbaa !9
  %547 = shl i64 %546, 2
  %548 = load ptr, ptr %25, align 8, !tbaa !5
  %549 = load i64, ptr %548, align 8, !tbaa !9
  %550 = add nsw i64 %547, %549
  %551 = sub nsw i64 %550, 1
  %552 = getelementptr inbounds double, ptr %544, i64 %551
  store double %543, ptr %552, align 8, !tbaa !11
  %553 = load ptr, ptr %24, align 8, !tbaa !5
  %554 = load ptr, ptr %22, align 8, !tbaa !5
  %555 = load i64, ptr %554, align 8, !tbaa !9
  %556 = shl i64 %555, 2
  %557 = load ptr, ptr %25, align 8, !tbaa !5
  %558 = load i64, ptr %557, align 8, !tbaa !9
  %559 = sub nsw i64 %556, %558
  %560 = getelementptr inbounds double, ptr %553, i64 %559
  %561 = load double, ptr %560, align 8, !tbaa !11
  %562 = load ptr, ptr %24, align 8, !tbaa !5
  %563 = load ptr, ptr %23, align 8, !tbaa !5
  %564 = load i64, ptr %563, align 8, !tbaa !9
  %565 = shl i64 %564, 2
  %566 = load ptr, ptr %25, align 8, !tbaa !5
  %567 = load i64, ptr %566, align 8, !tbaa !9
  %568 = sub nsw i64 %565, %567
  %569 = getelementptr inbounds double, ptr %562, i64 %568
  store double %561, ptr %569, align 8, !tbaa !11
  br label %570

570:                                              ; preds = %533, %526
  %571 = load ptr, ptr %36, align 8, !tbaa !5
  %572 = load double, ptr %571, align 8, !tbaa !11
  store double %572, ptr %43, align 8, !tbaa !11
  %573 = load ptr, ptr %24, align 8, !tbaa !5
  %574 = load ptr, ptr %23, align 8, !tbaa !5
  %575 = load i64, ptr %574, align 8, !tbaa !9
  %576 = shl i64 %575, 2
  %577 = load ptr, ptr %25, align 8, !tbaa !5
  %578 = load i64, ptr %577, align 8, !tbaa !9
  %579 = add nsw i64 %576, %578
  %580 = sub nsw i64 %579, 1
  %581 = getelementptr inbounds double, ptr %573, i64 %580
  %582 = load double, ptr %581, align 8, !tbaa !11
  store double %582, ptr %44, align 8, !tbaa !11
  %583 = load double, ptr %43, align 8, !tbaa !11
  %584 = load double, ptr %44, align 8, !tbaa !11
  %585 = fcmp ole double %583, %584
  br i1 %585, label %586, label %588

586:                                              ; preds = %570
  %587 = load double, ptr %43, align 8, !tbaa !11
  br label %590

588:                                              ; preds = %570
  %589 = load double, ptr %44, align 8, !tbaa !11
  br label %590

590:                                              ; preds = %588, %586
  %591 = phi double [ %587, %586 ], [ %589, %588 ]
  %592 = load ptr, ptr %36, align 8, !tbaa !5
  store double %591, ptr %592, align 8, !tbaa !11
  %593 = load ptr, ptr %24, align 8, !tbaa !5
  %594 = load ptr, ptr %23, align 8, !tbaa !5
  %595 = load i64, ptr %594, align 8, !tbaa !9
  %596 = shl i64 %595, 2
  %597 = load ptr, ptr %25, align 8, !tbaa !5
  %598 = load i64, ptr %597, align 8, !tbaa !9
  %599 = add nsw i64 %596, %598
  %600 = sub nsw i64 %599, 1
  %601 = getelementptr inbounds double, ptr %593, i64 %600
  %602 = load double, ptr %601, align 8, !tbaa !11
  store double %602, ptr %43, align 8, !tbaa !11
  %603 = load ptr, ptr %24, align 8, !tbaa !5
  %604 = load ptr, ptr %22, align 8, !tbaa !5
  %605 = load i64, ptr %604, align 8, !tbaa !9
  %606 = shl i64 %605, 2
  %607 = load ptr, ptr %25, align 8, !tbaa !5
  %608 = load i64, ptr %607, align 8, !tbaa !9
  %609 = add nsw i64 %606, %608
  %610 = sub nsw i64 %609, 1
  %611 = getelementptr inbounds double, ptr %603, i64 %610
  %612 = load double, ptr %611, align 8, !tbaa !11
  store double %612, ptr %44, align 8, !tbaa !11
  %613 = load double, ptr %43, align 8, !tbaa !11
  %614 = load double, ptr %44, align 8, !tbaa !11
  %615 = fcmp ole double %613, %614
  br i1 %615, label %616, label %618

616:                                              ; preds = %590
  %617 = load double, ptr %43, align 8, !tbaa !11
  br label %620

618:                                              ; preds = %590
  %619 = load double, ptr %44, align 8, !tbaa !11
  br label %620

620:                                              ; preds = %618, %616
  %621 = phi double [ %617, %616 ], [ %619, %618 ]
  store double %621, ptr %43, align 8, !tbaa !11
  %622 = load ptr, ptr %24, align 8, !tbaa !5
  %623 = load ptr, ptr %22, align 8, !tbaa !5
  %624 = load i64, ptr %623, align 8, !tbaa !9
  %625 = shl i64 %624, 2
  %626 = load ptr, ptr %25, align 8, !tbaa !5
  %627 = load i64, ptr %626, align 8, !tbaa !9
  %628 = add nsw i64 %625, %627
  %629 = add nsw i64 %628, 3
  %630 = getelementptr inbounds double, ptr %622, i64 %629
  %631 = load double, ptr %630, align 8, !tbaa !11
  store double %631, ptr %44, align 8, !tbaa !11
  %632 = load double, ptr %43, align 8, !tbaa !11
  %633 = load double, ptr %44, align 8, !tbaa !11
  %634 = fcmp ole double %632, %633
  br i1 %634, label %635, label %637

635:                                              ; preds = %620
  %636 = load double, ptr %43, align 8, !tbaa !11
  br label %639

637:                                              ; preds = %620
  %638 = load double, ptr %44, align 8, !tbaa !11
  br label %639

639:                                              ; preds = %637, %635
  %640 = phi double [ %636, %635 ], [ %638, %637 ]
  %641 = load ptr, ptr %24, align 8, !tbaa !5
  %642 = load ptr, ptr %23, align 8, !tbaa !5
  %643 = load i64, ptr %642, align 8, !tbaa !9
  %644 = shl i64 %643, 2
  %645 = load ptr, ptr %25, align 8, !tbaa !5
  %646 = load i64, ptr %645, align 8, !tbaa !9
  %647 = add nsw i64 %644, %646
  %648 = sub nsw i64 %647, 1
  %649 = getelementptr inbounds double, ptr %641, i64 %648
  store double %640, ptr %649, align 8, !tbaa !11
  %650 = load ptr, ptr %24, align 8, !tbaa !5
  %651 = load ptr, ptr %23, align 8, !tbaa !5
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = shl i64 %652, 2
  %654 = load ptr, ptr %25, align 8, !tbaa !5
  %655 = load i64, ptr %654, align 8, !tbaa !9
  %656 = sub nsw i64 %653, %655
  %657 = getelementptr inbounds double, ptr %650, i64 %656
  %658 = load double, ptr %657, align 8, !tbaa !11
  store double %658, ptr %43, align 8, !tbaa !11
  %659 = load ptr, ptr %24, align 8, !tbaa !5
  %660 = load ptr, ptr %22, align 8, !tbaa !5
  %661 = load i64, ptr %660, align 8, !tbaa !9
  %662 = shl i64 %661, 2
  %663 = load ptr, ptr %25, align 8, !tbaa !5
  %664 = load i64, ptr %663, align 8, !tbaa !9
  %665 = sub nsw i64 %662, %664
  %666 = getelementptr inbounds double, ptr %659, i64 %665
  %667 = load double, ptr %666, align 8, !tbaa !11
  store double %667, ptr %44, align 8, !tbaa !11
  %668 = load double, ptr %43, align 8, !tbaa !11
  %669 = load double, ptr %44, align 8, !tbaa !11
  %670 = fcmp ole double %668, %669
  br i1 %670, label %671, label %673

671:                                              ; preds = %639
  %672 = load double, ptr %43, align 8, !tbaa !11
  br label %675

673:                                              ; preds = %639
  %674 = load double, ptr %44, align 8, !tbaa !11
  br label %675

675:                                              ; preds = %673, %671
  %676 = phi double [ %672, %671 ], [ %674, %673 ]
  store double %676, ptr %43, align 8, !tbaa !11
  %677 = load ptr, ptr %24, align 8, !tbaa !5
  %678 = load ptr, ptr %22, align 8, !tbaa !5
  %679 = load i64, ptr %678, align 8, !tbaa !9
  %680 = shl i64 %679, 2
  %681 = load ptr, ptr %25, align 8, !tbaa !5
  %682 = load i64, ptr %681, align 8, !tbaa !9
  %683 = sub nsw i64 %680, %682
  %684 = add nsw i64 %683, 4
  %685 = getelementptr inbounds double, ptr %677, i64 %684
  %686 = load double, ptr %685, align 8, !tbaa !11
  store double %686, ptr %44, align 8, !tbaa !11
  %687 = load double, ptr %43, align 8, !tbaa !11
  %688 = load double, ptr %44, align 8, !tbaa !11
  %689 = fcmp ole double %687, %688
  br i1 %689, label %690, label %692

690:                                              ; preds = %675
  %691 = load double, ptr %43, align 8, !tbaa !11
  br label %694

692:                                              ; preds = %675
  %693 = load double, ptr %44, align 8, !tbaa !11
  br label %694

694:                                              ; preds = %692, %690
  %695 = phi double [ %691, %690 ], [ %693, %692 ]
  %696 = load ptr, ptr %24, align 8, !tbaa !5
  %697 = load ptr, ptr %23, align 8, !tbaa !5
  %698 = load i64, ptr %697, align 8, !tbaa !9
  %699 = shl i64 %698, 2
  %700 = load ptr, ptr %25, align 8, !tbaa !5
  %701 = load i64, ptr %700, align 8, !tbaa !9
  %702 = sub nsw i64 %699, %701
  %703 = getelementptr inbounds double, ptr %696, i64 %702
  store double %695, ptr %703, align 8, !tbaa !11
  %704 = load ptr, ptr %29, align 8, !tbaa !5
  %705 = load double, ptr %704, align 8, !tbaa !11
  store double %705, ptr %43, align 8, !tbaa !11
  %706 = load ptr, ptr %24, align 8, !tbaa !5
  %707 = load ptr, ptr %22, align 8, !tbaa !5
  %708 = load i64, ptr %707, align 8, !tbaa !9
  %709 = shl i64 %708, 2
  %710 = load ptr, ptr %25, align 8, !tbaa !5
  %711 = load i64, ptr %710, align 8, !tbaa !9
  %712 = add nsw i64 %709, %711
  %713 = sub nsw i64 %712, 3
  %714 = getelementptr inbounds double, ptr %706, i64 %713
  %715 = load double, ptr %714, align 8, !tbaa !11
  store double %715, ptr %44, align 8, !tbaa !11
  %716 = load double, ptr %43, align 8, !tbaa !11
  %717 = load double, ptr %44, align 8, !tbaa !11
  %718 = fcmp oge double %716, %717
  br i1 %718, label %719, label %721

719:                                              ; preds = %694
  %720 = load double, ptr %43, align 8, !tbaa !11
  br label %723

721:                                              ; preds = %694
  %722 = load double, ptr %44, align 8, !tbaa !11
  br label %723

723:                                              ; preds = %721, %719
  %724 = phi double [ %720, %719 ], [ %722, %721 ]
  store double %724, ptr %43, align 8, !tbaa !11
  %725 = load ptr, ptr %24, align 8, !tbaa !5
  %726 = load ptr, ptr %22, align 8, !tbaa !5
  %727 = load i64, ptr %726, align 8, !tbaa !9
  %728 = shl i64 %727, 2
  %729 = load ptr, ptr %25, align 8, !tbaa !5
  %730 = load i64, ptr %729, align 8, !tbaa !9
  %731 = add nsw i64 %728, %730
  %732 = add nsw i64 %731, 1
  %733 = getelementptr inbounds double, ptr %725, i64 %732
  %734 = load double, ptr %733, align 8, !tbaa !11
  store double %734, ptr %44, align 8, !tbaa !11
  %735 = load double, ptr %43, align 8, !tbaa !11
  %736 = load double, ptr %44, align 8, !tbaa !11
  %737 = fcmp oge double %735, %736
  br i1 %737, label %738, label %740

738:                                              ; preds = %723
  %739 = load double, ptr %43, align 8, !tbaa !11
  br label %742

740:                                              ; preds = %723
  %741 = load double, ptr %44, align 8, !tbaa !11
  br label %742

742:                                              ; preds = %740, %738
  %743 = phi double [ %739, %738 ], [ %741, %740 ]
  %744 = load ptr, ptr %29, align 8, !tbaa !5
  store double %743, ptr %744, align 8, !tbaa !11
  %745 = load ptr, ptr %26, align 8, !tbaa !5
  store double -0.000000e+00, ptr %745, align 8, !tbaa !11
  br label %746

746:                                              ; preds = %742, %388
  br label %747

747:                                              ; preds = %746, %383
  %748 = load ptr, ptr %22, align 8, !tbaa !5
  %749 = load ptr, ptr %23, align 8, !tbaa !5
  %750 = load ptr, ptr %24, align 8, !tbaa !5
  %751 = getelementptr inbounds double, ptr %750, i64 1
  %752 = load ptr, ptr %25, align 8, !tbaa !5
  %753 = load ptr, ptr %26, align 8, !tbaa !5
  %754 = load ptr, ptr %35, align 8, !tbaa !5
  %755 = load ptr, ptr %36, align 8, !tbaa !5
  %756 = load ptr, ptr %37, align 8, !tbaa !5
  %757 = load ptr, ptr %38, align 8, !tbaa !5
  %758 = load ptr, ptr %39, align 8, !tbaa !5
  %759 = load ptr, ptr %41, align 8, !tbaa !5
  %760 = load ptr, ptr %34, align 8, !tbaa !5
  %761 = load ptr, ptr %40, align 8, !tbaa !5
  %762 = call i32 @dlasq4_(ptr noundef %748, ptr noundef %749, ptr noundef %751, ptr noundef %752, ptr noundef %51, ptr noundef %753, ptr noundef %754, ptr noundef %755, ptr noundef %756, ptr noundef %757, ptr noundef %758, ptr noundef %759, ptr noundef %760, ptr noundef %761)
  br label %763

763:                                              ; preds = %904, %894, %747
  %764 = load ptr, ptr %22, align 8, !tbaa !5
  %765 = load ptr, ptr %23, align 8, !tbaa !5
  %766 = load ptr, ptr %24, align 8, !tbaa !5
  %767 = getelementptr inbounds double, ptr %766, i64 1
  %768 = load ptr, ptr %25, align 8, !tbaa !5
  %769 = load ptr, ptr %41, align 8, !tbaa !5
  %770 = load ptr, ptr %26, align 8, !tbaa !5
  %771 = load ptr, ptr %35, align 8, !tbaa !5
  %772 = load ptr, ptr %36, align 8, !tbaa !5
  %773 = load ptr, ptr %37, align 8, !tbaa !5
  %774 = load ptr, ptr %38, align 8, !tbaa !5
  %775 = load ptr, ptr %39, align 8, !tbaa !5
  %776 = load ptr, ptr %33, align 8, !tbaa !5
  %777 = call i32 @dlasq5_(ptr noundef %764, ptr noundef %765, ptr noundef %767, ptr noundef %768, ptr noundef %769, ptr noundef %770, ptr noundef %771, ptr noundef %772, ptr noundef %773, ptr noundef %774, ptr noundef %775, ptr noundef %776)
  %778 = load ptr, ptr %23, align 8, !tbaa !5
  %779 = load i64, ptr %778, align 8, !tbaa !9
  %780 = load ptr, ptr %22, align 8, !tbaa !5
  %781 = load i64, ptr %780, align 8, !tbaa !9
  %782 = sub nsw i64 %779, %781
  %783 = add nsw i64 %782, 2
  %784 = load ptr, ptr %32, align 8, !tbaa !5
  %785 = load i64, ptr %784, align 8, !tbaa !9
  %786 = add nsw i64 %785, %783
  store i64 %786, ptr %784, align 8, !tbaa !9
  %787 = load ptr, ptr %31, align 8, !tbaa !5
  %788 = load i64, ptr %787, align 8, !tbaa !9
  %789 = add nsw i64 %788, 1
  store i64 %789, ptr %787, align 8, !tbaa !9
  %790 = load ptr, ptr %26, align 8, !tbaa !5
  %791 = load double, ptr %790, align 8, !tbaa !11
  %792 = fcmp oge double %791, 0.000000e+00
  br i1 %792, label %793, label %798

793:                                              ; preds = %763
  %794 = load ptr, ptr %35, align 8, !tbaa !5
  %795 = load double, ptr %794, align 8, !tbaa !11
  %796 = fcmp ogt double %795, 0.000000e+00
  br i1 %796, label %797, label %798

797:                                              ; preds = %793
  br label %933

798:                                              ; preds = %793, %763
  %799 = load ptr, ptr %26, align 8, !tbaa !5
  %800 = load double, ptr %799, align 8, !tbaa !11
  %801 = fcmp olt double %800, 0.000000e+00
  br i1 %801, label %802, label %855

802:                                              ; preds = %798
  %803 = load ptr, ptr %35, align 8, !tbaa !5
  %804 = load double, ptr %803, align 8, !tbaa !11
  %805 = fcmp ogt double %804, 0.000000e+00
  br i1 %805, label %806, label %855

806:                                              ; preds = %802
  %807 = load ptr, ptr %24, align 8, !tbaa !5
  %808 = load ptr, ptr %23, align 8, !tbaa !5
  %809 = load i64, ptr %808, align 8, !tbaa !9
  %810 = sub nsw i64 %809, 1
  %811 = shl i64 %810, 2
  %812 = load ptr, ptr %25, align 8, !tbaa !5
  %813 = load i64, ptr %812, align 8, !tbaa !9
  %814 = sub nsw i64 %811, %813
  %815 = getelementptr inbounds double, ptr %807, i64 %814
  %816 = load double, ptr %815, align 8, !tbaa !11
  %817 = load double, ptr %50, align 8, !tbaa !11
  %818 = load ptr, ptr %27, align 8, !tbaa !5
  %819 = load double, ptr %818, align 8, !tbaa !11
  %820 = load ptr, ptr %38, align 8, !tbaa !5
  %821 = load double, ptr %820, align 8, !tbaa !11
  %822 = fadd double %819, %821
  %823 = fmul double %817, %822
  %824 = fcmp olt double %816, %823
  br i1 %824, label %825, label %855

825:                                              ; preds = %806
  %826 = load ptr, ptr %37, align 8, !tbaa !5
  %827 = load double, ptr %826, align 8, !tbaa !11
  %828 = fcmp oge double %827, 0.000000e+00
  br i1 %828, label %829, label %832

829:                                              ; preds = %825
  %830 = load ptr, ptr %37, align 8, !tbaa !5
  %831 = load double, ptr %830, align 8, !tbaa !11
  br label %836

832:                                              ; preds = %825
  %833 = load ptr, ptr %37, align 8, !tbaa !5
  %834 = load double, ptr %833, align 8, !tbaa !11
  %835 = fneg double %834
  br label %836

836:                                              ; preds = %832, %829
  %837 = phi double [ %831, %829 ], [ %835, %832 ]
  %838 = load double, ptr %50, align 8, !tbaa !11
  %839 = load ptr, ptr %27, align 8, !tbaa !5
  %840 = load double, ptr %839, align 8, !tbaa !11
  %841 = fmul double %838, %840
  %842 = fcmp olt double %837, %841
  br i1 %842, label %843, label %855

843:                                              ; preds = %836
  %844 = load ptr, ptr %24, align 8, !tbaa !5
  %845 = load ptr, ptr %23, align 8, !tbaa !5
  %846 = load i64, ptr %845, align 8, !tbaa !9
  %847 = sub nsw i64 %846, 1
  %848 = shl i64 %847, 2
  %849 = load ptr, ptr %25, align 8, !tbaa !5
  %850 = load i64, ptr %849, align 8, !tbaa !9
  %851 = sub nsw i64 %848, %850
  %852 = add nsw i64 %851, 2
  %853 = getelementptr inbounds double, ptr %844, i64 %852
  store double 0.000000e+00, ptr %853, align 8, !tbaa !11
  %854 = load ptr, ptr %26, align 8, !tbaa !5
  store double 0.000000e+00, ptr %854, align 8, !tbaa !11
  br label %933

855:                                              ; preds = %836, %806, %802, %798
  %856 = load ptr, ptr %26, align 8, !tbaa !5
  %857 = load double, ptr %856, align 8, !tbaa !11
  %858 = fcmp olt double %857, 0.000000e+00
  br i1 %858, label %859, label %895

859:                                              ; preds = %855
  %860 = load ptr, ptr %30, align 8, !tbaa !5
  %861 = load i64, ptr %860, align 8, !tbaa !9
  %862 = add nsw i64 %861, 1
  store i64 %862, ptr %860, align 8, !tbaa !9
  %863 = load ptr, ptr %34, align 8, !tbaa !5
  %864 = load i64, ptr %863, align 8, !tbaa !9
  %865 = icmp slt i64 %864, -22
  br i1 %865, label %866, label %868

866:                                              ; preds = %859
  %867 = load ptr, ptr %41, align 8, !tbaa !5
  store double 0.000000e+00, ptr %867, align 8, !tbaa !11
  br label %894

868:                                              ; preds = %859
  %869 = load ptr, ptr %35, align 8, !tbaa !5
  %870 = load double, ptr %869, align 8, !tbaa !11
  %871 = fcmp ogt double %870, 0.000000e+00
  br i1 %871, label %872, label %886

872:                                              ; preds = %868
  %873 = load ptr, ptr %41, align 8, !tbaa !5
  %874 = load double, ptr %873, align 8, !tbaa !11
  %875 = load ptr, ptr %26, align 8, !tbaa !5
  %876 = load double, ptr %875, align 8, !tbaa !11
  %877 = fadd double %874, %876
  %878 = load double, ptr %49, align 8, !tbaa !11
  %879 = fneg double %878
  %880 = call double @llvm.fmuladd.f64(double %879, double 2.000000e+00, double 1.000000e+00)
  %881 = fmul double %877, %880
  %882 = load ptr, ptr %41, align 8, !tbaa !5
  store double %881, ptr %882, align 8, !tbaa !11
  %883 = load ptr, ptr %34, align 8, !tbaa !5
  %884 = load i64, ptr %883, align 8, !tbaa !9
  %885 = add nsw i64 %884, -11
  store i64 %885, ptr %883, align 8, !tbaa !9
  br label %893

886:                                              ; preds = %868
  %887 = load ptr, ptr %41, align 8, !tbaa !5
  %888 = load double, ptr %887, align 8, !tbaa !11
  %889 = fmul double %888, 2.500000e-01
  store double %889, ptr %887, align 8, !tbaa !11
  %890 = load ptr, ptr %34, align 8, !tbaa !5
  %891 = load i64, ptr %890, align 8, !tbaa !9
  %892 = add nsw i64 %891, -12
  store i64 %892, ptr %890, align 8, !tbaa !9
  br label %893

893:                                              ; preds = %886, %872
  br label %894

894:                                              ; preds = %893, %866
  br label %763

895:                                              ; preds = %855
  %896 = load ptr, ptr %26, align 8, !tbaa !5
  %897 = call i64 @disnan_(ptr noundef %896)
  %898 = icmp ne i64 %897, 0
  br i1 %898, label %899, label %906

899:                                              ; preds = %895
  %900 = load ptr, ptr %41, align 8, !tbaa !5
  %901 = load double, ptr %900, align 8, !tbaa !11
  %902 = fcmp oeq double %901, 0.000000e+00
  br i1 %902, label %903, label %904

903:                                              ; preds = %899
  br label %907

904:                                              ; preds = %899
  %905 = load ptr, ptr %41, align 8, !tbaa !5
  store double 0.000000e+00, ptr %905, align 8, !tbaa !11
  br label %763

906:                                              ; preds = %895
  br label %907

907:                                              ; preds = %906, %903
  %908 = load ptr, ptr %22, align 8, !tbaa !5
  %909 = load ptr, ptr %23, align 8, !tbaa !5
  %910 = load ptr, ptr %24, align 8, !tbaa !5
  %911 = getelementptr inbounds double, ptr %910, i64 1
  %912 = load ptr, ptr %25, align 8, !tbaa !5
  %913 = load ptr, ptr %26, align 8, !tbaa !5
  %914 = load ptr, ptr %35, align 8, !tbaa !5
  %915 = load ptr, ptr %36, align 8, !tbaa !5
  %916 = load ptr, ptr %37, align 8, !tbaa !5
  %917 = load ptr, ptr %38, align 8, !tbaa !5
  %918 = load ptr, ptr %39, align 8, !tbaa !5
  %919 = call i32 @dlasq6_(ptr noundef %908, ptr noundef %909, ptr noundef %911, ptr noundef %912, ptr noundef %913, ptr noundef %914, ptr noundef %915, ptr noundef %916, ptr noundef %917, ptr noundef %918)
  %920 = load ptr, ptr %23, align 8, !tbaa !5
  %921 = load i64, ptr %920, align 8, !tbaa !9
  %922 = load ptr, ptr %22, align 8, !tbaa !5
  %923 = load i64, ptr %922, align 8, !tbaa !9
  %924 = sub nsw i64 %921, %923
  %925 = add nsw i64 %924, 2
  %926 = load ptr, ptr %32, align 8, !tbaa !5
  %927 = load i64, ptr %926, align 8, !tbaa !9
  %928 = add nsw i64 %927, %925
  store i64 %928, ptr %926, align 8, !tbaa !9
  %929 = load ptr, ptr %31, align 8, !tbaa !5
  %930 = load i64, ptr %929, align 8, !tbaa !9
  %931 = add nsw i64 %930, 1
  store i64 %931, ptr %929, align 8, !tbaa !9
  %932 = load ptr, ptr %41, align 8, !tbaa !5
  store double 0.000000e+00, ptr %932, align 8, !tbaa !11
  br label %933

933:                                              ; preds = %907, %843, %797
  %934 = load ptr, ptr %41, align 8, !tbaa !5
  %935 = load double, ptr %934, align 8, !tbaa !11
  %936 = load ptr, ptr %27, align 8, !tbaa !5
  %937 = load double, ptr %936, align 8, !tbaa !11
  %938 = fcmp olt double %935, %937
  br i1 %938, label %939, label %957

939:                                              ; preds = %933
  %940 = load ptr, ptr %41, align 8, !tbaa !5
  %941 = load double, ptr %940, align 8, !tbaa !11
  %942 = load ptr, ptr %28, align 8, !tbaa !5
  %943 = load double, ptr %942, align 8, !tbaa !11
  %944 = fadd double %943, %941
  store double %944, ptr %942, align 8, !tbaa !11
  %945 = load ptr, ptr %27, align 8, !tbaa !5
  %946 = load double, ptr %945, align 8, !tbaa !11
  %947 = load ptr, ptr %28, align 8, !tbaa !5
  %948 = load double, ptr %947, align 8, !tbaa !11
  %949 = fadd double %946, %948
  store double %949, ptr %46, align 8, !tbaa !11
  %950 = load double, ptr %46, align 8, !tbaa !11
  %951 = load ptr, ptr %27, align 8, !tbaa !5
  %952 = load double, ptr %951, align 8, !tbaa !11
  %953 = fsub double %950, %952
  %954 = load ptr, ptr %28, align 8, !tbaa !5
  %955 = load double, ptr %954, align 8, !tbaa !11
  %956 = fsub double %955, %953
  store double %956, ptr %954, align 8, !tbaa !11
  br label %974

957:                                              ; preds = %933
  %958 = load ptr, ptr %27, align 8, !tbaa !5
  %959 = load double, ptr %958, align 8, !tbaa !11
  %960 = load ptr, ptr %41, align 8, !tbaa !5
  %961 = load double, ptr %960, align 8, !tbaa !11
  %962 = fadd double %959, %961
  store double %962, ptr %46, align 8, !tbaa !11
  %963 = load ptr, ptr %27, align 8, !tbaa !5
  %964 = load double, ptr %963, align 8, !tbaa !11
  %965 = load double, ptr %46, align 8, !tbaa !11
  %966 = load ptr, ptr %41, align 8, !tbaa !5
  %967 = load double, ptr %966, align 8, !tbaa !11
  %968 = fsub double %965, %967
  %969 = fsub double %964, %968
  %970 = load ptr, ptr %28, align 8, !tbaa !5
  %971 = load double, ptr %970, align 8, !tbaa !11
  %972 = fadd double %969, %971
  %973 = load ptr, ptr %28, align 8, !tbaa !5
  store double %972, ptr %973, align 8, !tbaa !11
  br label %974

974:                                              ; preds = %957, %939
  %975 = load double, ptr %46, align 8, !tbaa !11
  %976 = load ptr, ptr %27, align 8, !tbaa !5
  store double %975, ptr %976, align 8, !tbaa !11
  store i32 0, ptr %21, align 4
  store i32 1, ptr %55, align 4
  br label %977

977:                                              ; preds = %974, %73
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  %978 = load i32, ptr %21, align 4
  ret i32 %978
}

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

declare double @dlamch_(ptr noundef) #2

; Function Attrs: nounwind
declare double @sqrt(double noundef) #3

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

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

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

declare i64 @disnan_(ptr noundef) #2

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

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

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

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

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


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

@.str = external hidden unnamed_addr constant [10 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @dlasq3_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr nocapture noundef %5, ptr nocapture noundef %6, ptr nocapture noundef %7, ptr nocapture noundef %8, ptr nocapture noundef %9, ptr nocapture noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19) local_unnamed_addr #0 {
  %21 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  %22 = getelementptr inbounds i8, ptr %2, i64 -8
  %23 = load i64, ptr %1, align 8, !tbaa !5
  store i64 %23, ptr %21, align 8, !tbaa !5
  %24 = tail call double @dlamch_(ptr noundef nonnull @.str) #5
  %25 = fmul double %24, 1.000000e+02
  %26 = fmul double %25, %25
  %27 = load i64, ptr %1, align 8, !tbaa !5
  %28 = load i64, ptr %0, align 8, !tbaa !5
  %29 = icmp slt i64 %27, %28
  br i1 %29, label %.loopexit377, label %.lr.ph

.lr.ph:                                           ; preds = %20, %.backedge378
  %30 = phi i64 [ %66, %.backedge378 ], [ %28, %20 ]
  %31 = phi i64 [ %storemerge384, %.backedge378 ], [ %27, %20 ]
  %32 = icmp eq i64 %31, %30
  %.pre394 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %32, label %.lr.ph._crit_edge, label %33

.lr.ph._crit_edge:                                ; preds = %.lr.ph
  %.pre395 = load double, ptr %5, align 8, !tbaa !9
  br label %57

33:                                               ; preds = %.lr.ph
  %34 = shl i64 %31, 2
  %35 = add nsw i64 %.pre394, %34
  %36 = add nsw i64 %30, 1
  %37 = icmp eq i64 %31, %36
  %.phi.trans.insert = getelementptr double, ptr %22, i64 %35
  br i1 %37, label %._crit_edge386, label %38

._crit_edge386:                                   ; preds = %33
  %.phi.trans.insert387 = getelementptr i8, ptr %.phi.trans.insert, i64 -24
  %.pre388 = load double, ptr %.phi.trans.insert387, align 8, !tbaa !9
  %.phi.trans.insert390 = getelementptr i8, ptr %.phi.trans.insert, i64 -56
  %.pre391 = load double, ptr %.phi.trans.insert390, align 8, !tbaa !9
  br label %80

38:                                               ; preds = %33
  %39 = getelementptr i8, ptr %.phi.trans.insert, i64 -40
  %40 = load double, ptr %39, align 8, !tbaa !9
  %41 = load double, ptr %5, align 8, !tbaa !9
  %42 = getelementptr i8, ptr %.phi.trans.insert, i64 -24
  %43 = load double, ptr %42, align 8, !tbaa !9
  %44 = fadd double %41, %43
  %45 = fmul double %26, %44
  %46 = fcmp ogt double %40, %45
  br i1 %46, label %47, label %57

47:                                               ; preds = %38
  %48 = shl i64 %.pre394, 1
  %49 = sub nsw i64 %35, %48
  %50 = getelementptr double, ptr %22, i64 %49
  %51 = getelementptr i8, ptr %50, i64 -32
  %52 = load double, ptr %51, align 8, !tbaa !9
  %53 = getelementptr i8, ptr %.phi.trans.insert, i64 -56
  %54 = load double, ptr %53, align 8, !tbaa !9
  %55 = fmul double %26, %54
  %56 = fcmp ogt double %52, %55
  br i1 %56, label %68, label %57

57:                                               ; preds = %.lr.ph._crit_edge, %38, %47
  %58 = phi double [ %.pre395, %.lr.ph._crit_edge ], [ %41, %38 ], [ %41, %47 ]
  %.idx374 = shl i64 %31, 5
  %59 = getelementptr i8, ptr %22, i64 %.idx374
  %60 = getelementptr double, ptr %59, i64 %.pre394
  %61 = getelementptr i8, ptr %60, i64 -24
  %62 = load double, ptr %61, align 8, !tbaa !9
  %63 = fadd double %62, %58
  %64 = getelementptr i8, ptr %59, i64 -24
  store double %63, ptr %64, align 8, !tbaa !9
  %65 = add nsw i64 %31, -1
  br label %.backedge378

.backedge378:                                     ; preds = %57, %120
  %storemerge384 = phi i64 [ %131, %120 ], [ %65, %57 ]
  store i64 %storemerge384, ptr %1, align 8, !tbaa !5
  %66 = load i64, ptr %0, align 8, !tbaa !5
  %67 = icmp slt i64 %storemerge384, %66
  br i1 %67, label %.loopexit377, label %.lr.ph

68:                                               ; preds = %47
  %69 = getelementptr i8, ptr %.phi.trans.insert, i64 -72
  %70 = load double, ptr %69, align 8, !tbaa !9
  %71 = fmul double %26, %41
  %72 = fcmp ogt double %70, %71
  br i1 %72, label %73, label %80

73:                                               ; preds = %68
  %74 = getelementptr i8, ptr %50, i64 -64
  %75 = load double, ptr %74, align 8, !tbaa !9
  %76 = getelementptr i8, ptr %.phi.trans.insert, i64 -88
  %77 = load double, ptr %76, align 8, !tbaa !9
  %78 = fmul double %26, %77
  %79 = fcmp ogt double %75, %78
  br i1 %79, label %132, label %80

80:                                               ; preds = %._crit_edge386, %68, %73
  %81 = phi double [ %.pre391, %._crit_edge386 ], [ %54, %68 ], [ %54, %73 ]
  %82 = phi double [ %.pre388, %._crit_edge386 ], [ %43, %68 ], [ %43, %73 ]
  %83 = getelementptr double, ptr %22, i64 %35
  %84 = getelementptr i8, ptr %83, i64 -24
  %85 = getelementptr i8, ptr %83, i64 -56
  %86 = fcmp ogt double %82, %81
  br i1 %86, label %87, label %88

87:                                               ; preds = %80
  store double %81, ptr %84, align 8, !tbaa !9
  store double %82, ptr %85, align 8, !tbaa !9
  br label %88

88:                                               ; preds = %87, %80
  %.pre392 = phi double [ %82, %87 ], [ %81, %80 ]
  %89 = phi double [ %81, %87 ], [ %82, %80 ]
  %90 = getelementptr i8, ptr %83, i64 -40
  %91 = load double, ptr %90, align 8, !tbaa !9
  %92 = fmul double %26, %89
  %93 = fcmp ogt double %91, %92
  br i1 %93, label %94, label %120

94:                                               ; preds = %88
  %95 = fsub double %.pre392, %89
  %96 = fadd double %91, %95
  %97 = fmul double %96, 5.000000e-01
  %98 = fdiv double %91, %97
  %99 = fmul double %89, %98
  %100 = fcmp ugt double %99, %97
  br i1 %100, label %107, label %101

101:                                              ; preds = %94
  %102 = fdiv double %99, %97
  %103 = fadd double %102, 1.000000e+00
  %104 = tail call double @sqrt(double noundef %103) #5
  %105 = fadd double %104, 1.000000e+00
  %106 = fmul double %97, %105
  br label %112

107:                                              ; preds = %94
  %108 = tail call double @sqrt(double noundef %97) #5
  %109 = fadd double %97, %99
  %110 = tail call double @sqrt(double noundef %109) #5
  %111 = tail call double @llvm.fmuladd.f64(double %108, double %110, double %97)
  br label %112

112:                                              ; preds = %107, %101
  %.pn371 = phi double [ %106, %101 ], [ %111, %107 ]
  %.pn = fdiv double %91, %.pn371
  %.0351 = fmul double %89, %.pn
  %113 = load double, ptr %85, align 8, !tbaa !9
  %114 = load double, ptr %90, align 8, !tbaa !9
  %115 = fadd double %.0351, %114
  %116 = fadd double %113, %115
  %117 = fdiv double %113, %116
  %118 = load double, ptr %84, align 8, !tbaa !9
  %119 = fmul double %118, %117
  store double %119, ptr %84, align 8, !tbaa !9
  store double %116, ptr %85, align 8, !tbaa !9
  %.pre393 = load i64, ptr %1, align 8, !tbaa !5
  br label %120

120:                                              ; preds = %112, %88
  %121 = phi i64 [ %.pre393, %112 ], [ %31, %88 ]
  %122 = phi double [ %116, %112 ], [ %.pre392, %88 ]
  %123 = load double, ptr %5, align 8, !tbaa !9
  %124 = fadd double %122, %123
  %.idx372 = shl i64 %121, 5
  %125 = getelementptr i8, ptr %22, i64 %.idx372
  %126 = getelementptr i8, ptr %125, i64 -56
  store double %124, ptr %126, align 8, !tbaa !9
  %127 = load double, ptr %84, align 8, !tbaa !9
  %128 = load double, ptr %5, align 8, !tbaa !9
  %129 = fadd double %127, %128
  %130 = getelementptr i8, ptr %125, i64 -24
  store double %129, ptr %130, align 8, !tbaa !9
  %131 = add nsw i64 %121, -2
  br label %.backedge378

132:                                              ; preds = %73
  %133 = icmp eq i64 %.pre394, 2
  br i1 %133, label %134, label %135

134:                                              ; preds = %132
  store i64 0, ptr %3, align 8, !tbaa !5
  %.pre.pre = load i64, ptr %1, align 8, !tbaa !5
  br label %135

135:                                              ; preds = %134, %132
  %.pre = phi i64 [ %.pre.pre, %134 ], [ %31, %132 ]
  %136 = phi i64 [ 0, %134 ], [ %.pre394, %132 ]
  %137 = load double, ptr %4, align 8, !tbaa !9
  %138 = fcmp ole double %137, 0.000000e+00
  %139 = icmp slt i64 %.pre, %23
  %or.cond = select i1 %138, i1 true, i1 %139
  br i1 %or.cond, label %140, label %227

140:                                              ; preds = %135
  %141 = load i64, ptr %0, align 8, !tbaa !5
  %142 = shl i64 %141, 2
  %143 = getelementptr double, ptr %22, i64 %142
  %144 = getelementptr double, ptr %143, i64 %136
  %145 = getelementptr i8, ptr %144, i64 -24
  %146 = load double, ptr %145, align 8, !tbaa !9
  %147 = fmul double %146, 1.500000e+00
  %.idx = shl i64 %.pre, 5
  %148 = getelementptr i8, ptr %22, i64 %.idx
  %149 = getelementptr double, ptr %148, i64 %136
  %150 = getelementptr i8, ptr %149, i64 -24
  %151 = load double, ptr %150, align 8, !tbaa !9
  %152 = fcmp olt double %147, %151
  br i1 %152, label %153, label %227

153:                                              ; preds = %140
  %154 = add nsw i64 %.pre, %141
  %155 = shl i64 %154, 2
  %156 = shl i64 %154, 1
  %157 = add i64 %156, -2
  %.not380 = icmp sgt i64 %142, %157
  br i1 %.not380, label %._crit_edge, label %.lr.ph382

.lr.ph382:                                        ; preds = %153, %.lr.ph382
  %.0353381 = phi i64 [ %176, %.lr.ph382 ], [ %142, %153 ]
  %158 = getelementptr double, ptr %22, i64 %.0353381
  %159 = getelementptr i8, ptr %158, i64 -24
  %160 = load double, ptr %159, align 8, !tbaa !9
  %161 = sub nsw i64 %155, %.0353381
  %162 = getelementptr double, ptr %22, i64 %161
  %163 = getelementptr i8, ptr %162, i64 -24
  %164 = load double, ptr %163, align 8, !tbaa !9
  store double %164, ptr %159, align 8, !tbaa !9
  store double %160, ptr %163, align 8, !tbaa !9
  %165 = getelementptr i8, ptr %158, i64 -16
  %166 = load double, ptr %165, align 8, !tbaa !9
  %167 = getelementptr i8, ptr %162, i64 -16
  %168 = load double, ptr %167, align 8, !tbaa !9
  store double %168, ptr %165, align 8, !tbaa !9
  store double %166, ptr %167, align 8, !tbaa !9
  %169 = getelementptr i8, ptr %158, i64 -8
  %170 = load double, ptr %169, align 8, !tbaa !9
  %171 = getelementptr i8, ptr %162, i64 -40
  %172 = load double, ptr %171, align 8, !tbaa !9
  store double %172, ptr %169, align 8, !tbaa !9
  store double %170, ptr %171, align 8, !tbaa !9
  %173 = load double, ptr %158, align 8, !tbaa !9
  %174 = getelementptr i8, ptr %162, i64 -32
  %175 = load double, ptr %174, align 8, !tbaa !9
  store double %175, ptr %158, align 8, !tbaa !9
  store double %173, ptr %174, align 8, !tbaa !9
  %176 = add nsw i64 %.0353381, 4
  %.not = icmp sgt i64 %176, %157
  br i1 %.not, label %._crit_edge, label %.lr.ph382, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph382, %153
  %177 = sub nsw i64 %.pre, %141
  %178 = icmp slt i64 %177, 5
  br i1 %178, label %179, label %._crit_edge._crit_edge

._crit_edge._crit_edge:                           ; preds = %._crit_edge
  %.pre398 = shl i64 %.pre, 2
  %.pre399 = sub nsw i64 %.pre398, %136
  %.pre401 = sub nsw i64 %142, %136
  br label %191

179:                                              ; preds = %._crit_edge
  %.idx366 = shl i64 %141, 5
  %180 = getelementptr i8, ptr %22, i64 %.idx366
  %181 = getelementptr double, ptr %180, i64 %136
  %182 = getelementptr i8, ptr %181, i64 -8
  %183 = load double, ptr %182, align 8, !tbaa !9
  %184 = getelementptr i8, ptr %149, i64 -8
  store double %183, ptr %184, align 8, !tbaa !9
  %185 = sub nsw i64 %142, %136
  %186 = getelementptr inbounds double, ptr %22, i64 %185
  %187 = load double, ptr %186, align 8, !tbaa !9
  %188 = shl i64 %.pre, 2
  %189 = sub nsw i64 %188, %136
  %190 = getelementptr inbounds double, ptr %22, i64 %189
  store double %187, ptr %190, align 8, !tbaa !9
  br label %191

191:                                              ; preds = %._crit_edge._crit_edge, %179
  %.pre-phi402 = phi i64 [ %.pre401, %._crit_edge._crit_edge ], [ %185, %179 ]
  %.pre-phi400 = phi i64 [ %.pre399, %._crit_edge._crit_edge ], [ %189, %179 ]
  %192 = load double, ptr %14, align 8, !tbaa !9
  %193 = getelementptr i8, ptr %149, i64 -8
  %194 = load double, ptr %193, align 8, !tbaa !9
  %195 = fcmp ole double %192, %194
  %196 = select i1 %195, double %192, double %194
  store double %196, ptr %14, align 8, !tbaa !9
  %197 = load double, ptr %193, align 8, !tbaa !9
  %198 = add nsw i64 %142, %136
  %199 = getelementptr double, ptr %22, i64 %198
  %200 = getelementptr i8, ptr %199, i64 -8
  %201 = load double, ptr %200, align 8, !tbaa !9
  %202 = fcmp ole double %197, %201
  %203 = select i1 %202, double %197, double %201
  %204 = getelementptr i8, ptr %199, i64 24
  %205 = load double, ptr %204, align 8, !tbaa !9
  %206 = fcmp ole double %203, %205
  %207 = select i1 %206, double %203, double %205
  store double %207, ptr %193, align 8, !tbaa !9
  %208 = getelementptr inbounds double, ptr %22, i64 %.pre-phi400
  %209 = load double, ptr %208, align 8, !tbaa !9
  %210 = getelementptr inbounds double, ptr %22, i64 %.pre-phi402
  %211 = load double, ptr %210, align 8, !tbaa !9
  %212 = fcmp ole double %209, %211
  %213 = select i1 %212, double %209, double %211
  %214 = getelementptr i8, ptr %210, i64 32
  %215 = load double, ptr %214, align 8, !tbaa !9
  %216 = fcmp ole double %213, %215
  %217 = select i1 %216, double %213, double %215
  store double %217, ptr %208, align 8, !tbaa !9
  %218 = load double, ptr %7, align 8, !tbaa !9
  %219 = getelementptr i8, ptr %199, i64 -24
  %220 = load double, ptr %219, align 8, !tbaa !9
  %221 = fcmp oge double %218, %220
  %222 = select i1 %221, double %218, double %220
  %223 = getelementptr double, ptr %2, i64 %198
  %224 = load double, ptr %223, align 8, !tbaa !9
  %225 = fcmp oge double %222, %224
  %226 = select i1 %225, double %222, double %224
  store double %226, ptr %7, align 8, !tbaa !9
  store double -0.000000e+00, ptr %4, align 8, !tbaa !9
  br label %227

227:                                              ; preds = %135, %140, %191
  %228 = call i32 @dlasq4_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %21, ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %19, ptr noundef %12, ptr noundef %18) #5
  %229 = fneg double %24
  %230 = call double @llvm.fmuladd.f64(double %229, double 2.000000e+00, double 1.000000e+00)
  br label %.backedge

.backedge:                                        ; preds = %.backedge.backedge, %227
  %231 = call i32 @dlasq5_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %19, ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %11) #5
  %232 = load i64, ptr %1, align 8, !tbaa !5
  %233 = load i64, ptr %0, align 8, !tbaa !5
  %234 = load i64, ptr %10, align 8, !tbaa !5
  %235 = add i64 %232, 2
  %236 = sub i64 %235, %233
  %237 = add nsw i64 %236, %234
  store i64 %237, ptr %10, align 8, !tbaa !5
  %238 = load i64, ptr %9, align 8, !tbaa !5
  %239 = add nsw i64 %238, 1
  store i64 %239, ptr %9, align 8, !tbaa !5
  %240 = load double, ptr %4, align 8, !tbaa !9
  %241 = fcmp ult double %240, 0.000000e+00
  br i1 %241, label %245, label %242

242:                                              ; preds = %.backedge
  %243 = load double, ptr %13, align 8, !tbaa !9
  %244 = fcmp ogt double %243, 0.000000e+00
  br i1 %244, label %.loopexit, label %245

245:                                              ; preds = %242, %.backedge
  %246 = fcmp olt double %240, 0.000000e+00
  br i1 %246, label %247, label %293

247:                                              ; preds = %245
  %248 = load double, ptr %13, align 8, !tbaa !9
  %249 = fcmp ogt double %248, 0.000000e+00
  br i1 %249, label %250, label %.thread

250:                                              ; preds = %247
  %251 = load i64, ptr %1, align 8, !tbaa !5
  %252 = shl i64 %251, 2
  %253 = add i64 %252, -4
  %254 = load i64, ptr %3, align 8, !tbaa !5
  %255 = sub i64 %253, %254
  %256 = getelementptr inbounds double, ptr %22, i64 %255
  %257 = load double, ptr %256, align 8, !tbaa !9
  %258 = load double, ptr %5, align 8, !tbaa !9
  %259 = load double, ptr %16, align 8, !tbaa !9
  %260 = fadd double %258, %259
  %261 = fmul double %25, %260
  %262 = fcmp olt double %257, %261
  br i1 %262, label %263, label %273

263:                                              ; preds = %250
  %264 = load double, ptr %15, align 8, !tbaa !9
  %265 = fcmp ult double %264, 0.000000e+00
  %266 = fneg double %264
  %267 = select i1 %265, double %266, double %264
  %268 = fmul double %25, %258
  %269 = fcmp olt double %267, %268
  br i1 %269, label %270, label %273

270:                                              ; preds = %263
  %271 = getelementptr inbounds double, ptr %22, i64 %255
  %272 = getelementptr i8, ptr %271, i64 16
  store double 0.000000e+00, ptr %272, align 8, !tbaa !9
  br label %.loopexit.sink.split

273:                                              ; preds = %263, %250
  %274 = load i64, ptr %8, align 8, !tbaa !5
  %275 = add nsw i64 %274, 1
  store i64 %275, ptr %8, align 8, !tbaa !5
  %276 = load i64, ptr %12, align 8, !tbaa !5
  %277 = icmp slt i64 %276, -22
  br i1 %277, label %282, label %283

.thread:                                          ; preds = %247
  %278 = load i64, ptr %8, align 8, !tbaa !5
  %279 = add nsw i64 %278, 1
  store i64 %279, ptr %8, align 8, !tbaa !5
  %280 = load i64, ptr %12, align 8, !tbaa !5
  %281 = icmp slt i64 %280, -22
  br i1 %281, label %282, label %.thread403

282:                                              ; preds = %.thread, %273
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  br label %.backedge.backedge

.backedge.backedge:                               ; preds = %282, %.thread403, %284, %298
  br label %.backedge

283:                                              ; preds = %273
  br i1 %249, label %284, label %.thread403

284:                                              ; preds = %283
  %285 = load double, ptr %19, align 8, !tbaa !9
  %286 = fadd double %240, %285
  %287 = fmul double %230, %286
  store double %287, ptr %19, align 8, !tbaa !9
  %288 = add nsw i64 %276, -11
  store i64 %288, ptr %12, align 8, !tbaa !5
  br label %.backedge.backedge

.thread403:                                       ; preds = %.thread, %283
  %289 = phi i64 [ %276, %283 ], [ %280, %.thread ]
  %290 = load double, ptr %19, align 8, !tbaa !9
  %291 = fmul double %290, 2.500000e-01
  store double %291, ptr %19, align 8, !tbaa !9
  %292 = add nsw i64 %289, -12
  store i64 %292, ptr %12, align 8, !tbaa !5
  br label %.backedge.backedge

293:                                              ; preds = %245
  %294 = call i64 @disnan_(ptr noundef nonnull %4) #5
  %.not370 = icmp eq i64 %294, 0
  br i1 %.not370, label %299, label %295

295:                                              ; preds = %293
  %296 = load double, ptr %19, align 8, !tbaa !9
  %297 = fcmp oeq double %296, 0.000000e+00
  br i1 %297, label %299, label %298

298:                                              ; preds = %295
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  br label %.backedge.backedge

299:                                              ; preds = %293, %295
  %300 = call i32 @dlasq6_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17) #5
  %301 = load i64, ptr %1, align 8, !tbaa !5
  %302 = load i64, ptr %0, align 8, !tbaa !5
  %303 = load i64, ptr %10, align 8, !tbaa !5
  %304 = add i64 %301, 2
  %305 = sub i64 %304, %302
  %306 = add nsw i64 %305, %303
  store i64 %306, ptr %10, align 8, !tbaa !5
  %307 = load i64, ptr %9, align 8, !tbaa !5
  %308 = add nsw i64 %307, 1
  store i64 %308, ptr %9, align 8, !tbaa !5
  br label %.loopexit.sink.split

.loopexit.sink.split:                             ; preds = %270, %299
  %.sink = phi ptr [ %19, %299 ], [ %4, %270 ]
  store double 0.000000e+00, ptr %.sink, align 8, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %242, %.loopexit.sink.split
  %309 = load double, ptr %19, align 8, !tbaa !9
  %310 = load double, ptr %5, align 8, !tbaa !9
  %311 = fcmp olt double %309, %310
  br i1 %311, label %312, label %319

312:                                              ; preds = %.loopexit
  %313 = load double, ptr %6, align 8, !tbaa !9
  %314 = fadd double %309, %313
  store double %314, ptr %6, align 8, !tbaa !9
  %315 = load double, ptr %5, align 8, !tbaa !9
  %316 = fadd double %314, %315
  %317 = fsub double %316, %315
  %318 = fsub double %314, %317
  br label %325

319:                                              ; preds = %.loopexit
  %320 = fadd double %309, %310
  %321 = fsub double %320, %309
  %322 = fsub double %310, %321
  %323 = load double, ptr %6, align 8, !tbaa !9
  %324 = fadd double %322, %323
  br label %325

325:                                              ; preds = %319, %312
  %storemerge = phi double [ %324, %319 ], [ %318, %312 ]
  %.0352 = phi double [ %320, %319 ], [ %316, %312 ]
  store double %storemerge, ptr %6, align 8, !tbaa !9
  store double %.0352, ptr %5, align 8, !tbaa !9
  br label %.loopexit377

.loopexit377:                                     ; preds = %.backedge378, %20, %325
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  ret i32 0
}

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

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #3

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

declare i32 @dlasq4_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @dlasq5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i64 @disnan_(ptr noundef) local_unnamed_addr #2

declare i32 @dlasq6_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nofree nounwind willreturn memory(write) "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 #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}


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