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

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

@.str = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local i32 @slarrf_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17) #0 {
  %19 = alloca i32, align 4
  %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 ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i64, align 8
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca i64, align 8
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %47 = alloca float, align 4
  %48 = alloca float, align 4
  %49 = alloca float, align 4
  %50 = alloca float, align 4
  %51 = alloca float, align 4
  %52 = alloca float, align 4
  %53 = alloca float, align 4
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %57 = alloca i64, align 8
  %58 = alloca float, align 4
  %59 = alloca i64, align 8
  %60 = alloca float, align 4
  %61 = alloca float, align 4
  %62 = alloca float, align 4
  %63 = alloca float, align 4
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca float, align 4
  %67 = alloca i64, align 8
  %68 = alloca float, align 4
  %69 = alloca float, align 4
  %70 = alloca float, align 4
  %71 = alloca i64, align 8
  %72 = alloca float, align 4
  %73 = alloca float, align 4
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca i64, align 8
  %77 = alloca i32, align 4
  store ptr %0, ptr %20, align 8, !tbaa !5
  store ptr %1, ptr %21, align 8, !tbaa !5
  store ptr %2, ptr %22, align 8, !tbaa !5
  store ptr %3, ptr %23, align 8, !tbaa !5
  store ptr %4, ptr %24, align 8, !tbaa !5
  store ptr %5, ptr %25, align 8, !tbaa !5
  store ptr %6, ptr %26, align 8, !tbaa !5
  store ptr %7, ptr %27, align 8, !tbaa !5
  store ptr %8, ptr %28, align 8, !tbaa !5
  store ptr %9, ptr %29, align 8, !tbaa !5
  store ptr %10, ptr %30, align 8, !tbaa !5
  store ptr %11, ptr %31, align 8, !tbaa !5
  store ptr %12, ptr %32, align 8, !tbaa !5
  store ptr %13, ptr %33, align 8, !tbaa !5
  store ptr %14, ptr %34, align 8, !tbaa !5
  store ptr %15, ptr %35, align 8, !tbaa !5
  store ptr %16, ptr %36, align 8, !tbaa !5
  store ptr %17, ptr %37, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #5
  %78 = load ptr, ptr %36, align 8, !tbaa !5
  %79 = getelementptr inbounds float, ptr %78, i32 -1
  store ptr %79, ptr %36, align 8, !tbaa !5
  %80 = load ptr, ptr %35, align 8, !tbaa !5
  %81 = getelementptr inbounds float, ptr %80, i32 -1
  store ptr %81, ptr %35, align 8, !tbaa !5
  %82 = load ptr, ptr %34, align 8, !tbaa !5
  %83 = getelementptr inbounds float, ptr %82, i32 -1
  store ptr %83, ptr %34, align 8, !tbaa !5
  %84 = load ptr, ptr %28, align 8, !tbaa !5
  %85 = getelementptr inbounds float, ptr %84, i32 -1
  store ptr %85, ptr %28, align 8, !tbaa !5
  %86 = load ptr, ptr %27, align 8, !tbaa !5
  %87 = getelementptr inbounds float, ptr %86, i32 -1
  store ptr %87, ptr %27, align 8, !tbaa !5
  %88 = load ptr, ptr %26, align 8, !tbaa !5
  %89 = getelementptr inbounds float, ptr %88, i32 -1
  store ptr %89, ptr %26, align 8, !tbaa !5
  %90 = load ptr, ptr %23, align 8, !tbaa !5
  %91 = getelementptr inbounds float, ptr %90, i32 -1
  store ptr %91, ptr %23, align 8, !tbaa !5
  %92 = load ptr, ptr %22, align 8, !tbaa !5
  %93 = getelementptr inbounds float, ptr %92, i32 -1
  store ptr %93, ptr %22, align 8, !tbaa !5
  %94 = load ptr, ptr %21, align 8, !tbaa !5
  %95 = getelementptr inbounds float, ptr %94, i32 -1
  store ptr %95, ptr %21, align 8, !tbaa !5
  %96 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 0, ptr %96, align 8, !tbaa !9
  store float 2.000000e+00, ptr %55, align 4, !tbaa !11
  %97 = call double @slamch_(ptr noundef @.str)
  %98 = fptrunc double %97 to float
  store float %98, ptr %46, align 4, !tbaa !11
  store i64 0, ptr %64, align 8, !tbaa !9
  store i64 0, ptr %71, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  %99 = load ptr, ptr %26, align 8, !tbaa !5
  %100 = load ptr, ptr %25, align 8, !tbaa !5
  %101 = load i64, ptr %100, align 8, !tbaa !9
  %102 = getelementptr inbounds float, ptr %99, i64 %101
  %103 = load float, ptr %102, align 4, !tbaa !11
  %104 = load ptr, ptr %26, align 8, !tbaa !5
  %105 = load ptr, ptr %24, align 8, !tbaa !5
  %106 = load i64, ptr %105, align 8, !tbaa !9
  %107 = getelementptr inbounds float, ptr %104, i64 %106
  %108 = load float, ptr %107, align 4, !tbaa !11
  %109 = fsub float %103, %108
  store float %109, ptr %39, align 4, !tbaa !11
  %110 = load float, ptr %39, align 4, !tbaa !11
  %111 = fcmp oge float %110, 0.000000e+00
  br i1 %111, label %112, label %114

112:                                              ; preds = %18
  %113 = load float, ptr %39, align 4, !tbaa !11
  br label %117

114:                                              ; preds = %18
  %115 = load float, ptr %39, align 4, !tbaa !11
  %116 = fneg float %115
  br label %117

117:                                              ; preds = %114, %112
  %118 = phi float [ %113, %112 ], [ %116, %114 ]
  %119 = fpext float %118 to double
  %120 = load ptr, ptr %28, align 8, !tbaa !5
  %121 = load ptr, ptr %25, align 8, !tbaa !5
  %122 = load i64, ptr %121, align 8, !tbaa !9
  %123 = getelementptr inbounds float, ptr %120, i64 %122
  %124 = load float, ptr %123, align 4, !tbaa !11
  %125 = fpext float %124 to double
  %126 = fadd double %119, %125
  %127 = load ptr, ptr %28, align 8, !tbaa !5
  %128 = load ptr, ptr %24, align 8, !tbaa !5
  %129 = load i64, ptr %128, align 8, !tbaa !9
  %130 = getelementptr inbounds float, ptr %127, i64 %129
  %131 = load float, ptr %130, align 4, !tbaa !11
  %132 = fpext float %131 to double
  %133 = fadd double %126, %132
  %134 = fptrunc double %133 to float
  store float %134, ptr %73, align 4, !tbaa !11
  %135 = load float, ptr %73, align 4, !tbaa !11
  %136 = load ptr, ptr %25, align 8, !tbaa !5
  %137 = load i64, ptr %136, align 8, !tbaa !9
  %138 = load ptr, ptr %24, align 8, !tbaa !5
  %139 = load i64, ptr %138, align 8, !tbaa !9
  %140 = sub nsw i64 %137, %139
  %141 = sitofp i64 %140 to float
  %142 = fdiv float %135, %141
  store float %142, ptr %61, align 4, !tbaa !11
  %143 = load ptr, ptr %30, align 8, !tbaa !5
  %144 = load float, ptr %143, align 4, !tbaa !11
  %145 = load ptr, ptr %31, align 8, !tbaa !5
  %146 = load float, ptr %145, align 4, !tbaa !11
  %147 = fcmp ole float %144, %146
  br i1 %147, label %148, label %151

148:                                              ; preds = %117
  %149 = load ptr, ptr %30, align 8, !tbaa !5
  %150 = load float, ptr %149, align 4, !tbaa !11
  br label %154

151:                                              ; preds = %117
  %152 = load ptr, ptr %31, align 8, !tbaa !5
  %153 = load float, ptr %152, align 4, !tbaa !11
  br label %154

154:                                              ; preds = %151, %148
  %155 = phi float [ %150, %148 ], [ %153, %151 ]
  %156 = fpext float %155 to double
  %157 = fptrunc double %156 to float
  store float %157, ptr %68, align 4, !tbaa !11
  %158 = load ptr, ptr %26, align 8, !tbaa !5
  %159 = load ptr, ptr %24, align 8, !tbaa !5
  %160 = load i64, ptr %159, align 8, !tbaa !9
  %161 = getelementptr inbounds float, ptr %158, i64 %160
  %162 = load float, ptr %161, align 4, !tbaa !11
  store float %162, ptr %39, align 4, !tbaa !11
  %163 = load ptr, ptr %26, align 8, !tbaa !5
  %164 = load ptr, ptr %25, align 8, !tbaa !5
  %165 = load i64, ptr %164, align 8, !tbaa !9
  %166 = getelementptr inbounds float, ptr %163, i64 %165
  %167 = load float, ptr %166, align 4, !tbaa !11
  store float %167, ptr %40, align 4, !tbaa !11
  %168 = load float, ptr %39, align 4, !tbaa !11
  %169 = load float, ptr %40, align 4, !tbaa !11
  %170 = fcmp ole float %168, %169
  br i1 %170, label %171, label %173

171:                                              ; preds = %154
  %172 = load float, ptr %39, align 4, !tbaa !11
  br label %175

173:                                              ; preds = %154
  %174 = load float, ptr %40, align 4, !tbaa !11
  br label %175

175:                                              ; preds = %173, %171
  %176 = phi float [ %172, %171 ], [ %174, %173 ]
  %177 = fpext float %176 to double
  %178 = load ptr, ptr %28, align 8, !tbaa !5
  %179 = load ptr, ptr %24, align 8, !tbaa !5
  %180 = load i64, ptr %179, align 8, !tbaa !9
  %181 = getelementptr inbounds float, ptr %178, i64 %180
  %182 = load float, ptr %181, align 4, !tbaa !11
  %183 = fpext float %182 to double
  %184 = fsub double %177, %183
  %185 = fptrunc double %184 to float
  store float %185, ptr %69, align 4, !tbaa !11
  %186 = load ptr, ptr %26, align 8, !tbaa !5
  %187 = load ptr, ptr %24, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  %189 = getelementptr inbounds float, ptr %186, i64 %188
  %190 = load float, ptr %189, align 4, !tbaa !11
  store float %190, ptr %39, align 4, !tbaa !11
  %191 = load ptr, ptr %26, align 8, !tbaa !5
  %192 = load ptr, ptr %25, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  %194 = getelementptr inbounds float, ptr %191, i64 %193
  %195 = load float, ptr %194, align 4, !tbaa !11
  store float %195, ptr %40, align 4, !tbaa !11
  %196 = load float, ptr %39, align 4, !tbaa !11
  %197 = load float, ptr %40, align 4, !tbaa !11
  %198 = fcmp oge float %196, %197
  br i1 %198, label %199, label %201

199:                                              ; preds = %175
  %200 = load float, ptr %39, align 4, !tbaa !11
  br label %203

201:                                              ; preds = %175
  %202 = load float, ptr %40, align 4, !tbaa !11
  br label %203

203:                                              ; preds = %201, %199
  %204 = phi float [ %200, %199 ], [ %202, %201 ]
  %205 = fpext float %204 to double
  %206 = load ptr, ptr %28, align 8, !tbaa !5
  %207 = load ptr, ptr %25, align 8, !tbaa !5
  %208 = load i64, ptr %207, align 8, !tbaa !9
  %209 = getelementptr inbounds float, ptr %206, i64 %208
  %210 = load float, ptr %209, align 4, !tbaa !11
  %211 = fpext float %210 to double
  %212 = fadd double %205, %211
  %213 = fptrunc double %212 to float
  store float %213, ptr %72, align 4, !tbaa !11
  %214 = load float, ptr %69, align 4, !tbaa !11
  %215 = fcmp oge float %214, 0.000000e+00
  br i1 %215, label %216, label %218

216:                                              ; preds = %203
  %217 = load float, ptr %69, align 4, !tbaa !11
  br label %221

218:                                              ; preds = %203
  %219 = load float, ptr %69, align 4, !tbaa !11
  %220 = fneg float %219
  br label %221

221:                                              ; preds = %218, %216
  %222 = phi float [ %217, %216 ], [ %220, %218 ]
  %223 = fpext float %222 to double
  %224 = fmul double %223, 2.000000e+00
  %225 = load float, ptr %46, align 4, !tbaa !11
  %226 = fpext float %225 to double
  %227 = load float, ptr %69, align 4, !tbaa !11
  %228 = fpext float %227 to double
  %229 = fneg double %224
  %230 = call double @llvm.fmuladd.f64(double %229, double %226, double %228)
  %231 = fptrunc double %230 to float
  store float %231, ptr %69, align 4, !tbaa !11
  %232 = load float, ptr %72, align 4, !tbaa !11
  %233 = fcmp oge float %232, 0.000000e+00
  br i1 %233, label %234, label %236

234:                                              ; preds = %221
  %235 = load float, ptr %72, align 4, !tbaa !11
  br label %239

236:                                              ; preds = %221
  %237 = load float, ptr %72, align 4, !tbaa !11
  %238 = fneg float %237
  br label %239

239:                                              ; preds = %236, %234
  %240 = phi float [ %235, %234 ], [ %238, %236 ]
  %241 = fpext float %240 to double
  %242 = fmul double %241, 2.000000e+00
  %243 = load float, ptr %46, align 4, !tbaa !11
  %244 = fpext float %243 to double
  %245 = load float, ptr %72, align 4, !tbaa !11
  %246 = fpext float %245 to double
  %247 = call double @llvm.fmuladd.f64(double %242, double %244, double %246)
  %248 = fptrunc double %247 to float
  store float %248, ptr %72, align 4, !tbaa !11
  %249 = load float, ptr %68, align 4, !tbaa !11
  %250 = load ptr, ptr %32, align 8, !tbaa !5
  %251 = load float, ptr %250, align 4, !tbaa !11
  %252 = fmul float %251, 2.000000e+00
  %253 = call float @llvm.fmuladd.f32(float %249, float 2.500000e-01, float %252)
  store float %253, ptr %62, align 4, !tbaa !11
  %254 = load float, ptr %68, align 4, !tbaa !11
  %255 = load ptr, ptr %32, align 8, !tbaa !5
  %256 = load float, ptr %255, align 4, !tbaa !11
  %257 = fmul float %256, 2.000000e+00
  %258 = call float @llvm.fmuladd.f32(float %254, float 2.500000e-01, float %257)
  store float %258, ptr %63, align 4, !tbaa !11
  %259 = load float, ptr %61, align 4, !tbaa !11
  store float %259, ptr %39, align 4, !tbaa !11
  %260 = load ptr, ptr %27, align 8, !tbaa !5
  %261 = load ptr, ptr %24, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = getelementptr inbounds float, ptr %260, i64 %262
  %264 = load float, ptr %263, align 4, !tbaa !11
  store float %264, ptr %40, align 4, !tbaa !11
  %265 = load float, ptr %39, align 4, !tbaa !11
  %266 = load float, ptr %40, align 4, !tbaa !11
  %267 = fcmp oge float %265, %266
  br i1 %267, label %268, label %270

268:                                              ; preds = %239
  %269 = load float, ptr %39, align 4, !tbaa !11
  br label %272

270:                                              ; preds = %239
  %271 = load float, ptr %40, align 4, !tbaa !11
  br label %272

272:                                              ; preds = %270, %268
  %273 = phi float [ %269, %268 ], [ %271, %270 ]
  %274 = fpext float %273 to double
  %275 = load float, ptr %55, align 4, !tbaa !11
  %276 = fpext float %275 to double
  %277 = fdiv double %274, %276
  %278 = fptrunc double %277 to float
  store float %278, ptr %66, align 4, !tbaa !11
  %279 = load float, ptr %61, align 4, !tbaa !11
  store float %279, ptr %39, align 4, !tbaa !11
  %280 = load ptr, ptr %27, align 8, !tbaa !5
  %281 = load ptr, ptr %25, align 8, !tbaa !5
  %282 = load i64, ptr %281, align 8, !tbaa !9
  %283 = sub nsw i64 %282, 1
  %284 = getelementptr inbounds float, ptr %280, i64 %283
  %285 = load float, ptr %284, align 4, !tbaa !11
  store float %285, ptr %40, align 4, !tbaa !11
  %286 = load float, ptr %39, align 4, !tbaa !11
  %287 = load float, ptr %40, align 4, !tbaa !11
  %288 = fcmp oge float %286, %287
  br i1 %288, label %289, label %291

289:                                              ; preds = %272
  %290 = load float, ptr %39, align 4, !tbaa !11
  br label %293

291:                                              ; preds = %272
  %292 = load float, ptr %40, align 4, !tbaa !11
  br label %293

293:                                              ; preds = %291, %289
  %294 = phi float [ %290, %289 ], [ %292, %291 ]
  %295 = fpext float %294 to double
  %296 = load float, ptr %55, align 4, !tbaa !11
  %297 = fpext float %296 to double
  %298 = fdiv double %295, %297
  %299 = fptrunc double %298 to float
  store float %299, ptr %70, align 4, !tbaa !11
  %300 = call double @slamch_(ptr noundef @.str.1)
  %301 = fptrunc double %300 to float
  store float %301, ptr %43, align 4, !tbaa !11
  %302 = load float, ptr %43, align 4, !tbaa !11
  %303 = fdiv float 1.000000e+00, %302
  store float %303, ptr %45, align 4, !tbaa !11
  %304 = load ptr, ptr %20, align 8, !tbaa !5
  %305 = load i64, ptr %304, align 8, !tbaa !9
  %306 = sub nsw i64 %305, 1
  %307 = sitofp i64 %306 to float
  %308 = load float, ptr %68, align 4, !tbaa !11
  %309 = fmul float %307, %308
  %310 = load ptr, ptr %29, align 8, !tbaa !5
  %311 = load float, ptr %310, align 4, !tbaa !11
  %312 = load float, ptr %46, align 4, !tbaa !11
  %313 = fmul float %311, %312
  %314 = fdiv float %309, %313
  store float %314, ptr %54, align 4, !tbaa !11
  %315 = load ptr, ptr %20, align 8, !tbaa !5
  %316 = load i64, ptr %315, align 8, !tbaa !9
  %317 = sub nsw i64 %316, 1
  %318 = sitofp i64 %317 to float
  %319 = load float, ptr %68, align 4, !tbaa !11
  %320 = fmul float %318, %319
  %321 = fpext float %320 to double
  %322 = load ptr, ptr %29, align 8, !tbaa !5
  %323 = load float, ptr %322, align 4, !tbaa !11
  %324 = fpext float %323 to double
  %325 = load float, ptr %46, align 4, !tbaa !11
  %326 = fpext float %325 to double
  %327 = call double @sqrt(double noundef %326) #5
  %328 = fmul double %324, %327
  %329 = fdiv double %321, %328
  %330 = fptrunc double %329 to float
  store float %330, ptr %60, align 4, !tbaa !11
  %331 = load float, ptr %69, align 4, !tbaa !11
  store float %331, ptr %44, align 4, !tbaa !11
  store i64 0, ptr %59, align 8, !tbaa !9
  %332 = load ptr, ptr %29, align 8, !tbaa !5
  %333 = load float, ptr %332, align 4, !tbaa !11
  %334 = fmul float %333, 8.000000e+00
  store float %334, ptr %53, align 4, !tbaa !11
  br label %335

335:                                              ; preds = %1115, %1098, %293
  store i64 0, ptr %74, align 8, !tbaa !9
  store i64 0, ptr %75, align 8, !tbaa !9
  %336 = load float, ptr %62, align 4, !tbaa !11
  %337 = load float, ptr %66, align 4, !tbaa !11
  %338 = fcmp ole float %336, %337
  br i1 %338, label %339, label %341

339:                                              ; preds = %335
  %340 = load float, ptr %62, align 4, !tbaa !11
  br label %343

341:                                              ; preds = %335
  %342 = load float, ptr %66, align 4, !tbaa !11
  br label %343

343:                                              ; preds = %341, %339
  %344 = phi float [ %340, %339 ], [ %342, %341 ]
  %345 = fpext float %344 to double
  %346 = fptrunc double %345 to float
  store float %346, ptr %66, align 4, !tbaa !11
  %347 = load float, ptr %63, align 4, !tbaa !11
  %348 = load float, ptr %70, align 4, !tbaa !11
  %349 = fcmp ole float %347, %348
  br i1 %349, label %350, label %352

350:                                              ; preds = %343
  %351 = load float, ptr %63, align 4, !tbaa !11
  br label %354

352:                                              ; preds = %343
  %353 = load float, ptr %70, align 4, !tbaa !11
  br label %354

354:                                              ; preds = %352, %350
  %355 = phi float [ %351, %350 ], [ %353, %352 ]
  %356 = fpext float %355 to double
  %357 = fptrunc double %356 to float
  store float %357, ptr %70, align 4, !tbaa !11
  %358 = load float, ptr %69, align 4, !tbaa !11
  %359 = fneg float %358
  store float %359, ptr %43, align 4, !tbaa !11
  %360 = load ptr, ptr %21, align 8, !tbaa !5
  %361 = getelementptr inbounds float, ptr %360, i64 1
  %362 = load float, ptr %361, align 4, !tbaa !11
  %363 = load float, ptr %43, align 4, !tbaa !11
  %364 = fadd float %362, %363
  %365 = load ptr, ptr %34, align 8, !tbaa !5
  %366 = getelementptr inbounds float, ptr %365, i64 1
  store float %364, ptr %366, align 4, !tbaa !11
  %367 = load ptr, ptr %34, align 8, !tbaa !5
  %368 = getelementptr inbounds float, ptr %367, i64 1
  %369 = load float, ptr %368, align 4, !tbaa !11
  %370 = fcmp oge float %369, 0.000000e+00
  br i1 %370, label %371, label %375

371:                                              ; preds = %354
  %372 = load ptr, ptr %34, align 8, !tbaa !5
  %373 = getelementptr inbounds float, ptr %372, i64 1
  %374 = load float, ptr %373, align 4, !tbaa !11
  br label %380

375:                                              ; preds = %354
  %376 = load ptr, ptr %34, align 8, !tbaa !5
  %377 = getelementptr inbounds float, ptr %376, i64 1
  %378 = load float, ptr %377, align 4, !tbaa !11
  %379 = fneg float %378
  br label %380

380:                                              ; preds = %375, %371
  %381 = phi float [ %374, %371 ], [ %379, %375 ]
  %382 = fpext float %381 to double
  %383 = load ptr, ptr %32, align 8, !tbaa !5
  %384 = load float, ptr %383, align 4, !tbaa !11
  %385 = fpext float %384 to double
  %386 = fcmp olt double %382, %385
  br i1 %386, label %387, label %393

387:                                              ; preds = %380
  %388 = load ptr, ptr %32, align 8, !tbaa !5
  %389 = load float, ptr %388, align 4, !tbaa !11
  %390 = fneg float %389
  %391 = load ptr, ptr %34, align 8, !tbaa !5
  %392 = getelementptr inbounds float, ptr %391, i64 1
  store float %390, ptr %392, align 4, !tbaa !11
  store i64 1, ptr %74, align 8, !tbaa !9
  br label %393

393:                                              ; preds = %387, %380
  %394 = load ptr, ptr %34, align 8, !tbaa !5
  %395 = getelementptr inbounds float, ptr %394, i64 1
  %396 = load float, ptr %395, align 4, !tbaa !11
  %397 = fcmp oge float %396, 0.000000e+00
  br i1 %397, label %398, label %402

398:                                              ; preds = %393
  %399 = load ptr, ptr %34, align 8, !tbaa !5
  %400 = getelementptr inbounds float, ptr %399, i64 1
  %401 = load float, ptr %400, align 4, !tbaa !11
  br label %407

402:                                              ; preds = %393
  %403 = load ptr, ptr %34, align 8, !tbaa !5
  %404 = getelementptr inbounds float, ptr %403, i64 1
  %405 = load float, ptr %404, align 4, !tbaa !11
  %406 = fneg float %405
  br label %407

407:                                              ; preds = %402, %398
  %408 = phi float [ %401, %398 ], [ %406, %402 ]
  %409 = fpext float %408 to double
  %410 = fptrunc double %409 to float
  store float %410, ptr %48, align 4, !tbaa !11
  %411 = load ptr, ptr %20, align 8, !tbaa !5
  %412 = load i64, ptr %411, align 8, !tbaa !9
  %413 = sub nsw i64 %412, 1
  store i64 %413, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %42, align 8, !tbaa !9
  br label %414

414:                                              ; preds = %511, %407
  %415 = load i64, ptr %42, align 8, !tbaa !9
  %416 = load i64, ptr %38, align 8, !tbaa !9
  %417 = icmp sle i64 %415, %416
  br i1 %417, label %418, label %514

