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

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

80:                                               ; preds = %8
  %81 = load ptr, ptr %10, align 8, !tbaa !5
  %82 = load i64, ptr %81, align 8, !tbaa !9
  %83 = icmp eq i64 %82, 2
  br i1 %83, label %84, label %95

84:                                               ; preds = %80
  %85 = load ptr, ptr %11, align 8, !tbaa !5
  %86 = load ptr, ptr %12, align 8, !tbaa !5
  %87 = getelementptr inbounds float, ptr %86, i64 1
  %88 = load ptr, ptr %13, align 8, !tbaa !5
  %89 = getelementptr inbounds float, ptr %88, i64 1
  %90 = load ptr, ptr %14, align 8, !tbaa !5
  %91 = getelementptr inbounds float, ptr %90, i64 1
  %92 = load ptr, ptr %15, align 8, !tbaa !5
  %93 = load ptr, ptr %16, align 8, !tbaa !5
  %94 = call i32 @slaed5_(ptr noundef %85, ptr noundef %87, ptr noundef %89, ptr noundef %91, ptr noundef %92, ptr noundef %93)
  store i32 0, ptr %9, align 4
  store i32 1, ptr %52, align 4
  br label %3357

95:                                               ; preds = %80
  %96 = call double @slamch_(ptr noundef @.str)
  %97 = fptrunc double %96 to float
  store float %97, ptr %32, align 4, !tbaa !11
  %98 = load ptr, ptr %15, align 8, !tbaa !5
  %99 = load float, ptr %98, align 4, !tbaa !11
  %100 = fdiv float 1.000000e+00, %99
  store float %100, ptr %51, align 4, !tbaa !11
  %101 = load ptr, ptr %11, align 8, !tbaa !5
  %102 = load i64, ptr %101, align 8, !tbaa !9
  %103 = load ptr, ptr %10, align 8, !tbaa !5
  %104 = load i64, ptr %103, align 8, !tbaa !9
  %105 = icmp eq i64 %102, %104
  br i1 %105, label %106, label %1273

106:                                              ; preds = %95
  %107 = load ptr, ptr %10, align 8, !tbaa !5
  %108 = load i64, ptr %107, align 8, !tbaa !9
  %109 = sub nsw i64 %108, 1
  store i64 %109, ptr %25, align 8, !tbaa !9
  store i64 1, ptr %46, align 8, !tbaa !9
  %110 = load ptr, ptr %15, align 8, !tbaa !5
  %111 = load float, ptr %110, align 4, !tbaa !11
  %112 = fdiv float %111, 2.000000e+00
  store float %112, ptr %45, align 4, !tbaa !11
  %113 = load ptr, ptr %10, align 8, !tbaa !5
  %114 = load i64, ptr %113, align 8, !tbaa !9
  store i64 %114, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %115

115:                                              ; preds = %135, %106
  %116 = load i64, ptr %23, align 8, !tbaa !9
  %117 = load i64, ptr %18, align 8, !tbaa !9
  %118 = icmp sle i64 %116, %117
  br i1 %118, label %119, label %138

119:                                              ; preds = %115
  %120 = load ptr, ptr %12, align 8, !tbaa !5
  %121 = load i64, ptr %23, align 8, !tbaa !9
  %122 = getelementptr inbounds float, ptr %120, i64 %121
  %123 = load float, ptr %122, align 4, !tbaa !11
  %124 = load ptr, ptr %12, align 8, !tbaa !5
  %125 = load ptr, ptr %11, align 8, !tbaa !5
  %126 = load i64, ptr %125, align 8, !tbaa !9
  %127 = getelementptr inbounds float, ptr %124, i64 %126
  %128 = load float, ptr %127, align 4, !tbaa !11
  %129 = fsub float %123, %128
  %130 = load float, ptr %45, align 4, !tbaa !11
  %131 = fsub float %129, %130
  %132 = load ptr, ptr %14, align 8, !tbaa !5
  %133 = load i64, ptr %23, align 8, !tbaa !9
  %134 = getelementptr inbounds float, ptr %132, i64 %133
  store float %131, ptr %134, align 4, !tbaa !11
  br label %135

135:                                              ; preds = %119
  %136 = load i64, ptr %23, align 8, !tbaa !9
  %137 = add nsw i64 %136, 1
  store i64 %137, ptr %23, align 8, !tbaa !9
  br label %115, !llvm.loop !13

138:                                              ; preds = %115
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  %139 = load ptr, ptr %10, align 8, !tbaa !5
  %140 = load i64, ptr %139, align 8, !tbaa !9
  %141 = sub nsw i64 %140, 2
  store i64 %141, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %142

142:                                              ; preds = %163, %138
  %143 = load i64, ptr %23, align 8, !tbaa !9
  %144 = load i64, ptr %18, align 8, !tbaa !9
  %145 = icmp sle i64 %143, %144
  br i1 %145, label %146, label %166

146:                                              ; preds = %142
  %147 = load ptr, ptr %13, align 8, !tbaa !5
  %148 = load i64, ptr %23, align 8, !tbaa !9
  %149 = getelementptr inbounds float, ptr %147, i64 %148
  %150 = load float, ptr %149, align 4, !tbaa !11
  %151 = load ptr, ptr %13, align 8, !tbaa !5
  %152 = load i64, ptr %23, align 8, !tbaa !9
  %153 = getelementptr inbounds float, ptr %151, i64 %152
  %154 = load float, ptr %153, align 4, !tbaa !11
  %155 = fmul float %150, %154
  %156 = load ptr, ptr %14, align 8, !tbaa !5
  %157 = load i64, ptr %23, align 8, !tbaa !9
  %158 = getelementptr inbounds float, ptr %156, i64 %157
  %159 = load float, ptr %158, align 4, !tbaa !11
  %160 = fdiv float %155, %159
  %161 = load float, ptr %34, align 4, !tbaa !11
  %162 = fadd float %161, %160
  store float %162, ptr %34, align 4, !tbaa !11
  br label %163

163:                                              ; preds = %146
  %164 = load i64, ptr %23, align 8, !tbaa !9
  %165 = add nsw i64 %164, 1
  store i64 %165, ptr %23, align 8, !tbaa !9
  br label %142, !llvm.loop !15

166:                                              ; preds = %142
  %167 = load float, ptr %51, align 4, !tbaa !11
  %168 = load float, ptr %34, align 4, !tbaa !11
  %169 = fadd float %167, %168
  store float %169, ptr %22, align 4, !tbaa !11
  %170 = load float, ptr %22, align 4, !tbaa !11
  %171 = load ptr, ptr %13, align 8, !tbaa !5
  %172 = load i64, ptr %25, align 8, !tbaa !9
  %173 = getelementptr inbounds float, ptr %171, i64 %172
  %174 = load float, ptr %173, align 4, !tbaa !11
  %175 = load ptr, ptr %13, align 8, !tbaa !5
  %176 = load i64, ptr %25, align 8, !tbaa !9
  %177 = getelementptr inbounds float, ptr %175, i64 %176
  %178 = load float, ptr %177, align 4, !tbaa !11
  %179 = fmul float %174, %178
  %180 = load ptr, ptr %14, align 8, !tbaa !5
  %181 = load i64, ptr %25, align 8, !tbaa !9
  %182 = getelementptr inbounds float, ptr %180, i64 %181
  %183 = load float, ptr %182, align 4, !tbaa !11
  %184 = fdiv float %179, %183
  %185 = fadd float %170, %184
  %186 = load ptr, ptr %13, align 8, !tbaa !5
  %187 = load ptr, ptr %10, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  %189 = getelementptr inbounds float, ptr %186, i64 %188
  %190 = load float, ptr %189, align 4, !tbaa !11
  %191 = load ptr, ptr %13, align 8, !tbaa !5
  %192 = load ptr, ptr %10, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  %194 = getelementptr inbounds float, ptr %191, i64 %193
  %195 = load float, ptr %194, align 4, !tbaa !11
  %196 = fmul float %190, %195
  %197 = load ptr, ptr %14, align 8, !tbaa !5
  %198 = load ptr, ptr %10, align 8, !tbaa !5
  %199 = load i64, ptr %198, align 8, !tbaa !9
  %200 = getelementptr inbounds float, ptr %197, i64 %199
  %201 = load float, ptr %200, align 4, !tbaa !11
  %202 = fdiv float %196, %201
  %203 = fadd float %185, %202
  store float %203, ptr %24, align 4, !tbaa !11
  %204 = load float, ptr %24, align 4, !tbaa !11
  %205 = fcmp ole float %204, 0.000000e+00
  br i1 %205, label %206, label %354

206:                                              ; preds = %166
  %207 = load ptr, ptr %13, align 8, !tbaa !5
  %208 = load ptr, ptr %10, align 8, !tbaa !5
  %209 = load i64, ptr %208, align 8, !tbaa !9
  %210 = sub nsw i64 %209, 1
  %211 = getelementptr inbounds float, ptr %207, i64 %210
  %212 = load float, ptr %211, align 4, !tbaa !11
  %213 = load ptr, ptr %13, align 8, !tbaa !5
  %214 = load ptr, ptr %10, align 8, !tbaa !5
  %215 = load i64, ptr %214, align 8, !tbaa !9
  %216 = sub nsw i64 %215, 1
  %217 = getelementptr inbounds float, ptr %213, i64 %216
  %218 = load float, ptr %217, align 4, !tbaa !11
  %219 = fmul float %212, %218
  %220 = load ptr, ptr %12, align 8, !tbaa !5
  %221 = load ptr, ptr %10, align 8, !tbaa !5
  %222 = load i64, ptr %221, align 8, !tbaa !9
  %223 = getelementptr inbounds float, ptr %220, i64 %222
  %224 = load float, ptr %223, align 4, !tbaa !11
  %225 = load ptr, ptr %12, align 8, !tbaa !5
  %226 = load ptr, ptr %10, align 8, !tbaa !5
  %227 = load i64, ptr %226, align 8, !tbaa !9
  %228 = sub nsw i64 %227, 1
  %229 = getelementptr inbounds float, ptr %225, i64 %228
  %230 = load float, ptr %229, align 4, !tbaa !11
  %231 = fsub float %224, %230
  %232 = load ptr, ptr %15, align 8, !tbaa !5
  %233 = load float, ptr %232, align 4, !tbaa !11
  %234 = fadd float %231, %233
  %235 = fdiv float %219, %234
  %236 = load ptr, ptr %13, align 8, !tbaa !5
  %237 = load ptr, ptr %10, align 8, !tbaa !5
  %238 = load i64, ptr %237, align 8, !tbaa !9
  %239 = getelementptr inbounds float, ptr %236, i64 %238
  %240 = load float, ptr %239, align 4, !tbaa !11
  %241 = load ptr, ptr %13, align 8, !tbaa !5
  %242 = load ptr, ptr %10, align 8, !tbaa !5
  %243 = load i64, ptr %242, align 8, !tbaa !9
  %244 = getelementptr inbounds float, ptr %241, i64 %243
  %245 = load float, ptr %244, align 4, !tbaa !11
  %246 = fmul float %240, %245
  %247 = load ptr, ptr %15, align 8, !tbaa !5
  %248 = load float, ptr %247, align 4, !tbaa !11
  %249 = fdiv float %246, %248
  %250 = fadd float %235, %249
  store float %250, ptr %40, align 4, !tbaa !11
  %251 = load float, ptr %22, align 4, !tbaa !11
  %252 = load float, ptr %40, align 4, !tbaa !11
  %253 = fcmp ole float %251, %252
  br i1 %253, label %254, label %257

254:                                              ; preds = %206
  %255 = load ptr, ptr %15, align 8, !tbaa !5
  %256 = load float, ptr %255, align 4, !tbaa !11
  store float %256, ptr %33, align 4, !tbaa !11
  br label %350

257:                                              ; preds = %206
  %258 = load ptr, ptr %12, align 8, !tbaa !5
  %259 = load ptr, ptr %10, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = getelementptr inbounds float, ptr %258, i64 %260
  %262 = load float, ptr %261, align 4, !tbaa !11
  %263 = load ptr, ptr %12, align 8, !tbaa !5
  %264 = load ptr, ptr %10, align 8, !tbaa !5
  %265 = load i64, ptr %264, align 8, !tbaa !9
  %266 = sub nsw i64 %265, 1
  %267 = getelementptr inbounds float, ptr %263, i64 %266
  %268 = load float, ptr %267, align 4, !tbaa !11
  %269 = fsub float %262, %268
  store float %269, ptr %29, align 4, !tbaa !11
  %270 = load float, ptr %22, align 4, !tbaa !11
  %271 = fneg float %270
  %272 = load float, ptr %29, align 4, !tbaa !11
  %273 = load ptr, ptr %13, align 8, !tbaa !5
  %274 = load ptr, ptr %10, align 8, !tbaa !5
  %275 = load i64, ptr %274, align 8, !tbaa !9
  %276 = sub nsw i64 %275, 1
  %277 = getelementptr inbounds float, ptr %273, i64 %276
  %278 = load float, ptr %277, align 4, !tbaa !11
  %279 = load ptr, ptr %13, align 8, !tbaa !5
  %280 = load ptr, ptr %10, align 8, !tbaa !5
  %281 = load i64, ptr %280, align 8, !tbaa !9
  %282 = sub nsw i64 %281, 1
  %283 = getelementptr inbounds float, ptr %279, i64 %282
  %284 = load float, ptr %283, align 4, !tbaa !11
  %285 = fmul float %278, %284
  %286 = call float @llvm.fmuladd.f32(float %271, float %272, float %285)
  %287 = load ptr, ptr %13, align 8, !tbaa !5
  %288 = load ptr, ptr %10, align 8, !tbaa !5
  %289 = load i64, ptr %288, align 8, !tbaa !9
  %290 = getelementptr inbounds float, ptr %287, i64 %289
  %291 = load float, ptr %290, align 4, !tbaa !11
  %292 = load ptr, ptr %13, align 8, !tbaa !5
  %293 = load ptr, ptr %10, align 8, !tbaa !5
  %294 = load i64, ptr %293, align 8, !tbaa !9
  %295 = getelementptr inbounds float, ptr %292, i64 %294
  %296 = load float, ptr %295, align 4, !tbaa !11
  %297 = call float @llvm.fmuladd.f32(float %291, float %296, float %286)
  store float %297, ptr %20, align 4, !tbaa !11
  %298 = load ptr, ptr %13, align 8, !tbaa !5
  %299 = load ptr, ptr %10, align 8, !tbaa !5
  %300 = load i64, ptr %299, align 8, !tbaa !9
  %301 = getelementptr inbounds float, ptr %298, i64 %300
  %302 = load float, ptr %301, align 4, !tbaa !11
  %303 = load ptr, ptr %13, align 8, !tbaa !5
  %304 = load ptr, ptr %10, align 8, !tbaa !5
  %305 = load i64, ptr %304, align 8, !tbaa !9
  %306 = getelementptr inbounds float, ptr %303, i64 %305
  %307 = load float, ptr %306, align 4, !tbaa !11
  %308 = fmul float %302, %307
  %309 = load float, ptr %29, align 4, !tbaa !11
  %310 = fmul float %308, %309
  store float %310, ptr %21, align 4, !tbaa !11
  %311 = load float, ptr %20, align 4, !tbaa !11
  %312 = fcmp olt float %311, 0.000000e+00
  br i1 %312, label %313, label %331

313:                                              ; preds = %257
  %314 = load float, ptr %21, align 4, !tbaa !11
  %315 = fmul float %314, 2.000000e+00
  %316 = fpext float %315 to double
  %317 = load float, ptr %20, align 4, !tbaa !11
  %318 = load float, ptr %20, align 4, !tbaa !11
  %319 = load float, ptr %21, align 4, !tbaa !11
  %320 = fmul float %319, 4.000000e+00
  %321 = load float, ptr %22, align 4, !tbaa !11
  %322 = fmul float %320, %321
  %323 = call float @llvm.fmuladd.f32(float %317, float %318, float %322)
  %324 = fpext float %323 to double
  %325 = call double @sqrt(double noundef %324) #5
  %326 = load float, ptr %20, align 4, !tbaa !11
  %327 = fpext float %326 to double
  %328 = fsub double %325, %327
  %329 = fdiv double %316, %328
  %330 = fptrunc double %329 to float
  store float %330, ptr %33, align 4, !tbaa !11
  br label %349

331:                                              ; preds = %257
  %332 = load float, ptr %20, align 4, !tbaa !11
  %333 = fpext float %332 to double
  %334 = load float, ptr %20, align 4, !tbaa !11
  %335 = load float, ptr %20, align 4, !tbaa !11
  %336 = load float, ptr %21, align 4, !tbaa !11
  %337 = fmul float %336, 4.000000e+00
  %338 = load float, ptr %22, align 4, !tbaa !11
  %339 = fmul float %337, %338
  %340 = call float @llvm.fmuladd.f32(float %334, float %335, float %339)
  %341 = fpext float %340 to double
  %342 = call double @sqrt(double noundef %341) #5
  %343 = fadd double %333, %342
  %344 = load float, ptr %22, align 4, !tbaa !11
  %345 = fmul float %344, 2.000000e+00
  %346 = fpext float %345 to double
  %347 = fdiv double %343, %346
  %348 = fptrunc double %347 to float
  store float %348, ptr %33, align 4, !tbaa !11
  br label %349

349:                                              ; preds = %331, %313
  br label %350

350:                                              ; preds = %349, %254
  %351 = load float, ptr %45, align 4, !tbaa !11
  store float %351, ptr %43, align 4, !tbaa !11
  %352 = load ptr, ptr %15, align 8, !tbaa !5
  %353 = load float, ptr %352, align 4, !tbaa !11
  store float %353, ptr %44, align 4, !tbaa !11
  br label %448

354:                                              ; preds = %166
  %355 = load ptr, ptr %12, align 8, !tbaa !5
  %356 = load ptr, ptr %10, align 8, !tbaa !5
  %357 = load i64, ptr %356, align 8, !tbaa !9
  %358 = getelementptr inbounds float, ptr %355, i64 %357
  %359 = load float, ptr %358, align 4, !tbaa !11
  %360 = load ptr, ptr %12, align 8, !tbaa !5
  %361 = load ptr, ptr %10, align 8, !tbaa !5
  %362 = load i64, ptr %361, align 8, !tbaa !9
  %363 = sub nsw i64 %362, 1
  %364 = getelementptr inbounds float, ptr %360, i64 %363
  %365 = load float, ptr %364, align 4, !tbaa !11
  %366 = fsub float %359, %365
  store float %366, ptr %29, align 4, !tbaa !11
  %367 = load float, ptr %22, align 4, !tbaa !11
  %368 = fneg float %367
  %369 = load float, ptr %29, align 4, !tbaa !11
  %370 = load ptr, ptr %13, align 8, !tbaa !5
  %371 = load ptr, ptr %10, align 8, !tbaa !5
  %372 = load i64, ptr %371, align 8, !tbaa !9
  %373 = sub nsw i64 %372, 1
  %374 = getelementptr inbounds float, ptr %370, i64 %373
  %375 = load float, ptr %374, align 4, !tbaa !11
  %376 = load ptr, ptr %13, align 8, !tbaa !5
  %377 = load ptr, ptr %10, align 8, !tbaa !5
  %378 = load i64, ptr %377, align 8, !tbaa !9
  %379 = sub nsw i64 %378, 1
  %380 = getelementptr inbounds float, ptr %376, i64 %379
  %381 = load float, ptr %380, align 4, !tbaa !11
  %382 = fmul float %375, %381
  %383 = call float @llvm.fmuladd.f32(float %368, float %369, float %382)
  %384 = load ptr, ptr %13, align 8, !tbaa !5
  %385 = load ptr, ptr %10, align 8, !tbaa !5
  %386 = load i64, ptr %385, align 8, !tbaa !9
  %387 = getelementptr inbounds float, ptr %384, i64 %386
  %388 = load float, ptr %387, align 4, !tbaa !11
  %389 = load ptr, ptr %13, align 8, !tbaa !5
  %390 = load ptr, ptr %10, align 8, !tbaa !5
  %391 = load i64, ptr %390, align 8, !tbaa !9
  %392 = getelementptr inbounds float, ptr %389, i64 %391
  %393 = load float, ptr %392, align 4, !tbaa !11
  %394 = call float @llvm.fmuladd.f32(float %388, float %393, float %383)
  store float %394, ptr %20, align 4, !tbaa !11
  %395 = load ptr, ptr %13, align 8, !tbaa !5
  %396 = load ptr, ptr %10, align 8, !tbaa !5
  %397 = load i64, ptr %396, align 8, !tbaa !9
  %398 = getelementptr inbounds float, ptr %395, i64 %397
  %399 = load float, ptr %398, align 4, !tbaa !11
  %400 = load ptr, ptr %13, align 8, !tbaa !5
  %401 = load ptr, ptr %10, align 8, !tbaa !5
  %402 = load i64, ptr %401, align 8, !tbaa !9
  %403 = getelementptr inbounds float, ptr %400, i64 %402
  %404 = load float, ptr %403, align 4, !tbaa !11
  %405 = fmul float %399, %404
  %406 = load float, ptr %29, align 4, !tbaa !11
  %407 = fmul float %405, %406
  store float %407, ptr %21, align 4, !tbaa !11
  %408 = load float, ptr %20, align 4, !tbaa !11
  %409 = fcmp olt float %408, 0.000000e+00
  br i1 %409, label %410, label %428

410:                                              ; preds = %354
  %411 = load float, ptr %21, align 4, !tbaa !11
  %412 = fmul float %411, 2.000000e+00
  %413 = fpext float %412 to double
  %414 = load float, ptr %20, align 4, !tbaa !11
  %415 = load float, ptr %20, align 4, !tbaa !11
  %416 = load float, ptr %21, align 4, !tbaa !11
  %417 = fmul float %416, 4.000000e+00
  %418 = load float, ptr %22, align 4, !tbaa !11
  %419 = fmul float %417, %418
  %420 = call float @llvm.fmuladd.f32(float %414, float %415, float %419)
  %421 = fpext float %420 to double
  %422 = call double @sqrt(double noundef %421) #5
  %423 = load float, ptr %20, align 4, !tbaa !11
  %424 = fpext float %423 to double
  %425 = fsub double %422, %424
  %426 = fdiv double %413, %425
  %427 = fptrunc double %426 to float
  store float %427, ptr %33, align 4, !tbaa !11
  br label %446

428:                                              ; preds = %354
  %429 = load float, ptr %20, align 4, !tbaa !11
  %430 = fpext float %429 to double
  %431 = load float, ptr %20, align 4, !tbaa !11
  %432 = load float, ptr %20, align 4, !tbaa !11
  %433 = load float, ptr %21, align 4, !tbaa !11
  %434 = fmul float %433, 4.000000e+00
  %435 = load float, ptr %22, align 4, !tbaa !11
  %436 = fmul float %434, %435
  %437 = call float @llvm.fmuladd.f32(float %431, float %432, float %436)
  %438 = fpext float %437 to double
  %439 = call double @sqrt(double noundef %438) #5
  %440 = fadd double %430, %439
  %441 = load float, ptr %22, align 4, !tbaa !11
  %442 = fmul float %441, 2.000000e+00
  %443 = fpext float %442 to double
  %444 = fdiv double %440, %443
  %445 = fptrunc double %444 to float
  store float %445, ptr %33, align 4, !tbaa !11
  br label %446

446:                                              ; preds = %428, %410
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %447 = load float, ptr %45, align 4, !tbaa !11
  store float %447, ptr %44, align 4, !tbaa !11
  br label %448

448:                                              ; preds = %446, %350
  %449 = load ptr, ptr %10, align 8, !tbaa !5
  %450 = load i64, ptr %449, align 8, !tbaa !9
  store i64 %450, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %451

451:                                              ; preds = %471, %448
  %452 = load i64, ptr %23, align 8, !tbaa !9
  %453 = load i64, ptr %18, align 8, !tbaa !9
  %454 = icmp sle i64 %452, %453
  br i1 %454, label %455, label %474

455:                                              ; preds = %451
  %456 = load ptr, ptr %12, align 8, !tbaa !5
  %457 = load i64, ptr %23, align 8, !tbaa !9
  %458 = getelementptr inbounds float, ptr %456, i64 %457
  %459 = load float, ptr %458, align 4, !tbaa !11
  %460 = load ptr, ptr %12, align 8, !tbaa !5
  %461 = load ptr, ptr %11, align 8, !tbaa !5
  %462 = load i64, ptr %461, align 8, !tbaa !9
  %463 = getelementptr inbounds float, ptr %460, i64 %462
  %464 = load float, ptr %463, align 4, !tbaa !11
  %465 = fsub float %459, %464
  %466 = load float, ptr %33, align 4, !tbaa !11
  %467 = fsub float %465, %466
  %468 = load ptr, ptr %14, align 8, !tbaa !5
  %469 = load i64, ptr %23, align 8, !tbaa !9
  %470 = getelementptr inbounds float, ptr %468, i64 %469
  store float %467, ptr %470, align 4, !tbaa !11
  br label %471

471:                                              ; preds = %455
  %472 = load i64, ptr %23, align 8, !tbaa !9
  %473 = add nsw i64 %472, 1
  store i64 %473, ptr %23, align 8, !tbaa !9
  br label %451, !llvm.loop !16

474:                                              ; preds = %451
  store float 0.000000e+00, ptr %38, align 4, !tbaa !11
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  store float 0.000000e+00, ptr %50, align 4, !tbaa !11
  %475 = load i64, ptr %25, align 8, !tbaa !9
  store i64 %475, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %476

476:                                              ; preds = %504, %474
  %477 = load i64, ptr %23, align 8, !tbaa !9
  %478 = load i64, ptr %18, align 8, !tbaa !9
  %479 = icmp sle i64 %477, %478
  br i1 %479, label %480, label %507

480:                                              ; preds = %476
  %481 = load ptr, ptr %13, align 8, !tbaa !5
  %482 = load i64, ptr %23, align 8, !tbaa !9
  %483 = getelementptr inbounds float, ptr %481, i64 %482
  %484 = load float, ptr %483, align 4, !tbaa !11
  %485 = load ptr, ptr %14, align 8, !tbaa !5
  %486 = load i64, ptr %23, align 8, !tbaa !9
  %487 = getelementptr inbounds float, ptr %485, i64 %486
  %488 = load float, ptr %487, align 4, !tbaa !11
  %489 = fdiv float %484, %488
  store float %489, ptr %40, align 4, !tbaa !11
  %490 = load ptr, ptr %13, align 8, !tbaa !5
  %491 = load i64, ptr %23, align 8, !tbaa !9
  %492 = getelementptr inbounds float, ptr %490, i64 %491
  %493 = load float, ptr %492, align 4, !tbaa !11
  %494 = load float, ptr %40, align 4, !tbaa !11
  %495 = load float, ptr %34, align 4, !tbaa !11
  %496 = call float @llvm.fmuladd.f32(float %493, float %494, float %495)
  store float %496, ptr %34, align 4, !tbaa !11
  %497 = load float, ptr %40, align 4, !tbaa !11
  %498 = load float, ptr %40, align 4, !tbaa !11
  %499 = load float, ptr %38, align 4, !tbaa !11
  %500 = call float @llvm.fmuladd.f32(float %497, float %498, float %499)
  store float %500, ptr %38, align 4, !tbaa !11
  %501 = load float, ptr %34, align 4, !tbaa !11
  %502 = load float, ptr %50, align 4, !tbaa !11
  %503 = fadd float %502, %501
  store float %503, ptr %50, align 4, !tbaa !11
  br label %504

504:                                              ; preds = %480
  %505 = load i64, ptr %23, align 8, !tbaa !9
  %506 = add nsw i64 %505, 1
  store i64 %506, ptr %23, align 8, !tbaa !9
  br label %476, !llvm.loop !17

507:                                              ; preds = %476
  %508 = load float, ptr %50, align 4, !tbaa !11
  %509 = fcmp oge float %508, 0.000000e+00
  br i1 %509, label %510, label %512

510:                                              ; preds = %507
  %511 = load float, ptr %50, align 4, !tbaa !11
  br label %515

512:                                              ; preds = %507
  %513 = load float, ptr %50, align 4, !tbaa !11
  %514 = fneg float %513
  br label %515

515:                                              ; preds = %512, %510
  %516 = phi float [ %511, %510 ], [ %514, %512 ]
  %517 = fpext float %516 to double
  %518 = fptrunc double %517 to float
  store float %518, ptr %50, align 4, !tbaa !11
  %519 = load ptr, ptr %13, align 8, !tbaa !5
  %520 = load ptr, ptr %10, align 8, !tbaa !5
  %521 = load i64, ptr %520, align 8, !tbaa !9
  %522 = getelementptr inbounds float, ptr %519, i64 %521
  %523 = load float, ptr %522, align 4, !tbaa !11
  %524 = load ptr, ptr %14, align 8, !tbaa !5
  %525 = load ptr, ptr %10, align 8, !tbaa !5
  %526 = load i64, ptr %525, align 8, !tbaa !9
  %527 = getelementptr inbounds float, ptr %524, i64 %526
  %528 = load float, ptr %527, align 4, !tbaa !11
  %529 = fdiv float %523, %528
  store float %529, ptr %40, align 4, !tbaa !11
  %530 = load ptr, ptr %13, align 8, !tbaa !5
  %531 = load ptr, ptr %10, align 8, !tbaa !5
  %532 = load i64, ptr %531, align 8, !tbaa !9
  %533 = getelementptr inbounds float, ptr %530, i64 %532
  %534 = load float, ptr %533, align 4, !tbaa !11
  %535 = load float, ptr %40, align 4, !tbaa !11
  %536 = fmul float %534, %535
  store float %536, ptr %31, align 4, !tbaa !11
  %537 = load float, ptr %40, align 4, !tbaa !11
  %538 = load float, ptr %40, align 4, !tbaa !11
  %539 = fmul float %537, %538
  store float %539, ptr %37, align 4, !tbaa !11
  %540 = load float, ptr %31, align 4, !tbaa !11
  %541 = fneg float %540
  %542 = load float, ptr %34, align 4, !tbaa !11
  %543 = fsub float %541, %542
  %544 = load float, ptr %50, align 4, !tbaa !11
  %545 = call float @llvm.fmuladd.f32(float %543, float 8.000000e+00, float %544)
  %546 = load float, ptr %31, align 4, !tbaa !11
  %547 = fsub float %545, %546
  %548 = load float, ptr %51, align 4, !tbaa !11
  %549 = fadd float %547, %548
  %550 = fpext float %549 to double
  %551 = load float, ptr %33, align 4, !tbaa !11
  %552 = fcmp oge float %551, 0.000000e+00
  br i1 %552, label %553, label %555

553:                                              ; preds = %515
  %554 = load float, ptr %33, align 4, !tbaa !11
  br label %558

555:                                              ; preds = %515
  %556 = load float, ptr %33, align 4, !tbaa !11
  %557 = fneg float %556
  br label %558

558:                                              ; preds = %555, %553
  %559 = phi float [ %554, %553 ], [ %557, %555 ]
  %560 = fpext float %559 to double
  %561 = load float, ptr %38, align 4, !tbaa !11
  %562 = load float, ptr %37, align 4, !tbaa !11
  %563 = fadd float %561, %562
  %564 = fpext float %563 to double
  %565 = call double @llvm.fmuladd.f64(double %560, double %564, double %550)
  %566 = fptrunc double %565 to float
  store float %566, ptr %50, align 4, !tbaa !11
  %567 = load float, ptr %51, align 4, !tbaa !11
  %568 = load float, ptr %31, align 4, !tbaa !11
  %569 = fadd float %567, %568
  %570 = load float, ptr %34, align 4, !tbaa !11
  %571 = fadd float %569, %570
  store float %571, ptr %24, align 4, !tbaa !11
  %572 = load float, ptr %24, align 4, !tbaa !11
  %573 = fcmp oge float %572, 0.000000e+00
  br i1 %573, label %574, label %576

574:                                              ; preds = %558
  %575 = load float, ptr %24, align 4, !tbaa !11
  br label %579

576:                                              ; preds = %558
  %577 = load float, ptr %24, align 4, !tbaa !11
  %578 = fneg float %577
  br label %579

579:                                              ; preds = %576, %574
  %580 = phi float [ %575, %574 ], [ %578, %576 ]
  %581 = fpext float %580 to double
  %582 = load float, ptr %32, align 4, !tbaa !11
  %583 = load float, ptr %50, align 4, !tbaa !11
  %584 = fmul float %582, %583
  %585 = fpext float %584 to double
  %586 = fcmp ole double %581, %585
  br i1 %586, label %587, label %596

587:                                              ; preds = %579
  %588 = load ptr, ptr %12, align 8, !tbaa !5
  %589 = load ptr, ptr %11, align 8, !tbaa !5
  %590 = load i64, ptr %589, align 8, !tbaa !9
  %591 = getelementptr inbounds float, ptr %588, i64 %590
  %592 = load float, ptr %591, align 4, !tbaa !11
  %593 = load float, ptr %33, align 4, !tbaa !11
  %594 = fadd float %592, %593
  %595 = load ptr, ptr %16, align 8, !tbaa !5
  store float %594, ptr %595, align 4, !tbaa !11
  br label %3356

596:                                              ; preds = %579
  %597 = load float, ptr %24, align 4, !tbaa !11
  %598 = fcmp ole float %597, 0.000000e+00
  br i1 %598, label %599, label %611

599:                                              ; preds = %596
  %600 = load float, ptr %43, align 4, !tbaa !11
  %601 = load float, ptr %33, align 4, !tbaa !11
  %602 = fcmp oge float %600, %601
  br i1 %602, label %603, label %605

603:                                              ; preds = %599
  %604 = load float, ptr %43, align 4, !tbaa !11
  br label %607

605:                                              ; preds = %599
  %606 = load float, ptr %33, align 4, !tbaa !11
  br label %607

607:                                              ; preds = %605, %603
  %608 = phi float [ %604, %603 ], [ %606, %605 ]
  %609 = fpext float %608 to double
  %610 = fptrunc double %609 to float
  store float %610, ptr %43, align 4, !tbaa !11
  br label %623

611:                                              ; preds = %596
  %612 = load float, ptr %44, align 4, !tbaa !11
  %613 = load float, ptr %33, align 4, !tbaa !11
  %614 = fcmp ole float %612, %613
  br i1 %614, label %615, label %617

615:                                              ; preds = %611
  %616 = load float, ptr %44, align 4, !tbaa !11
  br label %619

617:                                              ; preds = %611
  %618 = load float, ptr %33, align 4, !tbaa !11
  br label %619

619:                                              ; preds = %617, %615
  %620 = phi float [ %616, %615 ], [ %618, %617 ]
  %621 = fpext float %620 to double
  %622 = fptrunc double %621 to float
  store float %622, ptr %44, align 4, !tbaa !11
  br label %623

623:                                              ; preds = %619, %607
  %624 = load i64, ptr %46, align 8, !tbaa !9
  %625 = add nsw i64 %624, 1
  store i64 %625, ptr %46, align 8, !tbaa !9
  %626 = load float, ptr %24, align 4, !tbaa !11
  %627 = load ptr, ptr %14, align 8, !tbaa !5
  %628 = load ptr, ptr %10, align 8, !tbaa !5
  %629 = load i64, ptr %628, align 8, !tbaa !9
  %630 = sub nsw i64 %629, 1
  %631 = getelementptr inbounds float, ptr %627, i64 %630
  %632 = load float, ptr %631, align 4, !tbaa !11
  %633 = load float, ptr %38, align 4, !tbaa !11
  %634 = fneg float %632
  %635 = call float @llvm.fmuladd.f32(float %634, float %633, float %626)
  %636 = load ptr, ptr %14, align 8, !tbaa !5
  %637 = load ptr, ptr %10, align 8, !tbaa !5
  %638 = load i64, ptr %637, align 8, !tbaa !9
  %639 = getelementptr inbounds float, ptr %636, i64 %638
  %640 = load float, ptr %639, align 4, !tbaa !11
  %641 = load float, ptr %37, align 4, !tbaa !11
  %642 = fneg float %640
  %643 = call float @llvm.fmuladd.f32(float %642, float %641, float %635)
  store float %643, ptr %22, align 4, !tbaa !11
  %644 = load ptr, ptr %14, align 8, !tbaa !5
  %645 = load ptr, ptr %10, align 8, !tbaa !5
  %646 = load i64, ptr %645, align 8, !tbaa !9
  %647 = sub nsw i64 %646, 1
  %648 = getelementptr inbounds float, ptr %644, i64 %647
  %649 = load float, ptr %648, align 4, !tbaa !11
  %650 = load ptr, ptr %14, align 8, !tbaa !5
  %651 = load ptr, ptr %10, align 8, !tbaa !5
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = getelementptr inbounds float, ptr %650, i64 %652
  %654 = load float, ptr %653, align 4, !tbaa !11
  %655 = fadd float %649, %654
  %656 = load float, ptr %24, align 4, !tbaa !11
  %657 = load ptr, ptr %14, align 8, !tbaa !5
  %658 = load ptr, ptr %10, align 8, !tbaa !5
  %659 = load i64, ptr %658, align 8, !tbaa !9
  %660 = sub nsw i64 %659, 1
  %661 = getelementptr inbounds float, ptr %657, i64 %660
  %662 = load float, ptr %661, align 4, !tbaa !11
  %663 = load ptr, ptr %14, align 8, !tbaa !5
  %664 = load ptr, ptr %10, align 8, !tbaa !5
  %665 = load i64, ptr %664, align 8, !tbaa !9
  %666 = getelementptr inbounds float, ptr %663, i64 %665
  %667 = load float, ptr %666, align 4, !tbaa !11
  %668 = fmul float %662, %667
  %669 = load float, ptr %38, align 4, !tbaa !11
  %670 = load float, ptr %37, align 4, !tbaa !11
  %671 = fadd float %669, %670
  %672 = fmul float %668, %671
  %673 = fneg float %672
  %674 = call float @llvm.fmuladd.f32(float %655, float %656, float %673)
  store float %674, ptr %20, align 4, !tbaa !11
  %675 = load ptr, ptr %14, align 8, !tbaa !5
  %676 = load ptr, ptr %10, align 8, !tbaa !5
  %677 = load i64, ptr %676, align 8, !tbaa !9
  %678 = sub nsw i64 %677, 1
  %679 = getelementptr inbounds float, ptr %675, i64 %678
  %680 = load float, ptr %679, align 4, !tbaa !11
  %681 = load ptr, ptr %14, align 8, !tbaa !5
  %682 = load ptr, ptr %10, align 8, !tbaa !5
  %683 = load i64, ptr %682, align 8, !tbaa !9
  %684 = getelementptr inbounds float, ptr %681, i64 %683
  %685 = load float, ptr %684, align 4, !tbaa !11
  %686 = fmul float %680, %685
  %687 = load float, ptr %24, align 4, !tbaa !11
  %688 = fmul float %686, %687
  store float %688, ptr %21, align 4, !tbaa !11
  %689 = load float, ptr %22, align 4, !tbaa !11
  %690 = fcmp olt float %689, 0.000000e+00
  br i1 %690, label %691, label %703

691:                                              ; preds = %623
  %692 = load float, ptr %22, align 4, !tbaa !11
  %693 = fcmp oge float %692, 0.000000e+00
  br i1 %693, label %694, label %696

694:                                              ; preds = %691
  %695 = load float, ptr %22, align 4, !tbaa !11
  br label %699

696:                                              ; preds = %691
  %697 = load float, ptr %22, align 4, !tbaa !11
  %698 = fneg float %697
  br label %699

699:                                              ; preds = %696, %694
  %700 = phi float [ %695, %694 ], [ %698, %696 ]
  %701 = fpext float %700 to double
  %702 = fptrunc double %701 to float
  store float %702, ptr %22, align 4, !tbaa !11
  br label %703

703:                                              ; preds = %699, %623
  %704 = load float, ptr %22, align 4, !tbaa !11
  %705 = fcmp oeq float %704, 0.000000e+00
  br i1 %705, label %706, label %710

706:                                              ; preds = %703
  %707 = load float, ptr %44, align 4, !tbaa !11
  %708 = load float, ptr %33, align 4, !tbaa !11
  %709 = fsub float %707, %708
  store float %709, ptr %30, align 4, !tbaa !11
  br label %770

710:                                              ; preds = %703
  %711 = load float, ptr %20, align 4, !tbaa !11
  %712 = fcmp oge float %711, 0.000000e+00
  br i1 %712, label %713, label %741

713:                                              ; preds = %710
  %714 = load float, ptr %20, align 4, !tbaa !11
  %715 = fpext float %714 to double
  %716 = load float, ptr %20, align 4, !tbaa !11
  %717 = load float, ptr %20, align 4, !tbaa !11
  %718 = load float, ptr %21, align 4, !tbaa !11
  %719 = fmul float %718, 4.000000e+00
  %720 = load float, ptr %22, align 4, !tbaa !11
  %721 = fmul float %719, %720
  %722 = fneg float %721
  %723 = call float @llvm.fmuladd.f32(float %716, float %717, float %722)
  store float %723, ptr %19, align 4, !tbaa !11
  %724 = load float, ptr %19, align 4, !tbaa !11
  %725 = fcmp oge float %724, 0.000000e+00
  br i1 %725, label %726, label %728

726:                                              ; preds = %713
  %727 = load float, ptr %19, align 4, !tbaa !11
  br label %731

728:                                              ; preds = %713
  %729 = load float, ptr %19, align 4, !tbaa !11
  %730 = fneg float %729
  br label %731

731:                                              ; preds = %728, %726
  %732 = phi float [ %727, %726 ], [ %730, %728 ]
  %733 = fpext float %732 to double
  %734 = call double @sqrt(double noundef %733) #5
  %735 = fadd double %715, %734
  %736 = load float, ptr %22, align 4, !tbaa !11
  %737 = fmul float %736, 2.000000e+00
  %738 = fpext float %737 to double
  %739 = fdiv double %735, %738
  %740 = fptrunc double %739 to float
  store float %740, ptr %30, align 4, !tbaa !11
  br label %769

741:                                              ; preds = %710
  %742 = load float, ptr %21, align 4, !tbaa !11
  %743 = fmul float %742, 2.000000e+00
  %744 = fpext float %743 to double
  %745 = load float, ptr %20, align 4, !tbaa !11
  %746 = fpext float %745 to double
  %747 = load float, ptr %20, align 4, !tbaa !11
  %748 = load float, ptr %20, align 4, !tbaa !11
  %749 = load float, ptr %21, align 4, !tbaa !11
  %750 = fmul float %749, 4.000000e+00
  %751 = load float, ptr %22, align 4, !tbaa !11
  %752 = fmul float %750, %751
  %753 = fneg float %752
  %754 = call float @llvm.fmuladd.f32(float %747, float %748, float %753)
  store float %754, ptr %19, align 4, !tbaa !11
  %755 = load float, ptr %19, align 4, !tbaa !11
  %756 = fcmp oge float %755, 0.000000e+00
  br i1 %756, label %757, label %759

757:                                              ; preds = %741
  %758 = load float, ptr %19, align 4, !tbaa !11
  br label %762

759:                                              ; preds = %741
  %760 = load float, ptr %19, align 4, !tbaa !11
  %761 = fneg float %760
  br label %762

762:                                              ; preds = %759, %757
  %763 = phi float [ %758, %757 ], [ %761, %759 ]
  %764 = fpext float %763 to double
  %765 = call double @sqrt(double noundef %764) #5
  %766 = fsub double %746, %765
  %767 = fdiv double %744, %766
  %768 = fptrunc double %767 to float
  store float %768, ptr %30, align 4, !tbaa !11
  br label %769

769:                                              ; preds = %762, %731
  br label %770

770:                                              ; preds = %769, %706
  %771 = load float, ptr %24, align 4, !tbaa !11
  %772 = load float, ptr %30, align 4, !tbaa !11
  %773 = fmul float %771, %772
  %774 = fcmp ogt float %773, 0.000000e+00
  br i1 %774, label %775, label %782

775:                                              ; preds = %770
  %776 = load float, ptr %24, align 4, !tbaa !11
  %777 = fneg float %776
  %778 = load float, ptr %38, align 4, !tbaa !11
  %779 = load float, ptr %37, align 4, !tbaa !11
  %780 = fadd float %778, %779
  %781 = fdiv float %777, %780
  store float %781, ptr %30, align 4, !tbaa !11
  br label %782

782:                                              ; preds = %775, %770
  %783 = load float, ptr %33, align 4, !tbaa !11
  %784 = load float, ptr %30, align 4, !tbaa !11
  %785 = fadd float %783, %784
  store float %785, ptr %40, align 4, !tbaa !11
  %786 = load float, ptr %40, align 4, !tbaa !11
  %787 = load float, ptr %44, align 4, !tbaa !11
  %788 = fcmp ogt float %786, %787
  br i1 %788, label %793, label %789

789:                                              ; preds = %782
  %790 = load float, ptr %40, align 4, !tbaa !11
  %791 = load float, ptr %43, align 4, !tbaa !11
  %792 = fcmp olt float %790, %791
  br i1 %792, label %793, label %807

793:                                              ; preds = %789, %782
  %794 = load float, ptr %24, align 4, !tbaa !11
  %795 = fcmp olt float %794, 0.000000e+00
  br i1 %795, label %796, label %801

796:                                              ; preds = %793
  %797 = load float, ptr %44, align 4, !tbaa !11
  %798 = load float, ptr %33, align 4, !tbaa !11
  %799 = fsub float %797, %798
  %800 = fdiv float %799, 2.000000e+00
  store float %800, ptr %30, align 4, !tbaa !11
  br label %806

801:                                              ; preds = %793
  %802 = load float, ptr %43, align 4, !tbaa !11
  %803 = load float, ptr %33, align 4, !tbaa !11
  %804 = fsub float %802, %803
  %805 = fdiv float %804, 2.000000e+00
  store float %805, ptr %30, align 4, !tbaa !11
  br label %806

806:                                              ; preds = %801, %796
  br label %807

807:                                              ; preds = %806, %789
  %808 = load ptr, ptr %10, align 8, !tbaa !5
  %809 = load i64, ptr %808, align 8, !tbaa !9
  store i64 %809, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %810

810:                                              ; preds = %821, %807
  %811 = load i64, ptr %23, align 8, !tbaa !9
  %812 = load i64, ptr %18, align 8, !tbaa !9
  %813 = icmp sle i64 %811, %812
  br i1 %813, label %814, label %824

814:                                              ; preds = %810
  %815 = load float, ptr %30, align 4, !tbaa !11
  %816 = load ptr, ptr %14, align 8, !tbaa !5
  %817 = load i64, ptr %23, align 8, !tbaa !9
  %818 = getelementptr inbounds float, ptr %816, i64 %817
  %819 = load float, ptr %818, align 4, !tbaa !11
  %820 = fsub float %819, %815
  store float %820, ptr %818, align 4, !tbaa !11
  br label %821

821:                                              ; preds = %814
  %822 = load i64, ptr %23, align 8, !tbaa !9
  %823 = add nsw i64 %822, 1
  store i64 %823, ptr %23, align 8, !tbaa !9
  br label %810, !llvm.loop !18

824:                                              ; preds = %810
  %825 = load float, ptr %30, align 4, !tbaa !11
  %826 = load float, ptr %33, align 4, !tbaa !11
  %827 = fadd float %826, %825
  store float %827, ptr %33, align 4, !tbaa !11
  store float 0.000000e+00, ptr %38, align 4, !tbaa !11
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  store float 0.000000e+00, ptr %50, align 4, !tbaa !11
  %828 = load i64, ptr %25, align 8, !tbaa !9
  store i64 %828, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %829

829:                                              ; preds = %857, %824
  %830 = load i64, ptr %23, align 8, !tbaa !9
  %831 = load i64, ptr %18, align 8, !tbaa !9
  %832 = icmp sle i64 %830, %831
  br i1 %832, label %833, label %860

833:                                              ; preds = %829
  %834 = load ptr, ptr %13, align 8, !tbaa !5
  %835 = load i64, ptr %23, align 8, !tbaa !9
  %836 = getelementptr inbounds float, ptr %834, i64 %835
  %837 = load float, ptr %836, align 4, !tbaa !11
  %838 = load ptr, ptr %14, align 8, !tbaa !5
  %839 = load i64, ptr %23, align 8, !tbaa !9
  %840 = getelementptr inbounds float, ptr %838, i64 %839
  %841 = load float, ptr %840, align 4, !tbaa !11
  %842 = fdiv float %837, %841
  store float %842, ptr %40, align 4, !tbaa !11
  %843 = load ptr, ptr %13, align 8, !tbaa !5
  %844 = load i64, ptr %23, align 8, !tbaa !9
  %845 = getelementptr inbounds float, ptr %843, i64 %844
  %846 = load float, ptr %845, align 4, !tbaa !11
  %847 = load float, ptr %40, align 4, !tbaa !11
  %848 = load float, ptr %34, align 4, !tbaa !11
  %849 = call float @llvm.fmuladd.f32(float %846, float %847, float %848)
  store float %849, ptr %34, align 4, !tbaa !11
  %850 = load float, ptr %40, align 4, !tbaa !11
  %851 = load float, ptr %40, align 4, !tbaa !11
  %852 = load float, ptr %38, align 4, !tbaa !11
  %853 = call float @llvm.fmuladd.f32(float %850, float %851, float %852)
  store float %853, ptr %38, align 4, !tbaa !11
  %854 = load float, ptr %34, align 4, !tbaa !11
  %855 = load float, ptr %50, align 4, !tbaa !11
  %856 = fadd float %855, %854
  store float %856, ptr %50, align 4, !tbaa !11
  br label %857

857:                                              ; preds = %833
  %858 = load i64, ptr %23, align 8, !tbaa !9
  %859 = add nsw i64 %858, 1
  store i64 %859, ptr %23, align 8, !tbaa !9
  br label %829, !llvm.loop !19

860:                                              ; preds = %829
  %861 = load float, ptr %50, align 4, !tbaa !11
  %862 = fcmp oge float %861, 0.000000e+00
  br i1 %862, label %863, label %865

863:                                              ; preds = %860
  %864 = load float, ptr %50, align 4, !tbaa !11
  br label %868

865:                                              ; preds = %860
  %866 = load float, ptr %50, align 4, !tbaa !11
  %867 = fneg float %866
  br label %868

868:                                              ; preds = %865, %863
  %869 = phi float [ %864, %863 ], [ %867, %865 ]
  %870 = fpext float %869 to double
  %871 = fptrunc double %870 to float
  store float %871, ptr %50, align 4, !tbaa !11
  %872 = load ptr, ptr %13, align 8, !tbaa !5
  %873 = load ptr, ptr %10, align 8, !tbaa !5
  %874 = load i64, ptr %873, align 8, !tbaa !9
  %875 = getelementptr inbounds float, ptr %872, i64 %874
  %876 = load float, ptr %875, align 4, !tbaa !11
  %877 = load ptr, ptr %14, align 8, !tbaa !5
  %878 = load ptr, ptr %10, align 8, !tbaa !5
  %879 = load i64, ptr %878, align 8, !tbaa !9
  %880 = getelementptr inbounds float, ptr %877, i64 %879
  %881 = load float, ptr %880, align 4, !tbaa !11
  %882 = fdiv float %876, %881
  store float %882, ptr %40, align 4, !tbaa !11
  %883 = load ptr, ptr %13, align 8, !tbaa !5
  %884 = load ptr, ptr %10, align 8, !tbaa !5
  %885 = load i64, ptr %884, align 8, !tbaa !9
  %886 = getelementptr inbounds float, ptr %883, i64 %885
  %887 = load float, ptr %886, align 4, !tbaa !11
  %888 = load float, ptr %40, align 4, !tbaa !11
  %889 = fmul float %887, %888
  store float %889, ptr %31, align 4, !tbaa !11
  %890 = load float, ptr %40, align 4, !tbaa !11
  %891 = load float, ptr %40, align 4, !tbaa !11
  %892 = fmul float %890, %891
  store float %892, ptr %37, align 4, !tbaa !11
  %893 = load float, ptr %31, align 4, !tbaa !11
  %894 = fneg float %893
  %895 = load float, ptr %34, align 4, !tbaa !11
  %896 = fsub float %894, %895
  %897 = load float, ptr %50, align 4, !tbaa !11
  %898 = call float @llvm.fmuladd.f32(float %896, float 8.000000e+00, float %897)
  %899 = load float, ptr %31, align 4, !tbaa !11
  %900 = fsub float %898, %899
  %901 = load float, ptr %51, align 4, !tbaa !11
  %902 = fadd float %900, %901
  %903 = fpext float %902 to double
  %904 = load float, ptr %33, align 4, !tbaa !11
  %905 = fcmp oge float %904, 0.000000e+00
  br i1 %905, label %906, label %908

906:                                              ; preds = %868
  %907 = load float, ptr %33, align 4, !tbaa !11
  br label %911

908:                                              ; preds = %868
  %909 = load float, ptr %33, align 4, !tbaa !11
  %910 = fneg float %909
  br label %911

911:                                              ; preds = %908, %906
  %912 = phi float [ %907, %906 ], [ %910, %908 ]
  %913 = fpext float %912 to double
  %914 = load float, ptr %38, align 4, !tbaa !11
  %915 = load float, ptr %37, align 4, !tbaa !11
  %916 = fadd float %914, %915
  %917 = fpext float %916 to double
  %918 = call double @llvm.fmuladd.f64(double %913, double %917, double %903)
  %919 = fptrunc double %918 to float
  store float %919, ptr %50, align 4, !tbaa !11
  %920 = load float, ptr %51, align 4, !tbaa !11
  %921 = load float, ptr %31, align 4, !tbaa !11
  %922 = fadd float %920, %921
  %923 = load float, ptr %34, align 4, !tbaa !11
  %924 = fadd float %922, %923
  store float %924, ptr %24, align 4, !tbaa !11
  %925 = load i64, ptr %46, align 8, !tbaa !9
  %926 = add nsw i64 %925, 1
  store i64 %926, ptr %39, align 8, !tbaa !9
  %927 = load i64, ptr %39, align 8, !tbaa !9
  store i64 %927, ptr %46, align 8, !tbaa !9
  br label %928

928:                                              ; preds = %1260, %911
  %929 = load i64, ptr %46, align 8, !tbaa !9
  %930 = icmp sle i64 %929, 30
  br i1 %930, label %931, label %1263

931:                                              ; preds = %928
  %932 = load float, ptr %24, align 4, !tbaa !11
  %933 = fcmp oge float %932, 0.000000e+00
  br i1 %933, label %934, label %936

934:                                              ; preds = %931
  %935 = load float, ptr %24, align 4, !tbaa !11
  br label %939

936:                                              ; preds = %931
  %937 = load float, ptr %24, align 4, !tbaa !11
  %938 = fneg float %937
  br label %939

939:                                              ; preds = %936, %934
  %940 = phi float [ %935, %934 ], [ %938, %936 ]
  %941 = fpext float %940 to double
  %942 = load float, ptr %32, align 4, !tbaa !11
  %943 = load float, ptr %50, align 4, !tbaa !11
  %944 = fmul float %942, %943
  %945 = fpext float %944 to double
  %946 = fcmp ole double %941, %945
  br i1 %946, label %947, label %956

947:                                              ; preds = %939
  %948 = load ptr, ptr %12, align 8, !tbaa !5
  %949 = load ptr, ptr %11, align 8, !tbaa !5
  %950 = load i64, ptr %949, align 8, !tbaa !9
  %951 = getelementptr inbounds float, ptr %948, i64 %950
  %952 = load float, ptr %951, align 4, !tbaa !11
  %953 = load float, ptr %33, align 4, !tbaa !11
  %954 = fadd float %952, %953
  %955 = load ptr, ptr %16, align 8, !tbaa !5
  store float %954, ptr %955, align 4, !tbaa !11
  br label %3356

956:                                              ; preds = %939
  %957 = load float, ptr %24, align 4, !tbaa !11
  %958 = fcmp ole float %957, 0.000000e+00
  br i1 %958, label %959, label %971

959:                                              ; preds = %956
  %960 = load float, ptr %43, align 4, !tbaa !11
  %961 = load float, ptr %33, align 4, !tbaa !11
  %962 = fcmp oge float %960, %961
  br i1 %962, label %963, label %965

963:                                              ; preds = %959
  %964 = load float, ptr %43, align 4, !tbaa !11
  br label %967

965:                                              ; preds = %959
  %966 = load float, ptr %33, align 4, !tbaa !11
  br label %967

967:                                              ; preds = %965, %963
  %968 = phi float [ %964, %963 ], [ %966, %965 ]
  %969 = fpext float %968 to double
  %970 = fptrunc double %969 to float
  store float %970, ptr %43, align 4, !tbaa !11
  br label %983

971:                                              ; preds = %956
  %972 = load float, ptr %44, align 4, !tbaa !11
  %973 = load float, ptr %33, align 4, !tbaa !11
  %974 = fcmp ole float %972, %973
  br i1 %974, label %975, label %977

975:                                              ; preds = %971
  %976 = load float, ptr %44, align 4, !tbaa !11
  br label %979

977:                                              ; preds = %971
  %978 = load float, ptr %33, align 4, !tbaa !11
  br label %979

979:                                              ; preds = %977, %975
  %980 = phi float [ %976, %975 ], [ %978, %977 ]
  %981 = fpext float %980 to double
  %982 = fptrunc double %981 to float
  store float %982, ptr %44, align 4, !tbaa !11
  br label %983

983:                                              ; preds = %979, %967
  %984 = load float, ptr %24, align 4, !tbaa !11
  %985 = load ptr, ptr %14, align 8, !tbaa !5
  %986 = load ptr, ptr %10, align 8, !tbaa !5
  %987 = load i64, ptr %986, align 8, !tbaa !9
  %988 = sub nsw i64 %987, 1
  %989 = getelementptr inbounds float, ptr %985, i64 %988
  %990 = load float, ptr %989, align 4, !tbaa !11
  %991 = load float, ptr %38, align 4, !tbaa !11
  %992 = fneg float %990
  %993 = call float @llvm.fmuladd.f32(float %992, float %991, float %984)
  %994 = load ptr, ptr %14, align 8, !tbaa !5
  %995 = load ptr, ptr %10, align 8, !tbaa !5
  %996 = load i64, ptr %995, align 8, !tbaa !9
  %997 = getelementptr inbounds float, ptr %994, i64 %996
  %998 = load float, ptr %997, align 4, !tbaa !11
  %999 = load float, ptr %37, align 4, !tbaa !11
  %1000 = fneg float %998
  %1001 = call float @llvm.fmuladd.f32(float %1000, float %999, float %993)
  store float %1001, ptr %22, align 4, !tbaa !11
  %1002 = load ptr, ptr %14, align 8, !tbaa !5
  %1003 = load ptr, ptr %10, align 8, !tbaa !5
  %1004 = load i64, ptr %1003, align 8, !tbaa !9
  %1005 = sub nsw i64 %1004, 1
  %1006 = getelementptr inbounds float, ptr %1002, i64 %1005
  %1007 = load float, ptr %1006, align 4, !tbaa !11
  %1008 = load ptr, ptr %14, align 8, !tbaa !5
  %1009 = load ptr, ptr %10, align 8, !tbaa !5
  %1010 = load i64, ptr %1009, align 8, !tbaa !9
  %1011 = getelementptr inbounds float, ptr %1008, i64 %1010
  %1012 = load float, ptr %1011, align 4, !tbaa !11
  %1013 = fadd float %1007, %1012
  %1014 = load float, ptr %24, align 4, !tbaa !11
  %1015 = load ptr, ptr %14, align 8, !tbaa !5
  %1016 = load ptr, ptr %10, align 8, !tbaa !5
  %1017 = load i64, ptr %1016, align 8, !tbaa !9
  %1018 = sub nsw i64 %1017, 1
  %1019 = getelementptr inbounds float, ptr %1015, i64 %1018
  %1020 = load float, ptr %1019, align 4, !tbaa !11
  %1021 = load ptr, ptr %14, align 8, !tbaa !5
  %1022 = load ptr, ptr %10, align 8, !tbaa !5
  %1023 = load i64, ptr %1022, align 8, !tbaa !9
  %1024 = getelementptr inbounds float, ptr %1021, i64 %1023
  %1025 = load float, ptr %1024, align 4, !tbaa !11
  %1026 = fmul float %1020, %1025
  %1027 = load float, ptr %38, align 4, !tbaa !11
  %1028 = load float, ptr %37, align 4, !tbaa !11
  %1029 = fadd float %1027, %1028
  %1030 = fmul float %1026, %1029
  %1031 = fneg float %1030
  %1032 = call float @llvm.fmuladd.f32(float %1013, float %1014, float %1031)
  store float %1032, ptr %20, align 4, !tbaa !11
  %1033 = load ptr, ptr %14, align 8, !tbaa !5
  %1034 = load ptr, ptr %10, align 8, !tbaa !5
  %1035 = load i64, ptr %1034, align 8, !tbaa !9
  %1036 = sub nsw i64 %1035, 1
  %1037 = getelementptr inbounds float, ptr %1033, i64 %1036
  %1038 = load float, ptr %1037, align 4, !tbaa !11
  %1039 = load ptr, ptr %14, align 8, !tbaa !5
  %1040 = load ptr, ptr %10, align 8, !tbaa !5
  %1041 = load i64, ptr %1040, align 8, !tbaa !9
  %1042 = getelementptr inbounds float, ptr %1039, i64 %1041
  %1043 = load float, ptr %1042, align 4, !tbaa !11
  %1044 = fmul float %1038, %1043
  %1045 = load float, ptr %24, align 4, !tbaa !11
  %1046 = fmul float %1044, %1045
  store float %1046, ptr %21, align 4, !tbaa !11
  %1047 = load float, ptr %20, align 4, !tbaa !11
  %1048 = fcmp oge float %1047, 0.000000e+00
  br i1 %1048, label %1049, label %1077

1049:                                             ; preds = %983
  %1050 = load float, ptr %20, align 4, !tbaa !11
  %1051 = fpext float %1050 to double
  %1052 = load float, ptr %20, align 4, !tbaa !11
  %1053 = load float, ptr %20, align 4, !tbaa !11
  %1054 = load float, ptr %21, align 4, !tbaa !11
  %1055 = fmul float %1054, 4.000000e+00
  %1056 = load float, ptr %22, align 4, !tbaa !11
  %1057 = fmul float %1055, %1056
  %1058 = fneg float %1057
  %1059 = call float @llvm.fmuladd.f32(float %1052, float %1053, float %1058)
  store float %1059, ptr %19, align 4, !tbaa !11
  %1060 = load float, ptr %19, align 4, !tbaa !11
  %1061 = fcmp oge float %1060, 0.000000e+00
  br i1 %1061, label %1062, label %1064

1062:                                             ; preds = %1049
  %1063 = load float, ptr %19, align 4, !tbaa !11
  br label %1067

1064:                                             ; preds = %1049
  %1065 = load float, ptr %19, align 4, !tbaa !11
  %1066 = fneg float %1065
  br label %1067

1067:                                             ; preds = %1064, %1062
  %1068 = phi float [ %1063, %1062 ], [ %1066, %1064 ]
  %1069 = fpext float %1068 to double
  %1070 = call double @sqrt(double noundef %1069) #5
  %1071 = fadd double %1051, %1070
  %1072 = load float, ptr %22, align 4, !tbaa !11
  %1073 = fmul float %1072, 2.000000e+00
  %1074 = fpext float %1073 to double
  %1075 = fdiv double %1071, %1074
  %1076 = fptrunc double %1075 to float
  store float %1076, ptr %30, align 4, !tbaa !11
  br label %1105

1077:                                             ; preds = %983
  %1078 = load float, ptr %21, align 4, !tbaa !11
  %1079 = fmul float %1078, 2.000000e+00
  %1080 = fpext float %1079 to double
  %1081 = load float, ptr %20, align 4, !tbaa !11
  %1082 = fpext float %1081 to double
  %1083 = load float, ptr %20, align 4, !tbaa !11
  %1084 = load float, ptr %20, align 4, !tbaa !11
  %1085 = load float, ptr %21, align 4, !tbaa !11
  %1086 = fmul float %1085, 4.000000e+00
  %1087 = load float, ptr %22, align 4, !tbaa !11
  %1088 = fmul float %1086, %1087
  %1089 = fneg float %1088
  %1090 = call float @llvm.fmuladd.f32(float %1083, float %1084, float %1089)
  store float %1090, ptr %19, align 4, !tbaa !11
  %1091 = load float, ptr %19, align 4, !tbaa !11
  %1092 = fcmp oge float %1091, 0.000000e+00
  br i1 %1092, label %1093, label %1095

1093:                                             ; preds = %1077
  %1094 = load float, ptr %19, align 4, !tbaa !11
  br label %1098

1095:                                             ; preds = %1077
  %1096 = load float, ptr %19, align 4, !tbaa !11
  %1097 = fneg float %1096
  br label %1098

1098:                                             ; preds = %1095, %1093
  %1099 = phi float [ %1094, %1093 ], [ %1097, %1095 ]
  %1100 = fpext float %1099 to double
  %1101 = call double @sqrt(double noundef %1100) #5
  %1102 = fsub double %1082, %1101
  %1103 = fdiv double %1080, %1102
  %1104 = fptrunc double %1103 to float
  store float %1104, ptr %30, align 4, !tbaa !11
  br label %1105

1105:                                             ; preds = %1098, %1067
  %1106 = load float, ptr %24, align 4, !tbaa !11
  %1107 = load float, ptr %30, align 4, !tbaa !11
  %1108 = fmul float %1106, %1107
  %1109 = fcmp ogt float %1108, 0.000000e+00
  br i1 %1109, label %1110, label %1117

1110:                                             ; preds = %1105
  %1111 = load float, ptr %24, align 4, !tbaa !11
  %1112 = fneg float %1111
  %1113 = load float, ptr %38, align 4, !tbaa !11
  %1114 = load float, ptr %37, align 4, !tbaa !11
  %1115 = fadd float %1113, %1114
  %1116 = fdiv float %1112, %1115
  store float %1116, ptr %30, align 4, !tbaa !11
  br label %1117

1117:                                             ; preds = %1110, %1105
  %1118 = load float, ptr %33, align 4, !tbaa !11
  %1119 = load float, ptr %30, align 4, !tbaa !11
  %1120 = fadd float %1118, %1119
  store float %1120, ptr %40, align 4, !tbaa !11
  %1121 = load float, ptr %40, align 4, !tbaa !11
  %1122 = load float, ptr %44, align 4, !tbaa !11
  %1123 = fcmp ogt float %1121, %1122
  br i1 %1123, label %1128, label %1124

1124:                                             ; preds = %1117
  %1125 = load float, ptr %40, align 4, !tbaa !11
  %1126 = load float, ptr %43, align 4, !tbaa !11
  %1127 = fcmp olt float %1125, %1126
  br i1 %1127, label %1128, label %1142

1128:                                             ; preds = %1124, %1117
  %1129 = load float, ptr %24, align 4, !tbaa !11
  %1130 = fcmp olt float %1129, 0.000000e+00
  br i1 %1130, label %1131, label %1136

1131:                                             ; preds = %1128
  %1132 = load float, ptr %44, align 4, !tbaa !11
  %1133 = load float, ptr %33, align 4, !tbaa !11
  %1134 = fsub float %1132, %1133
  %1135 = fdiv float %1134, 2.000000e+00
  store float %1135, ptr %30, align 4, !tbaa !11
  br label %1141

1136:                                             ; preds = %1128
  %1137 = load float, ptr %43, align 4, !tbaa !11
  %1138 = load float, ptr %33, align 4, !tbaa !11
  %1139 = fsub float %1137, %1138
  %1140 = fdiv float %1139, 2.000000e+00
  store float %1140, ptr %30, align 4, !tbaa !11
  br label %1141

1141:                                             ; preds = %1136, %1131
  br label %1142

1142:                                             ; preds = %1141, %1124
  %1143 = load ptr, ptr %10, align 8, !tbaa !5
  %1144 = load i64, ptr %1143, align 8, !tbaa !9
  store i64 %1144, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %1145

1145:                                             ; preds = %1156, %1142
  %1146 = load i64, ptr %23, align 8, !tbaa !9
  %1147 = load i64, ptr %18, align 8, !tbaa !9
  %1148 = icmp sle i64 %1146, %1147
  br i1 %1148, label %1149, label %1159

1149:                                             ; preds = %1145
  %1150 = load float, ptr %30, align 4, !tbaa !11
  %1151 = load ptr, ptr %14, align 8, !tbaa !5
  %1152 = load i64, ptr %23, align 8, !tbaa !9
  %1153 = getelementptr inbounds float, ptr %1151, i64 %1152
  %1154 = load float, ptr %1153, align 4, !tbaa !11
  %1155 = fsub float %1154, %1150
  store float %1155, ptr %1153, align 4, !tbaa !11
  br label %1156

1156:                                             ; preds = %1149
  %1157 = load i64, ptr %23, align 8, !tbaa !9
  %1158 = add nsw i64 %1157, 1
  store i64 %1158, ptr %23, align 8, !tbaa !9
  br label %1145, !llvm.loop !20

1159:                                             ; preds = %1145
  %1160 = load float, ptr %30, align 4, !tbaa !11
  %1161 = load float, ptr %33, align 4, !tbaa !11
  %1162 = fadd float %1161, %1160
  store float %1162, ptr %33, align 4, !tbaa !11
  store float 0.000000e+00, ptr %38, align 4, !tbaa !11
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  store float 0.000000e+00, ptr %50, align 4, !tbaa !11
  %1163 = load i64, ptr %25, align 8, !tbaa !9
  store i64 %1163, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %1164

1164:                                             ; preds = %1192, %1159
  %1165 = load i64, ptr %23, align 8, !tbaa !9
  %1166 = load i64, ptr %18, align 8, !tbaa !9
  %1167 = icmp sle i64 %1165, %1166
  br i1 %1167, label %1168, label %1195

1168:                                             ; preds = %1164
  %1169 = load ptr, ptr %13, align 8, !tbaa !5
  %1170 = load i64, ptr %23, align 8, !tbaa !9
  %1171 = getelementptr inbounds float, ptr %1169, i64 %1170
  %1172 = load float, ptr %1171, align 4, !tbaa !11
  %1173 = load ptr, ptr %14, align 8, !tbaa !5
  %1174 = load i64, ptr %23, align 8, !tbaa !9
  %1175 = getelementptr inbounds float, ptr %1173, i64 %1174
  %1176 = load float, ptr %1175, align 4, !tbaa !11
  %1177 = fdiv float %1172, %1176
  store float %1177, ptr %40, align 4, !tbaa !11
  %1178 = load ptr, ptr %13, align 8, !tbaa !5
  %1179 = load i64, ptr %23, align 8, !tbaa !9
  %1180 = getelementptr inbounds float, ptr %1178, i64 %1179
  %1181 = load float, ptr %1180, align 4, !tbaa !11
  %1182 = load float, ptr %40, align 4, !tbaa !11
  %1183 = load float, ptr %34, align 4, !tbaa !11
  %1184 = call float @llvm.fmuladd.f32(float %1181, float %1182, float %1183)
  store float %1184, ptr %34, align 4, !tbaa !11
  %1185 = load float, ptr %40, align 4, !tbaa !11
  %1186 = load float, ptr %40, align 4, !tbaa !11
  %1187 = load float, ptr %38, align 4, !tbaa !11
  %1188 = call float @llvm.fmuladd.f32(float %1185, float %1186, float %1187)
  store float %1188, ptr %38, align 4, !tbaa !11
  %1189 = load float, ptr %34, align 4, !tbaa !11
  %1190 = load float, ptr %50, align 4, !tbaa !11
  %1191 = fadd float %1190, %1189
  store float %1191, ptr %50, align 4, !tbaa !11
  br label %1192

1192:                                             ; preds = %1168
  %1193 = load i64, ptr %23, align 8, !tbaa !9
  %1194 = add nsw i64 %1193, 1
  store i64 %1194, ptr %23, align 8, !tbaa !9
  br label %1164, !llvm.loop !21

1195:                                             ; preds = %1164
  %1196 = load float, ptr %50, align 4, !tbaa !11
  %1197 = fcmp oge float %1196, 0.000000e+00
  br i1 %1197, label %1198, label %1200

1198:                                             ; preds = %1195
  %1199 = load float, ptr %50, align 4, !tbaa !11
  br label %1203

1200:                                             ; preds = %1195
  %1201 = load float, ptr %50, align 4, !tbaa !11
  %1202 = fneg float %1201
  br label %1203

1203:                                             ; preds = %1200, %1198
  %1204 = phi float [ %1199, %1198 ], [ %1202, %1200 ]
  %1205 = fpext float %1204 to double
  %1206 = fptrunc double %1205 to float
  store float %1206, ptr %50, align 4, !tbaa !11
  %1207 = load ptr, ptr %13, align 8, !tbaa !5
  %1208 = load ptr, ptr %10, align 8, !tbaa !5
  %1209 = load i64, ptr %1208, align 8, !tbaa !9
  %1210 = getelementptr inbounds float, ptr %1207, i64 %1209
  %1211 = load float, ptr %1210, align 4, !tbaa !11
  %1212 = load ptr, ptr %14, align 8, !tbaa !5
  %1213 = load ptr, ptr %10, align 8, !tbaa !5
  %1214 = load i64, ptr %1213, align 8, !tbaa !9
  %1215 = getelementptr inbounds float, ptr %1212, i64 %1214
  %1216 = load float, ptr %1215, align 4, !tbaa !11
  %1217 = fdiv float %1211, %1216
  store float %1217, ptr %40, align 4, !tbaa !11
  %1218 = load ptr, ptr %13, align 8, !tbaa !5
  %1219 = load ptr, ptr %10, align 8, !tbaa !5
  %1220 = load i64, ptr %1219, align 8, !tbaa !9
  %1221 = getelementptr inbounds float, ptr %1218, i64 %1220
  %1222 = load float, ptr %1221, align 4, !tbaa !11
  %1223 = load float, ptr %40, align 4, !tbaa !11
  %1224 = fmul float %1222, %1223
  store float %1224, ptr %31, align 4, !tbaa !11
  %1225 = load float, ptr %40, align 4, !tbaa !11
  %1226 = load float, ptr %40, align 4, !tbaa !11
  %1227 = fmul float %1225, %1226
  store float %1227, ptr %37, align 4, !tbaa !11
  %1228 = load float, ptr %31, align 4, !tbaa !11
  %1229 = fneg float %1228
  %1230 = load float, ptr %34, align 4, !tbaa !11
  %1231 = fsub float %1229, %1230
  %1232 = load float, ptr %50, align 4, !tbaa !11
  %1233 = call float @llvm.fmuladd.f32(float %1231, float 8.000000e+00, float %1232)
  %1234 = load float, ptr %31, align 4, !tbaa !11
  %1235 = fsub float %1233, %1234
  %1236 = load float, ptr %51, align 4, !tbaa !11
  %1237 = fadd float %1235, %1236
  %1238 = fpext float %1237 to double
  %1239 = load float, ptr %33, align 4, !tbaa !11
  %1240 = fcmp oge float %1239, 0.000000e+00
  br i1 %1240, label %1241, label %1243

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

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

1246:                                             ; preds = %1243, %1241
  %1247 = phi float [ %1242, %1241 ], [ %1245, %1243 ]
  %1248 = fpext float %1247 to double
  %1249 = load float, ptr %38, align 4, !tbaa !11
  %1250 = load float, ptr %37, align 4, !tbaa !11
  %1251 = fadd float %1249, %1250
  %1252 = fpext float %1251 to double
  %1253 = call double @llvm.fmuladd.f64(double %1248, double %1252, double %1238)
  %1254 = fptrunc double %1253 to float
  store float %1254, ptr %50, align 4, !tbaa !11
  %1255 = load float, ptr %51, align 4, !tbaa !11
  %1256 = load float, ptr %31, align 4, !tbaa !11
  %1257 = fadd float %1255, %1256
  %1258 = load float, ptr %34, align 4, !tbaa !11
  %1259 = fadd float %1257, %1258
  store float %1259, ptr %24, align 4, !tbaa !11
  br label %1260

1260:                                             ; preds = %1246
  %1261 = load i64, ptr %46, align 8, !tbaa !9
  %1262 = add nsw i64 %1261, 1
  store i64 %1262, ptr %46, align 8, !tbaa !9
  br label %928, !llvm.loop !22

1263:                                             ; preds = %928
  %1264 = load ptr, ptr %17, align 8, !tbaa !5
  store i64 1, ptr %1264, align 8, !tbaa !9
  %1265 = load ptr, ptr %12, align 8, !tbaa !5
  %1266 = load ptr, ptr %11, align 8, !tbaa !5
  %1267 = load i64, ptr %1266, align 8, !tbaa !9
  %1268 = getelementptr inbounds float, ptr %1265, i64 %1267
  %1269 = load float, ptr %1268, align 4, !tbaa !11
  %1270 = load float, ptr %33, align 4, !tbaa !11
  %1271 = fadd float %1269, %1270
  %1272 = load ptr, ptr %16, align 8, !tbaa !5
  store float %1271, ptr %1272, align 4, !tbaa !11
  br label %3356

1273:                                             ; preds = %95
  store i64 1, ptr %46, align 8, !tbaa !9
  %1274 = load ptr, ptr %11, align 8, !tbaa !5
  %1275 = load i64, ptr %1274, align 8, !tbaa !9
  %1276 = add nsw i64 %1275, 1
  store i64 %1276, ptr %28, align 8, !tbaa !9
  %1277 = load ptr, ptr %12, align 8, !tbaa !5
  %1278 = load i64, ptr %28, align 8, !tbaa !9
  %1279 = getelementptr inbounds float, ptr %1277, i64 %1278
  %1280 = load float, ptr %1279, align 4, !tbaa !11
  %1281 = load ptr, ptr %12, align 8, !tbaa !5
  %1282 = load ptr, ptr %11, align 8, !tbaa !5
  %1283 = load i64, ptr %1282, align 8, !tbaa !9
  %1284 = getelementptr inbounds float, ptr %1281, i64 %1283
  %1285 = load float, ptr %1284, align 4, !tbaa !11
  %1286 = fsub float %1280, %1285
  store float %1286, ptr %29, align 4, !tbaa !11
  %1287 = load float, ptr %29, align 4, !tbaa !11
  %1288 = fdiv float %1287, 2.000000e+00
  store float %1288, ptr %45, align 4, !tbaa !11
  %1289 = load ptr, ptr %10, align 8, !tbaa !5
  %1290 = load i64, ptr %1289, align 8, !tbaa !9
  store i64 %1290, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %1291

1291:                                             ; preds = %1311, %1273
  %1292 = load i64, ptr %23, align 8, !tbaa !9
  %1293 = load i64, ptr %18, align 8, !tbaa !9
  %1294 = icmp sle i64 %1292, %1293
  br i1 %1294, label %1295, label %1314

1295:                                             ; preds = %1291
  %1296 = load ptr, ptr %12, align 8, !tbaa !5
  %1297 = load i64, ptr %23, align 8, !tbaa !9
  %1298 = getelementptr inbounds float, ptr %1296, i64 %1297
  %1299 = load float, ptr %1298, align 4, !tbaa !11
  %1300 = load ptr, ptr %12, align 8, !tbaa !5
  %1301 = load ptr, ptr %11, align 8, !tbaa !5
  %1302 = load i64, ptr %1301, align 8, !tbaa !9
  %1303 = getelementptr inbounds float, ptr %1300, i64 %1302
  %1304 = load float, ptr %1303, align 4, !tbaa !11
  %1305 = fsub float %1299, %1304
  %1306 = load float, ptr %45, align 4, !tbaa !11
  %1307 = fsub float %1305, %1306
  %1308 = load ptr, ptr %14, align 8, !tbaa !5
  %1309 = load i64, ptr %23, align 8, !tbaa !9
  %1310 = getelementptr inbounds float, ptr %1308, i64 %1309
  store float %1307, ptr %1310, align 4, !tbaa !11
  br label %1311

1311:                                             ; preds = %1295
  %1312 = load i64, ptr %23, align 8, !tbaa !9
  %1313 = add nsw i64 %1312, 1
  store i64 %1313, ptr %23, align 8, !tbaa !9
  br label %1291, !llvm.loop !23

1314:                                             ; preds = %1291
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  %1315 = load ptr, ptr %11, align 8, !tbaa !5
  %1316 = load i64, ptr %1315, align 8, !tbaa !9
  %1317 = sub nsw i64 %1316, 1
  store i64 %1317, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %1318

1318:                                             ; preds = %1339, %1314
  %1319 = load i64, ptr %23, align 8, !tbaa !9
  %1320 = load i64, ptr %18, align 8, !tbaa !9
  %1321 = icmp sle i64 %1319, %1320
  br i1 %1321, label %1322, label %1342

1322:                                             ; preds = %1318
  %1323 = load ptr, ptr %13, align 8, !tbaa !5
  %1324 = load i64, ptr %23, align 8, !tbaa !9
  %1325 = getelementptr inbounds float, ptr %1323, i64 %1324
  %1326 = load float, ptr %1325, align 4, !tbaa !11
  %1327 = load ptr, ptr %13, align 8, !tbaa !5
  %1328 = load i64, ptr %23, align 8, !tbaa !9
  %1329 = getelementptr inbounds float, ptr %1327, i64 %1328
  %1330 = load float, ptr %1329, align 4, !tbaa !11
  %1331 = fmul float %1326, %1330
  %1332 = load ptr, ptr %14, align 8, !tbaa !5
  %1333 = load i64, ptr %23, align 8, !tbaa !9
  %1334 = getelementptr inbounds float, ptr %1332, i64 %1333
  %1335 = load float, ptr %1334, align 4, !tbaa !11
  %1336 = fdiv float %1331, %1335
  %1337 = load float, ptr %34, align 4, !tbaa !11
  %1338 = fadd float %1337, %1336
  store float %1338, ptr %34, align 4, !tbaa !11
  br label %1339

1339:                                             ; preds = %1322
  %1340 = load i64, ptr %23, align 8, !tbaa !9
  %1341 = add nsw i64 %1340, 1
  store i64 %1341, ptr %23, align 8, !tbaa !9
  br label %1318, !llvm.loop !24

1342:                                             ; preds = %1318
  store float 0.000000e+00, ptr %31, align 4, !tbaa !11
  %1343 = load ptr, ptr %11, align 8, !tbaa !5
  %1344 = load i64, ptr %1343, align 8, !tbaa !9
  %1345 = add nsw i64 %1344, 2
  store i64 %1345, ptr %18, align 8, !tbaa !9
  %1346 = load ptr, ptr %10, align 8, !tbaa !5
  %1347 = load i64, ptr %1346, align 8, !tbaa !9
  store i64 %1347, ptr %23, align 8, !tbaa !9
  br label %1348

1348:                                             ; preds = %1369, %1342
  %1349 = load i64, ptr %23, align 8, !tbaa !9
  %1350 = load i64, ptr %18, align 8, !tbaa !9
  %1351 = icmp sge i64 %1349, %1350
  br i1 %1351, label %1352, label %1372

1352:                                             ; preds = %1348
  %1353 = load ptr, ptr %13, align 8, !tbaa !5
  %1354 = load i64, ptr %23, align 8, !tbaa !9
  %1355 = getelementptr inbounds float, ptr %1353, i64 %1354
  %1356 = load float, ptr %1355, align 4, !tbaa !11
  %1357 = load ptr, ptr %13, align 8, !tbaa !5
  %1358 = load i64, ptr %23, align 8, !tbaa !9
  %1359 = getelementptr inbounds float, ptr %1357, i64 %1358
  %1360 = load float, ptr %1359, align 4, !tbaa !11
  %1361 = fmul float %1356, %1360
  %1362 = load ptr, ptr %14, align 8, !tbaa !5
  %1363 = load i64, ptr %23, align 8, !tbaa !9
  %1364 = getelementptr inbounds float, ptr %1362, i64 %1363
  %1365 = load float, ptr %1364, align 4, !tbaa !11
  %1366 = fdiv float %1361, %1365
  %1367 = load float, ptr %31, align 4, !tbaa !11
  %1368 = fadd float %1367, %1366
  store float %1368, ptr %31, align 4, !tbaa !11
  br label %1369

1369:                                             ; preds = %1352
  %1370 = load i64, ptr %23, align 8, !tbaa !9
  %1371 = add nsw i64 %1370, -1
  store i64 %1371, ptr %23, align 8, !tbaa !9
  br label %1348, !llvm.loop !25

1372:                                             ; preds = %1348
  %1373 = load float, ptr %51, align 4, !tbaa !11
  %1374 = load float, ptr %34, align 4, !tbaa !11
  %1375 = fadd float %1373, %1374
  %1376 = load float, ptr %31, align 4, !tbaa !11
  %1377 = fadd float %1375, %1376
  store float %1377, ptr %22, align 4, !tbaa !11
  %1378 = load float, ptr %22, align 4, !tbaa !11
  %1379 = load ptr, ptr %13, align 8, !tbaa !5
  %1380 = load ptr, ptr %11, align 8, !tbaa !5
  %1381 = load i64, ptr %1380, align 8, !tbaa !9
  %1382 = getelementptr inbounds float, ptr %1379, i64 %1381
  %1383 = load float, ptr %1382, align 4, !tbaa !11
  %1384 = load ptr, ptr %13, align 8, !tbaa !5
  %1385 = load ptr, ptr %11, align 8, !tbaa !5
  %1386 = load i64, ptr %1385, align 8, !tbaa !9
  %1387 = getelementptr inbounds float, ptr %1384, i64 %1386
  %1388 = load float, ptr %1387, align 4, !tbaa !11
  %1389 = fmul float %1383, %1388
  %1390 = load ptr, ptr %14, align 8, !tbaa !5
  %1391 = load ptr, ptr %11, align 8, !tbaa !5
  %1392 = load i64, ptr %1391, align 8, !tbaa !9
  %1393 = getelementptr inbounds float, ptr %1390, i64 %1392
  %1394 = load float, ptr %1393, align 4, !tbaa !11
  %1395 = fdiv float %1389, %1394
  %1396 = fadd float %1378, %1395
  %1397 = load ptr, ptr %13, align 8, !tbaa !5
  %1398 = load i64, ptr %28, align 8, !tbaa !9
  %1399 = getelementptr inbounds float, ptr %1397, i64 %1398
  %1400 = load float, ptr %1399, align 4, !tbaa !11
  %1401 = load ptr, ptr %13, align 8, !tbaa !5
  %1402 = load i64, ptr %28, align 8, !tbaa !9
  %1403 = getelementptr inbounds float, ptr %1401, i64 %1402
  %1404 = load float, ptr %1403, align 4, !tbaa !11
  %1405 = fmul float %1400, %1404
  %1406 = load ptr, ptr %14, align 8, !tbaa !5
  %1407 = load i64, ptr %28, align 8, !tbaa !9
  %1408 = getelementptr inbounds float, ptr %1406, i64 %1407
  %1409 = load float, ptr %1408, align 4, !tbaa !11
  %1410 = fdiv float %1405, %1409
  %1411 = fadd float %1396, %1410
  store float %1411, ptr %24, align 4, !tbaa !11
  %1412 = load float, ptr %24, align 4, !tbaa !11
  %1413 = fcmp ogt float %1412, 0.000000e+00
  br i1 %1413, label %1414, label %1511

1414:                                             ; preds = %1372
  store i64 1, ptr %49, align 8, !tbaa !9
  %1415 = load float, ptr %22, align 4, !tbaa !11
  %1416 = load float, ptr %29, align 4, !tbaa !11
  %1417 = load ptr, ptr %13, align 8, !tbaa !5
  %1418 = load ptr, ptr %11, align 8, !tbaa !5
  %1419 = load i64, ptr %1418, align 8, !tbaa !9
  %1420 = getelementptr inbounds float, ptr %1417, i64 %1419
  %1421 = load float, ptr %1420, align 4, !tbaa !11
  %1422 = load ptr, ptr %13, align 8, !tbaa !5
  %1423 = load ptr, ptr %11, align 8, !tbaa !5
  %1424 = load i64, ptr %1423, align 8, !tbaa !9
  %1425 = getelementptr inbounds float, ptr %1422, i64 %1424
  %1426 = load float, ptr %1425, align 4, !tbaa !11
  %1427 = fmul float %1421, %1426
  %1428 = call float @llvm.fmuladd.f32(float %1415, float %1416, float %1427)
  %1429 = load ptr, ptr %13, align 8, !tbaa !5
  %1430 = load i64, ptr %28, align 8, !tbaa !9
  %1431 = getelementptr inbounds float, ptr %1429, i64 %1430
  %1432 = load float, ptr %1431, align 4, !tbaa !11
  %1433 = load ptr, ptr %13, align 8, !tbaa !5
  %1434 = load i64, ptr %28, align 8, !tbaa !9
  %1435 = getelementptr inbounds float, ptr %1433, i64 %1434
  %1436 = load float, ptr %1435, align 4, !tbaa !11
  %1437 = call float @llvm.fmuladd.f32(float %1432, float %1436, float %1428)
  store float %1437, ptr %20, align 4, !tbaa !11
  %1438 = load ptr, ptr %13, align 8, !tbaa !5
  %1439 = load ptr, ptr %11, align 8, !tbaa !5
  %1440 = load i64, ptr %1439, align 8, !tbaa !9
  %1441 = getelementptr inbounds float, ptr %1438, i64 %1440
  %1442 = load float, ptr %1441, align 4, !tbaa !11
  %1443 = load ptr, ptr %13, align 8, !tbaa !5
  %1444 = load ptr, ptr %11, align 8, !tbaa !5
  %1445 = load i64, ptr %1444, align 8, !tbaa !9
  %1446 = getelementptr inbounds float, ptr %1443, i64 %1445
  %1447 = load float, ptr %1446, align 4, !tbaa !11
  %1448 = fmul float %1442, %1447
  %1449 = load float, ptr %29, align 4, !tbaa !11
  %1450 = fmul float %1448, %1449
  store float %1450, ptr %21, align 4, !tbaa !11
  %1451 = load float, ptr %20, align 4, !tbaa !11
  %1452 = fcmp ogt float %1451, 0.000000e+00
  br i1 %1452, label %1453, label %1481

1453:                                             ; preds = %1414
  %1454 = load float, ptr %21, align 4, !tbaa !11
  %1455 = fmul float %1454, 2.000000e+00
  %1456 = fpext float %1455 to double
  %1457 = load float, ptr %20, align 4, !tbaa !11
  %1458 = fpext float %1457 to double
  %1459 = load float, ptr %20, align 4, !tbaa !11
  %1460 = load float, ptr %20, align 4, !tbaa !11
  %1461 = load float, ptr %21, align 4, !tbaa !11
  %1462 = fmul float %1461, 4.000000e+00
  %1463 = load float, ptr %22, align 4, !tbaa !11
  %1464 = fmul float %1462, %1463
  %1465 = fneg float %1464
  %1466 = call float @llvm.fmuladd.f32(float %1459, float %1460, float %1465)
  store float %1466, ptr %19, align 4, !tbaa !11
  %1467 = load float, ptr %19, align 4, !tbaa !11
  %1468 = fcmp oge float %1467, 0.000000e+00
  br i1 %1468, label %1469, label %1471

1469:                                             ; preds = %1453
  %1470 = load float, ptr %19, align 4, !tbaa !11
  br label %1474

1471:                                             ; preds = %1453
  %1472 = load float, ptr %19, align 4, !tbaa !11
  %1473 = fneg float %1472
  br label %1474

1474:                                             ; preds = %1471, %1469
  %1475 = phi float [ %1470, %1469 ], [ %1473, %1471 ]
  %1476 = fpext float %1475 to double
  %1477 = call double @sqrt(double noundef %1476) #5
  %1478 = fadd double %1458, %1477
  %1479 = fdiv double %1456, %1478
  %1480 = fptrunc double %1479 to float
  store float %1480, ptr %33, align 4, !tbaa !11
  br label %1509

1481:                                             ; preds = %1414
  %1482 = load float, ptr %20, align 4, !tbaa !11
  %1483 = fpext float %1482 to double
  %1484 = load float, ptr %20, align 4, !tbaa !11
  %1485 = load float, ptr %20, align 4, !tbaa !11
  %1486 = load float, ptr %21, align 4, !tbaa !11
  %1487 = fmul float %1486, 4.000000e+00
  %1488 = load float, ptr %22, align 4, !tbaa !11
  %1489 = fmul float %1487, %1488
  %1490 = fneg float %1489
  %1491 = call float @llvm.fmuladd.f32(float %1484, float %1485, float %1490)
  store float %1491, ptr %19, align 4, !tbaa !11
  %1492 = load float, ptr %19, align 4, !tbaa !11
  %1493 = fcmp oge float %1492, 0.000000e+00
  br i1 %1493, label %1494, label %1496

1494:                                             ; preds = %1481
  %1495 = load float, ptr %19, align 4, !tbaa !11
  br label %1499

1496:                                             ; preds = %1481
  %1497 = load float, ptr %19, align 4, !tbaa !11
  %1498 = fneg float %1497
  br label %1499

1499:                                             ; preds = %1496, %1494
  %1500 = phi float [ %1495, %1494 ], [ %1498, %1496 ]
  %1501 = fpext float %1500 to double
  %1502 = call double @sqrt(double noundef %1501) #5
  %1503 = fsub double %1483, %1502
  %1504 = load float, ptr %22, align 4, !tbaa !11
  %1505 = fmul float %1504, 2.000000e+00
  %1506 = fpext float %1505 to double
  %1507 = fdiv double %1503, %1506
  %1508 = fptrunc double %1507 to float
  store float %1508, ptr %33, align 4, !tbaa !11
  br label %1509

1509:                                             ; preds = %1499, %1474
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %1510 = load float, ptr %45, align 4, !tbaa !11
  store float %1510, ptr %44, align 4, !tbaa !11
  br label %1608

1511:                                             ; preds = %1372
  store i64 0, ptr %49, align 8, !tbaa !9
  %1512 = load float, ptr %22, align 4, !tbaa !11
  %1513 = load float, ptr %29, align 4, !tbaa !11
  %1514 = load ptr, ptr %13, align 8, !tbaa !5
  %1515 = load ptr, ptr %11, align 8, !tbaa !5
  %1516 = load i64, ptr %1515, align 8, !tbaa !9
  %1517 = getelementptr inbounds float, ptr %1514, i64 %1516
  %1518 = load float, ptr %1517, align 4, !tbaa !11
  %1519 = load ptr, ptr %13, align 8, !tbaa !5
  %1520 = load ptr, ptr %11, align 8, !tbaa !5
  %1521 = load i64, ptr %1520, align 8, !tbaa !9
  %1522 = getelementptr inbounds float, ptr %1519, i64 %1521
  %1523 = load float, ptr %1522, align 4, !tbaa !11
  %1524 = fmul float %1518, %1523
  %1525 = fneg float %1524
  %1526 = call float @llvm.fmuladd.f32(float %1512, float %1513, float %1525)
  %1527 = load ptr, ptr %13, align 8, !tbaa !5
  %1528 = load i64, ptr %28, align 8, !tbaa !9
  %1529 = getelementptr inbounds float, ptr %1527, i64 %1528
  %1530 = load float, ptr %1529, align 4, !tbaa !11
  %1531 = load ptr, ptr %13, align 8, !tbaa !5
  %1532 = load i64, ptr %28, align 8, !tbaa !9
  %1533 = getelementptr inbounds float, ptr %1531, i64 %1532
  %1534 = load float, ptr %1533, align 4, !tbaa !11
  %1535 = fneg float %1530
  %1536 = call float @llvm.fmuladd.f32(float %1535, float %1534, float %1526)
  store float %1536, ptr %20, align 4, !tbaa !11
  %1537 = load ptr, ptr %13, align 8, !tbaa !5
  %1538 = load i64, ptr %28, align 8, !tbaa !9
  %1539 = getelementptr inbounds float, ptr %1537, i64 %1538
  %1540 = load float, ptr %1539, align 4, !tbaa !11
  %1541 = load ptr, ptr %13, align 8, !tbaa !5
  %1542 = load i64, ptr %28, align 8, !tbaa !9
  %1543 = getelementptr inbounds float, ptr %1541, i64 %1542
  %1544 = load float, ptr %1543, align 4, !tbaa !11
  %1545 = fmul float %1540, %1544
  %1546 = load float, ptr %29, align 4, !tbaa !11
  %1547 = fmul float %1545, %1546
  store float %1547, ptr %21, align 4, !tbaa !11
  %1548 = load float, ptr %20, align 4, !tbaa !11
  %1549 = fcmp olt float %1548, 0.000000e+00
  br i1 %1549, label %1550, label %1577

1550:                                             ; preds = %1511
  %1551 = load float, ptr %21, align 4, !tbaa !11
  %1552 = fmul float %1551, 2.000000e+00
  %1553 = fpext float %1552 to double
  %1554 = load float, ptr %20, align 4, !tbaa !11
  %1555 = fpext float %1554 to double
  %1556 = load float, ptr %20, align 4, !tbaa !11
  %1557 = load float, ptr %20, align 4, !tbaa !11
  %1558 = load float, ptr %21, align 4, !tbaa !11
  %1559 = fmul float %1558, 4.000000e+00
  %1560 = load float, ptr %22, align 4, !tbaa !11
  %1561 = fmul float %1559, %1560
  %1562 = call float @llvm.fmuladd.f32(float %1556, float %1557, float %1561)
  store float %1562, ptr %19, align 4, !tbaa !11
  %1563 = load float, ptr %19, align 4, !tbaa !11
  %1564 = fcmp oge float %1563, 0.000000e+00
  br i1 %1564, label %1565, label %1567

1565:                                             ; preds = %1550
  %1566 = load float, ptr %19, align 4, !tbaa !11
  br label %1570

1567:                                             ; preds = %1550
  %1568 = load float, ptr %19, align 4, !tbaa !11
  %1569 = fneg float %1568
  br label %1570

1570:                                             ; preds = %1567, %1565
  %1571 = phi float [ %1566, %1565 ], [ %1569, %1567 ]
  %1572 = fpext float %1571 to double
  %1573 = call double @sqrt(double noundef %1572) #5
  %1574 = fsub double %1555, %1573
  %1575 = fdiv double %1553, %1574
  %1576 = fptrunc double %1575 to float
  store float %1576, ptr %33, align 4, !tbaa !11
  br label %1605

1577:                                             ; preds = %1511
  %1578 = load float, ptr %20, align 4, !tbaa !11
  %1579 = fpext float %1578 to double
  %1580 = load float, ptr %20, align 4, !tbaa !11
  %1581 = load float, ptr %20, align 4, !tbaa !11
  %1582 = load float, ptr %21, align 4, !tbaa !11
  %1583 = fmul float %1582, 4.000000e+00
  %1584 = load float, ptr %22, align 4, !tbaa !11
  %1585 = fmul float %1583, %1584
  %1586 = call float @llvm.fmuladd.f32(float %1580, float %1581, float %1585)
  store float %1586, ptr %19, align 4, !tbaa !11
  %1587 = load float, ptr %19, align 4, !tbaa !11
  %1588 = fcmp oge float %1587, 0.000000e+00
  br i1 %1588, label %1589, label %1591

1589:                                             ; preds = %1577
  %1590 = load float, ptr %19, align 4, !tbaa !11
  br label %1594

1591:                                             ; preds = %1577
  %1592 = load float, ptr %19, align 4, !tbaa !11
  %1593 = fneg float %1592
  br label %1594

1594:                                             ; preds = %1591, %1589
  %1595 = phi float [ %1590, %1589 ], [ %1593, %1591 ]
  %1596 = fpext float %1595 to double
  %1597 = call double @sqrt(double noundef %1596) #5
  %1598 = fadd double %1579, %1597
  %1599 = fneg double %1598
  %1600 = load float, ptr %22, align 4, !tbaa !11
  %1601 = fmul float %1600, 2.000000e+00
  %1602 = fpext float %1601 to double
  %1603 = fdiv double %1599, %1602
  %1604 = fptrunc double %1603 to float
  store float %1604, ptr %33, align 4, !tbaa !11
  br label %1605

1605:                                             ; preds = %1594, %1570
  %1606 = load float, ptr %45, align 4, !tbaa !11
  %1607 = fneg float %1606
  store float %1607, ptr %43, align 4, !tbaa !11
  store float 0.000000e+00, ptr %44, align 4, !tbaa !11
  br label %1608

1608:                                             ; preds = %1605, %1509
  %1609 = load i64, ptr %49, align 8, !tbaa !9
  %1610 = icmp ne i64 %1609, 0
  br i1 %1610, label %1611, label %1638

1611:                                             ; preds = %1608
  %1612 = load ptr, ptr %10, align 8, !tbaa !5
  %1613 = load i64, ptr %1612, align 8, !tbaa !9
  store i64 %1613, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %1614

1614:                                             ; preds = %1634, %1611
  %1615 = load i64, ptr %23, align 8, !tbaa !9
  %1616 = load i64, ptr %18, align 8, !tbaa !9
  %1617 = icmp sle i64 %1615, %1616
  br i1 %1617, label %1618, label %1637

1618:                                             ; preds = %1614
  %1619 = load ptr, ptr %12, align 8, !tbaa !5
  %1620 = load i64, ptr %23, align 8, !tbaa !9
  %1621 = getelementptr inbounds float, ptr %1619, i64 %1620
  %1622 = load float, ptr %1621, align 4, !tbaa !11
  %1623 = load ptr, ptr %12, align 8, !tbaa !5
  %1624 = load ptr, ptr %11, align 8, !tbaa !5
  %1625 = load i64, ptr %1624, align 8, !tbaa !9
  %1626 = getelementptr inbounds float, ptr %1623, i64 %1625
  %1627 = load float, ptr %1626, align 4, !tbaa !11
  %1628 = fsub float %1622, %1627
  %1629 = load float, ptr %33, align 4, !tbaa !11
  %1630 = fsub float %1628, %1629
  %1631 = load ptr, ptr %14, align 8, !tbaa !5
  %1632 = load i64, ptr %23, align 8, !tbaa !9
  %1633 = getelementptr inbounds float, ptr %1631, i64 %1632
  store float %1630, ptr %1633, align 4, !tbaa !11
  br label %1634

1634:                                             ; preds = %1618
  %1635 = load i64, ptr %23, align 8, !tbaa !9
  %1636 = add nsw i64 %1635, 1
  store i64 %1636, ptr %23, align 8, !tbaa !9
  br label %1614, !llvm.loop !26

1637:                                             ; preds = %1614
  br label %1664

1638:                                             ; preds = %1608
  %1639 = load ptr, ptr %10, align 8, !tbaa !5
  %1640 = load i64, ptr %1639, align 8, !tbaa !9
  store i64 %1640, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %1641

1641:                                             ; preds = %1660, %1638
  %1642 = load i64, ptr %23, align 8, !tbaa !9
  %1643 = load i64, ptr %18, align 8, !tbaa !9
  %1644 = icmp sle i64 %1642, %1643
  br i1 %1644, label %1645, label %1663

1645:                                             ; preds = %1641
  %1646 = load ptr, ptr %12, align 8, !tbaa !5
  %1647 = load i64, ptr %23, align 8, !tbaa !9
  %1648 = getelementptr inbounds float, ptr %1646, i64 %1647
  %1649 = load float, ptr %1648, align 4, !tbaa !11
  %1650 = load ptr, ptr %12, align 8, !tbaa !5
  %1651 = load i64, ptr %28, align 8, !tbaa !9
  %1652 = getelementptr inbounds float, ptr %1650, i64 %1651
  %1653 = load float, ptr %1652, align 4, !tbaa !11
  %1654 = fsub float %1649, %1653
  %1655 = load float, ptr %33, align 4, !tbaa !11
  %1656 = fsub float %1654, %1655
  %1657 = load ptr, ptr %14, align 8, !tbaa !5
  %1658 = load i64, ptr %23, align 8, !tbaa !9
  %1659 = getelementptr inbounds float, ptr %1657, i64 %1658
  store float %1656, ptr %1659, align 4, !tbaa !11
  br label %1660

1660:                                             ; preds = %1645
  %1661 = load i64, ptr %23, align 8, !tbaa !9
  %1662 = add nsw i64 %1661, 1
  store i64 %1662, ptr %23, align 8, !tbaa !9
  br label %1641, !llvm.loop !27

1663:                                             ; preds = %1641
  br label %1664

1664:                                             ; preds = %1663, %1637
  %1665 = load i64, ptr %49, align 8, !tbaa !9
  %1666 = icmp ne i64 %1665, 0
  br i1 %1666, label %1667, label %1670

1667:                                             ; preds = %1664
  %1668 = load ptr, ptr %11, align 8, !tbaa !5
  %1669 = load i64, ptr %1668, align 8, !tbaa !9
  store i64 %1669, ptr %25, align 8, !tbaa !9
  br label %1674

1670:                                             ; preds = %1664
  %1671 = load ptr, ptr %11, align 8, !tbaa !5
  %1672 = load i64, ptr %1671, align 8, !tbaa !9
  %1673 = add nsw i64 %1672, 1
  store i64 %1673, ptr %25, align 8, !tbaa !9
  br label %1674

1674:                                             ; preds = %1670, %1667
  %1675 = load i64, ptr %25, align 8, !tbaa !9
  %1676 = sub nsw i64 %1675, 1
  store i64 %1676, ptr %35, align 8, !tbaa !9
  %1677 = load i64, ptr %25, align 8, !tbaa !9
  %1678 = add nsw i64 %1677, 1
  store i64 %1678, ptr %36, align 8, !tbaa !9
  store float 0.000000e+00, ptr %38, align 4, !tbaa !11
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  store float 0.000000e+00, ptr %50, align 4, !tbaa !11
  %1679 = load i64, ptr %35, align 8, !tbaa !9
  store i64 %1679, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %1680

1680:                                             ; preds = %1708, %1674
  %1681 = load i64, ptr %23, align 8, !tbaa !9
  %1682 = load i64, ptr %18, align 8, !tbaa !9
  %1683 = icmp sle i64 %1681, %1682
  br i1 %1683, label %1684, label %1711

1684:                                             ; preds = %1680
  %1685 = load ptr, ptr %13, align 8, !tbaa !5
  %1686 = load i64, ptr %23, align 8, !tbaa !9
  %1687 = getelementptr inbounds float, ptr %1685, i64 %1686
  %1688 = load float, ptr %1687, align 4, !tbaa !11
  %1689 = load ptr, ptr %14, align 8, !tbaa !5
  %1690 = load i64, ptr %23, align 8, !tbaa !9
  %1691 = getelementptr inbounds float, ptr %1689, i64 %1690
  %1692 = load float, ptr %1691, align 4, !tbaa !11
  %1693 = fdiv float %1688, %1692
  store float %1693, ptr %40, align 4, !tbaa !11
  %1694 = load ptr, ptr %13, align 8, !tbaa !5
  %1695 = load i64, ptr %23, align 8, !tbaa !9
  %1696 = getelementptr inbounds float, ptr %1694, i64 %1695
  %1697 = load float, ptr %1696, align 4, !tbaa !11
  %1698 = load float, ptr %40, align 4, !tbaa !11
  %1699 = load float, ptr %34, align 4, !tbaa !11
  %1700 = call float @llvm.fmuladd.f32(float %1697, float %1698, float %1699)
  store float %1700, ptr %34, align 4, !tbaa !11
  %1701 = load float, ptr %40, align 4, !tbaa !11
  %1702 = load float, ptr %40, align 4, !tbaa !11
  %1703 = load float, ptr %38, align 4, !tbaa !11
  %1704 = call float @llvm.fmuladd.f32(float %1701, float %1702, float %1703)
  store float %1704, ptr %38, align 4, !tbaa !11
  %1705 = load float, ptr %34, align 4, !tbaa !11
  %1706 = load float, ptr %50, align 4, !tbaa !11
  %1707 = fadd float %1706, %1705
  store float %1707, ptr %50, align 4, !tbaa !11
  br label %1708

1708:                                             ; preds = %1684
  %1709 = load i64, ptr %23, align 8, !tbaa !9
  %1710 = add nsw i64 %1709, 1
  store i64 %1710, ptr %23, align 8, !tbaa !9
  br label %1680, !llvm.loop !28

1711:                                             ; preds = %1680
  %1712 = load float, ptr %50, align 4, !tbaa !11
  %1713 = fcmp oge float %1712, 0.000000e+00
  br i1 %1713, label %1714, label %1716

1714:                                             ; preds = %1711
  %1715 = load float, ptr %50, align 4, !tbaa !11
  br label %1719

1716:                                             ; preds = %1711
  %1717 = load float, ptr %50, align 4, !tbaa !11
  %1718 = fneg float %1717
  br label %1719

1719:                                             ; preds = %1716, %1714
  %1720 = phi float [ %1715, %1714 ], [ %1718, %1716 ]
  %1721 = fpext float %1720 to double
  %1722 = fptrunc double %1721 to float
  store float %1722, ptr %50, align 4, !tbaa !11
  store float 0.000000e+00, ptr %37, align 4, !tbaa !11
  store float 0.000000e+00, ptr %31, align 4, !tbaa !11
  %1723 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1723, ptr %18, align 8, !tbaa !9
  %1724 = load ptr, ptr %10, align 8, !tbaa !5
  %1725 = load i64, ptr %1724, align 8, !tbaa !9
  store i64 %1725, ptr %23, align 8, !tbaa !9
  br label %1726

1726:                                             ; preds = %1754, %1719
  %1727 = load i64, ptr %23, align 8, !tbaa !9
  %1728 = load i64, ptr %18, align 8, !tbaa !9
  %1729 = icmp sge i64 %1727, %1728
  br i1 %1729, label %1730, label %1757

1730:                                             ; preds = %1726
  %1731 = load ptr, ptr %13, align 8, !tbaa !5
  %1732 = load i64, ptr %23, align 8, !tbaa !9
  %1733 = getelementptr inbounds float, ptr %1731, i64 %1732
  %1734 = load float, ptr %1733, align 4, !tbaa !11
  %1735 = load ptr, ptr %14, align 8, !tbaa !5
  %1736 = load i64, ptr %23, align 8, !tbaa !9
  %1737 = getelementptr inbounds float, ptr %1735, i64 %1736
  %1738 = load float, ptr %1737, align 4, !tbaa !11
  %1739 = fdiv float %1734, %1738
  store float %1739, ptr %40, align 4, !tbaa !11
  %1740 = load ptr, ptr %13, align 8, !tbaa !5
  %1741 = load i64, ptr %23, align 8, !tbaa !9
  %1742 = getelementptr inbounds float, ptr %1740, i64 %1741
  %1743 = load float, ptr %1742, align 4, !tbaa !11
  %1744 = load float, ptr %40, align 4, !tbaa !11
  %1745 = load float, ptr %31, align 4, !tbaa !11
  %1746 = call float @llvm.fmuladd.f32(float %1743, float %1744, float %1745)
  store float %1746, ptr %31, align 4, !tbaa !11
  %1747 = load float, ptr %40, align 4, !tbaa !11
  %1748 = load float, ptr %40, align 4, !tbaa !11
  %1749 = load float, ptr %37, align 4, !tbaa !11
  %1750 = call float @llvm.fmuladd.f32(float %1747, float %1748, float %1749)
  store float %1750, ptr %37, align 4, !tbaa !11
  %1751 = load float, ptr %31, align 4, !tbaa !11
  %1752 = load float, ptr %50, align 4, !tbaa !11
  %1753 = fadd float %1752, %1751
  store float %1753, ptr %50, align 4, !tbaa !11
  br label %1754

1754:                                             ; preds = %1730
  %1755 = load i64, ptr %23, align 8, !tbaa !9
  %1756 = add nsw i64 %1755, -1
  store i64 %1756, ptr %23, align 8, !tbaa !9
  br label %1726, !llvm.loop !29

1757:                                             ; preds = %1726
  %1758 = load float, ptr %51, align 4, !tbaa !11
  %1759 = load float, ptr %31, align 4, !tbaa !11
  %1760 = fadd float %1758, %1759
  %1761 = load float, ptr %34, align 4, !tbaa !11
  %1762 = fadd float %1760, %1761
  store float %1762, ptr %24, align 4, !tbaa !11
  store i64 0, ptr %48, align 8, !tbaa !9
  %1763 = load i64, ptr %49, align 8, !tbaa !9
  %1764 = icmp ne i64 %1763, 0
  br i1 %1764, label %1765, label %1770

1765:                                             ; preds = %1757
  %1766 = load float, ptr %24, align 4, !tbaa !11
  %1767 = fcmp olt float %1766, 0.000000e+00
  br i1 %1767, label %1768, label %1769

1768:                                             ; preds = %1765
  store i64 1, ptr %48, align 8, !tbaa !9
  br label %1769

1769:                                             ; preds = %1768, %1765
  br label %1775

1770:                                             ; preds = %1757
  %1771 = load float, ptr %24, align 4, !tbaa !11
  %1772 = fcmp ogt float %1771, 0.000000e+00
  br i1 %1772, label %1773, label %1774

1773:                                             ; preds = %1770
  store i64 1, ptr %48, align 8, !tbaa !9
  br label %1774

1774:                                             ; preds = %1773, %1770
  br label %1775

1775:                                             ; preds = %1774, %1769
  %1776 = load i64, ptr %25, align 8, !tbaa !9
  %1777 = icmp eq i64 %1776, 1
  br i1 %1777, label %1783, label %1778

1778:                                             ; preds = %1775
  %1779 = load i64, ptr %25, align 8, !tbaa !9
  %1780 = load ptr, ptr %10, align 8, !tbaa !5
  %1781 = load i64, ptr %1780, align 8, !tbaa !9
  %1782 = icmp eq i64 %1779, %1781
  br i1 %1782, label %1783, label %1784

1783:                                             ; preds = %1778, %1775
  store i64 0, ptr %48, align 8, !tbaa !9
  br label %1784

1784:                                             ; preds = %1783, %1778
  %1785 = load ptr, ptr %13, align 8, !tbaa !5
  %1786 = load i64, ptr %25, align 8, !tbaa !9
  %1787 = getelementptr inbounds float, ptr %1785, i64 %1786
  %1788 = load float, ptr %1787, align 4, !tbaa !11
  %1789 = load ptr, ptr %14, align 8, !tbaa !5
  %1790 = load i64, ptr %25, align 8, !tbaa !9
  %1791 = getelementptr inbounds float, ptr %1789, i64 %1790
  %1792 = load float, ptr %1791, align 4, !tbaa !11
  %1793 = fdiv float %1788, %1792
  store float %1793, ptr %40, align 4, !tbaa !11
  %1794 = load float, ptr %38, align 4, !tbaa !11
  %1795 = load float, ptr %37, align 4, !tbaa !11
  %1796 = fadd float %1794, %1795
  %1797 = load float, ptr %40, align 4, !tbaa !11
  %1798 = load float, ptr %40, align 4, !tbaa !11
  %1799 = call float @llvm.fmuladd.f32(float %1797, float %1798, float %1796)
  store float %1799, ptr %26, align 4, !tbaa !11
  %1800 = load ptr, ptr %13, align 8, !tbaa !5
  %1801 = load i64, ptr %25, align 8, !tbaa !9
  %1802 = getelementptr inbounds float, ptr %1800, i64 %1801
  %1803 = load float, ptr %1802, align 4, !tbaa !11
  %1804 = load float, ptr %40, align 4, !tbaa !11
  %1805 = fmul float %1803, %1804
  store float %1805, ptr %40, align 4, !tbaa !11
  %1806 = load float, ptr %40, align 4, !tbaa !11
  %1807 = load float, ptr %24, align 4, !tbaa !11
  %1808 = fadd float %1807, %1806
  store float %1808, ptr %24, align 4, !tbaa !11
  %1809 = load float, ptr %31, align 4, !tbaa !11
  %1810 = load float, ptr %34, align 4, !tbaa !11
  %1811 = fsub float %1809, %1810
  %1812 = load float, ptr %50, align 4, !tbaa !11
  %1813 = call float @llvm.fmuladd.f32(float %1811, float 8.000000e+00, float %1812)
  %1814 = load float, ptr %51, align 4, !tbaa !11
  %1815 = call float @llvm.fmuladd.f32(float %1814, float 2.000000e+00, float %1813)
  %1816 = fpext float %1815 to double
  %1817 = load float, ptr %40, align 4, !tbaa !11
  %1818 = fcmp oge float %1817, 0.000000e+00
  br i1 %1818, label %1819, label %1821

1819:                                             ; preds = %1784
  %1820 = load float, ptr %40, align 4, !tbaa !11
  br label %1824

1821:                                             ; preds = %1784
  %1822 = load float, ptr %40, align 4, !tbaa !11
  %1823 = fneg float %1822
  br label %1824

1824:                                             ; preds = %1821, %1819
  %1825 = phi float [ %1820, %1819 ], [ %1823, %1821 ]
  %1826 = fpext float %1825 to double
  %1827 = call double @llvm.fmuladd.f64(double %1826, double 3.000000e+00, double %1816)
  %1828 = load float, ptr %33, align 4, !tbaa !11
  %1829 = fcmp oge float %1828, 0.000000e+00
  br i1 %1829, label %1830, label %1832

1830:                                             ; preds = %1824
  %1831 = load float, ptr %33, align 4, !tbaa !11
  br label %1835

1832:                                             ; preds = %1824
  %1833 = load float, ptr %33, align 4, !tbaa !11
  %1834 = fneg float %1833
  br label %1835

1835:                                             ; preds = %1832, %1830
  %1836 = phi float [ %1831, %1830 ], [ %1834, %1832 ]
  %1837 = fpext float %1836 to double
  %1838 = load float, ptr %26, align 4, !tbaa !11
  %1839 = fpext float %1838 to double
  %1840 = call double @llvm.fmuladd.f64(double %1837, double %1839, double %1827)
  %1841 = fptrunc double %1840 to float
  store float %1841, ptr %50, align 4, !tbaa !11
  %1842 = load float, ptr %24, align 4, !tbaa !11
  %1843 = fcmp oge float %1842, 0.000000e+00
  br i1 %1843, label %1844, label %1846

1844:                                             ; preds = %1835
  %1845 = load float, ptr %24, align 4, !tbaa !11
  br label %1849

1846:                                             ; preds = %1835
  %1847 = load float, ptr %24, align 4, !tbaa !11
  %1848 = fneg float %1847
  br label %1849

1849:                                             ; preds = %1846, %1844
  %1850 = phi float [ %1845, %1844 ], [ %1848, %1846 ]
  %1851 = fpext float %1850 to double
  %1852 = load float, ptr %32, align 4, !tbaa !11
  %1853 = load float, ptr %50, align 4, !tbaa !11
  %1854 = fmul float %1852, %1853
  %1855 = fpext float %1854 to double
  %1856 = fcmp ole double %1851, %1855
  br i1 %1856, label %1857, label %1878

1857:                                             ; preds = %1849
  %1858 = load i64, ptr %49, align 8, !tbaa !9
  %1859 = icmp ne i64 %1858, 0
  br i1 %1859, label %1860, label %1869

1860:                                             ; preds = %1857
  %1861 = load ptr, ptr %12, align 8, !tbaa !5
  %1862 = load ptr, ptr %11, align 8, !tbaa !5
  %1863 = load i64, ptr %1862, align 8, !tbaa !9
  %1864 = getelementptr inbounds float, ptr %1861, i64 %1863
  %1865 = load float, ptr %1864, align 4, !tbaa !11
  %1866 = load float, ptr %33, align 4, !tbaa !11
  %1867 = fadd float %1865, %1866
  %1868 = load ptr, ptr %16, align 8, !tbaa !5
  store float %1867, ptr %1868, align 4, !tbaa !11
  br label %1877

1869:                                             ; preds = %1857
  %1870 = load ptr, ptr %12, align 8, !tbaa !5
  %1871 = load i64, ptr %28, align 8, !tbaa !9
  %1872 = getelementptr inbounds float, ptr %1870, i64 %1871
  %1873 = load float, ptr %1872, align 4, !tbaa !11
  %1874 = load float, ptr %33, align 4, !tbaa !11
  %1875 = fadd float %1873, %1874
  %1876 = load ptr, ptr %16, align 8, !tbaa !5
  store float %1875, ptr %1876, align 4, !tbaa !11
  br label %1877

1877:                                             ; preds = %1869, %1860
  br label %3356

1878:                                             ; preds = %1849
  %1879 = load float, ptr %24, align 4, !tbaa !11
  %1880 = fcmp ole float %1879, 0.000000e+00
  br i1 %1880, label %1881, label %1893

1881:                                             ; preds = %1878
  %1882 = load float, ptr %43, align 4, !tbaa !11
  %1883 = load float, ptr %33, align 4, !tbaa !11
  %1884 = fcmp oge float %1882, %1883
  br i1 %1884, label %1885, label %1887

1885:                                             ; preds = %1881
  %1886 = load float, ptr %43, align 4, !tbaa !11
  br label %1889

1887:                                             ; preds = %1881
  %1888 = load float, ptr %33, align 4, !tbaa !11
  br label %1889

1889:                                             ; preds = %1887, %1885
  %1890 = phi float [ %1886, %1885 ], [ %1888, %1887 ]
  %1891 = fpext float %1890 to double
  %1892 = fptrunc double %1891 to float
  store float %1892, ptr %43, align 4, !tbaa !11
  br label %1905

1893:                                             ; preds = %1878
  %1894 = load float, ptr %44, align 4, !tbaa !11
  %1895 = load float, ptr %33, align 4, !tbaa !11
  %1896 = fcmp ole float %1894, %1895
  br i1 %1896, label %1897, label %1899

1897:                                             ; preds = %1893
  %1898 = load float, ptr %44, align 4, !tbaa !11
  br label %1901

1899:                                             ; preds = %1893
  %1900 = load float, ptr %33, align 4, !tbaa !11
  br label %1901

1901:                                             ; preds = %1899, %1897
  %1902 = phi float [ %1898, %1897 ], [ %1900, %1899 ]
  %1903 = fpext float %1902 to double
  %1904 = fptrunc double %1903 to float
  store float %1904, ptr %44, align 4, !tbaa !11
  br label %1905

1905:                                             ; preds = %1901, %1889
  %1906 = load i64, ptr %46, align 8, !tbaa !9
  %1907 = add nsw i64 %1906, 1
  store i64 %1907, ptr %46, align 8, !tbaa !9
  %1908 = load i64, ptr %48, align 8, !tbaa !9
  %1909 = icmp ne i64 %1908, 0
  br i1 %1909, label %2144, label %1910

1910:                                             ; preds = %1905
  %1911 = load i64, ptr %49, align 8, !tbaa !9
  %1912 = icmp ne i64 %1911, 0
  br i1 %1912, label %1913, label %1948

1913:                                             ; preds = %1910
  %1914 = load ptr, ptr %13, align 8, !tbaa !5
  %1915 = load ptr, ptr %11, align 8, !tbaa !5
  %1916 = load i64, ptr %1915, align 8, !tbaa !9
  %1917 = getelementptr inbounds float, ptr %1914, i64 %1916
  %1918 = load float, ptr %1917, align 4, !tbaa !11
  %1919 = load ptr, ptr %14, align 8, !tbaa !5
  %1920 = load ptr, ptr %11, align 8, !tbaa !5
  %1921 = load i64, ptr %1920, align 8, !tbaa !9
  %1922 = getelementptr inbounds float, ptr %1919, i64 %1921
  %1923 = load float, ptr %1922, align 4, !tbaa !11
  %1924 = fdiv float %1918, %1923
  store float %1924, ptr %19, align 4, !tbaa !11
  %1925 = load float, ptr %24, align 4, !tbaa !11
  %1926 = load ptr, ptr %14, align 8, !tbaa !5
  %1927 = load i64, ptr %28, align 8, !tbaa !9
  %1928 = getelementptr inbounds float, ptr %1926, i64 %1927
  %1929 = load float, ptr %1928, align 4, !tbaa !11
  %1930 = load float, ptr %26, align 4, !tbaa !11
  %1931 = fneg float %1929
  %1932 = call float @llvm.fmuladd.f32(float %1931, float %1930, float %1925)
  %1933 = load ptr, ptr %12, align 8, !tbaa !5
  %1934 = load ptr, ptr %11, align 8, !tbaa !5
  %1935 = load i64, ptr %1934, align 8, !tbaa !9
  %1936 = getelementptr inbounds float, ptr %1933, i64 %1935
  %1937 = load float, ptr %1936, align 4, !tbaa !11
  %1938 = load ptr, ptr %12, align 8, !tbaa !5
  %1939 = load i64, ptr %28, align 8, !tbaa !9
  %1940 = getelementptr inbounds float, ptr %1938, i64 %1939
  %1941 = load float, ptr %1940, align 4, !tbaa !11
  %1942 = fsub float %1937, %1941
  %1943 = load float, ptr %19, align 4, !tbaa !11
  %1944 = load float, ptr %19, align 4, !tbaa !11
  %1945 = fmul float %1943, %1944
  %1946 = fneg float %1942
  %1947 = call float @llvm.fmuladd.f32(float %1946, float %1945, float %1932)
  store float %1947, ptr %22, align 4, !tbaa !11
  br label %1982

1948:                                             ; preds = %1910
  %1949 = load ptr, ptr %13, align 8, !tbaa !5
  %1950 = load i64, ptr %28, align 8, !tbaa !9
  %1951 = getelementptr inbounds float, ptr %1949, i64 %1950
  %1952 = load float, ptr %1951, align 4, !tbaa !11
  %1953 = load ptr, ptr %14, align 8, !tbaa !5
  %1954 = load i64, ptr %28, align 8, !tbaa !9
  %1955 = getelementptr inbounds float, ptr %1953, i64 %1954
  %1956 = load float, ptr %1955, align 4, !tbaa !11
  %1957 = fdiv float %1952, %1956
  store float %1957, ptr %19, align 4, !tbaa !11
  %1958 = load float, ptr %24, align 4, !tbaa !11
  %1959 = load ptr, ptr %14, align 8, !tbaa !5
  %1960 = load ptr, ptr %11, align 8, !tbaa !5
  %1961 = load i64, ptr %1960, align 8, !tbaa !9
  %1962 = getelementptr inbounds float, ptr %1959, i64 %1961
  %1963 = load float, ptr %1962, align 4, !tbaa !11
  %1964 = load float, ptr %26, align 4, !tbaa !11
  %1965 = fneg float %1963
  %1966 = call float @llvm.fmuladd.f32(float %1965, float %1964, float %1958)
  %1967 = load ptr, ptr %12, align 8, !tbaa !5
  %1968 = load i64, ptr %28, align 8, !tbaa !9
  %1969 = getelementptr inbounds float, ptr %1967, i64 %1968
  %1970 = load float, ptr %1969, align 4, !tbaa !11
  %1971 = load ptr, ptr %12, align 8, !tbaa !5
  %1972 = load ptr, ptr %11, align 8, !tbaa !5
  %1973 = load i64, ptr %1972, align 8, !tbaa !9
  %1974 = getelementptr inbounds float, ptr %1971, i64 %1973
  %1975 = load float, ptr %1974, align 4, !tbaa !11
  %1976 = fsub float %1970, %1975
  %1977 = load float, ptr %19, align 4, !tbaa !11
  %1978 = load float, ptr %19, align 4, !tbaa !11
  %1979 = fmul float %1977, %1978
  %1980 = fneg float %1976
  %1981 = call float @llvm.fmuladd.f32(float %1980, float %1979, float %1966)
  store float %1981, ptr %22, align 4, !tbaa !11
  br label %1982

1982:                                             ; preds = %1948, %1913
  %1983 = load ptr, ptr %14, align 8, !tbaa !5
  %1984 = load ptr, ptr %11, align 8, !tbaa !5
  %1985 = load i64, ptr %1984, align 8, !tbaa !9
  %1986 = getelementptr inbounds float, ptr %1983, i64 %1985
  %1987 = load float, ptr %1986, align 4, !tbaa !11
  %1988 = load ptr, ptr %14, align 8, !tbaa !5
  %1989 = load i64, ptr %28, align 8, !tbaa !9
  %1990 = getelementptr inbounds float, ptr %1988, i64 %1989
  %1991 = load float, ptr %1990, align 4, !tbaa !11
  %1992 = fadd float %1987, %1991
  %1993 = load float, ptr %24, align 4, !tbaa !11
  %1994 = load ptr, ptr %14, align 8, !tbaa !5
  %1995 = load ptr, ptr %11, align 8, !tbaa !5
  %1996 = load i64, ptr %1995, align 8, !tbaa !9
  %1997 = getelementptr inbounds float, ptr %1994, i64 %1996
  %1998 = load float, ptr %1997, align 4, !tbaa !11
  %1999 = load ptr, ptr %14, align 8, !tbaa !5
  %2000 = load i64, ptr %28, align 8, !tbaa !9
  %2001 = getelementptr inbounds float, ptr %1999, i64 %2000
  %2002 = load float, ptr %2001, align 4, !tbaa !11
  %2003 = fmul float %1998, %2002
  %2004 = load float, ptr %26, align 4, !tbaa !11
  %2005 = fmul float %2003, %2004
  %2006 = fneg float %2005
  %2007 = call float @llvm.fmuladd.f32(float %1992, float %1993, float %2006)
  store float %2007, ptr %20, align 4, !tbaa !11
  %2008 = load ptr, ptr %14, align 8, !tbaa !5
  %2009 = load ptr, ptr %11, align 8, !tbaa !5
  %2010 = load i64, ptr %2009, align 8, !tbaa !9
  %2011 = getelementptr inbounds float, ptr %2008, i64 %2010
  %2012 = load float, ptr %2011, align 4, !tbaa !11
  %2013 = load ptr, ptr %14, align 8, !tbaa !5
  %2014 = load i64, ptr %28, align 8, !tbaa !9
  %2015 = getelementptr inbounds float, ptr %2013, i64 %2014
  %2016 = load float, ptr %2015, align 4, !tbaa !11
  %2017 = fmul float %2012, %2016
  %2018 = load float, ptr %24, align 4, !tbaa !11
  %2019 = fmul float %2017, %2018
  store float %2019, ptr %21, align 4, !tbaa !11
  %2020 = load float, ptr %22, align 4, !tbaa !11
  %2021 = fcmp oeq float %2020, 0.000000e+00
  br i1 %2021, label %2022, label %2083

2022:                                             ; preds = %1982
  %2023 = load float, ptr %20, align 4, !tbaa !11
  %2024 = fcmp oeq float %2023, 0.000000e+00
  br i1 %2024, label %2025, label %2079

2025:                                             ; preds = %2022
  %2026 = load i64, ptr %49, align 8, !tbaa !9
  %2027 = icmp ne i64 %2026, 0
  br i1 %2027, label %2028, label %2053

2028:                                             ; preds = %2025
  %2029 = load ptr, ptr %13, align 8, !tbaa !5
  %2030 = load ptr, ptr %11, align 8, !tbaa !5
  %2031 = load i64, ptr %2030, align 8, !tbaa !9
  %2032 = getelementptr inbounds float, ptr %2029, i64 %2031
  %2033 = load float, ptr %2032, align 4, !tbaa !11
  %2034 = load ptr, ptr %13, align 8, !tbaa !5
  %2035 = load ptr, ptr %11, align 8, !tbaa !5
  %2036 = load i64, ptr %2035, align 8, !tbaa !9
  %2037 = getelementptr inbounds float, ptr %2034, i64 %2036
  %2038 = load float, ptr %2037, align 4, !tbaa !11
  %2039 = load ptr, ptr %14, align 8, !tbaa !5
  %2040 = load i64, ptr %28, align 8, !tbaa !9
  %2041 = getelementptr inbounds float, ptr %2039, i64 %2040
  %2042 = load float, ptr %2041, align 4, !tbaa !11
  %2043 = load ptr, ptr %14, align 8, !tbaa !5
  %2044 = load i64, ptr %28, align 8, !tbaa !9
  %2045 = getelementptr inbounds float, ptr %2043, i64 %2044
  %2046 = load float, ptr %2045, align 4, !tbaa !11
  %2047 = fmul float %2042, %2046
  %2048 = load float, ptr %38, align 4, !tbaa !11
  %2049 = load float, ptr %37, align 4, !tbaa !11
  %2050 = fadd float %2048, %2049
  %2051 = fmul float %2047, %2050
  %2052 = call float @llvm.fmuladd.f32(float %2033, float %2038, float %2051)
  store float %2052, ptr %20, align 4, !tbaa !11
  br label %2078

2053:                                             ; preds = %2025
  %2054 = load ptr, ptr %13, align 8, !tbaa !5
  %2055 = load i64, ptr %28, align 8, !tbaa !9
  %2056 = getelementptr inbounds float, ptr %2054, i64 %2055
  %2057 = load float, ptr %2056, align 4, !tbaa !11
  %2058 = load ptr, ptr %13, align 8, !tbaa !5
  %2059 = load i64, ptr %28, align 8, !tbaa !9
  %2060 = getelementptr inbounds float, ptr %2058, i64 %2059
  %2061 = load float, ptr %2060, align 4, !tbaa !11
  %2062 = load ptr, ptr %14, align 8, !tbaa !5
  %2063 = load ptr, ptr %11, align 8, !tbaa !5
  %2064 = load i64, ptr %2063, align 8, !tbaa !9
  %2065 = getelementptr inbounds float, ptr %2062, i64 %2064
  %2066 = load float, ptr %2065, align 4, !tbaa !11
  %2067 = load ptr, ptr %14, align 8, !tbaa !5
  %2068 = load ptr, ptr %11, align 8, !tbaa !5
  %2069 = load i64, ptr %2068, align 8, !tbaa !9
  %2070 = getelementptr inbounds float, ptr %2067, i64 %2069
  %2071 = load float, ptr %2070, align 4, !tbaa !11
  %2072 = fmul float %2066, %2071
  %2073 = load float, ptr %38, align 4, !tbaa !11
  %2074 = load float, ptr %37, align 4, !tbaa !11
  %2075 = fadd float %2073, %2074
  %2076 = fmul float %2072, %2075
  %2077 = call float @llvm.fmuladd.f32(float %2057, float %2061, float %2076)
  store float %2077, ptr %20, align 4, !tbaa !11
  br label %2078

2078:                                             ; preds = %2053, %2028
  br label %2079

2079:                                             ; preds = %2078, %2022
  %2080 = load float, ptr %21, align 4, !tbaa !11
  %2081 = load float, ptr %20, align 4, !tbaa !11
  %2082 = fdiv float %2080, %2081
  store float %2082, ptr %30, align 4, !tbaa !11
  br label %2143

2083:                                             ; preds = %1982
  %2084 = load float, ptr %20, align 4, !tbaa !11
  %2085 = fcmp ole float %2084, 0.000000e+00
  br i1 %2085, label %2086, label %2114

2086:                                             ; preds = %2083
  %2087 = load float, ptr %20, align 4, !tbaa !11
  %2088 = fpext float %2087 to double
  %2089 = load float, ptr %20, align 4, !tbaa !11
  %2090 = load float, ptr %20, align 4, !tbaa !11
  %2091 = load float, ptr %21, align 4, !tbaa !11
  %2092 = fmul float %2091, 4.000000e+00
  %2093 = load float, ptr %22, align 4, !tbaa !11
  %2094 = fmul float %2092, %2093
  %2095 = fneg float %2094
  %2096 = call float @llvm.fmuladd.f32(float %2089, float %2090, float %2095)
  store float %2096, ptr %19, align 4, !tbaa !11
  %2097 = load float, ptr %19, align 4, !tbaa !11
  %2098 = fcmp oge float %2097, 0.000000e+00
  br i1 %2098, label %2099, label %2101

2099:                                             ; preds = %2086
  %2100 = load float, ptr %19, align 4, !tbaa !11
  br label %2104

2101:                                             ; preds = %2086
  %2102 = load float, ptr %19, align 4, !tbaa !11
  %2103 = fneg float %2102
  br label %2104

2104:                                             ; preds = %2101, %2099
  %2105 = phi float [ %2100, %2099 ], [ %2103, %2101 ]
  %2106 = fpext float %2105 to double
  %2107 = call double @sqrt(double noundef %2106) #5
  %2108 = fsub double %2088, %2107
  %2109 = load float, ptr %22, align 4, !tbaa !11
  %2110 = fmul float %2109, 2.000000e+00
  %2111 = fpext float %2110 to double
  %2112 = fdiv double %2108, %2111
  %2113 = fptrunc double %2112 to float
  store float %2113, ptr %30, align 4, !tbaa !11
  br label %2142

2114:                                             ; preds = %2083
  %2115 = load float, ptr %21, align 4, !tbaa !11
  %2116 = fmul float %2115, 2.000000e+00
  %2117 = fpext float %2116 to double
  %2118 = load float, ptr %20, align 4, !tbaa !11
  %2119 = fpext float %2118 to double
  %2120 = load float, ptr %20, align 4, !tbaa !11
  %2121 = load float, ptr %20, align 4, !tbaa !11
  %2122 = load float, ptr %21, align 4, !tbaa !11
  %2123 = fmul float %2122, 4.000000e+00
  %2124 = load float, ptr %22, align 4, !tbaa !11
  %2125 = fmul float %2123, %2124
  %2126 = fneg float %2125
  %2127 = call float @llvm.fmuladd.f32(float %2120, float %2121, float %2126)
  store float %2127, ptr %19, align 4, !tbaa !11
  %2128 = load float, ptr %19, align 4, !tbaa !11
  %2129 = fcmp oge float %2128, 0.000000e+00
  br i1 %2129, label %2130, label %2132

2130:                                             ; preds = %2114
  %2131 = load float, ptr %19, align 4, !tbaa !11
  br label %2135

2132:                                             ; preds = %2114
  %2133 = load float, ptr %19, align 4, !tbaa !11
  %2134 = fneg float %2133
  br label %2135

2135:                                             ; preds = %2132, %2130
  %2136 = phi float [ %2131, %2130 ], [ %2134, %2132 ]
  %2137 = fpext float %2136 to double
  %2138 = call double @sqrt(double noundef %2137) #5
  %2139 = fadd double %2119, %2138
  %2140 = fdiv double %2117, %2139
  %2141 = fptrunc double %2140 to float
  store float %2141, ptr %30, align 4, !tbaa !11
  br label %2142

2142:                                             ; preds = %2135, %2104
  br label %2143

2143:                                             ; preds = %2142, %2079
  br label %2296

2144:                                             ; preds = %1905
  %2145 = load float, ptr %51, align 4, !tbaa !11
  %2146 = load float, ptr %34, align 4, !tbaa !11
  %2147 = fadd float %2145, %2146
  %2148 = load float, ptr %31, align 4, !tbaa !11
  %2149 = fadd float %2147, %2148
  store float %2149, ptr %40, align 4, !tbaa !11
  %2150 = load i64, ptr %49, align 8, !tbaa !9
  %2151 = icmp ne i64 %2150, 0
  br i1 %2151, label %2152, label %2213

2152:                                             ; preds = %2144
  %2153 = load ptr, ptr %13, align 8, !tbaa !5
  %2154 = load i64, ptr %35, align 8, !tbaa !9
  %2155 = getelementptr inbounds float, ptr %2153, i64 %2154
  %2156 = load float, ptr %2155, align 4, !tbaa !11
  %2157 = load ptr, ptr %14, align 8, !tbaa !5
  %2158 = load i64, ptr %35, align 8, !tbaa !9
  %2159 = getelementptr inbounds float, ptr %2157, i64 %2158
  %2160 = load float, ptr %2159, align 4, !tbaa !11
  %2161 = fdiv float %2156, %2160
  store float %2161, ptr %42, align 4, !tbaa !11
  %2162 = load float, ptr %42, align 4, !tbaa !11
  %2163 = load float, ptr %42, align 4, !tbaa !11
  %2164 = fmul float %2163, %2162
  store float %2164, ptr %42, align 4, !tbaa !11
  %2165 = load float, ptr %40, align 4, !tbaa !11
  %2166 = load ptr, ptr %14, align 8, !tbaa !5
  %2167 = load i64, ptr %36, align 8, !tbaa !9
  %2168 = getelementptr inbounds float, ptr %2166, i64 %2167
  %2169 = load float, ptr %2168, align 4, !tbaa !11
  %2170 = load float, ptr %38, align 4, !tbaa !11
  %2171 = load float, ptr %37, align 4, !tbaa !11
  %2172 = fadd float %2170, %2171
  %2173 = fneg float %2169
  %2174 = call float @llvm.fmuladd.f32(float %2173, float %2172, float %2165)
  %2175 = load ptr, ptr %12, align 8, !tbaa !5
  %2176 = load i64, ptr %35, align 8, !tbaa !9
  %2177 = getelementptr inbounds float, ptr %2175, i64 %2176
  %2178 = load float, ptr %2177, align 4, !tbaa !11
  %2179 = load ptr, ptr %12, align 8, !tbaa !5
  %2180 = load i64, ptr %36, align 8, !tbaa !9
  %2181 = getelementptr inbounds float, ptr %2179, i64 %2180
  %2182 = load float, ptr %2181, align 4, !tbaa !11
  %2183 = fsub float %2178, %2182
  %2184 = load float, ptr %42, align 4, !tbaa !11
  %2185 = fneg float %2183
  %2186 = call float @llvm.fmuladd.f32(float %2185, float %2184, float %2174)
  store float %2186, ptr %22, align 4, !tbaa !11
  %2187 = load ptr, ptr %13, align 8, !tbaa !5
  %2188 = load i64, ptr %35, align 8, !tbaa !9
  %2189 = getelementptr inbounds float, ptr %2187, i64 %2188
  %2190 = load float, ptr %2189, align 4, !tbaa !11
  %2191 = load ptr, ptr %13, align 8, !tbaa !5
  %2192 = load i64, ptr %35, align 8, !tbaa !9
  %2193 = getelementptr inbounds float, ptr %2191, i64 %2192
  %2194 = load float, ptr %2193, align 4, !tbaa !11
  %2195 = fmul float %2190, %2194
  %2196 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 0
  store float %2195, ptr %2196, align 4, !tbaa !11
  %2197 = load ptr, ptr %14, align 8, !tbaa !5
  %2198 = load i64, ptr %36, align 8, !tbaa !9
  %2199 = getelementptr inbounds float, ptr %2197, i64 %2198
  %2200 = load float, ptr %2199, align 4, !tbaa !11
  %2201 = load ptr, ptr %14, align 8, !tbaa !5
  %2202 = load i64, ptr %36, align 8, !tbaa !9
  %2203 = getelementptr inbounds float, ptr %2201, i64 %2202
  %2204 = load float, ptr %2203, align 4, !tbaa !11
  %2205 = fmul float %2200, %2204
  %2206 = load float, ptr %38, align 4, !tbaa !11
  %2207 = load float, ptr %42, align 4, !tbaa !11
  %2208 = fsub float %2206, %2207
  %2209 = load float, ptr %37, align 4, !tbaa !11
  %2210 = fadd float %2208, %2209
  %2211 = fmul float %2205, %2210
  %2212 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 2
  store float %2211, ptr %2212, align 4, !tbaa !11
  br label %2274

2213:                                             ; preds = %2144
  %2214 = load ptr, ptr %13, align 8, !tbaa !5
  %2215 = load i64, ptr %36, align 8, !tbaa !9
  %2216 = getelementptr inbounds float, ptr %2214, i64 %2215
  %2217 = load float, ptr %2216, align 4, !tbaa !11
  %2218 = load ptr, ptr %14, align 8, !tbaa !5
  %2219 = load i64, ptr %36, align 8, !tbaa !9
  %2220 = getelementptr inbounds float, ptr %2218, i64 %2219
  %2221 = load float, ptr %2220, align 4, !tbaa !11
  %2222 = fdiv float %2217, %2221
  store float %2222, ptr %42, align 4, !tbaa !11
  %2223 = load float, ptr %42, align 4, !tbaa !11
  %2224 = load float, ptr %42, align 4, !tbaa !11
  %2225 = fmul float %2224, %2223
  store float %2225, ptr %42, align 4, !tbaa !11
  %2226 = load float, ptr %40, align 4, !tbaa !11
  %2227 = load ptr, ptr %14, align 8, !tbaa !5
  %2228 = load i64, ptr %35, align 8, !tbaa !9
  %2229 = getelementptr inbounds float, ptr %2227, i64 %2228
  %2230 = load float, ptr %2229, align 4, !tbaa !11
  %2231 = load float, ptr %38, align 4, !tbaa !11
  %2232 = load float, ptr %37, align 4, !tbaa !11
  %2233 = fadd float %2231, %2232
  %2234 = fneg float %2230
  %2235 = call float @llvm.fmuladd.f32(float %2234, float %2233, float %2226)
  %2236 = load ptr, ptr %12, align 8, !tbaa !5
  %2237 = load i64, ptr %36, align 8, !tbaa !9
  %2238 = getelementptr inbounds float, ptr %2236, i64 %2237
  %2239 = load float, ptr %2238, align 4, !tbaa !11
  %2240 = load ptr, ptr %12, align 8, !tbaa !5
  %2241 = load i64, ptr %35, align 8, !tbaa !9
  %2242 = getelementptr inbounds float, ptr %2240, i64 %2241
  %2243 = load float, ptr %2242, align 4, !tbaa !11
  %2244 = fsub float %2239, %2243
  %2245 = load float, ptr %42, align 4, !tbaa !11
  %2246 = fneg float %2244
  %2247 = call float @llvm.fmuladd.f32(float %2246, float %2245, float %2235)
  store float %2247, ptr %22, align 4, !tbaa !11
  %2248 = load ptr, ptr %14, align 8, !tbaa !5
  %2249 = load i64, ptr %35, align 8, !tbaa !9
  %2250 = getelementptr inbounds float, ptr %2248, i64 %2249
  %2251 = load float, ptr %2250, align 4, !tbaa !11
  %2252 = load ptr, ptr %14, align 8, !tbaa !5
  %2253 = load i64, ptr %35, align 8, !tbaa !9
  %2254 = getelementptr inbounds float, ptr %2252, i64 %2253
  %2255 = load float, ptr %2254, align 4, !tbaa !11
  %2256 = fmul float %2251, %2255
  %2257 = load float, ptr %38, align 4, !tbaa !11
  %2258 = load float, ptr %37, align 4, !tbaa !11
  %2259 = load float, ptr %42, align 4, !tbaa !11
  %2260 = fsub float %2258, %2259
  %2261 = fadd float %2257, %2260
  %2262 = fmul float %2256, %2261
  %2263 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 0
  store float %2262, ptr %2263, align 4, !tbaa !11
  %2264 = load ptr, ptr %13, align 8, !tbaa !5
  %2265 = load i64, ptr %36, align 8, !tbaa !9
  %2266 = getelementptr inbounds float, ptr %2264, i64 %2265
  %2267 = load float, ptr %2266, align 4, !tbaa !11
  %2268 = load ptr, ptr %13, align 8, !tbaa !5
  %2269 = load i64, ptr %36, align 8, !tbaa !9
  %2270 = getelementptr inbounds float, ptr %2268, i64 %2269
  %2271 = load float, ptr %2270, align 4, !tbaa !11
  %2272 = fmul float %2267, %2271
  %2273 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 2
  store float %2272, ptr %2273, align 4, !tbaa !11
  br label %2274

2274:                                             ; preds = %2213, %2152
  %2275 = load ptr, ptr %13, align 8, !tbaa !5
  %2276 = load i64, ptr %25, align 8, !tbaa !9
  %2277 = getelementptr inbounds float, ptr %2275, i64 %2276
  %2278 = load float, ptr %2277, align 4, !tbaa !11
  %2279 = load ptr, ptr %13, align 8, !tbaa !5
  %2280 = load i64, ptr %25, align 8, !tbaa !9
  %2281 = getelementptr inbounds float, ptr %2279, i64 %2280
  %2282 = load float, ptr %2281, align 4, !tbaa !11
  %2283 = fmul float %2278, %2282
  %2284 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 1
  store float %2283, ptr %2284, align 4, !tbaa !11
  %2285 = load ptr, ptr %14, align 8, !tbaa !5
  %2286 = load i64, ptr %35, align 8, !tbaa !9
  %2287 = getelementptr inbounds float, ptr %2285, i64 %2286
  %2288 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 0
  %2289 = load ptr, ptr %17, align 8, !tbaa !5
  %2290 = call i32 @slaed6_(ptr noundef %46, ptr noundef %49, ptr noundef %22, ptr noundef %2287, ptr noundef %2288, ptr noundef %24, ptr noundef %30, ptr noundef %2289)
  %2291 = load ptr, ptr %17, align 8, !tbaa !5
  %2292 = load i64, ptr %2291, align 8, !tbaa !9
  %2293 = icmp ne i64 %2292, 0
  br i1 %2293, label %2294, label %2295

2294:                                             ; preds = %2274
  br label %3356

2295:                                             ; preds = %2274
  br label %2296

2296:                                             ; preds = %2295, %2143
  %2297 = load float, ptr %24, align 4, !tbaa !11
  %2298 = load float, ptr %30, align 4, !tbaa !11
  %2299 = fmul float %2297, %2298
  %2300 = fcmp oge float %2299, 0.000000e+00
  br i1 %2300, label %2301, label %2306

2301:                                             ; preds = %2296
  %2302 = load float, ptr %24, align 4, !tbaa !11
  %2303 = fneg float %2302
  %2304 = load float, ptr %26, align 4, !tbaa !11
  %2305 = fdiv float %2303, %2304
  store float %2305, ptr %30, align 4, !tbaa !11
  br label %2306

2306:                                             ; preds = %2301, %2296
  %2307 = load float, ptr %33, align 4, !tbaa !11
  %2308 = load float, ptr %30, align 4, !tbaa !11
  %2309 = fadd float %2307, %2308
  store float %2309, ptr %40, align 4, !tbaa !11
  %2310 = load float, ptr %40, align 4, !tbaa !11
  %2311 = load float, ptr %44, align 4, !tbaa !11
  %2312 = fcmp ogt float %2310, %2311
  br i1 %2312, label %2317, label %2313

2313:                                             ; preds = %2306
  %2314 = load float, ptr %40, align 4, !tbaa !11
  %2315 = load float, ptr %43, align 4, !tbaa !11
  %2316 = fcmp olt float %2314, %2315
  br i1 %2316, label %2317, label %2331

2317:                                             ; preds = %2313, %2306
  %2318 = load float, ptr %24, align 4, !tbaa !11
  %2319 = fcmp olt float %2318, 0.000000e+00
  br i1 %2319, label %2320, label %2325

2320:                                             ; preds = %2317
  %2321 = load float, ptr %44, align 4, !tbaa !11
  %2322 = load float, ptr %33, align 4, !tbaa !11
  %2323 = fsub float %2321, %2322
  %2324 = fdiv float %2323, 2.000000e+00
  store float %2324, ptr %30, align 4, !tbaa !11
  br label %2330

2325:                                             ; preds = %2317
  %2326 = load float, ptr %43, align 4, !tbaa !11
  %2327 = load float, ptr %33, align 4, !tbaa !11
  %2328 = fsub float %2326, %2327
  %2329 = fdiv float %2328, 2.000000e+00
  store float %2329, ptr %30, align 4, !tbaa !11
  br label %2330

2330:                                             ; preds = %2325, %2320
  br label %2331

2331:                                             ; preds = %2330, %2313
  %2332 = load float, ptr %24, align 4, !tbaa !11
  store float %2332, ptr %41, align 4, !tbaa !11
  %2333 = load ptr, ptr %10, align 8, !tbaa !5
  %2334 = load i64, ptr %2333, align 8, !tbaa !9
  store i64 %2334, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %2335

2335:                                             ; preds = %2346, %2331
  %2336 = load i64, ptr %23, align 8, !tbaa !9
  %2337 = load i64, ptr %18, align 8, !tbaa !9
  %2338 = icmp sle i64 %2336, %2337
  br i1 %2338, label %2339, label %2349

2339:                                             ; preds = %2335
  %2340 = load float, ptr %30, align 4, !tbaa !11
  %2341 = load ptr, ptr %14, align 8, !tbaa !5
  %2342 = load i64, ptr %23, align 8, !tbaa !9
  %2343 = getelementptr inbounds float, ptr %2341, i64 %2342
  %2344 = load float, ptr %2343, align 4, !tbaa !11
  %2345 = fsub float %2344, %2340
  store float %2345, ptr %2343, align 4, !tbaa !11
  br label %2346

2346:                                             ; preds = %2339
  %2347 = load i64, ptr %23, align 8, !tbaa !9
  %2348 = add nsw i64 %2347, 1
  store i64 %2348, ptr %23, align 8, !tbaa !9
  br label %2335, !llvm.loop !30

2349:                                             ; preds = %2335
  store float 0.000000e+00, ptr %38, align 4, !tbaa !11
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  store float 0.000000e+00, ptr %50, align 4, !tbaa !11
  %2350 = load i64, ptr %35, align 8, !tbaa !9
  store i64 %2350, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %2351

2351:                                             ; preds = %2379, %2349
  %2352 = load i64, ptr %23, align 8, !tbaa !9
  %2353 = load i64, ptr %18, align 8, !tbaa !9
  %2354 = icmp sle i64 %2352, %2353
  br i1 %2354, label %2355, label %2382

2355:                                             ; preds = %2351
  %2356 = load ptr, ptr %13, align 8, !tbaa !5
  %2357 = load i64, ptr %23, align 8, !tbaa !9
  %2358 = getelementptr inbounds float, ptr %2356, i64 %2357
  %2359 = load float, ptr %2358, align 4, !tbaa !11
  %2360 = load ptr, ptr %14, align 8, !tbaa !5
  %2361 = load i64, ptr %23, align 8, !tbaa !9
  %2362 = getelementptr inbounds float, ptr %2360, i64 %2361
  %2363 = load float, ptr %2362, align 4, !tbaa !11
  %2364 = fdiv float %2359, %2363
  store float %2364, ptr %40, align 4, !tbaa !11
  %2365 = load ptr, ptr %13, align 8, !tbaa !5
  %2366 = load i64, ptr %23, align 8, !tbaa !9
  %2367 = getelementptr inbounds float, ptr %2365, i64 %2366
  %2368 = load float, ptr %2367, align 4, !tbaa !11
  %2369 = load float, ptr %40, align 4, !tbaa !11
  %2370 = load float, ptr %34, align 4, !tbaa !11
  %2371 = call float @llvm.fmuladd.f32(float %2368, float %2369, float %2370)
  store float %2371, ptr %34, align 4, !tbaa !11
  %2372 = load float, ptr %40, align 4, !tbaa !11
  %2373 = load float, ptr %40, align 4, !tbaa !11
  %2374 = load float, ptr %38, align 4, !tbaa !11
  %2375 = call float @llvm.fmuladd.f32(float %2372, float %2373, float %2374)
  store float %2375, ptr %38, align 4, !tbaa !11
  %2376 = load float, ptr %34, align 4, !tbaa !11
  %2377 = load float, ptr %50, align 4, !tbaa !11
  %2378 = fadd float %2377, %2376
  store float %2378, ptr %50, align 4, !tbaa !11
  br label %2379

2379:                                             ; preds = %2355
  %2380 = load i64, ptr %23, align 8, !tbaa !9
  %2381 = add nsw i64 %2380, 1
  store i64 %2381, ptr %23, align 8, !tbaa !9
  br label %2351, !llvm.loop !31

2382:                                             ; preds = %2351
  %2383 = load float, ptr %50, align 4, !tbaa !11
  %2384 = fcmp oge float %2383, 0.000000e+00
  br i1 %2384, label %2385, label %2387

2385:                                             ; preds = %2382
  %2386 = load float, ptr %50, align 4, !tbaa !11
  br label %2390

2387:                                             ; preds = %2382
  %2388 = load float, ptr %50, align 4, !tbaa !11
  %2389 = fneg float %2388
  br label %2390

2390:                                             ; preds = %2387, %2385
  %2391 = phi float [ %2386, %2385 ], [ %2389, %2387 ]
  %2392 = fpext float %2391 to double
  %2393 = fptrunc double %2392 to float
  store float %2393, ptr %50, align 4, !tbaa !11
  store float 0.000000e+00, ptr %37, align 4, !tbaa !11
  store float 0.000000e+00, ptr %31, align 4, !tbaa !11
  %2394 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %2394, ptr %18, align 8, !tbaa !9
  %2395 = load ptr, ptr %10, align 8, !tbaa !5
  %2396 = load i64, ptr %2395, align 8, !tbaa !9
  store i64 %2396, ptr %23, align 8, !tbaa !9
  br label %2397

2397:                                             ; preds = %2425, %2390
  %2398 = load i64, ptr %23, align 8, !tbaa !9
  %2399 = load i64, ptr %18, align 8, !tbaa !9
  %2400 = icmp sge i64 %2398, %2399
  br i1 %2400, label %2401, label %2428

2401:                                             ; preds = %2397
  %2402 = load ptr, ptr %13, align 8, !tbaa !5
  %2403 = load i64, ptr %23, align 8, !tbaa !9
  %2404 = getelementptr inbounds float, ptr %2402, i64 %2403
  %2405 = load float, ptr %2404, align 4, !tbaa !11
  %2406 = load ptr, ptr %14, align 8, !tbaa !5
  %2407 = load i64, ptr %23, align 8, !tbaa !9
  %2408 = getelementptr inbounds float, ptr %2406, i64 %2407
  %2409 = load float, ptr %2408, align 4, !tbaa !11
  %2410 = fdiv float %2405, %2409
  store float %2410, ptr %40, align 4, !tbaa !11
  %2411 = load ptr, ptr %13, align 8, !tbaa !5
  %2412 = load i64, ptr %23, align 8, !tbaa !9
  %2413 = getelementptr inbounds float, ptr %2411, i64 %2412
  %2414 = load float, ptr %2413, align 4, !tbaa !11
  %2415 = load float, ptr %40, align 4, !tbaa !11
  %2416 = load float, ptr %31, align 4, !tbaa !11
  %2417 = call float @llvm.fmuladd.f32(float %2414, float %2415, float %2416)
  store float %2417, ptr %31, align 4, !tbaa !11
  %2418 = load float, ptr %40, align 4, !tbaa !11
  %2419 = load float, ptr %40, align 4, !tbaa !11
  %2420 = load float, ptr %37, align 4, !tbaa !11
  %2421 = call float @llvm.fmuladd.f32(float %2418, float %2419, float %2420)
  store float %2421, ptr %37, align 4, !tbaa !11
  %2422 = load float, ptr %31, align 4, !tbaa !11
  %2423 = load float, ptr %50, align 4, !tbaa !11
  %2424 = fadd float %2423, %2422
  store float %2424, ptr %50, align 4, !tbaa !11
  br label %2425

2425:                                             ; preds = %2401
  %2426 = load i64, ptr %23, align 8, !tbaa !9
  %2427 = add nsw i64 %2426, -1
  store i64 %2427, ptr %23, align 8, !tbaa !9
  br label %2397, !llvm.loop !32

2428:                                             ; preds = %2397
  %2429 = load ptr, ptr %13, align 8, !tbaa !5
  %2430 = load i64, ptr %25, align 8, !tbaa !9
  %2431 = getelementptr inbounds float, ptr %2429, i64 %2430
  %2432 = load float, ptr %2431, align 4, !tbaa !11
  %2433 = load ptr, ptr %14, align 8, !tbaa !5
  %2434 = load i64, ptr %25, align 8, !tbaa !9
  %2435 = getelementptr inbounds float, ptr %2433, i64 %2434
  %2436 = load float, ptr %2435, align 4, !tbaa !11
  %2437 = fdiv float %2432, %2436
  store float %2437, ptr %40, align 4, !tbaa !11
  %2438 = load float, ptr %38, align 4, !tbaa !11
  %2439 = load float, ptr %37, align 4, !tbaa !11
  %2440 = fadd float %2438, %2439
  %2441 = load float, ptr %40, align 4, !tbaa !11
  %2442 = load float, ptr %40, align 4, !tbaa !11
  %2443 = call float @llvm.fmuladd.f32(float %2441, float %2442, float %2440)
  store float %2443, ptr %26, align 4, !tbaa !11
  %2444 = load ptr, ptr %13, align 8, !tbaa !5
  %2445 = load i64, ptr %25, align 8, !tbaa !9
  %2446 = getelementptr inbounds float, ptr %2444, i64 %2445
  %2447 = load float, ptr %2446, align 4, !tbaa !11
  %2448 = load float, ptr %40, align 4, !tbaa !11
  %2449 = fmul float %2447, %2448
  store float %2449, ptr %40, align 4, !tbaa !11
  %2450 = load float, ptr %51, align 4, !tbaa !11
  %2451 = load float, ptr %31, align 4, !tbaa !11
  %2452 = fadd float %2450, %2451
  %2453 = load float, ptr %34, align 4, !tbaa !11
  %2454 = fadd float %2452, %2453
  %2455 = load float, ptr %40, align 4, !tbaa !11
  %2456 = fadd float %2454, %2455
  store float %2456, ptr %24, align 4, !tbaa !11
  %2457 = load float, ptr %31, align 4, !tbaa !11
  %2458 = load float, ptr %34, align 4, !tbaa !11
  %2459 = fsub float %2457, %2458
  %2460 = load float, ptr %50, align 4, !tbaa !11
  %2461 = call float @llvm.fmuladd.f32(float %2459, float 8.000000e+00, float %2460)
  %2462 = load float, ptr %51, align 4, !tbaa !11
  %2463 = call float @llvm.fmuladd.f32(float %2462, float 2.000000e+00, float %2461)
  %2464 = fpext float %2463 to double
  %2465 = load float, ptr %40, align 4, !tbaa !11
  %2466 = fcmp oge float %2465, 0.000000e+00
  br i1 %2466, label %2467, label %2469

2467:                                             ; preds = %2428
  %2468 = load float, ptr %40, align 4, !tbaa !11
  br label %2472

2469:                                             ; preds = %2428
  %2470 = load float, ptr %40, align 4, !tbaa !11
  %2471 = fneg float %2470
  br label %2472

2472:                                             ; preds = %2469, %2467
  %2473 = phi float [ %2468, %2467 ], [ %2471, %2469 ]
  %2474 = fpext float %2473 to double
  %2475 = call double @llvm.fmuladd.f64(double %2474, double 3.000000e+00, double %2464)
  %2476 = load float, ptr %33, align 4, !tbaa !11
  %2477 = load float, ptr %30, align 4, !tbaa !11
  %2478 = fadd float %2476, %2477
  store float %2478, ptr %19, align 4, !tbaa !11
  %2479 = load float, ptr %19, align 4, !tbaa !11
  %2480 = fcmp oge float %2479, 0.000000e+00
  br i1 %2480, label %2481, label %2483

2481:                                             ; preds = %2472
  %2482 = load float, ptr %19, align 4, !tbaa !11
  br label %2486

2483:                                             ; preds = %2472
  %2484 = load float, ptr %19, align 4, !tbaa !11
  %2485 = fneg float %2484
  br label %2486

2486:                                             ; preds = %2483, %2481
  %2487 = phi float [ %2482, %2481 ], [ %2485, %2483 ]
  %2488 = fpext float %2487 to double
  %2489 = load float, ptr %26, align 4, !tbaa !11
  %2490 = fpext float %2489 to double
  %2491 = call double @llvm.fmuladd.f64(double %2488, double %2490, double %2475)
  %2492 = fptrunc double %2491 to float
  store float %2492, ptr %50, align 4, !tbaa !11
  store i64 0, ptr %47, align 8, !tbaa !9
  %2493 = load i64, ptr %49, align 8, !tbaa !9
  %2494 = icmp ne i64 %2493, 0
  br i1 %2494, label %2495, label %2513

2495:                                             ; preds = %2486
  %2496 = load float, ptr %24, align 4, !tbaa !11
  %2497 = fneg float %2496
  %2498 = fpext float %2497 to double
  %2499 = load float, ptr %41, align 4, !tbaa !11
  %2500 = fcmp oge float %2499, 0.000000e+00
  br i1 %2500, label %2501, label %2503

2501:                                             ; preds = %2495
  %2502 = load float, ptr %41, align 4, !tbaa !11
  br label %2506

2503:                                             ; preds = %2495
  %2504 = load float, ptr %41, align 4, !tbaa !11
  %2505 = fneg float %2504
  br label %2506

2506:                                             ; preds = %2503, %2501
  %2507 = phi float [ %2502, %2501 ], [ %2505, %2503 ]
  %2508 = fpext float %2507 to double
  %2509 = fdiv double %2508, 1.000000e+01
  %2510 = fcmp ogt double %2498, %2509
  br i1 %2510, label %2511, label %2512

2511:                                             ; preds = %2506
  store i64 1, ptr %47, align 8, !tbaa !9
  br label %2512

2512:                                             ; preds = %2511, %2506
  br label %2530

2513:                                             ; preds = %2486
  %2514 = load float, ptr %24, align 4, !tbaa !11
  %2515 = fpext float %2514 to double
  %2516 = load float, ptr %41, align 4, !tbaa !11
  %2517 = fcmp oge float %2516, 0.000000e+00
  br i1 %2517, label %2518, label %2520

2518:                                             ; preds = %2513
  %2519 = load float, ptr %41, align 4, !tbaa !11
  br label %2523

2520:                                             ; preds = %2513
  %2521 = load float, ptr %41, align 4, !tbaa !11
  %2522 = fneg float %2521
  br label %2523

2523:                                             ; preds = %2520, %2518
  %2524 = phi float [ %2519, %2518 ], [ %2522, %2520 ]
  %2525 = fpext float %2524 to double
  %2526 = fdiv double %2525, 1.000000e+01
  %2527 = fcmp ogt double %2515, %2526
  br i1 %2527, label %2528, label %2529

2528:                                             ; preds = %2523
  store i64 1, ptr %47, align 8, !tbaa !9
  br label %2529

2529:                                             ; preds = %2528, %2523
  br label %2530

2530:                                             ; preds = %2529, %2512
  %2531 = load float, ptr %30, align 4, !tbaa !11
  %2532 = load float, ptr %33, align 4, !tbaa !11
  %2533 = fadd float %2532, %2531
  store float %2533, ptr %33, align 4, !tbaa !11
  %2534 = load i64, ptr %46, align 8, !tbaa !9
  %2535 = add nsw i64 %2534, 1
  store i64 %2535, ptr %39, align 8, !tbaa !9
  %2536 = load i64, ptr %39, align 8, !tbaa !9
  store i64 %2536, ptr %46, align 8, !tbaa !9
  br label %2537

2537:                                             ; preds = %3330, %2530
  %2538 = load i64, ptr %46, align 8, !tbaa !9
  %2539 = icmp sle i64 %2538, 30
  br i1 %2539, label %2540, label %3333

2540:                                             ; preds = %2537
  %2541 = load float, ptr %24, align 4, !tbaa !11
  %2542 = fcmp oge float %2541, 0.000000e+00
  br i1 %2542, label %2543, label %2545

2543:                                             ; preds = %2540
  %2544 = load float, ptr %24, align 4, !tbaa !11
  br label %2548

2545:                                             ; preds = %2540
  %2546 = load float, ptr %24, align 4, !tbaa !11
  %2547 = fneg float %2546
  br label %2548

2548:                                             ; preds = %2545, %2543
  %2549 = phi float [ %2544, %2543 ], [ %2547, %2545 ]
  %2550 = fpext float %2549 to double
  %2551 = load float, ptr %32, align 4, !tbaa !11
  %2552 = load float, ptr %50, align 4, !tbaa !11
  %2553 = fmul float %2551, %2552
  %2554 = fpext float %2553 to double
  %2555 = fcmp ole double %2550, %2554
  br i1 %2555, label %2556, label %2577

2556:                                             ; preds = %2548
  %2557 = load i64, ptr %49, align 8, !tbaa !9
  %2558 = icmp ne i64 %2557, 0
  br i1 %2558, label %2559, label %2568

2559:                                             ; preds = %2556
  %2560 = load ptr, ptr %12, align 8, !tbaa !5
  %2561 = load ptr, ptr %11, align 8, !tbaa !5
  %2562 = load i64, ptr %2561, align 8, !tbaa !9
  %2563 = getelementptr inbounds float, ptr %2560, i64 %2562
  %2564 = load float, ptr %2563, align 4, !tbaa !11
  %2565 = load float, ptr %33, align 4, !tbaa !11
  %2566 = fadd float %2564, %2565
  %2567 = load ptr, ptr %16, align 8, !tbaa !5
  store float %2566, ptr %2567, align 4, !tbaa !11
  br label %2576

2568:                                             ; preds = %2556
  %2569 = load ptr, ptr %12, align 8, !tbaa !5
  %2570 = load i64, ptr %28, align 8, !tbaa !9
  %2571 = getelementptr inbounds float, ptr %2569, i64 %2570
  %2572 = load float, ptr %2571, align 4, !tbaa !11
  %2573 = load float, ptr %33, align 4, !tbaa !11
  %2574 = fadd float %2572, %2573
  %2575 = load ptr, ptr %16, align 8, !tbaa !5
  store float %2574, ptr %2575, align 4, !tbaa !11
  br label %2576

2576:                                             ; preds = %2568, %2559
  br label %3356

2577:                                             ; preds = %2548
  %2578 = load float, ptr %24, align 4, !tbaa !11
  %2579 = fcmp ole float %2578, 0.000000e+00
  br i1 %2579, label %2580, label %2592

2580:                                             ; preds = %2577
  %2581 = load float, ptr %43, align 4, !tbaa !11
  %2582 = load float, ptr %33, align 4, !tbaa !11
  %2583 = fcmp oge float %2581, %2582
  br i1 %2583, label %2584, label %2586

2584:                                             ; preds = %2580
  %2585 = load float, ptr %43, align 4, !tbaa !11
  br label %2588

2586:                                             ; preds = %2580
  %2587 = load float, ptr %33, align 4, !tbaa !11
  br label %2588

2588:                                             ; preds = %2586, %2584
  %2589 = phi float [ %2585, %2584 ], [ %2587, %2586 ]
  %2590 = fpext float %2589 to double
  %2591 = fptrunc double %2590 to float
  store float %2591, ptr %43, align 4, !tbaa !11
  br label %2604

2592:                                             ; preds = %2577
  %2593 = load float, ptr %44, align 4, !tbaa !11
  %2594 = load float, ptr %33, align 4, !tbaa !11
  %2595 = fcmp ole float %2593, %2594
  br i1 %2595, label %2596, label %2598

2596:                                             ; preds = %2592
  %2597 = load float, ptr %44, align 4, !tbaa !11
  br label %2600

2598:                                             ; preds = %2592
  %2599 = load float, ptr %33, align 4, !tbaa !11
  br label %2600

2600:                                             ; preds = %2598, %2596
  %2601 = phi float [ %2597, %2596 ], [ %2599, %2598 ]
  %2602 = fpext float %2601 to double
  %2603 = fptrunc double %2602 to float
  store float %2603, ptr %44, align 4, !tbaa !11
  br label %2604

2604:                                             ; preds = %2600, %2588
  %2605 = load i64, ptr %48, align 8, !tbaa !9
  %2606 = icmp ne i64 %2605, 0
  br i1 %2606, label %2913, label %2607

2607:                                             ; preds = %2604
  %2608 = load i64, ptr %47, align 8, !tbaa !9
  %2609 = icmp ne i64 %2608, 0
  br i1 %2609, label %2683, label %2610

2610:                                             ; preds = %2607
  %2611 = load i64, ptr %49, align 8, !tbaa !9
  %2612 = icmp ne i64 %2611, 0
  br i1 %2612, label %2613, label %2648

2613:                                             ; preds = %2610
  %2614 = load ptr, ptr %13, align 8, !tbaa !5
  %2615 = load ptr, ptr %11, align 8, !tbaa !5
  %2616 = load i64, ptr %2615, align 8, !tbaa !9
  %2617 = getelementptr inbounds float, ptr %2614, i64 %2616
  %2618 = load float, ptr %2617, align 4, !tbaa !11
  %2619 = load ptr, ptr %14, align 8, !tbaa !5
  %2620 = load ptr, ptr %11, align 8, !tbaa !5
  %2621 = load i64, ptr %2620, align 8, !tbaa !9
  %2622 = getelementptr inbounds float, ptr %2619, i64 %2621
  %2623 = load float, ptr %2622, align 4, !tbaa !11
  %2624 = fdiv float %2618, %2623
  store float %2624, ptr %19, align 4, !tbaa !11
  %2625 = load float, ptr %24, align 4, !tbaa !11
  %2626 = load ptr, ptr %14, align 8, !tbaa !5
  %2627 = load i64, ptr %28, align 8, !tbaa !9
  %2628 = getelementptr inbounds float, ptr %2626, i64 %2627
  %2629 = load float, ptr %2628, align 4, !tbaa !11
  %2630 = load float, ptr %26, align 4, !tbaa !11
  %2631 = fneg float %2629
  %2632 = call float @llvm.fmuladd.f32(float %2631, float %2630, float %2625)
  %2633 = load ptr, ptr %12, align 8, !tbaa !5
  %2634 = load ptr, ptr %11, align 8, !tbaa !5
  %2635 = load i64, ptr %2634, align 8, !tbaa !9
  %2636 = getelementptr inbounds float, ptr %2633, i64 %2635
  %2637 = load float, ptr %2636, align 4, !tbaa !11
  %2638 = load ptr, ptr %12, align 8, !tbaa !5
  %2639 = load i64, ptr %28, align 8, !tbaa !9
  %2640 = getelementptr inbounds float, ptr %2638, i64 %2639
  %2641 = load float, ptr %2640, align 4, !tbaa !11
  %2642 = fsub float %2637, %2641
  %2643 = load float, ptr %19, align 4, !tbaa !11
  %2644 = load float, ptr %19, align 4, !tbaa !11
  %2645 = fmul float %2643, %2644
  %2646 = fneg float %2642
  %2647 = call float @llvm.fmuladd.f32(float %2646, float %2645, float %2632)
  store float %2647, ptr %22, align 4, !tbaa !11
  br label %2682

2648:                                             ; preds = %2610
  %2649 = load ptr, ptr %13, align 8, !tbaa !5
  %2650 = load i64, ptr %28, align 8, !tbaa !9
  %2651 = getelementptr inbounds float, ptr %2649, i64 %2650
  %2652 = load float, ptr %2651, align 4, !tbaa !11
  %2653 = load ptr, ptr %14, align 8, !tbaa !5
  %2654 = load i64, ptr %28, align 8, !tbaa !9
  %2655 = getelementptr inbounds float, ptr %2653, i64 %2654
  %2656 = load float, ptr %2655, align 4, !tbaa !11
  %2657 = fdiv float %2652, %2656
  store float %2657, ptr %19, align 4, !tbaa !11
  %2658 = load float, ptr %24, align 4, !tbaa !11
  %2659 = load ptr, ptr %14, align 8, !tbaa !5
  %2660 = load ptr, ptr %11, align 8, !tbaa !5
  %2661 = load i64, ptr %2660, align 8, !tbaa !9
  %2662 = getelementptr inbounds float, ptr %2659, i64 %2661
  %2663 = load float, ptr %2662, align 4, !tbaa !11
  %2664 = load float, ptr %26, align 4, !tbaa !11
  %2665 = fneg float %2663
  %2666 = call float @llvm.fmuladd.f32(float %2665, float %2664, float %2658)
  %2667 = load ptr, ptr %12, align 8, !tbaa !5
  %2668 = load i64, ptr %28, align 8, !tbaa !9
  %2669 = getelementptr inbounds float, ptr %2667, i64 %2668
  %2670 = load float, ptr %2669, align 4, !tbaa !11
  %2671 = load ptr, ptr %12, align 8, !tbaa !5
  %2672 = load ptr, ptr %11, align 8, !tbaa !5
  %2673 = load i64, ptr %2672, align 8, !tbaa !9
  %2674 = getelementptr inbounds float, ptr %2671, i64 %2673
  %2675 = load float, ptr %2674, align 4, !tbaa !11
  %2676 = fsub float %2670, %2675
  %2677 = load float, ptr %19, align 4, !tbaa !11
  %2678 = load float, ptr %19, align 4, !tbaa !11
  %2679 = fmul float %2677, %2678
  %2680 = fneg float %2676
  %2681 = call float @llvm.fmuladd.f32(float %2680, float %2679, float %2666)
  store float %2681, ptr %22, align 4, !tbaa !11
  br label %2682

2682:                                             ; preds = %2648, %2613
  br label %2722

2683:                                             ; preds = %2607
  %2684 = load ptr, ptr %13, align 8, !tbaa !5
  %2685 = load i64, ptr %25, align 8, !tbaa !9
  %2686 = getelementptr inbounds float, ptr %2684, i64 %2685
  %2687 = load float, ptr %2686, align 4, !tbaa !11
  %2688 = load ptr, ptr %14, align 8, !tbaa !5
  %2689 = load i64, ptr %25, align 8, !tbaa !9
  %2690 = getelementptr inbounds float, ptr %2688, i64 %2689
  %2691 = load float, ptr %2690, align 4, !tbaa !11
  %2692 = fdiv float %2687, %2691
  store float %2692, ptr %40, align 4, !tbaa !11
  %2693 = load i64, ptr %49, align 8, !tbaa !9
  %2694 = icmp ne i64 %2693, 0
  br i1 %2694, label %2695, label %2700

2695:                                             ; preds = %2683
  %2696 = load float, ptr %40, align 4, !tbaa !11
  %2697 = load float, ptr %40, align 4, !tbaa !11
  %2698 = load float, ptr %38, align 4, !tbaa !11
  %2699 = call float @llvm.fmuladd.f32(float %2696, float %2697, float %2698)
  store float %2699, ptr %38, align 4, !tbaa !11
  br label %2705

2700:                                             ; preds = %2683
  %2701 = load float, ptr %40, align 4, !tbaa !11
  %2702 = load float, ptr %40, align 4, !tbaa !11
  %2703 = load float, ptr %37, align 4, !tbaa !11
  %2704 = call float @llvm.fmuladd.f32(float %2701, float %2702, float %2703)
  store float %2704, ptr %37, align 4, !tbaa !11
  br label %2705

2705:                                             ; preds = %2700, %2695
  %2706 = load float, ptr %24, align 4, !tbaa !11
  %2707 = load ptr, ptr %14, align 8, !tbaa !5
  %2708 = load ptr, ptr %11, align 8, !tbaa !5
  %2709 = load i64, ptr %2708, align 8, !tbaa !9
  %2710 = getelementptr inbounds float, ptr %2707, i64 %2709
  %2711 = load float, ptr %2710, align 4, !tbaa !11
  %2712 = load float, ptr %38, align 4, !tbaa !11
  %2713 = fneg float %2711
  %2714 = call float @llvm.fmuladd.f32(float %2713, float %2712, float %2706)
  %2715 = load ptr, ptr %14, align 8, !tbaa !5
  %2716 = load i64, ptr %28, align 8, !tbaa !9
  %2717 = getelementptr inbounds float, ptr %2715, i64 %2716
  %2718 = load float, ptr %2717, align 4, !tbaa !11
  %2719 = load float, ptr %37, align 4, !tbaa !11
  %2720 = fneg float %2718
  %2721 = call float @llvm.fmuladd.f32(float %2720, float %2719, float %2714)
  store float %2721, ptr %22, align 4, !tbaa !11
  br label %2722

2722:                                             ; preds = %2705, %2682
  %2723 = load ptr, ptr %14, align 8, !tbaa !5
  %2724 = load ptr, ptr %11, align 8, !tbaa !5
  %2725 = load i64, ptr %2724, align 8, !tbaa !9
  %2726 = getelementptr inbounds float, ptr %2723, i64 %2725
  %2727 = load float, ptr %2726, align 4, !tbaa !11
  %2728 = load ptr, ptr %14, align 8, !tbaa !5
  %2729 = load i64, ptr %28, align 8, !tbaa !9
  %2730 = getelementptr inbounds float, ptr %2728, i64 %2729
  %2731 = load float, ptr %2730, align 4, !tbaa !11
  %2732 = fadd float %2727, %2731
  %2733 = load float, ptr %24, align 4, !tbaa !11
  %2734 = load ptr, ptr %14, align 8, !tbaa !5
  %2735 = load ptr, ptr %11, align 8, !tbaa !5
  %2736 = load i64, ptr %2735, align 8, !tbaa !9
  %2737 = getelementptr inbounds float, ptr %2734, i64 %2736
  %2738 = load float, ptr %2737, align 4, !tbaa !11
  %2739 = load ptr, ptr %14, align 8, !tbaa !5
  %2740 = load i64, ptr %28, align 8, !tbaa !9
  %2741 = getelementptr inbounds float, ptr %2739, i64 %2740
  %2742 = load float, ptr %2741, align 4, !tbaa !11
  %2743 = fmul float %2738, %2742
  %2744 = load float, ptr %26, align 4, !tbaa !11
  %2745 = fmul float %2743, %2744
  %2746 = fneg float %2745
  %2747 = call float @llvm.fmuladd.f32(float %2732, float %2733, float %2746)
  store float %2747, ptr %20, align 4, !tbaa !11
  %2748 = load ptr, ptr %14, align 8, !tbaa !5
  %2749 = load ptr, ptr %11, align 8, !tbaa !5
  %2750 = load i64, ptr %2749, align 8, !tbaa !9
  %2751 = getelementptr inbounds float, ptr %2748, i64 %2750
  %2752 = load float, ptr %2751, align 4, !tbaa !11
  %2753 = load ptr, ptr %14, align 8, !tbaa !5
  %2754 = load i64, ptr %28, align 8, !tbaa !9
  %2755 = getelementptr inbounds float, ptr %2753, i64 %2754
  %2756 = load float, ptr %2755, align 4, !tbaa !11
  %2757 = fmul float %2752, %2756
  %2758 = load float, ptr %24, align 4, !tbaa !11
  %2759 = fmul float %2757, %2758
  store float %2759, ptr %21, align 4, !tbaa !11
  %2760 = load float, ptr %22, align 4, !tbaa !11
  %2761 = fcmp oeq float %2760, 0.000000e+00
  br i1 %2761, label %2762, label %2852

2762:                                             ; preds = %2722
  %2763 = load float, ptr %20, align 4, !tbaa !11
  %2764 = fcmp oeq float %2763, 0.000000e+00
  br i1 %2764, label %2765, label %2848

2765:                                             ; preds = %2762
  %2766 = load i64, ptr %47, align 8, !tbaa !9
  %2767 = icmp ne i64 %2766, 0
  br i1 %2767, label %2822, label %2768

2768:                                             ; preds = %2765
  %2769 = load i64, ptr %49, align 8, !tbaa !9
  %2770 = icmp ne i64 %2769, 0
  br i1 %2770, label %2771, label %2796

2771:                                             ; preds = %2768
  %2772 = load ptr, ptr %13, align 8, !tbaa !5
  %2773 = load ptr, ptr %11, align 8, !tbaa !5
  %2774 = load i64, ptr %2773, align 8, !tbaa !9
  %2775 = getelementptr inbounds float, ptr %2772, i64 %2774
  %2776 = load float, ptr %2775, align 4, !tbaa !11
  %2777 = load ptr, ptr %13, align 8, !tbaa !5
  %2778 = load ptr, ptr %11, align 8, !tbaa !5
  %2779 = load i64, ptr %2778, align 8, !tbaa !9
  %2780 = getelementptr inbounds float, ptr %2777, i64 %2779
  %2781 = load float, ptr %2780, align 4, !tbaa !11
  %2782 = load ptr, ptr %14, align 8, !tbaa !5
  %2783 = load i64, ptr %28, align 8, !tbaa !9
  %2784 = getelementptr inbounds float, ptr %2782, i64 %2783
  %2785 = load float, ptr %2784, align 4, !tbaa !11
  %2786 = load ptr, ptr %14, align 8, !tbaa !5
  %2787 = load i64, ptr %28, align 8, !tbaa !9
  %2788 = getelementptr inbounds float, ptr %2786, i64 %2787
  %2789 = load float, ptr %2788, align 4, !tbaa !11
  %2790 = fmul float %2785, %2789
  %2791 = load float, ptr %38, align 4, !tbaa !11
  %2792 = load float, ptr %37, align 4, !tbaa !11
  %2793 = fadd float %2791, %2792
  %2794 = fmul float %2790, %2793
  %2795 = call float @llvm.fmuladd.f32(float %2776, float %2781, float %2794)
  store float %2795, ptr %20, align 4, !tbaa !11
  br label %2821

2796:                                             ; preds = %2768
  %2797 = load ptr, ptr %13, align 8, !tbaa !5
  %2798 = load i64, ptr %28, align 8, !tbaa !9
  %2799 = getelementptr inbounds float, ptr %2797, i64 %2798
  %2800 = load float, ptr %2799, align 4, !tbaa !11
  %2801 = load ptr, ptr %13, align 8, !tbaa !5
  %2802 = load i64, ptr %28, align 8, !tbaa !9
  %2803 = getelementptr inbounds float, ptr %2801, i64 %2802
  %2804 = load float, ptr %2803, align 4, !tbaa !11
  %2805 = load ptr, ptr %14, align 8, !tbaa !5
  %2806 = load ptr, ptr %11, align 8, !tbaa !5
  %2807 = load i64, ptr %2806, align 8, !tbaa !9
  %2808 = getelementptr inbounds float, ptr %2805, i64 %2807
  %2809 = load float, ptr %2808, align 4, !tbaa !11
  %2810 = load ptr, ptr %14, align 8, !tbaa !5
  %2811 = load ptr, ptr %11, align 8, !tbaa !5
  %2812 = load i64, ptr %2811, align 8, !tbaa !9
  %2813 = getelementptr inbounds float, ptr %2810, i64 %2812
  %2814 = load float, ptr %2813, align 4, !tbaa !11
  %2815 = fmul float %2809, %2814
  %2816 = load float, ptr %38, align 4, !tbaa !11
  %2817 = load float, ptr %37, align 4, !tbaa !11
  %2818 = fadd float %2816, %2817
  %2819 = fmul float %2815, %2818
  %2820 = call float @llvm.fmuladd.f32(float %2800, float %2804, float %2819)
  store float %2820, ptr %20, align 4, !tbaa !11
  br label %2821

2821:                                             ; preds = %2796, %2771
  br label %2847

2822:                                             ; preds = %2765
  %2823 = load ptr, ptr %14, align 8, !tbaa !5
  %2824 = load ptr, ptr %11, align 8, !tbaa !5
  %2825 = load i64, ptr %2824, align 8, !tbaa !9
  %2826 = getelementptr inbounds float, ptr %2823, i64 %2825
  %2827 = load float, ptr %2826, align 4, !tbaa !11
  %2828 = load ptr, ptr %14, align 8, !tbaa !5
  %2829 = load ptr, ptr %11, align 8, !tbaa !5
  %2830 = load i64, ptr %2829, align 8, !tbaa !9
  %2831 = getelementptr inbounds float, ptr %2828, i64 %2830
  %2832 = load float, ptr %2831, align 4, !tbaa !11
  %2833 = fmul float %2827, %2832
  %2834 = load float, ptr %38, align 4, !tbaa !11
  %2835 = load ptr, ptr %14, align 8, !tbaa !5
  %2836 = load i64, ptr %28, align 8, !tbaa !9
  %2837 = getelementptr inbounds float, ptr %2835, i64 %2836
  %2838 = load float, ptr %2837, align 4, !tbaa !11
  %2839 = load ptr, ptr %14, align 8, !tbaa !5
  %2840 = load i64, ptr %28, align 8, !tbaa !9
  %2841 = getelementptr inbounds float, ptr %2839, i64 %2840
  %2842 = load float, ptr %2841, align 4, !tbaa !11
  %2843 = fmul float %2838, %2842
  %2844 = load float, ptr %37, align 4, !tbaa !11
  %2845 = fmul float %2843, %2844
  %2846 = call float @llvm.fmuladd.f32(float %2833, float %2834, float %2845)
  store float %2846, ptr %20, align 4, !tbaa !11
  br label %2847

2847:                                             ; preds = %2822, %2821
  br label %2848

2848:                                             ; preds = %2847, %2762
  %2849 = load float, ptr %21, align 4, !tbaa !11
  %2850 = load float, ptr %20, align 4, !tbaa !11
  %2851 = fdiv float %2849, %2850
  store float %2851, ptr %30, align 4, !tbaa !11
  br label %2912

2852:                                             ; preds = %2722
  %2853 = load float, ptr %20, align 4, !tbaa !11
  %2854 = fcmp ole float %2853, 0.000000e+00
  br i1 %2854, label %2855, label %2883

2855:                                             ; preds = %2852
  %2856 = load float, ptr %20, align 4, !tbaa !11
  %2857 = fpext float %2856 to double
  %2858 = load float, ptr %20, align 4, !tbaa !11
  %2859 = load float, ptr %20, align 4, !tbaa !11
  %2860 = load float, ptr %21, align 4, !tbaa !11
  %2861 = fmul float %2860, 4.000000e+00
  %2862 = load float, ptr %22, align 4, !tbaa !11
  %2863 = fmul float %2861, %2862
  %2864 = fneg float %2863
  %2865 = call float @llvm.fmuladd.f32(float %2858, float %2859, float %2864)
  store float %2865, ptr %19, align 4, !tbaa !11
  %2866 = load float, ptr %19, align 4, !tbaa !11
  %2867 = fcmp oge float %2866, 0.000000e+00
  br i1 %2867, label %2868, label %2870

2868:                                             ; preds = %2855
  %2869 = load float, ptr %19, align 4, !tbaa !11
  br label %2873

2870:                                             ; preds = %2855
  %2871 = load float, ptr %19, align 4, !tbaa !11
  %2872 = fneg float %2871
  br label %2873

2873:                                             ; preds = %2870, %2868
  %2874 = phi float [ %2869, %2868 ], [ %2872, %2870 ]
  %2875 = fpext float %2874 to double
  %2876 = call double @sqrt(double noundef %2875) #5
  %2877 = fsub double %2857, %2876
  %2878 = load float, ptr %22, align 4, !tbaa !11
  %2879 = fmul float %2878, 2.000000e+00
  %2880 = fpext float %2879 to double
  %2881 = fdiv double %2877, %2880
  %2882 = fptrunc double %2881 to float
  store float %2882, ptr %30, align 4, !tbaa !11
  br label %2911

2883:                                             ; preds = %2852
  %2884 = load float, ptr %21, align 4, !tbaa !11
  %2885 = fmul float %2884, 2.000000e+00
  %2886 = fpext float %2885 to double
  %2887 = load float, ptr %20, align 4, !tbaa !11
  %2888 = fpext float %2887 to double
  %2889 = load float, ptr %20, align 4, !tbaa !11
  %2890 = load float, ptr %20, align 4, !tbaa !11
  %2891 = load float, ptr %21, align 4, !tbaa !11
  %2892 = fmul float %2891, 4.000000e+00
  %2893 = load float, ptr %22, align 4, !tbaa !11
  %2894 = fmul float %2892, %2893
  %2895 = fneg float %2894
  %2896 = call float @llvm.fmuladd.f32(float %2889, float %2890, float %2895)
  store float %2896, ptr %19, align 4, !tbaa !11
  %2897 = load float, ptr %19, align 4, !tbaa !11
  %2898 = fcmp oge float %2897, 0.000000e+00
  br i1 %2898, label %2899, label %2901

2899:                                             ; preds = %2883
  %2900 = load float, ptr %19, align 4, !tbaa !11
  br label %2904

2901:                                             ; preds = %2883
  %2902 = load float, ptr %19, align 4, !tbaa !11
  %2903 = fneg float %2902
  br label %2904

2904:                                             ; preds = %2901, %2899
  %2905 = phi float [ %2900, %2899 ], [ %2903, %2901 ]
  %2906 = fpext float %2905 to double
  %2907 = call double @sqrt(double noundef %2906) #5
  %2908 = fadd double %2888, %2907
  %2909 = fdiv double %2886, %2908
  %2910 = fptrunc double %2909 to float
  store float %2910, ptr %30, align 4, !tbaa !11
  br label %2911

2911:                                             ; preds = %2904, %2873
  br label %2912

2912:                                             ; preds = %2911, %2848
  br label %3099

2913:                                             ; preds = %2604
  %2914 = load float, ptr %51, align 4, !tbaa !11
  %2915 = load float, ptr %34, align 4, !tbaa !11
  %2916 = fadd float %2914, %2915
  %2917 = load float, ptr %31, align 4, !tbaa !11
  %2918 = fadd float %2916, %2917
  store float %2918, ptr %40, align 4, !tbaa !11
  %2919 = load i64, ptr %47, align 8, !tbaa !9
  %2920 = icmp ne i64 %2919, 0
  br i1 %2920, label %2921, label %2961

2921:                                             ; preds = %2913
  %2922 = load float, ptr %40, align 4, !tbaa !11
  %2923 = load ptr, ptr %14, align 8, !tbaa !5
  %2924 = load i64, ptr %35, align 8, !tbaa !9
  %2925 = getelementptr inbounds float, ptr %2923, i64 %2924
  %2926 = load float, ptr %2925, align 4, !tbaa !11
  %2927 = load float, ptr %38, align 4, !tbaa !11
  %2928 = fneg float %2926
  %2929 = call float @llvm.fmuladd.f32(float %2928, float %2927, float %2922)
  %2930 = load ptr, ptr %14, align 8, !tbaa !5
  %2931 = load i64, ptr %36, align 8, !tbaa !9
  %2932 = getelementptr inbounds float, ptr %2930, i64 %2931
  %2933 = load float, ptr %2932, align 4, !tbaa !11
  %2934 = load float, ptr %37, align 4, !tbaa !11
  %2935 = fneg float %2933
  %2936 = call float @llvm.fmuladd.f32(float %2935, float %2934, float %2929)
  store float %2936, ptr %22, align 4, !tbaa !11
  %2937 = load ptr, ptr %14, align 8, !tbaa !5
  %2938 = load i64, ptr %35, align 8, !tbaa !9
  %2939 = getelementptr inbounds float, ptr %2937, i64 %2938
  %2940 = load float, ptr %2939, align 4, !tbaa !11
  %2941 = load ptr, ptr %14, align 8, !tbaa !5
  %2942 = load i64, ptr %35, align 8, !tbaa !9
  %2943 = getelementptr inbounds float, ptr %2941, i64 %2942
  %2944 = load float, ptr %2943, align 4, !tbaa !11
  %2945 = fmul float %2940, %2944
  %2946 = load float, ptr %38, align 4, !tbaa !11
  %2947 = fmul float %2945, %2946
  %2948 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 0
  store float %2947, ptr %2948, align 4, !tbaa !11
  %2949 = load ptr, ptr %14, align 8, !tbaa !5
  %2950 = load i64, ptr %36, align 8, !tbaa !9
  %2951 = getelementptr inbounds float, ptr %2949, i64 %2950
  %2952 = load float, ptr %2951, align 4, !tbaa !11
  %2953 = load ptr, ptr %14, align 8, !tbaa !5
  %2954 = load i64, ptr %36, align 8, !tbaa !9
  %2955 = getelementptr inbounds float, ptr %2953, i64 %2954
  %2956 = load float, ptr %2955, align 4, !tbaa !11
  %2957 = fmul float %2952, %2956
  %2958 = load float, ptr %37, align 4, !tbaa !11
  %2959 = fmul float %2957, %2958
  %2960 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 2
  store float %2959, ptr %2960, align 4, !tbaa !11
  br label %3087

2961:                                             ; preds = %2913
  %2962 = load i64, ptr %49, align 8, !tbaa !9
  %2963 = icmp ne i64 %2962, 0
  br i1 %2963, label %2964, label %3025

2964:                                             ; preds = %2961
  %2965 = load ptr, ptr %13, align 8, !tbaa !5
  %2966 = load i64, ptr %35, align 8, !tbaa !9
  %2967 = getelementptr inbounds float, ptr %2965, i64 %2966
  %2968 = load float, ptr %2967, align 4, !tbaa !11
  %2969 = load ptr, ptr %14, align 8, !tbaa !5
  %2970 = load i64, ptr %35, align 8, !tbaa !9
  %2971 = getelementptr inbounds float, ptr %2969, i64 %2970
  %2972 = load float, ptr %2971, align 4, !tbaa !11
  %2973 = fdiv float %2968, %2972
  store float %2973, ptr %42, align 4, !tbaa !11
  %2974 = load float, ptr %42, align 4, !tbaa !11
  %2975 = load float, ptr %42, align 4, !tbaa !11
  %2976 = fmul float %2975, %2974
  store float %2976, ptr %42, align 4, !tbaa !11
  %2977 = load float, ptr %40, align 4, !tbaa !11
  %2978 = load ptr, ptr %14, align 8, !tbaa !5
  %2979 = load i64, ptr %36, align 8, !tbaa !9
  %2980 = getelementptr inbounds float, ptr %2978, i64 %2979
  %2981 = load float, ptr %2980, align 4, !tbaa !11
  %2982 = load float, ptr %38, align 4, !tbaa !11
  %2983 = load float, ptr %37, align 4, !tbaa !11
  %2984 = fadd float %2982, %2983
  %2985 = fneg float %2981
  %2986 = call float @llvm.fmuladd.f32(float %2985, float %2984, float %2977)
  %2987 = load ptr, ptr %12, align 8, !tbaa !5
  %2988 = load i64, ptr %35, align 8, !tbaa !9
  %2989 = getelementptr inbounds float, ptr %2987, i64 %2988
  %2990 = load float, ptr %2989, align 4, !tbaa !11
  %2991 = load ptr, ptr %12, align 8, !tbaa !5
  %2992 = load i64, ptr %36, align 8, !tbaa !9
  %2993 = getelementptr inbounds float, ptr %2991, i64 %2992
  %2994 = load float, ptr %2993, align 4, !tbaa !11
  %2995 = fsub float %2990, %2994
  %2996 = load float, ptr %42, align 4, !tbaa !11
  %2997 = fneg float %2995
  %2998 = call float @llvm.fmuladd.f32(float %2997, float %2996, float %2986)
  store float %2998, ptr %22, align 4, !tbaa !11
  %2999 = load ptr, ptr %13, align 8, !tbaa !5
  %3000 = load i64, ptr %35, align 8, !tbaa !9
  %3001 = getelementptr inbounds float, ptr %2999, i64 %3000
  %3002 = load float, ptr %3001, align 4, !tbaa !11
  %3003 = load ptr, ptr %13, align 8, !tbaa !5
  %3004 = load i64, ptr %35, align 8, !tbaa !9
  %3005 = getelementptr inbounds float, ptr %3003, i64 %3004
  %3006 = load float, ptr %3005, align 4, !tbaa !11
  %3007 = fmul float %3002, %3006
  %3008 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 0
  store float %3007, ptr %3008, align 4, !tbaa !11
  %3009 = load ptr, ptr %14, align 8, !tbaa !5
  %3010 = load i64, ptr %36, align 8, !tbaa !9
  %3011 = getelementptr inbounds float, ptr %3009, i64 %3010
  %3012 = load float, ptr %3011, align 4, !tbaa !11
  %3013 = load ptr, ptr %14, align 8, !tbaa !5
  %3014 = load i64, ptr %36, align 8, !tbaa !9
  %3015 = getelementptr inbounds float, ptr %3013, i64 %3014
  %3016 = load float, ptr %3015, align 4, !tbaa !11
  %3017 = fmul float %3012, %3016
  %3018 = load float, ptr %38, align 4, !tbaa !11
  %3019 = load float, ptr %42, align 4, !tbaa !11
  %3020 = fsub float %3018, %3019
  %3021 = load float, ptr %37, align 4, !tbaa !11
  %3022 = fadd float %3020, %3021
  %3023 = fmul float %3017, %3022
  %3024 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 2
  store float %3023, ptr %3024, align 4, !tbaa !11
  br label %3086

3025:                                             ; preds = %2961
  %3026 = load ptr, ptr %13, align 8, !tbaa !5
  %3027 = load i64, ptr %36, align 8, !tbaa !9
  %3028 = getelementptr inbounds float, ptr %3026, i64 %3027
  %3029 = load float, ptr %3028, align 4, !tbaa !11
  %3030 = load ptr, ptr %14, align 8, !tbaa !5
  %3031 = load i64, ptr %36, align 8, !tbaa !9
  %3032 = getelementptr inbounds float, ptr %3030, i64 %3031
  %3033 = load float, ptr %3032, align 4, !tbaa !11
  %3034 = fdiv float %3029, %3033
  store float %3034, ptr %42, align 4, !tbaa !11
  %3035 = load float, ptr %42, align 4, !tbaa !11
  %3036 = load float, ptr %42, align 4, !tbaa !11
  %3037 = fmul float %3036, %3035
  store float %3037, ptr %42, align 4, !tbaa !11
  %3038 = load float, ptr %40, align 4, !tbaa !11
  %3039 = load ptr, ptr %14, align 8, !tbaa !5
  %3040 = load i64, ptr %35, align 8, !tbaa !9
  %3041 = getelementptr inbounds float, ptr %3039, i64 %3040
  %3042 = load float, ptr %3041, align 4, !tbaa !11
  %3043 = load float, ptr %38, align 4, !tbaa !11
  %3044 = load float, ptr %37, align 4, !tbaa !11
  %3045 = fadd float %3043, %3044
  %3046 = fneg float %3042
  %3047 = call float @llvm.fmuladd.f32(float %3046, float %3045, float %3038)
  %3048 = load ptr, ptr %12, align 8, !tbaa !5
  %3049 = load i64, ptr %36, align 8, !tbaa !9
  %3050 = getelementptr inbounds float, ptr %3048, i64 %3049
  %3051 = load float, ptr %3050, align 4, !tbaa !11
  %3052 = load ptr, ptr %12, align 8, !tbaa !5
  %3053 = load i64, ptr %35, align 8, !tbaa !9
  %3054 = getelementptr inbounds float, ptr %3052, i64 %3053
  %3055 = load float, ptr %3054, align 4, !tbaa !11
  %3056 = fsub float %3051, %3055
  %3057 = load float, ptr %42, align 4, !tbaa !11
  %3058 = fneg float %3056
  %3059 = call float @llvm.fmuladd.f32(float %3058, float %3057, float %3047)
  store float %3059, ptr %22, align 4, !tbaa !11
  %3060 = load ptr, ptr %14, align 8, !tbaa !5
  %3061 = load i64, ptr %35, align 8, !tbaa !9
  %3062 = getelementptr inbounds float, ptr %3060, i64 %3061
  %3063 = load float, ptr %3062, align 4, !tbaa !11
  %3064 = load ptr, ptr %14, align 8, !tbaa !5
  %3065 = load i64, ptr %35, align 8, !tbaa !9
  %3066 = getelementptr inbounds float, ptr %3064, i64 %3065
  %3067 = load float, ptr %3066, align 4, !tbaa !11
  %3068 = fmul float %3063, %3067
  %3069 = load float, ptr %38, align 4, !tbaa !11
  %3070 = load float, ptr %37, align 4, !tbaa !11
  %3071 = load float, ptr %42, align 4, !tbaa !11
  %3072 = fsub float %3070, %3071
  %3073 = fadd float %3069, %3072
  %3074 = fmul float %3068, %3073
  %3075 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 0
  store float %3074, ptr %3075, align 4, !tbaa !11
  %3076 = load ptr, ptr %13, align 8, !tbaa !5
  %3077 = load i64, ptr %36, align 8, !tbaa !9
  %3078 = getelementptr inbounds float, ptr %3076, i64 %3077
  %3079 = load float, ptr %3078, align 4, !tbaa !11
  %3080 = load ptr, ptr %13, align 8, !tbaa !5
  %3081 = load i64, ptr %36, align 8, !tbaa !9
  %3082 = getelementptr inbounds float, ptr %3080, i64 %3081
  %3083 = load float, ptr %3082, align 4, !tbaa !11
  %3084 = fmul float %3079, %3083
  %3085 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 2
  store float %3084, ptr %3085, align 4, !tbaa !11
  br label %3086

3086:                                             ; preds = %3025, %2964
  br label %3087

3087:                                             ; preds = %3086, %2921
  %3088 = load ptr, ptr %14, align 8, !tbaa !5
  %3089 = load i64, ptr %35, align 8, !tbaa !9
  %3090 = getelementptr inbounds float, ptr %3088, i64 %3089
  %3091 = getelementptr inbounds [3 x float], ptr %27, i64 0, i64 0
  %3092 = load ptr, ptr %17, align 8, !tbaa !5
  %3093 = call i32 @slaed6_(ptr noundef %46, ptr noundef %49, ptr noundef %22, ptr noundef %3090, ptr noundef %3091, ptr noundef %24, ptr noundef %30, ptr noundef %3092)
  %3094 = load ptr, ptr %17, align 8, !tbaa !5
  %3095 = load i64, ptr %3094, align 8, !tbaa !9
  %3096 = icmp ne i64 %3095, 0
  br i1 %3096, label %3097, label %3098

3097:                                             ; preds = %3087
  br label %3356

3098:                                             ; preds = %3087
  br label %3099

3099:                                             ; preds = %3098, %2912
  %3100 = load float, ptr %24, align 4, !tbaa !11
  %3101 = load float, ptr %30, align 4, !tbaa !11
  %3102 = fmul float %3100, %3101
  %3103 = fcmp oge float %3102, 0.000000e+00
  br i1 %3103, label %3104, label %3109

3104:                                             ; preds = %3099
  %3105 = load float, ptr %24, align 4, !tbaa !11
  %3106 = fneg float %3105
  %3107 = load float, ptr %26, align 4, !tbaa !11
  %3108 = fdiv float %3106, %3107
  store float %3108, ptr %30, align 4, !tbaa !11
  br label %3109

3109:                                             ; preds = %3104, %3099
  %3110 = load float, ptr %33, align 4, !tbaa !11
  %3111 = load float, ptr %30, align 4, !tbaa !11
  %3112 = fadd float %3110, %3111
  store float %3112, ptr %40, align 4, !tbaa !11
  %3113 = load float, ptr %40, align 4, !tbaa !11
  %3114 = load float, ptr %44, align 4, !tbaa !11
  %3115 = fcmp ogt float %3113, %3114
  br i1 %3115, label %3120, label %3116

3116:                                             ; preds = %3109
  %3117 = load float, ptr %40, align 4, !tbaa !11
  %3118 = load float, ptr %43, align 4, !tbaa !11
  %3119 = fcmp olt float %3117, %3118
  br i1 %3119, label %3120, label %3134

3120:                                             ; preds = %3116, %3109
  %3121 = load float, ptr %24, align 4, !tbaa !11
  %3122 = fcmp olt float %3121, 0.000000e+00
  br i1 %3122, label %3123, label %3128

3123:                                             ; preds = %3120
  %3124 = load float, ptr %44, align 4, !tbaa !11
  %3125 = load float, ptr %33, align 4, !tbaa !11
  %3126 = fsub float %3124, %3125
  %3127 = fdiv float %3126, 2.000000e+00
  store float %3127, ptr %30, align 4, !tbaa !11
  br label %3133

3128:                                             ; preds = %3120
  %3129 = load float, ptr %43, align 4, !tbaa !11
  %3130 = load float, ptr %33, align 4, !tbaa !11
  %3131 = fsub float %3129, %3130
  %3132 = fdiv float %3131, 2.000000e+00
  store float %3132, ptr %30, align 4, !tbaa !11
  br label %3133

3133:                                             ; preds = %3128, %3123
  br label %3134

3134:                                             ; preds = %3133, %3116
  %3135 = load ptr, ptr %10, align 8, !tbaa !5
  %3136 = load i64, ptr %3135, align 8, !tbaa !9
  store i64 %3136, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %3137

3137:                                             ; preds = %3148, %3134
  %3138 = load i64, ptr %23, align 8, !tbaa !9
  %3139 = load i64, ptr %18, align 8, !tbaa !9
  %3140 = icmp sle i64 %3138, %3139
  br i1 %3140, label %3141, label %3151

3141:                                             ; preds = %3137
  %3142 = load float, ptr %30, align 4, !tbaa !11
  %3143 = load ptr, ptr %14, align 8, !tbaa !5
  %3144 = load i64, ptr %23, align 8, !tbaa !9
  %3145 = getelementptr inbounds float, ptr %3143, i64 %3144
  %3146 = load float, ptr %3145, align 4, !tbaa !11
  %3147 = fsub float %3146, %3142
  store float %3147, ptr %3145, align 4, !tbaa !11
  br label %3148

3148:                                             ; preds = %3141
  %3149 = load i64, ptr %23, align 8, !tbaa !9
  %3150 = add nsw i64 %3149, 1
  store i64 %3150, ptr %23, align 8, !tbaa !9
  br label %3137, !llvm.loop !33

3151:                                             ; preds = %3137
  %3152 = load float, ptr %30, align 4, !tbaa !11
  %3153 = load float, ptr %33, align 4, !tbaa !11
  %3154 = fadd float %3153, %3152
  store float %3154, ptr %33, align 4, !tbaa !11
  %3155 = load float, ptr %24, align 4, !tbaa !11
  store float %3155, ptr %41, align 4, !tbaa !11
  store float 0.000000e+00, ptr %38, align 4, !tbaa !11
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  store float 0.000000e+00, ptr %50, align 4, !tbaa !11
  %3156 = load i64, ptr %35, align 8, !tbaa !9
  store i64 %3156, ptr %18, align 8, !tbaa !9
  store i64 1, ptr %23, align 8, !tbaa !9
  br label %3157

3157:                                             ; preds = %3185, %3151
  %3158 = load i64, ptr %23, align 8, !tbaa !9
  %3159 = load i64, ptr %18, align 8, !tbaa !9
  %3160 = icmp sle i64 %3158, %3159
  br i1 %3160, label %3161, label %3188

3161:                                             ; preds = %3157
  %3162 = load ptr, ptr %13, align 8, !tbaa !5
  %3163 = load i64, ptr %23, align 8, !tbaa !9
  %3164 = getelementptr inbounds float, ptr %3162, i64 %3163
  %3165 = load float, ptr %3164, align 4, !tbaa !11
  %3166 = load ptr, ptr %14, align 8, !tbaa !5
  %3167 = load i64, ptr %23, align 8, !tbaa !9
  %3168 = getelementptr inbounds float, ptr %3166, i64 %3167
  %3169 = load float, ptr %3168, align 4, !tbaa !11
  %3170 = fdiv float %3165, %3169
  store float %3170, ptr %40, align 4, !tbaa !11
  %3171 = load ptr, ptr %13, align 8, !tbaa !5
  %3172 = load i64, ptr %23, align 8, !tbaa !9
  %3173 = getelementptr inbounds float, ptr %3171, i64 %3172
  %3174 = load float, ptr %3173, align 4, !tbaa !11
  %3175 = load float, ptr %40, align 4, !tbaa !11
  %3176 = load float, ptr %34, align 4, !tbaa !11
  %3177 = call float @llvm.fmuladd.f32(float %3174, float %3175, float %3176)
  store float %3177, ptr %34, align 4, !tbaa !11
  %3178 = load float, ptr %40, align 4, !tbaa !11
  %3179 = load float, ptr %40, align 4, !tbaa !11
  %3180 = load float, ptr %38, align 4, !tbaa !11
  %3181 = call float @llvm.fmuladd.f32(float %3178, float %3179, float %3180)
  store float %3181, ptr %38, align 4, !tbaa !11
  %3182 = load float, ptr %34, align 4, !tbaa !11
  %3183 = load float, ptr %50, align 4, !tbaa !11
  %3184 = fadd float %3183, %3182
  store float %3184, ptr %50, align 4, !tbaa !11
  br label %3185

3185:                                             ; preds = %3161
  %3186 = load i64, ptr %23, align 8, !tbaa !9
  %3187 = add nsw i64 %3186, 1
  store i64 %3187, ptr %23, align 8, !tbaa !9
  br label %3157, !llvm.loop !34

3188:                                             ; preds = %3157
  %3189 = load float, ptr %50, align 4, !tbaa !11
  %3190 = fcmp oge float %3189, 0.000000e+00
  br i1 %3190, label %3191, label %3193

3191:                                             ; preds = %3188
  %3192 = load float, ptr %50, align 4, !tbaa !11
  br label %3196

3193:                                             ; preds = %3188
  %3194 = load float, ptr %50, align 4, !tbaa !11
  %3195 = fneg float %3194
  br label %3196

3196:                                             ; preds = %3193, %3191
  %3197 = phi float [ %3192, %3191 ], [ %3195, %3193 ]
  %3198 = fpext float %3197 to double
  %3199 = fptrunc double %3198 to float
  store float %3199, ptr %50, align 4, !tbaa !11
  store float 0.000000e+00, ptr %37, align 4, !tbaa !11
  store float 0.000000e+00, ptr %31, align 4, !tbaa !11
  %3200 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %3200, ptr %18, align 8, !tbaa !9
  %3201 = load ptr, ptr %10, align 8, !tbaa !5
  %3202 = load i64, ptr %3201, align 8, !tbaa !9
  store i64 %3202, ptr %23, align 8, !tbaa !9
  br label %3203

3203:                                             ; preds = %3231, %3196
  %3204 = load i64, ptr %23, align 8, !tbaa !9
  %3205 = load i64, ptr %18, align 8, !tbaa !9
  %3206 = icmp sge i64 %3204, %3205
  br i1 %3206, label %3207, label %3234

3207:                                             ; preds = %3203
  %3208 = load ptr, ptr %13, align 8, !tbaa !5
  %3209 = load i64, ptr %23, align 8, !tbaa !9
  %3210 = getelementptr inbounds float, ptr %3208, i64 %3209
  %3211 = load float, ptr %3210, align 4, !tbaa !11
  %3212 = load ptr, ptr %14, align 8, !tbaa !5
  %3213 = load i64, ptr %23, align 8, !tbaa !9
  %3214 = getelementptr inbounds float, ptr %3212, i64 %3213
  %3215 = load float, ptr %3214, align 4, !tbaa !11
  %3216 = fdiv float %3211, %3215
  store float %3216, ptr %40, align 4, !tbaa !11
  %3217 = load ptr, ptr %13, align 8, !tbaa !5
  %3218 = load i64, ptr %23, align 8, !tbaa !9
  %3219 = getelementptr inbounds float, ptr %3217, i64 %3218
  %3220 = load float, ptr %3219, align 4, !tbaa !11
  %3221 = load float, ptr %40, align 4, !tbaa !11
  %3222 = load float, ptr %31, align 4, !tbaa !11
  %3223 = call float @llvm.fmuladd.f32(float %3220, float %3221, float %3222)
  store float %3223, ptr %31, align 4, !tbaa !11
  %3224 = load float, ptr %40, align 4, !tbaa !11
  %3225 = load float, ptr %40, align 4, !tbaa !11
  %3226 = load float, ptr %37, align 4, !tbaa !11
  %3227 = call float @llvm.fmuladd.f32(float %3224, float %3225, float %3226)
  store float %3227, ptr %37, align 4, !tbaa !11
  %3228 = load float, ptr %31, align 4, !tbaa !11
  %3229 = load float, ptr %50, align 4, !tbaa !11
  %3230 = fadd float %3229, %3228
  store float %3230, ptr %50, align 4, !tbaa !11
  br label %3231

3231:                                             ; preds = %3207
  %3232 = load i64, ptr %23, align 8, !tbaa !9
  %3233 = add nsw i64 %3232, -1
  store i64 %3233, ptr %23, align 8, !tbaa !9
  br label %3203, !llvm.loop !35

3234:                                             ; preds = %3203
  %3235 = load ptr, ptr %13, align 8, !tbaa !5
  %3236 = load i64, ptr %25, align 8, !tbaa !9
  %3237 = getelementptr inbounds float, ptr %3235, i64 %3236
  %3238 = load float, ptr %3237, align 4, !tbaa !11
  %3239 = load ptr, ptr %14, align 8, !tbaa !5
  %3240 = load i64, ptr %25, align 8, !tbaa !9
  %3241 = getelementptr inbounds float, ptr %3239, i64 %3240
  %3242 = load float, ptr %3241, align 4, !tbaa !11
  %3243 = fdiv float %3238, %3242
  store float %3243, ptr %40, align 4, !tbaa !11
  %3244 = load float, ptr %38, align 4, !tbaa !11
  %3245 = load float, ptr %37, align 4, !tbaa !11
  %3246 = fadd float %3244, %3245
  %3247 = load float, ptr %40, align 4, !tbaa !11
  %3248 = load float, ptr %40, align 4, !tbaa !11
  %3249 = call float @llvm.fmuladd.f32(float %3247, float %3248, float %3246)
  store float %3249, ptr %26, align 4, !tbaa !11
  %3250 = load ptr, ptr %13, align 8, !tbaa !5
  %3251 = load i64, ptr %25, align 8, !tbaa !9
  %3252 = getelementptr inbounds float, ptr %3250, i64 %3251
  %3253 = load float, ptr %3252, align 4, !tbaa !11
  %3254 = load float, ptr %40, align 4, !tbaa !11
  %3255 = fmul float %3253, %3254
  store float %3255, ptr %40, align 4, !tbaa !11
  %3256 = load float, ptr %51, align 4, !tbaa !11
  %3257 = load float, ptr %31, align 4, !tbaa !11
  %3258 = fadd float %3256, %3257
  %3259 = load float, ptr %34, align 4, !tbaa !11
  %3260 = fadd float %3258, %3259
  %3261 = load float, ptr %40, align 4, !tbaa !11
  %3262 = fadd float %3260, %3261
  store float %3262, ptr %24, align 4, !tbaa !11
  %3263 = load float, ptr %31, align 4, !tbaa !11
  %3264 = load float, ptr %34, align 4, !tbaa !11
  %3265 = fsub float %3263, %3264
  %3266 = load float, ptr %50, align 4, !tbaa !11
  %3267 = call float @llvm.fmuladd.f32(float %3265, float 8.000000e+00, float %3266)
  %3268 = load float, ptr %51, align 4, !tbaa !11
  %3269 = call float @llvm.fmuladd.f32(float %3268, float 2.000000e+00, float %3267)
  %3270 = fpext float %3269 to double
  %3271 = load float, ptr %40, align 4, !tbaa !11
  %3272 = fcmp oge float %3271, 0.000000e+00
  br i1 %3272, label %3273, label %3275

3273:                                             ; preds = %3234
  %3274 = load float, ptr %40, align 4, !tbaa !11
  br label %3278

3275:                                             ; preds = %3234
  %3276 = load float, ptr %40, align 4, !tbaa !11
  %3277 = fneg float %3276
  br label %3278

3278:                                             ; preds = %3275, %3273
  %3279 = phi float [ %3274, %3273 ], [ %3277, %3275 ]
  %3280 = fpext float %3279 to double
  %3281 = call double @llvm.fmuladd.f64(double %3280, double 3.000000e+00, double %3270)
  %3282 = load float, ptr %33, align 4, !tbaa !11
  %3283 = fcmp oge float %3282, 0.000000e+00
  br i1 %3283, label %3284, label %3286

3284:                                             ; preds = %3278
  %3285 = load float, ptr %33, align 4, !tbaa !11
  br label %3289

3286:                                             ; preds = %3278
  %3287 = load float, ptr %33, align 4, !tbaa !11
  %3288 = fneg float %3287
  br label %3289

3289:                                             ; preds = %3286, %3284
  %3290 = phi float [ %3285, %3284 ], [ %3288, %3286 ]
  %3291 = fpext float %3290 to double
  %3292 = load float, ptr %26, align 4, !tbaa !11
  %3293 = fpext float %3292 to double
  %3294 = call double @llvm.fmuladd.f64(double %3291, double %3293, double %3281)
  %3295 = fptrunc double %3294 to float
  store float %3295, ptr %50, align 4, !tbaa !11
  %3296 = load float, ptr %24, align 4, !tbaa !11
  %3297 = load float, ptr %41, align 4, !tbaa !11
  %3298 = fmul float %3296, %3297
  %3299 = fcmp ogt float %3298, 0.000000e+00
  br i1 %3299, label %3300, label %3329

3300:                                             ; preds = %3289
  %3301 = load float, ptr %24, align 4, !tbaa !11
  %3302 = fcmp oge float %3301, 0.000000e+00
  br i1 %3302, label %3303, label %3305

3303:                                             ; preds = %3300
  %3304 = load float, ptr %24, align 4, !tbaa !11
  br label %3308

3305:                                             ; preds = %3300
  %3306 = load float, ptr %24, align 4, !tbaa !11
  %3307 = fneg float %3306
  br label %3308

3308:                                             ; preds = %3305, %3303
  %3309 = phi float [ %3304, %3303 ], [ %3307, %3305 ]
  %3310 = fpext float %3309 to double
  %3311 = load float, ptr %41, align 4, !tbaa !11
  %3312 = fcmp oge float %3311, 0.000000e+00
  br i1 %3312, label %3313, label %3315

3313:                                             ; preds = %3308
  %3314 = load float, ptr %41, align 4, !tbaa !11
  br label %3318

3315:                                             ; preds = %3308
  %3316 = load float, ptr %41, align 4, !tbaa !11
  %3317 = fneg float %3316
  br label %3318

3318:                                             ; preds = %3315, %3313
  %3319 = phi float [ %3314, %3313 ], [ %3317, %3315 ]
  %3320 = fpext float %3319 to double
  %3321 = fdiv double %3320, 1.000000e+01
  %3322 = fcmp ogt double %3310, %3321
  br i1 %3322, label %3323, label %3329

3323:                                             ; preds = %3318
  %3324 = load i64, ptr %47, align 8, !tbaa !9
  %3325 = icmp ne i64 %3324, 0
  %3326 = xor i1 %3325, true
  %3327 = zext i1 %3326 to i32
  %3328 = sext i32 %3327 to i64
  store i64 %3328, ptr %47, align 8, !tbaa !9
  br label %3329

3329:                                             ; preds = %3323, %3318, %3289
  br label %3330

3330:                                             ; preds = %3329
  %3331 = load i64, ptr %46, align 8, !tbaa !9
  %3332 = add nsw i64 %3331, 1
  store i64 %3332, ptr %46, align 8, !tbaa !9
  br label %2537, !llvm.loop !36

3333:                                             ; preds = %2537
  %3334 = load ptr, ptr %17, align 8, !tbaa !5
  store i64 1, ptr %3334, align 8, !tbaa !9
  %3335 = load i64, ptr %49, align 8, !tbaa !9
  %3336 = icmp ne i64 %3335, 0
  br i1 %3336, label %3337, label %3346

3337:                                             ; preds = %3333
  %3338 = load ptr, ptr %12, align 8, !tbaa !5
  %3339 = load ptr, ptr %11, align 8, !tbaa !5
  %3340 = load i64, ptr %3339, align 8, !tbaa !9
  %3341 = getelementptr inbounds float, ptr %3338, i64 %3340
  %3342 = load float, ptr %3341, align 4, !tbaa !11
  %3343 = load float, ptr %33, align 4, !tbaa !11
  %3344 = fadd float %3342, %3343
  %3345 = load ptr, ptr %16, align 8, !tbaa !5
  store float %3344, ptr %3345, align 4, !tbaa !11
  br label %3354

3346:                                             ; preds = %3333
  %3347 = load ptr, ptr %12, align 8, !tbaa !5
  %3348 = load i64, ptr %28, align 8, !tbaa !9
  %3349 = getelementptr inbounds float, ptr %3347, i64 %3348
  %3350 = load float, ptr %3349, align 4, !tbaa !11
  %3351 = load float, ptr %33, align 4, !tbaa !11
  %3352 = fadd float %3350, %3351
  %3353 = load ptr, ptr %16, align 8, !tbaa !5
  store float %3352, ptr %3353, align 4, !tbaa !11
  br label %3354

3354:                                             ; preds = %3346, %3337
  br label %3355

3355:                                             ; preds = %3354
  br label %3356

3356:                                             ; preds = %3355, %3097, %2576, %2294, %1877, %1263, %947, %587
  store i32 0, ptr %9, align 4
  store i32 1, ptr %52, align 4
  br label %3357

3357:                                             ; preds = %3356, %84, %63
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %18) #5
  %3358 = load i32, ptr %9, align 4
  ret i32 %3358
}

; 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 i32 @slaed5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

declare double @slamch_(ptr noundef) #3

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

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

declare i32 @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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!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 noundef i32 @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 [3 x float], align 4
  %12 = alloca float, align 4
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  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 12, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 8, 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 i64 0, ptr %7, align 8, !tbaa !5
  %18 = load i64, ptr %0, align 8, !tbaa !5
  switch i64 %18, label %27 [
    i64 1, label %19
    i64 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
  %26 = tail call i32 @slaed5_(ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6) #6
  br label %.loopexit

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

35:                                               ; preds = %27
  %36 = add i64 %32, -1
  %37 = fmul float %30, 5.000000e-01
  %.not13151449 = icmp slt i64 %32, 1
  br i1 %.not13151449, label %._crit_edge1459, label %.lr.ph1452

.lr.ph1452:                                       ; preds = %35
  %38 = getelementptr inbounds float, ptr %17, i64 %32
  %min.iters.check1805 = icmp ult i64 %32, 12
  br i1 %min.iters.check1805, label %scalar.ph1804.preheader, label %vector.memcheck1793

vector.memcheck1793:                              ; preds = %.lr.ph1452
  %39 = shl i64 %32, 2
  %scevgep1794 = getelementptr i8, ptr %4, i64 %39
  %scevgep1795 = getelementptr i8, ptr %2, i64 %39
  %bound01796 = icmp ugt ptr %scevgep1795, %4
  %bound11797 = icmp ult ptr %38, %scevgep1794
  %found.conflict1798 = and i1 %bound01796, %bound11797
  %bound01799 = icmp ugt ptr %scevgep1795, %4
  %bound11800 = icmp ugt ptr %scevgep1794, %2
  %found.conflict1801 = and i1 %bound01799, %bound11800
  %conflict.rdx1802 = or i1 %found.conflict1798, %found.conflict1801
  br i1 %conflict.rdx1802, label %scalar.ph1804.preheader, label %vector.ph1806

vector.ph1806:                                    ; preds = %vector.memcheck1793
  %n.vec1808 = and i64 %32, 9223372036854775800
  %ind.end1809 = or disjoint i64 %n.vec1808, 1
  %broadcast.splatinsert1820 = insertelement <4 x float> poison, float %37, i64 0
  %broadcast.splat1821 = shufflevector <4 x float> %broadcast.splatinsert1820, <4 x float> poison, <4 x i32> zeroinitializer
  %40 = load float, ptr %38, align 4, !tbaa !9, !alias.scope !11
  %broadcast.splatinsert1818 = insertelement <4 x float> poison, float %40, i64 0
  %broadcast.splat1819 = shufflevector <4 x float> %broadcast.splatinsert1818, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1811

vector.body1811:                                  ; preds = %vector.body1811, %vector.ph1806
  %index1812 = phi i64 [ 0, %vector.ph1806 ], [ %index.next1822, %vector.body1811 ]
  %41 = getelementptr float, ptr %2, i64 %index1812
  %42 = getelementptr inbounds i8, ptr %41, i64 16
  %wide.load1814 = load <4 x float>, ptr %41, align 4, !tbaa !9, !alias.scope !14
  %wide.load1815 = load <4 x float>, ptr %42, align 4, !tbaa !9, !alias.scope !14
  %43 = fsub <4 x float> %wide.load1814, %broadcast.splat1819
  %44 = fsub <4 x float> %wide.load1815, %broadcast.splat1819
  %45 = fsub <4 x float> %43, %broadcast.splat1821
  %46 = fsub <4 x float> %44, %broadcast.splat1821
  %47 = getelementptr float, ptr %4, i64 %index1812
  %48 = getelementptr inbounds i8, ptr %47, i64 16
  store <4 x float> %45, ptr %47, align 4, !tbaa !9, !alias.scope !16, !noalias !18
  store <4 x float> %46, ptr %48, align 4, !tbaa !9, !alias.scope !16, !noalias !18
  %index.next1822 = add nuw i64 %index1812, 8
  %49 = icmp eq i64 %index.next1822, %n.vec1808
  br i1 %49, label %middle.block1803, label %vector.body1811, !llvm.loop !19

middle.block1803:                                 ; preds = %vector.body1811
  %cmp.n1823 = icmp eq i64 %32, %n.vec1808
  br i1 %cmp.n1823, label %._crit_edge1453, label %scalar.ph1804.preheader

scalar.ph1804.preheader:                          ; preds = %middle.block1803, %vector.memcheck1793, %.lr.ph1452
  %.012381450.ph = phi i64 [ 1, %vector.memcheck1793 ], [ 1, %.lr.ph1452 ], [ %ind.end1809, %middle.block1803 ]
  %xtraiter1974 = and i64 %32, 1
  %lcmp.mod1975.not = icmp eq i64 %xtraiter1974, 0
  br i1 %lcmp.mod1975.not, label %scalar.ph1804.prol.loopexit, label %scalar.ph1804.prol

scalar.ph1804.prol:                               ; preds = %scalar.ph1804.preheader
  %50 = getelementptr inbounds float, ptr %17, i64 %.012381450.ph
  %51 = load float, ptr %50, align 4, !tbaa !9
  %52 = load float, ptr %38, align 4, !tbaa !9
  %53 = fsub float %51, %52
  %54 = fsub float %53, %37
  %55 = getelementptr inbounds float, ptr %15, i64 %.012381450.ph
  store float %54, ptr %55, align 4, !tbaa !9
  %56 = add nuw i64 %.012381450.ph, 1
  br label %scalar.ph1804.prol.loopexit

scalar.ph1804.prol.loopexit:                      ; preds = %scalar.ph1804.prol, %scalar.ph1804.preheader
  %.012381450.unr = phi i64 [ %.012381450.ph, %scalar.ph1804.preheader ], [ %56, %scalar.ph1804.prol ]
  %57 = icmp eq i64 %32, %.012381450.ph
  br i1 %57, label %._crit_edge1453, label %scalar.ph1804

scalar.ph1804:                                    ; preds = %scalar.ph1804.prol.loopexit, %scalar.ph1804
  %.012381450 = phi i64 [ %71, %scalar.ph1804 ], [ %.012381450.unr, %scalar.ph1804.prol.loopexit ]
  %58 = getelementptr inbounds float, ptr %17, i64 %.012381450
  %59 = load float, ptr %58, align 4, !tbaa !9
  %60 = load float, ptr %38, align 4, !tbaa !9
  %61 = fsub float %59, %60
  %62 = fsub float %61, %37
  %63 = getelementptr inbounds float, ptr %15, i64 %.012381450
  store float %62, ptr %63, align 4, !tbaa !9
  %64 = add nuw i64 %.012381450, 1
  %65 = getelementptr float, ptr %2, i64 %.012381450
  %66 = load float, ptr %65, align 4, !tbaa !9
  %67 = load float, ptr %38, align 4, !tbaa !9
  %68 = fsub float %66, %67
  %69 = fsub float %68, %37
  %70 = getelementptr float, ptr %4, i64 %.012381450
  store float %69, ptr %70, align 4, !tbaa !9
  %71 = add nuw i64 %.012381450, 2
  %exitcond1577.not.1 = icmp eq i64 %64, %32
  br i1 %exitcond1577.not.1, label %._crit_edge1453, label %scalar.ph1804, !llvm.loop !23

._crit_edge1453:                                  ; preds = %scalar.ph1804.prol.loopexit, %scalar.ph1804, %middle.block1803
  %.not13161454 = icmp slt i64 %32, 3
  br i1 %.not13161454, label %._crit_edge1459, label %.lr.ph1458.preheader

.lr.ph1458.preheader:                             ; preds = %._crit_edge1453
  %72 = add nsw i64 %32, -2
  %73 = add nsw i64 %32, -3
  %xtraiter1977 = and i64 %72, 3
  %74 = icmp ult i64 %73, 3
  br i1 %74, label %._crit_edge1459.loopexit.unr-lcssa, label %.lr.ph1458.preheader.new

.lr.ph1458.preheader.new:                         ; preds = %.lr.ph1458.preheader
  %unroll_iter1981 = and i64 %72, -4
  br label %.lr.ph1458

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

._crit_edge1459.loopexit.unr-lcssa:               ; preds = %.lr.ph1458, %.lr.ph1458.preheader
  %.lcssa1899.ph = phi float [ poison, %.lr.ph1458.preheader ], [ %104, %.lr.ph1458 ]
  %.012141456.unr = phi float [ 0.000000e+00, %.lr.ph1458.preheader ], [ %104, %.lr.ph1458 ]
  %.112391455.unr = phi i64 [ 1, %.lr.ph1458.preheader ], [ %105, %.lr.ph1458 ]
  %lcmp.mod1979.not = icmp eq i64 %xtraiter1977, 0
  br i1 %lcmp.mod1979.not, label %._crit_edge1459, label %.lr.ph1458.epil

.lr.ph1458.epil:                                  ; preds = %._crit_edge1459.loopexit.unr-lcssa, %.lr.ph1458.epil
  %.012141456.epil = phi float [ %112, %.lr.ph1458.epil ], [ %.012141456.unr, %._crit_edge1459.loopexit.unr-lcssa ]
  %.112391455.epil = phi i64 [ %113, %.lr.ph1458.epil ], [ %.112391455.unr, %._crit_edge1459.loopexit.unr-lcssa ]
  %epil.iter1978 = phi i64 [ %epil.iter1978.next, %.lr.ph1458.epil ], [ 0, %._crit_edge1459.loopexit.unr-lcssa ]
  %106 = getelementptr inbounds float, ptr %16, i64 %.112391455.epil
  %107 = load float, ptr %106, align 4, !tbaa !9
  %108 = fmul float %107, %107
  %109 = getelementptr inbounds float, ptr %15, i64 %.112391455.epil
  %110 = load float, ptr %109, align 4, !tbaa !9
  %111 = fdiv float %108, %110
  %112 = fadd float %.012141456.epil, %111
  %113 = add nuw i64 %.112391455.epil, 1
  %epil.iter1978.next = add i64 %epil.iter1978, 1
  %epil.iter1978.cmp.not = icmp eq i64 %epil.iter1978.next, %xtraiter1977
  br i1 %epil.iter1978.cmp.not, label %._crit_edge1459, label %.lr.ph1458.epil, !llvm.loop !25

._crit_edge1459:                                  ; preds = %._crit_edge1459.loopexit.unr-lcssa, %.lr.ph1458.epil, %35, %._crit_edge1453
  %.01214.lcssa = phi float [ 0.000000e+00, %._crit_edge1453 ], [ 0.000000e+00, %35 ], [ %.lcssa1899.ph, %._crit_edge1459.loopexit.unr-lcssa ], [ %112, %.lr.ph1458.epil ]
  %114 = fadd float %31, %.01214.lcssa
  %115 = getelementptr inbounds float, ptr %16, i64 %36
  %116 = getelementptr inbounds float, ptr %15, i64 %36
  %117 = load <2 x float>, ptr %115, align 4, !tbaa !9
  %118 = fmul <2 x float> %117, %117
  %119 = load <2 x float>, ptr %116, align 4, !tbaa !9
  %120 = fdiv <2 x float> %118, %119
  %121 = extractelement <2 x float> %120, i64 0
  %122 = fadd float %114, %121
  %123 = extractelement <2 x float> %120, i64 1
  %124 = fadd float %122, %123
  %125 = fcmp ugt float %124, 0.000000e+00
  %126 = getelementptr inbounds float, ptr %17, i64 %32
  %127 = load float, ptr %126, align 4, !tbaa !9
  %128 = getelementptr inbounds float, ptr %17, i64 %36
  %129 = load float, ptr %128, align 4, !tbaa !9
  %130 = fsub float %127, %129
  br i1 %125, label %175, label %131

131:                                              ; preds = %._crit_edge1459
  %132 = load float, ptr %5, align 4, !tbaa !9
  %133 = fadd float %130, %132
  %134 = insertelement <2 x float> poison, float %133, i64 0
  %135 = insertelement <2 x float> %134, float %132, i64 1
  %136 = fdiv <2 x float> %118, %135
  %shift = shufflevector <2 x float> %136, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %137 = fadd <2 x float> %shift, %136
  %138 = extractelement <2 x float> %137, i64 0
  %139 = fcmp ugt float %114, %138
  br i1 %139, label %140, label %173

140:                                              ; preds = %131
  %141 = fneg float %114
  %142 = extractelement <2 x float> %118, i64 0
  %143 = tail call float @llvm.fmuladd.f32(float %141, float %130, float %142)
  %144 = extractelement <2 x float> %117, i64 1
  %145 = tail call float @llvm.fmuladd.f32(float %144, float %144, float %143)
  %146 = extractelement <2 x float> %118, i64 1
  %147 = fmul float %146, %130
  %148 = fcmp olt float %145, 0.000000e+00
  br i1 %148, label %149, label %161

149:                                              ; preds = %140
  %150 = fmul float %147, 2.000000e+00
  %151 = fpext float %150 to double
  %152 = fmul float %147, 4.000000e+00
  %153 = fmul float %114, %152
  %154 = tail call float @llvm.fmuladd.f32(float %145, float %145, float %153)
  %155 = fpext float %154 to double
  %156 = tail call double @sqrt(double noundef %155) #6
  %157 = fpext float %145 to double
  %158 = fsub double %156, %157
  %159 = fdiv double %151, %158
  %160 = fptrunc double %159 to float
  br label %173

161:                                              ; preds = %140
  %162 = fpext float %145 to double
  %163 = fmul float %147, 4.000000e+00
  %164 = fmul float %114, %163
  %165 = tail call float @llvm.fmuladd.f32(float %145, float %145, float %164)
  %166 = fpext float %165 to double
  %167 = tail call double @sqrt(double noundef %166) #6
  %168 = fadd double %167, %162
  %169 = fmul float %114, 2.000000e+00
  %170 = fpext float %169 to double
  %171 = fdiv double %168, %170
  %172 = fptrunc double %171 to float
  br label %173

173:                                              ; preds = %131, %149, %161
  %.01223 = phi float [ %160, %149 ], [ %172, %161 ], [ %132, %131 ]
  %174 = load float, ptr %5, align 4, !tbaa !9
  br label %207

175:                                              ; preds = %._crit_edge1459
  %176 = fneg float %114
  %177 = extractelement <2 x float> %118, i64 0
  %178 = tail call float @llvm.fmuladd.f32(float %176, float %130, float %177)
  %179 = extractelement <2 x float> %117, i64 1
  %180 = tail call float @llvm.fmuladd.f32(float %179, float %179, float %178)
  %181 = extractelement <2 x float> %118, i64 1
  %182 = fmul float %181, %130
  %183 = fcmp olt float %180, 0.000000e+00
  br i1 %183, label %184, label %195

184:                                              ; preds = %175
  %185 = fmul float %182, 2.000000e+00
  %186 = fpext float %185 to double
  %187 = fmul float %182, 4.000000e+00
  %188 = fmul float %114, %187
  %189 = tail call float @llvm.fmuladd.f32(float %180, float %180, float %188)
  %190 = fpext float %189 to double
  %191 = tail call double @sqrt(double noundef %190) #6
  %192 = fpext float %180 to double
  %193 = fsub double %191, %192
  %194 = fdiv double %186, %193
  br label %206

195:                                              ; preds = %175
  %196 = fpext float %180 to double
  %197 = fmul float %182, 4.000000e+00
  %198 = fmul float %114, %197
  %199 = tail call float @llvm.fmuladd.f32(float %180, float %180, float %198)
  %200 = fpext float %199 to double
  %201 = tail call double @sqrt(double noundef %200) #6
  %202 = fadd double %201, %196
  %203 = fmul float %114, 2.000000e+00
  %204 = fpext float %203 to double
  %205 = fdiv double %202, %204
  br label %206

206:                                              ; preds = %195, %184
  %.11224.in = phi double [ %194, %184 ], [ %205, %195 ]
  %.11224 = fptrunc double %.11224.in to float
  br label %207

207:                                              ; preds = %206, %173
  %.21225 = phi float [ %.01223, %173 ], [ %.11224, %206 ]
  %.01189 = phi float [ %37, %173 ], [ 0.000000e+00, %206 ]
  %.01181 = phi float [ %174, %173 ], [ %37, %206 ]
  %208 = load i64, ptr %0, align 8, !tbaa !5
  %.not13171461 = icmp slt i64 %208, 1
  br i1 %.not13171461, label %.preheader, label %.lr.ph1464

.lr.ph1464:                                       ; preds = %207
  %209 = load i64, ptr %1, align 8, !tbaa !5
  %210 = getelementptr inbounds float, ptr %17, i64 %209
  %min.iters.check1837 = icmp ult i64 %208, 12
  br i1 %min.iters.check1837, label %scalar.ph1836.preheader, label %vector.memcheck1824

scalar.ph1836.preheader:                          ; preds = %middle.block1835, %vector.memcheck1824, %.lr.ph1464
  %.212401462.ph = phi i64 [ 1, %vector.memcheck1824 ], [ 1, %.lr.ph1464 ], [ %ind.end1841, %middle.block1835 ]
  %xtraiter1983 = and i64 %208, 1
  %lcmp.mod1984.not = icmp eq i64 %xtraiter1983, 0
  br i1 %lcmp.mod1984.not, label %scalar.ph1836.prol.loopexit, label %scalar.ph1836.prol

scalar.ph1836.prol:                               ; preds = %scalar.ph1836.preheader
  %211 = getelementptr inbounds float, ptr %17, i64 %.212401462.ph
  %212 = load float, ptr %211, align 4, !tbaa !9
  %213 = load float, ptr %210, align 4, !tbaa !9
  %214 = fsub float %212, %213
  %215 = fsub float %214, %.21225
  %216 = getelementptr inbounds float, ptr %15, i64 %.212401462.ph
  store float %215, ptr %216, align 4, !tbaa !9
  %217 = add nuw i64 %.212401462.ph, 1
  br label %scalar.ph1836.prol.loopexit

scalar.ph1836.prol.loopexit:                      ; preds = %scalar.ph1836.prol, %scalar.ph1836.preheader
  %.212401462.unr = phi i64 [ %.212401462.ph, %scalar.ph1836.preheader ], [ %217, %scalar.ph1836.prol ]
  %218 = icmp eq i64 %208, %.212401462.ph
  br i1 %218, label %.preheader, label %scalar.ph1836

vector.memcheck1824:                              ; preds = %.lr.ph1464
  %219 = shl i64 %208, 2
  %scevgep1825 = getelementptr i8, ptr %4, i64 %219
  %220 = shl nsw i64 %209, 2
  %scevgep1826 = getelementptr i8, ptr %2, i64 %220
  %scevgep1827 = getelementptr i8, ptr %2, i64 %219
  %bound01828 = icmp ugt ptr %scevgep1826, %4
  %bound11829 = icmp ult ptr %210, %scevgep1825
  %found.conflict1830 = and i1 %bound01828, %bound11829
  %bound01831 = icmp ugt ptr %scevgep1827, %4
  %bound11832 = icmp ugt ptr %scevgep1825, %2
  %found.conflict1833 = and i1 %bound01831, %bound11832
  %conflict.rdx1834 = or i1 %found.conflict1830, %found.conflict1833
  br i1 %conflict.rdx1834, label %scalar.ph1836.preheader, label %vector.ph1838

vector.ph1838:                                    ; preds = %vector.memcheck1824
  %n.vec1840 = and i64 %208, 9223372036854775800
  %ind.end1841 = or disjoint i64 %n.vec1840, 1
  %broadcast.splatinsert1852 = insertelement <4 x float> poison, float %.21225, i64 0
  %broadcast.splat1853 = shufflevector <4 x float> %broadcast.splatinsert1852, <4 x float> poison, <4 x i32> zeroinitializer
  %221 = load float, ptr %210, align 4, !tbaa !9, !alias.scope !27
  %broadcast.splatinsert1850 = insertelement <4 x float> poison, float %221, i64 0
  %broadcast.splat1851 = shufflevector <4 x float> %broadcast.splatinsert1850, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1843

vector.body1843:                                  ; preds = %vector.body1843, %vector.ph1838
  %index1844 = phi i64 [ 0, %vector.ph1838 ], [ %index.next1854, %vector.body1843 ]
  %222 = getelementptr float, ptr %2, i64 %index1844
  %223 = getelementptr inbounds i8, ptr %222, i64 16
  %wide.load1846 = load <4 x float>, ptr %222, align 4, !tbaa !9, !alias.scope !30
  %wide.load1847 = load <4 x float>, ptr %223, align 4, !tbaa !9, !alias.scope !30
  %224 = fsub <4 x float> %wide.load1846, %broadcast.splat1851
  %225 = fsub <4 x float> %wide.load1847, %broadcast.splat1851
  %226 = fsub <4 x float> %224, %broadcast.splat1853
  %227 = fsub <4 x float> %225, %broadcast.splat1853
  %228 = getelementptr float, ptr %4, i64 %index1844
  %229 = getelementptr inbounds i8, ptr %228, i64 16
  store <4 x float> %226, ptr %228, align 4, !tbaa !9, !alias.scope !32, !noalias !34
  store <4 x float> %227, ptr %229, align 4, !tbaa !9, !alias.scope !32, !noalias !34
  %index.next1854 = add nuw i64 %index1844, 8
  %230 = icmp eq i64 %index.next1854, %n.vec1840
  br i1 %230, label %middle.block1835, label %vector.body1843, !llvm.loop !35

middle.block1835:                                 ; preds = %vector.body1843
  %cmp.n1855 = icmp eq i64 %208, %n.vec1840
  br i1 %cmp.n1855, label %.preheader, label %scalar.ph1836.preheader

.preheader:                                       ; preds = %scalar.ph1836.prol.loopexit, %scalar.ph1836, %middle.block1835, %207
  %.not1318.not1465 = icmp sgt i64 %32, 1
  br i1 %.not1318.not1465, label %.lr.ph1470.preheader, label %._crit_edge1471

.lr.ph1470.preheader:                             ; preds = %.preheader
  %xtraiter1986 = and i64 %36, 1
  %231 = icmp eq i64 %32, 2
  br i1 %231, label %._crit_edge1471.loopexit.unr-lcssa, label %.lr.ph1470.preheader.new

.lr.ph1470.preheader.new:                         ; preds = %.lr.ph1470.preheader
  %unroll_iter1992 = and i64 %36, -2
  br label %.lr.ph1470

scalar.ph1836:                                    ; preds = %scalar.ph1836.prol.loopexit, %scalar.ph1836
  %.212401462 = phi i64 [ %245, %scalar.ph1836 ], [ %.212401462.unr, %scalar.ph1836.prol.loopexit ]
  %232 = getelementptr inbounds float, ptr %17, i64 %.212401462
  %233 = load float, ptr %232, align 4, !tbaa !9
  %234 = load float, ptr %210, align 4, !tbaa !9
  %235 = fsub float %233, %234
  %236 = fsub float %235, %.21225
  %237 = getelementptr inbounds float, ptr %15, i64 %.212401462
  store float %236, ptr %237, align 4, !tbaa !9
  %238 = add nuw i64 %.212401462, 1
  %239 = getelementptr float, ptr %2, i64 %.212401462
  %240 = load float, ptr %239, align 4, !tbaa !9
  %241 = load float, ptr %210, align 4, !tbaa !9
  %242 = fsub float %240, %241
  %243 = fsub float %242, %.21225
  %244 = getelementptr float, ptr %4, i64 %.212401462
  store float %243, ptr %244, align 4, !tbaa !9
  %245 = add nuw i64 %.212401462, 2
  %exitcond1579.not.1 = icmp eq i64 %238, %208
  br i1 %exitcond1579.not.1, label %.preheader, label %scalar.ph1836, !llvm.loop !36

.lr.ph1470:                                       ; preds = %.lr.ph1470, %.lr.ph1470.preheader.new
  %.011751469 = phi float [ 0.000000e+00, %.lr.ph1470.preheader.new ], [ %268, %.lr.ph1470 ]
  %.312411466 = phi i64 [ 1, %.lr.ph1470.preheader.new ], [ %269, %.lr.ph1470 ]
  %246 = phi <2 x float> [ zeroinitializer, %.lr.ph1470.preheader.new ], [ %266, %.lr.ph1470 ]
  %niter1993 = phi i64 [ 0, %.lr.ph1470.preheader.new ], [ %niter1993.next.1, %.lr.ph1470 ]
  %247 = getelementptr inbounds float, ptr %16, i64 %.312411466
  %248 = load float, ptr %247, align 4, !tbaa !9
  %249 = getelementptr inbounds float, ptr %15, i64 %.312411466
  %250 = load float, ptr %249, align 4, !tbaa !9
  %251 = fdiv float %248, %250
  %252 = insertelement <2 x float> poison, float %248, i64 0
  %253 = insertelement <2 x float> %252, float %251, i64 1
  %254 = shufflevector <2 x float> %253, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %255 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %253, <2 x float> %254, <2 x float> %246)
  %256 = extractelement <2 x float> %255, i64 0
  %257 = fadd float %.011751469, %256
  %258 = getelementptr float, ptr %3, i64 %.312411466
  %259 = load float, ptr %258, align 4, !tbaa !9
  %260 = getelementptr float, ptr %4, i64 %.312411466
  %261 = load float, ptr %260, align 4, !tbaa !9
  %262 = fdiv float %259, %261
  %263 = insertelement <2 x float> poison, float %259, i64 0
  %264 = insertelement <2 x float> %263, float %262, i64 1
  %265 = shufflevector <2 x float> %264, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %266 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %264, <2 x float> %265, <2 x float> %255)
  %267 = extractelement <2 x float> %266, i64 0
  %268 = fadd float %257, %267
  %269 = add nuw nsw i64 %.312411466, 2
  %niter1993.next.1 = add i64 %niter1993, 2
  %niter1993.ncmp.1 = icmp eq i64 %niter1993.next.1, %unroll_iter1992
  br i1 %niter1993.ncmp.1, label %._crit_edge1471.loopexit.unr-lcssa, label %.lr.ph1470, !llvm.loop !37

._crit_edge1471.loopexit.unr-lcssa:               ; preds = %.lr.ph1470, %.lr.ph1470.preheader
  %.lcssa1898.ph = phi <2 x float> [ poison, %.lr.ph1470.preheader ], [ %266, %.lr.ph1470 ]
  %.lcssa1897.ph = phi float [ poison, %.lr.ph1470.preheader ], [ %268, %.lr.ph1470 ]
  %.011751469.unr = phi float [ 0.000000e+00, %.lr.ph1470.preheader ], [ %268, %.lr.ph1470 ]
  %.312411466.unr = phi i64 [ 1, %.lr.ph1470.preheader ], [ %269, %.lr.ph1470 ]
  %.unr1988 = phi <2 x float> [ zeroinitializer, %.lr.ph1470.preheader ], [ %266, %.lr.ph1470 ]
  %lcmp.mod1989.not = icmp eq i64 %xtraiter1986, 0
  br i1 %lcmp.mod1989.not, label %._crit_edge1471, label %.lr.ph1470.epil

.lr.ph1470.epil:                                  ; preds = %._crit_edge1471.loopexit.unr-lcssa
  %270 = getelementptr inbounds float, ptr %16, i64 %.312411466.unr
  %271 = load float, ptr %270, align 4, !tbaa !9
  %272 = getelementptr inbounds float, ptr %15, i64 %.312411466.unr
  %273 = load float, ptr %272, align 4, !tbaa !9
  %274 = fdiv float %271, %273
  %275 = insertelement <2 x float> poison, float %271, i64 0
  %276 = insertelement <2 x float> %275, float %274, i64 1
  %277 = shufflevector <2 x float> %276, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %278 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %276, <2 x float> %277, <2 x float> %.unr1988)
  %279 = extractelement <2 x float> %278, i64 0
  %280 = fadd float %.011751469.unr, %279
  br label %._crit_edge1471

._crit_edge1471:                                  ; preds = %.lr.ph1470.epil, %._crit_edge1471.loopexit.unr-lcssa, %.preheader
  %.01175.lcssa = phi float [ 0.000000e+00, %.preheader ], [ %.lcssa1897.ph, %._crit_edge1471.loopexit.unr-lcssa ], [ %280, %.lr.ph1470.epil ]
  %281 = phi <2 x float> [ zeroinitializer, %.preheader ], [ %.lcssa1898.ph, %._crit_edge1471.loopexit.unr-lcssa ], [ %278, %.lr.ph1470.epil ]
  %282 = fcmp oge float %.01175.lcssa, 0.000000e+00
  %283 = fneg float %.01175.lcssa
  %284 = select i1 %282, float %.01175.lcssa, float %283
  %285 = getelementptr inbounds float, ptr %16, i64 %208
  %286 = load float, ptr %285, align 4, !tbaa !9
  %287 = getelementptr inbounds float, ptr %15, i64 %208
  %288 = load float, ptr %287, align 4, !tbaa !9
  %289 = fdiv float %286, %288
  %290 = fmul float %286, %289
  %291 = fmul float %289, %289
  %292 = fneg float %290
  %293 = extractelement <2 x float> %281, i64 0
  %294 = fsub float %292, %293
  %295 = tail call float @llvm.fmuladd.f32(float %294, float 8.000000e+00, float %284)
  %296 = fsub float %295, %290
  %297 = fadd float %31, %296
  %298 = fpext float %297 to double
  %299 = fcmp oge float %.21225, 0.000000e+00
  %300 = fneg float %.21225
  %301 = select i1 %299, float %.21225, float %300
  %302 = fpext float %301 to double
  %303 = extractelement <2 x float> %281, i64 1
  %304 = fadd float %303, %291
  %305 = fpext float %304 to double
  %306 = tail call double @llvm.fmuladd.f64(double %302, double %305, double %298)
  %307 = fptrunc double %306 to float
  %308 = fadd float %31, %290
  %309 = fadd float %293, %308
  %310 = fcmp oge float %309, 0.000000e+00
  %311 = fneg float %309
  %312 = select i1 %310, float %309, float %311
  %313 = fmul float %29, %307
  %314 = fcmp ugt float %312, %313
  br i1 %314, label %320, label %315

315:                                              ; preds = %._crit_edge1471
  %316 = load i64, ptr %1, align 8, !tbaa !5
  %317 = getelementptr inbounds float, ptr %17, i64 %316
  %318 = load float, ptr %317, align 4, !tbaa !9
  %319 = fadd float %.21225, %318
  store float %319, ptr %6, align 4, !tbaa !9
  br label %.loopexit

320:                                              ; preds = %._crit_edge1471
  %321 = fcmp ugt float %309, 0.000000e+00
  br i1 %321, label %325, label %322

322:                                              ; preds = %320
  %323 = fcmp oge float %.01189, %.21225
  %324 = select i1 %323, float %.01189, float %.21225
  br label %thread-pre-split

325:                                              ; preds = %320
  %326 = fcmp ole float %.01181, %.21225
  %327 = select i1 %326, float %.01181, float %.21225
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %325, %322
  %.11190 = phi float [ %324, %322 ], [ %.01189, %325 ]
  %.11182 = phi float [ %.01181, %322 ], [ %327, %325 ]
  %328 = getelementptr i8, ptr %287, i64 -4
  %329 = load float, ptr %328, align 4, !tbaa !9
  %330 = fneg float %329
  %331 = tail call float @llvm.fmuladd.f32(float %330, float %303, float %309)
  %332 = fneg float %288
  %333 = tail call float @llvm.fmuladd.f32(float %332, float %291, float %331)
  %334 = fadd float %288, %329
  %335 = fmul float %288, %329
  %336 = fneg float %335
  %337 = fmul float %304, %336
  %338 = tail call float @llvm.fmuladd.f32(float %334, float %309, float %337)
  %339 = fmul float %309, %335
  %340 = fcmp olt float %333, 0.000000e+00
  %341 = fneg float %333
  %342 = select i1 %340, float %341, float %333
  %343 = fcmp oeq float %333, 0.000000e+00
  br i1 %343, label %344, label %346

344:                                              ; preds = %thread-pre-split
  %345 = fsub float %.11182, %.21225
  br label %378

346:                                              ; preds = %thread-pre-split
  %347 = fcmp ult float %338, 0.000000e+00
  br i1 %347, label %363, label %348

348:                                              ; preds = %346
  %349 = fpext float %338 to double
  %350 = fmul float %339, -4.000000e+00
  %351 = fmul float %350, %342
  %352 = tail call float @llvm.fmuladd.f32(float %338, float %338, float %351)
  %353 = fcmp oge float %352, 0.000000e+00
  %354 = fneg float %352
  %355 = select i1 %353, float %352, float %354
  %356 = fpext float %355 to double
  %357 = tail call double @sqrt(double noundef %356) #6
  %358 = fadd double %357, %349
  %359 = fmul float %342, 2.000000e+00
  %360 = fpext float %359 to double
  %361 = fdiv double %358, %360
  %362 = fptrunc double %361 to float
  br label %378

363:                                              ; preds = %346
  %364 = fmul float %339, 2.000000e+00
  %365 = fpext float %364 to double
  %366 = fpext float %338 to double
  %367 = fmul float %339, -4.000000e+00
  %368 = fmul float %367, %342
  %369 = tail call float @llvm.fmuladd.f32(float %338, float %338, float %368)
  %370 = fcmp oge float %369, 0.000000e+00
  %371 = fneg float %369
  %372 = select i1 %370, float %369, float %371
  %373 = fpext float %372 to double
  %374 = tail call double @sqrt(double noundef %373) #6
  %375 = fsub double %366, %374
  %376 = fdiv double %365, %375
  %377 = fptrunc double %376 to float
  br label %378

378:                                              ; preds = %348, %363, %344
  %379 = phi float [ %362, %348 ], [ %377, %363 ], [ %345, %344 ]
  %380 = fmul float %309, %379
  %381 = fcmp ogt float %380, 0.000000e+00
  %382 = fdiv float %311, %304
  %383 = select i1 %381, float %382, float %379
  %384 = fadd float %.21225, %383
  %385 = fcmp ogt float %384, %.11182
  %386 = fcmp olt float %384, %.11190
  %or.cond = select i1 %385, i1 true, i1 %386
  br i1 %or.cond, label %387, label %395

387:                                              ; preds = %378
  %388 = fcmp olt float %309, 0.000000e+00
  br i1 %388, label %389, label %392

389:                                              ; preds = %387
  %390 = fsub float %.11182, %.21225
  %391 = fmul float %390, 5.000000e-01
  br label %395

392:                                              ; preds = %387
  %393 = fsub float %.11190, %.21225
  %394 = fmul float %393, 5.000000e-01
  br label %395

395:                                              ; preds = %378, %389, %392
  %396 = phi float [ %383, %378 ], [ %391, %389 ], [ %394, %392 ]
  %397 = load i64, ptr %0, align 8, !tbaa !5
  %.not13191475 = icmp slt i64 %397, 1
  br i1 %.not13191475, label %._crit_edge1479, label %.lr.ph1478.preheader

.lr.ph1478.preheader:                             ; preds = %395
  %min.iters.check1858 = icmp ult i64 %397, 8
  br i1 %min.iters.check1858, label %.lr.ph1478.preheader1896, label %vector.ph1859

vector.ph1859:                                    ; preds = %.lr.ph1478.preheader
  %n.vec1861 = and i64 %397, 9223372036854775800
  %ind.end1862 = or disjoint i64 %n.vec1861, 1
  %broadcast.splatinsert1869 = insertelement <4 x float> poison, float %396, i64 0
  %broadcast.splat1870 = shufflevector <4 x float> %broadcast.splatinsert1869, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1864

vector.body1864:                                  ; preds = %vector.body1864, %vector.ph1859
  %index1865 = phi i64 [ 0, %vector.ph1859 ], [ %index.next1871, %vector.body1864 ]
  %398 = getelementptr float, ptr %4, i64 %index1865
  %399 = getelementptr inbounds i8, ptr %398, i64 16
  %wide.load1867 = load <4 x float>, ptr %398, align 4, !tbaa !9
  %wide.load1868 = load <4 x float>, ptr %399, align 4, !tbaa !9
  %400 = fsub <4 x float> %wide.load1867, %broadcast.splat1870
  %401 = fsub <4 x float> %wide.load1868, %broadcast.splat1870
  store <4 x float> %400, ptr %398, align 4, !tbaa !9
  store <4 x float> %401, ptr %399, align 4, !tbaa !9
  %index.next1871 = add nuw i64 %index1865, 8
  %402 = icmp eq i64 %index.next1871, %n.vec1861
  br i1 %402, label %middle.block1856, label %vector.body1864, !llvm.loop !38

middle.block1856:                                 ; preds = %vector.body1864
  %cmp.n1872 = icmp eq i64 %397, %n.vec1861
  br i1 %cmp.n1872, label %._crit_edge1479, label %.lr.ph1478.preheader1896

.lr.ph1478.preheader1896:                         ; preds = %middle.block1856, %.lr.ph1478.preheader
  %.412421476.ph = phi i64 [ 1, %.lr.ph1478.preheader ], [ %ind.end1862, %middle.block1856 ]
  br label %.lr.ph1478

.lr.ph1478:                                       ; preds = %.lr.ph1478.preheader1896, %.lr.ph1478
  %.412421476 = phi i64 [ %406, %.lr.ph1478 ], [ %.412421476.ph, %.lr.ph1478.preheader1896 ]
  %403 = getelementptr inbounds float, ptr %15, i64 %.412421476
  %404 = load float, ptr %403, align 4, !tbaa !9
  %405 = fsub float %404, %396
  store float %405, ptr %403, align 4, !tbaa !9
  %406 = add nuw i64 %.412421476, 1
  %exitcond1581.not = icmp eq i64 %.412421476, %397
  br i1 %exitcond1581.not, label %._crit_edge1479, label %.lr.ph1478, !llvm.loop !39

._crit_edge1479:                                  ; preds = %.lr.ph1478, %middle.block1856, %395
  %407 = fadd float %.21225, %396
  br i1 %.not1318.not1465, label %.lr.ph1486.preheader, label %.lr.ph1524

.lr.ph1486.preheader:                             ; preds = %._crit_edge1479
  %xtraiter1994 = and i64 %36, 1
  %408 = icmp eq i64 %32, 2
  br i1 %408, label %.lr.ph1524.loopexit.unr-lcssa, label %.lr.ph1486.preheader.new

.lr.ph1486.preheader.new:                         ; preds = %.lr.ph1486.preheader
  %unroll_iter2000 = and i64 %36, -2
  br label %.lr.ph1486

.lr.ph1486:                                       ; preds = %.lr.ph1486, %.lr.ph1486.preheader.new
  %.11484 = phi float [ 0.000000e+00, %.lr.ph1486.preheader.new ], [ %431, %.lr.ph1486 ]
  %.512431481 = phi i64 [ 1, %.lr.ph1486.preheader.new ], [ %432, %.lr.ph1486 ]
  %409 = phi <2 x float> [ zeroinitializer, %.lr.ph1486.preheader.new ], [ %429, %.lr.ph1486 ]
  %niter2001 = phi i64 [ 0, %.lr.ph1486.preheader.new ], [ %niter2001.next.1, %.lr.ph1486 ]
  %410 = getelementptr inbounds float, ptr %16, i64 %.512431481
  %411 = load float, ptr %410, align 4, !tbaa !9
  %412 = getelementptr inbounds float, ptr %15, i64 %.512431481
  %413 = load float, ptr %412, align 4, !tbaa !9
  %414 = fdiv float %411, %413
  %415 = insertelement <2 x float> poison, float %411, i64 0
  %416 = insertelement <2 x float> %415, float %414, i64 1
  %417 = shufflevector <2 x float> %416, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %418 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %416, <2 x float> %417, <2 x float> %409)
  %419 = extractelement <2 x float> %418, i64 0
  %420 = fadd float %.11484, %419
  %421 = getelementptr float, ptr %3, i64 %.512431481
  %422 = load float, ptr %421, align 4, !tbaa !9
  %423 = getelementptr float, ptr %4, i64 %.512431481
  %424 = load float, ptr %423, align 4, !tbaa !9
  %425 = fdiv float %422, %424
  %426 = insertelement <2 x float> poison, float %422, i64 0
  %427 = insertelement <2 x float> %426, float %425, i64 1
  %428 = shufflevector <2 x float> %427, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %429 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %427, <2 x float> %428, <2 x float> %418)
  %430 = extractelement <2 x float> %429, i64 0
  %431 = fadd float %420, %430
  %432 = add nuw nsw i64 %.512431481, 2
  %niter2001.next.1 = add i64 %niter2001, 2
  %niter2001.ncmp.1 = icmp eq i64 %niter2001.next.1, %unroll_iter2000
  br i1 %niter2001.ncmp.1, label %.lr.ph1524.loopexit.unr-lcssa, label %.lr.ph1486, !llvm.loop !40

.lr.ph1524.loopexit.unr-lcssa:                    ; preds = %.lr.ph1486, %.lr.ph1486.preheader
  %.lcssa1895.ph = phi <2 x float> [ poison, %.lr.ph1486.preheader ], [ %429, %.lr.ph1486 ]
  %.lcssa1894.ph = phi float [ poison, %.lr.ph1486.preheader ], [ %431, %.lr.ph1486 ]
  %.11484.unr = phi float [ 0.000000e+00, %.lr.ph1486.preheader ], [ %431, %.lr.ph1486 ]
  %.512431481.unr = phi i64 [ 1, %.lr.ph1486.preheader ], [ %432, %.lr.ph1486 ]
  %.unr1996 = phi <2 x float> [ zeroinitializer, %.lr.ph1486.preheader ], [ %429, %.lr.ph1486 ]
  %lcmp.mod1997.not = icmp eq i64 %xtraiter1994, 0
  br i1 %lcmp.mod1997.not, label %.lr.ph1524, label %.lr.ph1486.epil

.lr.ph1486.epil:                                  ; preds = %.lr.ph1524.loopexit.unr-lcssa
  %433 = getelementptr inbounds float, ptr %16, i64 %.512431481.unr
  %434 = load float, ptr %433, align 4, !tbaa !9
  %435 = getelementptr inbounds float, ptr %15, i64 %.512431481.unr
  %436 = load float, ptr %435, align 4, !tbaa !9
  %437 = fdiv float %434, %436
  %438 = insertelement <2 x float> poison, float %434, i64 0
  %439 = insertelement <2 x float> %438, float %437, i64 1
  %440 = shufflevector <2 x float> %439, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %441 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %439, <2 x float> %440, <2 x float> %.unr1996)
  %442 = extractelement <2 x float> %441, i64 0
  %443 = fadd float %.11484.unr, %442
  br label %.lr.ph1524

.lr.ph1524:                                       ; preds = %.lr.ph1486.epil, %.lr.ph1524.loopexit.unr-lcssa, %._crit_edge1479
  %.1.lcssa = phi float [ 0.000000e+00, %._crit_edge1479 ], [ %.lcssa1894.ph, %.lr.ph1524.loopexit.unr-lcssa ], [ %443, %.lr.ph1486.epil ]
  %444 = phi <2 x float> [ zeroinitializer, %._crit_edge1479 ], [ %.lcssa1895.ph, %.lr.ph1524.loopexit.unr-lcssa ], [ %441, %.lr.ph1486.epil ]
  %445 = getelementptr inbounds float, ptr %16, i64 %397
  %446 = load float, ptr %445, align 4, !tbaa !9
  %447 = getelementptr inbounds float, ptr %15, i64 %397
  %448 = load float, ptr %447, align 4, !tbaa !9
  %449 = fdiv float %446, %448
  %450 = fmul float %446, %449
  %451 = fadd float %31, %450
  %452 = extractelement <2 x float> %444, i64 0
  %453 = fadd float %452, %451
  %454 = fcmp oge float %407, 0.000000e+00
  %455 = fneg float %407
  %456 = select i1 %454, float %407, float %455
  %457 = fpext float %456 to double
  %458 = fmul float %449, %449
  %459 = extractelement <2 x float> %444, i64 1
  %460 = fadd float %459, %458
  %461 = fpext float %460 to double
  %462 = fneg float %450
  %463 = fsub float %462, %452
  %464 = fcmp oge float %.1.lcssa, 0.000000e+00
  %465 = fneg float %.1.lcssa
  %466 = select i1 %464, float %.1.lcssa, float %465
  %467 = tail call float @llvm.fmuladd.f32(float %463, float 8.000000e+00, float %466)
  %468 = fsub float %467, %450
  %469 = fadd float %31, %468
  %470 = fpext float %469 to double
  %471 = tail call double @llvm.fmuladd.f64(double %457, double %461, double %470)
  %invariant.gep = getelementptr i8, ptr %4, i64 -8
  %xtraiter2002 = and i64 %36, 1
  %472 = icmp eq i64 %32, 2
  %unroll_iter2008 = and i64 %36, -2
  %lcmp.mod2005.not = icmp eq i64 %xtraiter2002, 0
  br label %473

473:                                              ; preds = %.lr.ph1524, %._crit_edge1503
  %474 = phi float [ %448, %.lr.ph1524 ], [ %605, %._crit_edge1503 ]
  %475 = phi i64 [ %397, %.lr.ph1524 ], [ %552, %._crit_edge1503 ]
  %storemerge13211522 = phi i64 [ 3, %.lr.ph1524 ], [ %storemerge1321, %._crit_edge1503 ]
  %.2.in1521 = phi double [ %471, %.lr.ph1524 ], [ %623, %._crit_edge1503 ]
  %.211831520 = phi float [ %.11182, %.lr.ph1524 ], [ %.31184, %._crit_edge1503 ]
  %.211911519 = phi float [ %.11190, %.lr.ph1524 ], [ %.31192, %._crit_edge1503 ]
  %.211991518 = phi float [ %459, %.lr.ph1524 ], [ %620, %._crit_edge1503 ]
  %.012071517 = phi float [ %458, %.lr.ph1524 ], [ %608, %._crit_edge1503 ]
  %.312261516 = phi float [ %407, %.lr.ph1524 ], [ %562, %._crit_edge1503 ]
  %storemerge13221515 = phi float [ %453, %.lr.ph1524 ], [ %625, %._crit_edge1503 ]
  %.2 = fptrunc double %.2.in1521 to float
  %476 = fcmp oge float %storemerge13221515, 0.000000e+00
  %477 = fneg float %storemerge13221515
  %478 = select i1 %476, float %storemerge13221515, float %477
  %479 = fmul float %29, %.2
  %480 = fcmp ugt float %478, %479
  br i1 %480, label %486, label %481

481:                                              ; preds = %473
  %482 = load i64, ptr %1, align 8, !tbaa !5
  %483 = getelementptr inbounds float, ptr %17, i64 %482
  %484 = load float, ptr %483, align 4, !tbaa !9
  %485 = fadd float %.312261516, %484
  store float %485, ptr %6, align 4, !tbaa !9
  br label %.loopexit

486:                                              ; preds = %473
  %487 = fcmp ugt float %storemerge13221515, 0.000000e+00
  br i1 %487, label %491, label %488

488:                                              ; preds = %486
  %489 = fcmp oge float %.211911519, %.312261516
  %490 = select i1 %489, float %.211911519, float %.312261516
  br label %494

491:                                              ; preds = %486
  %492 = fcmp ole float %.211831520, %.312261516
  %493 = select i1 %492, float %.211831520, float %.312261516
  br label %494

494:                                              ; preds = %491, %488
  %.31192 = phi float [ %490, %488 ], [ %.211911519, %491 ]
  %.31184 = phi float [ %.211831520, %488 ], [ %493, %491 ]
  %gep = getelementptr float, ptr %invariant.gep, i64 %475
  %495 = load float, ptr %gep, align 4, !tbaa !9
  %496 = fneg float %495
  %497 = tail call float @llvm.fmuladd.f32(float %496, float %.211991518, float %storemerge13221515)
  %498 = fneg float %474
  %499 = tail call float @llvm.fmuladd.f32(float %498, float %.012071517, float %497)
  %500 = fadd float %495, %474
  %501 = fmul float %495, %474
  %502 = fadd float %.012071517, %.211991518
  %503 = fneg float %501
  %504 = fmul float %502, %503
  %505 = tail call float @llvm.fmuladd.f32(float %500, float %storemerge13221515, float %504)
  %506 = fmul float %storemerge13221515, %501
  %507 = fcmp ult float %505, 0.000000e+00
  br i1 %507, label %522, label %508

508:                                              ; preds = %494
  %509 = fpext float %505 to double
  %510 = fmul float %506, -4.000000e+00
  %511 = fmul float %499, %510
  %512 = tail call float @llvm.fmuladd.f32(float %505, float %505, float %511)
  %513 = fcmp oge float %512, 0.000000e+00
  %514 = fneg float %512
  %515 = select i1 %513, float %512, float %514
  %516 = fpext float %515 to double
  %517 = tail call double @sqrt(double noundef %516) #6
  %518 = fadd double %517, %509
  %519 = fmul float %499, 2.000000e+00
  %520 = fpext float %519 to double
  %521 = fdiv double %518, %520
  br label %536

522:                                              ; preds = %494
  %523 = fmul float %506, 2.000000e+00
  %524 = fpext float %523 to double
  %525 = fpext float %505 to double
  %526 = fmul float %506, -4.000000e+00
  %527 = fmul float %499, %526
  %528 = tail call float @llvm.fmuladd.f32(float %505, float %505, float %527)
  %529 = fcmp oge float %528, 0.000000e+00
  %530 = fneg float %528
  %531 = select i1 %529, float %528, float %530
  %532 = fpext float %531 to double
  %533 = tail call double @sqrt(double noundef %532) #6
  %534 = fsub double %525, %533
  %535 = fdiv double %524, %534
  br label %536

536:                                              ; preds = %522, %508
  %storemerge1323.in = phi double [ %535, %522 ], [ %521, %508 ]
  %storemerge1323 = fptrunc double %storemerge1323.in to float
  %537 = fmul float %storemerge13221515, %storemerge1323
  %538 = fcmp ogt float %537, 0.000000e+00
  %539 = fdiv float %477, %502
  %storemerge13231513 = select i1 %538, float %539, float %storemerge1323
  %540 = fadd float %.312261516, %storemerge13231513
  %541 = fcmp ogt float %540, %.31184
  %542 = fcmp olt float %540, %.31192
  %or.cond1326 = select i1 %541, i1 true, i1 %542
  br i1 %or.cond1326, label %543, label %551

543:                                              ; preds = %536
  %544 = fcmp olt float %storemerge13221515, 0.000000e+00
  br i1 %544, label %545, label %548

545:                                              ; preds = %543
  %546 = fsub float %.31184, %.312261516
  %547 = fmul float %546, 5.000000e-01
  br label %551

548:                                              ; preds = %543
  %549 = fsub float %.31192, %.312261516
  %550 = fmul float %549, 5.000000e-01
  br label %551

551:                                              ; preds = %536, %545, %548
  %storemerge13231512 = phi float [ %storemerge13231513, %536 ], [ %547, %545 ], [ %550, %548 ]
  %552 = load i64, ptr %0, align 8, !tbaa !5
  %.not13241491 = icmp slt i64 %552, 1
  br i1 %.not13241491, label %._crit_edge1495, label %.lr.ph1494.preheader

.lr.ph1494.preheader:                             ; preds = %551
  %min.iters.check1875 = icmp ult i64 %552, 8
  br i1 %min.iters.check1875, label %.lr.ph1494.preheader1890, label %vector.ph1876

vector.ph1876:                                    ; preds = %.lr.ph1494.preheader
  %n.vec1878 = and i64 %552, 9223372036854775800
  %ind.end1879 = or disjoint i64 %n.vec1878, 1
  %broadcast.splatinsert1886 = insertelement <4 x float> poison, float %storemerge13231512, i64 0
  %broadcast.splat1887 = shufflevector <4 x float> %broadcast.splatinsert1886, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1881

vector.body1881:                                  ; preds = %vector.body1881, %vector.ph1876
  %index1882 = phi i64 [ 0, %vector.ph1876 ], [ %index.next1888, %vector.body1881 ]
  %553 = getelementptr float, ptr %4, i64 %index1882
  %554 = getelementptr inbounds i8, ptr %553, i64 16
  %wide.load1884 = load <4 x float>, ptr %553, align 4, !tbaa !9
  %wide.load1885 = load <4 x float>, ptr %554, align 4, !tbaa !9
  %555 = fsub <4 x float> %wide.load1884, %broadcast.splat1887
  %556 = fsub <4 x float> %wide.load1885, %broadcast.splat1887
  store <4 x float> %555, ptr %553, align 4, !tbaa !9
  store <4 x float> %556, ptr %554, align 4, !tbaa !9
  %index.next1888 = add nuw i64 %index1882, 8
  %557 = icmp eq i64 %index.next1888, %n.vec1878
  br i1 %557, label %middle.block1873, label %vector.body1881, !llvm.loop !41

middle.block1873:                                 ; preds = %vector.body1881
  %cmp.n1889 = icmp eq i64 %552, %n.vec1878
  br i1 %cmp.n1889, label %._crit_edge1495, label %.lr.ph1494.preheader1890

.lr.ph1494.preheader1890:                         ; preds = %middle.block1873, %.lr.ph1494.preheader
  %.612441492.ph = phi i64 [ 1, %.lr.ph1494.preheader ], [ %ind.end1879, %middle.block1873 ]
  br label %.lr.ph1494

.lr.ph1494:                                       ; preds = %.lr.ph1494.preheader1890, %.lr.ph1494
  %.612441492 = phi i64 [ %561, %.lr.ph1494 ], [ %.612441492.ph, %.lr.ph1494.preheader1890 ]
  %558 = getelementptr inbounds float, ptr %15, i64 %.612441492
  %559 = load float, ptr %558, align 4, !tbaa !9
  %560 = fsub float %559, %storemerge13231512
  store float %560, ptr %558, align 4, !tbaa !9
  %561 = add nuw i64 %.612441492, 1
  %exitcond1583.not = icmp eq i64 %.612441492, %552
  br i1 %exitcond1583.not, label %._crit_edge1495, label %.lr.ph1494, !llvm.loop !42

._crit_edge1495:                                  ; preds = %.lr.ph1494, %middle.block1873, %551
  %562 = fadd float %.312261516, %storemerge13231512
  br i1 %.not1318.not1465, label %.lr.ph1502.preheader, label %._crit_edge1503

.lr.ph1502.preheader:                             ; preds = %._crit_edge1495
  br i1 %472, label %._crit_edge1503.loopexit.unr-lcssa, label %.lr.ph1502

.lr.ph1502:                                       ; preds = %.lr.ph1502.preheader, %.lr.ph1502
  %.31500 = phi float [ %585, %.lr.ph1502 ], [ 0.000000e+00, %.lr.ph1502.preheader ]
  %.712451497 = phi i64 [ %586, %.lr.ph1502 ], [ 1, %.lr.ph1502.preheader ]
  %563 = phi <2 x float> [ %583, %.lr.ph1502 ], [ zeroinitializer, %.lr.ph1502.preheader ]
  %niter2009 = phi i64 [ %niter2009.next.1, %.lr.ph1502 ], [ 0, %.lr.ph1502.preheader ]
  %564 = getelementptr inbounds float, ptr %16, i64 %.712451497
  %565 = load float, ptr %564, align 4, !tbaa !9
  %566 = getelementptr inbounds float, ptr %15, i64 %.712451497
  %567 = load float, ptr %566, align 4, !tbaa !9
  %568 = fdiv float %565, %567
  %569 = insertelement <2 x float> poison, float %565, i64 0
  %570 = insertelement <2 x float> %569, float %568, i64 1
  %571 = shufflevector <2 x float> %570, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %572 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %570, <2 x float> %571, <2 x float> %563)
  %573 = extractelement <2 x float> %572, i64 0
  %574 = fadd float %.31500, %573
  %575 = getelementptr float, ptr %3, i64 %.712451497
  %576 = load float, ptr %575, align 4, !tbaa !9
  %577 = getelementptr float, ptr %4, i64 %.712451497
  %578 = load float, ptr %577, align 4, !tbaa !9
  %579 = fdiv float %576, %578
  %580 = insertelement <2 x float> poison, float %576, i64 0
  %581 = insertelement <2 x float> %580, float %579, i64 1
  %582 = shufflevector <2 x float> %581, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %583 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %581, <2 x float> %582, <2 x float> %572)
  %584 = extractelement <2 x float> %583, i64 0
  %585 = fadd float %574, %584
  %586 = add nuw nsw i64 %.712451497, 2
  %niter2009.next.1 = add i64 %niter2009, 2
  %niter2009.ncmp.1 = icmp eq i64 %niter2009.next.1, %unroll_iter2008
  br i1 %niter2009.ncmp.1, label %._crit_edge1503.loopexit.unr-lcssa, label %.lr.ph1502, !llvm.loop !43

._crit_edge1503.loopexit.unr-lcssa:               ; preds = %.lr.ph1502, %.lr.ph1502.preheader
  %.lcssa1891.ph = phi <2 x float> [ poison, %.lr.ph1502.preheader ], [ %583, %.lr.ph1502 ]
  %.lcssa.ph = phi float [ poison, %.lr.ph1502.preheader ], [ %585, %.lr.ph1502 ]
  %.31500.unr = phi float [ 0.000000e+00, %.lr.ph1502.preheader ], [ %585, %.lr.ph1502 ]
  %.712451497.unr = phi i64 [ 1, %.lr.ph1502.preheader ], [ %586, %.lr.ph1502 ]
  %.unr2004 = phi <2 x float> [ zeroinitializer, %.lr.ph1502.preheader ], [ %583, %.lr.ph1502 ]
  br i1 %lcmp.mod2005.not, label %._crit_edge1503, label %.lr.ph1502.epil

.lr.ph1502.epil:                                  ; preds = %._crit_edge1503.loopexit.unr-lcssa
  %587 = getelementptr inbounds float, ptr %16, i64 %.712451497.unr
  %588 = load float, ptr %587, align 4, !tbaa !9
  %589 = getelementptr inbounds float, ptr %15, i64 %.712451497.unr
  %590 = load float, ptr %589, align 4, !tbaa !9
  %591 = fdiv float %588, %590
  %592 = insertelement <2 x float> poison, float %588, i64 0
  %593 = insertelement <2 x float> %592, float %591, i64 1
  %594 = shufflevector <2 x float> %593, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %595 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %593, <2 x float> %594, <2 x float> %.unr2004)
  %596 = extractelement <2 x float> %595, i64 0
  %597 = fadd float %.31500.unr, %596
  br label %._crit_edge1503

._crit_edge1503:                                  ; preds = %.lr.ph1502.epil, %._crit_edge1503.loopexit.unr-lcssa, %._crit_edge1495
  %.3.lcssa = phi float [ 0.000000e+00, %._crit_edge1495 ], [ %.lcssa.ph, %._crit_edge1503.loopexit.unr-lcssa ], [ %597, %.lr.ph1502.epil ]
  %598 = phi <2 x float> [ zeroinitializer, %._crit_edge1495 ], [ %.lcssa1891.ph, %._crit_edge1503.loopexit.unr-lcssa ], [ %595, %.lr.ph1502.epil ]
  %599 = fcmp oge float %.3.lcssa, 0.000000e+00
  %600 = fneg float %.3.lcssa
  %601 = select i1 %599, float %.3.lcssa, float %600
  %602 = getelementptr inbounds float, ptr %16, i64 %552
  %603 = load float, ptr %602, align 4, !tbaa !9
  %604 = getelementptr inbounds float, ptr %15, i64 %552
  %605 = load float, ptr %604, align 4, !tbaa !9
  %606 = fdiv float %603, %605
  %607 = fmul float %603, %606
  %608 = fmul float %606, %606
  %609 = fneg float %607
  %610 = extractelement <2 x float> %598, i64 0
  %611 = fsub float %609, %610
  %612 = tail call float @llvm.fmuladd.f32(float %611, float 8.000000e+00, float %601)
  %613 = fsub float %612, %607
  %614 = fadd float %31, %613
  %615 = fpext float %614 to double
  %616 = fcmp oge float %562, 0.000000e+00
  %617 = fneg float %562
  %618 = select i1 %616, float %562, float %617
  %619 = fpext float %618 to double
  %620 = extractelement <2 x float> %598, i64 1
  %621 = fadd float %620, %608
  %622 = fpext float %621 to double
  %623 = tail call double @llvm.fmuladd.f64(double %619, double %622, double %615)
  %624 = fadd float %31, %607
  %625 = fadd float %610, %624
  %storemerge1321 = add i64 %storemerge13211522, 1
  %exitcond1585.not = icmp eq i64 %storemerge1321, 31
  br i1 %exitcond1585.not, label %._crit_edge1525, label %473, !llvm.loop !44

._crit_edge1525:                                  ; preds = %._crit_edge1503
  store i64 1, ptr %7, align 8, !tbaa !5
  %626 = load i64, ptr %1, align 8, !tbaa !5
  %627 = getelementptr inbounds float, ptr %17, i64 %626
  %628 = load float, ptr %627, align 4, !tbaa !9
  %629 = fadd float %562, %628
  store float %629, ptr %6, align 4, !tbaa !9
  br label %.loopexit

630:                                              ; preds = %27
  store i64 1, ptr %13, align 8, !tbaa !5
  %631 = getelementptr float, ptr %2, i64 %32
  %632 = load float, ptr %631, align 4, !tbaa !9
  %633 = getelementptr inbounds float, ptr %17, i64 %32
  %634 = load float, ptr %633, align 4, !tbaa !9
  %635 = fsub float %632, %634
  %636 = fmul float %635, 5.000000e-01
  %.not1338 = icmp slt i64 %33, 1
  br i1 %.not1338, label %.preheader1334, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %630
  %min.iters.check = icmp ult i64 %33, 12
  br i1 %min.iters.check, label %.lr.ph.preheader1925, label %vector.memcheck

.lr.ph.preheader1925:                             ; preds = %middle.block, %vector.memcheck, %.lr.ph.preheader
  %.812461339.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %xtraiter = and i64 %33, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader1925
  %637 = getelementptr inbounds float, ptr %17, i64 %.812461339.ph
  %638 = load float, ptr %637, align 4, !tbaa !9
  %639 = load float, ptr %633, align 4, !tbaa !9
  %640 = fsub float %638, %639
  %641 = fsub float %640, %636
  %642 = getelementptr inbounds float, ptr %15, i64 %.812461339.ph
  store float %641, ptr %642, align 4, !tbaa !9
  %643 = add nuw i64 %.812461339.ph, 1
  br label %.lr.ph.prol.loopexit

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader1925
  %.812461339.unr = phi i64 [ %.812461339.ph, %.lr.ph.preheader1925 ], [ %643, %.lr.ph.prol ]
  %644 = icmp eq i64 %33, %.812461339.ph
  br i1 %644, label %.preheader1334, label %.lr.ph

vector.memcheck:                                  ; preds = %.lr.ph.preheader
  %645 = shl i64 %33, 2
  %scevgep = getelementptr i8, ptr %4, i64 %645
  %646 = shl i64 %32, 2
  %scevgep1691 = getelementptr i8, ptr %2, i64 %646
  %scevgep1692 = getelementptr i8, ptr %2, i64 %645
  %bound0 = icmp ugt ptr %scevgep1691, %4
  %bound1 = icmp ult ptr %633, %scevgep
  %found.conflict = and i1 %bound0, %bound1
  %bound01693 = icmp ugt ptr %scevgep1692, %4
  %bound11694 = icmp ugt ptr %scevgep, %2
  %found.conflict1695 = and i1 %bound01693, %bound11694
  %conflict.rdx = or i1 %found.conflict, %found.conflict1695
  br i1 %conflict.rdx, label %.lr.ph.preheader1925, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %33, 9223372036854775800
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert1699 = insertelement <4 x float> poison, float %636, i64 0
  %broadcast.splat1700 = shufflevector <4 x float> %broadcast.splatinsert1699, <4 x float> poison, <4 x i32> zeroinitializer
  %647 = load float, ptr %633, align 4, !tbaa !9, !alias.scope !45
  %broadcast.splatinsert1697 = insertelement <4 x float> poison, float %647, i64 0
  %broadcast.splat1698 = shufflevector <4 x float> %broadcast.splatinsert1697, <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 ]
  %648 = getelementptr float, ptr %2, i64 %index
  %649 = getelementptr inbounds i8, ptr %648, i64 16
  %wide.load = load <4 x float>, ptr %648, align 4, !tbaa !9, !alias.scope !48
  %wide.load1696 = load <4 x float>, ptr %649, align 4, !tbaa !9, !alias.scope !48
  %650 = fsub <4 x float> %wide.load, %broadcast.splat1698
  %651 = fsub <4 x float> %wide.load1696, %broadcast.splat1698
  %652 = fsub <4 x float> %650, %broadcast.splat1700
  %653 = fsub <4 x float> %651, %broadcast.splat1700
  %654 = getelementptr float, ptr %4, i64 %index
  %655 = getelementptr inbounds i8, ptr %654, i64 16
  store <4 x float> %652, ptr %654, align 4, !tbaa !9, !alias.scope !50, !noalias !52
  store <4 x float> %653, ptr %655, align 4, !tbaa !9, !alias.scope !50, !noalias !52
  %index.next = add nuw i64 %index, 8
  %656 = icmp eq i64 %index.next, %n.vec
  br i1 %656, label %middle.block, label %vector.body, !llvm.loop !53

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %33, %n.vec
  br i1 %cmp.n, label %.preheader1334, label %.lr.ph.preheader1925

.preheader1334:                                   ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block, %630
  %.not1282.not1340 = icmp sgt i64 %32, 1
  br i1 %.not1282.not1340, label %.lr.ph1343.preheader, label %._crit_edge

.lr.ph1343.preheader:                             ; preds = %.preheader1334
  %657 = add nsw i64 %32, -1
  %658 = add nsw i64 %32, -2
  %xtraiter1926 = and i64 %657, 3
  %659 = icmp ult i64 %658, 3
  br i1 %659, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph1343.preheader.new

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

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %.812461339 = phi i64 [ %673, %.lr.ph ], [ %.812461339.unr, %.lr.ph.prol.loopexit ]
  %660 = getelementptr inbounds float, ptr %17, i64 %.812461339
  %661 = load float, ptr %660, align 4, !tbaa !9
  %662 = load float, ptr %633, align 4, !tbaa !9
  %663 = fsub float %661, %662
  %664 = fsub float %663, %636
  %665 = getelementptr inbounds float, ptr %15, i64 %.812461339
  store float %664, ptr %665, align 4, !tbaa !9
  %666 = add nuw i64 %.812461339, 1
  %667 = getelementptr float, ptr %2, i64 %.812461339
  %668 = load float, ptr %667, align 4, !tbaa !9
  %669 = load float, ptr %633, align 4, !tbaa !9
  %670 = fsub float %668, %669
  %671 = fsub float %670, %636
  %672 = getelementptr float, ptr %4, i64 %.812461339
  store float %671, ptr %672, align 4, !tbaa !9
  %673 = add nuw i64 %.812461339, 2
  %exitcond.not.1 = icmp eq i64 %666, %33
  br i1 %exitcond.not.1, label %.preheader1334, label %.lr.ph, !llvm.loop !54

.lr.ph1343:                                       ; preds = %.lr.ph1343, %.lr.ph1343.preheader.new
  %.412181342 = phi float [ 0.000000e+00, %.lr.ph1343.preheader.new ], [ %703, %.lr.ph1343 ]
  %.912471341 = phi i64 [ 1, %.lr.ph1343.preheader.new ], [ %704, %.lr.ph1343 ]
  %niter = phi i64 [ 0, %.lr.ph1343.preheader.new ], [ %niter.next.3, %.lr.ph1343 ]
  %674 = getelementptr inbounds float, ptr %16, i64 %.912471341
  %675 = load float, ptr %674, align 4, !tbaa !9
  %676 = fmul float %675, %675
  %677 = getelementptr inbounds float, ptr %15, i64 %.912471341
  %678 = load float, ptr %677, align 4, !tbaa !9
  %679 = fdiv float %676, %678
  %680 = fadd float %.412181342, %679
  %681 = getelementptr float, ptr %3, i64 %.912471341
  %682 = load float, ptr %681, align 4, !tbaa !9
  %683 = fmul float %682, %682
  %684 = getelementptr float, ptr %4, i64 %.912471341
  %685 = load float, ptr %684, align 4, !tbaa !9
  %686 = fdiv float %683, %685
  %687 = fadd float %680, %686
  %688 = add nuw nsw i64 %.912471341, 2
  %689 = getelementptr inbounds float, ptr %16, i64 %688
  %690 = load float, ptr %689, align 4, !tbaa !9
  %691 = fmul float %690, %690
  %692 = getelementptr inbounds float, ptr %15, i64 %688
  %693 = load float, ptr %692, align 4, !tbaa !9
  %694 = fdiv float %691, %693
  %695 = fadd float %687, %694
  %696 = add nuw nsw i64 %.912471341, 3
  %697 = getelementptr inbounds float, ptr %16, i64 %696
  %698 = load float, ptr %697, align 4, !tbaa !9
  %699 = fmul float %698, %698
  %700 = getelementptr inbounds float, ptr %15, i64 %696
  %701 = load float, ptr %700, align 4, !tbaa !9
  %702 = fdiv float %699, %701
  %703 = fadd float %695, %702
  %704 = add nuw nsw i64 %.912471341, 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.ph1343, !llvm.loop !55

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph1343, %.lr.ph1343.preheader
  %.lcssa1924.ph = phi float [ poison, %.lr.ph1343.preheader ], [ %703, %.lr.ph1343 ]
  %.412181342.unr = phi float [ 0.000000e+00, %.lr.ph1343.preheader ], [ %703, %.lr.ph1343 ]
  %.912471341.unr = phi i64 [ 1, %.lr.ph1343.preheader ], [ %704, %.lr.ph1343 ]
  %lcmp.mod1927.not = icmp eq i64 %xtraiter1926, 0
  br i1 %lcmp.mod1927.not, label %._crit_edge, label %.lr.ph1343.epil

.lr.ph1343.epil:                                  ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph1343.epil
  %.412181342.epil = phi float [ %711, %.lr.ph1343.epil ], [ %.412181342.unr, %._crit_edge.loopexit.unr-lcssa ]
  %.912471341.epil = phi i64 [ %712, %.lr.ph1343.epil ], [ %.912471341.unr, %._crit_edge.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1343.epil ], [ 0, %._crit_edge.loopexit.unr-lcssa ]
  %705 = getelementptr inbounds float, ptr %16, i64 %.912471341.epil
  %706 = load float, ptr %705, align 4, !tbaa !9
  %707 = fmul float %706, %706
  %708 = getelementptr inbounds float, ptr %15, i64 %.912471341.epil
  %709 = load float, ptr %708, align 4, !tbaa !9
  %710 = fdiv float %707, %709
  %711 = fadd float %.412181342.epil, %710
  %712 = add nuw nsw i64 %.912471341.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter1926
  br i1 %epil.iter.cmp.not, label %._crit_edge, label %.lr.ph1343.epil, !llvm.loop !56

._crit_edge:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph1343.epil, %.preheader1334
  %.41218.lcssa = phi float [ 0.000000e+00, %.preheader1334 ], [ %.lcssa1924.ph, %._crit_edge.loopexit.unr-lcssa ], [ %711, %.lr.ph1343.epil ]
  %713 = add nsw i64 %32, 2
  %.not12831344 = icmp slt i64 %33, %713
  br i1 %.not12831344, label %._crit_edge1349, label %.lr.ph1348.preheader

.lr.ph1348.preheader:                             ; preds = %._crit_edge
  %714 = xor i64 %32, -1
  %715 = add i64 %33, %714
  %716 = add i64 %33, -2
  %717 = sub i64 %716, %32
  %xtraiter1929 = and i64 %715, 3
  %lcmp.mod1930.not = icmp eq i64 %xtraiter1929, 0
  br i1 %lcmp.mod1930.not, label %.lr.ph1348.prol.loopexit, label %.lr.ph1348.prol

.lr.ph1348.prol:                                  ; preds = %.lr.ph1348.preheader, %.lr.ph1348.prol
  %.012311346.prol = phi float [ %724, %.lr.ph1348.prol ], [ 0.000000e+00, %.lr.ph1348.preheader ]
  %.1012481345.prol = phi i64 [ %725, %.lr.ph1348.prol ], [ %33, %.lr.ph1348.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1348.prol ], [ 0, %.lr.ph1348.preheader ]
  %718 = getelementptr inbounds float, ptr %16, i64 %.1012481345.prol
  %719 = load float, ptr %718, align 4, !tbaa !9
  %720 = fmul float %719, %719
  %721 = getelementptr inbounds float, ptr %15, i64 %.1012481345.prol
  %722 = load float, ptr %721, align 4, !tbaa !9
  %723 = fdiv float %720, %722
  %724 = fadd float %.012311346.prol, %723
  %725 = add nsw i64 %.1012481345.prol, -1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter1929
  br i1 %prol.iter.cmp.not, label %.lr.ph1348.prol.loopexit, label %.lr.ph1348.prol, !llvm.loop !57

.lr.ph1348.prol.loopexit:                         ; preds = %.lr.ph1348.prol, %.lr.ph1348.preheader
  %.012311346.unr = phi float [ 0.000000e+00, %.lr.ph1348.preheader ], [ %724, %.lr.ph1348.prol ]
  %.1012481345.unr = phi i64 [ %33, %.lr.ph1348.preheader ], [ %725, %.lr.ph1348.prol ]
  %.lcssa1923.unr = phi float [ poison, %.lr.ph1348.preheader ], [ %724, %.lr.ph1348.prol ]
  %726 = icmp ult i64 %717, 3
  br i1 %726, label %._crit_edge1349, label %.lr.ph1348

.lr.ph1348:                                       ; preds = %.lr.ph1348.prol.loopexit, %.lr.ph1348
  %.012311346 = phi float [ %757, %.lr.ph1348 ], [ %.012311346.unr, %.lr.ph1348.prol.loopexit ]
  %.1012481345 = phi i64 [ %758, %.lr.ph1348 ], [ %.1012481345.unr, %.lr.ph1348.prol.loopexit ]
  %727 = getelementptr inbounds float, ptr %16, i64 %.1012481345
  %728 = load float, ptr %727, align 4, !tbaa !9
  %729 = fmul float %728, %728
  %730 = getelementptr inbounds float, ptr %15, i64 %.1012481345
  %731 = load float, ptr %730, align 4, !tbaa !9
  %732 = fdiv float %729, %731
  %733 = fadd float %.012311346, %732
  %734 = add nsw i64 %.1012481345, -1
  %735 = getelementptr inbounds float, ptr %16, i64 %734
  %736 = load float, ptr %735, align 4, !tbaa !9
  %737 = fmul float %736, %736
  %738 = getelementptr inbounds float, ptr %15, i64 %734
  %739 = load float, ptr %738, align 4, !tbaa !9
  %740 = fdiv float %737, %739
  %741 = fadd float %733, %740
  %742 = add nsw i64 %.1012481345, -2
  %743 = getelementptr inbounds float, ptr %16, i64 %742
  %744 = load float, ptr %743, align 4, !tbaa !9
  %745 = fmul float %744, %744
  %746 = getelementptr inbounds float, ptr %15, i64 %742
  %747 = load float, ptr %746, align 4, !tbaa !9
  %748 = fdiv float %745, %747
  %749 = fadd float %741, %748
  %750 = add nsw i64 %.1012481345, -3
  %751 = getelementptr inbounds float, ptr %16, i64 %750
  %752 = load float, ptr %751, align 4, !tbaa !9
  %753 = fmul float %752, %752
  %754 = getelementptr inbounds float, ptr %15, i64 %750
  %755 = load float, ptr %754, align 4, !tbaa !9
  %756 = fdiv float %753, %755
  %757 = fadd float %749, %756
  %758 = add nsw i64 %.1012481345, -4
  %.not1283.not.3 = icmp sgt i64 %750, %713
  br i1 %.not1283.not.3, label %.lr.ph1348, label %._crit_edge1349, !llvm.loop !58

._crit_edge1349:                                  ; preds = %.lr.ph1348.prol.loopexit, %.lr.ph1348, %._crit_edge
  %.01231.lcssa = phi float [ 0.000000e+00, %._crit_edge ], [ %.lcssa1923.unr, %.lr.ph1348.prol.loopexit ], [ %757, %.lr.ph1348 ]
  %759 = fadd float %31, %.41218.lcssa
  %760 = fadd float %759, %.01231.lcssa
  %761 = getelementptr inbounds float, ptr %16, i64 %32
  %762 = getelementptr inbounds float, ptr %15, i64 %32
  %763 = getelementptr float, ptr %3, i64 %32
  %764 = getelementptr float, ptr %4, i64 %32
  %765 = load <2 x float>, ptr %761, align 4, !tbaa !9
  %766 = fmul <2 x float> %765, %765
  %767 = load <2 x float>, ptr %762, align 4, !tbaa !9
  %768 = fdiv <2 x float> %766, %767
  %769 = extractelement <2 x float> %768, i64 0
  %770 = fadd float %760, %769
  %771 = extractelement <2 x float> %768, i64 1
  %772 = fadd float %770, %771
  %773 = fcmp ule float %772, 0.000000e+00
  br i1 %773, label %809, label %774

774:                                              ; preds = %._crit_edge1349
  store i64 1, ptr %14, align 8, !tbaa !5
  %775 = extractelement <2 x float> %766, i64 0
  %776 = tail call float @llvm.fmuladd.f32(float %760, float %635, float %775)
  %777 = extractelement <2 x float> %765, i64 1
  %778 = tail call float @llvm.fmuladd.f32(float %777, float %777, float %776)
  %779 = fmul float %635, %775
  %780 = fcmp ogt float %778, 0.000000e+00
  br i1 %780, label %781, label %795

781:                                              ; preds = %774
  %782 = fmul float %779, 2.000000e+00
  %783 = fpext float %782 to double
  %784 = fpext float %778 to double
  %785 = fmul float %779, -4.000000e+00
  %786 = fmul float %760, %785
  %787 = tail call float @llvm.fmuladd.f32(float %778, float %778, float %786)
  %788 = fcmp oge float %787, 0.000000e+00
  %789 = fneg float %787
  %790 = select i1 %788, float %787, float %789
  %791 = fpext float %790 to double
  %792 = tail call double @sqrt(double noundef %791) #6
  %793 = fadd double %792, %784
  %794 = fdiv double %783, %793
  br label %849

795:                                              ; preds = %774
  %796 = fpext float %778 to double
  %797 = fmul float %779, -4.000000e+00
  %798 = fmul float %760, %797
  %799 = tail call float @llvm.fmuladd.f32(float %778, float %778, float %798)
  %800 = fcmp oge float %799, 0.000000e+00
  %801 = fneg float %799
  %802 = select i1 %800, float %799, float %801
  %803 = fpext float %802 to double
  %804 = tail call double @sqrt(double noundef %803) #6
  %805 = fsub double %796, %804
  %806 = fmul float %760, 2.000000e+00
  %807 = fpext float %806 to double
  %808 = fdiv double %805, %807
  br label %849

809:                                              ; preds = %._crit_edge1349
  store i64 0, ptr %14, align 8, !tbaa !5
  %810 = extractelement <2 x float> %765, i64 0
  %811 = fneg float %810
  %812 = fmul float %810, %811
  %813 = tail call float @llvm.fmuladd.f32(float %760, float %635, float %812)
  %814 = extractelement <2 x float> %765, i64 1
  %815 = fneg float %814
  %816 = tail call float @llvm.fmuladd.f32(float %815, float %814, float %813)
  %817 = extractelement <2 x float> %766, i64 1
  %818 = fmul float %635, %817
  %819 = fcmp olt float %816, 0.000000e+00
  br i1 %819, label %820, label %834

820:                                              ; preds = %809
  %821 = fmul float %818, 2.000000e+00
  %822 = fpext float %821 to double
  %823 = fpext float %816 to double
  %824 = fmul float %818, 4.000000e+00
  %825 = fmul float %760, %824
  %826 = tail call float @llvm.fmuladd.f32(float %816, float %816, float %825)
  %827 = fcmp oge float %826, 0.000000e+00
  %828 = fneg float %826
  %829 = select i1 %827, float %826, float %828
  %830 = fpext float %829 to double
  %831 = tail call double @sqrt(double noundef %830) #6
  %832 = fsub double %823, %831
  %833 = fdiv double %822, %832
  br label %887

834:                                              ; preds = %809
  %835 = fpext float %816 to double
  %836 = fmul float %818, 4.000000e+00
  %837 = fmul float %760, %836
  %838 = tail call float @llvm.fmuladd.f32(float %816, float %816, float %837)
  %839 = fcmp oge float %838, 0.000000e+00
  %840 = fneg float %838
  %841 = select i1 %839, float %838, float %840
  %842 = fpext float %841 to double
  %843 = tail call double @sqrt(double noundef %842) #6
  %844 = fadd double %843, %835
  %845 = fneg double %844
  %846 = fmul float %760, 2.000000e+00
  %847 = fpext float %846 to double
  %848 = fdiv double %845, %847
  br label %887

849:                                              ; preds = %781, %795
  %.61229.in.ph = phi double [ %808, %795 ], [ %794, %781 ]
  %.612291597 = fptrunc double %.61229.in.ph to float
  %850 = load i64, ptr %0, align 8, !tbaa !5
  %.not12861351 = icmp slt i64 %850, 1
  br i1 %.not12861351, label %.loopexit1332.thread1613, label %.lr.ph1354

.lr.ph1354:                                       ; preds = %849
  %851 = load i64, ptr %1, align 8, !tbaa !5
  %852 = getelementptr inbounds float, ptr %17, i64 %851
  %min.iters.check1714 = icmp ult i64 %850, 12
  br i1 %min.iters.check1714, label %scalar.ph1713.preheader, label %vector.memcheck1701

vector.memcheck1701:                              ; preds = %.lr.ph1354
  %853 = shl i64 %850, 2
  %scevgep1702 = getelementptr i8, ptr %4, i64 %853
  %854 = shl nsw i64 %851, 2
  %scevgep1703 = getelementptr i8, ptr %2, i64 %854
  %scevgep1704 = getelementptr i8, ptr %2, i64 %853
  %bound01705 = icmp ugt ptr %scevgep1703, %4
  %bound11706 = icmp ult ptr %852, %scevgep1702
  %found.conflict1707 = and i1 %bound01705, %bound11706
  %bound01708 = icmp ugt ptr %scevgep1704, %4
  %bound11709 = icmp ugt ptr %scevgep1702, %2
  %found.conflict1710 = and i1 %bound01708, %bound11709
  %conflict.rdx1711 = or i1 %found.conflict1707, %found.conflict1710
  br i1 %conflict.rdx1711, label %scalar.ph1713.preheader, label %vector.ph1715

vector.ph1715:                                    ; preds = %vector.memcheck1701
  %n.vec1717 = and i64 %850, 9223372036854775800
  %ind.end1718 = or disjoint i64 %n.vec1717, 1
  %broadcast.splatinsert1727 = insertelement <4 x float> poison, float %.612291597, i64 0
  %broadcast.splat1728 = shufflevector <4 x float> %broadcast.splatinsert1727, <4 x float> poison, <4 x i32> zeroinitializer
  %855 = load float, ptr %852, align 4, !tbaa !9, !alias.scope !59
  %broadcast.splatinsert1725 = insertelement <4 x float> poison, float %855, i64 0
  %broadcast.splat1726 = shufflevector <4 x float> %broadcast.splatinsert1725, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1720

vector.body1720:                                  ; preds = %vector.body1720, %vector.ph1715
  %index1721 = phi i64 [ 0, %vector.ph1715 ], [ %index.next1729, %vector.body1720 ]
  %856 = getelementptr float, ptr %2, i64 %index1721
  %857 = getelementptr inbounds i8, ptr %856, i64 16
  %wide.load1723 = load <4 x float>, ptr %856, align 4, !tbaa !9, !alias.scope !62
  %wide.load1724 = load <4 x float>, ptr %857, align 4, !tbaa !9, !alias.scope !62
  %858 = fsub <4 x float> %wide.load1723, %broadcast.splat1726
  %859 = fsub <4 x float> %wide.load1724, %broadcast.splat1726
  %860 = fsub <4 x float> %858, %broadcast.splat1728
  %861 = fsub <4 x float> %859, %broadcast.splat1728
  %862 = getelementptr float, ptr %4, i64 %index1721
  %863 = getelementptr inbounds i8, ptr %862, i64 16
  store <4 x float> %860, ptr %862, align 4, !tbaa !9, !alias.scope !64, !noalias !66
  store <4 x float> %861, ptr %863, align 4, !tbaa !9, !alias.scope !64, !noalias !66
  %index.next1729 = add nuw i64 %index1721, 8
  %864 = icmp eq i64 %index.next1729, %n.vec1717
  br i1 %864, label %middle.block1712, label %vector.body1720, !llvm.loop !67

middle.block1712:                                 ; preds = %vector.body1720
  %cmp.n1730 = icmp eq i64 %850, %n.vec1717
  br i1 %cmp.n1730, label %.loopexit1332, label %scalar.ph1713.preheader

scalar.ph1713.preheader:                          ; preds = %middle.block1712, %vector.memcheck1701, %.lr.ph1354
  %.111352.ph = phi i64 [ 1, %vector.memcheck1701 ], [ 1, %.lr.ph1354 ], [ %ind.end1718, %middle.block1712 ]
  %xtraiter1931 = and i64 %850, 1
  %lcmp.mod1932.not = icmp eq i64 %xtraiter1931, 0
  br i1 %lcmp.mod1932.not, label %scalar.ph1713.prol.loopexit, label %scalar.ph1713.prol

scalar.ph1713.prol:                               ; preds = %scalar.ph1713.preheader
  %865 = getelementptr inbounds float, ptr %17, i64 %.111352.ph
  %866 = load float, ptr %865, align 4, !tbaa !9
  %867 = load float, ptr %852, align 4, !tbaa !9
  %868 = fsub float %866, %867
  %869 = fsub float %868, %.612291597
  %870 = getelementptr inbounds float, ptr %15, i64 %.111352.ph
  store float %869, ptr %870, align 4, !tbaa !9
  %871 = add nuw i64 %.111352.ph, 1
  br label %scalar.ph1713.prol.loopexit

scalar.ph1713.prol.loopexit:                      ; preds = %scalar.ph1713.prol, %scalar.ph1713.preheader
  %.111352.unr = phi i64 [ %.111352.ph, %scalar.ph1713.preheader ], [ %871, %scalar.ph1713.prol ]
  %872 = icmp eq i64 %850, %.111352.ph
  br i1 %872, label %.loopexit1332, label %scalar.ph1713

scalar.ph1713:                                    ; preds = %scalar.ph1713.prol.loopexit, %scalar.ph1713
  %.111352 = phi i64 [ %886, %scalar.ph1713 ], [ %.111352.unr, %scalar.ph1713.prol.loopexit ]
  %873 = getelementptr inbounds float, ptr %17, i64 %.111352
  %874 = load float, ptr %873, align 4, !tbaa !9
  %875 = load float, ptr %852, align 4, !tbaa !9
  %876 = fsub float %874, %875
  %877 = fsub float %876, %.612291597
  %878 = getelementptr inbounds float, ptr %15, i64 %.111352
  store float %877, ptr %878, align 4, !tbaa !9
  %879 = add nuw i64 %.111352, 1
  %880 = getelementptr float, ptr %2, i64 %.111352
  %881 = load float, ptr %880, align 4, !tbaa !9
  %882 = load float, ptr %852, align 4, !tbaa !9
  %883 = fsub float %881, %882
  %884 = fsub float %883, %.612291597
  %885 = getelementptr float, ptr %4, i64 %.111352
  store float %884, ptr %885, align 4, !tbaa !9
  %886 = add nuw i64 %.111352, 2
  %exitcond1570.not.1 = icmp eq i64 %879, %850
  br i1 %exitcond1570.not.1, label %.loopexit1332, label %scalar.ph1713, !llvm.loop !68

887:                                              ; preds = %834, %820
  %.51228.in = phi double [ %833, %820 ], [ %848, %834 ]
  %888 = fneg float %636
  %.61229 = fptrunc double %.51228.in to float
  %889 = load i64, ptr %0, align 8, !tbaa !5
  %.not12851355 = icmp slt i64 %889, 1
  br i1 %.not12851355, label %.loopexit1332.thread, label %.lr.ph1358.preheader

.lr.ph1358.preheader:                             ; preds = %887
  %min.iters.check1744 = icmp ult i64 %889, 12
  br i1 %min.iters.check1744, label %.lr.ph1358.preheader1921, label %vector.memcheck1731

vector.memcheck1731:                              ; preds = %.lr.ph1358.preheader
  %890 = shl i64 %889, 2
  %scevgep1732 = getelementptr i8, ptr %4, i64 %890
  %891 = shl i64 %32, 2
  %892 = getelementptr i8, ptr %2, i64 %891
  %scevgep1733 = getelementptr i8, ptr %892, i64 4
  %scevgep1734 = getelementptr i8, ptr %2, i64 %890
  %bound01735 = icmp ugt ptr %scevgep1733, %4
  %bound11736 = icmp ult ptr %631, %scevgep1732
  %found.conflict1737 = and i1 %bound01735, %bound11736
  %bound01738 = icmp ugt ptr %scevgep1734, %4
  %bound11739 = icmp ugt ptr %scevgep1732, %2
  %found.conflict1740 = and i1 %bound01738, %bound11739
  %conflict.rdx1741 = or i1 %found.conflict1737, %found.conflict1740
  br i1 %conflict.rdx1741, label %.lr.ph1358.preheader1921, label %vector.ph1745

vector.ph1745:                                    ; preds = %vector.memcheck1731
  %n.vec1747 = and i64 %889, 9223372036854775800
  %ind.end1748 = or disjoint i64 %n.vec1747, 1
  %broadcast.splatinsert1757 = insertelement <4 x float> poison, float %.61229, i64 0
  %broadcast.splat1758 = shufflevector <4 x float> %broadcast.splatinsert1757, <4 x float> poison, <4 x i32> zeroinitializer
  %893 = load float, ptr %631, align 4, !tbaa !9, !alias.scope !69
  %broadcast.splatinsert1755 = insertelement <4 x float> poison, float %893, i64 0
  %broadcast.splat1756 = shufflevector <4 x float> %broadcast.splatinsert1755, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1750

vector.body1750:                                  ; preds = %vector.body1750, %vector.ph1745
  %index1751 = phi i64 [ 0, %vector.ph1745 ], [ %index.next1759, %vector.body1750 ]
  %894 = getelementptr float, ptr %2, i64 %index1751
  %895 = getelementptr inbounds i8, ptr %894, i64 16
  %wide.load1753 = load <4 x float>, ptr %894, align 4, !tbaa !9, !alias.scope !72
  %wide.load1754 = load <4 x float>, ptr %895, align 4, !tbaa !9, !alias.scope !72
  %896 = fsub <4 x float> %wide.load1753, %broadcast.splat1756
  %897 = fsub <4 x float> %wide.load1754, %broadcast.splat1756
  %898 = fsub <4 x float> %896, %broadcast.splat1758
  %899 = fsub <4 x float> %897, %broadcast.splat1758
  %900 = getelementptr float, ptr %4, i64 %index1751
  %901 = getelementptr inbounds i8, ptr %900, i64 16
  store <4 x float> %898, ptr %900, align 4, !tbaa !9, !alias.scope !74, !noalias !76
  store <4 x float> %899, ptr %901, align 4, !tbaa !9, !alias.scope !74, !noalias !76
  %index.next1759 = add nuw i64 %index1751, 8
  %902 = icmp eq i64 %index.next1759, %n.vec1747
  br i1 %902, label %middle.block1742, label %vector.body1750, !llvm.loop !77

middle.block1742:                                 ; preds = %vector.body1750
  %cmp.n1760 = icmp eq i64 %889, %n.vec1747
  br i1 %cmp.n1760, label %.loopexit1332, label %.lr.ph1358.preheader1921

.lr.ph1358.preheader1921:                         ; preds = %middle.block1742, %vector.memcheck1731, %.lr.ph1358.preheader
  %.121356.ph = phi i64 [ 1, %vector.memcheck1731 ], [ 1, %.lr.ph1358.preheader ], [ %ind.end1748, %middle.block1742 ]
  %xtraiter1934 = and i64 %889, 1
  %lcmp.mod1935.not = icmp eq i64 %xtraiter1934, 0
  br i1 %lcmp.mod1935.not, label %.lr.ph1358.prol.loopexit, label %.lr.ph1358.prol

.lr.ph1358.prol:                                  ; preds = %.lr.ph1358.preheader1921
  %903 = getelementptr inbounds float, ptr %17, i64 %.121356.ph
  %904 = load float, ptr %903, align 4, !tbaa !9
  %905 = load float, ptr %631, align 4, !tbaa !9
  %906 = fsub float %904, %905
  %907 = fsub float %906, %.61229
  %908 = getelementptr inbounds float, ptr %15, i64 %.121356.ph
  store float %907, ptr %908, align 4, !tbaa !9
  %909 = add nuw i64 %.121356.ph, 1
  br label %.lr.ph1358.prol.loopexit

.lr.ph1358.prol.loopexit:                         ; preds = %.lr.ph1358.prol, %.lr.ph1358.preheader1921
  %.121356.unr = phi i64 [ %.121356.ph, %.lr.ph1358.preheader1921 ], [ %909, %.lr.ph1358.prol ]
  %910 = icmp eq i64 %889, %.121356.ph
  br i1 %910, label %.loopexit1332, label %.lr.ph1358

.lr.ph1358:                                       ; preds = %.lr.ph1358.prol.loopexit, %.lr.ph1358
  %.121356 = phi i64 [ %924, %.lr.ph1358 ], [ %.121356.unr, %.lr.ph1358.prol.loopexit ]
  %911 = getelementptr inbounds float, ptr %17, i64 %.121356
  %912 = load float, ptr %911, align 4, !tbaa !9
  %913 = load float, ptr %631, align 4, !tbaa !9
  %914 = fsub float %912, %913
  %915 = fsub float %914, %.61229
  %916 = getelementptr inbounds float, ptr %15, i64 %.121356
  store float %915, ptr %916, align 4, !tbaa !9
  %917 = add nuw i64 %.121356, 1
  %918 = getelementptr float, ptr %2, i64 %.121356
  %919 = load float, ptr %918, align 4, !tbaa !9
  %920 = load float, ptr %631, align 4, !tbaa !9
  %921 = fsub float %919, %920
  %922 = fsub float %921, %.61229
  %923 = getelementptr float, ptr %4, i64 %.121356
  store float %922, ptr %923, align 4, !tbaa !9
  %924 = add nuw i64 %.121356, 2
  %exitcond1571.not.1 = icmp eq i64 %917, %889
  br i1 %exitcond1571.not.1, label %.loopexit1332, label %.lr.ph1358, !llvm.loop !78

.loopexit1332:                                    ; preds = %scalar.ph1713.prol.loopexit, %scalar.ph1713, %.lr.ph1358.prol.loopexit, %.lr.ph1358, %middle.block1712, %middle.block1742
  %.612291602 = phi float [ %.61229, %middle.block1742 ], [ %.612291597, %middle.block1712 ], [ %.61229, %.lr.ph1358 ], [ %.61229, %.lr.ph1358.prol.loopexit ], [ %.612291597, %scalar.ph1713 ], [ %.612291597, %scalar.ph1713.prol.loopexit ]
  %.411851600 = phi float [ 0.000000e+00, %middle.block1742 ], [ %636, %middle.block1712 ], [ 0.000000e+00, %.lr.ph1358 ], [ 0.000000e+00, %.lr.ph1358.prol.loopexit ], [ %636, %scalar.ph1713 ], [ %636, %scalar.ph1713.prol.loopexit ]
  %.411931598 = phi float [ %888, %middle.block1742 ], [ 0.000000e+00, %middle.block1712 ], [ %888, %.lr.ph1358 ], [ %888, %.lr.ph1358.prol.loopexit ], [ 0.000000e+00, %scalar.ph1713 ], [ 0.000000e+00, %scalar.ph1713.prol.loopexit ]
  %925 = phi i64 [ %889, %middle.block1742 ], [ %850, %middle.block1712 ], [ %889, %.lr.ph1358 ], [ %889, %.lr.ph1358.prol.loopexit ], [ %850, %scalar.ph1713 ], [ %850, %scalar.ph1713.prol.loopexit ]
  br i1 %773, label %.loopexit1332.thread, label %.loopexit1332.thread1613

.loopexit1332.thread1613:                         ; preds = %849, %.loopexit1332
  %926 = phi i64 [ %925, %.loopexit1332 ], [ %850, %849 ]
  %.4119315981619 = phi float [ %.411931598, %.loopexit1332 ], [ 0.000000e+00, %849 ]
  %.4118516001618 = phi float [ %.411851600, %.loopexit1332 ], [ %636, %849 ]
  %.6122916021617 = phi float [ %.612291602, %.loopexit1332 ], [ %.612291597, %849 ]
  %927 = load i64, ptr %1, align 8, !tbaa !5
  br label %931

.loopexit1332.thread:                             ; preds = %887, %.loopexit1332
  %928 = phi i64 [ %925, %.loopexit1332 ], [ %889, %887 ]
  %.4119315981612 = phi float [ %.411931598, %.loopexit1332 ], [ %888, %887 ]
  %.4118516001610 = phi float [ %.411851600, %.loopexit1332 ], [ 0.000000e+00, %887 ]
  %.6122916021608 = phi float [ %.612291602, %.loopexit1332 ], [ %.61229, %887 ]
  %929 = load i64, ptr %1, align 8, !tbaa !5
  %930 = add nsw i64 %929, 1
  br label %931

931:                                              ; preds = %.loopexit1332.thread, %.loopexit1332.thread1613
  %932 = phi i64 [ %926, %.loopexit1332.thread1613 ], [ %928, %.loopexit1332.thread ]
  %.4119315981611 = phi float [ %.4119315981619, %.loopexit1332.thread1613 ], [ %.4119315981612, %.loopexit1332.thread ]
  %.4118516001609 = phi float [ %.4118516001618, %.loopexit1332.thread1613 ], [ %.4118516001610, %.loopexit1332.thread ]
  %.6122916021607 = phi float [ %.6122916021617, %.loopexit1332.thread1613 ], [ %.6122916021608, %.loopexit1332.thread ]
  %933 = phi i64 [ %927, %.loopexit1332.thread1613 ], [ %929, %.loopexit1332.thread ]
  %.01237 = phi i64 [ %927, %.loopexit1332.thread1613 ], [ %930, %.loopexit1332.thread ]
  %934 = add nsw i64 %.01237, -1
  %.not1288.not1359 = icmp sgt i64 %.01237, 1
  br i1 %.not1288.not1359, label %.lr.ph1365.preheader, label %._crit_edge1366

.lr.ph1365.preheader:                             ; preds = %931
  %935 = add nsw i64 %.01237, -1
  %xtraiter1937 = and i64 %935, 1
  %936 = icmp eq i64 %.01237, 2
  br i1 %936, label %._crit_edge1366.loopexit.unr-lcssa, label %.lr.ph1365.preheader.new

.lr.ph1365.preheader.new:                         ; preds = %.lr.ph1365.preheader
  %unroll_iter1942 = and i64 %935, -2
  br label %.lr.ph1365

.lr.ph1365:                                       ; preds = %.lr.ph1365, %.lr.ph1365.preheader.new
  %.41363 = phi float [ 0.000000e+00, %.lr.ph1365.preheader.new ], [ %959, %.lr.ph1365 ]
  %.131360 = phi i64 [ 1, %.lr.ph1365.preheader.new ], [ %960, %.lr.ph1365 ]
  %937 = phi <2 x float> [ zeroinitializer, %.lr.ph1365.preheader.new ], [ %957, %.lr.ph1365 ]
  %niter1943 = phi i64 [ 0, %.lr.ph1365.preheader.new ], [ %niter1943.next.1, %.lr.ph1365 ]
  %938 = getelementptr inbounds float, ptr %16, i64 %.131360
  %939 = load float, ptr %938, align 4, !tbaa !9
  %940 = getelementptr inbounds float, ptr %15, i64 %.131360
  %941 = load float, ptr %940, align 4, !tbaa !9
  %942 = fdiv float %939, %941
  %943 = insertelement <2 x float> poison, float %939, i64 0
  %944 = insertelement <2 x float> %943, float %942, i64 1
  %945 = shufflevector <2 x float> %944, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %946 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %944, <2 x float> %945, <2 x float> %937)
  %947 = extractelement <2 x float> %946, i64 0
  %948 = fadd float %.41363, %947
  %949 = getelementptr float, ptr %3, i64 %.131360
  %950 = load float, ptr %949, align 4, !tbaa !9
  %951 = getelementptr float, ptr %4, i64 %.131360
  %952 = load float, ptr %951, align 4, !tbaa !9
  %953 = fdiv float %950, %952
  %954 = insertelement <2 x float> poison, float %950, i64 0
  %955 = insertelement <2 x float> %954, float %953, i64 1
  %956 = shufflevector <2 x float> %955, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %957 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %955, <2 x float> %956, <2 x float> %946)
  %958 = extractelement <2 x float> %957, i64 0
  %959 = fadd float %948, %958
  %960 = add nuw nsw i64 %.131360, 2
  %niter1943.next.1 = add i64 %niter1943, 2
  %niter1943.ncmp.1 = icmp eq i64 %niter1943.next.1, %unroll_iter1942
  br i1 %niter1943.ncmp.1, label %._crit_edge1366.loopexit.unr-lcssa, label %.lr.ph1365, !llvm.loop !79

._crit_edge1366.loopexit.unr-lcssa:               ; preds = %.lr.ph1365, %.lr.ph1365.preheader
  %.lcssa1920.ph = phi <2 x float> [ poison, %.lr.ph1365.preheader ], [ %957, %.lr.ph1365 ]
  %.lcssa1919.ph = phi float [ poison, %.lr.ph1365.preheader ], [ %959, %.lr.ph1365 ]
  %.41363.unr = phi float [ 0.000000e+00, %.lr.ph1365.preheader ], [ %959, %.lr.ph1365 ]
  %.131360.unr = phi i64 [ 1, %.lr.ph1365.preheader ], [ %960, %.lr.ph1365 ]
  %.unr = phi <2 x float> [ zeroinitializer, %.lr.ph1365.preheader ], [ %957, %.lr.ph1365 ]
  %lcmp.mod1939.not = icmp eq i64 %xtraiter1937, 0
  br i1 %lcmp.mod1939.not, label %._crit_edge1366, label %.lr.ph1365.epil

.lr.ph1365.epil:                                  ; preds = %._crit_edge1366.loopexit.unr-lcssa
  %961 = getelementptr inbounds float, ptr %16, i64 %.131360.unr
  %962 = load float, ptr %961, align 4, !tbaa !9
  %963 = getelementptr inbounds float, ptr %15, i64 %.131360.unr
  %964 = load float, ptr %963, align 4, !tbaa !9
  %965 = fdiv float %962, %964
  %966 = insertelement <2 x float> poison, float %962, i64 0
  %967 = insertelement <2 x float> %966, float %965, i64 1
  %968 = shufflevector <2 x float> %967, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %969 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %967, <2 x float> %968, <2 x float> %.unr)
  %970 = extractelement <2 x float> %969, i64 0
  %971 = fadd float %.41363.unr, %970
  br label %._crit_edge1366

._crit_edge1366:                                  ; preds = %.lr.ph1365.epil, %._crit_edge1366.loopexit.unr-lcssa, %931
  %.4.lcssa = phi float [ 0.000000e+00, %931 ], [ %.lcssa1919.ph, %._crit_edge1366.loopexit.unr-lcssa ], [ %971, %.lr.ph1365.epil ]
  %972 = phi <2 x float> [ zeroinitializer, %931 ], [ %.lcssa1920.ph, %._crit_edge1366.loopexit.unr-lcssa ], [ %969, %.lr.ph1365.epil ]
  %973 = fcmp oge float %.4.lcssa, 0.000000e+00
  %974 = fneg float %.4.lcssa
  %975 = select i1 %973, float %.4.lcssa, float %974
  %.not1289.not1370 = icmp sgt i64 %932, %.01237
  br i1 %.not1289.not1370, label %.lr.ph1376.preheader, label %._crit_edge1377

.lr.ph1376.preheader:                             ; preds = %._crit_edge1366
  %976 = sub i64 %932, %.01237
  %.neg = add i64 %.01237, 1
  %xtraiter1944 = and i64 %976, 1
  %lcmp.mod1945.not = icmp eq i64 %xtraiter1944, 0
  br i1 %lcmp.mod1945.not, label %.lr.ph1376.prol.loopexit, label %.lr.ph1376.prol

.lr.ph1376.prol:                                  ; preds = %.lr.ph1376.preheader
  %977 = getelementptr inbounds float, ptr %16, i64 %932
  %978 = load float, ptr %977, align 4, !tbaa !9
  %979 = getelementptr inbounds float, ptr %15, i64 %932
  %980 = load float, ptr %979, align 4, !tbaa !9
  %981 = fdiv float %978, %980
  %982 = insertelement <2 x float> poison, float %978, i64 0
  %983 = insertelement <2 x float> %982, float %981, i64 1
  %984 = shufflevector <2 x float> %983, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %985 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %983, <2 x float> %984, <2 x float> zeroinitializer)
  %986 = extractelement <2 x float> %985, i64 0
  %987 = fadd float %975, %986
  %988 = add nsw i64 %932, -1
  br label %.lr.ph1376.prol.loopexit

.lr.ph1376.prol.loopexit:                         ; preds = %.lr.ph1376.prol, %.lr.ph1376.preheader
  %.51374.unr = phi float [ %975, %.lr.ph1376.preheader ], [ %987, %.lr.ph1376.prol ]
  %.141371.unr = phi i64 [ %932, %.lr.ph1376.preheader ], [ %988, %.lr.ph1376.prol ]
  %.unr1947 = phi <2 x float> [ zeroinitializer, %.lr.ph1376.preheader ], [ %985, %.lr.ph1376.prol ]
  %.lcssa1918.unr = phi <2 x float> [ poison, %.lr.ph1376.preheader ], [ %985, %.lr.ph1376.prol ]
  %.lcssa1917.unr = phi float [ poison, %.lr.ph1376.preheader ], [ %987, %.lr.ph1376.prol ]
  %989 = icmp eq i64 %932, %.neg
  br i1 %989, label %._crit_edge1377, label %.lr.ph1376

.lr.ph1376:                                       ; preds = %.lr.ph1376.prol.loopexit, %.lr.ph1376
  %.51374 = phi float [ %1013, %.lr.ph1376 ], [ %.51374.unr, %.lr.ph1376.prol.loopexit ]
  %.141371 = phi i64 [ %1014, %.lr.ph1376 ], [ %.141371.unr, %.lr.ph1376.prol.loopexit ]
  %990 = phi <2 x float> [ %1011, %.lr.ph1376 ], [ %.unr1947, %.lr.ph1376.prol.loopexit ]
  %991 = getelementptr inbounds float, ptr %16, i64 %.141371
  %992 = load float, ptr %991, align 4, !tbaa !9
  %993 = getelementptr inbounds float, ptr %15, i64 %.141371
  %994 = load float, ptr %993, align 4, !tbaa !9
  %995 = fdiv float %992, %994
  %996 = insertelement <2 x float> poison, float %992, i64 0
  %997 = insertelement <2 x float> %996, float %995, i64 1
  %998 = shufflevector <2 x float> %997, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %999 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %997, <2 x float> %998, <2 x float> %990)
  %1000 = extractelement <2 x float> %999, i64 0
  %1001 = fadd float %.51374, %1000
  %1002 = add nsw i64 %.141371, -1
  %1003 = getelementptr inbounds float, ptr %16, i64 %1002
  %1004 = load float, ptr %1003, align 4, !tbaa !9
  %1005 = getelementptr inbounds float, ptr %15, i64 %1002
  %1006 = load float, ptr %1005, align 4, !tbaa !9
  %1007 = fdiv float %1004, %1006
  %1008 = insertelement <2 x float> poison, float %1004, i64 0
  %1009 = insertelement <2 x float> %1008, float %1007, i64 1
  %1010 = shufflevector <2 x float> %1009, <2 x float> poison, <2 x i32> <i32 1, i32 1>
  %1011 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1009, <2 x float> %1010, <2 x float> %999)
  %1012 = extractelement <2 x float> %1011, i64 0
  %1013 = fadd float %1001, %1012
  %1014 = add nsw i64 %.141371, -2
  %.not1289.not.1 = icmp sgt i64 %1014, %.01237
  br i1 %.not1289.not.1, label %.lr.ph1376, label %._crit_edge1377, !llvm.loop !80

._crit_edge1377:                                  ; preds = %.lr.ph1376.prol.loopexit, %.lr.ph1376, %._crit_edge1366
  %.5.lcssa = phi float [ %975, %._crit_edge1366 ], [ %.lcssa1917.unr, %.lr.ph1376.prol.loopexit ], [ %1013, %.lr.ph1376 ]
  %1015 = phi <2 x float> [ zeroinitializer, %._crit_edge1366 ], [ %.lcssa1918.unr, %.lr.ph1376.prol.loopexit ], [ %1011, %.lr.ph1376 ]
  %1016 = extractelement <2 x float> %1015, i64 0
  %1017 = fadd float %31, %1016
  %1018 = extractelement <2 x float> %972, i64 0
  %1019 = fadd float %1018, %1017
  br i1 %773, label %1023, label %1020

1020:                                             ; preds = %._crit_edge1377
  %1021 = fcmp olt float %1019, 0.000000e+00
  br i1 %1021, label %1022, label %1026

1022:                                             ; preds = %1020
  br label %1026

1023:                                             ; preds = %._crit_edge1377
  %1024 = fcmp ogt float %1019, 0.000000e+00
  br i1 %1024, label %1025, label %1026

1025:                                             ; preds = %1023
  br label %1026

1026:                                             ; preds = %1023, %1025, %1020, %1022
  %.not12911330 = phi i1 [ false, %1022 ], [ true, %1020 ], [ false, %1025 ], [ true, %1023 ]
  %1027 = icmp eq i64 %.01237, 1
  %1028 = icmp eq i64 %.01237, %932
  %or.cond1329 = or i1 %1027, %1028
  %1029 = getelementptr inbounds float, ptr %16, i64 %.01237
  %1030 = load float, ptr %1029, align 4, !tbaa !9
  %1031 = getelementptr inbounds float, ptr %15, i64 %.01237
  %1032 = load float, ptr %1031, align 4, !tbaa !9
  %1033 = fdiv float %1030, %1032
  %1034 = extractelement <2 x float> %1015, i64 1
  %1035 = extractelement <2 x float> %972, i64 1
  %1036 = fadd float %1035, %1034
  %1037 = tail call float @llvm.fmuladd.f32(float %1033, float %1033, float %1036)
  %1038 = fmul float %1030, %1033
  %1039 = fadd float %1019, %1038
  store float %1039, ptr %10, align 4, !tbaa !9
  %1040 = fsub <2 x float> %1015, %972
  %1041 = extractelement <2 x float> %1040, i64 0
  %1042 = tail call float @llvm.fmuladd.f32(float %1041, float 8.000000e+00, float %.5.lcssa)
  %1043 = tail call float @llvm.fmuladd.f32(float %31, float 2.000000e+00, float %1042)
  %1044 = fpext float %1043 to double
  %1045 = fcmp oge float %1038, 0.000000e+00
  %1046 = fneg float %1038
  %1047 = select i1 %1045, float %1038, float %1046
  %1048 = fpext float %1047 to double
  %1049 = tail call double @llvm.fmuladd.f64(double %1048, double 3.000000e+00, double %1044)
  %1050 = fcmp oge float %.6122916021607, 0.000000e+00
  %1051 = fneg float %.6122916021607
  %1052 = select i1 %1050, float %.6122916021607, float %1051
  %1053 = fpext float %1052 to double
  %1054 = fpext float %1037 to double
  %1055 = tail call double @llvm.fmuladd.f64(double %1053, double %1054, double %1049)
  %1056 = fptrunc double %1055 to float
  %1057 = fcmp oge float %1039, 0.000000e+00
  %1058 = fneg float %1039
  %1059 = select i1 %1057, float %1039, float %1058
  %1060 = fmul float %29, %1056
  %1061 = fcmp ugt float %1059, %1060
  br i1 %1061, label %1070, label %1062

1062:                                             ; preds = %1026
  br i1 %773, label %1067, label %1063

1063:                                             ; preds = %1062
  %1064 = getelementptr inbounds float, ptr %17, i64 %933
  %1065 = load float, ptr %1064, align 4, !tbaa !9
  %1066 = fadd float %1065, %.6122916021607
  store float %1066, ptr %6, align 4, !tbaa !9
  br label %.loopexit

1067:                                             ; preds = %1062
  %1068 = load float, ptr %631, align 4, !tbaa !9
  %1069 = fadd float %1068, %.6122916021607
  store float %1069, ptr %6, align 4, !tbaa !9
  br label %.loopexit

1070:                                             ; preds = %1026
  %1071 = fcmp ugt float %1039, 0.000000e+00
  br i1 %1071, label %1075, label %1072

1072:                                             ; preds = %1070
  %1073 = fcmp oge float %.4119315981611, %.6122916021607
  %1074 = select i1 %1073, float %.4119315981611, float %.6122916021607
  br label %1078

1075:                                             ; preds = %1070
  %1076 = fcmp ole float %.4118516001609, %.6122916021607
  %1077 = select i1 %1076, float %.4118516001609, float %.6122916021607
  br label %1078

1078:                                             ; preds = %1075, %1072
  %.51194 = phi float [ %1074, %1072 ], [ %.4119315981611, %1075 ]
  %.51186 = phi float [ %.4118516001609, %1072 ], [ %1077, %1075 ]
  store i64 2, ptr %13, align 8, !tbaa !5
  %.not1291 = or i1 %or.cond1329, %.not12911330
  br i1 %.not1291, label %1079, label %1168

1079:                                             ; preds = %1078
  %1080 = getelementptr inbounds float, ptr %17, i64 %933
  %1081 = load float, ptr %1080, align 4, !tbaa !9
  br i1 %773, label %1096, label %1082

1082:                                             ; preds = %1079
  %1083 = getelementptr inbounds float, ptr %16, i64 %933
  %1084 = load float, ptr %1083, align 4, !tbaa !9
  %1085 = getelementptr inbounds float, ptr %15, i64 %933
  %1086 = load float, ptr %1085, align 4, !tbaa !9
  %1087 = fdiv float %1084, %1086
  %1088 = load float, ptr %764, align 4, !tbaa !9
  %1089 = fneg float %1088
  %1090 = tail call float @llvm.fmuladd.f32(float %1089, float %1037, float %1039)
  %1091 = load float, ptr %631, align 4, !tbaa !9
  %1092 = fsub float %1081, %1091
  %1093 = fmul float %1087, %1087
  %1094 = fneg float %1092
  %1095 = tail call float @llvm.fmuladd.f32(float %1094, float %1093, float %1090)
  br label %1109

1096:                                             ; preds = %1079
  %1097 = load float, ptr %763, align 4, !tbaa !9
  %1098 = load float, ptr %764, align 4, !tbaa !9
  %1099 = fdiv float %1097, %1098
  %1100 = getelementptr inbounds float, ptr %15, i64 %933
  %1101 = load float, ptr %1100, align 4, !tbaa !9
  %1102 = fneg float %1101
  %1103 = tail call float @llvm.fmuladd.f32(float %1102, float %1037, float %1039)
  %1104 = load float, ptr %631, align 4, !tbaa !9
  %1105 = fsub float %1104, %1081
  %1106 = fmul float %1099, %1099
  %1107 = fneg float %1105
  %1108 = tail call float @llvm.fmuladd.f32(float %1107, float %1106, float %1103)
  br label %1109

1109:                                             ; preds = %1096, %1082
  %1110 = phi float [ %1098, %1096 ], [ %1088, %1082 ]
  %1111 = phi float [ %1101, %1096 ], [ %1086, %1082 ]
  %1112 = phi float [ %1108, %1096 ], [ %1095, %1082 ]
  %1113 = fadd float %1111, %1110
  %1114 = fmul float %1111, %1110
  %1115 = fneg float %1114
  %1116 = fmul float %1037, %1115
  %1117 = tail call float @llvm.fmuladd.f32(float %1113, float %1039, float %1116)
  %1118 = fmul float %1039, %1114
  %1119 = fcmp oeq float %1112, 0.000000e+00
  br i1 %1119, label %1120, label %1136

1120:                                             ; preds = %1109
  %1121 = fcmp oeq float %1117, 0.000000e+00
  br i1 %1121, label %1122, label %1134

1122:                                             ; preds = %1120
  br i1 %773, label %1129, label %1123

1123:                                             ; preds = %1122
  %1124 = getelementptr inbounds float, ptr %16, i64 %933
  %1125 = load float, ptr %1124, align 4, !tbaa !9
  %1126 = fmul float %1110, %1110
  %1127 = fmul float %1036, %1126
  %1128 = tail call float @llvm.fmuladd.f32(float %1125, float %1125, float %1127)
  br label %1134

1129:                                             ; preds = %1122
  %1130 = load float, ptr %763, align 4, !tbaa !9
  %1131 = fmul float %1111, %1111
  %1132 = fmul float %1036, %1131
  %1133 = tail call float @llvm.fmuladd.f32(float %1130, float %1130, float %1132)
  br label %1134

1134:                                             ; preds = %1123, %1129, %1120
  %.01249 = phi float [ %1128, %1123 ], [ %1133, %1129 ], [ %1117, %1120 ]
  %1135 = fdiv float %1118, %.01249
  store float %1135, ptr %12, align 4, !tbaa !9
  br label %1224

1136:                                             ; preds = %1109
  %1137 = fcmp ugt float %1117, 0.000000e+00
  br i1 %1137, label %1153, label %1138

1138:                                             ; preds = %1136
  %1139 = fpext float %1117 to double
  %1140 = fmul float %1118, -4.000000e+00
  %1141 = fmul float %1112, %1140
  %1142 = tail call float @llvm.fmuladd.f32(float %1117, float %1117, float %1141)
  %1143 = fcmp oge float %1142, 0.000000e+00
  %1144 = fneg float %1142
  %1145 = select i1 %1143, float %1142, float %1144
  %1146 = fpext float %1145 to double
  %1147 = tail call double @sqrt(double noundef %1146) #6
  %1148 = fsub double %1139, %1147
  %1149 = fmul float %1112, 2.000000e+00
  %1150 = fpext float %1149 to double
  %1151 = fdiv double %1148, %1150
  %1152 = fptrunc double %1151 to float
  store float %1152, ptr %12, align 4, !tbaa !9
  br label %1224

1153:                                             ; preds = %1136
  %1154 = fmul float %1118, 2.000000e+00
  %1155 = fpext float %1154 to double
  %1156 = fpext float %1117 to double
  %1157 = fmul float %1118, -4.000000e+00
  %1158 = fmul float %1112, %1157
  %1159 = tail call float @llvm.fmuladd.f32(float %1117, float %1117, float %1158)
  %1160 = fcmp oge float %1159, 0.000000e+00
  %1161 = fneg float %1159
  %1162 = select i1 %1160, float %1159, float %1161
  %1163 = fpext float %1162 to double
  %1164 = tail call double @sqrt(double noundef %1163) #6
  %1165 = fadd double %1164, %1156
  %1166 = fdiv double %1155, %1165
  %1167 = fptrunc double %1166 to float
  store float %1167, ptr %12, align 4, !tbaa !9
  br label %1224

1168:                                             ; preds = %1078
  %1169 = fadd float %31, %1018
  %1170 = fadd float %1169, %1016
  br i1 %773, label %1194, label %1171

1171:                                             ; preds = %1168
  %1172 = getelementptr inbounds float, ptr %16, i64 %934
  %1173 = load float, ptr %1172, align 4, !tbaa !9
  %1174 = getelementptr inbounds float, ptr %15, i64 %934
  %1175 = load float, ptr %1174, align 4, !tbaa !9
  %1176 = fdiv float %1173, %1175
  %1177 = fmul float %1176, %1176
  %1178 = getelementptr float, ptr %4, i64 %.01237
  %1179 = load float, ptr %1178, align 4, !tbaa !9
  %1180 = fneg float %1179
  %1181 = tail call float @llvm.fmuladd.f32(float %1180, float %1036, float %1170)
  %1182 = getelementptr inbounds float, ptr %17, i64 %934
  %1183 = load float, ptr %1182, align 4, !tbaa !9
  %1184 = getelementptr float, ptr %2, i64 %.01237
  %1185 = load float, ptr %1184, align 4, !tbaa !9
  %1186 = fsub float %1183, %1185
  %1187 = fneg float %1186
  %1188 = tail call float @llvm.fmuladd.f32(float %1187, float %1177, float %1181)
  %1189 = fmul float %1173, %1173
  %1190 = fmul float %1179, %1179
  %1191 = fsub float %1035, %1177
  %1192 = fadd float %1034, %1191
  %1193 = fmul float %1190, %1192
  br label %1217

1194:                                             ; preds = %1168
  %1195 = getelementptr float, ptr %3, i64 %.01237
  %1196 = load float, ptr %1195, align 4, !tbaa !9
  %1197 = getelementptr float, ptr %4, i64 %.01237
  %1198 = load float, ptr %1197, align 4, !tbaa !9
  %1199 = fdiv float %1196, %1198
  %1200 = fmul float %1199, %1199
  %1201 = getelementptr inbounds float, ptr %15, i64 %934
  %1202 = load float, ptr %1201, align 4, !tbaa !9
  %1203 = fneg float %1202
  %1204 = tail call float @llvm.fmuladd.f32(float %1203, float %1036, float %1170)
  %1205 = getelementptr float, ptr %2, i64 %.01237
  %1206 = load float, ptr %1205, align 4, !tbaa !9
  %1207 = getelementptr inbounds float, ptr %17, i64 %934
  %1208 = load float, ptr %1207, align 4, !tbaa !9
  %1209 = fsub float %1206, %1208
  %1210 = fneg float %1209
  %1211 = tail call float @llvm.fmuladd.f32(float %1210, float %1200, float %1204)
  %1212 = fmul float %1202, %1202
  %1213 = fsub float %1034, %1200
  %1214 = fadd float %1035, %1213
  %1215 = fmul float %1212, %1214
  %1216 = fmul float %1196, %1196
  br label %1217

1217:                                             ; preds = %1194, %1171
  %.sink1587 = phi float [ %1211, %1194 ], [ %1188, %1171 ]
  %.sink1586 = phi float [ %1215, %1194 ], [ %1189, %1171 ]
  %.sink = phi float [ %1216, %1194 ], [ %1193, %1171 ]
  store float %.sink1587, ptr %9, align 4
  store float %.sink1586, ptr %11, align 4
  %1218 = getelementptr inbounds i8, ptr %11, i64 8
  store float %.sink, ptr %1218, align 4
  %1219 = fmul float %1030, %1030
  %1220 = getelementptr inbounds i8, ptr %11, i64 4
  store float %1219, ptr %1220, align 4, !tbaa !9
  %1221 = getelementptr inbounds float, ptr %15, i64 %934
  %1222 = call i32 @slaed6_(ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %9, ptr noundef nonnull %1221, ptr noundef nonnull %11, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %7) #6
  %1223 = load i64, ptr %7, align 8, !tbaa !5
  %.not1295 = icmp eq i64 %1223, 0
  br i1 %.not1295, label %._crit_edge1588, label %.loopexit

._crit_edge1588:                                  ; preds = %1217
  %.pre = load float, ptr %10, align 4, !tbaa !9
  %.pre1589 = load float, ptr %12, align 4, !tbaa !9
  br label %1224

1224:                                             ; preds = %._crit_edge1588, %1134, %1153, %1138
  %1225 = phi float [ %.pre1589, %._crit_edge1588 ], [ %1135, %1134 ], [ %1167, %1153 ], [ %1152, %1138 ]
  %1226 = phi float [ %.pre, %._crit_edge1588 ], [ %1039, %1134 ], [ %1039, %1153 ], [ %1039, %1138 ]
  %1227 = fmul float %1226, %1225
  %1228 = fcmp ult float %1227, 0.000000e+00
  br i1 %1228, label %1232, label %1229

1229:                                             ; preds = %1224
  %1230 = fneg float %1226
  %1231 = fdiv float %1230, %1037
  store float %1231, ptr %12, align 4, !tbaa !9
  br label %1232

1232:                                             ; preds = %1229, %1224
  %1233 = phi float [ %1231, %1229 ], [ %1225, %1224 ]
  %1234 = fadd float %1233, %.6122916021607
  %1235 = fcmp ogt float %1234, %.51186
  %1236 = fcmp olt float %1234, %.51194
  %or.cond1327 = select i1 %1235, i1 true, i1 %1236
  br i1 %or.cond1327, label %1237, label %1245

1237:                                             ; preds = %1232
  %1238 = fcmp olt float %1226, 0.000000e+00
  br i1 %1238, label %1239, label %1242

1239:                                             ; preds = %1237
  %1240 = fsub float %.51186, %.6122916021607
  %1241 = fmul float %1240, 5.000000e-01
  store float %1241, ptr %12, align 4, !tbaa !9
  br label %1245

1242:                                             ; preds = %1237
  %1243 = fsub float %.51194, %.6122916021607
  %1244 = fmul float %1243, 5.000000e-01
  store float %1244, ptr %12, align 4, !tbaa !9
  br label %1245

1245:                                             ; preds = %1232, %1239, %1242
  %1246 = phi float [ %1233, %1232 ], [ %1241, %1239 ], [ %1244, %1242 ]
  %1247 = load i64, ptr %0, align 8, !tbaa !5
  %.not12961381 = icmp slt i64 %1247, 1
  br i1 %.not12961381, label %.preheader1331, label %.lr.ph1384.preheader

.lr.ph1384.preheader:                             ; preds = %1245
  %min.iters.check1763 = icmp ult i64 %1247, 8
  br i1 %min.iters.check1763, label %.lr.ph1384.preheader1916, label %vector.ph1764

.lr.ph1384.preheader1916:                         ; preds = %middle.block1761, %.lr.ph1384.preheader
  %.151382.ph = phi i64 [ 1, %.lr.ph1384.preheader ], [ %ind.end1767, %middle.block1761 ]
  br label %.lr.ph1384

vector.ph1764:                                    ; preds = %.lr.ph1384.preheader
  %n.vec1766 = and i64 %1247, 9223372036854775800
  %ind.end1767 = or disjoint i64 %n.vec1766, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %1246, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1769

vector.body1769:                                  ; preds = %vector.body1769, %vector.ph1764
  %index1770 = phi i64 [ 0, %vector.ph1764 ], [ %index.next1774, %vector.body1769 ]
  %1248 = getelementptr float, ptr %4, i64 %index1770
  %1249 = getelementptr inbounds i8, ptr %1248, i64 16
  %wide.load1772 = load <4 x float>, ptr %1248, align 4, !tbaa !9
  %wide.load1773 = load <4 x float>, ptr %1249, align 4, !tbaa !9
  %1250 = fsub <4 x float> %wide.load1772, %broadcast.splat
  %1251 = fsub <4 x float> %wide.load1773, %broadcast.splat
  store <4 x float> %1250, ptr %1248, align 4, !tbaa !9
  store <4 x float> %1251, ptr %1249, align 4, !tbaa !9
  %index.next1774 = add nuw i64 %index1770, 8
  %1252 = icmp eq i64 %index.next1774, %n.vec1766
  br i1 %1252, label %middle.block1761, label %vector.body1769, !llvm.loop !81

middle.block1761:                                 ; preds = %vector.body1769
  %cmp.n1775 = icmp eq i64 %1247, %n.vec1766
  br i1 %cmp.n1775, label %.preheader1331, label %.lr.ph1384.preheader1916

.preheader1331:                                   ; preds = %.lr.ph1384, %middle.block1761, %1245
  br i1 %.not1288.not1359, label %.lr.ph1390.preheader, label %._crit_edge1391

.lr.ph1390.preheader:                             ; preds = %.preheader1331
  %1253 = add nsw i64 %.01237, -1
  %xtraiter1948 = and i64 %1253, 1
  %1254 = icmp eq i64 %.01237, 2
  br i1 %1254, label %._crit_edge1391.loopexit.unr-lcssa, label %.lr.ph1390.preheader.new

.lr.ph1390.preheader.new:                         ; preds = %.lr.ph1390.preheader
  %unroll_iter1955 = and i64 %1253, -2
  br label %.lr.ph1390

.lr.ph1384:                                       ; preds = %.lr.ph1384.preheader1916, %.lr.ph1384
  %.151382 = phi i64 [ %1258, %.lr.ph1384 ], [ %.151382.ph, %.lr.ph1384.preheader1916 ]
  %1255 = getelementptr inbounds float, ptr %15, i64 %.151382
  %1256 = load float, ptr %1255, align 4, !tbaa !9
  %1257 = fsub float %1256, %1246
  store float %1257, ptr %1255, align 4, !tbaa !9
  %1258 = add nuw i64 %.151382, 1
  %exitcond1573.not = icmp eq i64 %.151382, %1247
  br i1 %exitcond1573.not, label %.preheader1331, label %.lr.ph1384, !llvm.loop !82

.lr.ph1390:                                       ; preds = %.lr.ph1390, %.lr.ph1390.preheader.new
  %.61389 = phi float [ 0.000000e+00, %.lr.ph1390.preheader.new ], [ %1281, %.lr.ph1390 ]
  %.161386 = phi i64 [ 1, %.lr.ph1390.preheader.new ], [ %1282, %.lr.ph1390 ]
  %1259 = phi <2 x float> [ zeroinitializer, %.lr.ph1390.preheader.new ], [ %1279, %.lr.ph1390 ]
  %niter1956 = phi i64 [ 0, %.lr.ph1390.preheader.new ], [ %niter1956.next.1, %.lr.ph1390 ]
  %1260 = getelementptr inbounds float, ptr %16, i64 %.161386
  %1261 = load float, ptr %1260, align 4, !tbaa !9
  %1262 = getelementptr inbounds float, ptr %15, i64 %.161386
  %1263 = load float, ptr %1262, align 4, !tbaa !9
  %1264 = fdiv float %1261, %1263
  %1265 = insertelement <2 x float> poison, float %1264, i64 0
  %1266 = insertelement <2 x float> %1265, float %1261, i64 1
  %1267 = shufflevector <2 x float> %1265, <2 x float> poison, <2 x i32> zeroinitializer
  %1268 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1266, <2 x float> %1267, <2 x float> %1259)
  %1269 = extractelement <2 x float> %1268, i64 1
  %1270 = fadd float %.61389, %1269
  %1271 = getelementptr float, ptr %3, i64 %.161386
  %1272 = load float, ptr %1271, align 4, !tbaa !9
  %1273 = getelementptr float, ptr %4, i64 %.161386
  %1274 = load float, ptr %1273, align 4, !tbaa !9
  %1275 = fdiv float %1272, %1274
  %1276 = insertelement <2 x float> poison, float %1275, i64 0
  %1277 = insertelement <2 x float> %1276, float %1272, i64 1
  %1278 = shufflevector <2 x float> %1276, <2 x float> poison, <2 x i32> zeroinitializer
  %1279 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1277, <2 x float> %1278, <2 x float> %1268)
  %1280 = extractelement <2 x float> %1279, i64 1
  %1281 = fadd float %1270, %1280
  %1282 = add nuw nsw i64 %.161386, 2
  %niter1956.next.1 = add i64 %niter1956, 2
  %niter1956.ncmp.1 = icmp eq i64 %niter1956.next.1, %unroll_iter1955
  br i1 %niter1956.ncmp.1, label %._crit_edge1391.loopexit.unr-lcssa.loopexit, label %.lr.ph1390, !llvm.loop !83

._crit_edge1391.loopexit.unr-lcssa.loopexit:      ; preds = %.lr.ph1390
  %1283 = extractelement <2 x float> %1279, i64 0
  br label %._crit_edge1391.loopexit.unr-lcssa

._crit_edge1391.loopexit.unr-lcssa:               ; preds = %._crit_edge1391.loopexit.unr-lcssa.loopexit, %.lr.ph1390.preheader
  %.lcssa1915.ph = phi float [ poison, %.lr.ph1390.preheader ], [ %1280, %._crit_edge1391.loopexit.unr-lcssa.loopexit ]
  %.lcssa1914.ph = phi float [ poison, %.lr.ph1390.preheader ], [ %1281, %._crit_edge1391.loopexit.unr-lcssa.loopexit ]
  %.lcssa1913.ph = phi float [ poison, %.lr.ph1390.preheader ], [ %1283, %._crit_edge1391.loopexit.unr-lcssa.loopexit ]
  %.61389.unr = phi float [ 0.000000e+00, %.lr.ph1390.preheader ], [ %1281, %._crit_edge1391.loopexit.unr-lcssa.loopexit ]
  %.161386.unr = phi i64 [ 1, %.lr.ph1390.preheader ], [ %1282, %._crit_edge1391.loopexit.unr-lcssa.loopexit ]
  %.unr1950 = phi <2 x float> [ zeroinitializer, %.lr.ph1390.preheader ], [ %1279, %._crit_edge1391.loopexit.unr-lcssa.loopexit ]
  %lcmp.mod1951.not = icmp eq i64 %xtraiter1948, 0
  br i1 %lcmp.mod1951.not, label %._crit_edge1391, label %.lr.ph1390.epil

.lr.ph1390.epil:                                  ; preds = %._crit_edge1391.loopexit.unr-lcssa
  %1284 = getelementptr inbounds float, ptr %16, i64 %.161386.unr
  %1285 = load float, ptr %1284, align 4, !tbaa !9
  %1286 = getelementptr inbounds float, ptr %15, i64 %.161386.unr
  %1287 = load float, ptr %1286, align 4, !tbaa !9
  %1288 = fdiv float %1285, %1287
  %1289 = insertelement <2 x float> poison, float %1288, i64 0
  %1290 = insertelement <2 x float> %1289, float %1285, i64 1
  %1291 = shufflevector <2 x float> %1289, <2 x float> poison, <2 x i32> zeroinitializer
  %1292 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1290, <2 x float> %1291, <2 x float> %.unr1950)
  %1293 = extractelement <2 x float> %1292, i64 1
  %1294 = fadd float %.61389.unr, %1293
  %1295 = extractelement <2 x float> %1292, i64 0
  br label %._crit_edge1391

._crit_edge1391:                                  ; preds = %.lr.ph1390.epil, %._crit_edge1391.loopexit.unr-lcssa, %.preheader1331
  %.61220.lcssa = phi float [ 0.000000e+00, %.preheader1331 ], [ %.lcssa1915.ph, %._crit_edge1391.loopexit.unr-lcssa ], [ %1293, %.lr.ph1390.epil ]
  %.51202.lcssa = phi float [ 0.000000e+00, %.preheader1331 ], [ %.lcssa1913.ph, %._crit_edge1391.loopexit.unr-lcssa ], [ %1295, %.lr.ph1390.epil ]
  %.6.lcssa = phi float [ 0.000000e+00, %.preheader1331 ], [ %.lcssa1914.ph, %._crit_edge1391.loopexit.unr-lcssa ], [ %1294, %.lr.ph1390.epil ]
  %1296 = fcmp oge float %.6.lcssa, 0.000000e+00
  %1297 = fneg float %.6.lcssa
  %1298 = select i1 %1296, float %.6.lcssa, float %1297
  %.not1298.not1395 = icmp sgt i64 %1247, %.01237
  br i1 %.not1298.not1395, label %.lr.ph1401.preheader, label %._crit_edge1402

.lr.ph1401.preheader:                             ; preds = %._crit_edge1391
  %1299 = sub i64 %1247, %.01237
  %.neg2010 = add i64 %.01237, 1
  %xtraiter1957 = and i64 %1299, 1
  %lcmp.mod1958.not = icmp eq i64 %xtraiter1957, 0
  br i1 %lcmp.mod1958.not, label %.lr.ph1401.prol.loopexit, label %.lr.ph1401.prol

.lr.ph1401.prol:                                  ; preds = %.lr.ph1401.preheader
  %1300 = getelementptr inbounds float, ptr %16, i64 %1247
  %1301 = load float, ptr %1300, align 4, !tbaa !9
  %1302 = getelementptr inbounds float, ptr %15, i64 %1247
  %1303 = load float, ptr %1302, align 4, !tbaa !9
  %1304 = fdiv float %1301, %1303
  %1305 = insertelement <2 x float> poison, float %1304, i64 0
  %1306 = insertelement <2 x float> %1305, float %1301, i64 1
  %1307 = shufflevector <2 x float> %1305, <2 x float> poison, <2 x i32> zeroinitializer
  %1308 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1306, <2 x float> %1307, <2 x float> zeroinitializer)
  %1309 = extractelement <2 x float> %1308, i64 1
  %1310 = fadd float %1298, %1309
  %1311 = add nsw i64 %1247, -1
  %1312 = extractelement <2 x float> %1308, i64 0
  br label %.lr.ph1401.prol.loopexit

.lr.ph1401.prol.loopexit:                         ; preds = %.lr.ph1401.prol, %.lr.ph1401.preheader
  %.71399.unr = phi float [ %1298, %.lr.ph1401.preheader ], [ %1310, %.lr.ph1401.prol ]
  %.171396.unr = phi i64 [ %1247, %.lr.ph1401.preheader ], [ %1311, %.lr.ph1401.prol ]
  %.unr1960 = phi <2 x float> [ zeroinitializer, %.lr.ph1401.preheader ], [ %1308, %.lr.ph1401.prol ]
  %.lcssa1912.unr = phi float [ poison, %.lr.ph1401.preheader ], [ %1309, %.lr.ph1401.prol ]
  %.lcssa1911.unr = phi float [ poison, %.lr.ph1401.preheader ], [ %1310, %.lr.ph1401.prol ]
  %.lcssa1910.unr = phi float [ poison, %.lr.ph1401.preheader ], [ %1312, %.lr.ph1401.prol ]
  %1313 = icmp eq i64 %1247, %.neg2010
  br i1 %1313, label %._crit_edge1402, label %.lr.ph1401

.lr.ph1401:                                       ; preds = %.lr.ph1401.prol.loopexit, %.lr.ph1401
  %.71399 = phi float [ %1337, %.lr.ph1401 ], [ %.71399.unr, %.lr.ph1401.prol.loopexit ]
  %.171396 = phi i64 [ %1338, %.lr.ph1401 ], [ %.171396.unr, %.lr.ph1401.prol.loopexit ]
  %1314 = phi <2 x float> [ %1335, %.lr.ph1401 ], [ %.unr1960, %.lr.ph1401.prol.loopexit ]
  %1315 = getelementptr inbounds float, ptr %16, i64 %.171396
  %1316 = load float, ptr %1315, align 4, !tbaa !9
  %1317 = getelementptr inbounds float, ptr %15, i64 %.171396
  %1318 = load float, ptr %1317, align 4, !tbaa !9
  %1319 = fdiv float %1316, %1318
  %1320 = insertelement <2 x float> poison, float %1319, i64 0
  %1321 = insertelement <2 x float> %1320, float %1316, i64 1
  %1322 = shufflevector <2 x float> %1320, <2 x float> poison, <2 x i32> zeroinitializer
  %1323 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1321, <2 x float> %1322, <2 x float> %1314)
  %1324 = extractelement <2 x float> %1323, i64 1
  %1325 = fadd float %.71399, %1324
  %1326 = add nsw i64 %.171396, -1
  %1327 = getelementptr inbounds float, ptr %16, i64 %1326
  %1328 = load float, ptr %1327, align 4, !tbaa !9
  %1329 = getelementptr inbounds float, ptr %15, i64 %1326
  %1330 = load float, ptr %1329, align 4, !tbaa !9
  %1331 = fdiv float %1328, %1330
  %1332 = insertelement <2 x float> poison, float %1331, i64 0
  %1333 = insertelement <2 x float> %1332, float %1328, i64 1
  %1334 = shufflevector <2 x float> %1332, <2 x float> poison, <2 x i32> zeroinitializer
  %1335 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1333, <2 x float> %1334, <2 x float> %1323)
  %1336 = extractelement <2 x float> %1335, i64 1
  %1337 = fadd float %1325, %1336
  %1338 = add nsw i64 %.171396, -2
  %.not1298.not.1 = icmp sgt i64 %1338, %.01237
  br i1 %.not1298.not.1, label %.lr.ph1401, label %._crit_edge1402.loopexit.unr-lcssa, !llvm.loop !84

._crit_edge1402.loopexit.unr-lcssa:               ; preds = %.lr.ph1401
  %1339 = extractelement <2 x float> %1335, i64 0
  br label %._crit_edge1402

._crit_edge1402:                                  ; preds = %._crit_edge1402.loopexit.unr-lcssa, %.lr.ph1401.prol.loopexit, %._crit_edge1391
  %.21233.lcssa = phi float [ 0.000000e+00, %._crit_edge1391 ], [ %.lcssa1912.unr, %.lr.ph1401.prol.loopexit ], [ %1336, %._crit_edge1402.loopexit.unr-lcssa ]
  %.21209.lcssa = phi float [ 0.000000e+00, %._crit_edge1391 ], [ %.lcssa1910.unr, %.lr.ph1401.prol.loopexit ], [ %1339, %._crit_edge1402.loopexit.unr-lcssa ]
  %.7.lcssa = phi float [ %1298, %._crit_edge1391 ], [ %.lcssa1911.unr, %.lr.ph1401.prol.loopexit ], [ %1337, %._crit_edge1402.loopexit.unr-lcssa ]
  %1340 = load float, ptr %1029, align 4, !tbaa !9
  %1341 = load float, ptr %1031, align 4, !tbaa !9
  %1342 = fdiv float %1340, %1341
  %1343 = fadd float %.51202.lcssa, %.21209.lcssa
  %1344 = call float @llvm.fmuladd.f32(float %1342, float %1342, float %1343)
  %1345 = fmul float %1340, %1342
  %1346 = fadd float %31, %.21233.lcssa
  %1347 = fadd float %.61220.lcssa, %1346
  %1348 = fadd float %1347, %1345
  store float %1348, ptr %10, align 4, !tbaa !9
  %1349 = fsub float %.21233.lcssa, %.61220.lcssa
  %1350 = call float @llvm.fmuladd.f32(float %1349, float 8.000000e+00, float %.7.lcssa)
  %1351 = call float @llvm.fmuladd.f32(float %31, float 2.000000e+00, float %1350)
  %1352 = fpext float %1351 to double
  %1353 = fcmp oge float %1345, 0.000000e+00
  %1354 = fneg float %1345
  %1355 = select i1 %1353, float %1345, float %1354
  %1356 = fpext float %1355 to double
  %1357 = call double @llvm.fmuladd.f64(double %1356, double 3.000000e+00, double %1352)
  %1358 = fadd float %1246, %.6122916021607
  %1359 = fcmp oge float %1358, 0.000000e+00
  %1360 = fneg float %1358
  %1361 = select i1 %1359, float %1358, float %1360
  %1362 = fpext float %1361 to double
  %1363 = fpext float %1344 to double
  %1364 = call double @llvm.fmuladd.f64(double %1362, double %1363, double %1357)
  %1365 = load i64, ptr %14, align 8, !tbaa !5
  %.not1299 = icmp eq i64 %1365, 0
  br i1 %.not1299, label %1376, label %1366

1366:                                             ; preds = %._crit_edge1402
  %1367 = fneg float %1348
  %1368 = fpext float %1367 to double
  %1369 = fcmp oge float %1226, 0.000000e+00
  %1370 = fneg float %1226
  %1371 = select i1 %1369, float %1226, float %1370
  %1372 = fpext float %1371 to double
  %1373 = fdiv double %1372, 1.000000e+01
  %1374 = fcmp olt double %1373, %1368
  br i1 %1374, label %1375, label %1385

1375:                                             ; preds = %1366
  br label %1385

1376:                                             ; preds = %._crit_edge1402
  %1377 = fpext float %1348 to double
  %1378 = fcmp oge float %1226, 0.000000e+00
  %1379 = fneg float %1226
  %1380 = select i1 %1378, float %1226, float %1379
  %1381 = fpext float %1380 to double
  %1382 = fdiv double %1381, 1.000000e+01
  %1383 = fcmp olt double %1382, %1377
  br i1 %1383, label %1384, label %1385

1384:                                             ; preds = %1376
  br label %1385

1385:                                             ; preds = %1376, %1384, %1366, %1375
  %.01178 = phi i64 [ 1, %1375 ], [ 0, %1366 ], [ 1, %1384 ], [ 0, %1376 ]
  %storemerge1300.in1433 = load i64, ptr %13, align 8, !tbaa !5
  %storemerge13001434 = add nsw i64 %storemerge1300.in1433, 1
  store i64 %storemerge13001434, ptr %13, align 8, !tbaa !5
  %1386 = icmp slt i64 %storemerge1300.in1433, 30
  br i1 %1386, label %.lr.ph1446, label %._crit_edge1447

.lr.ph1446:                                       ; preds = %1385
  %1387 = getelementptr inbounds float, ptr %15, i64 %934
  %1388 = getelementptr float, ptr %4, i64 %.01237
  %1389 = getelementptr inbounds i8, ptr %11, i64 8
  %1390 = getelementptr inbounds float, ptr %16, i64 %934
  %1391 = getelementptr inbounds float, ptr %17, i64 %934
  %1392 = getelementptr float, ptr %2, i64 %.01237
  %1393 = getelementptr float, ptr %3, i64 %.01237
  %1394 = add i64 %.01237, -1
  %.neg2011 = add i64 %.01237, 1
  %xtraiter1961 = and i64 %1394, 1
  %1395 = icmp eq i64 %.01237, 2
  %unroll_iter1968 = and i64 %1394, -2
  %lcmp.mod1964.not = icmp eq i64 %xtraiter1961, 0
  br label %1396

1396:                                             ; preds = %.lr.ph1446, %1753
  %1397 = phi float [ %1341, %.lr.ph1446 ], [ %1715, %1753 ]
  %1398 = phi float [ %1340, %.lr.ph1446 ], [ %1714, %1753 ]
  %1399 = phi float [ %1348, %.lr.ph1446 ], [ %1722, %1753 ]
  %.8.in1444 = phi double [ %1364, %.lr.ph1446 ], [ %1737, %1753 ]
  %.111791443 = phi i64 [ %.01178, %.lr.ph1446 ], [ %.21180, %1753 ]
  %.611871442 = phi float [ %.51186, %.lr.ph1446 ], [ %.71188, %1753 ]
  %.611951441 = phi float [ %.51194, %.lr.ph1446 ], [ %.71196, %1753 ]
  %.612031440 = phi float [ %.51202.lcssa, %.lr.ph1446 ], [ %.91206.lcssa, %1753 ]
  %.312101439 = phi float [ %.21209.lcssa, %.lr.ph1446 ], [ %.61213.lcssa, %1753 ]
  %.712211438 = phi float [ %.61220.lcssa, %.lr.ph1446 ], [ %.81222.lcssa, %1753 ]
  %.712301437 = phi float [ %1358, %.lr.ph1446 ], [ %1632, %1753 ]
  %.312341436 = phi float [ %.21233.lcssa, %.lr.ph1446 ], [ %.41235.lcssa, %1753 ]
  %.012361435 = phi float [ %1344, %.lr.ph1446 ], [ %1718, %1753 ]
  %.8 = fptrunc double %.8.in1444 to float
  %1400 = fcmp oge float %1399, 0.000000e+00
  %1401 = fneg float %1399
  %1402 = select i1 %1400, float %1399, float %1401
  %1403 = fmul float %29, %.8
  %1404 = fcmp ugt float %1402, %1403
  br i1 %1404, label %1415, label %1405

1405:                                             ; preds = %1396
  %1406 = load i64, ptr %14, align 8, !tbaa !5
  %.not1313 = icmp eq i64 %1406, 0
  br i1 %.not1313, label %1412, label %1407

1407:                                             ; preds = %1405
  %1408 = load i64, ptr %1, align 8, !tbaa !5
  %1409 = getelementptr inbounds float, ptr %17, i64 %1408
  %1410 = load float, ptr %1409, align 4, !tbaa !9
  %1411 = fadd float %.712301437, %1410
  store float %1411, ptr %6, align 4, !tbaa !9
  br label %.loopexit

1412:                                             ; preds = %1405
  %1413 = load float, ptr %631, align 4, !tbaa !9
  %1414 = fadd float %.712301437, %1413
  store float %1414, ptr %6, align 4, !tbaa !9
  br label %.loopexit

1415:                                             ; preds = %1396
  %1416 = fcmp ugt float %1399, 0.000000e+00
  br i1 %1416, label %1420, label %1417

1417:                                             ; preds = %1415
  %1418 = fcmp oge float %.611951441, %.712301437
  %1419 = select i1 %1418, float %.611951441, float %.712301437
  br label %1423

1420:                                             ; preds = %1415
  %1421 = fcmp ole float %.611871442, %.712301437
  %1422 = select i1 %1421, float %.611871442, float %.712301437
  br label %1423

1423:                                             ; preds = %1420, %1417
  %.71196 = phi float [ %1419, %1417 ], [ %.611951441, %1420 ]
  %.71188 = phi float [ %.611871442, %1417 ], [ %1422, %1420 ]
  br i1 %.not1291, label %1424, label %1543

1424:                                             ; preds = %1423
  %.not1302 = icmp eq i64 %.111791443, 0
  br i1 %.not1302, label %1425, label %1460

1425:                                             ; preds = %1424
  %1426 = load i64, ptr %14, align 8, !tbaa !5
  %.not1303 = icmp eq i64 %1426, 0
  br i1 %.not1303, label %1444, label %1427

1427:                                             ; preds = %1425
  %1428 = load i64, ptr %1, align 8, !tbaa !5
  %1429 = getelementptr inbounds float, ptr %16, i64 %1428
  %1430 = load float, ptr %1429, align 4, !tbaa !9
  %1431 = getelementptr inbounds float, ptr %15, i64 %1428
  %1432 = load float, ptr %1431, align 4, !tbaa !9
  %1433 = fdiv float %1430, %1432
  %1434 = load float, ptr %764, align 4, !tbaa !9
  %1435 = fneg float %1434
  %1436 = call float @llvm.fmuladd.f32(float %1435, float %.012361435, float %1399)
  %1437 = getelementptr inbounds float, ptr %17, i64 %1428
  %1438 = load float, ptr %1437, align 4, !tbaa !9
  %1439 = load float, ptr %631, align 4, !tbaa !9
  %1440 = fsub float %1438, %1439
  %1441 = fmul float %1433, %1433
  %1442 = fneg float %1440
  %1443 = call float @llvm.fmuladd.f32(float %1442, float %1441, float %1436)
  store float %1443, ptr %9, align 4, !tbaa !9
  br label %1473

1444:                                             ; preds = %1425
  %1445 = load float, ptr %763, align 4, !tbaa !9
  %1446 = load float, ptr %764, align 4, !tbaa !9
  %1447 = fdiv float %1445, %1446
  %1448 = load i64, ptr %1, align 8, !tbaa !5
  %1449 = getelementptr inbounds float, ptr %15, i64 %1448
  %1450 = load float, ptr %1449, align 4, !tbaa !9
  %1451 = fneg float %1450
  %1452 = call float @llvm.fmuladd.f32(float %1451, float %.012361435, float %1399)
  %1453 = load float, ptr %631, align 4, !tbaa !9
  %1454 = getelementptr inbounds float, ptr %17, i64 %1448
  %1455 = load float, ptr %1454, align 4, !tbaa !9
  %1456 = fsub float %1453, %1455
  %1457 = fmul float %1447, %1447
  %1458 = fneg float %1456
  %1459 = call float @llvm.fmuladd.f32(float %1458, float %1457, float %1452)
  store float %1459, ptr %9, align 4, !tbaa !9
  br label %1473

1460:                                             ; preds = %1424
  %1461 = fdiv float %1398, %1397
  %1462 = load i64, ptr %14, align 8, !tbaa !5
  %.not1304 = icmp eq i64 %1462, 0
  %1463 = call float @llvm.fmuladd.f32(float %1461, float %1461, float %.612031440)
  %1464 = call float @llvm.fmuladd.f32(float %1461, float %1461, float %.312101439)
  %.41211 = select i1 %.not1304, float %1464, float %.312101439
  %.71204 = select i1 %.not1304, float %.612031440, float %1463
  %1465 = load i64, ptr %1, align 8, !tbaa !5
  %1466 = getelementptr inbounds float, ptr %15, i64 %1465
  %1467 = load float, ptr %1466, align 4, !tbaa !9
  %1468 = fneg float %1467
  %1469 = call float @llvm.fmuladd.f32(float %1468, float %.71204, float %1399)
  %1470 = load float, ptr %764, align 4, !tbaa !9
  %1471 = fneg float %1470
  %1472 = call float @llvm.fmuladd.f32(float %1471, float %.41211, float %1469)
  store float %1472, ptr %9, align 4, !tbaa !9
  br label %1473

1473:                                             ; preds = %1427, %1444, %1460
  %1474 = phi i64 [ %1462, %1460 ], [ 1, %1427 ], [ 0, %1444 ]
  %1475 = phi float [ %1472, %1460 ], [ %1443, %1427 ], [ %1459, %1444 ]
  %1476 = phi float [ %1470, %1460 ], [ %1434, %1427 ], [ %1446, %1444 ]
  %1477 = phi float [ %1467, %1460 ], [ %1432, %1427 ], [ %1450, %1444 ]
  %1478 = phi i64 [ %1465, %1460 ], [ %1428, %1427 ], [ %1448, %1444 ]
  %.51212 = phi float [ %.41211, %1460 ], [ %.312101439, %1427 ], [ %.312101439, %1444 ]
  %.81205 = phi float [ %.71204, %1460 ], [ %.612031440, %1427 ], [ %.612031440, %1444 ]
  %1479 = fadd float %1477, %1476
  %1480 = fmul float %1477, %1476
  %1481 = fneg float %1480
  %1482 = fmul float %.012361435, %1481
  %1483 = call float @llvm.fmuladd.f32(float %1479, float %1399, float %1482)
  %1484 = fmul float %1399, %1480
  %1485 = fcmp oeq float %1475, 0.000000e+00
  br i1 %1485, label %1486, label %1510

1486:                                             ; preds = %1473
  %1487 = fcmp oeq float %1483, 0.000000e+00
  br i1 %1487, label %1488, label %1508

1488:                                             ; preds = %1486
  br i1 %.not1302, label %1489, label %1503

1489:                                             ; preds = %1488
  %.not1305 = icmp eq i64 %1474, 0
  br i1 %.not1305, label %1497, label %1490

1490:                                             ; preds = %1489
  %1491 = getelementptr inbounds float, ptr %16, i64 %1478
  %1492 = load float, ptr %1491, align 4, !tbaa !9
  %1493 = fmul float %1476, %1476
  %1494 = fadd float %.51212, %.81205
  %1495 = fmul float %1494, %1493
  %1496 = call float @llvm.fmuladd.f32(float %1492, float %1492, float %1495)
  br label %1508

1497:                                             ; preds = %1489
  %1498 = load float, ptr %763, align 4, !tbaa !9
  %1499 = fmul float %1477, %1477
  %1500 = fadd float %.51212, %.81205
  %1501 = fmul float %1500, %1499
  %1502 = call float @llvm.fmuladd.f32(float %1498, float %1498, float %1501)
  br label %1508

1503:                                             ; preds = %1488
  %1504 = fmul float %1477, %1477
  %1505 = fmul float %1476, %1476
  %1506 = fmul float %.51212, %1505
  %1507 = call float @llvm.fmuladd.f32(float %1504, float %.81205, float %1506)
  br label %1508

1508:                                             ; preds = %1503, %1497, %1490, %1486
  %.11250 = phi float [ %1507, %1503 ], [ %1496, %1490 ], [ %1502, %1497 ], [ %1483, %1486 ]
  %1509 = fdiv float %1484, %.11250
  store float %1509, ptr %12, align 4, !tbaa !9
  br label %1599

1510:                                             ; preds = %1473
  %1511 = fcmp ugt float %1483, 0.000000e+00
  br i1 %1511, label %1528, label %1512

1512:                                             ; preds = %1510
  %1513 = fpext float %1483 to double
  %1514 = fmul float %1484, -4.000000e+00
  %1515 = fmul float %1475, %1514
  %1516 = call float @llvm.fmuladd.f32(float %1483, float %1483, float %1515)
  %1517 = fcmp oge float %1516, 0.000000e+00
  %1518 = fneg float %1516
  %1519 = select i1 %1517, float %1516, float %1518
  %1520 = fpext float %1519 to double
  %1521 = call double @sqrt(double noundef %1520) #6
  %1522 = fsub double %1513, %1521
  %1523 = load float, ptr %9, align 4, !tbaa !9
  %1524 = fmul float %1523, 2.000000e+00
  %1525 = fpext float %1524 to double
  %1526 = fdiv double %1522, %1525
  %1527 = fptrunc double %1526 to float
  store float %1527, ptr %12, align 4, !tbaa !9
  br label %1599

1528:                                             ; preds = %1510
  %1529 = fmul float %1484, 2.000000e+00
  %1530 = fpext float %1529 to double
  %1531 = fpext float %1483 to double
  %1532 = fmul float %1484, -4.000000e+00
  %1533 = fmul float %1475, %1532
  %1534 = call float @llvm.fmuladd.f32(float %1483, float %1483, float %1533)
  %1535 = fcmp oge float %1534, 0.000000e+00
  %1536 = fneg float %1534
  %1537 = select i1 %1535, float %1534, float %1536
  %1538 = fpext float %1537 to double
  %1539 = call double @sqrt(double noundef %1538) #6
  %1540 = fadd double %1539, %1531
  %1541 = fdiv double %1530, %1540
  %1542 = fptrunc double %1541 to float
  store float %1542, ptr %12, align 4, !tbaa !9
  br label %1599

1543:                                             ; preds = %1423
  %1544 = fadd float %31, %.712211438
  %1545 = fadd float %.312341436, %1544
  %.not1306 = icmp eq i64 %.111791443, 0
  br i1 %.not1306, label %1557, label %1546

1546:                                             ; preds = %1543
  %1547 = load float, ptr %1387, align 4, !tbaa !9
  %1548 = fneg float %1547
  %1549 = call float @llvm.fmuladd.f32(float %1548, float %.612031440, float %1545)
  %1550 = load float, ptr %1388, align 4, !tbaa !9
  %1551 = fneg float %1550
  %1552 = call float @llvm.fmuladd.f32(float %1551, float %.312101439, float %1549)
  store float %1552, ptr %9, align 4, !tbaa !9
  %1553 = fmul float %1547, %1547
  %1554 = fmul float %.612031440, %1553
  store float %1554, ptr %11, align 4, !tbaa !9
  %1555 = fmul float %1550, %1550
  %1556 = fmul float %.312101439, %1555
  br label %1596

1557:                                             ; preds = %1543
  %1558 = load i64, ptr %14, align 8, !tbaa !5
  %.not1307 = icmp eq i64 %1558, 0
  %1559 = fadd float %.312101439, %.612031440
  br i1 %.not1307, label %1578, label %1560

1560:                                             ; preds = %1557
  %1561 = load float, ptr %1390, align 4, !tbaa !9
  %1562 = load float, ptr %1387, align 4, !tbaa !9
  %1563 = fdiv float %1561, %1562
  %1564 = fmul float %1563, %1563
  %1565 = load float, ptr %1388, align 4, !tbaa !9
  %1566 = fneg float %1565
  %1567 = call float @llvm.fmuladd.f32(float %1566, float %1559, float %1545)
  %1568 = load float, ptr %1391, align 4, !tbaa !9
  %1569 = load float, ptr %1392, align 4, !tbaa !9
  %1570 = fsub float %1568, %1569
  %1571 = fneg float %1570
  %1572 = call float @llvm.fmuladd.f32(float %1571, float %1564, float %1567)
  store float %1572, ptr %9, align 4, !tbaa !9
  %1573 = fmul float %1561, %1561
  store float %1573, ptr %11, align 4, !tbaa !9
  %1574 = fmul float %1565, %1565
  %1575 = fsub float %.612031440, %1564
  %1576 = fadd float %.312101439, %1575
  %1577 = fmul float %1574, %1576
  br label %1596

1578:                                             ; preds = %1557
  %1579 = load float, ptr %1393, align 4, !tbaa !9
  %1580 = load float, ptr %1388, align 4, !tbaa !9
  %1581 = fdiv float %1579, %1580
  %1582 = fmul float %1581, %1581
  %1583 = load float, ptr %1387, align 4, !tbaa !9
  %1584 = fneg float %1583
  %1585 = call float @llvm.fmuladd.f32(float %1584, float %1559, float %1545)
  %1586 = load float, ptr %1392, align 4, !tbaa !9
  %1587 = load float, ptr %1391, align 4, !tbaa !9
  %1588 = fsub float %1586, %1587
  %1589 = fneg float %1588
  %1590 = call float @llvm.fmuladd.f32(float %1589, float %1582, float %1585)
  store float %1590, ptr %9, align 4, !tbaa !9
  %1591 = fmul float %1583, %1583
  %1592 = fsub float %.312101439, %1582
  %1593 = fadd float %.612031440, %1592
  %1594 = fmul float %1591, %1593
  store float %1594, ptr %11, align 4, !tbaa !9
  %1595 = fmul float %1579, %1579
  br label %1596

1596:                                             ; preds = %1560, %1578, %1546
  %.sink1655 = phi float [ %1577, %1560 ], [ %1595, %1578 ], [ %1556, %1546 ]
  store float %.sink1655, ptr %1389, align 4, !tbaa !9
  %1597 = call i32 @slaed6_(ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %9, ptr noundef nonnull %1387, ptr noundef nonnull %11, ptr noundef nonnull %10, ptr noundef nonnull %12, ptr noundef nonnull %7) #6
  %1598 = load i64, ptr %7, align 8, !tbaa !5
  %.not1308 = icmp eq i64 %1598, 0
  br i1 %.not1308, label %._crit_edge1590, label %.loopexit

._crit_edge1590:                                  ; preds = %1596
  %.pre1591 = load float, ptr %12, align 4, !tbaa !9
  br label %1599

1599:                                             ; preds = %._crit_edge1590, %1508, %1528, %1512
  %1600 = phi float [ %.pre1591, %._crit_edge1590 ], [ %1509, %1508 ], [ %1542, %1528 ], [ %1527, %1512 ]
  %1601 = load float, ptr %10, align 4, !tbaa !9
  %1602 = fmul float %1601, %1600
  %1603 = fcmp ult float %1602, 0.000000e+00
  br i1 %1603, label %1607, label %1604

1604:                                             ; preds = %1599
  %1605 = fneg float %1601
  %1606 = fdiv float %1605, %.012361435
  store float %1606, ptr %12, align 4, !tbaa !9
  br label %1607

1607:                                             ; preds = %1604, %1599
  %1608 = phi float [ %1606, %1604 ], [ %1600, %1599 ]
  %1609 = fadd float %.712301437, %1608
  %1610 = fcmp ogt float %1609, %.71188
  %1611 = fcmp olt float %1609, %.71196
  %or.cond1328 = select i1 %1610, i1 true, i1 %1611
  br i1 %or.cond1328, label %1612, label %1620

1612:                                             ; preds = %1607
  %1613 = fcmp olt float %1601, 0.000000e+00
  br i1 %1613, label %1614, label %1617

1614:                                             ; preds = %1612
  %1615 = fsub float %.71188, %.712301437
  %1616 = fmul float %1615, 5.000000e-01
  store float %1616, ptr %12, align 4, !tbaa !9
  br label %1620

1617:                                             ; preds = %1612
  %1618 = fsub float %.71196, %.712301437
  %1619 = fmul float %1618, 5.000000e-01
  store float %1619, ptr %12, align 4, !tbaa !9
  br label %1620

1620:                                             ; preds = %1607, %1614, %1617
  %1621 = phi float [ %1608, %1607 ], [ %1616, %1614 ], [ %1619, %1617 ]
  %1622 = load i64, ptr %0, align 8, !tbaa !5
  %.not13091406 = icmp slt i64 %1622, 1
  br i1 %.not13091406, label %._crit_edge1410, label %.lr.ph1409.preheader

.lr.ph1409.preheader:                             ; preds = %1620
  %min.iters.check1778 = icmp ult i64 %1622, 8
  br i1 %min.iters.check1778, label %.lr.ph1409.preheader1900, label %vector.ph1779

vector.ph1779:                                    ; preds = %.lr.ph1409.preheader
  %n.vec1781 = and i64 %1622, 9223372036854775800
  %ind.end1782 = or disjoint i64 %n.vec1781, 1
  %broadcast.splatinsert1789 = insertelement <4 x float> poison, float %1621, i64 0
  %broadcast.splat1790 = shufflevector <4 x float> %broadcast.splatinsert1789, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1784

vector.body1784:                                  ; preds = %vector.body1784, %vector.ph1779
  %index1785 = phi i64 [ 0, %vector.ph1779 ], [ %index.next1791, %vector.body1784 ]
  %1623 = getelementptr float, ptr %4, i64 %index1785
  %1624 = getelementptr inbounds i8, ptr %1623, i64 16
  %wide.load1787 = load <4 x float>, ptr %1623, align 4, !tbaa !9
  %wide.load1788 = load <4 x float>, ptr %1624, align 4, !tbaa !9
  %1625 = fsub <4 x float> %wide.load1787, %broadcast.splat1790
  %1626 = fsub <4 x float> %wide.load1788, %broadcast.splat1790
  store <4 x float> %1625, ptr %1623, align 4, !tbaa !9
  store <4 x float> %1626, ptr %1624, align 4, !tbaa !9
  %index.next1791 = add nuw i64 %index1785, 8
  %1627 = icmp eq i64 %index.next1791, %n.vec1781
  br i1 %1627, label %middle.block1776, label %vector.body1784, !llvm.loop !85

middle.block1776:                                 ; preds = %vector.body1784
  %cmp.n1792 = icmp eq i64 %1622, %n.vec1781
  br i1 %cmp.n1792, label %._crit_edge1410, label %.lr.ph1409.preheader1900

.lr.ph1409.preheader1900:                         ; preds = %middle.block1776, %.lr.ph1409.preheader
  %.181407.ph = phi i64 [ 1, %.lr.ph1409.preheader ], [ %ind.end1782, %middle.block1776 ]
  br label %.lr.ph1409

.lr.ph1409:                                       ; preds = %.lr.ph1409.preheader1900, %.lr.ph1409
  %.181407 = phi i64 [ %1631, %.lr.ph1409 ], [ %.181407.ph, %.lr.ph1409.preheader1900 ]
  %1628 = getelementptr inbounds float, ptr %15, i64 %.181407
  %1629 = load float, ptr %1628, align 4, !tbaa !9
  %1630 = fsub float %1629, %1621
  store float %1630, ptr %1628, align 4, !tbaa !9
  %1631 = add nuw i64 %.181407, 1
  %exitcond1575.not = icmp eq i64 %.181407, %1622
  br i1 %exitcond1575.not, label %._crit_edge1410, label %.lr.ph1409, !llvm.loop !86

._crit_edge1410:                                  ; preds = %.lr.ph1409, %middle.block1776, %1620
  %1632 = fadd float %.712301437, %1621
  br i1 %.not1288.not1359, label %.lr.ph1417.preheader, label %._crit_edge1418

.lr.ph1417.preheader:                             ; preds = %._crit_edge1410
  br i1 %1395, label %._crit_edge1418.loopexit.unr-lcssa, label %.lr.ph1417

.lr.ph1417:                                       ; preds = %.lr.ph1417.preheader, %.lr.ph1417
  %.91415 = phi float [ %1655, %.lr.ph1417 ], [ 0.000000e+00, %.lr.ph1417.preheader ]
  %.191412 = phi i64 [ %1656, %.lr.ph1417 ], [ 1, %.lr.ph1417.preheader ]
  %1633 = phi <2 x float> [ %1653, %.lr.ph1417 ], [ zeroinitializer, %.lr.ph1417.preheader ]
  %niter1969 = phi i64 [ %niter1969.next.1, %.lr.ph1417 ], [ 0, %.lr.ph1417.preheader ]
  %1634 = getelementptr inbounds float, ptr %16, i64 %.191412
  %1635 = load float, ptr %1634, align 4, !tbaa !9
  %1636 = getelementptr inbounds float, ptr %15, i64 %.191412
  %1637 = load float, ptr %1636, align 4, !tbaa !9
  %1638 = fdiv float %1635, %1637
  %1639 = insertelement <2 x float> poison, float %1638, i64 0
  %1640 = insertelement <2 x float> %1639, float %1635, i64 1
  %1641 = shufflevector <2 x float> %1639, <2 x float> poison, <2 x i32> zeroinitializer
  %1642 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1640, <2 x float> %1641, <2 x float> %1633)
  %1643 = extractelement <2 x float> %1642, i64 1
  %1644 = fadd float %.91415, %1643
  %1645 = getelementptr float, ptr %3, i64 %.191412
  %1646 = load float, ptr %1645, align 4, !tbaa !9
  %1647 = getelementptr float, ptr %4, i64 %.191412
  %1648 = load float, ptr %1647, align 4, !tbaa !9
  %1649 = fdiv float %1646, %1648
  %1650 = insertelement <2 x float> poison, float %1649, i64 0
  %1651 = insertelement <2 x float> %1650, float %1646, i64 1
  %1652 = shufflevector <2 x float> %1650, <2 x float> poison, <2 x i32> zeroinitializer
  %1653 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1651, <2 x float> %1652, <2 x float> %1642)
  %1654 = extractelement <2 x float> %1653, i64 1
  %1655 = fadd float %1644, %1654
  %1656 = add nuw nsw i64 %.191412, 2
  %niter1969.next.1 = add i64 %niter1969, 2
  %niter1969.ncmp.1 = icmp eq i64 %niter1969.next.1, %unroll_iter1968
  br i1 %niter1969.ncmp.1, label %._crit_edge1418.loopexit.unr-lcssa.loopexit, label %.lr.ph1417, !llvm.loop !87

._crit_edge1418.loopexit.unr-lcssa.loopexit:      ; preds = %.lr.ph1417
  %1657 = extractelement <2 x float> %1653, i64 0
  br label %._crit_edge1418.loopexit.unr-lcssa

._crit_edge1418.loopexit.unr-lcssa:               ; preds = %._crit_edge1418.loopexit.unr-lcssa.loopexit, %.lr.ph1417.preheader
  %.lcssa1903.ph = phi float [ poison, %.lr.ph1417.preheader ], [ %1654, %._crit_edge1418.loopexit.unr-lcssa.loopexit ]
  %.lcssa1902.ph = phi float [ poison, %.lr.ph1417.preheader ], [ %1655, %._crit_edge1418.loopexit.unr-lcssa.loopexit ]
  %.lcssa1901.ph = phi float [ poison, %.lr.ph1417.preheader ], [ %1657, %._crit_edge1418.loopexit.unr-lcssa.loopexit ]
  %.91415.unr = phi float [ 0.000000e+00, %.lr.ph1417.preheader ], [ %1655, %._crit_edge1418.loopexit.unr-lcssa.loopexit ]
  %.191412.unr = phi i64 [ 1, %.lr.ph1417.preheader ], [ %1656, %._crit_edge1418.loopexit.unr-lcssa.loopexit ]
  %.unr1963 = phi <2 x float> [ zeroinitializer, %.lr.ph1417.preheader ], [ %1653, %._crit_edge1418.loopexit.unr-lcssa.loopexit ]
  br i1 %lcmp.mod1964.not, label %._crit_edge1418, label %.lr.ph1417.epil

.lr.ph1417.epil:                                  ; preds = %._crit_edge1418.loopexit.unr-lcssa
  %1658 = getelementptr inbounds float, ptr %16, i64 %.191412.unr
  %1659 = load float, ptr %1658, align 4, !tbaa !9
  %1660 = getelementptr inbounds float, ptr %15, i64 %.191412.unr
  %1661 = load float, ptr %1660, align 4, !tbaa !9
  %1662 = fdiv float %1659, %1661
  %1663 = insertelement <2 x float> poison, float %1662, i64 0
  %1664 = insertelement <2 x float> %1663, float %1659, i64 1
  %1665 = shufflevector <2 x float> %1663, <2 x float> poison, <2 x i32> zeroinitializer
  %1666 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1664, <2 x float> %1665, <2 x float> %.unr1963)
  %1667 = extractelement <2 x float> %1666, i64 1
  %1668 = fadd float %.91415.unr, %1667
  %1669 = extractelement <2 x float> %1666, i64 0
  br label %._crit_edge1418

._crit_edge1418:                                  ; preds = %.lr.ph1417.epil, %._crit_edge1418.loopexit.unr-lcssa, %._crit_edge1410
  %.81222.lcssa = phi float [ 0.000000e+00, %._crit_edge1410 ], [ %.lcssa1903.ph, %._crit_edge1418.loopexit.unr-lcssa ], [ %1667, %.lr.ph1417.epil ]
  %.91206.lcssa = phi float [ 0.000000e+00, %._crit_edge1410 ], [ %.lcssa1901.ph, %._crit_edge1418.loopexit.unr-lcssa ], [ %1669, %.lr.ph1417.epil ]
  %.9.lcssa = phi float [ 0.000000e+00, %._crit_edge1410 ], [ %.lcssa1902.ph, %._crit_edge1418.loopexit.unr-lcssa ], [ %1668, %.lr.ph1417.epil ]
  %1670 = fcmp oge float %.9.lcssa, 0.000000e+00
  %1671 = fneg float %.9.lcssa
  %1672 = select i1 %1670, float %.9.lcssa, float %1671
  %.not1311.not1422 = icmp sgt i64 %1622, %.01237
  br i1 %.not1311.not1422, label %.lr.ph1428.preheader, label %._crit_edge1429

.lr.ph1428.preheader:                             ; preds = %._crit_edge1418
  %1673 = sub i64 %1622, %.01237
  %xtraiter1970 = and i64 %1673, 1
  %lcmp.mod1971.not = icmp eq i64 %xtraiter1970, 0
  br i1 %lcmp.mod1971.not, label %.lr.ph1428.prol.loopexit, label %.lr.ph1428.prol

.lr.ph1428.prol:                                  ; preds = %.lr.ph1428.preheader
  %1674 = getelementptr inbounds float, ptr %16, i64 %1622
  %1675 = load float, ptr %1674, align 4, !tbaa !9
  %1676 = getelementptr inbounds float, ptr %15, i64 %1622
  %1677 = load float, ptr %1676, align 4, !tbaa !9
  %1678 = fdiv float %1675, %1677
  %1679 = insertelement <2 x float> poison, float %1678, i64 0
  %1680 = insertelement <2 x float> %1679, float %1675, i64 1
  %1681 = shufflevector <2 x float> %1679, <2 x float> poison, <2 x i32> zeroinitializer
  %1682 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1680, <2 x float> %1681, <2 x float> zeroinitializer)
  %1683 = extractelement <2 x float> %1682, i64 1
  %1684 = fadd float %1672, %1683
  %1685 = add nsw i64 %1622, -1
  %1686 = extractelement <2 x float> %1682, i64 0
  br label %.lr.ph1428.prol.loopexit

.lr.ph1428.prol.loopexit:                         ; preds = %.lr.ph1428.prol, %.lr.ph1428.preheader
  %.101426.unr = phi float [ %1672, %.lr.ph1428.preheader ], [ %1684, %.lr.ph1428.prol ]
  %.201423.unr = phi i64 [ %1622, %.lr.ph1428.preheader ], [ %1685, %.lr.ph1428.prol ]
  %.unr1973 = phi <2 x float> [ zeroinitializer, %.lr.ph1428.preheader ], [ %1682, %.lr.ph1428.prol ]
  %.lcssa1906.unr = phi float [ poison, %.lr.ph1428.preheader ], [ %1683, %.lr.ph1428.prol ]
  %.lcssa1905.unr = phi float [ poison, %.lr.ph1428.preheader ], [ %1684, %.lr.ph1428.prol ]
  %.lcssa1904.unr = phi float [ poison, %.lr.ph1428.preheader ], [ %1686, %.lr.ph1428.prol ]
  %1687 = icmp eq i64 %1622, %.neg2011
  br i1 %1687, label %._crit_edge1429, label %.lr.ph1428

.lr.ph1428:                                       ; preds = %.lr.ph1428.prol.loopexit, %.lr.ph1428
  %.101426 = phi float [ %1711, %.lr.ph1428 ], [ %.101426.unr, %.lr.ph1428.prol.loopexit ]
  %.201423 = phi i64 [ %1712, %.lr.ph1428 ], [ %.201423.unr, %.lr.ph1428.prol.loopexit ]
  %1688 = phi <2 x float> [ %1709, %.lr.ph1428 ], [ %.unr1973, %.lr.ph1428.prol.loopexit ]
  %1689 = getelementptr inbounds float, ptr %16, i64 %.201423
  %1690 = load float, ptr %1689, align 4, !tbaa !9
  %1691 = getelementptr inbounds float, ptr %15, i64 %.201423
  %1692 = load float, ptr %1691, align 4, !tbaa !9
  %1693 = fdiv float %1690, %1692
  %1694 = insertelement <2 x float> poison, float %1693, i64 0
  %1695 = insertelement <2 x float> %1694, float %1690, i64 1
  %1696 = shufflevector <2 x float> %1694, <2 x float> poison, <2 x i32> zeroinitializer
  %1697 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1695, <2 x float> %1696, <2 x float> %1688)
  %1698 = extractelement <2 x float> %1697, i64 1
  %1699 = fadd float %.101426, %1698
  %1700 = add nsw i64 %.201423, -1
  %1701 = getelementptr inbounds float, ptr %16, i64 %1700
  %1702 = load float, ptr %1701, align 4, !tbaa !9
  %1703 = getelementptr inbounds float, ptr %15, i64 %1700
  %1704 = load float, ptr %1703, align 4, !tbaa !9
  %1705 = fdiv float %1702, %1704
  %1706 = insertelement <2 x float> poison, float %1705, i64 0
  %1707 = insertelement <2 x float> %1706, float %1702, i64 1
  %1708 = shufflevector <2 x float> %1706, <2 x float> poison, <2 x i32> zeroinitializer
  %1709 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1707, <2 x float> %1708, <2 x float> %1697)
  %1710 = extractelement <2 x float> %1709, i64 1
  %1711 = fadd float %1699, %1710
  %1712 = add nsw i64 %.201423, -2
  %.not1311.not.1 = icmp sgt i64 %1712, %.01237
  br i1 %.not1311.not.1, label %.lr.ph1428, label %._crit_edge1429.loopexit.unr-lcssa, !llvm.loop !88

._crit_edge1429.loopexit.unr-lcssa:               ; preds = %.lr.ph1428
  %1713 = extractelement <2 x float> %1709, i64 0
  br label %._crit_edge1429

._crit_edge1429:                                  ; preds = %._crit_edge1429.loopexit.unr-lcssa, %.lr.ph1428.prol.loopexit, %._crit_edge1418
  %.41235.lcssa = phi float [ 0.000000e+00, %._crit_edge1418 ], [ %.lcssa1906.unr, %.lr.ph1428.prol.loopexit ], [ %1710, %._crit_edge1429.loopexit.unr-lcssa ]
  %.61213.lcssa = phi float [ 0.000000e+00, %._crit_edge1418 ], [ %.lcssa1904.unr, %.lr.ph1428.prol.loopexit ], [ %1713, %._crit_edge1429.loopexit.unr-lcssa ]
  %.10.lcssa = phi float [ %1672, %._crit_edge1418 ], [ %.lcssa1905.unr, %.lr.ph1428.prol.loopexit ], [ %1711, %._crit_edge1429.loopexit.unr-lcssa ]
  %1714 = load float, ptr %1029, align 4, !tbaa !9
  %1715 = load float, ptr %1031, align 4, !tbaa !9
  %1716 = fdiv float %1714, %1715
  %1717 = fadd float %.91206.lcssa, %.61213.lcssa
  %1718 = call float @llvm.fmuladd.f32(float %1716, float %1716, float %1717)
  %1719 = fmul float %1714, %1716
  %1720 = fadd float %31, %.41235.lcssa
  %1721 = fadd float %.81222.lcssa, %1720
  %1722 = fadd float %1721, %1719
  store float %1722, ptr %10, align 4, !tbaa !9
  %1723 = fsub float %.41235.lcssa, %.81222.lcssa
  %1724 = call float @llvm.fmuladd.f32(float %1723, float 8.000000e+00, float %.10.lcssa)
  %1725 = call float @llvm.fmuladd.f32(float %31, float 2.000000e+00, float %1724)
  %1726 = fpext float %1725 to double
  %1727 = fcmp oge float %1719, 0.000000e+00
  %1728 = fneg float %1719
  %1729 = select i1 %1727, float %1719, float %1728
  %1730 = fpext float %1729 to double
  %1731 = call double @llvm.fmuladd.f64(double %1730, double 3.000000e+00, double %1726)
  %1732 = fcmp oge float %1632, 0.000000e+00
  %1733 = fneg float %1632
  %1734 = select i1 %1732, float %1632, float %1733
  %1735 = fpext float %1734 to double
  %1736 = fpext float %1718 to double
  %1737 = call double @llvm.fmuladd.f64(double %1735, double %1736, double %1731)
  %1738 = fmul float %1601, %1722
  %1739 = fcmp ogt float %1738, 0.000000e+00
  br i1 %1739, label %1740, label %1753

1740:                                             ; preds = %._crit_edge1429
  %1741 = fcmp oge float %1722, 0.000000e+00
  %1742 = fneg float %1722
  %1743 = select i1 %1741, float %1722, float %1742
  %1744 = fpext float %1743 to double
  %1745 = fcmp oge float %1601, 0.000000e+00
  %1746 = fneg float %1601
  %1747 = select i1 %1745, float %1601, float %1746
  %1748 = fpext float %1747 to double
  %1749 = fdiv double %1748, 1.000000e+01
  %1750 = fcmp olt double %1749, %1744
  br i1 %1750, label %1751, label %1753

1751:                                             ; preds = %1740
  %.not1312 = icmp eq i64 %.111791443, 0
  %1752 = zext i1 %.not1312 to i64
  br label %1753

1753:                                             ; preds = %._crit_edge1429, %1740, %1751
  %.21180 = phi i64 [ %1752, %1751 ], [ %.111791443, %1740 ], [ %.111791443, %._crit_edge1429 ]
  %storemerge1300.in = load i64, ptr %13, align 8, !tbaa !5
  %storemerge1300 = add nsw i64 %storemerge1300.in, 1
  store i64 %storemerge1300, ptr %13, align 8, !tbaa !5
  %1754 = icmp slt i64 %storemerge1300.in, 30
  br i1 %1754, label %1396, label %._crit_edge1447.loopexit, !llvm.loop !89

._crit_edge1447.loopexit:                         ; preds = %1753
  %.pre1592 = load i64, ptr %14, align 8, !tbaa !5
  br label %._crit_edge1447

._crit_edge1447:                                  ; preds = %._crit_edge1447.loopexit, %1385
  %1755 = phi i64 [ %1365, %1385 ], [ %.pre1592, %._crit_edge1447.loopexit ]
  %.71230.lcssa = phi float [ %1358, %1385 ], [ %1632, %._crit_edge1447.loopexit ]
  store i64 1, ptr %7, align 8, !tbaa !5
  %.not1301 = icmp eq i64 %1755, 0
  br i1 %.not1301, label %1761, label %1756

1756:                                             ; preds = %._crit_edge1447
  %1757 = load i64, ptr %1, align 8, !tbaa !5
  %1758 = getelementptr inbounds float, ptr %17, i64 %1757
  %1759 = load float, ptr %1758, align 4, !tbaa !9
  %1760 = fadd float %.71230.lcssa, %1759
  store float %1760, ptr %6, align 4, !tbaa !9
  br label %.loopexit

1761:                                             ; preds = %._crit_edge1447
  %1762 = load float, ptr %631, align 4, !tbaa !9
  %1763 = fadd float %.71230.lcssa, %1762
  store float %1763, ptr %6, align 4, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %1596, %315, %481, %._crit_edge1525, %1067, %1063, %1217, %1412, %1407, %1756, %1761, %25, %19
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 12, 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 i32 0
}

; 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 i32 @slaed5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare double @slamch_(ptr noundef) local_unnamed_addr #3

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

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

declare i32 @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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!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,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass