; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4

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

99:                                               ; preds = %18
  store i32 1, ptr %76, align 4
  br label %1118

100:                                              ; preds = %18
  store float 2.000000e+00, ptr %43, align 4, !tbaa !11
  %101 = call float @slamch_(ptr noundef @.str)
  store float %101, ptr %68, align 4, !tbaa !11
  store i32 0, ptr %54, align 4, !tbaa !9
  store i32 0, ptr %63, align 4, !tbaa !9
  store i32 0, ptr %59, align 4, !tbaa !9
  %102 = load ptr, ptr %25, align 8, !tbaa !5
  %103 = load ptr, ptr %24, align 8, !tbaa !5
  %104 = load i32, ptr %103, align 4, !tbaa !9
  %105 = sext i32 %104 to i64
  %106 = getelementptr inbounds float, ptr %102, i64 %105
  %107 = load float, ptr %106, align 4, !tbaa !11
  %108 = load ptr, ptr %25, align 8, !tbaa !5
  %109 = load ptr, ptr %23, align 8, !tbaa !5
  %110 = load i32, ptr %109, align 4, !tbaa !9
  %111 = sext i32 %110 to i64
  %112 = getelementptr inbounds float, ptr %108, i64 %111
  %113 = load float, ptr %112, align 4, !tbaa !11
  %114 = fsub float %107, %113
  store float %114, ptr %38, align 4, !tbaa !11
  %115 = load float, ptr %38, align 4, !tbaa !11
  %116 = fcmp oge float %115, 0.000000e+00
  br i1 %116, label %117, label %119

117:                                              ; preds = %100
  %118 = load float, ptr %38, align 4, !tbaa !11
  br label %122

119:                                              ; preds = %100
  %120 = load float, ptr %38, align 4, !tbaa !11
  %121 = fneg float %120
  br label %122

122:                                              ; preds = %119, %117
  %123 = phi float [ %118, %117 ], [ %121, %119 ]
  %124 = load ptr, ptr %27, align 8, !tbaa !5
  %125 = load ptr, ptr %24, align 8, !tbaa !5
  %126 = load i32, ptr %125, align 4, !tbaa !9
  %127 = sext i32 %126 to i64
  %128 = getelementptr inbounds float, ptr %124, i64 %127
  %129 = load float, ptr %128, align 4, !tbaa !11
  %130 = fadd float %123, %129
  %131 = load ptr, ptr %27, align 8, !tbaa !5
  %132 = load ptr, ptr %23, align 8, !tbaa !5
  %133 = load i32, ptr %132, align 4, !tbaa !9
  %134 = sext i32 %133 to i64
  %135 = getelementptr inbounds float, ptr %131, i64 %134
  %136 = load float, ptr %135, align 4, !tbaa !11
  %137 = fadd float %130, %136
  store float %137, ptr %65, align 4, !tbaa !11
  %138 = load float, ptr %65, align 4, !tbaa !11
  %139 = load ptr, ptr %24, align 8, !tbaa !5
  %140 = load i32, ptr %139, align 4, !tbaa !9
  %141 = load ptr, ptr %23, align 8, !tbaa !5
  %142 = load i32, ptr %141, align 4, !tbaa !9
  %143 = sub nsw i32 %140, %142
  %144 = sitofp i32 %143 to float
  %145 = fdiv float %138, %144
  store float %145, ptr %51, align 4, !tbaa !11
  %146 = load ptr, ptr %29, align 8, !tbaa !5
  %147 = load float, ptr %146, align 4, !tbaa !11
  %148 = load ptr, ptr %30, align 8, !tbaa !5
  %149 = load float, ptr %148, align 4, !tbaa !11
  %150 = fcmp ole float %147, %149
  br i1 %150, label %151, label %154

151:                                              ; preds = %122
  %152 = load ptr, ptr %29, align 8, !tbaa !5
  %153 = load float, ptr %152, align 4, !tbaa !11
  br label %157

154:                                              ; preds = %122
  %155 = load ptr, ptr %30, align 8, !tbaa !5
  %156 = load float, ptr %155, align 4, !tbaa !11
  br label %157

157:                                              ; preds = %154, %151
  %158 = phi float [ %153, %151 ], [ %156, %154 ]
  store float %158, ptr %60, align 4, !tbaa !11
  %159 = load ptr, ptr %25, align 8, !tbaa !5
  %160 = load ptr, ptr %23, align 8, !tbaa !5
  %161 = load i32, ptr %160, align 4, !tbaa !9
  %162 = sext i32 %161 to i64
  %163 = getelementptr inbounds float, ptr %159, i64 %162
  %164 = load float, ptr %163, align 4, !tbaa !11
  store float %164, ptr %38, align 4, !tbaa !11
  %165 = load ptr, ptr %25, align 8, !tbaa !5
  %166 = load ptr, ptr %24, align 8, !tbaa !5
  %167 = load i32, ptr %166, align 4, !tbaa !9
  %168 = sext i32 %167 to i64
  %169 = getelementptr inbounds float, ptr %165, i64 %168
  %170 = load float, ptr %169, align 4, !tbaa !11
  store float %170, ptr %39, align 4, !tbaa !11
  %171 = load float, ptr %38, align 4, !tbaa !11
  %172 = load float, ptr %39, align 4, !tbaa !11
  %173 = fcmp ole float %171, %172
  br i1 %173, label %174, label %176

174:                                              ; preds = %157
  %175 = load float, ptr %38, align 4, !tbaa !11
  br label %178

176:                                              ; preds = %157
  %177 = load float, ptr %39, align 4, !tbaa !11
  br label %178

178:                                              ; preds = %176, %174
  %179 = phi float [ %175, %174 ], [ %177, %176 ]
  %180 = load ptr, ptr %27, align 8, !tbaa !5
  %181 = load ptr, ptr %23, align 8, !tbaa !5
  %182 = load i32, ptr %181, align 4, !tbaa !9
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds float, ptr %180, i64 %183
  %185 = load float, ptr %184, align 4, !tbaa !11
  %186 = fsub float %179, %185
  store float %186, ptr %61, align 4, !tbaa !11
  %187 = load ptr, ptr %25, align 8, !tbaa !5
  %188 = load ptr, ptr %23, align 8, !tbaa !5
  %189 = load i32, ptr %188, align 4, !tbaa !9
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds float, ptr %187, i64 %190
  %192 = load float, ptr %191, align 4, !tbaa !11
  store float %192, ptr %38, align 4, !tbaa !11
  %193 = load ptr, ptr %25, align 8, !tbaa !5
  %194 = load ptr, ptr %24, align 8, !tbaa !5
  %195 = load i32, ptr %194, align 4, !tbaa !9
  %196 = sext i32 %195 to i64
  %197 = getelementptr inbounds float, ptr %193, i64 %196
  %198 = load float, ptr %197, align 4, !tbaa !11
  store float %198, ptr %39, align 4, !tbaa !11
  %199 = load float, ptr %38, align 4, !tbaa !11
  %200 = load float, ptr %39, align 4, !tbaa !11
  %201 = fcmp oge float %199, %200
  br i1 %201, label %202, label %204

202:                                              ; preds = %178
  %203 = load float, ptr %38, align 4, !tbaa !11
  br label %206

204:                                              ; preds = %178
  %205 = load float, ptr %39, align 4, !tbaa !11
  br label %206

206:                                              ; preds = %204, %202
  %207 = phi float [ %203, %202 ], [ %205, %204 ]
  %208 = load ptr, ptr %27, align 8, !tbaa !5
  %209 = load ptr, ptr %24, align 8, !tbaa !5
  %210 = load i32, ptr %209, align 4, !tbaa !9
  %211 = sext i32 %210 to i64
  %212 = getelementptr inbounds float, ptr %208, i64 %211
  %213 = load float, ptr %212, align 4, !tbaa !11
  %214 = fadd float %207, %213
  store float %214, ptr %64, align 4, !tbaa !11
  %215 = load float, ptr %61, align 4, !tbaa !11
  %216 = fcmp oge float %215, 0.000000e+00
  br i1 %216, label %217, label %219

217:                                              ; preds = %206
  %218 = load float, ptr %61, align 4, !tbaa !11
  br label %222

219:                                              ; preds = %206
  %220 = load float, ptr %61, align 4, !tbaa !11
  %221 = fneg float %220
  br label %222

222:                                              ; preds = %219, %217
  %223 = phi float [ %218, %217 ], [ %221, %219 ]
  %224 = fmul float %223, 2.000000e+00
  %225 = load float, ptr %68, align 4, !tbaa !11
  %226 = load float, ptr %61, align 4, !tbaa !11
  %227 = fneg float %224
  %228 = call float @llvm.fmuladd.f32(float %227, float %225, float %226)
  store float %228, ptr %61, align 4, !tbaa !11
  %229 = load float, ptr %64, align 4, !tbaa !11
  %230 = fcmp oge float %229, 0.000000e+00
  br i1 %230, label %231, label %233

231:                                              ; preds = %222
  %232 = load float, ptr %64, align 4, !tbaa !11
  br label %236

233:                                              ; preds = %222
  %234 = load float, ptr %64, align 4, !tbaa !11
  %235 = fneg float %234
  br label %236

236:                                              ; preds = %233, %231
  %237 = phi float [ %232, %231 ], [ %235, %233 ]
  %238 = fmul float %237, 2.000000e+00
  %239 = load float, ptr %68, align 4, !tbaa !11
  %240 = load float, ptr %64, align 4, !tbaa !11
  %241 = call float @llvm.fmuladd.f32(float %238, float %239, float %240)
  store float %241, ptr %64, align 4, !tbaa !11
  %242 = load float, ptr %60, align 4, !tbaa !11
  %243 = load ptr, ptr %31, align 8, !tbaa !5
  %244 = load float, ptr %243, align 4, !tbaa !11
  %245 = fmul float %244, 2.000000e+00
  %246 = call float @llvm.fmuladd.f32(float %242, float 2.500000e-01, float %245)
  store float %246, ptr %52, align 4, !tbaa !11
  %247 = load float, ptr %60, align 4, !tbaa !11
  %248 = load ptr, ptr %31, align 8, !tbaa !5
  %249 = load float, ptr %248, align 4, !tbaa !11
  %250 = fmul float %249, 2.000000e+00
  %251 = call float @llvm.fmuladd.f32(float %247, float 2.500000e-01, float %250)
  store float %251, ptr %53, align 4, !tbaa !11
  %252 = load float, ptr %51, align 4, !tbaa !11
  store float %252, ptr %38, align 4, !tbaa !11
  %253 = load ptr, ptr %26, align 8, !tbaa !5
  %254 = load ptr, ptr %23, align 8, !tbaa !5
  %255 = load i32, ptr %254, align 4, !tbaa !9
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds float, ptr %253, i64 %256
  %258 = load float, ptr %257, align 4, !tbaa !11
  store float %258, ptr %39, align 4, !tbaa !11
  %259 = load float, ptr %38, align 4, !tbaa !11
  %260 = load float, ptr %39, align 4, !tbaa !11
  %261 = fcmp oge float %259, %260
  br i1 %261, label %262, label %264

262:                                              ; preds = %236
  %263 = load float, ptr %38, align 4, !tbaa !11
  br label %266

264:                                              ; preds = %236
  %265 = load float, ptr %39, align 4, !tbaa !11
  br label %266

266:                                              ; preds = %264, %262
  %267 = phi float [ %263, %262 ], [ %265, %264 ]
  %268 = load float, ptr %43, align 4, !tbaa !11
  %269 = fdiv float %267, %268
  store float %269, ptr %58, align 4, !tbaa !11
  %270 = load float, ptr %51, align 4, !tbaa !11
  store float %270, ptr %38, align 4, !tbaa !11
  %271 = load ptr, ptr %26, align 8, !tbaa !5
  %272 = load ptr, ptr %24, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = sub nsw i32 %273, 1
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds float, ptr %271, i64 %275
  %277 = load float, ptr %276, align 4, !tbaa !11
  store float %277, ptr %39, align 4, !tbaa !11
  %278 = load float, ptr %38, align 4, !tbaa !11
  %279 = load float, ptr %39, align 4, !tbaa !11
  %280 = fcmp oge float %278, %279
  br i1 %280, label %281, label %283