418:                                              ; preds = %414
  %419 = load ptr, ptr %23, align 8, !tbaa !5
  %420 = load i64, ptr %42, align 8, !tbaa !9
  %421 = getelementptr inbounds float, ptr %419, i64 %420
  %422 = load float, ptr %421, align 4, !tbaa !11
  %423 = load ptr, ptr %34, align 8, !tbaa !5
  %424 = load i64, ptr %42, align 8, !tbaa !9
  %425 = getelementptr inbounds float, ptr %423, i64 %424
  %426 = load float, ptr %425, align 4, !tbaa !11
  %427 = fdiv float %422, %426
  %428 = load ptr, ptr %35, align 8, !tbaa !5
  %429 = load i64, ptr %42, align 8, !tbaa !9
  %430 = getelementptr inbounds float, ptr %428, i64 %429
  store float %427, ptr %430, align 4, !tbaa !11
  %431 = load float, ptr %43, align 4, !tbaa !11
  %432 = load ptr, ptr %35, align 8, !tbaa !5
  %433 = load i64, ptr %42, align 8, !tbaa !9
  %434 = getelementptr inbounds float, ptr %432, i64 %433
  %435 = load float, ptr %434, align 4, !tbaa !11
  %436 = fmul float %431, %435
  %437 = load ptr, ptr %22, align 8, !tbaa !5
  %438 = load i64, ptr %42, align 8, !tbaa !9
  %439 = getelementptr inbounds float, ptr %437, i64 %438
  %440 = load float, ptr %439, align 4, !tbaa !11
  %441 = load float, ptr %69, align 4, !tbaa !11
  %442 = fneg float %441
  %443 = call float @llvm.fmuladd.f32(float %436, float %440, float %442)
  store float %443, ptr %43, align 4, !tbaa !11
  %444 = load ptr, ptr %21, align 8, !tbaa !5
  %445 = load i64, ptr %42, align 8, !tbaa !9
  %446 = add nsw i64 %445, 1
  %447 = getelementptr inbounds float, ptr %444, i64 %446
  %448 = load float, ptr %447, align 4, !tbaa !11
  %449 = load float, ptr %43, align 4, !tbaa !11
  %450 = fadd float %448, %449
  %451 = load ptr, ptr %34, align 8, !tbaa !5
  %452 = load i64, ptr %42, align 8, !tbaa !9
  %453 = add nsw i64 %452, 1
  %454 = getelementptr inbounds float, ptr %451, i64 %453
  store float %450, ptr %454, align 4, !tbaa !11
  %455 = load ptr, ptr %34, align 8, !tbaa !5
  %456 = load i64, ptr %42, align 8, !tbaa !9
  %457 = add nsw i64 %456, 1
  %458 = getelementptr inbounds float, ptr %455, i64 %457
  %459 = load float, ptr %458, align 4, !tbaa !11
  store float %459, ptr %39, align 4, !tbaa !11
  %460 = load float, ptr %39, align 4, !tbaa !11
  %461 = fcmp oge float %460, 0.000000e+00
  br i1 %461, label %462, label %464

462:                                              ; preds = %418
  %463 = load float, ptr %39, align 4, !tbaa !11
  br label %467

464:                                              ; preds = %418
  %465 = load float, ptr %39, align 4, !tbaa !11
  %466 = fneg float %465
  br label %467

467:                                              ; preds = %464, %462
  %468 = phi float [ %463, %462 ], [ %466, %464 ]
  %469 = fpext float %468 to double
  %470 = load ptr, ptr %32, align 8, !tbaa !5
  %471 = load float, ptr %470, align 4, !tbaa !11
  %472 = fpext float %471 to double
  %473 = fcmp olt double %469, %472
  br i1 %473, label %474, label %482

474:                                              ; preds = %467
  %475 = load ptr, ptr %32, align 8, !tbaa !5
  %476 = load float, ptr %475, align 4, !tbaa !11
  %477 = fneg float %476
  %478 = load ptr, ptr %34, align 8, !tbaa !5
  %479 = load i64, ptr %42, align 8, !tbaa !9
  %480 = add nsw i64 %479, 1
  %481 = getelementptr inbounds float, ptr %478, i64 %480
  store float %477, ptr %481, align 4, !tbaa !11
  store i64 1, ptr %74, align 8, !tbaa !9
  br label %482

482:                                              ; preds = %474, %467
  %483 = load float, ptr %48, align 4, !tbaa !11
  store float %483, ptr %40, align 4, !tbaa !11
  %484 = load ptr, ptr %34, align 8, !tbaa !5
  %485 = load i64, ptr %42, align 8, !tbaa !9
  %486 = add nsw i64 %485, 1
  %487 = getelementptr inbounds float, ptr %484, i64 %486
  %488 = load float, ptr %487, align 4, !tbaa !11
  store float %488, ptr %39, align 4, !tbaa !11
  %489 = load float, ptr %39, align 4, !tbaa !11
  %490 = fcmp oge float %489, 0.000000e+00
  br i1 %490, label %491, label %493

491:                                              ; preds = %482
  %492 = load float, ptr %39, align 4, !tbaa !11
  br label %496

493:                                              ; preds = %482
  %494 = load float, ptr %39, align 4, !tbaa !11
  %495 = fneg float %494
  br label %496

496:                                              ; preds = %493, %491
  %497 = phi float [ %492, %491 ], [ %495, %493 ]
  %498 = fpext float %497 to double
  %499 = fptrunc double %498 to float
  store float %499, ptr %41, align 4, !tbaa !11
  %500 = load float, ptr %40, align 4, !tbaa !11
  %501 = load float, ptr %41, align 4, !tbaa !11
  %502 = fcmp oge float %500, %501
  br i1 %502, label %503, label %505

503:                                              ; preds = %496
  %504 = load float, ptr %40, align 4, !tbaa !11
  br label %507

505:                                              ; preds = %496
  %506 = load float, ptr %41, align 4, !tbaa !11
  br label %507

507:                                              ; preds = %505, %503
  %508 = phi float [ %504, %503 ], [ %506, %505 ]
  %509 = fpext float %508 to double
  %510 = fptrunc double %509 to float
  store float %510, ptr %48, align 4, !tbaa !11
  br label %511

511:                                              ; preds = %507
  %512 = load i64, ptr %42, align 8, !tbaa !9
  %513 = add nsw i64 %512, 1
  store i64 %513, ptr %42, align 8, !tbaa !9
  br label %414, !llvm.loop !13

514:                                              ; preds = %414
  %515 = load i64, ptr %74, align 8, !tbaa !9
  %516 = icmp ne i64 %515, 0
  br i1 %516, label %520, label %517

517:                                              ; preds = %514
  %518 = call i64 @sisnan_(ptr noundef %48)
  %519 = icmp ne i64 %518, 0
  br label %520

520:                                              ; preds = %517, %514
  %521 = phi i1 [ true, %514 ], [ %519, %517 ]
  %522 = zext i1 %521 to i32
  %523 = sext i32 %522 to i64
  store i64 %523, ptr %74, align 8, !tbaa !9
  %524 = load i64, ptr %71, align 8, !tbaa !9
  %525 = icmp ne i64 %524, 0
  br i1 %525, label %533, label %526

526:                                              ; preds = %520
  %527 = load float, ptr %48, align 4, !tbaa !11
  %528 = load float, ptr %53, align 4, !tbaa !11
  %529 = fcmp ole float %527, %528
  br i1 %529, label %530, label %536

530:                                              ; preds = %526
  %531 = load i64, ptr %74, align 8, !tbaa !9
  %532 = icmp ne i64 %531, 0
  br i1 %532, label %536, label %533

533:                                              ; preds = %530, %520
  %534 = load float, ptr %69, align 4, !tbaa !11
  %535 = load ptr, ptr %33, align 8, !tbaa !5
  store float %534, ptr %535, align 4, !tbaa !11
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %1120

536:                                              ; preds = %530, %526
  %537 = load float, ptr %72, align 4, !tbaa !11
  %538 = fneg float %537
  store float %538, ptr %43, align 4, !tbaa !11
  %539 = load ptr, ptr %21, align 8, !tbaa !5
  %540 = getelementptr inbounds float, ptr %539, i64 1
  %541 = load float, ptr %540, align 4, !tbaa !11
  %542 = load float, ptr %43, align 4, !tbaa !11
  %543 = fadd float %541, %542
  %544 = load ptr, ptr %36, align 8, !tbaa !5
  %545 = getelementptr inbounds float, ptr %544, i64 1
  store float %543, ptr %545, align 4, !tbaa !11
  %546 = load ptr, ptr %36, align 8, !tbaa !5
  %547 = getelementptr inbounds float, ptr %546, i64 1
  %548 = load float, ptr %547, align 4, !tbaa !11
  %549 = fcmp oge float %548, 0.000000e+00
  br i1 %549, label %550, label %554

550:                                              ; preds = %536
  %551 = load ptr, ptr %36, align 8, !tbaa !5
  %552 = getelementptr inbounds float, ptr %551, i64 1
  %553 = load float, ptr %552, align 4, !tbaa !11
  br label %559

554:                                              ; preds = %536
  %555 = load ptr, ptr %36, align 8, !tbaa !5
  %556 = getelementptr inbounds float, ptr %555, i64 1
  %557 = load float, ptr %556, align 4, !tbaa !11
  %558 = fneg float %557
  br label %559

559:                                              ; preds = %554, %550
  %560 = phi float [ %553, %550 ], [ %558, %554 ]
  %561 = fpext float %560 to double
  %562 = load ptr, ptr %32, align 8, !tbaa !5
  %563 = load float, ptr %562, align 4, !tbaa !11
  %564 = fpext float %563 to double
  %565 = fcmp olt double %561, %564
  br i1 %565, label %566, label %572

566:                                              ; preds = %559
  %567 = load ptr, ptr %32, align 8, !tbaa !5
  %568 = load float, ptr %567, align 4, !tbaa !11
  %569 = fneg float %568
  %570 = load ptr, ptr %36, align 8, !tbaa !5
  %571 = getelementptr inbounds float, ptr %570, i64 1
  store float %569, ptr %571, align 4, !tbaa !11
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %572

572:                                              ; preds = %566, %559
  %573 = load ptr, ptr %36, align 8, !tbaa !5
  %574 = getelementptr inbounds float, ptr %573, i64 1
  %575 = load float, ptr %574, align 4, !tbaa !11
  %576 = fcmp oge float %575, 0.000000e+00
  br i1 %576, label %577, label %581

577:                                              ; preds = %572
  %578 = load ptr, ptr %36, align 8, !tbaa !5
  %579 = getelementptr inbounds float, ptr %578, i64 1
  %580 = load float, ptr %579, align 4, !tbaa !11
  br label %586

581:                                              ; preds = %572
  %582 = load ptr, ptr %36, align 8, !tbaa !5
  %583 = getelementptr inbounds float, ptr %582, i64 1
  %584 = load float, ptr %583, align 4, !tbaa !11
  %585 = fneg float %584
  br label %586

586:                                              ; preds = %581, %577
  %587 = phi float [ %580, %577 ], [ %585, %581 ]
  %588 = fpext float %587 to double
  %589 = fptrunc double %588 to float
  store float %589, ptr %49, align 4, !tbaa !11
  %590 = load ptr, ptr %20, align 8, !tbaa !5
  %591 = load i64, ptr %590, align 8, !tbaa !9
  %592 = sub nsw i64 %591, 1
  store i64 %592, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %42, align 8, !tbaa !9
  br label %593

593:                                              ; preds = %696, %586
  %594 = load i64, ptr %42, align 8, !tbaa !9
  %595 = load i64, ptr %38, align 8, !tbaa !9
  %596 = icmp sle i64 %594, %595
  br i1 %596, label %597, label %699

597:                                              ; preds = %593
  %598 = load ptr, ptr %23, align 8, !tbaa !5
  %599 = load i64, ptr %42, align 8, !tbaa !9
  %600 = getelementptr inbounds float, ptr %598, i64 %599
  %601 = load float, ptr %600, align 4, !tbaa !11
  %602 = load ptr, ptr %36, align 8, !tbaa !5
  %603 = load i64, ptr %42, align 8, !tbaa !9
  %604 = getelementptr inbounds float, ptr %602, i64 %603
  %605 = load float, ptr %604, align 4, !tbaa !11
  %606 = fdiv float %601, %605
  %607 = load ptr, ptr %36, align 8, !tbaa !5
  %608 = load ptr, ptr %20, align 8, !tbaa !5
  %609 = load i64, ptr %608, align 8, !tbaa !9
  %610 = load i64, ptr %42, align 8, !tbaa !9
  %611 = add nsw i64 %609, %610
  %612 = getelementptr inbounds float, ptr %607, i64 %611
  store float %606, ptr %612, align 4, !tbaa !11
  %613 = load float, ptr %43, align 4, !tbaa !11
  %614 = load ptr, ptr %36, align 8, !tbaa !5
  %615 = load ptr, ptr %20, align 8, !tbaa !5
  %616 = load i64, ptr %615, align 8, !tbaa !9
  %617 = load i64, ptr %42, align 8, !tbaa !9
  %618 = add nsw i64 %616, %617
  %619 = getelementptr inbounds float, ptr %614, i64 %618
  %620 = load float, ptr %619, align 4, !tbaa !11
  %621 = fmul float %613, %620
  %622 = load ptr, ptr %22, align 8, !tbaa !5
  %623 = load i64, ptr %42, align 8, !tbaa !9
  %624 = getelementptr inbounds float, ptr %622, i64 %623
  %625 = load float, ptr %624, align 4, !tbaa !11
  %626 = load float, ptr %72, align 4, !tbaa !11
  %627 = fneg float %626
  %628 = call float @llvm.fmuladd.f32(float %621, float %625, float %627)
  store float %628, ptr %43, align 4, !tbaa !11
  %629 = load ptr, ptr %21, align 8, !tbaa !5
  %630 = load i64, ptr %42, align 8, !tbaa !9
  %631 = add nsw i64 %630, 1
  %632 = getelementptr inbounds float, ptr %629, i64 %631
  %633 = load float, ptr %632, align 4, !tbaa !11
  %634 = load float, ptr %43, align 4, !tbaa !11
  %635 = fadd float %633, %634
  %636 = load ptr, ptr %36, align 8, !tbaa !5
  %637 = load i64, ptr %42, align 8, !tbaa !9
  %638 = add nsw i64 %637, 1
  %639 = getelementptr inbounds float, ptr %636, i64 %638
  store float %635, ptr %639, align 4, !tbaa !11
  %640 = load ptr, ptr %36, align 8, !tbaa !5
  %641 = load i64, ptr %42, align 8, !tbaa !9
  %642 = add nsw i64 %641, 1
  %643 = getelementptr inbounds float, ptr %640, i64 %642
  %644 = load float, ptr %643, align 4, !tbaa !11
  store float %644, ptr %39, align 4, !tbaa !11
  %645 = load float, ptr %39, align 4, !tbaa !11
  %646 = fcmp oge float %645, 0.000000e+00
  br i1 %646, label %647, label %649

