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

; 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
@.str.1 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1

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

75:                                               ; preds = %3
  %76 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 -1, ptr %76, align 8, !tbaa !9
  %77 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__1)
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

78:                                               ; preds = %3
  %79 = load ptr, ptr %5, align 8, !tbaa !5
  %80 = load i64, ptr %79, align 8, !tbaa !9
  %81 = icmp eq i64 %80, 0
  br i1 %81, label %82, label %83

82:                                               ; preds = %78
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

83:                                               ; preds = %78
  %84 = load ptr, ptr %5, align 8, !tbaa !5
  %85 = load i64, ptr %84, align 8, !tbaa !9
  %86 = icmp eq i64 %85, 1
  br i1 %86, label %87, label %96

87:                                               ; preds = %83
  %88 = load ptr, ptr %6, align 8, !tbaa !5
  %89 = getelementptr inbounds float, ptr %88, i64 1
  %90 = load float, ptr %89, align 4, !tbaa !11
  %91 = fcmp olt float %90, 0.000000e+00
  br i1 %91, label %92, label %95

92:                                               ; preds = %87
  %93 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 -201, ptr %93, align 8, !tbaa !9
  %94 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2)
  br label %95

95:                                               ; preds = %92, %87
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

96:                                               ; preds = %83
  %97 = load ptr, ptr %5, align 8, !tbaa !5
  %98 = load i64, ptr %97, align 8, !tbaa !9
  %99 = icmp eq i64 %98, 2
  br i1 %99, label %100, label %264

100:                                              ; preds = %96
  %101 = load ptr, ptr %6, align 8, !tbaa !5
  %102 = getelementptr inbounds float, ptr %101, i64 2
  %103 = load float, ptr %102, align 4, !tbaa !11
  %104 = fcmp olt float %103, 0.000000e+00
  br i1 %104, label %110, label %105

105:                                              ; preds = %100
  %106 = load ptr, ptr %6, align 8, !tbaa !5
  %107 = getelementptr inbounds float, ptr %106, i64 3
  %108 = load float, ptr %107, align 4, !tbaa !11
  %109 = fcmp olt float %108, 0.000000e+00
  br i1 %109, label %110, label %113

110:                                              ; preds = %105, %100
  %111 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 -2, ptr %111, align 8, !tbaa !9
  %112 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2)
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

113:                                              ; preds = %105
  %114 = load ptr, ptr %6, align 8, !tbaa !5
  %115 = getelementptr inbounds float, ptr %114, i64 3
  %116 = load float, ptr %115, align 4, !tbaa !11
  %117 = load ptr, ptr %6, align 8, !tbaa !5
  %118 = getelementptr inbounds float, ptr %117, i64 1
  %119 = load float, ptr %118, align 4, !tbaa !11
  %120 = fcmp ogt float %116, %119
  br i1 %120, label %121, label %133

121:                                              ; preds = %113
  %122 = load ptr, ptr %6, align 8, !tbaa !5
  %123 = getelementptr inbounds float, ptr %122, i64 3
  %124 = load float, ptr %123, align 4, !tbaa !11
  store float %124, ptr %13, align 4, !tbaa !11
  %125 = load ptr, ptr %6, align 8, !tbaa !5
  %126 = getelementptr inbounds float, ptr %125, i64 1
  %127 = load float, ptr %126, align 4, !tbaa !11
  %128 = load ptr, ptr %6, align 8, !tbaa !5
  %129 = getelementptr inbounds float, ptr %128, i64 3
  store float %127, ptr %129, align 4, !tbaa !11
  %130 = load float, ptr %13, align 4, !tbaa !11
  %131 = load ptr, ptr %6, align 8, !tbaa !5
  %132 = getelementptr inbounds float, ptr %131, i64 1
  store float %130, ptr %132, align 4, !tbaa !11
  br label %133

133:                                              ; preds = %121, %113
  br label %134

134:                                              ; preds = %133
  %135 = load ptr, ptr %6, align 8, !tbaa !5
  %136 = getelementptr inbounds float, ptr %135, i64 1
  %137 = load float, ptr %136, align 4, !tbaa !11
  %138 = load ptr, ptr %6, align 8, !tbaa !5
  %139 = getelementptr inbounds float, ptr %138, i64 2
  %140 = load float, ptr %139, align 4, !tbaa !11
  %141 = fadd float %137, %140
  %142 = load ptr, ptr %6, align 8, !tbaa !5
  %143 = getelementptr inbounds float, ptr %142, i64 3
  %144 = load float, ptr %143, align 4, !tbaa !11
  %145 = fadd float %141, %144
  %146 = load ptr, ptr %6, align 8, !tbaa !5
  %147 = getelementptr inbounds float, ptr %146, i64 5
  store float %145, ptr %147, align 4, !tbaa !11
  %148 = load ptr, ptr %6, align 8, !tbaa !5
  %149 = getelementptr inbounds float, ptr %148, i64 2
  %150 = load float, ptr %149, align 4, !tbaa !11
  %151 = load ptr, ptr %6, align 8, !tbaa !5
  %152 = getelementptr inbounds float, ptr %151, i64 3
  %153 = load float, ptr %152, align 4, !tbaa !11
  %154 = load float, ptr %31, align 4, !tbaa !11
  %155 = fmul float %153, %154
  %156 = fcmp ogt float %150, %155
  br i1 %156, label %157, label %249

157:                                              ; preds = %134
  %158 = load ptr, ptr %6, align 8, !tbaa !5
  %159 = getelementptr inbounds float, ptr %158, i64 1
  %160 = load float, ptr %159, align 4, !tbaa !11
  %161 = load ptr, ptr %6, align 8, !tbaa !5
  %162 = getelementptr inbounds float, ptr %161, i64 3
  %163 = load float, ptr %162, align 4, !tbaa !11
  %164 = fsub float %160, %163
  %165 = load ptr, ptr %6, align 8, !tbaa !5
  %166 = getelementptr inbounds float, ptr %165, i64 2
  %167 = load float, ptr %166, align 4, !tbaa !11
  %168 = fadd float %164, %167
  %169 = fmul float %168, 5.000000e-01
  store float %169, ptr %18, align 4, !tbaa !11
  %170 = load ptr, ptr %6, align 8, !tbaa !5
  %171 = getelementptr inbounds float, ptr %170, i64 3
  %172 = load float, ptr %171, align 4, !tbaa !11
  %173 = load ptr, ptr %6, align 8, !tbaa !5
  %174 = getelementptr inbounds float, ptr %173, i64 2
  %175 = load float, ptr %174, align 4, !tbaa !11
  %176 = load float, ptr %18, align 4, !tbaa !11
  %177 = fdiv float %175, %176
  %178 = fmul float %172, %177
  store float %178, ptr %17, align 4, !tbaa !11
  %179 = load float, ptr %17, align 4, !tbaa !11
  %180 = load float, ptr %18, align 4, !tbaa !11
  %181 = fcmp ole float %179, %180
  br i1 %181, label %182, label %204

182:                                              ; preds = %157
  %183 = load ptr, ptr %6, align 8, !tbaa !5
  %184 = getelementptr inbounds float, ptr %183, i64 3
  %185 = load float, ptr %184, align 4, !tbaa !11
  %186 = fpext float %185 to double
  %187 = load ptr, ptr %6, align 8, !tbaa !5
  %188 = getelementptr inbounds float, ptr %187, i64 2
  %189 = load float, ptr %188, align 4, !tbaa !11
  %190 = fpext float %189 to double
  %191 = load float, ptr %18, align 4, !tbaa !11
  %192 = fpext float %191 to double
  %193 = load float, ptr %17, align 4, !tbaa !11
  %194 = load float, ptr %18, align 4, !tbaa !11
  %195 = fdiv float %193, %194
  %196 = fadd float %195, 1.000000e+00
  %197 = fpext float %196 to double
  %198 = call double @sqrt(double noundef %197) #5
  %199 = fadd double %198, 1.000000e+00
  %200 = fmul double %192, %199
  %201 = fdiv double %190, %200
  %202 = fmul double %186, %201
  %203 = fptrunc double %202 to float
  store float %203, ptr %17, align 4, !tbaa !11
  br label %227

204:                                              ; preds = %157
  %205 = load ptr, ptr %6, align 8, !tbaa !5
  %206 = getelementptr inbounds float, ptr %205, i64 3
  %207 = load float, ptr %206, align 4, !tbaa !11
  %208 = fpext float %207 to double
  %209 = load ptr, ptr %6, align 8, !tbaa !5
  %210 = getelementptr inbounds float, ptr %209, i64 2
  %211 = load float, ptr %210, align 4, !tbaa !11
  %212 = fpext float %211 to double
  %213 = load float, ptr %18, align 4, !tbaa !11
  %214 = fpext float %213 to double
  %215 = load float, ptr %18, align 4, !tbaa !11
  %216 = fpext float %215 to double
  %217 = call double @sqrt(double noundef %216) #5
  %218 = load float, ptr %18, align 4, !tbaa !11
  %219 = load float, ptr %17, align 4, !tbaa !11
  %220 = fadd float %218, %219
  %221 = fpext float %220 to double
  %222 = call double @sqrt(double noundef %221) #5
  %223 = call double @llvm.fmuladd.f64(double %217, double %222, double %214)
  %224 = fdiv double %212, %223
  %225 = fmul double %208, %224
  %226 = fptrunc double %225 to float
  store float %226, ptr %17, align 4, !tbaa !11
  br label %227

227:                                              ; preds = %204, %182
  %228 = load ptr, ptr %6, align 8, !tbaa !5
  %229 = getelementptr inbounds float, ptr %228, i64 1
  %230 = load float, ptr %229, align 4, !tbaa !11
  %231 = load float, ptr %17, align 4, !tbaa !11
  %232 = load ptr, ptr %6, align 8, !tbaa !5
  %233 = getelementptr inbounds float, ptr %232, i64 2
  %234 = load float, ptr %233, align 4, !tbaa !11
  %235 = fadd float %231, %234
  %236 = fadd float %230, %235
  store float %236, ptr %18, align 4, !tbaa !11
  %237 = load ptr, ptr %6, align 8, !tbaa !5
  %238 = getelementptr inbounds float, ptr %237, i64 1
  %239 = load float, ptr %238, align 4, !tbaa !11
  %240 = load float, ptr %18, align 4, !tbaa !11
  %241 = fdiv float %239, %240
  %242 = load ptr, ptr %6, align 8, !tbaa !5
  %243 = getelementptr inbounds float, ptr %242, i64 3
  %244 = load float, ptr %243, align 4, !tbaa !11
  %245 = fmul float %244, %241
  store float %245, ptr %243, align 4, !tbaa !11
  %246 = load float, ptr %18, align 4, !tbaa !11
  %247 = load ptr, ptr %6, align 8, !tbaa !5
  %248 = getelementptr inbounds float, ptr %247, i64 1
  store float %246, ptr %248, align 4, !tbaa !11
  br label %249

249:                                              ; preds = %227, %134
  %250 = load ptr, ptr %6, align 8, !tbaa !5
  %251 = getelementptr inbounds float, ptr %250, i64 3
  %252 = load float, ptr %251, align 4, !tbaa !11
  %253 = load ptr, ptr %6, align 8, !tbaa !5
  %254 = getelementptr inbounds float, ptr %253, i64 2
  store float %252, ptr %254, align 4, !tbaa !11
  %255 = load ptr, ptr %6, align 8, !tbaa !5
  %256 = getelementptr inbounds float, ptr %255, i64 2
  %257 = load float, ptr %256, align 4, !tbaa !11
  %258 = load ptr, ptr %6, align 8, !tbaa !5
  %259 = getelementptr inbounds float, ptr %258, i64 1
  %260 = load float, ptr %259, align 4, !tbaa !11
  %261 = fadd float %257, %260
  %262 = load ptr, ptr %6, align 8, !tbaa !5
  %263 = getelementptr inbounds float, ptr %262, i64 6
  store float %261, ptr %263, align 4, !tbaa !11
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

264:                                              ; preds = %96
  br label %265

265:                                              ; preds = %264
  br label %266

266:                                              ; preds = %265
  br label %267

267:                                              ; preds = %266
  %268 = load ptr, ptr %6, align 8, !tbaa !5
  %269 = load ptr, ptr %5, align 8, !tbaa !5
  %270 = load i64, ptr %269, align 8, !tbaa !9
  %271 = mul nsw i64 %270, 2
  %272 = getelementptr inbounds float, ptr %268, i64 %271
  store float 0.000000e+00, ptr %272, align 4, !tbaa !11
  %273 = load ptr, ptr %6, align 8, !tbaa !5
  %274 = getelementptr inbounds float, ptr %273, i64 2
  %275 = load float, ptr %274, align 4, !tbaa !11
  store float %275, ptr %35, align 4, !tbaa !11
  store float 0.000000e+00, ptr %42, align 4, !tbaa !11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  store float 0.000000e+00, ptr %13, align 4, !tbaa !11
  store float 0.000000e+00, ptr %14, align 4, !tbaa !11
  %276 = load ptr, ptr %5, align 8, !tbaa !5
  %277 = load i64, ptr %276, align 8, !tbaa !9
  %278 = sub nsw i64 %277, 1
  %279 = shl i64 %278, 1
  store i64 %279, ptr %8, align 8, !tbaa !9
  store i64 1, ptr %16, align 8, !tbaa !9
  br label %280

280:                                              ; preds = %382, %267
  %281 = load i64, ptr %16, align 8, !tbaa !9
  %282 = load i64, ptr %8, align 8, !tbaa !9
  %283 = icmp sle i64 %281, %282
  br i1 %283, label %284, label %385

284:                                              ; preds = %280
  %285 = load ptr, ptr %6, align 8, !tbaa !5
  %286 = load i64, ptr %16, align 8, !tbaa !9
  %287 = getelementptr inbounds float, ptr %285, i64 %286
  %288 = load float, ptr %287, align 4, !tbaa !11
  %289 = fcmp olt float %288, 0.000000e+00
  br i1 %289, label %290, label %296

290:                                              ; preds = %284
  %291 = load i64, ptr %16, align 8, !tbaa !9
  %292 = add nsw i64 %291, 200
  %293 = sub nsw i64 0, %292
  %294 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %293, ptr %294, align 8, !tbaa !9
  %295 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2)
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

296:                                              ; preds = %284
  %297 = load ptr, ptr %6, align 8, !tbaa !5
  %298 = load i64, ptr %16, align 8, !tbaa !9
  %299 = add nsw i64 %298, 1
  %300 = getelementptr inbounds float, ptr %297, i64 %299
  %301 = load float, ptr %300, align 4, !tbaa !11
  %302 = fcmp olt float %301, 0.000000e+00
  br i1 %302, label %303, label %309

303:                                              ; preds = %296
  %304 = load i64, ptr %16, align 8, !tbaa !9
  %305 = add nsw i64 %304, 201
  %306 = sub nsw i64 0, %305
  %307 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %306, ptr %307, align 8, !tbaa !9
  %308 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2)
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

309:                                              ; preds = %296
  br label %310

310:                                              ; preds = %309
  %311 = load ptr, ptr %6, align 8, !tbaa !5
  %312 = load i64, ptr %16, align 8, !tbaa !9
  %313 = getelementptr inbounds float, ptr %311, i64 %312
  %314 = load float, ptr %313, align 4, !tbaa !11
  %315 = load float, ptr %13, align 4, !tbaa !11
  %316 = fadd float %315, %314
  store float %316, ptr %13, align 4, !tbaa !11
  %317 = load ptr, ptr %6, align 8, !tbaa !5
  %318 = load i64, ptr %16, align 8, !tbaa !9
  %319 = add nsw i64 %318, 1
  %320 = getelementptr inbounds float, ptr %317, i64 %319
  %321 = load float, ptr %320, align 4, !tbaa !11
  %322 = load float, ptr %14, align 4, !tbaa !11
  %323 = fadd float %322, %321
  store float %323, ptr %14, align 4, !tbaa !11
  %324 = load float, ptr %42, align 4, !tbaa !11
  store float %324, ptr %11, align 4, !tbaa !11
  %325 = load ptr, ptr %6, align 8, !tbaa !5
  %326 = load i64, ptr %16, align 8, !tbaa !9
  %327 = getelementptr inbounds float, ptr %325, i64 %326
  %328 = load float, ptr %327, align 4, !tbaa !11
  store float %328, ptr %12, align 4, !tbaa !11
  %329 = load float, ptr %11, align 4, !tbaa !11
  %330 = load float, ptr %12, align 4, !tbaa !11
  %331 = fcmp oge float %329, %330
  br i1 %331, label %332, label %334

332:                                              ; preds = %310
  %333 = load float, ptr %11, align 4, !tbaa !11
  br label %336

334:                                              ; preds = %310
  %335 = load float, ptr %12, align 4, !tbaa !11
  br label %336

336:                                              ; preds = %334, %332
  %337 = phi float [ %333, %332 ], [ %335, %334 ]
  %338 = fpext float %337 to double
  %339 = fptrunc double %338 to float
  store float %339, ptr %42, align 4, !tbaa !11
  %340 = load float, ptr %35, align 4, !tbaa !11
  store float %340, ptr %11, align 4, !tbaa !11
  %341 = load ptr, ptr %6, align 8, !tbaa !5
  %342 = load i64, ptr %16, align 8, !tbaa !9
  %343 = add nsw i64 %342, 1
  %344 = getelementptr inbounds float, ptr %341, i64 %343
  %345 = load float, ptr %344, align 4, !tbaa !11
  store float %345, ptr %12, align 4, !tbaa !11
  %346 = load float, ptr %11, align 4, !tbaa !11
  %347 = load float, ptr %12, align 4, !tbaa !11
  %348 = fcmp ole float %346, %347
  br i1 %348, label %349, label %351

349:                                              ; preds = %336
  %350 = load float, ptr %11, align 4, !tbaa !11
  br label %353

351:                                              ; preds = %336
  %352 = load float, ptr %12, align 4, !tbaa !11
  br label %353

353:                                              ; preds = %351, %349
  %354 = phi float [ %350, %349 ], [ %352, %351 ]
  %355 = fpext float %354 to double
  %356 = fptrunc double %355 to float
  store float %356, ptr %35, align 4, !tbaa !11
  %357 = load float, ptr %42, align 4, !tbaa !11
  %358 = load float, ptr %43, align 4, !tbaa !11
  %359 = fcmp oge float %357, %358
  br i1 %359, label %360, label %362

360:                                              ; preds = %353
  %361 = load float, ptr %42, align 4, !tbaa !11
  br label %364

362:                                              ; preds = %353
  %363 = load float, ptr %43, align 4, !tbaa !11
  br label %364

364:                                              ; preds = %362, %360
  %365 = phi float [ %361, %360 ], [ %363, %362 ]
  store float %365, ptr %11, align 4, !tbaa !11
  %366 = load ptr, ptr %6, align 8, !tbaa !5
  %367 = load i64, ptr %16, align 8, !tbaa !9
  %368 = add nsw i64 %367, 1
  %369 = getelementptr inbounds float, ptr %366, i64 %368
  %370 = load float, ptr %369, align 4, !tbaa !11
  store float %370, ptr %12, align 4, !tbaa !11
  %371 = load float, ptr %11, align 4, !tbaa !11
  %372 = load float, ptr %12, align 4, !tbaa !11
  %373 = fcmp oge float %371, %372
  br i1 %373, label %374, label %376

374:                                              ; preds = %364
  %375 = load float, ptr %11, align 4, !tbaa !11
  br label %378

376:                                              ; preds = %364
  %377 = load float, ptr %12, align 4, !tbaa !11
  br label %378

378:                                              ; preds = %376, %374
  %379 = phi float [ %375, %374 ], [ %377, %376 ]
  %380 = fpext float %379 to double
  %381 = fptrunc double %380 to float
  store float %381, ptr %43, align 4, !tbaa !11
  br label %382

382:                                              ; preds = %378
  %383 = load i64, ptr %16, align 8, !tbaa !9
  %384 = add nsw i64 %383, 2
  store i64 %384, ptr %16, align 8, !tbaa !9
  br label %280, !llvm.loop !13

385:                                              ; preds = %280
  %386 = load ptr, ptr %6, align 8, !tbaa !5
  %387 = load ptr, ptr %5, align 8, !tbaa !5
  %388 = load i64, ptr %387, align 8, !tbaa !9
  %389 = shl i64 %388, 1
  %390 = sub nsw i64 %389, 1
  %391 = getelementptr inbounds float, ptr %386, i64 %390
  %392 = load float, ptr %391, align 4, !tbaa !11
  %393 = fcmp olt float %392, 0.000000e+00
  br i1 %393, label %394, label %402

394:                                              ; preds = %385
  %395 = load ptr, ptr %5, align 8, !tbaa !5
  %396 = load i64, ptr %395, align 8, !tbaa !9
  %397 = shl i64 %396, 1
  %398 = add nsw i64 %397, 199
  %399 = sub nsw i64 0, %398
  %400 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 %399, ptr %400, align 8, !tbaa !9
  %401 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2)
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

402:                                              ; preds = %385
  %403 = load ptr, ptr %6, align 8, !tbaa !5
  %404 = load ptr, ptr %5, align 8, !tbaa !5
  %405 = load i64, ptr %404, align 8, !tbaa !9
  %406 = shl i64 %405, 1
  %407 = sub nsw i64 %406, 1
  %408 = getelementptr inbounds float, ptr %403, i64 %407
  %409 = load float, ptr %408, align 4, !tbaa !11
  %410 = load float, ptr %13, align 4, !tbaa !11
  %411 = fadd float %410, %409
  store float %411, ptr %13, align 4, !tbaa !11
  %412 = load float, ptr %42, align 4, !tbaa !11
  store float %412, ptr %11, align 4, !tbaa !11
  %413 = load ptr, ptr %6, align 8, !tbaa !5
  %414 = load ptr, ptr %5, align 8, !tbaa !5
  %415 = load i64, ptr %414, align 8, !tbaa !9
  %416 = shl i64 %415, 1
  %417 = sub nsw i64 %416, 1
  %418 = getelementptr inbounds float, ptr %413, i64 %417
  %419 = load float, ptr %418, align 4, !tbaa !11
  store float %419, ptr %12, align 4, !tbaa !11
  %420 = load float, ptr %11, align 4, !tbaa !11
  %421 = load float, ptr %12, align 4, !tbaa !11
  %422 = fcmp oge float %420, %421
  br i1 %422, label %423, label %425

423:                                              ; preds = %402
  %424 = load float, ptr %11, align 4, !tbaa !11
  br label %427

425:                                              ; preds = %402
  %426 = load float, ptr %12, align 4, !tbaa !11
  br label %427

427:                                              ; preds = %425, %423
  %428 = phi float [ %424, %423 ], [ %426, %425 ]
  %429 = fpext float %428 to double
  %430 = fptrunc double %429 to float
  store float %430, ptr %42, align 4, !tbaa !11
  %431 = load float, ptr %42, align 4, !tbaa !11
  %432 = load float, ptr %43, align 4, !tbaa !11
  %433 = fcmp oge float %431, %432
  br i1 %433, label %434, label %436

434:                                              ; preds = %427
  %435 = load float, ptr %42, align 4, !tbaa !11
  br label %438

436:                                              ; preds = %427
  %437 = load float, ptr %43, align 4, !tbaa !11
  br label %438

438:                                              ; preds = %436, %434
  %439 = phi float [ %435, %434 ], [ %437, %436 ]
  %440 = fpext float %439 to double
  %441 = fptrunc double %440 to float
  store float %441, ptr %43, align 4, !tbaa !11
  %442 = load float, ptr %14, align 4, !tbaa !11
  %443 = fcmp oeq float %442, 0.000000e+00
  br i1 %443, label %444, label %476

444:                                              ; preds = %438
  %445 = load ptr, ptr %5, align 8, !tbaa !5
  %446 = load i64, ptr %445, align 8, !tbaa !9
  store i64 %446, ptr %8, align 8, !tbaa !9
  store i64 2, ptr %16, align 8, !tbaa !9
  br label %447

447:                                              ; preds = %461, %444
  %448 = load i64, ptr %16, align 8, !tbaa !9
  %449 = load i64, ptr %8, align 8, !tbaa !9
  %450 = icmp sle i64 %448, %449
  br i1 %450, label %451, label %464

451:                                              ; preds = %447
  %452 = load ptr, ptr %6, align 8, !tbaa !5
  %453 = load i64, ptr %16, align 8, !tbaa !9
  %454 = shl i64 %453, 1
  %455 = sub nsw i64 %454, 1
  %456 = getelementptr inbounds float, ptr %452, i64 %455
  %457 = load float, ptr %456, align 4, !tbaa !11
  %458 = load ptr, ptr %6, align 8, !tbaa !5
  %459 = load i64, ptr %16, align 8, !tbaa !9
  %460 = getelementptr inbounds float, ptr %458, i64 %459
  store float %457, ptr %460, align 4, !tbaa !11
  br label %461

461:                                              ; preds = %451
  %462 = load i64, ptr %16, align 8, !tbaa !9
  %463 = add nsw i64 %462, 1
  store i64 %463, ptr %16, align 8, !tbaa !9
  br label %447, !llvm.loop !15

464:                                              ; preds = %447
  %465 = load ptr, ptr %5, align 8, !tbaa !5
  %466 = load ptr, ptr %6, align 8, !tbaa !5
  %467 = getelementptr inbounds float, ptr %466, i64 1
  %468 = call i32 @slasrt_(ptr noundef @.str.3, ptr noundef %465, ptr noundef %467, ptr noundef %51)
  %469 = load float, ptr %13, align 4, !tbaa !11
  %470 = load ptr, ptr %6, align 8, !tbaa !5
  %471 = load ptr, ptr %5, align 8, !tbaa !5
  %472 = load i64, ptr %471, align 8, !tbaa !9
  %473 = shl i64 %472, 1
  %474 = sub nsw i64 %473, 1
  %475 = getelementptr inbounds float, ptr %470, i64 %474
  store float %469, ptr %475, align 4, !tbaa !11
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

476:                                              ; preds = %438
  %477 = load float, ptr %13, align 4, !tbaa !11
  %478 = load float, ptr %14, align 4, !tbaa !11
  %479 = fadd float %477, %478
  store float %479, ptr %49, align 4, !tbaa !11
  %480 = load float, ptr %49, align 4, !tbaa !11
  %481 = fcmp oeq float %480, 0.000000e+00
  br i1 %481, label %482, label %489

482:                                              ; preds = %476
  %483 = load ptr, ptr %6, align 8, !tbaa !5
  %484 = load ptr, ptr %5, align 8, !tbaa !5
  %485 = load i64, ptr %484, align 8, !tbaa !9
  %486 = shl i64 %485, 1
  %487 = sub nsw i64 %486, 1
  %488 = getelementptr inbounds float, ptr %483, i64 %487
  store float 0.000000e+00, ptr %488, align 4, !tbaa !11
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

489:                                              ; preds = %476
  store i64 0, ptr %32, align 8, !tbaa !9
  %490 = load ptr, ptr %5, align 8, !tbaa !5
  %491 = load i64, ptr %490, align 8, !tbaa !9
  %492 = shl i64 %491, 1
  store i64 %492, ptr %16, align 8, !tbaa !9
  br label %493

493:                                              ; preds = %525, %489
  %494 = load i64, ptr %16, align 8, !tbaa !9
  %495 = icmp sge i64 %494, 2
  br i1 %495, label %496, label %528

496:                                              ; preds = %493
  %497 = load ptr, ptr %6, align 8, !tbaa !5
  %498 = load i64, ptr %16, align 8, !tbaa !9
  %499 = mul nsw i64 %498, 2
  %500 = getelementptr inbounds float, ptr %497, i64 %499
  store float 0.000000e+00, ptr %500, align 4, !tbaa !11
  %501 = load ptr, ptr %6, align 8, !tbaa !5
  %502 = load i64, ptr %16, align 8, !tbaa !9
  %503 = getelementptr inbounds float, ptr %501, i64 %502
  %504 = load float, ptr %503, align 4, !tbaa !11
  %505 = load ptr, ptr %6, align 8, !tbaa !5
  %506 = load i64, ptr %16, align 8, !tbaa !9
  %507 = shl i64 %506, 1
  %508 = sub nsw i64 %507, 1
  %509 = getelementptr inbounds float, ptr %505, i64 %508
  store float %504, ptr %509, align 4, !tbaa !11
  %510 = load ptr, ptr %6, align 8, !tbaa !5
  %511 = load i64, ptr %16, align 8, !tbaa !9
  %512 = shl i64 %511, 1
  %513 = sub nsw i64 %512, 2
  %514 = getelementptr inbounds float, ptr %510, i64 %513
  store float 0.000000e+00, ptr %514, align 4, !tbaa !11
  %515 = load ptr, ptr %6, align 8, !tbaa !5
  %516 = load i64, ptr %16, align 8, !tbaa !9
  %517 = sub nsw i64 %516, 1
  %518 = getelementptr inbounds float, ptr %515, i64 %517
  %519 = load float, ptr %518, align 4, !tbaa !11
  %520 = load ptr, ptr %6, align 8, !tbaa !5
  %521 = load i64, ptr %16, align 8, !tbaa !9
  %522 = shl i64 %521, 1
  %523 = sub nsw i64 %522, 3
  %524 = getelementptr inbounds float, ptr %520, i64 %523
  store float %519, ptr %524, align 4, !tbaa !11
  br label %525

525:                                              ; preds = %496
  %526 = load i64, ptr %16, align 8, !tbaa !9
  %527 = add nsw i64 %526, -2
  store i64 %527, ptr %16, align 8, !tbaa !9
  br label %493, !llvm.loop !16

528:                                              ; preds = %493
  store i64 1, ptr %19, align 8, !tbaa !9
  %529 = load ptr, ptr %5, align 8, !tbaa !5
  %530 = load i64, ptr %529, align 8, !tbaa !9
  store i64 %530, ptr %21, align 8, !tbaa !9
  %531 = load ptr, ptr %6, align 8, !tbaa !5
  %532 = load i64, ptr %19, align 8, !tbaa !9
  %533 = shl i64 %532, 2
  %534 = sub nsw i64 %533, 3
  %535 = getelementptr inbounds float, ptr %531, i64 %534
  %536 = load float, ptr %535, align 4, !tbaa !11
  %537 = fmul float %536, 1.500000e+00
  %538 = load ptr, ptr %6, align 8, !tbaa !5
  %539 = load i64, ptr %21, align 8, !tbaa !9
  %540 = shl i64 %539, 2
  %541 = sub nsw i64 %540, 3
  %542 = getelementptr inbounds float, ptr %538, i64 %541
  %543 = load float, ptr %542, align 4, !tbaa !11
  %544 = fcmp olt float %537, %543
  br i1 %544, label %545, label %612

545:                                              ; preds = %528
  %546 = load i64, ptr %19, align 8, !tbaa !9
  %547 = load i64, ptr %21, align 8, !tbaa !9
  %548 = add nsw i64 %546, %547
  %549 = shl i64 %548, 2
  store i64 %549, ptr %30, align 8, !tbaa !9
  %550 = load i64, ptr %19, align 8, !tbaa !9
  %551 = load i64, ptr %21, align 8, !tbaa !9
  %552 = add nsw i64 %550, %551
  %553 = sub nsw i64 %552, 1
  %554 = shl i64 %553, 1
  store i64 %554, ptr %8, align 8, !tbaa !9
  %555 = load i64, ptr %19, align 8, !tbaa !9
  %556 = shl i64 %555, 2
  store i64 %556, ptr %20, align 8, !tbaa !9
  br label %557

557:                                              ; preds = %608, %545
  %558 = load i64, ptr %20, align 8, !tbaa !9
  %559 = load i64, ptr %8, align 8, !tbaa !9
  %560 = icmp sle i64 %558, %559
  br i1 %560, label %561, label %611

561:                                              ; preds = %557
  %562 = load ptr, ptr %6, align 8, !tbaa !5
  %563 = load i64, ptr %20, align 8, !tbaa !9
  %564 = sub nsw i64 %563, 3
  %565 = getelementptr inbounds float, ptr %562, i64 %564
  %566 = load float, ptr %565, align 4, !tbaa !11
  store float %566, ptr %41, align 4, !tbaa !11
  %567 = load ptr, ptr %6, align 8, !tbaa !5
  %568 = load i64, ptr %30, align 8, !tbaa !9
  %569 = load i64, ptr %20, align 8, !tbaa !9
  %570 = sub nsw i64 %568, %569
  %571 = sub nsw i64 %570, 3
  %572 = getelementptr inbounds float, ptr %567, i64 %571
  %573 = load float, ptr %572, align 4, !tbaa !11
  %574 = load ptr, ptr %6, align 8, !tbaa !5
  %575 = load i64, ptr %20, align 8, !tbaa !9
  %576 = sub nsw i64 %575, 3
  %577 = getelementptr inbounds float, ptr %574, i64 %576
  store float %573, ptr %577, align 4, !tbaa !11
  %578 = load float, ptr %41, align 4, !tbaa !11
  %579 = load ptr, ptr %6, align 8, !tbaa !5
  %580 = load i64, ptr %30, align 8, !tbaa !9
  %581 = load i64, ptr %20, align 8, !tbaa !9
  %582 = sub nsw i64 %580, %581
  %583 = sub nsw i64 %582, 3
  %584 = getelementptr inbounds float, ptr %579, i64 %583
  store float %578, ptr %584, align 4, !tbaa !11
  %585 = load ptr, ptr %6, align 8, !tbaa !5
  %586 = load i64, ptr %20, align 8, !tbaa !9
  %587 = sub nsw i64 %586, 1
  %588 = getelementptr inbounds float, ptr %585, i64 %587
  %589 = load float, ptr %588, align 4, !tbaa !11
  store float %589, ptr %41, align 4, !tbaa !11
  %590 = load ptr, ptr %6, align 8, !tbaa !5
  %591 = load i64, ptr %30, align 8, !tbaa !9
  %592 = load i64, ptr %20, align 8, !tbaa !9
  %593 = sub nsw i64 %591, %592
  %594 = sub nsw i64 %593, 5
  %595 = getelementptr inbounds float, ptr %590, i64 %594
  %596 = load float, ptr %595, align 4, !tbaa !11
  %597 = load ptr, ptr %6, align 8, !tbaa !5
  %598 = load i64, ptr %20, align 8, !tbaa !9
  %599 = sub nsw i64 %598, 1
  %600 = getelementptr inbounds float, ptr %597, i64 %599
  store float %596, ptr %600, align 4, !tbaa !11
  %601 = load float, ptr %41, align 4, !tbaa !11
  %602 = load ptr, ptr %6, align 8, !tbaa !5
  %603 = load i64, ptr %30, align 8, !tbaa !9
  %604 = load i64, ptr %20, align 8, !tbaa !9
  %605 = sub nsw i64 %603, %604
  %606 = sub nsw i64 %605, 5
  %607 = getelementptr inbounds float, ptr %602, i64 %606
  store float %601, ptr %607, align 4, !tbaa !11
  br label %608

608:                                              ; preds = %561
  %609 = load i64, ptr %20, align 8, !tbaa !9
  %610 = add nsw i64 %609, 4
  store i64 %610, ptr %20, align 8, !tbaa !9
  br label %557, !llvm.loop !17

611:                                              ; preds = %557
  br label %612

612:                                              ; preds = %611, %528
  store i64 0, ptr %23, align 8, !tbaa !9
  store i64 1, ptr %16, align 8, !tbaa !9
  br label %613

613:                                              ; preds = %942, %612
  %614 = load i64, ptr %16, align 8, !tbaa !9
  %615 = icmp sle i64 %614, 2
  br i1 %615, label %616, label %945

616:                                              ; preds = %613
  %617 = load ptr, ptr %6, align 8, !tbaa !5
  %618 = load i64, ptr %21, align 8, !tbaa !9
  %619 = shl i64 %618, 2
  %620 = load i64, ptr %23, align 8, !tbaa !9
  %621 = add nsw i64 %619, %620
  %622 = sub nsw i64 %621, 3
  %623 = getelementptr inbounds float, ptr %617, i64 %622
  %624 = load float, ptr %623, align 4, !tbaa !11
  store float %624, ptr %13, align 4, !tbaa !11
  %625 = load i64, ptr %19, align 8, !tbaa !9
  %626 = shl i64 %625, 2
  %627 = load i64, ptr %23, align 8, !tbaa !9
  %628 = add nsw i64 %626, %627
  store i64 %628, ptr %8, align 8, !tbaa !9
  %629 = load i64, ptr %21, align 8, !tbaa !9
  %630 = sub nsw i64 %629, 1
  %631 = shl i64 %630, 2
  %632 = load i64, ptr %23, align 8, !tbaa !9
  %633 = add nsw i64 %631, %632
  store i64 %633, ptr %20, align 8, !tbaa !9
  br label %634

634:                                              ; preds = %675, %616
  %635 = load i64, ptr %20, align 8, !tbaa !9
  %636 = load i64, ptr %8, align 8, !tbaa !9
  %637 = icmp sge i64 %635, %636
  br i1 %637, label %638, label %678

638:                                              ; preds = %634
  %639 = load ptr, ptr %6, align 8, !tbaa !5
  %640 = load i64, ptr %20, align 8, !tbaa !9
  %641 = sub nsw i64 %640, 1
  %642 = getelementptr inbounds float, ptr %639, i64 %641
  %643 = load float, ptr %642, align 4, !tbaa !11
  %644 = load float, ptr %31, align 4, !tbaa !11
  %645 = load float, ptr %13, align 4, !tbaa !11
  %646 = fmul float %644, %645
  %647 = fcmp ole float %643, %646
  br i1 %647, label %648, label %658

648:                                              ; preds = %638
  %649 = load ptr, ptr %6, align 8, !tbaa !5
  %650 = load i64, ptr %20, align 8, !tbaa !9
  %651 = sub nsw i64 %650, 1
  %652 = getelementptr inbounds float, ptr %649, i64 %651
  store float -0.000000e+00, ptr %652, align 4, !tbaa !11
  %653 = load ptr, ptr %6, align 8, !tbaa !5
  %654 = load i64, ptr %20, align 8, !tbaa !9
  %655 = sub nsw i64 %654, 3
  %656 = getelementptr inbounds float, ptr %653, i64 %655
  %657 = load float, ptr %656, align 4, !tbaa !11
  store float %657, ptr %13, align 4, !tbaa !11
  br label %674

658:                                              ; preds = %638
  %659 = load ptr, ptr %6, align 8, !tbaa !5
  %660 = load i64, ptr %20, align 8, !tbaa !9
  %661 = sub nsw i64 %660, 3
  %662 = getelementptr inbounds float, ptr %659, i64 %661
  %663 = load float, ptr %662, align 4, !tbaa !11
  %664 = load float, ptr %13, align 4, !tbaa !11
  %665 = load float, ptr %13, align 4, !tbaa !11
  %666 = load ptr, ptr %6, align 8, !tbaa !5
  %667 = load i64, ptr %20, align 8, !tbaa !9
  %668 = sub nsw i64 %667, 1
  %669 = getelementptr inbounds float, ptr %666, i64 %668
  %670 = load float, ptr %669, align 4, !tbaa !11
  %671 = fadd float %665, %670
  %672 = fdiv float %664, %671
  %673 = fmul float %663, %672
  store float %673, ptr %13, align 4, !tbaa !11
  br label %674

674:                                              ; preds = %658, %648
  br label %675

675:                                              ; preds = %674
  %676 = load i64, ptr %20, align 8, !tbaa !9
  %677 = add nsw i64 %676, -4
  store i64 %677, ptr %20, align 8, !tbaa !9
  br label %634, !llvm.loop !18

678:                                              ; preds = %634
  %679 = load ptr, ptr %6, align 8, !tbaa !5
  %680 = load i64, ptr %19, align 8, !tbaa !9
  %681 = shl i64 %680, 2
  %682 = load i64, ptr %23, align 8, !tbaa !9
  %683 = add nsw i64 %681, %682
  %684 = add nsw i64 %683, 1
  %685 = getelementptr inbounds float, ptr %679, i64 %684
  %686 = load float, ptr %685, align 4, !tbaa !11
  store float %686, ptr %35, align 4, !tbaa !11
  %687 = load ptr, ptr %6, align 8, !tbaa !5
  %688 = load i64, ptr %19, align 8, !tbaa !9
  %689 = shl i64 %688, 2
  %690 = load i64, ptr %23, align 8, !tbaa !9
  %691 = add nsw i64 %689, %690
  %692 = sub nsw i64 %691, 3
  %693 = getelementptr inbounds float, ptr %687, i64 %692
  %694 = load float, ptr %693, align 4, !tbaa !11
  store float %694, ptr %13, align 4, !tbaa !11
  %695 = load i64, ptr %21, align 8, !tbaa !9
  %696 = sub nsw i64 %695, 1
  %697 = shl i64 %696, 2
  %698 = load i64, ptr %23, align 8, !tbaa !9
  %699 = add nsw i64 %697, %698
  store i64 %699, ptr %8, align 8, !tbaa !9
  %700 = load i64, ptr %19, align 8, !tbaa !9
  %701 = shl i64 %700, 2
  %702 = load i64, ptr %23, align 8, !tbaa !9
  %703 = add nsw i64 %701, %702
  store i64 %703, ptr %20, align 8, !tbaa !9
  br label %704

704:                                              ; preds = %885, %678
  %705 = load i64, ptr %20, align 8, !tbaa !9
  %706 = load i64, ptr %8, align 8, !tbaa !9
  %707 = icmp sle i64 %705, %706
  br i1 %707, label %708, label %888

708:                                              ; preds = %704
  %709 = load float, ptr %13, align 4, !tbaa !11
  %710 = load ptr, ptr %6, align 8, !tbaa !5
  %711 = load i64, ptr %20, align 8, !tbaa !9
  %712 = sub nsw i64 %711, 1
  %713 = getelementptr inbounds float, ptr %710, i64 %712
  %714 = load float, ptr %713, align 4, !tbaa !11
  %715 = fadd float %709, %714
  %716 = load ptr, ptr %6, align 8, !tbaa !5
  %717 = load i64, ptr %20, align 8, !tbaa !9
  %718 = load i64, ptr %23, align 8, !tbaa !9
  %719 = shl i64 %718, 1
  %720 = sub nsw i64 %717, %719
  %721 = sub nsw i64 %720, 2
  %722 = getelementptr inbounds float, ptr %716, i64 %721
  store float %715, ptr %722, align 4, !tbaa !11
  %723 = load ptr, ptr %6, align 8, !tbaa !5
  %724 = load i64, ptr %20, align 8, !tbaa !9
  %725 = sub nsw i64 %724, 1
  %726 = getelementptr inbounds float, ptr %723, i64 %725
  %727 = load float, ptr %726, align 4, !tbaa !11
  %728 = load float, ptr %31, align 4, !tbaa !11
  %729 = load float, ptr %13, align 4, !tbaa !11
  %730 = fmul float %728, %729
  %731 = fcmp ole float %727, %730
  br i1 %731, label %732, label %756

732:                                              ; preds = %708
  %733 = load ptr, ptr %6, align 8, !tbaa !5
  %734 = load i64, ptr %20, align 8, !tbaa !9
  %735 = sub nsw i64 %734, 1
  %736 = getelementptr inbounds float, ptr %733, i64 %735
  store float -0.000000e+00, ptr %736, align 4, !tbaa !11
  %737 = load float, ptr %13, align 4, !tbaa !11
  %738 = load ptr, ptr %6, align 8, !tbaa !5
  %739 = load i64, ptr %20, align 8, !tbaa !9
  %740 = load i64, ptr %23, align 8, !tbaa !9
  %741 = shl i64 %740, 1
  %742 = sub nsw i64 %739, %741
  %743 = sub nsw i64 %742, 2
  %744 = getelementptr inbounds float, ptr %738, i64 %743
  store float %737, ptr %744, align 4, !tbaa !11
  %745 = load ptr, ptr %6, align 8, !tbaa !5
  %746 = load i64, ptr %20, align 8, !tbaa !9
  %747 = load i64, ptr %23, align 8, !tbaa !9
  %748 = shl i64 %747, 1
  %749 = sub nsw i64 %746, %748
  %750 = getelementptr inbounds float, ptr %745, i64 %749
  store float 0.000000e+00, ptr %750, align 4, !tbaa !11
  %751 = load ptr, ptr %6, align 8, !tbaa !5
  %752 = load i64, ptr %20, align 8, !tbaa !9
  %753 = add nsw i64 %752, 1
  %754 = getelementptr inbounds float, ptr %751, i64 %753
  %755 = load float, ptr %754, align 4, !tbaa !11
  store float %755, ptr %13, align 4, !tbaa !11
  br label %865