281:                                              ; preds = %266
  %282 = load float, ptr %38, align 4, !tbaa !11
  br label %285

283:                                              ; preds = %266
  %284 = load float, ptr %39, align 4, !tbaa !11
  br label %285

285:                                              ; preds = %283, %281
  %286 = phi float [ %282, %281 ], [ %284, %283 ]
  %287 = load float, ptr %43, align 4, !tbaa !11
  %288 = fdiv float %286, %287
  store float %288, ptr %62, align 4, !tbaa !11
  %289 = call float @slamch_(ptr noundef @.str.1)
  store float %289, ptr %50, align 4, !tbaa !11
  %290 = load float, ptr %50, align 4, !tbaa !11
  %291 = fdiv float 1.000000e+00, %290
  store float %291, ptr %56, align 4, !tbaa !11
  %292 = load ptr, ptr %19, align 8, !tbaa !5
  %293 = load i32, ptr %292, align 4, !tbaa !9
  %294 = sub nsw i32 %293, 1
  %295 = sitofp i32 %294 to float
  %296 = load float, ptr %60, align 4, !tbaa !11
  %297 = fmul float %295, %296
  %298 = load ptr, ptr %28, align 8, !tbaa !5
  %299 = load float, ptr %298, align 4, !tbaa !11
  %300 = load float, ptr %68, align 4, !tbaa !11
  %301 = fmul float %299, %300
  %302 = fdiv float %297, %301
  store float %302, ptr %42, align 4, !tbaa !11
  %303 = load ptr, ptr %19, align 8, !tbaa !5
  %304 = load i32, ptr %303, align 4, !tbaa !9
  %305 = sub nsw i32 %304, 1
  %306 = sitofp i32 %305 to float
  %307 = load float, ptr %60, align 4, !tbaa !11
  %308 = fmul float %306, %307
  %309 = fpext float %308 to double
  %310 = load ptr, ptr %28, align 8, !tbaa !5
  %311 = load float, ptr %310, align 4, !tbaa !11
  %312 = fpext float %311 to double
  %313 = load float, ptr %68, align 4, !tbaa !11
  %314 = fpext float %313 to double
  %315 = call double @sqrt(double noundef %314) #5
  %316 = fmul double %312, %315
  %317 = fdiv double %309, %316
  %318 = fptrunc double %317 to float
  store float %318, ptr %48, align 4, !tbaa !11
  %319 = load float, ptr %61, align 4, !tbaa !11
  store float %319, ptr %55, align 4, !tbaa !11
  store i32 0, ptr %47, align 4, !tbaa !9
  %320 = load ptr, ptr %28, align 8, !tbaa !5
  %321 = load float, ptr %320, align 4, !tbaa !11
  %322 = fmul float %321, 8.000000e+00
  store float %322, ptr %41, align 4, !tbaa !11
  br label %323

323:                                              ; preds = %1087, %1072, %285
  store i32 0, ptr %66, align 4, !tbaa !9
  store i32 0, ptr %67, align 4, !tbaa !9
  %324 = load float, ptr %52, align 4, !tbaa !11
  %325 = load float, ptr %58, align 4, !tbaa !11
  %326 = fcmp ole float %324, %325
  br i1 %326, label %327, label %329

327:                                              ; preds = %323
  %328 = load float, ptr %52, align 4, !tbaa !11
  br label %331

329:                                              ; preds = %323
  %330 = load float, ptr %58, align 4, !tbaa !11
  br label %331

331:                                              ; preds = %329, %327
  %332 = phi float [ %328, %327 ], [ %330, %329 ]
  store float %332, ptr %58, align 4, !tbaa !11
  %333 = load float, ptr %53, align 4, !tbaa !11
  %334 = load float, ptr %62, align 4, !tbaa !11
  %335 = fcmp ole float %333, %334
  br i1 %335, label %336, label %338

336:                                              ; preds = %331
  %337 = load float, ptr %53, align 4, !tbaa !11
  br label %340

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

340:                                              ; preds = %338, %336
  %341 = phi float [ %337, %336 ], [ %339, %338 ]
  store float %341, ptr %62, align 4, !tbaa !11
  %342 = load float, ptr %61, align 4, !tbaa !11
  %343 = fneg float %342
  store float %343, ptr %50, align 4, !tbaa !11
  %344 = load ptr, ptr %20, align 8, !tbaa !5
  %345 = getelementptr inbounds float, ptr %344, i64 1
  %346 = load float, ptr %345, align 4, !tbaa !11
  %347 = load float, ptr %50, align 4, !tbaa !11
  %348 = fadd float %346, %347
  %349 = load ptr, ptr %33, align 8, !tbaa !5
  %350 = getelementptr inbounds float, ptr %349, i64 1
  store float %348, ptr %350, align 4, !tbaa !11
  %351 = load ptr, ptr %33, align 8, !tbaa !5
  %352 = getelementptr inbounds float, ptr %351, i64 1
  %353 = load float, ptr %352, align 4, !tbaa !11
  %354 = fcmp oge float %353, 0.000000e+00
  br i1 %354, label %355, label %359

355:                                              ; preds = %340
  %356 = load ptr, ptr %33, align 8, !tbaa !5
  %357 = getelementptr inbounds float, ptr %356, i64 1
  %358 = load float, ptr %357, align 4, !tbaa !11
  br label %364

359:                                              ; preds = %340
  %360 = load ptr, ptr %33, align 8, !tbaa !5
  %361 = getelementptr inbounds float, ptr %360, i64 1
  %362 = load float, ptr %361, align 4, !tbaa !11
  %363 = fneg float %362
  br label %364

364:                                              ; preds = %359, %355
  %365 = phi float [ %358, %355 ], [ %363, %359 ]
  %366 = load ptr, ptr %31, align 8, !tbaa !5
  %367 = load float, ptr %366, align 4, !tbaa !11
  %368 = fcmp olt float %365, %367
  br i1 %368, label %369, label %375

369:                                              ; preds = %364
  %370 = load ptr, ptr %31, align 8, !tbaa !5
  %371 = load float, ptr %370, align 4, !tbaa !11
  %372 = fneg float %371
  %373 = load ptr, ptr %33, align 8, !tbaa !5
  %374 = getelementptr inbounds float, ptr %373, i64 1
  store float %372, ptr %374, align 4, !tbaa !11
  store i32 1, ptr %66, align 4, !tbaa !9
  br label %375

375:                                              ; preds = %369, %364
  %376 = load ptr, ptr %33, align 8, !tbaa !5
  %377 = getelementptr inbounds float, ptr %376, i64 1
  %378 = load float, ptr %377, align 4, !tbaa !11
  %379 = fcmp oge float %378, 0.000000e+00
  br i1 %379, label %380, label %384

380:                                              ; preds = %375
  %381 = load ptr, ptr %33, align 8, !tbaa !5
  %382 = getelementptr inbounds float, ptr %381, i64 1
  %383 = load float, ptr %382, align 4, !tbaa !11
  br label %389

384:                                              ; preds = %375
  %385 = load ptr, ptr %33, align 8, !tbaa !5
  %386 = getelementptr inbounds float, ptr %385, i64 1
  %387 = load float, ptr %386, align 4, !tbaa !11
  %388 = fneg float %387
  br label %389

389:                                              ; preds = %384, %380
  %390 = phi float [ %383, %380 ], [ %388, %384 ]
  store float %390, ptr %71, align 4, !tbaa !11
  %391 = load ptr, ptr %19, align 8, !tbaa !5
  %392 = load i32, ptr %391, align 4, !tbaa !9
  %393 = sub nsw i32 %392, 1
  store i32 %393, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %394

394:                                              ; preds = %495, %389
  %395 = load i32, ptr %49, align 4, !tbaa !9
  %396 = load i32, ptr %37, align 4, !tbaa !9
  %397 = icmp sle i32 %395, %396
  br i1 %397, label %398, label %498

398:                                              ; preds = %394
  %399 = load ptr, ptr %22, align 8, !tbaa !5
  %400 = load i32, ptr %49, align 4, !tbaa !9
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds float, ptr %399, i64 %401
  %403 = load float, ptr %402, align 4, !tbaa !11
  %404 = load ptr, ptr %33, align 8, !tbaa !5
  %405 = load i32, ptr %49, align 4, !tbaa !9
  %406 = sext i32 %405 to i64
  %407 = getelementptr inbounds float, ptr %404, i64 %406
  %408 = load float, ptr %407, align 4, !tbaa !11
  %409 = fdiv float %403, %408
  %410 = load ptr, ptr %34, align 8, !tbaa !5
  %411 = load i32, ptr %49, align 4, !tbaa !9
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds float, ptr %410, i64 %412
  store float %409, ptr %413, align 4, !tbaa !11
  %414 = load float, ptr %50, align 4, !tbaa !11
  %415 = load ptr, ptr %34, align 8, !tbaa !5
  %416 = load i32, ptr %49, align 4, !tbaa !9
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds float, ptr %415, i64 %417
  %419 = load float, ptr %418, align 4, !tbaa !11
  %420 = fmul float %414, %419
  %421 = load ptr, ptr %21, align 8, !tbaa !5
  %422 = load i32, ptr %49, align 4, !tbaa !9
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds float, ptr %421, i64 %423
  %425 = load float, ptr %424, align 4, !tbaa !11
  %426 = load float, ptr %61, align 4, !tbaa !11
  %427 = fneg float %426
  %428 = call float @llvm.fmuladd.f32(float %420, float %425, float %427)
  store float %428, ptr %50, align 4, !tbaa !11
  %429 = load ptr, ptr %20, align 8, !tbaa !5
  %430 = load i32, ptr %49, align 4, !tbaa !9
  %431 = add nsw i32 %430, 1
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds float, ptr %429, i64 %432
  %434 = load float, ptr %433, align 4, !tbaa !11
  %435 = load float, ptr %50, align 4, !tbaa !11
  %436 = fadd float %434, %435
  %437 = load ptr, ptr %33, align 8, !tbaa !5
  %438 = load i32, ptr %49, align 4, !tbaa !9
  %439 = add nsw i32 %438, 1
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds float, ptr %437, i64 %440
  store float %436, ptr %441, align 4, !tbaa !11
  %442 = load ptr, ptr %33, align 8, !tbaa !5
  %443 = load i32, ptr %49, align 4, !tbaa !9
  %444 = add nsw i32 %443, 1
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds float, ptr %442, i64 %445
  %447 = load float, ptr %446, align 4, !tbaa !11
  store float %447, ptr %38, align 4, !tbaa !11
  %448 = load float, ptr %38, align 4, !tbaa !11
  %449 = fcmp oge float %448, 0.000000e+00
  br i1 %449, label %450, label %452

450:                                              ; preds = %398
  %451 = load float, ptr %38, align 4, !tbaa !11
  br label %455

452:                                              ; preds = %398
  %453 = load float, ptr %38, align 4, !tbaa !11
  %454 = fneg float %453
  br label %455

455:                                              ; preds = %452, %450
  %456 = phi float [ %451, %450 ], [ %454, %452 ]
  %457 = load ptr, ptr %31, align 8, !tbaa !5
  %458 = load float, ptr %457, align 4, !tbaa !11
  %459 = fcmp olt float %456, %458
  br i1 %459, label %460, label %469

460:                                              ; preds = %455
  %461 = load ptr, ptr %31, align 8, !tbaa !5
  %462 = load float, ptr %461, align 4, !tbaa !11
  %463 = fneg float %462
  %464 = load ptr, ptr %33, align 8, !tbaa !5
  %465 = load i32, ptr %49, align 4, !tbaa !9
  %466 = add nsw i32 %465, 1
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds float, ptr %464, i64 %467
  store float %463, ptr %468, align 4, !tbaa !11
  store i32 1, ptr %66, align 4, !tbaa !9
  br label %469

469:                                              ; preds = %460, %455
  %470 = load float, ptr %71, align 4, !tbaa !11
  store float %470, ptr %39, align 4, !tbaa !11
  %471 = load ptr, ptr %33, align 8, !tbaa !5
  %472 = load i32, ptr %49, align 4, !tbaa !9
  %473 = add nsw i32 %472, 1
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds float, ptr %471, i64 %474
  %476 = load float, ptr %475, align 4, !tbaa !11
  store float %476, ptr %38, align 4, !tbaa !11
  %477 = load float, ptr %38, align 4, !tbaa !11
  %478 = fcmp oge float %477, 0.000000e+00
  br i1 %478, label %479, label %481

479:                                              ; preds = %469
  %480 = load float, ptr %38, align 4, !tbaa !11
  br label %484

481:                                              ; preds = %469
  %482 = load float, ptr %38, align 4, !tbaa !11
  %483 = fneg float %482
  br label %484

484:                                              ; preds = %481, %479
  %485 = phi float [ %480, %479 ], [ %483, %481 ]
  store float %485, ptr %40, align 4, !tbaa !11
  %486 = load float, ptr %39, align 4, !tbaa !11
  %487 = load float, ptr %40, align 4, !tbaa !11
  %488 = fcmp oge float %486, %487
  br i1 %488, label %489, label %491

489:                                              ; preds = %484
  %490 = load float, ptr %39, align 4, !tbaa !11
  br label %493

491:                                              ; preds = %484
  %492 = load float, ptr %40, align 4, !tbaa !11
  br label %493

493:                                              ; preds = %491, %489
  %494 = phi float [ %490, %489 ], [ %492, %491 ]
  store float %494, ptr %71, align 4, !tbaa !11
  br label %495

495:                                              ; preds = %493
  %496 = load i32, ptr %49, align 4, !tbaa !9
  %497 = add nsw i32 %496, 1
  store i32 %497, ptr %49, align 4, !tbaa !9
  br label %394, !llvm.loop !13

498:                                              ; preds = %394
  %499 = load i32, ptr %66, align 4, !tbaa !9
  %500 = icmp ne i32 %499, 0
  br i1 %500, label %504, label %501

501:                                              ; preds = %498
  %502 = call i32 @sisnan_(ptr noundef %71)
  %503 = icmp ne i32 %502, 0
  br label %504

504:                                              ; preds = %501, %498
  %505 = phi i1 [ true, %498 ], [ %503, %501 ]
  %506 = zext i1 %505 to i32
  store i32 %506, ptr %66, align 4, !tbaa !9
  %507 = load i32, ptr %63, align 4, !tbaa !9
  %508 = icmp ne i32 %507, 0
  br i1 %508, label %516, label %509

509:                                              ; preds = %504
  %510 = load float, ptr %71, align 4, !tbaa !11
  %511 = load float, ptr %41, align 4, !tbaa !11
  %512 = fcmp ole float %510, %511
  br i1 %512, label %513, label %519

513:                                              ; preds = %509
  %514 = load i32, ptr %66, align 4, !tbaa !9
  %515 = icmp ne i32 %514, 0
  br i1 %515, label %519, label %516

516:                                              ; preds = %513, %504
  %517 = load float, ptr %61, align 4, !tbaa !11
  %518 = load ptr, ptr %32, align 8, !tbaa !5
  store float %517, ptr %518, align 4, !tbaa !11
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %1092

519:                                              ; preds = %513, %509
  %520 = load float, ptr %64, align 4, !tbaa !11
  %521 = fneg float %520
  store float %521, ptr %50, align 4, !tbaa !11
  %522 = load ptr, ptr %20, align 8, !tbaa !5
  %523 = getelementptr inbounds float, ptr %522, i64 1
  %524 = load float, ptr %523, align 4, !tbaa !11
  %525 = load float, ptr %50, align 4, !tbaa !11
  %526 = fadd float %524, %525
  %527 = load ptr, ptr %35, align 8, !tbaa !5
  %528 = getelementptr inbounds float, ptr %527, i64 1
  store float %526, ptr %528, align 4, !tbaa !11
  %529 = load ptr, ptr %35, align 8, !tbaa !5
  %530 = getelementptr inbounds float, ptr %529, i64 1
  %531 = load float, ptr %530, align 4, !tbaa !11
  %532 = fcmp oge float %531, 0.000000e+00
  br i1 %532, label %533, label %537

533:                                              ; preds = %519
  %534 = load ptr, ptr %35, align 8, !tbaa !5
  %535 = getelementptr inbounds float, ptr %534, i64 1
  %536 = load float, ptr %535, align 4, !tbaa !11
  br label %542

537:                                              ; preds = %519
  %538 = load ptr, ptr %35, align 8, !tbaa !5
  %539 = getelementptr inbounds float, ptr %538, i64 1
  %540 = load float, ptr %539, align 4, !tbaa !11
  %541 = fneg float %540
  br label %542

542:                                              ; preds = %537, %533
  %543 = phi float [ %536, %533 ], [ %541, %537 ]
  %544 = load ptr, ptr %31, align 8, !tbaa !5
  %545 = load float, ptr %544, align 4, !tbaa !11
  %546 = fcmp olt float %543, %545
  br i1 %546, label %547, label %553

547:                                              ; preds = %542
  %548 = load ptr, ptr %31, align 8, !tbaa !5
  %549 = load float, ptr %548, align 4, !tbaa !11
  %550 = fneg float %549
  %551 = load ptr, ptr %35, align 8, !tbaa !5
  %552 = getelementptr inbounds float, ptr %551, i64 1
  store float %550, ptr %552, align 4, !tbaa !11
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %553

553:                                              ; preds = %547, %542
  %554 = load ptr, ptr %35, align 8, !tbaa !5
  %555 = getelementptr inbounds float, ptr %554, i64 1
  %556 = load float, ptr %555, align 4, !tbaa !11
  %557 = fcmp oge float %556, 0.000000e+00
  br i1 %557, label %558, label %562

558:                                              ; preds = %553
  %559 = load ptr, ptr %35, align 8, !tbaa !5
  %560 = getelementptr inbounds float, ptr %559, i64 1
  %561 = load float, ptr %560, align 4, !tbaa !11
  br label %567

562:                                              ; preds = %553
  %563 = load ptr, ptr %35, align 8, !tbaa !5
  %564 = getelementptr inbounds float, ptr %563, i64 1
  %565 = load float, ptr %564, align 4, !tbaa !11
  %566 = fneg float %565
  br label %567

567:                                              ; preds = %562, %558
  %568 = phi float [ %561, %558 ], [ %566, %562 ]
  store float %568, ptr %72, align 4, !tbaa !11
  %569 = load ptr, ptr %19, align 8, !tbaa !5
  %570 = load i32, ptr %569, align 4, !tbaa !9
  %571 = sub nsw i32 %570, 1
  store i32 %571, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %572

572:                                              ; preds = %679, %567
  %573 = load i32, ptr %49, align 4, !tbaa !9
  %574 = load i32, ptr %37, align 4, !tbaa !9
  %575 = icmp sle i32 %573, %574
  br i1 %575, label %576, label %682

576:                                              ; preds = %572
  %577 = load ptr, ptr %22, align 8, !tbaa !5
  %578 = load i32, ptr %49, align 4, !tbaa !9
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %577, i64 %579
  %581 = load float, ptr %580, align 4, !tbaa !11
  %582 = load ptr, ptr %35, align 8, !tbaa !5
  %583 = load i32, ptr %49, align 4, !tbaa !9
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds float, ptr %582, i64 %584
  %586 = load float, ptr %585, align 4, !tbaa !11
  %587 = fdiv float %581, %586
  %588 = load ptr, ptr %35, align 8, !tbaa !5
  %589 = load ptr, ptr %19, align 8, !tbaa !5
  %590 = load i32, ptr %589, align 4, !tbaa !9
  %591 = load i32, ptr %49, align 4, !tbaa !9
  %592 = add nsw i32 %590, %591
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds float, ptr %588, i64 %593
  store float %587, ptr %594, align 4, !tbaa !11
  %595 = load float, ptr %50, align 4, !tbaa !11
  %596 = load ptr, ptr %35, align 8, !tbaa !5
  %597 = load ptr, ptr %19, align 8, !tbaa !5
  %598 = load i32, ptr %597, align 4, !tbaa !9
  %599 = load i32, ptr %49, align 4, !tbaa !9
  %600 = add nsw i32 %598, %599
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds float, ptr %596, i64 %601
  %603 = load float, ptr %602, align 4, !tbaa !11
  %604 = fmul float %595, %603
  %605 = load ptr, ptr %21, align 8, !tbaa !5
  %606 = load i32, ptr %49, align 4, !tbaa !9
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds float, ptr %605, i64 %607
  %609 = load float, ptr %608, align 4, !tbaa !11
  %610 = load float, ptr %64, align 4, !tbaa !11
  %611 = fneg float %610
  %612 = call float @llvm.fmuladd.f32(float %604, float %609, float %611)
  store float %612, ptr %50, align 4, !tbaa !11
  %613 = load ptr, ptr %20, align 8, !tbaa !5
  %614 = load i32, ptr %49, align 4, !tbaa !9
  %615 = add nsw i32 %614, 1
  %616 = sext i32 %615 to i64
  %617 = getelementptr inbounds float, ptr %613, i64 %616
  %618 = load float, ptr %617, align 4, !tbaa !11
  %619 = load float, ptr %50, align 4, !tbaa !11
  %620 = fadd float %618, %619
  %621 = load ptr, ptr %35, align 8, !tbaa !5
  %622 = load i32, ptr %49, align 4, !tbaa !9
  %623 = add nsw i32 %622, 1
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds float, ptr %621, i64 %624
  store float %620, ptr %625, align 4, !tbaa !11
  %626 = load ptr, ptr %35, align 8, !tbaa !5
  %627 = load i32, ptr %49, align 4, !tbaa !9
  %628 = add nsw i32 %627, 1
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds float, ptr %626, i64 %629
  %631 = load float, ptr %630, align 4, !tbaa !11
  store float %631, ptr %38, align 4, !tbaa !11
  %632 = load float, ptr %38, align 4, !tbaa !11
  %633 = fcmp oge float %632, 0.000000e+00
  br i1 %633, label %634, label %636

634:                                              ; preds = %576
  %635 = load float, ptr %38, align 4, !tbaa !11
  br label %639

636:                                              ; preds = %576
  %637 = load float, ptr %38, align 4, !tbaa !11
  %638 = fneg float %637
  br label %639

639:                                              ; preds = %636, %634
  %640 = phi float [ %635, %634 ], [ %638, %636 ]
  %641 = load ptr, ptr %31, align 8, !tbaa !5
  %642 = load float, ptr %641, align 4, !tbaa !11
  %643 = fcmp olt float %640, %642
  br i1 %643, label %644, label %653

644:                                              ; preds = %639
  %645 = load ptr, ptr %31, align 8, !tbaa !5
  %646 = load float, ptr %645, align 4, !tbaa !11
  %647 = fneg float %646
  %648 = load ptr, ptr %35, align 8, !tbaa !5
  %649 = load i32, ptr %49, align 4, !tbaa !9
  %650 = add nsw i32 %649, 1
  %651 = sext i32 %650 to i64
  %652 = getelementptr inbounds float, ptr %648, i64 %651
  store float %647, ptr %652, align 4, !tbaa !11
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %653

653:                                              ; preds = %644, %639
  %654 = load float, ptr %72, align 4, !tbaa !11
  store float %654, ptr %39, align 4, !tbaa !11
  %655 = load ptr, ptr %35, align 8, !tbaa !5
  %656 = load i32, ptr %49, align 4, !tbaa !9
  %657 = add nsw i32 %656, 1
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds float, ptr %655, i64 %658
  %660 = load float, ptr %659, align 4, !tbaa !11
  store float %660, ptr %38, align 4, !tbaa !11
  %661 = load float, ptr %38, align 4, !tbaa !11
  %662 = fcmp oge float %661, 0.000000e+00
  br i1 %662, label %663, label %665

663:                                              ; preds = %653
  %664 = load float, ptr %38, align 4, !tbaa !11
  br label %668

665:                                              ; preds = %653
  %666 = load float, ptr %38, align 4, !tbaa !11
  %667 = fneg float %666
  br label %668

668:                                              ; preds = %665, %663
  %669 = phi float [ %664, %663 ], [ %667, %665 ]
  store float %669, ptr %40, align 4, !tbaa !11
  %670 = load float, ptr %39, align 4, !tbaa !11
  %671 = load float, ptr %40, align 4, !tbaa !11
  %672 = fcmp oge float %670, %671
  br i1 %672, label %673, label %675