647:                                              ; preds = %597
  %648 = load float, ptr %39, align 4, !tbaa !11
  br label %652

649:                                              ; preds = %597
  %650 = load float, ptr %39, align 4, !tbaa !11
  %651 = fneg float %650
  br label %652

652:                                              ; preds = %649, %647
  %653 = phi float [ %648, %647 ], [ %651, %649 ]
  %654 = fpext float %653 to double
  %655 = load ptr, ptr %32, align 8, !tbaa !5
  %656 = load float, ptr %655, align 4, !tbaa !11
  %657 = fpext float %656 to double
  %658 = fcmp olt double %654, %657
  br i1 %658, label %659, label %667

659:                                              ; preds = %652
  %660 = load ptr, ptr %32, align 8, !tbaa !5
  %661 = load float, ptr %660, align 4, !tbaa !11
  %662 = fneg float %661
  %663 = load ptr, ptr %36, align 8, !tbaa !5
  %664 = load i64, ptr %42, align 8, !tbaa !9
  %665 = add nsw i64 %664, 1
  %666 = getelementptr inbounds float, ptr %663, i64 %665
  store float %662, ptr %666, align 4, !tbaa !11
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %667

667:                                              ; preds = %659, %652
  %668 = load float, ptr %49, align 4, !tbaa !11
  store float %668, ptr %40, align 4, !tbaa !11
  %669 = load ptr, ptr %36, align 8, !tbaa !5
  %670 = load i64, ptr %42, align 8, !tbaa !9
  %671 = add nsw i64 %670, 1
  %672 = getelementptr inbounds float, ptr %669, i64 %671
  %673 = load float, ptr %672, align 4, !tbaa !11
  store float %673, ptr %39, align 4, !tbaa !11
  %674 = load float, ptr %39, align 4, !tbaa !11
  %675 = fcmp oge float %674, 0.000000e+00
  br i1 %675, label %676, label %678

676:                                              ; preds = %667
  %677 = load float, ptr %39, align 4, !tbaa !11
  br label %681

678:                                              ; preds = %667
  %679 = load float, ptr %39, align 4, !tbaa !11
  %680 = fneg float %679
  br label %681

681:                                              ; preds = %678, %676
  %682 = phi float [ %677, %676 ], [ %680, %678 ]
  %683 = fpext float %682 to double
  %684 = fptrunc double %683 to float
  store float %684, ptr %41, align 4, !tbaa !11
  %685 = load float, ptr %40, align 4, !tbaa !11
  %686 = load float, ptr %41, align 4, !tbaa !11
  %687 = fcmp oge float %685, %686
  br i1 %687, label %688, label %690

688:                                              ; preds = %681
  %689 = load float, ptr %40, align 4, !tbaa !11
  br label %692

690:                                              ; preds = %681
  %691 = load float, ptr %41, align 4, !tbaa !11
  br label %692

692:                                              ; preds = %690, %688
  %693 = phi float [ %689, %688 ], [ %691, %690 ]
  %694 = fpext float %693 to double
  %695 = fptrunc double %694 to float
  store float %695, ptr %49, align 4, !tbaa !11
  br label %696

696:                                              ; preds = %692
  %697 = load i64, ptr %42, align 8, !tbaa !9
  %698 = add nsw i64 %697, 1
  store i64 %698, ptr %42, align 8, !tbaa !9
  br label %593, !llvm.loop !15

699:                                              ; preds = %593
  %700 = load i64, ptr %75, align 8, !tbaa !9
  %701 = icmp ne i64 %700, 0
  br i1 %701, label %705, label %702

702:                                              ; preds = %699
  %703 = call i64 @sisnan_(ptr noundef %49)
  %704 = icmp ne i64 %703, 0
  br label %705

705:                                              ; preds = %702, %699
  %706 = phi i1 [ true, %699 ], [ %704, %702 ]
  %707 = zext i1 %706 to i32
  %708 = sext i32 %707 to i64
  store i64 %708, ptr %75, align 8, !tbaa !9
  %709 = load i64, ptr %71, align 8, !tbaa !9
  %710 = icmp ne i64 %709, 0
  br i1 %710, label %718, label %711

711:                                              ; preds = %705
  %712 = load float, ptr %49, align 4, !tbaa !11
  %713 = load float, ptr %53, align 4, !tbaa !11
  %714 = fcmp ole float %712, %713
  br i1 %714, label %715, label %721

715:                                              ; preds = %711
  %716 = load i64, ptr %75, align 8, !tbaa !9
  %717 = icmp ne i64 %716, 0
  br i1 %717, label %721, label %718

718:                                              ; preds = %715, %705
  %719 = load float, ptr %72, align 4, !tbaa !11
  %720 = load ptr, ptr %33, align 8, !tbaa !5
  store float %719, ptr %720, align 4, !tbaa !11
  store i64 2, ptr %64, align 8, !tbaa !9
  br label %1120

721:                                              ; preds = %715, %711
  %722 = load i64, ptr %74, align 8, !tbaa !9
  %723 = icmp ne i64 %722, 0
  br i1 %723, label %724, label %728

724:                                              ; preds = %721
  %725 = load i64, ptr %75, align 8, !tbaa !9
  %726 = icmp ne i64 %725, 0
  br i1 %726, label %727, label %728

727:                                              ; preds = %724
  br label %1064

728:                                              ; preds = %724, %721
  %729 = load i64, ptr %74, align 8, !tbaa !9
  %730 = icmp ne i64 %729, 0
  br i1 %730, label %739, label %731

731:                                              ; preds = %728
  store i64 1, ptr %57, align 8, !tbaa !9
  %732 = load float, ptr %48, align 4, !tbaa !11
  %733 = load float, ptr %45, align 4, !tbaa !11
  %734 = fcmp ole float %732, %733
  br i1 %734, label %735, label %738

735:                                              ; preds = %731
  %736 = load float, ptr %48, align 4, !tbaa !11
  store float %736, ptr %45, align 4, !tbaa !11
  %737 = load float, ptr %69, align 4, !tbaa !11
  store float %737, ptr %44, align 4, !tbaa !11
  br label %738

738:                                              ; preds = %735, %731
  br label %739

739:                                              ; preds = %738, %728
  %740 = load i64, ptr %75, align 8, !tbaa !9
  %741 = icmp ne i64 %740, 0
  br i1 %741, label %758, label %742

742:                                              ; preds = %739
  %743 = load i64, ptr %74, align 8, !tbaa !9
  %744 = icmp ne i64 %743, 0
  br i1 %744, label %749, label %745

745:                                              ; preds = %742
  %746 = load float, ptr %49, align 4, !tbaa !11
  %747 = load float, ptr %48, align 4, !tbaa !11
  %748 = fcmp ole float %746, %747
  br i1 %748, label %749, label %750

749:                                              ; preds = %745, %742
  store i64 2, ptr %57, align 8, !tbaa !9
  br label %750

750:                                              ; preds = %749, %745
  %751 = load float, ptr %49, align 4, !tbaa !11
  %752 = load float, ptr %45, align 4, !tbaa !11
  %753 = fcmp ole float %751, %752
  br i1 %753, label %754, label %757

754:                                              ; preds = %750
  %755 = load float, ptr %49, align 4, !tbaa !11
  store float %755, ptr %45, align 4, !tbaa !11
  %756 = load float, ptr %72, align 4, !tbaa !11
  store float %756, ptr %44, align 4, !tbaa !11
  br label %757

757:                                              ; preds = %754, %750
  br label %758

758:                                              ; preds = %757, %739
  br label %759

759:                                              ; preds = %758
  %760 = load float, ptr %73, align 4, !tbaa !11
  %761 = load float, ptr %68, align 4, !tbaa !11
  %762 = fdiv float %761, 1.280000e+02
  %763 = fcmp olt float %760, %762
  br i1 %763, label %764, label %785

764:                                              ; preds = %759
  %765 = load float, ptr %48, align 4, !tbaa !11
  %766 = load float, ptr %49, align 4, !tbaa !11
  %767 = fcmp ole float %765, %766
  br i1 %767, label %768, label %770

768:                                              ; preds = %764
  %769 = load float, ptr %48, align 4, !tbaa !11
  br label %772

770:                                              ; preds = %764
  %771 = load float, ptr %49, align 4, !tbaa !11
  br label %772

772:                                              ; preds = %770, %768
  %773 = phi float [ %769, %768 ], [ %771, %770 ]
  %774 = fpext float %773 to double
  %775 = load float, ptr %60, align 4, !tbaa !11
  %776 = fpext float %775 to double
  %777 = fcmp olt double %774, %776
  br i1 %777, label %778, label %785

778:                                              ; preds = %772
  %779 = load i64, ptr %74, align 8, !tbaa !9
  %780 = icmp ne i64 %779, 0
  br i1 %780, label %785, label %781

781:                                              ; preds = %778
  %782 = load i64, ptr %75, align 8, !tbaa !9
  %783 = icmp ne i64 %782, 0
  br i1 %783, label %785, label %784

784:                                              ; preds = %781
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %786

785:                                              ; preds = %781, %778, %772, %759
  store i64 0, ptr %65, align 8, !tbaa !9
  br label %786

786:                                              ; preds = %785, %784
  store i64 1, ptr %76, align 8, !tbaa !9
  %787 = load i64, ptr %76, align 8, !tbaa !9
  %788 = icmp ne i64 %787, 0
  br i1 %788, label %789, label %1063

789:                                              ; preds = %786
  %790 = load i64, ptr %65, align 8, !tbaa !9
  %791 = icmp ne i64 %790, 0
  br i1 %791, label %792, label %1063

792:                                              ; preds = %789
  %793 = load i64, ptr %57, align 8, !tbaa !9
  %794 = icmp eq i64 %793, 1
  br i1 %794, label %795, label %931

795:                                              ; preds = %792
  %796 = load ptr, ptr %34, align 8, !tbaa !5
  %797 = load ptr, ptr %20, align 8, !tbaa !5
  %798 = load i64, ptr %797, align 8, !tbaa !9
  %799 = getelementptr inbounds float, ptr %796, i64 %798
  %800 = load float, ptr %799, align 4, !tbaa !11
  store float %800, ptr %39, align 4, !tbaa !11
  %801 = load float, ptr %39, align 4, !tbaa !11
  %802 = fcmp oge float %801, 0.000000e+00
  br i1 %802, label %803, label %805

803:                                              ; preds = %795
  %804 = load float, ptr %39, align 4, !tbaa !11
  br label %808

805:                                              ; preds = %795
  %806 = load float, ptr %39, align 4, !tbaa !11
  %807 = fneg float %806
  br label %808

808:                                              ; preds = %805, %803
  %809 = phi float [ %804, %803 ], [ %807, %805 ]
  %810 = fpext float %809 to double
  %811 = fptrunc double %810 to float
  store float %811, ptr %47, align 4, !tbaa !11
  store float 1.000000e+00, ptr %52, align 4, !tbaa !11
  store float 1.000000e+00, ptr %58, align 4, !tbaa !11
  store float 1.000000e+00, ptr %56, align 4, !tbaa !11
  %812 = load ptr, ptr %20, align 8, !tbaa !5
  %813 = load i64, ptr %812, align 8, !tbaa !9
  %814 = sub nsw i64 %813, 1
  store i64 %814, ptr %42, align 8, !tbaa !9
  br label %815

815:                                              ; preds = %910, %808
  %816 = load i64, ptr %42, align 8, !tbaa !9
  %817 = icmp sge i64 %816, 1
  br i1 %817, label %818, label %913

818:                                              ; preds = %815
  %819 = load float, ptr %58, align 4, !tbaa !11
  %820 = load float, ptr %46, align 4, !tbaa !11
  %821 = fcmp ole float %819, %820
  br i1 %821, label %822, label %852