756:                                              ; preds = %708
  %757 = load float, ptr %57, align 4, !tbaa !11
  %758 = load ptr, ptr %6, align 8, !tbaa !5
  %759 = load i64, ptr %20, align 8, !tbaa !9
  %760 = add nsw i64 %759, 1
  %761 = getelementptr inbounds float, ptr %758, i64 %760
  %762 = load float, ptr %761, align 4, !tbaa !11
  %763 = fmul float %757, %762
  %764 = load ptr, ptr %6, align 8, !tbaa !5
  %765 = load i64, ptr %20, align 8, !tbaa !9
  %766 = load i64, ptr %23, align 8, !tbaa !9
  %767 = shl i64 %766, 1
  %768 = sub nsw i64 %765, %767
  %769 = sub nsw i64 %768, 2
  %770 = getelementptr inbounds float, ptr %764, i64 %769
  %771 = load float, ptr %770, align 4, !tbaa !11
  %772 = fcmp olt float %763, %771
  br i1 %772, label %773, label %821

773:                                              ; preds = %756
  %774 = load float, ptr %57, align 4, !tbaa !11
  %775 = load ptr, ptr %6, align 8, !tbaa !5
  %776 = load i64, ptr %20, align 8, !tbaa !9
  %777 = load i64, ptr %23, align 8, !tbaa !9
  %778 = shl i64 %777, 1
  %779 = sub nsw i64 %776, %778
  %780 = sub nsw i64 %779, 2
  %781 = getelementptr inbounds float, ptr %775, i64 %780
  %782 = load float, ptr %781, align 4, !tbaa !11
  %783 = fmul float %774, %782
  %784 = load ptr, ptr %6, align 8, !tbaa !5
  %785 = load i64, ptr %20, align 8, !tbaa !9
  %786 = add nsw i64 %785, 1
  %787 = getelementptr inbounds float, ptr %784, i64 %786
  %788 = load float, ptr %787, align 4, !tbaa !11
  %789 = fcmp olt float %783, %788
  br i1 %789, label %790, label %821

790:                                              ; preds = %773
  %791 = load ptr, ptr %6, align 8, !tbaa !5
  %792 = load i64, ptr %20, align 8, !tbaa !9
  %793 = add nsw i64 %792, 1
  %794 = getelementptr inbounds float, ptr %791, i64 %793
  %795 = load float, ptr %794, align 4, !tbaa !11
  %796 = load ptr, ptr %6, align 8, !tbaa !5
  %797 = load i64, ptr %20, align 8, !tbaa !9
  %798 = load i64, ptr %23, align 8, !tbaa !9
  %799 = shl i64 %798, 1
  %800 = sub nsw i64 %797, %799
  %801 = sub nsw i64 %800, 2
  %802 = getelementptr inbounds float, ptr %796, i64 %801
  %803 = load float, ptr %802, align 4, !tbaa !11
  %804 = fdiv float %795, %803
  store float %804, ptr %41, align 4, !tbaa !11
  %805 = load ptr, ptr %6, align 8, !tbaa !5
  %806 = load i64, ptr %20, align 8, !tbaa !9
  %807 = sub nsw i64 %806, 1
  %808 = getelementptr inbounds float, ptr %805, i64 %807
  %809 = load float, ptr %808, align 4, !tbaa !11
  %810 = load float, ptr %41, align 4, !tbaa !11
  %811 = fmul float %809, %810
  %812 = load ptr, ptr %6, align 8, !tbaa !5
  %813 = load i64, ptr %20, align 8, !tbaa !9
  %814 = load i64, ptr %23, align 8, !tbaa !9
  %815 = shl i64 %814, 1
  %816 = sub nsw i64 %813, %815
  %817 = getelementptr inbounds float, ptr %812, i64 %816
  store float %811, ptr %817, align 4, !tbaa !11
  %818 = load float, ptr %41, align 4, !tbaa !11
  %819 = load float, ptr %13, align 4, !tbaa !11
  %820 = fmul float %819, %818
  store float %820, ptr %13, align 4, !tbaa !11
  br label %864

821:                                              ; preds = %773, %756
  %822 = load ptr, ptr %6, align 8, !tbaa !5
  %823 = load i64, ptr %20, align 8, !tbaa !9
  %824 = add nsw i64 %823, 1
  %825 = getelementptr inbounds float, ptr %822, i64 %824
  %826 = load float, ptr %825, align 4, !tbaa !11
  %827 = load ptr, ptr %6, align 8, !tbaa !5
  %828 = load i64, ptr %20, align 8, !tbaa !9
  %829 = sub nsw i64 %828, 1
  %830 = getelementptr inbounds float, ptr %827, i64 %829
  %831 = load float, ptr %830, align 4, !tbaa !11
  %832 = load ptr, ptr %6, align 8, !tbaa !5
  %833 = load i64, ptr %20, align 8, !tbaa !9
  %834 = load i64, ptr %23, align 8, !tbaa !9
  %835 = shl i64 %834, 1
  %836 = sub nsw i64 %833, %835
  %837 = sub nsw i64 %836, 2
  %838 = getelementptr inbounds float, ptr %832, i64 %837
  %839 = load float, ptr %838, align 4, !tbaa !11
  %840 = fdiv float %831, %839
  %841 = fmul float %826, %840
  %842 = load ptr, ptr %6, align 8, !tbaa !5
  %843 = load i64, ptr %20, align 8, !tbaa !9
  %844 = load i64, ptr %23, align 8, !tbaa !9
  %845 = shl i64 %844, 1
  %846 = sub nsw i64 %843, %845
  %847 = getelementptr inbounds float, ptr %842, i64 %846
  store float %841, ptr %847, align 4, !tbaa !11
  %848 = load ptr, ptr %6, align 8, !tbaa !5
  %849 = load i64, ptr %20, align 8, !tbaa !9
  %850 = add nsw i64 %849, 1
  %851 = getelementptr inbounds float, ptr %848, i64 %850
  %852 = load float, ptr %851, align 4, !tbaa !11
  %853 = load float, ptr %13, align 4, !tbaa !11
  %854 = load ptr, ptr %6, align 8, !tbaa !5
  %855 = load i64, ptr %20, align 8, !tbaa !9
  %856 = load i64, ptr %23, align 8, !tbaa !9
  %857 = shl i64 %856, 1
  %858 = sub nsw i64 %855, %857
  %859 = sub nsw i64 %858, 2
  %860 = getelementptr inbounds float, ptr %854, i64 %859
  %861 = load float, ptr %860, align 4, !tbaa !11
  %862 = fdiv float %853, %861
  %863 = fmul float %852, %862
  store float %863, ptr %13, align 4, !tbaa !11
  br label %864

864:                                              ; preds = %821, %790
  br label %865

865:                                              ; preds = %864, %732
  %866 = load float, ptr %35, align 4, !tbaa !11
  store float %866, ptr %11, align 4, !tbaa !11
  %867 = load ptr, ptr %6, align 8, !tbaa !5
  %868 = load i64, ptr %20, align 8, !tbaa !9
  %869 = load i64, ptr %23, align 8, !tbaa !9
  %870 = shl i64 %869, 1
  %871 = sub nsw i64 %868, %870
  %872 = getelementptr inbounds float, ptr %867, i64 %871
  %873 = load float, ptr %872, align 4, !tbaa !11
  store float %873, ptr %12, align 4, !tbaa !11
  %874 = load float, ptr %11, align 4, !tbaa !11
  %875 = load float, ptr %12, align 4, !tbaa !11
  %876 = fcmp ole float %874, %875
  br i1 %876, label %877, label %879

877:                                              ; preds = %865
  %878 = load float, ptr %11, align 4, !tbaa !11
  br label %881

879:                                              ; preds = %865
  %880 = load float, ptr %12, align 4, !tbaa !11
  br label %881

881:                                              ; preds = %879, %877
  %882 = phi float [ %878, %877 ], [ %880, %879 ]
  %883 = fpext float %882 to double
  %884 = fptrunc double %883 to float
  store float %884, ptr %35, align 4, !tbaa !11
  br label %885

885:                                              ; preds = %881
  %886 = load i64, ptr %20, align 8, !tbaa !9
  %887 = add nsw i64 %886, 4
  store i64 %887, ptr %20, align 8, !tbaa !9
  br label %704, !llvm.loop !19

888:                                              ; preds = %704
  %889 = load float, ptr %13, align 4, !tbaa !11
  %890 = load ptr, ptr %6, align 8, !tbaa !5
  %891 = load i64, ptr %21, align 8, !tbaa !9
  %892 = shl i64 %891, 2
  %893 = load i64, ptr %23, align 8, !tbaa !9
  %894 = sub nsw i64 %892, %893
  %895 = sub nsw i64 %894, 2
  %896 = getelementptr inbounds float, ptr %890, i64 %895
  store float %889, ptr %896, align 4, !tbaa !11
  %897 = load ptr, ptr %6, align 8, !tbaa !5
  %898 = load i64, ptr %19, align 8, !tbaa !9
  %899 = shl i64 %898, 2
  %900 = load i64, ptr %23, align 8, !tbaa !9
  %901 = sub nsw i64 %899, %900
  %902 = sub nsw i64 %901, 2
  %903 = getelementptr inbounds float, ptr %897, i64 %902
  %904 = load float, ptr %903, align 4, !tbaa !11
  store float %904, ptr %42, align 4, !tbaa !11
  %905 = load i64, ptr %21, align 8, !tbaa !9
  %906 = shl i64 %905, 2
  %907 = load i64, ptr %23, align 8, !tbaa !9
  %908 = sub nsw i64 %906, %907
  %909 = sub nsw i64 %908, 2
  store i64 %909, ptr %8, align 8, !tbaa !9
  %910 = load i64, ptr %19, align 8, !tbaa !9
  %911 = shl i64 %910, 2
  %912 = load i64, ptr %23, align 8, !tbaa !9
  %913 = sub nsw i64 %911, %912
  %914 = add nsw i64 %913, 2
  store i64 %914, ptr %20, align 8, !tbaa !9
  br label %915

915:                                              ; preds = %936, %888
  %916 = load i64, ptr %20, align 8, !tbaa !9
  %917 = load i64, ptr %8, align 8, !tbaa !9
  %918 = icmp sle i64 %916, %917
  br i1 %918, label %919, label %939

919:                                              ; preds = %915
  %920 = load float, ptr %42, align 4, !tbaa !11
  store float %920, ptr %11, align 4, !tbaa !11
  %921 = load ptr, ptr %6, align 8, !tbaa !5
  %922 = load i64, ptr %20, align 8, !tbaa !9
  %923 = getelementptr inbounds float, ptr %921, i64 %922
  %924 = load float, ptr %923, align 4, !tbaa !11
  store float %924, ptr %12, align 4, !tbaa !11
  %925 = load float, ptr %11, align 4, !tbaa !11
  %926 = load float, ptr %12, align 4, !tbaa !11
  %927 = fcmp oge float %925, %926
  br i1 %927, label %928, label %930

928:                                              ; preds = %919
  %929 = load float, ptr %11, align 4, !tbaa !11
  br label %932

930:                                              ; preds = %919
  %931 = load float, ptr %12, align 4, !tbaa !11
  br label %932

932:                                              ; preds = %930, %928
  %933 = phi float [ %929, %928 ], [ %931, %930 ]
  %934 = fpext float %933 to double
  %935 = fptrunc double %934 to float
  store float %935, ptr %42, align 4, !tbaa !11
  br label %936

936:                                              ; preds = %932
  %937 = load i64, ptr %20, align 8, !tbaa !9
  %938 = add nsw i64 %937, 4
  store i64 %938, ptr %20, align 8, !tbaa !9
  br label %915, !llvm.loop !20

939:                                              ; preds = %915
  %940 = load i64, ptr %23, align 8, !tbaa !9
  %941 = sub nsw i64 1, %940
  store i64 %941, ptr %23, align 8, !tbaa !9
  br label %942

942:                                              ; preds = %939
  %943 = load i64, ptr %16, align 8, !tbaa !9
  %944 = add nsw i64 %943, 1
  store i64 %944, ptr %16, align 8, !tbaa !9
  br label %613, !llvm.loop !21

945:                                              ; preds = %613
  store i64 0, ptr %52, align 8, !tbaa !9
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  store float 0.000000e+00, ptr %22, align 4, !tbaa !11
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  store float 0.000000e+00, ptr %25, align 4, !tbaa !11
  store float 0.000000e+00, ptr %15, align 4, !tbaa !11
  store float 0.000000e+00, ptr %28, align 4, !tbaa !11
  store i64 2, ptr %39, align 8, !tbaa !9
  store i64 0, ptr %47, align 8, !tbaa !9
  %946 = load i64, ptr %21, align 8, !tbaa !9
  %947 = load i64, ptr %19, align 8, !tbaa !9
  %948 = sub nsw i64 %946, %947
  %949 = shl i64 %948, 1
  store i64 %949, ptr %38, align 8, !tbaa !9
  %950 = load ptr, ptr %5, align 8, !tbaa !5
  %951 = load i64, ptr %950, align 8, !tbaa !9
  %952 = add nsw i64 %951, 1
  store i64 %952, ptr %8, align 8, !tbaa !9
  store i64 1, ptr %54, align 8, !tbaa !9
  br label %953

953:                                              ; preds = %1515, %945
  %954 = load i64, ptr %54, align 8, !tbaa !9
  %955 = load i64, ptr %8, align 8, !tbaa !9
  %956 = icmp sle i64 %954, %955
  br i1 %956, label %957, label %1518

957:                                              ; preds = %953
  %958 = load i64, ptr %21, align 8, !tbaa !9
  %959 = icmp slt i64 %958, 1
  br i1 %959, label %960, label %961

960:                                              ; preds = %957
  br label %1520

961:                                              ; preds = %957
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  %962 = load i64, ptr %21, align 8, !tbaa !9
  %963 = load ptr, ptr %5, align 8, !tbaa !5
  %964 = load i64, ptr %963, align 8, !tbaa !9
  %965 = icmp eq i64 %962, %964
  br i1 %965, label %966, label %967

966:                                              ; preds = %961
  store float 0.000000e+00, ptr %50, align 4, !tbaa !11
  br label %975

967:                                              ; preds = %961
  %968 = load ptr, ptr %6, align 8, !tbaa !5
  %969 = load i64, ptr %21, align 8, !tbaa !9
  %970 = shl i64 %969, 2
  %971 = sub nsw i64 %970, 1
  %972 = getelementptr inbounds float, ptr %968, i64 %971
  %973 = load float, ptr %972, align 4, !tbaa !11
  %974 = fneg float %973
  store float %974, ptr %50, align 4, !tbaa !11
  br label %975

975:                                              ; preds = %967, %966
  %976 = load float, ptr %50, align 4, !tbaa !11
  %977 = fcmp olt float %976, 0.000000e+00
  br i1 %977, label %978, label %980

978:                                              ; preds = %975
  %979 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 1, ptr %979, align 8, !tbaa !9
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

980:                                              ; preds = %975
  store float 0.000000e+00, ptr %36, align 4, !tbaa !11
  %981 = load i64, ptr %21, align 8, !tbaa !9
  %982 = load i64, ptr %19, align 8, !tbaa !9
  %983 = icmp sgt i64 %981, %982
  br i1 %983, label %984, label %1002

984:                                              ; preds = %980
  %985 = load ptr, ptr %6, align 8, !tbaa !5
  %986 = load i64, ptr %21, align 8, !tbaa !9
  %987 = shl i64 %986, 2
  %988 = sub nsw i64 %987, 5
  %989 = getelementptr inbounds float, ptr %985, i64 %988
  %990 = load float, ptr %989, align 4, !tbaa !11
  store float %990, ptr %11, align 4, !tbaa !11
  %991 = load float, ptr %11, align 4, !tbaa !11
  %992 = fcmp oge float %991, 0.000000e+00
  br i1 %992, label %993, label %995

993:                                              ; preds = %984
  %994 = load float, ptr %11, align 4, !tbaa !11
  br label %998

995:                                              ; preds = %984
  %996 = load float, ptr %11, align 4, !tbaa !11
  %997 = fneg float %996
  br label %998

998:                                              ; preds = %995, %993
  %999 = phi float [ %994, %993 ], [ %997, %995 ]
  %1000 = fpext float %999 to double
  %1001 = fptrunc double %1000 to float
  store float %1001, ptr %35, align 4, !tbaa !11
  br label %1003

1002:                                             ; preds = %980
  store float 0.000000e+00, ptr %35, align 4, !tbaa !11
  br label %1003

1003:                                             ; preds = %1002, %998
  %1004 = load ptr, ptr %6, align 8, !tbaa !5
  %1005 = load i64, ptr %21, align 8, !tbaa !9
  %1006 = shl i64 %1005, 2
  %1007 = sub nsw i64 %1006, 3
  %1008 = getelementptr inbounds float, ptr %1004, i64 %1007
  %1009 = load float, ptr %1008, align 4, !tbaa !11
  store float %1009, ptr %40, align 4, !tbaa !11
  %1010 = load float, ptr %40, align 4, !tbaa !11
  store float %1010, ptr %42, align 4, !tbaa !11
  %1011 = load i64, ptr %21, align 8, !tbaa !9
  %1012 = shl i64 %1011, 2
  store i64 %1012, ptr %20, align 8, !tbaa !9
  br label %1013

1013:                                             ; preds = %1105, %1003
  %1014 = load i64, ptr %20, align 8, !tbaa !9
  %1015 = icmp sge i64 %1014, 8
  br i1 %1015, label %1016, label %1108

1016:                                             ; preds = %1013
  %1017 = load ptr, ptr %6, align 8, !tbaa !5
  %1018 = load i64, ptr %20, align 8, !tbaa !9
  %1019 = sub nsw i64 %1018, 5
  %1020 = getelementptr inbounds float, ptr %1017, i64 %1019
  %1021 = load float, ptr %1020, align 4, !tbaa !11
  %1022 = fcmp ole float %1021, 0.000000e+00
  br i1 %1022, label %1023, label %1024

1023:                                             ; preds = %1016
  br label %1109

1024:                                             ; preds = %1016
  %1025 = load float, ptr %40, align 4, !tbaa !11
  %1026 = load float, ptr %36, align 4, !tbaa !11
  %1027 = fmul float %1026, 4.000000e+00
  %1028 = fcmp oge float %1025, %1027
  br i1 %1028, label %1029, label %1064

1029:                                             ; preds = %1024
  %1030 = load float, ptr %40, align 4, !tbaa !11
  store float %1030, ptr %11, align 4, !tbaa !11
  %1031 = load ptr, ptr %6, align 8, !tbaa !5
  %1032 = load i64, ptr %20, align 8, !tbaa !9
  %1033 = sub nsw i64 %1032, 3
  %1034 = getelementptr inbounds float, ptr %1031, i64 %1033
  %1035 = load float, ptr %1034, align 4, !tbaa !11
  store float %1035, ptr %12, align 4, !tbaa !11
  %1036 = load float, ptr %11, align 4, !tbaa !11
  %1037 = load float, ptr %12, align 4, !tbaa !11
  %1038 = fcmp ole float %1036, %1037
  br i1 %1038, label %1039, label %1041

1039:                                             ; preds = %1029
  %1040 = load float, ptr %11, align 4, !tbaa !11
  br label %1043

1041:                                             ; preds = %1029
  %1042 = load float, ptr %12, align 4, !tbaa !11
  br label %1043

1043:                                             ; preds = %1041, %1039
  %1044 = phi float [ %1040, %1039 ], [ %1042, %1041 ]
  %1045 = fpext float %1044 to double
  %1046 = fptrunc double %1045 to float
  store float %1046, ptr %40, align 4, !tbaa !11
  %1047 = load float, ptr %36, align 4, !tbaa !11
  store float %1047, ptr %11, align 4, !tbaa !11
  %1048 = load ptr, ptr %6, align 8, !tbaa !5
  %1049 = load i64, ptr %20, align 8, !tbaa !9
  %1050 = sub nsw i64 %1049, 5
  %1051 = getelementptr inbounds float, ptr %1048, i64 %1050
  %1052 = load float, ptr %1051, align 4, !tbaa !11
  store float %1052, ptr %12, align 4, !tbaa !11
  %1053 = load float, ptr %11, align 4, !tbaa !11
  %1054 = load float, ptr %12, align 4, !tbaa !11
  %1055 = fcmp oge float %1053, %1054
  br i1 %1055, label %1056, label %1058

1056:                                             ; preds = %1043
  %1057 = load float, ptr %11, align 4, !tbaa !11
  br label %1060

1058:                                             ; preds = %1043
  %1059 = load float, ptr %12, align 4, !tbaa !11
  br label %1060

1060:                                             ; preds = %1058, %1056
  %1061 = phi float [ %1057, %1056 ], [ %1059, %1058 ]
  %1062 = fpext float %1061 to double
  %1063 = fptrunc double %1062 to float
  store float %1063, ptr %36, align 4, !tbaa !11
  br label %1064

