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

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

; Function Attrs: nounwind uwtable
define dso_local void @slasq4_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13) #0 {
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca i32, align 4
  store ptr %0, ptr %15, align 8, !tbaa !5
  store ptr %1, ptr %16, align 8, !tbaa !5
  store ptr %2, ptr %17, align 8, !tbaa !5
  store ptr %3, ptr %18, align 8, !tbaa !5
  store ptr %4, ptr %19, align 8, !tbaa !5
  store ptr %5, ptr %20, align 8, !tbaa !5
  store ptr %6, ptr %21, align 8, !tbaa !5
  store ptr %7, ptr %22, align 8, !tbaa !5
  store ptr %8, ptr %23, align 8, !tbaa !5
  store ptr %9, ptr %24, align 8, !tbaa !5
  store ptr %10, ptr %25, align 8, !tbaa !5
  store ptr %11, ptr %26, align 8, !tbaa !5
  store ptr %12, ptr %27, align 8, !tbaa !5
  store ptr %13, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  %43 = load ptr, ptr %17, align 8, !tbaa !5
  %44 = getelementptr inbounds float, ptr %43, i32 -1
  store ptr %44, ptr %17, align 8, !tbaa !5
  %45 = load ptr, ptr %20, align 8, !tbaa !5
  %46 = load float, ptr %45, align 4, !tbaa !9
  %47 = fcmp ole float %46, 0.000000e+00
  br i1 %47, label %48, label %54

48:                                               ; preds = %14
  %49 = load ptr, ptr %20, align 8, !tbaa !5
  %50 = load float, ptr %49, align 4, !tbaa !9
  %51 = fneg float %50
  %52 = load ptr, ptr %26, align 8, !tbaa !5
  store float %51, ptr %52, align 4, !tbaa !9
  %53 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -1, ptr %53, align 4, !tbaa !11
  store i32 1, ptr %42, align 4
  br label %1115

54:                                               ; preds = %14
  %55 = load ptr, ptr %16, align 8, !tbaa !5
  %56 = load i32, ptr %55, align 4, !tbaa !11
  %57 = shl i32 %56, 2
  %58 = load ptr, ptr %18, align 8, !tbaa !5
  %59 = load i32, ptr %58, align 4, !tbaa !11
  %60 = add nsw i32 %57, %59
  store i32 %60, ptr %37, align 4, !tbaa !11
  %61 = load ptr, ptr %19, align 8, !tbaa !5
  %62 = load i32, ptr %61, align 4, !tbaa !11
  %63 = load ptr, ptr %16, align 8, !tbaa !5
  %64 = load i32, ptr %63, align 4, !tbaa !11
  %65 = icmp eq i32 %62, %64
  br i1 %65, label %66, label %664

66:                                               ; preds = %54
  %67 = load ptr, ptr %20, align 8, !tbaa !5
  %68 = load float, ptr %67, align 4, !tbaa !9
  %69 = load ptr, ptr %23, align 8, !tbaa !5
  %70 = load float, ptr %69, align 4, !tbaa !9
  %71 = fcmp oeq float %68, %70
  br i1 %71, label %78, label %72

72:                                               ; preds = %66
  %73 = load ptr, ptr %20, align 8, !tbaa !5
  %74 = load float, ptr %73, align 4, !tbaa !9
  %75 = load ptr, ptr %24, align 8, !tbaa !5
  %76 = load float, ptr %75, align 4, !tbaa !9
  %77 = fcmp oeq float %74, %76
  br i1 %77, label %78, label %454

78:                                               ; preds = %72, %66
  %79 = load ptr, ptr %17, align 8, !tbaa !5
  %80 = load i32, ptr %37, align 4, !tbaa !11
  %81 = sub nsw i32 %80, 3
  %82 = sext i32 %81 to i64
  %83 = getelementptr inbounds float, ptr %79, i64 %82
  %84 = load float, ptr %83, align 4, !tbaa !9
  %85 = fpext float %84 to double
  %86 = call double @sqrt(double noundef %85) #4
  %87 = load ptr, ptr %17, align 8, !tbaa !5
  %88 = load i32, ptr %37, align 4, !tbaa !11
  %89 = sub nsw i32 %88, 5
  %90 = sext i32 %89 to i64
  %91 = getelementptr inbounds float, ptr %87, i64 %90
  %92 = load float, ptr %91, align 4, !tbaa !9
  %93 = fpext float %92 to double
  %94 = call double @sqrt(double noundef %93) #4
  %95 = fmul double %86, %94
  %96 = fptrunc double %95 to float
  store float %96, ptr %34, align 4, !tbaa !9
  %97 = load ptr, ptr %17, align 8, !tbaa !5
  %98 = load i32, ptr %37, align 4, !tbaa !11
  %99 = sub nsw i32 %98, 7
  %100 = sext i32 %99 to i64
  %101 = getelementptr inbounds float, ptr %97, i64 %100
  %102 = load float, ptr %101, align 4, !tbaa !9
  %103 = fpext float %102 to double
  %104 = call double @sqrt(double noundef %103) #4
  %105 = load ptr, ptr %17, align 8, !tbaa !5
  %106 = load i32, ptr %37, align 4, !tbaa !11
  %107 = sub nsw i32 %106, 9
  %108 = sext i32 %107 to i64
  %109 = getelementptr inbounds float, ptr %105, i64 %108
  %110 = load float, ptr %109, align 4, !tbaa !9
  %111 = fpext float %110 to double
  %112 = call double @sqrt(double noundef %111) #4
  %113 = fmul double %104, %112
  %114 = fptrunc double %113 to float
  store float %114, ptr %35, align 4, !tbaa !9
  %115 = load ptr, ptr %17, align 8, !tbaa !5
  %116 = load i32, ptr %37, align 4, !tbaa !11
  %117 = sub nsw i32 %116, 7
  %118 = sext i32 %117 to i64
  %119 = getelementptr inbounds float, ptr %115, i64 %118
  %120 = load float, ptr %119, align 4, !tbaa !9
  %121 = load ptr, ptr %17, align 8, !tbaa !5
  %122 = load i32, ptr %37, align 4, !tbaa !11
  %123 = sub nsw i32 %122, 5
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds float, ptr %121, i64 %124
  %126 = load float, ptr %125, align 4, !tbaa !9
  %127 = fadd float %120, %126
  store float %127, ptr %33, align 4, !tbaa !9
  %128 = load ptr, ptr %20, align 8, !tbaa !5
  %129 = load float, ptr %128, align 4, !tbaa !9
  %130 = load ptr, ptr %23, align 8, !tbaa !5
  %131 = load float, ptr %130, align 4, !tbaa !9
  %132 = fcmp oeq float %129, %131
  br i1 %132, label %133, label %251

133:                                              ; preds = %78
  %134 = load ptr, ptr %21, align 8, !tbaa !5
  %135 = load float, ptr %134, align 4, !tbaa !9
  %136 = load ptr, ptr %24, align 8, !tbaa !5
  %137 = load float, ptr %136, align 4, !tbaa !9
  %138 = fcmp oeq float %135, %137
  br i1 %138, label %139, label %251

139:                                              ; preds = %133
  %140 = load ptr, ptr %22, align 8, !tbaa !5
  %141 = load float, ptr %140, align 4, !tbaa !9
  %142 = load float, ptr %33, align 4, !tbaa !9
  %143 = fsub float %141, %142
  %144 = load ptr, ptr %22, align 8, !tbaa !5
  %145 = load float, ptr %144, align 4, !tbaa !9
  %146 = fneg float %145
  %147 = call float @llvm.fmuladd.f32(float %146, float 2.500000e-01, float %143)
  store float %147, ptr %41, align 4, !tbaa !9
  %148 = load float, ptr %41, align 4, !tbaa !9
  %149 = fcmp ogt float %148, 0.000000e+00
  br i1 %149, label %150, label %165

150:                                              ; preds = %139
  %151 = load float, ptr %41, align 4, !tbaa !9
  %152 = load float, ptr %35, align 4, !tbaa !9
  %153 = fcmp ogt float %151, %152
  br i1 %153, label %154, label %165

154:                                              ; preds = %150
  %155 = load float, ptr %33, align 4, !tbaa !9
  %156 = load ptr, ptr %23, align 8, !tbaa !5
  %157 = load float, ptr %156, align 4, !tbaa !9
  %158 = fsub float %155, %157
  %159 = load float, ptr %35, align 4, !tbaa !9
  %160 = load float, ptr %41, align 4, !tbaa !9
  %161 = fdiv float %159, %160
  %162 = load float, ptr %35, align 4, !tbaa !9
  %163 = fneg float %161
  %164 = call float @llvm.fmuladd.f32(float %163, float %162, float %158)
  store float %164, ptr %40, align 4, !tbaa !9
  br label %174

165:                                              ; preds = %150, %139
  %166 = load float, ptr %33, align 4, !tbaa !9
  %167 = load ptr, ptr %23, align 8, !tbaa !5
  %168 = load float, ptr %167, align 4, !tbaa !9
  %169 = fsub float %166, %168
  %170 = load float, ptr %34, align 4, !tbaa !9
  %171 = load float, ptr %35, align 4, !tbaa !9
  %172 = fadd float %170, %171
  %173 = fsub float %169, %172
  store float %173, ptr %40, align 4, !tbaa !9
  br label %174

174:                                              ; preds = %165, %154
  %175 = load float, ptr %40, align 4, !tbaa !9
  %176 = fcmp ogt float %175, 0.000000e+00
  br i1 %176, label %177, label %203

177:                                              ; preds = %174
  %178 = load float, ptr %40, align 4, !tbaa !9
  %179 = load float, ptr %34, align 4, !tbaa !9
  %180 = fcmp ogt float %178, %179
  br i1 %180, label %181, label %203

181:                                              ; preds = %177
  %182 = load ptr, ptr %23, align 8, !tbaa !5
  %183 = load float, ptr %182, align 4, !tbaa !9
  %184 = load float, ptr %34, align 4, !tbaa !9
  %185 = load float, ptr %40, align 4, !tbaa !9
  %186 = fdiv float %184, %185
  %187 = load float, ptr %34, align 4, !tbaa !9
  %188 = fneg float %186
  %189 = call float @llvm.fmuladd.f32(float %188, float %187, float %183)
  store float %189, ptr %30, align 4, !tbaa !9
  %190 = load ptr, ptr %20, align 8, !tbaa !5
  %191 = load float, ptr %190, align 4, !tbaa !9
  %192 = fmul float %191, 5.000000e-01
  store float %192, ptr %31, align 4, !tbaa !9
  %193 = load float, ptr %30, align 4, !tbaa !9
  %194 = load float, ptr %31, align 4, !tbaa !9
  %195 = fcmp oge float %193, %194
  br i1 %195, label %196, label %198

196:                                              ; preds = %181
  %197 = load float, ptr %30, align 4, !tbaa !9
  br label %200

198:                                              ; preds = %181
  %199 = load float, ptr %31, align 4, !tbaa !9
  br label %200

200:                                              ; preds = %198, %196
  %201 = phi float [ %197, %196 ], [ %199, %198 ]
  store float %201, ptr %32, align 4, !tbaa !9
  %202 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -2, ptr %202, align 4, !tbaa !11
  br label %250

203:                                              ; preds = %177, %174
  store float 0.000000e+00, ptr %32, align 4, !tbaa !9
  %204 = load ptr, ptr %23, align 8, !tbaa !5
  %205 = load float, ptr %204, align 4, !tbaa !9
  %206 = load float, ptr %34, align 4, !tbaa !9
  %207 = fcmp ogt float %205, %206
  br i1 %207, label %208, label %213

208:                                              ; preds = %203
  %209 = load ptr, ptr %23, align 8, !tbaa !5
  %210 = load float, ptr %209, align 4, !tbaa !9
  %211 = load float, ptr %34, align 4, !tbaa !9
  %212 = fsub float %210, %211
  store float %212, ptr %32, align 4, !tbaa !9
  br label %213

213:                                              ; preds = %208, %203
  %214 = load float, ptr %33, align 4, !tbaa !9
  %215 = load float, ptr %34, align 4, !tbaa !9
  %216 = load float, ptr %35, align 4, !tbaa !9
  %217 = fadd float %215, %216
  %218 = fcmp ogt float %214, %217
  br i1 %218, label %219, label %235