822:                                              ; preds = %818
  %823 = load ptr, ptr %34, align 8, !tbaa !5
  %824 = load i64, ptr %42, align 8, !tbaa !9
  %825 = add nsw i64 %824, 1
  %826 = getelementptr inbounds float, ptr %823, i64 %825
  %827 = load float, ptr %826, align 4, !tbaa !11
  %828 = load ptr, ptr %36, align 8, !tbaa !5
  %829 = load ptr, ptr %20, align 8, !tbaa !5
  %830 = load i64, ptr %829, align 8, !tbaa !9
  %831 = load i64, ptr %42, align 8, !tbaa !9
  %832 = add nsw i64 %830, %831
  %833 = add nsw i64 %832, 1
  %834 = getelementptr inbounds float, ptr %828, i64 %833
  %835 = load float, ptr %834, align 4, !tbaa !11
  %836 = fmul float %827, %835
  %837 = load ptr, ptr %34, align 8, !tbaa !5
  %838 = load i64, ptr %42, align 8, !tbaa !9
  %839 = getelementptr inbounds float, ptr %837, i64 %838
  %840 = load float, ptr %839, align 4, !tbaa !11
  %841 = load ptr, ptr %36, align 8, !tbaa !5
  %842 = load ptr, ptr %20, align 8, !tbaa !5
  %843 = load i64, ptr %842, align 8, !tbaa !9
  %844 = load i64, ptr %42, align 8, !tbaa !9
  %845 = add nsw i64 %843, %844
  %846 = getelementptr inbounds float, ptr %841, i64 %845
  %847 = load float, ptr %846, align 4, !tbaa !11
  %848 = fmul float %840, %847
  %849 = fdiv float %836, %848
  %850 = load float, ptr %56, align 4, !tbaa !11
  %851 = fmul float %849, %850
  store float %851, ptr %58, align 4, !tbaa !11
  br label %874

852:                                              ; preds = %818
  %853 = load ptr, ptr %36, align 8, !tbaa !5
  %854 = load ptr, ptr %20, align 8, !tbaa !5
  %855 = load i64, ptr %854, align 8, !tbaa !9
  %856 = load i64, ptr %42, align 8, !tbaa !9
  %857 = add nsw i64 %855, %856
  %858 = getelementptr inbounds float, ptr %853, i64 %857
  %859 = load float, ptr %858, align 4, !tbaa !11
  store float %859, ptr %39, align 4, !tbaa !11
  %860 = load float, ptr %39, align 4, !tbaa !11
  %861 = fcmp oge float %860, 0.000000e+00
  br i1 %861, label %862, label %864

862:                                              ; preds = %852
  %863 = load float, ptr %39, align 4, !tbaa !11
  br label %867

864:                                              ; preds = %852
  %865 = load float, ptr %39, align 4, !tbaa !11
  %866 = fneg float %865
  br label %867

867:                                              ; preds = %864, %862
  %868 = phi float [ %863, %862 ], [ %866, %864 ]
  %869 = fpext float %868 to double
  %870 = load float, ptr %58, align 4, !tbaa !11
  %871 = fpext float %870 to double
  %872 = fmul double %871, %869
  %873 = fptrunc double %872 to float
  store float %873, ptr %58, align 4, !tbaa !11
  br label %874

874:                                              ; preds = %867, %822
  %875 = load float, ptr %58, align 4, !tbaa !11
  store float %875, ptr %56, align 4, !tbaa !11
  %876 = load float, ptr %58, align 4, !tbaa !11
  store float %876, ptr %39, align 4, !tbaa !11
  %877 = load float, ptr %39, align 4, !tbaa !11
  %878 = load float, ptr %39, align 4, !tbaa !11
  %879 = load float, ptr %52, align 4, !tbaa !11
  %880 = call float @llvm.fmuladd.f32(float %877, float %878, float %879)
  store float %880, ptr %52, align 4, !tbaa !11
  %881 = load float, ptr %47, align 4, !tbaa !11
  store float %881, ptr %40, align 4, !tbaa !11
  %882 = load ptr, ptr %34, align 8, !tbaa !5
  %883 = load i64, ptr %42, align 8, !tbaa !9
  %884 = getelementptr inbounds float, ptr %882, i64 %883
  %885 = load float, ptr %884, align 4, !tbaa !11
  %886 = load float, ptr %58, align 4, !tbaa !11
  %887 = fmul float %885, %886
  store float %887, ptr %39, align 4, !tbaa !11
  %888 = load float, ptr %39, align 4, !tbaa !11
  %889 = fcmp oge float %888, 0.000000e+00
  br i1 %889, label %890, label %892

890:                                              ; preds = %874
  %891 = load float, ptr %39, align 4, !tbaa !11
  br label %895

892:                                              ; preds = %874
  %893 = load float, ptr %39, align 4, !tbaa !11
  %894 = fneg float %893
  br label %895

895:                                              ; preds = %892, %890
  %896 = phi float [ %891, %890 ], [ %894, %892 ]
  %897 = fpext float %896 to double
  %898 = fptrunc double %897 to float
  store float %898, ptr %41, align 4, !tbaa !11
  %899 = load float, ptr %40, align 4, !tbaa !11
  %900 = load float, ptr %41, align 4, !tbaa !11
  %901 = fcmp oge float %899, %900
  br i1 %901, label %902, label %904

902:                                              ; preds = %895
  %903 = load float, ptr %40, align 4, !tbaa !11
  br label %906

904:                                              ; preds = %895
  %905 = load float, ptr %41, align 4, !tbaa !11
  br label %906

906:                                              ; preds = %904, %902
  %907 = phi float [ %903, %902 ], [ %905, %904 ]
  %908 = fpext float %907 to double
  %909 = fptrunc double %908 to float
  store float %909, ptr %47, align 4, !tbaa !11
  br label %910

910:                                              ; preds = %906
  %911 = load i64, ptr %42, align 8, !tbaa !9
  %912 = add nsw i64 %911, -1
  store i64 %912, ptr %42, align 8, !tbaa !9
  br label %815, !llvm.loop !16

913:                                              ; preds = %815
  %914 = load float, ptr %47, align 4, !tbaa !11
  %915 = fpext float %914 to double
  %916 = load ptr, ptr %29, align 8, !tbaa !5
  %917 = load float, ptr %916, align 4, !tbaa !11
  %918 = fpext float %917 to double
  %919 = load float, ptr %52, align 4, !tbaa !11
  %920 = fpext float %919 to double
  %921 = call double @sqrt(double noundef %920) #5
  %922 = fmul double %918, %921
  %923 = fdiv double %915, %922
  %924 = fptrunc double %923 to float
  store float %924, ptr %50, align 4, !tbaa !11
  %925 = load float, ptr %50, align 4, !tbaa !11
  %926 = fcmp ole float %925, 8.000000e+00
  br i1 %926, label %927, label %930

927:                                              ; preds = %913
  %928 = load float, ptr %69, align 4, !tbaa !11
  %929 = load ptr, ptr %33, align 8, !tbaa !5
  store float %928, ptr %929, align 4, !tbaa !11
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %1120

930:                                              ; preds = %913
  br label %1062

931:                                              ; preds = %792
  %932 = load i64, ptr %57, align 8, !tbaa !9
  %933 = icmp eq i64 %932, 2
  br i1 %933, label %934, label %1061

934:                                              ; preds = %931
  %935 = load ptr, ptr %36, align 8, !tbaa !5
  %936 = load ptr, ptr %20, align 8, !tbaa !5
  %937 = load i64, ptr %936, align 8, !tbaa !9
  %938 = getelementptr inbounds float, ptr %935, i64 %937
  %939 = load float, ptr %938, align 4, !tbaa !11
  store float %939, ptr %39, align 4, !tbaa !11
  %940 = load float, ptr %39, align 4, !tbaa !11
  %941 = fcmp oge float %940, 0.000000e+00
  br i1 %941, label %942, label %944

942:                                              ; preds = %934
  %943 = load float, ptr %39, align 4, !tbaa !11
  br label %947

944:                                              ; preds = %934
  %945 = load float, ptr %39, align 4, !tbaa !11
  %946 = fneg float %945
  br label %947

947:                                              ; preds = %944, %942
  %948 = phi float [ %943, %942 ], [ %946, %944 ]
  %949 = fpext float %948 to double
  %950 = fptrunc double %949 to float
  store float %950, ptr %47, align 4, !tbaa !11
  store float 1.000000e+00, ptr %52, align 4, !tbaa !11
  store float 1.000000e+00, ptr %58, align 4, !tbaa !11
  store float 1.000000e+00, ptr %56, align 4, !tbaa !11
  %951 = load ptr, ptr %20, align 8, !tbaa !5
  %952 = load i64, ptr %951, align 8, !tbaa !9
  %953 = sub nsw i64 %952, 1
  store i64 %953, ptr %42, align 8, !tbaa !9
  br label %954

954:                                              ; preds = %1040, %947
  %955 = load i64, ptr %42, align 8, !tbaa !9
  %956 = icmp sge i64 %955, 1
  br i1 %956, label %957, label %1043

957:                                              ; preds = %954
  %958 = load float, ptr %58, align 4, !tbaa !11
  %959 = load float, ptr %46, align 4, !tbaa !11
  %960 = fcmp ole float %958, %959
  br i1 %960, label %961, label %985

961:                                              ; preds = %957
  %962 = load ptr, ptr %36, align 8, !tbaa !5
  %963 = load i64, ptr %42, align 8, !tbaa !9
  %964 = add nsw i64 %963, 1
  %965 = getelementptr inbounds float, ptr %962, i64 %964
  %966 = load float, ptr %965, align 4, !tbaa !11
  %967 = load ptr, ptr %35, align 8, !tbaa !5
  %968 = load i64, ptr %42, align 8, !tbaa !9
  %969 = add nsw i64 %968, 1
  %970 = getelementptr inbounds float, ptr %967, i64 %969
  %971 = load float, ptr %970, align 4, !tbaa !11
  %972 = fmul float %966, %971
  %973 = load ptr, ptr %36, align 8, !tbaa !5
  %974 = load i64, ptr %42, align 8, !tbaa !9
  %975 = getelementptr inbounds float, ptr %973, i64 %974
  %976 = load float, ptr %975, align 4, !tbaa !11
  %977 = load ptr, ptr %35, align 8, !tbaa !5
  %978 = load i64, ptr %42, align 8, !tbaa !9
  %979 = getelementptr inbounds float, ptr %977, i64 %978
  %980 = load float, ptr %979, align 4, !tbaa !11
  %981 = fmul float %976, %980
  %982 = fdiv float %972, %981
  %983 = load float, ptr %56, align 4, !tbaa !11
  %984 = fmul float %982, %983
  store float %984, ptr %58, align 4, !tbaa !11
  br label %1004

985:                                              ; preds = %957
  %986 = load ptr, ptr %35, align 8, !tbaa !5
  %987 = load i64, ptr %42, align 8, !tbaa !9
  %988 = getelementptr inbounds float, ptr %986, i64 %987
  %989 = load float, ptr %988, align 4, !tbaa !11
  store float %989, ptr %39, align 4, !tbaa !11
  %990 = load float, ptr %39, align 4, !tbaa !11
  %991 = fcmp oge float %990, 0.000000e+00
  br i1 %991, label %992, label %994

992:                                              ; preds = %985
  %993 = load float, ptr %39, align 4, !tbaa !11
  br label %997

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

997:                                              ; preds = %994, %992
  %998 = phi float [ %993, %992 ], [ %996, %994 ]
  %999 = fpext float %998 to double
  %1000 = load float, ptr %58, align 4, !tbaa !11
  %1001 = fpext float %1000 to double
  %1002 = fmul double %1001, %999
  %1003 = fptrunc double %1002 to float
  store float %1003, ptr %58, align 4, !tbaa !11
  br label %1004

1004:                                             ; preds = %997, %961
  %1005 = load float, ptr %58, align 4, !tbaa !11
  store float %1005, ptr %56, align 4, !tbaa !11
  %1006 = load float, ptr %58, align 4, !tbaa !11
  store float %1006, ptr %39, align 4, !tbaa !11
  %1007 = load float, ptr %39, align 4, !tbaa !11
  %1008 = load float, ptr %39, align 4, !tbaa !11
  %1009 = load float, ptr %52, align 4, !tbaa !11
  %1010 = call float @llvm.fmuladd.f32(float %1007, float %1008, float %1009)
  store float %1010, ptr %52, align 4, !tbaa !11
  %1011 = load float, ptr %47, align 4, !tbaa !11
  store float %1011, ptr %40, align 4, !tbaa !11
  %1012 = load ptr, ptr %36, align 8, !tbaa !5
  %1013 = load i64, ptr %42, align 8, !tbaa !9
  %1014 = getelementptr inbounds float, ptr %1012, i64 %1013
  %1015 = load float, ptr %1014, align 4, !tbaa !11
  %1016 = load float, ptr %58, align 4, !tbaa !11
  %1017 = fmul float %1015, %1016
  store float %1017, ptr %39, align 4, !tbaa !11
  %1018 = load float, ptr %39, align 4, !tbaa !11
  %1019 = fcmp oge float %1018, 0.000000e+00
  br i1 %1019, label %1020, label %1022

1020:                                             ; preds = %1004
  %1021 = load float, ptr %39, align 4, !tbaa !11
  br label %1025

1022:                                             ; preds = %1004
  %1023 = load float, ptr %39, align 4, !tbaa !11
  %1024 = fneg float %1023
  br label %1025

