; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (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 i32 @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 i32, align 4
  %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 ptr, align 8
  %30 = alloca i64, align 8
  %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 float, align 4
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca float, align 4
  %43 = alloca i32, align 4
  store ptr %0, ptr %16, align 8, !tbaa !5
  store ptr %1, ptr %17, align 8, !tbaa !5
  store ptr %2, ptr %18, align 8, !tbaa !5
  store ptr %3, ptr %19, align 8, !tbaa !5
  store ptr %4, ptr %20, align 8, !tbaa !5
  store ptr %5, ptr %21, align 8, !tbaa !5
  store ptr %6, ptr %22, align 8, !tbaa !5
  store ptr %7, ptr %23, align 8, !tbaa !5
  store ptr %8, ptr %24, align 8, !tbaa !5
  store ptr %9, ptr %25, align 8, !tbaa !5
  store ptr %10, ptr %26, align 8, !tbaa !5
  store ptr %11, ptr %27, align 8, !tbaa !5
  store ptr %12, ptr %28, align 8, !tbaa !5
  store ptr %13, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 8, 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
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  %44 = load ptr, ptr %18, align 8, !tbaa !5
  %45 = getelementptr inbounds float, ptr %44, i32 -1
  store ptr %45, ptr %18, align 8, !tbaa !5
  %46 = load ptr, ptr %21, align 8, !tbaa !5
  %47 = load float, ptr %46, align 4, !tbaa !9
  %48 = fcmp ole float %47, 0.000000e+00
  br i1 %48, label %49, label %55

49:                                               ; preds = %14
  %50 = load ptr, ptr %21, align 8, !tbaa !5
  %51 = load float, ptr %50, align 4, !tbaa !9
  %52 = fneg float %51
  %53 = load ptr, ptr %27, align 8, !tbaa !5
  store float %52, ptr %53, align 4, !tbaa !9
  %54 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -1, ptr %54, align 8, !tbaa !11
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

55:                                               ; preds = %14
  %56 = load ptr, ptr %17, align 8, !tbaa !5
  %57 = load i64, ptr %56, align 8, !tbaa !11
  %58 = shl i64 %57, 2
  %59 = load ptr, ptr %19, align 8, !tbaa !5
  %60 = load i64, ptr %59, align 8, !tbaa !11
  %61 = add nsw i64 %58, %60
  store i64 %61, ptr %38, align 8, !tbaa !11
  %62 = load ptr, ptr %20, align 8, !tbaa !5
  %63 = load i64, ptr %62, align 8, !tbaa !11
  %64 = load ptr, ptr %17, align 8, !tbaa !5
  %65 = load i64, ptr %64, align 8, !tbaa !11
  %66 = icmp eq i64 %63, %65
  br i1 %66, label %67, label %646

67:                                               ; preds = %55
  %68 = load ptr, ptr %21, align 8, !tbaa !5
  %69 = load float, ptr %68, align 4, !tbaa !9
  %70 = load ptr, ptr %24, align 8, !tbaa !5
  %71 = load float, ptr %70, align 4, !tbaa !9
  %72 = fcmp oeq float %69, %71
  br i1 %72, label %79, label %73

73:                                               ; preds = %67
  %74 = load ptr, ptr %21, align 8, !tbaa !5
  %75 = load float, ptr %74, align 4, !tbaa !9
  %76 = load ptr, ptr %25, align 8, !tbaa !5
  %77 = load float, ptr %76, align 4, !tbaa !9
  %78 = fcmp oeq float %75, %77
  br i1 %78, label %79, label %446

79:                                               ; preds = %73, %67
  %80 = load ptr, ptr %18, align 8, !tbaa !5
  %81 = load i64, ptr %38, align 8, !tbaa !11
  %82 = sub nsw i64 %81, 3
  %83 = getelementptr inbounds float, ptr %80, 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 %18, align 8, !tbaa !5
  %88 = load i64, ptr %38, align 8, !tbaa !11
  %89 = sub nsw i64 %88, 5
  %90 = getelementptr inbounds float, ptr %87, i64 %89
  %91 = load float, ptr %90, align 4, !tbaa !9
  %92 = fpext float %91 to double
  %93 = call double @sqrt(double noundef %92) #4
  %94 = fmul double %86, %93
  %95 = fptrunc double %94 to float
  store float %95, ptr %35, align 4, !tbaa !9
  %96 = load ptr, ptr %18, align 8, !tbaa !5
  %97 = load i64, ptr %38, align 8, !tbaa !11
  %98 = sub nsw i64 %97, 7
  %99 = getelementptr inbounds float, ptr %96, i64 %98
  %100 = load float, ptr %99, align 4, !tbaa !9
  %101 = fpext float %100 to double
  %102 = call double @sqrt(double noundef %101) #4
  %103 = load ptr, ptr %18, align 8, !tbaa !5
  %104 = load i64, ptr %38, align 8, !tbaa !11
  %105 = sub nsw i64 %104, 9
  %106 = getelementptr inbounds float, ptr %103, i64 %105
  %107 = load float, ptr %106, align 4, !tbaa !9
  %108 = fpext float %107 to double
  %109 = call double @sqrt(double noundef %108) #4
  %110 = fmul double %102, %109
  %111 = fptrunc double %110 to float
  store float %111, ptr %36, align 4, !tbaa !9
  %112 = load ptr, ptr %18, align 8, !tbaa !5
  %113 = load i64, ptr %38, align 8, !tbaa !11
  %114 = sub nsw i64 %113, 7
  %115 = getelementptr inbounds float, ptr %112, i64 %114
  %116 = load float, ptr %115, align 4, !tbaa !9
  %117 = load ptr, ptr %18, align 8, !tbaa !5
  %118 = load i64, ptr %38, align 8, !tbaa !11
  %119 = sub nsw i64 %118, 5
  %120 = getelementptr inbounds float, ptr %117, i64 %119
  %121 = load float, ptr %120, align 4, !tbaa !9
  %122 = fadd float %116, %121
  store float %122, ptr %34, align 4, !tbaa !9
  %123 = load ptr, ptr %21, align 8, !tbaa !5
  %124 = load float, ptr %123, align 4, !tbaa !9
  %125 = load ptr, ptr %24, align 8, !tbaa !5
  %126 = load float, ptr %125, align 4, !tbaa !9
  %127 = fcmp oeq float %124, %126
  br i1 %127, label %128, label %252

128:                                              ; preds = %79
  %129 = load ptr, ptr %22, align 8, !tbaa !5
  %130 = load float, ptr %129, align 4, !tbaa !9
  %131 = load ptr, ptr %25, align 8, !tbaa !5
  %132 = load float, ptr %131, align 4, !tbaa !9
  %133 = fcmp oeq float %130, %132
  br i1 %133, label %134, label %252

134:                                              ; preds = %128
  %135 = load ptr, ptr %23, align 8, !tbaa !5
  %136 = load float, ptr %135, align 4, !tbaa !9
  %137 = load float, ptr %34, align 4, !tbaa !9
  %138 = fsub float %136, %137
  %139 = load ptr, ptr %23, align 8, !tbaa !5
  %140 = load float, ptr %139, align 4, !tbaa !9
  %141 = fneg float %140
  %142 = call float @llvm.fmuladd.f32(float %141, float 2.500000e-01, float %138)
  store float %142, ptr %42, align 4, !tbaa !9
  %143 = load float, ptr %42, align 4, !tbaa !9
  %144 = fcmp ogt float %143, 0.000000e+00
  br i1 %144, label %145, label %160

145:                                              ; preds = %134
  %146 = load float, ptr %42, align 4, !tbaa !9
  %147 = load float, ptr %36, align 4, !tbaa !9
  %148 = fcmp ogt float %146, %147
  br i1 %148, label %149, label %160

149:                                              ; preds = %145
  %150 = load float, ptr %34, align 4, !tbaa !9
  %151 = load ptr, ptr %24, align 8, !tbaa !5
  %152 = load float, ptr %151, align 4, !tbaa !9
  %153 = fsub float %150, %152
  %154 = load float, ptr %36, align 4, !tbaa !9
  %155 = load float, ptr %42, align 4, !tbaa !9
  %156 = fdiv float %154, %155
  %157 = load float, ptr %36, align 4, !tbaa !9
  %158 = fneg float %156
  %159 = call float @llvm.fmuladd.f32(float %158, float %157, float %153)
  store float %159, ptr %41, align 4, !tbaa !9
  br label %169

160:                                              ; preds = %145, %134
  %161 = load float, ptr %34, align 4, !tbaa !9
  %162 = load ptr, ptr %24, align 8, !tbaa !5
  %163 = load float, ptr %162, align 4, !tbaa !9
  %164 = fsub float %161, %163
  %165 = load float, ptr %35, align 4, !tbaa !9
  %166 = load float, ptr %36, align 4, !tbaa !9
  %167 = fadd float %165, %166
  %168 = fsub float %164, %167
  store float %168, ptr %41, align 4, !tbaa !9
  br label %169

169:                                              ; preds = %160, %149
  %170 = load float, ptr %41, align 4, !tbaa !9
  %171 = fcmp ogt float %170, 0.000000e+00
  br i1 %171, label %172, label %200

172:                                              ; preds = %169
  %173 = load float, ptr %41, align 4, !tbaa !9
  %174 = load float, ptr %35, align 4, !tbaa !9
  %175 = fcmp ogt float %173, %174
  br i1 %175, label %176, label %200

176:                                              ; preds = %172
  %177 = load ptr, ptr %24, align 8, !tbaa !5
  %178 = load float, ptr %177, align 4, !tbaa !9
  %179 = load float, ptr %35, align 4, !tbaa !9
  %180 = load float, ptr %41, align 4, !tbaa !9
  %181 = fdiv float %179, %180
  %182 = load float, ptr %35, align 4, !tbaa !9
  %183 = fneg float %181
  %184 = call float @llvm.fmuladd.f32(float %183, float %182, float %178)
  store float %184, ptr %31, align 4, !tbaa !9
  %185 = load ptr, ptr %21, align 8, !tbaa !5
  %186 = load float, ptr %185, align 4, !tbaa !9
  %187 = fmul float %186, 5.000000e-01
  store float %187, ptr %32, align 4, !tbaa !9
  %188 = load float, ptr %31, align 4, !tbaa !9
  %189 = load float, ptr %32, align 4, !tbaa !9
  %190 = fcmp oge float %188, %189
  br i1 %190, label %191, label %193

191:                                              ; preds = %176
  %192 = load float, ptr %31, align 4, !tbaa !9
  br label %195

193:                                              ; preds = %176
  %194 = load float, ptr %32, align 4, !tbaa !9
  br label %195

195:                                              ; preds = %193, %191
  %196 = phi float [ %192, %191 ], [ %194, %193 ]
  %197 = fpext float %196 to double
  %198 = fptrunc double %197 to float
  store float %198, ptr %33, align 4, !tbaa !9
  %199 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -2, ptr %199, align 8, !tbaa !11
  br label %251

200:                                              ; preds = %172, %169
  store float 0.000000e+00, ptr %33, align 4, !tbaa !9
  %201 = load ptr, ptr %24, align 8, !tbaa !5
  %202 = load float, ptr %201, align 4, !tbaa !9
  %203 = load float, ptr %35, align 4, !tbaa !9
  %204 = fcmp ogt float %202, %203
  br i1 %204, label %205, label %210

205:                                              ; preds = %200
  %206 = load ptr, ptr %24, align 8, !tbaa !5
  %207 = load float, ptr %206, align 4, !tbaa !9
  %208 = load float, ptr %35, align 4, !tbaa !9
  %209 = fsub float %207, %208
  store float %209, ptr %33, align 4, !tbaa !9
  br label %210

210:                                              ; preds = %205, %200
  %211 = load float, ptr %34, align 4, !tbaa !9
  %212 = load float, ptr %35, align 4, !tbaa !9
  %213 = load float, ptr %36, align 4, !tbaa !9
  %214 = fadd float %212, %213
  %215 = fcmp ogt float %211, %214
  br i1 %215, label %216, label %234

216:                                              ; preds = %210
  %217 = load float, ptr %33, align 4, !tbaa !9
  store float %217, ptr %31, align 4, !tbaa !9
  %218 = load float, ptr %34, align 4, !tbaa !9
  %219 = load float, ptr %35, align 4, !tbaa !9
  %220 = load float, ptr %36, align 4, !tbaa !9
  %221 = fadd float %219, %220
  %222 = fsub float %218, %221
  store float %222, ptr %32, align 4, !tbaa !9
  %223 = load float, ptr %31, align 4, !tbaa !9
  %224 = load float, ptr %32, align 4, !tbaa !9
  %225 = fcmp ole float %223, %224
  br i1 %225, label %226, label %228

226:                                              ; preds = %216
  %227 = load float, ptr %31, align 4, !tbaa !9
  br label %230

228:                                              ; preds = %216
  %229 = load float, ptr %32, align 4, !tbaa !9
  br label %230

230:                                              ; preds = %228, %226
  %231 = phi float [ %227, %226 ], [ %229, %228 ]
  %232 = fpext float %231 to double
  %233 = fptrunc double %232 to float
  store float %233, ptr %33, align 4, !tbaa !9
  br label %234

234:                                              ; preds = %230, %210
  %235 = load float, ptr %33, align 4, !tbaa !9
  store float %235, ptr %31, align 4, !tbaa !9
  %236 = load ptr, ptr %21, align 8, !tbaa !5
  %237 = load float, ptr %236, align 4, !tbaa !9
  %238 = fmul float %237, 0x3FD54FDF40000000
  store float %238, ptr %32, align 4, !tbaa !9
  %239 = load float, ptr %31, align 4, !tbaa !9
  %240 = load float, ptr %32, align 4, !tbaa !9
  %241 = fcmp oge float %239, %240
  br i1 %241, label %242, label %244

242:                                              ; preds = %234
  %243 = load float, ptr %31, align 4, !tbaa !9
  br label %246

244:                                              ; preds = %234
  %245 = load float, ptr %32, align 4, !tbaa !9
  br label %246

246:                                              ; preds = %244, %242
  %247 = phi float [ %243, %242 ], [ %245, %244 ]
  %248 = fpext float %247 to double
  %249 = fptrunc double %248 to float
  store float %249, ptr %33, align 4, !tbaa !9
  %250 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -3, ptr %250, align 8, !tbaa !11
  br label %251

251:                                              ; preds = %246, %195
  br label %445

252:                                              ; preds = %128, %79
  %253 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -4, ptr %253, align 8, !tbaa !11
  %254 = load ptr, ptr %21, align 8, !tbaa !5
  %255 = load float, ptr %254, align 4, !tbaa !9
  %256 = fmul float %255, 2.500000e-01
  store float %256, ptr %33, align 4, !tbaa !9
  %257 = load ptr, ptr %21, align 8, !tbaa !5
  %258 = load float, ptr %257, align 4, !tbaa !9
  %259 = load ptr, ptr %24, align 8, !tbaa !5
  %260 = load float, ptr %259, align 4, !tbaa !9
  %261 = fcmp oeq float %258, %260
  br i1 %261, label %262, label %291

262:                                              ; preds = %252
  %263 = load ptr, ptr %24, align 8, !tbaa !5
  %264 = load float, ptr %263, align 4, !tbaa !9
  store float %264, ptr %40, align 4, !tbaa !9
  store float 0.000000e+00, ptr %34, align 4, !tbaa !9
  %265 = load ptr, ptr %18, align 8, !tbaa !5
  %266 = load i64, ptr %38, align 8, !tbaa !11
  %267 = sub nsw i64 %266, 5
  %268 = getelementptr inbounds float, ptr %265, i64 %267
  %269 = load float, ptr %268, align 4, !tbaa !9
  %270 = load ptr, ptr %18, align 8, !tbaa !5
  %271 = load i64, ptr %38, align 8, !tbaa !11
  %272 = sub nsw i64 %271, 7
  %273 = getelementptr inbounds float, ptr %270, i64 %272
  %274 = load float, ptr %273, align 4, !tbaa !9
  %275 = fcmp ogt float %269, %274
  br i1 %275, label %276, label %277

276:                                              ; preds = %262
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

277:                                              ; preds = %262
  %278 = load ptr, ptr %18, align 8, !tbaa !5
  %279 = load i64, ptr %38, align 8, !tbaa !11
  %280 = sub nsw i64 %279, 5
  %281 = getelementptr inbounds float, ptr %278, i64 %280
  %282 = load float, ptr %281, align 4, !tbaa !9
  %283 = load ptr, ptr %18, align 8, !tbaa !5
  %284 = load i64, ptr %38, align 8, !tbaa !11
  %285 = sub nsw i64 %284, 7
  %286 = getelementptr inbounds float, ptr %283, i64 %285
  %287 = load float, ptr %286, align 4, !tbaa !9
  %288 = fdiv float %282, %287
  store float %288, ptr %36, align 4, !tbaa !9
  %289 = load i64, ptr %38, align 8, !tbaa !11
  %290 = sub nsw i64 %289, 9
  store i64 %290, ptr %39, align 8, !tbaa !11
  br label %354

291:                                              ; preds = %252
  %292 = load i64, ptr %38, align 8, !tbaa !11
  %293 = load ptr, ptr %19, align 8, !tbaa !5
  %294 = load i64, ptr %293, align 8, !tbaa !11
  %295 = shl i64 %294, 1
  %296 = sub nsw i64 %292, %295
  store i64 %296, ptr %39, align 8, !tbaa !11
  %297 = load ptr, ptr %18, align 8, !tbaa !5
  %298 = load i64, ptr %39, align 8, !tbaa !11
  %299 = sub nsw i64 %298, 2
  %300 = getelementptr inbounds float, ptr %297, i64 %299
  %301 = load float, ptr %300, align 4, !tbaa !9
  store float %301, ptr %36, align 4, !tbaa !9
  %302 = load ptr, ptr %25, align 8, !tbaa !5
  %303 = load float, ptr %302, align 4, !tbaa !9
  store float %303, ptr %40, align 4, !tbaa !9
  %304 = load ptr, ptr %18, align 8, !tbaa !5
  %305 = load i64, ptr %39, align 8, !tbaa !11
  %306 = sub nsw i64 %305, 4
  %307 = getelementptr inbounds float, ptr %304, i64 %306
  %308 = load float, ptr %307, align 4, !tbaa !9
  %309 = load ptr, ptr %18, align 8, !tbaa !5
  %310 = load i64, ptr %39, align 8, !tbaa !11
  %311 = sub nsw i64 %310, 2
  %312 = getelementptr inbounds float, ptr %309, i64 %311
  %313 = load float, ptr %312, align 4, !tbaa !9
  %314 = fcmp ogt float %308, %313
  br i1 %314, label %315, label %316

315:                                              ; preds = %291
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

316:                                              ; preds = %291
  %317 = load ptr, ptr %18, align 8, !tbaa !5
  %318 = load i64, ptr %39, align 8, !tbaa !11
  %319 = sub nsw i64 %318, 4
  %320 = getelementptr inbounds float, ptr %317, i64 %319
  %321 = load float, ptr %320, align 4, !tbaa !9
  %322 = load ptr, ptr %18, align 8, !tbaa !5
  %323 = load i64, ptr %39, align 8, !tbaa !11
  %324 = sub nsw i64 %323, 2
  %325 = getelementptr inbounds float, ptr %322, i64 %324
  %326 = load float, ptr %325, align 4, !tbaa !9
  %327 = fdiv float %321, %326
  store float %327, ptr %34, align 4, !tbaa !9
  %328 = load ptr, ptr %18, align 8, !tbaa !5
  %329 = load i64, ptr %38, align 8, !tbaa !11
  %330 = sub nsw i64 %329, 9
  %331 = getelementptr inbounds float, ptr %328, i64 %330
  %332 = load float, ptr %331, align 4, !tbaa !9
  %333 = load ptr, ptr %18, align 8, !tbaa !5
  %334 = load i64, ptr %38, align 8, !tbaa !11
  %335 = sub nsw i64 %334, 11
  %336 = getelementptr inbounds float, ptr %333, i64 %335
  %337 = load float, ptr %336, align 4, !tbaa !9
  %338 = fcmp ogt float %332, %337
  br i1 %338, label %339, label %340

339:                                              ; preds = %316
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

340:                                              ; preds = %316
  %341 = load ptr, ptr %18, align 8, !tbaa !5
  %342 = load i64, ptr %38, align 8, !tbaa !11
  %343 = sub nsw i64 %342, 9
  %344 = getelementptr inbounds float, ptr %341, i64 %343
  %345 = load float, ptr %344, align 4, !tbaa !9
  %346 = load ptr, ptr %18, align 8, !tbaa !5
  %347 = load i64, ptr %38, align 8, !tbaa !11
  %348 = sub nsw i64 %347, 11
  %349 = getelementptr inbounds float, ptr %346, i64 %348
  %350 = load float, ptr %349, align 4, !tbaa !9
  %351 = fdiv float %345, %350
  store float %351, ptr %36, align 4, !tbaa !9
  %352 = load i64, ptr %38, align 8, !tbaa !11
  %353 = sub nsw i64 %352, 13
  store i64 %353, ptr %39, align 8, !tbaa !11
  br label %354

354:                                              ; preds = %340, %277
  %355 = load float, ptr %36, align 4, !tbaa !9
  %356 = load float, ptr %34, align 4, !tbaa !9
  %357 = fadd float %356, %355
  store float %357, ptr %34, align 4, !tbaa !9
  %358 = load ptr, ptr %16, align 8, !tbaa !5
  %359 = load i64, ptr %358, align 8, !tbaa !11
  %360 = shl i64 %359, 2
  %361 = sub nsw i64 %360, 1
  %362 = load ptr, ptr %19, align 8, !tbaa !5
  %363 = load i64, ptr %362, align 8, !tbaa !11
  %364 = add nsw i64 %361, %363
  store i64 %364, ptr %30, align 8, !tbaa !11
  %365 = load i64, ptr %39, align 8, !tbaa !11
  store i64 %365, ptr %37, align 8, !tbaa !11
  br label %366

366:                                              ; preds = %422, %354
  %367 = load i64, ptr %37, align 8, !tbaa !11
  %368 = load i64, ptr %30, align 8, !tbaa !11
  %369 = icmp sge i64 %367, %368
  br i1 %369, label %370, label %425

370:                                              ; preds = %366
  %371 = load float, ptr %36, align 4, !tbaa !9
  %372 = fcmp oeq float %371, 0.000000e+00
  br i1 %372, label %373, label %374

373:                                              ; preds = %370
  br label %426

374:                                              ; preds = %370
  %375 = load float, ptr %36, align 4, !tbaa !9
  store float %375, ptr %35, align 4, !tbaa !9
  %376 = load ptr, ptr %18, align 8, !tbaa !5
  %377 = load i64, ptr %37, align 8, !tbaa !11
  %378 = getelementptr inbounds float, ptr %376, i64 %377
  %379 = load float, ptr %378, align 4, !tbaa !9
  %380 = load ptr, ptr %18, align 8, !tbaa !5
  %381 = load i64, ptr %37, align 8, !tbaa !11
  %382 = sub nsw i64 %381, 2
  %383 = getelementptr inbounds float, ptr %380, i64 %382
  %384 = load float, ptr %383, align 4, !tbaa !9
  %385 = fcmp ogt float %379, %384
  br i1 %385, label %386, label %387

386:                                              ; preds = %374
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

387:                                              ; preds = %374
  %388 = load ptr, ptr %18, align 8, !tbaa !5
  %389 = load i64, ptr %37, align 8, !tbaa !11
  %390 = getelementptr inbounds float, ptr %388, i64 %389
  %391 = load float, ptr %390, align 4, !tbaa !9
  %392 = load ptr, ptr %18, align 8, !tbaa !5
  %393 = load i64, ptr %37, align 8, !tbaa !11
  %394 = sub nsw i64 %393, 2
  %395 = getelementptr inbounds float, ptr %392, i64 %394
  %396 = load float, ptr %395, align 4, !tbaa !9
  %397 = fdiv float %391, %396
  %398 = load float, ptr %36, align 4, !tbaa !9
  %399 = fmul float %398, %397
  store float %399, ptr %36, align 4, !tbaa !9
  %400 = load float, ptr %36, align 4, !tbaa !9
  %401 = load float, ptr %34, align 4, !tbaa !9
  %402 = fadd float %401, %400
  store float %402, ptr %34, align 4, !tbaa !9
  %403 = load float, ptr %36, align 4, !tbaa !9
  %404 = load float, ptr %35, align 4, !tbaa !9
  %405 = fcmp oge float %403, %404
  br i1 %405, label %406, label %408

406:                                              ; preds = %387
  %407 = load float, ptr %36, align 4, !tbaa !9
  br label %410

408:                                              ; preds = %387
  %409 = load float, ptr %35, align 4, !tbaa !9
  br label %410

410:                                              ; preds = %408, %406
  %411 = phi float [ %407, %406 ], [ %409, %408 ]
  %412 = fpext float %411 to double
  %413 = fmul double %412, 1.000000e+02
  %414 = load float, ptr %34, align 4, !tbaa !9
  %415 = fpext float %414 to double
  %416 = fcmp olt double %413, %415
  br i1 %416, label %420, label %417

417:                                              ; preds = %410
  %418 = load float, ptr %34, align 4, !tbaa !9
  %419 = fcmp olt float 0x3FE20418A0000000, %418
  br i1 %419, label %420, label %421

420:                                              ; preds = %417, %410
  br label %426

421:                                              ; preds = %417
  br label %422

422:                                              ; preds = %421
  %423 = load i64, ptr %37, align 8, !tbaa !11
  %424 = add nsw i64 %423, -4
  store i64 %424, ptr %37, align 8, !tbaa !11
  br label %366, !llvm.loop !13

425:                                              ; preds = %366
  br label %426

426:                                              ; preds = %425, %420, %373
  %427 = load float, ptr %34, align 4, !tbaa !9
  %428 = fmul float %427, 0x3FF0CCCCC0000000
  store float %428, ptr %34, align 4, !tbaa !9
  %429 = load float, ptr %34, align 4, !tbaa !9
  %430 = fcmp olt float %429, 0x3FE20418A0000000
  br i1 %430, label %431, label %444

431:                                              ; preds = %426
  %432 = load float, ptr %40, align 4, !tbaa !9
  %433 = fpext float %432 to double
  %434 = load float, ptr %34, align 4, !tbaa !9
  %435 = fpext float %434 to double
  %436 = call double @sqrt(double noundef %435) #4
  %437 = fsub double 1.000000e+00, %436
  %438 = fmul double %433, %437
  %439 = load float, ptr %34, align 4, !tbaa !9
  %440 = fadd float %439, 1.000000e+00
  %441 = fpext float %440 to double
  %442 = fdiv double %438, %441
  %443 = fptrunc double %442 to float
  store float %443, ptr %33, align 4, !tbaa !9
  br label %444

444:                                              ; preds = %431, %426
  br label %445

445:                                              ; preds = %444, %251
  br label %645

446:                                              ; preds = %73
  %447 = load ptr, ptr %21, align 8, !tbaa !5
  %448 = load float, ptr %447, align 4, !tbaa !9
  %449 = load ptr, ptr %26, align 8, !tbaa !5
  %450 = load float, ptr %449, align 4, !tbaa !9
  %451 = fcmp oeq float %448, %450
  br i1 %451, label %452, label %617

452:                                              ; preds = %446
  %453 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -5, ptr %453, align 8, !tbaa !11
  %454 = load ptr, ptr %21, align 8, !tbaa !5
  %455 = load float, ptr %454, align 4, !tbaa !9
  %456 = fmul float %455, 2.500000e-01
  store float %456, ptr %33, align 4, !tbaa !9
  %457 = load i64, ptr %38, align 8, !tbaa !11
  %458 = load ptr, ptr %19, align 8, !tbaa !5
  %459 = load i64, ptr %458, align 8, !tbaa !11
  %460 = shl i64 %459, 1
  %461 = sub nsw i64 %457, %460
  store i64 %461, ptr %39, align 8, !tbaa !11
  %462 = load ptr, ptr %18, align 8, !tbaa !5
  %463 = load i64, ptr %39, align 8, !tbaa !11
  %464 = sub nsw i64 %463, 2
  %465 = getelementptr inbounds float, ptr %462, i64 %464
  %466 = load float, ptr %465, align 4, !tbaa !9
  store float %466, ptr %35, align 4, !tbaa !9
  %467 = load ptr, ptr %18, align 8, !tbaa !5
  %468 = load i64, ptr %39, align 8, !tbaa !11
  %469 = sub nsw i64 %468, 6
  %470 = getelementptr inbounds float, ptr %467, i64 %469
  %471 = load float, ptr %470, align 4, !tbaa !9
  store float %471, ptr %36, align 4, !tbaa !9
  %472 = load ptr, ptr %26, align 8, !tbaa !5
  %473 = load float, ptr %472, align 4, !tbaa !9
  store float %473, ptr %40, align 4, !tbaa !9
  %474 = load ptr, ptr %18, align 8, !tbaa !5
  %475 = load i64, ptr %39, align 8, !tbaa !11
  %476 = sub nsw i64 %475, 8
  %477 = getelementptr inbounds float, ptr %474, i64 %476
  %478 = load float, ptr %477, align 4, !tbaa !9
  %479 = load float, ptr %36, align 4, !tbaa !9
  %480 = fcmp ogt float %478, %479
  br i1 %480, label %489, label %481

481:                                              ; preds = %452
  %482 = load ptr, ptr %18, align 8, !tbaa !5
  %483 = load i64, ptr %39, align 8, !tbaa !11
  %484 = sub nsw i64 %483, 4
  %485 = getelementptr inbounds float, ptr %482, i64 %484
  %486 = load float, ptr %485, align 4, !tbaa !9
  %487 = load float, ptr %35, align 4, !tbaa !9
  %488 = fcmp ogt float %486, %487
  br i1 %488, label %489, label %490

489:                                              ; preds = %481, %452
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

490:                                              ; preds = %481
  %491 = load ptr, ptr %18, align 8, !tbaa !5
  %492 = load i64, ptr %39, align 8, !tbaa !11
  %493 = sub nsw i64 %492, 8
  %494 = getelementptr inbounds float, ptr %491, i64 %493
  %495 = load float, ptr %494, align 4, !tbaa !9
  %496 = load float, ptr %36, align 4, !tbaa !9
  %497 = fdiv float %495, %496
  %498 = load ptr, ptr %18, align 8, !tbaa !5
  %499 = load i64, ptr %39, align 8, !tbaa !11
  %500 = sub nsw i64 %499, 4
  %501 = getelementptr inbounds float, ptr %498, i64 %500
  %502 = load float, ptr %501, align 4, !tbaa !9
  %503 = load float, ptr %35, align 4, !tbaa !9
  %504 = fdiv float %502, %503
  %505 = fadd float %504, 1.000000e+00
  %506 = fmul float %497, %505
  store float %506, ptr %34, align 4, !tbaa !9
  %507 = load ptr, ptr %17, align 8, !tbaa !5
  %508 = load i64, ptr %507, align 8, !tbaa !11
  %509 = load ptr, ptr %16, align 8, !tbaa !5
  %510 = load i64, ptr %509, align 8, !tbaa !11
  %511 = sub nsw i64 %508, %510
  %512 = icmp sgt i64 %511, 2
  br i1 %512, label %513, label %600

513:                                              ; preds = %490
  %514 = load ptr, ptr %18, align 8, !tbaa !5
  %515 = load i64, ptr %38, align 8, !tbaa !11
  %516 = sub nsw i64 %515, 13
  %517 = getelementptr inbounds float, ptr %514, i64 %516
  %518 = load float, ptr %517, align 4, !tbaa !9
  %519 = load ptr, ptr %18, align 8, !tbaa !5
  %520 = load i64, ptr %38, align 8, !tbaa !11
  %521 = sub nsw i64 %520, 15
  %522 = getelementptr inbounds float, ptr %519, i64 %521
  %523 = load float, ptr %522, align 4, !tbaa !9
  %524 = fdiv float %518, %523
  store float %524, ptr %36, align 4, !tbaa !9
  %525 = load float, ptr %36, align 4, !tbaa !9
  %526 = load float, ptr %34, align 4, !tbaa !9
  %527 = fadd float %526, %525
  store float %527, ptr %34, align 4, !tbaa !9
  %528 = load ptr, ptr %16, align 8, !tbaa !5
  %529 = load i64, ptr %528, align 8, !tbaa !11
  %530 = shl i64 %529, 2
  %531 = sub nsw i64 %530, 1
  %532 = load ptr, ptr %19, align 8, !tbaa !5
  %533 = load i64, ptr %532, align 8, !tbaa !11
  %534 = add nsw i64 %531, %533
  store i64 %534, ptr %30, align 8, !tbaa !11
  %535 = load i64, ptr %38, align 8, !tbaa !11
  %536 = sub nsw i64 %535, 17
  store i64 %536, ptr %37, align 8, !tbaa !11
  br label %537

537:                                              ; preds = %593, %513
  %538 = load i64, ptr %37, align 8, !tbaa !11
  %539 = load i64, ptr %30, align 8, !tbaa !11
  %540 = icmp sge i64 %538, %539
  br i1 %540, label %541, label %596

541:                                              ; preds = %537
  %542 = load float, ptr %36, align 4, !tbaa !9
  %543 = fcmp oeq float %542, 0.000000e+00
  br i1 %543, label %544, label %545

544:                                              ; preds = %541
  br label %597

545:                                              ; preds = %541
  %546 = load float, ptr %36, align 4, !tbaa !9
  store float %546, ptr %35, align 4, !tbaa !9
  %547 = load ptr, ptr %18, align 8, !tbaa !5
  %548 = load i64, ptr %37, align 8, !tbaa !11
  %549 = getelementptr inbounds float, ptr %547, i64 %548
  %550 = load float, ptr %549, align 4, !tbaa !9
  %551 = load ptr, ptr %18, align 8, !tbaa !5
  %552 = load i64, ptr %37, align 8, !tbaa !11
  %553 = sub nsw i64 %552, 2
  %554 = getelementptr inbounds float, ptr %551, i64 %553
  %555 = load float, ptr %554, align 4, !tbaa !9
  %556 = fcmp ogt float %550, %555
  br i1 %556, label %557, label %558

557:                                              ; preds = %545
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

558:                                              ; preds = %545
  %559 = load ptr, ptr %18, align 8, !tbaa !5
  %560 = load i64, ptr %37, align 8, !tbaa !11
  %561 = getelementptr inbounds float, ptr %559, i64 %560
  %562 = load float, ptr %561, align 4, !tbaa !9
  %563 = load ptr, ptr %18, align 8, !tbaa !5
  %564 = load i64, ptr %37, align 8, !tbaa !11
  %565 = sub nsw i64 %564, 2
  %566 = getelementptr inbounds float, ptr %563, i64 %565
  %567 = load float, ptr %566, align 4, !tbaa !9
  %568 = fdiv float %562, %567
  %569 = load float, ptr %36, align 4, !tbaa !9
  %570 = fmul float %569, %568
  store float %570, ptr %36, align 4, !tbaa !9
  %571 = load float, ptr %36, align 4, !tbaa !9
  %572 = load float, ptr %34, align 4, !tbaa !9
  %573 = fadd float %572, %571
  store float %573, ptr %34, align 4, !tbaa !9
  %574 = load float, ptr %36, align 4, !tbaa !9
  %575 = load float, ptr %35, align 4, !tbaa !9
  %576 = fcmp oge float %574, %575
  br i1 %576, label %577, label %579

577:                                              ; preds = %558
  %578 = load float, ptr %36, align 4, !tbaa !9
  br label %581

579:                                              ; preds = %558
  %580 = load float, ptr %35, align 4, !tbaa !9
  br label %581

581:                                              ; preds = %579, %577
  %582 = phi float [ %578, %577 ], [ %580, %579 ]
  %583 = fpext float %582 to double
  %584 = fmul double %583, 1.000000e+02
  %585 = load float, ptr %34, align 4, !tbaa !9
  %586 = fpext float %585 to double
  %587 = fcmp olt double %584, %586
  br i1 %587, label %591, label %588

588:                                              ; preds = %581
  %589 = load float, ptr %34, align 4, !tbaa !9
  %590 = fcmp olt float 0x3FE20418A0000000, %589
  br i1 %590, label %591, label %592

591:                                              ; preds = %588, %581
  br label %597

592:                                              ; preds = %588
  br label %593

593:                                              ; preds = %592
  %594 = load i64, ptr %37, align 8, !tbaa !11
  %595 = add nsw i64 %594, -4
  store i64 %595, ptr %37, align 8, !tbaa !11
  br label %537, !llvm.loop !15

596:                                              ; preds = %537
  br label %597

597:                                              ; preds = %596, %591, %544
  %598 = load float, ptr %34, align 4, !tbaa !9
  %599 = fmul float %598, 0x3FF0CCCCC0000000
  store float %599, ptr %34, align 4, !tbaa !9
  br label %600

600:                                              ; preds = %597, %490
  %601 = load float, ptr %34, align 4, !tbaa !9
  %602 = fcmp olt float %601, 0x3FE20418A0000000
  br i1 %602, label %603, label %616

603:                                              ; preds = %600
  %604 = load float, ptr %40, align 4, !tbaa !9
  %605 = fpext float %604 to double
  %606 = load float, ptr %34, align 4, !tbaa !9
  %607 = fpext float %606 to double
  %608 = call double @sqrt(double noundef %607) #4
  %609 = fsub double 1.000000e+00, %608
  %610 = fmul double %605, %609
  %611 = load float, ptr %34, align 4, !tbaa !9
  %612 = fadd float %611, 1.000000e+00
  %613 = fpext float %612 to double
  %614 = fdiv double %610, %613
  %615 = fptrunc double %614 to float
  store float %615, ptr %33, align 4, !tbaa !9
  br label %616

616:                                              ; preds = %603, %600
  br label %644

617:                                              ; preds = %446
  %618 = load ptr, ptr %28, align 8, !tbaa !5
  %619 = load i64, ptr %618, align 8, !tbaa !11
  %620 = icmp eq i64 %619, -6
  br i1 %620, label %621, label %628

621:                                              ; preds = %617
  %622 = load ptr, ptr %29, align 8, !tbaa !5
  %623 = load float, ptr %622, align 4, !tbaa !9
  %624 = fsub float 1.000000e+00, %623
  %625 = load ptr, ptr %29, align 8, !tbaa !5
  %626 = load float, ptr %625, align 4, !tbaa !9
  %627 = call float @llvm.fmuladd.f32(float %624, float 0x3FD54FDF40000000, float %626)
  store float %627, ptr %625, align 4, !tbaa !9
  br label %637

628:                                              ; preds = %617
  %629 = load ptr, ptr %28, align 8, !tbaa !5
  %630 = load i64, ptr %629, align 8, !tbaa !11
  %631 = icmp eq i64 %630, -18
  br i1 %631, label %632, label %634

632:                                              ; preds = %628
  %633 = load ptr, ptr %29, align 8, !tbaa !5
  store float 0x3FB54FDF40000000, ptr %633, align 4, !tbaa !9
  br label %636

634:                                              ; preds = %628
  %635 = load ptr, ptr %29, align 8, !tbaa !5
  store float 2.500000e-01, ptr %635, align 4, !tbaa !9
  br label %636

636:                                              ; preds = %634, %632
  br label %637

637:                                              ; preds = %636, %621
  %638 = load ptr, ptr %29, align 8, !tbaa !5
  %639 = load float, ptr %638, align 4, !tbaa !9
  %640 = load ptr, ptr %21, align 8, !tbaa !5
  %641 = load float, ptr %640, align 4, !tbaa !9
  %642 = fmul float %639, %641
  store float %642, ptr %33, align 4, !tbaa !9
  %643 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -6, ptr %643, align 8, !tbaa !11
  br label %644

644:                                              ; preds = %637, %616
  br label %645

645:                                              ; preds = %644, %445
  br label %1082

646:                                              ; preds = %55
  %647 = load ptr, ptr %20, align 8, !tbaa !5
  %648 = load i64, ptr %647, align 8, !tbaa !11
  %649 = load ptr, ptr %17, align 8, !tbaa !5
  %650 = load i64, ptr %649, align 8, !tbaa !11
  %651 = add nsw i64 %650, 1
  %652 = icmp eq i64 %648, %651
  br i1 %652, label %653, label %852

653:                                              ; preds = %646
  %654 = load ptr, ptr %22, align 8, !tbaa !5
  %655 = load float, ptr %654, align 4, !tbaa !9
  %656 = load ptr, ptr %25, align 8, !tbaa !5
  %657 = load float, ptr %656, align 4, !tbaa !9
  %658 = fcmp oeq float %655, %657
  br i1 %658, label %659, label %836

659:                                              ; preds = %653
  %660 = load ptr, ptr %23, align 8, !tbaa !5
  %661 = load float, ptr %660, align 4, !tbaa !9
  %662 = load ptr, ptr %26, align 8, !tbaa !5
  %663 = load float, ptr %662, align 4, !tbaa !9
  %664 = fcmp oeq float %661, %663
  br i1 %664, label %665, label %836

665:                                              ; preds = %659
  %666 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -7, ptr %666, align 8, !tbaa !11
  %667 = load ptr, ptr %22, align 8, !tbaa !5
  %668 = load float, ptr %667, align 4, !tbaa !9
  %669 = fmul float %668, 0x3FD54FDF40000000
  store float %669, ptr %33, align 4, !tbaa !9
  %670 = load ptr, ptr %18, align 8, !tbaa !5
  %671 = load i64, ptr %38, align 8, !tbaa !11
  %672 = sub nsw i64 %671, 5
  %673 = getelementptr inbounds float, ptr %670, i64 %672
  %674 = load float, ptr %673, align 4, !tbaa !9
  %675 = load ptr, ptr %18, align 8, !tbaa !5
  %676 = load i64, ptr %38, align 8, !tbaa !11
  %677 = sub nsw i64 %676, 7
  %678 = getelementptr inbounds float, ptr %675, i64 %677
  %679 = load float, ptr %678, align 4, !tbaa !9
  %680 = fcmp ogt float %674, %679
  br i1 %680, label %681, label %682

681:                                              ; preds = %665
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

682:                                              ; preds = %665
  %683 = load ptr, ptr %18, align 8, !tbaa !5
  %684 = load i64, ptr %38, align 8, !tbaa !11
  %685 = sub nsw i64 %684, 5
  %686 = getelementptr inbounds float, ptr %683, i64 %685
  %687 = load float, ptr %686, align 4, !tbaa !9
  %688 = load ptr, ptr %18, align 8, !tbaa !5
  %689 = load i64, ptr %38, align 8, !tbaa !11
  %690 = sub nsw i64 %689, 7
  %691 = getelementptr inbounds float, ptr %688, i64 %690
  %692 = load float, ptr %691, align 4, !tbaa !9
  %693 = fdiv float %687, %692
  store float %693, ptr %35, align 4, !tbaa !9
  %694 = load float, ptr %35, align 4, !tbaa !9
  store float %694, ptr %36, align 4, !tbaa !9
  %695 = load float, ptr %36, align 4, !tbaa !9
  %696 = fcmp oeq float %695, 0.000000e+00
  br i1 %696, label %697, label %698

697:                                              ; preds = %682
  br label %766

698:                                              ; preds = %682
  %699 = load ptr, ptr %16, align 8, !tbaa !5
  %700 = load i64, ptr %699, align 8, !tbaa !11
  %701 = shl i64 %700, 2
  %702 = sub nsw i64 %701, 1
  %703 = load ptr, ptr %19, align 8, !tbaa !5
  %704 = load i64, ptr %703, align 8, !tbaa !11
  %705 = add nsw i64 %702, %704
  store i64 %705, ptr %30, align 8, !tbaa !11
  %706 = load ptr, ptr %17, align 8, !tbaa !5
  %707 = load i64, ptr %706, align 8, !tbaa !11
  %708 = shl i64 %707, 2
  %709 = sub nsw i64 %708, 9
  %710 = load ptr, ptr %19, align 8, !tbaa !5
  %711 = load i64, ptr %710, align 8, !tbaa !11
  %712 = add nsw i64 %709, %711
  store i64 %712, ptr %37, align 8, !tbaa !11
  br label %713

713:                                              ; preds = %762, %698
  %714 = load i64, ptr %37, align 8, !tbaa !11
  %715 = load i64, ptr %30, align 8, !tbaa !11
  %716 = icmp sge i64 %714, %715
  br i1 %716, label %717, label %765

717:                                              ; preds = %713
  %718 = load float, ptr %35, align 4, !tbaa !9
  store float %718, ptr %34, align 4, !tbaa !9
  %719 = load ptr, ptr %18, align 8, !tbaa !5
  %720 = load i64, ptr %37, align 8, !tbaa !11
  %721 = getelementptr inbounds float, ptr %719, i64 %720
  %722 = load float, ptr %721, align 4, !tbaa !9
  %723 = load ptr, ptr %18, align 8, !tbaa !5
  %724 = load i64, ptr %37, align 8, !tbaa !11
  %725 = sub nsw i64 %724, 2
  %726 = getelementptr inbounds float, ptr %723, i64 %725
  %727 = load float, ptr %726, align 4, !tbaa !9
  %728 = fcmp ogt float %722, %727
  br i1 %728, label %729, label %730

729:                                              ; preds = %717
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

730:                                              ; preds = %717
  %731 = load ptr, ptr %18, align 8, !tbaa !5
  %732 = load i64, ptr %37, align 8, !tbaa !11
  %733 = getelementptr inbounds float, ptr %731, i64 %732
  %734 = load float, ptr %733, align 4, !tbaa !9
  %735 = load ptr, ptr %18, align 8, !tbaa !5
  %736 = load i64, ptr %37, align 8, !tbaa !11
  %737 = sub nsw i64 %736, 2
  %738 = getelementptr inbounds float, ptr %735, i64 %737
  %739 = load float, ptr %738, align 4, !tbaa !9
  %740 = fdiv float %734, %739
  %741 = load float, ptr %35, align 4, !tbaa !9
  %742 = fmul float %741, %740
  store float %742, ptr %35, align 4, !tbaa !9
  %743 = load float, ptr %35, align 4, !tbaa !9
  %744 = load float, ptr %36, align 4, !tbaa !9
  %745 = fadd float %744, %743
  store float %745, ptr %36, align 4, !tbaa !9
  %746 = load float, ptr %35, align 4, !tbaa !9
  %747 = load float, ptr %34, align 4, !tbaa !9
  %748 = fcmp oge float %746, %747
  br i1 %748, label %749, label %751

749:                                              ; preds = %730
  %750 = load float, ptr %35, align 4, !tbaa !9
  br label %753

751:                                              ; preds = %730
  %752 = load float, ptr %34, align 4, !tbaa !9
  br label %753

753:                                              ; preds = %751, %749
  %754 = phi float [ %750, %749 ], [ %752, %751 ]
  %755 = fpext float %754 to double
  %756 = fmul double %755, 1.000000e+02
  %757 = load float, ptr %36, align 4, !tbaa !9
  %758 = fpext float %757 to double
  %759 = fcmp olt double %756, %758
  br i1 %759, label %760, label %761

760:                                              ; preds = %753
  br label %766

761:                                              ; preds = %753
  br label %762

762:                                              ; preds = %761
  %763 = load i64, ptr %37, align 8, !tbaa !11
  %764 = add nsw i64 %763, -4
  store i64 %764, ptr %37, align 8, !tbaa !11
  br label %713, !llvm.loop !16

765:                                              ; preds = %713
  br label %766

766:                                              ; preds = %765, %760, %697
  %767 = load float, ptr %36, align 4, !tbaa !9
  %768 = fmul float %767, 0x3FF0CCCCC0000000
  %769 = fpext float %768 to double
  %770 = call double @sqrt(double noundef %769) #4
  %771 = fptrunc double %770 to float
  store float %771, ptr %36, align 4, !tbaa !9
  %772 = load float, ptr %36, align 4, !tbaa !9
  store float %772, ptr %31, align 4, !tbaa !9
  %773 = load ptr, ptr %22, align 8, !tbaa !5
  %774 = load float, ptr %773, align 4, !tbaa !9
  %775 = load float, ptr %31, align 4, !tbaa !9
  %776 = load float, ptr %31, align 4, !tbaa !9
  %777 = call float @llvm.fmuladd.f32(float %775, float %776, float 1.000000e+00)
  %778 = fdiv float %774, %777
  store float %778, ptr %34, align 4, !tbaa !9
  %779 = load ptr, ptr %23, align 8, !tbaa !5
  %780 = load float, ptr %779, align 4, !tbaa !9
  %781 = load float, ptr %34, align 4, !tbaa !9
  %782 = fneg float %781
  %783 = call float @llvm.fmuladd.f32(float %780, float 5.000000e-01, float %782)
  store float %783, ptr %42, align 4, !tbaa !9
  %784 = load float, ptr %42, align 4, !tbaa !9
  %785 = fcmp ogt float %784, 0.000000e+00
  br i1 %785, label %786, label %816

786:                                              ; preds = %766
  %787 = load float, ptr %42, align 4, !tbaa !9
  %788 = load float, ptr %36, align 4, !tbaa !9
  %789 = load float, ptr %34, align 4, !tbaa !9
  %790 = fmul float %788, %789
  %791 = fcmp ogt float %787, %790
  br i1 %791, label %792, label %816

792:                                              ; preds = %786
  %793 = load float, ptr %33, align 4, !tbaa !9
  store float %793, ptr %31, align 4, !tbaa !9
  %794 = load float, ptr %34, align 4, !tbaa !9
  %795 = load float, ptr %34, align 4, !tbaa !9
  %796 = fmul float %795, 0x3FF028F5C0000000
  %797 = load float, ptr %36, align 4, !tbaa !9
  %798 = load float, ptr %42, align 4, !tbaa !9
  %799 = fdiv float %797, %798
  %800 = fmul float %796, %799
  %801 = load float, ptr %36, align 4, !tbaa !9
  %802 = fneg float %800
  %803 = call float @llvm.fmuladd.f32(float %802, float %801, float 1.000000e+00)
  %804 = fmul float %794, %803
  store float %804, ptr %32, align 4, !tbaa !9
  %805 = load float, ptr %31, align 4, !tbaa !9
  %806 = load float, ptr %32, align 4, !tbaa !9
  %807 = fcmp oge float %805, %806
  br i1 %807, label %808, label %810

808:                                              ; preds = %792
  %809 = load float, ptr %31, align 4, !tbaa !9
  br label %812

810:                                              ; preds = %792
  %811 = load float, ptr %32, align 4, !tbaa !9
  br label %812

812:                                              ; preds = %810, %808
  %813 = phi float [ %809, %808 ], [ %811, %810 ]
  %814 = fpext float %813 to double
  %815 = fptrunc double %814 to float
  store float %815, ptr %33, align 4, !tbaa !9
  br label %835

816:                                              ; preds = %786, %766
  %817 = load float, ptr %33, align 4, !tbaa !9
  store float %817, ptr %31, align 4, !tbaa !9
  %818 = load float, ptr %34, align 4, !tbaa !9
  %819 = load float, ptr %36, align 4, !tbaa !9
  %820 = fneg float %819
  %821 = call float @llvm.fmuladd.f32(float %820, float 0x3FF028F5C0000000, float 1.000000e+00)
  %822 = fmul float %818, %821
  store float %822, ptr %32, align 4, !tbaa !9
  %823 = load float, ptr %31, align 4, !tbaa !9
  %824 = load float, ptr %32, align 4, !tbaa !9
  %825 = fcmp oge float %823, %824
  br i1 %825, label %826, label %828

826:                                              ; preds = %816
  %827 = load float, ptr %31, align 4, !tbaa !9
  br label %830

828:                                              ; preds = %816
  %829 = load float, ptr %32, align 4, !tbaa !9
  br label %830

830:                                              ; preds = %828, %826
  %831 = phi float [ %827, %826 ], [ %829, %828 ]
  %832 = fpext float %831 to double
  %833 = fptrunc double %832 to float
  store float %833, ptr %33, align 4, !tbaa !9
  %834 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -8, ptr %834, align 8, !tbaa !11
  br label %835

835:                                              ; preds = %830, %812
  br label %851

836:                                              ; preds = %659, %653
  %837 = load ptr, ptr %22, align 8, !tbaa !5
  %838 = load float, ptr %837, align 4, !tbaa !9
  %839 = fmul float %838, 2.500000e-01
  store float %839, ptr %33, align 4, !tbaa !9
  %840 = load ptr, ptr %22, align 8, !tbaa !5
  %841 = load float, ptr %840, align 4, !tbaa !9
  %842 = load ptr, ptr %25, align 8, !tbaa !5
  %843 = load float, ptr %842, align 4, !tbaa !9
  %844 = fcmp oeq float %841, %843
  br i1 %844, label %845, label %849

845:                                              ; preds = %836
  %846 = load ptr, ptr %22, align 8, !tbaa !5
  %847 = load float, ptr %846, align 4, !tbaa !9
  %848 = fmul float %847, 5.000000e-01
  store float %848, ptr %33, align 4, !tbaa !9
  br label %849

849:                                              ; preds = %845, %836
  %850 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -9, ptr %850, align 8, !tbaa !11
  br label %851

851:                                              ; preds = %849, %835
  br label %1081

852:                                              ; preds = %646
  %853 = load ptr, ptr %20, align 8, !tbaa !5
  %854 = load i64, ptr %853, align 8, !tbaa !11
  %855 = load ptr, ptr %17, align 8, !tbaa !5
  %856 = load i64, ptr %855, align 8, !tbaa !11
  %857 = add nsw i64 %856, 2
  %858 = icmp eq i64 %854, %857
  br i1 %858, label %859, label %1070

859:                                              ; preds = %852
  %860 = load ptr, ptr %23, align 8, !tbaa !5
  %861 = load float, ptr %860, align 4, !tbaa !9
  %862 = load ptr, ptr %26, 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 %1064

865:                                              ; preds = %859
  %866 = load ptr, ptr %18, align 8, !tbaa !5
  %867 = load i64, ptr %38, align 8, !tbaa !11
  %868 = sub nsw i64 %867, 5
  %869 = getelementptr inbounds float, ptr %866, i64 %868
  %870 = load float, ptr %869, align 4, !tbaa !9
  %871 = fmul float %870, 2.000000e+00
  %872 = load ptr, ptr %18, align 8, !tbaa !5
  %873 = load i64, ptr %38, align 8, !tbaa !11
  %874 = sub nsw i64 %873, 7
  %875 = getelementptr inbounds float, ptr %872, i64 %874
  %876 = load float, ptr %875, align 4, !tbaa !9
  %877 = fcmp olt float %871, %876
  br i1 %877, label %878, label %1064

878:                                              ; preds = %865
  %879 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -10, ptr %879, align 8, !tbaa !11
  %880 = load ptr, ptr %23, align 8, !tbaa !5
  %881 = load float, ptr %880, align 4, !tbaa !9
  %882 = fmul float %881, 0x3FD54FDF40000000
  store float %882, ptr %33, align 4, !tbaa !9
  %883 = load ptr, ptr %18, align 8, !tbaa !5
  %884 = load i64, ptr %38, align 8, !tbaa !11
  %885 = sub nsw i64 %884, 5
  %886 = getelementptr inbounds float, ptr %883, i64 %885
  %887 = load float, ptr %886, align 4, !tbaa !9
  %888 = load ptr, ptr %18, align 8, !tbaa !5
  %889 = load i64, ptr %38, align 8, !tbaa !11
  %890 = sub nsw i64 %889, 7
  %891 = getelementptr inbounds float, ptr %888, i64 %890
  %892 = load float, ptr %891, align 4, !tbaa !9
  %893 = fcmp ogt float %887, %892
  br i1 %893, label %894, label %895

894:                                              ; preds = %878
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

895:                                              ; preds = %878
  %896 = load ptr, ptr %18, align 8, !tbaa !5
  %897 = load i64, ptr %38, align 8, !tbaa !11
  %898 = sub nsw i64 %897, 5
  %899 = getelementptr inbounds float, ptr %896, i64 %898
  %900 = load float, ptr %899, align 4, !tbaa !9
  %901 = load ptr, ptr %18, align 8, !tbaa !5
  %902 = load i64, ptr %38, align 8, !tbaa !11
  %903 = sub nsw i64 %902, 7
  %904 = getelementptr inbounds float, ptr %901, i64 %903
  %905 = load float, ptr %904, align 4, !tbaa !9
  %906 = fdiv float %900, %905
  store float %906, ptr %35, align 4, !tbaa !9
  %907 = load float, ptr %35, align 4, !tbaa !9
  store float %907, ptr %36, align 4, !tbaa !9
  %908 = load float, ptr %36, align 4, !tbaa !9
  %909 = fcmp oeq float %908, 0.000000e+00
  br i1 %909, label %910, label %911

910:                                              ; preds = %895
  br label %968

911:                                              ; preds = %895
  %912 = load ptr, ptr %16, align 8, !tbaa !5
  %913 = load i64, ptr %912, align 8, !tbaa !11
  %914 = shl i64 %913, 2
  %915 = sub nsw i64 %914, 1
  %916 = load ptr, ptr %19, align 8, !tbaa !5
  %917 = load i64, ptr %916, align 8, !tbaa !11
  %918 = add nsw i64 %915, %917
  store i64 %918, ptr %30, align 8, !tbaa !11
  %919 = load ptr, ptr %17, align 8, !tbaa !5
  %920 = load i64, ptr %919, align 8, !tbaa !11
  %921 = shl i64 %920, 2
  %922 = sub nsw i64 %921, 9
  %923 = load ptr, ptr %19, align 8, !tbaa !5
  %924 = load i64, ptr %923, align 8, !tbaa !11
  %925 = add nsw i64 %922, %924
  store i64 %925, ptr %37, align 8, !tbaa !11
  br label %926

926:                                              ; preds = %964, %911
  %927 = load i64, ptr %37, align 8, !tbaa !11
  %928 = load i64, ptr %30, align 8, !tbaa !11
  %929 = icmp sge i64 %927, %928
  br i1 %929, label %930, label %967

930:                                              ; preds = %926
  %931 = load ptr, ptr %18, align 8, !tbaa !5
  %932 = load i64, ptr %37, align 8, !tbaa !11
  %933 = getelementptr inbounds float, ptr %931, i64 %932
  %934 = load float, ptr %933, align 4, !tbaa !9
  %935 = load ptr, ptr %18, align 8, !tbaa !5
  %936 = load i64, ptr %37, align 8, !tbaa !11
  %937 = sub nsw i64 %936, 2
  %938 = getelementptr inbounds float, ptr %935, i64 %937
  %939 = load float, ptr %938, align 4, !tbaa !9
  %940 = fcmp ogt float %934, %939
  br i1 %940, label %941, label %942

941:                                              ; preds = %930
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

942:                                              ; preds = %930
  %943 = load ptr, ptr %18, align 8, !tbaa !5
  %944 = load i64, ptr %37, align 8, !tbaa !11
  %945 = getelementptr inbounds float, ptr %943, i64 %944
  %946 = load float, ptr %945, align 4, !tbaa !9
  %947 = load ptr, ptr %18, align 8, !tbaa !5
  %948 = load i64, ptr %37, align 8, !tbaa !11
  %949 = sub nsw i64 %948, 2
  %950 = getelementptr inbounds float, ptr %947, i64 %949
  %951 = load float, ptr %950, align 4, !tbaa !9
  %952 = fdiv float %946, %951
  %953 = load float, ptr %35, align 4, !tbaa !9
  %954 = fmul float %953, %952
  store float %954, ptr %35, align 4, !tbaa !9
  %955 = load float, ptr %35, align 4, !tbaa !9
  %956 = load float, ptr %36, align 4, !tbaa !9
  %957 = fadd float %956, %955
  store float %957, ptr %36, align 4, !tbaa !9
  %958 = load float, ptr %35, align 4, !tbaa !9
  %959 = fmul float %958, 1.000000e+02
  %960 = load float, ptr %36, align 4, !tbaa !9
  %961 = fcmp olt float %959, %960
  br i1 %961, label %962, label %963

962:                                              ; preds = %942
  br label %968

963:                                              ; preds = %942
  br label %964

964:                                              ; preds = %963
  %965 = load i64, ptr %37, align 8, !tbaa !11
  %966 = add nsw i64 %965, -4
  store i64 %966, ptr %37, align 8, !tbaa !11
  br label %926, !llvm.loop !17

967:                                              ; preds = %926
  br label %968

968:                                              ; preds = %967, %962, %910
  %969 = load float, ptr %36, align 4, !tbaa !9
  %970 = fmul float %969, 0x3FF0CCCCC0000000
  %971 = fpext float %970 to double
  %972 = call double @sqrt(double noundef %971) #4
  %973 = fptrunc double %972 to float
  store float %973, ptr %36, align 4, !tbaa !9
  %974 = load float, ptr %36, align 4, !tbaa !9
  store float %974, ptr %31, align 4, !tbaa !9
  %975 = load ptr, ptr %23, align 8, !tbaa !5
  %976 = load float, ptr %975, align 4, !tbaa !9
  %977 = load float, ptr %31, align 4, !tbaa !9
  %978 = load float, ptr %31, align 4, !tbaa !9
  %979 = call float @llvm.fmuladd.f32(float %977, float %978, float 1.000000e+00)
  %980 = fdiv float %976, %979
  store float %980, ptr %34, align 4, !tbaa !9
  %981 = load ptr, ptr %18, align 8, !tbaa !5
  %982 = load i64, ptr %38, align 8, !tbaa !11
  %983 = sub nsw i64 %982, 7
  %984 = getelementptr inbounds float, ptr %981, i64 %983
  %985 = load float, ptr %984, align 4, !tbaa !9
  %986 = load ptr, ptr %18, align 8, !tbaa !5
  %987 = load i64, ptr %38, align 8, !tbaa !11
  %988 = sub nsw i64 %987, 9
  %989 = getelementptr inbounds float, ptr %986, i64 %988
  %990 = load float, ptr %989, align 4, !tbaa !9
  %991 = fadd float %985, %990
  %992 = fpext float %991 to double
  %993 = load ptr, ptr %18, align 8, !tbaa !5
  %994 = load i64, ptr %38, align 8, !tbaa !11
  %995 = sub nsw i64 %994, 11
  %996 = getelementptr inbounds float, ptr %993, i64 %995
  %997 = load float, ptr %996, align 4, !tbaa !9
  %998 = fpext float %997 to double
  %999 = call double @sqrt(double noundef %998) #4
  %1000 = load ptr, ptr %18, align 8, !tbaa !5
  %1001 = load i64, ptr %38, align 8, !tbaa !11
  %1002 = sub nsw i64 %1001, 9
  %1003 = getelementptr inbounds float, ptr %1000, i64 %1002
  %1004 = load float, ptr %1003, align 4, !tbaa !9
  %1005 = fpext float %1004 to double
  %1006 = call double @sqrt(double noundef %1005) #4
  %1007 = fneg double %999
  %1008 = call double @llvm.fmuladd.f64(double %1007, double %1006, double %992)
  %1009 = load float, ptr %34, align 4, !tbaa !9
  %1010 = fpext float %1009 to double
  %1011 = fsub double %1008, %1010
  %1012 = fptrunc double %1011 to float
  store float %1012, ptr %42, align 4, !tbaa !9
  %1013 = load float, ptr %42, align 4, !tbaa !9
  %1014 = fcmp ogt float %1013, 0.000000e+00
  br i1 %1014, label %1015, label %1045

1015:                                             ; preds = %968
  %1016 = load float, ptr %42, align 4, !tbaa !9
  %1017 = load float, ptr %36, align 4, !tbaa !9
  %1018 = load float, ptr %34, align 4, !tbaa !9
  %1019 = fmul float %1017, %1018
  %1020 = fcmp ogt float %1016, %1019
  br i1 %1020, label %1021, label %1045

1021:                                             ; preds = %1015
  %1022 = load float, ptr %33, align 4, !tbaa !9
  store float %1022, ptr %31, align 4, !tbaa !9
  %1023 = load float, ptr %34, align 4, !tbaa !9
  %1024 = load float, ptr %34, align 4, !tbaa !9
  %1025 = fmul float %1024, 0x3FF028F5C0000000
  %1026 = load float, ptr %36, align 4, !tbaa !9
  %1027 = load float, ptr %42, align 4, !tbaa !9
  %1028 = fdiv float %1026, %1027
  %1029 = fmul float %1025, %1028
  %1030 = load float, ptr %36, align 4, !tbaa !9
  %1031 = fneg float %1029
  %1032 = call float @llvm.fmuladd.f32(float %1031, float %1030, float 1.000000e+00)
  %1033 = fmul float %1023, %1032
  store float %1033, ptr %32, align 4, !tbaa !9
  %1034 = load float, ptr %31, align 4, !tbaa !9
  %1035 = load float, ptr %32, align 4, !tbaa !9
  %1036 = fcmp oge float %1034, %1035
  br i1 %1036, label %1037, label %1039

1037:                                             ; preds = %1021
  %1038 = load float, ptr %31, align 4, !tbaa !9
  br label %1041

1039:                                             ; preds = %1021
  %1040 = load float, ptr %32, align 4, !tbaa !9
  br label %1041

1041:                                             ; preds = %1039, %1037
  %1042 = phi float [ %1038, %1037 ], [ %1040, %1039 ]
  %1043 = fpext float %1042 to double
  %1044 = fptrunc double %1043 to float
  store float %1044, ptr %33, align 4, !tbaa !9
  br label %1063

1045:                                             ; preds = %1015, %968
  %1046 = load float, ptr %33, align 4, !tbaa !9
  store float %1046, ptr %31, align 4, !tbaa !9
  %1047 = load float, ptr %34, align 4, !tbaa !9
  %1048 = load float, ptr %36, align 4, !tbaa !9
  %1049 = fneg float %1048
  %1050 = call float @llvm.fmuladd.f32(float %1049, float 0x3FF028F5C0000000, float 1.000000e+00)
  %1051 = fmul float %1047, %1050
  store float %1051, ptr %32, align 4, !tbaa !9
  %1052 = load float, ptr %31, align 4, !tbaa !9
  %1053 = load float, ptr %32, align 4, !tbaa !9
  %1054 = fcmp oge float %1052, %1053
  br i1 %1054, label %1055, label %1057

1055:                                             ; preds = %1045
  %1056 = load float, ptr %31, align 4, !tbaa !9
  br label %1059

1057:                                             ; preds = %1045
  %1058 = load float, ptr %32, align 4, !tbaa !9
  br label %1059

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

1063:                                             ; preds = %1059, %1041
  br label %1069

1064:                                             ; preds = %865, %859
  %1065 = load ptr, ptr %23, align 8, !tbaa !5
  %1066 = load float, ptr %1065, align 4, !tbaa !9
  %1067 = fmul float %1066, 2.500000e-01
  store float %1067, ptr %33, align 4, !tbaa !9
  %1068 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -11, ptr %1068, align 8, !tbaa !11
  br label %1069

1069:                                             ; preds = %1064, %1063
  br label %1080

1070:                                             ; preds = %852
  %1071 = load ptr, ptr %20, align 8, !tbaa !5
  %1072 = load i64, ptr %1071, align 8, !tbaa !11
  %1073 = load ptr, ptr %17, align 8, !tbaa !5
  %1074 = load i64, ptr %1073, align 8, !tbaa !11
  %1075 = add nsw i64 %1074, 2
  %1076 = icmp sgt i64 %1072, %1075
  br i1 %1076, label %1077, label %1079

1077:                                             ; preds = %1070
  store float 0.000000e+00, ptr %33, align 4, !tbaa !9
  %1078 = load ptr, ptr %28, align 8, !tbaa !5
  store i64 -12, ptr %1078, align 8, !tbaa !11
  br label %1079

1079:                                             ; preds = %1077, %1070
  br label %1080

1080:                                             ; preds = %1079, %1069
  br label %1081

1081:                                             ; preds = %1080, %851
  br label %1082

1082:                                             ; preds = %1081, %645
  %1083 = load float, ptr %33, align 4, !tbaa !9
  %1084 = load ptr, ptr %27, align 8, !tbaa !5
  store float %1083, ptr %1084, align 4, !tbaa !9
  store i32 0, ptr %15, align 4
  store i32 1, ptr %43, align 4
  br label %1085

1085:                                             ; preds = %1082, %941, %894, %729, %681, %557, %489, %386, %339, %315, %276, %49
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  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 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %30) #4
  %1086 = load i32, ptr %15, align 4
  ret i32 %1086
}