219:                                              ; preds = %213
  %220 = load float, ptr %32, align 4, !tbaa !9
  store float %220, ptr %30, align 4, !tbaa !9
  %221 = load float, ptr %33, align 4, !tbaa !9
  %222 = load float, ptr %34, align 4, !tbaa !9
  %223 = load float, ptr %35, align 4, !tbaa !9
  %224 = fadd float %222, %223
  %225 = fsub float %221, %224
  store float %225, ptr %31, align 4, !tbaa !9
  %226 = load float, ptr %30, align 4, !tbaa !9
  %227 = load float, ptr %31, align 4, !tbaa !9
  %228 = fcmp ole float %226, %227
  br i1 %228, label %229, label %231

229:                                              ; preds = %219
  %230 = load float, ptr %30, align 4, !tbaa !9
  br label %233

231:                                              ; preds = %219
  %232 = load float, ptr %31, align 4, !tbaa !9
  br label %233

233:                                              ; preds = %231, %229
  %234 = phi float [ %230, %229 ], [ %232, %231 ]
  store float %234, ptr %32, align 4, !tbaa !9
  br label %235

235:                                              ; preds = %233, %213
  %236 = load float, ptr %32, align 4, !tbaa !9
  store float %236, ptr %30, align 4, !tbaa !9
  %237 = load ptr, ptr %20, align 8, !tbaa !5
  %238 = load float, ptr %237, align 4, !tbaa !9
  %239 = fmul float %238, 0x3FD54FDF40000000
  store float %239, ptr %31, align 4, !tbaa !9
  %240 = load float, ptr %30, align 4, !tbaa !9
  %241 = load float, ptr %31, align 4, !tbaa !9
  %242 = fcmp oge float %240, %241
  br i1 %242, label %243, label %245

243:                                              ; preds = %235
  %244 = load float, ptr %30, align 4, !tbaa !9
  br label %247

245:                                              ; preds = %235
  %246 = load float, ptr %31, align 4, !tbaa !9
  br label %247

247:                                              ; preds = %245, %243
  %248 = phi float [ %244, %243 ], [ %246, %245 ]
  store float %248, ptr %32, align 4, !tbaa !9
  %249 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -3, ptr %249, align 4, !tbaa !11
  br label %250

250:                                              ; preds = %247, %200
  br label %453

251:                                              ; preds = %133, %78
  %252 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -4, ptr %252, align 4, !tbaa !11
  %253 = load ptr, ptr %20, align 8, !tbaa !5
  %254 = load float, ptr %253, align 4, !tbaa !9
  %255 = fmul float %254, 2.500000e-01
  store float %255, ptr %32, align 4, !tbaa !9
  %256 = load ptr, ptr %20, align 8, !tbaa !5
  %257 = load float, ptr %256, align 4, !tbaa !9
  %258 = load ptr, ptr %23, align 8, !tbaa !5
  %259 = load float, ptr %258, align 4, !tbaa !9
  %260 = fcmp oeq float %257, %259
  br i1 %260, label %261, label %294

261:                                              ; preds = %251
  %262 = load ptr, ptr %23, align 8, !tbaa !5
  %263 = load float, ptr %262, align 4, !tbaa !9
  store float %263, ptr %39, align 4, !tbaa !9
  store float 0.000000e+00, ptr %33, align 4, !tbaa !9
  %264 = load ptr, ptr %17, align 8, !tbaa !5
  %265 = load i32, ptr %37, align 4, !tbaa !11
  %266 = sub nsw i32 %265, 5
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds float, ptr %264, i64 %267
  %269 = load float, ptr %268, align 4, !tbaa !9
  %270 = load ptr, ptr %17, align 8, !tbaa !5
  %271 = load i32, ptr %37, align 4, !tbaa !11
  %272 = sub nsw i32 %271, 7
  %273 = sext i32 %272 to i64
  %274 = getelementptr inbounds float, ptr %270, i64 %273
  %275 = load float, ptr %274, align 4, !tbaa !9
  %276 = fcmp ogt float %269, %275
  br i1 %276, label %277, label %278

277:                                              ; preds = %261
  store i32 1, ptr %42, align 4
  br label %1115

278:                                              ; preds = %261
  %279 = load ptr, ptr %17, align 8, !tbaa !5
  %280 = load i32, ptr %37, align 4, !tbaa !11
  %281 = sub nsw i32 %280, 5
  %282 = sext i32 %281 to i64
  %283 = getelementptr inbounds float, ptr %279, i64 %282
  %284 = load float, ptr %283, align 4, !tbaa !9
  %285 = load ptr, ptr %17, align 8, !tbaa !5
  %286 = load i32, ptr %37, align 4, !tbaa !11
  %287 = sub nsw i32 %286, 7
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds float, ptr %285, i64 %288
  %290 = load float, ptr %289, align 4, !tbaa !9
  %291 = fdiv float %284, %290
  store float %291, ptr %35, align 4, !tbaa !9
  %292 = load i32, ptr %37, align 4, !tbaa !11
  %293 = sub nsw i32 %292, 9
  store i32 %293, ptr %38, align 4, !tbaa !11
  br label %360

294:                                              ; preds = %251
  %295 = load i32, ptr %37, align 4, !tbaa !11
  %296 = load ptr, ptr %18, align 8, !tbaa !5
  %297 = load i32, ptr %296, align 4, !tbaa !11
  %298 = shl i32 %297, 1
  %299 = sub nsw i32 %295, %298
  store i32 %299, ptr %38, align 4, !tbaa !11
  %300 = load ptr, ptr %24, align 8, !tbaa !5
  %301 = load float, ptr %300, align 4, !tbaa !9
  store float %301, ptr %39, align 4, !tbaa !9
  %302 = load ptr, ptr %17, align 8, !tbaa !5
  %303 = load i32, ptr %38, align 4, !tbaa !11
  %304 = sub nsw i32 %303, 4
  %305 = sext i32 %304 to i64
  %306 = getelementptr inbounds float, ptr %302, i64 %305
  %307 = load float, ptr %306, align 4, !tbaa !9
  %308 = load ptr, ptr %17, align 8, !tbaa !5
  %309 = load i32, ptr %38, align 4, !tbaa !11
  %310 = sub nsw i32 %309, 2
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds float, ptr %308, i64 %311
  %313 = load float, ptr %312, align 4, !tbaa !9
  %314 = fcmp ogt float %307, %313
  br i1 %314, label %315, label %316

315:                                              ; preds = %294
  store i32 1, ptr %42, align 4
  br label %1115

316:                                              ; preds = %294
  %317 = load ptr, ptr %17, align 8, !tbaa !5
  %318 = load i32, ptr %38, align 4, !tbaa !11
  %319 = sub nsw i32 %318, 4
  %320 = sext i32 %319 to i64
  %321 = getelementptr inbounds float, ptr %317, i64 %320
  %322 = load float, ptr %321, align 4, !tbaa !9
  %323 = load ptr, ptr %17, align 8, !tbaa !5
  %324 = load i32, ptr %38, align 4, !tbaa !11
  %325 = sub nsw i32 %324, 2
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds float, ptr %323, i64 %326
  %328 = load float, ptr %327, align 4, !tbaa !9
  %329 = fdiv float %322, %328
  store float %329, ptr %33, align 4, !tbaa !9
  %330 = load ptr, ptr %17, align 8, !tbaa !5
  %331 = load i32, ptr %37, align 4, !tbaa !11
  %332 = sub nsw i32 %331, 9
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds float, ptr %330, i64 %333
  %335 = load float, ptr %334, align 4, !tbaa !9
  %336 = load ptr, ptr %17, align 8, !tbaa !5
  %337 = load i32, ptr %37, align 4, !tbaa !11
  %338 = sub nsw i32 %337, 11
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds float, ptr %336, i64 %339
  %341 = load float, ptr %340, align 4, !tbaa !9
  %342 = fcmp ogt float %335, %341
  br i1 %342, label %343, label %344

343:                                              ; preds = %316
  store i32 1, ptr %42, align 4
  br label %1115

344:                                              ; preds = %316
  %345 = load ptr, ptr %17, align 8, !tbaa !5
  %346 = load i32, ptr %37, align 4, !tbaa !11
  %347 = sub nsw i32 %346, 9
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds float, ptr %345, i64 %348
  %350 = load float, ptr %349, align 4, !tbaa !9
  %351 = load ptr, ptr %17, align 8, !tbaa !5
  %352 = load i32, ptr %37, align 4, !tbaa !11
  %353 = sub nsw i32 %352, 11
  %354 = sext i32 %353 to i64
  %355 = getelementptr inbounds float, ptr %351, i64 %354
  %356 = load float, ptr %355, align 4, !tbaa !9
  %357 = fdiv float %350, %356
  store float %357, ptr %35, align 4, !tbaa !9
  %358 = load i32, ptr %37, align 4, !tbaa !11
  %359 = sub nsw i32 %358, 13
  store i32 %359, ptr %38, align 4, !tbaa !11
  br label %360

360:                                              ; preds = %344, %278
  %361 = load float, ptr %35, align 4, !tbaa !9
  %362 = load float, ptr %33, align 4, !tbaa !9
  %363 = fadd float %362, %361
  store float %363, ptr %33, align 4, !tbaa !9
  %364 = load ptr, ptr %15, align 8, !tbaa !5
  %365 = load i32, ptr %364, align 4, !tbaa !11
  %366 = shl i32 %365, 2
  %367 = sub nsw i32 %366, 1
  %368 = load ptr, ptr %18, align 8, !tbaa !5
  %369 = load i32, ptr %368, align 4, !tbaa !11
  %370 = add nsw i32 %367, %369
  store i32 %370, ptr %29, align 4, !tbaa !11
  %371 = load i32, ptr %38, align 4, !tbaa !11
  store i32 %371, ptr %36, align 4, !tbaa !11
  br label %372

372:                                              ; preds = %430, %360
  %373 = load i32, ptr %36, align 4, !tbaa !11
  %374 = load i32, ptr %29, align 4, !tbaa !11
  %375 = icmp sge i32 %373, %374
  br i1 %375, label %376, label %433

376:                                              ; preds = %372
  %377 = load float, ptr %35, align 4, !tbaa !9
  %378 = fcmp oeq float %377, 0.000000e+00
  br i1 %378, label %379, label %380

379:                                              ; preds = %376
  br label %434

380:                                              ; preds = %376
  %381 = load float, ptr %35, align 4, !tbaa !9
  store float %381, ptr %34, align 4, !tbaa !9
  %382 = load ptr, ptr %17, align 8, !tbaa !5
  %383 = load i32, ptr %36, align 4, !tbaa !11
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds float, ptr %382, i64 %384
  %386 = load float, ptr %385, align 4, !tbaa !9
  %387 = load ptr, ptr %17, align 8, !tbaa !5
  %388 = load i32, ptr %36, align 4, !tbaa !11
  %389 = sub nsw i32 %388, 2
  %390 = sext i32 %389 to i64
  %391 = getelementptr inbounds float, ptr %387, i64 %390
  %392 = load float, ptr %391, align 4, !tbaa !9
  %393 = fcmp ogt float %386, %392
  br i1 %393, label %394, label %395

394:                                              ; preds = %380
  store i32 1, ptr %42, align 4
  br label %1115

395:                                              ; preds = %380
  %396 = load ptr, ptr %17, align 8, !tbaa !5
  %397 = load i32, ptr %36, align 4, !tbaa !11
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds float, ptr %396, i64 %398
  %400 = load float, ptr %399, align 4, !tbaa !9
  %401 = load ptr, ptr %17, align 8, !tbaa !5
  %402 = load i32, ptr %36, align 4, !tbaa !11
  %403 = sub nsw i32 %402, 2
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds float, ptr %401, i64 %404
  %406 = load float, ptr %405, align 4, !tbaa !9
  %407 = fdiv float %400, %406
  %408 = load float, ptr %35, align 4, !tbaa !9
  %409 = fmul float %408, %407
  store float %409, ptr %35, align 4, !tbaa !9
  %410 = load float, ptr %35, align 4, !tbaa !9
  %411 = load float, ptr %33, align 4, !tbaa !9
  %412 = fadd float %411, %410
  store float %412, ptr %33, align 4, !tbaa !9
  %413 = load float, ptr %35, align 4, !tbaa !9
  %414 = load float, ptr %34, align 4, !tbaa !9
  %415 = fcmp oge float %413, %414
  br i1 %415, label %416, label %418

416:                                              ; preds = %395
  %417 = load float, ptr %35, align 4, !tbaa !9
  br label %420

418:                                              ; preds = %395
  %419 = load float, ptr %34, align 4, !tbaa !9
  br label %420

420:                                              ; preds = %418, %416
  %421 = phi float [ %417, %416 ], [ %419, %418 ]
  %422 = fmul float %421, 1.000000e+02
  %423 = load float, ptr %33, align 4, !tbaa !9
  %424 = fcmp olt float %422, %423
  br i1 %424, label %428, label %425

425:                                              ; preds = %420
  %426 = load float, ptr %33, align 4, !tbaa !9
  %427 = fcmp olt float 0x3FE20418A0000000, %426
  br i1 %427, label %428, label %429

428:                                              ; preds = %425, %420
  br label %434

429:                                              ; preds = %425
  br label %430

430:                                              ; preds = %429
  %431 = load i32, ptr %36, align 4, !tbaa !11
  %432 = add nsw i32 %431, -4
  store i32 %432, ptr %36, align 4, !tbaa !11
  br label %372, !llvm.loop !13

433:                                              ; preds = %372
  br label %434

434:                                              ; preds = %433, %428, %379
  %435 = load float, ptr %33, align 4, !tbaa !9
  %436 = fmul float %435, 0x3FF0CCCCC0000000
  store float %436, ptr %33, align 4, !tbaa !9
  %437 = load float, ptr %33, align 4, !tbaa !9
  %438 = fcmp olt float %437, 0x3FE20418A0000000
  br i1 %438, label %439, label %452

439:                                              ; preds = %434
  %440 = load float, ptr %39, align 4, !tbaa !9
  %441 = fpext float %440 to double
  %442 = load float, ptr %33, align 4, !tbaa !9
  %443 = fpext float %442 to double
  %444 = call double @sqrt(double noundef %443) #4
  %445 = fsub double 1.000000e+00, %444
  %446 = fmul double %441, %445
  %447 = load float, ptr %33, align 4, !tbaa !9
  %448 = fadd float %447, 1.000000e+00
  %449 = fpext float %448 to double
  %450 = fdiv double %446, %449
  %451 = fptrunc double %450 to float
  store float %451, ptr %32, align 4, !tbaa !9
  br label %452

452:                                              ; preds = %439, %434
  br label %453

453:                                              ; preds = %452, %250
  br label %663

454:                                              ; preds = %72
  %455 = load ptr, ptr %20, align 8, !tbaa !5
  %456 = load float, ptr %455, align 4, !tbaa !9
  %457 = load ptr, ptr %25, align 8, !tbaa !5
  %458 = load float, ptr %457, align 4, !tbaa !9
  %459 = fcmp oeq float %456, %458
  br i1 %459, label %460, label %635

460:                                              ; preds = %454
  %461 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -5, ptr %461, align 4, !tbaa !11
  %462 = load ptr, ptr %20, align 8, !tbaa !5
  %463 = load float, ptr %462, align 4, !tbaa !9
  %464 = fmul float %463, 2.500000e-01
  store float %464, ptr %32, align 4, !tbaa !9
  %465 = load i32, ptr %37, align 4, !tbaa !11
  %466 = load ptr, ptr %18, align 8, !tbaa !5
  %467 = load i32, ptr %466, align 4, !tbaa !11
  %468 = shl i32 %467, 1
  %469 = sub nsw i32 %465, %468
  store i32 %469, ptr %38, align 4, !tbaa !11
  %470 = load ptr, ptr %17, align 8, !tbaa !5
  %471 = load i32, ptr %38, align 4, !tbaa !11
  %472 = sub nsw i32 %471, 2
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds float, ptr %470, i64 %473
  %475 = load float, ptr %474, align 4, !tbaa !9
  store float %475, ptr %34, align 4, !tbaa !9
  %476 = load ptr, ptr %17, align 8, !tbaa !5
  %477 = load i32, ptr %38, align 4, !tbaa !11
  %478 = sub nsw i32 %477, 6
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds float, ptr %476, i64 %479
  %481 = load float, ptr %480, align 4, !tbaa !9
  store float %481, ptr %35, align 4, !tbaa !9
  %482 = load ptr, ptr %25, align 8, !tbaa !5
  %483 = load float, ptr %482, align 4, !tbaa !9
  store float %483, ptr %39, align 4, !tbaa !9
  %484 = load ptr, ptr %17, align 8, !tbaa !5
  %485 = load i32, ptr %38, align 4, !tbaa !11
  %486 = sub nsw i32 %485, 8
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds float, ptr %484, i64 %487
  %489 = load float, ptr %488, align 4, !tbaa !9
  %490 = load float, ptr %35, align 4, !tbaa !9
  %491 = fcmp ogt float %489, %490
  br i1 %491, label %501, label %492

492:                                              ; preds = %460
  %493 = load ptr, ptr %17, align 8, !tbaa !5
  %494 = load i32, ptr %38, align 4, !tbaa !11
  %495 = sub nsw i32 %494, 4
  %496 = sext i32 %495 to i64
  %497 = getelementptr inbounds float, ptr %493, i64 %496
  %498 = load float, ptr %497, align 4, !tbaa !9
  %499 = load float, ptr %34, align 4, !tbaa !9
  %500 = fcmp ogt float %498, %499
  br i1 %500, label %501, label %502

501:                                              ; preds = %492, %460
  store i32 1, ptr %42, align 4
  br label %1115

502:                                              ; preds = %492
  %503 = load ptr, ptr %17, align 8, !tbaa !5
  %504 = load i32, ptr %38, align 4, !tbaa !11
  %505 = sub nsw i32 %504, 8
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds float, ptr %503, i64 %506
  %508 = load float, ptr %507, align 4, !tbaa !9
  %509 = load float, ptr %35, align 4, !tbaa !9
  %510 = fdiv float %508, %509
  %511 = load ptr, ptr %17, align 8, !tbaa !5
  %512 = load i32, ptr %38, align 4, !tbaa !11
  %513 = sub nsw i32 %512, 4
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds float, ptr %511, i64 %514
  %516 = load float, ptr %515, align 4, !tbaa !9
  %517 = load float, ptr %34, align 4, !tbaa !9
  %518 = fdiv float %516, %517
  %519 = fadd float %518, 1.000000e+00
  %520 = fmul float %510, %519
  store float %520, ptr %33, align 4, !tbaa !9
  %521 = load ptr, ptr %16, align 8, !tbaa !5
  %522 = load i32, ptr %521, align 4, !tbaa !11
  %523 = load ptr, ptr %15, align 8, !tbaa !5
  %524 = load i32, ptr %523, align 4, !tbaa !11
  %525 = sub nsw i32 %522, %524
  %526 = icmp sgt i32 %525, 2
  br i1 %526, label %527, label %618

527:                                              ; preds = %502
  %528 = load ptr, ptr %17, align 8, !tbaa !5
  %529 = load i32, ptr %37, align 4, !tbaa !11
  %530 = sub nsw i32 %529, 13
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds float, ptr %528, i64 %531
  %533 = load float, ptr %532, align 4, !tbaa !9
  %534 = load ptr, ptr %17, align 8, !tbaa !5
  %535 = load i32, ptr %37, align 4, !tbaa !11
  %536 = sub nsw i32 %535, 15
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds float, ptr %534, i64 %537
  %539 = load float, ptr %538, align 4, !tbaa !9
  %540 = fdiv float %533, %539
  store float %540, ptr %35, align 4, !tbaa !9
  %541 = load float, ptr %35, align 4, !tbaa !9
  %542 = load float, ptr %33, align 4, !tbaa !9
  %543 = fadd float %542, %541
  store float %543, ptr %33, align 4, !tbaa !9
  %544 = load ptr, ptr %15, align 8, !tbaa !5
  %545 = load i32, ptr %544, align 4, !tbaa !11
  %546 = shl i32 %545, 2
  %547 = sub nsw i32 %546, 1
  %548 = load ptr, ptr %18, align 8, !tbaa !5
  %549 = load i32, ptr %548, align 4, !tbaa !11
  %550 = add nsw i32 %547, %549
  store i32 %550, ptr %29, align 4, !tbaa !11
  %551 = load i32, ptr %37, align 4, !tbaa !11
  %552 = sub nsw i32 %551, 17
  store i32 %552, ptr %36, align 4, !tbaa !11
  br label %553

553:                                              ; preds = %611, %527
  %554 = load i32, ptr %36, align 4, !tbaa !11
  %555 = load i32, ptr %29, align 4, !tbaa !11
  %556 = icmp sge i32 %554, %555
  br i1 %556, label %557, label %614

557:                                              ; preds = %553
  %558 = load float, ptr %35, align 4, !tbaa !9
  %559 = fcmp oeq float %558, 0.000000e+00
  br i1 %559, label %560, label %561

560:                                              ; preds = %557
  br label %615

561:                                              ; preds = %557
  %562 = load float, ptr %35, align 4, !tbaa !9
  store float %562, ptr %34, align 4, !tbaa !9
  %563 = load ptr, ptr %17, align 8, !tbaa !5
  %564 = load i32, ptr %36, align 4, !tbaa !11
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds float, ptr %563, i64 %565
  %567 = load float, ptr %566, align 4, !tbaa !9
  %568 = load ptr, ptr %17, align 8, !tbaa !5
  %569 = load i32, ptr %36, align 4, !tbaa !11
  %570 = sub nsw i32 %569, 2
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds float, ptr %568, i64 %571
  %573 = load float, ptr %572, align 4, !tbaa !9
  %574 = fcmp ogt float %567, %573
  br i1 %574, label %575, label %576

575:                                              ; preds = %561
  store i32 1, ptr %42, align 4
  br label %1115

576:                                              ; preds = %561
  %577 = load ptr, ptr %17, align 8, !tbaa !5
  %578 = load i32, ptr %36, align 4, !tbaa !11
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %577, i64 %579
  %581 = load float, ptr %580, align 4, !tbaa !9
  %582 = load ptr, ptr %17, align 8, !tbaa !5
  %583 = load i32, ptr %36, align 4, !tbaa !11
  %584 = sub nsw i32 %583, 2
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds float, ptr %582, i64 %585
  %587 = load float, ptr %586, align 4, !tbaa !9
  %588 = fdiv float %581, %587
  %589 = load float, ptr %35, align 4, !tbaa !9
  %590 = fmul float %589, %588
  store float %590, ptr %35, align 4, !tbaa !9
  %591 = load float, ptr %35, align 4, !tbaa !9
  %592 = load float, ptr %33, align 4, !tbaa !9
  %593 = fadd float %592, %591
  store float %593, ptr %33, align 4, !tbaa !9
  %594 = load float, ptr %35, align 4, !tbaa !9
  %595 = load float, ptr %34, align 4, !tbaa !9
  %596 = fcmp oge float %594, %595
  br i1 %596, label %597, label %599

597:                                              ; preds = %576
  %598 = load float, ptr %35, align 4, !tbaa !9
  br label %601

599:                                              ; preds = %576
  %600 = load float, ptr %34, align 4, !tbaa !9
  br label %601

601:                                              ; preds = %599, %597
  %602 = phi float [ %598, %597 ], [ %600, %599 ]
  %603 = fmul float %602, 1.000000e+02
  %604 = load float, ptr %33, align 4, !tbaa !9
  %605 = fcmp olt float %603, %604
  br i1 %605, label %609, label %606

606:                                              ; preds = %601
  %607 = load float, ptr %33, align 4, !tbaa !9
  %608 = fcmp olt float 0x3FE20418A0000000, %607
  br i1 %608, label %609, label %610

609:                                              ; preds = %606, %601
  br label %615

610:                                              ; preds = %606
  br label %611

611:                                              ; preds = %610
  %612 = load i32, ptr %36, align 4, !tbaa !11
  %613 = add nsw i32 %612, -4
  store i32 %613, ptr %36, align 4, !tbaa !11
  br label %553, !llvm.loop !15

614:                                              ; preds = %553
  br label %615

615:                                              ; preds = %614, %609, %560
  %616 = load float, ptr %33, align 4, !tbaa !9
  %617 = fmul float %616, 0x3FF0CCCCC0000000
  store float %617, ptr %33, align 4, !tbaa !9
  br label %618

618:                                              ; preds = %615, %502
  %619 = load float, ptr %33, align 4, !tbaa !9
  %620 = fcmp olt float %619, 0x3FE20418A0000000
  br i1 %620, label %621, label %634

621:                                              ; preds = %618
  %622 = load float, ptr %39, align 4, !tbaa !9
  %623 = fpext float %622 to double
  %624 = load float, ptr %33, align 4, !tbaa !9
  %625 = fpext float %624 to double
  %626 = call double @sqrt(double noundef %625) #4
  %627 = fsub double 1.000000e+00, %626
  %628 = fmul double %623, %627
  %629 = load float, ptr %33, align 4, !tbaa !9
  %630 = fadd float %629, 1.000000e+00
  %631 = fpext float %630 to double
  %632 = fdiv double %628, %631
  %633 = fptrunc double %632 to float
  store float %633, ptr %32, align 4, !tbaa !9
  br label %634

634:                                              ; preds = %621, %618
  br label %662

635:                                              ; preds = %454
  %636 = load ptr, ptr %27, align 8, !tbaa !5
  %637 = load i32, ptr %636, align 4, !tbaa !11
  %638 = icmp eq i32 %637, -6
  br i1 %638, label %639, label %646

639:                                              ; preds = %635
  %640 = load ptr, ptr %28, align 8, !tbaa !5
  %641 = load float, ptr %640, align 4, !tbaa !9
  %642 = fsub float 1.000000e+00, %641
  %643 = load ptr, ptr %28, align 8, !tbaa !5
  %644 = load float, ptr %643, align 4, !tbaa !9
  %645 = call float @llvm.fmuladd.f32(float %642, float 0x3FD54FDF40000000, float %644)
  store float %645, ptr %643, align 4, !tbaa !9
  br label %655

646:                                              ; preds = %635
  %647 = load ptr, ptr %27, align 8, !tbaa !5
  %648 = load i32, ptr %647, align 4, !tbaa !11
  %649 = icmp eq i32 %648, -18
  br i1 %649, label %650, label %652

650:                                              ; preds = %646
  %651 = load ptr, ptr %28, align 8, !tbaa !5
  store float 0x3FB54FDF40000000, ptr %651, align 4, !tbaa !9
  br label %654

652:                                              ; preds = %646
  %653 = load ptr, ptr %28, align 8, !tbaa !5
  store float 2.500000e-01, ptr %653, align 4, !tbaa !9
  br label %654

654:                                              ; preds = %652, %650
  br label %655

655:                                              ; preds = %654, %639
  %656 = load ptr, ptr %28, align 8, !tbaa !5
  %657 = load float, ptr %656, align 4, !tbaa !9
  %658 = load ptr, ptr %20, align 8, !tbaa !5
  %659 = load float, ptr %658, align 4, !tbaa !9
  %660 = fmul float %657, %659
  store float %660, ptr %32, align 4, !tbaa !9
  %661 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -6, ptr %661, align 4, !tbaa !11
  br label %662

662:                                              ; preds = %655, %634
  br label %663

663:                                              ; preds = %662, %453
  br label %1112

664:                                              ; preds = %54
  %665 = load ptr, ptr %19, align 8, !tbaa !5
  %666 = load i32, ptr %665, align 4, !tbaa !11
  %667 = load ptr, ptr %16, align 8, !tbaa !5
  %668 = load i32, ptr %667, align 4, !tbaa !11
  %669 = add nsw i32 %668, 1
  %670 = icmp eq i32 %666, %669
  br i1 %670, label %671, label %872

671:                                              ; preds = %664
  %672 = load ptr, ptr %21, align 8, !tbaa !5
  %673 = load float, ptr %672, align 4, !tbaa !9
  %674 = load ptr, ptr %24, align 8, !tbaa !5
  %675 = load float, ptr %674, align 4, !tbaa !9
  %676 = fcmp oeq float %673, %675
  br i1 %676, label %677, label %856

677:                                              ; preds = %671
  %678 = load ptr, ptr %22, align 8, !tbaa !5
  %679 = load float, ptr %678, align 4, !tbaa !9
  %680 = load ptr, ptr %25, align 8, !tbaa !5
  %681 = load float, ptr %680, align 4, !tbaa !9
  %682 = fcmp oeq float %679, %681
  br i1 %682, label %683, label %856

683:                                              ; preds = %677
  %684 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -7, ptr %684, align 4, !tbaa !11
  %685 = load ptr, ptr %21, align 8, !tbaa !5
  %686 = load float, ptr %685, align 4, !tbaa !9
  %687 = fmul float %686, 0x3FD54FDF40000000
  store float %687, ptr %32, align 4, !tbaa !9
  %688 = load ptr, ptr %17, align 8, !tbaa !5
  %689 = load i32, ptr %37, align 4, !tbaa !11
  %690 = sub nsw i32 %689, 5
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds float, ptr %688, i64 %691
  %693 = load float, ptr %692, align 4, !tbaa !9
  %694 = load ptr, ptr %17, align 8, !tbaa !5
  %695 = load i32, ptr %37, align 4, !tbaa !11
  %696 = sub nsw i32 %695, 7
  %697 = sext i32 %696 to i64
  %698 = getelementptr inbounds float, ptr %694, i64 %697
  %699 = load float, ptr %698, align 4, !tbaa !9
  %700 = fcmp ogt float %693, %699
  br i1 %700, label %701, label %702

701:                                              ; preds = %683
  store i32 1, ptr %42, align 4
  br label %1115

702:                                              ; preds = %683
  %703 = load ptr, ptr %17, align 8, !tbaa !5
  %704 = load i32, ptr %37, align 4, !tbaa !11
  %705 = sub nsw i32 %704, 5
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds float, ptr %703, i64 %706
  %708 = load float, ptr %707, align 4, !tbaa !9
  %709 = load ptr, ptr %17, align 8, !tbaa !5
  %710 = load i32, ptr %37, align 4, !tbaa !11
  %711 = sub nsw i32 %710, 7
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds float, ptr %709, i64 %712
  %714 = load float, ptr %713, align 4, !tbaa !9
  %715 = fdiv float %708, %714
  store float %715, ptr %34, align 4, !tbaa !9
  %716 = load float, ptr %34, align 4, !tbaa !9
  store float %716, ptr %35, align 4, !tbaa !9
  %717 = load float, ptr %35, align 4, !tbaa !9
  %718 = fcmp oeq float %717, 0.000000e+00
  br i1 %718, label %719, label %720

719:                                              ; preds = %702
  br label %790

720:                                              ; preds = %702
  %721 = load ptr, ptr %15, align 8, !tbaa !5
  %722 = load i32, ptr %721, align 4, !tbaa !11
  %723 = shl i32 %722, 2
  %724 = sub nsw i32 %723, 1
  %725 = load ptr, ptr %18, align 8, !tbaa !5
  %726 = load i32, ptr %725, align 4, !tbaa !11
  %727 = add nsw i32 %724, %726
  store i32 %727, ptr %29, align 4, !tbaa !11
  %728 = load ptr, ptr %16, align 8, !tbaa !5
  %729 = load i32, ptr %728, align 4, !tbaa !11
  %730 = shl i32 %729, 2
  %731 = sub nsw i32 %730, 9
  %732 = load ptr, ptr %18, align 8, !tbaa !5
  %733 = load i32, ptr %732, align 4, !tbaa !11
  %734 = add nsw i32 %731, %733
  store i32 %734, ptr %36, align 4, !tbaa !11
  br label %735

735:                                              ; preds = %786, %720
  %736 = load i32, ptr %36, align 4, !tbaa !11
  %737 = load i32, ptr %29, align 4, !tbaa !11
  %738 = icmp sge i32 %736, %737
  br i1 %738, label %739, label %789

739:                                              ; preds = %735
  %740 = load float, ptr %34, align 4, !tbaa !9
  store float %740, ptr %33, align 4, !tbaa !9
  %741 = load ptr, ptr %17, align 8, !tbaa !5
  %742 = load i32, ptr %36, align 4, !tbaa !11
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds float, ptr %741, i64 %743
  %745 = load float, ptr %744, align 4, !tbaa !9
  %746 = load ptr, ptr %17, align 8, !tbaa !5
  %747 = load i32, ptr %36, align 4, !tbaa !11
  %748 = sub nsw i32 %747, 2
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds float, ptr %746, i64 %749
  %751 = load float, ptr %750, align 4, !tbaa !9
  %752 = fcmp ogt float %745, %751
  br i1 %752, label %753, label %754

753:                                              ; preds = %739
  store i32 1, ptr %42, align 4
  br label %1115

754:                                              ; preds = %739
  %755 = load ptr, ptr %17, align 8, !tbaa !5
  %756 = load i32, ptr %36, align 4, !tbaa !11
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds float, ptr %755, i64 %757
  %759 = load float, ptr %758, align 4, !tbaa !9
  %760 = load ptr, ptr %17, align 8, !tbaa !5
  %761 = load i32, ptr %36, align 4, !tbaa !11
  %762 = sub nsw i32 %761, 2
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds float, ptr %760, i64 %763
  %765 = load float, ptr %764, align 4, !tbaa !9
  %766 = fdiv float %759, %765
  %767 = load float, ptr %34, align 4, !tbaa !9
  %768 = fmul float %767, %766
  store float %768, ptr %34, align 4, !tbaa !9
  %769 = load float, ptr %34, align 4, !tbaa !9
  %770 = load float, ptr %35, align 4, !tbaa !9
  %771 = fadd float %770, %769
  store float %771, ptr %35, align 4, !tbaa !9
  %772 = load float, ptr %34, align 4, !tbaa !9
  %773 = load float, ptr %33, align 4, !tbaa !9
  %774 = fcmp oge float %772, %773
  br i1 %774, label %775, label %777

775:                                              ; preds = %754
  %776 = load float, ptr %34, align 4, !tbaa !9
  br label %779

777:                                              ; preds = %754
  %778 = load float, ptr %33, align 4, !tbaa !9
  br label %779

779:                                              ; preds = %777, %775
  %780 = phi float [ %776, %775 ], [ %778, %777 ]
  %781 = fmul float %780, 1.000000e+02
  %782 = load float, ptr %35, align 4, !tbaa !9
  %783 = fcmp olt float %781, %782
  br i1 %783, label %784, label %785

784:                                              ; preds = %779
  br label %790

785:                                              ; preds = %779
  br label %786

786:                                              ; preds = %785
  %787 = load i32, ptr %36, align 4, !tbaa !11
  %788 = add nsw i32 %787, -4
  store i32 %788, ptr %36, align 4, !tbaa !11
  br label %735, !llvm.loop !16

789:                                              ; preds = %735
  br label %790

790:                                              ; preds = %789, %784, %719
  %791 = load float, ptr %35, align 4, !tbaa !9
  %792 = fmul float %791, 0x3FF0CCCCC0000000
  %793 = fpext float %792 to double
  %794 = call double @sqrt(double noundef %793) #4
  %795 = fptrunc double %794 to float
  store float %795, ptr %35, align 4, !tbaa !9
  %796 = load float, ptr %35, align 4, !tbaa !9
  store float %796, ptr %30, align 4, !tbaa !9
  %797 = load ptr, ptr %21, align 8, !tbaa !5
  %798 = load float, ptr %797, align 4, !tbaa !9
  %799 = load float, ptr %30, align 4, !tbaa !9
  %800 = load float, ptr %30, align 4, !tbaa !9
  %801 = call float @llvm.fmuladd.f32(float %799, float %800, float 1.000000e+00)
  %802 = fdiv float %798, %801
  store float %802, ptr %33, align 4, !tbaa !9
  %803 = load ptr, ptr %22, align 8, !tbaa !5
  %804 = load float, ptr %803, align 4, !tbaa !9
  %805 = load float, ptr %33, align 4, !tbaa !9
  %806 = fneg float %805
  %807 = call float @llvm.fmuladd.f32(float %804, float 5.000000e-01, float %806)
  store float %807, ptr %41, align 4, !tbaa !9
  %808 = load float, ptr %41, align 4, !tbaa !9
  %809 = fcmp ogt float %808, 0.000000e+00
  br i1 %809, label %810, label %838

810:                                              ; preds = %790
  %811 = load float, ptr %41, align 4, !tbaa !9
  %812 = load float, ptr %35, align 4, !tbaa !9
  %813 = load float, ptr %33, align 4, !tbaa !9
  %814 = fmul float %812, %813
  %815 = fcmp ogt float %811, %814
  br i1 %815, label %816, label %838

816:                                              ; preds = %810
  %817 = load float, ptr %32, align 4, !tbaa !9
  store float %817, ptr %30, align 4, !tbaa !9
  %818 = load float, ptr %33, align 4, !tbaa !9
  %819 = load float, ptr %33, align 4, !tbaa !9
  %820 = fmul float %819, 0x3FF028F5C0000000
  %821 = load float, ptr %35, align 4, !tbaa !9
  %822 = load float, ptr %41, align 4, !tbaa !9
  %823 = fdiv float %821, %822
  %824 = fmul float %820, %823
  %825 = load float, ptr %35, align 4, !tbaa !9
  %826 = fneg float %824
  %827 = call float @llvm.fmuladd.f32(float %826, float %825, float 1.000000e+00)
  %828 = fmul float %818, %827
  store float %828, ptr %31, align 4, !tbaa !9
  %829 = load float, ptr %30, align 4, !tbaa !9
  %830 = load float, ptr %31, align 4, !tbaa !9
  %831 = fcmp oge float %829, %830
  br i1 %831, label %832, label %834