1025:                                             ; preds = %1022, %1020
  %1026 = phi float [ %1021, %1020 ], [ %1024, %1022 ]
  %1027 = fpext float %1026 to double
  %1028 = fptrunc double %1027 to float
  store float %1028, ptr %41, align 4, !tbaa !11
  %1029 = load float, ptr %40, align 4, !tbaa !11
  %1030 = load float, ptr %41, align 4, !tbaa !11
  %1031 = fcmp oge float %1029, %1030
  br i1 %1031, label %1032, label %1034

1032:                                             ; preds = %1025
  %1033 = load float, ptr %40, align 4, !tbaa !11
  br label %1036

1034:                                             ; preds = %1025
  %1035 = load float, ptr %41, align 4, !tbaa !11
  br label %1036

1036:                                             ; preds = %1034, %1032
  %1037 = phi float [ %1033, %1032 ], [ %1035, %1034 ]
  %1038 = fpext float %1037 to double
  %1039 = fptrunc double %1038 to float
  store float %1039, ptr %47, align 4, !tbaa !11
  br label %1040

1040:                                             ; preds = %1036
  %1041 = load i64, ptr %42, align 8, !tbaa !9
  %1042 = add nsw i64 %1041, -1
  store i64 %1042, ptr %42, align 8, !tbaa !9
  br label %954, !llvm.loop !17

1043:                                             ; preds = %954
  %1044 = load float, ptr %47, align 4, !tbaa !11
  %1045 = fpext float %1044 to double
  %1046 = load ptr, ptr %29, align 8, !tbaa !5
  %1047 = load float, ptr %1046, align 4, !tbaa !11
  %1048 = fpext float %1047 to double
  %1049 = load float, ptr %52, align 4, !tbaa !11
  %1050 = fpext float %1049 to double
  %1051 = call double @sqrt(double noundef %1050) #5
  %1052 = fmul double %1048, %1051
  %1053 = fdiv double %1045, %1052
  %1054 = fptrunc double %1053 to float
  store float %1054, ptr %51, align 4, !tbaa !11
  %1055 = load float, ptr %51, align 4, !tbaa !11
  %1056 = fcmp ole float %1055, 8.000000e+00
  br i1 %1056, label %1057, label %1060

1057:                                             ; preds = %1043
  %1058 = load float, ptr %72, align 4, !tbaa !11
  %1059 = load ptr, ptr %33, align 8, !tbaa !5
  store float %1058, ptr %1059, align 4, !tbaa !11
  store i64 2, ptr %64, align 8, !tbaa !9
  br label %1120

1060:                                             ; preds = %1043
  br label %1061

1061:                                             ; preds = %1060, %931
  br label %1062

1062:                                             ; preds = %1061, %930
  br label %1063

1063:                                             ; preds = %1062, %789, %786
  br label %1064

1064:                                             ; preds = %1063, %727
  %1065 = load i64, ptr %59, align 8, !tbaa !9
  %1066 = icmp slt i64 %1065, 1
  br i1 %1066, label %1067, label %1108

1067:                                             ; preds = %1064
  %1068 = load float, ptr %69, align 4, !tbaa !11
  %1069 = load float, ptr %66, align 4, !tbaa !11
  %1070 = fsub float %1068, %1069
  store float %1070, ptr %39, align 4, !tbaa !11
  %1071 = load float, ptr %69, align 4, !tbaa !11
  %1072 = load float, ptr %62, align 4, !tbaa !11
  %1073 = fsub float %1071, %1072
  store float %1073, ptr %40, align 4, !tbaa !11
  %1074 = load float, ptr %39, align 4, !tbaa !11
  %1075 = load float, ptr %40, align 4, !tbaa !11
  %1076 = fcmp oge float %1074, %1075
  br i1 %1076, label %1077, label %1079

1077:                                             ; preds = %1067
  %1078 = load float, ptr %39, align 4, !tbaa !11
  br label %1081

1079:                                             ; preds = %1067
  %1080 = load float, ptr %40, align 4, !tbaa !11
  br label %1081

1081:                                             ; preds = %1079, %1077
  %1082 = phi float [ %1078, %1077 ], [ %1080, %1079 ]
  %1083 = fpext float %1082 to double
  %1084 = fptrunc double %1083 to float
  store float %1084, ptr %69, align 4, !tbaa !11
  %1085 = load float, ptr %72, align 4, !tbaa !11
  %1086 = load float, ptr %70, align 4, !tbaa !11
  %1087 = fadd float %1085, %1086
  store float %1087, ptr %39, align 4, !tbaa !11
  %1088 = load float, ptr %72, align 4, !tbaa !11
  %1089 = load float, ptr %63, align 4, !tbaa !11
  %1090 = fadd float %1088, %1089
  store float %1090, ptr %40, align 4, !tbaa !11
  %1091 = load float, ptr %39, align 4, !tbaa !11
  %1092 = load float, ptr %40, align 4, !tbaa !11
  %1093 = fcmp ole float %1091, %1092
  br i1 %1093, label %1094, label %1096

1094:                                             ; preds = %1081
  %1095 = load float, ptr %39, align 4, !tbaa !11
  br label %1098

1096:                                             ; preds = %1081
  %1097 = load float, ptr %40, align 4, !tbaa !11
  br label %1098

1098:                                             ; preds = %1096, %1094
  %1099 = phi float [ %1095, %1094 ], [ %1097, %1096 ]
  %1100 = fpext float %1099 to double
  %1101 = fptrunc double %1100 to float
  store float %1101, ptr %72, align 4, !tbaa !11
  %1102 = load float, ptr %66, align 4, !tbaa !11
  %1103 = fmul float %1102, 2.000000e+00
  store float %1103, ptr %66, align 4, !tbaa !11
  %1104 = load float, ptr %70, align 4, !tbaa !11
  %1105 = fmul float %1104, 2.000000e+00
  store float %1105, ptr %70, align 4, !tbaa !11
  %1106 = load i64, ptr %59, align 8, !tbaa !9
  %1107 = add nsw i64 %1106, 1
  store i64 %1107, ptr %59, align 8, !tbaa !9
  br label %335

1108:                                             ; preds = %1064
  %1109 = load float, ptr %45, align 4, !tbaa !11
  %1110 = load float, ptr %54, align 4, !tbaa !11
  %1111 = fcmp olt float %1109, %1110
  br i1 %1111, label %1115, label %1112

1112:                                             ; preds = %1108
  %1113 = load i64, ptr %67, align 8, !tbaa !9
  %1114 = icmp ne i64 %1113, 0
  br i1 %1114, label %1115, label %1118

1115:                                             ; preds = %1112, %1108
  %1116 = load float, ptr %44, align 4, !tbaa !11
  store float %1116, ptr %69, align 4, !tbaa !11
  %1117 = load float, ptr %44, align 4, !tbaa !11
  store float %1117, ptr %72, align 4, !tbaa !11
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %335

1118:                                             ; preds = %1112
  %1119 = load ptr, ptr %37, align 8, !tbaa !5
  store i64 1, ptr %1119, align 8, !tbaa !9
  store i32 0, ptr %19, align 4
  store i32 1, ptr %77, align 4
  br label %1147

1120:                                             ; preds = %1057, %927, %718, %533
  %1121 = load i64, ptr %64, align 8, !tbaa !9
  %1122 = icmp eq i64 %1121, 1
  br i1 %1122, label %1123, label %1124

1123:                                             ; preds = %1120
  br label %1146

1124:                                             ; preds = %1120
  %1125 = load i64, ptr %64, align 8, !tbaa !9
  %1126 = icmp eq i64 %1125, 2
  br i1 %1126, label %1127, label %1145

1127:                                             ; preds = %1124
  %1128 = load ptr, ptr %20, align 8, !tbaa !5
  %1129 = load ptr, ptr %36, align 8, !tbaa !5
  %1130 = getelementptr inbounds float, ptr %1129, i64 1
  %1131 = load ptr, ptr %34, align 8, !tbaa !5
  %1132 = getelementptr inbounds float, ptr %1131, i64 1
  %1133 = call i32 @f2c_scopy(ptr noundef %1128, ptr noundef %1130, ptr noundef @c__1, ptr noundef %1132, ptr noundef @c__1)
  %1134 = load ptr, ptr %20, align 8, !tbaa !5
  %1135 = load i64, ptr %1134, align 8, !tbaa !9
  %1136 = sub nsw i64 %1135, 1
  store i64 %1136, ptr %38, align 8, !tbaa !9
  %1137 = load ptr, ptr %36, align 8, !tbaa !5
  %1138 = load ptr, ptr %20, align 8, !tbaa !5
  %1139 = load i64, ptr %1138, align 8, !tbaa !9
  %1140 = add nsw i64 %1139, 1
  %1141 = getelementptr inbounds float, ptr %1137, i64 %1140
  %1142 = load ptr, ptr %35, align 8, !tbaa !5
  %1143 = getelementptr inbounds float, ptr %1142, i64 1
  %1144 = call i32 @f2c_scopy(ptr noundef %38, ptr noundef %1141, ptr noundef @c__1, ptr noundef %1143, ptr noundef @c__1)
  br label %1145

1145:                                             ; preds = %1127, %1124
  br label %1146

1146:                                             ; preds = %1145, %1123
  store i32 0, ptr %19, align 4
  store i32 1, ptr %77, align 4
  br label %1147

1147:                                             ; preds = %1146, %1118
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  %1148 = load i32, ptr %19, align 4
  ret i32 %1148
}

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

declare double @slamch_(ptr noundef) #2

; 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 speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #3

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

declare i64 @sisnan_(ptr noundef) #2

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

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

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

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

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


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

@.str = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slarrf_(ptr noundef %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 readonly %11, ptr nocapture noundef readonly %12, ptr nocapture noundef writeonly %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr nocapture noundef writeonly %17) local_unnamed_addr #0 {
  %19 = alloca i64, align 8
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  %22 = getelementptr inbounds i8, ptr %16, i64 -4
  %23 = getelementptr inbounds i8, ptr %15, i64 -4
  %24 = getelementptr inbounds i8, ptr %14, i64 -4
  %25 = getelementptr inbounds i8, ptr %8, i64 -4
  %26 = getelementptr inbounds i8, ptr %7, i64 -4
  %27 = getelementptr inbounds i8, ptr %6, i64 -4
  %28 = getelementptr inbounds i8, ptr %3, i64 -4
  %29 = getelementptr inbounds i8, ptr %2, i64 -4
  store i64 0, ptr %17, align 8, !tbaa !5
  %30 = tail call double @slamch_(ptr noundef nonnull @.str) #5
  %31 = fptrunc double %30 to float
  %32 = load i64, ptr %5, align 8, !tbaa !5
  %33 = getelementptr inbounds float, ptr %27, i64 %32
  %34 = load float, ptr %33, align 4, !tbaa !9
  %35 = load i64, ptr %4, align 8, !tbaa !5
  %36 = getelementptr inbounds float, ptr %27, i64 %35
  %37 = load float, ptr %36, align 4, !tbaa !9
  %38 = fsub float %34, %37
  %39 = fcmp oge float %38, 0.000000e+00
  %40 = fneg float %38
  %41 = select i1 %39, float %38, float %40
  %42 = fpext float %41 to double
  %43 = getelementptr inbounds float, ptr %25, i64 %32
  %44 = load float, ptr %43, align 4, !tbaa !9
  %45 = fpext float %44 to double
  %46 = fadd double %45, %42
  %47 = getelementptr inbounds float, ptr %25, i64 %35
  %48 = load float, ptr %47, align 4, !tbaa !9
  %49 = fpext float %48 to double
  %50 = fadd double %46, %49
  %51 = fptrunc double %50 to float
  %52 = sub nsw i64 %32, %35
  %53 = sitofp i64 %52 to float
  %54 = fdiv float %51, %53
  %55 = load float, ptr %10, align 4, !tbaa !9
  %56 = load float, ptr %11, align 4, !tbaa !9
  %.inv = fcmp ole float %55, %56
  %. = select i1 %.inv, float %55, float %56
  %57 = fcmp ole float %37, %34
  %58 = select i1 %57, float %37, float %34
  %59 = fsub float %58, %48
  %60 = fcmp oge float %37, %34
  %61 = select i1 %60, float %37, float %34
  %62 = fadd float %44, %61
  %63 = fcmp oge float %59, 0.000000e+00
  %64 = fneg float %59
  %65 = select i1 %63, float %59, float %64
  %66 = fpext float %65 to double
  %67 = fpext float %31 to double
  %68 = fpext float %59 to double
  %69 = fmul double %66, -2.000000e+00
  %70 = tail call double @llvm.fmuladd.f64(double %69, double %67, double %68)
  %71 = fptrunc double %70 to float
  %72 = fcmp oge float %62, 0.000000e+00
  %73 = fneg float %62
  %74 = select i1 %72, float %62, float %73
  %75 = fpext float %74 to double
  %76 = fmul double %75, 2.000000e+00
  %77 = fpext float %62 to double
  %78 = tail call double @llvm.fmuladd.f64(double %76, double %67, double %77)
  %79 = fptrunc double %78 to float
  %80 = load float, ptr %12, align 4, !tbaa !9
  %81 = fmul float %80, 2.000000e+00
  %82 = tail call float @llvm.fmuladd.f32(float %., float 2.500000e-01, float %81)
  %83 = getelementptr inbounds float, ptr %26, i64 %35
  %84 = load float, ptr %83, align 4, !tbaa !9
  %85 = getelementptr float, ptr %26, i64 %32
  %86 = getelementptr i8, ptr %85, i64 -4
  %87 = load float, ptr %86, align 4, !tbaa !9
  %88 = insertelement <2 x float> poison, float %54, i64 0
  %89 = shufflevector <2 x float> %88, <2 x float> poison, <2 x i32> zeroinitializer
  %90 = insertelement <2 x float> poison, float %84, i64 0
  %91 = insertelement <2 x float> %90, float %87, i64 1
  %92 = fcmp oge <2 x float> %89, %91
  %93 = select <2 x i1> %92, <2 x float> %89, <2 x float> %91
  %94 = fmul <2 x float> %93, <float 5.000000e-01, float 5.000000e-01>
  %95 = tail call double @slamch_(ptr noundef nonnull @.str.1) #5
  %96 = fptrunc double %95 to float
  %97 = fdiv float 1.000000e+00, %96
  %98 = load i64, ptr %0, align 8, !tbaa !5
  %99 = add nsw i64 %98, -1
  %100 = sitofp i64 %99 to float
  %101 = fmul float %., %100
  %102 = load float, ptr %9, align 4, !tbaa !9
  %103 = fpext float %101 to double
  %104 = fpext float %102 to double
  %105 = tail call double @sqrt(double noundef %67) #5
  %106 = fmul double %105, %104
  %107 = fdiv double %103, %106
  %108 = fptrunc double %107 to float
  %109 = load float, ptr %9, align 4, !tbaa !9
  %110 = fmul float %109, 8.000000e+00
  %111 = fmul float %., 7.812500e-03
  %112 = fcmp ogt float %111, %51
  %113 = insertelement <2 x float> poison, float %82, i64 0
  %114 = shufflevector <2 x float> %113, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.backedge