673:                                              ; preds = %668
  %674 = load float, ptr %39, align 4, !tbaa !11
  br label %677

675:                                              ; preds = %668
  %676 = load float, ptr %40, align 4, !tbaa !11
  br label %677

677:                                              ; preds = %675, %673
  %678 = phi float [ %674, %673 ], [ %676, %675 ]
  store float %678, ptr %72, align 4, !tbaa !11
  br label %679

679:                                              ; preds = %677
  %680 = load i32, ptr %49, align 4, !tbaa !9
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr %49, align 4, !tbaa !9
  br label %572, !llvm.loop !15

682:                                              ; preds = %572
  %683 = load i32, ptr %67, align 4, !tbaa !9
  %684 = icmp ne i32 %683, 0
  br i1 %684, label %688, label %685

685:                                              ; preds = %682
  %686 = call i32 @sisnan_(ptr noundef %72)
  %687 = icmp ne i32 %686, 0
  br label %688

688:                                              ; preds = %685, %682
  %689 = phi i1 [ true, %682 ], [ %687, %685 ]
  %690 = zext i1 %689 to i32
  store i32 %690, ptr %67, align 4, !tbaa !9
  %691 = load i32, ptr %63, align 4, !tbaa !9
  %692 = icmp ne i32 %691, 0
  br i1 %692, label %700, label %693

693:                                              ; preds = %688
  %694 = load float, ptr %72, align 4, !tbaa !11
  %695 = load float, ptr %41, align 4, !tbaa !11
  %696 = fcmp ole float %694, %695
  br i1 %696, label %697, label %703

697:                                              ; preds = %693
  %698 = load i32, ptr %67, align 4, !tbaa !9
  %699 = icmp ne i32 %698, 0
  br i1 %699, label %703, label %700

700:                                              ; preds = %697, %688
  %701 = load float, ptr %64, align 4, !tbaa !11
  %702 = load ptr, ptr %32, align 8, !tbaa !5
  store float %701, ptr %702, align 4, !tbaa !11
  store i32 2, ptr %54, align 4, !tbaa !9
  br label %1092

703:                                              ; preds = %697, %693
  %704 = load i32, ptr %66, align 4, !tbaa !9
  %705 = icmp ne i32 %704, 0
  br i1 %705, label %706, label %710

706:                                              ; preds = %703
  %707 = load i32, ptr %67, align 4, !tbaa !9
  %708 = icmp ne i32 %707, 0
  br i1 %708, label %709, label %710

709:                                              ; preds = %706
  br label %1040

710:                                              ; preds = %706, %703
  %711 = load i32, ptr %66, align 4, !tbaa !9
  %712 = icmp ne i32 %711, 0
  br i1 %712, label %721, label %713

713:                                              ; preds = %710
  store i32 1, ptr %45, align 4, !tbaa !9
  %714 = load float, ptr %71, align 4, !tbaa !11
  %715 = load float, ptr %56, align 4, !tbaa !11
  %716 = fcmp ole float %714, %715
  br i1 %716, label %717, label %720

717:                                              ; preds = %713
  %718 = load float, ptr %71, align 4, !tbaa !11
  store float %718, ptr %56, align 4, !tbaa !11
  %719 = load float, ptr %61, align 4, !tbaa !11
  store float %719, ptr %55, align 4, !tbaa !11
  br label %720

720:                                              ; preds = %717, %713
  br label %721

721:                                              ; preds = %720, %710
  %722 = load i32, ptr %67, align 4, !tbaa !9
  %723 = icmp ne i32 %722, 0
  br i1 %723, label %740, label %724

724:                                              ; preds = %721
  %725 = load i32, ptr %66, align 4, !tbaa !9
  %726 = icmp ne i32 %725, 0
  br i1 %726, label %731, label %727

727:                                              ; preds = %724
  %728 = load float, ptr %72, align 4, !tbaa !11
  %729 = load float, ptr %71, align 4, !tbaa !11
  %730 = fcmp ole float %728, %729
  br i1 %730, label %731, label %732

731:                                              ; preds = %727, %724
  store i32 2, ptr %45, align 4, !tbaa !9
  br label %732

732:                                              ; preds = %731, %727
  %733 = load float, ptr %72, align 4, !tbaa !11
  %734 = load float, ptr %56, align 4, !tbaa !11
  %735 = fcmp ole float %733, %734
  br i1 %735, label %736, label %739

736:                                              ; preds = %732
  %737 = load float, ptr %72, align 4, !tbaa !11
  store float %737, ptr %56, align 4, !tbaa !11
  %738 = load float, ptr %64, align 4, !tbaa !11
  store float %738, ptr %55, align 4, !tbaa !11
  br label %739

739:                                              ; preds = %736, %732
  br label %740

740:                                              ; preds = %739, %721
  br label %741

741:                                              ; preds = %740
  %742 = load float, ptr %65, align 4, !tbaa !11
  %743 = load float, ptr %60, align 4, !tbaa !11
  %744 = fdiv float %743, 1.280000e+02
  %745 = fcmp olt float %742, %744
  br i1 %745, label %746, label %765

746:                                              ; preds = %741
  %747 = load float, ptr %71, align 4, !tbaa !11
  %748 = load float, ptr %72, align 4, !tbaa !11
  %749 = fcmp ole float %747, %748
  br i1 %749, label %750, label %752

750:                                              ; preds = %746
  %751 = load float, ptr %71, align 4, !tbaa !11
  br label %754

752:                                              ; preds = %746
  %753 = load float, ptr %72, align 4, !tbaa !11
  br label %754

754:                                              ; preds = %752, %750
  %755 = phi float [ %751, %750 ], [ %753, %752 ]
  %756 = load float, ptr %48, align 4, !tbaa !11
  %757 = fcmp olt float %755, %756
  br i1 %757, label %758, label %765

758:                                              ; preds = %754
  %759 = load i32, ptr %66, align 4, !tbaa !9
  %760 = icmp ne i32 %759, 0
  br i1 %760, label %765, label %761

761:                                              ; preds = %758
  %762 = load i32, ptr %67, align 4, !tbaa !9
  %763 = icmp ne i32 %762, 0
  br i1 %763, label %765, label %764

764:                                              ; preds = %761
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %766

765:                                              ; preds = %761, %758, %754, %741
  store i32 0, ptr %57, align 4, !tbaa !9
  br label %766

766:                                              ; preds = %765, %764
  store i32 1, ptr %70, align 4, !tbaa !9
  %767 = load i32, ptr %70, align 4, !tbaa !9
  %768 = icmp ne i32 %767, 0
  br i1 %768, label %769, label %1039

769:                                              ; preds = %766
  %770 = load i32, ptr %57, align 4, !tbaa !9
  %771 = icmp ne i32 %770, 0
  br i1 %771, label %772, label %1039

772:                                              ; preds = %769
  %773 = load i32, ptr %45, align 4, !tbaa !9
  %774 = icmp eq i32 %773, 1
  br i1 %774, label %775, label %909

775:                                              ; preds = %772
  %776 = load ptr, ptr %33, align 8, !tbaa !5
  %777 = load ptr, ptr %19, align 8, !tbaa !5
  %778 = load i32, ptr %777, align 4, !tbaa !9
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds float, ptr %776, i64 %779
  %781 = load float, ptr %780, align 4, !tbaa !11
  store float %781, ptr %38, align 4, !tbaa !11
  %782 = load float, ptr %38, align 4, !tbaa !11
  %783 = fcmp oge float %782, 0.000000e+00
  br i1 %783, label %784, label %786

784:                                              ; preds = %775
  %785 = load float, ptr %38, align 4, !tbaa !11
  br label %789

786:                                              ; preds = %775
  %787 = load float, ptr %38, align 4, !tbaa !11
  %788 = fneg float %787
  br label %789

789:                                              ; preds = %786, %784
  %790 = phi float [ %785, %784 ], [ %788, %786 ]
  store float %790, ptr %69, align 4, !tbaa !11
  store float 1.000000e+00, ptr %75, align 4, !tbaa !11
  store float 1.000000e+00, ptr %46, align 4, !tbaa !11
  store float 1.000000e+00, ptr %44, align 4, !tbaa !11
  %791 = load ptr, ptr %19, align 8, !tbaa !5
  %792 = load i32, ptr %791, align 4, !tbaa !9
  %793 = sub nsw i32 %792, 1
  store i32 %793, ptr %49, align 4, !tbaa !9
  br label %794

794:                                              ; preds = %888, %789
  %795 = load i32, ptr %49, align 4, !tbaa !9
  %796 = icmp sge i32 %795, 1
  br i1 %796, label %797, label %891

797:                                              ; preds = %794
  %798 = load float, ptr %46, align 4, !tbaa !11
  %799 = load float, ptr %68, align 4, !tbaa !11
  %800 = fcmp ole float %798, %799
  br i1 %800, label %801, label %835

801:                                              ; preds = %797
  %802 = load ptr, ptr %33, align 8, !tbaa !5
  %803 = load i32, ptr %49, align 4, !tbaa !9
  %804 = add nsw i32 %803, 1
  %805 = sext i32 %804 to i64
  %806 = getelementptr inbounds float, ptr %802, i64 %805
  %807 = load float, ptr %806, align 4, !tbaa !11
  %808 = load ptr, ptr %35, align 8, !tbaa !5
  %809 = load ptr, ptr %19, align 8, !tbaa !5
  %810 = load i32, ptr %809, align 4, !tbaa !9
  %811 = load i32, ptr %49, align 4, !tbaa !9
  %812 = add nsw i32 %810, %811
  %813 = add nsw i32 %812, 1
  %814 = sext i32 %813 to i64
  %815 = getelementptr inbounds float, ptr %808, i64 %814
  %816 = load float, ptr %815, align 4, !tbaa !11
  %817 = fmul float %807, %816
  %818 = load ptr, ptr %33, align 8, !tbaa !5
  %819 = load i32, ptr %49, align 4, !tbaa !9
  %820 = sext i32 %819 to i64
  %821 = getelementptr inbounds float, ptr %818, i64 %820
  %822 = load float, ptr %821, align 4, !tbaa !11
  %823 = load ptr, ptr %35, align 8, !tbaa !5
  %824 = load ptr, ptr %19, align 8, !tbaa !5
  %825 = load i32, ptr %824, align 4, !tbaa !9
  %826 = load i32, ptr %49, align 4, !tbaa !9
  %827 = add nsw i32 %825, %826
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds float, ptr %823, i64 %828
  %830 = load float, ptr %829, align 4, !tbaa !11
  %831 = fmul float %822, %830
  %832 = fdiv float %817, %831
  %833 = load float, ptr %44, align 4, !tbaa !11
  %834 = fmul float %832, %833
  store float %834, ptr %46, align 4, !tbaa !11
  br label %855

835:                                              ; preds = %797
  %836 = load ptr, ptr %35, align 8, !tbaa !5
  %837 = load ptr, ptr %19, align 8, !tbaa !5
  %838 = load i32, ptr %837, align 4, !tbaa !9
  %839 = load i32, ptr %49, align 4, !tbaa !9
  %840 = add nsw i32 %838, %839
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds float, ptr %836, i64 %841
  %843 = load float, ptr %842, align 4, !tbaa !11
  store float %843, ptr %38, align 4, !tbaa !11
  %844 = load float, ptr %38, align 4, !tbaa !11
  %845 = fcmp oge float %844, 0.000000e+00
  br i1 %845, label %846, label %848

846:                                              ; preds = %835
  %847 = load float, ptr %38, align 4, !tbaa !11
  br label %851

848:                                              ; preds = %835
  %849 = load float, ptr %38, align 4, !tbaa !11
  %850 = fneg float %849
  br label %851

851:                                              ; preds = %848, %846
  %852 = phi float [ %847, %846 ], [ %850, %848 ]
  %853 = load float, ptr %46, align 4, !tbaa !11
  %854 = fmul float %853, %852
  store float %854, ptr %46, align 4, !tbaa !11
  br label %855