832:                                              ; preds = %816
  %833 = load float, ptr %30, align 4, !tbaa !9
  br label %836

834:                                              ; preds = %816
  %835 = load float, ptr %31, align 4, !tbaa !9
  br label %836

836:                                              ; preds = %834, %832
  %837 = phi float [ %833, %832 ], [ %835, %834 ]
  store float %837, ptr %32, align 4, !tbaa !9
  br label %855

838:                                              ; preds = %810, %790
  %839 = load float, ptr %32, align 4, !tbaa !9
  store float %839, ptr %30, align 4, !tbaa !9
  %840 = load float, ptr %33, align 4, !tbaa !9
  %841 = load float, ptr %35, align 4, !tbaa !9
  %842 = fneg float %841
  %843 = call float @llvm.fmuladd.f32(float %842, float 0x3FF028F5C0000000, float 1.000000e+00)
  %844 = fmul float %840, %843
  store float %844, ptr %31, align 4, !tbaa !9
  %845 = load float, ptr %30, align 4, !tbaa !9
  %846 = load float, ptr %31, align 4, !tbaa !9
  %847 = fcmp oge float %845, %846
  br i1 %847, label %848, label %850

848:                                              ; preds = %838
  %849 = load float, ptr %30, align 4, !tbaa !9
  br label %852

850:                                              ; preds = %838
  %851 = load float, ptr %31, align 4, !tbaa !9
  br label %852

852:                                              ; preds = %850, %848
  %853 = phi float [ %849, %848 ], [ %851, %850 ]
  store float %853, ptr %32, align 4, !tbaa !9
  %854 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -8, ptr %854, align 4, !tbaa !11
  br label %855

855:                                              ; preds = %852, %836
  br label %871

856:                                              ; preds = %677, %671
  %857 = load ptr, ptr %21, align 8, !tbaa !5
  %858 = load float, ptr %857, align 4, !tbaa !9
  %859 = fmul float %858, 2.500000e-01
  store float %859, ptr %32, align 4, !tbaa !9
  %860 = load ptr, ptr %21, align 8, !tbaa !5
  %861 = load float, ptr %860, align 4, !tbaa !9
  %862 = load ptr, ptr %24, align 8, !tbaa !5
  %863 = load float, ptr %862, align 4, !tbaa !9
  %864 = fcmp oeq float %861, %863
  br i1 %864, label %865, label %869

865:                                              ; preds = %856
  %866 = load ptr, ptr %21, align 8, !tbaa !5
  %867 = load float, ptr %866, align 4, !tbaa !9
  %868 = fmul float %867, 5.000000e-01
  store float %868, ptr %32, align 4, !tbaa !9
  br label %869

869:                                              ; preds = %865, %856
  %870 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -9, ptr %870, align 4, !tbaa !11
  br label %871

871:                                              ; preds = %869, %855
  br label %1111

872:                                              ; preds = %664
  %873 = load ptr, ptr %19, align 8, !tbaa !5
  %874 = load i32, ptr %873, align 4, !tbaa !11
  %875 = load ptr, ptr %16, align 8, !tbaa !5
  %876 = load i32, ptr %875, align 4, !tbaa !11
  %877 = add nsw i32 %876, 2
  %878 = icmp eq i32 %874, %877
  br i1 %878, label %879, label %1100

879:                                              ; preds = %872
  %880 = load ptr, ptr %22, align 8, !tbaa !5
  %881 = load float, ptr %880, align 4, !tbaa !9
  %882 = load ptr, ptr %25, align 8, !tbaa !5
  %883 = load float, ptr %882, align 4, !tbaa !9
  %884 = fcmp oeq float %881, %883
  br i1 %884, label %885, label %1094

885:                                              ; preds = %879
  %886 = load ptr, ptr %17, align 8, !tbaa !5
  %887 = load i32, ptr %37, align 4, !tbaa !11
  %888 = sub nsw i32 %887, 5
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds float, ptr %886, i64 %889
  %891 = load float, ptr %890, align 4, !tbaa !9
  %892 = fmul float %891, 2.000000e+00
  %893 = load ptr, ptr %17, align 8, !tbaa !5
  %894 = load i32, ptr %37, align 4, !tbaa !11
  %895 = sub nsw i32 %894, 7
  %896 = sext i32 %895 to i64
  %897 = getelementptr inbounds float, ptr %893, i64 %896
  %898 = load float, ptr %897, align 4, !tbaa !9
  %899 = fcmp olt float %892, %898
  br i1 %899, label %900, label %1094

900:                                              ; preds = %885
  %901 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -10, ptr %901, align 4, !tbaa !11
  %902 = load ptr, ptr %22, align 8, !tbaa !5
  %903 = load float, ptr %902, align 4, !tbaa !9
  %904 = fmul float %903, 0x3FD54FDF40000000
  store float %904, ptr %32, align 4, !tbaa !9
  %905 = load ptr, ptr %17, align 8, !tbaa !5
  %906 = load i32, ptr %37, align 4, !tbaa !11
  %907 = sub nsw i32 %906, 5
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds float, ptr %905, i64 %908
  %910 = load float, ptr %909, align 4, !tbaa !9
  %911 = load ptr, ptr %17, align 8, !tbaa !5
  %912 = load i32, ptr %37, align 4, !tbaa !11
  %913 = sub nsw i32 %912, 7
  %914 = sext i32 %913 to i64
  %915 = getelementptr inbounds float, ptr %911, i64 %914
  %916 = load float, ptr %915, align 4, !tbaa !9
  %917 = fcmp ogt float %910, %916
  br i1 %917, label %918, label %919

918:                                              ; preds = %900
  store i32 1, ptr %42, align 4
  br label %1115

919:                                              ; preds = %900
  %920 = load ptr, ptr %17, align 8, !tbaa !5
  %921 = load i32, ptr %37, align 4, !tbaa !11
  %922 = sub nsw i32 %921, 5
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds float, ptr %920, i64 %923
  %925 = load float, ptr %924, align 4, !tbaa !9
  %926 = load ptr, ptr %17, align 8, !tbaa !5
  %927 = load i32, ptr %37, align 4, !tbaa !11
  %928 = sub nsw i32 %927, 7
  %929 = sext i32 %928 to i64
  %930 = getelementptr inbounds float, ptr %926, i64 %929
  %931 = load float, ptr %930, align 4, !tbaa !9
  %932 = fdiv float %925, %931
  store float %932, ptr %34, align 4, !tbaa !9
  %933 = load float, ptr %34, align 4, !tbaa !9
  store float %933, ptr %35, align 4, !tbaa !9
  %934 = load float, ptr %35, align 4, !tbaa !9
  %935 = fcmp oeq float %934, 0.000000e+00
  br i1 %935, label %936, label %937

936:                                              ; preds = %919
  br label %998

937:                                              ; preds = %919
  %938 = load ptr, ptr %15, align 8, !tbaa !5
  %939 = load i32, ptr %938, align 4, !tbaa !11
  %940 = shl i32 %939, 2
  %941 = sub nsw i32 %940, 1
  %942 = load ptr, ptr %18, align 8, !tbaa !5
  %943 = load i32, ptr %942, align 4, !tbaa !11
  %944 = add nsw i32 %941, %943
  store i32 %944, ptr %29, align 4, !tbaa !11
  %945 = load ptr, ptr %16, align 8, !tbaa !5
  %946 = load i32, ptr %945, align 4, !tbaa !11
  %947 = shl i32 %946, 2
  %948 = sub nsw i32 %947, 9
  %949 = load ptr, ptr %18, align 8, !tbaa !5
  %950 = load i32, ptr %949, align 4, !tbaa !11
  %951 = add nsw i32 %948, %950
  store i32 %951, ptr %36, align 4, !tbaa !11
  br label %952

952:                                              ; preds = %994, %937
  %953 = load i32, ptr %36, align 4, !tbaa !11
  %954 = load i32, ptr %29, align 4, !tbaa !11
  %955 = icmp sge i32 %953, %954
  br i1 %955, label %956, label %997

956:                                              ; preds = %952
  %957 = load ptr, ptr %17, align 8, !tbaa !5
  %958 = load i32, ptr %36, align 4, !tbaa !11
  %959 = sext i32 %958 to i64
  %960 = getelementptr inbounds float, ptr %957, i64 %959
  %961 = load float, ptr %960, align 4, !tbaa !9
  %962 = load ptr, ptr %17, align 8, !tbaa !5
  %963 = load i32, ptr %36, align 4, !tbaa !11
  %964 = sub nsw i32 %963, 2
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds float, ptr %962, i64 %965
  %967 = load float, ptr %966, align 4, !tbaa !9
  %968 = fcmp ogt float %961, %967
  br i1 %968, label %969, label %970

969:                                              ; preds = %956
  store i32 1, ptr %42, align 4
  br label %1115

970:                                              ; preds = %956
  %971 = load ptr, ptr %17, align 8, !tbaa !5
  %972 = load i32, ptr %36, align 4, !tbaa !11
  %973 = sext i32 %972 to i64
  %974 = getelementptr inbounds float, ptr %971, i64 %973
  %975 = load float, ptr %974, align 4, !tbaa !9
  %976 = load ptr, ptr %17, align 8, !tbaa !5
  %977 = load i32, ptr %36, align 4, !tbaa !11
  %978 = sub nsw i32 %977, 2
  %979 = sext i32 %978 to i64
  %980 = getelementptr inbounds float, ptr %976, i64 %979
  %981 = load float, ptr %980, align 4, !tbaa !9
  %982 = fdiv float %975, %981
  %983 = load float, ptr %34, align 4, !tbaa !9
  %984 = fmul float %983, %982
  store float %984, ptr %34, align 4, !tbaa !9
  %985 = load float, ptr %34, align 4, !tbaa !9
  %986 = load float, ptr %35, align 4, !tbaa !9
  %987 = fadd float %986, %985
  store float %987, ptr %35, align 4, !tbaa !9
  %988 = load float, ptr %34, align 4, !tbaa !9
  %989 = fmul float %988, 1.000000e+02
  %990 = load float, ptr %35, align 4, !tbaa !9
  %991 = fcmp olt float %989, %990
  br i1 %991, label %992, label %993

992:                                              ; preds = %970
  br label %998

993:                                              ; preds = %970
  br label %994

994:                                              ; preds = %993
  %995 = load i32, ptr %36, align 4, !tbaa !11
  %996 = add nsw i32 %995, -4
  store i32 %996, ptr %36, align 4, !tbaa !11
  br label %952, !llvm.loop !17

997:                                              ; preds = %952
  br label %998

998:                                              ; preds = %997, %992, %936
  %999 = load float, ptr %35, align 4, !tbaa !9
  %1000 = fmul float %999, 0x3FF0CCCCC0000000
  %1001 = fpext float %1000 to double
  %1002 = call double @sqrt(double noundef %1001) #4
  %1003 = fptrunc double %1002 to float
  store float %1003, ptr %35, align 4, !tbaa !9
  %1004 = load float, ptr %35, align 4, !tbaa !9
  store float %1004, ptr %30, align 4, !tbaa !9
  %1005 = load ptr, ptr %22, align 8, !tbaa !5
  %1006 = load float, ptr %1005, align 4, !tbaa !9
  %1007 = load float, ptr %30, align 4, !tbaa !9
  %1008 = load float, ptr %30, align 4, !tbaa !9
  %1009 = call float @llvm.fmuladd.f32(float %1007, float %1008, float 1.000000e+00)
  %1010 = fdiv float %1006, %1009
  store float %1010, ptr %33, align 4, !tbaa !9
  %1011 = load ptr, ptr %17, align 8, !tbaa !5
  %1012 = load i32, ptr %37, align 4, !tbaa !11
  %1013 = sub nsw i32 %1012, 7
  %1014 = sext i32 %1013 to i64
  %1015 = getelementptr inbounds float, ptr %1011, i64 %1014
  %1016 = load float, ptr %1015, align 4, !tbaa !9
  %1017 = load ptr, ptr %17, align 8, !tbaa !5
  %1018 = load i32, ptr %37, align 4, !tbaa !11
  %1019 = sub nsw i32 %1018, 9
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds float, ptr %1017, i64 %1020
  %1022 = load float, ptr %1021, align 4, !tbaa !9
  %1023 = fadd float %1016, %1022
  %1024 = fpext float %1023 to double
  %1025 = load ptr, ptr %17, align 8, !tbaa !5
  %1026 = load i32, ptr %37, align 4, !tbaa !11
  %1027 = sub nsw i32 %1026, 11
  %1028 = sext i32 %1027 to i64
  %1029 = getelementptr inbounds float, ptr %1025, i64 %1028
  %1030 = load float, ptr %1029, align 4, !tbaa !9
  %1031 = fpext float %1030 to double
  %1032 = call double @sqrt(double noundef %1031) #4
  %1033 = load ptr, ptr %17, align 8, !tbaa !5
  %1034 = load i32, ptr %37, align 4, !tbaa !11
  %1035 = sub nsw i32 %1034, 9
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds float, ptr %1033, i64 %1036
  %1038 = load float, ptr %1037, align 4, !tbaa !9
  %1039 = fpext float %1038 to double
  %1040 = call double @sqrt(double noundef %1039) #4
  %1041 = fneg double %1032
  %1042 = call double @llvm.fmuladd.f64(double %1041, double %1040, double %1024)
  %1043 = load float, ptr %33, align 4, !tbaa !9
  %1044 = fpext float %1043 to double
  %1045 = fsub double %1042, %1044
  %1046 = fptrunc double %1045 to float
  store float %1046, ptr %41, align 4, !tbaa !9
  %1047 = load float, ptr %41, align 4, !tbaa !9
  %1048 = fcmp ogt float %1047, 0.000000e+00
  br i1 %1048, label %1049, label %1077

1049:                                             ; preds = %998
  %1050 = load float, ptr %41, align 4, !tbaa !9
  %1051 = load float, ptr %35, align 4, !tbaa !9
  %1052 = load float, ptr %33, align 4, !tbaa !9
  %1053 = fmul float %1051, %1052
  %1054 = fcmp ogt float %1050, %1053
  br i1 %1054, label %1055, label %1077

1055:                                             ; preds = %1049
  %1056 = load float, ptr %32, align 4, !tbaa !9
  store float %1056, ptr %30, align 4, !tbaa !9
  %1057 = load float, ptr %33, align 4, !tbaa !9
  %1058 = load float, ptr %33, align 4, !tbaa !9
  %1059 = fmul float %1058, 0x3FF028F5C0000000
  %1060 = load float, ptr %35, align 4, !tbaa !9
  %1061 = load float, ptr %41, align 4, !tbaa !9
  %1062 = fdiv float %1060, %1061
  %1063 = fmul float %1059, %1062
  %1064 = load float, ptr %35, align 4, !tbaa !9
  %1065 = fneg float %1063
  %1066 = call float @llvm.fmuladd.f32(float %1065, float %1064, float 1.000000e+00)
  %1067 = fmul float %1057, %1066
  store float %1067, ptr %31, align 4, !tbaa !9
  %1068 = load float, ptr %30, align 4, !tbaa !9
  %1069 = load float, ptr %31, align 4, !tbaa !9
  %1070 = fcmp oge float %1068, %1069
  br i1 %1070, label %1071, label %1073

1071:                                             ; preds = %1055
  %1072 = load float, ptr %30, align 4, !tbaa !9
  br label %1075

1073:                                             ; preds = %1055
  %1074 = load float, ptr %31, align 4, !tbaa !9
  br label %1075

1075:                                             ; preds = %1073, %1071
  %1076 = phi float [ %1072, %1071 ], [ %1074, %1073 ]
  store float %1076, ptr %32, align 4, !tbaa !9
  br label %1093

1077:                                             ; preds = %1049, %998
  %1078 = load float, ptr %32, align 4, !tbaa !9
  store float %1078, ptr %30, align 4, !tbaa !9
  %1079 = load float, ptr %33, align 4, !tbaa !9
  %1080 = load float, ptr %35, align 4, !tbaa !9
  %1081 = fneg float %1080
  %1082 = call float @llvm.fmuladd.f32(float %1081, float 0x3FF028F5C0000000, float 1.000000e+00)
  %1083 = fmul float %1079, %1082
  store float %1083, ptr %31, align 4, !tbaa !9
  %1084 = load float, ptr %30, align 4, !tbaa !9
  %1085 = load float, ptr %31, align 4, !tbaa !9
  %1086 = fcmp oge float %1084, %1085
  br i1 %1086, label %1087, label %1089

1087:                                             ; preds = %1077
  %1088 = load float, ptr %30, align 4, !tbaa !9
  br label %1091

1089:                                             ; preds = %1077
  %1090 = load float, ptr %31, align 4, !tbaa !9
  br label %1091

1091:                                             ; preds = %1089, %1087
  %1092 = phi float [ %1088, %1087 ], [ %1090, %1089 ]
  store float %1092, ptr %32, align 4, !tbaa !9
  br label %1093

1093:                                             ; preds = %1091, %1075
  br label %1099

1094:                                             ; preds = %885, %879
  %1095 = load ptr, ptr %22, align 8, !tbaa !5
  %1096 = load float, ptr %1095, align 4, !tbaa !9
  %1097 = fmul float %1096, 2.500000e-01
  store float %1097, ptr %32, align 4, !tbaa !9
  %1098 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -11, ptr %1098, align 4, !tbaa !11
  br label %1099

1099:                                             ; preds = %1094, %1093
  br label %1110

1100:                                             ; preds = %872
  %1101 = load ptr, ptr %19, align 8, !tbaa !5
  %1102 = load i32, ptr %1101, align 4, !tbaa !11
  %1103 = load ptr, ptr %16, align 8, !tbaa !5
  %1104 = load i32, ptr %1103, align 4, !tbaa !11
  %1105 = add nsw i32 %1104, 2
  %1106 = icmp sgt i32 %1102, %1105
  br i1 %1106, label %1107, label %1109

1107:                                             ; preds = %1100
  store float 0.000000e+00, ptr %32, align 4, !tbaa !9
  %1108 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 -12, ptr %1108, align 4, !tbaa !11
  br label %1109

1109:                                             ; preds = %1107, %1100
  br label %1110

1110:                                             ; preds = %1109, %1099
  br label %1111

1111:                                             ; preds = %1110, %871
  br label %1112

1112:                                             ; preds = %1111, %663
  %1113 = load float, ptr %32, align 4, !tbaa !9
  %1114 = load ptr, ptr %26, align 8, !tbaa !5
  store float %1113, ptr %1114, align 4, !tbaa !9
  store i32 1, ptr %42, align 4
  br label %1115

1115:                                             ; preds = %1112, %969, %918, %753, %701, %575, %501, %394, %343, %315, %277, %48
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  ret void
}

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

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

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

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

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

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

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

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


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

; Function Attrs: nofree nounwind memory(write, argmem: readwrite) uwtable
define dso_local void @slasq4_(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr nocapture noundef readonly %7, ptr nocapture noundef readonly %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture noundef writeonly %11, ptr nocapture noundef %12, ptr nocapture noundef %13) local_unnamed_addr #0 {
  %15 = getelementptr inbounds i8, ptr %2, i64 -4
  %16 = load float, ptr %5, align 4, !tbaa !5
  %17 = fcmp ugt float %16, 0.000000e+00
  br i1 %17, label %20, label %18

18:                                               ; preds = %14
  %19 = fneg float %16
  store float %19, ptr %11, align 4, !tbaa !5
  store i32 -1, ptr %12, align 4, !tbaa !9
  br label %.loopexit

20:                                               ; preds = %14
  %21 = load i32, ptr %1, align 4, !tbaa !9
  %22 = shl i32 %21, 2
  %23 = load i32, ptr %3, align 4, !tbaa !9
  %24 = add nsw i32 %22, %23
  %25 = load i32, ptr %4, align 4, !tbaa !9
  %26 = icmp eq i32 %25, %21
  br i1 %26, label %27, label %271

27:                                               ; preds = %20
  %28 = load float, ptr %8, align 4, !tbaa !5
  %29 = fcmp oeq float %16, %28
  br i1 %29, label %33, label %30

30:                                               ; preds = %27
  %31 = load float, ptr %9, align 4, !tbaa !5
  %32 = fcmp oeq float %16, %31
  br i1 %32, label %33, label %179

33:                                               ; preds = %30, %27
  %34 = sext i32 %24 to i64
  %35 = getelementptr float, ptr %15, i64 %34
  %36 = getelementptr i8, ptr %35, i64 -12
  %37 = load float, ptr %36, align 4, !tbaa !5
  %38 = fpext float %37 to double
  %39 = tail call double @sqrt(double noundef %38) #3
  %40 = getelementptr i8, ptr %35, i64 -20
  %41 = load float, ptr %40, align 4, !tbaa !5
  %42 = fpext float %41 to double
  %43 = tail call double @sqrt(double noundef %42) #3
  %44 = fmul double %39, %43
  %45 = fptrunc double %44 to float
  %46 = getelementptr i8, ptr %35, i64 -28
  %47 = load float, ptr %46, align 4, !tbaa !5
  %48 = fpext float %47 to double
  %49 = tail call double @sqrt(double noundef %48) #3
  %50 = add nsw i32 %24, -9
  %51 = sext i32 %50 to i64
  %52 = getelementptr inbounds float, ptr %15, i64 %51
  %53 = load float, ptr %52, align 4, !tbaa !5
  %54 = fpext float %53 to double
  %55 = tail call double @sqrt(double noundef %54) #3
  %56 = fmul double %49, %55
  %57 = fptrunc double %56 to float
  %58 = load float, ptr %46, align 4, !tbaa !5
  %59 = load float, ptr %40, align 4, !tbaa !5
  %60 = fadd float %58, %59
  %61 = load float, ptr %5, align 4, !tbaa !5
  %62 = load float, ptr %8, align 4, !tbaa !5
  %63 = fcmp oeq float %61, %62
  br i1 %63, label %64, label %111

64:                                               ; preds = %33
  %65 = load float, ptr %6, align 4, !tbaa !5
  %66 = load float, ptr %9, align 4, !tbaa !5
  %67 = fcmp oeq float %65, %66
  br i1 %67, label %68, label %106

68:                                               ; preds = %64
  %69 = load float, ptr %7, align 4, !tbaa !5
  %70 = fsub float %69, %60
  %71 = fneg float %69
  %72 = tail call float @llvm.fmuladd.f32(float %71, float 2.500000e-01, float %70)
  %73 = fcmp ogt float %72, 0.000000e+00
  %74 = fcmp ogt float %72, %57
  %or.cond451 = select i1 %73, i1 %74, i1 false
  %75 = fsub float %60, %62
  br i1 %or.cond451, label %76, label %80

76:                                               ; preds = %68
  %77 = fneg float %57
  %78 = fdiv float %77, %72
  %79 = tail call float @llvm.fmuladd.f32(float %78, float %57, float %75)
  br label %83

80:                                               ; preds = %68
  %81 = fadd float %45, %57
  %82 = fsub float %75, %81
  br label %83

83:                                               ; preds = %80, %76
  %.0 = phi float [ %79, %76 ], [ %82, %80 ]
  %84 = fcmp ogt float %.0, 0.000000e+00
  %85 = fcmp ogt float %.0, %45
  %or.cond452 = select i1 %84, i1 %85, i1 false
  br i1 %or.cond452, label %86, label %93

86:                                               ; preds = %83
  %87 = fneg float %45
  %88 = fdiv float %87, %.0
  %89 = tail call float @llvm.fmuladd.f32(float %88, float %45, float %62)
  %90 = fmul float %61, 5.000000e-01
  %91 = fcmp oge float %89, %90
  %92 = select i1 %91, float %89, float %90
  store i32 -2, ptr %12, align 4, !tbaa !9
  br label %432

93:                                               ; preds = %83
  %94 = fcmp ogt float %62, %45
  %95 = fsub float %62, %45
  %.0394 = select i1 %94, float %95, float 0.000000e+00
  %96 = fadd float %45, %57
  %97 = fcmp ogt float %60, %96
  br i1 %97, label %98, label %102

98:                                               ; preds = %93
  %99 = fsub float %60, %96
  %100 = fcmp ole float %.0394, %99
  %101 = select i1 %100, float %.0394, float %99
  br label %102

102:                                              ; preds = %98, %93
  %.1395 = phi float [ %101, %98 ], [ %.0394, %93 ]
  %103 = fmul float %61, 0x3FD54FDF40000000
  %104 = fcmp oge float %.1395, %103
  %105 = select i1 %104, float %.1395, float %103
  store i32 -3, ptr %12, align 4, !tbaa !9
  br label %432

106:                                              ; preds = %64
  store i32 -4, ptr %12, align 4, !tbaa !9
  %107 = fcmp ogt float %59, %58
  br i1 %107, label %.loopexit, label %108

108:                                              ; preds = %106
  %109 = fdiv float %59, %58
  %.pre = load i32, ptr %3, align 4, !tbaa !9
  %110 = insertelement <2 x float> <float 0.000000e+00, float poison>, float %109, i64 1
  br label %135

111:                                              ; preds = %33
  store i32 -4, ptr %12, align 4, !tbaa !9
  %112 = load i32, ptr %3, align 4, !tbaa !9
  %113 = shl i32 %112, 1
  %114 = sub nsw i32 %24, %113
  %115 = load float, ptr %9, align 4, !tbaa !5
  %116 = sext i32 %114 to i64
  %117 = getelementptr float, ptr %15, i64 %116
  %118 = getelementptr i8, ptr %117, i64 -16
  %119 = load float, ptr %118, align 4, !tbaa !5
  %120 = getelementptr i8, ptr %117, i64 -8
  %121 = load float, ptr %120, align 4, !tbaa !5
  %122 = fcmp ogt float %119, %121
  br i1 %122, label %.loopexit, label %123

123:                                              ; preds = %111
  %124 = load float, ptr %52, align 4, !tbaa !5
  %125 = getelementptr i8, ptr %35, i64 -44
  %126 = load float, ptr %125, align 4, !tbaa !5
  %127 = fcmp ogt float %124, %126
  br i1 %127, label %.loopexit, label %128

128:                                              ; preds = %123
  %129 = insertelement <2 x float> poison, float %119, i64 0
  %130 = insertelement <2 x float> %129, float %124, i64 1
  %131 = insertelement <2 x float> poison, float %121, i64 0
  %132 = insertelement <2 x float> %131, float %126, i64 1
  %133 = fdiv <2 x float> %130, %132
  %134 = add nsw i32 %24, -13
  br label %135

135:                                              ; preds = %128, %108
  %136 = phi i32 [ %.pre, %108 ], [ %112, %128 ]
  %.0380 = phi i32 [ %50, %108 ], [ %134, %128 ]
  %.0379 = phi float [ %62, %108 ], [ %115, %128 ]
  %137 = phi <2 x float> [ %110, %108 ], [ %133, %128 ]
  %138 = fmul float %61, 2.500000e-01
  %139 = extractelement <2 x float> %137, i64 0
  %140 = extractelement <2 x float> %137, i64 1
  %141 = fadd float %139, %140
  %142 = load i32, ptr %0, align 4, !tbaa !9
  %143 = shl i32 %142, 2
  %144 = add nsw i32 %143, -1
  %145 = add nsw i32 %144, %136
  %146 = icmp slt i32 %.0380, %145
  %147 = fcmp oeq float %140, 0.000000e+00
  %or.cond5484 = or i1 %147, %146
  br i1 %or.cond5484, label %._crit_edge490, label %.lr.ph489.preheader

.lr.ph489.preheader:                              ; preds = %135
  %148 = sext i32 %.0380 to i64
  %149 = sext i32 %145 to i64
  br label %.lr.ph489

150:                                              ; preds = %158
  %indvars.iv.next508 = add nsw i64 %indvars.iv507, -4
  %151 = icmp slt i64 %indvars.iv.next508, %149
  %152 = fcmp oeq float %160, 0.000000e+00
  %or.cond5 = or i1 %152, %151
  br i1 %or.cond5, label %._crit_edge490, label %.lr.ph489, !llvm.loop !11

.lr.ph489:                                        ; preds = %.lr.ph489.preheader, %150
  %indvars.iv507 = phi i64 [ %148, %.lr.ph489.preheader ], [ %indvars.iv.next508, %150 ]
  %.1383486 = phi float [ %140, %.lr.ph489.preheader ], [ %160, %150 ]
  %.1389485 = phi float [ %141, %.lr.ph489.preheader ], [ %161, %150 ]
  %153 = getelementptr inbounds float, ptr %15, i64 %indvars.iv507
  %154 = load float, ptr %153, align 4, !tbaa !5
  %155 = getelementptr i8, ptr %153, i64 -8
  %156 = load float, ptr %155, align 4, !tbaa !5
  %157 = fcmp ogt float %154, %156
  br i1 %157, label %.loopexit, label %158

158:                                              ; preds = %.lr.ph489
  %159 = fdiv float %154, %156
  %160 = fmul float %.1383486, %159
  %161 = fadd float %.1389485, %160
  %162 = fcmp oge float %160, %.1383486
  %163 = select i1 %162, float %160, float %.1383486
  %164 = fmul float %163, 1.000000e+02
  %165 = fcmp olt float %164, %161
  %166 = fcmp ogt float %161, 0x3FE20418A0000000
  %or.cond = or i1 %166, %165
  br i1 %or.cond, label %._crit_edge490, label %150

._crit_edge490:                                   ; preds = %158, %150, %135
  %.2390 = phi float [ %141, %135 ], [ %161, %150 ], [ %161, %158 ]
  %167 = fmul float %.2390, 0x3FF0CCCCC0000000
  %168 = fcmp olt float %167, 0x3FE20418A0000000
  br i1 %168, label %169, label %432

169:                                              ; preds = %._crit_edge490
  %170 = fpext float %.0379 to double
  %171 = fpext float %167 to double
  %172 = tail call double @sqrt(double noundef %171) #3
  %173 = fsub double 1.000000e+00, %172
  %174 = fmul double %173, %170
  %175 = fadd float %167, 1.000000e+00
  %176 = fpext float %175 to double
  %177 = fdiv double %174, %176
  %178 = fptrunc double %177 to float
  br label %432

179:                                              ; preds = %30
  %180 = load float, ptr %10, align 4, !tbaa !5
  %181 = fcmp oeq float %16, %180
  br i1 %181, label %182, label %261

182:                                              ; preds = %179
  store i32 -5, ptr %12, align 4, !tbaa !9
  %183 = fmul float %16, 2.500000e-01
  %184 = load i32, ptr %3, align 4, !tbaa !9
  %185 = shl i32 %184, 1
  %186 = sub nsw i32 %24, %185
  %187 = sext i32 %186 to i64
  %188 = getelementptr float, ptr %15, i64 %187
  %189 = getelementptr i8, ptr %188, i64 -8
  %190 = load float, ptr %189, align 4, !tbaa !5
  %191 = getelementptr i8, ptr %188, i64 -24
  %192 = load float, ptr %191, align 4, !tbaa !5
  %193 = getelementptr i8, ptr %188, i64 -32
  %194 = load float, ptr %193, align 4, !tbaa !5
  %195 = fcmp ogt float %194, %192
  br i1 %195, label %.loopexit, label %196

196:                                              ; preds = %182
  %197 = getelementptr i8, ptr %188, i64 -16
  %198 = load float, ptr %197, align 4, !tbaa !5
  %199 = fcmp ogt float %198, %190
  br i1 %199, label %.loopexit, label %200

200:                                              ; preds = %196
  %201 = insertelement <2 x float> poison, float %194, i64 0
  %202 = insertelement <2 x float> %201, float %198, i64 1
  %203 = insertelement <2 x float> poison, float %192, i64 0
  %204 = insertelement <2 x float> %203, float %190, i64 1
  %205 = fdiv <2 x float> %202, %204
  %206 = extractelement <2 x float> %205, i64 1
  %207 = fadd float %206, 1.000000e+00
  %208 = extractelement <2 x float> %205, i64 0
  %209 = fmul float %208, %207
  %210 = load i32, ptr %1, align 4, !tbaa !9
  %211 = load i32, ptr %0, align 4, !tbaa !9
  %212 = sub nsw i32 %210, %211
  %213 = icmp sgt i32 %212, 2
  br i1 %213, label %214, label %249

214:                                              ; preds = %200
  %215 = sext i32 %24 to i64
  %216 = getelementptr float, ptr %15, i64 %215
  %217 = getelementptr i8, ptr %216, i64 -52
  %218 = load float, ptr %217, align 4, !tbaa !5
  %219 = getelementptr i8, ptr %216, i64 -60
  %220 = load float, ptr %219, align 4, !tbaa !5
  %221 = fdiv float %218, %220
  %222 = fadd float %209, %221
  %223 = shl i32 %211, 2
  %224 = add i32 %184, -1
  %225 = add i32 %224, %223
  %226 = add nsw i32 %24, -17
  %227 = icmp slt i32 %226, %225
  %228 = fcmp oeq float %221, 0.000000e+00
  %or.cond7476 = select i1 %227, i1 true, i1 %228
  br i1 %or.cond7476, label %._crit_edge, label %.lr.ph480.preheader

.lr.ph480.preheader:                              ; preds = %214
  %229 = sext i32 %226 to i64
  %230 = sext i32 %225 to i64
  br label %.lr.ph480

231:                                              ; preds = %239
  %indvars.iv.next505 = add nsw i64 %indvars.iv504, -4
  %232 = icmp slt i64 %indvars.iv.next505, %230
  %233 = fcmp oeq float %241, 0.000000e+00
  %or.cond7 = or i1 %232, %233
  br i1 %or.cond7, label %._crit_edge, label %.lr.ph480, !llvm.loop !13

.lr.ph480:                                        ; preds = %.lr.ph480.preheader, %231
  %indvars.iv504 = phi i64 [ %229, %.lr.ph480.preheader ], [ %indvars.iv.next505, %231 ]
  %.2384478 = phi float [ %221, %.lr.ph480.preheader ], [ %241, %231 ]
  %.3391477 = phi float [ %222, %.lr.ph480.preheader ], [ %242, %231 ]
  %234 = getelementptr inbounds float, ptr %15, i64 %indvars.iv504
  %235 = load float, ptr %234, align 4, !tbaa !5
  %236 = getelementptr i8, ptr %234, i64 -8
  %237 = load float, ptr %236, align 4, !tbaa !5
  %238 = fcmp ogt float %235, %237
  br i1 %238, label %.loopexit, label %239

239:                                              ; preds = %.lr.ph480
  %240 = fdiv float %235, %237
  %241 = fmul float %.2384478, %240
  %242 = fadd float %.3391477, %241
  %243 = fcmp oge float %241, %.2384478
  %244 = select i1 %243, float %241, float %.2384478
  %245 = fmul float %244, 1.000000e+02
  %246 = fcmp olt float %245, %242
  %247 = fcmp ogt float %242, 0x3FE20418A0000000
  %or.cond3 = or i1 %247, %246
  br i1 %or.cond3, label %._crit_edge, label %231

._crit_edge:                                      ; preds = %239, %231, %214
  %.4392 = phi float [ %222, %214 ], [ %242, %231 ], [ %242, %239 ]
  %248 = fmul float %.4392, 0x3FF0CCCCC0000000
  br label %249

249:                                              ; preds = %._crit_edge, %200
  %.5393 = phi float [ %248, %._crit_edge ], [ %209, %200 ]
  %250 = fcmp olt float %.5393, 0x3FE20418A0000000
  br i1 %250, label %251, label %432

251:                                              ; preds = %249
  %252 = fpext float %180 to double
  %253 = fpext float %.5393 to double
  %254 = tail call double @sqrt(double noundef %253) #3
  %255 = fsub double 1.000000e+00, %254
  %256 = fmul double %255, %252
  %257 = fadd float %.5393, 1.000000e+00
  %258 = fpext float %257 to double
  %259 = fdiv double %256, %258
  %260 = fptrunc double %259 to float
  br label %432

261:                                              ; preds = %179
  %262 = load i32, ptr %12, align 4, !tbaa !9
  switch i32 %262, label %267 [
    i32 -6, label %263
    i32 -18, label %268
  ]

263:                                              ; preds = %261
  %264 = load float, ptr %13, align 4, !tbaa !5
  %265 = fsub float 1.000000e+00, %264
  %266 = tail call float @llvm.fmuladd.f32(float %265, float 0x3FD54FDF40000000, float %264)
  br label %268

267:                                              ; preds = %261
  br label %268

268:                                              ; preds = %261, %267, %263
  %.sink = phi float [ 2.500000e-01, %267 ], [ %266, %263 ], [ 0x3FB54FDF40000000, %261 ]
  store float %.sink, ptr %13, align 4, !tbaa !5
  %269 = load float, ptr %5, align 4, !tbaa !5
  %270 = fmul float %.sink, %269
  store i32 -6, ptr %12, align 4, !tbaa !9
  br label %432

271:                                              ; preds = %20
  %272 = add nsw i32 %21, 1
  %273 = icmp eq i32 %25, %272
  br i1 %273, label %274, label %344

274:                                              ; preds = %271
  %275 = load float, ptr %6, align 4, !tbaa !5
  %276 = load float, ptr %9, align 4, !tbaa !5
  %277 = fcmp oeq float %275, %276
  br i1 %277, label %278, label %343