.backedge:                                        ; preds = %.backedge.backedge, %18
  %.0411 = phi float [ %71, %18 ], [ %.3414, %.backedge.backedge ]
  %.0407 = phi float [ %97, %18 ], [ %.3410, %.backedge.backedge ]
  %.0393 = phi i64 [ undef, %18 ], [ %.4, %.backedge.backedge ]
  %115 = phi i1 [ true, %18 ], [ false, %.backedge.backedge ]
  %.0385 = phi float [ %71, %18 ], [ %.0385.be, %.backedge.backedge ]
  %.not429 = phi i1 [ true, %18 ], [ %115, %.backedge.backedge ]
  %.0382 = phi float [ %79, %18 ], [ %.0382.be, %.backedge.backedge ]
  %116 = phi <2 x float> [ %94, %18 ], [ %.be, %.backedge.backedge ]
  %117 = fcmp ole <2 x float> %114, %116
  %118 = select <2 x i1> %117, <2 x float> %114, <2 x float> %116
  %119 = fneg float %.0385
  %120 = load float, ptr %1, align 4, !tbaa !9
  %121 = fsub float %120, %.0385
  store float %121, ptr %14, align 4, !tbaa !9
  %122 = fcmp ult float %121, 0.000000e+00
  %123 = fneg float %121
  %124 = select i1 %122, float %123, float %121
  %125 = load float, ptr %12, align 4, !tbaa !9
  %126 = fcmp olt float %124, %125
  br i1 %126, label %127, label %129

127:                                              ; preds = %.backedge
  %128 = fneg float %125
  store float %128, ptr %14, align 4, !tbaa !9
  br label %129

129:                                              ; preds = %127, %.backedge
  %.pre-phi = phi float [ %125, %127 ], [ %123, %.backedge ]
  %130 = phi float [ %128, %127 ], [ %121, %.backedge ]
  %.0379 = phi i64 [ 1, %127 ], [ 0, %.backedge ]
  %131 = fcmp ult float %130, 0.000000e+00
  %132 = select i1 %131, float %.pre-phi, float %130
  store float %132, ptr %20, align 4, !tbaa !9
  %133 = load i64, ptr %0, align 8, !tbaa !5
  %.not.not455 = icmp sgt i64 %133, 1
  br i1 %.not.not455, label %.lr.ph, label %163

.lr.ph:                                           ; preds = %129, %157
  %.1380458 = phi i64 [ %.2381, %157 ], [ %.0379, %129 ]
  %.0403457 = phi i64 [ %145, %157 ], [ 1, %129 ]
  %.0415456 = phi float [ %144, %157 ], [ %119, %129 ]
  %134 = phi float [ %162, %157 ], [ %132, %129 ]
  %135 = getelementptr inbounds float, ptr %28, i64 %.0403457
  %136 = load float, ptr %135, align 4, !tbaa !9
  %137 = getelementptr inbounds float, ptr %24, i64 %.0403457
  %138 = load float, ptr %137, align 4, !tbaa !9
  %139 = fdiv float %136, %138
  %140 = getelementptr inbounds float, ptr %23, i64 %.0403457
  store float %139, ptr %140, align 4, !tbaa !9
  %141 = fmul float %.0415456, %139
  %142 = getelementptr inbounds float, ptr %29, i64 %.0403457
  %143 = load float, ptr %142, align 4, !tbaa !9
  %144 = call float @llvm.fmuladd.f32(float %141, float %143, float %119)
  %145 = add nuw nsw i64 %.0403457, 1
  %146 = getelementptr float, ptr %1, i64 %.0403457
  %147 = load float, ptr %146, align 4, !tbaa !9
  %148 = fadd float %147, %144
  %149 = getelementptr float, ptr %14, i64 %.0403457
  store float %148, ptr %149, align 4, !tbaa !9
  %150 = fcmp oge float %148, 0.000000e+00
  %151 = fneg float %148
  %152 = select i1 %150, float %148, float %151
  %153 = load float, ptr %12, align 4, !tbaa !9
  %154 = fcmp olt float %152, %153
  br i1 %154, label %155, label %157

155:                                              ; preds = %.lr.ph
  %156 = fneg float %153
  store float %156, ptr %149, align 4, !tbaa !9
  br label %157

157:                                              ; preds = %155, %.lr.ph
  %.pre-phi506 = phi float [ %153, %155 ], [ %151, %.lr.ph ]
  %158 = phi float [ %156, %155 ], [ %148, %.lr.ph ]
  %.2381 = phi i64 [ 1, %155 ], [ %.1380458, %.lr.ph ]
  %159 = fcmp oge float %158, 0.000000e+00
  %160 = select i1 %159, float %158, float %.pre-phi506
  %161 = fcmp oge float %134, %160
  %162 = select i1 %161, float %134, float %160
  %exitcond.not = icmp eq i64 %145, %133
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %157
  store float %162, ptr %20, align 4, !tbaa !9
  br label %163

163:                                              ; preds = %._crit_edge, %129
  %.1380.lcssa = phi i64 [ %.2381, %._crit_edge ], [ %.0379, %129 ]
  %.not428 = icmp eq i64 %.1380.lcssa, 0
  br i1 %.not428, label %164, label %167

164:                                              ; preds = %163
  %165 = call i64 @sisnan_(ptr noundef nonnull %20) #5
  %166 = icmp ne i64 %165, 0
  br label %167

167:                                              ; preds = %164, %163
  %168 = phi i1 [ true, %163 ], [ %166, %164 ]
  br i1 %.not429, label %169, label %172

169:                                              ; preds = %167
  %170 = load float, ptr %20, align 4, !tbaa !9
  %171 = fcmp ugt float %170, %110
  %or.cond = select i1 %171, i1 true, i1 %168
  br i1 %or.cond, label %173, label %172

172:                                              ; preds = %169, %167
  store float %.0385, ptr %13, align 4, !tbaa !9
  br label %.critedge434

173:                                              ; preds = %169
  %174 = fneg float %.0382
  %175 = load float, ptr %1, align 4, !tbaa !9
  %176 = fsub float %175, %.0382
  store float %176, ptr %16, align 4, !tbaa !9
  %177 = fcmp ult float %176, 0.000000e+00
  %178 = fneg float %176
  %179 = select i1 %177, float %178, float %176
  %180 = load float, ptr %12, align 4, !tbaa !9
  %181 = fcmp olt float %179, %180
  br i1 %181, label %182, label %184

182:                                              ; preds = %173
  %183 = fneg float %180
  store float %183, ptr %16, align 4, !tbaa !9
  br label %184

184:                                              ; preds = %182, %173
  %.pre-phi508 = phi float [ %180, %182 ], [ %178, %173 ]
  %185 = phi float [ %183, %182 ], [ %176, %173 ]
  %.0378 = phi i64 [ 1, %182 ], [ 0, %173 ]
  %186 = fcmp ult float %185, 0.000000e+00
  %187 = select i1 %186, float %.pre-phi508, float %185
  store float %187, ptr %21, align 4, !tbaa !9
  %188 = load i64, ptr %0, align 8, !tbaa !5
  %.not430.not460 = icmp sgt i64 %188, 1
  br i1 %.not430.not460, label %.lr.ph465, label %220

.lr.ph465:                                        ; preds = %184
  %189 = getelementptr float, ptr %22, i64 %188
  br label %190

190:                                              ; preds = %.lr.ph465, %214
  %.1463 = phi i64 [ %.0378, %.lr.ph465 ], [ %.2, %214 ]
  %.1404462 = phi i64 [ 1, %.lr.ph465 ], [ %202, %214 ]
  %.1416461 = phi float [ %174, %.lr.ph465 ], [ %201, %214 ]
  %191 = phi float [ %187, %.lr.ph465 ], [ %219, %214 ]
  %192 = getelementptr inbounds float, ptr %28, i64 %.1404462
  %193 = load float, ptr %192, align 4, !tbaa !9
  %194 = getelementptr inbounds float, ptr %22, i64 %.1404462
  %195 = load float, ptr %194, align 4, !tbaa !9
  %196 = fdiv float %193, %195
  %197 = getelementptr float, ptr %189, i64 %.1404462
  store float %196, ptr %197, align 4, !tbaa !9
  %198 = fmul float %.1416461, %196
  %199 = getelementptr inbounds float, ptr %29, i64 %.1404462
  %200 = load float, ptr %199, align 4, !tbaa !9
  %201 = call float @llvm.fmuladd.f32(float %198, float %200, float %174)
  %202 = add nuw nsw i64 %.1404462, 1
  %203 = getelementptr float, ptr %1, i64 %.1404462
  %204 = load float, ptr %203, align 4, !tbaa !9
  %205 = fadd float %204, %201
  %206 = getelementptr float, ptr %16, i64 %.1404462
  store float %205, ptr %206, align 4, !tbaa !9
  %207 = fcmp oge float %205, 0.000000e+00
  %208 = fneg float %205
  %209 = select i1 %207, float %205, float %208
  %210 = load float, ptr %12, align 4, !tbaa !9
  %211 = fcmp olt float %209, %210
  br i1 %211, label %212, label %214

212:                                              ; preds = %190
  %213 = fneg float %210
  store float %213, ptr %206, align 4, !tbaa !9
  br label %214

214:                                              ; preds = %212, %190
  %.pre-phi510 = phi float [ %210, %212 ], [ %208, %190 ]
  %215 = phi float [ %213, %212 ], [ %205, %190 ]
  %.2 = phi i64 [ 1, %212 ], [ %.1463, %190 ]
  %216 = fcmp oge float %215, 0.000000e+00
  %217 = select i1 %216, float %215, float %.pre-phi510
  %218 = fcmp oge float %191, %217
  %219 = select i1 %218, float %191, float %217
  %exitcond501.not = icmp eq i64 %202, %188
  br i1 %exitcond501.not, label %._crit_edge466, label %190, !llvm.loop !13

._crit_edge466:                                   ; preds = %214
  store float %219, ptr %21, align 4, !tbaa !9
  br label %220

220:                                              ; preds = %._crit_edge466, %184
  %221 = phi float [ %219, %._crit_edge466 ], [ %187, %184 ]
  %.1.lcssa = phi i64 [ %.2, %._crit_edge466 ], [ %.0378, %184 ]
  %.not431 = icmp eq i64 %.1.lcssa, 0
  br i1 %.not431, label %222, label %.thread

222:                                              ; preds = %220
  %223 = call i64 @sisnan_(ptr noundef nonnull %21) #5
  %224 = icmp ne i64 %223, 0
  %225 = load float, ptr %21, align 4
  %226 = fcmp ugt float %225, %110
  %or.cond3 = select i1 %226, i1 true, i1 %224
  br i1 %or.cond3, label %.thread, label %352

.thread:                                          ; preds = %220, %222
  %227 = phi float [ %225, %222 ], [ %221, %220 ]
  %228 = phi i1 [ %224, %222 ], [ true, %220 ]
  %or.cond5 = select i1 %168, i1 %228, i1 false
  br i1 %or.cond5, label %.critedge, label %229

229:                                              ; preds = %.thread
  br i1 %168, label %.thread436, label %230

