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

; 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 [8 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @slaed4_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) #0 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca float, align 4
  %21 = alloca i32, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca i32, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca float, align 4
  %38 = alloca [3 x float], align 4
  %39 = alloca i32, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca i32, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %47 = alloca float, align 4
  %48 = alloca float, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  store ptr %0, ptr %9, align 8, !tbaa !5
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store ptr %6, ptr %15, align 8, !tbaa !5
  store ptr %7, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 12, 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
  %52 = load ptr, ptr %13, align 8, !tbaa !5
  %53 = getelementptr inbounds float, ptr %52, i32 -1
  store ptr %53, ptr %13, align 8, !tbaa !5
  %54 = load ptr, ptr %12, align 8, !tbaa !5
  %55 = getelementptr inbounds float, ptr %54, i32 -1
  store ptr %55, ptr %12, align 8, !tbaa !5
  %56 = load ptr, ptr %11, align 8, !tbaa !5
  %57 = getelementptr inbounds float, ptr %56, i32 -1
  store ptr %57, ptr %11, align 8, !tbaa !5
  %58 = load ptr, ptr %16, align 8, !tbaa !5
  store i32 0, ptr %58, align 4, !tbaa !9
  %59 = load ptr, ptr %9, align 8, !tbaa !5
  %60 = load i32, ptr %59, align 4, !tbaa !9
  %61 = icmp eq i32 %60, 1
  br i1 %61, label %62, label %79

62:                                               ; preds = %8
  %63 = load ptr, ptr %11, align 8, !tbaa !5
  %64 = getelementptr inbounds float, ptr %63, i64 1
  %65 = load float, ptr %64, align 4, !tbaa !11
  %66 = load ptr, ptr %14, align 8, !tbaa !5
  %67 = load float, ptr %66, align 4, !tbaa !11
  %68 = load ptr, ptr %12, align 8, !tbaa !5
  %69 = getelementptr inbounds float, ptr %68, i64 1
  %70 = load float, ptr %69, align 4, !tbaa !11
  %71 = fmul float %67, %70
  %72 = load ptr, ptr %12, align 8, !tbaa !5
  %73 = getelementptr inbounds float, ptr %72, i64 1
  %74 = load float, ptr %73, align 4, !tbaa !11
  %75 = call float @llvm.fmuladd.f32(float %71, float %74, float %65)
  %76 = load ptr, ptr %15, align 8, !tbaa !5
  store float %75, ptr %76, align 4, !tbaa !11
  %77 = load ptr, ptr %13, align 8, !tbaa !5
  %78 = getelementptr inbounds float, ptr %77, i64 1
  store float 1.000000e+00, ptr %78, align 4, !tbaa !11
  store i32 1, ptr %51, align 4
  br label %3528

79:                                               ; preds = %8
  %80 = load ptr, ptr %9, align 8, !tbaa !5
  %81 = load i32, ptr %80, align 4, !tbaa !9
  %82 = icmp eq i32 %81, 2
  br i1 %82, label %83, label %93

83:                                               ; preds = %79
  %84 = load ptr, ptr %10, align 8, !tbaa !5
  %85 = load ptr, ptr %11, align 8, !tbaa !5
  %86 = getelementptr inbounds float, ptr %85, i64 1
  %87 = load ptr, ptr %12, align 8, !tbaa !5
  %88 = getelementptr inbounds float, ptr %87, i64 1
  %89 = load ptr, ptr %13, align 8, !tbaa !5
  %90 = getelementptr inbounds float, ptr %89, i64 1
  %91 = load ptr, ptr %14, align 8, !tbaa !5
  %92 = load ptr, ptr %15, align 8, !tbaa !5
  call void @slaed5_(ptr noundef %84, ptr noundef %86, ptr noundef %88, ptr noundef %90, ptr noundef %91, ptr noundef %92)
  store i32 1, ptr %51, align 4
  br label %3528

93:                                               ; preds = %79
  %94 = call float @slamch_(ptr noundef @.str)
  store float %94, ptr %46, align 4, !tbaa !11
  %95 = load ptr, ptr %14, align 8, !tbaa !5
  %96 = load float, ptr %95, align 4, !tbaa !11
  %97 = fdiv float 1.000000e+00, %96
  store float %97, ptr %41, align 4, !tbaa !11
  %98 = load ptr, ptr %10, align 8, !tbaa !5
  %99 = load i32, ptr %98, align 4, !tbaa !9
  %100 = load ptr, ptr %9, align 8, !tbaa !5
  %101 = load i32, ptr %100, align 4, !tbaa !9
  %102 = icmp eq i32 %99, %101
  br i1 %102, label %103, label %1314

103:                                              ; preds = %93
  %104 = load ptr, ptr %9, align 8, !tbaa !5
  %105 = load i32, ptr %104, align 4, !tbaa !9
  %106 = sub nsw i32 %105, 1
  store i32 %106, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %33, align 4, !tbaa !9
  %107 = load ptr, ptr %14, align 8, !tbaa !5
  %108 = load float, ptr %107, align 4, !tbaa !11
  %109 = fdiv float %108, 2.000000e+00
  store float %109, ptr %32, align 4, !tbaa !11
  %110 = load ptr, ptr %9, align 8, !tbaa !5
  %111 = load i32, ptr %110, align 4, !tbaa !9
  store i32 %111, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %112

112:                                              ; preds = %135, %103
  %113 = load i32, ptr %28, align 4, !tbaa !9
  %114 = load i32, ptr %17, align 4, !tbaa !9
  %115 = icmp sle i32 %113, %114
  br i1 %115, label %116, label %138

116:                                              ; preds = %112
  %117 = load ptr, ptr %11, align 8, !tbaa !5
  %118 = load i32, ptr %28, align 4, !tbaa !9
  %119 = sext i32 %118 to i64
  %120 = getelementptr inbounds float, ptr %117, i64 %119
  %121 = load float, ptr %120, align 4, !tbaa !11
  %122 = load ptr, ptr %11, align 8, !tbaa !5
  %123 = load ptr, ptr %10, align 8, !tbaa !5
  %124 = load i32, ptr %123, align 4, !tbaa !9
  %125 = sext i32 %124 to i64
  %126 = getelementptr inbounds float, ptr %122, i64 %125
  %127 = load float, ptr %126, align 4, !tbaa !11
  %128 = fsub float %121, %127
  %129 = load float, ptr %32, align 4, !tbaa !11
  %130 = fsub float %128, %129
  %131 = load ptr, ptr %13, align 8, !tbaa !5
  %132 = load i32, ptr %28, align 4, !tbaa !9
  %133 = sext i32 %132 to i64
  %134 = getelementptr inbounds float, ptr %131, i64 %133
  store float %130, ptr %134, align 4, !tbaa !11
  br label %135

135:                                              ; preds = %116
  %136 = load i32, ptr %28, align 4, !tbaa !9
  %137 = add nsw i32 %136, 1
  store i32 %137, ptr %28, align 4, !tbaa !9
  br label %112, !llvm.loop !13

138:                                              ; preds = %112
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  %139 = load ptr, ptr %9, align 8, !tbaa !5
  %140 = load i32, ptr %139, align 4, !tbaa !9
  %141 = sub nsw i32 %140, 2
  store i32 %141, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %142

142:                                              ; preds = %166, %138
  %143 = load i32, ptr %28, align 4, !tbaa !9
  %144 = load i32, ptr %17, align 4, !tbaa !9
  %145 = icmp sle i32 %143, %144
  br i1 %145, label %146, label %169

146:                                              ; preds = %142
  %147 = load ptr, ptr %12, align 8, !tbaa !5
  %148 = load i32, ptr %28, align 4, !tbaa !9
  %149 = sext i32 %148 to i64
  %150 = getelementptr inbounds float, ptr %147, i64 %149
  %151 = load float, ptr %150, align 4, !tbaa !11
  %152 = load ptr, ptr %12, align 8, !tbaa !5
  %153 = load i32, ptr %28, align 4, !tbaa !9
  %154 = sext i32 %153 to i64
  %155 = getelementptr inbounds float, ptr %152, i64 %154
  %156 = load float, ptr %155, align 4, !tbaa !11
  %157 = fmul float %151, %156
  %158 = load ptr, ptr %13, align 8, !tbaa !5
  %159 = load i32, ptr %28, align 4, !tbaa !9
  %160 = sext i32 %159 to i64
  %161 = getelementptr inbounds float, ptr %158, i64 %160
  %162 = load float, ptr %161, align 4, !tbaa !11
  %163 = fdiv float %157, %162
  %164 = load float, ptr %48, align 4, !tbaa !11
  %165 = fadd float %164, %163
  store float %165, ptr %48, align 4, !tbaa !11
  br label %166

166:                                              ; preds = %146
  %167 = load i32, ptr %28, align 4, !tbaa !9
  %168 = add nsw i32 %167, 1
  store i32 %168, ptr %28, align 4, !tbaa !9
  br label %142, !llvm.loop !15

169:                                              ; preds = %142
  %170 = load float, ptr %41, align 4, !tbaa !11
  %171 = load float, ptr %48, align 4, !tbaa !11
  %172 = fadd float %170, %171
  store float %172, ptr %27, align 4, !tbaa !11
  %173 = load float, ptr %27, align 4, !tbaa !11
  %174 = load ptr, ptr %12, align 8, !tbaa !5
  %175 = load i32, ptr %36, align 4, !tbaa !9
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds float, ptr %174, i64 %176
  %178 = load float, ptr %177, align 4, !tbaa !11
  %179 = load ptr, ptr %12, align 8, !tbaa !5
  %180 = load i32, ptr %36, align 4, !tbaa !9
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds float, ptr %179, i64 %181
  %183 = load float, ptr %182, align 4, !tbaa !11
  %184 = fmul float %178, %183
  %185 = load ptr, ptr %13, align 8, !tbaa !5
  %186 = load i32, ptr %36, align 4, !tbaa !9
  %187 = sext i32 %186 to i64
  %188 = getelementptr inbounds float, ptr %185, i64 %187
  %189 = load float, ptr %188, align 4, !tbaa !11
  %190 = fdiv float %184, %189
  %191 = fadd float %173, %190
  %192 = load ptr, ptr %12, align 8, !tbaa !5
  %193 = load ptr, ptr %9, align 8, !tbaa !5
  %194 = load i32, ptr %193, align 4, !tbaa !9
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds float, ptr %192, i64 %195
  %197 = load float, ptr %196, align 4, !tbaa !11
  %198 = load ptr, ptr %12, align 8, !tbaa !5
  %199 = load ptr, ptr %9, align 8, !tbaa !5
  %200 = load i32, ptr %199, align 4, !tbaa !9
  %201 = sext i32 %200 to i64
  %202 = getelementptr inbounds float, ptr %198, i64 %201
  %203 = load float, ptr %202, align 4, !tbaa !11
  %204 = fmul float %197, %203
  %205 = load ptr, ptr %13, align 8, !tbaa !5
  %206 = load ptr, ptr %9, align 8, !tbaa !5
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds float, ptr %205, i64 %208
  %210 = load float, ptr %209, align 4, !tbaa !11
  %211 = fdiv float %204, %210
  %212 = fadd float %191, %211
  store float %212, ptr %29, align 4, !tbaa !11
  %213 = load float, ptr %29, align 4, !tbaa !11
  %214 = fcmp ole float %213, 0.000000e+00
  br i1 %214, label %215, label %377

215:                                              ; preds = %169
  %216 = load ptr, ptr %12, align 8, !tbaa !5
  %217 = load ptr, ptr %9, align 8, !tbaa !5
  %218 = load i32, ptr %217, align 4, !tbaa !9
  %219 = sub nsw i32 %218, 1
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds float, ptr %216, i64 %220
  %222 = load float, ptr %221, align 4, !tbaa !11
  %223 = load ptr, ptr %12, align 8, !tbaa !5
  %224 = load ptr, ptr %9, align 8, !tbaa !5
  %225 = load i32, ptr %224, align 4, !tbaa !9
  %226 = sub nsw i32 %225, 1
  %227 = sext i32 %226 to i64
  %228 = getelementptr inbounds float, ptr %223, i64 %227
  %229 = load float, ptr %228, align 4, !tbaa !11
  %230 = fmul float %222, %229
  %231 = load ptr, ptr %11, align 8, !tbaa !5
  %232 = load ptr, ptr %9, align 8, !tbaa !5
  %233 = load i32, ptr %232, align 4, !tbaa !9
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds float, ptr %231, i64 %234
  %236 = load float, ptr %235, align 4, !tbaa !11
  %237 = load ptr, ptr %11, align 8, !tbaa !5
  %238 = load ptr, ptr %9, align 8, !tbaa !5
  %239 = load i32, ptr %238, align 4, !tbaa !9
  %240 = sub nsw i32 %239, 1
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds float, ptr %237, i64 %241
  %243 = load float, ptr %242, align 4, !tbaa !11
  %244 = fsub float %236, %243
  %245 = load ptr, ptr %14, align 8, !tbaa !5
  %246 = load float, ptr %245, align 4, !tbaa !11
  %247 = fadd float %244, %246
  %248 = fdiv float %230, %247
  %249 = load ptr, ptr %12, align 8, !tbaa !5
  %250 = load ptr, ptr %9, align 8, !tbaa !5
  %251 = load i32, ptr %250, align 4, !tbaa !9
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds float, ptr %249, i64 %252
  %254 = load float, ptr %253, align 4, !tbaa !11
  %255 = load ptr, ptr %12, align 8, !tbaa !5
  %256 = load ptr, ptr %9, align 8, !tbaa !5
  %257 = load i32, ptr %256, align 4, !tbaa !9
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds float, ptr %255, i64 %258
  %260 = load float, ptr %259, align 4, !tbaa !11
  %261 = fmul float %254, %260
  %262 = load ptr, ptr %14, align 8, !tbaa !5
  %263 = load float, ptr %262, align 4, !tbaa !11
  %264 = fdiv float %261, %263
  %265 = fadd float %248, %264
  store float %265, ptr %22, align 4, !tbaa !11
  %266 = load float, ptr %27, align 4, !tbaa !11
  %267 = load float, ptr %22, align 4, !tbaa !11
  %268 = fcmp ole float %266, %267
  br i1 %268, label %269, label %272

269:                                              ; preds = %215
  %270 = load ptr, ptr %14, align 8, !tbaa !5
  %271 = load float, ptr %270, align 4, !tbaa !11
  store float %271, ptr %47, align 4, !tbaa !11
  br label %373

272:                                              ; preds = %215
  %273 = load ptr, ptr %11, align 8, !tbaa !5
  %274 = load ptr, ptr %9, align 8, !tbaa !5
  %275 = load i32, ptr %274, align 4, !tbaa !9
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds float, ptr %273, i64 %276
  %278 = load float, ptr %277, align 4, !tbaa !11
  %279 = load ptr, ptr %11, align 8, !tbaa !5
  %280 = load ptr, ptr %9, align 8, !tbaa !5
  %281 = load i32, ptr %280, align 4, !tbaa !9
  %282 = sub nsw i32 %281, 1
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds float, ptr %279, i64 %283
  %285 = load float, ptr %284, align 4, !tbaa !11
  %286 = fsub float %278, %285
  store float %286, ptr %43, align 4, !tbaa !11
  %287 = load float, ptr %27, align 4, !tbaa !11
  %288 = fneg float %287
  %289 = load float, ptr %43, align 4, !tbaa !11
  %290 = load ptr, ptr %12, align 8, !tbaa !5
  %291 = load ptr, ptr %9, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = sub nsw i32 %292, 1
  %294 = sext i32 %293 to i64
  %295 = getelementptr inbounds float, ptr %290, i64 %294
  %296 = load float, ptr %295, align 4, !tbaa !11
  %297 = load ptr, ptr %12, align 8, !tbaa !5
  %298 = load ptr, ptr %9, align 8, !tbaa !5
  %299 = load i32, ptr %298, align 4, !tbaa !9
  %300 = sub nsw i32 %299, 1
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds float, ptr %297, i64 %301
  %303 = load float, ptr %302, align 4, !tbaa !11
  %304 = fmul float %296, %303
  %305 = call float @llvm.fmuladd.f32(float %288, float %289, float %304)
  %306 = load ptr, ptr %12, align 8, !tbaa !5
  %307 = load ptr, ptr %9, align 8, !tbaa !5
  %308 = load i32, ptr %307, align 4, !tbaa !9
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds float, ptr %306, i64 %309
  %311 = load float, ptr %310, align 4, !tbaa !11
  %312 = load ptr, ptr %12, align 8, !tbaa !5
  %313 = load ptr, ptr %9, align 8, !tbaa !5
  %314 = load i32, ptr %313, align 4, !tbaa !9
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds float, ptr %312, i64 %315
  %317 = load float, ptr %316, align 4, !tbaa !11
  %318 = call float @llvm.fmuladd.f32(float %311, float %317, float %305)
  store float %318, ptr %25, align 4, !tbaa !11
  %319 = load ptr, ptr %12, align 8, !tbaa !5
  %320 = load ptr, ptr %9, align 8, !tbaa !5
  %321 = load i32, ptr %320, align 4, !tbaa !9
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds float, ptr %319, i64 %322
  %324 = load float, ptr %323, align 4, !tbaa !11
  %325 = load ptr, ptr %12, align 8, !tbaa !5
  %326 = load ptr, ptr %9, align 8, !tbaa !5
  %327 = load i32, ptr %326, align 4, !tbaa !9
  %328 = sext i32 %327 to i64
  %329 = getelementptr inbounds float, ptr %325, i64 %328
  %330 = load float, ptr %329, align 4, !tbaa !11
  %331 = fmul float %324, %330
  %332 = load float, ptr %43, align 4, !tbaa !11
  %333 = fmul float %331, %332
  store float %333, ptr %26, align 4, !tbaa !11
  %334 = load float, ptr %25, align 4, !tbaa !11
  %335 = fcmp olt float %334, 0.000000e+00
  br i1 %335, label %336, label %354

336:                                              ; preds = %272
  %337 = load float, ptr %26, align 4, !tbaa !11
  %338 = fmul float %337, 2.000000e+00
  %339 = fpext float %338 to double
  %340 = load float, ptr %25, align 4, !tbaa !11
  %341 = load float, ptr %25, align 4, !tbaa !11
  %342 = load float, ptr %26, align 4, !tbaa !11
  %343 = fmul float %342, 4.000000e+00
  %344 = load float, ptr %27, align 4, !tbaa !11
  %345 = fmul float %343, %344
  %346 = call float @llvm.fmuladd.f32(float %340, float %341, float %345)
  %347 = fpext float %346 to double
  %348 = call double @sqrt(double noundef %347) #5
  %349 = load float, ptr %25, align 4, !tbaa !11
  %350 = fpext float %349 to double
  %351 = fsub double %348, %350
  %352 = fdiv double %339, %351
  %353 = fptrunc double %352 to float
  store float %353, ptr %47, align 4, !tbaa !11
  br label %372

354:                                              ; preds = %272
  %355 = load float, ptr %25, align 4, !tbaa !11
  %356 = fpext float %355 to double
  %357 = load float, ptr %25, align 4, !tbaa !11
  %358 = load float, ptr %25, align 4, !tbaa !11
  %359 = load float, ptr %26, align 4, !tbaa !11
  %360 = fmul float %359, 4.000000e+00
  %361 = load float, ptr %27, align 4, !tbaa !11
  %362 = fmul float %360, %361
  %363 = call float @llvm.fmuladd.f32(float %357, float %358, float %362)
  %364 = fpext float %363 to double
  %365 = call double @sqrt(double noundef %364) #5
  %366 = fadd double %356, %365
  %367 = load float, ptr %27, align 4, !tbaa !11
  %368 = fmul float %367, 2.000000e+00
  %369 = fpext float %368 to double
  %370 = fdiv double %366, %369
  %371 = fptrunc double %370 to float
  store float %371, ptr %47, align 4, !tbaa !11
  br label %372

372:                                              ; preds = %354, %336
  br label %373

373:                                              ; preds = %372, %269
  %374 = load float, ptr %32, align 4, !tbaa !11
  store float %374, ptr %30, align 4, !tbaa !11
  %375 = load ptr, ptr %14, align 8, !tbaa !5
  %376 = load float, ptr %375, align 4, !tbaa !11
  store float %376, ptr %31, align 4, !tbaa !11
  br label %479

377:                                              ; preds = %169
  %378 = load ptr, ptr %11, align 8, !tbaa !5
  %379 = load ptr, ptr %9, align 8, !tbaa !5
  %380 = load i32, ptr %379, align 4, !tbaa !9
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds float, ptr %378, i64 %381
  %383 = load float, ptr %382, align 4, !tbaa !11
  %384 = load ptr, ptr %11, align 8, !tbaa !5
  %385 = load ptr, ptr %9, align 8, !tbaa !5
  %386 = load i32, ptr %385, align 4, !tbaa !9
  %387 = sub nsw i32 %386, 1
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds float, ptr %384, i64 %388
  %390 = load float, ptr %389, align 4, !tbaa !11
  %391 = fsub float %383, %390
  store float %391, ptr %43, align 4, !tbaa !11
  %392 = load float, ptr %27, align 4, !tbaa !11
  %393 = fneg float %392
  %394 = load float, ptr %43, align 4, !tbaa !11
  %395 = load ptr, ptr %12, align 8, !tbaa !5
  %396 = load ptr, ptr %9, align 8, !tbaa !5
  %397 = load i32, ptr %396, align 4, !tbaa !9
  %398 = sub nsw i32 %397, 1
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds float, ptr %395, i64 %399
  %401 = load float, ptr %400, align 4, !tbaa !11
  %402 = load ptr, ptr %12, align 8, !tbaa !5
  %403 = load ptr, ptr %9, align 8, !tbaa !5
  %404 = load i32, ptr %403, align 4, !tbaa !9
  %405 = sub nsw i32 %404, 1
  %406 = sext i32 %405 to i64
  %407 = getelementptr inbounds float, ptr %402, i64 %406
  %408 = load float, ptr %407, align 4, !tbaa !11
  %409 = fmul float %401, %408
  %410 = call float @llvm.fmuladd.f32(float %393, float %394, float %409)
  %411 = load ptr, ptr %12, align 8, !tbaa !5
  %412 = load ptr, ptr %9, align 8, !tbaa !5
  %413 = load i32, ptr %412, align 4, !tbaa !9
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds float, ptr %411, i64 %414
  %416 = load float, ptr %415, align 4, !tbaa !11
  %417 = load ptr, ptr %12, align 8, !tbaa !5
  %418 = load ptr, ptr %9, align 8, !tbaa !5
  %419 = load i32, ptr %418, align 4, !tbaa !9
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds float, ptr %417, i64 %420
  %422 = load float, ptr %421, align 4, !tbaa !11
  %423 = call float @llvm.fmuladd.f32(float %416, float %422, float %410)
  store float %423, ptr %25, align 4, !tbaa !11
  %424 = load ptr, ptr %12, align 8, !tbaa !5
  %425 = load ptr, ptr %9, align 8, !tbaa !5
  %426 = load i32, ptr %425, align 4, !tbaa !9
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds float, ptr %424, i64 %427
  %429 = load float, ptr %428, align 4, !tbaa !11
  %430 = load ptr, ptr %12, align 8, !tbaa !5
  %431 = load ptr, ptr %9, align 8, !tbaa !5
  %432 = load i32, ptr %431, align 4, !tbaa !9
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds float, ptr %430, i64 %433
  %435 = load float, ptr %434, align 4, !tbaa !11
  %436 = fmul float %429, %435
  %437 = load float, ptr %43, align 4, !tbaa !11
  %438 = fmul float %436, %437
  store float %438, ptr %26, align 4, !tbaa !11
  %439 = load float, ptr %25, align 4, !tbaa !11
  %440 = fcmp olt float %439, 0.000000e+00
  br i1 %440, label %441, label %459

441:                                              ; preds = %377
  %442 = load float, ptr %26, align 4, !tbaa !11
  %443 = fmul float %442, 2.000000e+00
  %444 = fpext float %443 to double
  %445 = load float, ptr %25, align 4, !tbaa !11
  %446 = load float, ptr %25, align 4, !tbaa !11
  %447 = load float, ptr %26, align 4, !tbaa !11
  %448 = fmul float %447, 4.000000e+00
  %449 = load float, ptr %27, align 4, !tbaa !11
  %450 = fmul float %448, %449
  %451 = call float @llvm.fmuladd.f32(float %445, float %446, float %450)
  %452 = fpext float %451 to double
  %453 = call double @sqrt(double noundef %452) #5
  %454 = load float, ptr %25, align 4, !tbaa !11
  %455 = fpext float %454 to double
  %456 = fsub double %453, %455
  %457 = fdiv double %444, %456
  %458 = fptrunc double %457 to float
  store float %458, ptr %47, align 4, !tbaa !11
  br label %477

459:                                              ; preds = %377
  %460 = load float, ptr %25, align 4, !tbaa !11
  %461 = fpext float %460 to double
  %462 = load float, ptr %25, align 4, !tbaa !11
  %463 = load float, ptr %25, align 4, !tbaa !11
  %464 = load float, ptr %26, align 4, !tbaa !11
  %465 = fmul float %464, 4.000000e+00
  %466 = load float, ptr %27, align 4, !tbaa !11
  %467 = fmul float %465, %466
  %468 = call float @llvm.fmuladd.f32(float %462, float %463, float %467)
  %469 = fpext float %468 to double
  %470 = call double @sqrt(double noundef %469) #5
  %471 = fadd double %461, %470
  %472 = load float, ptr %27, align 4, !tbaa !11
  %473 = fmul float %472, 2.000000e+00
  %474 = fpext float %473 to double
  %475 = fdiv double %471, %474
  %476 = fptrunc double %475 to float
  store float %476, ptr %47, align 4, !tbaa !11
  br label %477

477:                                              ; preds = %459, %441
  store float 0.000000e+00, ptr %30, align 4, !tbaa !11
  %478 = load float, ptr %32, align 4, !tbaa !11
  store float %478, ptr %31, align 4, !tbaa !11
  br label %479

479:                                              ; preds = %477, %373
  %480 = load ptr, ptr %9, align 8, !tbaa !5
  %481 = load i32, ptr %480, align 4, !tbaa !9
  store i32 %481, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %482

482:                                              ; preds = %505, %479
  %483 = load i32, ptr %28, align 4, !tbaa !9
  %484 = load i32, ptr %17, align 4, !tbaa !9
  %485 = icmp sle i32 %483, %484
  br i1 %485, label %486, label %508

486:                                              ; preds = %482
  %487 = load ptr, ptr %11, align 8, !tbaa !5
  %488 = load i32, ptr %28, align 4, !tbaa !9
  %489 = sext i32 %488 to i64
  %490 = getelementptr inbounds float, ptr %487, i64 %489
  %491 = load float, ptr %490, align 4, !tbaa !11
  %492 = load ptr, ptr %11, align 8, !tbaa !5
  %493 = load ptr, ptr %10, align 8, !tbaa !5
  %494 = load i32, ptr %493, align 4, !tbaa !9
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds float, ptr %492, i64 %495
  %497 = load float, ptr %496, align 4, !tbaa !11
  %498 = fsub float %491, %497
  %499 = load float, ptr %47, align 4, !tbaa !11
  %500 = fsub float %498, %499
  %501 = load ptr, ptr %13, align 8, !tbaa !5
  %502 = load i32, ptr %28, align 4, !tbaa !9
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds float, ptr %501, i64 %503
  store float %500, ptr %504, align 4, !tbaa !11
  br label %505

505:                                              ; preds = %486
  %506 = load i32, ptr %28, align 4, !tbaa !9
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr %28, align 4, !tbaa !9
  br label %482, !llvm.loop !16

508:                                              ; preds = %482
  store float 0.000000e+00, ptr %20, align 4, !tbaa !11
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  %509 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %509, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %510

510:                                              ; preds = %541, %508
  %511 = load i32, ptr %28, align 4, !tbaa !9
  %512 = load i32, ptr %17, align 4, !tbaa !9
  %513 = icmp sle i32 %511, %512
  br i1 %513, label %514, label %544

514:                                              ; preds = %510
  %515 = load ptr, ptr %12, align 8, !tbaa !5
  %516 = load i32, ptr %28, align 4, !tbaa !9
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds float, ptr %515, i64 %517
  %519 = load float, ptr %518, align 4, !tbaa !11
  %520 = load ptr, ptr %13, align 8, !tbaa !5
  %521 = load i32, ptr %28, align 4, !tbaa !9
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds float, ptr %520, i64 %522
  %524 = load float, ptr %523, align 4, !tbaa !11
  %525 = fdiv float %519, %524
  store float %525, ptr %22, align 4, !tbaa !11
  %526 = load ptr, ptr %12, align 8, !tbaa !5
  %527 = load i32, ptr %28, align 4, !tbaa !9
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds float, ptr %526, i64 %528
  %530 = load float, ptr %529, align 4, !tbaa !11
  %531 = load float, ptr %22, align 4, !tbaa !11
  %532 = load float, ptr %48, align 4, !tbaa !11
  %533 = call float @llvm.fmuladd.f32(float %530, float %531, float %532)
  store float %533, ptr %48, align 4, !tbaa !11
  %534 = load float, ptr %22, align 4, !tbaa !11
  %535 = load float, ptr %22, align 4, !tbaa !11
  %536 = load float, ptr %20, align 4, !tbaa !11
  %537 = call float @llvm.fmuladd.f32(float %534, float %535, float %536)
  store float %537, ptr %20, align 4, !tbaa !11
  %538 = load float, ptr %48, align 4, !tbaa !11
  %539 = load float, ptr %40, align 4, !tbaa !11
  %540 = fadd float %539, %538
  store float %540, ptr %40, align 4, !tbaa !11
  br label %541

541:                                              ; preds = %514
  %542 = load i32, ptr %28, align 4, !tbaa !9
  %543 = add nsw i32 %542, 1
  store i32 %543, ptr %28, align 4, !tbaa !9
  br label %510, !llvm.loop !17

544:                                              ; preds = %510
  %545 = load float, ptr %40, align 4, !tbaa !11
  %546 = fcmp oge float %545, 0.000000e+00
  br i1 %546, label %547, label %549

547:                                              ; preds = %544
  %548 = load float, ptr %40, align 4, !tbaa !11
  br label %552

549:                                              ; preds = %544
  %550 = load float, ptr %40, align 4, !tbaa !11
  %551 = fneg float %550
  br label %552

552:                                              ; preds = %549, %547
  %553 = phi float [ %548, %547 ], [ %551, %549 ]
  store float %553, ptr %40, align 4, !tbaa !11
  %554 = load ptr, ptr %12, align 8, !tbaa !5
  %555 = load ptr, ptr %9, align 8, !tbaa !5
  %556 = load i32, ptr %555, align 4, !tbaa !9
  %557 = sext i32 %556 to i64
  %558 = getelementptr inbounds float, ptr %554, i64 %557
  %559 = load float, ptr %558, align 4, !tbaa !11
  %560 = load ptr, ptr %13, align 8, !tbaa !5
  %561 = load ptr, ptr %9, align 8, !tbaa !5
  %562 = load i32, ptr %561, align 4, !tbaa !9
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds float, ptr %560, i64 %563
  %565 = load float, ptr %564, align 4, !tbaa !11
  %566 = fdiv float %559, %565
  store float %566, ptr %22, align 4, !tbaa !11
  %567 = load ptr, ptr %12, align 8, !tbaa !5
  %568 = load ptr, ptr %9, align 8, !tbaa !5
  %569 = load i32, ptr %568, align 4, !tbaa !9
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds float, ptr %567, i64 %570
  %572 = load float, ptr %571, align 4, !tbaa !11
  %573 = load float, ptr %22, align 4, !tbaa !11
  %574 = fmul float %572, %573
  store float %574, ptr %45, align 4, !tbaa !11
  %575 = load float, ptr %22, align 4, !tbaa !11
  %576 = load float, ptr %22, align 4, !tbaa !11
  %577 = fmul float %575, %576
  store float %577, ptr %19, align 4, !tbaa !11
  %578 = load float, ptr %45, align 4, !tbaa !11
  %579 = fneg float %578
  %580 = load float, ptr %48, align 4, !tbaa !11
  %581 = fsub float %579, %580
  %582 = load float, ptr %40, align 4, !tbaa !11
  %583 = call float @llvm.fmuladd.f32(float %581, float 8.000000e+00, float %582)
  %584 = load float, ptr %45, align 4, !tbaa !11
  %585 = fsub float %583, %584
  %586 = load float, ptr %41, align 4, !tbaa !11
  %587 = fadd float %585, %586
  %588 = load float, ptr %47, align 4, !tbaa !11
  %589 = fcmp oge float %588, 0.000000e+00
  br i1 %589, label %590, label %592

590:                                              ; preds = %552
  %591 = load float, ptr %47, align 4, !tbaa !11
  br label %595

592:                                              ; preds = %552
  %593 = load float, ptr %47, align 4, !tbaa !11
  %594 = fneg float %593
  br label %595

595:                                              ; preds = %592, %590
  %596 = phi float [ %591, %590 ], [ %594, %592 ]
  %597 = load float, ptr %20, align 4, !tbaa !11
  %598 = load float, ptr %19, align 4, !tbaa !11
  %599 = fadd float %597, %598
  %600 = call float @llvm.fmuladd.f32(float %596, float %599, float %587)
  store float %600, ptr %40, align 4, !tbaa !11
  %601 = load float, ptr %41, align 4, !tbaa !11
  %602 = load float, ptr %45, align 4, !tbaa !11
  %603 = fadd float %601, %602
  %604 = load float, ptr %48, align 4, !tbaa !11
  %605 = fadd float %603, %604
  store float %605, ptr %29, align 4, !tbaa !11
  %606 = load float, ptr %29, align 4, !tbaa !11
  %607 = fcmp oge float %606, 0.000000e+00
  br i1 %607, label %608, label %610

608:                                              ; preds = %595
  %609 = load float, ptr %29, align 4, !tbaa !11
  br label %613

610:                                              ; preds = %595
  %611 = load float, ptr %29, align 4, !tbaa !11
  %612 = fneg float %611
  br label %613

613:                                              ; preds = %610, %608
  %614 = phi float [ %609, %608 ], [ %612, %610 ]
  %615 = load float, ptr %46, align 4, !tbaa !11
  %616 = load float, ptr %40, align 4, !tbaa !11
  %617 = fmul float %615, %616
  %618 = fcmp ole float %614, %617
  br i1 %618, label %619, label %629

619:                                              ; preds = %613
  %620 = load ptr, ptr %11, align 8, !tbaa !5
  %621 = load ptr, ptr %10, align 8, !tbaa !5
  %622 = load i32, ptr %621, align 4, !tbaa !9
  %623 = sext i32 %622 to i64
  %624 = getelementptr inbounds float, ptr %620, i64 %623
  %625 = load float, ptr %624, align 4, !tbaa !11
  %626 = load float, ptr %47, align 4, !tbaa !11
  %627 = fadd float %625, %626
  %628 = load ptr, ptr %15, align 8, !tbaa !5
  store float %627, ptr %628, align 4, !tbaa !11
  br label %3527

629:                                              ; preds = %613
  %630 = load float, ptr %29, align 4, !tbaa !11
  %631 = fcmp ole float %630, 0.000000e+00
  br i1 %631, label %632, label %642

632:                                              ; preds = %629
  %633 = load float, ptr %30, align 4, !tbaa !11
  %634 = load float, ptr %47, align 4, !tbaa !11
  %635 = fcmp oge float %633, %634
  br i1 %635, label %636, label %638

636:                                              ; preds = %632
  %637 = load float, ptr %30, align 4, !tbaa !11
  br label %640

638:                                              ; preds = %632
  %639 = load float, ptr %47, align 4, !tbaa !11
  br label %640

640:                                              ; preds = %638, %636
  %641 = phi float [ %637, %636 ], [ %639, %638 ]
  store float %641, ptr %30, align 4, !tbaa !11
  br label %652

642:                                              ; preds = %629
  %643 = load float, ptr %31, align 4, !tbaa !11
  %644 = load float, ptr %47, align 4, !tbaa !11
  %645 = fcmp ole float %643, %644
  br i1 %645, label %646, label %648

646:                                              ; preds = %642
  %647 = load float, ptr %31, align 4, !tbaa !11
  br label %650

648:                                              ; preds = %642
  %649 = load float, ptr %47, align 4, !tbaa !11
  br label %650

650:                                              ; preds = %648, %646
  %651 = phi float [ %647, %646 ], [ %649, %648 ]
  store float %651, ptr %31, align 4, !tbaa !11
  br label %652

652:                                              ; preds = %650, %640
  %653 = load i32, ptr %33, align 4, !tbaa !9
  %654 = add nsw i32 %653, 1
  store i32 %654, ptr %33, align 4, !tbaa !9
  %655 = load float, ptr %29, align 4, !tbaa !11
  %656 = load ptr, ptr %13, align 8, !tbaa !5
  %657 = load ptr, ptr %9, align 8, !tbaa !5
  %658 = load i32, ptr %657, align 4, !tbaa !9
  %659 = sub nsw i32 %658, 1
  %660 = sext i32 %659 to i64
  %661 = getelementptr inbounds float, ptr %656, i64 %660
  %662 = load float, ptr %661, align 4, !tbaa !11
  %663 = load float, ptr %20, align 4, !tbaa !11
  %664 = fneg float %662
  %665 = call float @llvm.fmuladd.f32(float %664, float %663, float %655)
  %666 = load ptr, ptr %13, align 8, !tbaa !5
  %667 = load ptr, ptr %9, align 8, !tbaa !5
  %668 = load i32, ptr %667, align 4, !tbaa !9
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds float, ptr %666, i64 %669
  %671 = load float, ptr %670, align 4, !tbaa !11
  %672 = load float, ptr %19, align 4, !tbaa !11
  %673 = fneg float %671
  %674 = call float @llvm.fmuladd.f32(float %673, float %672, float %665)
  store float %674, ptr %27, align 4, !tbaa !11
  %675 = load ptr, ptr %13, align 8, !tbaa !5
  %676 = load ptr, ptr %9, align 8, !tbaa !5
  %677 = load i32, ptr %676, align 4, !tbaa !9
  %678 = sub nsw i32 %677, 1
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds float, ptr %675, i64 %679
  %681 = load float, ptr %680, align 4, !tbaa !11
  %682 = load ptr, ptr %13, align 8, !tbaa !5
  %683 = load ptr, ptr %9, align 8, !tbaa !5
  %684 = load i32, ptr %683, align 4, !tbaa !9
  %685 = sext i32 %684 to i64
  %686 = getelementptr inbounds float, ptr %682, i64 %685
  %687 = load float, ptr %686, align 4, !tbaa !11
  %688 = fadd float %681, %687
  %689 = load float, ptr %29, align 4, !tbaa !11
  %690 = load ptr, ptr %13, align 8, !tbaa !5
  %691 = load ptr, ptr %9, align 8, !tbaa !5
  %692 = load i32, ptr %691, align 4, !tbaa !9
  %693 = sub nsw i32 %692, 1
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds float, ptr %690, i64 %694
  %696 = load float, ptr %695, align 4, !tbaa !11
  %697 = load ptr, ptr %13, align 8, !tbaa !5
  %698 = load ptr, ptr %9, align 8, !tbaa !5
  %699 = load i32, ptr %698, align 4, !tbaa !9
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds float, ptr %697, i64 %700
  %702 = load float, ptr %701, align 4, !tbaa !11
  %703 = fmul float %696, %702
  %704 = load float, ptr %20, align 4, !tbaa !11
  %705 = load float, ptr %19, align 4, !tbaa !11
  %706 = fadd float %704, %705
  %707 = fmul float %703, %706
  %708 = fneg float %707
  %709 = call float @llvm.fmuladd.f32(float %688, float %689, float %708)
  store float %709, ptr %25, align 4, !tbaa !11
  %710 = load ptr, ptr %13, align 8, !tbaa !5
  %711 = load ptr, ptr %9, align 8, !tbaa !5
  %712 = load i32, ptr %711, align 4, !tbaa !9
  %713 = sub nsw i32 %712, 1
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds float, ptr %710, i64 %714
  %716 = load float, ptr %715, align 4, !tbaa !11
  %717 = load ptr, ptr %13, align 8, !tbaa !5
  %718 = load ptr, ptr %9, align 8, !tbaa !5
  %719 = load i32, ptr %718, align 4, !tbaa !9
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds float, ptr %717, i64 %720
  %722 = load float, ptr %721, align 4, !tbaa !11
  %723 = fmul float %716, %722
  %724 = load float, ptr %29, align 4, !tbaa !11
  %725 = fmul float %723, %724
  store float %725, ptr %26, align 4, !tbaa !11
  %726 = load float, ptr %27, align 4, !tbaa !11
  %727 = fcmp olt float %726, 0.000000e+00
  br i1 %727, label %728, label %738

728:                                              ; preds = %652
  %729 = load float, ptr %27, align 4, !tbaa !11
  %730 = fcmp oge float %729, 0.000000e+00
  br i1 %730, label %731, label %733

731:                                              ; preds = %728
  %732 = load float, ptr %27, align 4, !tbaa !11
  br label %736

733:                                              ; preds = %728
  %734 = load float, ptr %27, align 4, !tbaa !11
  %735 = fneg float %734
  br label %736

736:                                              ; preds = %733, %731
  %737 = phi float [ %732, %731 ], [ %735, %733 ]
  store float %737, ptr %27, align 4, !tbaa !11
  br label %738

738:                                              ; preds = %736, %652
  %739 = load float, ptr %27, align 4, !tbaa !11
  %740 = fcmp oeq float %739, 0.000000e+00
  br i1 %740, label %741, label %745

741:                                              ; preds = %738
  %742 = load float, ptr %31, align 4, !tbaa !11
  %743 = load float, ptr %47, align 4, !tbaa !11
  %744 = fsub float %742, %743
  store float %744, ptr %44, align 4, !tbaa !11
  br label %805

745:                                              ; preds = %738
  %746 = load float, ptr %25, align 4, !tbaa !11
  %747 = fcmp oge float %746, 0.000000e+00
  br i1 %747, label %748, label %776

748:                                              ; preds = %745
  %749 = load float, ptr %25, align 4, !tbaa !11
  %750 = fpext float %749 to double
  %751 = load float, ptr %25, align 4, !tbaa !11
  %752 = load float, ptr %25, align 4, !tbaa !11
  %753 = load float, ptr %26, align 4, !tbaa !11
  %754 = fmul float %753, 4.000000e+00
  %755 = load float, ptr %27, align 4, !tbaa !11
  %756 = fmul float %754, %755
  %757 = fneg float %756
  %758 = call float @llvm.fmuladd.f32(float %751, float %752, float %757)
  store float %758, ptr %18, align 4, !tbaa !11
  %759 = load float, ptr %18, align 4, !tbaa !11
  %760 = fcmp oge float %759, 0.000000e+00
  br i1 %760, label %761, label %763

761:                                              ; preds = %748
  %762 = load float, ptr %18, align 4, !tbaa !11
  br label %766

763:                                              ; preds = %748
  %764 = load float, ptr %18, align 4, !tbaa !11
  %765 = fneg float %764
  br label %766

766:                                              ; preds = %763, %761
  %767 = phi float [ %762, %761 ], [ %765, %763 ]
  %768 = fpext float %767 to double
  %769 = call double @sqrt(double noundef %768) #5
  %770 = fadd double %750, %769
  %771 = load float, ptr %27, align 4, !tbaa !11
  %772 = fmul float %771, 2.000000e+00
  %773 = fpext float %772 to double
  %774 = fdiv double %770, %773
  %775 = fptrunc double %774 to float
  store float %775, ptr %44, align 4, !tbaa !11
  br label %804

776:                                              ; preds = %745
  %777 = load float, ptr %26, align 4, !tbaa !11
  %778 = fmul float %777, 2.000000e+00
  %779 = fpext float %778 to double
  %780 = load float, ptr %25, align 4, !tbaa !11
  %781 = fpext float %780 to double
  %782 = load float, ptr %25, align 4, !tbaa !11
  %783 = load float, ptr %25, align 4, !tbaa !11
  %784 = load float, ptr %26, align 4, !tbaa !11
  %785 = fmul float %784, 4.000000e+00
  %786 = load float, ptr %27, align 4, !tbaa !11
  %787 = fmul float %785, %786
  %788 = fneg float %787
  %789 = call float @llvm.fmuladd.f32(float %782, float %783, float %788)
  store float %789, ptr %18, align 4, !tbaa !11
  %790 = load float, ptr %18, align 4, !tbaa !11
  %791 = fcmp oge float %790, 0.000000e+00
  br i1 %791, label %792, label %794

792:                                              ; preds = %776
  %793 = load float, ptr %18, align 4, !tbaa !11
  br label %797

794:                                              ; preds = %776
  %795 = load float, ptr %18, align 4, !tbaa !11
  %796 = fneg float %795
  br label %797

797:                                              ; preds = %794, %792
  %798 = phi float [ %793, %792 ], [ %796, %794 ]
  %799 = fpext float %798 to double
  %800 = call double @sqrt(double noundef %799) #5
  %801 = fsub double %781, %800
  %802 = fdiv double %779, %801
  %803 = fptrunc double %802 to float
  store float %803, ptr %44, align 4, !tbaa !11
  br label %804

804:                                              ; preds = %797, %766
  br label %805

805:                                              ; preds = %804, %741
  %806 = load float, ptr %29, align 4, !tbaa !11
  %807 = load float, ptr %44, align 4, !tbaa !11
  %808 = fmul float %806, %807
  %809 = fcmp ogt float %808, 0.000000e+00
  br i1 %809, label %810, label %817

810:                                              ; preds = %805
  %811 = load float, ptr %29, align 4, !tbaa !11
  %812 = fneg float %811
  %813 = load float, ptr %20, align 4, !tbaa !11
  %814 = load float, ptr %19, align 4, !tbaa !11
  %815 = fadd float %813, %814
  %816 = fdiv float %812, %815
  store float %816, ptr %44, align 4, !tbaa !11
  br label %817

817:                                              ; preds = %810, %805
  %818 = load float, ptr %47, align 4, !tbaa !11
  %819 = load float, ptr %44, align 4, !tbaa !11
  %820 = fadd float %818, %819
  store float %820, ptr %22, align 4, !tbaa !11
  %821 = load float, ptr %22, align 4, !tbaa !11
  %822 = load float, ptr %31, align 4, !tbaa !11
  %823 = fcmp ogt float %821, %822
  br i1 %823, label %828, label %824

824:                                              ; preds = %817
  %825 = load float, ptr %22, align 4, !tbaa !11
  %826 = load float, ptr %30, align 4, !tbaa !11
  %827 = fcmp olt float %825, %826
  br i1 %827, label %828, label %842

828:                                              ; preds = %824, %817
  %829 = load float, ptr %29, align 4, !tbaa !11
  %830 = fcmp olt float %829, 0.000000e+00
  br i1 %830, label %831, label %836

831:                                              ; preds = %828
  %832 = load float, ptr %31, align 4, !tbaa !11
  %833 = load float, ptr %47, align 4, !tbaa !11
  %834 = fsub float %832, %833
  %835 = fdiv float %834, 2.000000e+00
  store float %835, ptr %44, align 4, !tbaa !11
  br label %841

836:                                              ; preds = %828
  %837 = load float, ptr %30, align 4, !tbaa !11
  %838 = load float, ptr %47, align 4, !tbaa !11
  %839 = fsub float %837, %838
  %840 = fdiv float %839, 2.000000e+00
  store float %840, ptr %44, align 4, !tbaa !11
  br label %841

841:                                              ; preds = %836, %831
  br label %842

842:                                              ; preds = %841, %824
  %843 = load ptr, ptr %9, align 8, !tbaa !5
  %844 = load i32, ptr %843, align 4, !tbaa !9
  store i32 %844, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %845

845:                                              ; preds = %857, %842
  %846 = load i32, ptr %28, align 4, !tbaa !9
  %847 = load i32, ptr %17, align 4, !tbaa !9
  %848 = icmp sle i32 %846, %847
  br i1 %848, label %849, label %860

849:                                              ; preds = %845
  %850 = load float, ptr %44, align 4, !tbaa !11
  %851 = load ptr, ptr %13, align 8, !tbaa !5
  %852 = load i32, ptr %28, align 4, !tbaa !9
  %853 = sext i32 %852 to i64
  %854 = getelementptr inbounds float, ptr %851, i64 %853
  %855 = load float, ptr %854, align 4, !tbaa !11
  %856 = fsub float %855, %850
  store float %856, ptr %854, align 4, !tbaa !11
  br label %857

857:                                              ; preds = %849
  %858 = load i32, ptr %28, align 4, !tbaa !9
  %859 = add nsw i32 %858, 1
  store i32 %859, ptr %28, align 4, !tbaa !9
  br label %845, !llvm.loop !18

860:                                              ; preds = %845
  %861 = load float, ptr %44, align 4, !tbaa !11
  %862 = load float, ptr %47, align 4, !tbaa !11
  %863 = fadd float %862, %861
  store float %863, ptr %47, align 4, !tbaa !11
  store float 0.000000e+00, ptr %20, align 4, !tbaa !11
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  %864 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %864, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %865

865:                                              ; preds = %896, %860
  %866 = load i32, ptr %28, align 4, !tbaa !9
  %867 = load i32, ptr %17, align 4, !tbaa !9
  %868 = icmp sle i32 %866, %867
  br i1 %868, label %869, label %899

869:                                              ; preds = %865
  %870 = load ptr, ptr %12, align 8, !tbaa !5
  %871 = load i32, ptr %28, align 4, !tbaa !9
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds float, ptr %870, i64 %872
  %874 = load float, ptr %873, align 4, !tbaa !11
  %875 = load ptr, ptr %13, align 8, !tbaa !5
  %876 = load i32, ptr %28, align 4, !tbaa !9
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds float, ptr %875, i64 %877
  %879 = load float, ptr %878, align 4, !tbaa !11
  %880 = fdiv float %874, %879
  store float %880, ptr %22, align 4, !tbaa !11
  %881 = load ptr, ptr %12, align 8, !tbaa !5
  %882 = load i32, ptr %28, align 4, !tbaa !9
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds float, ptr %881, i64 %883
  %885 = load float, ptr %884, align 4, !tbaa !11
  %886 = load float, ptr %22, align 4, !tbaa !11
  %887 = load float, ptr %48, align 4, !tbaa !11
  %888 = call float @llvm.fmuladd.f32(float %885, float %886, float %887)
  store float %888, ptr %48, align 4, !tbaa !11
  %889 = load float, ptr %22, align 4, !tbaa !11
  %890 = load float, ptr %22, align 4, !tbaa !11
  %891 = load float, ptr %20, align 4, !tbaa !11
  %892 = call float @llvm.fmuladd.f32(float %889, float %890, float %891)
  store float %892, ptr %20, align 4, !tbaa !11
  %893 = load float, ptr %48, align 4, !tbaa !11
  %894 = load float, ptr %40, align 4, !tbaa !11
  %895 = fadd float %894, %893
  store float %895, ptr %40, align 4, !tbaa !11
  br label %896

896:                                              ; preds = %869
  %897 = load i32, ptr %28, align 4, !tbaa !9
  %898 = add nsw i32 %897, 1
  store i32 %898, ptr %28, align 4, !tbaa !9
  br label %865, !llvm.loop !19

899:                                              ; preds = %865
  %900 = load float, ptr %40, align 4, !tbaa !11
  %901 = fcmp oge float %900, 0.000000e+00
  br i1 %901, label %902, label %904

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

904:                                              ; preds = %899
  %905 = load float, ptr %40, align 4, !tbaa !11
  %906 = fneg float %905
  br label %907

907:                                              ; preds = %904, %902
  %908 = phi float [ %903, %902 ], [ %906, %904 ]
  store float %908, ptr %40, align 4, !tbaa !11
  %909 = load ptr, ptr %12, align 8, !tbaa !5
  %910 = load ptr, ptr %9, align 8, !tbaa !5
  %911 = load i32, ptr %910, align 4, !tbaa !9
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds float, ptr %909, i64 %912
  %914 = load float, ptr %913, align 4, !tbaa !11
  %915 = load ptr, ptr %13, align 8, !tbaa !5
  %916 = load ptr, ptr %9, align 8, !tbaa !5
  %917 = load i32, ptr %916, align 4, !tbaa !9
  %918 = sext i32 %917 to i64
  %919 = getelementptr inbounds float, ptr %915, i64 %918
  %920 = load float, ptr %919, align 4, !tbaa !11
  %921 = fdiv float %914, %920
  store float %921, ptr %22, align 4, !tbaa !11
  %922 = load ptr, ptr %12, align 8, !tbaa !5
  %923 = load ptr, ptr %9, align 8, !tbaa !5
  %924 = load i32, ptr %923, align 4, !tbaa !9
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds float, ptr %922, i64 %925
  %927 = load float, ptr %926, align 4, !tbaa !11
  %928 = load float, ptr %22, align 4, !tbaa !11
  %929 = fmul float %927, %928
  store float %929, ptr %45, align 4, !tbaa !11
  %930 = load float, ptr %22, align 4, !tbaa !11
  %931 = load float, ptr %22, align 4, !tbaa !11
  %932 = fmul float %930, %931
  store float %932, ptr %19, align 4, !tbaa !11
  %933 = load float, ptr %45, align 4, !tbaa !11
  %934 = fneg float %933
  %935 = load float, ptr %48, align 4, !tbaa !11
  %936 = fsub float %934, %935
  %937 = load float, ptr %40, align 4, !tbaa !11
  %938 = call float @llvm.fmuladd.f32(float %936, float 8.000000e+00, float %937)
  %939 = load float, ptr %45, align 4, !tbaa !11
  %940 = fsub float %938, %939
  %941 = load float, ptr %41, align 4, !tbaa !11
  %942 = fadd float %940, %941
  %943 = load float, ptr %47, align 4, !tbaa !11
  %944 = fcmp oge float %943, 0.000000e+00
  br i1 %944, label %945, label %947

945:                                              ; preds = %907
  %946 = load float, ptr %47, align 4, !tbaa !11
  br label %950

947:                                              ; preds = %907
  %948 = load float, ptr %47, align 4, !tbaa !11
  %949 = fneg float %948
  br label %950

950:                                              ; preds = %947, %945
  %951 = phi float [ %946, %945 ], [ %949, %947 ]
  %952 = load float, ptr %20, align 4, !tbaa !11
  %953 = load float, ptr %19, align 4, !tbaa !11
  %954 = fadd float %952, %953
  %955 = call float @llvm.fmuladd.f32(float %951, float %954, float %942)
  store float %955, ptr %40, align 4, !tbaa !11
  %956 = load float, ptr %41, align 4, !tbaa !11
  %957 = load float, ptr %45, align 4, !tbaa !11
  %958 = fadd float %956, %957
  %959 = load float, ptr %48, align 4, !tbaa !11
  %960 = fadd float %958, %959
  store float %960, ptr %29, align 4, !tbaa !11
  %961 = load i32, ptr %33, align 4, !tbaa !9
  %962 = add nsw i32 %961, 1
  store i32 %962, ptr %21, align 4, !tbaa !9
  %963 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %963, ptr %33, align 4, !tbaa !9
  br label %964

964:                                              ; preds = %1300, %950
  %965 = load i32, ptr %33, align 4, !tbaa !9
  %966 = icmp sle i32 %965, 30
  br i1 %966, label %967, label %1303

967:                                              ; preds = %964
  %968 = load float, ptr %29, align 4, !tbaa !11
  %969 = fcmp oge float %968, 0.000000e+00
  br i1 %969, label %970, label %972

970:                                              ; preds = %967
  %971 = load float, ptr %29, align 4, !tbaa !11
  br label %975

972:                                              ; preds = %967
  %973 = load float, ptr %29, align 4, !tbaa !11
  %974 = fneg float %973
  br label %975

975:                                              ; preds = %972, %970
  %976 = phi float [ %971, %970 ], [ %974, %972 ]
  %977 = load float, ptr %46, align 4, !tbaa !11
  %978 = load float, ptr %40, align 4, !tbaa !11
  %979 = fmul float %977, %978
  %980 = fcmp ole float %976, %979
  br i1 %980, label %981, label %991

981:                                              ; preds = %975
  %982 = load ptr, ptr %11, align 8, !tbaa !5
  %983 = load ptr, ptr %10, align 8, !tbaa !5
  %984 = load i32, ptr %983, align 4, !tbaa !9
  %985 = sext i32 %984 to i64
  %986 = getelementptr inbounds float, ptr %982, i64 %985
  %987 = load float, ptr %986, align 4, !tbaa !11
  %988 = load float, ptr %47, align 4, !tbaa !11
  %989 = fadd float %987, %988
  %990 = load ptr, ptr %15, align 8, !tbaa !5
  store float %989, ptr %990, align 4, !tbaa !11
  br label %3527

991:                                              ; preds = %975
  %992 = load float, ptr %29, align 4, !tbaa !11
  %993 = fcmp ole float %992, 0.000000e+00
  br i1 %993, label %994, label %1004

994:                                              ; preds = %991
  %995 = load float, ptr %30, align 4, !tbaa !11
  %996 = load float, ptr %47, align 4, !tbaa !11
  %997 = fcmp oge float %995, %996
  br i1 %997, label %998, label %1000

998:                                              ; preds = %994
  %999 = load float, ptr %30, align 4, !tbaa !11
  br label %1002

1000:                                             ; preds = %994
  %1001 = load float, ptr %47, align 4, !tbaa !11
  br label %1002

1002:                                             ; preds = %1000, %998
  %1003 = phi float [ %999, %998 ], [ %1001, %1000 ]
  store float %1003, ptr %30, align 4, !tbaa !11
  br label %1014

1004:                                             ; preds = %991
  %1005 = load float, ptr %31, align 4, !tbaa !11
  %1006 = load float, ptr %47, align 4, !tbaa !11
  %1007 = fcmp ole float %1005, %1006
  br i1 %1007, label %1008, label %1010

1008:                                             ; preds = %1004
  %1009 = load float, ptr %31, align 4, !tbaa !11
  br label %1012

1010:                                             ; preds = %1004
  %1011 = load float, ptr %47, align 4, !tbaa !11
  br label %1012

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

1014:                                             ; preds = %1012, %1002
  %1015 = load float, ptr %29, align 4, !tbaa !11
  %1016 = load ptr, ptr %13, align 8, !tbaa !5
  %1017 = load ptr, ptr %9, align 8, !tbaa !5
  %1018 = load i32, ptr %1017, align 4, !tbaa !9
  %1019 = sub nsw i32 %1018, 1
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds float, ptr %1016, i64 %1020
  %1022 = load float, ptr %1021, align 4, !tbaa !11
  %1023 = load float, ptr %20, align 4, !tbaa !11
  %1024 = fneg float %1022
  %1025 = call float @llvm.fmuladd.f32(float %1024, float %1023, float %1015)
  %1026 = load ptr, ptr %13, align 8, !tbaa !5
  %1027 = load ptr, ptr %9, align 8, !tbaa !5
  %1028 = load i32, ptr %1027, align 4, !tbaa !9
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds float, ptr %1026, i64 %1029
  %1031 = load float, ptr %1030, align 4, !tbaa !11
  %1032 = load float, ptr %19, align 4, !tbaa !11
  %1033 = fneg float %1031
  %1034 = call float @llvm.fmuladd.f32(float %1033, float %1032, float %1025)
  store float %1034, ptr %27, align 4, !tbaa !11
  %1035 = load ptr, ptr %13, align 8, !tbaa !5
  %1036 = load ptr, ptr %9, align 8, !tbaa !5
  %1037 = load i32, ptr %1036, align 4, !tbaa !9
  %1038 = sub nsw i32 %1037, 1
  %1039 = sext i32 %1038 to i64
  %1040 = getelementptr inbounds float, ptr %1035, i64 %1039
  %1041 = load float, ptr %1040, align 4, !tbaa !11
  %1042 = load ptr, ptr %13, align 8, !tbaa !5
  %1043 = load ptr, ptr %9, align 8, !tbaa !5
  %1044 = load i32, ptr %1043, align 4, !tbaa !9
  %1045 = sext i32 %1044 to i64
  %1046 = getelementptr inbounds float, ptr %1042, i64 %1045
  %1047 = load float, ptr %1046, align 4, !tbaa !11
  %1048 = fadd float %1041, %1047
  %1049 = load float, ptr %29, align 4, !tbaa !11
  %1050 = load ptr, ptr %13, align 8, !tbaa !5
  %1051 = load ptr, ptr %9, align 8, !tbaa !5
  %1052 = load i32, ptr %1051, align 4, !tbaa !9
  %1053 = sub nsw i32 %1052, 1
  %1054 = sext i32 %1053 to i64
  %1055 = getelementptr inbounds float, ptr %1050, i64 %1054
  %1056 = load float, ptr %1055, align 4, !tbaa !11
  %1057 = load ptr, ptr %13, align 8, !tbaa !5
  %1058 = load ptr, ptr %9, align 8, !tbaa !5
  %1059 = load i32, ptr %1058, align 4, !tbaa !9
  %1060 = sext i32 %1059 to i64
  %1061 = getelementptr inbounds float, ptr %1057, i64 %1060
  %1062 = load float, ptr %1061, align 4, !tbaa !11
  %1063 = fmul float %1056, %1062
  %1064 = load float, ptr %20, align 4, !tbaa !11
  %1065 = load float, ptr %19, align 4, !tbaa !11
  %1066 = fadd float %1064, %1065
  %1067 = fmul float %1063, %1066
  %1068 = fneg float %1067
  %1069 = call float @llvm.fmuladd.f32(float %1048, float %1049, float %1068)
  store float %1069, ptr %25, align 4, !tbaa !11
  %1070 = load ptr, ptr %13, align 8, !tbaa !5
  %1071 = load ptr, ptr %9, align 8, !tbaa !5
  %1072 = load i32, ptr %1071, align 4, !tbaa !9
  %1073 = sub nsw i32 %1072, 1
  %1074 = sext i32 %1073 to i64
  %1075 = getelementptr inbounds float, ptr %1070, i64 %1074
  %1076 = load float, ptr %1075, align 4, !tbaa !11
  %1077 = load ptr, ptr %13, align 8, !tbaa !5
  %1078 = load ptr, ptr %9, align 8, !tbaa !5
  %1079 = load i32, ptr %1078, align 4, !tbaa !9
  %1080 = sext i32 %1079 to i64
  %1081 = getelementptr inbounds float, ptr %1077, i64 %1080
  %1082 = load float, ptr %1081, align 4, !tbaa !11
  %1083 = fmul float %1076, %1082
  %1084 = load float, ptr %29, align 4, !tbaa !11
  %1085 = fmul float %1083, %1084
  store float %1085, ptr %26, align 4, !tbaa !11
  %1086 = load float, ptr %25, align 4, !tbaa !11
  %1087 = fcmp oge float %1086, 0.000000e+00
  br i1 %1087, label %1088, label %1116

1088:                                             ; preds = %1014
  %1089 = load float, ptr %25, align 4, !tbaa !11
  %1090 = fpext float %1089 to double
  %1091 = load float, ptr %25, align 4, !tbaa !11
  %1092 = load float, ptr %25, align 4, !tbaa !11
  %1093 = load float, ptr %26, align 4, !tbaa !11
  %1094 = fmul float %1093, 4.000000e+00
  %1095 = load float, ptr %27, align 4, !tbaa !11
  %1096 = fmul float %1094, %1095
  %1097 = fneg float %1096
  %1098 = call float @llvm.fmuladd.f32(float %1091, float %1092, float %1097)
  store float %1098, ptr %18, align 4, !tbaa !11
  %1099 = load float, ptr %18, align 4, !tbaa !11
  %1100 = fcmp oge float %1099, 0.000000e+00
  br i1 %1100, label %1101, label %1103

1101:                                             ; preds = %1088
  %1102 = load float, ptr %18, align 4, !tbaa !11
  br label %1106

1103:                                             ; preds = %1088
  %1104 = load float, ptr %18, align 4, !tbaa !11
  %1105 = fneg float %1104
  br label %1106

1106:                                             ; preds = %1103, %1101
  %1107 = phi float [ %1102, %1101 ], [ %1105, %1103 ]
  %1108 = fpext float %1107 to double
  %1109 = call double @sqrt(double noundef %1108) #5
  %1110 = fadd double %1090, %1109
  %1111 = load float, ptr %27, align 4, !tbaa !11
  %1112 = fmul float %1111, 2.000000e+00
  %1113 = fpext float %1112 to double
  %1114 = fdiv double %1110, %1113
  %1115 = fptrunc double %1114 to float
  store float %1115, ptr %44, align 4, !tbaa !11
  br label %1144

1116:                                             ; preds = %1014
  %1117 = load float, ptr %26, align 4, !tbaa !11
  %1118 = fmul float %1117, 2.000000e+00
  %1119 = fpext float %1118 to double
  %1120 = load float, ptr %25, align 4, !tbaa !11
  %1121 = fpext float %1120 to double
  %1122 = load float, ptr %25, align 4, !tbaa !11
  %1123 = load float, ptr %25, align 4, !tbaa !11
  %1124 = load float, ptr %26, align 4, !tbaa !11
  %1125 = fmul float %1124, 4.000000e+00
  %1126 = load float, ptr %27, align 4, !tbaa !11
  %1127 = fmul float %1125, %1126
  %1128 = fneg float %1127
  %1129 = call float @llvm.fmuladd.f32(float %1122, float %1123, float %1128)
  store float %1129, ptr %18, align 4, !tbaa !11
  %1130 = load float, ptr %18, align 4, !tbaa !11
  %1131 = fcmp oge float %1130, 0.000000e+00
  br i1 %1131, label %1132, label %1134

1132:                                             ; preds = %1116
  %1133 = load float, ptr %18, align 4, !tbaa !11
  br label %1137

1134:                                             ; preds = %1116
  %1135 = load float, ptr %18, align 4, !tbaa !11
  %1136 = fneg float %1135
  br label %1137

1137:                                             ; preds = %1134, %1132
  %1138 = phi float [ %1133, %1132 ], [ %1136, %1134 ]
  %1139 = fpext float %1138 to double
  %1140 = call double @sqrt(double noundef %1139) #5
  %1141 = fsub double %1121, %1140
  %1142 = fdiv double %1119, %1141
  %1143 = fptrunc double %1142 to float
  store float %1143, ptr %44, align 4, !tbaa !11
  br label %1144

1144:                                             ; preds = %1137, %1106
  %1145 = load float, ptr %29, align 4, !tbaa !11
  %1146 = load float, ptr %44, align 4, !tbaa !11
  %1147 = fmul float %1145, %1146
  %1148 = fcmp ogt float %1147, 0.000000e+00
  br i1 %1148, label %1149, label %1156

1149:                                             ; preds = %1144
  %1150 = load float, ptr %29, align 4, !tbaa !11
  %1151 = fneg float %1150
  %1152 = load float, ptr %20, align 4, !tbaa !11
  %1153 = load float, ptr %19, align 4, !tbaa !11
  %1154 = fadd float %1152, %1153
  %1155 = fdiv float %1151, %1154
  store float %1155, ptr %44, align 4, !tbaa !11
  br label %1156

1156:                                             ; preds = %1149, %1144
  %1157 = load float, ptr %47, align 4, !tbaa !11
  %1158 = load float, ptr %44, align 4, !tbaa !11
  %1159 = fadd float %1157, %1158
  store float %1159, ptr %22, align 4, !tbaa !11
  %1160 = load float, ptr %22, align 4, !tbaa !11
  %1161 = load float, ptr %31, align 4, !tbaa !11
  %1162 = fcmp ogt float %1160, %1161
  br i1 %1162, label %1167, label %1163

1163:                                             ; preds = %1156
  %1164 = load float, ptr %22, align 4, !tbaa !11
  %1165 = load float, ptr %30, align 4, !tbaa !11
  %1166 = fcmp olt float %1164, %1165
  br i1 %1166, label %1167, label %1181

1167:                                             ; preds = %1163, %1156
  %1168 = load float, ptr %29, align 4, !tbaa !11
  %1169 = fcmp olt float %1168, 0.000000e+00
  br i1 %1169, label %1170, label %1175

1170:                                             ; preds = %1167
  %1171 = load float, ptr %31, align 4, !tbaa !11
  %1172 = load float, ptr %47, align 4, !tbaa !11
  %1173 = fsub float %1171, %1172
  %1174 = fdiv float %1173, 2.000000e+00
  store float %1174, ptr %44, align 4, !tbaa !11
  br label %1180

1175:                                             ; preds = %1167
  %1176 = load float, ptr %30, align 4, !tbaa !11
  %1177 = load float, ptr %47, align 4, !tbaa !11
  %1178 = fsub float %1176, %1177
  %1179 = fdiv float %1178, 2.000000e+00
  store float %1179, ptr %44, align 4, !tbaa !11
  br label %1180

1180:                                             ; preds = %1175, %1170
  br label %1181

1181:                                             ; preds = %1180, %1163
  %1182 = load ptr, ptr %9, align 8, !tbaa !5
  %1183 = load i32, ptr %1182, align 4, !tbaa !9
  store i32 %1183, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %1184

1184:                                             ; preds = %1196, %1181
  %1185 = load i32, ptr %28, align 4, !tbaa !9
  %1186 = load i32, ptr %17, align 4, !tbaa !9
  %1187 = icmp sle i32 %1185, %1186
  br i1 %1187, label %1188, label %1199

1188:                                             ; preds = %1184
  %1189 = load float, ptr %44, align 4, !tbaa !11
  %1190 = load ptr, ptr %13, align 8, !tbaa !5
  %1191 = load i32, ptr %28, align 4, !tbaa !9
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds float, ptr %1190, i64 %1192
  %1194 = load float, ptr %1193, align 4, !tbaa !11
  %1195 = fsub float %1194, %1189
  store float %1195, ptr %1193, align 4, !tbaa !11
  br label %1196

1196:                                             ; preds = %1188
  %1197 = load i32, ptr %28, align 4, !tbaa !9
  %1198 = add nsw i32 %1197, 1
  store i32 %1198, ptr %28, align 4, !tbaa !9
  br label %1184, !llvm.loop !20

1199:                                             ; preds = %1184
  %1200 = load float, ptr %44, align 4, !tbaa !11
  %1201 = load float, ptr %47, align 4, !tbaa !11
  %1202 = fadd float %1201, %1200
  store float %1202, ptr %47, align 4, !tbaa !11
  store float 0.000000e+00, ptr %20, align 4, !tbaa !11
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  %1203 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %1203, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %1204

1204:                                             ; preds = %1235, %1199
  %1205 = load i32, ptr %28, align 4, !tbaa !9
  %1206 = load i32, ptr %17, align 4, !tbaa !9
  %1207 = icmp sle i32 %1205, %1206
  br i1 %1207, label %1208, label %1238

1208:                                             ; preds = %1204
  %1209 = load ptr, ptr %12, align 8, !tbaa !5
  %1210 = load i32, ptr %28, align 4, !tbaa !9
  %1211 = sext i32 %1210 to i64
  %1212 = getelementptr inbounds float, ptr %1209, i64 %1211
  %1213 = load float, ptr %1212, align 4, !tbaa !11
  %1214 = load ptr, ptr %13, align 8, !tbaa !5
  %1215 = load i32, ptr %28, align 4, !tbaa !9
  %1216 = sext i32 %1215 to i64
  %1217 = getelementptr inbounds float, ptr %1214, i64 %1216
  %1218 = load float, ptr %1217, align 4, !tbaa !11
  %1219 = fdiv float %1213, %1218
  store float %1219, ptr %22, align 4, !tbaa !11
  %1220 = load ptr, ptr %12, align 8, !tbaa !5
  %1221 = load i32, ptr %28, align 4, !tbaa !9
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds float, ptr %1220, i64 %1222
  %1224 = load float, ptr %1223, align 4, !tbaa !11
  %1225 = load float, ptr %22, align 4, !tbaa !11
  %1226 = load float, ptr %48, align 4, !tbaa !11
  %1227 = call float @llvm.fmuladd.f32(float %1224, float %1225, float %1226)
  store float %1227, ptr %48, align 4, !tbaa !11
  %1228 = load float, ptr %22, align 4, !tbaa !11
  %1229 = load float, ptr %22, align 4, !tbaa !11
  %1230 = load float, ptr %20, align 4, !tbaa !11
  %1231 = call float @llvm.fmuladd.f32(float %1228, float %1229, float %1230)
  store float %1231, ptr %20, align 4, !tbaa !11
  %1232 = load float, ptr %48, align 4, !tbaa !11
  %1233 = load float, ptr %40, align 4, !tbaa !11
  %1234 = fadd float %1233, %1232
  store float %1234, ptr %40, align 4, !tbaa !11
  br label %1235

1235:                                             ; preds = %1208
  %1236 = load i32, ptr %28, align 4, !tbaa !9
  %1237 = add nsw i32 %1236, 1
  store i32 %1237, ptr %28, align 4, !tbaa !9
  br label %1204, !llvm.loop !21

1238:                                             ; preds = %1204
  %1239 = load float, ptr %40, align 4, !tbaa !11
  %1240 = fcmp oge float %1239, 0.000000e+00
  br i1 %1240, label %1241, label %1243

1241:                                             ; preds = %1238
  %1242 = load float, ptr %40, align 4, !tbaa !11
  br label %1246

1243:                                             ; preds = %1238
  %1244 = load float, ptr %40, align 4, !tbaa !11
  %1245 = fneg float %1244
  br label %1246

1246:                                             ; preds = %1243, %1241
  %1247 = phi float [ %1242, %1241 ], [ %1245, %1243 ]
  store float %1247, ptr %40, align 4, !tbaa !11
  %1248 = load ptr, ptr %12, align 8, !tbaa !5
  %1249 = load ptr, ptr %9, align 8, !tbaa !5
  %1250 = load i32, ptr %1249, align 4, !tbaa !9
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr inbounds float, ptr %1248, i64 %1251
  %1253 = load float, ptr %1252, align 4, !tbaa !11
  %1254 = load ptr, ptr %13, align 8, !tbaa !5
  %1255 = load ptr, ptr %9, align 8, !tbaa !5
  %1256 = load i32, ptr %1255, align 4, !tbaa !9
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds float, ptr %1254, i64 %1257
  %1259 = load float, ptr %1258, align 4, !tbaa !11
  %1260 = fdiv float %1253, %1259
  store float %1260, ptr %22, align 4, !tbaa !11
  %1261 = load ptr, ptr %12, align 8, !tbaa !5
  %1262 = load ptr, ptr %9, align 8, !tbaa !5
  %1263 = load i32, ptr %1262, align 4, !tbaa !9
  %1264 = sext i32 %1263 to i64
  %1265 = getelementptr inbounds float, ptr %1261, i64 %1264
  %1266 = load float, ptr %1265, align 4, !tbaa !11
  %1267 = load float, ptr %22, align 4, !tbaa !11
  %1268 = fmul float %1266, %1267
  store float %1268, ptr %45, align 4, !tbaa !11
  %1269 = load float, ptr %22, align 4, !tbaa !11
  %1270 = load float, ptr %22, align 4, !tbaa !11
  %1271 = fmul float %1269, %1270
  store float %1271, ptr %19, align 4, !tbaa !11
  %1272 = load float, ptr %45, align 4, !tbaa !11
  %1273 = fneg float %1272
  %1274 = load float, ptr %48, align 4, !tbaa !11
  %1275 = fsub float %1273, %1274
  %1276 = load float, ptr %40, align 4, !tbaa !11
  %1277 = call float @llvm.fmuladd.f32(float %1275, float 8.000000e+00, float %1276)
  %1278 = load float, ptr %45, align 4, !tbaa !11
  %1279 = fsub float %1277, %1278
  %1280 = load float, ptr %41, align 4, !tbaa !11
  %1281 = fadd float %1279, %1280
  %1282 = load float, ptr %47, align 4, !tbaa !11
  %1283 = fcmp oge float %1282, 0.000000e+00
  br i1 %1283, label %1284, label %1286

1284:                                             ; preds = %1246
  %1285 = load float, ptr %47, align 4, !tbaa !11
  br label %1289

1286:                                             ; preds = %1246
  %1287 = load float, ptr %47, align 4, !tbaa !11
  %1288 = fneg float %1287
  br label %1289

1289:                                             ; preds = %1286, %1284
  %1290 = phi float [ %1285, %1284 ], [ %1288, %1286 ]
  %1291 = load float, ptr %20, align 4, !tbaa !11
  %1292 = load float, ptr %19, align 4, !tbaa !11
  %1293 = fadd float %1291, %1292
  %1294 = call float @llvm.fmuladd.f32(float %1290, float %1293, float %1281)
  store float %1294, ptr %40, align 4, !tbaa !11
  %1295 = load float, ptr %41, align 4, !tbaa !11
  %1296 = load float, ptr %45, align 4, !tbaa !11
  %1297 = fadd float %1295, %1296
  %1298 = load float, ptr %48, align 4, !tbaa !11
  %1299 = fadd float %1297, %1298
  store float %1299, ptr %29, align 4, !tbaa !11
  br label %1300

1300:                                             ; preds = %1289
  %1301 = load i32, ptr %33, align 4, !tbaa !9
  %1302 = add nsw i32 %1301, 1
  store i32 %1302, ptr %33, align 4, !tbaa !9
  br label %964, !llvm.loop !22

1303:                                             ; preds = %964
  %1304 = load ptr, ptr %16, align 8, !tbaa !5
  store i32 1, ptr %1304, align 4, !tbaa !9
  %1305 = load ptr, ptr %11, align 8, !tbaa !5
  %1306 = load ptr, ptr %10, align 8, !tbaa !5
  %1307 = load i32, ptr %1306, align 4, !tbaa !9
  %1308 = sext i32 %1307 to i64
  %1309 = getelementptr inbounds float, ptr %1305, i64 %1308
  %1310 = load float, ptr %1309, align 4, !tbaa !11
  %1311 = load float, ptr %47, align 4, !tbaa !11
  %1312 = fadd float %1310, %1311
  %1313 = load ptr, ptr %15, align 8, !tbaa !5
  store float %1312, ptr %1313, align 4, !tbaa !11
  br label %3527

1314:                                             ; preds = %93
  store i32 1, ptr %33, align 4, !tbaa !9
  %1315 = load ptr, ptr %10, align 8, !tbaa !5
  %1316 = load i32, ptr %1315, align 4, !tbaa !9
  %1317 = add nsw i32 %1316, 1
  store i32 %1317, ptr %42, align 4, !tbaa !9
  %1318 = load ptr, ptr %11, align 8, !tbaa !5
  %1319 = load i32, ptr %42, align 4, !tbaa !9
  %1320 = sext i32 %1319 to i64
  %1321 = getelementptr inbounds float, ptr %1318, i64 %1320
  %1322 = load float, ptr %1321, align 4, !tbaa !11
  %1323 = load ptr, ptr %11, align 8, !tbaa !5
  %1324 = load ptr, ptr %10, align 8, !tbaa !5
  %1325 = load i32, ptr %1324, align 4, !tbaa !9
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds float, ptr %1323, i64 %1326
  %1328 = load float, ptr %1327, align 4, !tbaa !11
  %1329 = fsub float %1322, %1328
  store float %1329, ptr %43, align 4, !tbaa !11
  %1330 = load float, ptr %43, align 4, !tbaa !11
  %1331 = fdiv float %1330, 2.000000e+00
  store float %1331, ptr %32, align 4, !tbaa !11
  %1332 = load ptr, ptr %9, align 8, !tbaa !5
  %1333 = load i32, ptr %1332, align 4, !tbaa !9
  store i32 %1333, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %1334

1334:                                             ; preds = %1357, %1314
  %1335 = load i32, ptr %28, align 4, !tbaa !9
  %1336 = load i32, ptr %17, align 4, !tbaa !9
  %1337 = icmp sle i32 %1335, %1336
  br i1 %1337, label %1338, label %1360

1338:                                             ; preds = %1334
  %1339 = load ptr, ptr %11, align 8, !tbaa !5
  %1340 = load i32, ptr %28, align 4, !tbaa !9
  %1341 = sext i32 %1340 to i64
  %1342 = getelementptr inbounds float, ptr %1339, i64 %1341
  %1343 = load float, ptr %1342, align 4, !tbaa !11
  %1344 = load ptr, ptr %11, align 8, !tbaa !5
  %1345 = load ptr, ptr %10, align 8, !tbaa !5
  %1346 = load i32, ptr %1345, align 4, !tbaa !9
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds float, ptr %1344, i64 %1347
  %1349 = load float, ptr %1348, align 4, !tbaa !11
  %1350 = fsub float %1343, %1349
  %1351 = load float, ptr %32, align 4, !tbaa !11
  %1352 = fsub float %1350, %1351
  %1353 = load ptr, ptr %13, align 8, !tbaa !5
  %1354 = load i32, ptr %28, align 4, !tbaa !9
  %1355 = sext i32 %1354 to i64
  %1356 = getelementptr inbounds float, ptr %1353, i64 %1355
  store float %1352, ptr %1356, align 4, !tbaa !11
  br label %1357

1357:                                             ; preds = %1338
  %1358 = load i32, ptr %28, align 4, !tbaa !9
  %1359 = add nsw i32 %1358, 1
  store i32 %1359, ptr %28, align 4, !tbaa !9
  br label %1334, !llvm.loop !23

1360:                                             ; preds = %1334
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  %1361 = load ptr, ptr %10, align 8, !tbaa !5
  %1362 = load i32, ptr %1361, align 4, !tbaa !9
  %1363 = sub nsw i32 %1362, 1
  store i32 %1363, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %1364

1364:                                             ; preds = %1388, %1360
  %1365 = load i32, ptr %28, align 4, !tbaa !9
  %1366 = load i32, ptr %17, align 4, !tbaa !9
  %1367 = icmp sle i32 %1365, %1366
  br i1 %1367, label %1368, label %1391

1368:                                             ; preds = %1364
  %1369 = load ptr, ptr %12, align 8, !tbaa !5
  %1370 = load i32, ptr %28, align 4, !tbaa !9
  %1371 = sext i32 %1370 to i64
  %1372 = getelementptr inbounds float, ptr %1369, i64 %1371
  %1373 = load float, ptr %1372, align 4, !tbaa !11
  %1374 = load ptr, ptr %12, align 8, !tbaa !5
  %1375 = load i32, ptr %28, align 4, !tbaa !9
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds float, ptr %1374, i64 %1376
  %1378 = load float, ptr %1377, align 4, !tbaa !11
  %1379 = fmul float %1373, %1378
  %1380 = load ptr, ptr %13, align 8, !tbaa !5
  %1381 = load i32, ptr %28, align 4, !tbaa !9
  %1382 = sext i32 %1381 to i64
  %1383 = getelementptr inbounds float, ptr %1380, i64 %1382
  %1384 = load float, ptr %1383, align 4, !tbaa !11
  %1385 = fdiv float %1379, %1384
  %1386 = load float, ptr %48, align 4, !tbaa !11
  %1387 = fadd float %1386, %1385
  store float %1387, ptr %48, align 4, !tbaa !11
  br label %1388

1388:                                             ; preds = %1368
  %1389 = load i32, ptr %28, align 4, !tbaa !9
  %1390 = add nsw i32 %1389, 1
  store i32 %1390, ptr %28, align 4, !tbaa !9
  br label %1364, !llvm.loop !24

1391:                                             ; preds = %1364
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %1392 = load ptr, ptr %10, align 8, !tbaa !5
  %1393 = load i32, ptr %1392, align 4, !tbaa !9
  %1394 = add nsw i32 %1393, 2
  store i32 %1394, ptr %17, align 4, !tbaa !9
  %1395 = load ptr, ptr %9, align 8, !tbaa !5
  %1396 = load i32, ptr %1395, align 4, !tbaa !9
  store i32 %1396, ptr %28, align 4, !tbaa !9
  br label %1397

1397:                                             ; preds = %1421, %1391
  %1398 = load i32, ptr %28, align 4, !tbaa !9
  %1399 = load i32, ptr %17, align 4, !tbaa !9
  %1400 = icmp sge i32 %1398, %1399
  br i1 %1400, label %1401, label %1424

1401:                                             ; preds = %1397
  %1402 = load ptr, ptr %12, align 8, !tbaa !5
  %1403 = load i32, ptr %28, align 4, !tbaa !9
  %1404 = sext i32 %1403 to i64
  %1405 = getelementptr inbounds float, ptr %1402, i64 %1404
  %1406 = load float, ptr %1405, align 4, !tbaa !11
  %1407 = load ptr, ptr %12, align 8, !tbaa !5
  %1408 = load i32, ptr %28, align 4, !tbaa !9
  %1409 = sext i32 %1408 to i64
  %1410 = getelementptr inbounds float, ptr %1407, i64 %1409
  %1411 = load float, ptr %1410, align 4, !tbaa !11
  %1412 = fmul float %1406, %1411
  %1413 = load ptr, ptr %13, align 8, !tbaa !5
  %1414 = load i32, ptr %28, align 4, !tbaa !9
  %1415 = sext i32 %1414 to i64
  %1416 = getelementptr inbounds float, ptr %1413, i64 %1415
  %1417 = load float, ptr %1416, align 4, !tbaa !11
  %1418 = fdiv float %1412, %1417
  %1419 = load float, ptr %45, align 4, !tbaa !11
  %1420 = fadd float %1419, %1418
  store float %1420, ptr %45, align 4, !tbaa !11
  br label %1421

1421:                                             ; preds = %1401
  %1422 = load i32, ptr %28, align 4, !tbaa !9
  %1423 = add nsw i32 %1422, -1
  store i32 %1423, ptr %28, align 4, !tbaa !9
  br label %1397, !llvm.loop !25

1424:                                             ; preds = %1397
  %1425 = load float, ptr %41, align 4, !tbaa !11
  %1426 = load float, ptr %48, align 4, !tbaa !11
  %1427 = fadd float %1425, %1426
  %1428 = load float, ptr %45, align 4, !tbaa !11
  %1429 = fadd float %1427, %1428
  store float %1429, ptr %27, align 4, !tbaa !11
  %1430 = load float, ptr %27, align 4, !tbaa !11
  %1431 = load ptr, ptr %12, align 8, !tbaa !5
  %1432 = load ptr, ptr %10, align 8, !tbaa !5
  %1433 = load i32, ptr %1432, align 4, !tbaa !9
  %1434 = sext i32 %1433 to i64
  %1435 = getelementptr inbounds float, ptr %1431, i64 %1434
  %1436 = load float, ptr %1435, align 4, !tbaa !11
  %1437 = load ptr, ptr %12, align 8, !tbaa !5
  %1438 = load ptr, ptr %10, align 8, !tbaa !5
  %1439 = load i32, ptr %1438, align 4, !tbaa !9
  %1440 = sext i32 %1439 to i64
  %1441 = getelementptr inbounds float, ptr %1437, i64 %1440
  %1442 = load float, ptr %1441, align 4, !tbaa !11
  %1443 = fmul float %1436, %1442
  %1444 = load ptr, ptr %13, align 8, !tbaa !5
  %1445 = load ptr, ptr %10, align 8, !tbaa !5
  %1446 = load i32, ptr %1445, align 4, !tbaa !9
  %1447 = sext i32 %1446 to i64
  %1448 = getelementptr inbounds float, ptr %1444, i64 %1447
  %1449 = load float, ptr %1448, align 4, !tbaa !11
  %1450 = fdiv float %1443, %1449
  %1451 = fadd float %1430, %1450
  %1452 = load ptr, ptr %12, align 8, !tbaa !5
  %1453 = load i32, ptr %42, align 4, !tbaa !9
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds float, ptr %1452, i64 %1454
  %1456 = load float, ptr %1455, align 4, !tbaa !11
  %1457 = load ptr, ptr %12, align 8, !tbaa !5
  %1458 = load i32, ptr %42, align 4, !tbaa !9
  %1459 = sext i32 %1458 to i64
  %1460 = getelementptr inbounds float, ptr %1457, i64 %1459
  %1461 = load float, ptr %1460, align 4, !tbaa !11
  %1462 = fmul float %1456, %1461
  %1463 = load ptr, ptr %13, align 8, !tbaa !5
  %1464 = load i32, ptr %42, align 4, !tbaa !9
  %1465 = sext i32 %1464 to i64
  %1466 = getelementptr inbounds float, ptr %1463, i64 %1465
  %1467 = load float, ptr %1466, align 4, !tbaa !11
  %1468 = fdiv float %1462, %1467
  %1469 = fadd float %1451, %1468
  store float %1469, ptr %29, align 4, !tbaa !11
  %1470 = load float, ptr %29, align 4, !tbaa !11
  %1471 = fcmp ogt float %1470, 0.000000e+00
  br i1 %1471, label %1472, label %1575

1472:                                             ; preds = %1424
  store i32 1, ptr %39, align 4, !tbaa !9
  %1473 = load float, ptr %27, align 4, !tbaa !11
  %1474 = load float, ptr %43, align 4, !tbaa !11
  %1475 = load ptr, ptr %12, align 8, !tbaa !5
  %1476 = load ptr, ptr %10, align 8, !tbaa !5
  %1477 = load i32, ptr %1476, align 4, !tbaa !9
  %1478 = sext i32 %1477 to i64
  %1479 = getelementptr inbounds float, ptr %1475, i64 %1478
  %1480 = load float, ptr %1479, align 4, !tbaa !11
  %1481 = load ptr, ptr %12, align 8, !tbaa !5
  %1482 = load ptr, ptr %10, align 8, !tbaa !5
  %1483 = load i32, ptr %1482, align 4, !tbaa !9
  %1484 = sext i32 %1483 to i64
  %1485 = getelementptr inbounds float, ptr %1481, i64 %1484
  %1486 = load float, ptr %1485, align 4, !tbaa !11
  %1487 = fmul float %1480, %1486
  %1488 = call float @llvm.fmuladd.f32(float %1473, float %1474, float %1487)
  %1489 = load ptr, ptr %12, align 8, !tbaa !5
  %1490 = load i32, ptr %42, align 4, !tbaa !9
  %1491 = sext i32 %1490 to i64
  %1492 = getelementptr inbounds float, ptr %1489, i64 %1491
  %1493 = load float, ptr %1492, align 4, !tbaa !11
  %1494 = load ptr, ptr %12, align 8, !tbaa !5
  %1495 = load i32, ptr %42, align 4, !tbaa !9
  %1496 = sext i32 %1495 to i64
  %1497 = getelementptr inbounds float, ptr %1494, i64 %1496
  %1498 = load float, ptr %1497, align 4, !tbaa !11
  %1499 = call float @llvm.fmuladd.f32(float %1493, float %1498, float %1488)
  store float %1499, ptr %25, align 4, !tbaa !11
  %1500 = load ptr, ptr %12, align 8, !tbaa !5
  %1501 = load ptr, ptr %10, align 8, !tbaa !5
  %1502 = load i32, ptr %1501, align 4, !tbaa !9
  %1503 = sext i32 %1502 to i64
  %1504 = getelementptr inbounds float, ptr %1500, i64 %1503
  %1505 = load float, ptr %1504, align 4, !tbaa !11
  %1506 = load ptr, ptr %12, align 8, !tbaa !5
  %1507 = load ptr, ptr %10, align 8, !tbaa !5
  %1508 = load i32, ptr %1507, align 4, !tbaa !9
  %1509 = sext i32 %1508 to i64
  %1510 = getelementptr inbounds float, ptr %1506, i64 %1509
  %1511 = load float, ptr %1510, align 4, !tbaa !11
  %1512 = fmul float %1505, %1511
  %1513 = load float, ptr %43, align 4, !tbaa !11
  %1514 = fmul float %1512, %1513
  store float %1514, ptr %26, align 4, !tbaa !11
  %1515 = load float, ptr %25, align 4, !tbaa !11
  %1516 = fcmp ogt float %1515, 0.000000e+00
  br i1 %1516, label %1517, label %1545

1517:                                             ; preds = %1472
  %1518 = load float, ptr %26, align 4, !tbaa !11
  %1519 = fmul float %1518, 2.000000e+00
  %1520 = fpext float %1519 to double
  %1521 = load float, ptr %25, align 4, !tbaa !11
  %1522 = fpext float %1521 to double
  %1523 = load float, ptr %25, align 4, !tbaa !11
  %1524 = load float, ptr %25, align 4, !tbaa !11
  %1525 = load float, ptr %26, align 4, !tbaa !11
  %1526 = fmul float %1525, 4.000000e+00
  %1527 = load float, ptr %27, align 4, !tbaa !11
  %1528 = fmul float %1526, %1527
  %1529 = fneg float %1528
  %1530 = call float @llvm.fmuladd.f32(float %1523, float %1524, float %1529)
  store float %1530, ptr %18, align 4, !tbaa !11
  %1531 = load float, ptr %18, align 4, !tbaa !11
  %1532 = fcmp oge float %1531, 0.000000e+00
  br i1 %1532, label %1533, label %1535

1533:                                             ; preds = %1517
  %1534 = load float, ptr %18, align 4, !tbaa !11
  br label %1538

1535:                                             ; preds = %1517
  %1536 = load float, ptr %18, align 4, !tbaa !11
  %1537 = fneg float %1536
  br label %1538

1538:                                             ; preds = %1535, %1533
  %1539 = phi float [ %1534, %1533 ], [ %1537, %1535 ]
  %1540 = fpext float %1539 to double
  %1541 = call double @sqrt(double noundef %1540) #5
  %1542 = fadd double %1522, %1541
  %1543 = fdiv double %1520, %1542
  %1544 = fptrunc double %1543 to float
  store float %1544, ptr %47, align 4, !tbaa !11
  br label %1573

1545:                                             ; preds = %1472
  %1546 = load float, ptr %25, align 4, !tbaa !11
  %1547 = fpext float %1546 to double
  %1548 = load float, ptr %25, align 4, !tbaa !11
  %1549 = load float, ptr %25, align 4, !tbaa !11
  %1550 = load float, ptr %26, align 4, !tbaa !11
  %1551 = fmul float %1550, 4.000000e+00
  %1552 = load float, ptr %27, align 4, !tbaa !11
  %1553 = fmul float %1551, %1552
  %1554 = fneg float %1553
  %1555 = call float @llvm.fmuladd.f32(float %1548, float %1549, float %1554)
  store float %1555, ptr %18, align 4, !tbaa !11
  %1556 = load float, ptr %18, align 4, !tbaa !11
  %1557 = fcmp oge float %1556, 0.000000e+00
  br i1 %1557, label %1558, label %1560

1558:                                             ; preds = %1545
  %1559 = load float, ptr %18, align 4, !tbaa !11
  br label %1563

1560:                                             ; preds = %1545
  %1561 = load float, ptr %18, align 4, !tbaa !11
  %1562 = fneg float %1561
  br label %1563

1563:                                             ; preds = %1560, %1558
  %1564 = phi float [ %1559, %1558 ], [ %1562, %1560 ]
  %1565 = fpext float %1564 to double
  %1566 = call double @sqrt(double noundef %1565) #5
  %1567 = fsub double %1547, %1566
  %1568 = load float, ptr %27, align 4, !tbaa !11
  %1569 = fmul float %1568, 2.000000e+00
  %1570 = fpext float %1569 to double
  %1571 = fdiv double %1567, %1570
  %1572 = fptrunc double %1571 to float
  store float %1572, ptr %47, align 4, !tbaa !11
  br label %1573

1573:                                             ; preds = %1563, %1538
  store float 0.000000e+00, ptr %30, align 4, !tbaa !11
  %1574 = load float, ptr %32, align 4, !tbaa !11
  store float %1574, ptr %31, align 4, !tbaa !11
  br label %1678

1575:                                             ; preds = %1424
  store i32 0, ptr %39, align 4, !tbaa !9
  %1576 = load float, ptr %27, align 4, !tbaa !11
  %1577 = load float, ptr %43, align 4, !tbaa !11
  %1578 = load ptr, ptr %12, align 8, !tbaa !5
  %1579 = load ptr, ptr %10, align 8, !tbaa !5
  %1580 = load i32, ptr %1579, align 4, !tbaa !9
  %1581 = sext i32 %1580 to i64
  %1582 = getelementptr inbounds float, ptr %1578, i64 %1581
  %1583 = load float, ptr %1582, align 4, !tbaa !11
  %1584 = load ptr, ptr %12, align 8, !tbaa !5
  %1585 = load ptr, ptr %10, align 8, !tbaa !5
  %1586 = load i32, ptr %1585, align 4, !tbaa !9
  %1587 = sext i32 %1586 to i64
  %1588 = getelementptr inbounds float, ptr %1584, i64 %1587
  %1589 = load float, ptr %1588, align 4, !tbaa !11
  %1590 = fmul float %1583, %1589
  %1591 = fneg float %1590
  %1592 = call float @llvm.fmuladd.f32(float %1576, float %1577, float %1591)
  %1593 = load ptr, ptr %12, align 8, !tbaa !5
  %1594 = load i32, ptr %42, align 4, !tbaa !9
  %1595 = sext i32 %1594 to i64
  %1596 = getelementptr inbounds float, ptr %1593, i64 %1595
  %1597 = load float, ptr %1596, align 4, !tbaa !11
  %1598 = load ptr, ptr %12, align 8, !tbaa !5
  %1599 = load i32, ptr %42, align 4, !tbaa !9
  %1600 = sext i32 %1599 to i64
  %1601 = getelementptr inbounds float, ptr %1598, i64 %1600
  %1602 = load float, ptr %1601, align 4, !tbaa !11
  %1603 = fneg float %1597
  %1604 = call float @llvm.fmuladd.f32(float %1603, float %1602, float %1592)
  store float %1604, ptr %25, align 4, !tbaa !11
  %1605 = load ptr, ptr %12, align 8, !tbaa !5
  %1606 = load i32, ptr %42, align 4, !tbaa !9
  %1607 = sext i32 %1606 to i64
  %1608 = getelementptr inbounds float, ptr %1605, i64 %1607
  %1609 = load float, ptr %1608, align 4, !tbaa !11
  %1610 = load ptr, ptr %12, align 8, !tbaa !5
  %1611 = load i32, ptr %42, align 4, !tbaa !9
  %1612 = sext i32 %1611 to i64
  %1613 = getelementptr inbounds float, ptr %1610, i64 %1612
  %1614 = load float, ptr %1613, align 4, !tbaa !11
  %1615 = fmul float %1609, %1614
  %1616 = load float, ptr %43, align 4, !tbaa !11
  %1617 = fmul float %1615, %1616
  store float %1617, ptr %26, align 4, !tbaa !11
  %1618 = load float, ptr %25, align 4, !tbaa !11
  %1619 = fcmp olt float %1618, 0.000000e+00
  br i1 %1619, label %1620, label %1647

1620:                                             ; preds = %1575
  %1621 = load float, ptr %26, align 4, !tbaa !11
  %1622 = fmul float %1621, 2.000000e+00
  %1623 = fpext float %1622 to double
  %1624 = load float, ptr %25, align 4, !tbaa !11
  %1625 = fpext float %1624 to double
  %1626 = load float, ptr %25, align 4, !tbaa !11
  %1627 = load float, ptr %25, align 4, !tbaa !11
  %1628 = load float, ptr %26, align 4, !tbaa !11
  %1629 = fmul float %1628, 4.000000e+00
  %1630 = load float, ptr %27, align 4, !tbaa !11
  %1631 = fmul float %1629, %1630
  %1632 = call float @llvm.fmuladd.f32(float %1626, float %1627, float %1631)
  store float %1632, ptr %18, align 4, !tbaa !11
  %1633 = load float, ptr %18, align 4, !tbaa !11
  %1634 = fcmp oge float %1633, 0.000000e+00
  br i1 %1634, label %1635, label %1637

1635:                                             ; preds = %1620
  %1636 = load float, ptr %18, align 4, !tbaa !11
  br label %1640

1637:                                             ; preds = %1620
  %1638 = load float, ptr %18, align 4, !tbaa !11
  %1639 = fneg float %1638
  br label %1640

1640:                                             ; preds = %1637, %1635
  %1641 = phi float [ %1636, %1635 ], [ %1639, %1637 ]
  %1642 = fpext float %1641 to double
  %1643 = call double @sqrt(double noundef %1642) #5
  %1644 = fsub double %1625, %1643
  %1645 = fdiv double %1623, %1644
  %1646 = fptrunc double %1645 to float
  store float %1646, ptr %47, align 4, !tbaa !11
  br label %1675

1647:                                             ; preds = %1575
  %1648 = load float, ptr %25, align 4, !tbaa !11
  %1649 = fpext float %1648 to double
  %1650 = load float, ptr %25, align 4, !tbaa !11
  %1651 = load float, ptr %25, align 4, !tbaa !11
  %1652 = load float, ptr %26, align 4, !tbaa !11
  %1653 = fmul float %1652, 4.000000e+00
  %1654 = load float, ptr %27, align 4, !tbaa !11
  %1655 = fmul float %1653, %1654
  %1656 = call float @llvm.fmuladd.f32(float %1650, float %1651, float %1655)
  store float %1656, ptr %18, align 4, !tbaa !11
  %1657 = load float, ptr %18, align 4, !tbaa !11
  %1658 = fcmp oge float %1657, 0.000000e+00
  br i1 %1658, label %1659, label %1661

1659:                                             ; preds = %1647
  %1660 = load float, ptr %18, align 4, !tbaa !11
  br label %1664

1661:                                             ; preds = %1647
  %1662 = load float, ptr %18, align 4, !tbaa !11
  %1663 = fneg float %1662
  br label %1664

1664:                                             ; preds = %1661, %1659
  %1665 = phi float [ %1660, %1659 ], [ %1663, %1661 ]
  %1666 = fpext float %1665 to double
  %1667 = call double @sqrt(double noundef %1666) #5
  %1668 = fadd double %1649, %1667
  %1669 = fneg double %1668
  %1670 = load float, ptr %27, align 4, !tbaa !11
  %1671 = fmul float %1670, 2.000000e+00
  %1672 = fpext float %1671 to double
  %1673 = fdiv double %1669, %1672
  %1674 = fptrunc double %1673 to float
  store float %1674, ptr %47, align 4, !tbaa !11
  br label %1675

1675:                                             ; preds = %1664, %1640
  %1676 = load float, ptr %32, align 4, !tbaa !11
  %1677 = fneg float %1676
  store float %1677, ptr %30, align 4, !tbaa !11
  store float 0.000000e+00, ptr %31, align 4, !tbaa !11
  br label %1678

1678:                                             ; preds = %1675, %1573
  %1679 = load i32, ptr %39, align 4, !tbaa !9
  %1680 = icmp ne i32 %1679, 0
  br i1 %1680, label %1681, label %1711

1681:                                             ; preds = %1678
  %1682 = load ptr, ptr %9, align 8, !tbaa !5
  %1683 = load i32, ptr %1682, align 4, !tbaa !9
  store i32 %1683, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %1684

1684:                                             ; preds = %1707, %1681
  %1685 = load i32, ptr %28, align 4, !tbaa !9
  %1686 = load i32, ptr %17, align 4, !tbaa !9
  %1687 = icmp sle i32 %1685, %1686
  br i1 %1687, label %1688, label %1710

1688:                                             ; preds = %1684
  %1689 = load ptr, ptr %11, align 8, !tbaa !5
  %1690 = load i32, ptr %28, align 4, !tbaa !9
  %1691 = sext i32 %1690 to i64
  %1692 = getelementptr inbounds float, ptr %1689, i64 %1691
  %1693 = load float, ptr %1692, align 4, !tbaa !11
  %1694 = load ptr, ptr %11, align 8, !tbaa !5
  %1695 = load ptr, ptr %10, align 8, !tbaa !5
  %1696 = load i32, ptr %1695, align 4, !tbaa !9
  %1697 = sext i32 %1696 to i64
  %1698 = getelementptr inbounds float, ptr %1694, i64 %1697
  %1699 = load float, ptr %1698, align 4, !tbaa !11
  %1700 = fsub float %1693, %1699
  %1701 = load float, ptr %47, align 4, !tbaa !11
  %1702 = fsub float %1700, %1701
  %1703 = load ptr, ptr %13, align 8, !tbaa !5
  %1704 = load i32, ptr %28, align 4, !tbaa !9
  %1705 = sext i32 %1704 to i64
  %1706 = getelementptr inbounds float, ptr %1703, i64 %1705
  store float %1702, ptr %1706, align 4, !tbaa !11
  br label %1707

1707:                                             ; preds = %1688
  %1708 = load i32, ptr %28, align 4, !tbaa !9
  %1709 = add nsw i32 %1708, 1
  store i32 %1709, ptr %28, align 4, !tbaa !9
  br label %1684, !llvm.loop !26

1710:                                             ; preds = %1684
  br label %1740

1711:                                             ; preds = %1678
  %1712 = load ptr, ptr %9, align 8, !tbaa !5
  %1713 = load i32, ptr %1712, align 4, !tbaa !9
  store i32 %1713, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %1714

1714:                                             ; preds = %1736, %1711
  %1715 = load i32, ptr %28, align 4, !tbaa !9
  %1716 = load i32, ptr %17, align 4, !tbaa !9
  %1717 = icmp sle i32 %1715, %1716
  br i1 %1717, label %1718, label %1739

1718:                                             ; preds = %1714
  %1719 = load ptr, ptr %11, align 8, !tbaa !5
  %1720 = load i32, ptr %28, align 4, !tbaa !9
  %1721 = sext i32 %1720 to i64
  %1722 = getelementptr inbounds float, ptr %1719, i64 %1721
  %1723 = load float, ptr %1722, align 4, !tbaa !11
  %1724 = load ptr, ptr %11, align 8, !tbaa !5
  %1725 = load i32, ptr %42, align 4, !tbaa !9
  %1726 = sext i32 %1725 to i64
  %1727 = getelementptr inbounds float, ptr %1724, i64 %1726
  %1728 = load float, ptr %1727, align 4, !tbaa !11
  %1729 = fsub float %1723, %1728
  %1730 = load float, ptr %47, align 4, !tbaa !11
  %1731 = fsub float %1729, %1730
  %1732 = load ptr, ptr %13, align 8, !tbaa !5
  %1733 = load i32, ptr %28, align 4, !tbaa !9
  %1734 = sext i32 %1733 to i64
  %1735 = getelementptr inbounds float, ptr %1732, i64 %1734
  store float %1731, ptr %1735, align 4, !tbaa !11
  br label %1736

1736:                                             ; preds = %1718
  %1737 = load i32, ptr %28, align 4, !tbaa !9
  %1738 = add nsw i32 %1737, 1
  store i32 %1738, ptr %28, align 4, !tbaa !9
  br label %1714, !llvm.loop !27

1739:                                             ; preds = %1714
  br label %1740

1740:                                             ; preds = %1739, %1710
  %1741 = load i32, ptr %39, align 4, !tbaa !9
  %1742 = icmp ne i32 %1741, 0
  br i1 %1742, label %1743, label %1746

1743:                                             ; preds = %1740
  %1744 = load ptr, ptr %10, align 8, !tbaa !5
  %1745 = load i32, ptr %1744, align 4, !tbaa !9
  store i32 %1745, ptr %36, align 4, !tbaa !9
  br label %1750

1746:                                             ; preds = %1740
  %1747 = load ptr, ptr %10, align 8, !tbaa !5
  %1748 = load i32, ptr %1747, align 4, !tbaa !9
  %1749 = add nsw i32 %1748, 1
  store i32 %1749, ptr %36, align 4, !tbaa !9
  br label %1750

1750:                                             ; preds = %1746, %1743
  %1751 = load i32, ptr %36, align 4, !tbaa !9
  %1752 = sub nsw i32 %1751, 1
  store i32 %1752, ptr %49, align 4, !tbaa !9
  %1753 = load i32, ptr %36, align 4, !tbaa !9
  %1754 = add nsw i32 %1753, 1
  store i32 %1754, ptr %50, align 4, !tbaa !9
  store float 0.000000e+00, ptr %20, align 4, !tbaa !11
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  %1755 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %1755, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %1756

1756:                                             ; preds = %1787, %1750
  %1757 = load i32, ptr %28, align 4, !tbaa !9
  %1758 = load i32, ptr %17, align 4, !tbaa !9
  %1759 = icmp sle i32 %1757, %1758
  br i1 %1759, label %1760, label %1790

1760:                                             ; preds = %1756
  %1761 = load ptr, ptr %12, align 8, !tbaa !5
  %1762 = load i32, ptr %28, align 4, !tbaa !9
  %1763 = sext i32 %1762 to i64
  %1764 = getelementptr inbounds float, ptr %1761, i64 %1763
  %1765 = load float, ptr %1764, align 4, !tbaa !11
  %1766 = load ptr, ptr %13, align 8, !tbaa !5
  %1767 = load i32, ptr %28, align 4, !tbaa !9
  %1768 = sext i32 %1767 to i64
  %1769 = getelementptr inbounds float, ptr %1766, i64 %1768
  %1770 = load float, ptr %1769, align 4, !tbaa !11
  %1771 = fdiv float %1765, %1770
  store float %1771, ptr %22, align 4, !tbaa !11
  %1772 = load ptr, ptr %12, align 8, !tbaa !5
  %1773 = load i32, ptr %28, align 4, !tbaa !9
  %1774 = sext i32 %1773 to i64
  %1775 = getelementptr inbounds float, ptr %1772, i64 %1774
  %1776 = load float, ptr %1775, align 4, !tbaa !11
  %1777 = load float, ptr %22, align 4, !tbaa !11
  %1778 = load float, ptr %48, align 4, !tbaa !11
  %1779 = call float @llvm.fmuladd.f32(float %1776, float %1777, float %1778)
  store float %1779, ptr %48, align 4, !tbaa !11
  %1780 = load float, ptr %22, align 4, !tbaa !11
  %1781 = load float, ptr %22, align 4, !tbaa !11
  %1782 = load float, ptr %20, align 4, !tbaa !11
  %1783 = call float @llvm.fmuladd.f32(float %1780, float %1781, float %1782)
  store float %1783, ptr %20, align 4, !tbaa !11
  %1784 = load float, ptr %48, align 4, !tbaa !11
  %1785 = load float, ptr %40, align 4, !tbaa !11
  %1786 = fadd float %1785, %1784
  store float %1786, ptr %40, align 4, !tbaa !11
  br label %1787

1787:                                             ; preds = %1760
  %1788 = load i32, ptr %28, align 4, !tbaa !9
  %1789 = add nsw i32 %1788, 1
  store i32 %1789, ptr %28, align 4, !tbaa !9
  br label %1756, !llvm.loop !28

1790:                                             ; preds = %1756
  %1791 = load float, ptr %40, align 4, !tbaa !11
  %1792 = fcmp oge float %1791, 0.000000e+00
  br i1 %1792, label %1793, label %1795

1793:                                             ; preds = %1790
  %1794 = load float, ptr %40, align 4, !tbaa !11
  br label %1798

1795:                                             ; preds = %1790
  %1796 = load float, ptr %40, align 4, !tbaa !11
  %1797 = fneg float %1796
  br label %1798

1798:                                             ; preds = %1795, %1793
  %1799 = phi float [ %1794, %1793 ], [ %1797, %1795 ]
  store float %1799, ptr %40, align 4, !tbaa !11
  store float 0.000000e+00, ptr %19, align 4, !tbaa !11
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %1800 = load i32, ptr %50, align 4, !tbaa !9
  store i32 %1800, ptr %17, align 4, !tbaa !9
  %1801 = load ptr, ptr %9, align 8, !tbaa !5
  %1802 = load i32, ptr %1801, align 4, !tbaa !9
  store i32 %1802, ptr %28, align 4, !tbaa !9
  br label %1803

1803:                                             ; preds = %1834, %1798
  %1804 = load i32, ptr %28, align 4, !tbaa !9
  %1805 = load i32, ptr %17, align 4, !tbaa !9
  %1806 = icmp sge i32 %1804, %1805
  br i1 %1806, label %1807, label %1837

1807:                                             ; preds = %1803
  %1808 = load ptr, ptr %12, align 8, !tbaa !5
  %1809 = load i32, ptr %28, align 4, !tbaa !9
  %1810 = sext i32 %1809 to i64
  %1811 = getelementptr inbounds float, ptr %1808, i64 %1810
  %1812 = load float, ptr %1811, align 4, !tbaa !11
  %1813 = load ptr, ptr %13, align 8, !tbaa !5
  %1814 = load i32, ptr %28, align 4, !tbaa !9
  %1815 = sext i32 %1814 to i64
  %1816 = getelementptr inbounds float, ptr %1813, i64 %1815
  %1817 = load float, ptr %1816, align 4, !tbaa !11
  %1818 = fdiv float %1812, %1817
  store float %1818, ptr %22, align 4, !tbaa !11
  %1819 = load ptr, ptr %12, align 8, !tbaa !5
  %1820 = load i32, ptr %28, align 4, !tbaa !9
  %1821 = sext i32 %1820 to i64
  %1822 = getelementptr inbounds float, ptr %1819, i64 %1821
  %1823 = load float, ptr %1822, align 4, !tbaa !11
  %1824 = load float, ptr %22, align 4, !tbaa !11
  %1825 = load float, ptr %45, align 4, !tbaa !11
  %1826 = call float @llvm.fmuladd.f32(float %1823, float %1824, float %1825)
  store float %1826, ptr %45, align 4, !tbaa !11
  %1827 = load float, ptr %22, align 4, !tbaa !11
  %1828 = load float, ptr %22, align 4, !tbaa !11
  %1829 = load float, ptr %19, align 4, !tbaa !11
  %1830 = call float @llvm.fmuladd.f32(float %1827, float %1828, float %1829)
  store float %1830, ptr %19, align 4, !tbaa !11
  %1831 = load float, ptr %45, align 4, !tbaa !11
  %1832 = load float, ptr %40, align 4, !tbaa !11
  %1833 = fadd float %1832, %1831
  store float %1833, ptr %40, align 4, !tbaa !11
  br label %1834

1834:                                             ; preds = %1807
  %1835 = load i32, ptr %28, align 4, !tbaa !9
  %1836 = add nsw i32 %1835, -1
  store i32 %1836, ptr %28, align 4, !tbaa !9
  br label %1803, !llvm.loop !29

1837:                                             ; preds = %1803
  %1838 = load float, ptr %41, align 4, !tbaa !11
  %1839 = load float, ptr %45, align 4, !tbaa !11
  %1840 = fadd float %1838, %1839
  %1841 = load float, ptr %48, align 4, !tbaa !11
  %1842 = fadd float %1840, %1841
  store float %1842, ptr %29, align 4, !tbaa !11
  store i32 0, ptr %35, align 4, !tbaa !9
  %1843 = load i32, ptr %39, align 4, !tbaa !9
  %1844 = icmp ne i32 %1843, 0
  br i1 %1844, label %1845, label %1850

1845:                                             ; preds = %1837
  %1846 = load float, ptr %29, align 4, !tbaa !11
  %1847 = fcmp olt float %1846, 0.000000e+00
  br i1 %1847, label %1848, label %1849

1848:                                             ; preds = %1845
  store i32 1, ptr %35, align 4, !tbaa !9
  br label %1849

1849:                                             ; preds = %1848, %1845
  br label %1855

1850:                                             ; preds = %1837
  %1851 = load float, ptr %29, align 4, !tbaa !11
  %1852 = fcmp ogt float %1851, 0.000000e+00
  br i1 %1852, label %1853, label %1854

1853:                                             ; preds = %1850
  store i32 1, ptr %35, align 4, !tbaa !9
  br label %1854

1854:                                             ; preds = %1853, %1850
  br label %1855

1855:                                             ; preds = %1854, %1849
  %1856 = load i32, ptr %36, align 4, !tbaa !9
  %1857 = icmp eq i32 %1856, 1
  br i1 %1857, label %1863, label %1858

1858:                                             ; preds = %1855
  %1859 = load i32, ptr %36, align 4, !tbaa !9
  %1860 = load ptr, ptr %9, align 8, !tbaa !5
  %1861 = load i32, ptr %1860, align 4, !tbaa !9
  %1862 = icmp eq i32 %1859, %1861
  br i1 %1862, label %1863, label %1864

1863:                                             ; preds = %1858, %1855
  store i32 0, ptr %35, align 4, !tbaa !9
  br label %1864

1864:                                             ; preds = %1863, %1858
  %1865 = load ptr, ptr %12, align 8, !tbaa !5
  %1866 = load i32, ptr %36, align 4, !tbaa !9
  %1867 = sext i32 %1866 to i64
  %1868 = getelementptr inbounds float, ptr %1865, i64 %1867
  %1869 = load float, ptr %1868, align 4, !tbaa !11
  %1870 = load ptr, ptr %13, align 8, !tbaa !5
  %1871 = load i32, ptr %36, align 4, !tbaa !9
  %1872 = sext i32 %1871 to i64
  %1873 = getelementptr inbounds float, ptr %1870, i64 %1872
  %1874 = load float, ptr %1873, align 4, !tbaa !11
  %1875 = fdiv float %1869, %1874
  store float %1875, ptr %22, align 4, !tbaa !11
  %1876 = load float, ptr %20, align 4, !tbaa !11
  %1877 = load float, ptr %19, align 4, !tbaa !11
  %1878 = fadd float %1876, %1877
  %1879 = load float, ptr %22, align 4, !tbaa !11
  %1880 = load float, ptr %22, align 4, !tbaa !11
  %1881 = call float @llvm.fmuladd.f32(float %1879, float %1880, float %1878)
  store float %1881, ptr %37, align 4, !tbaa !11
  %1882 = load ptr, ptr %12, align 8, !tbaa !5
  %1883 = load i32, ptr %36, align 4, !tbaa !9
  %1884 = sext i32 %1883 to i64
  %1885 = getelementptr inbounds float, ptr %1882, i64 %1884
  %1886 = load float, ptr %1885, align 4, !tbaa !11
  %1887 = load float, ptr %22, align 4, !tbaa !11
  %1888 = fmul float %1886, %1887
  store float %1888, ptr %22, align 4, !tbaa !11
  %1889 = load float, ptr %22, align 4, !tbaa !11
  %1890 = load float, ptr %29, align 4, !tbaa !11
  %1891 = fadd float %1890, %1889
  store float %1891, ptr %29, align 4, !tbaa !11
  %1892 = load float, ptr %45, align 4, !tbaa !11
  %1893 = load float, ptr %48, align 4, !tbaa !11
  %1894 = fsub float %1892, %1893
  %1895 = load float, ptr %40, align 4, !tbaa !11
  %1896 = call float @llvm.fmuladd.f32(float %1894, float 8.000000e+00, float %1895)
  %1897 = load float, ptr %41, align 4, !tbaa !11
  %1898 = call float @llvm.fmuladd.f32(float %1897, float 2.000000e+00, float %1896)
  %1899 = load float, ptr %22, align 4, !tbaa !11
  %1900 = fcmp oge float %1899, 0.000000e+00
  br i1 %1900, label %1901, label %1903

1901:                                             ; preds = %1864
  %1902 = load float, ptr %22, align 4, !tbaa !11
  br label %1906

1903:                                             ; preds = %1864
  %1904 = load float, ptr %22, align 4, !tbaa !11
  %1905 = fneg float %1904
  br label %1906

1906:                                             ; preds = %1903, %1901
  %1907 = phi float [ %1902, %1901 ], [ %1905, %1903 ]
  %1908 = call float @llvm.fmuladd.f32(float %1907, float 3.000000e+00, float %1898)
  %1909 = load float, ptr %47, align 4, !tbaa !11
  %1910 = fcmp oge float %1909, 0.000000e+00
  br i1 %1910, label %1911, label %1913

1911:                                             ; preds = %1906
  %1912 = load float, ptr %47, align 4, !tbaa !11
  br label %1916

1913:                                             ; preds = %1906
  %1914 = load float, ptr %47, align 4, !tbaa !11
  %1915 = fneg float %1914
  br label %1916

1916:                                             ; preds = %1913, %1911
  %1917 = phi float [ %1912, %1911 ], [ %1915, %1913 ]
  %1918 = load float, ptr %37, align 4, !tbaa !11
  %1919 = call float @llvm.fmuladd.f32(float %1917, float %1918, float %1908)
  store float %1919, ptr %40, align 4, !tbaa !11
  %1920 = load float, ptr %29, align 4, !tbaa !11
  %1921 = fcmp oge float %1920, 0.000000e+00
  br i1 %1921, label %1922, label %1924

1922:                                             ; preds = %1916
  %1923 = load float, ptr %29, align 4, !tbaa !11
  br label %1927

1924:                                             ; preds = %1916
  %1925 = load float, ptr %29, align 4, !tbaa !11
  %1926 = fneg float %1925
  br label %1927

1927:                                             ; preds = %1924, %1922
  %1928 = phi float [ %1923, %1922 ], [ %1926, %1924 ]
  %1929 = load float, ptr %46, align 4, !tbaa !11
  %1930 = load float, ptr %40, align 4, !tbaa !11
  %1931 = fmul float %1929, %1930
  %1932 = fcmp ole float %1928, %1931
  br i1 %1932, label %1933, label %1956

1933:                                             ; preds = %1927
  %1934 = load i32, ptr %39, align 4, !tbaa !9
  %1935 = icmp ne i32 %1934, 0
  br i1 %1935, label %1936, label %1946

1936:                                             ; preds = %1933
  %1937 = load ptr, ptr %11, align 8, !tbaa !5
  %1938 = load ptr, ptr %10, align 8, !tbaa !5
  %1939 = load i32, ptr %1938, align 4, !tbaa !9
  %1940 = sext i32 %1939 to i64
  %1941 = getelementptr inbounds float, ptr %1937, i64 %1940
  %1942 = load float, ptr %1941, align 4, !tbaa !11
  %1943 = load float, ptr %47, align 4, !tbaa !11
  %1944 = fadd float %1942, %1943
  %1945 = load ptr, ptr %15, align 8, !tbaa !5
  store float %1944, ptr %1945, align 4, !tbaa !11
  br label %1955

1946:                                             ; preds = %1933
  %1947 = load ptr, ptr %11, align 8, !tbaa !5
  %1948 = load i32, ptr %42, align 4, !tbaa !9
  %1949 = sext i32 %1948 to i64
  %1950 = getelementptr inbounds float, ptr %1947, i64 %1949
  %1951 = load float, ptr %1950, align 4, !tbaa !11
  %1952 = load float, ptr %47, align 4, !tbaa !11
  %1953 = fadd float %1951, %1952
  %1954 = load ptr, ptr %15, align 8, !tbaa !5
  store float %1953, ptr %1954, align 4, !tbaa !11
  br label %1955

1955:                                             ; preds = %1946, %1936
  br label %3527

1956:                                             ; preds = %1927
  %1957 = load float, ptr %29, align 4, !tbaa !11
  %1958 = fcmp ole float %1957, 0.000000e+00
  br i1 %1958, label %1959, label %1969

1959:                                             ; preds = %1956
  %1960 = load float, ptr %30, align 4, !tbaa !11
  %1961 = load float, ptr %47, align 4, !tbaa !11
  %1962 = fcmp oge float %1960, %1961
  br i1 %1962, label %1963, label %1965

1963:                                             ; preds = %1959
  %1964 = load float, ptr %30, align 4, !tbaa !11
  br label %1967

1965:                                             ; preds = %1959
  %1966 = load float, ptr %47, align 4, !tbaa !11
  br label %1967

1967:                                             ; preds = %1965, %1963
  %1968 = phi float [ %1964, %1963 ], [ %1966, %1965 ]
  store float %1968, ptr %30, align 4, !tbaa !11
  br label %1979

1969:                                             ; preds = %1956
  %1970 = load float, ptr %31, align 4, !tbaa !11
  %1971 = load float, ptr %47, align 4, !tbaa !11
  %1972 = fcmp ole float %1970, %1971
  br i1 %1972, label %1973, label %1975

1973:                                             ; preds = %1969
  %1974 = load float, ptr %31, align 4, !tbaa !11
  br label %1977

1975:                                             ; preds = %1969
  %1976 = load float, ptr %47, align 4, !tbaa !11
  br label %1977

1977:                                             ; preds = %1975, %1973
  %1978 = phi float [ %1974, %1973 ], [ %1976, %1975 ]
  store float %1978, ptr %31, align 4, !tbaa !11
  br label %1979

1979:                                             ; preds = %1977, %1967
  %1980 = load i32, ptr %33, align 4, !tbaa !9
  %1981 = add nsw i32 %1980, 1
  store i32 %1981, ptr %33, align 4, !tbaa !9
  %1982 = load i32, ptr %35, align 4, !tbaa !9
  %1983 = icmp ne i32 %1982, 0
  br i1 %1983, label %2242, label %1984

1984:                                             ; preds = %1979
  %1985 = load i32, ptr %39, align 4, !tbaa !9
  %1986 = icmp ne i32 %1985, 0
  br i1 %1986, label %1987, label %2027

1987:                                             ; preds = %1984
  %1988 = load ptr, ptr %12, align 8, !tbaa !5
  %1989 = load ptr, ptr %10, align 8, !tbaa !5
  %1990 = load i32, ptr %1989, align 4, !tbaa !9
  %1991 = sext i32 %1990 to i64
  %1992 = getelementptr inbounds float, ptr %1988, i64 %1991
  %1993 = load float, ptr %1992, align 4, !tbaa !11
  %1994 = load ptr, ptr %13, align 8, !tbaa !5
  %1995 = load ptr, ptr %10, align 8, !tbaa !5
  %1996 = load i32, ptr %1995, align 4, !tbaa !9
  %1997 = sext i32 %1996 to i64
  %1998 = getelementptr inbounds float, ptr %1994, i64 %1997
  %1999 = load float, ptr %1998, align 4, !tbaa !11
  %2000 = fdiv float %1993, %1999
  store float %2000, ptr %18, align 4, !tbaa !11
  %2001 = load float, ptr %29, align 4, !tbaa !11
  %2002 = load ptr, ptr %13, align 8, !tbaa !5
  %2003 = load i32, ptr %42, align 4, !tbaa !9
  %2004 = sext i32 %2003 to i64
  %2005 = getelementptr inbounds float, ptr %2002, i64 %2004
  %2006 = load float, ptr %2005, align 4, !tbaa !11
  %2007 = load float, ptr %37, align 4, !tbaa !11
  %2008 = fneg float %2006
  %2009 = call float @llvm.fmuladd.f32(float %2008, float %2007, float %2001)
  %2010 = load ptr, ptr %11, align 8, !tbaa !5
  %2011 = load ptr, ptr %10, align 8, !tbaa !5
  %2012 = load i32, ptr %2011, align 4, !tbaa !9
  %2013 = sext i32 %2012 to i64
  %2014 = getelementptr inbounds float, ptr %2010, i64 %2013
  %2015 = load float, ptr %2014, align 4, !tbaa !11
  %2016 = load ptr, ptr %11, align 8, !tbaa !5
  %2017 = load i32, ptr %42, align 4, !tbaa !9
  %2018 = sext i32 %2017 to i64
  %2019 = getelementptr inbounds float, ptr %2016, i64 %2018
  %2020 = load float, ptr %2019, align 4, !tbaa !11
  %2021 = fsub float %2015, %2020
  %2022 = load float, ptr %18, align 4, !tbaa !11
  %2023 = load float, ptr %18, align 4, !tbaa !11
  %2024 = fmul float %2022, %2023
  %2025 = fneg float %2021
  %2026 = call float @llvm.fmuladd.f32(float %2025, float %2024, float %2009)
  store float %2026, ptr %27, align 4, !tbaa !11
  br label %2066

2027:                                             ; preds = %1984
  %2028 = load ptr, ptr %12, align 8, !tbaa !5
  %2029 = load i32, ptr %42, align 4, !tbaa !9
  %2030 = sext i32 %2029 to i64
  %2031 = getelementptr inbounds float, ptr %2028, i64 %2030
  %2032 = load float, ptr %2031, align 4, !tbaa !11
  %2033 = load ptr, ptr %13, align 8, !tbaa !5
  %2034 = load i32, ptr %42, align 4, !tbaa !9
  %2035 = sext i32 %2034 to i64
  %2036 = getelementptr inbounds float, ptr %2033, i64 %2035
  %2037 = load float, ptr %2036, align 4, !tbaa !11
  %2038 = fdiv float %2032, %2037
  store float %2038, ptr %18, align 4, !tbaa !11
  %2039 = load float, ptr %29, align 4, !tbaa !11
  %2040 = load ptr, ptr %13, align 8, !tbaa !5
  %2041 = load ptr, ptr %10, align 8, !tbaa !5
  %2042 = load i32, ptr %2041, align 4, !tbaa !9
  %2043 = sext i32 %2042 to i64
  %2044 = getelementptr inbounds float, ptr %2040, i64 %2043
  %2045 = load float, ptr %2044, align 4, !tbaa !11
  %2046 = load float, ptr %37, align 4, !tbaa !11
  %2047 = fneg float %2045
  %2048 = call float @llvm.fmuladd.f32(float %2047, float %2046, float %2039)
  %2049 = load ptr, ptr %11, align 8, !tbaa !5
  %2050 = load i32, ptr %42, align 4, !tbaa !9
  %2051 = sext i32 %2050 to i64
  %2052 = getelementptr inbounds float, ptr %2049, i64 %2051
  %2053 = load float, ptr %2052, align 4, !tbaa !11
  %2054 = load ptr, ptr %11, align 8, !tbaa !5
  %2055 = load ptr, ptr %10, align 8, !tbaa !5
  %2056 = load i32, ptr %2055, align 4, !tbaa !9
  %2057 = sext i32 %2056 to i64
  %2058 = getelementptr inbounds float, ptr %2054, i64 %2057
  %2059 = load float, ptr %2058, align 4, !tbaa !11
  %2060 = fsub float %2053, %2059
  %2061 = load float, ptr %18, align 4, !tbaa !11
  %2062 = load float, ptr %18, align 4, !tbaa !11
  %2063 = fmul float %2061, %2062
  %2064 = fneg float %2060
  %2065 = call float @llvm.fmuladd.f32(float %2064, float %2063, float %2048)
  store float %2065, ptr %27, align 4, !tbaa !11
  br label %2066

2066:                                             ; preds = %2027, %1987
  %2067 = load ptr, ptr %13, align 8, !tbaa !5
  %2068 = load ptr, ptr %10, align 8, !tbaa !5
  %2069 = load i32, ptr %2068, align 4, !tbaa !9
  %2070 = sext i32 %2069 to i64
  %2071 = getelementptr inbounds float, ptr %2067, i64 %2070
  %2072 = load float, ptr %2071, align 4, !tbaa !11
  %2073 = load ptr, ptr %13, align 8, !tbaa !5
  %2074 = load i32, ptr %42, align 4, !tbaa !9
  %2075 = sext i32 %2074 to i64
  %2076 = getelementptr inbounds float, ptr %2073, i64 %2075
  %2077 = load float, ptr %2076, align 4, !tbaa !11
  %2078 = fadd float %2072, %2077
  %2079 = load float, ptr %29, align 4, !tbaa !11
  %2080 = load ptr, ptr %13, align 8, !tbaa !5
  %2081 = load ptr, ptr %10, align 8, !tbaa !5
  %2082 = load i32, ptr %2081, align 4, !tbaa !9
  %2083 = sext i32 %2082 to i64
  %2084 = getelementptr inbounds float, ptr %2080, i64 %2083
  %2085 = load float, ptr %2084, align 4, !tbaa !11
  %2086 = load ptr, ptr %13, align 8, !tbaa !5
  %2087 = load i32, ptr %42, align 4, !tbaa !9
  %2088 = sext i32 %2087 to i64
  %2089 = getelementptr inbounds float, ptr %2086, i64 %2088
  %2090 = load float, ptr %2089, align 4, !tbaa !11
  %2091 = fmul float %2085, %2090
  %2092 = load float, ptr %37, align 4, !tbaa !11
  %2093 = fmul float %2091, %2092
  %2094 = fneg float %2093
  %2095 = call float @llvm.fmuladd.f32(float %2078, float %2079, float %2094)
  store float %2095, ptr %25, align 4, !tbaa !11
  %2096 = load ptr, ptr %13, align 8, !tbaa !5
  %2097 = load ptr, ptr %10, align 8, !tbaa !5
  %2098 = load i32, ptr %2097, align 4, !tbaa !9
  %2099 = sext i32 %2098 to i64
  %2100 = getelementptr inbounds float, ptr %2096, i64 %2099
  %2101 = load float, ptr %2100, align 4, !tbaa !11
  %2102 = load ptr, ptr %13, align 8, !tbaa !5
  %2103 = load i32, ptr %42, align 4, !tbaa !9
  %2104 = sext i32 %2103 to i64
  %2105 = getelementptr inbounds float, ptr %2102, i64 %2104
  %2106 = load float, ptr %2105, align 4, !tbaa !11
  %2107 = fmul float %2101, %2106
  %2108 = load float, ptr %29, align 4, !tbaa !11
  %2109 = fmul float %2107, %2108
  store float %2109, ptr %26, align 4, !tbaa !11
  %2110 = load float, ptr %27, align 4, !tbaa !11
  %2111 = fcmp oeq float %2110, 0.000000e+00
  br i1 %2111, label %2112, label %2181

2112:                                             ; preds = %2066
  %2113 = load float, ptr %25, align 4, !tbaa !11
  %2114 = fcmp oeq float %2113, 0.000000e+00
  br i1 %2114, label %2115, label %2177

2115:                                             ; preds = %2112
  %2116 = load i32, ptr %39, align 4, !tbaa !9
  %2117 = icmp ne i32 %2116, 0
  br i1 %2117, label %2118, label %2147

2118:                                             ; preds = %2115
  %2119 = load ptr, ptr %12, align 8, !tbaa !5
  %2120 = load ptr, ptr %10, align 8, !tbaa !5
  %2121 = load i32, ptr %2120, align 4, !tbaa !9
  %2122 = sext i32 %2121 to i64
  %2123 = getelementptr inbounds float, ptr %2119, i64 %2122
  %2124 = load float, ptr %2123, align 4, !tbaa !11
  %2125 = load ptr, ptr %12, align 8, !tbaa !5
  %2126 = load ptr, ptr %10, align 8, !tbaa !5
  %2127 = load i32, ptr %2126, align 4, !tbaa !9
  %2128 = sext i32 %2127 to i64
  %2129 = getelementptr inbounds float, ptr %2125, i64 %2128
  %2130 = load float, ptr %2129, align 4, !tbaa !11
  %2131 = load ptr, ptr %13, align 8, !tbaa !5
  %2132 = load i32, ptr %42, align 4, !tbaa !9
  %2133 = sext i32 %2132 to i64
  %2134 = getelementptr inbounds float, ptr %2131, i64 %2133
  %2135 = load float, ptr %2134, align 4, !tbaa !11
  %2136 = load ptr, ptr %13, align 8, !tbaa !5
  %2137 = load i32, ptr %42, align 4, !tbaa !9
  %2138 = sext i32 %2137 to i64
  %2139 = getelementptr inbounds float, ptr %2136, i64 %2138
  %2140 = load float, ptr %2139, align 4, !tbaa !11
  %2141 = fmul float %2135, %2140
  %2142 = load float, ptr %20, align 4, !tbaa !11
  %2143 = load float, ptr %19, align 4, !tbaa !11
  %2144 = fadd float %2142, %2143
  %2145 = fmul float %2141, %2144
  %2146 = call float @llvm.fmuladd.f32(float %2124, float %2130, float %2145)
  store float %2146, ptr %25, align 4, !tbaa !11
  br label %2176

2147:                                             ; preds = %2115
  %2148 = load ptr, ptr %12, align 8, !tbaa !5
  %2149 = load i32, ptr %42, align 4, !tbaa !9
  %2150 = sext i32 %2149 to i64
  %2151 = getelementptr inbounds float, ptr %2148, i64 %2150
  %2152 = load float, ptr %2151, align 4, !tbaa !11
  %2153 = load ptr, ptr %12, align 8, !tbaa !5
  %2154 = load i32, ptr %42, align 4, !tbaa !9
  %2155 = sext i32 %2154 to i64
  %2156 = getelementptr inbounds float, ptr %2153, i64 %2155
  %2157 = load float, ptr %2156, align 4, !tbaa !11
  %2158 = load ptr, ptr %13, align 8, !tbaa !5
  %2159 = load ptr, ptr %10, align 8, !tbaa !5
  %2160 = load i32, ptr %2159, align 4, !tbaa !9
  %2161 = sext i32 %2160 to i64
  %2162 = getelementptr inbounds float, ptr %2158, i64 %2161
  %2163 = load float, ptr %2162, align 4, !tbaa !11
  %2164 = load ptr, ptr %13, align 8, !tbaa !5
  %2165 = load ptr, ptr %10, align 8, !tbaa !5
  %2166 = load i32, ptr %2165, align 4, !tbaa !9
  %2167 = sext i32 %2166 to i64
  %2168 = getelementptr inbounds float, ptr %2164, i64 %2167
  %2169 = load float, ptr %2168, align 4, !tbaa !11
  %2170 = fmul float %2163, %2169
  %2171 = load float, ptr %20, align 4, !tbaa !11
  %2172 = load float, ptr %19, align 4, !tbaa !11
  %2173 = fadd float %2171, %2172
  %2174 = fmul float %2170, %2173
  %2175 = call float @llvm.fmuladd.f32(float %2152, float %2157, float %2174)
  store float %2175, ptr %25, align 4, !tbaa !11
  br label %2176

2176:                                             ; preds = %2147, %2118
  br label %2177

2177:                                             ; preds = %2176, %2112
  %2178 = load float, ptr %26, align 4, !tbaa !11
  %2179 = load float, ptr %25, align 4, !tbaa !11
  %2180 = fdiv float %2178, %2179
  store float %2180, ptr %44, align 4, !tbaa !11
  br label %2241

2181:                                             ; preds = %2066
  %2182 = load float, ptr %25, align 4, !tbaa !11
  %2183 = fcmp ole float %2182, 0.000000e+00
  br i1 %2183, label %2184, label %2212

2184:                                             ; preds = %2181
  %2185 = load float, ptr %25, align 4, !tbaa !11
  %2186 = fpext float %2185 to double
  %2187 = load float, ptr %25, align 4, !tbaa !11
  %2188 = load float, ptr %25, align 4, !tbaa !11
  %2189 = load float, ptr %26, align 4, !tbaa !11
  %2190 = fmul float %2189, 4.000000e+00
  %2191 = load float, ptr %27, align 4, !tbaa !11
  %2192 = fmul float %2190, %2191
  %2193 = fneg float %2192
  %2194 = call float @llvm.fmuladd.f32(float %2187, float %2188, float %2193)
  store float %2194, ptr %18, align 4, !tbaa !11
  %2195 = load float, ptr %18, align 4, !tbaa !11
  %2196 = fcmp oge float %2195, 0.000000e+00
  br i1 %2196, label %2197, label %2199

2197:                                             ; preds = %2184
  %2198 = load float, ptr %18, align 4, !tbaa !11
  br label %2202

2199:                                             ; preds = %2184
  %2200 = load float, ptr %18, align 4, !tbaa !11
  %2201 = fneg float %2200
  br label %2202

2202:                                             ; preds = %2199, %2197
  %2203 = phi float [ %2198, %2197 ], [ %2201, %2199 ]
  %2204 = fpext float %2203 to double
  %2205 = call double @sqrt(double noundef %2204) #5
  %2206 = fsub double %2186, %2205
  %2207 = load float, ptr %27, align 4, !tbaa !11
  %2208 = fmul float %2207, 2.000000e+00
  %2209 = fpext float %2208 to double
  %2210 = fdiv double %2206, %2209
  %2211 = fptrunc double %2210 to float
  store float %2211, ptr %44, align 4, !tbaa !11
  br label %2240

2212:                                             ; preds = %2181
  %2213 = load float, ptr %26, align 4, !tbaa !11
  %2214 = fmul float %2213, 2.000000e+00
  %2215 = fpext float %2214 to double
  %2216 = load float, ptr %25, align 4, !tbaa !11
  %2217 = fpext float %2216 to double
  %2218 = load float, ptr %25, align 4, !tbaa !11
  %2219 = load float, ptr %25, align 4, !tbaa !11
  %2220 = load float, ptr %26, align 4, !tbaa !11
  %2221 = fmul float %2220, 4.000000e+00
  %2222 = load float, ptr %27, align 4, !tbaa !11
  %2223 = fmul float %2221, %2222
  %2224 = fneg float %2223
  %2225 = call float @llvm.fmuladd.f32(float %2218, float %2219, float %2224)
  store float %2225, ptr %18, align 4, !tbaa !11
  %2226 = load float, ptr %18, align 4, !tbaa !11
  %2227 = fcmp oge float %2226, 0.000000e+00
  br i1 %2227, label %2228, label %2230

2228:                                             ; preds = %2212
  %2229 = load float, ptr %18, align 4, !tbaa !11
  br label %2233

2230:                                             ; preds = %2212
  %2231 = load float, ptr %18, align 4, !tbaa !11
  %2232 = fneg float %2231
  br label %2233

2233:                                             ; preds = %2230, %2228
  %2234 = phi float [ %2229, %2228 ], [ %2232, %2230 ]
  %2235 = fpext float %2234 to double
  %2236 = call double @sqrt(double noundef %2235) #5
  %2237 = fadd double %2217, %2236
  %2238 = fdiv double %2215, %2237
  %2239 = fptrunc double %2238 to float
  store float %2239, ptr %44, align 4, !tbaa !11
  br label %2240

2240:                                             ; preds = %2233, %2202
  br label %2241

2241:                                             ; preds = %2240, %2177
  br label %2414

2242:                                             ; preds = %1979
  %2243 = load float, ptr %41, align 4, !tbaa !11
  %2244 = load float, ptr %48, align 4, !tbaa !11
  %2245 = fadd float %2243, %2244
  %2246 = load float, ptr %45, align 4, !tbaa !11
  %2247 = fadd float %2245, %2246
  store float %2247, ptr %22, align 4, !tbaa !11
  %2248 = load i32, ptr %39, align 4, !tbaa !9
  %2249 = icmp ne i32 %2248, 0
  br i1 %2249, label %2250, label %2320

2250:                                             ; preds = %2242
  %2251 = load ptr, ptr %12, align 8, !tbaa !5
  %2252 = load i32, ptr %49, align 4, !tbaa !9
  %2253 = sext i32 %2252 to i64
  %2254 = getelementptr inbounds float, ptr %2251, i64 %2253
  %2255 = load float, ptr %2254, align 4, !tbaa !11
  %2256 = load ptr, ptr %13, align 8, !tbaa !5
  %2257 = load i32, ptr %49, align 4, !tbaa !9
  %2258 = sext i32 %2257 to i64
  %2259 = getelementptr inbounds float, ptr %2256, i64 %2258
  %2260 = load float, ptr %2259, align 4, !tbaa !11
  %2261 = fdiv float %2255, %2260
  store float %2261, ptr %24, align 4, !tbaa !11
  %2262 = load float, ptr %24, align 4, !tbaa !11
  %2263 = load float, ptr %24, align 4, !tbaa !11
  %2264 = fmul float %2263, %2262
  store float %2264, ptr %24, align 4, !tbaa !11
  %2265 = load float, ptr %22, align 4, !tbaa !11
  %2266 = load ptr, ptr %13, align 8, !tbaa !5
  %2267 = load i32, ptr %50, align 4, !tbaa !9
  %2268 = sext i32 %2267 to i64
  %2269 = getelementptr inbounds float, ptr %2266, i64 %2268
  %2270 = load float, ptr %2269, align 4, !tbaa !11
  %2271 = load float, ptr %20, align 4, !tbaa !11
  %2272 = load float, ptr %19, align 4, !tbaa !11
  %2273 = fadd float %2271, %2272
  %2274 = fneg float %2270
  %2275 = call float @llvm.fmuladd.f32(float %2274, float %2273, float %2265)
  %2276 = load ptr, ptr %11, align 8, !tbaa !5
  %2277 = load i32, ptr %49, align 4, !tbaa !9
  %2278 = sext i32 %2277 to i64
  %2279 = getelementptr inbounds float, ptr %2276, i64 %2278
  %2280 = load float, ptr %2279, align 4, !tbaa !11
  %2281 = load ptr, ptr %11, align 8, !tbaa !5
  %2282 = load i32, ptr %50, align 4, !tbaa !9
  %2283 = sext i32 %2282 to i64
  %2284 = getelementptr inbounds float, ptr %2281, i64 %2283
  %2285 = load float, ptr %2284, align 4, !tbaa !11
  %2286 = fsub float %2280, %2285
  %2287 = load float, ptr %24, align 4, !tbaa !11
  %2288 = fneg float %2286
  %2289 = call float @llvm.fmuladd.f32(float %2288, float %2287, float %2275)
  store float %2289, ptr %27, align 4, !tbaa !11
  %2290 = load ptr, ptr %12, align 8, !tbaa !5
  %2291 = load i32, ptr %49, align 4, !tbaa !9
  %2292 = sext i32 %2291 to i64
  %2293 = getelementptr inbounds float, ptr %2290, i64 %2292
  %2294 = load float, ptr %2293, align 4, !tbaa !11
  %2295 = load ptr, ptr %12, align 8, !tbaa !5
  %2296 = load i32, ptr %49, align 4, !tbaa !9
  %2297 = sext i32 %2296 to i64
  %2298 = getelementptr inbounds float, ptr %2295, i64 %2297
  %2299 = load float, ptr %2298, align 4, !tbaa !11
  %2300 = fmul float %2294, %2299
  %2301 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 0
  store float %2300, ptr %2301, align 4, !tbaa !11
  %2302 = load ptr, ptr %13, align 8, !tbaa !5
  %2303 = load i32, ptr %50, align 4, !tbaa !9
  %2304 = sext i32 %2303 to i64
  %2305 = getelementptr inbounds float, ptr %2302, i64 %2304
  %2306 = load float, ptr %2305, align 4, !tbaa !11
  %2307 = load ptr, ptr %13, align 8, !tbaa !5
  %2308 = load i32, ptr %50, align 4, !tbaa !9
  %2309 = sext i32 %2308 to i64
  %2310 = getelementptr inbounds float, ptr %2307, i64 %2309
  %2311 = load float, ptr %2310, align 4, !tbaa !11
  %2312 = fmul float %2306, %2311
  %2313 = load float, ptr %20, align 4, !tbaa !11
  %2314 = load float, ptr %24, align 4, !tbaa !11
  %2315 = fsub float %2313, %2314
  %2316 = load float, ptr %19, align 4, !tbaa !11
  %2317 = fadd float %2315, %2316
  %2318 = fmul float %2312, %2317
  %2319 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 2
  store float %2318, ptr %2319, align 4, !tbaa !11
  br label %2390

2320:                                             ; preds = %2242
  %2321 = load ptr, ptr %12, align 8, !tbaa !5
  %2322 = load i32, ptr %50, align 4, !tbaa !9
  %2323 = sext i32 %2322 to i64
  %2324 = getelementptr inbounds float, ptr %2321, i64 %2323
  %2325 = load float, ptr %2324, align 4, !tbaa !11
  %2326 = load ptr, ptr %13, align 8, !tbaa !5
  %2327 = load i32, ptr %50, align 4, !tbaa !9
  %2328 = sext i32 %2327 to i64
  %2329 = getelementptr inbounds float, ptr %2326, i64 %2328
  %2330 = load float, ptr %2329, align 4, !tbaa !11
  %2331 = fdiv float %2325, %2330
  store float %2331, ptr %24, align 4, !tbaa !11
  %2332 = load float, ptr %24, align 4, !tbaa !11
  %2333 = load float, ptr %24, align 4, !tbaa !11
  %2334 = fmul float %2333, %2332
  store float %2334, ptr %24, align 4, !tbaa !11
  %2335 = load float, ptr %22, align 4, !tbaa !11
  %2336 = load ptr, ptr %13, align 8, !tbaa !5
  %2337 = load i32, ptr %49, align 4, !tbaa !9
  %2338 = sext i32 %2337 to i64
  %2339 = getelementptr inbounds float, ptr %2336, i64 %2338
  %2340 = load float, ptr %2339, align 4, !tbaa !11
  %2341 = load float, ptr %20, align 4, !tbaa !11
  %2342 = load float, ptr %19, align 4, !tbaa !11
  %2343 = fadd float %2341, %2342
  %2344 = fneg float %2340
  %2345 = call float @llvm.fmuladd.f32(float %2344, float %2343, float %2335)
  %2346 = load ptr, ptr %11, align 8, !tbaa !5
  %2347 = load i32, ptr %50, align 4, !tbaa !9
  %2348 = sext i32 %2347 to i64
  %2349 = getelementptr inbounds float, ptr %2346, i64 %2348
  %2350 = load float, ptr %2349, align 4, !tbaa !11
  %2351 = load ptr, ptr %11, align 8, !tbaa !5
  %2352 = load i32, ptr %49, align 4, !tbaa !9
  %2353 = sext i32 %2352 to i64
  %2354 = getelementptr inbounds float, ptr %2351, i64 %2353
  %2355 = load float, ptr %2354, align 4, !tbaa !11
  %2356 = fsub float %2350, %2355
  %2357 = load float, ptr %24, align 4, !tbaa !11
  %2358 = fneg float %2356
  %2359 = call float @llvm.fmuladd.f32(float %2358, float %2357, float %2345)
  store float %2359, ptr %27, align 4, !tbaa !11
  %2360 = load ptr, ptr %13, align 8, !tbaa !5
  %2361 = load i32, ptr %49, align 4, !tbaa !9
  %2362 = sext i32 %2361 to i64
  %2363 = getelementptr inbounds float, ptr %2360, i64 %2362
  %2364 = load float, ptr %2363, align 4, !tbaa !11
  %2365 = load ptr, ptr %13, align 8, !tbaa !5
  %2366 = load i32, ptr %49, align 4, !tbaa !9
  %2367 = sext i32 %2366 to i64
  %2368 = getelementptr inbounds float, ptr %2365, i64 %2367
  %2369 = load float, ptr %2368, align 4, !tbaa !11
  %2370 = fmul float %2364, %2369
  %2371 = load float, ptr %20, align 4, !tbaa !11
  %2372 = load float, ptr %19, align 4, !tbaa !11
  %2373 = load float, ptr %24, align 4, !tbaa !11
  %2374 = fsub float %2372, %2373
  %2375 = fadd float %2371, %2374
  %2376 = fmul float %2370, %2375
  %2377 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 0
  store float %2376, ptr %2377, align 4, !tbaa !11
  %2378 = load ptr, ptr %12, align 8, !tbaa !5
  %2379 = load i32, ptr %50, align 4, !tbaa !9
  %2380 = sext i32 %2379 to i64
  %2381 = getelementptr inbounds float, ptr %2378, i64 %2380
  %2382 = load float, ptr %2381, align 4, !tbaa !11
  %2383 = load ptr, ptr %12, align 8, !tbaa !5
  %2384 = load i32, ptr %50, align 4, !tbaa !9
  %2385 = sext i32 %2384 to i64
  %2386 = getelementptr inbounds float, ptr %2383, i64 %2385
  %2387 = load float, ptr %2386, align 4, !tbaa !11
  %2388 = fmul float %2382, %2387
  %2389 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 2
  store float %2388, ptr %2389, align 4, !tbaa !11
  br label %2390

2390:                                             ; preds = %2320, %2250
  %2391 = load ptr, ptr %12, align 8, !tbaa !5
  %2392 = load i32, ptr %36, align 4, !tbaa !9
  %2393 = sext i32 %2392 to i64
  %2394 = getelementptr inbounds float, ptr %2391, i64 %2393
  %2395 = load float, ptr %2394, align 4, !tbaa !11
  %2396 = load ptr, ptr %12, align 8, !tbaa !5
  %2397 = load i32, ptr %36, align 4, !tbaa !9
  %2398 = sext i32 %2397 to i64
  %2399 = getelementptr inbounds float, ptr %2396, i64 %2398
  %2400 = load float, ptr %2399, align 4, !tbaa !11
  %2401 = fmul float %2395, %2400
  %2402 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 1
  store float %2401, ptr %2402, align 4, !tbaa !11
  %2403 = load ptr, ptr %13, align 8, !tbaa !5
  %2404 = load i32, ptr %49, align 4, !tbaa !9
  %2405 = sext i32 %2404 to i64
  %2406 = getelementptr inbounds float, ptr %2403, i64 %2405
  %2407 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 0
  %2408 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slaed6_(ptr noundef %33, ptr noundef %39, ptr noundef %27, ptr noundef %2406, ptr noundef %2407, ptr noundef %29, ptr noundef %44, ptr noundef %2408)
  %2409 = load ptr, ptr %16, align 8, !tbaa !5
  %2410 = load i32, ptr %2409, align 4, !tbaa !9
  %2411 = icmp ne i32 %2410, 0
  br i1 %2411, label %2412, label %2413

2412:                                             ; preds = %2390
  br label %3527

2413:                                             ; preds = %2390
  br label %2414

2414:                                             ; preds = %2413, %2241
  %2415 = load float, ptr %29, align 4, !tbaa !11
  %2416 = load float, ptr %44, align 4, !tbaa !11
  %2417 = fmul float %2415, %2416
  %2418 = fcmp oge float %2417, 0.000000e+00
  br i1 %2418, label %2419, label %2424

2419:                                             ; preds = %2414
  %2420 = load float, ptr %29, align 4, !tbaa !11
  %2421 = fneg float %2420
  %2422 = load float, ptr %37, align 4, !tbaa !11
  %2423 = fdiv float %2421, %2422
  store float %2423, ptr %44, align 4, !tbaa !11
  br label %2424

2424:                                             ; preds = %2419, %2414
  %2425 = load float, ptr %47, align 4, !tbaa !11
  %2426 = load float, ptr %44, align 4, !tbaa !11
  %2427 = fadd float %2425, %2426
  store float %2427, ptr %22, align 4, !tbaa !11
  %2428 = load float, ptr %22, align 4, !tbaa !11
  %2429 = load float, ptr %31, align 4, !tbaa !11
  %2430 = fcmp ogt float %2428, %2429
  br i1 %2430, label %2435, label %2431

2431:                                             ; preds = %2424
  %2432 = load float, ptr %22, align 4, !tbaa !11
  %2433 = load float, ptr %30, align 4, !tbaa !11
  %2434 = fcmp olt float %2432, %2433
  br i1 %2434, label %2435, label %2449

2435:                                             ; preds = %2431, %2424
  %2436 = load float, ptr %29, align 4, !tbaa !11
  %2437 = fcmp olt float %2436, 0.000000e+00
  br i1 %2437, label %2438, label %2443

2438:                                             ; preds = %2435
  %2439 = load float, ptr %31, align 4, !tbaa !11
  %2440 = load float, ptr %47, align 4, !tbaa !11
  %2441 = fsub float %2439, %2440
  %2442 = fdiv float %2441, 2.000000e+00
  store float %2442, ptr %44, align 4, !tbaa !11
  br label %2448

2443:                                             ; preds = %2435
  %2444 = load float, ptr %30, align 4, !tbaa !11
  %2445 = load float, ptr %47, align 4, !tbaa !11
  %2446 = fsub float %2444, %2445
  %2447 = fdiv float %2446, 2.000000e+00
  store float %2447, ptr %44, align 4, !tbaa !11
  br label %2448

2448:                                             ; preds = %2443, %2438
  br label %2449

2449:                                             ; preds = %2448, %2431
  %2450 = load float, ptr %29, align 4, !tbaa !11
  store float %2450, ptr %23, align 4, !tbaa !11
  %2451 = load ptr, ptr %9, align 8, !tbaa !5
  %2452 = load i32, ptr %2451, align 4, !tbaa !9
  store i32 %2452, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %2453

2453:                                             ; preds = %2465, %2449
  %2454 = load i32, ptr %28, align 4, !tbaa !9
  %2455 = load i32, ptr %17, align 4, !tbaa !9
  %2456 = icmp sle i32 %2454, %2455
  br i1 %2456, label %2457, label %2468

2457:                                             ; preds = %2453
  %2458 = load float, ptr %44, align 4, !tbaa !11
  %2459 = load ptr, ptr %13, align 8, !tbaa !5
  %2460 = load i32, ptr %28, align 4, !tbaa !9
  %2461 = sext i32 %2460 to i64
  %2462 = getelementptr inbounds float, ptr %2459, i64 %2461
  %2463 = load float, ptr %2462, align 4, !tbaa !11
  %2464 = fsub float %2463, %2458
  store float %2464, ptr %2462, align 4, !tbaa !11
  br label %2465

2465:                                             ; preds = %2457
  %2466 = load i32, ptr %28, align 4, !tbaa !9
  %2467 = add nsw i32 %2466, 1
  store i32 %2467, ptr %28, align 4, !tbaa !9
  br label %2453, !llvm.loop !30

2468:                                             ; preds = %2453
  store float 0.000000e+00, ptr %20, align 4, !tbaa !11
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  %2469 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %2469, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %2470

2470:                                             ; preds = %2501, %2468
  %2471 = load i32, ptr %28, align 4, !tbaa !9
  %2472 = load i32, ptr %17, align 4, !tbaa !9
  %2473 = icmp sle i32 %2471, %2472
  br i1 %2473, label %2474, label %2504

2474:                                             ; preds = %2470
  %2475 = load ptr, ptr %12, align 8, !tbaa !5
  %2476 = load i32, ptr %28, align 4, !tbaa !9
  %2477 = sext i32 %2476 to i64
  %2478 = getelementptr inbounds float, ptr %2475, i64 %2477
  %2479 = load float, ptr %2478, align 4, !tbaa !11
  %2480 = load ptr, ptr %13, align 8, !tbaa !5
  %2481 = load i32, ptr %28, align 4, !tbaa !9
  %2482 = sext i32 %2481 to i64
  %2483 = getelementptr inbounds float, ptr %2480, i64 %2482
  %2484 = load float, ptr %2483, align 4, !tbaa !11
  %2485 = fdiv float %2479, %2484
  store float %2485, ptr %22, align 4, !tbaa !11
  %2486 = load ptr, ptr %12, align 8, !tbaa !5
  %2487 = load i32, ptr %28, align 4, !tbaa !9
  %2488 = sext i32 %2487 to i64
  %2489 = getelementptr inbounds float, ptr %2486, i64 %2488
  %2490 = load float, ptr %2489, align 4, !tbaa !11
  %2491 = load float, ptr %22, align 4, !tbaa !11
  %2492 = load float, ptr %48, align 4, !tbaa !11
  %2493 = call float @llvm.fmuladd.f32(float %2490, float %2491, float %2492)
  store float %2493, ptr %48, align 4, !tbaa !11
  %2494 = load float, ptr %22, align 4, !tbaa !11
  %2495 = load float, ptr %22, align 4, !tbaa !11
  %2496 = load float, ptr %20, align 4, !tbaa !11
  %2497 = call float @llvm.fmuladd.f32(float %2494, float %2495, float %2496)
  store float %2497, ptr %20, align 4, !tbaa !11
  %2498 = load float, ptr %48, align 4, !tbaa !11
  %2499 = load float, ptr %40, align 4, !tbaa !11
  %2500 = fadd float %2499, %2498
  store float %2500, ptr %40, align 4, !tbaa !11
  br label %2501

2501:                                             ; preds = %2474
  %2502 = load i32, ptr %28, align 4, !tbaa !9
  %2503 = add nsw i32 %2502, 1
  store i32 %2503, ptr %28, align 4, !tbaa !9
  br label %2470, !llvm.loop !31

2504:                                             ; preds = %2470
  %2505 = load float, ptr %40, align 4, !tbaa !11
  %2506 = fcmp oge float %2505, 0.000000e+00
  br i1 %2506, label %2507, label %2509

2507:                                             ; preds = %2504
  %2508 = load float, ptr %40, align 4, !tbaa !11
  br label %2512

2509:                                             ; preds = %2504
  %2510 = load float, ptr %40, align 4, !tbaa !11
  %2511 = fneg float %2510
  br label %2512

2512:                                             ; preds = %2509, %2507
  %2513 = phi float [ %2508, %2507 ], [ %2511, %2509 ]
  store float %2513, ptr %40, align 4, !tbaa !11
  store float 0.000000e+00, ptr %19, align 4, !tbaa !11
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %2514 = load i32, ptr %50, align 4, !tbaa !9
  store i32 %2514, ptr %17, align 4, !tbaa !9
  %2515 = load ptr, ptr %9, align 8, !tbaa !5
  %2516 = load i32, ptr %2515, align 4, !tbaa !9
  store i32 %2516, ptr %28, align 4, !tbaa !9
  br label %2517

2517:                                             ; preds = %2548, %2512
  %2518 = load i32, ptr %28, align 4, !tbaa !9
  %2519 = load i32, ptr %17, align 4, !tbaa !9
  %2520 = icmp sge i32 %2518, %2519
  br i1 %2520, label %2521, label %2551

2521:                                             ; preds = %2517
  %2522 = load ptr, ptr %12, align 8, !tbaa !5
  %2523 = load i32, ptr %28, align 4, !tbaa !9
  %2524 = sext i32 %2523 to i64
  %2525 = getelementptr inbounds float, ptr %2522, i64 %2524
  %2526 = load float, ptr %2525, align 4, !tbaa !11
  %2527 = load ptr, ptr %13, align 8, !tbaa !5
  %2528 = load i32, ptr %28, align 4, !tbaa !9
  %2529 = sext i32 %2528 to i64
  %2530 = getelementptr inbounds float, ptr %2527, i64 %2529
  %2531 = load float, ptr %2530, align 4, !tbaa !11
  %2532 = fdiv float %2526, %2531
  store float %2532, ptr %22, align 4, !tbaa !11
  %2533 = load ptr, ptr %12, align 8, !tbaa !5
  %2534 = load i32, ptr %28, align 4, !tbaa !9
  %2535 = sext i32 %2534 to i64
  %2536 = getelementptr inbounds float, ptr %2533, i64 %2535
  %2537 = load float, ptr %2536, align 4, !tbaa !11
  %2538 = load float, ptr %22, align 4, !tbaa !11
  %2539 = load float, ptr %45, align 4, !tbaa !11
  %2540 = call float @llvm.fmuladd.f32(float %2537, float %2538, float %2539)
  store float %2540, ptr %45, align 4, !tbaa !11
  %2541 = load float, ptr %22, align 4, !tbaa !11
  %2542 = load float, ptr %22, align 4, !tbaa !11
  %2543 = load float, ptr %19, align 4, !tbaa !11
  %2544 = call float @llvm.fmuladd.f32(float %2541, float %2542, float %2543)
  store float %2544, ptr %19, align 4, !tbaa !11
  %2545 = load float, ptr %45, align 4, !tbaa !11
  %2546 = load float, ptr %40, align 4, !tbaa !11
  %2547 = fadd float %2546, %2545
  store float %2547, ptr %40, align 4, !tbaa !11
  br label %2548

2548:                                             ; preds = %2521
  %2549 = load i32, ptr %28, align 4, !tbaa !9
  %2550 = add nsw i32 %2549, -1
  store i32 %2550, ptr %28, align 4, !tbaa !9
  br label %2517, !llvm.loop !32

2551:                                             ; preds = %2517
  %2552 = load ptr, ptr %12, align 8, !tbaa !5
  %2553 = load i32, ptr %36, align 4, !tbaa !9
  %2554 = sext i32 %2553 to i64
  %2555 = getelementptr inbounds float, ptr %2552, i64 %2554
  %2556 = load float, ptr %2555, align 4, !tbaa !11
  %2557 = load ptr, ptr %13, align 8, !tbaa !5
  %2558 = load i32, ptr %36, align 4, !tbaa !9
  %2559 = sext i32 %2558 to i64
  %2560 = getelementptr inbounds float, ptr %2557, i64 %2559
  %2561 = load float, ptr %2560, align 4, !tbaa !11
  %2562 = fdiv float %2556, %2561
  store float %2562, ptr %22, align 4, !tbaa !11
  %2563 = load float, ptr %20, align 4, !tbaa !11
  %2564 = load float, ptr %19, align 4, !tbaa !11
  %2565 = fadd float %2563, %2564
  %2566 = load float, ptr %22, align 4, !tbaa !11
  %2567 = load float, ptr %22, align 4, !tbaa !11
  %2568 = call float @llvm.fmuladd.f32(float %2566, float %2567, float %2565)
  store float %2568, ptr %37, align 4, !tbaa !11
  %2569 = load ptr, ptr %12, align 8, !tbaa !5
  %2570 = load i32, ptr %36, align 4, !tbaa !9
  %2571 = sext i32 %2570 to i64
  %2572 = getelementptr inbounds float, ptr %2569, i64 %2571
  %2573 = load float, ptr %2572, align 4, !tbaa !11
  %2574 = load float, ptr %22, align 4, !tbaa !11
  %2575 = fmul float %2573, %2574
  store float %2575, ptr %22, align 4, !tbaa !11
  %2576 = load float, ptr %41, align 4, !tbaa !11
  %2577 = load float, ptr %45, align 4, !tbaa !11
  %2578 = fadd float %2576, %2577
  %2579 = load float, ptr %48, align 4, !tbaa !11
  %2580 = fadd float %2578, %2579
  %2581 = load float, ptr %22, align 4, !tbaa !11
  %2582 = fadd float %2580, %2581
  store float %2582, ptr %29, align 4, !tbaa !11
  %2583 = load float, ptr %45, align 4, !tbaa !11
  %2584 = load float, ptr %48, align 4, !tbaa !11
  %2585 = fsub float %2583, %2584
  %2586 = load float, ptr %40, align 4, !tbaa !11
  %2587 = call float @llvm.fmuladd.f32(float %2585, float 8.000000e+00, float %2586)
  %2588 = load float, ptr %41, align 4, !tbaa !11
  %2589 = call float @llvm.fmuladd.f32(float %2588, float 2.000000e+00, float %2587)
  %2590 = load float, ptr %22, align 4, !tbaa !11
  %2591 = fcmp oge float %2590, 0.000000e+00
  br i1 %2591, label %2592, label %2594

2592:                                             ; preds = %2551
  %2593 = load float, ptr %22, align 4, !tbaa !11
  br label %2597

2594:                                             ; preds = %2551
  %2595 = load float, ptr %22, align 4, !tbaa !11
  %2596 = fneg float %2595
  br label %2597

2597:                                             ; preds = %2594, %2592
  %2598 = phi float [ %2593, %2592 ], [ %2596, %2594 ]
  %2599 = call float @llvm.fmuladd.f32(float %2598, float 3.000000e+00, float %2589)
  %2600 = load float, ptr %47, align 4, !tbaa !11
  %2601 = load float, ptr %44, align 4, !tbaa !11
  %2602 = fadd float %2600, %2601
  store float %2602, ptr %18, align 4, !tbaa !11
  %2603 = load float, ptr %18, align 4, !tbaa !11
  %2604 = fcmp oge float %2603, 0.000000e+00
  br i1 %2604, label %2605, label %2607

2605:                                             ; preds = %2597
  %2606 = load float, ptr %18, align 4, !tbaa !11
  br label %2610

2607:                                             ; preds = %2597
  %2608 = load float, ptr %18, align 4, !tbaa !11
  %2609 = fneg float %2608
  br label %2610

2610:                                             ; preds = %2607, %2605
  %2611 = phi float [ %2606, %2605 ], [ %2609, %2607 ]
  %2612 = load float, ptr %37, align 4, !tbaa !11
  %2613 = call float @llvm.fmuladd.f32(float %2611, float %2612, float %2599)
  store float %2613, ptr %40, align 4, !tbaa !11
  store i32 0, ptr %34, align 4, !tbaa !9
  %2614 = load i32, ptr %39, align 4, !tbaa !9
  %2615 = icmp ne i32 %2614, 0
  br i1 %2615, label %2616, label %2632

2616:                                             ; preds = %2610
  %2617 = load float, ptr %29, align 4, !tbaa !11
  %2618 = fneg float %2617
  %2619 = load float, ptr %23, align 4, !tbaa !11
  %2620 = fcmp oge float %2619, 0.000000e+00
  br i1 %2620, label %2621, label %2623

2621:                                             ; preds = %2616
  %2622 = load float, ptr %23, align 4, !tbaa !11
  br label %2626

2623:                                             ; preds = %2616
  %2624 = load float, ptr %23, align 4, !tbaa !11
  %2625 = fneg float %2624
  br label %2626

2626:                                             ; preds = %2623, %2621
  %2627 = phi float [ %2622, %2621 ], [ %2625, %2623 ]
  %2628 = fdiv float %2627, 1.000000e+01
  %2629 = fcmp ogt float %2618, %2628
  br i1 %2629, label %2630, label %2631

2630:                                             ; preds = %2626
  store i32 1, ptr %34, align 4, !tbaa !9
  br label %2631

2631:                                             ; preds = %2630, %2626
  br label %2647

2632:                                             ; preds = %2610
  %2633 = load float, ptr %29, align 4, !tbaa !11
  %2634 = load float, ptr %23, align 4, !tbaa !11
  %2635 = fcmp oge float %2634, 0.000000e+00
  br i1 %2635, label %2636, label %2638

2636:                                             ; preds = %2632
  %2637 = load float, ptr %23, align 4, !tbaa !11
  br label %2641

2638:                                             ; preds = %2632
  %2639 = load float, ptr %23, align 4, !tbaa !11
  %2640 = fneg float %2639
  br label %2641

2641:                                             ; preds = %2638, %2636
  %2642 = phi float [ %2637, %2636 ], [ %2640, %2638 ]
  %2643 = fdiv float %2642, 1.000000e+01
  %2644 = fcmp ogt float %2633, %2643
  br i1 %2644, label %2645, label %2646

2645:                                             ; preds = %2641
  store i32 1, ptr %34, align 4, !tbaa !9
  br label %2646

2646:                                             ; preds = %2645, %2641
  br label %2647

2647:                                             ; preds = %2646, %2631
  %2648 = load float, ptr %44, align 4, !tbaa !11
  %2649 = load float, ptr %47, align 4, !tbaa !11
  %2650 = fadd float %2649, %2648
  store float %2650, ptr %47, align 4, !tbaa !11
  %2651 = load i32, ptr %33, align 4, !tbaa !9
  %2652 = add nsw i32 %2651, 1
  store i32 %2652, ptr %21, align 4, !tbaa !9
  %2653 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2653, ptr %33, align 4, !tbaa !9
  br label %2654

2654:                                             ; preds = %3499, %2647
  %2655 = load i32, ptr %33, align 4, !tbaa !9
  %2656 = icmp sle i32 %2655, 30
  br i1 %2656, label %2657, label %3502

2657:                                             ; preds = %2654
  %2658 = load float, ptr %29, align 4, !tbaa !11
  %2659 = fcmp oge float %2658, 0.000000e+00
  br i1 %2659, label %2660, label %2662

2660:                                             ; preds = %2657
  %2661 = load float, ptr %29, align 4, !tbaa !11
  br label %2665

2662:                                             ; preds = %2657
  %2663 = load float, ptr %29, align 4, !tbaa !11
  %2664 = fneg float %2663
  br label %2665

2665:                                             ; preds = %2662, %2660
  %2666 = phi float [ %2661, %2660 ], [ %2664, %2662 ]
  %2667 = load float, ptr %46, align 4, !tbaa !11
  %2668 = load float, ptr %40, align 4, !tbaa !11
  %2669 = fmul float %2667, %2668
  %2670 = fcmp ole float %2666, %2669
  br i1 %2670, label %2671, label %2694

2671:                                             ; preds = %2665
  %2672 = load i32, ptr %39, align 4, !tbaa !9
  %2673 = icmp ne i32 %2672, 0
  br i1 %2673, label %2674, label %2684

2674:                                             ; preds = %2671
  %2675 = load ptr, ptr %11, align 8, !tbaa !5
  %2676 = load ptr, ptr %10, align 8, !tbaa !5
  %2677 = load i32, ptr %2676, align 4, !tbaa !9
  %2678 = sext i32 %2677 to i64
  %2679 = getelementptr inbounds float, ptr %2675, i64 %2678
  %2680 = load float, ptr %2679, align 4, !tbaa !11
  %2681 = load float, ptr %47, align 4, !tbaa !11
  %2682 = fadd float %2680, %2681
  %2683 = load ptr, ptr %15, align 8, !tbaa !5
  store float %2682, ptr %2683, align 4, !tbaa !11
  br label %2693

2684:                                             ; preds = %2671
  %2685 = load ptr, ptr %11, align 8, !tbaa !5
  %2686 = load i32, ptr %42, align 4, !tbaa !9
  %2687 = sext i32 %2686 to i64
  %2688 = getelementptr inbounds float, ptr %2685, i64 %2687
  %2689 = load float, ptr %2688, align 4, !tbaa !11
  %2690 = load float, ptr %47, align 4, !tbaa !11
  %2691 = fadd float %2689, %2690
  %2692 = load ptr, ptr %15, align 8, !tbaa !5
  store float %2691, ptr %2692, align 4, !tbaa !11
  br label %2693

2693:                                             ; preds = %2684, %2674
  br label %3527

2694:                                             ; preds = %2665
  %2695 = load float, ptr %29, align 4, !tbaa !11
  %2696 = fcmp ole float %2695, 0.000000e+00
  br i1 %2696, label %2697, label %2707

2697:                                             ; preds = %2694
  %2698 = load float, ptr %30, align 4, !tbaa !11
  %2699 = load float, ptr %47, align 4, !tbaa !11
  %2700 = fcmp oge float %2698, %2699
  br i1 %2700, label %2701, label %2703

2701:                                             ; preds = %2697
  %2702 = load float, ptr %30, align 4, !tbaa !11
  br label %2705

2703:                                             ; preds = %2697
  %2704 = load float, ptr %47, align 4, !tbaa !11
  br label %2705

2705:                                             ; preds = %2703, %2701
  %2706 = phi float [ %2702, %2701 ], [ %2704, %2703 ]
  store float %2706, ptr %30, align 4, !tbaa !11
  br label %2717

2707:                                             ; preds = %2694
  %2708 = load float, ptr %31, align 4, !tbaa !11
  %2709 = load float, ptr %47, align 4, !tbaa !11
  %2710 = fcmp ole float %2708, %2709
  br i1 %2710, label %2711, label %2713

2711:                                             ; preds = %2707
  %2712 = load float, ptr %31, align 4, !tbaa !11
  br label %2715

2713:                                             ; preds = %2707
  %2714 = load float, ptr %47, align 4, !tbaa !11
  br label %2715

2715:                                             ; preds = %2713, %2711
  %2716 = phi float [ %2712, %2711 ], [ %2714, %2713 ]
  store float %2716, ptr %31, align 4, !tbaa !11
  br label %2717

2717:                                             ; preds = %2715, %2705
  %2718 = load i32, ptr %35, align 4, !tbaa !9
  %2719 = icmp ne i32 %2718, 0
  br i1 %2719, label %3058, label %2720

2720:                                             ; preds = %2717
  %2721 = load i32, ptr %34, align 4, !tbaa !9
  %2722 = icmp ne i32 %2721, 0
  br i1 %2722, label %2806, label %2723

2723:                                             ; preds = %2720
  %2724 = load i32, ptr %39, align 4, !tbaa !9
  %2725 = icmp ne i32 %2724, 0
  br i1 %2725, label %2726, label %2766

2726:                                             ; preds = %2723
  %2727 = load ptr, ptr %12, align 8, !tbaa !5
  %2728 = load ptr, ptr %10, align 8, !tbaa !5
  %2729 = load i32, ptr %2728, align 4, !tbaa !9
  %2730 = sext i32 %2729 to i64
  %2731 = getelementptr inbounds float, ptr %2727, i64 %2730
  %2732 = load float, ptr %2731, align 4, !tbaa !11
  %2733 = load ptr, ptr %13, align 8, !tbaa !5
  %2734 = load ptr, ptr %10, align 8, !tbaa !5
  %2735 = load i32, ptr %2734, align 4, !tbaa !9
  %2736 = sext i32 %2735 to i64
  %2737 = getelementptr inbounds float, ptr %2733, i64 %2736
  %2738 = load float, ptr %2737, align 4, !tbaa !11
  %2739 = fdiv float %2732, %2738
  store float %2739, ptr %18, align 4, !tbaa !11
  %2740 = load float, ptr %29, align 4, !tbaa !11
  %2741 = load ptr, ptr %13, align 8, !tbaa !5
  %2742 = load i32, ptr %42, align 4, !tbaa !9
  %2743 = sext i32 %2742 to i64
  %2744 = getelementptr inbounds float, ptr %2741, i64 %2743
  %2745 = load float, ptr %2744, align 4, !tbaa !11
  %2746 = load float, ptr %37, align 4, !tbaa !11
  %2747 = fneg float %2745
  %2748 = call float @llvm.fmuladd.f32(float %2747, float %2746, float %2740)
  %2749 = load ptr, ptr %11, align 8, !tbaa !5
  %2750 = load ptr, ptr %10, align 8, !tbaa !5
  %2751 = load i32, ptr %2750, align 4, !tbaa !9
  %2752 = sext i32 %2751 to i64
  %2753 = getelementptr inbounds float, ptr %2749, i64 %2752
  %2754 = load float, ptr %2753, align 4, !tbaa !11
  %2755 = load ptr, ptr %11, align 8, !tbaa !5
  %2756 = load i32, ptr %42, align 4, !tbaa !9
  %2757 = sext i32 %2756 to i64
  %2758 = getelementptr inbounds float, ptr %2755, i64 %2757
  %2759 = load float, ptr %2758, align 4, !tbaa !11
  %2760 = fsub float %2754, %2759
  %2761 = load float, ptr %18, align 4, !tbaa !11
  %2762 = load float, ptr %18, align 4, !tbaa !11
  %2763 = fmul float %2761, %2762
  %2764 = fneg float %2760
  %2765 = call float @llvm.fmuladd.f32(float %2764, float %2763, float %2748)
  store float %2765, ptr %27, align 4, !tbaa !11
  br label %2805

2766:                                             ; preds = %2723
  %2767 = load ptr, ptr %12, align 8, !tbaa !5
  %2768 = load i32, ptr %42, align 4, !tbaa !9
  %2769 = sext i32 %2768 to i64
  %2770 = getelementptr inbounds float, ptr %2767, i64 %2769
  %2771 = load float, ptr %2770, align 4, !tbaa !11
  %2772 = load ptr, ptr %13, align 8, !tbaa !5
  %2773 = load i32, ptr %42, align 4, !tbaa !9
  %2774 = sext i32 %2773 to i64
  %2775 = getelementptr inbounds float, ptr %2772, i64 %2774
  %2776 = load float, ptr %2775, align 4, !tbaa !11
  %2777 = fdiv float %2771, %2776
  store float %2777, ptr %18, align 4, !tbaa !11
  %2778 = load float, ptr %29, align 4, !tbaa !11
  %2779 = load ptr, ptr %13, align 8, !tbaa !5
  %2780 = load ptr, ptr %10, align 8, !tbaa !5
  %2781 = load i32, ptr %2780, align 4, !tbaa !9
  %2782 = sext i32 %2781 to i64
  %2783 = getelementptr inbounds float, ptr %2779, i64 %2782
  %2784 = load float, ptr %2783, align 4, !tbaa !11
  %2785 = load float, ptr %37, align 4, !tbaa !11
  %2786 = fneg float %2784
  %2787 = call float @llvm.fmuladd.f32(float %2786, float %2785, float %2778)
  %2788 = load ptr, ptr %11, align 8, !tbaa !5
  %2789 = load i32, ptr %42, align 4, !tbaa !9
  %2790 = sext i32 %2789 to i64
  %2791 = getelementptr inbounds float, ptr %2788, i64 %2790
  %2792 = load float, ptr %2791, align 4, !tbaa !11
  %2793 = load ptr, ptr %11, align 8, !tbaa !5
  %2794 = load ptr, ptr %10, align 8, !tbaa !5
  %2795 = load i32, ptr %2794, align 4, !tbaa !9
  %2796 = sext i32 %2795 to i64
  %2797 = getelementptr inbounds float, ptr %2793, i64 %2796
  %2798 = load float, ptr %2797, align 4, !tbaa !11
  %2799 = fsub float %2792, %2798
  %2800 = load float, ptr %18, align 4, !tbaa !11
  %2801 = load float, ptr %18, align 4, !tbaa !11
  %2802 = fmul float %2800, %2801
  %2803 = fneg float %2799
  %2804 = call float @llvm.fmuladd.f32(float %2803, float %2802, float %2787)
  store float %2804, ptr %27, align 4, !tbaa !11
  br label %2805

2805:                                             ; preds = %2766, %2726
  br label %2849

2806:                                             ; preds = %2720
  %2807 = load ptr, ptr %12, align 8, !tbaa !5
  %2808 = load i32, ptr %36, align 4, !tbaa !9
  %2809 = sext i32 %2808 to i64
  %2810 = getelementptr inbounds float, ptr %2807, i64 %2809
  %2811 = load float, ptr %2810, align 4, !tbaa !11
  %2812 = load ptr, ptr %13, align 8, !tbaa !5
  %2813 = load i32, ptr %36, align 4, !tbaa !9
  %2814 = sext i32 %2813 to i64
  %2815 = getelementptr inbounds float, ptr %2812, i64 %2814
  %2816 = load float, ptr %2815, align 4, !tbaa !11
  %2817 = fdiv float %2811, %2816
  store float %2817, ptr %22, align 4, !tbaa !11
  %2818 = load i32, ptr %39, align 4, !tbaa !9
  %2819 = icmp ne i32 %2818, 0
  br i1 %2819, label %2820, label %2825

2820:                                             ; preds = %2806
  %2821 = load float, ptr %22, align 4, !tbaa !11
  %2822 = load float, ptr %22, align 4, !tbaa !11
  %2823 = load float, ptr %20, align 4, !tbaa !11
  %2824 = call float @llvm.fmuladd.f32(float %2821, float %2822, float %2823)
  store float %2824, ptr %20, align 4, !tbaa !11
  br label %2830

2825:                                             ; preds = %2806
  %2826 = load float, ptr %22, align 4, !tbaa !11
  %2827 = load float, ptr %22, align 4, !tbaa !11
  %2828 = load float, ptr %19, align 4, !tbaa !11
  %2829 = call float @llvm.fmuladd.f32(float %2826, float %2827, float %2828)
  store float %2829, ptr %19, align 4, !tbaa !11
  br label %2830

2830:                                             ; preds = %2825, %2820
  %2831 = load float, ptr %29, align 4, !tbaa !11
  %2832 = load ptr, ptr %13, align 8, !tbaa !5
  %2833 = load ptr, ptr %10, align 8, !tbaa !5
  %2834 = load i32, ptr %2833, align 4, !tbaa !9
  %2835 = sext i32 %2834 to i64
  %2836 = getelementptr inbounds float, ptr %2832, i64 %2835
  %2837 = load float, ptr %2836, align 4, !tbaa !11
  %2838 = load float, ptr %20, align 4, !tbaa !11
  %2839 = fneg float %2837
  %2840 = call float @llvm.fmuladd.f32(float %2839, float %2838, float %2831)
  %2841 = load ptr, ptr %13, align 8, !tbaa !5
  %2842 = load i32, ptr %42, align 4, !tbaa !9
  %2843 = sext i32 %2842 to i64
  %2844 = getelementptr inbounds float, ptr %2841, i64 %2843
  %2845 = load float, ptr %2844, align 4, !tbaa !11
  %2846 = load float, ptr %19, align 4, !tbaa !11
  %2847 = fneg float %2845
  %2848 = call float @llvm.fmuladd.f32(float %2847, float %2846, float %2840)
  store float %2848, ptr %27, align 4, !tbaa !11
  br label %2849

2849:                                             ; preds = %2830, %2805
  %2850 = load ptr, ptr %13, align 8, !tbaa !5
  %2851 = load ptr, ptr %10, align 8, !tbaa !5
  %2852 = load i32, ptr %2851, align 4, !tbaa !9
  %2853 = sext i32 %2852 to i64
  %2854 = getelementptr inbounds float, ptr %2850, i64 %2853
  %2855 = load float, ptr %2854, align 4, !tbaa !11
  %2856 = load ptr, ptr %13, align 8, !tbaa !5
  %2857 = load i32, ptr %42, align 4, !tbaa !9
  %2858 = sext i32 %2857 to i64
  %2859 = getelementptr inbounds float, ptr %2856, i64 %2858
  %2860 = load float, ptr %2859, align 4, !tbaa !11
  %2861 = fadd float %2855, %2860
  %2862 = load float, ptr %29, align 4, !tbaa !11
  %2863 = load ptr, ptr %13, align 8, !tbaa !5
  %2864 = load ptr, ptr %10, align 8, !tbaa !5
  %2865 = load i32, ptr %2864, align 4, !tbaa !9
  %2866 = sext i32 %2865 to i64
  %2867 = getelementptr inbounds float, ptr %2863, i64 %2866
  %2868 = load float, ptr %2867, align 4, !tbaa !11
  %2869 = load ptr, ptr %13, align 8, !tbaa !5
  %2870 = load i32, ptr %42, align 4, !tbaa !9
  %2871 = sext i32 %2870 to i64
  %2872 = getelementptr inbounds float, ptr %2869, i64 %2871
  %2873 = load float, ptr %2872, align 4, !tbaa !11
  %2874 = fmul float %2868, %2873
  %2875 = load float, ptr %37, align 4, !tbaa !11
  %2876 = fmul float %2874, %2875
  %2877 = fneg float %2876
  %2878 = call float @llvm.fmuladd.f32(float %2861, float %2862, float %2877)
  store float %2878, ptr %25, align 4, !tbaa !11
  %2879 = load ptr, ptr %13, align 8, !tbaa !5
  %2880 = load ptr, ptr %10, align 8, !tbaa !5
  %2881 = load i32, ptr %2880, align 4, !tbaa !9
  %2882 = sext i32 %2881 to i64
  %2883 = getelementptr inbounds float, ptr %2879, i64 %2882
  %2884 = load float, ptr %2883, align 4, !tbaa !11
  %2885 = load ptr, ptr %13, align 8, !tbaa !5
  %2886 = load i32, ptr %42, align 4, !tbaa !9
  %2887 = sext i32 %2886 to i64
  %2888 = getelementptr inbounds float, ptr %2885, i64 %2887
  %2889 = load float, ptr %2888, align 4, !tbaa !11
  %2890 = fmul float %2884, %2889
  %2891 = load float, ptr %29, align 4, !tbaa !11
  %2892 = fmul float %2890, %2891
  store float %2892, ptr %26, align 4, !tbaa !11
  %2893 = load float, ptr %27, align 4, !tbaa !11
  %2894 = fcmp oeq float %2893, 0.000000e+00
  br i1 %2894, label %2895, label %2997

2895:                                             ; preds = %2849
  %2896 = load float, ptr %25, align 4, !tbaa !11
  %2897 = fcmp oeq float %2896, 0.000000e+00
  br i1 %2897, label %2898, label %2993

2898:                                             ; preds = %2895
  %2899 = load i32, ptr %34, align 4, !tbaa !9
  %2900 = icmp ne i32 %2899, 0
  br i1 %2900, label %2963, label %2901

2901:                                             ; preds = %2898
  %2902 = load i32, ptr %39, align 4, !tbaa !9
  %2903 = icmp ne i32 %2902, 0
  br i1 %2903, label %2904, label %2933

2904:                                             ; preds = %2901
  %2905 = load ptr, ptr %12, align 8, !tbaa !5
  %2906 = load ptr, ptr %10, align 8, !tbaa !5
  %2907 = load i32, ptr %2906, align 4, !tbaa !9
  %2908 = sext i32 %2907 to i64
  %2909 = getelementptr inbounds float, ptr %2905, i64 %2908
  %2910 = load float, ptr %2909, align 4, !tbaa !11
  %2911 = load ptr, ptr %12, align 8, !tbaa !5
  %2912 = load ptr, ptr %10, align 8, !tbaa !5
  %2913 = load i32, ptr %2912, align 4, !tbaa !9
  %2914 = sext i32 %2913 to i64
  %2915 = getelementptr inbounds float, ptr %2911, i64 %2914
  %2916 = load float, ptr %2915, align 4, !tbaa !11
  %2917 = load ptr, ptr %13, align 8, !tbaa !5
  %2918 = load i32, ptr %42, align 4, !tbaa !9
  %2919 = sext i32 %2918 to i64
  %2920 = getelementptr inbounds float, ptr %2917, i64 %2919
  %2921 = load float, ptr %2920, align 4, !tbaa !11
  %2922 = load ptr, ptr %13, align 8, !tbaa !5
  %2923 = load i32, ptr %42, align 4, !tbaa !9
  %2924 = sext i32 %2923 to i64
  %2925 = getelementptr inbounds float, ptr %2922, i64 %2924
  %2926 = load float, ptr %2925, align 4, !tbaa !11
  %2927 = fmul float %2921, %2926
  %2928 = load float, ptr %20, align 4, !tbaa !11
  %2929 = load float, ptr %19, align 4, !tbaa !11
  %2930 = fadd float %2928, %2929
  %2931 = fmul float %2927, %2930
  %2932 = call float @llvm.fmuladd.f32(float %2910, float %2916, float %2931)
  store float %2932, ptr %25, align 4, !tbaa !11
  br label %2962

2933:                                             ; preds = %2901
  %2934 = load ptr, ptr %12, align 8, !tbaa !5
  %2935 = load i32, ptr %42, align 4, !tbaa !9
  %2936 = sext i32 %2935 to i64
  %2937 = getelementptr inbounds float, ptr %2934, i64 %2936
  %2938 = load float, ptr %2937, align 4, !tbaa !11
  %2939 = load ptr, ptr %12, align 8, !tbaa !5
  %2940 = load i32, ptr %42, align 4, !tbaa !9
  %2941 = sext i32 %2940 to i64
  %2942 = getelementptr inbounds float, ptr %2939, i64 %2941
  %2943 = load float, ptr %2942, align 4, !tbaa !11
  %2944 = load ptr, ptr %13, align 8, !tbaa !5
  %2945 = load ptr, ptr %10, align 8, !tbaa !5
  %2946 = load i32, ptr %2945, align 4, !tbaa !9
  %2947 = sext i32 %2946 to i64
  %2948 = getelementptr inbounds float, ptr %2944, i64 %2947
  %2949 = load float, ptr %2948, align 4, !tbaa !11
  %2950 = load ptr, ptr %13, align 8, !tbaa !5
  %2951 = load ptr, ptr %10, align 8, !tbaa !5
  %2952 = load i32, ptr %2951, align 4, !tbaa !9
  %2953 = sext i32 %2952 to i64
  %2954 = getelementptr inbounds float, ptr %2950, i64 %2953
  %2955 = load float, ptr %2954, align 4, !tbaa !11
  %2956 = fmul float %2949, %2955
  %2957 = load float, ptr %20, align 4, !tbaa !11
  %2958 = load float, ptr %19, align 4, !tbaa !11
  %2959 = fadd float %2957, %2958
  %2960 = fmul float %2956, %2959
  %2961 = call float @llvm.fmuladd.f32(float %2938, float %2943, float %2960)
  store float %2961, ptr %25, align 4, !tbaa !11
  br label %2962

2962:                                             ; preds = %2933, %2904
  br label %2992

2963:                                             ; preds = %2898
  %2964 = load ptr, ptr %13, align 8, !tbaa !5
  %2965 = load ptr, ptr %10, align 8, !tbaa !5
  %2966 = load i32, ptr %2965, align 4, !tbaa !9
  %2967 = sext i32 %2966 to i64
  %2968 = getelementptr inbounds float, ptr %2964, i64 %2967
  %2969 = load float, ptr %2968, align 4, !tbaa !11
  %2970 = load ptr, ptr %13, align 8, !tbaa !5
  %2971 = load ptr, ptr %10, align 8, !tbaa !5
  %2972 = load i32, ptr %2971, align 4, !tbaa !9
  %2973 = sext i32 %2972 to i64
  %2974 = getelementptr inbounds float, ptr %2970, i64 %2973
  %2975 = load float, ptr %2974, align 4, !tbaa !11
  %2976 = fmul float %2969, %2975
  %2977 = load float, ptr %20, align 4, !tbaa !11
  %2978 = load ptr, ptr %13, align 8, !tbaa !5
  %2979 = load i32, ptr %42, align 4, !tbaa !9
  %2980 = sext i32 %2979 to i64
  %2981 = getelementptr inbounds float, ptr %2978, i64 %2980
  %2982 = load float, ptr %2981, align 4, !tbaa !11
  %2983 = load ptr, ptr %13, align 8, !tbaa !5
  %2984 = load i32, ptr %42, align 4, !tbaa !9
  %2985 = sext i32 %2984 to i64
  %2986 = getelementptr inbounds float, ptr %2983, i64 %2985
  %2987 = load float, ptr %2986, align 4, !tbaa !11
  %2988 = fmul float %2982, %2987
  %2989 = load float, ptr %19, align 4, !tbaa !11
  %2990 = fmul float %2988, %2989
  %2991 = call float @llvm.fmuladd.f32(float %2976, float %2977, float %2990)
  store float %2991, ptr %25, align 4, !tbaa !11
  br label %2992

2992:                                             ; preds = %2963, %2962
  br label %2993

2993:                                             ; preds = %2992, %2895
  %2994 = load float, ptr %26, align 4, !tbaa !11
  %2995 = load float, ptr %25, align 4, !tbaa !11
  %2996 = fdiv float %2994, %2995
  store float %2996, ptr %44, align 4, !tbaa !11
  br label %3057

2997:                                             ; preds = %2849
  %2998 = load float, ptr %25, align 4, !tbaa !11
  %2999 = fcmp ole float %2998, 0.000000e+00
  br i1 %2999, label %3000, label %3028

3000:                                             ; preds = %2997
  %3001 = load float, ptr %25, align 4, !tbaa !11
  %3002 = fpext float %3001 to double
  %3003 = load float, ptr %25, align 4, !tbaa !11
  %3004 = load float, ptr %25, align 4, !tbaa !11
  %3005 = load float, ptr %26, align 4, !tbaa !11
  %3006 = fmul float %3005, 4.000000e+00
  %3007 = load float, ptr %27, align 4, !tbaa !11
  %3008 = fmul float %3006, %3007
  %3009 = fneg float %3008
  %3010 = call float @llvm.fmuladd.f32(float %3003, float %3004, float %3009)
  store float %3010, ptr %18, align 4, !tbaa !11
  %3011 = load float, ptr %18, align 4, !tbaa !11
  %3012 = fcmp oge float %3011, 0.000000e+00
  br i1 %3012, label %3013, label %3015

3013:                                             ; preds = %3000
  %3014 = load float, ptr %18, align 4, !tbaa !11
  br label %3018

3015:                                             ; preds = %3000
  %3016 = load float, ptr %18, align 4, !tbaa !11
  %3017 = fneg float %3016
  br label %3018

3018:                                             ; preds = %3015, %3013
  %3019 = phi float [ %3014, %3013 ], [ %3017, %3015 ]
  %3020 = fpext float %3019 to double
  %3021 = call double @sqrt(double noundef %3020) #5
  %3022 = fsub double %3002, %3021
  %3023 = load float, ptr %27, align 4, !tbaa !11
  %3024 = fmul float %3023, 2.000000e+00
  %3025 = fpext float %3024 to double
  %3026 = fdiv double %3022, %3025
  %3027 = fptrunc double %3026 to float
  store float %3027, ptr %44, align 4, !tbaa !11
  br label %3056

3028:                                             ; preds = %2997
  %3029 = load float, ptr %26, align 4, !tbaa !11
  %3030 = fmul float %3029, 2.000000e+00
  %3031 = fpext float %3030 to double
  %3032 = load float, ptr %25, align 4, !tbaa !11
  %3033 = fpext float %3032 to double
  %3034 = load float, ptr %25, align 4, !tbaa !11
  %3035 = load float, ptr %25, align 4, !tbaa !11
  %3036 = load float, ptr %26, align 4, !tbaa !11
  %3037 = fmul float %3036, 4.000000e+00
  %3038 = load float, ptr %27, align 4, !tbaa !11
  %3039 = fmul float %3037, %3038
  %3040 = fneg float %3039
  %3041 = call float @llvm.fmuladd.f32(float %3034, float %3035, float %3040)
  store float %3041, ptr %18, align 4, !tbaa !11
  %3042 = load float, ptr %18, align 4, !tbaa !11
  %3043 = fcmp oge float %3042, 0.000000e+00
  br i1 %3043, label %3044, label %3046

3044:                                             ; preds = %3028
  %3045 = load float, ptr %18, align 4, !tbaa !11
  br label %3049

3046:                                             ; preds = %3028
  %3047 = load float, ptr %18, align 4, !tbaa !11
  %3048 = fneg float %3047
  br label %3049

3049:                                             ; preds = %3046, %3044
  %3050 = phi float [ %3045, %3044 ], [ %3048, %3046 ]
  %3051 = fpext float %3050 to double
  %3052 = call double @sqrt(double noundef %3051) #5
  %3053 = fadd double %3033, %3052
  %3054 = fdiv double %3031, %3053
  %3055 = fptrunc double %3054 to float
  store float %3055, ptr %44, align 4, !tbaa !11
  br label %3056

3056:                                             ; preds = %3049, %3018
  br label %3057

3057:                                             ; preds = %3056, %2993
  br label %3268

3058:                                             ; preds = %2717
  %3059 = load float, ptr %41, align 4, !tbaa !11
  %3060 = load float, ptr %48, align 4, !tbaa !11
  %3061 = fadd float %3059, %3060
  %3062 = load float, ptr %45, align 4, !tbaa !11
  %3063 = fadd float %3061, %3062
  store float %3063, ptr %22, align 4, !tbaa !11
  %3064 = load i32, ptr %34, align 4, !tbaa !9
  %3065 = icmp ne i32 %3064, 0
  br i1 %3065, label %3066, label %3112

3066:                                             ; preds = %3058
  %3067 = load float, ptr %22, align 4, !tbaa !11
  %3068 = load ptr, ptr %13, align 8, !tbaa !5
  %3069 = load i32, ptr %49, align 4, !tbaa !9
  %3070 = sext i32 %3069 to i64
  %3071 = getelementptr inbounds float, ptr %3068, i64 %3070
  %3072 = load float, ptr %3071, align 4, !tbaa !11
  %3073 = load float, ptr %20, align 4, !tbaa !11
  %3074 = fneg float %3072
  %3075 = call float @llvm.fmuladd.f32(float %3074, float %3073, float %3067)
  %3076 = load ptr, ptr %13, align 8, !tbaa !5
  %3077 = load i32, ptr %50, align 4, !tbaa !9
  %3078 = sext i32 %3077 to i64
  %3079 = getelementptr inbounds float, ptr %3076, i64 %3078
  %3080 = load float, ptr %3079, align 4, !tbaa !11
  %3081 = load float, ptr %19, align 4, !tbaa !11
  %3082 = fneg float %3080
  %3083 = call float @llvm.fmuladd.f32(float %3082, float %3081, float %3075)
  store float %3083, ptr %27, align 4, !tbaa !11
  %3084 = load ptr, ptr %13, align 8, !tbaa !5
  %3085 = load i32, ptr %49, align 4, !tbaa !9
  %3086 = sext i32 %3085 to i64
  %3087 = getelementptr inbounds float, ptr %3084, i64 %3086
  %3088 = load float, ptr %3087, align 4, !tbaa !11
  %3089 = load ptr, ptr %13, align 8, !tbaa !5
  %3090 = load i32, ptr %49, align 4, !tbaa !9
  %3091 = sext i32 %3090 to i64
  %3092 = getelementptr inbounds float, ptr %3089, i64 %3091
  %3093 = load float, ptr %3092, align 4, !tbaa !11
  %3094 = fmul float %3088, %3093
  %3095 = load float, ptr %20, align 4, !tbaa !11
  %3096 = fmul float %3094, %3095
  %3097 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 0
  store float %3096, ptr %3097, align 4, !tbaa !11
  %3098 = load ptr, ptr %13, align 8, !tbaa !5
  %3099 = load i32, ptr %50, align 4, !tbaa !9
  %3100 = sext i32 %3099 to i64
  %3101 = getelementptr inbounds float, ptr %3098, i64 %3100
  %3102 = load float, ptr %3101, align 4, !tbaa !11
  %3103 = load ptr, ptr %13, align 8, !tbaa !5
  %3104 = load i32, ptr %50, align 4, !tbaa !9
  %3105 = sext i32 %3104 to i64
  %3106 = getelementptr inbounds float, ptr %3103, i64 %3105
  %3107 = load float, ptr %3106, align 4, !tbaa !11
  %3108 = fmul float %3102, %3107
  %3109 = load float, ptr %19, align 4, !tbaa !11
  %3110 = fmul float %3108, %3109
  %3111 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 2
  store float %3110, ptr %3111, align 4, !tbaa !11
  br label %3256

3112:                                             ; preds = %3058
  %3113 = load i32, ptr %39, align 4, !tbaa !9
  %3114 = icmp ne i32 %3113, 0
  br i1 %3114, label %3115, label %3185

3115:                                             ; preds = %3112
  %3116 = load ptr, ptr %12, align 8, !tbaa !5
  %3117 = load i32, ptr %49, align 4, !tbaa !9
  %3118 = sext i32 %3117 to i64
  %3119 = getelementptr inbounds float, ptr %3116, i64 %3118
  %3120 = load float, ptr %3119, align 4, !tbaa !11
  %3121 = load ptr, ptr %13, align 8, !tbaa !5
  %3122 = load i32, ptr %49, align 4, !tbaa !9
  %3123 = sext i32 %3122 to i64
  %3124 = getelementptr inbounds float, ptr %3121, i64 %3123
  %3125 = load float, ptr %3124, align 4, !tbaa !11
  %3126 = fdiv float %3120, %3125
  store float %3126, ptr %24, align 4, !tbaa !11
  %3127 = load float, ptr %24, align 4, !tbaa !11
  %3128 = load float, ptr %24, align 4, !tbaa !11
  %3129 = fmul float %3128, %3127
  store float %3129, ptr %24, align 4, !tbaa !11
  %3130 = load float, ptr %22, align 4, !tbaa !11
  %3131 = load ptr, ptr %13, align 8, !tbaa !5
  %3132 = load i32, ptr %50, align 4, !tbaa !9
  %3133 = sext i32 %3132 to i64
  %3134 = getelementptr inbounds float, ptr %3131, i64 %3133
  %3135 = load float, ptr %3134, align 4, !tbaa !11
  %3136 = load float, ptr %20, align 4, !tbaa !11
  %3137 = load float, ptr %19, align 4, !tbaa !11
  %3138 = fadd float %3136, %3137
  %3139 = fneg float %3135
  %3140 = call float @llvm.fmuladd.f32(float %3139, float %3138, float %3130)
  %3141 = load ptr, ptr %11, align 8, !tbaa !5
  %3142 = load i32, ptr %49, align 4, !tbaa !9
  %3143 = sext i32 %3142 to i64
  %3144 = getelementptr inbounds float, ptr %3141, i64 %3143
  %3145 = load float, ptr %3144, align 4, !tbaa !11
  %3146 = load ptr, ptr %11, align 8, !tbaa !5
  %3147 = load i32, ptr %50, align 4, !tbaa !9
  %3148 = sext i32 %3147 to i64
  %3149 = getelementptr inbounds float, ptr %3146, i64 %3148
  %3150 = load float, ptr %3149, align 4, !tbaa !11
  %3151 = fsub float %3145, %3150
  %3152 = load float, ptr %24, align 4, !tbaa !11
  %3153 = fneg float %3151
  %3154 = call float @llvm.fmuladd.f32(float %3153, float %3152, float %3140)
  store float %3154, ptr %27, align 4, !tbaa !11
  %3155 = load ptr, ptr %12, align 8, !tbaa !5
  %3156 = load i32, ptr %49, align 4, !tbaa !9
  %3157 = sext i32 %3156 to i64
  %3158 = getelementptr inbounds float, ptr %3155, i64 %3157
  %3159 = load float, ptr %3158, align 4, !tbaa !11
  %3160 = load ptr, ptr %12, align 8, !tbaa !5
  %3161 = load i32, ptr %49, align 4, !tbaa !9
  %3162 = sext i32 %3161 to i64
  %3163 = getelementptr inbounds float, ptr %3160, i64 %3162
  %3164 = load float, ptr %3163, align 4, !tbaa !11
  %3165 = fmul float %3159, %3164
  %3166 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 0
  store float %3165, ptr %3166, align 4, !tbaa !11
  %3167 = load ptr, ptr %13, align 8, !tbaa !5
  %3168 = load i32, ptr %50, align 4, !tbaa !9
  %3169 = sext i32 %3168 to i64
  %3170 = getelementptr inbounds float, ptr %3167, i64 %3169
  %3171 = load float, ptr %3170, align 4, !tbaa !11
  %3172 = load ptr, ptr %13, align 8, !tbaa !5
  %3173 = load i32, ptr %50, align 4, !tbaa !9
  %3174 = sext i32 %3173 to i64
  %3175 = getelementptr inbounds float, ptr %3172, i64 %3174
  %3176 = load float, ptr %3175, align 4, !tbaa !11
  %3177 = fmul float %3171, %3176
  %3178 = load float, ptr %20, align 4, !tbaa !11
  %3179 = load float, ptr %24, align 4, !tbaa !11
  %3180 = fsub float %3178, %3179
  %3181 = load float, ptr %19, align 4, !tbaa !11
  %3182 = fadd float %3180, %3181
  %3183 = fmul float %3177, %3182
  %3184 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 2
  store float %3183, ptr %3184, align 4, !tbaa !11
  br label %3255

3185:                                             ; preds = %3112
  %3186 = load ptr, ptr %12, align 8, !tbaa !5
  %3187 = load i32, ptr %50, align 4, !tbaa !9
  %3188 = sext i32 %3187 to i64
  %3189 = getelementptr inbounds float, ptr %3186, i64 %3188
  %3190 = load float, ptr %3189, align 4, !tbaa !11
  %3191 = load ptr, ptr %13, align 8, !tbaa !5
  %3192 = load i32, ptr %50, align 4, !tbaa !9
  %3193 = sext i32 %3192 to i64
  %3194 = getelementptr inbounds float, ptr %3191, i64 %3193
  %3195 = load float, ptr %3194, align 4, !tbaa !11
  %3196 = fdiv float %3190, %3195
  store float %3196, ptr %24, align 4, !tbaa !11
  %3197 = load float, ptr %24, align 4, !tbaa !11
  %3198 = load float, ptr %24, align 4, !tbaa !11
  %3199 = fmul float %3198, %3197
  store float %3199, ptr %24, align 4, !tbaa !11
  %3200 = load float, ptr %22, align 4, !tbaa !11
  %3201 = load ptr, ptr %13, align 8, !tbaa !5
  %3202 = load i32, ptr %49, align 4, !tbaa !9
  %3203 = sext i32 %3202 to i64
  %3204 = getelementptr inbounds float, ptr %3201, i64 %3203
  %3205 = load float, ptr %3204, align 4, !tbaa !11
  %3206 = load float, ptr %20, align 4, !tbaa !11
  %3207 = load float, ptr %19, align 4, !tbaa !11
  %3208 = fadd float %3206, %3207
  %3209 = fneg float %3205
  %3210 = call float @llvm.fmuladd.f32(float %3209, float %3208, float %3200)
  %3211 = load ptr, ptr %11, align 8, !tbaa !5
  %3212 = load i32, ptr %50, align 4, !tbaa !9
  %3213 = sext i32 %3212 to i64
  %3214 = getelementptr inbounds float, ptr %3211, i64 %3213
  %3215 = load float, ptr %3214, align 4, !tbaa !11
  %3216 = load ptr, ptr %11, align 8, !tbaa !5
  %3217 = load i32, ptr %49, align 4, !tbaa !9
  %3218 = sext i32 %3217 to i64
  %3219 = getelementptr inbounds float, ptr %3216, i64 %3218
  %3220 = load float, ptr %3219, align 4, !tbaa !11
  %3221 = fsub float %3215, %3220
  %3222 = load float, ptr %24, align 4, !tbaa !11
  %3223 = fneg float %3221
  %3224 = call float @llvm.fmuladd.f32(float %3223, float %3222, float %3210)
  store float %3224, ptr %27, align 4, !tbaa !11
  %3225 = load ptr, ptr %13, align 8, !tbaa !5
  %3226 = load i32, ptr %49, align 4, !tbaa !9
  %3227 = sext i32 %3226 to i64
  %3228 = getelementptr inbounds float, ptr %3225, i64 %3227
  %3229 = load float, ptr %3228, align 4, !tbaa !11
  %3230 = load ptr, ptr %13, align 8, !tbaa !5
  %3231 = load i32, ptr %49, align 4, !tbaa !9
  %3232 = sext i32 %3231 to i64
  %3233 = getelementptr inbounds float, ptr %3230, i64 %3232
  %3234 = load float, ptr %3233, align 4, !tbaa !11
  %3235 = fmul float %3229, %3234
  %3236 = load float, ptr %20, align 4, !tbaa !11
  %3237 = load float, ptr %19, align 4, !tbaa !11
  %3238 = load float, ptr %24, align 4, !tbaa !11
  %3239 = fsub float %3237, %3238
  %3240 = fadd float %3236, %3239
  %3241 = fmul float %3235, %3240
  %3242 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 0
  store float %3241, ptr %3242, align 4, !tbaa !11
  %3243 = load ptr, ptr %12, align 8, !tbaa !5
  %3244 = load i32, ptr %50, align 4, !tbaa !9
  %3245 = sext i32 %3244 to i64
  %3246 = getelementptr inbounds float, ptr %3243, i64 %3245
  %3247 = load float, ptr %3246, align 4, !tbaa !11
  %3248 = load ptr, ptr %12, align 8, !tbaa !5
  %3249 = load i32, ptr %50, align 4, !tbaa !9
  %3250 = sext i32 %3249 to i64
  %3251 = getelementptr inbounds float, ptr %3248, i64 %3250
  %3252 = load float, ptr %3251, align 4, !tbaa !11
  %3253 = fmul float %3247, %3252
  %3254 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 2
  store float %3253, ptr %3254, align 4, !tbaa !11
  br label %3255

3255:                                             ; preds = %3185, %3115
  br label %3256

3256:                                             ; preds = %3255, %3066
  %3257 = load ptr, ptr %13, align 8, !tbaa !5
  %3258 = load i32, ptr %49, align 4, !tbaa !9
  %3259 = sext i32 %3258 to i64
  %3260 = getelementptr inbounds float, ptr %3257, i64 %3259
  %3261 = getelementptr inbounds [3 x float], ptr %38, i64 0, i64 0
  %3262 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slaed6_(ptr noundef %33, ptr noundef %39, ptr noundef %27, ptr noundef %3260, ptr noundef %3261, ptr noundef %29, ptr noundef %44, ptr noundef %3262)
  %3263 = load ptr, ptr %16, align 8, !tbaa !5
  %3264 = load i32, ptr %3263, align 4, !tbaa !9
  %3265 = icmp ne i32 %3264, 0
  br i1 %3265, label %3266, label %3267

3266:                                             ; preds = %3256
  br label %3527

3267:                                             ; preds = %3256
  br label %3268

3268:                                             ; preds = %3267, %3057
  %3269 = load float, ptr %29, align 4, !tbaa !11
  %3270 = load float, ptr %44, align 4, !tbaa !11
  %3271 = fmul float %3269, %3270
  %3272 = fcmp oge float %3271, 0.000000e+00
  br i1 %3272, label %3273, label %3278

3273:                                             ; preds = %3268
  %3274 = load float, ptr %29, align 4, !tbaa !11
  %3275 = fneg float %3274
  %3276 = load float, ptr %37, align 4, !tbaa !11
  %3277 = fdiv float %3275, %3276
  store float %3277, ptr %44, align 4, !tbaa !11
  br label %3278

3278:                                             ; preds = %3273, %3268
  %3279 = load float, ptr %47, align 4, !tbaa !11
  %3280 = load float, ptr %44, align 4, !tbaa !11
  %3281 = fadd float %3279, %3280
  store float %3281, ptr %22, align 4, !tbaa !11
  %3282 = load float, ptr %22, align 4, !tbaa !11
  %3283 = load float, ptr %31, align 4, !tbaa !11
  %3284 = fcmp ogt float %3282, %3283
  br i1 %3284, label %3289, label %3285

3285:                                             ; preds = %3278
  %3286 = load float, ptr %22, align 4, !tbaa !11
  %3287 = load float, ptr %30, align 4, !tbaa !11
  %3288 = fcmp olt float %3286, %3287
  br i1 %3288, label %3289, label %3303

3289:                                             ; preds = %3285, %3278
  %3290 = load float, ptr %29, align 4, !tbaa !11
  %3291 = fcmp olt float %3290, 0.000000e+00
  br i1 %3291, label %3292, label %3297

3292:                                             ; preds = %3289
  %3293 = load float, ptr %31, align 4, !tbaa !11
  %3294 = load float, ptr %47, align 4, !tbaa !11
  %3295 = fsub float %3293, %3294
  %3296 = fdiv float %3295, 2.000000e+00
  store float %3296, ptr %44, align 4, !tbaa !11
  br label %3302

3297:                                             ; preds = %3289
  %3298 = load float, ptr %30, align 4, !tbaa !11
  %3299 = load float, ptr %47, align 4, !tbaa !11
  %3300 = fsub float %3298, %3299
  %3301 = fdiv float %3300, 2.000000e+00
  store float %3301, ptr %44, align 4, !tbaa !11
  br label %3302

3302:                                             ; preds = %3297, %3292
  br label %3303

3303:                                             ; preds = %3302, %3285
  %3304 = load ptr, ptr %9, align 8, !tbaa !5
  %3305 = load i32, ptr %3304, align 4, !tbaa !9
  store i32 %3305, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %3306

3306:                                             ; preds = %3318, %3303
  %3307 = load i32, ptr %28, align 4, !tbaa !9
  %3308 = load i32, ptr %17, align 4, !tbaa !9
  %3309 = icmp sle i32 %3307, %3308
  br i1 %3309, label %3310, label %3321

3310:                                             ; preds = %3306
  %3311 = load float, ptr %44, align 4, !tbaa !11
  %3312 = load ptr, ptr %13, align 8, !tbaa !5
  %3313 = load i32, ptr %28, align 4, !tbaa !9
  %3314 = sext i32 %3313 to i64
  %3315 = getelementptr inbounds float, ptr %3312, i64 %3314
  %3316 = load float, ptr %3315, align 4, !tbaa !11
  %3317 = fsub float %3316, %3311
  store float %3317, ptr %3315, align 4, !tbaa !11
  br label %3318

3318:                                             ; preds = %3310
  %3319 = load i32, ptr %28, align 4, !tbaa !9
  %3320 = add nsw i32 %3319, 1
  store i32 %3320, ptr %28, align 4, !tbaa !9
  br label %3306, !llvm.loop !33

3321:                                             ; preds = %3306
  %3322 = load float, ptr %44, align 4, !tbaa !11
  %3323 = load float, ptr %47, align 4, !tbaa !11
  %3324 = fadd float %3323, %3322
  store float %3324, ptr %47, align 4, !tbaa !11
  %3325 = load float, ptr %29, align 4, !tbaa !11
  store float %3325, ptr %23, align 4, !tbaa !11
  store float 0.000000e+00, ptr %20, align 4, !tbaa !11
  store float 0.000000e+00, ptr %48, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  %3326 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %3326, ptr %17, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %3327

3327:                                             ; preds = %3358, %3321
  %3328 = load i32, ptr %28, align 4, !tbaa !9
  %3329 = load i32, ptr %17, align 4, !tbaa !9
  %3330 = icmp sle i32 %3328, %3329
  br i1 %3330, label %3331, label %3361

3331:                                             ; preds = %3327
  %3332 = load ptr, ptr %12, align 8, !tbaa !5
  %3333 = load i32, ptr %28, align 4, !tbaa !9
  %3334 = sext i32 %3333 to i64
  %3335 = getelementptr inbounds float, ptr %3332, i64 %3334
  %3336 = load float, ptr %3335, align 4, !tbaa !11
  %3337 = load ptr, ptr %13, align 8, !tbaa !5
  %3338 = load i32, ptr %28, align 4, !tbaa !9
  %3339 = sext i32 %3338 to i64
  %3340 = getelementptr inbounds float, ptr %3337, i64 %3339
  %3341 = load float, ptr %3340, align 4, !tbaa !11
  %3342 = fdiv float %3336, %3341
  store float %3342, ptr %22, align 4, !tbaa !11
  %3343 = load ptr, ptr %12, align 8, !tbaa !5
  %3344 = load i32, ptr %28, align 4, !tbaa !9
  %3345 = sext i32 %3344 to i64
  %3346 = getelementptr inbounds float, ptr %3343, i64 %3345
  %3347 = load float, ptr %3346, align 4, !tbaa !11
  %3348 = load float, ptr %22, align 4, !tbaa !11
  %3349 = load float, ptr %48, align 4, !tbaa !11
  %3350 = call float @llvm.fmuladd.f32(float %3347, float %3348, float %3349)
  store float %3350, ptr %48, align 4, !tbaa !11
  %3351 = load float, ptr %22, align 4, !tbaa !11
  %3352 = load float, ptr %22, align 4, !tbaa !11
  %3353 = load float, ptr %20, align 4, !tbaa !11
  %3354 = call float @llvm.fmuladd.f32(float %3351, float %3352, float %3353)
  store float %3354, ptr %20, align 4, !tbaa !11
  %3355 = load float, ptr %48, align 4, !tbaa !11
  %3356 = load float, ptr %40, align 4, !tbaa !11
  %3357 = fadd float %3356, %3355
  store float %3357, ptr %40, align 4, !tbaa !11
  br label %3358

3358:                                             ; preds = %3331
  %3359 = load i32, ptr %28, align 4, !tbaa !9
  %3360 = add nsw i32 %3359, 1
  store i32 %3360, ptr %28, align 4, !tbaa !9
  br label %3327, !llvm.loop !34

3361:                                             ; preds = %3327
  %3362 = load float, ptr %40, align 4, !tbaa !11
  %3363 = fcmp oge float %3362, 0.000000e+00
  br i1 %3363, label %3364, label %3366

3364:                                             ; preds = %3361
  %3365 = load float, ptr %40, align 4, !tbaa !11
  br label %3369

3366:                                             ; preds = %3361
  %3367 = load float, ptr %40, align 4, !tbaa !11
  %3368 = fneg float %3367
  br label %3369

3369:                                             ; preds = %3366, %3364
  %3370 = phi float [ %3365, %3364 ], [ %3368, %3366 ]
  store float %3370, ptr %40, align 4, !tbaa !11
  store float 0.000000e+00, ptr %19, align 4, !tbaa !11
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %3371 = load i32, ptr %50, align 4, !tbaa !9
  store i32 %3371, ptr %17, align 4, !tbaa !9
  %3372 = load ptr, ptr %9, align 8, !tbaa !5
  %3373 = load i32, ptr %3372, align 4, !tbaa !9
  store i32 %3373, ptr %28, align 4, !tbaa !9
  br label %3374

3374:                                             ; preds = %3405, %3369
  %3375 = load i32, ptr %28, align 4, !tbaa !9
  %3376 = load i32, ptr %17, align 4, !tbaa !9
  %3377 = icmp sge i32 %3375, %3376
  br i1 %3377, label %3378, label %3408

3378:                                             ; preds = %3374
  %3379 = load ptr, ptr %12, align 8, !tbaa !5
  %3380 = load i32, ptr %28, align 4, !tbaa !9
  %3381 = sext i32 %3380 to i64
  %3382 = getelementptr inbounds float, ptr %3379, i64 %3381
  %3383 = load float, ptr %3382, align 4, !tbaa !11
  %3384 = load ptr, ptr %13, align 8, !tbaa !5
  %3385 = load i32, ptr %28, align 4, !tbaa !9
  %3386 = sext i32 %3385 to i64
  %3387 = getelementptr inbounds float, ptr %3384, i64 %3386
  %3388 = load float, ptr %3387, align 4, !tbaa !11
  %3389 = fdiv float %3383, %3388
  store float %3389, ptr %22, align 4, !tbaa !11
  %3390 = load ptr, ptr %12, align 8, !tbaa !5
  %3391 = load i32, ptr %28, align 4, !tbaa !9
  %3392 = sext i32 %3391 to i64
  %3393 = getelementptr inbounds float, ptr %3390, i64 %3392
  %3394 = load float, ptr %3393, align 4, !tbaa !11
  %3395 = load float, ptr %22, align 4, !tbaa !11
  %3396 = load float, ptr %45, align 4, !tbaa !11
  %3397 = call float @llvm.fmuladd.f32(float %3394, float %3395, float %3396)
  store float %3397, ptr %45, align 4, !tbaa !11
  %3398 = load float, ptr %22, align 4, !tbaa !11
  %3399 = load float, ptr %22, align 4, !tbaa !11
  %3400 = load float, ptr %19, align 4, !tbaa !11
  %3401 = call float @llvm.fmuladd.f32(float %3398, float %3399, float %3400)
  store float %3401, ptr %19, align 4, !tbaa !11
  %3402 = load float, ptr %45, align 4, !tbaa !11
  %3403 = load float, ptr %40, align 4, !tbaa !11
  %3404 = fadd float %3403, %3402
  store float %3404, ptr %40, align 4, !tbaa !11
  br label %3405

3405:                                             ; preds = %3378
  %3406 = load i32, ptr %28, align 4, !tbaa !9
  %3407 = add nsw i32 %3406, -1
  store i32 %3407, ptr %28, align 4, !tbaa !9
  br label %3374, !llvm.loop !35

3408:                                             ; preds = %3374
  %3409 = load ptr, ptr %12, align 8, !tbaa !5
  %3410 = load i32, ptr %36, align 4, !tbaa !9
  %3411 = sext i32 %3410 to i64
  %3412 = getelementptr inbounds float, ptr %3409, i64 %3411
  %3413 = load float, ptr %3412, align 4, !tbaa !11
  %3414 = load ptr, ptr %13, align 8, !tbaa !5
  %3415 = load i32, ptr %36, align 4, !tbaa !9
  %3416 = sext i32 %3415 to i64
  %3417 = getelementptr inbounds float, ptr %3414, i64 %3416
  %3418 = load float, ptr %3417, align 4, !tbaa !11
  %3419 = fdiv float %3413, %3418
  store float %3419, ptr %22, align 4, !tbaa !11
  %3420 = load float, ptr %20, align 4, !tbaa !11
  %3421 = load float, ptr %19, align 4, !tbaa !11
  %3422 = fadd float %3420, %3421
  %3423 = load float, ptr %22, align 4, !tbaa !11
  %3424 = load float, ptr %22, align 4, !tbaa !11
  %3425 = call float @llvm.fmuladd.f32(float %3423, float %3424, float %3422)
  store float %3425, ptr %37, align 4, !tbaa !11
  %3426 = load ptr, ptr %12, align 8, !tbaa !5
  %3427 = load i32, ptr %36, align 4, !tbaa !9
  %3428 = sext i32 %3427 to i64
  %3429 = getelementptr inbounds float, ptr %3426, i64 %3428
  %3430 = load float, ptr %3429, align 4, !tbaa !11
  %3431 = load float, ptr %22, align 4, !tbaa !11
  %3432 = fmul float %3430, %3431
  store float %3432, ptr %22, align 4, !tbaa !11
  %3433 = load float, ptr %41, align 4, !tbaa !11
  %3434 = load float, ptr %45, align 4, !tbaa !11
  %3435 = fadd float %3433, %3434
  %3436 = load float, ptr %48, align 4, !tbaa !11
  %3437 = fadd float %3435, %3436
  %3438 = load float, ptr %22, align 4, !tbaa !11
  %3439 = fadd float %3437, %3438
  store float %3439, ptr %29, align 4, !tbaa !11
  %3440 = load float, ptr %45, align 4, !tbaa !11
  %3441 = load float, ptr %48, align 4, !tbaa !11
  %3442 = fsub float %3440, %3441
  %3443 = load float, ptr %40, align 4, !tbaa !11
  %3444 = call float @llvm.fmuladd.f32(float %3442, float 8.000000e+00, float %3443)
  %3445 = load float, ptr %41, align 4, !tbaa !11
  %3446 = call float @llvm.fmuladd.f32(float %3445, float 2.000000e+00, float %3444)
  %3447 = load float, ptr %22, align 4, !tbaa !11
  %3448 = fcmp oge float %3447, 0.000000e+00
  br i1 %3448, label %3449, label %3451

3449:                                             ; preds = %3408
  %3450 = load float, ptr %22, align 4, !tbaa !11
  br label %3454

3451:                                             ; preds = %3408
  %3452 = load float, ptr %22, align 4, !tbaa !11
  %3453 = fneg float %3452
  br label %3454

3454:                                             ; preds = %3451, %3449
  %3455 = phi float [ %3450, %3449 ], [ %3453, %3451 ]
  %3456 = call float @llvm.fmuladd.f32(float %3455, float 3.000000e+00, float %3446)
  %3457 = load float, ptr %47, align 4, !tbaa !11
  %3458 = fcmp oge float %3457, 0.000000e+00
  br i1 %3458, label %3459, label %3461

3459:                                             ; preds = %3454
  %3460 = load float, ptr %47, align 4, !tbaa !11
  br label %3464

3461:                                             ; preds = %3454
  %3462 = load float, ptr %47, align 4, !tbaa !11
  %3463 = fneg float %3462
  br label %3464

3464:                                             ; preds = %3461, %3459
  %3465 = phi float [ %3460, %3459 ], [ %3463, %3461 ]
  %3466 = load float, ptr %37, align 4, !tbaa !11
  %3467 = call float @llvm.fmuladd.f32(float %3465, float %3466, float %3456)
  store float %3467, ptr %40, align 4, !tbaa !11
  %3468 = load float, ptr %29, align 4, !tbaa !11
  %3469 = load float, ptr %23, align 4, !tbaa !11
  %3470 = fmul float %3468, %3469
  %3471 = fcmp ogt float %3470, 0.000000e+00
  br i1 %3471, label %3472, label %3498

3472:                                             ; preds = %3464
  %3473 = load float, ptr %29, align 4, !tbaa !11
  %3474 = fcmp oge float %3473, 0.000000e+00
  br i1 %3474, label %3475, label %3477

3475:                                             ; preds = %3472
  %3476 = load float, ptr %29, align 4, !tbaa !11
  br label %3480

3477:                                             ; preds = %3472
  %3478 = load float, ptr %29, align 4, !tbaa !11
  %3479 = fneg float %3478
  br label %3480

3480:                                             ; preds = %3477, %3475
  %3481 = phi float [ %3476, %3475 ], [ %3479, %3477 ]
  %3482 = load float, ptr %23, align 4, !tbaa !11
  %3483 = fcmp oge float %3482, 0.000000e+00
  br i1 %3483, label %3484, label %3486

3484:                                             ; preds = %3480
  %3485 = load float, ptr %23, align 4, !tbaa !11
  br label %3489

3486:                                             ; preds = %3480
  %3487 = load float, ptr %23, align 4, !tbaa !11
  %3488 = fneg float %3487
  br label %3489

3489:                                             ; preds = %3486, %3484
  %3490 = phi float [ %3485, %3484 ], [ %3488, %3486 ]
  %3491 = fdiv float %3490, 1.000000e+01
  %3492 = fcmp ogt float %3481, %3491
  br i1 %3492, label %3493, label %3498

3493:                                             ; preds = %3489
  %3494 = load i32, ptr %34, align 4, !tbaa !9
  %3495 = icmp ne i32 %3494, 0
  %3496 = xor i1 %3495, true
  %3497 = zext i1 %3496 to i32
  store i32 %3497, ptr %34, align 4, !tbaa !9
  br label %3498

3498:                                             ; preds = %3493, %3489, %3464
  br label %3499

3499:                                             ; preds = %3498
  %3500 = load i32, ptr %33, align 4, !tbaa !9
  %3501 = add nsw i32 %3500, 1
  store i32 %3501, ptr %33, align 4, !tbaa !9
  br label %2654, !llvm.loop !36

3502:                                             ; preds = %2654
  %3503 = load ptr, ptr %16, align 8, !tbaa !5
  store i32 1, ptr %3503, align 4, !tbaa !9
  %3504 = load i32, ptr %39, align 4, !tbaa !9
  %3505 = icmp ne i32 %3504, 0
  br i1 %3505, label %3506, label %3516

3506:                                             ; preds = %3502
  %3507 = load ptr, ptr %11, align 8, !tbaa !5
  %3508 = load ptr, ptr %10, align 8, !tbaa !5
  %3509 = load i32, ptr %3508, align 4, !tbaa !9
  %3510 = sext i32 %3509 to i64
  %3511 = getelementptr inbounds float, ptr %3507, i64 %3510
  %3512 = load float, ptr %3511, align 4, !tbaa !11
  %3513 = load float, ptr %47, align 4, !tbaa !11
  %3514 = fadd float %3512, %3513
  %3515 = load ptr, ptr %15, align 8, !tbaa !5
  store float %3514, ptr %3515, align 4, !tbaa !11
  br label %3525

3516:                                             ; preds = %3502
  %3517 = load ptr, ptr %11, align 8, !tbaa !5
  %3518 = load i32, ptr %42, align 4, !tbaa !9
  %3519 = sext i32 %3518 to i64
  %3520 = getelementptr inbounds float, ptr %3517, i64 %3519
  %3521 = load float, ptr %3520, align 4, !tbaa !11
  %3522 = load float, ptr %47, align 4, !tbaa !11
  %3523 = fadd float %3521, %3522
  %3524 = load ptr, ptr %15, align 8, !tbaa !5
  store float %3523, ptr %3524, align 4, !tbaa !11
  br label %3525

3525:                                             ; preds = %3516, %3506
  br label %3526

3526:                                             ; preds = %3525
  br label %3527

3527:                                             ; preds = %3526, %3266, %2693, %2412, %1955, %1303, %981, %619
  store i32 1, ptr %51, align 4
  br label %3528

3528:                                             ; preds = %3527, %83, %62
  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 12, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  ret void
}

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

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

declare void @slaed5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

declare float @slamch_(ptr noundef) #3

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

declare void @slaed6_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !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 [8 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @slaed4_(ptr nocapture noundef readonly %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) local_unnamed_addr #0 {
  %9 = alloca float, align 4
  %10 = alloca float, align 4
  %11 = alloca i32, align 4
  %12 = alloca [3 x float], align 4
  %13 = alloca i32, align 4
  %14 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  %15 = getelementptr inbounds i8, ptr %4, i64 -4
  %16 = getelementptr inbounds i8, ptr %3, i64 -4
  %17 = getelementptr inbounds i8, ptr %2, i64 -4
  store i32 0, ptr %7, align 4, !tbaa !5
  %18 = load i32, ptr %0, align 4, !tbaa !5
  switch i32 %18, label %26 [
    i32 1, label %19
    i32 2, label %25
  ]

19:                                               ; preds = %8
  %20 = load float, ptr %2, align 4, !tbaa !9
  %21 = load float, ptr %5, align 4, !tbaa !9
  %22 = load float, ptr %3, align 4, !tbaa !9
  %23 = fmul float %21, %22
  %24 = tail call float @llvm.fmuladd.f32(float %23, float %22, float %20)
  store float %24, ptr %6, align 4, !tbaa !9
  store float 1.000000e+00, ptr %4, align 4, !tbaa !9
  br label %.loopexit

25:                                               ; preds = %8
  tail call void @slaed5_(ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6) #6
  br label %.loopexit

26:                                               ; preds = %8
  %27 = tail call float @slamch_(ptr noundef nonnull @.str) #6
  %28 = load float, ptr %5, align 4, !tbaa !9
  %29 = fdiv float 1.000000e+00, %28
  %30 = load i32, ptr %1, align 4, !tbaa !5
  %31 = load i32, ptr %0, align 4, !tbaa !5
  %32 = icmp eq i32 %30, %31
  br i1 %32, label %33, label %635

33:                                               ; preds = %26
  %34 = add i32 %30, -1
  %35 = fmul float %28, 5.000000e-01
  %.not13141448 = icmp slt i32 %30, 1
  br i1 %.not13141448, label %._crit_edge1458, label %.lr.ph1451

.lr.ph1451:                                       ; preds = %33
  %36 = zext nneg i32 %30 to i64
  %37 = getelementptr inbounds float, ptr %17, i64 %36
  %38 = add nuw i32 %30, 1
  %wide.trip.count1624 = zext i32 %38 to i64
  %39 = zext nneg i32 %30 to i64
  %min.iters.check1884 = icmp ult i32 %30, 12
  br i1 %min.iters.check1884, label %scalar.ph1883.preheader, label %vector.memcheck1871

vector.memcheck1871:                              ; preds = %.lr.ph1451
  %40 = shl nuw nsw i64 %wide.trip.count1624, 2
  %41 = add nsw i64 %40, -4
  %scevgep1872 = getelementptr i8, ptr %4, i64 %41
  %42 = shl nuw nsw i64 %36, 2
  %scevgep1873 = getelementptr i8, ptr %2, i64 %42
  %scevgep1874 = getelementptr i8, ptr %2, i64 %41
  %bound01875 = icmp ugt ptr %scevgep1873, %4
  %bound11876 = icmp ult ptr %37, %scevgep1872
  %found.conflict1877 = and i1 %bound01875, %bound11876
  %bound01878 = icmp ugt ptr %scevgep1874, %4
  %bound11879 = icmp ugt ptr %scevgep1872, %2
  %found.conflict1880 = and i1 %bound01878, %bound11879
  %conflict.rdx1881 = or i1 %found.conflict1877, %found.conflict1880
  br i1 %conflict.rdx1881, label %scalar.ph1883.preheader, label %vector.ph1885

vector.ph1885:                                    ; preds = %vector.memcheck1871
  %n.vec1887 = and i64 %39, 2147483640
  %ind.end1888 = or disjoint i64 %n.vec1887, 1
  %broadcast.splatinsert1899 = insertelement <4 x float> poison, float %35, i64 0
  %broadcast.splat1900 = shufflevector <4 x float> %broadcast.splatinsert1899, <4 x float> poison, <4 x i32> zeroinitializer
  %43 = load float, ptr %37, align 4, !tbaa !9, !alias.scope !11
  %broadcast.splatinsert1897 = insertelement <4 x float> poison, float %43, i64 0
  %broadcast.splat1898 = shufflevector <4 x float> %broadcast.splatinsert1897, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1890

vector.body1890:                                  ; preds = %vector.body1890, %vector.ph1885
  %index1891 = phi i64 [ 0, %vector.ph1885 ], [ %index.next1901, %vector.body1890 ]
  %44 = getelementptr float, ptr %2, i64 %index1891
  %45 = getelementptr inbounds i8, ptr %44, i64 16
  %wide.load1893 = load <4 x float>, ptr %44, align 4, !tbaa !9, !alias.scope !14
  %wide.load1894 = load <4 x float>, ptr %45, align 4, !tbaa !9, !alias.scope !14
  %46 = fsub <4 x float> %wide.load1893, %broadcast.splat1898
  %47 = fsub <4 x float> %wide.load1894, %broadcast.splat1898
  %48 = fsub <4 x float> %46, %broadcast.splat1900
  %49 = fsub <4 x float> %47, %broadcast.splat1900
  %50 = getelementptr float, ptr %4, i64 %index1891
  %51 = getelementptr inbounds i8, ptr %50, i64 16
  store <4 x float> %48, ptr %50, align 4, !tbaa !9, !alias.scope !16, !noalias !18
  store <4 x float> %49, ptr %51, align 4, !tbaa !9, !alias.scope !16, !noalias !18
  %index.next1901 = add nuw i64 %index1891, 8
  %52 = icmp eq i64 %index.next1901, %n.vec1887
  br i1 %52, label %middle.block1882, label %vector.body1890, !llvm.loop !19

middle.block1882:                                 ; preds = %vector.body1890
  %cmp.n1902 = icmp eq i64 %n.vec1887, %39
  br i1 %cmp.n1902, label %._crit_edge1452, label %scalar.ph1883.preheader

scalar.ph1883.preheader:                          ; preds = %middle.block1882, %vector.memcheck1871, %.lr.ph1451
  %indvars.iv1621.ph = phi i64 [ 1, %vector.memcheck1871 ], [ 1, %.lr.ph1451 ], [ %ind.end1888, %middle.block1882 ]
  %53 = zext nneg i32 %30 to i64
  %54 = and i32 %30, 1
  %lcmp.mod2057.not = icmp eq i32 %54, 0
  br i1 %lcmp.mod2057.not, label %scalar.ph1883.prol.loopexit, label %scalar.ph1883.prol

scalar.ph1883.prol:                               ; preds = %scalar.ph1883.preheader
  %55 = getelementptr inbounds float, ptr %17, i64 %indvars.iv1621.ph
  %56 = load float, ptr %55, align 4, !tbaa !9
  %57 = load float, ptr %37, align 4, !tbaa !9
  %58 = fsub float %56, %57
  %59 = fsub float %58, %35
  %60 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1621.ph
  store float %59, ptr %60, align 4, !tbaa !9
  %indvars.iv.next1622.prol = add nuw nsw i64 %indvars.iv1621.ph, 1
  br label %scalar.ph1883.prol.loopexit

scalar.ph1883.prol.loopexit:                      ; preds = %scalar.ph1883.prol, %scalar.ph1883.preheader
  %indvars.iv1621.unr = phi i64 [ %indvars.iv1621.ph, %scalar.ph1883.preheader ], [ %indvars.iv.next1622.prol, %scalar.ph1883.prol ]
  %61 = icmp eq i64 %indvars.iv1621.ph, %53
  br i1 %61, label %._crit_edge1452, label %scalar.ph1883

scalar.ph1883:                                    ; preds = %scalar.ph1883.prol.loopexit, %scalar.ph1883
  %indvars.iv1621 = phi i64 [ %indvars.iv.next1622.1, %scalar.ph1883 ], [ %indvars.iv1621.unr, %scalar.ph1883.prol.loopexit ]
  %62 = getelementptr inbounds float, ptr %17, i64 %indvars.iv1621
  %63 = load float, ptr %62, align 4, !tbaa !9
  %64 = load float, ptr %37, align 4, !tbaa !9
  %65 = fsub float %63, %64
  %66 = fsub float %65, %35
  %67 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1621
  store float %66, ptr %67, align 4, !tbaa !9
  %68 = getelementptr float, ptr %2, i64 %indvars.iv1621
  %69 = load float, ptr %68, align 4, !tbaa !9
  %70 = load float, ptr %37, align 4, !tbaa !9
  %71 = fsub float %69, %70
  %72 = fsub float %71, %35
  %73 = getelementptr float, ptr %4, i64 %indvars.iv1621
  store float %72, ptr %73, align 4, !tbaa !9
  %indvars.iv.next1622.1 = add nuw nsw i64 %indvars.iv1621, 2
  %exitcond1625.not.1 = icmp eq i64 %indvars.iv.next1622.1, %wide.trip.count1624
  br i1 %exitcond1625.not.1, label %._crit_edge1452, label %scalar.ph1883, !llvm.loop !23

._crit_edge1452:                                  ; preds = %scalar.ph1883.prol.loopexit, %scalar.ph1883, %middle.block1882
  %.not13151453 = icmp slt i32 %30, 3
  br i1 %.not13151453, label %._crit_edge1458, label %.lr.ph1457.preheader

.lr.ph1457.preheader:                             ; preds = %._crit_edge1452
  %wide.trip.count1629 = zext nneg i32 %34 to i64
  %74 = add nsw i64 %wide.trip.count1629, -1
  %75 = add nsw i64 %wide.trip.count1629, -2
  %xtraiter2059 = and i64 %74, 3
  %76 = icmp ult i64 %75, 3
  br i1 %76, label %._crit_edge1458.loopexit.unr-lcssa, label %.lr.ph1457.preheader.new

.lr.ph1457.preheader.new:                         ; preds = %.lr.ph1457.preheader
  %unroll_iter2063 = and i64 %74, -4
  br label %.lr.ph1457

.lr.ph1457:                                       ; preds = %.lr.ph1457, %.lr.ph1457.preheader.new
  %indvars.iv1626 = phi i64 [ 1, %.lr.ph1457.preheader.new ], [ %indvars.iv.next1627.3, %.lr.ph1457 ]
  %.01455 = phi float [ 0.000000e+00, %.lr.ph1457.preheader.new ], [ %104, %.lr.ph1457 ]
  %niter2064 = phi i64 [ 0, %.lr.ph1457.preheader.new ], [ %niter2064.next.3, %.lr.ph1457 ]
  %77 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1626
  %78 = load float, ptr %77, align 4, !tbaa !9
  %79 = fmul float %78, %78
  %80 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1626
  %81 = load float, ptr %80, align 4, !tbaa !9
  %82 = fdiv float %79, %81
  %83 = fadd float %.01455, %82
  %84 = getelementptr float, ptr %3, i64 %indvars.iv1626
  %85 = load float, ptr %84, align 4, !tbaa !9
  %86 = fmul float %85, %85
  %87 = getelementptr float, ptr %4, i64 %indvars.iv1626
  %88 = load float, ptr %87, align 4, !tbaa !9
  %89 = fdiv float %86, %88
  %90 = fadd float %83, %89
  %indvars.iv.next1627.1 = add nuw nsw i64 %indvars.iv1626, 2
  %91 = getelementptr inbounds float, ptr %16, i64 %indvars.iv.next1627.1
  %92 = load float, ptr %91, align 4, !tbaa !9
  %93 = fmul float %92, %92
  %94 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.next1627.1
  %95 = load float, ptr %94, align 4, !tbaa !9
  %96 = fdiv float %93, %95
  %97 = fadd float %90, %96
  %indvars.iv.next1627.2 = add nuw nsw i64 %indvars.iv1626, 3
  %98 = getelementptr inbounds float, ptr %16, i64 %indvars.iv.next1627.2
  %99 = load float, ptr %98, align 4, !tbaa !9
  %100 = fmul float %99, %99
  %101 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.next1627.2
  %102 = load float, ptr %101, align 4, !tbaa !9
  %103 = fdiv float %100, %102
  %104 = fadd float %97, %103
  %indvars.iv.next1627.3 = add nuw nsw i64 %indvars.iv1626, 4
  %niter2064.next.3 = add i64 %niter2064, 4
  %niter2064.ncmp.3 = icmp eq i64 %niter2064.next.3, %unroll_iter2063
  br i1 %niter2064.ncmp.3, label %._crit_edge1458.loopexit.unr-lcssa, label %.lr.ph1457, !llvm.loop !24

._crit_edge1458.loopexit.unr-lcssa:               ; preds = %.lr.ph1457, %.lr.ph1457.preheader
  %.lcssa1980.ph = phi float [ poison, %.lr.ph1457.preheader ], [ %104, %.lr.ph1457 ]
  %indvars.iv1626.unr = phi i64 [ 1, %.lr.ph1457.preheader ], [ %indvars.iv.next1627.3, %.lr.ph1457 ]
  %.01455.unr = phi float [ 0.000000e+00, %.lr.ph1457.preheader ], [ %104, %.lr.ph1457 ]
  %lcmp.mod2061.not = icmp eq i64 %xtraiter2059, 0
  br i1 %lcmp.mod2061.not, label %._crit_edge1458, label %.lr.ph1457.epil

.lr.ph1457.epil:                                  ; preds = %._crit_edge1458.loopexit.unr-lcssa, %.lr.ph1457.epil
  %indvars.iv1626.epil = phi i64 [ %indvars.iv.next1627.epil, %.lr.ph1457.epil ], [ %indvars.iv1626.unr, %._crit_edge1458.loopexit.unr-lcssa ]
  %.01455.epil = phi float [ %111, %.lr.ph1457.epil ], [ %.01455.unr, %._crit_edge1458.loopexit.unr-lcssa ]
  %epil.iter2060 = phi i64 [ %epil.iter2060.next, %.lr.ph1457.epil ], [ 0, %._crit_edge1458.loopexit.unr-lcssa ]
  %105 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1626.epil
  %106 = load float, ptr %105, align 4, !tbaa !9
  %107 = fmul float %106, %106
  %108 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1626.epil
  %109 = load float, ptr %108, align 4, !tbaa !9
  %110 = fdiv float %107, %109
  %111 = fadd float %.01455.epil, %110
  %indvars.iv.next1627.epil = add nuw nsw i64 %indvars.iv1626.epil, 1
  %epil.iter2060.next = add i64 %epil.iter2060, 1
  %epil.iter2060.cmp.not = icmp eq i64 %epil.iter2060.next, %xtraiter2059
  br i1 %epil.iter2060.cmp.not, label %._crit_edge1458, label %.lr.ph1457.epil, !llvm.loop !25

._crit_edge1458:                                  ; preds = %._crit_edge1458.loopexit.unr-lcssa, %.lr.ph1457.epil, %33, %._crit_edge1452
  %.0.lcssa = phi float [ 0.000000e+00, %._crit_edge1452 ], [ 0.000000e+00, %33 ], [ %.lcssa1980.ph, %._crit_edge1458.loopexit.unr-lcssa ], [ %111, %.lr.ph1457.epil ]
  %112 = fadd float %29, %.0.lcssa
  %113 = sext i32 %34 to i64
  %114 = getelementptr inbounds float, ptr %16, i64 %113
  %115 = load float, ptr %114, align 4, !tbaa !9
  %116 = getelementptr inbounds float, ptr %15, i64 %113
  %117 = load float, ptr %116, align 4, !tbaa !9
  %118 = sext i32 %30 to i64
  %119 = getelementptr inbounds float, ptr %16, i64 %118
  %120 = load float, ptr %119, align 4, !tbaa !9
  %121 = insertelement <2 x float> poison, float %120, i64 0
  %122 = insertelement <2 x float> %121, float %115, i64 1
  %123 = fmul <2 x float> %122, %122
  %124 = getelementptr inbounds float, ptr %15, i64 %118
  %125 = load float, ptr %124, align 4, !tbaa !9
  %126 = insertelement <2 x float> poison, float %125, i64 0
  %127 = insertelement <2 x float> %126, float %117, i64 1
  %128 = fdiv <2 x float> %123, %127
  %129 = extractelement <2 x float> %128, i64 1
  %130 = fadd float %112, %129
  %131 = extractelement <2 x float> %128, i64 0
  %132 = fadd float %130, %131
  %133 = fcmp ugt float %132, 0.000000e+00
  %134 = getelementptr inbounds float, ptr %17, i64 %118
  %135 = load float, ptr %134, align 4, !tbaa !9
  %136 = getelementptr inbounds float, ptr %17, i64 %113
  %137 = load float, ptr %136, align 4, !tbaa !9
  %138 = fsub float %135, %137
  br i1 %133, label %182, label %139

139:                                              ; preds = %._crit_edge1458
  %140 = load float, ptr %5, align 4, !tbaa !9
  %141 = fadd float %138, %140
  %142 = insertelement <2 x float> poison, float %140, i64 0
  %143 = insertelement <2 x float> %142, float %141, i64 1
  %144 = fdiv <2 x float> %123, %143
  %shift = shufflevector <2 x float> %144, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %145 = fadd <2 x float> %144, %shift
  %146 = extractelement <2 x float> %145, i64 0
  %147 = fcmp ugt float %112, %146
  br i1 %147, label %148, label %180

148:                                              ; preds = %139
  %149 = fneg float %112
  %150 = extractelement <2 x float> %123, i64 1
  %151 = tail call float @llvm.fmuladd.f32(float %149, float %138, float %150)
  %152 = tail call float @llvm.fmuladd.f32(float %120, float %120, float %151)
  %153 = extractelement <2 x float> %123, i64 0
  %154 = fmul float %153, %138
  %155 = fcmp olt float %152, 0.000000e+00
  br i1 %155, label %156, label %168

156:                                              ; preds = %148
  %157 = fmul float %154, 2.000000e+00
  %158 = fpext float %157 to double
  %159 = fmul float %154, 4.000000e+00
  %160 = fmul float %112, %159
  %161 = tail call float @llvm.fmuladd.f32(float %152, float %152, float %160)
  %162 = fpext float %161 to double
  %163 = tail call double @sqrt(double noundef %162) #6
  %164 = fpext float %152 to double
  %165 = fsub double %163, %164
  %166 = fdiv double %158, %165
  %167 = fptrunc double %166 to float
  br label %180

168:                                              ; preds = %148
  %169 = fpext float %152 to double
  %170 = fmul float %154, 4.000000e+00
  %171 = fmul float %112, %170
  %172 = tail call float @llvm.fmuladd.f32(float %152, float %152, float %171)
  %173 = fpext float %172 to double
  %174 = tail call double @sqrt(double noundef %173) #6
  %175 = fadd double %174, %169
  %176 = fmul float %112, 2.000000e+00
  %177 = fpext float %176 to double
  %178 = fdiv double %175, %177
  %179 = fptrunc double %178 to float
  br label %180

180:                                              ; preds = %139, %156, %168
  %.01174 = phi float [ %167, %156 ], [ %179, %168 ], [ %140, %139 ]
  %181 = load float, ptr %5, align 4, !tbaa !9
  br label %213

182:                                              ; preds = %._crit_edge1458
  %183 = fneg float %112
  %184 = extractelement <2 x float> %123, i64 1
  %185 = tail call float @llvm.fmuladd.f32(float %183, float %138, float %184)
  %186 = tail call float @llvm.fmuladd.f32(float %120, float %120, float %185)
  %187 = extractelement <2 x float> %123, i64 0
  %188 = fmul float %187, %138
  %189 = fcmp olt float %186, 0.000000e+00
  br i1 %189, label %190, label %201

190:                                              ; preds = %182
  %191 = fmul float %188, 2.000000e+00
  %192 = fpext float %191 to double
  %193 = fmul float %188, 4.000000e+00
  %194 = fmul float %112, %193
  %195 = tail call float @llvm.fmuladd.f32(float %186, float %186, float %194)
  %196 = fpext float %195 to double
  %197 = tail call double @sqrt(double noundef %196) #6
  %198 = fpext float %186 to double
  %199 = fsub double %197, %198
  %200 = fdiv double %192, %199
  br label %212

201:                                              ; preds = %182
  %202 = fpext float %186 to double
  %203 = fmul float %188, 4.000000e+00
  %204 = fmul float %112, %203
  %205 = tail call float @llvm.fmuladd.f32(float %186, float %186, float %204)
  %206 = fpext float %205 to double
  %207 = tail call double @sqrt(double noundef %206) #6
  %208 = fadd double %207, %202
  %209 = fmul float %112, 2.000000e+00
  %210 = fpext float %209 to double
  %211 = fdiv double %208, %210
  br label %212

212:                                              ; preds = %201, %190
  %.11175.in = phi double [ %200, %190 ], [ %211, %201 ]
  %.11175 = fptrunc double %.11175.in to float
  br label %213

213:                                              ; preds = %212, %180
  %.01211 = phi float [ %35, %180 ], [ 0.000000e+00, %212 ]
  %.01203 = phi float [ %181, %180 ], [ %35, %212 ]
  %.21176 = phi float [ %.01174, %180 ], [ %.11175, %212 ]
  %214 = load i32, ptr %0, align 4, !tbaa !5
  %.not13161460 = icmp slt i32 %214, 1
  br i1 %.not13161460, label %.preheader, label %.lr.ph1463

.lr.ph1463:                                       ; preds = %213
  %215 = load i32, ptr %1, align 4, !tbaa !5
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds float, ptr %17, i64 %216
  %218 = add nuw i32 %214, 1
  %wide.trip.count1634 = zext i32 %218 to i64
  %219 = zext nneg i32 %214 to i64
  %min.iters.check1916 = icmp ult i32 %214, 12
  br i1 %min.iters.check1916, label %scalar.ph1915.preheader, label %vector.memcheck1903

scalar.ph1915.preheader:                          ; preds = %middle.block1914, %vector.memcheck1903, %.lr.ph1463
  %indvars.iv1631.ph = phi i64 [ 1, %vector.memcheck1903 ], [ 1, %.lr.ph1463 ], [ %ind.end1920, %middle.block1914 ]
  %220 = zext nneg i32 %214 to i64
  %221 = and i32 %214, 1
  %lcmp.mod2066.not = icmp eq i32 %221, 0
  br i1 %lcmp.mod2066.not, label %scalar.ph1915.prol.loopexit, label %scalar.ph1915.prol

scalar.ph1915.prol:                               ; preds = %scalar.ph1915.preheader
  %222 = getelementptr inbounds float, ptr %17, i64 %indvars.iv1631.ph
  %223 = load float, ptr %222, align 4, !tbaa !9
  %224 = load float, ptr %217, align 4, !tbaa !9
  %225 = fsub float %223, %224
  %226 = fsub float %225, %.21176
  %227 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1631.ph
  store float %226, ptr %227, align 4, !tbaa !9
  %indvars.iv.next1632.prol = add nuw nsw i64 %indvars.iv1631.ph, 1
  br label %scalar.ph1915.prol.loopexit

scalar.ph1915.prol.loopexit:                      ; preds = %scalar.ph1915.prol, %scalar.ph1915.preheader
  %indvars.iv1631.unr = phi i64 [ %indvars.iv1631.ph, %scalar.ph1915.preheader ], [ %indvars.iv.next1632.prol, %scalar.ph1915.prol ]
  %228 = icmp eq i64 %indvars.iv1631.ph, %220
  br i1 %228, label %.preheader, label %scalar.ph1915

vector.memcheck1903:                              ; preds = %.lr.ph1463
  %229 = shl nuw nsw i64 %wide.trip.count1634, 2
  %230 = add nsw i64 %229, -4
  %scevgep1904 = getelementptr i8, ptr %4, i64 %230
  %231 = shl nsw i64 %216, 2
  %scevgep1905 = getelementptr i8, ptr %2, i64 %231
  %scevgep1906 = getelementptr i8, ptr %2, i64 %230
  %bound01907 = icmp ugt ptr %scevgep1905, %4
  %bound11908 = icmp ult ptr %217, %scevgep1904
  %found.conflict1909 = and i1 %bound01907, %bound11908
  %bound01910 = icmp ugt ptr %scevgep1906, %4
  %bound11911 = icmp ugt ptr %scevgep1904, %2
  %found.conflict1912 = and i1 %bound01910, %bound11911
  %conflict.rdx1913 = or i1 %found.conflict1909, %found.conflict1912
  br i1 %conflict.rdx1913, label %scalar.ph1915.preheader, label %vector.ph1917

vector.ph1917:                                    ; preds = %vector.memcheck1903
  %n.vec1919 = and i64 %219, 2147483640
  %ind.end1920 = or disjoint i64 %n.vec1919, 1
  %broadcast.splatinsert1931 = insertelement <4 x float> poison, float %.21176, i64 0
  %broadcast.splat1932 = shufflevector <4 x float> %broadcast.splatinsert1931, <4 x float> poison, <4 x i32> zeroinitializer
  %232 = load float, ptr %217, align 4, !tbaa !9, !alias.scope !27
  %broadcast.splatinsert1929 = insertelement <4 x float> poison, float %232, i64 0
  %broadcast.splat1930 = shufflevector <4 x float> %broadcast.splatinsert1929, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1922

vector.body1922:                                  ; preds = %vector.body1922, %vector.ph1917
  %index1923 = phi i64 [ 0, %vector.ph1917 ], [ %index.next1933, %vector.body1922 ]
  %233 = getelementptr float, ptr %2, i64 %index1923
  %234 = getelementptr inbounds i8, ptr %233, i64 16
  %wide.load1925 = load <4 x float>, ptr %233, align 4, !tbaa !9, !alias.scope !30
  %wide.load1926 = load <4 x float>, ptr %234, align 4, !tbaa !9, !alias.scope !30
  %235 = fsub <4 x float> %wide.load1925, %broadcast.splat1930
  %236 = fsub <4 x float> %wide.load1926, %broadcast.splat1930
  %237 = fsub <4 x float> %235, %broadcast.splat1932
  %238 = fsub <4 x float> %236, %broadcast.splat1932
  %239 = getelementptr float, ptr %4, i64 %index1923
  %240 = getelementptr inbounds i8, ptr %239, i64 16
  store <4 x float> %237, ptr %239, align 4, !tbaa !9, !alias.scope !32, !noalias !34
  store <4 x float> %238, ptr %240, align 4, !tbaa !9, !alias.scope !32, !noalias !34
  %index.next1933 = add nuw i64 %index1923, 8
  %241 = icmp eq i64 %index.next1933, %n.vec1919
  br i1 %241, label %middle.block1914, label %vector.body1922, !llvm.loop !35

middle.block1914:                                 ; preds = %vector.body1922
  %cmp.n1934 = icmp eq i64 %n.vec1919, %219
  br i1 %cmp.n1934, label %.preheader, label %scalar.ph1915.preheader

.preheader:                                       ; preds = %scalar.ph1915.prol.loopexit, %scalar.ph1915, %middle.block1914, %213
  %.not1317.not1464 = icmp sgt i32 %30, 1
  br i1 %.not1317.not1464, label %.lr.ph1469.preheader, label %._crit_edge1470

.lr.ph1469.preheader:                             ; preds = %.preheader
  %wide.trip.count1639 = zext nneg i32 %30 to i64
  %242 = add nsw i64 %wide.trip.count1639, -1
  %xtraiter2068 = and i64 %242, 1
  %243 = icmp eq i32 %30, 2
  br i1 %243, label %._crit_edge1470.loopexit.unr-lcssa, label %.lr.ph1469.preheader.new

.lr.ph1469.preheader.new:                         ; preds = %.lr.ph1469.preheader
  %unroll_iter2075 = and i64 %242, -2
  br label %.lr.ph1469

scalar.ph1915:                                    ; preds = %scalar.ph1915.prol.loopexit, %scalar.ph1915
  %indvars.iv1631 = phi i64 [ %indvars.iv.next1632.1, %scalar.ph1915 ], [ %indvars.iv1631.unr, %scalar.ph1915.prol.loopexit ]
  %244 = getelementptr inbounds float, ptr %17, i64 %indvars.iv1631
  %245 = load float, ptr %244, align 4, !tbaa !9
  %246 = load float, ptr %217, align 4, !tbaa !9
  %247 = fsub float %245, %246
  %248 = fsub float %247, %.21176
  %249 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1631
  store float %248, ptr %249, align 4, !tbaa !9
  %250 = getelementptr float, ptr %2, i64 %indvars.iv1631
  %251 = load float, ptr %250, align 4, !tbaa !9
  %252 = load float, ptr %217, align 4, !tbaa !9
  %253 = fsub float %251, %252
  %254 = fsub float %253, %.21176
  %255 = getelementptr float, ptr %4, i64 %indvars.iv1631
  store float %254, ptr %255, align 4, !tbaa !9
  %indvars.iv.next1632.1 = add nuw nsw i64 %indvars.iv1631, 2
  %exitcond1635.not.1 = icmp eq i64 %indvars.iv.next1632.1, %wide.trip.count1634
  br i1 %exitcond1635.not.1, label %.preheader, label %scalar.ph1915, !llvm.loop !36

.lr.ph1469:                                       ; preds = %.lr.ph1469, %.lr.ph1469.preheader.new
  %indvars.iv1636 = phi i64 [ 1, %.lr.ph1469.preheader.new ], [ %indvars.iv.next1637.1, %.lr.ph1469 ]
  %.011871467 = phi float [ 0.000000e+00, %.lr.ph1469.preheader.new ], [ %278, %.lr.ph1469 ]
  %256 = phi <2 x float> [ zeroinitializer, %.lr.ph1469.preheader.new ], [ %276, %.lr.ph1469 ]
  %niter2076 = phi i64 [ 0, %.lr.ph1469.preheader.new ], [ %niter2076.next.1, %.lr.ph1469 ]
  %257 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1636
  %258 = load float, ptr %257, align 4, !tbaa !9
  %259 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1636
  %260 = load float, ptr %259, align 4, !tbaa !9
  %261 = fdiv float %258, %260
  %262 = insertelement <2 x float> poison, float %258, i64 0
  %263 = insertelement <2 x float> %262, float %261, i64 1
  %264 = shufflevector <2 x float> %263, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %265 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %263, <2 x float> %264, <2 x float> %256)
  %266 = extractelement <2 x float> %265, i64 0
  %267 = fadd float %.011871467, %266
  %268 = getelementptr float, ptr %3, i64 %indvars.iv1636
  %269 = load float, ptr %268, align 4, !tbaa !9
  %270 = getelementptr float, ptr %4, i64 %indvars.iv1636
  %271 = load float, ptr %270, align 4, !tbaa !9
  %272 = fdiv float %269, %271
  %273 = insertelement <2 x float> poison, float %269, i64 0
  %274 = insertelement <2 x float> %273, float %272, i64 1
  %275 = shufflevector <2 x float> %274, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %276 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %274, <2 x float> %275, <2 x float> %265)
  %277 = extractelement <2 x float> %276, i64 0
  %278 = fadd float %267, %277
  %indvars.iv.next1637.1 = add nuw nsw i64 %indvars.iv1636, 2
  %niter2076.next.1 = add i64 %niter2076, 2
  %niter2076.ncmp.1 = icmp eq i64 %niter2076.next.1, %unroll_iter2075
  br i1 %niter2076.ncmp.1, label %._crit_edge1470.loopexit.unr-lcssa.loopexit, label %.lr.ph1469, !llvm.loop !37

._crit_edge1470.loopexit.unr-lcssa.loopexit:      ; preds = %.lr.ph1469
  %279 = extractelement <2 x float> %276, i64 1
  br label %._crit_edge1470.loopexit.unr-lcssa

._crit_edge1470.loopexit.unr-lcssa:               ; preds = %._crit_edge1470.loopexit.unr-lcssa.loopexit, %.lr.ph1469.preheader
  %.lcssa1979.ph = phi float [ poison, %.lr.ph1469.preheader ], [ %277, %._crit_edge1470.loopexit.unr-lcssa.loopexit ]
  %.lcssa1978.ph = phi float [ poison, %.lr.ph1469.preheader ], [ %278, %._crit_edge1470.loopexit.unr-lcssa.loopexit ]
  %.lcssa1977.ph = phi float [ poison, %.lr.ph1469.preheader ], [ %279, %._crit_edge1470.loopexit.unr-lcssa.loopexit ]
  %indvars.iv1636.unr = phi i64 [ 1, %.lr.ph1469.preheader ], [ %indvars.iv.next1637.1, %._crit_edge1470.loopexit.unr-lcssa.loopexit ]
  %.011871467.unr = phi float [ 0.000000e+00, %.lr.ph1469.preheader ], [ %278, %._crit_edge1470.loopexit.unr-lcssa.loopexit ]
  %.unr2070 = phi <2 x float> [ zeroinitializer, %.lr.ph1469.preheader ], [ %276, %._crit_edge1470.loopexit.unr-lcssa.loopexit ]
  %lcmp.mod2071.not = icmp eq i64 %xtraiter2068, 0
  br i1 %lcmp.mod2071.not, label %._crit_edge1470, label %.lr.ph1469.epil

.lr.ph1469.epil:                                  ; preds = %._crit_edge1470.loopexit.unr-lcssa
  %280 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1636.unr
  %281 = load float, ptr %280, align 4, !tbaa !9
  %282 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1636.unr
  %283 = load float, ptr %282, align 4, !tbaa !9
  %284 = fdiv float %281, %283
  %285 = insertelement <2 x float> poison, float %281, i64 0
  %286 = insertelement <2 x float> %285, float %284, i64 1
  %287 = shufflevector <2 x float> %286, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %288 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %286, <2 x float> %287, <2 x float> %.unr2070)
  %289 = extractelement <2 x float> %288, i64 0
  %290 = fadd float %.011871467.unr, %289
  %291 = extractelement <2 x float> %288, i64 1
  br label %._crit_edge1470

._crit_edge1470:                                  ; preds = %.lr.ph1469.epil, %._crit_edge1470.loopexit.unr-lcssa, %.preheader
  %.01232.lcssa = phi float [ 0.000000e+00, %.preheader ], [ %.lcssa1977.ph, %._crit_edge1470.loopexit.unr-lcssa ], [ %291, %.lr.ph1469.epil ]
  %.01187.lcssa = phi float [ 0.000000e+00, %.preheader ], [ %.lcssa1978.ph, %._crit_edge1470.loopexit.unr-lcssa ], [ %290, %.lr.ph1469.epil ]
  %.1.lcssa = phi float [ 0.000000e+00, %.preheader ], [ %.lcssa1979.ph, %._crit_edge1470.loopexit.unr-lcssa ], [ %289, %.lr.ph1469.epil ]
  %292 = fcmp oge float %.01187.lcssa, 0.000000e+00
  %293 = fneg float %.01187.lcssa
  %294 = select i1 %292, float %.01187.lcssa, float %293
  %295 = sext i32 %214 to i64
  %296 = getelementptr inbounds float, ptr %16, i64 %295
  %297 = load float, ptr %296, align 4, !tbaa !9
  %298 = getelementptr inbounds float, ptr %15, i64 %295
  %299 = load float, ptr %298, align 4, !tbaa !9
  %300 = fdiv float %297, %299
  %301 = fmul float %297, %300
  %302 = fmul float %300, %300
  %303 = fneg float %301
  %304 = fsub float %303, %.1.lcssa
  %305 = tail call float @llvm.fmuladd.f32(float %304, float 8.000000e+00, float %294)
  %306 = fsub float %305, %301
  %307 = fadd float %29, %306
  %308 = fcmp oge float %.21176, 0.000000e+00
  %309 = fneg float %.21176
  %310 = select i1 %308, float %.21176, float %309
  %311 = fadd float %.01232.lcssa, %302
  %312 = tail call float @llvm.fmuladd.f32(float %310, float %311, float %307)
  %313 = fadd float %29, %301
  %314 = fadd float %.1.lcssa, %313
  %315 = fcmp oge float %314, 0.000000e+00
  %316 = fneg float %314
  %317 = select i1 %315, float %314, float %316
  %318 = fmul float %27, %312
  %319 = fcmp ugt float %317, %318
  br i1 %319, label %326, label %320

320:                                              ; preds = %._crit_edge1470
  %321 = load i32, ptr %1, align 4, !tbaa !5
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds float, ptr %17, i64 %322
  %324 = load float, ptr %323, align 4, !tbaa !9
  %325 = fadd float %.21176, %324
  store float %325, ptr %6, align 4, !tbaa !9
  br label %.loopexit

326:                                              ; preds = %._crit_edge1470
  %327 = fcmp ugt float %314, 0.000000e+00
  br i1 %327, label %331, label %328

328:                                              ; preds = %326
  %329 = fcmp oge float %.01211, %.21176
  %330 = select i1 %329, float %.01211, float %.21176
  br label %thread-pre-split

331:                                              ; preds = %326
  %332 = fcmp ole float %.01203, %.21176
  %333 = select i1 %332, float %.01203, float %.21176
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %331, %328
  %.11212 = phi float [ %330, %328 ], [ %.01211, %331 ]
  %.11204 = phi float [ %.01203, %328 ], [ %333, %331 ]
  %334 = getelementptr i8, ptr %298, i64 -4
  %335 = load float, ptr %334, align 4, !tbaa !9
  %336 = fneg float %335
  %337 = tail call float @llvm.fmuladd.f32(float %336, float %.01232.lcssa, float %314)
  %338 = fneg float %299
  %339 = tail call float @llvm.fmuladd.f32(float %338, float %302, float %337)
  %340 = fadd float %299, %335
  %341 = fmul float %299, %335
  %342 = fneg float %341
  %343 = fmul float %311, %342
  %344 = tail call float @llvm.fmuladd.f32(float %340, float %314, float %343)
  %345 = fmul float %314, %341
  %346 = fcmp olt float %339, 0.000000e+00
  %347 = fneg float %339
  %348 = select i1 %346, float %347, float %339
  %349 = fcmp oeq float %339, 0.000000e+00
  br i1 %349, label %350, label %352

350:                                              ; preds = %thread-pre-split
  %351 = fsub float %.11204, %.21176
  br label %384

352:                                              ; preds = %thread-pre-split
  %353 = fcmp ult float %344, 0.000000e+00
  br i1 %353, label %369, label %354

354:                                              ; preds = %352
  %355 = fpext float %344 to double
  %356 = fmul float %345, -4.000000e+00
  %357 = fmul float %356, %348
  %358 = tail call float @llvm.fmuladd.f32(float %344, float %344, float %357)
  %359 = fcmp oge float %358, 0.000000e+00
  %360 = fneg float %358
  %361 = select i1 %359, float %358, float %360
  %362 = fpext float %361 to double
  %363 = tail call double @sqrt(double noundef %362) #6
  %364 = fadd double %363, %355
  %365 = fmul float %348, 2.000000e+00
  %366 = fpext float %365 to double
  %367 = fdiv double %364, %366
  %368 = fptrunc double %367 to float
  br label %384

369:                                              ; preds = %352
  %370 = fmul float %345, 2.000000e+00
  %371 = fpext float %370 to double
  %372 = fpext float %344 to double
  %373 = fmul float %345, -4.000000e+00
  %374 = fmul float %373, %348
  %375 = tail call float @llvm.fmuladd.f32(float %344, float %344, float %374)
  %376 = fcmp oge float %375, 0.000000e+00
  %377 = fneg float %375
  %378 = select i1 %376, float %375, float %377
  %379 = fpext float %378 to double
  %380 = tail call double @sqrt(double noundef %379) #6
  %381 = fsub double %372, %380
  %382 = fdiv double %371, %381
  %383 = fptrunc double %382 to float
  br label %384

384:                                              ; preds = %354, %369, %350
  %385 = phi float [ %368, %354 ], [ %383, %369 ], [ %351, %350 ]
  %386 = fmul float %314, %385
  %387 = fcmp ogt float %386, 0.000000e+00
  %388 = fdiv float %316, %311
  %389 = select i1 %387, float %388, float %385
  %390 = fadd float %.21176, %389
  %391 = fcmp ogt float %390, %.11204
  %392 = fcmp olt float %390, %.11212
  %or.cond = select i1 %391, i1 true, i1 %392
  br i1 %or.cond, label %393, label %401

393:                                              ; preds = %384
  %394 = fcmp olt float %314, 0.000000e+00
  br i1 %394, label %395, label %398

395:                                              ; preds = %393
  %396 = fsub float %.11204, %.21176
  %397 = fmul float %396, 5.000000e-01
  br label %401

398:                                              ; preds = %393
  %399 = fsub float %.11212, %.21176
  %400 = fmul float %399, 5.000000e-01
  br label %401

401:                                              ; preds = %384, %395, %398
  %402 = phi float [ %389, %384 ], [ %397, %395 ], [ %400, %398 ]
  %403 = load i32, ptr %0, align 4, !tbaa !5
  %.not13181474 = icmp slt i32 %403, 1
  br i1 %.not13181474, label %._crit_edge1478, label %.lr.ph1477

.lr.ph1477:                                       ; preds = %401
  %404 = add nuw i32 %403, 1
  %wide.trip.count1644 = zext i32 %404 to i64
  %405 = zext nneg i32 %403 to i64
  %min.iters.check1937 = icmp ult i32 %403, 8
  br i1 %min.iters.check1937, label %scalar.ph1936.preheader, label %vector.ph1938

vector.ph1938:                                    ; preds = %.lr.ph1477
  %n.vec1940 = and i64 %405, 2147483640
  %ind.end1941 = or disjoint i64 %n.vec1940, 1
  %broadcast.splatinsert1948 = insertelement <4 x float> poison, float %402, i64 0
  %broadcast.splat1949 = shufflevector <4 x float> %broadcast.splatinsert1948, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1943

vector.body1943:                                  ; preds = %vector.body1943, %vector.ph1938
  %index1944 = phi i64 [ 0, %vector.ph1938 ], [ %index.next1950, %vector.body1943 ]
  %406 = getelementptr float, ptr %4, i64 %index1944
  %407 = getelementptr inbounds i8, ptr %406, i64 16
  %wide.load1946 = load <4 x float>, ptr %406, align 4, !tbaa !9
  %wide.load1947 = load <4 x float>, ptr %407, align 4, !tbaa !9
  %408 = fsub <4 x float> %wide.load1946, %broadcast.splat1949
  %409 = fsub <4 x float> %wide.load1947, %broadcast.splat1949
  store <4 x float> %408, ptr %406, align 4, !tbaa !9
  store <4 x float> %409, ptr %407, align 4, !tbaa !9
  %index.next1950 = add nuw i64 %index1944, 8
  %410 = icmp eq i64 %index.next1950, %n.vec1940
  br i1 %410, label %middle.block1935, label %vector.body1943, !llvm.loop !38

middle.block1935:                                 ; preds = %vector.body1943
  %cmp.n1951 = icmp eq i64 %n.vec1940, %405
  br i1 %cmp.n1951, label %._crit_edge1478, label %scalar.ph1936.preheader

scalar.ph1936.preheader:                          ; preds = %middle.block1935, %.lr.ph1477
  %indvars.iv1641.ph = phi i64 [ 1, %.lr.ph1477 ], [ %ind.end1941, %middle.block1935 ]
  br label %scalar.ph1936

scalar.ph1936:                                    ; preds = %scalar.ph1936.preheader, %scalar.ph1936
  %indvars.iv1641 = phi i64 [ %indvars.iv.next1642, %scalar.ph1936 ], [ %indvars.iv1641.ph, %scalar.ph1936.preheader ]
  %411 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1641
  %412 = load float, ptr %411, align 4, !tbaa !9
  %413 = fsub float %412, %402
  store float %413, ptr %411, align 4, !tbaa !9
  %indvars.iv.next1642 = add nuw nsw i64 %indvars.iv1641, 1
  %exitcond1645.not = icmp eq i64 %indvars.iv.next1642, %wide.trip.count1644
  br i1 %exitcond1645.not, label %._crit_edge1478, label %scalar.ph1936, !llvm.loop !39

._crit_edge1478:                                  ; preds = %scalar.ph1936, %middle.block1935, %401
  %414 = fadd float %.21176, %402
  br i1 %.not1317.not1464, label %.lr.ph1485.preheader, label %.lr.ph1523

.lr.ph1485.preheader:                             ; preds = %._crit_edge1478
  %wide.trip.count1649 = zext nneg i32 %30 to i64
  %415 = add nsw i64 %wide.trip.count1649, -1
  %xtraiter2077 = and i64 %415, 1
  %416 = icmp eq i32 %30, 2
  br i1 %416, label %.lr.ph1523.loopexit.unr-lcssa, label %.lr.ph1485.preheader.new

.lr.ph1485.preheader.new:                         ; preds = %.lr.ph1485.preheader
  %unroll_iter2084 = and i64 %415, -2
  br label %.lr.ph1485

.lr.ph1485:                                       ; preds = %.lr.ph1485, %.lr.ph1485.preheader.new
  %indvars.iv1646 = phi i64 [ 1, %.lr.ph1485.preheader.new ], [ %indvars.iv.next1647.1, %.lr.ph1485 ]
  %.111881482 = phi float [ 0.000000e+00, %.lr.ph1485.preheader.new ], [ %439, %.lr.ph1485 ]
  %417 = phi <2 x float> [ zeroinitializer, %.lr.ph1485.preheader.new ], [ %437, %.lr.ph1485 ]
  %niter2085 = phi i64 [ 0, %.lr.ph1485.preheader.new ], [ %niter2085.next.1, %.lr.ph1485 ]
  %418 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1646
  %419 = load float, ptr %418, align 4, !tbaa !9
  %420 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1646
  %421 = load float, ptr %420, align 4, !tbaa !9
  %422 = fdiv float %419, %421
  %423 = insertelement <2 x float> poison, float %419, i64 0
  %424 = insertelement <2 x float> %423, float %422, i64 1
  %425 = shufflevector <2 x float> %424, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %426 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %424, <2 x float> %425, <2 x float> %417)
  %427 = extractelement <2 x float> %426, i64 0
  %428 = fadd float %.111881482, %427
  %429 = getelementptr float, ptr %3, i64 %indvars.iv1646
  %430 = load float, ptr %429, align 4, !tbaa !9
  %431 = getelementptr float, ptr %4, i64 %indvars.iv1646
  %432 = load float, ptr %431, align 4, !tbaa !9
  %433 = fdiv float %430, %432
  %434 = insertelement <2 x float> poison, float %430, i64 0
  %435 = insertelement <2 x float> %434, float %433, i64 1
  %436 = shufflevector <2 x float> %435, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %437 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %435, <2 x float> %436, <2 x float> %426)
  %438 = extractelement <2 x float> %437, i64 0
  %439 = fadd float %428, %438
  %indvars.iv.next1647.1 = add nuw nsw i64 %indvars.iv1646, 2
  %niter2085.next.1 = add i64 %niter2085, 2
  %niter2085.ncmp.1 = icmp eq i64 %niter2085.next.1, %unroll_iter2084
  br i1 %niter2085.ncmp.1, label %.lr.ph1523.loopexit.unr-lcssa.loopexit, label %.lr.ph1485, !llvm.loop !40

.lr.ph1523.loopexit.unr-lcssa.loopexit:           ; preds = %.lr.ph1485
  %440 = extractelement <2 x float> %437, i64 1
  br label %.lr.ph1523.loopexit.unr-lcssa

.lr.ph1523.loopexit.unr-lcssa:                    ; preds = %.lr.ph1523.loopexit.unr-lcssa.loopexit, %.lr.ph1485.preheader
  %.lcssa1976.ph = phi float [ poison, %.lr.ph1485.preheader ], [ %438, %.lr.ph1523.loopexit.unr-lcssa.loopexit ]
  %.lcssa1975.ph = phi float [ poison, %.lr.ph1485.preheader ], [ %439, %.lr.ph1523.loopexit.unr-lcssa.loopexit ]
  %.lcssa1974.ph = phi float [ poison, %.lr.ph1485.preheader ], [ %440, %.lr.ph1523.loopexit.unr-lcssa.loopexit ]
  %indvars.iv1646.unr = phi i64 [ 1, %.lr.ph1485.preheader ], [ %indvars.iv.next1647.1, %.lr.ph1523.loopexit.unr-lcssa.loopexit ]
  %.111881482.unr = phi float [ 0.000000e+00, %.lr.ph1485.preheader ], [ %439, %.lr.ph1523.loopexit.unr-lcssa.loopexit ]
  %.unr2079 = phi <2 x float> [ zeroinitializer, %.lr.ph1485.preheader ], [ %437, %.lr.ph1523.loopexit.unr-lcssa.loopexit ]
  %lcmp.mod2080.not = icmp eq i64 %xtraiter2077, 0
  br i1 %lcmp.mod2080.not, label %.lr.ph1523, label %.lr.ph1485.epil

.lr.ph1485.epil:                                  ; preds = %.lr.ph1523.loopexit.unr-lcssa
  %441 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1646.unr
  %442 = load float, ptr %441, align 4, !tbaa !9
  %443 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1646.unr
  %444 = load float, ptr %443, align 4, !tbaa !9
  %445 = fdiv float %442, %444
  %446 = insertelement <2 x float> poison, float %442, i64 0
  %447 = insertelement <2 x float> %446, float %445, i64 1
  %448 = shufflevector <2 x float> %447, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %449 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %447, <2 x float> %448, <2 x float> %.unr2079)
  %450 = extractelement <2 x float> %449, i64 0
  %451 = fadd float %.111881482.unr, %450
  %452 = extractelement <2 x float> %449, i64 1
  br label %.lr.ph1523

.lr.ph1523:                                       ; preds = %.lr.ph1485.epil, %.lr.ph1523.loopexit.unr-lcssa, %._crit_edge1478
  %.11233.lcssa = phi float [ 0.000000e+00, %._crit_edge1478 ], [ %.lcssa1974.ph, %.lr.ph1523.loopexit.unr-lcssa ], [ %452, %.lr.ph1485.epil ]
  %.11188.lcssa = phi float [ 0.000000e+00, %._crit_edge1478 ], [ %.lcssa1975.ph, %.lr.ph1523.loopexit.unr-lcssa ], [ %451, %.lr.ph1485.epil ]
  %.2.lcssa = phi float [ 0.000000e+00, %._crit_edge1478 ], [ %.lcssa1976.ph, %.lr.ph1523.loopexit.unr-lcssa ], [ %450, %.lr.ph1485.epil ]
  %453 = sext i32 %403 to i64
  %454 = getelementptr inbounds float, ptr %16, i64 %453
  %455 = load float, ptr %454, align 4, !tbaa !9
  %456 = getelementptr inbounds float, ptr %15, i64 %453
  %457 = load float, ptr %456, align 4, !tbaa !9
  %458 = fdiv float %455, %457
  %459 = fmul float %455, %458
  %460 = fadd float %29, %459
  %461 = fadd float %.2.lcssa, %460
  %462 = fcmp oge float %414, 0.000000e+00
  %463 = fneg float %414
  %464 = select i1 %462, float %414, float %463
  %465 = fmul float %458, %458
  %466 = fadd float %.11233.lcssa, %465
  %467 = fneg float %459
  %468 = fsub float %467, %.2.lcssa
  %469 = fcmp oge float %.11188.lcssa, 0.000000e+00
  %470 = fneg float %.11188.lcssa
  %471 = select i1 %469, float %.11188.lcssa, float %470
  %472 = tail call float @llvm.fmuladd.f32(float %468, float 8.000000e+00, float %471)
  %473 = fsub float %472, %459
  %474 = fadd float %29, %473
  %475 = tail call float @llvm.fmuladd.f32(float %464, float %466, float %474)
  %invariant.gep = getelementptr i8, ptr %4, i64 -8
  %wide.trip.count1659 = zext i32 %30 to i64
  %476 = add nsw i64 %wide.trip.count1659, -1
  %xtraiter2086 = and i64 %476, 1
  %477 = icmp eq i32 %30, 2
  %unroll_iter2093 = and i64 %476, -2
  %lcmp.mod2089.not = icmp eq i64 %xtraiter2086, 0
  br label %478

478:                                              ; preds = %.lr.ph1523, %._crit_edge1502
  %479 = phi float [ %457, %.lr.ph1523 ], [ %614, %._crit_edge1502 ]
  %480 = phi i32 [ %403, %.lr.ph1523 ], [ %559, %._crit_edge1502 ]
  %storemerge13201521 = phi i32 [ 3, %.lr.ph1523 ], [ %storemerge1320, %._crit_edge1502 ]
  %.311771520 = phi float [ %414, %.lr.ph1523 ], [ %570, %._crit_edge1502 ]
  %.211891519 = phi float [ %475, %.lr.ph1523 ], [ %627, %._crit_edge1502 ]
  %.212051518 = phi float [ %.11204, %.lr.ph1523 ], [ %.31206, %._crit_edge1502 ]
  %.212131517 = phi float [ %.11212, %.lr.ph1523 ], [ %.31214, %._crit_edge1502 ]
  %.212341516 = phi float [ %.11233.lcssa, %.lr.ph1523 ], [ %.31235.lcssa, %._crit_edge1502 ]
  %.012421515 = phi float [ %465, %.lr.ph1523 ], [ %617, %._crit_edge1502 ]
  %storemerge13211514 = phi float [ %461, %.lr.ph1523 ], [ %629, %._crit_edge1502 ]
  %481 = fcmp oge float %storemerge13211514, 0.000000e+00
  %482 = fneg float %storemerge13211514
  %483 = select i1 %481, float %storemerge13211514, float %482
  %484 = fmul float %27, %.211891519
  %485 = fcmp ugt float %483, %484
  br i1 %485, label %492, label %486

486:                                              ; preds = %478
  %487 = load i32, ptr %1, align 4, !tbaa !5
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds float, ptr %17, i64 %488
  %490 = load float, ptr %489, align 4, !tbaa !9
  %491 = fadd float %.311771520, %490
  store float %491, ptr %6, align 4, !tbaa !9
  br label %.loopexit

492:                                              ; preds = %478
  %493 = fcmp ugt float %storemerge13211514, 0.000000e+00
  br i1 %493, label %497, label %494

494:                                              ; preds = %492
  %495 = fcmp oge float %.212131517, %.311771520
  %496 = select i1 %495, float %.212131517, float %.311771520
  br label %500

497:                                              ; preds = %492
  %498 = fcmp ole float %.212051518, %.311771520
  %499 = select i1 %498, float %.212051518, float %.311771520
  br label %500

500:                                              ; preds = %497, %494
  %.31214 = phi float [ %496, %494 ], [ %.212131517, %497 ]
  %.31206 = phi float [ %.212051518, %494 ], [ %499, %497 ]
  %501 = sext i32 %480 to i64
  %gep = getelementptr float, ptr %invariant.gep, i64 %501
  %502 = load float, ptr %gep, align 4, !tbaa !9
  %503 = fneg float %502
  %504 = tail call float @llvm.fmuladd.f32(float %503, float %.212341516, float %storemerge13211514)
  %505 = fneg float %479
  %506 = tail call float @llvm.fmuladd.f32(float %505, float %.012421515, float %504)
  %507 = fadd float %502, %479
  %508 = fmul float %502, %479
  %509 = fadd float %.012421515, %.212341516
  %510 = fneg float %508
  %511 = fmul float %509, %510
  %512 = tail call float @llvm.fmuladd.f32(float %507, float %storemerge13211514, float %511)
  %513 = fmul float %storemerge13211514, %508
  %514 = fcmp ult float %512, 0.000000e+00
  br i1 %514, label %529, label %515

515:                                              ; preds = %500
  %516 = fpext float %512 to double
  %517 = fmul float %513, -4.000000e+00
  %518 = fmul float %506, %517
  %519 = tail call float @llvm.fmuladd.f32(float %512, float %512, float %518)
  %520 = fcmp oge float %519, 0.000000e+00
  %521 = fneg float %519
  %522 = select i1 %520, float %519, float %521
  %523 = fpext float %522 to double
  %524 = tail call double @sqrt(double noundef %523) #6
  %525 = fadd double %524, %516
  %526 = fmul float %506, 2.000000e+00
  %527 = fpext float %526 to double
  %528 = fdiv double %525, %527
  br label %543

529:                                              ; preds = %500
  %530 = fmul float %513, 2.000000e+00
  %531 = fpext float %530 to double
  %532 = fpext float %512 to double
  %533 = fmul float %513, -4.000000e+00
  %534 = fmul float %506, %533
  %535 = tail call float @llvm.fmuladd.f32(float %512, float %512, float %534)
  %536 = fcmp oge float %535, 0.000000e+00
  %537 = fneg float %535
  %538 = select i1 %536, float %535, float %537
  %539 = fpext float %538 to double
  %540 = tail call double @sqrt(double noundef %539) #6
  %541 = fsub double %532, %540
  %542 = fdiv double %531, %541
  br label %543

543:                                              ; preds = %529, %515
  %storemerge1322.in = phi double [ %542, %529 ], [ %528, %515 ]
  %storemerge1322 = fptrunc double %storemerge1322.in to float
  %544 = fmul float %storemerge13211514, %storemerge1322
  %545 = fcmp ogt float %544, 0.000000e+00
  %546 = fdiv float %482, %509
  %storemerge13221512 = select i1 %545, float %546, float %storemerge1322
  %547 = fadd float %.311771520, %storemerge13221512
  %548 = fcmp ogt float %547, %.31206
  %549 = fcmp olt float %547, %.31214
  %or.cond1325 = select i1 %548, i1 true, i1 %549
  br i1 %or.cond1325, label %550, label %558

550:                                              ; preds = %543
  %551 = fcmp olt float %storemerge13211514, 0.000000e+00
  br i1 %551, label %552, label %555

552:                                              ; preds = %550
  %553 = fsub float %.31206, %.311771520
  %554 = fmul float %553, 5.000000e-01
  br label %558

555:                                              ; preds = %550
  %556 = fsub float %.31214, %.311771520
  %557 = fmul float %556, 5.000000e-01
  br label %558

558:                                              ; preds = %543, %552, %555
  %storemerge13221511 = phi float [ %storemerge13221512, %543 ], [ %554, %552 ], [ %557, %555 ]
  %559 = load i32, ptr %0, align 4, !tbaa !5
  %.not13231490 = icmp slt i32 %559, 1
  br i1 %.not13231490, label %._crit_edge1494, label %.lr.ph1493.preheader

.lr.ph1493.preheader:                             ; preds = %558
  %560 = add nuw i32 %559, 1
  %wide.trip.count1654 = zext i32 %560 to i64
  %561 = zext nneg i32 %559 to i64
  %min.iters.check1954 = icmp ult i32 %559, 8
  br i1 %min.iters.check1954, label %.lr.ph1493.preheader1969, label %vector.ph1955

vector.ph1955:                                    ; preds = %.lr.ph1493.preheader
  %n.vec1957 = and i64 %561, 2147483640
  %ind.end1958 = or disjoint i64 %n.vec1957, 1
  %broadcast.splatinsert1965 = insertelement <4 x float> poison, float %storemerge13221511, i64 0
  %broadcast.splat1966 = shufflevector <4 x float> %broadcast.splatinsert1965, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1960

vector.body1960:                                  ; preds = %vector.body1960, %vector.ph1955
  %index1961 = phi i64 [ 0, %vector.ph1955 ], [ %index.next1967, %vector.body1960 ]
  %562 = getelementptr float, ptr %4, i64 %index1961
  %563 = getelementptr inbounds i8, ptr %562, i64 16
  %wide.load1963 = load <4 x float>, ptr %562, align 4, !tbaa !9
  %wide.load1964 = load <4 x float>, ptr %563, align 4, !tbaa !9
  %564 = fsub <4 x float> %wide.load1963, %broadcast.splat1966
  %565 = fsub <4 x float> %wide.load1964, %broadcast.splat1966
  store <4 x float> %564, ptr %562, align 4, !tbaa !9
  store <4 x float> %565, ptr %563, align 4, !tbaa !9
  %index.next1967 = add nuw i64 %index1961, 8
  %566 = icmp eq i64 %index.next1967, %n.vec1957
  br i1 %566, label %middle.block1952, label %vector.body1960, !llvm.loop !41

middle.block1952:                                 ; preds = %vector.body1960
  %cmp.n1968 = icmp eq i64 %n.vec1957, %561
  br i1 %cmp.n1968, label %._crit_edge1494, label %.lr.ph1493.preheader1969

.lr.ph1493.preheader1969:                         ; preds = %middle.block1952, %.lr.ph1493.preheader
  %indvars.iv1651.ph = phi i64 [ 1, %.lr.ph1493.preheader ], [ %ind.end1958, %middle.block1952 ]
  br label %.lr.ph1493

.lr.ph1493:                                       ; preds = %.lr.ph1493.preheader1969, %.lr.ph1493
  %indvars.iv1651 = phi i64 [ %indvars.iv.next1652, %.lr.ph1493 ], [ %indvars.iv1651.ph, %.lr.ph1493.preheader1969 ]
  %567 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1651
  %568 = load float, ptr %567, align 4, !tbaa !9
  %569 = fsub float %568, %storemerge13221511
  store float %569, ptr %567, align 4, !tbaa !9
  %indvars.iv.next1652 = add nuw nsw i64 %indvars.iv1651, 1
  %exitcond1655.not = icmp eq i64 %indvars.iv.next1652, %wide.trip.count1654
  br i1 %exitcond1655.not, label %._crit_edge1494, label %.lr.ph1493, !llvm.loop !42

._crit_edge1494:                                  ; preds = %.lr.ph1493, %middle.block1952, %558
  %570 = fadd float %.311771520, %storemerge13221511
  br i1 %.not1317.not1464, label %.lr.ph1501.preheader, label %._crit_edge1502

.lr.ph1501.preheader:                             ; preds = %._crit_edge1494
  br i1 %477, label %._crit_edge1502.loopexit.unr-lcssa, label %.lr.ph1501

.lr.ph1501:                                       ; preds = %.lr.ph1501.preheader, %.lr.ph1501
  %indvars.iv1656 = phi i64 [ %indvars.iv.next1657.1, %.lr.ph1501 ], [ 1, %.lr.ph1501.preheader ]
  %.311901498 = phi float [ %593, %.lr.ph1501 ], [ 0.000000e+00, %.lr.ph1501.preheader ]
  %571 = phi <2 x float> [ %591, %.lr.ph1501 ], [ zeroinitializer, %.lr.ph1501.preheader ]
  %niter2094 = phi i64 [ %niter2094.next.1, %.lr.ph1501 ], [ 0, %.lr.ph1501.preheader ]
  %572 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1656
  %573 = load float, ptr %572, align 4, !tbaa !9
  %574 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1656
  %575 = load float, ptr %574, align 4, !tbaa !9
  %576 = fdiv float %573, %575
  %577 = insertelement <2 x float> poison, float %573, i64 0
  %578 = insertelement <2 x float> %577, float %576, i64 1
  %579 = shufflevector <2 x float> %578, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %580 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %578, <2 x float> %579, <2 x float> %571)
  %581 = extractelement <2 x float> %580, i64 0
  %582 = fadd float %.311901498, %581
  %583 = getelementptr float, ptr %3, i64 %indvars.iv1656
  %584 = load float, ptr %583, align 4, !tbaa !9
  %585 = getelementptr float, ptr %4, i64 %indvars.iv1656
  %586 = load float, ptr %585, align 4, !tbaa !9
  %587 = fdiv float %584, %586
  %588 = insertelement <2 x float> poison, float %584, i64 0
  %589 = insertelement <2 x float> %588, float %587, i64 1
  %590 = shufflevector <2 x float> %589, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %591 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %589, <2 x float> %590, <2 x float> %580)
  %592 = extractelement <2 x float> %591, i64 0
  %593 = fadd float %582, %592
  %indvars.iv.next1657.1 = add nuw nsw i64 %indvars.iv1656, 2
  %niter2094.next.1 = add i64 %niter2094, 2
  %niter2094.ncmp.1 = icmp eq i64 %niter2094.next.1, %unroll_iter2093
  br i1 %niter2094.ncmp.1, label %._crit_edge1502.loopexit.unr-lcssa.loopexit, label %.lr.ph1501, !llvm.loop !43

._crit_edge1502.loopexit.unr-lcssa.loopexit:      ; preds = %.lr.ph1501
  %594 = extractelement <2 x float> %591, i64 1
  br label %._crit_edge1502.loopexit.unr-lcssa

._crit_edge1502.loopexit.unr-lcssa:               ; preds = %._crit_edge1502.loopexit.unr-lcssa.loopexit, %.lr.ph1501.preheader
  %.lcssa1971.ph = phi float [ poison, %.lr.ph1501.preheader ], [ %592, %._crit_edge1502.loopexit.unr-lcssa.loopexit ]
  %.lcssa1970.ph = phi float [ poison, %.lr.ph1501.preheader ], [ %593, %._crit_edge1502.loopexit.unr-lcssa.loopexit ]
  %.lcssa.ph = phi float [ poison, %.lr.ph1501.preheader ], [ %594, %._crit_edge1502.loopexit.unr-lcssa.loopexit ]
  %indvars.iv1656.unr = phi i64 [ 1, %.lr.ph1501.preheader ], [ %indvars.iv.next1657.1, %._crit_edge1502.loopexit.unr-lcssa.loopexit ]
  %.311901498.unr = phi float [ 0.000000e+00, %.lr.ph1501.preheader ], [ %593, %._crit_edge1502.loopexit.unr-lcssa.loopexit ]
  %.unr2088 = phi <2 x float> [ zeroinitializer, %.lr.ph1501.preheader ], [ %591, %._crit_edge1502.loopexit.unr-lcssa.loopexit ]
  br i1 %lcmp.mod2089.not, label %._crit_edge1502, label %.lr.ph1501.epil

.lr.ph1501.epil:                                  ; preds = %._crit_edge1502.loopexit.unr-lcssa
  %595 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1656.unr
  %596 = load float, ptr %595, align 4, !tbaa !9
  %597 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1656.unr
  %598 = load float, ptr %597, align 4, !tbaa !9
  %599 = fdiv float %596, %598
  %600 = insertelement <2 x float> poison, float %596, i64 0
  %601 = insertelement <2 x float> %600, float %599, i64 1
  %602 = shufflevector <2 x float> %601, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %603 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %601, <2 x float> %602, <2 x float> %.unr2088)
  %604 = extractelement <2 x float> %603, i64 0
  %605 = fadd float %.311901498.unr, %604
  %606 = extractelement <2 x float> %603, i64 1
  br label %._crit_edge1502

._crit_edge1502:                                  ; preds = %.lr.ph1501.epil, %._crit_edge1502.loopexit.unr-lcssa, %._crit_edge1494
  %.31235.lcssa = phi float [ 0.000000e+00, %._crit_edge1494 ], [ %.lcssa.ph, %._crit_edge1502.loopexit.unr-lcssa ], [ %606, %.lr.ph1501.epil ]
  %.31190.lcssa = phi float [ 0.000000e+00, %._crit_edge1494 ], [ %.lcssa1970.ph, %._crit_edge1502.loopexit.unr-lcssa ], [ %605, %.lr.ph1501.epil ]
  %.3.lcssa = phi float [ 0.000000e+00, %._crit_edge1494 ], [ %.lcssa1971.ph, %._crit_edge1502.loopexit.unr-lcssa ], [ %604, %.lr.ph1501.epil ]
  %607 = fcmp oge float %.31190.lcssa, 0.000000e+00
  %608 = fneg float %.31190.lcssa
  %609 = select i1 %607, float %.31190.lcssa, float %608
  %610 = sext i32 %559 to i64
  %611 = getelementptr inbounds float, ptr %16, i64 %610
  %612 = load float, ptr %611, align 4, !tbaa !9
  %613 = getelementptr inbounds float, ptr %15, i64 %610
  %614 = load float, ptr %613, align 4, !tbaa !9
  %615 = fdiv float %612, %614
  %616 = fmul float %612, %615
  %617 = fmul float %615, %615
  %618 = fneg float %616
  %619 = fsub float %618, %.3.lcssa
  %620 = tail call float @llvm.fmuladd.f32(float %619, float 8.000000e+00, float %609)
  %621 = fsub float %620, %616
  %622 = fadd float %29, %621
  %623 = fcmp oge float %570, 0.000000e+00
  %624 = fneg float %570
  %625 = select i1 %623, float %570, float %624
  %626 = fadd float %.31235.lcssa, %617
  %627 = tail call float @llvm.fmuladd.f32(float %625, float %626, float %622)
  %628 = fadd float %29, %616
  %629 = fadd float %.3.lcssa, %628
  %storemerge1320 = add i32 %storemerge13201521, 1
  %exitcond1661.not = icmp eq i32 %storemerge1320, 31
  br i1 %exitcond1661.not, label %._crit_edge1524, label %478, !llvm.loop !44

._crit_edge1524:                                  ; preds = %._crit_edge1502
  store i32 1, ptr %7, align 4, !tbaa !5
  %630 = load i32, ptr %1, align 4, !tbaa !5
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds float, ptr %17, i64 %631
  %633 = load float, ptr %632, align 4, !tbaa !9
  %634 = fadd float %570, %633
  store float %634, ptr %6, align 4, !tbaa !9
  br label %.loopexit

635:                                              ; preds = %26
  store i32 1, ptr %11, align 4, !tbaa !5
  %636 = add nsw i32 %30, 1
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds float, ptr %17, i64 %637
  %639 = load float, ptr %638, align 4, !tbaa !9
  %640 = sext i32 %30 to i64
  %641 = getelementptr inbounds float, ptr %17, i64 %640
  %642 = load float, ptr %641, align 4, !tbaa !9
  %643 = fsub float %639, %642
  %644 = fmul float %643, 5.000000e-01
  %.not1337 = icmp slt i32 %31, 1
  br i1 %.not1337, label %.preheader1333, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %635
  %645 = add nuw i32 %31, 1
  %wide.trip.count = zext i32 %645 to i64
  %646 = zext nneg i32 %31 to i64
  %min.iters.check = icmp ult i32 %31, 12
  br i1 %min.iters.check, label %.lr.ph.preheader2006, label %vector.memcheck

.lr.ph.preheader2006:                             ; preds = %middle.block, %vector.memcheck, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %647 = zext nneg i32 %31 to i64
  %648 = and i32 %31, 1
  %lcmp.mod.not = icmp eq i32 %648, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader2006
  %649 = getelementptr inbounds float, ptr %17, i64 %indvars.iv.ph
  %650 = load float, ptr %649, align 4, !tbaa !9
  %651 = load float, ptr %641, align 4, !tbaa !9
  %652 = fsub float %650, %651
  %653 = fsub float %652, %644
  %654 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.ph
  store float %653, ptr %654, align 4, !tbaa !9
  %indvars.iv.next.prol = add nuw nsw i64 %indvars.iv.ph, 1
  br label %.lr.ph.prol.loopexit

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader2006
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %.lr.ph.preheader2006 ], [ %indvars.iv.next.prol, %.lr.ph.prol ]
  %655 = icmp eq i64 %indvars.iv.ph, %647
  br i1 %655, label %.preheader1333, label %.lr.ph

vector.memcheck:                                  ; preds = %.lr.ph.preheader
  %656 = shl nuw nsw i64 %wide.trip.count, 2
  %657 = add nsw i64 %656, -4
  %scevgep = getelementptr i8, ptr %4, i64 %657
  %658 = shl nsw i64 %640, 2
  %scevgep1769 = getelementptr i8, ptr %2, i64 %658
  %scevgep1770 = getelementptr i8, ptr %2, i64 %657
  %bound0 = icmp ugt ptr %scevgep1769, %4
  %bound1 = icmp ult ptr %641, %scevgep
  %found.conflict = and i1 %bound0, %bound1
  %bound01771 = icmp ugt ptr %scevgep1770, %4
  %bound11772 = icmp ugt ptr %scevgep, %2
  %found.conflict1773 = and i1 %bound01771, %bound11772
  %conflict.rdx = or i1 %found.conflict, %found.conflict1773
  br i1 %conflict.rdx, label %.lr.ph.preheader2006, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %646, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert1777 = insertelement <4 x float> poison, float %644, i64 0
  %broadcast.splat1778 = shufflevector <4 x float> %broadcast.splatinsert1777, <4 x float> poison, <4 x i32> zeroinitializer
  %659 = load float, ptr %641, align 4, !tbaa !9, !alias.scope !45
  %broadcast.splatinsert1775 = insertelement <4 x float> poison, float %659, i64 0
  %broadcast.splat1776 = shufflevector <4 x float> %broadcast.splatinsert1775, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %660 = getelementptr float, ptr %2, i64 %index
  %661 = getelementptr inbounds i8, ptr %660, i64 16
  %wide.load = load <4 x float>, ptr %660, align 4, !tbaa !9, !alias.scope !48
  %wide.load1774 = load <4 x float>, ptr %661, align 4, !tbaa !9, !alias.scope !48
  %662 = fsub <4 x float> %wide.load, %broadcast.splat1776
  %663 = fsub <4 x float> %wide.load1774, %broadcast.splat1776
  %664 = fsub <4 x float> %662, %broadcast.splat1778
  %665 = fsub <4 x float> %663, %broadcast.splat1778
  %666 = getelementptr float, ptr %4, i64 %index
  %667 = getelementptr inbounds i8, ptr %666, i64 16
  store <4 x float> %664, ptr %666, align 4, !tbaa !9, !alias.scope !50, !noalias !52
  store <4 x float> %665, ptr %667, align 4, !tbaa !9, !alias.scope !50, !noalias !52
  %index.next = add nuw i64 %index, 8
  %668 = icmp eq i64 %index.next, %n.vec
  br i1 %668, label %middle.block, label %vector.body, !llvm.loop !53

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %646
  br i1 %cmp.n, label %.preheader1333, label %.lr.ph.preheader2006

.preheader1333:                                   ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block, %635
  %.not1281.not1339 = icmp sgt i32 %30, 1
  br i1 %.not1281.not1339, label %.lr.ph1342.preheader, label %._crit_edge

.lr.ph1342.preheader:                             ; preds = %.preheader1333
  %wide.trip.count1572 = zext nneg i32 %30 to i64
  %669 = add nsw i64 %wide.trip.count1572, -1
  %670 = add nsw i64 %wide.trip.count1572, -2
  %xtraiter2007 = and i64 %669, 3
  %671 = icmp ult i64 %670, 3
  br i1 %671, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph1342.preheader.new

.lr.ph1342.preheader.new:                         ; preds = %.lr.ph1342.preheader
  %unroll_iter = and i64 %669, -4
  br label %.lr.ph1342

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next.1, %.lr.ph ], [ %indvars.iv.unr, %.lr.ph.prol.loopexit ]
  %672 = getelementptr inbounds float, ptr %17, i64 %indvars.iv
  %673 = load float, ptr %672, align 4, !tbaa !9
  %674 = load float, ptr %641, align 4, !tbaa !9
  %675 = fsub float %673, %674
  %676 = fsub float %675, %644
  %677 = getelementptr inbounds float, ptr %15, i64 %indvars.iv
  store float %676, ptr %677, align 4, !tbaa !9
  %678 = getelementptr float, ptr %2, i64 %indvars.iv
  %679 = load float, ptr %678, align 4, !tbaa !9
  %680 = load float, ptr %641, align 4, !tbaa !9
  %681 = fsub float %679, %680
  %682 = fsub float %681, %644
  %683 = getelementptr float, ptr %4, i64 %indvars.iv
  store float %682, ptr %683, align 4, !tbaa !9
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %exitcond.not.1 = icmp eq i64 %indvars.iv.next.1, %wide.trip.count
  br i1 %exitcond.not.1, label %.preheader1333, label %.lr.ph, !llvm.loop !54

.lr.ph1342:                                       ; preds = %.lr.ph1342, %.lr.ph1342.preheader.new
  %indvars.iv1569 = phi i64 [ 1, %.lr.ph1342.preheader.new ], [ %indvars.iv.next1570.3, %.lr.ph1342 ]
  %.41341 = phi float [ 0.000000e+00, %.lr.ph1342.preheader.new ], [ %711, %.lr.ph1342 ]
  %niter = phi i64 [ 0, %.lr.ph1342.preheader.new ], [ %niter.next.3, %.lr.ph1342 ]
  %684 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1569
  %685 = load float, ptr %684, align 4, !tbaa !9
  %686 = fmul float %685, %685
  %687 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1569
  %688 = load float, ptr %687, align 4, !tbaa !9
  %689 = fdiv float %686, %688
  %690 = fadd float %.41341, %689
  %691 = getelementptr float, ptr %3, i64 %indvars.iv1569
  %692 = load float, ptr %691, align 4, !tbaa !9
  %693 = fmul float %692, %692
  %694 = getelementptr float, ptr %4, i64 %indvars.iv1569
  %695 = load float, ptr %694, align 4, !tbaa !9
  %696 = fdiv float %693, %695
  %697 = fadd float %690, %696
  %indvars.iv.next1570.1 = add nuw nsw i64 %indvars.iv1569, 2
  %698 = getelementptr inbounds float, ptr %16, i64 %indvars.iv.next1570.1
  %699 = load float, ptr %698, align 4, !tbaa !9
  %700 = fmul float %699, %699
  %701 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.next1570.1
  %702 = load float, ptr %701, align 4, !tbaa !9
  %703 = fdiv float %700, %702
  %704 = fadd float %697, %703
  %indvars.iv.next1570.2 = add nuw nsw i64 %indvars.iv1569, 3
  %705 = getelementptr inbounds float, ptr %16, i64 %indvars.iv.next1570.2
  %706 = load float, ptr %705, align 4, !tbaa !9
  %707 = fmul float %706, %706
  %708 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.next1570.2
  %709 = load float, ptr %708, align 4, !tbaa !9
  %710 = fdiv float %707, %709
  %711 = fadd float %704, %710
  %indvars.iv.next1570.3 = add nuw nsw i64 %indvars.iv1569, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph1342, !llvm.loop !55

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph1342, %.lr.ph1342.preheader
  %.lcssa2005.ph = phi float [ poison, %.lr.ph1342.preheader ], [ %711, %.lr.ph1342 ]
  %indvars.iv1569.unr = phi i64 [ 1, %.lr.ph1342.preheader ], [ %indvars.iv.next1570.3, %.lr.ph1342 ]
  %.41341.unr = phi float [ 0.000000e+00, %.lr.ph1342.preheader ], [ %711, %.lr.ph1342 ]
  %lcmp.mod2008.not = icmp eq i64 %xtraiter2007, 0
  br i1 %lcmp.mod2008.not, label %._crit_edge, label %.lr.ph1342.epil

.lr.ph1342.epil:                                  ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph1342.epil
  %indvars.iv1569.epil = phi i64 [ %indvars.iv.next1570.epil, %.lr.ph1342.epil ], [ %indvars.iv1569.unr, %._crit_edge.loopexit.unr-lcssa ]
  %.41341.epil = phi float [ %718, %.lr.ph1342.epil ], [ %.41341.unr, %._crit_edge.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1342.epil ], [ 0, %._crit_edge.loopexit.unr-lcssa ]
  %712 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1569.epil
  %713 = load float, ptr %712, align 4, !tbaa !9
  %714 = fmul float %713, %713
  %715 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1569.epil
  %716 = load float, ptr %715, align 4, !tbaa !9
  %717 = fdiv float %714, %716
  %718 = fadd float %.41341.epil, %717
  %indvars.iv.next1570.epil = add nuw nsw i64 %indvars.iv1569.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter2007
  br i1 %epil.iter.cmp.not, label %._crit_edge, label %.lr.ph1342.epil, !llvm.loop !56

._crit_edge:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph1342.epil, %.preheader1333
  %.4.lcssa = phi float [ 0.000000e+00, %.preheader1333 ], [ %.lcssa2005.ph, %._crit_edge.loopexit.unr-lcssa ], [ %718, %.lr.ph1342.epil ]
  %719 = add nsw i32 %30, 2
  %.not12821343 = icmp slt i32 %31, %719
  br i1 %.not12821343, label %._crit_edge1348, label %.lr.ph1347.preheader

.lr.ph1347.preheader:                             ; preds = %._crit_edge
  %720 = sext i32 %31 to i64
  %721 = sext i32 %719 to i64
  %722 = add nsw i64 %720, 1
  %723 = sub nsw i64 %722, %721
  %724 = sub nsw i64 %720, %721
  %xtraiter2010 = and i64 %723, 3
  %lcmp.mod2011.not = icmp eq i64 %xtraiter2010, 0
  br i1 %lcmp.mod2011.not, label %.lr.ph1347.prol.loopexit, label %.lr.ph1347.prol

.lr.ph1347.prol:                                  ; preds = %.lr.ph1347.preheader, %.lr.ph1347.prol
  %indvars.iv1574.prol = phi i64 [ %indvars.iv.next1575.prol, %.lr.ph1347.prol ], [ %720, %.lr.ph1347.preheader ]
  %.011821345.prol = phi float [ %731, %.lr.ph1347.prol ], [ 0.000000e+00, %.lr.ph1347.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1347.prol ], [ 0, %.lr.ph1347.preheader ]
  %725 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1574.prol
  %726 = load float, ptr %725, align 4, !tbaa !9
  %727 = fmul float %726, %726
  %728 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1574.prol
  %729 = load float, ptr %728, align 4, !tbaa !9
  %730 = fdiv float %727, %729
  %731 = fadd float %.011821345.prol, %730
  %indvars.iv.next1575.prol = add nsw i64 %indvars.iv1574.prol, -1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter2010
  br i1 %prol.iter.cmp.not, label %.lr.ph1347.prol.loopexit, label %.lr.ph1347.prol, !llvm.loop !57

.lr.ph1347.prol.loopexit:                         ; preds = %.lr.ph1347.prol, %.lr.ph1347.preheader
  %indvars.iv1574.unr = phi i64 [ %720, %.lr.ph1347.preheader ], [ %indvars.iv.next1575.prol, %.lr.ph1347.prol ]
  %.011821345.unr = phi float [ 0.000000e+00, %.lr.ph1347.preheader ], [ %731, %.lr.ph1347.prol ]
  %.lcssa2004.unr = phi float [ poison, %.lr.ph1347.preheader ], [ %731, %.lr.ph1347.prol ]
  %732 = icmp ult i64 %724, 3
  br i1 %732, label %._crit_edge1348, label %.lr.ph1347

.lr.ph1347:                                       ; preds = %.lr.ph1347.prol.loopexit, %.lr.ph1347
  %indvars.iv1574 = phi i64 [ %indvars.iv.next1575.3, %.lr.ph1347 ], [ %indvars.iv1574.unr, %.lr.ph1347.prol.loopexit ]
  %.011821345 = phi float [ %760, %.lr.ph1347 ], [ %.011821345.unr, %.lr.ph1347.prol.loopexit ]
  %733 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1574
  %734 = load float, ptr %733, align 4, !tbaa !9
  %735 = fmul float %734, %734
  %736 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1574
  %737 = load float, ptr %736, align 4, !tbaa !9
  %738 = fdiv float %735, %737
  %739 = fadd float %.011821345, %738
  %indvars.iv.next1575 = add nsw i64 %indvars.iv1574, -1
  %740 = getelementptr inbounds float, ptr %16, i64 %indvars.iv.next1575
  %741 = load float, ptr %740, align 4, !tbaa !9
  %742 = fmul float %741, %741
  %743 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.next1575
  %744 = load float, ptr %743, align 4, !tbaa !9
  %745 = fdiv float %742, %744
  %746 = fadd float %739, %745
  %indvars.iv.next1575.1 = add nsw i64 %indvars.iv1574, -2
  %747 = getelementptr inbounds float, ptr %16, i64 %indvars.iv.next1575.1
  %748 = load float, ptr %747, align 4, !tbaa !9
  %749 = fmul float %748, %748
  %750 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.next1575.1
  %751 = load float, ptr %750, align 4, !tbaa !9
  %752 = fdiv float %749, %751
  %753 = fadd float %746, %752
  %indvars.iv.next1575.2 = add nsw i64 %indvars.iv1574, -3
  %754 = getelementptr inbounds float, ptr %16, i64 %indvars.iv.next1575.2
  %755 = load float, ptr %754, align 4, !tbaa !9
  %756 = fmul float %755, %755
  %757 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.next1575.2
  %758 = load float, ptr %757, align 4, !tbaa !9
  %759 = fdiv float %756, %758
  %760 = fadd float %753, %759
  %indvars.iv.next1575.3 = add nsw i64 %indvars.iv1574, -4
  %.not1282.not.3 = icmp sgt i64 %indvars.iv.next1575.2, %721
  br i1 %.not1282.not.3, label %.lr.ph1347, label %._crit_edge1348, !llvm.loop !58

._crit_edge1348:                                  ; preds = %.lr.ph1347.prol.loopexit, %.lr.ph1347, %._crit_edge
  %.01182.lcssa = phi float [ 0.000000e+00, %._crit_edge ], [ %.lcssa2004.unr, %.lr.ph1347.prol.loopexit ], [ %760, %.lr.ph1347 ]
  %761 = fadd float %29, %.4.lcssa
  %762 = fadd float %761, %.01182.lcssa
  %763 = getelementptr inbounds float, ptr %16, i64 %640
  %764 = load float, ptr %763, align 4, !tbaa !9
  %765 = getelementptr inbounds float, ptr %15, i64 %640
  %766 = load float, ptr %765, align 4, !tbaa !9
  %767 = getelementptr inbounds float, ptr %16, i64 %637
  %768 = load float, ptr %767, align 4, !tbaa !9
  %769 = getelementptr inbounds float, ptr %15, i64 %637
  %770 = load float, ptr %769, align 4, !tbaa !9
  %771 = insertelement <2 x float> poison, float %764, i64 0
  %772 = insertelement <2 x float> %771, float %768, i64 1
  %773 = fmul <2 x float> %772, %772
  %774 = insertelement <2 x float> poison, float %766, i64 0
  %775 = insertelement <2 x float> %774, float %770, i64 1
  %776 = fdiv <2 x float> %773, %775
  %777 = extractelement <2 x float> %776, i64 0
  %778 = fadd float %762, %777
  %779 = extractelement <2 x float> %776, i64 1
  %780 = fadd float %778, %779
  %781 = fcmp ule float %780, 0.000000e+00
  br i1 %781, label %816, label %782

782:                                              ; preds = %._crit_edge1348
  store i32 1, ptr %13, align 4, !tbaa !5
  %783 = extractelement <2 x float> %773, i64 0
  %784 = tail call float @llvm.fmuladd.f32(float %762, float %643, float %783)
  %785 = tail call float @llvm.fmuladd.f32(float %768, float %768, float %784)
  %786 = fmul float %643, %783
  %787 = fcmp ogt float %785, 0.000000e+00
  br i1 %787, label %788, label %802

788:                                              ; preds = %782
  %789 = fmul float %786, 2.000000e+00
  %790 = fpext float %789 to double
  %791 = fpext float %785 to double
  %792 = fmul float %786, -4.000000e+00
  %793 = fmul float %762, %792
  %794 = tail call float @llvm.fmuladd.f32(float %785, float %785, float %793)
  %795 = fcmp oge float %794, 0.000000e+00
  %796 = fneg float %794
  %797 = select i1 %795, float %794, float %796
  %798 = fpext float %797 to double
  %799 = tail call double @sqrt(double noundef %798) #6
  %800 = fadd double %799, %791
  %801 = fdiv double %790, %800
  br label %854

802:                                              ; preds = %782
  %803 = fpext float %785 to double
  %804 = fmul float %786, -4.000000e+00
  %805 = fmul float %762, %804
  %806 = tail call float @llvm.fmuladd.f32(float %785, float %785, float %805)
  %807 = fcmp oge float %806, 0.000000e+00
  %808 = fneg float %806
  %809 = select i1 %807, float %806, float %808
  %810 = fpext float %809 to double
  %811 = tail call double @sqrt(double noundef %810) #6
  %812 = fsub double %803, %811
  %813 = fmul float %762, 2.000000e+00
  %814 = fpext float %813 to double
  %815 = fdiv double %812, %814
  br label %854

816:                                              ; preds = %._crit_edge1348
  store i32 0, ptr %13, align 4, !tbaa !5
  %817 = fneg float %764
  %818 = fmul float %764, %817
  %819 = tail call float @llvm.fmuladd.f32(float %762, float %643, float %818)
  %820 = fneg float %768
  %821 = tail call float @llvm.fmuladd.f32(float %820, float %768, float %819)
  %822 = extractelement <2 x float> %773, i64 1
  %823 = fmul float %643, %822
  %824 = fcmp olt float %821, 0.000000e+00
  br i1 %824, label %825, label %839

825:                                              ; preds = %816
  %826 = fmul float %823, 2.000000e+00
  %827 = fpext float %826 to double
  %828 = fpext float %821 to double
  %829 = fmul float %823, 4.000000e+00
  %830 = fmul float %762, %829
  %831 = tail call float @llvm.fmuladd.f32(float %821, float %821, float %830)
  %832 = fcmp oge float %831, 0.000000e+00
  %833 = fneg float %831
  %834 = select i1 %832, float %831, float %833
  %835 = fpext float %834 to double
  %836 = tail call double @sqrt(double noundef %835) #6
  %837 = fsub double %828, %836
  %838 = fdiv double %827, %837
  br label %895

839:                                              ; preds = %816
  %840 = fpext float %821 to double
  %841 = fmul float %823, 4.000000e+00
  %842 = fmul float %762, %841
  %843 = tail call float @llvm.fmuladd.f32(float %821, float %821, float %842)
  %844 = fcmp oge float %843, 0.000000e+00
  %845 = fneg float %843
  %846 = select i1 %844, float %843, float %845
  %847 = fpext float %846 to double
  %848 = tail call double @sqrt(double noundef %847) #6
  %849 = fadd double %848, %840
  %850 = fneg double %849
  %851 = fmul float %762, 2.000000e+00
  %852 = fpext float %851 to double
  %853 = fdiv double %850, %852
  br label %895

854:                                              ; preds = %788, %802
  %.61180.in.ph = phi double [ %801, %788 ], [ %815, %802 ]
  %.611801675 = fptrunc double %.61180.in.ph to float
  %855 = load i32, ptr %0, align 4, !tbaa !5
  %.not12851350 = icmp slt i32 %855, 1
  br i1 %.not12851350, label %.loopexit1331.thread1691, label %.lr.ph1353

.lr.ph1353:                                       ; preds = %854
  %856 = load i32, ptr %1, align 4, !tbaa !5
  %857 = sext i32 %856 to i64
  %858 = getelementptr inbounds float, ptr %17, i64 %857
  %859 = add nuw i32 %855, 1
  %wide.trip.count1580 = zext i32 %859 to i64
  %860 = zext nneg i32 %855 to i64
  %min.iters.check1792 = icmp ult i32 %855, 12
  br i1 %min.iters.check1792, label %scalar.ph1791.preheader, label %vector.memcheck1779

vector.memcheck1779:                              ; preds = %.lr.ph1353
  %861 = shl nuw nsw i64 %wide.trip.count1580, 2
  %862 = add nsw i64 %861, -4
  %scevgep1780 = getelementptr i8, ptr %4, i64 %862
  %863 = shl nsw i64 %857, 2
  %scevgep1781 = getelementptr i8, ptr %2, i64 %863
  %scevgep1782 = getelementptr i8, ptr %2, i64 %862
  %bound01783 = icmp ugt ptr %scevgep1781, %4
  %bound11784 = icmp ult ptr %858, %scevgep1780
  %found.conflict1785 = and i1 %bound01783, %bound11784
  %bound01786 = icmp ugt ptr %scevgep1782, %4
  %bound11787 = icmp ugt ptr %scevgep1780, %2
  %found.conflict1788 = and i1 %bound01786, %bound11787
  %conflict.rdx1789 = or i1 %found.conflict1785, %found.conflict1788
  br i1 %conflict.rdx1789, label %scalar.ph1791.preheader, label %vector.ph1793

vector.ph1793:                                    ; preds = %vector.memcheck1779
  %n.vec1795 = and i64 %860, 2147483640
  %ind.end1796 = or disjoint i64 %n.vec1795, 1
  %broadcast.splatinsert1805 = insertelement <4 x float> poison, float %.611801675, i64 0
  %broadcast.splat1806 = shufflevector <4 x float> %broadcast.splatinsert1805, <4 x float> poison, <4 x i32> zeroinitializer
  %864 = load float, ptr %858, align 4, !tbaa !9, !alias.scope !59
  %broadcast.splatinsert1803 = insertelement <4 x float> poison, float %864, i64 0
  %broadcast.splat1804 = shufflevector <4 x float> %broadcast.splatinsert1803, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1798

vector.body1798:                                  ; preds = %vector.body1798, %vector.ph1793
  %index1799 = phi i64 [ 0, %vector.ph1793 ], [ %index.next1807, %vector.body1798 ]
  %865 = getelementptr float, ptr %2, i64 %index1799
  %866 = getelementptr inbounds i8, ptr %865, i64 16
  %wide.load1801 = load <4 x float>, ptr %865, align 4, !tbaa !9, !alias.scope !62
  %wide.load1802 = load <4 x float>, ptr %866, align 4, !tbaa !9, !alias.scope !62
  %867 = fsub <4 x float> %wide.load1801, %broadcast.splat1804
  %868 = fsub <4 x float> %wide.load1802, %broadcast.splat1804
  %869 = fsub <4 x float> %867, %broadcast.splat1806
  %870 = fsub <4 x float> %868, %broadcast.splat1806
  %871 = getelementptr float, ptr %4, i64 %index1799
  %872 = getelementptr inbounds i8, ptr %871, i64 16
  store <4 x float> %869, ptr %871, align 4, !tbaa !9, !alias.scope !64, !noalias !66
  store <4 x float> %870, ptr %872, align 4, !tbaa !9, !alias.scope !64, !noalias !66
  %index.next1807 = add nuw i64 %index1799, 8
  %873 = icmp eq i64 %index.next1807, %n.vec1795
  br i1 %873, label %middle.block1790, label %vector.body1798, !llvm.loop !67

middle.block1790:                                 ; preds = %vector.body1798
  %cmp.n1808 = icmp eq i64 %n.vec1795, %860
  br i1 %cmp.n1808, label %.loopexit1331, label %scalar.ph1791.preheader

scalar.ph1791.preheader:                          ; preds = %middle.block1790, %vector.memcheck1779, %.lr.ph1353
  %indvars.iv1577.ph = phi i64 [ 1, %vector.memcheck1779 ], [ 1, %.lr.ph1353 ], [ %ind.end1796, %middle.block1790 ]
  %874 = zext nneg i32 %855 to i64
  %875 = and i32 %855, 1
  %lcmp.mod2013.not = icmp eq i32 %875, 0
  br i1 %lcmp.mod2013.not, label %scalar.ph1791.prol.loopexit, label %scalar.ph1791.prol

scalar.ph1791.prol:                               ; preds = %scalar.ph1791.preheader
  %876 = getelementptr inbounds float, ptr %17, i64 %indvars.iv1577.ph
  %877 = load float, ptr %876, align 4, !tbaa !9
  %878 = load float, ptr %858, align 4, !tbaa !9
  %879 = fsub float %877, %878
  %880 = fsub float %879, %.611801675
  %881 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1577.ph
  store float %880, ptr %881, align 4, !tbaa !9
  %indvars.iv.next1578.prol = add nuw nsw i64 %indvars.iv1577.ph, 1
  br label %scalar.ph1791.prol.loopexit

scalar.ph1791.prol.loopexit:                      ; preds = %scalar.ph1791.prol, %scalar.ph1791.preheader
  %indvars.iv1577.unr = phi i64 [ %indvars.iv1577.ph, %scalar.ph1791.preheader ], [ %indvars.iv.next1578.prol, %scalar.ph1791.prol ]
  %882 = icmp eq i64 %indvars.iv1577.ph, %874
  br i1 %882, label %.loopexit1331, label %scalar.ph1791

scalar.ph1791:                                    ; preds = %scalar.ph1791.prol.loopexit, %scalar.ph1791
  %indvars.iv1577 = phi i64 [ %indvars.iv.next1578.1, %scalar.ph1791 ], [ %indvars.iv1577.unr, %scalar.ph1791.prol.loopexit ]
  %883 = getelementptr inbounds float, ptr %17, i64 %indvars.iv1577
  %884 = load float, ptr %883, align 4, !tbaa !9
  %885 = load float, ptr %858, align 4, !tbaa !9
  %886 = fsub float %884, %885
  %887 = fsub float %886, %.611801675
  %888 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1577
  store float %887, ptr %888, align 4, !tbaa !9
  %889 = getelementptr float, ptr %2, i64 %indvars.iv1577
  %890 = load float, ptr %889, align 4, !tbaa !9
  %891 = load float, ptr %858, align 4, !tbaa !9
  %892 = fsub float %890, %891
  %893 = fsub float %892, %.611801675
  %894 = getelementptr float, ptr %4, i64 %indvars.iv1577
  store float %893, ptr %894, align 4, !tbaa !9
  %indvars.iv.next1578.1 = add nuw nsw i64 %indvars.iv1577, 2
  %exitcond1581.not.1 = icmp eq i64 %indvars.iv.next1578.1, %wide.trip.count1580
  br i1 %exitcond1581.not.1, label %.loopexit1331, label %scalar.ph1791, !llvm.loop !68

895:                                              ; preds = %839, %825
  %.51179.in = phi double [ %838, %825 ], [ %853, %839 ]
  %896 = fneg float %644
  %.61180 = fptrunc double %.51179.in to float
  %897 = load i32, ptr %0, align 4, !tbaa !5
  %.not12841354 = icmp slt i32 %897, 1
  br i1 %.not12841354, label %.loopexit1331.thread, label %.lr.ph1357.preheader

.lr.ph1357.preheader:                             ; preds = %895
  %898 = add nuw i32 %897, 1
  %wide.trip.count1585 = zext i32 %898 to i64
  %899 = zext nneg i32 %897 to i64
  %min.iters.check1822 = icmp ult i32 %897, 12
  br i1 %min.iters.check1822, label %.lr.ph1357.preheader2002, label %vector.memcheck1809

vector.memcheck1809:                              ; preds = %.lr.ph1357.preheader
  %900 = shl nuw nsw i64 %wide.trip.count1585, 2
  %901 = add nsw i64 %900, -4
  %scevgep1810 = getelementptr i8, ptr %4, i64 %901
  %902 = shl nsw i64 %637, 2
  %scevgep1811 = getelementptr i8, ptr %2, i64 %902
  %scevgep1812 = getelementptr i8, ptr %2, i64 %901
  %bound01813 = icmp ugt ptr %scevgep1811, %4
  %bound11814 = icmp ult ptr %638, %scevgep1810
  %found.conflict1815 = and i1 %bound01813, %bound11814
  %bound01816 = icmp ugt ptr %scevgep1812, %4
  %bound11817 = icmp ugt ptr %scevgep1810, %2
  %found.conflict1818 = and i1 %bound01816, %bound11817
  %conflict.rdx1819 = or i1 %found.conflict1815, %found.conflict1818
  br i1 %conflict.rdx1819, label %.lr.ph1357.preheader2002, label %vector.ph1823

vector.ph1823:                                    ; preds = %vector.memcheck1809
  %n.vec1825 = and i64 %899, 2147483640
  %ind.end1826 = or disjoint i64 %n.vec1825, 1
  %broadcast.splatinsert1835 = insertelement <4 x float> poison, float %.61180, i64 0
  %broadcast.splat1836 = shufflevector <4 x float> %broadcast.splatinsert1835, <4 x float> poison, <4 x i32> zeroinitializer
  %903 = load float, ptr %638, align 4, !tbaa !9, !alias.scope !69
  %broadcast.splatinsert1833 = insertelement <4 x float> poison, float %903, i64 0
  %broadcast.splat1834 = shufflevector <4 x float> %broadcast.splatinsert1833, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1828

vector.body1828:                                  ; preds = %vector.body1828, %vector.ph1823
  %index1829 = phi i64 [ 0, %vector.ph1823 ], [ %index.next1837, %vector.body1828 ]
  %904 = getelementptr float, ptr %2, i64 %index1829
  %905 = getelementptr inbounds i8, ptr %904, i64 16
  %wide.load1831 = load <4 x float>, ptr %904, align 4, !tbaa !9, !alias.scope !72
  %wide.load1832 = load <4 x float>, ptr %905, align 4, !tbaa !9, !alias.scope !72
  %906 = fsub <4 x float> %wide.load1831, %broadcast.splat1834
  %907 = fsub <4 x float> %wide.load1832, %broadcast.splat1834
  %908 = fsub <4 x float> %906, %broadcast.splat1836
  %909 = fsub <4 x float> %907, %broadcast.splat1836
  %910 = getelementptr float, ptr %4, i64 %index1829
  %911 = getelementptr inbounds i8, ptr %910, i64 16
  store <4 x float> %908, ptr %910, align 4, !tbaa !9, !alias.scope !74, !noalias !76
  store <4 x float> %909, ptr %911, align 4, !tbaa !9, !alias.scope !74, !noalias !76
  %index.next1837 = add nuw i64 %index1829, 8
  %912 = icmp eq i64 %index.next1837, %n.vec1825
  br i1 %912, label %middle.block1820, label %vector.body1828, !llvm.loop !77

middle.block1820:                                 ; preds = %vector.body1828
  %cmp.n1838 = icmp eq i64 %n.vec1825, %899
  br i1 %cmp.n1838, label %.loopexit1331, label %.lr.ph1357.preheader2002

.lr.ph1357.preheader2002:                         ; preds = %middle.block1820, %vector.memcheck1809, %.lr.ph1357.preheader
  %indvars.iv1582.ph = phi i64 [ 1, %vector.memcheck1809 ], [ 1, %.lr.ph1357.preheader ], [ %ind.end1826, %middle.block1820 ]
  %913 = zext nneg i32 %897 to i64
  %914 = and i32 %897, 1
  %lcmp.mod2016.not = icmp eq i32 %914, 0
  br i1 %lcmp.mod2016.not, label %.lr.ph1357.prol.loopexit, label %.lr.ph1357.prol

.lr.ph1357.prol:                                  ; preds = %.lr.ph1357.preheader2002
  %915 = getelementptr inbounds float, ptr %17, i64 %indvars.iv1582.ph
  %916 = load float, ptr %915, align 4, !tbaa !9
  %917 = load float, ptr %638, align 4, !tbaa !9
  %918 = fsub float %916, %917
  %919 = fsub float %918, %.61180
  %920 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1582.ph
  store float %919, ptr %920, align 4, !tbaa !9
  %indvars.iv.next1583.prol = add nuw nsw i64 %indvars.iv1582.ph, 1
  br label %.lr.ph1357.prol.loopexit

.lr.ph1357.prol.loopexit:                         ; preds = %.lr.ph1357.prol, %.lr.ph1357.preheader2002
  %indvars.iv1582.unr = phi i64 [ %indvars.iv1582.ph, %.lr.ph1357.preheader2002 ], [ %indvars.iv.next1583.prol, %.lr.ph1357.prol ]
  %921 = icmp eq i64 %indvars.iv1582.ph, %913
  br i1 %921, label %.loopexit1331, label %.lr.ph1357

.lr.ph1357:                                       ; preds = %.lr.ph1357.prol.loopexit, %.lr.ph1357
  %indvars.iv1582 = phi i64 [ %indvars.iv.next1583.1, %.lr.ph1357 ], [ %indvars.iv1582.unr, %.lr.ph1357.prol.loopexit ]
  %922 = getelementptr inbounds float, ptr %17, i64 %indvars.iv1582
  %923 = load float, ptr %922, align 4, !tbaa !9
  %924 = load float, ptr %638, align 4, !tbaa !9
  %925 = fsub float %923, %924
  %926 = fsub float %925, %.61180
  %927 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1582
  store float %926, ptr %927, align 4, !tbaa !9
  %928 = getelementptr float, ptr %2, i64 %indvars.iv1582
  %929 = load float, ptr %928, align 4, !tbaa !9
  %930 = load float, ptr %638, align 4, !tbaa !9
  %931 = fsub float %929, %930
  %932 = fsub float %931, %.61180
  %933 = getelementptr float, ptr %4, i64 %indvars.iv1582
  store float %932, ptr %933, align 4, !tbaa !9
  %indvars.iv.next1583.1 = add nuw nsw i64 %indvars.iv1582, 2
  %exitcond1586.not.1 = icmp eq i64 %indvars.iv.next1583.1, %wide.trip.count1585
  br i1 %exitcond1586.not.1, label %.loopexit1331, label %.lr.ph1357, !llvm.loop !78

.loopexit1331:                                    ; preds = %scalar.ph1791.prol.loopexit, %scalar.ph1791, %.lr.ph1357.prol.loopexit, %.lr.ph1357, %middle.block1790, %middle.block1820
  %.611801680 = phi float [ %.61180, %middle.block1820 ], [ %.611801675, %middle.block1790 ], [ %.61180, %.lr.ph1357 ], [ %.61180, %.lr.ph1357.prol.loopexit ], [ %.611801675, %scalar.ph1791 ], [ %.611801675, %scalar.ph1791.prol.loopexit ]
  %.412071678 = phi float [ 0.000000e+00, %middle.block1820 ], [ %644, %middle.block1790 ], [ 0.000000e+00, %.lr.ph1357 ], [ 0.000000e+00, %.lr.ph1357.prol.loopexit ], [ %644, %scalar.ph1791 ], [ %644, %scalar.ph1791.prol.loopexit ]
  %.412151676 = phi float [ %896, %middle.block1820 ], [ 0.000000e+00, %middle.block1790 ], [ %896, %.lr.ph1357 ], [ %896, %.lr.ph1357.prol.loopexit ], [ 0.000000e+00, %scalar.ph1791 ], [ 0.000000e+00, %scalar.ph1791.prol.loopexit ]
  %934 = phi i32 [ %897, %middle.block1820 ], [ %855, %middle.block1790 ], [ %897, %.lr.ph1357 ], [ %897, %.lr.ph1357.prol.loopexit ], [ %855, %scalar.ph1791 ], [ %855, %scalar.ph1791.prol.loopexit ]
  br i1 %781, label %.loopexit1331.thread, label %.loopexit1331.thread1691

.loopexit1331.thread1691:                         ; preds = %854, %.loopexit1331
  %935 = phi i32 [ %934, %.loopexit1331 ], [ %855, %854 ]
  %.4121516761697 = phi float [ %.412151676, %.loopexit1331 ], [ 0.000000e+00, %854 ]
  %.4120716781696 = phi float [ %.412071678, %.loopexit1331 ], [ %644, %854 ]
  %.6118016801695 = phi float [ %.611801680, %.loopexit1331 ], [ %.611801675, %854 ]
  %936 = load i32, ptr %1, align 4, !tbaa !5
  br label %940

.loopexit1331.thread:                             ; preds = %895, %.loopexit1331
  %937 = phi i32 [ %934, %.loopexit1331 ], [ %897, %895 ]
  %.4121516761690 = phi float [ %.412151676, %.loopexit1331 ], [ %896, %895 ]
  %.4120716781688 = phi float [ %.412071678, %.loopexit1331 ], [ 0.000000e+00, %895 ]
  %.6118016801686 = phi float [ %.611801680, %.loopexit1331 ], [ %.61180, %895 ]
  %938 = load i32, ptr %1, align 4, !tbaa !5
  %939 = add nsw i32 %938, 1
  br label %940

940:                                              ; preds = %.loopexit1331.thread, %.loopexit1331.thread1691
  %941 = phi i32 [ %935, %.loopexit1331.thread1691 ], [ %937, %.loopexit1331.thread ]
  %.4121516761689 = phi float [ %.4121516761697, %.loopexit1331.thread1691 ], [ %.4121516761690, %.loopexit1331.thread ]
  %.4120716781687 = phi float [ %.4120716781696, %.loopexit1331.thread1691 ], [ %.4120716781688, %.loopexit1331.thread ]
  %.6118016801685 = phi float [ %.6118016801695, %.loopexit1331.thread1691 ], [ %.6118016801686, %.loopexit1331.thread ]
  %942 = phi i32 [ %936, %.loopexit1331.thread1691 ], [ %938, %.loopexit1331.thread ]
  %.01197 = phi i32 [ %936, %.loopexit1331.thread1691 ], [ %939, %.loopexit1331.thread ]
  %943 = add nsw i32 %.01197, -1
  %944 = add nsw i32 %.01197, 1
  %.not1287.not1358 = icmp sgt i32 %.01197, 1
  br i1 %.not1287.not1358, label %.lr.ph1364.preheader, label %._crit_edge1365

.lr.ph1364.preheader:                             ; preds = %940
  %wide.trip.count1590 = zext nneg i32 %.01197 to i64
  %945 = add nsw i64 %wide.trip.count1590, -1
  %xtraiter2018 = and i64 %945, 1
  %946 = icmp eq i32 %.01197, 2
  br i1 %946, label %._crit_edge1365.loopexit.unr-lcssa, label %.lr.ph1364.preheader.new

.lr.ph1364.preheader.new:                         ; preds = %.lr.ph1364.preheader
  %unroll_iter2024 = and i64 %945, -2
  br label %.lr.ph1364

.lr.ph1364:                                       ; preds = %.lr.ph1364, %.lr.ph1364.preheader.new
  %indvars.iv1587 = phi i64 [ 1, %.lr.ph1364.preheader.new ], [ %indvars.iv.next1588.1, %.lr.ph1364 ]
  %.411911361 = phi float [ 0.000000e+00, %.lr.ph1364.preheader.new ], [ %969, %.lr.ph1364 ]
  %947 = phi <2 x float> [ zeroinitializer, %.lr.ph1364.preheader.new ], [ %967, %.lr.ph1364 ]
  %niter2025 = phi i64 [ 0, %.lr.ph1364.preheader.new ], [ %niter2025.next.1, %.lr.ph1364 ]
  %948 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1587
  %949 = load float, ptr %948, align 4, !tbaa !9
  %950 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1587
  %951 = load float, ptr %950, align 4, !tbaa !9
  %952 = fdiv float %949, %951
  %953 = insertelement <2 x float> poison, float %949, i64 0
  %954 = insertelement <2 x float> %953, float %952, i64 1
  %955 = shufflevector <2 x float> %954, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %956 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %954, <2 x float> %955, <2 x float> %947)
  %957 = extractelement <2 x float> %956, i64 0
  %958 = fadd float %.411911361, %957
  %959 = getelementptr float, ptr %3, i64 %indvars.iv1587
  %960 = load float, ptr %959, align 4, !tbaa !9
  %961 = getelementptr float, ptr %4, i64 %indvars.iv1587
  %962 = load float, ptr %961, align 4, !tbaa !9
  %963 = fdiv float %960, %962
  %964 = insertelement <2 x float> poison, float %960, i64 0
  %965 = insertelement <2 x float> %964, float %963, i64 1
  %966 = shufflevector <2 x float> %965, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %967 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %965, <2 x float> %966, <2 x float> %956)
  %968 = extractelement <2 x float> %967, i64 0
  %969 = fadd float %958, %968
  %indvars.iv.next1588.1 = add nuw nsw i64 %indvars.iv1587, 2
  %niter2025.next.1 = add i64 %niter2025, 2
  %niter2025.ncmp.1 = icmp eq i64 %niter2025.next.1, %unroll_iter2024
  br i1 %niter2025.ncmp.1, label %._crit_edge1365.loopexit.unr-lcssa.loopexit, label %.lr.ph1364, !llvm.loop !79

._crit_edge1365.loopexit.unr-lcssa.loopexit:      ; preds = %.lr.ph1364
  %970 = extractelement <2 x float> %967, i64 1
  br label %._crit_edge1365.loopexit.unr-lcssa

._crit_edge1365.loopexit.unr-lcssa:               ; preds = %._crit_edge1365.loopexit.unr-lcssa.loopexit, %.lr.ph1364.preheader
  %.lcssa2001.ph = phi float [ poison, %.lr.ph1364.preheader ], [ %968, %._crit_edge1365.loopexit.unr-lcssa.loopexit ]
  %.lcssa2000.ph = phi float [ poison, %.lr.ph1364.preheader ], [ %969, %._crit_edge1365.loopexit.unr-lcssa.loopexit ]
  %.lcssa1999.ph = phi float [ poison, %.lr.ph1364.preheader ], [ %970, %._crit_edge1365.loopexit.unr-lcssa.loopexit ]
  %indvars.iv1587.unr = phi i64 [ 1, %.lr.ph1364.preheader ], [ %indvars.iv.next1588.1, %._crit_edge1365.loopexit.unr-lcssa.loopexit ]
  %.411911361.unr = phi float [ 0.000000e+00, %.lr.ph1364.preheader ], [ %969, %._crit_edge1365.loopexit.unr-lcssa.loopexit ]
  %.unr = phi <2 x float> [ zeroinitializer, %.lr.ph1364.preheader ], [ %967, %._crit_edge1365.loopexit.unr-lcssa.loopexit ]
  %lcmp.mod2020.not = icmp eq i64 %xtraiter2018, 0
  br i1 %lcmp.mod2020.not, label %._crit_edge1365, label %.lr.ph1364.epil

.lr.ph1364.epil:                                  ; preds = %._crit_edge1365.loopexit.unr-lcssa
  %971 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1587.unr
  %972 = load float, ptr %971, align 4, !tbaa !9
  %973 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1587.unr
  %974 = load float, ptr %973, align 4, !tbaa !9
  %975 = fdiv float %972, %974
  %976 = insertelement <2 x float> poison, float %972, i64 0
  %977 = insertelement <2 x float> %976, float %975, i64 1
  %978 = shufflevector <2 x float> %977, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %979 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %977, <2 x float> %978, <2 x float> %.unr)
  %980 = extractelement <2 x float> %979, i64 0
  %981 = fadd float %.411911361.unr, %980
  %982 = extractelement <2 x float> %979, i64 1
  br label %._crit_edge1365

._crit_edge1365:                                  ; preds = %.lr.ph1364.epil, %._crit_edge1365.loopexit.unr-lcssa, %940
  %.41236.lcssa = phi float [ 0.000000e+00, %940 ], [ %.lcssa1999.ph, %._crit_edge1365.loopexit.unr-lcssa ], [ %982, %.lr.ph1364.epil ]
  %.41191.lcssa = phi float [ 0.000000e+00, %940 ], [ %.lcssa2000.ph, %._crit_edge1365.loopexit.unr-lcssa ], [ %981, %.lr.ph1364.epil ]
  %.5.lcssa = phi float [ 0.000000e+00, %940 ], [ %.lcssa2001.ph, %._crit_edge1365.loopexit.unr-lcssa ], [ %980, %.lr.ph1364.epil ]
  %983 = fcmp oge float %.41191.lcssa, 0.000000e+00
  %984 = fneg float %.41191.lcssa
  %985 = select i1 %983, float %.41191.lcssa, float %984
  %.not1288.not1369 = icmp sgt i32 %941, %.01197
  br i1 %.not1288.not1369, label %.lr.ph1375.preheader, label %._crit_edge1376

.lr.ph1375.preheader:                             ; preds = %._crit_edge1365
  %986 = sext i32 %941 to i64
  %987 = sext i32 %.01197 to i64
  %988 = sub nsw i64 %986, %987
  %xtraiter2026 = and i64 %988, 1
  %lcmp.mod2027.not = icmp eq i64 %xtraiter2026, 0
  br i1 %lcmp.mod2027.not, label %.lr.ph1375.prol.loopexit, label %.lr.ph1375.prol

.lr.ph1375.prol:                                  ; preds = %.lr.ph1375.preheader
  %989 = getelementptr inbounds float, ptr %16, i64 %986
  %990 = load float, ptr %989, align 4, !tbaa !9
  %991 = getelementptr inbounds float, ptr %15, i64 %986
  %992 = load float, ptr %991, align 4, !tbaa !9
  %993 = fdiv float %990, %992
  %994 = insertelement <2 x float> poison, float %990, i64 0
  %995 = insertelement <2 x float> %994, float %993, i64 1
  %996 = shufflevector <2 x float> %995, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %997 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %995, <2 x float> %996, <2 x float> zeroinitializer)
  %998 = extractelement <2 x float> %997, i64 0
  %999 = fadd float %985, %998
  %indvars.iv.next1593.prol = add nsw i64 %986, -1
  %1000 = extractelement <2 x float> %997, i64 1
  br label %.lr.ph1375.prol.loopexit

.lr.ph1375.prol.loopexit:                         ; preds = %.lr.ph1375.prol, %.lr.ph1375.preheader
  %indvars.iv1592.unr = phi i64 [ %986, %.lr.ph1375.preheader ], [ %indvars.iv.next1593.prol, %.lr.ph1375.prol ]
  %.511921372.unr = phi float [ %985, %.lr.ph1375.preheader ], [ %999, %.lr.ph1375.prol ]
  %.unr2029 = phi <2 x float> [ zeroinitializer, %.lr.ph1375.preheader ], [ %997, %.lr.ph1375.prol ]
  %.lcssa1998.unr = phi float [ poison, %.lr.ph1375.preheader ], [ %998, %.lr.ph1375.prol ]
  %.lcssa1997.unr = phi float [ poison, %.lr.ph1375.preheader ], [ %999, %.lr.ph1375.prol ]
  %.lcssa1996.unr = phi float [ poison, %.lr.ph1375.preheader ], [ %1000, %.lr.ph1375.prol ]
  %1001 = add nsw i64 %986, -1
  %1002 = icmp eq i64 %1001, %987
  br i1 %1002, label %._crit_edge1376, label %.lr.ph1375

.lr.ph1375:                                       ; preds = %.lr.ph1375.prol.loopexit, %.lr.ph1375
  %indvars.iv1592 = phi i64 [ %indvars.iv.next1593.1, %.lr.ph1375 ], [ %indvars.iv1592.unr, %.lr.ph1375.prol.loopexit ]
  %.511921372 = phi float [ %1025, %.lr.ph1375 ], [ %.511921372.unr, %.lr.ph1375.prol.loopexit ]
  %1003 = phi <2 x float> [ %1023, %.lr.ph1375 ], [ %.unr2029, %.lr.ph1375.prol.loopexit ]
  %1004 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1592
  %1005 = load float, ptr %1004, align 4, !tbaa !9
  %1006 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1592
  %1007 = load float, ptr %1006, align 4, !tbaa !9
  %1008 = fdiv float %1005, %1007
  %1009 = insertelement <2 x float> poison, float %1005, i64 0
  %1010 = insertelement <2 x float> %1009, float %1008, i64 1
  %1011 = shufflevector <2 x float> %1010, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1012 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1010, <2 x float> %1011, <2 x float> %1003)
  %1013 = extractelement <2 x float> %1012, i64 0
  %1014 = fadd float %.511921372, %1013
  %indvars.iv.next1593 = add nsw i64 %indvars.iv1592, -1
  %1015 = getelementptr inbounds float, ptr %16, i64 %indvars.iv.next1593
  %1016 = load float, ptr %1015, align 4, !tbaa !9
  %1017 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.next1593
  %1018 = load float, ptr %1017, align 4, !tbaa !9
  %1019 = fdiv float %1016, %1018
  %1020 = insertelement <2 x float> poison, float %1016, i64 0
  %1021 = insertelement <2 x float> %1020, float %1019, i64 1
  %1022 = shufflevector <2 x float> %1021, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1023 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1021, <2 x float> %1022, <2 x float> %1012)
  %1024 = extractelement <2 x float> %1023, i64 0
  %1025 = fadd float %1014, %1024
  %indvars.iv.next1593.1 = add nsw i64 %indvars.iv1592, -2
  %.not1288.not.1 = icmp sgt i64 %indvars.iv.next1593.1, %987
  br i1 %.not1288.not.1, label %.lr.ph1375, label %._crit_edge1376.loopexit.unr-lcssa, !llvm.loop !80

._crit_edge1376.loopexit.unr-lcssa:               ; preds = %.lr.ph1375
  %1026 = extractelement <2 x float> %1023, i64 1
  br label %._crit_edge1376

._crit_edge1376:                                  ; preds = %._crit_edge1376.loopexit.unr-lcssa, %.lr.ph1375.prol.loopexit, %._crit_edge1365
  %.11243.lcssa = phi float [ 0.000000e+00, %._crit_edge1365 ], [ %.lcssa1996.unr, %.lr.ph1375.prol.loopexit ], [ %1026, %._crit_edge1376.loopexit.unr-lcssa ]
  %.51192.lcssa = phi float [ %985, %._crit_edge1365 ], [ %.lcssa1997.unr, %.lr.ph1375.prol.loopexit ], [ %1025, %._crit_edge1376.loopexit.unr-lcssa ]
  %.11183.lcssa = phi float [ 0.000000e+00, %._crit_edge1365 ], [ %.lcssa1998.unr, %.lr.ph1375.prol.loopexit ], [ %1024, %._crit_edge1376.loopexit.unr-lcssa ]
  %1027 = fadd float %29, %.11183.lcssa
  %1028 = fadd float %.5.lcssa, %1027
  br i1 %781, label %1032, label %1029

1029:                                             ; preds = %._crit_edge1376
  %1030 = fcmp olt float %1028, 0.000000e+00
  br i1 %1030, label %1031, label %1035

1031:                                             ; preds = %1029
  br label %1035

1032:                                             ; preds = %._crit_edge1376
  %1033 = fcmp ogt float %1028, 0.000000e+00
  br i1 %1033, label %1034, label %1035

1034:                                             ; preds = %1032
  br label %1035

1035:                                             ; preds = %1032, %1034, %1029, %1031
  %.not12901329 = phi i1 [ false, %1031 ], [ true, %1029 ], [ false, %1034 ], [ true, %1032 ]
  %1036 = icmp eq i32 %.01197, 1
  %1037 = icmp eq i32 %.01197, %941
  %or.cond1328 = or i1 %1036, %1037
  %1038 = sext i32 %.01197 to i64
  %1039 = getelementptr inbounds float, ptr %16, i64 %1038
  %1040 = load float, ptr %1039, align 4, !tbaa !9
  %1041 = getelementptr inbounds float, ptr %15, i64 %1038
  %1042 = load float, ptr %1041, align 4, !tbaa !9
  %1043 = fdiv float %1040, %1042
  %1044 = fadd float %.41236.lcssa, %.11243.lcssa
  %1045 = tail call float @llvm.fmuladd.f32(float %1043, float %1043, float %1044)
  %1046 = fmul float %1040, %1043
  %1047 = fadd float %1028, %1046
  store float %1047, ptr %10, align 4, !tbaa !9
  %1048 = fsub float %.11183.lcssa, %.5.lcssa
  %1049 = tail call float @llvm.fmuladd.f32(float %1048, float 8.000000e+00, float %.51192.lcssa)
  %1050 = tail call float @llvm.fmuladd.f32(float %29, float 2.000000e+00, float %1049)
  %1051 = fcmp oge float %1046, 0.000000e+00
  %1052 = fneg float %1046
  %1053 = select i1 %1051, float %1046, float %1052
  %1054 = tail call float @llvm.fmuladd.f32(float %1053, float 3.000000e+00, float %1050)
  %1055 = fcmp oge float %.6118016801685, 0.000000e+00
  %1056 = fneg float %.6118016801685
  %1057 = select i1 %1055, float %.6118016801685, float %1056
  %1058 = tail call float @llvm.fmuladd.f32(float %1057, float %1045, float %1054)
  %1059 = fcmp oge float %1047, 0.000000e+00
  %1060 = fneg float %1047
  %1061 = select i1 %1059, float %1047, float %1060
  %1062 = fmul float %27, %1058
  %1063 = fcmp ugt float %1061, %1062
  br i1 %1063, label %1073, label %1064

1064:                                             ; preds = %1035
  br i1 %781, label %1070, label %1065

1065:                                             ; preds = %1064
  %1066 = sext i32 %942 to i64
  %1067 = getelementptr inbounds float, ptr %17, i64 %1066
  %1068 = load float, ptr %1067, align 4, !tbaa !9
  %1069 = fadd float %1068, %.6118016801685
  store float %1069, ptr %6, align 4, !tbaa !9
  br label %.loopexit

1070:                                             ; preds = %1064
  %1071 = load float, ptr %638, align 4, !tbaa !9
  %1072 = fadd float %1071, %.6118016801685
  store float %1072, ptr %6, align 4, !tbaa !9
  br label %.loopexit

1073:                                             ; preds = %1035
  %1074 = fcmp ugt float %1047, 0.000000e+00
  br i1 %1074, label %1078, label %1075

1075:                                             ; preds = %1073
  %1076 = fcmp oge float %.4121516761689, %.6118016801685
  %1077 = select i1 %1076, float %.4121516761689, float %.6118016801685
  br label %1081

1078:                                             ; preds = %1073
  %1079 = fcmp ole float %.4120716781687, %.6118016801685
  %1080 = select i1 %1079, float %.4120716781687, float %.6118016801685
  br label %1081

1081:                                             ; preds = %1078, %1075
  %.51216 = phi float [ %1077, %1075 ], [ %.4121516761689, %1078 ]
  %.51208 = phi float [ %.4120716781687, %1075 ], [ %1080, %1078 ]
  store i32 2, ptr %11, align 4, !tbaa !5
  %.not1290 = or i1 %or.cond1328, %.not12901329
  br i1 %.not1290, label %1082, label %1175

1082:                                             ; preds = %1081
  br i1 %781, label %1100, label %1083

1083:                                             ; preds = %1082
  %1084 = sext i32 %942 to i64
  %1085 = getelementptr inbounds float, ptr %16, i64 %1084
  %1086 = load float, ptr %1085, align 4, !tbaa !9
  %1087 = getelementptr inbounds float, ptr %15, i64 %1084
  %1088 = load float, ptr %1087, align 4, !tbaa !9
  %1089 = fdiv float %1086, %1088
  %1090 = load float, ptr %769, align 4, !tbaa !9
  %1091 = fneg float %1090
  %1092 = tail call float @llvm.fmuladd.f32(float %1091, float %1045, float %1047)
  %1093 = getelementptr inbounds float, ptr %17, i64 %1084
  %1094 = load float, ptr %1093, align 4, !tbaa !9
  %1095 = load float, ptr %638, align 4, !tbaa !9
  %1096 = fsub float %1094, %1095
  %1097 = fmul float %1089, %1089
  %1098 = fneg float %1096
  %1099 = tail call float @llvm.fmuladd.f32(float %1098, float %1097, float %1092)
  br label %1116

1100:                                             ; preds = %1082
  %1101 = load float, ptr %767, align 4, !tbaa !9
  %1102 = load float, ptr %769, align 4, !tbaa !9
  %1103 = fdiv float %1101, %1102
  %1104 = sext i32 %942 to i64
  %1105 = getelementptr inbounds float, ptr %15, i64 %1104
  %1106 = load float, ptr %1105, align 4, !tbaa !9
  %1107 = fneg float %1106
  %1108 = tail call float @llvm.fmuladd.f32(float %1107, float %1045, float %1047)
  %1109 = load float, ptr %638, align 4, !tbaa !9
  %1110 = getelementptr inbounds float, ptr %17, i64 %1104
  %1111 = load float, ptr %1110, align 4, !tbaa !9
  %1112 = fsub float %1109, %1111
  %1113 = fmul float %1103, %1103
  %1114 = fneg float %1112
  %1115 = tail call float @llvm.fmuladd.f32(float %1114, float %1113, float %1108)
  br label %1116

1116:                                             ; preds = %1100, %1083
  %1117 = phi float [ %1102, %1100 ], [ %1090, %1083 ]
  %1118 = phi float [ %1106, %1100 ], [ %1088, %1083 ]
  %.pre-phi = phi i64 [ %1104, %1100 ], [ %1084, %1083 ]
  %1119 = phi float [ %1115, %1100 ], [ %1099, %1083 ]
  %1120 = fadd float %1118, %1117
  %1121 = fmul float %1118, %1117
  %1122 = fneg float %1121
  %1123 = fmul float %1045, %1122
  %1124 = tail call float @llvm.fmuladd.f32(float %1120, float %1047, float %1123)
  %1125 = fmul float %1047, %1121
  %1126 = fcmp oeq float %1119, 0.000000e+00
  br i1 %1126, label %1127, label %1143

1127:                                             ; preds = %1116
  %1128 = fcmp oeq float %1124, 0.000000e+00
  br i1 %1128, label %1129, label %1141

1129:                                             ; preds = %1127
  br i1 %781, label %1136, label %1130

1130:                                             ; preds = %1129
  %1131 = getelementptr inbounds float, ptr %16, i64 %.pre-phi
  %1132 = load float, ptr %1131, align 4, !tbaa !9
  %1133 = fmul float %1117, %1117
  %1134 = fmul float %1044, %1133
  %1135 = tail call float @llvm.fmuladd.f32(float %1132, float %1132, float %1134)
  br label %1141

1136:                                             ; preds = %1129
  %1137 = load float, ptr %767, align 4, !tbaa !9
  %1138 = fmul float %1118, %1118
  %1139 = fmul float %1044, %1138
  %1140 = tail call float @llvm.fmuladd.f32(float %1137, float %1137, float %1139)
  br label %1141

1141:                                             ; preds = %1130, %1136, %1127
  %.01230 = phi float [ %1135, %1130 ], [ %1140, %1136 ], [ %1124, %1127 ]
  %1142 = fdiv float %1125, %.01230
  store float %1142, ptr %14, align 4, !tbaa !9
  br label %1234

1143:                                             ; preds = %1116
  %1144 = fcmp ugt float %1124, 0.000000e+00
  br i1 %1144, label %1160, label %1145

1145:                                             ; preds = %1143
  %1146 = fpext float %1124 to double
  %1147 = fmul float %1125, -4.000000e+00
  %1148 = fmul float %1119, %1147
  %1149 = tail call float @llvm.fmuladd.f32(float %1124, float %1124, float %1148)
  %1150 = fcmp oge float %1149, 0.000000e+00
  %1151 = fneg float %1149
  %1152 = select i1 %1150, float %1149, float %1151
  %1153 = fpext float %1152 to double
  %1154 = tail call double @sqrt(double noundef %1153) #6
  %1155 = fsub double %1146, %1154
  %1156 = fmul float %1119, 2.000000e+00
  %1157 = fpext float %1156 to double
  %1158 = fdiv double %1155, %1157
  %1159 = fptrunc double %1158 to float
  store float %1159, ptr %14, align 4, !tbaa !9
  br label %1234

1160:                                             ; preds = %1143
  %1161 = fmul float %1125, 2.000000e+00
  %1162 = fpext float %1161 to double
  %1163 = fpext float %1124 to double
  %1164 = fmul float %1125, -4.000000e+00
  %1165 = fmul float %1119, %1164
  %1166 = tail call float @llvm.fmuladd.f32(float %1124, float %1124, float %1165)
  %1167 = fcmp oge float %1166, 0.000000e+00
  %1168 = fneg float %1166
  %1169 = select i1 %1167, float %1166, float %1168
  %1170 = fpext float %1169 to double
  %1171 = tail call double @sqrt(double noundef %1170) #6
  %1172 = fadd double %1171, %1163
  %1173 = fdiv double %1162, %1172
  %1174 = fptrunc double %1173 to float
  store float %1174, ptr %14, align 4, !tbaa !9
  br label %1234

1175:                                             ; preds = %1081
  %1176 = fadd float %29, %.5.lcssa
  %1177 = fadd float %1176, %.11183.lcssa
  br i1 %781, label %1203, label %1178

1178:                                             ; preds = %1175
  %1179 = sext i32 %943 to i64
  %1180 = getelementptr inbounds float, ptr %16, i64 %1179
  %1181 = load float, ptr %1180, align 4, !tbaa !9
  %1182 = getelementptr inbounds float, ptr %15, i64 %1179
  %1183 = load float, ptr %1182, align 4, !tbaa !9
  %1184 = fdiv float %1181, %1183
  %1185 = fmul float %1184, %1184
  %1186 = sext i32 %944 to i64
  %1187 = getelementptr inbounds float, ptr %15, i64 %1186
  %1188 = load float, ptr %1187, align 4, !tbaa !9
  %1189 = fneg float %1188
  %1190 = tail call float @llvm.fmuladd.f32(float %1189, float %1044, float %1177)
  %1191 = getelementptr inbounds float, ptr %17, i64 %1179
  %1192 = load float, ptr %1191, align 4, !tbaa !9
  %1193 = getelementptr inbounds float, ptr %17, i64 %1186
  %1194 = load float, ptr %1193, align 4, !tbaa !9
  %1195 = fsub float %1192, %1194
  %1196 = fneg float %1195
  %1197 = tail call float @llvm.fmuladd.f32(float %1196, float %1185, float %1190)
  %1198 = fmul float %1181, %1181
  %1199 = fmul float %1188, %1188
  %1200 = fsub float %.41236.lcssa, %1185
  %1201 = fadd float %.11243.lcssa, %1200
  %1202 = fmul float %1199, %1201
  br label %1228

1203:                                             ; preds = %1175
  %1204 = sext i32 %944 to i64
  %1205 = getelementptr inbounds float, ptr %16, i64 %1204
  %1206 = load float, ptr %1205, align 4, !tbaa !9
  %1207 = getelementptr inbounds float, ptr %15, i64 %1204
  %1208 = load float, ptr %1207, align 4, !tbaa !9
  %1209 = fdiv float %1206, %1208
  %1210 = fmul float %1209, %1209
  %1211 = sext i32 %943 to i64
  %1212 = getelementptr inbounds float, ptr %15, i64 %1211
  %1213 = load float, ptr %1212, align 4, !tbaa !9
  %1214 = fneg float %1213
  %1215 = tail call float @llvm.fmuladd.f32(float %1214, float %1044, float %1177)
  %1216 = getelementptr inbounds float, ptr %17, i64 %1204
  %1217 = load float, ptr %1216, align 4, !tbaa !9
  %1218 = getelementptr inbounds float, ptr %17, i64 %1211
  %1219 = load float, ptr %1218, align 4, !tbaa !9
  %1220 = fsub float %1217, %1219
  %1221 = fneg float %1220
  %1222 = tail call float @llvm.fmuladd.f32(float %1221, float %1210, float %1215)
  %1223 = fmul float %1213, %1213
  %1224 = fsub float %.11243.lcssa, %1210
  %1225 = fadd float %.41236.lcssa, %1224
  %1226 = fmul float %1223, %1225
  %1227 = fmul float %1206, %1206
  br label %1228

1228:                                             ; preds = %1203, %1178
  %.pre-phi1670 = phi i64 [ %1211, %1203 ], [ %1179, %1178 ]
  %.sink1663 = phi float [ %1222, %1203 ], [ %1197, %1178 ]
  %.sink1662 = phi float [ %1226, %1203 ], [ %1198, %1178 ]
  %.sink = phi float [ %1227, %1203 ], [ %1202, %1178 ]
  store float %.sink1663, ptr %9, align 4
  store float %.sink1662, ptr %12, align 4
  %1229 = getelementptr inbounds i8, ptr %12, i64 8
  store float %.sink, ptr %1229, align 4
  %1230 = fmul float %1040, %1040
  %1231 = getelementptr inbounds i8, ptr %12, i64 4
  store float %1230, ptr %1231, align 4, !tbaa !9
  %1232 = getelementptr inbounds float, ptr %15, i64 %.pre-phi1670
  call void @slaed6_(ptr noundef nonnull %11, ptr noundef nonnull %13, ptr noundef nonnull %9, ptr noundef nonnull %1232, ptr noundef nonnull %12, ptr noundef nonnull %10, ptr noundef nonnull %14, ptr noundef nonnull %7) #6
  %1233 = load i32, ptr %7, align 4, !tbaa !5
  %.not1294 = icmp eq i32 %1233, 0
  br i1 %.not1294, label %._crit_edge1664, label %.loopexit

._crit_edge1664:                                  ; preds = %1228
  %.pre = load float, ptr %10, align 4, !tbaa !9
  %.pre1665 = load float, ptr %14, align 4, !tbaa !9
  br label %1234

1234:                                             ; preds = %._crit_edge1664, %1141, %1160, %1145
  %1235 = phi float [ %.pre1665, %._crit_edge1664 ], [ %1142, %1141 ], [ %1174, %1160 ], [ %1159, %1145 ]
  %1236 = phi float [ %.pre, %._crit_edge1664 ], [ %1047, %1141 ], [ %1047, %1160 ], [ %1047, %1145 ]
  %1237 = fmul float %1236, %1235
  %1238 = fcmp ult float %1237, 0.000000e+00
  br i1 %1238, label %1242, label %1239

1239:                                             ; preds = %1234
  %1240 = fneg float %1236
  %1241 = fdiv float %1240, %1045
  store float %1241, ptr %14, align 4, !tbaa !9
  br label %1242

1242:                                             ; preds = %1239, %1234
  %1243 = phi float [ %1241, %1239 ], [ %1235, %1234 ]
  %1244 = fadd float %1243, %.6118016801685
  %1245 = fcmp ogt float %1244, %.51208
  %1246 = fcmp olt float %1244, %.51216
  %or.cond1326 = select i1 %1245, i1 true, i1 %1246
  br i1 %or.cond1326, label %1247, label %1255

1247:                                             ; preds = %1242
  %1248 = fcmp olt float %1236, 0.000000e+00
  br i1 %1248, label %1249, label %1252

1249:                                             ; preds = %1247
  %1250 = fsub float %.51208, %.6118016801685
  %1251 = fmul float %1250, 5.000000e-01
  store float %1251, ptr %14, align 4, !tbaa !9
  br label %1255

1252:                                             ; preds = %1247
  %1253 = fsub float %.51216, %.6118016801685
  %1254 = fmul float %1253, 5.000000e-01
  store float %1254, ptr %14, align 4, !tbaa !9
  br label %1255

1255:                                             ; preds = %1242, %1249, %1252
  %1256 = phi float [ %1243, %1242 ], [ %1251, %1249 ], [ %1254, %1252 ]
  %1257 = load i32, ptr %0, align 4, !tbaa !5
  %.not12951380 = icmp slt i32 %1257, 1
  br i1 %.not12951380, label %.preheader1330, label %.lr.ph1383

.lr.ph1383:                                       ; preds = %1255
  %1258 = add nuw i32 %1257, 1
  %wide.trip.count1598 = zext i32 %1258 to i64
  %1259 = zext nneg i32 %1257 to i64
  %min.iters.check1841 = icmp ult i32 %1257, 8
  br i1 %min.iters.check1841, label %scalar.ph1840.preheader, label %vector.ph1842

scalar.ph1840.preheader:                          ; preds = %middle.block1839, %.lr.ph1383
  %indvars.iv1595.ph = phi i64 [ 1, %.lr.ph1383 ], [ %ind.end1845, %middle.block1839 ]
  br label %scalar.ph1840

vector.ph1842:                                    ; preds = %.lr.ph1383
  %n.vec1844 = and i64 %1259, 2147483640
  %ind.end1845 = or disjoint i64 %n.vec1844, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %1256, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1847

vector.body1847:                                  ; preds = %vector.body1847, %vector.ph1842
  %index1848 = phi i64 [ 0, %vector.ph1842 ], [ %index.next1852, %vector.body1847 ]
  %1260 = getelementptr float, ptr %4, i64 %index1848
  %1261 = getelementptr inbounds i8, ptr %1260, i64 16
  %wide.load1850 = load <4 x float>, ptr %1260, align 4, !tbaa !9
  %wide.load1851 = load <4 x float>, ptr %1261, align 4, !tbaa !9
  %1262 = fsub <4 x float> %wide.load1850, %broadcast.splat
  %1263 = fsub <4 x float> %wide.load1851, %broadcast.splat
  store <4 x float> %1262, ptr %1260, align 4, !tbaa !9
  store <4 x float> %1263, ptr %1261, align 4, !tbaa !9
  %index.next1852 = add nuw i64 %index1848, 8
  %1264 = icmp eq i64 %index.next1852, %n.vec1844
  br i1 %1264, label %middle.block1839, label %vector.body1847, !llvm.loop !81

middle.block1839:                                 ; preds = %vector.body1847
  %cmp.n1853 = icmp eq i64 %n.vec1844, %1259
  br i1 %cmp.n1853, label %.preheader1330, label %scalar.ph1840.preheader

.preheader1330:                                   ; preds = %scalar.ph1840, %middle.block1839, %1255
  br i1 %.not1287.not1358, label %.lr.ph1389.preheader, label %._crit_edge1390

.lr.ph1389.preheader:                             ; preds = %.preheader1330
  %wide.trip.count1603 = zext nneg i32 %.01197 to i64
  %1265 = add nsw i64 %wide.trip.count1603, -1
  %xtraiter2030 = and i64 %1265, 1
  %1266 = icmp eq i32 %.01197, 2
  br i1 %1266, label %._crit_edge1390.loopexit.unr-lcssa, label %.lr.ph1389.preheader.new

.lr.ph1389.preheader.new:                         ; preds = %.lr.ph1389.preheader
  %unroll_iter2037 = and i64 %1265, -2
  br label %.lr.ph1389

scalar.ph1840:                                    ; preds = %scalar.ph1840.preheader, %scalar.ph1840
  %indvars.iv1595 = phi i64 [ %indvars.iv.next1596, %scalar.ph1840 ], [ %indvars.iv1595.ph, %scalar.ph1840.preheader ]
  %1267 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1595
  %1268 = load float, ptr %1267, align 4, !tbaa !9
  %1269 = fsub float %1268, %1256
  store float %1269, ptr %1267, align 4, !tbaa !9
  %indvars.iv.next1596 = add nuw nsw i64 %indvars.iv1595, 1
  %exitcond1599.not = icmp eq i64 %indvars.iv.next1596, %wide.trip.count1598
  br i1 %exitcond1599.not, label %.preheader1330, label %scalar.ph1840, !llvm.loop !82

.lr.ph1389:                                       ; preds = %.lr.ph1389, %.lr.ph1389.preheader.new
  %indvars.iv1600 = phi i64 [ 1, %.lr.ph1389.preheader.new ], [ %indvars.iv.next1601.1, %.lr.ph1389 ]
  %.611931387 = phi float [ 0.000000e+00, %.lr.ph1389.preheader.new ], [ %1292, %.lr.ph1389 ]
  %1270 = phi <2 x float> [ zeroinitializer, %.lr.ph1389.preheader.new ], [ %1290, %.lr.ph1389 ]
  %niter2038 = phi i64 [ 0, %.lr.ph1389.preheader.new ], [ %niter2038.next.1, %.lr.ph1389 ]
  %1271 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1600
  %1272 = load float, ptr %1271, align 4, !tbaa !9
  %1273 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1600
  %1274 = load float, ptr %1273, align 4, !tbaa !9
  %1275 = fdiv float %1272, %1274
  %1276 = insertelement <2 x float> poison, float %1272, i64 0
  %1277 = insertelement <2 x float> %1276, float %1275, i64 1
  %1278 = shufflevector <2 x float> %1277, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1279 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1277, <2 x float> %1278, <2 x float> %1270)
  %1280 = extractelement <2 x float> %1279, i64 0
  %1281 = fadd float %.611931387, %1280
  %1282 = getelementptr float, ptr %3, i64 %indvars.iv1600
  %1283 = load float, ptr %1282, align 4, !tbaa !9
  %1284 = getelementptr float, ptr %4, i64 %indvars.iv1600
  %1285 = load float, ptr %1284, align 4, !tbaa !9
  %1286 = fdiv float %1283, %1285
  %1287 = insertelement <2 x float> poison, float %1283, i64 0
  %1288 = insertelement <2 x float> %1287, float %1286, i64 1
  %1289 = shufflevector <2 x float> %1288, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1290 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1288, <2 x float> %1289, <2 x float> %1279)
  %1291 = extractelement <2 x float> %1290, i64 0
  %1292 = fadd float %1281, %1291
  %indvars.iv.next1601.1 = add nuw nsw i64 %indvars.iv1600, 2
  %niter2038.next.1 = add i64 %niter2038, 2
  %niter2038.ncmp.1 = icmp eq i64 %niter2038.next.1, %unroll_iter2037
  br i1 %niter2038.ncmp.1, label %._crit_edge1390.loopexit.unr-lcssa.loopexit, label %.lr.ph1389, !llvm.loop !83

._crit_edge1390.loopexit.unr-lcssa.loopexit:      ; preds = %.lr.ph1389
  %1293 = extractelement <2 x float> %1290, i64 1
  br label %._crit_edge1390.loopexit.unr-lcssa

._crit_edge1390.loopexit.unr-lcssa:               ; preds = %._crit_edge1390.loopexit.unr-lcssa.loopexit, %.lr.ph1389.preheader
  %.lcssa1995.ph = phi float [ poison, %.lr.ph1389.preheader ], [ %1291, %._crit_edge1390.loopexit.unr-lcssa.loopexit ]
  %.lcssa1994.ph = phi float [ poison, %.lr.ph1389.preheader ], [ %1292, %._crit_edge1390.loopexit.unr-lcssa.loopexit ]
  %.lcssa1993.ph = phi float [ poison, %.lr.ph1389.preheader ], [ %1293, %._crit_edge1390.loopexit.unr-lcssa.loopexit ]
  %indvars.iv1600.unr = phi i64 [ 1, %.lr.ph1389.preheader ], [ %indvars.iv.next1601.1, %._crit_edge1390.loopexit.unr-lcssa.loopexit ]
  %.611931387.unr = phi float [ 0.000000e+00, %.lr.ph1389.preheader ], [ %1292, %._crit_edge1390.loopexit.unr-lcssa.loopexit ]
  %.unr2032 = phi <2 x float> [ zeroinitializer, %.lr.ph1389.preheader ], [ %1290, %._crit_edge1390.loopexit.unr-lcssa.loopexit ]
  %lcmp.mod2033.not = icmp eq i64 %xtraiter2030, 0
  br i1 %lcmp.mod2033.not, label %._crit_edge1390, label %.lr.ph1389.epil

.lr.ph1389.epil:                                  ; preds = %._crit_edge1390.loopexit.unr-lcssa
  %1294 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1600.unr
  %1295 = load float, ptr %1294, align 4, !tbaa !9
  %1296 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1600.unr
  %1297 = load float, ptr %1296, align 4, !tbaa !9
  %1298 = fdiv float %1295, %1297
  %1299 = insertelement <2 x float> poison, float %1295, i64 0
  %1300 = insertelement <2 x float> %1299, float %1298, i64 1
  %1301 = shufflevector <2 x float> %1300, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1302 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1300, <2 x float> %1301, <2 x float> %.unr2032)
  %1303 = extractelement <2 x float> %1302, i64 0
  %1304 = fadd float %.611931387.unr, %1303
  %1305 = extractelement <2 x float> %1302, i64 1
  br label %._crit_edge1390

._crit_edge1390:                                  ; preds = %.lr.ph1389.epil, %._crit_edge1390.loopexit.unr-lcssa, %.preheader1330
  %.51237.lcssa = phi float [ 0.000000e+00, %.preheader1330 ], [ %.lcssa1993.ph, %._crit_edge1390.loopexit.unr-lcssa ], [ %1305, %.lr.ph1389.epil ]
  %.61193.lcssa = phi float [ 0.000000e+00, %.preheader1330 ], [ %.lcssa1994.ph, %._crit_edge1390.loopexit.unr-lcssa ], [ %1304, %.lr.ph1389.epil ]
  %.6.lcssa = phi float [ 0.000000e+00, %.preheader1330 ], [ %.lcssa1995.ph, %._crit_edge1390.loopexit.unr-lcssa ], [ %1303, %.lr.ph1389.epil ]
  %1306 = fcmp oge float %.61193.lcssa, 0.000000e+00
  %1307 = fneg float %.61193.lcssa
  %1308 = select i1 %1306, float %.61193.lcssa, float %1307
  %.not1297.not1394 = icmp sgt i32 %1257, %.01197
  br i1 %.not1297.not1394, label %.lr.ph1400.preheader, label %._crit_edge1401

.lr.ph1400.preheader:                             ; preds = %._crit_edge1390
  %1309 = sext i32 %1257 to i64
  %1310 = sub nsw i64 %1309, %1038
  %xtraiter2039 = and i64 %1310, 1
  %lcmp.mod2040.not = icmp eq i64 %xtraiter2039, 0
  br i1 %lcmp.mod2040.not, label %.lr.ph1400.prol.loopexit, label %.lr.ph1400.prol

.lr.ph1400.prol:                                  ; preds = %.lr.ph1400.preheader
  %1311 = getelementptr inbounds float, ptr %16, i64 %1309
  %1312 = load float, ptr %1311, align 4, !tbaa !9
  %1313 = getelementptr inbounds float, ptr %15, i64 %1309
  %1314 = load float, ptr %1313, align 4, !tbaa !9
  %1315 = fdiv float %1312, %1314
  %1316 = insertelement <2 x float> poison, float %1312, i64 0
  %1317 = insertelement <2 x float> %1316, float %1315, i64 1
  %1318 = shufflevector <2 x float> %1317, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1319 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1317, <2 x float> %1318, <2 x float> zeroinitializer)
  %1320 = extractelement <2 x float> %1319, i64 0
  %1321 = fadd float %1308, %1320
  %indvars.iv.next1606.prol = add nsw i64 %1309, -1
  %1322 = extractelement <2 x float> %1319, i64 1
  br label %.lr.ph1400.prol.loopexit

.lr.ph1400.prol.loopexit:                         ; preds = %.lr.ph1400.prol, %.lr.ph1400.preheader
  %indvars.iv1605.unr = phi i64 [ %1309, %.lr.ph1400.preheader ], [ %indvars.iv.next1606.prol, %.lr.ph1400.prol ]
  %.711941397.unr = phi float [ %1308, %.lr.ph1400.preheader ], [ %1321, %.lr.ph1400.prol ]
  %.unr2042 = phi <2 x float> [ zeroinitializer, %.lr.ph1400.preheader ], [ %1319, %.lr.ph1400.prol ]
  %.lcssa1992.unr = phi float [ poison, %.lr.ph1400.preheader ], [ %1320, %.lr.ph1400.prol ]
  %.lcssa1991.unr = phi float [ poison, %.lr.ph1400.preheader ], [ %1321, %.lr.ph1400.prol ]
  %.lcssa1990.unr = phi float [ poison, %.lr.ph1400.preheader ], [ %1322, %.lr.ph1400.prol ]
  %1323 = add nsw i64 %1309, -1
  %1324 = icmp eq i64 %1323, %1038
  br i1 %1324, label %._crit_edge1401, label %.lr.ph1400

.lr.ph1400:                                       ; preds = %.lr.ph1400.prol.loopexit, %.lr.ph1400
  %indvars.iv1605 = phi i64 [ %indvars.iv.next1606.1, %.lr.ph1400 ], [ %indvars.iv1605.unr, %.lr.ph1400.prol.loopexit ]
  %.711941397 = phi float [ %1347, %.lr.ph1400 ], [ %.711941397.unr, %.lr.ph1400.prol.loopexit ]
  %1325 = phi <2 x float> [ %1345, %.lr.ph1400 ], [ %.unr2042, %.lr.ph1400.prol.loopexit ]
  %1326 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1605
  %1327 = load float, ptr %1326, align 4, !tbaa !9
  %1328 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1605
  %1329 = load float, ptr %1328, align 4, !tbaa !9
  %1330 = fdiv float %1327, %1329
  %1331 = insertelement <2 x float> poison, float %1327, i64 0
  %1332 = insertelement <2 x float> %1331, float %1330, i64 1
  %1333 = shufflevector <2 x float> %1332, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1334 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1332, <2 x float> %1333, <2 x float> %1325)
  %1335 = extractelement <2 x float> %1334, i64 0
  %1336 = fadd float %.711941397, %1335
  %indvars.iv.next1606 = add nsw i64 %indvars.iv1605, -1
  %1337 = getelementptr inbounds float, ptr %16, i64 %indvars.iv.next1606
  %1338 = load float, ptr %1337, align 4, !tbaa !9
  %1339 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.next1606
  %1340 = load float, ptr %1339, align 4, !tbaa !9
  %1341 = fdiv float %1338, %1340
  %1342 = insertelement <2 x float> poison, float %1338, i64 0
  %1343 = insertelement <2 x float> %1342, float %1341, i64 1
  %1344 = shufflevector <2 x float> %1343, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1345 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1343, <2 x float> %1344, <2 x float> %1334)
  %1346 = extractelement <2 x float> %1345, i64 0
  %1347 = fadd float %1336, %1346
  %indvars.iv.next1606.1 = add nsw i64 %indvars.iv1605, -2
  %.not1297.not.1 = icmp sgt i64 %indvars.iv.next1606.1, %1038
  br i1 %.not1297.not.1, label %.lr.ph1400, label %._crit_edge1401.loopexit.unr-lcssa, !llvm.loop !84

._crit_edge1401.loopexit.unr-lcssa:               ; preds = %.lr.ph1400
  %1348 = extractelement <2 x float> %1345, i64 1
  br label %._crit_edge1401

._crit_edge1401:                                  ; preds = %._crit_edge1401.loopexit.unr-lcssa, %.lr.ph1400.prol.loopexit, %._crit_edge1390
  %.21244.lcssa = phi float [ 0.000000e+00, %._crit_edge1390 ], [ %.lcssa1990.unr, %.lr.ph1400.prol.loopexit ], [ %1348, %._crit_edge1401.loopexit.unr-lcssa ]
  %.71194.lcssa = phi float [ %1308, %._crit_edge1390 ], [ %.lcssa1991.unr, %.lr.ph1400.prol.loopexit ], [ %1347, %._crit_edge1401.loopexit.unr-lcssa ]
  %.21184.lcssa = phi float [ 0.000000e+00, %._crit_edge1390 ], [ %.lcssa1992.unr, %.lr.ph1400.prol.loopexit ], [ %1346, %._crit_edge1401.loopexit.unr-lcssa ]
  %1349 = load float, ptr %1039, align 4, !tbaa !9
  %1350 = load float, ptr %1041, align 4, !tbaa !9
  %1351 = fdiv float %1349, %1350
  %1352 = fadd float %.51237.lcssa, %.21244.lcssa
  %1353 = call float @llvm.fmuladd.f32(float %1351, float %1351, float %1352)
  %1354 = fmul float %1349, %1351
  %1355 = fadd float %29, %.21184.lcssa
  %1356 = fadd float %.6.lcssa, %1355
  %1357 = fadd float %1356, %1354
  store float %1357, ptr %10, align 4, !tbaa !9
  %1358 = fsub float %.21184.lcssa, %.6.lcssa
  %1359 = call float @llvm.fmuladd.f32(float %1358, float 8.000000e+00, float %.71194.lcssa)
  %1360 = call float @llvm.fmuladd.f32(float %29, float 2.000000e+00, float %1359)
  %1361 = fcmp oge float %1354, 0.000000e+00
  %1362 = fneg float %1354
  %1363 = select i1 %1361, float %1354, float %1362
  %1364 = call float @llvm.fmuladd.f32(float %1363, float 3.000000e+00, float %1360)
  %1365 = fadd float %1256, %.6118016801685
  %1366 = fcmp oge float %1365, 0.000000e+00
  %1367 = fneg float %1365
  %1368 = select i1 %1366, float %1365, float %1367
  %1369 = call float @llvm.fmuladd.f32(float %1368, float %1353, float %1364)
  %1370 = load i32, ptr %13, align 4, !tbaa !5
  %.not1298 = icmp eq i32 %1370, 0
  br i1 %.not1298, label %1379, label %1371

1371:                                             ; preds = %._crit_edge1401
  %1372 = fneg float %1357
  %1373 = fcmp oge float %1236, 0.000000e+00
  %1374 = fneg float %1236
  %1375 = select i1 %1373, float %1236, float %1374
  %1376 = fdiv float %1375, 1.000000e+01
  %1377 = fcmp olt float %1376, %1372
  br i1 %1377, label %1378, label %1386

1378:                                             ; preds = %1371
  br label %1386

1379:                                             ; preds = %._crit_edge1401
  %1380 = fcmp oge float %1236, 0.000000e+00
  %1381 = fneg float %1236
  %1382 = select i1 %1380, float %1236, float %1381
  %1383 = fdiv float %1382, 1.000000e+01
  %1384 = fcmp ogt float %1357, %1383
  br i1 %1384, label %1385, label %1386

1385:                                             ; preds = %1379
  br label %1386

1386:                                             ; preds = %1379, %1385, %1371, %1378
  %.01200 = phi i32 [ 1, %1378 ], [ 0, %1371 ], [ 1, %1385 ], [ 0, %1379 ]
  %storemerge1299.in1432 = load i32, ptr %11, align 4, !tbaa !5
  %storemerge12991433 = add nsw i32 %storemerge1299.in1432, 1
  store i32 %storemerge12991433, ptr %11, align 4, !tbaa !5
  %1387 = icmp slt i32 %storemerge1299.in1432, 30
  br i1 %1387, label %.lr.ph1445, label %._crit_edge1446

.lr.ph1445:                                       ; preds = %1386
  %1388 = sext i32 %943 to i64
  %1389 = getelementptr inbounds float, ptr %15, i64 %1388
  %1390 = sext i32 %944 to i64
  %1391 = getelementptr inbounds float, ptr %15, i64 %1390
  %1392 = getelementptr inbounds i8, ptr %12, i64 8
  %1393 = getelementptr inbounds float, ptr %16, i64 %1388
  %1394 = getelementptr inbounds float, ptr %17, i64 %1388
  %1395 = getelementptr inbounds float, ptr %17, i64 %1390
  %1396 = getelementptr inbounds float, ptr %16, i64 %1390
  %wide.trip.count1616 = zext i32 %.01197 to i64
  %1397 = add nsw i64 %wide.trip.count1616, -1
  %xtraiter2043 = and i64 %1397, 1
  %1398 = icmp eq i32 %.01197, 2
  %unroll_iter2050 = and i64 %1397, -2
  %lcmp.mod2046.not = icmp eq i64 %xtraiter2043, 0
  br label %1399

1399:                                             ; preds = %.lr.ph1445, %1751
  %1400 = phi float [ %1350, %.lr.ph1445 ], [ %1719, %1751 ]
  %1401 = phi float [ %1349, %.lr.ph1445 ], [ %1718, %1751 ]
  %1402 = phi float [ %1357, %.lr.ph1445 ], [ %1726, %1751 ]
  %.71443 = phi float [ %.6.lcssa, %.lr.ph1445 ], [ %.8.lcssa, %1751 ]
  %.711811442 = phi float [ %1365, %.lr.ph1445 ], [ %1638, %1751 ]
  %.311851441 = phi float [ %.21184.lcssa, %.lr.ph1445 ], [ %.41186.lcssa, %1751 ]
  %.811951440 = phi float [ %1369, %.lr.ph1445 ], [ %1737, %1751 ]
  %.011961439 = phi float [ %1353, %.lr.ph1445 ], [ %1722, %1751 ]
  %.112011438 = phi i32 [ %.01200, %.lr.ph1445 ], [ %.21202, %1751 ]
  %.612091437 = phi float [ %.51208, %.lr.ph1445 ], [ %.71210, %1751 ]
  %.612171436 = phi float [ %.51216, %.lr.ph1445 ], [ %.71218, %1751 ]
  %.612381435 = phi float [ %.51237.lcssa, %.lr.ph1445 ], [ %.91241.lcssa, %1751 ]
  %.312451434 = phi float [ %.21244.lcssa, %.lr.ph1445 ], [ %.61248.lcssa, %1751 ]
  %1403 = fcmp oge float %1402, 0.000000e+00
  %1404 = fneg float %1402
  %1405 = select i1 %1403, float %1402, float %1404
  %1406 = fmul float %27, %.811951440
  %1407 = fcmp ugt float %1405, %1406
  br i1 %1407, label %1419, label %1408

1408:                                             ; preds = %1399
  %1409 = load i32, ptr %13, align 4, !tbaa !5
  %.not1312 = icmp eq i32 %1409, 0
  br i1 %.not1312, label %1416, label %1410

1410:                                             ; preds = %1408
  %1411 = load i32, ptr %1, align 4, !tbaa !5
  %1412 = sext i32 %1411 to i64
  %1413 = getelementptr inbounds float, ptr %17, i64 %1412
  %1414 = load float, ptr %1413, align 4, !tbaa !9
  %1415 = fadd float %.711811442, %1414
  store float %1415, ptr %6, align 4, !tbaa !9
  br label %.loopexit

1416:                                             ; preds = %1408
  %1417 = load float, ptr %638, align 4, !tbaa !9
  %1418 = fadd float %.711811442, %1417
  store float %1418, ptr %6, align 4, !tbaa !9
  br label %.loopexit

1419:                                             ; preds = %1399
  %1420 = fcmp ugt float %1402, 0.000000e+00
  br i1 %1420, label %1424, label %1421

1421:                                             ; preds = %1419
  %1422 = fcmp oge float %.612171436, %.711811442
  %1423 = select i1 %1422, float %.612171436, float %.711811442
  br label %1427

1424:                                             ; preds = %1419
  %1425 = fcmp ole float %.612091437, %.711811442
  %1426 = select i1 %1425, float %.612091437, float %.711811442
  br label %1427

1427:                                             ; preds = %1424, %1421
  %.71218 = phi float [ %1423, %1421 ], [ %.612171436, %1424 ]
  %.71210 = phi float [ %.612091437, %1421 ], [ %1426, %1424 ]
  br i1 %.not1290, label %1428, label %1549

1428:                                             ; preds = %1427
  %.not1301 = icmp eq i32 %.112011438, 0
  br i1 %.not1301, label %1429, label %1466

1429:                                             ; preds = %1428
  %1430 = load i32, ptr %13, align 4, !tbaa !5
  %.not1302 = icmp eq i32 %1430, 0
  br i1 %.not1302, label %1449, label %1431

1431:                                             ; preds = %1429
  %1432 = load i32, ptr %1, align 4, !tbaa !5
  %1433 = sext i32 %1432 to i64
  %1434 = getelementptr inbounds float, ptr %16, i64 %1433
  %1435 = load float, ptr %1434, align 4, !tbaa !9
  %1436 = getelementptr inbounds float, ptr %15, i64 %1433
  %1437 = load float, ptr %1436, align 4, !tbaa !9
  %1438 = fdiv float %1435, %1437
  %1439 = load float, ptr %769, align 4, !tbaa !9
  %1440 = fneg float %1439
  %1441 = call float @llvm.fmuladd.f32(float %1440, float %.011961439, float %1402)
  %1442 = getelementptr inbounds float, ptr %17, i64 %1433
  %1443 = load float, ptr %1442, align 4, !tbaa !9
  %1444 = load float, ptr %638, align 4, !tbaa !9
  %1445 = fsub float %1443, %1444
  %1446 = fmul float %1438, %1438
  %1447 = fneg float %1445
  %1448 = call float @llvm.fmuladd.f32(float %1447, float %1446, float %1441)
  store float %1448, ptr %9, align 4, !tbaa !9
  br label %1480

1449:                                             ; preds = %1429
  %1450 = load float, ptr %767, align 4, !tbaa !9
  %1451 = load float, ptr %769, align 4, !tbaa !9
  %1452 = fdiv float %1450, %1451
  %1453 = load i32, ptr %1, align 4, !tbaa !5
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds float, ptr %15, i64 %1454
  %1456 = load float, ptr %1455, align 4, !tbaa !9
  %1457 = fneg float %1456
  %1458 = call float @llvm.fmuladd.f32(float %1457, float %.011961439, float %1402)
  %1459 = load float, ptr %638, align 4, !tbaa !9
  %1460 = getelementptr inbounds float, ptr %17, i64 %1454
  %1461 = load float, ptr %1460, align 4, !tbaa !9
  %1462 = fsub float %1459, %1461
  %1463 = fmul float %1452, %1452
  %1464 = fneg float %1462
  %1465 = call float @llvm.fmuladd.f32(float %1464, float %1463, float %1458)
  store float %1465, ptr %9, align 4, !tbaa !9
  br label %1480

1466:                                             ; preds = %1428
  %1467 = fdiv float %1401, %1400
  %1468 = load i32, ptr %13, align 4, !tbaa !5
  %.not1303 = icmp eq i32 %1468, 0
  %1469 = call float @llvm.fmuladd.f32(float %1467, float %1467, float %.612381435)
  %1470 = call float @llvm.fmuladd.f32(float %1467, float %1467, float %.312451434)
  %.41246 = select i1 %.not1303, float %1470, float %.312451434
  %.71239 = select i1 %.not1303, float %.612381435, float %1469
  %1471 = load i32, ptr %1, align 4, !tbaa !5
  %1472 = sext i32 %1471 to i64
  %1473 = getelementptr inbounds float, ptr %15, i64 %1472
  %1474 = load float, ptr %1473, align 4, !tbaa !9
  %1475 = fneg float %1474
  %1476 = call float @llvm.fmuladd.f32(float %1475, float %.71239, float %1402)
  %1477 = load float, ptr %769, align 4, !tbaa !9
  %1478 = fneg float %1477
  %1479 = call float @llvm.fmuladd.f32(float %1478, float %.41246, float %1476)
  store float %1479, ptr %9, align 4, !tbaa !9
  br label %1480

1480:                                             ; preds = %1431, %1449, %1466
  %1481 = phi i32 [ 1, %1431 ], [ 0, %1449 ], [ %1468, %1466 ]
  %1482 = phi float [ %1448, %1431 ], [ %1465, %1449 ], [ %1479, %1466 ]
  %1483 = phi float [ %1439, %1431 ], [ %1451, %1449 ], [ %1477, %1466 ]
  %1484 = phi float [ %1437, %1431 ], [ %1456, %1449 ], [ %1474, %1466 ]
  %.pre-phi1666 = phi i64 [ %1433, %1431 ], [ %1454, %1449 ], [ %1472, %1466 ]
  %.51247 = phi float [ %.312451434, %1431 ], [ %.312451434, %1449 ], [ %.41246, %1466 ]
  %.81240 = phi float [ %.612381435, %1431 ], [ %.612381435, %1449 ], [ %.71239, %1466 ]
  %1485 = fadd float %1484, %1483
  %1486 = fmul float %1484, %1483
  %1487 = fneg float %1486
  %1488 = fmul float %.011961439, %1487
  %1489 = call float @llvm.fmuladd.f32(float %1485, float %1402, float %1488)
  %1490 = fmul float %1402, %1486
  %1491 = fcmp oeq float %1482, 0.000000e+00
  br i1 %1491, label %1492, label %1516

1492:                                             ; preds = %1480
  %1493 = fcmp oeq float %1489, 0.000000e+00
  br i1 %1493, label %1494, label %1514

1494:                                             ; preds = %1492
  br i1 %.not1301, label %1495, label %1509

1495:                                             ; preds = %1494
  %.not1304 = icmp eq i32 %1481, 0
  br i1 %.not1304, label %1503, label %1496

1496:                                             ; preds = %1495
  %1497 = getelementptr inbounds float, ptr %16, i64 %.pre-phi1666
  %1498 = load float, ptr %1497, align 4, !tbaa !9
  %1499 = fmul float %1483, %1483
  %1500 = fadd float %.51247, %.81240
  %1501 = fmul float %1500, %1499
  %1502 = call float @llvm.fmuladd.f32(float %1498, float %1498, float %1501)
  br label %1514

1503:                                             ; preds = %1495
  %1504 = load float, ptr %767, align 4, !tbaa !9
  %1505 = fmul float %1484, %1484
  %1506 = fadd float %.51247, %.81240
  %1507 = fmul float %1506, %1505
  %1508 = call float @llvm.fmuladd.f32(float %1504, float %1504, float %1507)
  br label %1514

1509:                                             ; preds = %1494
  %1510 = fmul float %1484, %1484
  %1511 = fmul float %1483, %1483
  %1512 = fmul float %.51247, %1511
  %1513 = call float @llvm.fmuladd.f32(float %1510, float %.81240, float %1512)
  br label %1514

1514:                                             ; preds = %1509, %1503, %1496, %1492
  %.11231 = phi float [ %1513, %1509 ], [ %1502, %1496 ], [ %1508, %1503 ], [ %1489, %1492 ]
  %1515 = fdiv float %1490, %.11231
  store float %1515, ptr %14, align 4, !tbaa !9
  br label %1604

1516:                                             ; preds = %1480
  %1517 = fcmp ugt float %1489, 0.000000e+00
  br i1 %1517, label %1534, label %1518

1518:                                             ; preds = %1516
  %1519 = fpext float %1489 to double
  %1520 = fmul float %1490, -4.000000e+00
  %1521 = fmul float %1482, %1520
  %1522 = call float @llvm.fmuladd.f32(float %1489, float %1489, float %1521)
  %1523 = fcmp oge float %1522, 0.000000e+00
  %1524 = fneg float %1522
  %1525 = select i1 %1523, float %1522, float %1524
  %1526 = fpext float %1525 to double
  %1527 = call double @sqrt(double noundef %1526) #6
  %1528 = fsub double %1519, %1527
  %1529 = load float, ptr %9, align 4, !tbaa !9
  %1530 = fmul float %1529, 2.000000e+00
  %1531 = fpext float %1530 to double
  %1532 = fdiv double %1528, %1531
  %1533 = fptrunc double %1532 to float
  store float %1533, ptr %14, align 4, !tbaa !9
  br label %1604

1534:                                             ; preds = %1516
  %1535 = fmul float %1490, 2.000000e+00
  %1536 = fpext float %1535 to double
  %1537 = fpext float %1489 to double
  %1538 = fmul float %1490, -4.000000e+00
  %1539 = fmul float %1482, %1538
  %1540 = call float @llvm.fmuladd.f32(float %1489, float %1489, float %1539)
  %1541 = fcmp oge float %1540, 0.000000e+00
  %1542 = fneg float %1540
  %1543 = select i1 %1541, float %1540, float %1542
  %1544 = fpext float %1543 to double
  %1545 = call double @sqrt(double noundef %1544) #6
  %1546 = fadd double %1545, %1537
  %1547 = fdiv double %1536, %1546
  %1548 = fptrunc double %1547 to float
  store float %1548, ptr %14, align 4, !tbaa !9
  br label %1604

1549:                                             ; preds = %1427
  %1550 = fadd float %29, %.71443
  %1551 = fadd float %.311851441, %1550
  %.not1305 = icmp eq i32 %.112011438, 0
  br i1 %.not1305, label %1563, label %1552

1552:                                             ; preds = %1549
  %1553 = load float, ptr %1389, align 4, !tbaa !9
  %1554 = fneg float %1553
  %1555 = call float @llvm.fmuladd.f32(float %1554, float %.612381435, float %1551)
  %1556 = load float, ptr %1391, align 4, !tbaa !9
  %1557 = fneg float %1556
  %1558 = call float @llvm.fmuladd.f32(float %1557, float %.312451434, float %1555)
  store float %1558, ptr %9, align 4, !tbaa !9
  %1559 = fmul float %1553, %1553
  %1560 = fmul float %.612381435, %1559
  store float %1560, ptr %12, align 4, !tbaa !9
  %1561 = fmul float %1556, %1556
  %1562 = fmul float %.312451434, %1561
  br label %1602

1563:                                             ; preds = %1549
  %1564 = load i32, ptr %13, align 4, !tbaa !5
  %.not1306 = icmp eq i32 %1564, 0
  %1565 = fadd float %.312451434, %.612381435
  br i1 %.not1306, label %1584, label %1566

1566:                                             ; preds = %1563
  %1567 = load float, ptr %1393, align 4, !tbaa !9
  %1568 = load float, ptr %1389, align 4, !tbaa !9
  %1569 = fdiv float %1567, %1568
  %1570 = fmul float %1569, %1569
  %1571 = load float, ptr %1391, align 4, !tbaa !9
  %1572 = fneg float %1571
  %1573 = call float @llvm.fmuladd.f32(float %1572, float %1565, float %1551)
  %1574 = load float, ptr %1394, align 4, !tbaa !9
  %1575 = load float, ptr %1395, align 4, !tbaa !9
  %1576 = fsub float %1574, %1575
  %1577 = fneg float %1576
  %1578 = call float @llvm.fmuladd.f32(float %1577, float %1570, float %1573)
  store float %1578, ptr %9, align 4, !tbaa !9
  %1579 = fmul float %1567, %1567
  store float %1579, ptr %12, align 4, !tbaa !9
  %1580 = fmul float %1571, %1571
  %1581 = fsub float %.612381435, %1570
  %1582 = fadd float %.312451434, %1581
  %1583 = fmul float %1580, %1582
  br label %1602

1584:                                             ; preds = %1563
  %1585 = load float, ptr %1396, align 4, !tbaa !9
  %1586 = load float, ptr %1391, align 4, !tbaa !9
  %1587 = fdiv float %1585, %1586
  %1588 = fmul float %1587, %1587
  %1589 = load float, ptr %1389, align 4, !tbaa !9
  %1590 = fneg float %1589
  %1591 = call float @llvm.fmuladd.f32(float %1590, float %1565, float %1551)
  %1592 = load float, ptr %1395, align 4, !tbaa !9
  %1593 = load float, ptr %1394, align 4, !tbaa !9
  %1594 = fsub float %1592, %1593
  %1595 = fneg float %1594
  %1596 = call float @llvm.fmuladd.f32(float %1595, float %1588, float %1591)
  store float %1596, ptr %9, align 4, !tbaa !9
  %1597 = fmul float %1589, %1589
  %1598 = fsub float %.312451434, %1588
  %1599 = fadd float %.612381435, %1598
  %1600 = fmul float %1597, %1599
  store float %1600, ptr %12, align 4, !tbaa !9
  %1601 = fmul float %1585, %1585
  br label %1602

1602:                                             ; preds = %1566, %1584, %1552
  %.sink1733 = phi float [ %1583, %1566 ], [ %1601, %1584 ], [ %1562, %1552 ]
  store float %.sink1733, ptr %1392, align 4, !tbaa !9
  call void @slaed6_(ptr noundef nonnull %11, ptr noundef nonnull %13, ptr noundef nonnull %9, ptr noundef nonnull %1389, ptr noundef nonnull %12, ptr noundef nonnull %10, ptr noundef nonnull %14, ptr noundef nonnull %7) #6
  %1603 = load i32, ptr %7, align 4, !tbaa !5
  %.not1307 = icmp eq i32 %1603, 0
  br i1 %.not1307, label %._crit_edge1667, label %.loopexit

._crit_edge1667:                                  ; preds = %1602
  %.pre1668 = load float, ptr %14, align 4, !tbaa !9
  br label %1604

1604:                                             ; preds = %._crit_edge1667, %1514, %1534, %1518
  %1605 = phi float [ %.pre1668, %._crit_edge1667 ], [ %1515, %1514 ], [ %1548, %1534 ], [ %1533, %1518 ]
  %1606 = load float, ptr %10, align 4, !tbaa !9
  %1607 = fmul float %1606, %1605
  %1608 = fcmp ult float %1607, 0.000000e+00
  br i1 %1608, label %1612, label %1609

1609:                                             ; preds = %1604
  %1610 = fneg float %1606
  %1611 = fdiv float %1610, %.011961439
  store float %1611, ptr %14, align 4, !tbaa !9
  br label %1612

1612:                                             ; preds = %1609, %1604
  %1613 = phi float [ %1611, %1609 ], [ %1605, %1604 ]
  %1614 = fadd float %.711811442, %1613
  %1615 = fcmp ogt float %1614, %.71210
  %1616 = fcmp olt float %1614, %.71218
  %or.cond1327 = select i1 %1615, i1 true, i1 %1616
  br i1 %or.cond1327, label %1617, label %1625

1617:                                             ; preds = %1612
  %1618 = fcmp olt float %1606, 0.000000e+00
  br i1 %1618, label %1619, label %1622

1619:                                             ; preds = %1617
  %1620 = fsub float %.71210, %.711811442
  %1621 = fmul float %1620, 5.000000e-01
  store float %1621, ptr %14, align 4, !tbaa !9
  br label %1625

1622:                                             ; preds = %1617
  %1623 = fsub float %.71218, %.711811442
  %1624 = fmul float %1623, 5.000000e-01
  store float %1624, ptr %14, align 4, !tbaa !9
  br label %1625

1625:                                             ; preds = %1612, %1619, %1622
  %1626 = phi float [ %1613, %1612 ], [ %1621, %1619 ], [ %1624, %1622 ]
  %1627 = load i32, ptr %0, align 4, !tbaa !5
  %.not13081405 = icmp slt i32 %1627, 1
  br i1 %.not13081405, label %._crit_edge1409, label %.lr.ph1408

.lr.ph1408:                                       ; preds = %1625
  %1628 = add nuw i32 %1627, 1
  %wide.trip.count1611 = zext i32 %1628 to i64
  %1629 = zext nneg i32 %1627 to i64
  %min.iters.check1856 = icmp ult i32 %1627, 8
  br i1 %min.iters.check1856, label %scalar.ph1855.preheader, label %vector.ph1857

vector.ph1857:                                    ; preds = %.lr.ph1408
  %n.vec1859 = and i64 %1629, 2147483640
  %ind.end1860 = or disjoint i64 %n.vec1859, 1
  %broadcast.splatinsert1867 = insertelement <4 x float> poison, float %1626, i64 0
  %broadcast.splat1868 = shufflevector <4 x float> %broadcast.splatinsert1867, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1862

vector.body1862:                                  ; preds = %vector.body1862, %vector.ph1857
  %index1863 = phi i64 [ 0, %vector.ph1857 ], [ %index.next1869, %vector.body1862 ]
  %1630 = getelementptr float, ptr %4, i64 %index1863
  %1631 = getelementptr inbounds i8, ptr %1630, i64 16
  %wide.load1865 = load <4 x float>, ptr %1630, align 4, !tbaa !9
  %wide.load1866 = load <4 x float>, ptr %1631, align 4, !tbaa !9
  %1632 = fsub <4 x float> %wide.load1865, %broadcast.splat1868
  %1633 = fsub <4 x float> %wide.load1866, %broadcast.splat1868
  store <4 x float> %1632, ptr %1630, align 4, !tbaa !9
  store <4 x float> %1633, ptr %1631, align 4, !tbaa !9
  %index.next1869 = add nuw i64 %index1863, 8
  %1634 = icmp eq i64 %index.next1869, %n.vec1859
  br i1 %1634, label %middle.block1854, label %vector.body1862, !llvm.loop !85

middle.block1854:                                 ; preds = %vector.body1862
  %cmp.n1870 = icmp eq i64 %n.vec1859, %1629
  br i1 %cmp.n1870, label %._crit_edge1409, label %scalar.ph1855.preheader

scalar.ph1855.preheader:                          ; preds = %middle.block1854, %.lr.ph1408
  %indvars.iv1608.ph = phi i64 [ 1, %.lr.ph1408 ], [ %ind.end1860, %middle.block1854 ]
  br label %scalar.ph1855

scalar.ph1855:                                    ; preds = %scalar.ph1855.preheader, %scalar.ph1855
  %indvars.iv1608 = phi i64 [ %indvars.iv.next1609, %scalar.ph1855 ], [ %indvars.iv1608.ph, %scalar.ph1855.preheader ]
  %1635 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1608
  %1636 = load float, ptr %1635, align 4, !tbaa !9
  %1637 = fsub float %1636, %1626
  store float %1637, ptr %1635, align 4, !tbaa !9
  %indvars.iv.next1609 = add nuw nsw i64 %indvars.iv1608, 1
  %exitcond1612.not = icmp eq i64 %indvars.iv.next1609, %wide.trip.count1611
  br i1 %exitcond1612.not, label %._crit_edge1409, label %scalar.ph1855, !llvm.loop !86

._crit_edge1409:                                  ; preds = %scalar.ph1855, %middle.block1854, %1625
  %1638 = fadd float %.711811442, %1626
  br i1 %.not1287.not1358, label %.lr.ph1416.preheader, label %._crit_edge1417

.lr.ph1416.preheader:                             ; preds = %._crit_edge1409
  br i1 %1398, label %._crit_edge1417.loopexit.unr-lcssa, label %.lr.ph1416

.lr.ph1416:                                       ; preds = %.lr.ph1416.preheader, %.lr.ph1416
  %indvars.iv1613 = phi i64 [ %indvars.iv.next1614.1, %.lr.ph1416 ], [ 1, %.lr.ph1416.preheader ]
  %.91413 = phi float [ %1661, %.lr.ph1416 ], [ 0.000000e+00, %.lr.ph1416.preheader ]
  %1639 = phi <2 x float> [ %1659, %.lr.ph1416 ], [ zeroinitializer, %.lr.ph1416.preheader ]
  %niter2051 = phi i64 [ %niter2051.next.1, %.lr.ph1416 ], [ 0, %.lr.ph1416.preheader ]
  %1640 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1613
  %1641 = load float, ptr %1640, align 4, !tbaa !9
  %1642 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1613
  %1643 = load float, ptr %1642, align 4, !tbaa !9
  %1644 = fdiv float %1641, %1643
  %1645 = insertelement <2 x float> poison, float %1641, i64 0
  %1646 = insertelement <2 x float> %1645, float %1644, i64 1
  %1647 = shufflevector <2 x float> %1646, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1648 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1646, <2 x float> %1647, <2 x float> %1639)
  %1649 = extractelement <2 x float> %1648, i64 0
  %1650 = fadd float %.91413, %1649
  %1651 = getelementptr float, ptr %3, i64 %indvars.iv1613
  %1652 = load float, ptr %1651, align 4, !tbaa !9
  %1653 = getelementptr float, ptr %4, i64 %indvars.iv1613
  %1654 = load float, ptr %1653, align 4, !tbaa !9
  %1655 = fdiv float %1652, %1654
  %1656 = insertelement <2 x float> poison, float %1652, i64 0
  %1657 = insertelement <2 x float> %1656, float %1655, i64 1
  %1658 = shufflevector <2 x float> %1657, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1659 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1657, <2 x float> %1658, <2 x float> %1648)
  %1660 = extractelement <2 x float> %1659, i64 0
  %1661 = fadd float %1650, %1660
  %indvars.iv.next1614.1 = add nuw nsw i64 %indvars.iv1613, 2
  %niter2051.next.1 = add i64 %niter2051, 2
  %niter2051.ncmp.1 = icmp eq i64 %niter2051.next.1, %unroll_iter2050
  br i1 %niter2051.ncmp.1, label %._crit_edge1417.loopexit.unr-lcssa.loopexit, label %.lr.ph1416, !llvm.loop !87

._crit_edge1417.loopexit.unr-lcssa.loopexit:      ; preds = %.lr.ph1416
  %1662 = extractelement <2 x float> %1659, i64 1
  br label %._crit_edge1417.loopexit.unr-lcssa

._crit_edge1417.loopexit.unr-lcssa:               ; preds = %._crit_edge1417.loopexit.unr-lcssa.loopexit, %.lr.ph1416.preheader
  %.lcssa1983.ph = phi float [ poison, %.lr.ph1416.preheader ], [ %1660, %._crit_edge1417.loopexit.unr-lcssa.loopexit ]
  %.lcssa1982.ph = phi float [ poison, %.lr.ph1416.preheader ], [ %1661, %._crit_edge1417.loopexit.unr-lcssa.loopexit ]
  %.lcssa1981.ph = phi float [ poison, %.lr.ph1416.preheader ], [ %1662, %._crit_edge1417.loopexit.unr-lcssa.loopexit ]
  %indvars.iv1613.unr = phi i64 [ 1, %.lr.ph1416.preheader ], [ %indvars.iv.next1614.1, %._crit_edge1417.loopexit.unr-lcssa.loopexit ]
  %.91413.unr = phi float [ 0.000000e+00, %.lr.ph1416.preheader ], [ %1661, %._crit_edge1417.loopexit.unr-lcssa.loopexit ]
  %.unr2045 = phi <2 x float> [ zeroinitializer, %.lr.ph1416.preheader ], [ %1659, %._crit_edge1417.loopexit.unr-lcssa.loopexit ]
  br i1 %lcmp.mod2046.not, label %._crit_edge1417, label %.lr.ph1416.epil

.lr.ph1416.epil:                                  ; preds = %._crit_edge1417.loopexit.unr-lcssa
  %1663 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1613.unr
  %1664 = load float, ptr %1663, align 4, !tbaa !9
  %1665 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1613.unr
  %1666 = load float, ptr %1665, align 4, !tbaa !9
  %1667 = fdiv float %1664, %1666
  %1668 = insertelement <2 x float> poison, float %1664, i64 0
  %1669 = insertelement <2 x float> %1668, float %1667, i64 1
  %1670 = shufflevector <2 x float> %1669, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1671 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1669, <2 x float> %1670, <2 x float> %.unr2045)
  %1672 = extractelement <2 x float> %1671, i64 0
  %1673 = fadd float %.91413.unr, %1672
  %1674 = extractelement <2 x float> %1671, i64 1
  br label %._crit_edge1417

._crit_edge1417:                                  ; preds = %.lr.ph1416.epil, %._crit_edge1417.loopexit.unr-lcssa, %._crit_edge1409
  %.91241.lcssa = phi float [ 0.000000e+00, %._crit_edge1409 ], [ %.lcssa1981.ph, %._crit_edge1417.loopexit.unr-lcssa ], [ %1674, %.lr.ph1416.epil ]
  %.9.lcssa = phi float [ 0.000000e+00, %._crit_edge1409 ], [ %.lcssa1982.ph, %._crit_edge1417.loopexit.unr-lcssa ], [ %1673, %.lr.ph1416.epil ]
  %.8.lcssa = phi float [ 0.000000e+00, %._crit_edge1409 ], [ %.lcssa1983.ph, %._crit_edge1417.loopexit.unr-lcssa ], [ %1672, %.lr.ph1416.epil ]
  %1675 = fcmp oge float %.9.lcssa, 0.000000e+00
  %1676 = fneg float %.9.lcssa
  %1677 = select i1 %1675, float %.9.lcssa, float %1676
  %.not1310.not1421 = icmp sgt i32 %1627, %.01197
  br i1 %.not1310.not1421, label %.lr.ph1427.preheader, label %._crit_edge1428

.lr.ph1427.preheader:                             ; preds = %._crit_edge1417
  %1678 = sext i32 %1627 to i64
  %1679 = sub nsw i64 %1678, %1038
  %xtraiter2052 = and i64 %1679, 1
  %lcmp.mod2053.not = icmp eq i64 %xtraiter2052, 0
  br i1 %lcmp.mod2053.not, label %.lr.ph1427.prol.loopexit, label %.lr.ph1427.prol

.lr.ph1427.prol:                                  ; preds = %.lr.ph1427.preheader
  %1680 = getelementptr inbounds float, ptr %16, i64 %1678
  %1681 = load float, ptr %1680, align 4, !tbaa !9
  %1682 = getelementptr inbounds float, ptr %15, i64 %1678
  %1683 = load float, ptr %1682, align 4, !tbaa !9
  %1684 = fdiv float %1681, %1683
  %1685 = insertelement <2 x float> poison, float %1681, i64 0
  %1686 = insertelement <2 x float> %1685, float %1684, i64 1
  %1687 = shufflevector <2 x float> %1686, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1688 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1686, <2 x float> %1687, <2 x float> zeroinitializer)
  %1689 = extractelement <2 x float> %1688, i64 0
  %1690 = fadd float %1677, %1689
  %indvars.iv.next1619.prol = add nsw i64 %1678, -1
  %1691 = extractelement <2 x float> %1688, i64 1
  br label %.lr.ph1427.prol.loopexit

.lr.ph1427.prol.loopexit:                         ; preds = %.lr.ph1427.prol, %.lr.ph1427.preheader
  %indvars.iv1618.unr = phi i64 [ %1678, %.lr.ph1427.preheader ], [ %indvars.iv.next1619.prol, %.lr.ph1427.prol ]
  %.101424.unr = phi float [ %1677, %.lr.ph1427.preheader ], [ %1690, %.lr.ph1427.prol ]
  %.unr2055 = phi <2 x float> [ zeroinitializer, %.lr.ph1427.preheader ], [ %1688, %.lr.ph1427.prol ]
  %.lcssa1986.unr = phi float [ poison, %.lr.ph1427.preheader ], [ %1689, %.lr.ph1427.prol ]
  %.lcssa1985.unr = phi float [ poison, %.lr.ph1427.preheader ], [ %1690, %.lr.ph1427.prol ]
  %.lcssa1984.unr = phi float [ poison, %.lr.ph1427.preheader ], [ %1691, %.lr.ph1427.prol ]
  %1692 = add nsw i64 %1678, -1
  %1693 = icmp eq i64 %1692, %1038
  br i1 %1693, label %._crit_edge1428, label %.lr.ph1427

.lr.ph1427:                                       ; preds = %.lr.ph1427.prol.loopexit, %.lr.ph1427
  %indvars.iv1618 = phi i64 [ %indvars.iv.next1619.1, %.lr.ph1427 ], [ %indvars.iv1618.unr, %.lr.ph1427.prol.loopexit ]
  %.101424 = phi float [ %1716, %.lr.ph1427 ], [ %.101424.unr, %.lr.ph1427.prol.loopexit ]
  %1694 = phi <2 x float> [ %1714, %.lr.ph1427 ], [ %.unr2055, %.lr.ph1427.prol.loopexit ]
  %1695 = getelementptr inbounds float, ptr %16, i64 %indvars.iv1618
  %1696 = load float, ptr %1695, align 4, !tbaa !9
  %1697 = getelementptr inbounds float, ptr %15, i64 %indvars.iv1618
  %1698 = load float, ptr %1697, align 4, !tbaa !9
  %1699 = fdiv float %1696, %1698
  %1700 = insertelement <2 x float> poison, float %1696, i64 0
  %1701 = insertelement <2 x float> %1700, float %1699, i64 1
  %1702 = shufflevector <2 x float> %1701, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1703 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1701, <2 x float> %1702, <2 x float> %1694)
  %1704 = extractelement <2 x float> %1703, i64 0
  %1705 = fadd float %.101424, %1704
  %indvars.iv.next1619 = add nsw i64 %indvars.iv1618, -1
  %1706 = getelementptr inbounds float, ptr %16, i64 %indvars.iv.next1619
  %1707 = load float, ptr %1706, align 4, !tbaa !9
  %1708 = getelementptr inbounds float, ptr %15, i64 %indvars.iv.next1619
  %1709 = load float, ptr %1708, align 4, !tbaa !9
  %1710 = fdiv float %1707, %1709
  %1711 = insertelement <2 x float> poison, float %1707, i64 0
  %1712 = insertelement <2 x float> %1711, float %1710, i64 1
  %1713 = shufflevector <2 x float> %1712, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1714 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1712, <2 x float> %1713, <2 x float> %1703)
  %1715 = extractelement <2 x float> %1714, i64 0
  %1716 = fadd float %1705, %1715
  %indvars.iv.next1619.1 = add nsw i64 %indvars.iv1618, -2
  %.not1310.not.1 = icmp sgt i64 %indvars.iv.next1619.1, %1038
  br i1 %.not1310.not.1, label %.lr.ph1427, label %._crit_edge1428.loopexit.unr-lcssa, !llvm.loop !88

._crit_edge1428.loopexit.unr-lcssa:               ; preds = %.lr.ph1427
  %1717 = extractelement <2 x float> %1714, i64 1
  br label %._crit_edge1428

._crit_edge1428:                                  ; preds = %._crit_edge1428.loopexit.unr-lcssa, %.lr.ph1427.prol.loopexit, %._crit_edge1417
  %.61248.lcssa = phi float [ 0.000000e+00, %._crit_edge1417 ], [ %.lcssa1984.unr, %.lr.ph1427.prol.loopexit ], [ %1717, %._crit_edge1428.loopexit.unr-lcssa ]
  %.10.lcssa = phi float [ %1677, %._crit_edge1417 ], [ %.lcssa1985.unr, %.lr.ph1427.prol.loopexit ], [ %1716, %._crit_edge1428.loopexit.unr-lcssa ]
  %.41186.lcssa = phi float [ 0.000000e+00, %._crit_edge1417 ], [ %.lcssa1986.unr, %.lr.ph1427.prol.loopexit ], [ %1715, %._crit_edge1428.loopexit.unr-lcssa ]
  %1718 = load float, ptr %1039, align 4, !tbaa !9
  %1719 = load float, ptr %1041, align 4, !tbaa !9
  %1720 = fdiv float %1718, %1719
  %1721 = fadd float %.91241.lcssa, %.61248.lcssa
  %1722 = call float @llvm.fmuladd.f32(float %1720, float %1720, float %1721)
  %1723 = fmul float %1718, %1720
  %1724 = fadd float %29, %.41186.lcssa
  %1725 = fadd float %.8.lcssa, %1724
  %1726 = fadd float %1725, %1723
  store float %1726, ptr %10, align 4, !tbaa !9
  %1727 = fsub float %.41186.lcssa, %.8.lcssa
  %1728 = call float @llvm.fmuladd.f32(float %1727, float 8.000000e+00, float %.10.lcssa)
  %1729 = call float @llvm.fmuladd.f32(float %29, float 2.000000e+00, float %1728)
  %1730 = fcmp oge float %1723, 0.000000e+00
  %1731 = fneg float %1723
  %1732 = select i1 %1730, float %1723, float %1731
  %1733 = call float @llvm.fmuladd.f32(float %1732, float 3.000000e+00, float %1729)
  %1734 = fcmp oge float %1638, 0.000000e+00
  %1735 = fneg float %1638
  %1736 = select i1 %1734, float %1638, float %1735
  %1737 = call float @llvm.fmuladd.f32(float %1736, float %1722, float %1733)
  %1738 = fmul float %1606, %1726
  %1739 = fcmp ogt float %1738, 0.000000e+00
  br i1 %1739, label %1740, label %1751

1740:                                             ; preds = %._crit_edge1428
  %1741 = fcmp oge float %1726, 0.000000e+00
  %1742 = fneg float %1726
  %1743 = select i1 %1741, float %1726, float %1742
  %1744 = fcmp oge float %1606, 0.000000e+00
  %1745 = fneg float %1606
  %1746 = select i1 %1744, float %1606, float %1745
  %1747 = fdiv float %1746, 1.000000e+01
  %1748 = fcmp ogt float %1743, %1747
  br i1 %1748, label %1749, label %1751

1749:                                             ; preds = %1740
  %.not1311 = icmp eq i32 %.112011438, 0
  %1750 = zext i1 %.not1311 to i32
  br label %1751

1751:                                             ; preds = %._crit_edge1428, %1740, %1749
  %.21202 = phi i32 [ %1750, %1749 ], [ %.112011438, %1740 ], [ %.112011438, %._crit_edge1428 ]
  %storemerge1299.in = load i32, ptr %11, align 4, !tbaa !5
  %storemerge1299 = add nsw i32 %storemerge1299.in, 1
  store i32 %storemerge1299, ptr %11, align 4, !tbaa !5
  %1752 = icmp slt i32 %storemerge1299.in, 30
  br i1 %1752, label %1399, label %._crit_edge1446.loopexit, !llvm.loop !89

._crit_edge1446.loopexit:                         ; preds = %1751
  %.pre1669 = load i32, ptr %13, align 4, !tbaa !5
  br label %._crit_edge1446

._crit_edge1446:                                  ; preds = %._crit_edge1446.loopexit, %1386
  %1753 = phi i32 [ %1370, %1386 ], [ %.pre1669, %._crit_edge1446.loopexit ]
  %.71181.lcssa = phi float [ %1365, %1386 ], [ %1638, %._crit_edge1446.loopexit ]
  store i32 1, ptr %7, align 4, !tbaa !5
  %.not1300 = icmp eq i32 %1753, 0
  br i1 %.not1300, label %1760, label %1754

1754:                                             ; preds = %._crit_edge1446
  %1755 = load i32, ptr %1, align 4, !tbaa !5
  %1756 = sext i32 %1755 to i64
  %1757 = getelementptr inbounds float, ptr %17, i64 %1756
  %1758 = load float, ptr %1757, align 4, !tbaa !9
  %1759 = fadd float %.71181.lcssa, %1758
  store float %1759, ptr %6, align 4, !tbaa !9
  br label %.loopexit

1760:                                             ; preds = %._crit_edge1446
  %1761 = load float, ptr %638, align 4, !tbaa !9
  %1762 = fadd float %.71181.lcssa, %1761
  store float %1762, ptr %6, align 4, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %1602, %320, %486, %._crit_edge1524, %1070, %1065, %1228, %1416, %1410, %1754, %1760, %25, %19
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  ret void
}

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

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

declare void @slaed5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare float @slamch_(ptr noundef) local_unnamed_addr #3

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

declare void @slaed6_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fmuladd.v2f32(<2 x float>, <2 x float>, <2 x float>) #5

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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 = !{!12}
!12 = distinct !{!12, !13}
!13 = distinct !{!13, !"LVerDomain"}
!14 = !{!15}
!15 = distinct !{!15, !13}
!16 = !{!17}
!17 = distinct !{!17, !13}
!18 = !{!12, !15}
!19 = distinct !{!19, !20, !21, !22}
!20 = !{!"llvm.loop.mustprogress"}
!21 = !{!"llvm.loop.isvectorized", i32 1}
!22 = !{!"llvm.loop.unroll.runtime.disable"}
!23 = distinct !{!23, !20, !21}
!24 = distinct !{!24, !20}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.unroll.disable"}
!27 = !{!28}
!28 = distinct !{!28, !29}
!29 = distinct !{!29, !"LVerDomain"}
!30 = !{!31}
!31 = distinct !{!31, !29}
!32 = !{!33}
!33 = distinct !{!33, !29}
!34 = !{!28, !31}
!35 = distinct !{!35, !20, !21, !22}
!36 = distinct !{!36, !20, !21}
!37 = distinct !{!37, !20}
!38 = distinct !{!38, !20, !21, !22}
!39 = distinct !{!39, !20, !22, !21}
!40 = distinct !{!40, !20}
!41 = distinct !{!41, !20, !21, !22}
!42 = distinct !{!42, !20, !22, !21}
!43 = distinct !{!43, !20}
!44 = distinct !{!44, !20}
!45 = !{!46}
!46 = distinct !{!46, !47}
!47 = distinct !{!47, !"LVerDomain"}
!48 = !{!49}
!49 = distinct !{!49, !47}
!50 = !{!51}
!51 = distinct !{!51, !47}
!52 = !{!46, !49}
!53 = distinct !{!53, !20, !21, !22}
!54 = distinct !{!54, !20, !21}
!55 = distinct !{!55, !20}
!56 = distinct !{!56, !26}
!57 = distinct !{!57, !26}
!58 = distinct !{!58, !20}
!59 = !{!60}
!60 = distinct !{!60, !61}
!61 = distinct !{!61, !"LVerDomain"}
!62 = !{!63}
!63 = distinct !{!63, !61}
!64 = !{!65}
!65 = distinct !{!65, !61}
!66 = !{!60, !63}
!67 = distinct !{!67, !20, !21, !22}
!68 = distinct !{!68, !20, !21}
!69 = !{!70}
!70 = distinct !{!70, !71}
!71 = distinct !{!71, !"LVerDomain"}
!72 = !{!73}
!73 = distinct !{!73, !71}
!74 = !{!75}
!75 = distinct !{!75, !71}
!76 = !{!70, !73}
!77 = distinct !{!77, !20, !21, !22}
!78 = distinct !{!78, !20, !21}
!79 = distinct !{!79, !20}
!80 = distinct !{!80, !20}
!81 = distinct !{!81, !20, !21, !22}
!82 = distinct !{!82, !20, !22, !21}
!83 = distinct !{!83, !20}
!84 = distinct !{!84, !20}
!85 = distinct !{!85, !20, !21, !22}
!86 = distinct !{!86, !20, !22, !21}
!87 = distinct !{!87, !20}
!88 = distinct !{!88, !20}
!89 = distinct !{!89, !20}


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