855:                                              ; preds = %851, %801
  %856 = load float, ptr %46, align 4, !tbaa !11
  store float %856, ptr %44, align 4, !tbaa !11
  %857 = load float, ptr %46, align 4, !tbaa !11
  store float %857, ptr %38, align 4, !tbaa !11
  %858 = load float, ptr %38, align 4, !tbaa !11
  %859 = load float, ptr %38, align 4, !tbaa !11
  %860 = load float, ptr %75, align 4, !tbaa !11
  %861 = call float @llvm.fmuladd.f32(float %858, float %859, float %860)
  store float %861, ptr %75, align 4, !tbaa !11
  %862 = load float, ptr %69, align 4, !tbaa !11
  store float %862, ptr %39, align 4, !tbaa !11
  %863 = load ptr, ptr %33, align 8, !tbaa !5
  %864 = load i32, ptr %49, align 4, !tbaa !9
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds float, ptr %863, i64 %865
  %867 = load float, ptr %866, align 4, !tbaa !11
  %868 = load float, ptr %46, align 4, !tbaa !11
  %869 = fmul float %867, %868
  store float %869, ptr %38, align 4, !tbaa !11
  %870 = load float, ptr %38, align 4, !tbaa !11
  %871 = fcmp oge float %870, 0.000000e+00
  br i1 %871, label %872, label %874

872:                                              ; preds = %855
  %873 = load float, ptr %38, align 4, !tbaa !11
  br label %877

874:                                              ; preds = %855
  %875 = load float, ptr %38, align 4, !tbaa !11
  %876 = fneg float %875
  br label %877

877:                                              ; preds = %874, %872
  %878 = phi float [ %873, %872 ], [ %876, %874 ]
  store float %878, ptr %40, align 4, !tbaa !11
  %879 = load float, ptr %39, align 4, !tbaa !11
  %880 = load float, ptr %40, align 4, !tbaa !11
  %881 = fcmp oge float %879, %880
  br i1 %881, label %882, label %884

882:                                              ; preds = %877
  %883 = load float, ptr %39, align 4, !tbaa !11
  br label %886

884:                                              ; preds = %877
  %885 = load float, ptr %40, align 4, !tbaa !11
  br label %886

886:                                              ; preds = %884, %882
  %887 = phi float [ %883, %882 ], [ %885, %884 ]
  store float %887, ptr %69, align 4, !tbaa !11
  br label %888

888:                                              ; preds = %886
  %889 = load i32, ptr %49, align 4, !tbaa !9
  %890 = add nsw i32 %889, -1
  store i32 %890, ptr %49, align 4, !tbaa !9
  br label %794, !llvm.loop !16

891:                                              ; preds = %794
  %892 = load float, ptr %69, align 4, !tbaa !11
  %893 = fpext float %892 to double
  %894 = load ptr, ptr %28, align 8, !tbaa !5
  %895 = load float, ptr %894, align 4, !tbaa !11
  %896 = fpext float %895 to double
  %897 = load float, ptr %75, align 4, !tbaa !11
  %898 = fpext float %897 to double
  %899 = call double @sqrt(double noundef %898) #5
  %900 = fmul double %896, %899
  %901 = fdiv double %893, %900
  %902 = fptrunc double %901 to float
  store float %902, ptr %73, align 4, !tbaa !11
  %903 = load float, ptr %73, align 4, !tbaa !11
  %904 = fcmp ole float %903, 8.000000e+00
  br i1 %904, label %905, label %908

905:                                              ; preds = %891
  %906 = load float, ptr %61, align 4, !tbaa !11
  %907 = load ptr, ptr %32, align 8, !tbaa !5
  store float %906, ptr %907, align 4, !tbaa !11
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %1092

908:                                              ; preds = %891
  br label %1038

909:                                              ; preds = %772
  %910 = load i32, ptr %45, align 4, !tbaa !9
  %911 = icmp eq i32 %910, 2
  br i1 %911, label %912, label %1037

912:                                              ; preds = %909
  %913 = load ptr, ptr %35, align 8, !tbaa !5
  %914 = load ptr, ptr %19, align 8, !tbaa !5
  %915 = load i32, ptr %914, align 4, !tbaa !9
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds float, ptr %913, i64 %916
  %918 = load float, ptr %917, align 4, !tbaa !11
  store float %918, ptr %38, align 4, !tbaa !11
  %919 = load float, ptr %38, align 4, !tbaa !11
  %920 = fcmp oge float %919, 0.000000e+00
  br i1 %920, label %921, label %923

921:                                              ; preds = %912
  %922 = load float, ptr %38, align 4, !tbaa !11
  br label %926

923:                                              ; preds = %912
  %924 = load float, ptr %38, align 4, !tbaa !11
  %925 = fneg float %924
  br label %926

926:                                              ; preds = %923, %921
  %927 = phi float [ %922, %921 ], [ %925, %923 ]
  store float %927, ptr %69, align 4, !tbaa !11
  store float 1.000000e+00, ptr %75, align 4, !tbaa !11
  store float 1.000000e+00, ptr %46, align 4, !tbaa !11
  store float 1.000000e+00, ptr %44, align 4, !tbaa !11
  %928 = load ptr, ptr %19, align 8, !tbaa !5
  %929 = load i32, ptr %928, align 4, !tbaa !9
  %930 = sub nsw i32 %929, 1
  store i32 %930, ptr %49, align 4, !tbaa !9
  br label %931

931:                                              ; preds = %1016, %926
  %932 = load i32, ptr %49, align 4, !tbaa !9
  %933 = icmp sge i32 %932, 1
  br i1 %933, label %934, label %1019

934:                                              ; preds = %931
  %935 = load float, ptr %46, align 4, !tbaa !11
  %936 = load float, ptr %68, align 4, !tbaa !11
  %937 = fcmp ole float %935, %936
  br i1 %937, label %938, label %966

938:                                              ; preds = %934
  %939 = load ptr, ptr %35, align 8, !tbaa !5
  %940 = load i32, ptr %49, align 4, !tbaa !9
  %941 = add nsw i32 %940, 1
  %942 = sext i32 %941 to i64
  %943 = getelementptr inbounds float, ptr %939, i64 %942
  %944 = load float, ptr %943, align 4, !tbaa !11
  %945 = load ptr, ptr %34, align 8, !tbaa !5
  %946 = load i32, ptr %49, align 4, !tbaa !9
  %947 = add nsw i32 %946, 1
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds float, ptr %945, i64 %948
  %950 = load float, ptr %949, align 4, !tbaa !11
  %951 = fmul float %944, %950
  %952 = load ptr, ptr %35, align 8, !tbaa !5
  %953 = load i32, ptr %49, align 4, !tbaa !9
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds float, ptr %952, i64 %954
  %956 = load float, ptr %955, align 4, !tbaa !11
  %957 = load ptr, ptr %34, align 8, !tbaa !5
  %958 = load i32, ptr %49, align 4, !tbaa !9
  %959 = sext i32 %958 to i64
  %960 = getelementptr inbounds float, ptr %957, i64 %959
  %961 = load float, ptr %960, align 4, !tbaa !11
  %962 = fmul float %956, %961
  %963 = fdiv float %951, %962
  %964 = load float, ptr %44, align 4, !tbaa !11
  %965 = fmul float %963, %964
  store float %965, ptr %46, align 4, !tbaa !11
  br label %983

966:                                              ; preds = %934
  %967 = load ptr, ptr %34, align 8, !tbaa !5
  %968 = load i32, ptr %49, align 4, !tbaa !9
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds float, ptr %967, i64 %969
  %971 = load float, ptr %970, align 4, !tbaa !11
  store float %971, ptr %38, align 4, !tbaa !11
  %972 = load float, ptr %38, align 4, !tbaa !11
  %973 = fcmp oge float %972, 0.000000e+00
  br i1 %973, label %974, label %976

974:                                              ; preds = %966
  %975 = load float, ptr %38, align 4, !tbaa !11
  br label %979

976:                                              ; preds = %966
  %977 = load float, ptr %38, align 4, !tbaa !11
  %978 = fneg float %977
  br label %979

979:                                              ; preds = %976, %974
  %980 = phi float [ %975, %974 ], [ %978, %976 ]
  %981 = load float, ptr %46, align 4, !tbaa !11
  %982 = fmul float %981, %980
  store float %982, ptr %46, align 4, !tbaa !11
  br label %983

983:                                              ; preds = %979, %938
  %984 = load float, ptr %46, align 4, !tbaa !11
  store float %984, ptr %44, align 4, !tbaa !11
  %985 = load float, ptr %46, align 4, !tbaa !11
  store float %985, ptr %38, align 4, !tbaa !11
  %986 = load float, ptr %38, align 4, !tbaa !11
  %987 = load float, ptr %38, align 4, !tbaa !11
  %988 = load float, ptr %75, align 4, !tbaa !11
  %989 = call float @llvm.fmuladd.f32(float %986, float %987, float %988)
  store float %989, ptr %75, align 4, !tbaa !11
  %990 = load float, ptr %69, align 4, !tbaa !11
  store float %990, ptr %39, align 4, !tbaa !11
  %991 = load ptr, ptr %35, align 8, !tbaa !5
  %992 = load i32, ptr %49, align 4, !tbaa !9
  %993 = sext i32 %992 to i64
  %994 = getelementptr inbounds float, ptr %991, i64 %993
  %995 = load float, ptr %994, align 4, !tbaa !11
  %996 = load float, ptr %46, align 4, !tbaa !11
  %997 = fmul float %995, %996
  store float %997, ptr %38, align 4, !tbaa !11
  %998 = load float, ptr %38, align 4, !tbaa !11
  %999 = fcmp oge float %998, 0.000000e+00
  br i1 %999, label %1000, label %1002

1000:                                             ; preds = %983
  %1001 = load float, ptr %38, align 4, !tbaa !11
  br label %1005

1002:                                             ; preds = %983
  %1003 = load float, ptr %38, align 4, !tbaa !11
  %1004 = fneg float %1003
  br label %1005

1005:                                             ; preds = %1002, %1000
  %1006 = phi float [ %1001, %1000 ], [ %1004, %1002 ]
  store float %1006, ptr %40, align 4, !tbaa !11
  %1007 = load float, ptr %39, align 4, !tbaa !11
  %1008 = load float, ptr %40, align 4, !tbaa !11
  %1009 = fcmp oge float %1007, %1008
  br i1 %1009, label %1010, label %1012

1010:                                             ; preds = %1005
  %1011 = load float, ptr %39, align 4, !tbaa !11
  br label %1014

1012:                                             ; preds = %1005
  %1013 = load float, ptr %40, align 4, !tbaa !11
  br label %1014

1014:                                             ; preds = %1012, %1010
  %1015 = phi float [ %1011, %1010 ], [ %1013, %1012 ]
  store float %1015, ptr %69, align 4, !tbaa !11
  br label %1016

1016:                                             ; preds = %1014
  %1017 = load i32, ptr %49, align 4, !tbaa !9
  %1018 = add nsw i32 %1017, -1
  store i32 %1018, ptr %49, align 4, !tbaa !9
  br label %931, !llvm.loop !17

1019:                                             ; preds = %931
  %1020 = load float, ptr %69, align 4, !tbaa !11
  %1021 = fpext float %1020 to double
  %1022 = load ptr, ptr %28, align 8, !tbaa !5
  %1023 = load float, ptr %1022, align 4, !tbaa !11
  %1024 = fpext float %1023 to double
  %1025 = load float, ptr %75, align 4, !tbaa !11
  %1026 = fpext float %1025 to double
  %1027 = call double @sqrt(double noundef %1026) #5
  %1028 = fmul double %1024, %1027
  %1029 = fdiv double %1021, %1028
  %1030 = fptrunc double %1029 to float
  store float %1030, ptr %74, align 4, !tbaa !11
  %1031 = load float, ptr %74, align 4, !tbaa !11
  %1032 = fcmp ole float %1031, 8.000000e+00
  br i1 %1032, label %1033, label %1036

1033:                                             ; preds = %1019
  %1034 = load float, ptr %64, align 4, !tbaa !11
  %1035 = load ptr, ptr %32, align 8, !tbaa !5
  store float %1034, ptr %1035, align 4, !tbaa !11
  store i32 2, ptr %54, align 4, !tbaa !9
  br label %1092

1036:                                             ; preds = %1019
  br label %1037