230:                                              ; preds = %229
  %231 = load float, ptr %20, align 4, !tbaa !9
  %232 = fcmp ugt float %231, %.0407
  %.1412 = select i1 %232, float %.0411, float %.0385
  %.1408 = select i1 %232, float %.0407, float %231
  br i1 %228, label %238, label %233

.thread436:                                       ; preds = %229
  br i1 %228, label %238, label %.thread443

233:                                              ; preds = %230
  %234 = fcmp ugt float %227, %231
  br i1 %234, label %.thread443, label %235

235:                                              ; preds = %233
  br label %.thread443

.thread443:                                       ; preds = %.thread436, %235, %233
  %.1412440449 = phi float [ %.1412, %233 ], [ %.1412, %235 ], [ %.0411, %.thread436 ]
  %.1408441447 = phi float [ %.1408, %233 ], [ %.1408, %235 ], [ %.0407, %.thread436 ]
  %.2395 = phi i64 [ 1, %233 ], [ 2, %235 ], [ 2, %.thread436 ]
  %236 = fcmp ugt float %227, %.1408441447
  br i1 %236, label %238, label %237

237:                                              ; preds = %.thread443
  br label %238

238:                                              ; preds = %.thread436, %230, %237, %.thread443
  %.2413 = phi float [ %.1412, %230 ], [ %.0382, %237 ], [ %.1412440449, %.thread443 ], [ %.0411, %.thread436 ]
  %.2409 = phi float [ %.1408, %230 ], [ %227, %237 ], [ %.1408441447, %.thread443 ], [ %.0407, %.thread436 ]
  %.3396 = phi i64 [ 1, %230 ], [ %.2395, %237 ], [ %.2395, %.thread443 ], [ %.0393, %.thread436 ]
  br i1 %112, label %239, label %.critedge

239:                                              ; preds = %238
  %240 = load float, ptr %20, align 4
  %241 = fcmp ole float %240, %227
  %242 = select i1 %241, float %240, float %227
  %243 = fcmp uge float %242, %108
  %or.cond7 = select i1 %243, i1 true, i1 %168
  %or.cond9 = select i1 %or.cond7, i1 true, i1 %228
  br i1 %or.cond9, label %.critedge, label %244

244:                                              ; preds = %239
  switch i64 %.3396, label %.critedge [
    i64 1, label %245
    i64 2, label %294
  ]

245:                                              ; preds = %244
  %246 = load i64, ptr %0, align 8, !tbaa !5
  %247 = getelementptr inbounds float, ptr %24, i64 %246
  %248 = load float, ptr %247, align 4, !tbaa !9
  %249 = fcmp oge float %248, 0.000000e+00
  %250 = fneg float %248
  %251 = select i1 %249, float %248, float %250
  %252 = icmp sgt i64 %246, 1
  br i1 %252, label %.lr.ph487, label %._crit_edge488

.lr.ph487:                                        ; preds = %245
  %253 = getelementptr float, ptr %22, i64 %246
  br label %254

254:                                              ; preds = %.lr.ph487, %274
  %255 = phi float [ %248, %.lr.ph487 ], [ %275, %274 ]
  %.0390484 = phi float [ 1.000000e+00, %.lr.ph487 ], [ %.1391, %274 ]
  %.0399483 = phi float [ 1.000000e+00, %.lr.ph487 ], [ %276, %274 ]
  %.0401482 = phi float [ %251, %.lr.ph487 ], [ %282, %274 ]
  %.2405.in481 = phi i64 [ %246, %.lr.ph487 ], [ %.2405485, %274 ]
  %.2405485 = add nsw i64 %.2405.in481, -1
  %256 = fcmp ugt float %.0390484, %31
  br i1 %256, label %268, label %257

257:                                              ; preds = %254
  %258 = getelementptr inbounds float, ptr %24, i64 %.2405485
  %259 = load float, ptr %258, align 4, !tbaa !9
  %260 = getelementptr float, ptr %253, i64 %.2405485
  %261 = load <2 x float>, ptr %260, align 4, !tbaa !9
  %262 = insertelement <2 x float> poison, float %259, i64 0
  %263 = insertelement <2 x float> %262, float %255, i64 1
  %264 = fmul <2 x float> %263, %261
  %265 = extractelement <2 x float> %264, i64 0
  %266 = extractelement <2 x float> %264, i64 1
  %267 = fdiv float %266, %265
  br label %274

268:                                              ; preds = %254
  %269 = getelementptr float, ptr %253, i64 %.2405485
  %270 = load float, ptr %269, align 4, !tbaa !9
  %271 = fcmp oge float %270, 0.000000e+00
  %272 = fneg float %270
  %273 = select i1 %271, float %270, float %272
  %.phi.trans.insert502 = getelementptr inbounds float, ptr %24, i64 %.2405485
  %.pre503 = load float, ptr %.phi.trans.insert502, align 4, !tbaa !9
  br label %274

274:                                              ; preds = %268, %257
  %275 = phi float [ %259, %257 ], [ %.pre503, %268 ]
  %.pn491 = phi float [ %267, %257 ], [ %273, %268 ]
  %.1391 = fmul float %.0390484, %.pn491
  %276 = call float @llvm.fmuladd.f32(float %.1391, float %.1391, float %.0399483)
  %277 = fmul float %.1391, %275
  %278 = fcmp oge float %277, 0.000000e+00
  %279 = fneg float %277
  %280 = select i1 %278, float %277, float %279
  %281 = fcmp oge float %.0401482, %280
  %282 = select i1 %281, float %.0401482, float %280
  %283 = icmp ugt i64 %.2405.in481, 2
  br i1 %283, label %254, label %._crit_edge488, !llvm.loop !14

._crit_edge488:                                   ; preds = %274, %245
  %.0401.lcssa = phi float [ %251, %245 ], [ %282, %274 ]
  %.0399.lcssa = phi float [ 1.000000e+00, %245 ], [ %276, %274 ]
  %284 = fpext float %.0401.lcssa to double
  %285 = load float, ptr %9, align 4, !tbaa !9
  %286 = fpext float %285 to double
  %287 = fpext float %.0399.lcssa to double
  %288 = call double @sqrt(double noundef %287) #5
  %289 = fmul double %288, %286
  %290 = fdiv double %284, %289
  %291 = fptrunc double %290 to float
  %292 = fcmp ugt float %291, 8.000000e+00
  br i1 %292, label %.critedge, label %293

293:                                              ; preds = %._crit_edge488
  store float %.0385, ptr %13, align 4, !tbaa !9
  br label %.critedge434

294:                                              ; preds = %244
  %295 = load i64, ptr %0, align 8, !tbaa !5
  %296 = getelementptr inbounds float, ptr %22, i64 %295
  %297 = load float, ptr %296, align 4, !tbaa !9
  %298 = fcmp oge float %297, 0.000000e+00
  %299 = fneg float %297
  %300 = select i1 %298, float %297, float %299
  %301 = icmp sgt i64 %295, 1
  br i1 %301, label %.lr.ph476, label %._crit_edge477

.lr.ph476:                                        ; preds = %294, %321
  %302 = phi float [ %322, %321 ], [ %297, %294 ]
  %.2392473 = phi float [ %.3, %321 ], [ 1.000000e+00, %294 ]
  %.1400472 = phi float [ %323, %321 ], [ 1.000000e+00, %294 ]
  %.1402471 = phi float [ %329, %321 ], [ %300, %294 ]
  %.3406.in470 = phi i64 [ %.3406474, %321 ], [ %295, %294 ]
  %.3406474 = add nsw i64 %.3406.in470, -1
  %303 = fcmp ugt float %.2392473, %31
  br i1 %303, label %315, label %304

304:                                              ; preds = %.lr.ph476
  %305 = getelementptr inbounds float, ptr %22, i64 %.3406474
  %306 = load float, ptr %305, align 4, !tbaa !9
  %307 = getelementptr inbounds float, ptr %23, i64 %.3406474
  %308 = load <2 x float>, ptr %307, align 4, !tbaa !9
  %309 = insertelement <2 x float> poison, float %306, i64 0
  %310 = insertelement <2 x float> %309, float %302, i64 1
  %311 = fmul <2 x float> %310, %308
  %312 = extractelement <2 x float> %311, i64 0
  %313 = extractelement <2 x float> %311, i64 1
  %314 = fdiv float %313, %312
  br label %321

315:                                              ; preds = %.lr.ph476
  %316 = getelementptr inbounds float, ptr %23, i64 %.3406474
  %317 = load float, ptr %316, align 4, !tbaa !9
  %318 = fcmp oge float %317, 0.000000e+00
  %319 = fneg float %317
  %320 = select i1 %318, float %317, float %319
  %.phi.trans.insert = getelementptr inbounds float, ptr %22, i64 %.3406474
  %.pre = load float, ptr %.phi.trans.insert, align 4, !tbaa !9
  br label %321

321:                                              ; preds = %315, %304
  %322 = phi float [ %306, %304 ], [ %.pre, %315 ]
  %.pn = phi float [ %314, %304 ], [ %320, %315 ]
  %.3 = fmul float %.2392473, %.pn
  %323 = call float @llvm.fmuladd.f32(float %.3, float %.3, float %.1400472)
  %324 = fmul float %.3, %322
  %325 = fcmp oge float %324, 0.000000e+00
  %326 = fneg float %324
  %327 = select i1 %325, float %324, float %326
  %328 = fcmp oge float %.1402471, %327
  %329 = select i1 %328, float %.1402471, float %327
  %330 = icmp ugt i64 %.3406.in470, 2
  br i1 %330, label %.lr.ph476, label %._crit_edge477, !llvm.loop !15

._crit_edge477:                                   ; preds = %321, %294
  %.1402.lcssa = phi float [ %300, %294 ], [ %329, %321 ]
  %.1400.lcssa = phi float [ 1.000000e+00, %294 ], [ %323, %321 ]
  %331 = fpext float %.1402.lcssa to double
  %332 = load float, ptr %9, align 4, !tbaa !9
  %333 = fpext float %332 to double
  %334 = fpext float %.1400.lcssa to double
  %335 = call double @sqrt(double noundef %334) #5
  %336 = fmul double %335, %333
  %337 = fdiv double %331, %336
  %338 = fptrunc double %337 to float
  %339 = fcmp ugt float %338, 8.000000e+00
  br i1 %339, label %.critedge, label %352

.critedge:                                        ; preds = %238, %239, %244, %._crit_edge477, %._crit_edge488, %.thread
  %.3414 = phi float [ %.0411, %.thread ], [ %.2413, %._crit_edge488 ], [ %.2413, %._crit_edge477 ], [ %.2413, %244 ], [ %.2413, %239 ], [ %.2413, %238 ]
  %.3410 = phi float [ %.0407, %.thread ], [ %.2409, %._crit_edge488 ], [ %.2409, %._crit_edge477 ], [ %.2409, %244 ], [ %.2409, %239 ], [ %.2409, %238 ]
  %.4 = phi i64 [ %.0393, %.thread ], [ 1, %._crit_edge488 ], [ 2, %._crit_edge477 ], [ %.3396, %244 ], [ %.3396, %239 ], [ %.3396, %238 ]
  br i1 %115, label %340, label %.backedge.backedge

340:                                              ; preds = %.critedge
  %341 = extractelement <2 x float> %118, i64 0
  %342 = fsub float %.0385, %341
  %343 = fsub float %.0385, %82
  %344 = fcmp oge float %342, %343
  %345 = select i1 %344, float %342, float %343
  %346 = extractelement <2 x float> %118, i64 1
  %347 = fadd float %.0382, %346
  %348 = fadd float %82, %.0382
  %349 = fcmp ole float %347, %348
  %350 = select i1 %349, float %347, float %348
  %351 = fmul <2 x float> %118, <float 2.000000e+00, float 2.000000e+00>
  br label %.backedge.backedge

.backedge.backedge:                               ; preds = %340, %.critedge
  %.0385.be = phi float [ %345, %340 ], [ %.3414, %.critedge ]
  %.0382.be = phi float [ %350, %340 ], [ %.3414, %.critedge ]
  %.be = phi <2 x float> [ %351, %340 ], [ %118, %.critedge ]
  br label %.backedge

352:                                              ; preds = %._crit_edge477, %222
  store float %.0382, ptr %13, align 4, !tbaa !9
  %353 = call i32 @f2c_scopy(ptr noundef nonnull %0, ptr noundef nonnull %16, ptr noundef nonnull @c__1, ptr noundef nonnull %14, ptr noundef nonnull @c__1) #5
  %354 = load i64, ptr %0, align 8, !tbaa !5
  %355 = add nsw i64 %354, -1
  store i64 %355, ptr %19, align 8, !tbaa !5
  %356 = getelementptr float, ptr %16, i64 %354
  %357 = call i32 @f2c_scopy(ptr noundef nonnull %19, ptr noundef %356, ptr noundef nonnull @c__1, ptr noundef %15, ptr noundef nonnull @c__1) #5
  br label %.critedge434

.critedge434:                                     ; preds = %352, %293, %172
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  ret i32 0
}

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

declare i64 @sisnan_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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


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