1064:                                             ; preds = %1060, %1024
  %1065 = load float, ptr %42, align 4, !tbaa !11
  store float %1065, ptr %11, align 4, !tbaa !11
  %1066 = load ptr, ptr %6, align 8, !tbaa !5
  %1067 = load i64, ptr %20, align 8, !tbaa !9
  %1068 = sub nsw i64 %1067, 7
  %1069 = getelementptr inbounds float, ptr %1066, i64 %1068
  %1070 = load float, ptr %1069, align 4, !tbaa !11
  %1071 = load ptr, ptr %6, align 8, !tbaa !5
  %1072 = load i64, ptr %20, align 8, !tbaa !9
  %1073 = sub nsw i64 %1072, 5
  %1074 = getelementptr inbounds float, ptr %1071, i64 %1073
  %1075 = load float, ptr %1074, align 4, !tbaa !11
  %1076 = fadd float %1070, %1075
  store float %1076, ptr %12, align 4, !tbaa !11
  %1077 = load float, ptr %11, align 4, !tbaa !11
  %1078 = load float, ptr %12, align 4, !tbaa !11
  %1079 = fcmp oge float %1077, %1078
  br i1 %1079, label %1080, label %1082

1080:                                             ; preds = %1064
  %1081 = load float, ptr %11, align 4, !tbaa !11
  br label %1084

1082:                                             ; preds = %1064
  %1083 = load float, ptr %12, align 4, !tbaa !11
  br label %1084

1084:                                             ; preds = %1082, %1080
  %1085 = phi float [ %1081, %1080 ], [ %1083, %1082 ]
  %1086 = fpext float %1085 to double
  %1087 = fptrunc double %1086 to float
  store float %1087, ptr %42, align 4, !tbaa !11
  %1088 = load float, ptr %35, align 4, !tbaa !11
  store float %1088, ptr %11, align 4, !tbaa !11
  %1089 = load ptr, ptr %6, align 8, !tbaa !5
  %1090 = load i64, ptr %20, align 8, !tbaa !9
  %1091 = sub nsw i64 %1090, 5
  %1092 = getelementptr inbounds float, ptr %1089, i64 %1091
  %1093 = load float, ptr %1092, align 4, !tbaa !11
  store float %1093, ptr %12, align 4, !tbaa !11
  %1094 = load float, ptr %11, align 4, !tbaa !11
  %1095 = load float, ptr %12, align 4, !tbaa !11
  %1096 = fcmp ole float %1094, %1095
  br i1 %1096, label %1097, label %1099

1097:                                             ; preds = %1084
  %1098 = load float, ptr %11, align 4, !tbaa !11
  br label %1101

1099:                                             ; preds = %1084
  %1100 = load float, ptr %12, align 4, !tbaa !11
  br label %1101

1101:                                             ; preds = %1099, %1097
  %1102 = phi float [ %1098, %1097 ], [ %1100, %1099 ]
  %1103 = fpext float %1102 to double
  %1104 = fptrunc double %1103 to float
  store float %1104, ptr %35, align 4, !tbaa !11
  br label %1105

1105:                                             ; preds = %1101
  %1106 = load i64, ptr %20, align 8, !tbaa !9
  %1107 = add nsw i64 %1106, -4
  store i64 %1107, ptr %20, align 8, !tbaa !9
  br label %1013, !llvm.loop !22

1108:                                             ; preds = %1013
  store i64 4, ptr %20, align 8, !tbaa !9
  br label %1109

1109:                                             ; preds = %1108, %1023
  %1110 = load i64, ptr %20, align 8, !tbaa !9
  %1111 = sdiv i64 %1110, 4
  store i64 %1111, ptr %19, align 8, !tbaa !9
  store i64 0, ptr %23, align 8, !tbaa !9
  %1112 = load i64, ptr %21, align 8, !tbaa !9
  %1113 = load i64, ptr %19, align 8, !tbaa !9
  %1114 = sub nsw i64 %1112, %1113
  %1115 = icmp sgt i64 %1114, 1
  br i1 %1115, label %1116, label %1293

1116:                                             ; preds = %1109
  %1117 = load ptr, ptr %6, align 8, !tbaa !5
  %1118 = load i64, ptr %19, align 8, !tbaa !9
  %1119 = shl i64 %1118, 2
  %1120 = sub nsw i64 %1119, 3
  %1121 = getelementptr inbounds float, ptr %1117, i64 %1120
  %1122 = load float, ptr %1121, align 4, !tbaa !11
  store float %1122, ptr %26, align 4, !tbaa !11
  %1123 = load float, ptr %26, align 4, !tbaa !11
  store float %1123, ptr %53, align 4, !tbaa !11
  %1124 = load i64, ptr %19, align 8, !tbaa !9
  store i64 %1124, ptr %37, align 8, !tbaa !9
  %1125 = load i64, ptr %21, align 8, !tbaa !9
  %1126 = shl i64 %1125, 2
  %1127 = sub nsw i64 %1126, 3
  store i64 %1127, ptr %9, align 8, !tbaa !9
  %1128 = load i64, ptr %19, align 8, !tbaa !9
  %1129 = shl i64 %1128, 2
  %1130 = add nsw i64 %1129, 1
  store i64 %1130, ptr %20, align 8, !tbaa !9
  br label %1131

1131:                                             ; preds = %1159, %1116
  %1132 = load i64, ptr %20, align 8, !tbaa !9
  %1133 = load i64, ptr %9, align 8, !tbaa !9
  %1134 = icmp sle i64 %1132, %1133
  br i1 %1134, label %1135, label %1162

1135:                                             ; preds = %1131
  %1136 = load ptr, ptr %6, align 8, !tbaa !5
  %1137 = load i64, ptr %20, align 8, !tbaa !9
  %1138 = getelementptr inbounds float, ptr %1136, i64 %1137
  %1139 = load float, ptr %1138, align 4, !tbaa !11
  %1140 = load float, ptr %26, align 4, !tbaa !11
  %1141 = load float, ptr %26, align 4, !tbaa !11
  %1142 = load ptr, ptr %6, align 8, !tbaa !5
  %1143 = load i64, ptr %20, align 8, !tbaa !9
  %1144 = sub nsw i64 %1143, 2
  %1145 = getelementptr inbounds float, ptr %1142, i64 %1144
  %1146 = load float, ptr %1145, align 4, !tbaa !11
  %1147 = fadd float %1141, %1146
  %1148 = fdiv float %1140, %1147
  %1149 = fmul float %1139, %1148
  store float %1149, ptr %26, align 4, !tbaa !11
  %1150 = load float, ptr %26, align 4, !tbaa !11
  %1151 = load float, ptr %53, align 4, !tbaa !11
  %1152 = fcmp ole float %1150, %1151
  br i1 %1152, label %1153, label %1158

1153:                                             ; preds = %1135
  %1154 = load float, ptr %26, align 4, !tbaa !11
  store float %1154, ptr %53, align 4, !tbaa !11
  %1155 = load i64, ptr %20, align 8, !tbaa !9
  %1156 = add nsw i64 %1155, 3
  %1157 = sdiv i64 %1156, 4
  store i64 %1157, ptr %37, align 8, !tbaa !9
  br label %1158

1158:                                             ; preds = %1153, %1135
  br label %1159

1159:                                             ; preds = %1158
  %1160 = load i64, ptr %20, align 8, !tbaa !9
  %1161 = add nsw i64 %1160, 4
  store i64 %1161, ptr %20, align 8, !tbaa !9
  br label %1131, !llvm.loop !23

1162:                                             ; preds = %1131
  %1163 = load i64, ptr %37, align 8, !tbaa !9
  %1164 = load i64, ptr %19, align 8, !tbaa !9
  %1165 = sub nsw i64 %1163, %1164
  %1166 = shl i64 %1165, 1
  %1167 = load i64, ptr %21, align 8, !tbaa !9
  %1168 = load i64, ptr %37, align 8, !tbaa !9
  %1169 = sub nsw i64 %1167, %1168
  %1170 = icmp slt i64 %1166, %1169
  br i1 %1170, label %1171, label %1292

1171:                                             ; preds = %1162
  %1172 = load float, ptr %53, align 4, !tbaa !11
  %1173 = load ptr, ptr %6, align 8, !tbaa !5
  %1174 = load i64, ptr %21, align 8, !tbaa !9
  %1175 = shl i64 %1174, 2
  %1176 = sub nsw i64 %1175, 3
  %1177 = getelementptr inbounds float, ptr %1173, i64 %1176
  %1178 = load float, ptr %1177, align 4, !tbaa !11
  %1179 = fmul float %1178, 5.000000e-01
  %1180 = fcmp ole float %1172, %1179
  br i1 %1180, label %1181, label %1292

1181:                                             ; preds = %1171
  %1182 = load i64, ptr %19, align 8, !tbaa !9
  %1183 = load i64, ptr %21, align 8, !tbaa !9
  %1184 = add nsw i64 %1182, %1183
  %1185 = shl i64 %1184, 2
  store i64 %1185, ptr %30, align 8, !tbaa !9
  store i64 2, ptr %23, align 8, !tbaa !9
  %1186 = load i64, ptr %19, align 8, !tbaa !9
  %1187 = load i64, ptr %21, align 8, !tbaa !9
  %1188 = add nsw i64 %1186, %1187
  %1189 = sub nsw i64 %1188, 1
  %1190 = shl i64 %1189, 1
  store i64 %1190, ptr %9, align 8, !tbaa !9
  %1191 = load i64, ptr %19, align 8, !tbaa !9
  %1192 = shl i64 %1191, 2
  store i64 %1192, ptr %20, align 8, !tbaa !9
  br label %1193

1193:                                             ; preds = %1288, %1181
  %1194 = load i64, ptr %20, align 8, !tbaa !9
  %1195 = load i64, ptr %9, align 8, !tbaa !9
  %1196 = icmp sle i64 %1194, %1195
  br i1 %1196, label %1197, label %1291

1197:                                             ; preds = %1193
  %1198 = load ptr, ptr %6, align 8, !tbaa !5
  %1199 = load i64, ptr %20, align 8, !tbaa !9
  %1200 = sub nsw i64 %1199, 3
  %1201 = getelementptr inbounds float, ptr %1198, i64 %1200
  %1202 = load float, ptr %1201, align 4, !tbaa !11
  store float %1202, ptr %41, align 4, !tbaa !11
  %1203 = load ptr, ptr %6, align 8, !tbaa !5
  %1204 = load i64, ptr %30, align 8, !tbaa !9
  %1205 = load i64, ptr %20, align 8, !tbaa !9
  %1206 = sub nsw i64 %1204, %1205
  %1207 = sub nsw i64 %1206, 3
  %1208 = getelementptr inbounds float, ptr %1203, i64 %1207
  %1209 = load float, ptr %1208, align 4, !tbaa !11
  %1210 = load ptr, ptr %6, align 8, !tbaa !5
  %1211 = load i64, ptr %20, align 8, !tbaa !9
  %1212 = sub nsw i64 %1211, 3
  %1213 = getelementptr inbounds float, ptr %1210, i64 %1212
  store float %1209, ptr %1213, align 4, !tbaa !11
  %1214 = load float, ptr %41, align 4, !tbaa !11
  %1215 = load ptr, ptr %6, align 8, !tbaa !5
  %1216 = load i64, ptr %30, align 8, !tbaa !9
  %1217 = load i64, ptr %20, align 8, !tbaa !9
  %1218 = sub nsw i64 %1216, %1217
  %1219 = sub nsw i64 %1218, 3
  %1220 = getelementptr inbounds float, ptr %1215, i64 %1219
  store float %1214, ptr %1220, align 4, !tbaa !11
  %1221 = load ptr, ptr %6, align 8, !tbaa !5
  %1222 = load i64, ptr %20, align 8, !tbaa !9
  %1223 = sub nsw i64 %1222, 2
  %1224 = getelementptr inbounds float, ptr %1221, i64 %1223
  %1225 = load float, ptr %1224, align 4, !tbaa !11
  store float %1225, ptr %41, align 4, !tbaa !11
  %1226 = load ptr, ptr %6, align 8, !tbaa !5
  %1227 = load i64, ptr %30, align 8, !tbaa !9
  %1228 = load i64, ptr %20, align 8, !tbaa !9
  %1229 = sub nsw i64 %1227, %1228
  %1230 = sub nsw i64 %1229, 2
  %1231 = getelementptr inbounds float, ptr %1226, i64 %1230
  %1232 = load float, ptr %1231, align 4, !tbaa !11
  %1233 = load ptr, ptr %6, align 8, !tbaa !5
  %1234 = load i64, ptr %20, align 8, !tbaa !9
  %1235 = sub nsw i64 %1234, 2
  %1236 = getelementptr inbounds float, ptr %1233, i64 %1235
  store float %1232, ptr %1236, align 4, !tbaa !11
  %1237 = load float, ptr %41, align 4, !tbaa !11
  %1238 = load ptr, ptr %6, align 8, !tbaa !5
  %1239 = load i64, ptr %30, align 8, !tbaa !9
  %1240 = load i64, ptr %20, align 8, !tbaa !9
  %1241 = sub nsw i64 %1239, %1240
  %1242 = sub nsw i64 %1241, 2
  %1243 = getelementptr inbounds float, ptr %1238, i64 %1242
  store float %1237, ptr %1243, align 4, !tbaa !11
  %1244 = load ptr, ptr %6, align 8, !tbaa !5
  %1245 = load i64, ptr %20, align 8, !tbaa !9
  %1246 = sub nsw i64 %1245, 1
  %1247 = getelementptr inbounds float, ptr %1244, i64 %1246
  %1248 = load float, ptr %1247, align 4, !tbaa !11
  store float %1248, ptr %41, align 4, !tbaa !11
  %1249 = load ptr, ptr %6, align 8, !tbaa !5
  %1250 = load i64, ptr %30, align 8, !tbaa !9
  %1251 = load i64, ptr %20, align 8, !tbaa !9
  %1252 = sub nsw i64 %1250, %1251
  %1253 = sub nsw i64 %1252, 5
  %1254 = getelementptr inbounds float, ptr %1249, i64 %1253
  %1255 = load float, ptr %1254, align 4, !tbaa !11
  %1256 = load ptr, ptr %6, align 8, !tbaa !5
  %1257 = load i64, ptr %20, align 8, !tbaa !9
  %1258 = sub nsw i64 %1257, 1
  %1259 = getelementptr inbounds float, ptr %1256, i64 %1258
  store float %1255, ptr %1259, align 4, !tbaa !11
  %1260 = load float, ptr %41, align 4, !tbaa !11
  %1261 = load ptr, ptr %6, align 8, !tbaa !5
  %1262 = load i64, ptr %30, align 8, !tbaa !9
  %1263 = load i64, ptr %20, align 8, !tbaa !9
  %1264 = sub nsw i64 %1262, %1263
  %1265 = sub nsw i64 %1264, 5
  %1266 = getelementptr inbounds float, ptr %1261, i64 %1265
  store float %1260, ptr %1266, align 4, !tbaa !11
  %1267 = load ptr, ptr %6, align 8, !tbaa !5
  %1268 = load i64, ptr %20, align 8, !tbaa !9
  %1269 = getelementptr inbounds float, ptr %1267, i64 %1268
  %1270 = load float, ptr %1269, align 4, !tbaa !11
  store float %1270, ptr %41, align 4, !tbaa !11
  %1271 = load ptr, ptr %6, align 8, !tbaa !5
  %1272 = load i64, ptr %30, align 8, !tbaa !9
  %1273 = load i64, ptr %20, align 8, !tbaa !9
  %1274 = sub nsw i64 %1272, %1273
  %1275 = sub nsw i64 %1274, 4
  %1276 = getelementptr inbounds float, ptr %1271, i64 %1275
  %1277 = load float, ptr %1276, align 4, !tbaa !11
  %1278 = load ptr, ptr %6, align 8, !tbaa !5
  %1279 = load i64, ptr %20, align 8, !tbaa !9
  %1280 = getelementptr inbounds float, ptr %1278, i64 %1279
  store float %1277, ptr %1280, align 4, !tbaa !11
  %1281 = load float, ptr %41, align 4, !tbaa !11
  %1282 = load ptr, ptr %6, align 8, !tbaa !5
  %1283 = load i64, ptr %30, align 8, !tbaa !9
  %1284 = load i64, ptr %20, align 8, !tbaa !9
  %1285 = sub nsw i64 %1283, %1284
  %1286 = sub nsw i64 %1285, 4
  %1287 = getelementptr inbounds float, ptr %1282, i64 %1286
  store float %1281, ptr %1287, align 4, !tbaa !11
  br label %1288

1288:                                             ; preds = %1197
  %1289 = load i64, ptr %20, align 8, !tbaa !9
  %1290 = add nsw i64 %1289, 4
  store i64 %1290, ptr %20, align 8, !tbaa !9
  br label %1193, !llvm.loop !24

1291:                                             ; preds = %1193
  br label %1292

1292:                                             ; preds = %1291, %1171, %1162
  br label %1293

1293:                                             ; preds = %1292, %1109
  store float 0.000000e+00, ptr %11, align 4, !tbaa !11
  %1294 = load float, ptr %40, align 4, !tbaa !11
  %1295 = fpext float %1294 to double
  %1296 = load float, ptr %40, align 4, !tbaa !11
  %1297 = fpext float %1296 to double
  %1298 = call double @sqrt(double noundef %1297) #5
  %1299 = fmul double %1298, 2.000000e+00
  %1300 = load float, ptr %36, align 4, !tbaa !11
  %1301 = fpext float %1300 to double
  %1302 = call double @sqrt(double noundef %1301) #5
  %1303 = fneg double %1299
  %1304 = call double @llvm.fmuladd.f64(double %1303, double %1302, double %1295)
  %1305 = fptrunc double %1304 to float
  store float %1305, ptr %12, align 4, !tbaa !11
  %1306 = load float, ptr %11, align 4, !tbaa !11
  %1307 = load float, ptr %12, align 4, !tbaa !11
  %1308 = fcmp oge float %1306, %1307
  br i1 %1308, label %1309, label %1311

1309:                                             ; preds = %1293
  %1310 = load float, ptr %11, align 4, !tbaa !11
  br label %1313

1311:                                             ; preds = %1293
  %1312 = load float, ptr %12, align 4, !tbaa !11
  br label %1313

1313:                                             ; preds = %1311, %1309
  %1314 = phi float [ %1310, %1309 ], [ %1312, %1311 ]
  %1315 = fpext float %1314 to double
  %1316 = fneg double %1315
  %1317 = fptrunc double %1316 to float
  store float %1317, ptr %34, align 4, !tbaa !11
  %1318 = load i64, ptr %21, align 8, !tbaa !9
  %1319 = load i64, ptr %19, align 8, !tbaa !9
  %1320 = sub nsw i64 %1318, %1319
  %1321 = add nsw i64 %1320, 1
  %1322 = mul nsw i64 %1321, 30
  store i64 %1322, ptr %33, align 8, !tbaa !9
  %1323 = load i64, ptr %33, align 8, !tbaa !9
  store i64 %1323, ptr %9, align 8, !tbaa !9
  store i64 1, ptr %55, align 8, !tbaa !9
  br label %1324

1324:                                             ; preds = %1509, %1313
  %1325 = load i64, ptr %55, align 8, !tbaa !9
  %1326 = load i64, ptr %9, align 8, !tbaa !9
  %1327 = icmp sle i64 %1325, %1326
  br i1 %1327, label %1328, label %1512

1328:                                             ; preds = %1324
  %1329 = load i64, ptr %19, align 8, !tbaa !9
  %1330 = load i64, ptr %21, align 8, !tbaa !9
  %1331 = icmp sgt i64 %1329, %1330
  br i1 %1331, label %1332, label %1333

1332:                                             ; preds = %1328
  br label %1514

1333:                                             ; preds = %1328
  %1334 = load ptr, ptr %6, align 8, !tbaa !5
  %1335 = getelementptr inbounds float, ptr %1334, i64 1
  %1336 = call i32 @slasq3_(ptr noundef %19, ptr noundef %21, ptr noundef %1335, ptr noundef %23, ptr noundef %34, ptr noundef %50, ptr noundef %48, ptr noundef %42, ptr noundef %47, ptr noundef %39, ptr noundef %38, ptr noundef %32, ptr noundef %52, ptr noundef %45, ptr noundef %46, ptr noundef %22, ptr noundef %24, ptr noundef %25, ptr noundef %15, ptr noundef %28)
  %1337 = load i64, ptr %23, align 8, !tbaa !9
  %1338 = sub nsw i64 1, %1337
  store i64 %1338, ptr %23, align 8, !tbaa !9
  %1339 = load i64, ptr %23, align 8, !tbaa !9
  %1340 = icmp eq i64 %1339, 0
  br i1 %1340, label %1341, label %1508

1341:                                             ; preds = %1333
  %1342 = load i64, ptr %21, align 8, !tbaa !9
  %1343 = load i64, ptr %19, align 8, !tbaa !9
  %1344 = sub nsw i64 %1342, %1343
  %1345 = icmp sge i64 %1344, 3
  br i1 %1345, label %1346, label %1508

1346:                                             ; preds = %1341
  %1347 = load ptr, ptr %6, align 8, !tbaa !5
  %1348 = load i64, ptr %21, align 8, !tbaa !9
  %1349 = mul nsw i64 %1348, 4
  %1350 = getelementptr inbounds float, ptr %1347, i64 %1349
  %1351 = load float, ptr %1350, align 4, !tbaa !11
  %1352 = load float, ptr %31, align 4, !tbaa !11
  %1353 = load float, ptr %42, align 4, !tbaa !11
  %1354 = fmul float %1352, %1353
  %1355 = fcmp ole float %1351, %1354
  br i1 %1355, label %1367, label %1356

1356:                                             ; preds = %1346
  %1357 = load ptr, ptr %6, align 8, !tbaa !5
  %1358 = load i64, ptr %21, align 8, !tbaa !9
  %1359 = shl i64 %1358, 2
  %1360 = sub nsw i64 %1359, 1
  %1361 = getelementptr inbounds float, ptr %1357, i64 %1360
  %1362 = load float, ptr %1361, align 4, !tbaa !11
  %1363 = load float, ptr %31, align 4, !tbaa !11
  %1364 = load float, ptr %50, align 4, !tbaa !11
  %1365 = fmul float %1363, %1364
  %1366 = fcmp ole float %1362, %1365
  br i1 %1366, label %1367, label %1507

1367:                                             ; preds = %1356, %1346
  %1368 = load i64, ptr %19, align 8, !tbaa !9
  %1369 = sub nsw i64 %1368, 1
  store i64 %1369, ptr %44, align 8, !tbaa !9
  %1370 = load ptr, ptr %6, align 8, !tbaa !5
  %1371 = load i64, ptr %19, align 8, !tbaa !9
  %1372 = shl i64 %1371, 2
  %1373 = sub nsw i64 %1372, 3
  %1374 = getelementptr inbounds float, ptr %1370, i64 %1373
  %1375 = load float, ptr %1374, align 4, !tbaa !11
  store float %1375, ptr %42, align 4, !tbaa !11
  %1376 = load ptr, ptr %6, align 8, !tbaa !5
  %1377 = load i64, ptr %19, align 8, !tbaa !9
  %1378 = shl i64 %1377, 2
  %1379 = sub nsw i64 %1378, 1
  %1380 = getelementptr inbounds float, ptr %1376, i64 %1379
  %1381 = load float, ptr %1380, align 4, !tbaa !11
  store float %1381, ptr %35, align 4, !tbaa !11
  %1382 = load ptr, ptr %6, align 8, !tbaa !5
  %1383 = load i64, ptr %19, align 8, !tbaa !9
  %1384 = mul nsw i64 %1383, 4
  %1385 = getelementptr inbounds float, ptr %1382, i64 %1384
  %1386 = load float, ptr %1385, align 4, !tbaa !11
  store float %1386, ptr %56, align 4, !tbaa !11
  %1387 = load i64, ptr %21, align 8, !tbaa !9
  %1388 = sub nsw i64 %1387, 3
  %1389 = shl i64 %1388, 2
  store i64 %1389, ptr %10, align 8, !tbaa !9
  %1390 = load i64, ptr %19, align 8, !tbaa !9
  %1391 = shl i64 %1390, 2
  store i64 %1391, ptr %20, align 8, !tbaa !9
  br label %1392

1392:                                             ; preds = %1490, %1367
  %1393 = load i64, ptr %20, align 8, !tbaa !9
  %1394 = load i64, ptr %10, align 8, !tbaa !9
  %1395 = icmp sle i64 %1393, %1394
  br i1 %1395, label %1396, label %1493

1396:                                             ; preds = %1392
  %1397 = load ptr, ptr %6, align 8, !tbaa !5
  %1398 = load i64, ptr %20, align 8, !tbaa !9
  %1399 = getelementptr inbounds float, ptr %1397, i64 %1398
  %1400 = load float, ptr %1399, align 4, !tbaa !11
  %1401 = load float, ptr %31, align 4, !tbaa !11
  %1402 = load ptr, ptr %6, align 8, !tbaa !5
  %1403 = load i64, ptr %20, align 8, !tbaa !9
  %1404 = sub nsw i64 %1403, 3
  %1405 = getelementptr inbounds float, ptr %1402, i64 %1404
  %1406 = load float, ptr %1405, align 4, !tbaa !11
  %1407 = fmul float %1401, %1406
  %1408 = fcmp ole float %1400, %1407
  br i1 %1408, label %1419, label %1409

1409:                                             ; preds = %1396
  %1410 = load ptr, ptr %6, align 8, !tbaa !5
  %1411 = load i64, ptr %20, align 8, !tbaa !9
  %1412 = sub nsw i64 %1411, 1
  %1413 = getelementptr inbounds float, ptr %1410, i64 %1412
  %1414 = load float, ptr %1413, align 4, !tbaa !11
  %1415 = load float, ptr %31, align 4, !tbaa !11
  %1416 = load float, ptr %50, align 4, !tbaa !11
  %1417 = fmul float %1415, %1416
  %1418 = fcmp ole float %1414, %1417
  br i1 %1418, label %1419, label %1438

1419:                                             ; preds = %1409, %1396
  %1420 = load float, ptr %50, align 4, !tbaa !11
  %1421 = fneg float %1420
  %1422 = load ptr, ptr %6, align 8, !tbaa !5
  %1423 = load i64, ptr %20, align 8, !tbaa !9
  %1424 = sub nsw i64 %1423, 1
  %1425 = getelementptr inbounds float, ptr %1422, i64 %1424
  store float %1421, ptr %1425, align 4, !tbaa !11
  %1426 = load i64, ptr %20, align 8, !tbaa !9
  %1427 = sdiv i64 %1426, 4
  store i64 %1427, ptr %44, align 8, !tbaa !9
  store float 0.000000e+00, ptr %42, align 4, !tbaa !11
  %1428 = load ptr, ptr %6, align 8, !tbaa !5
  %1429 = load i64, ptr %20, align 8, !tbaa !9
  %1430 = add nsw i64 %1429, 3
  %1431 = getelementptr inbounds float, ptr %1428, i64 %1430
  %1432 = load float, ptr %1431, align 4, !tbaa !11
  store float %1432, ptr %35, align 4, !tbaa !11
  %1433 = load ptr, ptr %6, align 8, !tbaa !5
  %1434 = load i64, ptr %20, align 8, !tbaa !9
  %1435 = add nsw i64 %1434, 4
  %1436 = getelementptr inbounds float, ptr %1433, i64 %1435
  %1437 = load float, ptr %1436, align 4, !tbaa !11
  store float %1437, ptr %56, align 4, !tbaa !11
  br label %1489

1438:                                             ; preds = %1409
  %1439 = load float, ptr %42, align 4, !tbaa !11
  store float %1439, ptr %11, align 4, !tbaa !11
  %1440 = load ptr, ptr %6, align 8, !tbaa !5
  %1441 = load i64, ptr %20, align 8, !tbaa !9
  %1442 = add nsw i64 %1441, 1
  %1443 = getelementptr inbounds float, ptr %1440, i64 %1442
  %1444 = load float, ptr %1443, align 4, !tbaa !11
  store float %1444, ptr %12, align 4, !tbaa !11
  %1445 = load float, ptr %11, align 4, !tbaa !11
  %1446 = load float, ptr %12, align 4, !tbaa !11
  %1447 = fcmp oge float %1445, %1446
  br i1 %1447, label %1448, label %1450

1448:                                             ; preds = %1438
  %1449 = load float, ptr %11, align 4, !tbaa !11
  br label %1452

1450:                                             ; preds = %1438
  %1451 = load float, ptr %12, align 4, !tbaa !11
  br label %1452

1452:                                             ; preds = %1450, %1448
  %1453 = phi float [ %1449, %1448 ], [ %1451, %1450 ]
  %1454 = fpext float %1453 to double
  %1455 = fptrunc double %1454 to float
  store float %1455, ptr %42, align 4, !tbaa !11
  %1456 = load float, ptr %35, align 4, !tbaa !11
  store float %1456, ptr %11, align 4, !tbaa !11
  %1457 = load ptr, ptr %6, align 8, !tbaa !5
  %1458 = load i64, ptr %20, align 8, !tbaa !9
  %1459 = sub nsw i64 %1458, 1
  %1460 = getelementptr inbounds float, ptr %1457, i64 %1459
  %1461 = load float, ptr %1460, align 4, !tbaa !11
  store float %1461, ptr %12, align 4, !tbaa !11
  %1462 = load float, ptr %11, align 4, !tbaa !11
  %1463 = load float, ptr %12, align 4, !tbaa !11
  %1464 = fcmp ole float %1462, %1463
  br i1 %1464, label %1465, label %1467

1465:                                             ; preds = %1452
  %1466 = load float, ptr %11, align 4, !tbaa !11
  br label %1469

1467:                                             ; preds = %1452
  %1468 = load float, ptr %12, align 4, !tbaa !11
  br label %1469

1469:                                             ; preds = %1467, %1465
  %1470 = phi float [ %1466, %1465 ], [ %1468, %1467 ]
  %1471 = fpext float %1470 to double
  %1472 = fptrunc double %1471 to float
  store float %1472, ptr %35, align 4, !tbaa !11
  %1473 = load float, ptr %56, align 4, !tbaa !11
  store float %1473, ptr %11, align 4, !tbaa !11
  %1474 = load ptr, ptr %6, align 8, !tbaa !5
  %1475 = load i64, ptr %20, align 8, !tbaa !9
  %1476 = getelementptr inbounds float, ptr %1474, i64 %1475
  %1477 = load float, ptr %1476, align 4, !tbaa !11
  store float %1477, ptr %12, align 4, !tbaa !11
  %1478 = load float, ptr %11, align 4, !tbaa !11
  %1479 = load float, ptr %12, align 4, !tbaa !11
  %1480 = fcmp ole float %1478, %1479
  br i1 %1480, label %1481, label %1483

1481:                                             ; preds = %1469
  %1482 = load float, ptr %11, align 4, !tbaa !11
  br label %1485

1483:                                             ; preds = %1469
  %1484 = load float, ptr %12, align 4, !tbaa !11
  br label %1485

1485:                                             ; preds = %1483, %1481
  %1486 = phi float [ %1482, %1481 ], [ %1484, %1483 ]
  %1487 = fpext float %1486 to double
  %1488 = fptrunc double %1487 to float
  store float %1488, ptr %56, align 4, !tbaa !11
  br label %1489

1489:                                             ; preds = %1485, %1419
  br label %1490

1490:                                             ; preds = %1489
  %1491 = load i64, ptr %20, align 8, !tbaa !9
  %1492 = add nsw i64 %1491, 4
  store i64 %1492, ptr %20, align 8, !tbaa !9
  br label %1392, !llvm.loop !25

1493:                                             ; preds = %1392
  %1494 = load float, ptr %35, align 4, !tbaa !11
  %1495 = load ptr, ptr %6, align 8, !tbaa !5
  %1496 = load i64, ptr %21, align 8, !tbaa !9
  %1497 = shl i64 %1496, 2
  %1498 = sub nsw i64 %1497, 1
  %1499 = getelementptr inbounds float, ptr %1495, i64 %1498
  store float %1494, ptr %1499, align 4, !tbaa !11
  %1500 = load float, ptr %56, align 4, !tbaa !11
  %1501 = load ptr, ptr %6, align 8, !tbaa !5
  %1502 = load i64, ptr %21, align 8, !tbaa !9
  %1503 = mul nsw i64 %1502, 4
  %1504 = getelementptr inbounds float, ptr %1501, i64 %1503
  store float %1500, ptr %1504, align 4, !tbaa !11
  %1505 = load i64, ptr %44, align 8, !tbaa !9
  %1506 = add nsw i64 %1505, 1
  store i64 %1506, ptr %19, align 8, !tbaa !9
  br label %1507

1507:                                             ; preds = %1493, %1356
  br label %1508

1508:                                             ; preds = %1507, %1341, %1333
  br label %1509

1509:                                             ; preds = %1508
  %1510 = load i64, ptr %55, align 8, !tbaa !9
  %1511 = add nsw i64 %1510, 1
  store i64 %1511, ptr %55, align 8, !tbaa !9
  br label %1324, !llvm.loop !26

1512:                                             ; preds = %1324
  %1513 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 2, ptr %1513, align 8, !tbaa !9
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

1514:                                             ; preds = %1332
  br label %1515

1515:                                             ; preds = %1514
  %1516 = load i64, ptr %54, align 8, !tbaa !9
  %1517 = add nsw i64 %1516, 1
  store i64 %1517, ptr %54, align 8, !tbaa !9
  br label %953, !llvm.loop !27

1518:                                             ; preds = %953
  %1519 = load ptr, ptr %7, align 8, !tbaa !5
  store i64 3, ptr %1519, align 8, !tbaa !9
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

1520:                                             ; preds = %960
  %1521 = load ptr, ptr %5, align 8, !tbaa !5
  %1522 = load i64, ptr %1521, align 8, !tbaa !9
  store i64 %1522, ptr %8, align 8, !tbaa !9
  store i64 2, ptr %16, align 8, !tbaa !9
  br label %1523

1523:                                             ; preds = %1537, %1520
  %1524 = load i64, ptr %16, align 8, !tbaa !9
  %1525 = load i64, ptr %8, align 8, !tbaa !9
  %1526 = icmp sle i64 %1524, %1525
  br i1 %1526, label %1527, label %1540

1527:                                             ; preds = %1523
  %1528 = load ptr, ptr %6, align 8, !tbaa !5
  %1529 = load i64, ptr %16, align 8, !tbaa !9
  %1530 = shl i64 %1529, 2
  %1531 = sub nsw i64 %1530, 3
  %1532 = getelementptr inbounds float, ptr %1528, i64 %1531
  %1533 = load float, ptr %1532, align 4, !tbaa !11
  %1534 = load ptr, ptr %6, align 8, !tbaa !5
  %1535 = load i64, ptr %16, align 8, !tbaa !9
  %1536 = getelementptr inbounds float, ptr %1534, i64 %1535
  store float %1533, ptr %1536, align 4, !tbaa !11
  br label %1537

1537:                                             ; preds = %1527
  %1538 = load i64, ptr %16, align 8, !tbaa !9
  %1539 = add nsw i64 %1538, 1
  store i64 %1539, ptr %16, align 8, !tbaa !9
  br label %1523, !llvm.loop !28

1540:                                             ; preds = %1523
  %1541 = load ptr, ptr %5, align 8, !tbaa !5
  %1542 = load ptr, ptr %6, align 8, !tbaa !5
  %1543 = getelementptr inbounds float, ptr %1542, i64 1
  %1544 = call i32 @slasrt_(ptr noundef @.str.3, ptr noundef %1541, ptr noundef %1543, ptr noundef %51)
  store float 0.000000e+00, ptr %14, align 4, !tbaa !11
  %1545 = load ptr, ptr %5, align 8, !tbaa !5
  %1546 = load i64, ptr %1545, align 8, !tbaa !9
  store i64 %1546, ptr %16, align 8, !tbaa !9
  br label %1547

1547:                                             ; preds = %1557, %1540
  %1548 = load i64, ptr %16, align 8, !tbaa !9
  %1549 = icmp sge i64 %1548, 1
  br i1 %1549, label %1550, label %1560

1550:                                             ; preds = %1547
  %1551 = load ptr, ptr %6, align 8, !tbaa !5
  %1552 = load i64, ptr %16, align 8, !tbaa !9
  %1553 = getelementptr inbounds float, ptr %1551, i64 %1552
  %1554 = load float, ptr %1553, align 4, !tbaa !11
  %1555 = load float, ptr %14, align 4, !tbaa !11
  %1556 = fadd float %1555, %1554
  store float %1556, ptr %14, align 4, !tbaa !11
  br label %1557

1557:                                             ; preds = %1550
  %1558 = load i64, ptr %16, align 8, !tbaa !9
  %1559 = add nsw i64 %1558, -1
  store i64 %1559, ptr %16, align 8, !tbaa !9
  br label %1547, !llvm.loop !29

1560:                                             ; preds = %1547
  %1561 = load float, ptr %49, align 4, !tbaa !11
  %1562 = load ptr, ptr %6, align 8, !tbaa !5
  %1563 = load ptr, ptr %5, align 8, !tbaa !5
  %1564 = load i64, ptr %1563, align 8, !tbaa !9
  %1565 = shl i64 %1564, 1
  %1566 = add nsw i64 %1565, 1
  %1567 = getelementptr inbounds float, ptr %1562, i64 %1566
  store float %1561, ptr %1567, align 4, !tbaa !11
  %1568 = load float, ptr %14, align 4, !tbaa !11
  %1569 = load ptr, ptr %6, align 8, !tbaa !5
  %1570 = load ptr, ptr %5, align 8, !tbaa !5
  %1571 = load i64, ptr %1570, align 8, !tbaa !9
  %1572 = shl i64 %1571, 1
  %1573 = add nsw i64 %1572, 2
  %1574 = getelementptr inbounds float, ptr %1569, i64 %1573
  store float %1568, ptr %1574, align 4, !tbaa !11
  %1575 = load i64, ptr %39, align 8, !tbaa !9
  %1576 = sitofp i64 %1575 to float
  %1577 = load ptr, ptr %6, align 8, !tbaa !5
  %1578 = load ptr, ptr %5, align 8, !tbaa !5
  %1579 = load i64, ptr %1578, align 8, !tbaa !9
  %1580 = shl i64 %1579, 1
  %1581 = add nsw i64 %1580, 3
  %1582 = getelementptr inbounds float, ptr %1577, i64 %1581
  store float %1576, ptr %1582, align 4, !tbaa !11
  %1583 = load ptr, ptr %5, align 8, !tbaa !5
  %1584 = load i64, ptr %1583, align 8, !tbaa !9
  store i64 %1584, ptr %8, align 8, !tbaa !9
  %1585 = load i64, ptr %38, align 8, !tbaa !9
  %1586 = sitofp i64 %1585 to float
  %1587 = load i64, ptr %8, align 8, !tbaa !9
  %1588 = load i64, ptr %8, align 8, !tbaa !9
  %1589 = mul nsw i64 %1587, %1588
  %1590 = sitofp i64 %1589 to float
  %1591 = fdiv float %1586, %1590
  %1592 = load ptr, ptr %6, align 8, !tbaa !5
  %1593 = load ptr, ptr %5, align 8, !tbaa !5
  %1594 = load i64, ptr %1593, align 8, !tbaa !9
  %1595 = shl i64 %1594, 1
  %1596 = add nsw i64 %1595, 4
  %1597 = getelementptr inbounds float, ptr %1592, i64 %1596
  store float %1591, ptr %1597, align 4, !tbaa !11
  %1598 = load i64, ptr %47, align 8, !tbaa !9
  %1599 = sitofp i64 %1598 to float
  %1600 = fmul float %1599, 1.000000e+02
  %1601 = load i64, ptr %39, align 8, !tbaa !9
  %1602 = sitofp i64 %1601 to float
  %1603 = fdiv float %1600, %1602
  %1604 = load ptr, ptr %6, align 8, !tbaa !5
  %1605 = load ptr, ptr %5, align 8, !tbaa !5
  %1606 = load i64, ptr %1605, align 8, !tbaa !9
  %1607 = shl i64 %1606, 1
  %1608 = add nsw i64 %1607, 5
  %1609 = getelementptr inbounds float, ptr %1604, i64 %1608
  store float %1603, ptr %1609, align 4, !tbaa !11
  store i32 0, ptr %4, align 4
  store i32 1, ptr %58, align 4
  br label %1610

1610:                                             ; preds = %1560, %1518, %1512, %978, %482, %464, %394, %303, %290, %249, %110, %95, %82, %75
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  %1611 = load i32, ptr %4, align 4
  ret i32 %1611
}

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

declare double @slamch_(ptr noundef) #2

declare i32 @xerbla_(ptr noundef, 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 @slasrt_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @slasq3_(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, 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 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}


; 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
@.str.1 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1

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

33:                                               ; preds = %3
  store i64 -1, ptr %2, align 8, !tbaa !5
  %34 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__1) #5
  br label %611

35:                                               ; preds = %3
  switch i64 %31, label %101 [
    i64 0, label %611
    i64 1, label %36
    i64 2, label %41
  ]

36:                                               ; preds = %35
  %37 = load float, ptr %1, align 4, !tbaa !9
  %38 = fcmp olt float %37, 0.000000e+00
  br i1 %38, label %39, label %611

39:                                               ; preds = %36
  store i64 -201, ptr %2, align 8, !tbaa !5
  %40 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2) #5
  br label %611

41:                                               ; preds = %35
  %42 = getelementptr inbounds i8, ptr %1, i64 4
  %43 = load float, ptr %42, align 4, !tbaa !9
  %44 = fcmp olt float %43, 0.000000e+00
  br i1 %44, label %49, label %45

45:                                               ; preds = %41
  %46 = getelementptr inbounds i8, ptr %1, i64 8
  %47 = load float, ptr %46, align 4, !tbaa !9
  %48 = fcmp olt float %47, 0.000000e+00
  br i1 %48, label %49, label %51

49:                                               ; preds = %45, %41
  store i64 -2, ptr %2, align 8, !tbaa !5
  %50 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2) #5
  br label %611

51:                                               ; preds = %45
  %52 = load float, ptr %1, align 4, !tbaa !9
  %53 = fcmp ogt float %47, %52
  br i1 %53, label %54, label %55

54:                                               ; preds = %51
  store float %52, ptr %46, align 4, !tbaa !9
  store float %47, ptr %1, align 4, !tbaa !9
  br label %55

55:                                               ; preds = %51, %54
  %56 = phi float [ %47, %51 ], [ %52, %54 ]
  %57 = phi float [ %52, %51 ], [ %47, %54 ]
  %58 = fadd float %43, %57
  %59 = fadd float %58, %56
  %60 = getelementptr inbounds i8, ptr %1, i64 16
  store float %59, ptr %60, align 4, !tbaa !9
  %61 = fmul float %30, %56
  %62 = fcmp ogt float %43, %61
  br i1 %62, label %63, label %96

63:                                               ; preds = %55
  %64 = fsub float %57, %56
  %65 = fadd float %43, %64
  %66 = fmul float %65, 5.000000e-01
  %67 = fdiv float %43, %66
  %68 = fmul float %56, %67
  %69 = fcmp ugt float %68, %66
  %70 = fpext float %56 to double
  %71 = fpext float %43 to double
  %72 = fpext float %66 to double
  br i1 %69, label %80, label %73

73:                                               ; preds = %63
  %74 = fdiv float %68, %66
  %75 = fadd float %74, 1.000000e+00
  %76 = fpext float %75 to double
  %77 = tail call double @sqrt(double noundef %76) #5
  %78 = fadd double %77, 1.000000e+00
  %79 = fmul double %78, %72
  br label %86

80:                                               ; preds = %63
  %81 = tail call double @sqrt(double noundef %72) #5
  %82 = fadd float %66, %68
  %83 = fpext float %82 to double
  %84 = tail call double @sqrt(double noundef %83) #5
  %85 = tail call double @llvm.fmuladd.f64(double %81, double %84, double %72)
  br label %86

86:                                               ; preds = %80, %73
  %.sink747 = phi double [ %85, %80 ], [ %79, %73 ]
  %87 = fdiv double %71, %.sink747
  %88 = fmul double %87, %70
  %.0510 = fptrunc double %88 to float
  %89 = load float, ptr %1, align 4, !tbaa !9
  %90 = load float, ptr %42, align 4, !tbaa !9
  %91 = fadd float %90, %.0510
  %92 = fadd float %89, %91
  %93 = fdiv float %89, %92
  %94 = load float, ptr %46, align 4, !tbaa !9
  %95 = fmul float %94, %93
  store float %95, ptr %46, align 4, !tbaa !9
  store float %92, ptr %1, align 4, !tbaa !9
  br label %96

96:                                               ; preds = %86, %55
  %97 = phi float [ %92, %86 ], [ %57, %55 ]
  %98 = phi float [ %95, %86 ], [ %56, %55 ]
  store float %98, ptr %42, align 4, !tbaa !9
  %99 = fadd float %98, %97
  %100 = getelementptr inbounds i8, ptr %1, i64 20
  store float %99, ptr %100, align 4, !tbaa !9
  br label %611

101:                                              ; preds = %35
  %.idx = shl nsw i64 %31, 3
  %102 = getelementptr inbounds i8, ptr %24, i64 %.idx
  store float 0.000000e+00, ptr %102, align 4, !tbaa !9
  %103 = getelementptr i8, ptr %1, i64 4
  %104 = shl nuw i64 %31, 1
  %105 = add i64 %104, -2
  %.not588 = icmp slt i64 %105, 1
  br i1 %.not588, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %101, %120
  %.0511591 = phi i64 [ %125, %120 ], [ 1, %101 ]
  %.0517590 = phi float [ %122, %120 ], [ 0.000000e+00, %101 ]
  %.0519589 = phi float [ %121, %120 ], [ 0.000000e+00, %101 ]
  %106 = phi float [ %124, %120 ], [ 0.000000e+00, %101 ]
  %107 = getelementptr inbounds float, ptr %24, i64 %.0511591
  %108 = load float, ptr %107, align 4, !tbaa !9
  %109 = fcmp olt float %108, 0.000000e+00
  br i1 %109, label %110, label %113

110:                                              ; preds = %.lr.ph
  %111 = sub nuw nsw i64 -200, %.0511591
  store i64 %111, ptr %2, align 8, !tbaa !5
  %112 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2) #5
  br label %611

113:                                              ; preds = %.lr.ph
  %114 = getelementptr float, ptr %1, i64 %.0511591
  %115 = load float, ptr %114, align 4, !tbaa !9
  %116 = fcmp olt float %115, 0.000000e+00
  br i1 %116, label %117, label %120

117:                                              ; preds = %113
  %118 = sub nuw nsw i64 -201, %.0511591
  store i64 %118, ptr %2, align 8, !tbaa !5
  %119 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2) #5
  br label %611

120:                                              ; preds = %113
  %121 = fadd float %.0519589, %108
  %122 = fadd float %.0517590, %115
  %123 = fcmp oge float %106, %108
  %124 = select i1 %123, float %106, float %108
  %125 = add nuw nsw i64 %.0511591, 2
  %.not = icmp sgt i64 %125, %105
  br i1 %.not, label %._crit_edge, label %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %120, %101
  %126 = phi float [ 0.000000e+00, %101 ], [ %124, %120 ]
  %.0519.lcssa = phi float [ 0.000000e+00, %101 ], [ %121, %120 ]
  %.0517.lcssa = phi float [ 0.000000e+00, %101 ], [ %122, %120 ]
  %127 = getelementptr float, ptr %24, i64 %104
  %128 = getelementptr i8, ptr %127, i64 -4
  %129 = load float, ptr %128, align 4, !tbaa !9
  %130 = fcmp olt float %129, 0.000000e+00
  br i1 %130, label %131, label %134

131:                                              ; preds = %._crit_edge
  %132 = sub nsw i64 -199, %104
  store i64 %132, ptr %2, align 8, !tbaa !5
  %133 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2) #5
  br label %611

134:                                              ; preds = %._crit_edge
  %135 = fadd float %.0519.lcssa, %129
  %136 = fcmp oge float %126, %129
  %137 = select i1 %136, float %126, float %129
  store float %137, ptr %16, align 4, !tbaa !9
  %138 = fcmp oeq float %.0517.lcssa, 0.000000e+00
  br i1 %138, label %.preheader, label %161

.preheader:                                       ; preds = %134
  %invariant.gep712 = getelementptr i8, ptr %1, i64 -8
  %.not573714 = icmp slt i64 %31, 2
  br i1 %.not573714, label %._crit_edge717, label %.lr.ph716.preheader

.lr.ph716.preheader:                              ; preds = %.preheader
  %139 = add nsw i64 %31, -1
  %140 = add nsw i64 %31, -2
  %xtraiter781 = and i64 %139, 3
  %141 = icmp ult i64 %140, 3
  br i1 %141, label %._crit_edge717.loopexit.unr-lcssa, label %.lr.ph716.preheader.new

.lr.ph716.preheader.new:                          ; preds = %.lr.ph716.preheader
  %unroll_iter784 = and i64 %139, -4
  br label %.lr.ph716

.lr.ph716:                                        ; preds = %.lr.ph716, %.lr.ph716.preheader.new
  %.1512715 = phi i64 [ 2, %.lr.ph716.preheader.new ], [ %153, %.lr.ph716 ]
  %niter785 = phi i64 [ 0, %.lr.ph716.preheader.new ], [ %niter785.next.3, %.lr.ph716 ]
  %.idx575 = shl i64 %.1512715, 3
  %gep713 = getelementptr i8, ptr %invariant.gep712, i64 %.idx575
  %142 = load float, ptr %gep713, align 4, !tbaa !9
  %143 = getelementptr inbounds float, ptr %24, i64 %.1512715
  store float %142, ptr %143, align 4, !tbaa !9
  %144 = shl i64 %.1512715, 3
  %gep713.1 = getelementptr i8, ptr %1, i64 %144
  %145 = load float, ptr %gep713.1, align 4, !tbaa !9
  %146 = getelementptr float, ptr %1, i64 %.1512715
  store float %145, ptr %146, align 4, !tbaa !9
  %147 = add nuw i64 %.1512715, 2
  %.idx575.2 = shl i64 %147, 3
  %gep713.2 = getelementptr i8, ptr %invariant.gep712, i64 %.idx575.2
  %148 = load float, ptr %gep713.2, align 4, !tbaa !9
  %149 = getelementptr inbounds float, ptr %24, i64 %147
  store float %148, ptr %149, align 4, !tbaa !9
  %150 = add nuw i64 %.1512715, 3
  %.idx575.3 = shl i64 %150, 3
  %gep713.3 = getelementptr i8, ptr %invariant.gep712, i64 %.idx575.3
  %151 = load float, ptr %gep713.3, align 4, !tbaa !9
  %152 = getelementptr inbounds float, ptr %24, i64 %150
  store float %151, ptr %152, align 4, !tbaa !9
  %153 = add nuw i64 %.1512715, 4
  %niter785.next.3 = add i64 %niter785, 4
  %niter785.ncmp.3 = icmp eq i64 %niter785.next.3, %unroll_iter784
  br i1 %niter785.ncmp.3, label %._crit_edge717.loopexit.unr-lcssa, label %.lr.ph716, !llvm.loop !13

._crit_edge717.loopexit.unr-lcssa:                ; preds = %.lr.ph716, %.lr.ph716.preheader
  %.1512715.unr = phi i64 [ 2, %.lr.ph716.preheader ], [ %153, %.lr.ph716 ]
  %lcmp.mod783.not = icmp eq i64 %xtraiter781, 0
  br i1 %lcmp.mod783.not, label %._crit_edge717, label %.lr.ph716.epil

.lr.ph716.epil:                                   ; preds = %._crit_edge717.loopexit.unr-lcssa, %.lr.ph716.epil
  %.1512715.epil = phi i64 [ %156, %.lr.ph716.epil ], [ %.1512715.unr, %._crit_edge717.loopexit.unr-lcssa ]
  %epil.iter782 = phi i64 [ %epil.iter782.next, %.lr.ph716.epil ], [ 0, %._crit_edge717.loopexit.unr-lcssa ]
  %.idx575.epil = shl i64 %.1512715.epil, 3
  %gep713.epil = getelementptr i8, ptr %invariant.gep712, i64 %.idx575.epil
  %154 = load float, ptr %gep713.epil, align 4, !tbaa !9
  %155 = getelementptr inbounds float, ptr %24, i64 %.1512715.epil
  store float %154, ptr %155, align 4, !tbaa !9
  %156 = add nuw i64 %.1512715.epil, 1
  %epil.iter782.next = add i64 %epil.iter782, 1
  %epil.iter782.cmp.not = icmp eq i64 %epil.iter782.next, %xtraiter781
  br i1 %epil.iter782.cmp.not, label %._crit_edge717, label %.lr.ph716.epil, !llvm.loop !14

._crit_edge717:                                   ; preds = %._crit_edge717.loopexit.unr-lcssa, %.lr.ph716.epil, %.preheader
  %157 = call i32 @slasrt_(ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %22) #5
  %158 = load i64, ptr %0, align 8, !tbaa !5
  %.idx574 = shl i64 %158, 3
  %159 = getelementptr i8, ptr %24, i64 %.idx574
  %160 = getelementptr i8, ptr %159, i64 -4
  store float %135, ptr %160, align 4, !tbaa !9
  br label %611

161:                                              ; preds = %134
  %162 = fadd float %.0517.lcssa, %135
  %163 = fcmp oeq float %162, 0.000000e+00
  br i1 %163, label %164, label %166

164:                                              ; preds = %161
  %165 = getelementptr i8, ptr %102, i64 -4
  store float 0.000000e+00, ptr %165, align 4, !tbaa !9
  br label %611

166:                                              ; preds = %161
  store i64 0, ptr %12, align 8, !tbaa !5
  %167 = icmp sgt i64 %104, 1
  br i1 %167, label %.lr.ph597.preheader, label %._crit_edge598

.lr.ph597.preheader:                              ; preds = %166
  %168 = and i64 %105, 2
  %lcmp.mod.not.not = icmp eq i64 %168, 0
  br i1 %lcmp.mod.not.not, label %.lr.ph597.prol, label %.lr.ph597.prol.loopexit

.lr.ph597.prol:                                   ; preds = %.lr.ph597.preheader
  %.idx571.prol = shl i64 %31, 4
  %169 = getelementptr i8, ptr %24, i64 %.idx571.prol
  store float 0.000000e+00, ptr %169, align 4, !tbaa !9
  %170 = getelementptr inbounds float, ptr %24, i64 %104
  %171 = load float, ptr %170, align 4, !tbaa !9
  %172 = getelementptr i8, ptr %169, i64 -4
  store float %171, ptr %172, align 4, !tbaa !9
  %173 = getelementptr i8, ptr %169, i64 -8
  store float 0.000000e+00, ptr %173, align 4, !tbaa !9
  %174 = getelementptr i8, ptr %170, i64 -4
  %175 = load float, ptr %174, align 4, !tbaa !9
  %176 = getelementptr i8, ptr %169, i64 -12
  store float %175, ptr %176, align 4, !tbaa !9
  %177 = add nsw i64 %104, -2
  br label %.lr.ph597.prol.loopexit

.lr.ph597.prol.loopexit:                          ; preds = %.lr.ph597.prol, %.lr.ph597.preheader
  %.2513595.unr = phi i64 [ %104, %.lr.ph597.preheader ], [ %177, %.lr.ph597.prol ]
  %178 = icmp eq i64 %105, 0
  br i1 %178, label %._crit_edge598, label %.lr.ph597

.lr.ph597:                                        ; preds = %.lr.ph597.prol.loopexit, %.lr.ph597
  %.2513595 = phi i64 [ %196, %.lr.ph597 ], [ %.2513595.unr, %.lr.ph597.prol.loopexit ]
  %.idx571 = shl i64 %.2513595, 3
  %179 = getelementptr i8, ptr %24, i64 %.idx571
  store float 0.000000e+00, ptr %179, align 4, !tbaa !9
  %180 = getelementptr inbounds float, ptr %24, i64 %.2513595
  %181 = load float, ptr %180, align 4, !tbaa !9
  %182 = getelementptr i8, ptr %179, i64 -4
  store float %181, ptr %182, align 4, !tbaa !9
  %183 = getelementptr i8, ptr %179, i64 -8
  store float 0.000000e+00, ptr %183, align 4, !tbaa !9
  %184 = getelementptr i8, ptr %180, i64 -4
  %185 = load float, ptr %184, align 4, !tbaa !9
  %186 = getelementptr i8, ptr %179, i64 -12
  store float %185, ptr %186, align 4, !tbaa !9
  %187 = add nsw i64 %.2513595, -2
  %.idx571.1 = shl i64 %187, 3
  %188 = getelementptr i8, ptr %24, i64 %.idx571.1
  store float 0.000000e+00, ptr %188, align 4, !tbaa !9
  %189 = getelementptr inbounds float, ptr %24, i64 %187
  %190 = load float, ptr %189, align 4, !tbaa !9
  %191 = getelementptr i8, ptr %188, i64 -4
  store float %190, ptr %191, align 4, !tbaa !9
  %192 = getelementptr i8, ptr %188, i64 -8
  store float 0.000000e+00, ptr %192, align 4, !tbaa !9
  %193 = getelementptr i8, ptr %189, i64 -4
  %194 = load float, ptr %193, align 4, !tbaa !9
  %195 = getelementptr i8, ptr %188, i64 -12
  store float %194, ptr %195, align 4, !tbaa !9
  %196 = add nsw i64 %.2513595, -4
  %197 = icmp ugt i64 %187, 3
  br i1 %197, label %.lr.ph597, label %._crit_edge598, !llvm.loop !16

._crit_edge598:                                   ; preds = %.lr.ph597.prol.loopexit, %.lr.ph597, %166
  store i64 1, ptr %5, align 8, !tbaa !5
  store i64 %31, ptr %6, align 8, !tbaa !5
  %198 = load float, ptr %1, align 4, !tbaa !9
  %199 = fmul float %198, 1.500000e+00
  %.idx543 = shl i64 %31, 4
  %200 = getelementptr i8, ptr %24, i64 %.idx543
  %201 = getelementptr i8, ptr %200, i64 -12
  %202 = load float, ptr %201, align 4, !tbaa !9
  %203 = fcmp olt float %199, %202
  %204 = shl i64 %31, 2
  br i1 %203, label %205, label %.loopexit581

205:                                              ; preds = %._crit_edge598
  %206 = add i64 %204, 4
  %.not544599 = icmp slt i64 %104, 4
  br i1 %.not544599, label %.loopexit581, label %.lr.ph602.preheader

.lr.ph602.preheader:                              ; preds = %205
  %207 = add nsw i64 %104, -4
  %208 = icmp ult i64 %207, 4
  br i1 %208, label %.loopexit581.loopexit.unr-lcssa, label %.lr.ph602.preheader.new

.lr.ph602.preheader.new:                          ; preds = %.lr.ph602.preheader
  %209 = lshr i64 %207, 2
  %210 = add nuw nsw i64 %209, 1
  %unroll_iter = and i64 %210, 9223372036854775806
  br label %.lr.ph602

.lr.ph602:                                        ; preds = %.lr.ph602, %.lr.ph602.preheader.new
  %.0504600 = phi i64 [ 4, %.lr.ph602.preheader.new ], [ %233, %.lr.ph602 ]
  %niter = phi i64 [ 0, %.lr.ph602.preheader.new ], [ %niter.next.1, %.lr.ph602 ]
  %211 = getelementptr float, ptr %24, i64 %.0504600
  %212 = getelementptr i8, ptr %211, i64 -12
  %213 = load float, ptr %212, align 4, !tbaa !9
  %214 = sub i64 %206, %.0504600
  %215 = getelementptr float, ptr %24, i64 %214
  %216 = getelementptr i8, ptr %215, i64 -12
  %217 = load float, ptr %216, align 4, !tbaa !9
  store float %217, ptr %212, align 4, !tbaa !9
  store float %213, ptr %216, align 4, !tbaa !9
  %218 = getelementptr i8, ptr %211, i64 -4
  %219 = load float, ptr %218, align 4, !tbaa !9
  %220 = getelementptr i8, ptr %215, i64 -20
  %221 = load float, ptr %220, align 4, !tbaa !9
  store float %221, ptr %218, align 4, !tbaa !9
  store float %219, ptr %220, align 4, !tbaa !9
  %222 = getelementptr float, ptr %24, i64 %.0504600
  %223 = getelementptr i8, ptr %222, i64 4
  %224 = load float, ptr %223, align 4, !tbaa !9
  %225 = sub i64 %204, %.0504600
  %226 = getelementptr float, ptr %24, i64 %225
  %227 = getelementptr i8, ptr %226, i64 -12
  %228 = load float, ptr %227, align 4, !tbaa !9
  store float %228, ptr %223, align 4, !tbaa !9
  store float %224, ptr %227, align 4, !tbaa !9
  %229 = getelementptr i8, ptr %222, i64 12
  %230 = load float, ptr %229, align 4, !tbaa !9
  %231 = getelementptr i8, ptr %226, i64 -20
  %232 = load float, ptr %231, align 4, !tbaa !9
  store float %232, ptr %229, align 4, !tbaa !9
  store float %230, ptr %231, align 4, !tbaa !9
  %233 = add nuw nsw i64 %.0504600, 8
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.loopexit581.loopexit.unr-lcssa, label %.lr.ph602, !llvm.loop !17

.loopexit581.loopexit.unr-lcssa:                  ; preds = %.lr.ph602, %.lr.ph602.preheader
  %.0504600.unr = phi i64 [ 4, %.lr.ph602.preheader ], [ %233, %.lr.ph602 ]
  %234 = and i64 %207, 4
  %lcmp.mod768.not.not = icmp eq i64 %234, 0
  br i1 %lcmp.mod768.not.not, label %.lr.ph602.epil, label %.loopexit581.loopexit

.lr.ph602.epil:                                   ; preds = %.loopexit581.loopexit.unr-lcssa
  %235 = getelementptr float, ptr %24, i64 %.0504600.unr
  %236 = getelementptr i8, ptr %235, i64 -12
  %237 = load float, ptr %236, align 4, !tbaa !9
  %238 = sub i64 %206, %.0504600.unr
  %239 = getelementptr float, ptr %24, i64 %238
  %240 = getelementptr i8, ptr %239, i64 -12
  %241 = load float, ptr %240, align 4, !tbaa !9
  store float %241, ptr %236, align 4, !tbaa !9
  store float %237, ptr %240, align 4, !tbaa !9
  %242 = getelementptr i8, ptr %235, i64 -4
  %243 = load float, ptr %242, align 4, !tbaa !9
  %244 = getelementptr i8, ptr %239, i64 -20
  %245 = load float, ptr %244, align 4, !tbaa !9
  store float %245, ptr %242, align 4, !tbaa !9
  store float %243, ptr %244, align 4, !tbaa !9
  br label %.loopexit581.loopexit

.loopexit581.loopexit:                            ; preds = %.loopexit581.loopexit.unr-lcssa, %.lr.ph602.epil
  %.pre = load float, ptr %201, align 4, !tbaa !9
  br label %.loopexit581

.loopexit581:                                     ; preds = %._crit_edge598, %.loopexit581.loopexit, %205
  %246 = phi float [ %.pre, %.loopexit581.loopexit ], [ %202, %205 ], [ %202, %._crit_edge598 ]
  store i64 0, ptr %8, align 8, !tbaa !5
  %247 = add i64 %204, -4
  %invariant.gep = getelementptr i8, ptr %1, i64 -8
  %invariant.gep627 = getelementptr i8, ptr %1, i64 -12
  %.not568603 = icmp slt i64 %247, 4
  br i1 %.not568603, label %._crit_edge608.thread, label %.lr.ph607

._crit_edge608.thread:                            ; preds = %.loopexit581
  %248 = load float, ptr %1, align 4, !tbaa !9
  br label %._crit_edge622.thread

.lr.ph607:                                        ; preds = %.loopexit581, %263
  %.1505605 = phi i64 [ %264, %263 ], [ %247, %.loopexit581 ]
  %.1520604 = phi float [ %.2521, %263 ], [ %246, %.loopexit581 ]
  %249 = getelementptr float, ptr %24, i64 %.1505605
  %250 = getelementptr i8, ptr %249, i64 -4
  %251 = load float, ptr %250, align 4, !tbaa !9
  %252 = fmul float %30, %.1520604
  %253 = fcmp ugt float %251, %252
  br i1 %253, label %257, label %254

254:                                              ; preds = %.lr.ph607
  store float -0.000000e+00, ptr %250, align 4, !tbaa !9
  %255 = getelementptr i8, ptr %249, i64 -12
  %256 = load float, ptr %255, align 4, !tbaa !9
  br label %263

257:                                              ; preds = %.lr.ph607
  %258 = getelementptr i8, ptr %249, i64 -12
  %259 = load float, ptr %258, align 4, !tbaa !9
  %260 = fadd float %.1520604, %251
  %261 = fdiv float %.1520604, %260
  %262 = fmul float %261, %259
  br label %263

263:                                              ; preds = %254, %257
  %.2521 = phi float [ %256, %254 ], [ %262, %257 ]
  %264 = add nsw i64 %.1505605, -4
  %.not568 = icmp slt i64 %.1505605, 8
  br i1 %.not568, label %._crit_edge608, label %.lr.ph607, !llvm.loop !18

._crit_edge608:                                   ; preds = %263
  %265 = load float, ptr %1, align 4, !tbaa !9
  br i1 %.not568603, label %._crit_edge622.thread, label %.lr.ph614

.lr.ph614:                                        ; preds = %._crit_edge608, %291
  %.2506611 = phi i64 [ %292, %291 ], [ 4, %._crit_edge608 ]
  %.3522610 = phi float [ %.4523, %291 ], [ %265, %._crit_edge608 ]
  %gep = getelementptr float, ptr %invariant.gep, i64 %.2506611
  %266 = load float, ptr %gep, align 4, !tbaa !9
  %267 = fadd float %.3522610, %266
  %268 = getelementptr float, ptr %24, i64 %.2506611
  %269 = getelementptr i8, ptr %268, i64 -8
  store float %267, ptr %269, align 4, !tbaa !9
  %270 = fmul float %30, %.3522610
  %271 = fcmp ugt float %266, %270
  br i1 %271, label %275, label %272

272:                                              ; preds = %.lr.ph614
  store float %.3522610, ptr %269, align 4, !tbaa !9
  store <2 x float> <float -0.000000e+00, float 0.000000e+00>, ptr %gep, align 4, !tbaa !9
  %273 = getelementptr float, ptr %1, i64 %.2506611
  %274 = load float, ptr %273, align 4, !tbaa !9
  br label %291

275:                                              ; preds = %.lr.ph614
  %276 = getelementptr float, ptr %1, i64 %.2506611
  %277 = load float, ptr %276, align 4, !tbaa !9
  %278 = fmul float %277, %28
  %279 = fcmp olt float %278, %267
  %280 = fmul float %267, %28
  %281 = fcmp olt float %280, %277
  %or.cond = and i1 %281, %279
  br i1 %or.cond, label %282, label %286

282:                                              ; preds = %275
  %283 = fdiv float %277, %267
  %284 = fmul float %266, %283
  store float %284, ptr %268, align 4, !tbaa !9
  %285 = fmul float %.3522610, %283
  br label %291

286:                                              ; preds = %275
  %287 = fdiv float %266, %267
  %288 = fmul float %287, %277
  store float %288, ptr %268, align 4, !tbaa !9
  %289 = fdiv float %.3522610, %267
  %290 = fmul float %289, %277
  br label %291

291:                                              ; preds = %282, %286, %272
  %.4523 = phi float [ %274, %272 ], [ %285, %282 ], [ %290, %286 ]
  %292 = add nuw nsw i64 %.2506611, 4
  %.not569 = icmp sgt i64 %292, %247
  br i1 %.not569, label %._crit_edge615, label %.lr.ph614, !llvm.loop !19

._crit_edge622.thread:                            ; preds = %._crit_edge608, %._crit_edge608.thread
  %.ph = phi float [ %248, %._crit_edge608.thread ], [ %265, %._crit_edge608 ]
  %gep628732 = getelementptr float, ptr %invariant.gep627, i64 %204
  store float %.ph, ptr %gep628732, align 4, !tbaa !9
  br label %._crit_edge608.1.thread

._crit_edge615:                                   ; preds = %291
  %gep628 = getelementptr float, ptr %invariant.gep627, i64 %204
  store float %.4523, ptr %gep628, align 4, !tbaa !9
  %293 = add i64 %204, -3
  br i1 %.not568603, label %._crit_edge608.1.thread, label %.lr.ph607.1

.lr.ph607.1:                                      ; preds = %._crit_edge615, %308
  %.1505605.1 = phi i64 [ %309, %308 ], [ %293, %._crit_edge615 ]
  %.1520604.1 = phi float [ %.2521.1, %308 ], [ %.4523, %._crit_edge615 ]
  %294 = getelementptr float, ptr %24, i64 %.1505605.1
  %295 = getelementptr i8, ptr %294, i64 -4
  %296 = load float, ptr %295, align 4, !tbaa !9
  %297 = fmul float %30, %.1520604.1
  %298 = fcmp ugt float %296, %297
  br i1 %298, label %302, label %299

299:                                              ; preds = %.lr.ph607.1
  store float -0.000000e+00, ptr %295, align 4, !tbaa !9
  %300 = getelementptr i8, ptr %294, i64 -12
  %301 = load float, ptr %300, align 4, !tbaa !9
  br label %308

302:                                              ; preds = %.lr.ph607.1
  %303 = getelementptr i8, ptr %294, i64 -12
  %304 = load float, ptr %303, align 4, !tbaa !9
  %305 = fadd float %.1520604.1, %296
  %306 = fdiv float %.1520604.1, %305
  %307 = fmul float %306, %304
  br label %308

308:                                              ; preds = %302, %299
  %.2521.1 = phi float [ %301, %299 ], [ %307, %302 ]
  %309 = add nsw i64 %.1505605.1, -4
  %.not568.1 = icmp slt i64 %.1505605.1, 9
  br i1 %.not568.1, label %._crit_edge608.1, label %.lr.ph607.1, !llvm.loop !18

._crit_edge608.1.thread:                          ; preds = %._crit_edge622.thread, %._crit_edge615
  %310 = load float, ptr %103, align 4, !tbaa !9
  br label %._crit_edge615.1.thread

._crit_edge608.1:                                 ; preds = %308
  %311 = load float, ptr %103, align 4, !tbaa !9
  br i1 %.not568603, label %._crit_edge615.1.thread, label %.lr.ph614.1

.lr.ph614.1:                                      ; preds = %._crit_edge608.1, %338
  %.2506611.1 = phi i64 [ %339, %338 ], [ 5, %._crit_edge608.1 ]
  %.3522610.1 = phi float [ %.4523.1, %338 ], [ %311, %._crit_edge608.1 ]
  %gep.1 = getelementptr float, ptr %invariant.gep, i64 %.2506611.1
  %312 = load float, ptr %gep.1, align 4, !tbaa !9
  %313 = fadd float %.3522610.1, %312
  %314 = getelementptr float, ptr %24, i64 %.2506611.1
  %315 = getelementptr i8, ptr %314, i64 -8
  %316 = getelementptr i8, ptr %314, i64 -16
  store float %313, ptr %316, align 4, !tbaa !9
  %317 = fmul float %30, %.3522610.1
  %318 = fcmp ugt float %312, %317
  br i1 %318, label %322, label %319

319:                                              ; preds = %.lr.ph614.1
  store float %.3522610.1, ptr %316, align 4, !tbaa !9
  store <2 x float> <float 0.000000e+00, float -0.000000e+00>, ptr %315, align 4, !tbaa !9
  %320 = getelementptr float, ptr %1, i64 %.2506611.1
  %321 = load float, ptr %320, align 4, !tbaa !9
  br label %338

322:                                              ; preds = %.lr.ph614.1
  %323 = getelementptr float, ptr %1, i64 %.2506611.1
  %324 = load float, ptr %323, align 4, !tbaa !9
  %325 = fmul float %324, %28
  %326 = fcmp olt float %325, %313
  %327 = fmul float %313, %28
  %328 = fcmp olt float %327, %324
  %or.cond.1 = and i1 %328, %326
  br i1 %or.cond.1, label %334, label %329

329:                                              ; preds = %322
  %330 = fdiv float %312, %313
  %331 = fmul float %330, %324
  store float %331, ptr %315, align 4, !tbaa !9
  %332 = fdiv float %.3522610.1, %313
  %333 = fmul float %332, %324
  br label %338

334:                                              ; preds = %322
  %335 = fdiv float %324, %313
  %336 = fmul float %312, %335
  store float %336, ptr %315, align 4, !tbaa !9
  %337 = fmul float %.3522610.1, %335
  br label %338

338:                                              ; preds = %334, %329, %319
  %.4523.1 = phi float [ %321, %319 ], [ %337, %334 ], [ %333, %329 ]
  %339 = add nuw nsw i64 %.2506611.1, 4
  %.not569.1 = icmp sgt i64 %339, %293
  br i1 %.not569.1, label %._crit_edge615.1, label %.lr.ph614.1, !llvm.loop !19

._crit_edge615.1.thread:                          ; preds = %._crit_edge608.1.thread, %._crit_edge608.1
  %.3522.lcssa.1.ph = phi float [ %310, %._crit_edge608.1.thread ], [ %311, %._crit_edge608.1 ]
  %340 = getelementptr float, ptr %invariant.gep627, i64 %204
  %gep628.1736 = getelementptr i8, ptr %340, i64 -4
  store float %.3522.lcssa.1.ph, ptr %gep628.1736, align 4, !tbaa !9
  %341 = load float, ptr %1, align 4, !tbaa !9
  br label %.lr.ph697

._crit_edge615.1:                                 ; preds = %338
  %342 = getelementptr float, ptr %invariant.gep627, i64 %204
  %gep628.1 = getelementptr i8, ptr %342, i64 -4
  store float %.4523.1, ptr %gep628.1, align 4, !tbaa !9
  %343 = load float, ptr %1, align 4, !tbaa !9
  %.not570618.1 = icmp slt i64 %204, 8
  br i1 %.not570618.1, label %.lr.ph697, label %.lr.ph621.1.preheader

.lr.ph621.1.preheader:                            ; preds = %._crit_edge615.1
  %344 = add nsw i64 %204, -8
  %345 = lshr exact i64 %344, 2
  %346 = add nuw nsw i64 %345, 1
  %xtraiter769 = and i64 %346, 3
  %347 = icmp ult i64 %344, 12
  br i1 %347, label %.lr.ph697.loopexit.unr-lcssa, label %.lr.ph621.1.preheader.new

.lr.ph621.1.preheader.new:                        ; preds = %.lr.ph621.1.preheader
  %unroll_iter772 = and i64 %346, 9223372036854775804
  %invariant.gep803 = getelementptr inbounds i8, ptr %24, i64 16
  %invariant.gep805 = getelementptr inbounds i8, ptr %24, i64 32
  %invariant.gep807 = getelementptr inbounds i8, ptr %24, i64 48
  br label %.lr.ph621.1

.lr.ph621.1:                                      ; preds = %.lr.ph621.1, %.lr.ph621.1.preheader.new
  %.3507619.1 = phi i64 [ 5, %.lr.ph621.1.preheader.new ], [ %362, %.lr.ph621.1 ]
  %348 = phi float [ %343, %.lr.ph621.1.preheader.new ], [ %361, %.lr.ph621.1 ]
  %niter773 = phi i64 [ 0, %.lr.ph621.1.preheader.new ], [ %niter773.next.3, %.lr.ph621.1 ]
  %349 = getelementptr inbounds float, ptr %24, i64 %.3507619.1
  %350 = load float, ptr %349, align 4, !tbaa !9
  %351 = fcmp oge float %348, %350
  %352 = select i1 %351, float %348, float %350
  %gep804 = getelementptr inbounds float, ptr %invariant.gep803, i64 %.3507619.1
  %353 = load float, ptr %gep804, align 4, !tbaa !9
  %354 = fcmp oge float %352, %353
  %355 = select i1 %354, float %352, float %353
  %gep806 = getelementptr inbounds float, ptr %invariant.gep805, i64 %.3507619.1
  %356 = load float, ptr %gep806, align 4, !tbaa !9
  %357 = fcmp oge float %355, %356
  %358 = select i1 %357, float %355, float %356
  %gep808 = getelementptr inbounds float, ptr %invariant.gep807, i64 %.3507619.1
  %359 = load float, ptr %gep808, align 4, !tbaa !9
  %360 = fcmp oge float %358, %359
  %361 = select i1 %360, float %358, float %359
  %362 = add nuw nsw i64 %.3507619.1, 16
  %niter773.next.3 = add nuw i64 %niter773, 4
  %niter773.ncmp.3 = icmp eq i64 %niter773.next.3, %unroll_iter772
  br i1 %niter773.ncmp.3, label %.lr.ph697.loopexit.unr-lcssa, label %.lr.ph621.1, !llvm.loop !20

.lr.ph697.loopexit.unr-lcssa:                     ; preds = %.lr.ph621.1, %.lr.ph621.1.preheader
  %.lcssa761.ph = phi float [ poison, %.lr.ph621.1.preheader ], [ %361, %.lr.ph621.1 ]
  %.3507619.1.unr = phi i64 [ 5, %.lr.ph621.1.preheader ], [ %362, %.lr.ph621.1 ]
  %.unr = phi float [ %343, %.lr.ph621.1.preheader ], [ %361, %.lr.ph621.1 ]
  %lcmp.mod770.not = icmp eq i64 %xtraiter769, 0
  br i1 %lcmp.mod770.not, label %.lr.ph697, label %.lr.ph621.1.epil

.lr.ph621.1.epil:                                 ; preds = %.lr.ph697.loopexit.unr-lcssa, %.lr.ph621.1.epil
  %.3507619.1.epil = phi i64 [ %368, %.lr.ph621.1.epil ], [ %.3507619.1.unr, %.lr.ph697.loopexit.unr-lcssa ]
  %363 = phi float [ %367, %.lr.ph621.1.epil ], [ %.unr, %.lr.ph697.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph621.1.epil ], [ 0, %.lr.ph697.loopexit.unr-lcssa ]
  %364 = getelementptr inbounds float, ptr %24, i64 %.3507619.1.epil
  %365 = load float, ptr %364, align 4, !tbaa !9
  %366 = fcmp oge float %363, %365
  %367 = select i1 %366, float %363, float %365
  %368 = add nuw nsw i64 %.3507619.1.epil, 4
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter769
  br i1 %epil.iter.cmp.not, label %.lr.ph697, label %.lr.ph621.1.epil, !llvm.loop !21

.lr.ph697:                                        ; preds = %.lr.ph697.loopexit.unr-lcssa, %.lr.ph621.1.epil, %._crit_edge615.1, %._crit_edge615.1.thread
  %.lcssa635.1 = phi float [ %343, %._crit_edge615.1 ], [ %341, %._crit_edge615.1.thread ], [ %.lcssa761.ph, %.lr.ph697.loopexit.unr-lcssa ], [ %367, %.lr.ph621.1.epil ]
  store i64 0, ptr %8, align 8, !tbaa !5
  store float %.lcssa635.1, ptr %16, align 4, !tbaa !9
  store i64 0, ptr %23, align 8, !tbaa !5
  store float 0.000000e+00, ptr %17, align 4, !tbaa !9
  store float 0.000000e+00, ptr %18, align 4, !tbaa !9
  store float 0.000000e+00, ptr %7, align 4, !tbaa !9
  store float 0.000000e+00, ptr %9, align 4, !tbaa !9
  store float 0.000000e+00, ptr %10, align 4, !tbaa !9
  store float 0.000000e+00, ptr %4, align 4, !tbaa !9
  store float 0.000000e+00, ptr %11, align 4, !tbaa !9
  store i64 2, ptr %15, align 8, !tbaa !5
  store i64 0, ptr %19, align 8, !tbaa !5
  store i64 %105, ptr %14, align 8, !tbaa !5
  %invariant.gep690 = getelementptr i8, ptr %1, i64 -16
  %369 = add nuw i64 %31, 1
  %invariant.gep809 = getelementptr i8, ptr %24, i64 -12
  br label %370

370:                                              ; preds = %.lr.ph697, %541
  %371 = phi i64 [ %31, %.lr.ph697 ], [ %470, %541 ]
  %.0489695 = phi i64 [ 1, %.lr.ph697 ], [ %542, %541 ]
  %372 = icmp slt i64 %371, 1
  br i1 %372, label %543, label %373

373:                                              ; preds = %370
  store float 0.000000e+00, ptr %20, align 4, !tbaa !9
  %374 = load i64, ptr %0, align 8, !tbaa !5
  %375 = icmp eq i64 %371, %374
  br i1 %375, label %.thread, label %376

.thread:                                          ; preds = %373
  store float 0.000000e+00, ptr %21, align 4, !tbaa !9
  br label %._crit_edge728

376:                                              ; preds = %373
  %.idx546 = shl i64 %371, 4
  %gep687 = getelementptr i8, ptr %invariant.gep, i64 %.idx546
  %377 = load float, ptr %gep687, align 4, !tbaa !9
  %378 = fneg float %377
  store float %378, ptr %21, align 4, !tbaa !9
  %379 = fcmp ogt float %377, 0.000000e+00
  br i1 %379, label %380, label %._crit_edge728

380:                                              ; preds = %376
  store i64 1, ptr %2, align 8, !tbaa !5
  br label %611

._crit_edge728:                                   ; preds = %376, %.thread
  %.idx548.pre-phi = shl i64 %371, 4
  %gep691 = getelementptr i8, ptr %invariant.gep690, i64 %.idx548.pre-phi
  %381 = load float, ptr %gep691, align 4, !tbaa !9
  store float %381, ptr %16, align 4, !tbaa !9
  %382 = shl i64 %371, 2
  %383 = icmp sgt i64 %382, 7
  br i1 %383, label %.lr.ph643, label %._crit_edge644

.lr.ph643:                                        ; preds = %._crit_edge728, %399
  %.0495641 = phi float [ %.1496, %399 ], [ %381, %._crit_edge728 ]
  %.0499640 = phi float [ %.1500, %399 ], [ 0.000000e+00, %._crit_edge728 ]
  %.4508638 = phi i64 [ %405, %399 ], [ %382, %._crit_edge728 ]
  %384 = phi float [ %404, %399 ], [ %381, %._crit_edge728 ]
  %385 = getelementptr float, ptr %24, i64 %.4508638
  %386 = getelementptr i8, ptr %385, i64 -20
  %387 = load float, ptr %386, align 4, !tbaa !9
  %388 = fcmp ugt float %387, 0.000000e+00
  br i1 %388, label %389, label %._crit_edge644

389:                                              ; preds = %.lr.ph643
  %390 = fmul float %.0499640, 4.000000e+00
  %391 = fcmp ult float %.0495641, %390
  br i1 %391, label %399, label %392

392:                                              ; preds = %389
  %393 = getelementptr i8, ptr %385, i64 -12
  %394 = load float, ptr %393, align 4, !tbaa !9
  %395 = fcmp ole float %.0495641, %394
  %396 = select i1 %395, float %.0495641, float %394
  %397 = fcmp oge float %.0499640, %387
  %398 = select i1 %397, float %.0499640, float %387
  br label %399

399:                                              ; preds = %392, %389
  %.1500 = phi float [ %398, %392 ], [ %.0499640, %389 ]
  %.1496 = phi float [ %396, %392 ], [ %.0495641, %389 ]
  %400 = getelementptr i8, ptr %385, i64 -28
  %401 = load float, ptr %400, align 4, !tbaa !9
  %402 = fadd float %387, %401
  %403 = fcmp oge float %384, %402
  %404 = select i1 %403, float %384, float %402
  store float %404, ptr %16, align 4, !tbaa !9
  %405 = add nsw i64 %.4508638, -4
  %406 = icmp sgt i64 %.4508638, 11
  br i1 %406, label %.lr.ph643, label %._crit_edge644, !llvm.loop !22

._crit_edge644:                                   ; preds = %.lr.ph643, %399, %._crit_edge728
  %.0499.lcssa = phi float [ 0.000000e+00, %._crit_edge728 ], [ %.1500, %399 ], [ %.0499640, %.lr.ph643 ]
  %.0495.lcssa = phi float [ %381, %._crit_edge728 ], [ %.1496, %399 ], [ %.0495641, %.lr.ph643 ]
  %.5509 = phi i64 [ 4, %._crit_edge728 ], [ 4, %399 ], [ %.4508638, %.lr.ph643 ]
  %407 = lshr i64 %.5509, 2
  store i64 %407, ptr %5, align 8, !tbaa !5
  store i64 0, ptr %8, align 8, !tbaa !5
  %408 = sub nsw i64 %371, %407
  %409 = icmp sgt i64 %408, 1
  br i1 %409, label %410, label %.loopexit

410:                                              ; preds = %._crit_edge644
  %411 = and i64 %.5509, 9223372036854775804
  %gep693 = getelementptr float, ptr %invariant.gep690, i64 %411
  %412 = load float, ptr %gep693, align 4, !tbaa !9
  %413 = add nsw i64 %382, -3
  %.not549652.not = icmp slt i64 %411, %413
  br i1 %.not549652.not, label %.lr.ph658.preheader, label %._crit_edge659

.lr.ph658.preheader:                              ; preds = %410
  %414 = or disjoint i64 %411, 1
  br label %.lr.ph658

.lr.ph658:                                        ; preds = %.lr.ph658.preheader, %.lr.ph658
  %.0490656 = phi float [ %.1491, %.lr.ph658 ], [ %412, %.lr.ph658.preheader ]
  %.0497655 = phi i64 [ %.1498, %.lr.ph658 ], [ %407, %.lr.ph658.preheader ]
  %.0503654 = phi float [ %421, %.lr.ph658 ], [ %412, %.lr.ph658.preheader ]
  %.6653 = phi i64 [ %425, %.lr.ph658 ], [ %414, %.lr.ph658.preheader ]
  %415 = getelementptr inbounds float, ptr %24, i64 %.6653
  %416 = load float, ptr %415, align 4, !tbaa !9
  %417 = getelementptr i8, ptr %415, i64 -8
  %418 = load float, ptr %417, align 4, !tbaa !9
  %419 = fadd float %.0503654, %418
  %420 = fdiv float %.0503654, %419
  %421 = fmul float %416, %420
  %422 = fcmp ugt float %421, %.0490656
  %423 = add nuw nsw i64 %.6653, 3
  %424 = lshr i64 %423, 2
  %.1498 = select i1 %422, i64 %.0497655, i64 %424
  %.1491 = select i1 %422, float %.0490656, float %421
  %425 = add nuw nsw i64 %.6653, 4
  %.not549 = icmp sgt i64 %425, %413
  br i1 %.not549, label %._crit_edge659.loopexit, label %.lr.ph658, !llvm.loop !23

._crit_edge659.loopexit:                          ; preds = %.lr.ph658
  %.pre727 = sub nsw i64 %371, %.1498
  br label %._crit_edge659

._crit_edge659:                                   ; preds = %._crit_edge659.loopexit, %410
  %.pre-phi = phi i64 [ %.pre727, %._crit_edge659.loopexit ], [ %408, %410 ]
  %.0497.lcssa = phi i64 [ %.1498, %._crit_edge659.loopexit ], [ %407, %410 ]
  %.0490.lcssa = phi float [ %.1491, %._crit_edge659.loopexit ], [ %412, %410 ]
  %426 = sub nsw i64 %.0497.lcssa, %407
  %427 = shl nsw i64 %426, 1
  %428 = icmp sge i64 %427, %.pre-phi
  %429 = fmul float %381, 5.000000e-01
  %430 = fcmp ugt float %.0490.lcssa, %429
  %or.cond579 = select i1 %428, i1 true, i1 %430
  br i1 %or.cond579, label %.loopexit, label %431