1037:                                             ; preds = %1036, %909
  br label %1038

1038:                                             ; preds = %1037, %908
  br label %1039

1039:                                             ; preds = %1038, %769, %766
  br label %1040

1040:                                             ; preds = %1039, %709
  %1041 = load i32, ptr %47, align 4, !tbaa !9
  %1042 = icmp slt i32 %1041, 1
  br i1 %1042, label %1043, label %1080

1043:                                             ; preds = %1040
  %1044 = load float, ptr %61, align 4, !tbaa !11
  %1045 = load float, ptr %58, align 4, !tbaa !11
  %1046 = fsub float %1044, %1045
  store float %1046, ptr %38, align 4, !tbaa !11
  %1047 = load float, ptr %61, align 4, !tbaa !11
  %1048 = load float, ptr %52, align 4, !tbaa !11
  %1049 = fsub float %1047, %1048
  store float %1049, ptr %39, align 4, !tbaa !11
  %1050 = load float, ptr %38, align 4, !tbaa !11
  %1051 = load float, ptr %39, align 4, !tbaa !11
  %1052 = fcmp oge float %1050, %1051
  br i1 %1052, label %1053, label %1055

1053:                                             ; preds = %1043
  %1054 = load float, ptr %38, align 4, !tbaa !11
  br label %1057

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

1057:                                             ; preds = %1055, %1053
  %1058 = phi float [ %1054, %1053 ], [ %1056, %1055 ]
  store float %1058, ptr %61, align 4, !tbaa !11
  %1059 = load float, ptr %64, align 4, !tbaa !11
  %1060 = load float, ptr %62, align 4, !tbaa !11
  %1061 = fadd float %1059, %1060
  store float %1061, ptr %38, align 4, !tbaa !11
  %1062 = load float, ptr %64, align 4, !tbaa !11
  %1063 = load float, ptr %53, align 4, !tbaa !11
  %1064 = fadd float %1062, %1063
  store float %1064, ptr %39, align 4, !tbaa !11
  %1065 = load float, ptr %38, align 4, !tbaa !11
  %1066 = load float, ptr %39, align 4, !tbaa !11
  %1067 = fcmp ole float %1065, %1066
  br i1 %1067, label %1068, label %1070

1068:                                             ; preds = %1057
  %1069 = load float, ptr %38, align 4, !tbaa !11
  br label %1072

1070:                                             ; preds = %1057
  %1071 = load float, ptr %39, align 4, !tbaa !11
  br label %1072

1072:                                             ; preds = %1070, %1068
  %1073 = phi float [ %1069, %1068 ], [ %1071, %1070 ]
  store float %1073, ptr %64, align 4, !tbaa !11
  %1074 = load float, ptr %58, align 4, !tbaa !11
  %1075 = fmul float %1074, 2.000000e+00
  store float %1075, ptr %58, align 4, !tbaa !11
  %1076 = load float, ptr %62, align 4, !tbaa !11
  %1077 = fmul float %1076, 2.000000e+00
  store float %1077, ptr %62, align 4, !tbaa !11
  %1078 = load i32, ptr %47, align 4, !tbaa !9
  %1079 = add nsw i32 %1078, 1
  store i32 %1079, ptr %47, align 4, !tbaa !9
  br label %323

1080:                                             ; preds = %1040
  %1081 = load float, ptr %56, align 4, !tbaa !11
  %1082 = load float, ptr %42, align 4, !tbaa !11
  %1083 = fcmp olt float %1081, %1082
  br i1 %1083, label %1087, label %1084

1084:                                             ; preds = %1080
  %1085 = load i32, ptr %59, align 4, !tbaa !9
  %1086 = icmp ne i32 %1085, 0
  br i1 %1086, label %1087, label %1090

1087:                                             ; preds = %1084, %1080
  %1088 = load float, ptr %55, align 4, !tbaa !11
  store float %1088, ptr %61, align 4, !tbaa !11
  %1089 = load float, ptr %55, align 4, !tbaa !11
  store float %1089, ptr %64, align 4, !tbaa !11
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %323

1090:                                             ; preds = %1084
  %1091 = load ptr, ptr %36, align 8, !tbaa !5
  store i32 1, ptr %1091, align 4, !tbaa !9
  store i32 1, ptr %76, align 4
  br label %1118

1092:                                             ; preds = %1033, %905, %700, %516
  %1093 = load i32, ptr %54, align 4, !tbaa !9
  %1094 = icmp eq i32 %1093, 1
  br i1 %1094, label %1095, label %1096

1095:                                             ; preds = %1092
  br label %1117

1096:                                             ; preds = %1092
  %1097 = load i32, ptr %54, align 4, !tbaa !9
  %1098 = icmp eq i32 %1097, 2
  br i1 %1098, label %1099, label %1116

1099:                                             ; preds = %1096
  %1100 = load ptr, ptr %19, align 8, !tbaa !5
  %1101 = load ptr, ptr %35, align 8, !tbaa !5
  %1102 = getelementptr inbounds float, ptr %1101, i64 1
  %1103 = load ptr, ptr %33, align 8, !tbaa !5
  %1104 = getelementptr inbounds float, ptr %1103, i64 1
  call void @scopy_(ptr noundef %1100, ptr noundef %1102, ptr noundef @c__1, ptr noundef %1104, ptr noundef @c__1)
  %1105 = load ptr, ptr %19, align 8, !tbaa !5
  %1106 = load i32, ptr %1105, align 4, !tbaa !9
  %1107 = sub nsw i32 %1106, 1
  store i32 %1107, ptr %37, align 4, !tbaa !9
  %1108 = load ptr, ptr %35, align 8, !tbaa !5
  %1109 = load ptr, ptr %19, align 8, !tbaa !5
  %1110 = load i32, ptr %1109, align 4, !tbaa !9
  %1111 = add nsw i32 %1110, 1
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds float, ptr %1108, i64 %1112
  %1114 = load ptr, ptr %34, align 8, !tbaa !5
  %1115 = getelementptr inbounds float, ptr %1114, i64 1
  call void @scopy_(ptr noundef %37, ptr noundef %1113, ptr noundef @c__1, ptr noundef %1115, ptr noundef @c__1)
  br label %1116

1116:                                             ; preds = %1099, %1096
  br label %1117

1117:                                             ; preds = %1116, %1095
  store i32 1, ptr %76, align 4
  br label %1118

1118:                                             ; preds = %1117, %1090, %99
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, 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 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  ret void
}

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

declare float @slamch_(ptr noundef) #2

; 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 i32 @sisnan_(ptr noundef) #2

declare void @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 = !{!"int", !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 i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @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 i32, align 4
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, 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 %3, i64 -4
  %26 = getelementptr inbounds i8, ptr %2, i64 -4
  store i32 0, ptr %17, align 4, !tbaa !5
  %27 = load i32, ptr %0, align 4, !tbaa !5
  %28 = icmp slt i32 %27, 1
  br i1 %28, label %.critedge438, label %29

29:                                               ; preds = %18
  %30 = getelementptr inbounds i8, ptr %6, i64 -4
  %31 = getelementptr inbounds i8, ptr %7, i64 -4
  %32 = getelementptr inbounds i8, ptr %8, i64 -4
  %33 = tail call float @slamch_(ptr noundef nonnull @.str) #5
  %34 = load i32, ptr %5, align 4, !tbaa !5
  %35 = sext i32 %34 to i64
  %36 = getelementptr inbounds float, ptr %30, i64 %35
  %37 = load float, ptr %36, align 4, !tbaa !9
  %38 = load i32, ptr %4, align 4, !tbaa !5
  %39 = sext i32 %38 to i64
  %40 = getelementptr inbounds float, ptr %30, i64 %39
  %41 = load float, ptr %40, align 4, !tbaa !9
  %42 = fsub float %37, %41
  %43 = fcmp oge float %42, 0.000000e+00
  %44 = fneg float %42
  %45 = select i1 %43, float %42, float %44
  %46 = getelementptr inbounds float, ptr %32, i64 %35
  %47 = load float, ptr %46, align 4, !tbaa !9
  %48 = fadd float %47, %45
  %49 = getelementptr inbounds float, ptr %32, i64 %39
  %50 = load float, ptr %49, align 4, !tbaa !9
  %51 = fadd float %50, %48
  %52 = sub nsw i32 %34, %38
  %53 = sitofp i32 %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 %41, %37
  %58 = select i1 %57, float %41, float %37
  %59 = fsub float %58, %50
  %60 = fcmp oge float %41, %37
  %61 = select i1 %60, float %41, float %37
  %62 = fadd float %47, %61
  %63 = fcmp oge float %59, 0.000000e+00
  %64 = fneg float %59
  %65 = select i1 %63, float %59, float %64
  %66 = fmul float %65, -2.000000e+00
  %67 = tail call float @llvm.fmuladd.f32(float %66, float %33, float %59)
  %68 = fcmp oge float %62, 0.000000e+00
  %69 = fneg float %62
  %70 = select i1 %68, float %62, float %69
  %71 = fmul float %70, 2.000000e+00
  %72 = tail call float @llvm.fmuladd.f32(float %71, float %33, float %62)
  %73 = load float, ptr %12, align 4, !tbaa !9
  %74 = fmul float %73, 2.000000e+00
  %75 = tail call float @llvm.fmuladd.f32(float %., float 2.500000e-01, float %74)
  %76 = getelementptr inbounds float, ptr %31, i64 %39
  %77 = load float, ptr %76, align 4, !tbaa !9
  %78 = getelementptr float, ptr %31, i64 %35
  %79 = getelementptr i8, ptr %78, i64 -4
  %80 = load float, ptr %79, align 4, !tbaa !9
  %81 = insertelement <2 x float> poison, float %54, i64 0
  %82 = shufflevector <2 x float> %81, <2 x float> poison, <2 x i32> zeroinitializer
  %83 = insertelement <2 x float> poison, float %77, i64 0
  %84 = insertelement <2 x float> %83, float %80, i64 1
  %85 = fcmp oge <2 x float> %82, %84
  %86 = select <2 x i1> %85, <2 x float> %82, <2 x float> %84
  %87 = fmul <2 x float> %86, <float 5.000000e-01, float 5.000000e-01>
  %88 = tail call float @slamch_(ptr noundef nonnull @.str.1) #5
  %89 = fdiv float 1.000000e+00, %88
  %90 = load i32, ptr %0, align 4, !tbaa !5
  %91 = add nsw i32 %90, -1
  %92 = sitofp i32 %91 to float
  %93 = fmul float %., %92
  %94 = load float, ptr %9, align 4, !tbaa !9
  %95 = fmul float %33, %94
  %96 = fdiv float %93, %95
  %97 = fpext float %93 to double
  %98 = fpext float %94 to double
  %99 = fpext float %33 to double
  %100 = tail call double @sqrt(double noundef %99) #5
  %101 = fmul double %100, %98
  %102 = fdiv double %97, %101
  %103 = fptrunc double %102 to float
  %104 = load float, ptr %9, align 4, !tbaa !9
  %105 = fmul float %104, 8.000000e+00
  %106 = fmul float %., 7.812500e-03
  %107 = fcmp olt float %51, %106
  %108 = insertelement <2 x float> poison, float %75, i64 0
  %109 = shufflevector <2 x float> %108, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.backedge

.backedge:                                        ; preds = %.backedge.backedge, %29
  %.0410 = phi i32 [ undef, %29 ], [ %.4, %.backedge.backedge ]
  %110 = phi i1 [ true, %29 ], [ false, %.backedge.backedge ]
  %.0394 = phi float [ %67, %29 ], [ %.3397, %.backedge.backedge ]
  %.0391 = phi float [ %89, %29 ], [ %.3, %.backedge.backedge ]
  %.0388 = phi float [ %67, %29 ], [ %.0388.be, %.backedge.backedge ]
  %.not433 = phi i1 [ true, %29 ], [ %110, %.backedge.backedge ]
  %.0385 = phi float [ %72, %29 ], [ %.0385.be, %.backedge.backedge ]
  %111 = phi <2 x float> [ %87, %29 ], [ %.be, %.backedge.backedge ]
  %112 = fcmp ole <2 x float> %109, %111
  %113 = select <2 x i1> %112, <2 x float> %109, <2 x float> %111
  %114 = fneg float %.0388
  %115 = load float, ptr %1, align 4, !tbaa !9
  %116 = fsub float %115, %.0388
  store float %116, ptr %14, align 4, !tbaa !9
  %117 = fcmp ult float %116, 0.000000e+00
  %118 = fneg float %116
  %119 = select i1 %117, float %118, float %116
  %120 = load float, ptr %12, align 4, !tbaa !9
  %121 = fcmp olt float %119, %120
  br i1 %121, label %122, label %124

122:                                              ; preds = %.backedge
  %123 = fneg float %120
  store float %123, ptr %14, align 4, !tbaa !9
  br label %124

124:                                              ; preds = %122, %.backedge
  %.pre-phi = phi float [ %120, %122 ], [ %118, %.backedge ]
  %.pre = phi float [ %123, %122 ], [ %116, %.backedge ]
  %.0382 = phi i32 [ 1, %122 ], [ 0, %.backedge ]
  %125 = fcmp ult float %.pre, 0.000000e+00
  %126 = select i1 %125, float %.pre-phi, float %.pre
  store float %126, ptr %20, align 4, !tbaa !9
  %127 = load i32, ptr %0, align 4, !tbaa !5
  %.not.not461 = icmp sgt i32 %127, 1
  br i1 %.not.not461, label %.lr.ph.preheader, label %155

.lr.ph.preheader:                                 ; preds = %124
  %wide.trip.count = zext nneg i32 %127 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %149
  %128 = phi float [ %.pre, %.lr.ph.preheader ], [ %150, %149 ]
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %149 ]
  %.1383464 = phi i32 [ %.0382, %.lr.ph.preheader ], [ %.2384, %149 ]
  %.0399463 = phi float [ %114, %.lr.ph.preheader ], [ %137, %149 ]
  %129 = phi float [ %126, %.lr.ph.preheader ], [ %154, %149 ]
  %130 = getelementptr inbounds float, ptr %25, i64 %indvars.iv
  %131 = load float, ptr %130, align 4, !tbaa !9
  %132 = fdiv float %131, %128
  %133 = getelementptr inbounds float, ptr %23, i64 %indvars.iv
  store float %132, ptr %133, align 4, !tbaa !9
  %134 = fmul float %.0399463, %132
  %135 = getelementptr inbounds float, ptr %26, i64 %indvars.iv
  %136 = load float, ptr %135, align 4, !tbaa !9
  %137 = call float @llvm.fmuladd.f32(float %134, float %136, float %114)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %138 = getelementptr float, ptr %1, i64 %indvars.iv
  %139 = load float, ptr %138, align 4, !tbaa !9
  %140 = fadd float %139, %137
  %141 = getelementptr float, ptr %14, i64 %indvars.iv
  store float %140, ptr %141, align 4, !tbaa !9
  %142 = fcmp oge float %140, 0.000000e+00
  %143 = fneg float %140
  %144 = select i1 %142, float %140, float %143
  %145 = load float, ptr %12, align 4, !tbaa !9
  %146 = fcmp olt float %144, %145
  br i1 %146, label %147, label %149

147:                                              ; preds = %.lr.ph
  %148 = fneg float %145
  store float %148, ptr %141, align 4, !tbaa !9
  br label %149

149:                                              ; preds = %147, %.lr.ph
  %.pre-phi529 = phi float [ %145, %147 ], [ %143, %.lr.ph ]
  %150 = phi float [ %148, %147 ], [ %140, %.lr.ph ]
  %.2384 = phi i32 [ 1, %147 ], [ %.1383464, %.lr.ph ]
  %151 = fcmp oge float %150, 0.000000e+00
  %152 = select i1 %151, float %150, float %.pre-phi529
  %153 = fcmp oge float %129, %152
  %154 = select i1 %153, float %129, float %152
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %149
  store float %154, ptr %20, align 4, !tbaa !9
  br label %155

155:                                              ; preds = %._crit_edge, %124
  %.1383.lcssa = phi i32 [ %.2384, %._crit_edge ], [ %.0382, %124 ]
  %.not432 = icmp eq i32 %.1383.lcssa, 0
  br i1 %.not432, label %156, label %159

156:                                              ; preds = %155
  %157 = call i32 @sisnan_(ptr noundef nonnull %20) #5
  %158 = icmp ne i32 %157, 0
  br label %159

159:                                              ; preds = %156, %155
  %160 = phi i1 [ true, %155 ], [ %158, %156 ]
  br i1 %.not433, label %161, label %164

161:                                              ; preds = %159
  %162 = load float, ptr %20, align 4, !tbaa !9
  %163 = fcmp ugt float %162, %105
  %or.cond = select i1 %163, i1 true, i1 %160
  br i1 %or.cond, label %165, label %164

164:                                              ; preds = %161, %159
  store float %.0388, ptr %13, align 4, !tbaa !9
  br label %.critedge438

165:                                              ; preds = %161
  %166 = fneg float %.0385
  %167 = load float, ptr %1, align 4, !tbaa !9
  %168 = fsub float %167, %.0385
  store float %168, ptr %16, align 4, !tbaa !9
  %169 = fcmp ult float %168, 0.000000e+00
  %170 = fneg float %168
  %171 = select i1 %169, float %170, float %168
  %172 = load float, ptr %12, align 4, !tbaa !9
  %173 = fcmp olt float %171, %172
  br i1 %173, label %174, label %176

174:                                              ; preds = %165
  %175 = fneg float %172
  store float %175, ptr %16, align 4, !tbaa !9
  br label %176

176:                                              ; preds = %174, %165
  %.pre-phi531 = phi float [ %172, %174 ], [ %170, %165 ]
  %.pre522 = phi float [ %175, %174 ], [ %168, %165 ]
  %.0380 = phi i32 [ 1, %174 ], [ 0, %165 ]
  %177 = fcmp ult float %.pre522, 0.000000e+00
  %178 = select i1 %177, float %.pre-phi531, float %.pre522
  store float %178, ptr %21, align 4, !tbaa !9
  %179 = load i32, ptr %0, align 4, !tbaa !5
  %180 = add nsw i32 %179, -1
  store i32 %180, ptr %19, align 4, !tbaa !5
  %.not434.not466 = icmp sgt i32 %179, 1
  br i1 %.not434.not466, label %.lr.ph471.preheader, label %208

.lr.ph471.preheader:                              ; preds = %176
  %181 = zext nneg i32 %179 to i64
  %invariant.gep = getelementptr inbounds float, ptr %22, i64 %181
  br label %.lr.ph471

.lr.ph471:                                        ; preds = %.lr.ph471.preheader, %202
  %182 = phi float [ %.pre522, %.lr.ph471.preheader ], [ %203, %202 ]
  %indvars.iv510 = phi i64 [ 1, %.lr.ph471.preheader ], [ %indvars.iv.next511, %202 ]
  %.1381469 = phi i32 [ %.0380, %.lr.ph471.preheader ], [ %.2, %202 ]
  %.1400468 = phi float [ %166, %.lr.ph471.preheader ], [ %190, %202 ]
  %183 = phi float [ %178, %.lr.ph471.preheader ], [ %207, %202 ]
  %184 = getelementptr inbounds float, ptr %25, i64 %indvars.iv510
  %185 = load float, ptr %184, align 4, !tbaa !9
  %186 = fdiv float %185, %182
  %gep = getelementptr inbounds float, ptr %invariant.gep, i64 %indvars.iv510
  store float %186, ptr %gep, align 4, !tbaa !9
  %187 = fmul float %.1400468, %186
  %188 = getelementptr inbounds float, ptr %26, i64 %indvars.iv510
  %189 = load float, ptr %188, align 4, !tbaa !9
  %190 = call float @llvm.fmuladd.f32(float %187, float %189, float %166)
  %indvars.iv.next511 = add nuw nsw i64 %indvars.iv510, 1
  %191 = getelementptr float, ptr %1, i64 %indvars.iv510
  %192 = load float, ptr %191, align 4, !tbaa !9
  %193 = fadd float %192, %190
  %194 = getelementptr float, ptr %16, i64 %indvars.iv510
  store float %193, ptr %194, align 4, !tbaa !9
  %195 = fcmp oge float %193, 0.000000e+00
  %196 = fneg float %193
  %197 = select i1 %195, float %193, float %196
  %198 = load float, ptr %12, align 4, !tbaa !9
  %199 = fcmp olt float %197, %198
  br i1 %199, label %200, label %202

200:                                              ; preds = %.lr.ph471
  %201 = fneg float %198
  store float %201, ptr %194, align 4, !tbaa !9
  br label %202

202:                                              ; preds = %200, %.lr.ph471
  %.pre-phi533 = phi float [ %198, %200 ], [ %196, %.lr.ph471 ]
  %203 = phi float [ %201, %200 ], [ %193, %.lr.ph471 ]
  %.2 = phi i32 [ 1, %200 ], [ %.1381469, %.lr.ph471 ]
  %204 = fcmp oge float %203, 0.000000e+00
  %205 = select i1 %204, float %203, float %.pre-phi533
  %206 = fcmp oge float %183, %205
  %207 = select i1 %206, float %183, float %205
  %exitcond514.not = icmp eq i64 %indvars.iv.next511, %181
  br i1 %exitcond514.not, label %._crit_edge472, label %.lr.ph471, !llvm.loop !13

._crit_edge472:                                   ; preds = %202
  store float %207, ptr %21, align 4, !tbaa !9
  br label %208

208:                                              ; preds = %._crit_edge472, %176
  %209 = phi float [ %207, %._crit_edge472 ], [ %178, %176 ]
  %.1381.lcssa = phi i32 [ %.2, %._crit_edge472 ], [ %.0380, %176 ]
  %.not435 = icmp eq i32 %.1381.lcssa, 0
  br i1 %.not435, label %210, label %.thread

210:                                              ; preds = %208
  %211 = call i32 @sisnan_(ptr noundef nonnull %21) #5
  %212 = icmp ne i32 %211, 0
  %213 = load float, ptr %21, align 4
  %214 = fcmp ugt float %213, %105
  %or.cond3 = select i1 %214, i1 true, i1 %212
  br i1 %or.cond3, label %.thread, label %342

.thread:                                          ; preds = %208, %210
  %215 = phi float [ %213, %210 ], [ %209, %208 ]
  %216 = phi i1 [ %212, %210 ], [ true, %208 ]
  %or.cond5 = select i1 %160, i1 %216, i1 false
  br i1 %or.cond5, label %.critedge, label %217

217:                                              ; preds = %.thread
  br i1 %160, label %.thread440, label %218

218:                                              ; preds = %217
  %219 = load float, ptr %20, align 4, !tbaa !9
  %220 = fcmp ugt float %219, %.0391
  %.1395 = select i1 %220, float %.0394, float %.0388
  %.1392 = select i1 %220, float %.0391, float %219
  br i1 %216, label %226, label %221

.thread440:                                       ; preds = %217
  br i1 %216, label %226, label %.thread447

221:                                              ; preds = %218
  %222 = fcmp ugt float %215, %219
  br i1 %222, label %.thread447, label %223

223:                                              ; preds = %221
  br label %.thread447

.thread447:                                       ; preds = %.thread440, %223, %221
  %.1395445453 = phi float [ %.1395, %221 ], [ %.1395, %223 ], [ %.0394, %.thread440 ]
  %.1392446451 = phi float [ %.1392, %221 ], [ %.1392, %223 ], [ %.0391, %.thread440 ]
  %.2412 = phi i32 [ 1, %221 ], [ 2, %223 ], [ 2, %.thread440 ]
  %224 = fcmp ugt float %215, %.1392446451
  br i1 %224, label %226, label %225

225:                                              ; preds = %.thread447
  br label %226

226:                                              ; preds = %.thread440, %218, %225, %.thread447
  %.3413 = phi i32 [ 1, %218 ], [ %.2412, %225 ], [ %.2412, %.thread447 ], [ %.0410, %.thread440 ]
  %.2396 = phi float [ %.1395, %218 ], [ %.0385, %225 ], [ %.1395445453, %.thread447 ], [ %.0394, %.thread440 ]
  %.2393 = phi float [ %.1392, %218 ], [ %215, %225 ], [ %.1392446451, %.thread447 ], [ %.0391, %.thread440 ]
  br i1 %107, label %227, label %.critedge