278:                                              ; preds = %274
  %279 = load float, ptr %7, align 4, !tbaa !5
  %280 = load float, ptr %10, align 4, !tbaa !5
  %281 = fcmp oeq float %279, %280
  br i1 %281, label %282, label %343

282:                                              ; preds = %278
  store i32 -7, ptr %12, align 4, !tbaa !9
  %283 = fmul float %275, 0x3FD54FDF40000000
  %284 = sext i32 %24 to i64
  %285 = getelementptr float, ptr %15, i64 %284
  %286 = getelementptr i8, ptr %285, i64 -20
  %287 = load float, ptr %286, align 4, !tbaa !5
  %288 = getelementptr i8, ptr %285, i64 -28
  %289 = load float, ptr %288, align 4, !tbaa !5
  %290 = fcmp ogt float %287, %289
  br i1 %290, label %.loopexit, label %291

291:                                              ; preds = %282
  %292 = fdiv float %287, %289
  %293 = fcmp oeq float %292, 0.000000e+00
  br i1 %293, label %.loopexit458, label %294

294:                                              ; preds = %291
  %295 = load i32, ptr %0, align 4, !tbaa !9
  %296 = shl i32 %295, 2
  %297 = add nsw i32 %296, -1
  %298 = load i32, ptr %3, align 4, !tbaa !9
  %299 = add nsw i32 %297, %298
  %300 = load i32, ptr %1, align 4, !tbaa !9
  %301 = shl i32 %300, 2
  %302 = add i32 %298, -9
  %303 = add i32 %302, %301
  %.not449468 = icmp slt i32 %303, %299
  br i1 %.not449468, label %.loopexit458, label %.lr.ph472.preheader

.lr.ph472.preheader:                              ; preds = %294
  %304 = sext i32 %303 to i64
  %305 = sext i32 %299 to i64
  br label %.lr.ph472

.lr.ph472:                                        ; preds = %311, %.lr.ph472.preheader
  %indvars.iv501 = phi i64 [ %304, %.lr.ph472.preheader ], [ %indvars.iv.next502, %311 ]
  %.3385470 = phi float [ %292, %.lr.ph472.preheader ], [ %314, %311 ]
  %.0386469 = phi float [ %292, %.lr.ph472.preheader ], [ %313, %311 ]
  %306 = getelementptr inbounds float, ptr %15, i64 %indvars.iv501
  %307 = load float, ptr %306, align 4, !tbaa !5
  %308 = getelementptr i8, ptr %306, i64 -8
  %309 = load float, ptr %308, align 4, !tbaa !5
  %310 = fcmp ogt float %307, %309
  br i1 %310, label %.loopexit, label %311

311:                                              ; preds = %.lr.ph472
  %312 = fdiv float %307, %309
  %313 = fmul float %.0386469, %312
  %314 = fadd float %.3385470, %313
  %315 = fcmp oge float %313, %.0386469
  %316 = select i1 %315, float %313, float %.0386469
  %317 = fmul float %316, 1.000000e+02
  %318 = fcmp olt float %317, %314
  %indvars.iv.next502 = add nsw i64 %indvars.iv501, -4
  %.not449 = icmp slt i64 %indvars.iv.next502, %305
  %or.cond516 = select i1 %318, i1 true, i1 %.not449
  br i1 %or.cond516, label %.loopexit458, label %.lr.ph472, !llvm.loop !14

.loopexit458:                                     ; preds = %311, %294, %291
  %.4 = phi float [ %292, %291 ], [ %292, %294 ], [ %314, %311 ]
  %319 = fmul float %.4, 0x3FF0CCCCC0000000
  %sqrtf450 = tail call float @sqrtf(float noundef %319) #1
  %320 = load float, ptr %6, align 4, !tbaa !5
  %321 = tail call float @llvm.fmuladd.f32(float %sqrtf450, float %sqrtf450, float 1.000000e+00)
  %322 = fdiv float %320, %321
  %323 = load float, ptr %7, align 4, !tbaa !5
  %324 = fneg float %322
  %325 = tail call float @llvm.fmuladd.f32(float %323, float 5.000000e-01, float %324)
  %326 = fcmp ogt float %325, 0.000000e+00
  %327 = fmul float %sqrtf450, %322
  %328 = fcmp ogt float %325, %327
  %or.cond454 = select i1 %326, i1 %328, i1 false
  br i1 %or.cond454, label %329, label %337

329:                                              ; preds = %.loopexit458
  %330 = fdiv float %sqrtf450, %325
  %331 = fmul float %322, 0xBFF028F5C0000000
  %332 = fmul float %331, %330
  %333 = tail call float @llvm.fmuladd.f32(float %332, float %sqrtf450, float 1.000000e+00)
  %334 = fmul float %322, %333
  %335 = fcmp oge float %283, %334
  %336 = select i1 %335, float %283, float %334
  br label %432

337:                                              ; preds = %.loopexit458
  %338 = fneg float %sqrtf450
  %339 = tail call float @llvm.fmuladd.f32(float %338, float 0x3FF028F5C0000000, float 1.000000e+00)
  %340 = fmul float %339, %322
  %341 = fcmp oge float %283, %340
  %342 = select i1 %341, float %283, float %340
  store i32 -8, ptr %12, align 4, !tbaa !9
  br label %432

343:                                              ; preds = %278, %274
  %.2396.v = phi float [ 5.000000e-01, %278 ], [ 2.500000e-01, %274 ]
  %.2396 = fmul float %275, %.2396.v
  store i32 -9, ptr %12, align 4, !tbaa !9
  br label %432

344:                                              ; preds = %271
  %345 = add nsw i32 %21, 2
  %346 = icmp eq i32 %25, %345
  br i1 %346, label %347, label %429

347:                                              ; preds = %344
  %348 = load float, ptr %7, align 4, !tbaa !5
  %349 = load float, ptr %10, align 4, !tbaa !5
  %350 = fcmp oeq float %348, %349
  br i1 %350, label %351, label %427

351:                                              ; preds = %347
  %352 = sext i32 %24 to i64
  %353 = getelementptr float, ptr %15, i64 %352
  %354 = getelementptr i8, ptr %353, i64 -20
  %355 = load float, ptr %354, align 4, !tbaa !5
  %356 = fmul float %355, 2.000000e+00
  %357 = getelementptr i8, ptr %353, i64 -28
  %358 = load float, ptr %357, align 4, !tbaa !5
  %359 = fcmp olt float %356, %358
  br i1 %359, label %360, label %427

360:                                              ; preds = %351
  store i32 -10, ptr %12, align 4, !tbaa !9
  %361 = fmul float %348, 0x3FD54FDF40000000
  %362 = fcmp ogt float %355, %358
  br i1 %362, label %.loopexit, label %363

363:                                              ; preds = %360
  %364 = fdiv float %355, %358
  %365 = fcmp oeq float %364, 0.000000e+00
  br i1 %365, label %.loopexit460, label %366

366:                                              ; preds = %363
  %367 = load i32, ptr %0, align 4, !tbaa !9
  %368 = shl i32 %367, 2
  %369 = add nsw i32 %368, -1
  %370 = load i32, ptr %3, align 4, !tbaa !9
  %371 = add nsw i32 %369, %370
  %372 = load i32, ptr %1, align 4, !tbaa !9
  %373 = shl i32 %372, 2
  %374 = add i32 %370, -9
  %375 = add i32 %374, %373
  %.not462 = icmp slt i32 %375, %371
  br i1 %.not462, label %.loopexit460, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %366
  %376 = sext i32 %375 to i64
  %377 = sext i32 %371 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %383, %.lr.ph.preheader
  %indvars.iv = phi i64 [ %376, %.lr.ph.preheader ], [ %indvars.iv.next, %383 ]
  %.5464 = phi float [ %364, %.lr.ph.preheader ], [ %386, %383 ]
  %.1387463 = phi float [ %364, %.lr.ph.preheader ], [ %385, %383 ]
  %378 = getelementptr inbounds float, ptr %15, i64 %indvars.iv
  %379 = load float, ptr %378, align 4, !tbaa !5
  %380 = getelementptr i8, ptr %378, i64 -8
  %381 = load float, ptr %380, align 4, !tbaa !5
  %382 = fcmp ogt float %379, %381
  br i1 %382, label %.loopexit, label %383

383:                                              ; preds = %.lr.ph
  %384 = fdiv float %379, %381
  %385 = fmul float %.1387463, %384
  %386 = fadd float %.5464, %385
  %387 = fmul float %385, 1.000000e+02
  %388 = fcmp olt float %387, %386
  %indvars.iv.next = add nsw i64 %indvars.iv, -4
  %.not = icmp slt i64 %indvars.iv.next, %377
  %or.cond517 = select i1 %388, i1 true, i1 %.not
  br i1 %or.cond517, label %.loopexit460, label %.lr.ph, !llvm.loop !15

.loopexit460:                                     ; preds = %383, %366, %363
  %.6 = phi float [ %364, %363 ], [ %364, %366 ], [ %386, %383 ]
  %389 = fmul float %.6, 0x3FF0CCCCC0000000
  %sqrtf = tail call float @sqrtf(float noundef %389) #1
  %390 = load float, ptr %7, align 4, !tbaa !5
  %391 = tail call float @llvm.fmuladd.f32(float %sqrtf, float %sqrtf, float 1.000000e+00)
  %392 = fdiv float %390, %391
  %393 = load float, ptr %357, align 4, !tbaa !5
  %394 = getelementptr i8, ptr %353, i64 -36
  %395 = load float, ptr %394, align 4, !tbaa !5
  %396 = fadd float %393, %395
  %397 = fpext float %396 to double
  %398 = getelementptr i8, ptr %353, i64 -44
  %399 = load float, ptr %398, align 4, !tbaa !5
  %400 = fpext float %399 to double
  %401 = tail call double @sqrt(double noundef %400) #3
  %402 = load float, ptr %394, align 4, !tbaa !5
  %403 = fpext float %402 to double
  %404 = tail call double @sqrt(double noundef %403) #3
  %405 = fneg double %401
  %406 = tail call double @llvm.fmuladd.f64(double %405, double %404, double %397)
  %407 = fpext float %392 to double
  %408 = fsub double %406, %407
  %409 = fptrunc double %408 to float
  %410 = fcmp ogt float %409, 0.000000e+00
  %411 = fmul float %sqrtf, %392
  %412 = fcmp olt float %411, %409
  %or.cond456 = select i1 %410, i1 %412, i1 false
  br i1 %or.cond456, label %413, label %421

413:                                              ; preds = %.loopexit460
  %414 = fdiv float %sqrtf, %409
  %415 = fmul float %392, 0xBFF028F5C0000000
  %416 = fmul float %415, %414
  %417 = tail call float @llvm.fmuladd.f32(float %416, float %sqrtf, float 1.000000e+00)
  %418 = fmul float %392, %417
  %419 = fcmp oge float %361, %418
  %420 = select i1 %419, float %361, float %418
  br label %432

421:                                              ; preds = %.loopexit460
  %422 = fneg float %sqrtf
  %423 = tail call float @llvm.fmuladd.f32(float %422, float 0x3FF028F5C0000000, float 1.000000e+00)
  %424 = fmul float %423, %392
  %425 = fcmp oge float %361, %424
  %426 = select i1 %425, float %361, float %424
  br label %432

427:                                              ; preds = %351, %347
  %428 = fmul float %348, 2.500000e-01
  store i32 -11, ptr %12, align 4, !tbaa !9
  br label %432

429:                                              ; preds = %344
  %430 = icmp sgt i32 %25, %345
  br i1 %430, label %431, label %432

431:                                              ; preds = %429
  store i32 -12, ptr %12, align 4, !tbaa !9
  br label %432

432:                                              ; preds = %329, %337, %343, %429, %431, %427, %421, %413, %._crit_edge490, %169, %86, %102, %249, %251, %268
  %.3397 = phi float [ %92, %86 ], [ %105, %102 ], [ %178, %169 ], [ %138, %._crit_edge490 ], [ %260, %251 ], [ %183, %249 ], [ %270, %268 ], [ %336, %329 ], [ %342, %337 ], [ %.2396, %343 ], [ %420, %413 ], [ %426, %421 ], [ %428, %427 ], [ 0.000000e+00, %431 ], [ undef, %429 ]
  store float %.3397, ptr %11, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph, %.lr.ph472, %.lr.ph480, %.lr.ph489, %360, %282, %182, %196, %123, %111, %106, %432, %18
  ret void
}

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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


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