431:                                              ; preds = %._crit_edge659
  %432 = add nuw nsw i64 %407, %371
  %433 = shl i64 %432, 2
  store i64 2, ptr %8, align 8, !tbaa !5
  %434 = shl nuw i64 %432, 1
  %435 = add i64 %434, -2
  %.not551662 = icmp sgt i64 %411, %435
  br i1 %.not551662, label %.loopexit, label %.lr.ph665

.lr.ph665:                                        ; preds = %431, %.lr.ph665
  %.7663 = phi i64 [ %454, %.lr.ph665 ], [ %411, %431 ]
  %436 = getelementptr float, ptr %24, i64 %.7663
  %437 = getelementptr i8, ptr %436, i64 -12
  %438 = load float, ptr %437, align 4, !tbaa !9
  %439 = sub nsw i64 %433, %.7663
  %440 = getelementptr float, ptr %24, i64 %439
  %441 = getelementptr i8, ptr %440, i64 -12
  %442 = load float, ptr %441, align 4, !tbaa !9
  store float %442, ptr %437, align 4, !tbaa !9
  store float %438, ptr %441, align 4, !tbaa !9
  %443 = getelementptr i8, ptr %436, i64 -8
  %444 = load float, ptr %443, align 4, !tbaa !9
  %445 = getelementptr i8, ptr %440, i64 -8
  %446 = load float, ptr %445, align 4, !tbaa !9
  store float %446, ptr %443, align 4, !tbaa !9
  store float %444, ptr %445, align 4, !tbaa !9
  %447 = getelementptr i8, ptr %436, i64 -4
  %448 = load float, ptr %447, align 4, !tbaa !9
  %449 = getelementptr i8, ptr %440, i64 -20
  %450 = load float, ptr %449, align 4, !tbaa !9
  store float %450, ptr %447, align 4, !tbaa !9
  store float %448, ptr %449, align 4, !tbaa !9
  %451 = load float, ptr %436, align 4, !tbaa !9
  %452 = getelementptr i8, ptr %440, i64 -16
  %453 = load float, ptr %452, align 4, !tbaa !9
  store float %453, ptr %436, align 4, !tbaa !9
  store float %451, ptr %452, align 4, !tbaa !9
  %454 = add nuw nsw i64 %.7663, 4
  %.not551 = icmp sgt i64 %454, %435
  br i1 %.not551, label %.loopexit, label %.lr.ph665, !llvm.loop !24

.loopexit:                                        ; preds = %.lr.ph665, %431, %._crit_edge659, %._crit_edge644
  %455 = fpext float %.0495.lcssa to double
  %456 = call double @sqrt(double noundef %455) #5
  %457 = fpext float %.0499.lcssa to double
  %458 = call double @sqrt(double noundef %457) #5
  %459 = fmul double %456, -2.000000e+00
  %460 = call double @llvm.fmuladd.f64(double %459, double %458, double %455)
  %461 = fptrunc double %460 to float
  %462 = fcmp ole float %461, 0.000000e+00
  %.neg = fneg float %461
  %463 = select i1 %462, float -0.000000e+00, float %.neg
  store float %463, ptr %13, align 4, !tbaa !9
  %464 = load i64, ptr %6, align 8, !tbaa !5
  %465 = load i64, ptr %5, align 8, !tbaa !5
  %466 = sub nsw i64 %464, %465
  %467 = mul i64 %466, 30
  %468 = add i64 %467, 30
  %.not552680 = icmp slt i64 %468, 1
  br i1 %.not552680, label %._crit_edge684, label %.lr.ph683

.lr.ph683:                                        ; preds = %.loopexit, %539
  %.0488681 = phi i64 [ %540, %539 ], [ 1, %.loopexit ]
  %469 = load i64, ptr %5, align 8, !tbaa !5
  %470 = load i64, ptr %6, align 8, !tbaa !5
  %471 = icmp sgt i64 %469, %470
  br i1 %471, label %541, label %472

472:                                              ; preds = %.lr.ph683
  %473 = call i32 @slasq3_(ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef nonnull %1, ptr noundef nonnull %8, ptr noundef nonnull %13, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef nonnull %16, ptr noundef nonnull %19, ptr noundef nonnull %15, ptr noundef nonnull %14, ptr noundef nonnull %12, ptr noundef nonnull %23, ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef nonnull %7, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %4, ptr noundef nonnull %11) #5
  %474 = load i64, ptr %8, align 8, !tbaa !5
  %475 = sub nsw i64 1, %474
  store i64 %475, ptr %8, align 8, !tbaa !5
  %476 = icmp eq i64 %474, 1
  br i1 %476, label %477, label %539

477:                                              ; preds = %472
  %478 = load i64, ptr %6, align 8, !tbaa !5
  %479 = load i64, ptr %5, align 8, !tbaa !5
  %480 = sub nsw i64 %478, %479
  %481 = icmp sgt i64 %480, 2
  br i1 %481, label %482, label %539

482:                                              ; preds = %477
  %.idx553 = shl nsw i64 %478, 4
  %483 = getelementptr inbounds i8, ptr %24, i64 %.idx553
  %484 = load float, ptr %483, align 4, !tbaa !9
  %485 = load float, ptr %16, align 4, !tbaa !9
  %486 = fmul float %30, %485
  %487 = fcmp ugt float %484, %486
  br i1 %487, label %488, label %494

488:                                              ; preds = %482
  %489 = getelementptr i8, ptr %483, i64 -4
  %490 = load float, ptr %489, align 4, !tbaa !9
  %491 = load float, ptr %21, align 4, !tbaa !9
  %492 = fmul float %30, %491
  %493 = fcmp ugt float %490, %492
  br i1 %493, label %539, label %494

494:                                              ; preds = %488, %482
  %495 = add nsw i64 %479, -1
  %.idx555 = shl i64 %479, 4
  %gep810 = getelementptr i8, ptr %invariant.gep809, i64 %.idx555
  %496 = load float, ptr %gep810, align 4, !tbaa !9
  store float %496, ptr %16, align 4, !tbaa !9
  %497 = shl i64 %479, 2
  %gep679 = getelementptr float, ptr %invariant.gep, i64 %497
  %498 = load <2 x float>, ptr %gep679, align 4, !tbaa !9
  %499 = shl i64 %478, 2
  %500 = add i64 %499, -12
  %.not557667 = icmp sgt i64 %497, %500
  br i1 %.not557667, label %._crit_edge674, label %.lr.ph673

.lr.ph673:                                        ; preds = %494
  %501 = load float, ptr %21, align 4
  %502 = fmul float %30, %501
  %503 = fneg float %501
  br label %504

504:                                              ; preds = %.lr.ph673, %532
  %.0492670 = phi i64 [ %495, %.lr.ph673 ], [ %.1493, %532 ]
  %.8668 = phi i64 [ %497, %.lr.ph673 ], [ %535, %532 ]
  %505 = phi float [ %496, %.lr.ph673 ], [ %533, %532 ]
  %506 = phi <2 x float> [ %498, %.lr.ph673 ], [ %534, %532 ]
  %507 = getelementptr inbounds float, ptr %24, i64 %.8668
  %508 = load float, ptr %507, align 4, !tbaa !9
  %509 = getelementptr i8, ptr %507, i64 -12
  %510 = load float, ptr %509, align 4, !tbaa !9
  %511 = fmul float %30, %510
  %512 = fcmp ugt float %508, %511
  br i1 %512, label %513, label %517

513:                                              ; preds = %504
  %514 = getelementptr i8, ptr %507, i64 -4
  %515 = load float, ptr %514, align 4, !tbaa !9
  %516 = fcmp ugt float %515, %502
  br i1 %516, label %523, label %517

517:                                              ; preds = %513, %504
  %518 = getelementptr i8, ptr %507, i64 -4
  store float %503, ptr %518, align 4, !tbaa !9
  %519 = ashr exact i64 %.8668, 2
  store float 0.000000e+00, ptr %16, align 4, !tbaa !9
  %520 = or disjoint i64 %.8668, 3
  %521 = getelementptr inbounds float, ptr %24, i64 %520
  %522 = load <2 x float>, ptr %521, align 4, !tbaa !9
  br label %532

523:                                              ; preds = %513
  %524 = getelementptr float, ptr %1, i64 %.8668
  %525 = load float, ptr %524, align 4, !tbaa !9
  %526 = fcmp oge float %505, %525
  %527 = select i1 %526, float %505, float %525
  store float %527, ptr %16, align 4, !tbaa !9
  %528 = insertelement <2 x float> poison, float %515, i64 0
  %529 = insertelement <2 x float> %528, float %508, i64 1
  %530 = fcmp ole <2 x float> %506, %529
  %531 = select <2 x i1> %530, <2 x float> %506, <2 x float> %529
  br label %532

532:                                              ; preds = %517, %523
  %533 = phi float [ 0.000000e+00, %517 ], [ %527, %523 ]
  %.1493 = phi i64 [ %519, %517 ], [ %.0492670, %523 ]
  %534 = phi <2 x float> [ %522, %517 ], [ %531, %523 ]
  %535 = add nsw i64 %.8668, 4
  %.not557 = icmp sgt i64 %535, %500
  br i1 %.not557, label %._crit_edge674, label %504, !llvm.loop !25

._crit_edge674:                                   ; preds = %532, %494
  %.0492.lcssa = phi i64 [ %495, %494 ], [ %.1493, %532 ]
  %536 = phi <2 x float> [ %498, %494 ], [ %534, %532 ]
  %537 = getelementptr i8, ptr %483, i64 -4
  store <2 x float> %536, ptr %537, align 4, !tbaa !9
  %538 = add nsw i64 %.0492.lcssa, 1
  store i64 %538, ptr %5, align 8, !tbaa !5
  br label %539

539:                                              ; preds = %472, %477, %._crit_edge674, %488
  %540 = add nuw nsw i64 %.0488681, 1
  %.not552.not = icmp slt i64 %.0488681, %468
  br i1 %.not552.not, label %.lr.ph683, label %._crit_edge684, !llvm.loop !26

._crit_edge684:                                   ; preds = %.loopexit, %539
  store i64 2, ptr %2, align 8, !tbaa !5
  br label %611

541:                                              ; preds = %.lr.ph683
  %542 = add nuw i64 %.0489695, 1
  %exitcond = icmp eq i64 %.0489695, %369
  br i1 %exitcond, label %._crit_edge698, label %370, !llvm.loop !27

._crit_edge698:                                   ; preds = %541
  store i64 3, ptr %2, align 8, !tbaa !5
  br label %611

543:                                              ; preds = %370
  %544 = load i64, ptr %0, align 8, !tbaa !5
  %.not560701 = icmp slt i64 %544, 2
  br i1 %.not560701, label %._crit_edge705, label %.lr.ph704.preheader

.lr.ph704.preheader:                              ; preds = %543
  %545 = add nsw i64 %544, -1
  %546 = add nsw i64 %544, -2
  %xtraiter774 = and i64 %545, 3
  %547 = icmp ult i64 %546, 3
  br i1 %547, label %._crit_edge705.loopexit.unr-lcssa, label %.lr.ph704.preheader.new

.lr.ph704.preheader.new:                          ; preds = %.lr.ph704.preheader
  %unroll_iter777 = and i64 %545, -4
  br label %.lr.ph704

.lr.ph704:                                        ; preds = %.lr.ph704, %.lr.ph704.preheader.new
  %.4515702 = phi i64 [ 2, %.lr.ph704.preheader.new ], [ %559, %.lr.ph704 ]
  %niter778 = phi i64 [ 0, %.lr.ph704.preheader.new ], [ %niter778.next.3, %.lr.ph704 ]
  %.idx566 = shl i64 %.4515702, 4
  %gep700 = getelementptr i8, ptr %invariant.gep690, i64 %.idx566
  %548 = load float, ptr %gep700, align 4, !tbaa !9
  %549 = getelementptr inbounds float, ptr %24, i64 %.4515702
  store float %548, ptr %549, align 4, !tbaa !9
  %550 = shl i64 %.4515702, 4
  %gep700.1 = getelementptr i8, ptr %1, i64 %550
  %551 = load float, ptr %gep700.1, align 4, !tbaa !9
  %552 = getelementptr float, ptr %1, i64 %.4515702
  store float %551, ptr %552, align 4, !tbaa !9
  %553 = add nuw i64 %.4515702, 2
  %.idx566.2 = shl i64 %553, 4
  %gep700.2 = getelementptr i8, ptr %invariant.gep690, i64 %.idx566.2
  %554 = load float, ptr %gep700.2, align 4, !tbaa !9
  %555 = getelementptr inbounds float, ptr %24, i64 %553
  store float %554, ptr %555, align 4, !tbaa !9
  %556 = add nuw i64 %.4515702, 3
  %.idx566.3 = shl i64 %556, 4
  %gep700.3 = getelementptr i8, ptr %invariant.gep690, i64 %.idx566.3
  %557 = load float, ptr %gep700.3, align 4, !tbaa !9
  %558 = getelementptr inbounds float, ptr %24, i64 %556
  store float %557, ptr %558, align 4, !tbaa !9
  %559 = add nuw i64 %.4515702, 4
  %niter778.next.3 = add i64 %niter778, 4
  %niter778.ncmp.3 = icmp eq i64 %niter778.next.3, %unroll_iter777
  br i1 %niter778.ncmp.3, label %._crit_edge705.loopexit.unr-lcssa, label %.lr.ph704, !llvm.loop !28

._crit_edge705.loopexit.unr-lcssa:                ; preds = %.lr.ph704, %.lr.ph704.preheader
  %.4515702.unr = phi i64 [ 2, %.lr.ph704.preheader ], [ %559, %.lr.ph704 ]
  %lcmp.mod776.not = icmp eq i64 %xtraiter774, 0
  br i1 %lcmp.mod776.not, label %._crit_edge705, label %.lr.ph704.epil

.lr.ph704.epil:                                   ; preds = %._crit_edge705.loopexit.unr-lcssa, %.lr.ph704.epil
  %.4515702.epil = phi i64 [ %562, %.lr.ph704.epil ], [ %.4515702.unr, %._crit_edge705.loopexit.unr-lcssa ]
  %epil.iter775 = phi i64 [ %epil.iter775.next, %.lr.ph704.epil ], [ 0, %._crit_edge705.loopexit.unr-lcssa ]
  %.idx566.epil = shl i64 %.4515702.epil, 4
  %gep700.epil = getelementptr i8, ptr %invariant.gep690, i64 %.idx566.epil
  %560 = load float, ptr %gep700.epil, align 4, !tbaa !9
  %561 = getelementptr inbounds float, ptr %24, i64 %.4515702.epil
  store float %560, ptr %561, align 4, !tbaa !9
  %562 = add nuw i64 %.4515702.epil, 1
  %epil.iter775.next = add i64 %epil.iter775, 1
  %epil.iter775.cmp.not = icmp eq i64 %epil.iter775.next, %xtraiter774
  br i1 %epil.iter775.cmp.not, label %._crit_edge705, label %.lr.ph704.epil, !llvm.loop !29

._crit_edge705:                                   ; preds = %._crit_edge705.loopexit.unr-lcssa, %.lr.ph704.epil, %543
  %563 = call i32 @slasrt_(ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %22) #5
  %564 = load i64, ptr %0, align 8, !tbaa !5
  %565 = icmp sgt i64 %564, 0
  br i1 %565, label %.lr.ph709.preheader, label %._crit_edge710

.lr.ph709.preheader:                              ; preds = %._crit_edge705
  %xtraiter779 = and i64 %564, 7
  %lcmp.mod780.not = icmp eq i64 %xtraiter779, 0
  br i1 %lcmp.mod780.not, label %.lr.ph709.prol.loopexit, label %.lr.ph709.prol

.lr.ph709.prol:                                   ; preds = %.lr.ph709.preheader, %.lr.ph709.prol
  %.5516707.prol = phi i64 [ %569, %.lr.ph709.prol ], [ %564, %.lr.ph709.preheader ]
  %.1518706.prol = phi float [ %568, %.lr.ph709.prol ], [ 0.000000e+00, %.lr.ph709.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph709.prol ], [ 0, %.lr.ph709.preheader ]
  %566 = getelementptr inbounds float, ptr %24, i64 %.5516707.prol
  %567 = load float, ptr %566, align 4, !tbaa !9
  %568 = fadd float %.1518706.prol, %567
  %569 = add nsw i64 %.5516707.prol, -1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter779
  br i1 %prol.iter.cmp.not, label %.lr.ph709.prol.loopexit, label %.lr.ph709.prol, !llvm.loop !30

.lr.ph709.prol.loopexit:                          ; preds = %.lr.ph709.prol, %.lr.ph709.preheader
  %.5516707.unr = phi i64 [ %564, %.lr.ph709.preheader ], [ %569, %.lr.ph709.prol ]
  %.1518706.unr = phi float [ 0.000000e+00, %.lr.ph709.preheader ], [ %568, %.lr.ph709.prol ]
  %.lcssa.unr = phi float [ poison, %.lr.ph709.preheader ], [ %568, %.lr.ph709.prol ]
  %570 = icmp ult i64 %564, 8
  br i1 %570, label %._crit_edge710, label %.lr.ph709.preheader.new

.lr.ph709.preheader.new:                          ; preds = %.lr.ph709.prol.loopexit
  %invariant.gep811 = getelementptr i8, ptr %24, i64 -4
  %invariant.gep813 = getelementptr i8, ptr %24, i64 -8
  %invariant.gep815 = getelementptr i8, ptr %24, i64 -12
  %invariant.gep817 = getelementptr i8, ptr %24, i64 -16
  %invariant.gep819 = getelementptr i8, ptr %24, i64 -20
  %invariant.gep821 = getelementptr i8, ptr %24, i64 -24
  br label %.lr.ph709

.lr.ph709:                                        ; preds = %.lr.ph709, %.lr.ph709.preheader.new
  %.5516707 = phi i64 [ %.5516707.unr, %.lr.ph709.preheader.new ], [ %590, %.lr.ph709 ]
  %.1518706 = phi float [ %.1518706.unr, %.lr.ph709.preheader.new ], [ %589, %.lr.ph709 ]
  %571 = getelementptr inbounds float, ptr %24, i64 %.5516707
  %572 = load float, ptr %571, align 4, !tbaa !9
  %573 = fadd float %.1518706, %572
  %gep812 = getelementptr float, ptr %invariant.gep811, i64 %.5516707
  %574 = load float, ptr %gep812, align 4, !tbaa !9
  %575 = fadd float %573, %574
  %gep814 = getelementptr float, ptr %invariant.gep813, i64 %.5516707
  %576 = load float, ptr %gep814, align 4, !tbaa !9
  %577 = fadd float %575, %576
  %gep816 = getelementptr float, ptr %invariant.gep815, i64 %.5516707
  %578 = load float, ptr %gep816, align 4, !tbaa !9
  %579 = fadd float %577, %578
  %gep818 = getelementptr float, ptr %invariant.gep817, i64 %.5516707
  %580 = load float, ptr %gep818, align 4, !tbaa !9
  %581 = fadd float %579, %580
  %gep820 = getelementptr float, ptr %invariant.gep819, i64 %.5516707
  %582 = load float, ptr %gep820, align 4, !tbaa !9
  %583 = fadd float %581, %582
  %gep822 = getelementptr float, ptr %invariant.gep821, i64 %.5516707
  %584 = load float, ptr %gep822, align 4, !tbaa !9
  %585 = fadd float %583, %584
  %586 = add nsw i64 %.5516707, -7
  %587 = getelementptr inbounds float, ptr %24, i64 %586
  %588 = load float, ptr %587, align 4, !tbaa !9
  %589 = fadd float %585, %588
  %590 = add nsw i64 %.5516707, -8
  %591 = icmp ugt i64 %586, 1
  br i1 %591, label %.lr.ph709, label %._crit_edge710, !llvm.loop !31

._crit_edge710:                                   ; preds = %.lr.ph709.prol.loopexit, %.lr.ph709, %._crit_edge705
  %.1518.lcssa = phi float [ 0.000000e+00, %._crit_edge705 ], [ %.lcssa.unr, %.lr.ph709.prol.loopexit ], [ %589, %.lr.ph709 ]
  %.idx561 = shl i64 %564, 3
  %592 = getelementptr i8, ptr %1, i64 %.idx561
  store float %162, ptr %592, align 4, !tbaa !9
  %593 = getelementptr i8, ptr %24, i64 %.idx561
  %594 = getelementptr i8, ptr %593, i64 8
  store float %.1518.lcssa, ptr %594, align 4, !tbaa !9
  %595 = load i64, ptr %15, align 8, !tbaa !5
  %596 = sitofp i64 %595 to float
  %597 = getelementptr i8, ptr %593, i64 12
  store float %596, ptr %597, align 4, !tbaa !9
  %598 = load i64, ptr %14, align 8, !tbaa !5
  %599 = sitofp i64 %598 to float
  %600 = mul nsw i64 %564, %564
  %601 = uitofp nneg i64 %600 to float
  %602 = getelementptr i8, ptr %593, i64 16
  %603 = load i64, ptr %19, align 8, !tbaa !5
  %604 = sitofp i64 %603 to float
  %605 = fmul float %604, 1.000000e+02
  %606 = insertelement <2 x float> poison, float %599, i64 0
  %607 = insertelement <2 x float> %606, float %605, i64 1
  %608 = insertelement <2 x float> poison, float %601, i64 0
  %609 = insertelement <2 x float> %608, float %596, i64 1
  %610 = fdiv <2 x float> %607, %609
  store <2 x float> %610, ptr %602, align 4, !tbaa !9
  br label %611

611:                                              ; preds = %35, %36, %39, %._crit_edge710, %._crit_edge698, %._crit_edge684, %380, %164, %._crit_edge717, %131, %117, %110, %96, %49, %33
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #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 @slamch_(ptr noundef) local_unnamed_addr #2

declare i32 @xerbla_(ptr noundef, 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 @slasrt_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @slasq3_(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, 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 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.unroll.disable"}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !15}
!30 = distinct !{!30, !15}
!31 = distinct !{!31, !12}


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