227:                                              ; preds = %226
  %228 = load float, ptr %20, align 4
  %229 = fcmp ole float %228, %215
  %230 = select i1 %229, float %228, float %215
  %231 = fcmp uge float %230, %103
  %or.cond7 = select i1 %231, i1 true, i1 %160
  %or.cond9 = select i1 %or.cond7, i1 true, i1 %216
  br i1 %or.cond9, label %.critedge, label %232

232:                                              ; preds = %227
  switch i32 %.3413, label %.critedge [
    i32 1, label %233
    i32 2, label %281
  ]

233:                                              ; preds = %232
  %234 = load i32, ptr %0, align 4, !tbaa !5
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds float, ptr %24, i64 %235
  %237 = load float, ptr %236, align 4, !tbaa !9
  %238 = fcmp oge float %237, 0.000000e+00
  %239 = fneg float %237
  %240 = select i1 %238, float %237, float %239
  %241 = icmp sgt i32 %234, 1
  br i1 %241, label %.lr.ph493.preheader, label %._crit_edge494

.lr.ph493.preheader:                              ; preds = %233
  %invariant.gep545 = getelementptr float, ptr %22, i64 %235
  %invariant.gep547 = getelementptr float, ptr %22, i64 %235
  br label %.lr.ph493

.lr.ph493:                                        ; preds = %.lr.ph493.preheader, %261
  %242 = phi float [ %237, %.lr.ph493.preheader ], [ %262, %261 ]
  %indvars.iv518 = phi i64 [ %235, %.lr.ph493.preheader ], [ %indvars.iv.next519, %261 ]
  %.0490 = phi float [ 1.000000e+00, %.lr.ph493.preheader ], [ %263, %261 ]
  %.0378489 = phi float [ %240, %.lr.ph493.preheader ], [ %269, %261 ]
  %.0406487 = phi float [ 1.000000e+00, %.lr.ph493.preheader ], [ %.1407, %261 ]
  %indvars.iv.next519 = add nsw i64 %indvars.iv518, -1
  %243 = fcmp ugt float %.0406487, %33
  br i1 %243, label %256, label %244

244:                                              ; preds = %.lr.ph493
  %245 = trunc nuw nsw i64 %indvars.iv518 to i32
  %246 = add i32 %234, %245
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds float, ptr %22, i64 %247
  %249 = load float, ptr %248, align 4, !tbaa !9
  %250 = fmul float %242, %249
  %251 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.next519
  %252 = load float, ptr %251, align 4, !tbaa !9
  %gep546 = getelementptr float, ptr %invariant.gep545, i64 %indvars.iv.next519
  %253 = load float, ptr %gep546, align 4, !tbaa !9
  %254 = fmul float %252, %253
  %255 = fdiv float %250, %254
  br label %261

256:                                              ; preds = %.lr.ph493
  %gep548 = getelementptr float, ptr %invariant.gep547, i64 %indvars.iv.next519
  %257 = load float, ptr %gep548, align 4, !tbaa !9
  %258 = fcmp oge float %257, 0.000000e+00
  %259 = fneg float %257
  %260 = select i1 %258, float %257, float %259
  %.phi.trans.insert525 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.next519
  %.pre526 = load float, ptr %.phi.trans.insert525, align 4, !tbaa !9
  br label %261

261:                                              ; preds = %256, %244
  %262 = phi float [ %252, %244 ], [ %.pre526, %256 ]
  %.pn497 = phi float [ %255, %244 ], [ %260, %256 ]
  %.1407 = fmul float %.0406487, %.pn497
  %263 = call float @llvm.fmuladd.f32(float %.1407, float %.1407, float %.0490)
  %264 = fmul float %.1407, %262
  %265 = fcmp oge float %264, 0.000000e+00
  %266 = fneg float %264
  %267 = select i1 %265, float %264, float %266
  %268 = fcmp oge float %.0378489, %267
  %269 = select i1 %268, float %.0378489, float %267
  %270 = icmp sgt i64 %indvars.iv518, 2
  br i1 %270, label %.lr.ph493, label %._crit_edge494, !llvm.loop !14

._crit_edge494:                                   ; preds = %261, %233
  %.0378.lcssa = phi float [ %240, %233 ], [ %269, %261 ]
  %.0.lcssa = phi float [ 1.000000e+00, %233 ], [ %263, %261 ]
  %271 = fpext float %.0378.lcssa to double
  %272 = load float, ptr %9, align 4, !tbaa !9
  %273 = fpext float %272 to double
  %274 = fpext float %.0.lcssa to double
  %275 = call double @sqrt(double noundef %274) #5
  %276 = fmul double %275, %273
  %277 = fdiv double %271, %276
  %278 = fptrunc double %277 to float
  %279 = fcmp ugt float %278, 8.000000e+00
  br i1 %279, label %.critedge, label %280

280:                                              ; preds = %._crit_edge494
  store float %.0388, ptr %13, align 4, !tbaa !9
  br label %.critedge438

281:                                              ; preds = %232
  %282 = load i32, ptr %0, align 4, !tbaa !5
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds float, ptr %22, i64 %283
  %285 = load float, ptr %284, align 4, !tbaa !9
  %286 = fcmp oge float %285, 0.000000e+00
  %287 = fneg float %285
  %288 = select i1 %286, float %285, float %287
  %289 = icmp sgt i32 %282, 1
  br i1 %289, label %.lr.ph482.preheader, label %._crit_edge483

.lr.ph482.preheader:                              ; preds = %281
  %290 = zext nneg i32 %282 to i64
  br label %.lr.ph482

.lr.ph482:                                        ; preds = %.lr.ph482.preheader, %309
  %indvars.iv515 = phi i64 [ %290, %.lr.ph482.preheader ], [ %indvars.iv.next516, %309 ]
  %.1479 = phi float [ 1.000000e+00, %.lr.ph482.preheader ], [ %310, %309 ]
  %.1379478 = phi float [ %288, %.lr.ph482.preheader ], [ %316, %309 ]
  %.2408476 = phi float [ 1.000000e+00, %.lr.ph482.preheader ], [ %.3409, %309 ]
  %indvars.iv.next516 = add nsw i64 %indvars.iv515, -1
  %291 = fcmp ugt float %.2408476, %33
  %.phi.trans.insert523 = getelementptr inbounds float, ptr %22, i64 %indvars.iv.next516
  %.pre524 = load float, ptr %.phi.trans.insert523, align 4, !tbaa !9
  br i1 %291, label %303, label %292

292:                                              ; preds = %.lr.ph482
  %293 = getelementptr inbounds float, ptr %22, i64 %indvars.iv515
  %294 = load float, ptr %293, align 4, !tbaa !9
  %295 = getelementptr inbounds float, ptr %23, i64 %indvars.iv.next516
  %296 = load <2 x float>, ptr %295, align 4, !tbaa !9
  %297 = insertelement <2 x float> poison, float %.pre524, i64 0
  %298 = insertelement <2 x float> %297, float %294, i64 1
  %299 = fmul <2 x float> %298, %296
  %300 = extractelement <2 x float> %299, i64 0
  %301 = extractelement <2 x float> %299, i64 1
  %302 = fdiv float %301, %300
  br label %309

303:                                              ; preds = %.lr.ph482
  %304 = getelementptr inbounds float, ptr %23, i64 %indvars.iv.next516
  %305 = load float, ptr %304, align 4, !tbaa !9
  %306 = fcmp oge float %305, 0.000000e+00
  %307 = fneg float %305
  %308 = select i1 %306, float %305, float %307
  br label %309

309:                                              ; preds = %303, %292
  %.pn = phi float [ %302, %292 ], [ %308, %303 ]
  %.3409 = fmul float %.2408476, %.pn
  %310 = call float @llvm.fmuladd.f32(float %.3409, float %.3409, float %.1479)
  %311 = fmul float %.3409, %.pre524
  %312 = fcmp oge float %311, 0.000000e+00
  %313 = fneg float %311
  %314 = select i1 %312, float %311, float %313
  %315 = fcmp oge float %.1379478, %314
  %316 = select i1 %315, float %.1379478, float %314
  %317 = icmp ugt i64 %indvars.iv515, 2
  br i1 %317, label %.lr.ph482, label %._crit_edge483, !llvm.loop !15

._crit_edge483:                                   ; preds = %309, %281
  %.1379.lcssa = phi float [ %288, %281 ], [ %316, %309 ]
  %.1.lcssa = phi float [ 1.000000e+00, %281 ], [ %310, %309 ]
  %318 = fpext float %.1379.lcssa to double
  %319 = load float, ptr %9, align 4, !tbaa !9
  %320 = fpext float %319 to double
  %321 = fpext float %.1.lcssa to double
  %322 = call double @sqrt(double noundef %321) #5
  %323 = fmul double %322, %320
  %324 = fdiv double %318, %323
  %325 = fptrunc double %324 to float
  %326 = fcmp ugt float %325, 8.000000e+00
  br i1 %326, label %.critedge, label %342

.critedge:                                        ; preds = %226, %227, %232, %._crit_edge483, %._crit_edge494, %.thread
  %.4 = phi i32 [ %.0410, %.thread ], [ 1, %._crit_edge494 ], [ 2, %._crit_edge483 ], [ %.3413, %232 ], [ %.3413, %227 ], [ %.3413, %226 ]
  %.3397 = phi float [ %.0394, %.thread ], [ %.2396, %._crit_edge494 ], [ %.2396, %._crit_edge483 ], [ %.2396, %232 ], [ %.2396, %227 ], [ %.2396, %226 ]
  %.3 = phi float [ %.0391, %.thread ], [ %.2393, %._crit_edge494 ], [ %.2393, %._crit_edge483 ], [ %.2393, %232 ], [ %.2393, %227 ], [ %.2393, %226 ]
  br i1 %110, label %327, label %339

327:                                              ; preds = %.critedge
  %328 = extractelement <2 x float> %113, i64 0
  %329 = fsub float %.0388, %328
  %330 = fsub float %.0388, %75
  %331 = fcmp oge float %329, %330
  %332 = select i1 %331, float %329, float %330
  %333 = extractelement <2 x float> %113, i64 1
  %334 = fadd float %.0385, %333
  %335 = fadd float %75, %.0385
  %336 = fcmp ole float %334, %335
  %337 = select i1 %336, float %334, float %335
  %338 = fmul <2 x float> %113, <float 2.000000e+00, float 2.000000e+00>
  br label %.backedge.backedge

.backedge.backedge:                               ; preds = %327, %339
  %.0388.be = phi float [ %332, %327 ], [ %.3397, %339 ]
  %.0385.be = phi float [ %337, %327 ], [ %.3397, %339 ]
  %.be = phi <2 x float> [ %338, %327 ], [ %113, %339 ]
  br label %.backedge

339:                                              ; preds = %.critedge
  %340 = fcmp olt float %.3, %96
  br i1 %340, label %.backedge.backedge, label %341

341:                                              ; preds = %339
  store i32 1, ptr %17, align 4, !tbaa !5
  br label %.critedge438

342:                                              ; preds = %._crit_edge483, %210
  store float %.0385, ptr %13, align 4, !tbaa !9
  call void @scopy_(ptr noundef nonnull %0, ptr noundef nonnull %16, ptr noundef nonnull @c__1, ptr noundef nonnull %14, ptr noundef nonnull @c__1) #5
  %343 = load i32, ptr %0, align 4, !tbaa !5
  %344 = add nsw i32 %343, -1
  store i32 %344, ptr %19, align 4, !tbaa !5
  %345 = sext i32 %343 to i64
  %346 = getelementptr float, ptr %22, i64 %345
  %347 = getelementptr i8, ptr %346, i64 4
  call void @scopy_(ptr noundef nonnull %19, ptr noundef %347, ptr noundef nonnull @c__1, ptr noundef %15, ptr noundef nonnull @c__1) #5
  br label %.critedge438

.critedge438:                                     ; preds = %342, %280, %164, %18, %341
  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 4, ptr nonnull %19) #5
  ret void
}

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

; 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 i32 @sisnan_(ptr noundef) local_unnamed_addr #2

declare void @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 = !{!"int", !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