; 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 = !{!"long", !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 noundef i32 @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 i64 -1, ptr %12, align 8, !tbaa !9
  br label %.loopexit

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

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 %177

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

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

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

74:                                               ; preds = %66
  %75 = fneg float %55
  %76 = fdiv float %75, %70
  %77 = tail call float @llvm.fmuladd.f32(float %76, float %55, float %73)
  br label %81

78:                                               ; preds = %66
  %79 = fadd float %44, %55
  %80 = fsub float %73, %79
  br label %81

81:                                               ; preds = %78, %74
  %.0 = phi float [ %77, %74 ], [ %80, %78 ]
  %82 = fcmp ogt float %.0, 0.000000e+00
  %83 = fcmp ogt float %.0, %44
  %or.cond454 = select i1 %82, i1 %83, i1 false
  br i1 %or.cond454, label %84, label %91

84:                                               ; preds = %81
  %85 = fneg float %44
  %86 = fdiv float %85, %.0
  %87 = tail call float @llvm.fmuladd.f32(float %86, float %44, float %60)
  %88 = fmul float %59, 5.000000e-01
  %89 = fcmp oge float %87, %88
  %90 = select i1 %89, float %87, float %88
  store i64 -2, ptr %12, align 8, !tbaa !9
  br label %427

91:                                               ; preds = %81
  %92 = fcmp ogt float %60, %44
  %93 = fsub float %60, %44
  %.0398 = select i1 %92, float %93, float 0.000000e+00
  %94 = fadd float %44, %55
  %95 = fcmp ogt float %58, %94
  br i1 %95, label %96, label %100

96:                                               ; preds = %91
  %97 = fsub float %58, %94
  %98 = fcmp ole float %.0398, %97
  %99 = select i1 %98, float %.0398, float %97
  br label %100

100:                                              ; preds = %96, %91
  %.1399 = phi float [ %99, %96 ], [ %.0398, %91 ]
  %101 = fmul float %59, 0x3FD54FDF40000000
  %102 = fcmp oge float %.1399, %101
  %103 = select i1 %102, float %.1399, float %101
  store i64 -3, ptr %12, align 8, !tbaa !9
  br label %427

104:                                              ; preds = %62
  store i64 -4, ptr %12, align 8, !tbaa !9
  %105 = fcmp ogt float %57, %56
  br i1 %105, label %.loopexit, label %106

106:                                              ; preds = %104
  %107 = fdiv float %57, %56
  %.pre = load i64, ptr %3, align 8, !tbaa !9
  %108 = insertelement <2 x float> <float 0.000000e+00, float poison>, float %107, i64 1
  br label %132

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

120:                                              ; preds = %109
  %121 = load float, ptr %50, align 4, !tbaa !5
  %122 = getelementptr i8, ptr %34, i64 -44
  %123 = load float, ptr %122, align 4, !tbaa !5
  %124 = fcmp ogt float %121, %123
  br i1 %124, label %.loopexit, label %125

125:                                              ; preds = %120
  %126 = insertelement <2 x float> poison, float %117, i64 0
  %127 = insertelement <2 x float> %126, float %121, i64 1
  %128 = insertelement <2 x float> poison, float %118, i64 0
  %129 = insertelement <2 x float> %128, float %123, i64 1
  %130 = fdiv <2 x float> %127, %129
  %131 = add nsw i64 %24, -13
  br label %132

132:                                              ; preds = %125, %106
  %133 = phi i64 [ %.pre, %106 ], [ %110, %125 ]
  %.0383 = phi i64 [ %49, %106 ], [ %131, %125 ]
  %.0382 = phi float [ %60, %106 ], [ %115, %125 ]
  %134 = phi <2 x float> [ %108, %106 ], [ %130, %125 ]
  %135 = fmul float %59, 2.500000e-01
  %136 = extractelement <2 x float> %134, i64 0
  %137 = extractelement <2 x float> %134, i64 1
  %138 = fadd float %136, %137
  %139 = load i64, ptr %0, align 8, !tbaa !9
  %140 = shl i64 %139, 2
  %141 = add nsw i64 %140, -1
  %142 = add nsw i64 %141, %133
  %143 = icmp slt i64 %.0383, %142
  %144 = fcmp oeq float %137, 0.000000e+00
  %or.cond5486 = or i1 %144, %143
  br i1 %or.cond5486, label %._crit_edge492, label %.lr.ph491

145:                                              ; preds = %154
  %146 = add nsw i64 %.0385489, -4
  %147 = icmp slt i64 %146, %142
  %148 = fcmp oeq float %156, 0.000000e+00
  %or.cond5 = or i1 %148, %147
  br i1 %or.cond5, label %._crit_edge492, label %.lr.ph491, !llvm.loop !11

.lr.ph491:                                        ; preds = %132, %145
  %.0385489 = phi i64 [ %146, %145 ], [ %.0383, %132 ]
  %.1387488 = phi float [ %156, %145 ], [ %137, %132 ]
  %.1393487 = phi float [ %157, %145 ], [ %138, %132 ]
  %149 = getelementptr inbounds float, ptr %15, i64 %.0385489
  %150 = load float, ptr %149, align 4, !tbaa !5
  %151 = getelementptr i8, ptr %149, i64 -8
  %152 = load float, ptr %151, align 4, !tbaa !5
  %153 = fcmp ogt float %150, %152
  br i1 %153, label %.loopexit, label %154

154:                                              ; preds = %.lr.ph491
  %155 = fdiv float %150, %152
  %156 = fmul float %.1387488, %155
  %157 = fadd float %.1393487, %156
  %158 = fcmp oge float %156, %.1387488
  %159 = select i1 %158, float %156, float %.1387488
  %160 = fpext float %159 to double
  %161 = fmul double %160, 1.000000e+02
  %162 = fpext float %157 to double
  %163 = fcmp olt double %161, %162
  %164 = fcmp ogt float %157, 0x3FE20418A0000000
  %or.cond = or i1 %164, %163
  br i1 %or.cond, label %._crit_edge492, label %145

._crit_edge492:                                   ; preds = %154, %145, %132
  %.2394 = phi float [ %138, %132 ], [ %157, %145 ], [ %157, %154 ]
  %165 = fmul float %.2394, 0x3FF0CCCCC0000000
  %166 = fcmp olt float %165, 0x3FE20418A0000000
  br i1 %166, label %167, label %427

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

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

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

193:                                              ; preds = %180
  %194 = getelementptr i8, ptr %185, i64 -16
  %195 = load float, ptr %194, align 4, !tbaa !5
  %196 = fcmp ogt float %195, %187
  br i1 %196, label %.loopexit, label %197

197:                                              ; preds = %193
  %198 = insertelement <2 x float> poison, float %191, i64 0
  %199 = insertelement <2 x float> %198, float %195, i64 1
  %200 = insertelement <2 x float> poison, float %189, i64 0
  %201 = insertelement <2 x float> %200, float %187, i64 1
  %202 = fdiv <2 x float> %199, %201
  %203 = extractelement <2 x float> %202, i64 1
  %204 = fadd float %203, 1.000000e+00
  %205 = extractelement <2 x float> %202, i64 0
  %206 = fmul float %205, %204
  %207 = load i64, ptr %1, align 8, !tbaa !9
  %208 = load i64, ptr %0, align 8, !tbaa !9
  %209 = sub nsw i64 %207, %208
  %210 = icmp sgt i64 %209, 2
  br i1 %210, label %211, label %246

211:                                              ; preds = %197
  %212 = getelementptr float, ptr %15, i64 %24
  %213 = getelementptr i8, ptr %212, i64 -52
  %214 = load float, ptr %213, align 4, !tbaa !5
  %215 = getelementptr i8, ptr %212, i64 -60
  %216 = load float, ptr %215, align 4, !tbaa !5
  %217 = fdiv float %214, %216
  %218 = fadd float %206, %217
  %219 = shl i64 %208, 2
  %220 = add i64 %182, -1
  %221 = add i64 %220, %219
  %222 = add nsw i64 %24, -17
  %223 = icmp slt i64 %222, %221
  %224 = fcmp oeq float %217, 0.000000e+00
  %or.cond7478 = select i1 %223, i1 true, i1 %224
  br i1 %or.cond7478, label %._crit_edge, label %.lr.ph482

225:                                              ; preds = %234
  %226 = add nsw i64 %.1481, -4
  %227 = icmp slt i64 %226, %221
  %228 = fcmp oeq float %236, 0.000000e+00
  %or.cond7 = or i1 %227, %228
  br i1 %or.cond7, label %._crit_edge, label %.lr.ph482, !llvm.loop !13

.lr.ph482:                                        ; preds = %211, %225
  %.1481 = phi i64 [ %226, %225 ], [ %222, %211 ]
  %.2388480 = phi float [ %236, %225 ], [ %217, %211 ]
  %.3395479 = phi float [ %237, %225 ], [ %218, %211 ]
  %229 = getelementptr inbounds float, ptr %15, i64 %.1481
  %230 = load float, ptr %229, align 4, !tbaa !5
  %231 = getelementptr i8, ptr %229, i64 -8
  %232 = load float, ptr %231, align 4, !tbaa !5
  %233 = fcmp ogt float %230, %232
  br i1 %233, label %.loopexit, label %234

234:                                              ; preds = %.lr.ph482
  %235 = fdiv float %230, %232
  %236 = fmul float %.2388480, %235
  %237 = fadd float %.3395479, %236
  %238 = fcmp oge float %236, %.2388480
  %239 = select i1 %238, float %236, float %.2388480
  %240 = fpext float %239 to double
  %241 = fmul double %240, 1.000000e+02
  %242 = fpext float %237 to double
  %243 = fcmp olt double %241, %242
  %244 = fcmp ogt float %237, 0x3FE20418A0000000
  %or.cond3 = or i1 %244, %243
  br i1 %or.cond3, label %._crit_edge, label %225

._crit_edge:                                      ; preds = %234, %225, %211
  %.4396 = phi float [ %218, %211 ], [ %237, %225 ], [ %237, %234 ]
  %245 = fmul float %.4396, 0x3FF0CCCCC0000000
  br label %246

246:                                              ; preds = %._crit_edge, %197
  %.5397 = phi float [ %245, %._crit_edge ], [ %206, %197 ]
  %247 = fcmp olt float %.5397, 0x3FE20418A0000000
  br i1 %247, label %248, label %427

248:                                              ; preds = %246
  %249 = fpext float %178 to double
  %250 = fpext float %.5397 to double
  %251 = tail call double @sqrt(double noundef %250) #3
  %252 = fsub double 1.000000e+00, %251
  %253 = fmul double %252, %249
  %254 = fadd float %.5397, 1.000000e+00
  %255 = fpext float %254 to double
  %256 = fdiv double %253, %255
  %257 = fptrunc double %256 to float
  br label %427

258:                                              ; preds = %177
  %259 = load i64, ptr %12, align 8, !tbaa !9
  switch i64 %259, label %264 [
    i64 -6, label %260
    i64 -18, label %265
  ]

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

264:                                              ; preds = %258
  br label %265

265:                                              ; preds = %258, %264, %260
  %.sink = phi float [ 2.500000e-01, %264 ], [ %263, %260 ], [ 0x3FB54FDF40000000, %258 ]
  store float %.sink, ptr %13, align 4, !tbaa !5
  %266 = load float, ptr %5, align 4, !tbaa !5
  %267 = fmul float %.sink, %266
  store i64 -6, ptr %12, align 8, !tbaa !9
  br label %427

268:                                              ; preds = %20
  %269 = add nsw i64 %21, 1
  %270 = icmp eq i64 %25, %269
  br i1 %270, label %271, label %341

271:                                              ; preds = %268
  %272 = load float, ptr %6, align 4, !tbaa !5
  %273 = load float, ptr %9, align 4, !tbaa !5
  %274 = fcmp oeq float %272, %273
  br i1 %274, label %275, label %340

275:                                              ; preds = %271
  %276 = load float, ptr %7, align 4, !tbaa !5
  %277 = load float, ptr %10, align 4, !tbaa !5
  %278 = fcmp oeq float %276, %277
  br i1 %278, label %279, label %340

279:                                              ; preds = %275
  store i64 -7, ptr %12, align 8, !tbaa !9
  %280 = fmul float %272, 0x3FD54FDF40000000
  %281 = getelementptr float, ptr %15, i64 %24
  %282 = getelementptr i8, ptr %281, i64 -20
  %283 = load float, ptr %282, align 4, !tbaa !5
  %284 = getelementptr i8, ptr %281, i64 -28
  %285 = load float, ptr %284, align 4, !tbaa !5
  %286 = fcmp ogt float %283, %285
  br i1 %286, label %.loopexit, label %287

287:                                              ; preds = %279
  %288 = fdiv float %283, %285
  %289 = fcmp oeq float %288, 0.000000e+00
  br i1 %289, label %.loopexit460, label %290

290:                                              ; preds = %287
  %291 = load i64, ptr %0, align 8, !tbaa !9
  %292 = shl i64 %291, 2
  %293 = add nsw i64 %292, -1
  %294 = load i64, ptr %3, align 8, !tbaa !9
  %295 = add nsw i64 %293, %294
  %296 = load i64, ptr %1, align 8, !tbaa !9
  %297 = shl i64 %296, 2
  %298 = add i64 %294, -9
  %299 = add i64 %298, %297
  %.not451470 = icmp slt i64 %299, %295
  br i1 %.not451470, label %.loopexit460, label %.lr.ph474

.lr.ph474:                                        ; preds = %290, %305
  %.2473 = phi i64 [ %315, %305 ], [ %299, %290 ]
  %.3389472 = phi float [ %308, %305 ], [ %288, %290 ]
  %.0390471 = phi float [ %307, %305 ], [ %288, %290 ]
  %300 = getelementptr inbounds float, ptr %15, i64 %.2473
  %301 = load float, ptr %300, align 4, !tbaa !5
  %302 = getelementptr i8, ptr %300, i64 -8
  %303 = load float, ptr %302, align 4, !tbaa !5
  %304 = fcmp ogt float %301, %303
  br i1 %304, label %.loopexit, label %305

305:                                              ; preds = %.lr.ph474
  %306 = fdiv float %301, %303
  %307 = fmul float %.0390471, %306
  %308 = fadd float %.3389472, %307
  %309 = fcmp oge float %307, %.0390471
  %310 = select i1 %309, float %307, float %.0390471
  %311 = fpext float %310 to double
  %312 = fmul double %311, 1.000000e+02
  %313 = fpext float %308 to double
  %314 = fcmp olt double %312, %313
  %315 = add nsw i64 %.2473, -4
  %.not451 = icmp slt i64 %315, %295
  %or.cond508 = select i1 %314, i1 true, i1 %.not451
  br i1 %or.cond508, label %.loopexit460, label %.lr.ph474, !llvm.loop !14

.loopexit460:                                     ; preds = %305, %290, %287
  %.4 = phi float [ %288, %287 ], [ %288, %290 ], [ %308, %305 ]
  %316 = fmul float %.4, 0x3FF0CCCCC0000000
  %sqrtf452 = tail call float @sqrtf(float noundef %316) #1
  %317 = load float, ptr %6, align 4, !tbaa !5
  %318 = tail call float @llvm.fmuladd.f32(float %sqrtf452, float %sqrtf452, float 1.000000e+00)
  %319 = fdiv float %317, %318
  %320 = load float, ptr %7, align 4, !tbaa !5
  %321 = fneg float %319
  %322 = tail call float @llvm.fmuladd.f32(float %320, float 5.000000e-01, float %321)
  %323 = fcmp ogt float %322, 0.000000e+00
  %324 = fmul float %sqrtf452, %319
  %325 = fcmp ogt float %322, %324
  %or.cond456 = select i1 %323, i1 %325, i1 false
  br i1 %or.cond456, label %326, label %334

326:                                              ; preds = %.loopexit460
  %327 = fdiv float %sqrtf452, %322
  %328 = fmul float %319, 0xBFF028F5C0000000
  %329 = fmul float %328, %327
  %330 = tail call float @llvm.fmuladd.f32(float %329, float %sqrtf452, float 1.000000e+00)
  %331 = fmul float %319, %330
  %332 = fcmp oge float %280, %331
  %333 = select i1 %332, float %280, float %331
  br label %427

334:                                              ; preds = %.loopexit460
  %335 = fneg float %sqrtf452
  %336 = tail call float @llvm.fmuladd.f32(float %335, float 0x3FF028F5C0000000, float 1.000000e+00)
  %337 = fmul float %336, %319
  %338 = fcmp oge float %280, %337
  %339 = select i1 %338, float %280, float %337
  store i64 -8, ptr %12, align 8, !tbaa !9
  br label %427

340:                                              ; preds = %275, %271
  %.2400.v = phi float [ 5.000000e-01, %275 ], [ 2.500000e-01, %271 ]
  %.2400 = fmul float %272, %.2400.v
  store i64 -9, ptr %12, align 8, !tbaa !9
  br label %427

341:                                              ; preds = %268
  %342 = add nsw i64 %21, 2
  %343 = icmp eq i64 %25, %342
  br i1 %343, label %344, label %424

344:                                              ; preds = %341
  %345 = load float, ptr %7, align 4, !tbaa !5
  %346 = load float, ptr %10, align 4, !tbaa !5
  %347 = fcmp oeq float %345, %346
  br i1 %347, label %348, label %422

348:                                              ; preds = %344
  %349 = getelementptr float, ptr %15, i64 %24
  %350 = getelementptr i8, ptr %349, i64 -20
  %351 = load float, ptr %350, align 4, !tbaa !5
  %352 = fmul float %351, 2.000000e+00
  %353 = getelementptr i8, ptr %349, i64 -28
  %354 = load float, ptr %353, align 4, !tbaa !5
  %355 = fcmp olt float %352, %354
  br i1 %355, label %356, label %422

356:                                              ; preds = %348
  store i64 -10, ptr %12, align 8, !tbaa !9
  %357 = fmul float %345, 0x3FD54FDF40000000
  %358 = fcmp ogt float %351, %354
  br i1 %358, label %.loopexit, label %359

359:                                              ; preds = %356
  %360 = fdiv float %351, %354
  %361 = fcmp oeq float %360, 0.000000e+00
  br i1 %361, label %.loopexit462, label %362

362:                                              ; preds = %359
  %363 = load i64, ptr %0, align 8, !tbaa !9
  %364 = shl i64 %363, 2
  %365 = add nsw i64 %364, -1
  %366 = load i64, ptr %3, align 8, !tbaa !9
  %367 = add nsw i64 %365, %366
  %368 = load i64, ptr %1, align 8, !tbaa !9
  %369 = shl i64 %368, 2
  %370 = add i64 %366, -9
  %371 = add i64 %370, %369
  %.not464 = icmp slt i64 %371, %367
  br i1 %.not464, label %.loopexit462, label %.lr.ph

.lr.ph:                                           ; preds = %362, %377
  %.3467 = phi i64 [ %383, %377 ], [ %371, %362 ]
  %.5466 = phi float [ %380, %377 ], [ %360, %362 ]
  %.1391465 = phi float [ %379, %377 ], [ %360, %362 ]
  %372 = getelementptr inbounds float, ptr %15, i64 %.3467
  %373 = load float, ptr %372, align 4, !tbaa !5
  %374 = getelementptr i8, ptr %372, i64 -8
  %375 = load float, ptr %374, align 4, !tbaa !5
  %376 = fcmp ogt float %373, %375
  br i1 %376, label %.loopexit, label %377

377:                                              ; preds = %.lr.ph
  %378 = fdiv float %373, %375
  %379 = fmul float %.1391465, %378
  %380 = fadd float %.5466, %379
  %381 = fmul float %379, 1.000000e+02
  %382 = fcmp olt float %381, %380
  %383 = add nsw i64 %.3467, -4
  %.not = icmp slt i64 %383, %367
  %or.cond509 = select i1 %382, i1 true, i1 %.not
  br i1 %or.cond509, label %.loopexit462, label %.lr.ph, !llvm.loop !15

.loopexit462:                                     ; preds = %377, %362, %359
  %.6 = phi float [ %360, %359 ], [ %360, %362 ], [ %380, %377 ]
  %384 = fmul float %.6, 0x3FF0CCCCC0000000
  %sqrtf = tail call float @sqrtf(float noundef %384) #1
  %385 = load float, ptr %7, align 4, !tbaa !5
  %386 = tail call float @llvm.fmuladd.f32(float %sqrtf, float %sqrtf, float 1.000000e+00)
  %387 = fdiv float %385, %386
  %388 = load float, ptr %353, align 4, !tbaa !5
  %389 = getelementptr i8, ptr %349, i64 -36
  %390 = load float, ptr %389, align 4, !tbaa !5
  %391 = fadd float %388, %390
  %392 = fpext float %391 to double
  %393 = getelementptr i8, ptr %349, i64 -44
  %394 = load float, ptr %393, align 4, !tbaa !5
  %395 = fpext float %394 to double
  %396 = tail call double @sqrt(double noundef %395) #3
  %397 = load float, ptr %389, align 4, !tbaa !5
  %398 = fpext float %397 to double
  %399 = tail call double @sqrt(double noundef %398) #3
  %400 = fneg double %396
  %401 = tail call double @llvm.fmuladd.f64(double %400, double %399, double %392)
  %402 = fpext float %387 to double
  %403 = fsub double %401, %402
  %404 = fptrunc double %403 to float
  %405 = fcmp ogt float %404, 0.000000e+00
  %406 = fmul float %sqrtf, %387
  %407 = fcmp olt float %406, %404
  %or.cond458 = select i1 %405, i1 %407, i1 false
  br i1 %or.cond458, label %408, label %416

408:                                              ; preds = %.loopexit462
  %409 = fdiv float %sqrtf, %404
  %410 = fmul float %387, 0xBFF028F5C0000000
  %411 = fmul float %410, %409
  %412 = tail call float @llvm.fmuladd.f32(float %411, float %sqrtf, float 1.000000e+00)
  %413 = fmul float %387, %412
  %414 = fcmp oge float %357, %413
  %415 = select i1 %414, float %357, float %413
  br label %427

416:                                              ; preds = %.loopexit462
  %417 = fneg float %sqrtf
  %418 = tail call float @llvm.fmuladd.f32(float %417, float 0x3FF028F5C0000000, float 1.000000e+00)
  %419 = fmul float %418, %387
  %420 = fcmp oge float %357, %419
  %421 = select i1 %420, float %357, float %419
  br label %427

422:                                              ; preds = %348, %344
  %423 = fmul float %345, 2.500000e-01
  store i64 -11, ptr %12, align 8, !tbaa !9
  br label %427

424:                                              ; preds = %341
  %425 = icmp sgt i64 %25, %342
  br i1 %425, label %426, label %427

426:                                              ; preds = %424
  store i64 -12, ptr %12, align 8, !tbaa !9
  br label %427

427:                                              ; preds = %326, %334, %340, %424, %426, %422, %416, %408, %._crit_edge492, %167, %84, %100, %246, %248, %265
  %.3401 = phi float [ %90, %84 ], [ %103, %100 ], [ %176, %167 ], [ %135, %._crit_edge492 ], [ %257, %248 ], [ %181, %246 ], [ %267, %265 ], [ %333, %326 ], [ %339, %334 ], [ %.2400, %340 ], [ %415, %408 ], [ %421, %416 ], [ %423, %422 ], [ 0.000000e+00, %426 ], [ undef, %424 ]
  store float %.3401, ptr %11, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph, %.lr.ph474, %.lr.ph482, %.lr.ph491, %356, %279, %180, %193, %120, %109, %104, %427, %18
  ret i32 0
}

; 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 = !{!"long", !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,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass