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

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

@.str = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @slasq2_(ptr noundef %0, ptr noundef %1, ptr noundef %2) #0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca i32, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca i32, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca i32, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca float, align 4
  %47 = alloca i32, align 4
  %48 = alloca float, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca float, align 4
  %52 = alloca float, align 4
  %53 = alloca float, align 4
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %57 = alloca float, align 4
  %58 = alloca float, align 4
  %59 = alloca i32, align 4
  %60 = alloca float, align 4
  %61 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  %62 = load ptr, ptr %5, align 8, !tbaa !5
  %63 = getelementptr inbounds float, ptr %62, i32 -1
  store ptr %63, ptr %5, align 8, !tbaa !5
  %64 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 0, ptr %64, align 4, !tbaa !9
  %65 = call float @slamch_(ptr noundef @.str)
  store float %65, ptr %56, align 4, !tbaa !11
  %66 = call float @slamch_(ptr noundef @.str.1)
  store float %66, ptr %52, align 4, !tbaa !11
  %67 = load float, ptr %56, align 4, !tbaa !11
  %68 = fmul float %67, 1.000000e+02
  store float %68, ptr %58, align 4, !tbaa !11
  %69 = load float, ptr %58, align 4, !tbaa !11
  store float %69, ptr %10, align 4, !tbaa !11
  %70 = load float, ptr %10, align 4, !tbaa !11
  %71 = load float, ptr %10, align 4, !tbaa !11
  %72 = fmul float %70, %71
  store float %72, ptr %60, align 4, !tbaa !11
  %73 = load ptr, ptr %4, align 8, !tbaa !5
  %74 = load i32, ptr %73, align 4, !tbaa !9
  %75 = icmp slt i32 %74, 0
  br i1 %75, label %76, label %79

76:                                               ; preds = %3
  %77 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 -1, ptr %77, align 4, !tbaa !9
  %78 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__1, i32 noundef 6)
  store i32 1, ptr %61, align 4
  br label %1876

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

83:                                               ; preds = %79
  store i32 1, ptr %61, align 4
  br label %1876

84:                                               ; preds = %79
  %85 = load ptr, ptr %4, align 8, !tbaa !5
  %86 = load i32, ptr %85, align 4, !tbaa !9
  %87 = icmp eq i32 %86, 1
  br i1 %87, label %88, label %97

88:                                               ; preds = %84
  %89 = load ptr, ptr %5, align 8, !tbaa !5
  %90 = getelementptr inbounds float, ptr %89, i64 1
  %91 = load float, ptr %90, align 4, !tbaa !11
  %92 = fcmp olt float %91, 0.000000e+00
  br i1 %92, label %93, label %96

93:                                               ; preds = %88
  %94 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 -201, ptr %94, align 4, !tbaa !9
  %95 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2, i32 noundef 6)
  br label %96

96:                                               ; preds = %93, %88
  store i32 1, ptr %61, align 4
  br label %1876

97:                                               ; preds = %84
  %98 = load ptr, ptr %4, align 8, !tbaa !5
  %99 = load i32, ptr %98, align 4, !tbaa !9
  %100 = icmp eq i32 %99, 2
  br i1 %100, label %101, label %278

101:                                              ; preds = %97
  %102 = load ptr, ptr %5, align 8, !tbaa !5
  %103 = getelementptr inbounds float, ptr %102, i64 1
  %104 = load float, ptr %103, align 4, !tbaa !11
  %105 = fcmp olt float %104, 0.000000e+00
  br i1 %105, label %106, label %109

106:                                              ; preds = %101
  %107 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 -201, ptr %107, align 4, !tbaa !9
  %108 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2, i32 noundef 6)
  store i32 1, ptr %61, align 4
  br label %1876

109:                                              ; preds = %101
  %110 = load ptr, ptr %5, align 8, !tbaa !5
  %111 = getelementptr inbounds float, ptr %110, i64 2
  %112 = load float, ptr %111, align 4, !tbaa !11
  %113 = fcmp olt float %112, 0.000000e+00
  br i1 %113, label %114, label %117

114:                                              ; preds = %109
  %115 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 -202, ptr %115, align 4, !tbaa !9
  %116 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2, i32 noundef 6)
  store i32 1, ptr %61, align 4
  br label %1876

117:                                              ; preds = %109
  %118 = load ptr, ptr %5, align 8, !tbaa !5
  %119 = getelementptr inbounds float, ptr %118, i64 3
  %120 = load float, ptr %119, align 4, !tbaa !11
  %121 = fcmp olt float %120, 0.000000e+00
  br i1 %121, label %122, label %125

122:                                              ; preds = %117
  %123 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 -203, ptr %123, align 4, !tbaa !9
  %124 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2, i32 noundef 6)
  store i32 1, ptr %61, align 4
  br label %1876

125:                                              ; preds = %117
  %126 = load ptr, ptr %5, align 8, !tbaa !5
  %127 = getelementptr inbounds float, ptr %126, i64 3
  %128 = load float, ptr %127, align 4, !tbaa !11
  %129 = load ptr, ptr %5, align 8, !tbaa !5
  %130 = getelementptr inbounds float, ptr %129, i64 1
  %131 = load float, ptr %130, align 4, !tbaa !11
  %132 = fcmp ogt float %128, %131
  br i1 %132, label %133, label %145

133:                                              ; preds = %125
  %134 = load ptr, ptr %5, align 8, !tbaa !5
  %135 = getelementptr inbounds float, ptr %134, i64 3
  %136 = load float, ptr %135, align 4, !tbaa !11
  store float %136, ptr %27, align 4, !tbaa !11
  %137 = load ptr, ptr %5, align 8, !tbaa !5
  %138 = getelementptr inbounds float, ptr %137, i64 1
  %139 = load float, ptr %138, align 4, !tbaa !11
  %140 = load ptr, ptr %5, align 8, !tbaa !5
  %141 = getelementptr inbounds float, ptr %140, i64 3
  store float %139, ptr %141, align 4, !tbaa !11
  %142 = load float, ptr %27, align 4, !tbaa !11
  %143 = load ptr, ptr %5, align 8, !tbaa !5
  %144 = getelementptr inbounds float, ptr %143, i64 1
  store float %142, ptr %144, align 4, !tbaa !11
  br label %145

145:                                              ; preds = %133, %125
  br label %146

146:                                              ; preds = %145
  br label %147

147:                                              ; preds = %146
  br label %148

148:                                              ; preds = %147
  %149 = load ptr, ptr %5, align 8, !tbaa !5
  %150 = getelementptr inbounds float, ptr %149, i64 1
  %151 = load float, ptr %150, align 4, !tbaa !11
  %152 = load ptr, ptr %5, align 8, !tbaa !5
  %153 = getelementptr inbounds float, ptr %152, i64 2
  %154 = load float, ptr %153, align 4, !tbaa !11
  %155 = fadd float %151, %154
  %156 = load ptr, ptr %5, align 8, !tbaa !5
  %157 = getelementptr inbounds float, ptr %156, i64 3
  %158 = load float, ptr %157, align 4, !tbaa !11
  %159 = fadd float %155, %158
  %160 = load ptr, ptr %5, align 8, !tbaa !5
  %161 = getelementptr inbounds float, ptr %160, i64 5
  store float %159, ptr %161, align 4, !tbaa !11
  %162 = load ptr, ptr %5, align 8, !tbaa !5
  %163 = getelementptr inbounds float, ptr %162, i64 2
  %164 = load float, ptr %163, align 4, !tbaa !11
  %165 = load ptr, ptr %5, align 8, !tbaa !5
  %166 = getelementptr inbounds float, ptr %165, i64 3
  %167 = load float, ptr %166, align 4, !tbaa !11
  %168 = load float, ptr %60, align 4, !tbaa !11
  %169 = fmul float %167, %168
  %170 = fcmp ogt float %164, %169
  br i1 %170, label %171, label %263

171:                                              ; preds = %148
  %172 = load ptr, ptr %5, align 8, !tbaa !5
  %173 = getelementptr inbounds float, ptr %172, i64 1
  %174 = load float, ptr %173, align 4, !tbaa !11
  %175 = load ptr, ptr %5, align 8, !tbaa !5
  %176 = getelementptr inbounds float, ptr %175, i64 3
  %177 = load float, ptr %176, align 4, !tbaa !11
  %178 = fsub float %174, %177
  %179 = load ptr, ptr %5, align 8, !tbaa !5
  %180 = getelementptr inbounds float, ptr %179, i64 2
  %181 = load float, ptr %180, align 4, !tbaa !11
  %182 = fadd float %178, %181
  %183 = fmul float %182, 5.000000e-01
  store float %183, ptr %32, align 4, !tbaa !11
  %184 = load ptr, ptr %5, align 8, !tbaa !5
  %185 = getelementptr inbounds float, ptr %184, i64 3
  %186 = load float, ptr %185, align 4, !tbaa !11
  %187 = load ptr, ptr %5, align 8, !tbaa !5
  %188 = getelementptr inbounds float, ptr %187, i64 2
  %189 = load float, ptr %188, align 4, !tbaa !11
  %190 = load float, ptr %32, align 4, !tbaa !11
  %191 = fdiv float %189, %190
  %192 = fmul float %186, %191
  store float %192, ptr %31, align 4, !tbaa !11
  %193 = load float, ptr %31, align 4, !tbaa !11
  %194 = load float, ptr %32, align 4, !tbaa !11
  %195 = fcmp ole float %193, %194
  br i1 %195, label %196, label %218

196:                                              ; preds = %171
  %197 = load ptr, ptr %5, align 8, !tbaa !5
  %198 = getelementptr inbounds float, ptr %197, i64 3
  %199 = load float, ptr %198, align 4, !tbaa !11
  %200 = fpext float %199 to double
  %201 = load ptr, ptr %5, align 8, !tbaa !5
  %202 = getelementptr inbounds float, ptr %201, i64 2
  %203 = load float, ptr %202, align 4, !tbaa !11
  %204 = fpext float %203 to double
  %205 = load float, ptr %32, align 4, !tbaa !11
  %206 = fpext float %205 to double
  %207 = load float, ptr %31, align 4, !tbaa !11
  %208 = load float, ptr %32, align 4, !tbaa !11
  %209 = fdiv float %207, %208
  %210 = fadd float %209, 1.000000e+00
  %211 = fpext float %210 to double
  %212 = call double @sqrt(double noundef %211) #5
  %213 = fadd double %212, 1.000000e+00
  %214 = fmul double %206, %213
  %215 = fdiv double %204, %214
  %216 = fmul double %200, %215
  %217 = fptrunc double %216 to float
  store float %217, ptr %31, align 4, !tbaa !11
  br label %241

218:                                              ; preds = %171
  %219 = load ptr, ptr %5, align 8, !tbaa !5
  %220 = getelementptr inbounds float, ptr %219, i64 3
  %221 = load float, ptr %220, align 4, !tbaa !11
  %222 = fpext float %221 to double
  %223 = load ptr, ptr %5, align 8, !tbaa !5
  %224 = getelementptr inbounds float, ptr %223, i64 2
  %225 = load float, ptr %224, align 4, !tbaa !11
  %226 = fpext float %225 to double
  %227 = load float, ptr %32, align 4, !tbaa !11
  %228 = fpext float %227 to double
  %229 = load float, ptr %32, align 4, !tbaa !11
  %230 = fpext float %229 to double
  %231 = call double @sqrt(double noundef %230) #5
  %232 = load float, ptr %32, align 4, !tbaa !11
  %233 = load float, ptr %31, align 4, !tbaa !11
  %234 = fadd float %232, %233
  %235 = fpext float %234 to double
  %236 = call double @sqrt(double noundef %235) #5
  %237 = call double @llvm.fmuladd.f64(double %231, double %236, double %228)
  %238 = fdiv double %226, %237
  %239 = fmul double %222, %238
  %240 = fptrunc double %239 to float
  store float %240, ptr %31, align 4, !tbaa !11
  br label %241

241:                                              ; preds = %218, %196
  %242 = load ptr, ptr %5, align 8, !tbaa !5
  %243 = getelementptr inbounds float, ptr %242, i64 1
  %244 = load float, ptr %243, align 4, !tbaa !11
  %245 = load float, ptr %31, align 4, !tbaa !11
  %246 = load ptr, ptr %5, align 8, !tbaa !5
  %247 = getelementptr inbounds float, ptr %246, i64 2
  %248 = load float, ptr %247, align 4, !tbaa !11
  %249 = fadd float %245, %248
  %250 = fadd float %244, %249
  store float %250, ptr %32, align 4, !tbaa !11
  %251 = load ptr, ptr %5, align 8, !tbaa !5
  %252 = getelementptr inbounds float, ptr %251, i64 1
  %253 = load float, ptr %252, align 4, !tbaa !11
  %254 = load float, ptr %32, align 4, !tbaa !11
  %255 = fdiv float %253, %254
  %256 = load ptr, ptr %5, align 8, !tbaa !5
  %257 = getelementptr inbounds float, ptr %256, i64 3
  %258 = load float, ptr %257, align 4, !tbaa !11
  %259 = fmul float %258, %255
  store float %259, ptr %257, align 4, !tbaa !11
  %260 = load float, ptr %32, align 4, !tbaa !11
  %261 = load ptr, ptr %5, align 8, !tbaa !5
  %262 = getelementptr inbounds float, ptr %261, i64 1
  store float %260, ptr %262, align 4, !tbaa !11
  br label %263

263:                                              ; preds = %241, %148
  %264 = load ptr, ptr %5, align 8, !tbaa !5
  %265 = getelementptr inbounds float, ptr %264, i64 3
  %266 = load float, ptr %265, align 4, !tbaa !11
  %267 = load ptr, ptr %5, align 8, !tbaa !5
  %268 = getelementptr inbounds float, ptr %267, i64 2
  store float %266, ptr %268, align 4, !tbaa !11
  %269 = load ptr, ptr %5, align 8, !tbaa !5
  %270 = getelementptr inbounds float, ptr %269, i64 2
  %271 = load float, ptr %270, align 4, !tbaa !11
  %272 = load ptr, ptr %5, align 8, !tbaa !5
  %273 = getelementptr inbounds float, ptr %272, i64 1
  %274 = load float, ptr %273, align 4, !tbaa !11
  %275 = fadd float %271, %274
  %276 = load ptr, ptr %5, align 8, !tbaa !5
  %277 = getelementptr inbounds float, ptr %276, i64 6
  store float %275, ptr %277, align 4, !tbaa !11
  store i32 1, ptr %61, align 4
  br label %1876

278:                                              ; preds = %97
  br label %279

279:                                              ; preds = %278
  br label %280

280:                                              ; preds = %279
  br label %281

281:                                              ; preds = %280
  %282 = load ptr, ptr %5, align 8, !tbaa !5
  %283 = load ptr, ptr %4, align 8, !tbaa !5
  %284 = load i32, ptr %283, align 4, !tbaa !9
  %285 = mul nsw i32 %284, 2
  %286 = sext i32 %285 to i64
  %287 = getelementptr inbounds float, ptr %282, i64 %286
  store float 0.000000e+00, ptr %287, align 4, !tbaa !11
  %288 = load ptr, ptr %5, align 8, !tbaa !5
  %289 = getelementptr inbounds float, ptr %288, i64 2
  %290 = load float, ptr %289, align 4, !tbaa !11
  store float %290, ptr %15, align 4, !tbaa !11
  store float 0.000000e+00, ptr %22, align 4, !tbaa !11
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  store float 0.000000e+00, ptr %27, align 4, !tbaa !11
  store float 0.000000e+00, ptr %28, align 4, !tbaa !11
  %291 = load ptr, ptr %4, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = sub nsw i32 %292, 1
  %294 = shl i32 %293, 1
  store i32 %294, ptr %7, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %295

295:                                              ; preds = %398, %281
  %296 = load i32, ptr %30, align 4, !tbaa !9
  %297 = load i32, ptr %7, align 4, !tbaa !9
  %298 = icmp sle i32 %296, %297
  br i1 %298, label %299, label %401

299:                                              ; preds = %295
  %300 = load ptr, ptr %5, align 8, !tbaa !5
  %301 = load i32, ptr %30, align 4, !tbaa !9
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds float, ptr %300, i64 %302
  %304 = load float, ptr %303, align 4, !tbaa !11
  %305 = fcmp olt float %304, 0.000000e+00
  br i1 %305, label %306, label %312

306:                                              ; preds = %299
  %307 = load i32, ptr %30, align 4, !tbaa !9
  %308 = add nsw i32 %307, 200
  %309 = sub nsw i32 0, %308
  %310 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 %309, ptr %310, align 4, !tbaa !9
  %311 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2, i32 noundef 6)
  store i32 1, ptr %61, align 4
  br label %1876

312:                                              ; preds = %299
  %313 = load ptr, ptr %5, align 8, !tbaa !5
  %314 = load i32, ptr %30, align 4, !tbaa !9
  %315 = add nsw i32 %314, 1
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds float, ptr %313, i64 %316
  %318 = load float, ptr %317, align 4, !tbaa !11
  %319 = fcmp olt float %318, 0.000000e+00
  br i1 %319, label %320, label %326

320:                                              ; preds = %312
  %321 = load i32, ptr %30, align 4, !tbaa !9
  %322 = add nsw i32 %321, 201
  %323 = sub nsw i32 0, %322
  %324 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 %323, ptr %324, align 4, !tbaa !9
  %325 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2, i32 noundef 6)
  store i32 1, ptr %61, align 4
  br label %1876

326:                                              ; preds = %312
  br label %327

327:                                              ; preds = %326
  %328 = load ptr, ptr %5, align 8, !tbaa !5
  %329 = load i32, ptr %30, align 4, !tbaa !9
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds float, ptr %328, i64 %330
  %332 = load float, ptr %331, align 4, !tbaa !11
  %333 = load float, ptr %27, align 4, !tbaa !11
  %334 = fadd float %333, %332
  store float %334, ptr %27, align 4, !tbaa !11
  %335 = load ptr, ptr %5, align 8, !tbaa !5
  %336 = load i32, ptr %30, align 4, !tbaa !9
  %337 = add nsw i32 %336, 1
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds float, ptr %335, i64 %338
  %340 = load float, ptr %339, align 4, !tbaa !11
  %341 = load float, ptr %28, align 4, !tbaa !11
  %342 = fadd float %341, %340
  store float %342, ptr %28, align 4, !tbaa !11
  %343 = load float, ptr %22, align 4, !tbaa !11
  store float %343, ptr %10, align 4, !tbaa !11
  %344 = load ptr, ptr %5, align 8, !tbaa !5
  %345 = load i32, ptr %30, align 4, !tbaa !9
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds float, ptr %344, i64 %346
  %348 = load float, ptr %347, align 4, !tbaa !11
  store float %348, ptr %11, align 4, !tbaa !11
  %349 = load float, ptr %10, align 4, !tbaa !11
  %350 = load float, ptr %11, align 4, !tbaa !11
  %351 = fcmp oge float %349, %350
  br i1 %351, label %352, label %354

352:                                              ; preds = %327
  %353 = load float, ptr %10, align 4, !tbaa !11
  br label %356

354:                                              ; preds = %327
  %355 = load float, ptr %11, align 4, !tbaa !11
  br label %356

356:                                              ; preds = %354, %352
  %357 = phi float [ %353, %352 ], [ %355, %354 ]
  store float %357, ptr %22, align 4, !tbaa !11
  %358 = load float, ptr %15, align 4, !tbaa !11
  store float %358, ptr %10, align 4, !tbaa !11
  %359 = load ptr, ptr %5, align 8, !tbaa !5
  %360 = load i32, ptr %30, align 4, !tbaa !9
  %361 = add nsw i32 %360, 1
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds float, ptr %359, i64 %362
  %364 = load float, ptr %363, align 4, !tbaa !11
  store float %364, ptr %11, align 4, !tbaa !11
  %365 = load float, ptr %10, align 4, !tbaa !11
  %366 = load float, ptr %11, align 4, !tbaa !11
  %367 = fcmp ole float %365, %366
  br i1 %367, label %368, label %370

368:                                              ; preds = %356
  %369 = load float, ptr %10, align 4, !tbaa !11
  br label %372

370:                                              ; preds = %356
  %371 = load float, ptr %11, align 4, !tbaa !11
  br label %372

372:                                              ; preds = %370, %368
  %373 = phi float [ %369, %368 ], [ %371, %370 ]
  store float %373, ptr %15, align 4, !tbaa !11
  %374 = load float, ptr %22, align 4, !tbaa !11
  %375 = load float, ptr %23, align 4, !tbaa !11
  %376 = fcmp oge float %374, %375
  br i1 %376, label %377, label %379

377:                                              ; preds = %372
  %378 = load float, ptr %22, align 4, !tbaa !11
  br label %381

379:                                              ; preds = %372
  %380 = load float, ptr %23, align 4, !tbaa !11
  br label %381

381:                                              ; preds = %379, %377
  %382 = phi float [ %378, %377 ], [ %380, %379 ]
  store float %382, ptr %10, align 4, !tbaa !11
  %383 = load ptr, ptr %5, align 8, !tbaa !5
  %384 = load i32, ptr %30, align 4, !tbaa !9
  %385 = add nsw i32 %384, 1
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds float, ptr %383, i64 %386
  %388 = load float, ptr %387, align 4, !tbaa !11
  store float %388, ptr %11, align 4, !tbaa !11
  %389 = load float, ptr %10, align 4, !tbaa !11
  %390 = load float, ptr %11, align 4, !tbaa !11
  %391 = fcmp oge float %389, %390
  br i1 %391, label %392, label %394

392:                                              ; preds = %381
  %393 = load float, ptr %10, align 4, !tbaa !11
  br label %396

394:                                              ; preds = %381
  %395 = load float, ptr %11, align 4, !tbaa !11
  br label %396

396:                                              ; preds = %394, %392
  %397 = phi float [ %393, %392 ], [ %395, %394 ]
  store float %397, ptr %23, align 4, !tbaa !11
  br label %398

398:                                              ; preds = %396
  %399 = load i32, ptr %30, align 4, !tbaa !9
  %400 = add nsw i32 %399, 2
  store i32 %400, ptr %30, align 4, !tbaa !9
  br label %295, !llvm.loop !13

401:                                              ; preds = %295
  %402 = load ptr, ptr %5, align 8, !tbaa !5
  %403 = load ptr, ptr %4, align 8, !tbaa !5
  %404 = load i32, ptr %403, align 4, !tbaa !9
  %405 = shl i32 %404, 1
  %406 = sub nsw i32 %405, 1
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds float, ptr %402, i64 %407
  %409 = load float, ptr %408, align 4, !tbaa !11
  %410 = fcmp olt float %409, 0.000000e+00
  br i1 %410, label %411, label %419

411:                                              ; preds = %401
  %412 = load ptr, ptr %4, align 8, !tbaa !5
  %413 = load i32, ptr %412, align 4, !tbaa !9
  %414 = shl i32 %413, 1
  %415 = add nsw i32 %414, 199
  %416 = sub nsw i32 0, %415
  %417 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 %416, ptr %417, align 4, !tbaa !9
  %418 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef @c__2, i32 noundef 6)
  store i32 1, ptr %61, align 4
  br label %1876

419:                                              ; preds = %401
  %420 = load ptr, ptr %5, align 8, !tbaa !5
  %421 = load ptr, ptr %4, align 8, !tbaa !5
  %422 = load i32, ptr %421, align 4, !tbaa !9
  %423 = shl i32 %422, 1
  %424 = sub nsw i32 %423, 1
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds float, ptr %420, i64 %425
  %427 = load float, ptr %426, align 4, !tbaa !11
  %428 = load float, ptr %27, align 4, !tbaa !11
  %429 = fadd float %428, %427
  store float %429, ptr %27, align 4, !tbaa !11
  %430 = load float, ptr %22, align 4, !tbaa !11
  store float %430, ptr %10, align 4, !tbaa !11
  %431 = load ptr, ptr %5, align 8, !tbaa !5
  %432 = load ptr, ptr %4, align 8, !tbaa !5
  %433 = load i32, ptr %432, align 4, !tbaa !9
  %434 = shl i32 %433, 1
  %435 = sub nsw i32 %434, 1
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds float, ptr %431, i64 %436
  %438 = load float, ptr %437, align 4, !tbaa !11
  store float %438, ptr %11, align 4, !tbaa !11
  %439 = load float, ptr %10, align 4, !tbaa !11
  %440 = load float, ptr %11, align 4, !tbaa !11
  %441 = fcmp oge float %439, %440
  br i1 %441, label %442, label %444

442:                                              ; preds = %419
  %443 = load float, ptr %10, align 4, !tbaa !11
  br label %446

444:                                              ; preds = %419
  %445 = load float, ptr %11, align 4, !tbaa !11
  br label %446

446:                                              ; preds = %444, %442
  %447 = phi float [ %443, %442 ], [ %445, %444 ]
  store float %447, ptr %22, align 4, !tbaa !11
  %448 = load float, ptr %22, align 4, !tbaa !11
  %449 = load float, ptr %23, align 4, !tbaa !11
  %450 = fcmp oge float %448, %449
  br i1 %450, label %451, label %453

451:                                              ; preds = %446
  %452 = load float, ptr %22, align 4, !tbaa !11
  br label %455

453:                                              ; preds = %446
  %454 = load float, ptr %23, align 4, !tbaa !11
  br label %455

455:                                              ; preds = %453, %451
  %456 = phi float [ %452, %451 ], [ %454, %453 ]
  store float %456, ptr %23, align 4, !tbaa !11
  %457 = load float, ptr %28, align 4, !tbaa !11
  %458 = fcmp oeq float %457, 0.000000e+00
  br i1 %458, label %459, label %493

459:                                              ; preds = %455
  %460 = load ptr, ptr %4, align 8, !tbaa !5
  %461 = load i32, ptr %460, align 4, !tbaa !9
  store i32 %461, ptr %7, align 4, !tbaa !9
  store i32 2, ptr %30, align 4, !tbaa !9
  br label %462

462:                                              ; preds = %478, %459
  %463 = load i32, ptr %30, align 4, !tbaa !9
  %464 = load i32, ptr %7, align 4, !tbaa !9
  %465 = icmp sle i32 %463, %464
  br i1 %465, label %466, label %481

466:                                              ; preds = %462
  %467 = load ptr, ptr %5, align 8, !tbaa !5
  %468 = load i32, ptr %30, align 4, !tbaa !9
  %469 = shl i32 %468, 1
  %470 = sub nsw i32 %469, 1
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds float, ptr %467, i64 %471
  %473 = load float, ptr %472, align 4, !tbaa !11
  %474 = load ptr, ptr %5, align 8, !tbaa !5
  %475 = load i32, ptr %30, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds float, ptr %474, i64 %476
  store float %473, ptr %477, align 4, !tbaa !11
  br label %478

478:                                              ; preds = %466
  %479 = load i32, ptr %30, align 4, !tbaa !9
  %480 = add nsw i32 %479, 1
  store i32 %480, ptr %30, align 4, !tbaa !9
  br label %462, !llvm.loop !15

481:                                              ; preds = %462
  %482 = load ptr, ptr %4, align 8, !tbaa !5
  %483 = load ptr, ptr %5, align 8, !tbaa !5
  %484 = getelementptr inbounds float, ptr %483, i64 1
  call void @slasrt_(ptr noundef @.str.3, ptr noundef %482, ptr noundef %484, ptr noundef %37)
  %485 = load float, ptr %27, align 4, !tbaa !11
  %486 = load ptr, ptr %5, align 8, !tbaa !5
  %487 = load ptr, ptr %4, align 8, !tbaa !5
  %488 = load i32, ptr %487, align 4, !tbaa !9
  %489 = shl i32 %488, 1
  %490 = sub nsw i32 %489, 1
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds float, ptr %486, i64 %491
  store float %485, ptr %492, align 4, !tbaa !11
  store i32 1, ptr %61, align 4
  br label %1876

493:                                              ; preds = %455
  %494 = load float, ptr %27, align 4, !tbaa !11
  %495 = load float, ptr %28, align 4, !tbaa !11
  %496 = fadd float %494, %495
  store float %496, ptr %35, align 4, !tbaa !11
  %497 = load float, ptr %35, align 4, !tbaa !11
  %498 = fcmp oeq float %497, 0.000000e+00
  br i1 %498, label %499, label %507

499:                                              ; preds = %493
  %500 = load ptr, ptr %5, align 8, !tbaa !5
  %501 = load ptr, ptr %4, align 8, !tbaa !5
  %502 = load i32, ptr %501, align 4, !tbaa !9
  %503 = shl i32 %502, 1
  %504 = sub nsw i32 %503, 1
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %500, i64 %505
  store float 0.000000e+00, ptr %506, align 4, !tbaa !11
  store i32 1, ptr %61, align 4
  br label %1876

507:                                              ; preds = %493
  store i32 0, ptr %12, align 4, !tbaa !9
  %508 = load ptr, ptr %4, align 8, !tbaa !5
  %509 = load i32, ptr %508, align 4, !tbaa !9
  %510 = shl i32 %509, 1
  store i32 %510, ptr %30, align 4, !tbaa !9
  br label %511

511:                                              ; preds = %549, %507
  %512 = load i32, ptr %30, align 4, !tbaa !9
  %513 = icmp sge i32 %512, 2
  br i1 %513, label %514, label %552

514:                                              ; preds = %511
  %515 = load ptr, ptr %5, align 8, !tbaa !5
  %516 = load i32, ptr %30, align 4, !tbaa !9
  %517 = mul nsw i32 %516, 2
  %518 = sext i32 %517 to i64
  %519 = getelementptr inbounds float, ptr %515, i64 %518
  store float 0.000000e+00, ptr %519, align 4, !tbaa !11
  %520 = load ptr, ptr %5, align 8, !tbaa !5
  %521 = load i32, ptr %30, align 4, !tbaa !9
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds float, ptr %520, i64 %522
  %524 = load float, ptr %523, align 4, !tbaa !11
  %525 = load ptr, ptr %5, align 8, !tbaa !5
  %526 = load i32, ptr %30, align 4, !tbaa !9
  %527 = shl i32 %526, 1
  %528 = sub nsw i32 %527, 1
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds float, ptr %525, i64 %529
  store float %524, ptr %530, align 4, !tbaa !11
  %531 = load ptr, ptr %5, align 8, !tbaa !5
  %532 = load i32, ptr %30, align 4, !tbaa !9
  %533 = shl i32 %532, 1
  %534 = sub nsw i32 %533, 2
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds float, ptr %531, i64 %535
  store float 0.000000e+00, ptr %536, align 4, !tbaa !11
  %537 = load ptr, ptr %5, align 8, !tbaa !5
  %538 = load i32, ptr %30, align 4, !tbaa !9
  %539 = sub nsw i32 %538, 1
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds float, ptr %537, i64 %540
  %542 = load float, ptr %541, align 4, !tbaa !11
  %543 = load ptr, ptr %5, align 8, !tbaa !5
  %544 = load i32, ptr %30, align 4, !tbaa !9
  %545 = shl i32 %544, 1
  %546 = sub nsw i32 %545, 3
  %547 = sext i32 %546 to i64
  %548 = getelementptr inbounds float, ptr %543, i64 %547
  store float %542, ptr %548, align 4, !tbaa !11
  br label %549

549:                                              ; preds = %514
  %550 = load i32, ptr %30, align 4, !tbaa !9
  %551 = add nsw i32 %550, -2
  store i32 %551, ptr %30, align 4, !tbaa !9
  br label %511, !llvm.loop !16

552:                                              ; preds = %511
  store i32 1, ptr %40, align 4, !tbaa !9
  %553 = load ptr, ptr %4, align 8, !tbaa !5
  %554 = load i32, ptr %553, align 4, !tbaa !9
  store i32 %554, ptr %43, align 4, !tbaa !9
  %555 = load ptr, ptr %5, align 8, !tbaa !5
  %556 = load i32, ptr %40, align 4, !tbaa !9
  %557 = shl i32 %556, 2
  %558 = sub nsw i32 %557, 3
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds float, ptr %555, i64 %559
  %561 = load float, ptr %560, align 4, !tbaa !11
  %562 = fmul float %561, 1.500000e+00
  %563 = load ptr, ptr %5, align 8, !tbaa !5
  %564 = load i32, ptr %43, align 4, !tbaa !9
  %565 = shl i32 %564, 2
  %566 = sub nsw i32 %565, 3
  %567 = sext i32 %566 to i64
  %568 = getelementptr inbounds float, ptr %563, i64 %567
  %569 = load float, ptr %568, align 4, !tbaa !11
  %570 = fcmp olt float %562, %569
  br i1 %570, label %571, label %646

571:                                              ; preds = %552
  %572 = load i32, ptr %40, align 4, !tbaa !9
  %573 = load i32, ptr %43, align 4, !tbaa !9
  %574 = add nsw i32 %572, %573
  %575 = shl i32 %574, 2
  store i32 %575, ptr %59, align 4, !tbaa !9
  %576 = load i32, ptr %40, align 4, !tbaa !9
  %577 = load i32, ptr %43, align 4, !tbaa !9
  %578 = add nsw i32 %576, %577
  %579 = sub nsw i32 %578, 1
  %580 = shl i32 %579, 1
  store i32 %580, ptr %7, align 4, !tbaa !9
  %581 = load i32, ptr %40, align 4, !tbaa !9
  %582 = shl i32 %581, 2
  store i32 %582, ptr %42, align 4, !tbaa !9
  br label %583

583:                                              ; preds = %642, %571
  %584 = load i32, ptr %42, align 4, !tbaa !9
  %585 = load i32, ptr %7, align 4, !tbaa !9
  %586 = icmp sle i32 %584, %585
  br i1 %586, label %587, label %645

587:                                              ; preds = %583
  %588 = load ptr, ptr %5, align 8, !tbaa !5
  %589 = load i32, ptr %42, align 4, !tbaa !9
  %590 = sub nsw i32 %589, 3
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds float, ptr %588, i64 %591
  %593 = load float, ptr %592, align 4, !tbaa !11
  store float %593, ptr %21, align 4, !tbaa !11
  %594 = load ptr, ptr %5, align 8, !tbaa !5
  %595 = load i32, ptr %59, align 4, !tbaa !9
  %596 = load i32, ptr %42, align 4, !tbaa !9
  %597 = sub nsw i32 %595, %596
  %598 = sub nsw i32 %597, 3
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds float, ptr %594, i64 %599
  %601 = load float, ptr %600, align 4, !tbaa !11
  %602 = load ptr, ptr %5, align 8, !tbaa !5
  %603 = load i32, ptr %42, align 4, !tbaa !9
  %604 = sub nsw i32 %603, 3
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds float, ptr %602, i64 %605
  store float %601, ptr %606, align 4, !tbaa !11
  %607 = load float, ptr %21, align 4, !tbaa !11
  %608 = load ptr, ptr %5, align 8, !tbaa !5
  %609 = load i32, ptr %59, align 4, !tbaa !9
  %610 = load i32, ptr %42, align 4, !tbaa !9
  %611 = sub nsw i32 %609, %610
  %612 = sub nsw i32 %611, 3
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds float, ptr %608, i64 %613
  store float %607, ptr %614, align 4, !tbaa !11
  %615 = load ptr, ptr %5, align 8, !tbaa !5
  %616 = load i32, ptr %42, align 4, !tbaa !9
  %617 = sub nsw i32 %616, 1
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds float, ptr %615, i64 %618
  %620 = load float, ptr %619, align 4, !tbaa !11
  store float %620, ptr %21, align 4, !tbaa !11
  %621 = load ptr, ptr %5, align 8, !tbaa !5
  %622 = load i32, ptr %59, align 4, !tbaa !9
  %623 = load i32, ptr %42, align 4, !tbaa !9
  %624 = sub nsw i32 %622, %623
  %625 = sub nsw i32 %624, 5
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds float, ptr %621, i64 %626
  %628 = load float, ptr %627, align 4, !tbaa !11
  %629 = load ptr, ptr %5, align 8, !tbaa !5
  %630 = load i32, ptr %42, align 4, !tbaa !9
  %631 = sub nsw i32 %630, 1
  %632 = sext i32 %631 to i64
  %633 = getelementptr inbounds float, ptr %629, i64 %632
  store float %628, ptr %633, align 4, !tbaa !11
  %634 = load float, ptr %21, align 4, !tbaa !11
  %635 = load ptr, ptr %5, align 8, !tbaa !5
  %636 = load i32, ptr %59, align 4, !tbaa !9
  %637 = load i32, ptr %42, align 4, !tbaa !9
  %638 = sub nsw i32 %636, %637
  %639 = sub nsw i32 %638, 5
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds float, ptr %635, i64 %640
  store float %634, ptr %641, align 4, !tbaa !11
  br label %642

642:                                              ; preds = %587
  %643 = load i32, ptr %42, align 4, !tbaa !9
  %644 = add nsw i32 %643, 4
  store i32 %644, ptr %42, align 4, !tbaa !9
  br label %583, !llvm.loop !17

645:                                              ; preds = %583
  br label %646

646:                                              ; preds = %645, %552
  store i32 0, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %647

647:                                              ; preds = %1005, %646
  %648 = load i32, ptr %30, align 4, !tbaa !9
  %649 = icmp sle i32 %648, 2
  br i1 %649, label %650, label %1008

650:                                              ; preds = %647
  %651 = load ptr, ptr %5, align 8, !tbaa !5
  %652 = load i32, ptr %43, align 4, !tbaa !9
  %653 = shl i32 %652, 2
  %654 = load i32, ptr %47, align 4, !tbaa !9
  %655 = add nsw i32 %653, %654
  %656 = sub nsw i32 %655, 3
  %657 = sext i32 %656 to i64
  %658 = getelementptr inbounds float, ptr %651, i64 %657
  %659 = load float, ptr %658, align 4, !tbaa !11
  store float %659, ptr %27, align 4, !tbaa !11
  %660 = load i32, ptr %40, align 4, !tbaa !9
  %661 = shl i32 %660, 2
  %662 = load i32, ptr %47, align 4, !tbaa !9
  %663 = add nsw i32 %661, %662
  store i32 %663, ptr %7, align 4, !tbaa !9
  %664 = load i32, ptr %43, align 4, !tbaa !9
  %665 = sub nsw i32 %664, 1
  %666 = shl i32 %665, 2
  %667 = load i32, ptr %47, align 4, !tbaa !9
  %668 = add nsw i32 %666, %667
  store i32 %668, ptr %42, align 4, !tbaa !9
  br label %669

669:                                              ; preds = %715, %650
  %670 = load i32, ptr %42, align 4, !tbaa !9
  %671 = load i32, ptr %7, align 4, !tbaa !9
  %672 = icmp sge i32 %670, %671
  br i1 %672, label %673, label %718

673:                                              ; preds = %669
  %674 = load ptr, ptr %5, align 8, !tbaa !5
  %675 = load i32, ptr %42, align 4, !tbaa !9
  %676 = sub nsw i32 %675, 1
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds float, ptr %674, i64 %677
  %679 = load float, ptr %678, align 4, !tbaa !11
  %680 = load float, ptr %60, align 4, !tbaa !11
  %681 = load float, ptr %27, align 4, !tbaa !11
  %682 = fmul float %680, %681
  %683 = fcmp ole float %679, %682
  br i1 %683, label %684, label %696

684:                                              ; preds = %673
  %685 = load ptr, ptr %5, align 8, !tbaa !5
  %686 = load i32, ptr %42, align 4, !tbaa !9
  %687 = sub nsw i32 %686, 1
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds float, ptr %685, i64 %688
  store float 0.000000e+00, ptr %689, align 4, !tbaa !11
  %690 = load ptr, ptr %5, align 8, !tbaa !5
  %691 = load i32, ptr %42, align 4, !tbaa !9
  %692 = sub nsw i32 %691, 3
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds float, ptr %690, i64 %693
  %695 = load float, ptr %694, align 4, !tbaa !11
  store float %695, ptr %27, align 4, !tbaa !11
  br label %714

696:                                              ; preds = %673
  %697 = load ptr, ptr %5, align 8, !tbaa !5
  %698 = load i32, ptr %42, align 4, !tbaa !9
  %699 = sub nsw i32 %698, 3
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds float, ptr %697, i64 %700
  %702 = load float, ptr %701, align 4, !tbaa !11
  %703 = load float, ptr %27, align 4, !tbaa !11
  %704 = load float, ptr %27, align 4, !tbaa !11
  %705 = load ptr, ptr %5, align 8, !tbaa !5
  %706 = load i32, ptr %42, align 4, !tbaa !9
  %707 = sub nsw i32 %706, 1
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds float, ptr %705, i64 %708
  %710 = load float, ptr %709, align 4, !tbaa !11
  %711 = fadd float %704, %710
  %712 = fdiv float %703, %711
  %713 = fmul float %702, %712
  store float %713, ptr %27, align 4, !tbaa !11
  br label %714

714:                                              ; preds = %696, %684
  br label %715

715:                                              ; preds = %714
  %716 = load i32, ptr %42, align 4, !tbaa !9
  %717 = add nsw i32 %716, -4
  store i32 %717, ptr %42, align 4, !tbaa !9
  br label %669, !llvm.loop !18

718:                                              ; preds = %669
  %719 = load ptr, ptr %5, align 8, !tbaa !5
  %720 = load i32, ptr %40, align 4, !tbaa !9
  %721 = shl i32 %720, 2
  %722 = load i32, ptr %47, align 4, !tbaa !9
  %723 = add nsw i32 %721, %722
  %724 = add nsw i32 %723, 1
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds float, ptr %719, i64 %725
  %727 = load float, ptr %726, align 4, !tbaa !11
  store float %727, ptr %15, align 4, !tbaa !11
  %728 = load ptr, ptr %5, align 8, !tbaa !5
  %729 = load i32, ptr %40, align 4, !tbaa !9
  %730 = shl i32 %729, 2
  %731 = load i32, ptr %47, align 4, !tbaa !9
  %732 = add nsw i32 %730, %731
  %733 = sub nsw i32 %732, 3
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds float, ptr %728, i64 %734
  %736 = load float, ptr %735, align 4, !tbaa !11
  store float %736, ptr %27, align 4, !tbaa !11
  %737 = load i32, ptr %43, align 4, !tbaa !9
  %738 = sub nsw i32 %737, 1
  %739 = shl i32 %738, 2
  %740 = load i32, ptr %47, align 4, !tbaa !9
  %741 = add nsw i32 %739, %740
  store i32 %741, ptr %7, align 4, !tbaa !9
  %742 = load i32, ptr %40, align 4, !tbaa !9
  %743 = shl i32 %742, 2
  %744 = load i32, ptr %47, align 4, !tbaa !9
  %745 = add nsw i32 %743, %744
  store i32 %745, ptr %42, align 4, !tbaa !9
  br label %746

746:                                              ; preds = %947, %718
  %747 = load i32, ptr %42, align 4, !tbaa !9
  %748 = load i32, ptr %7, align 4, !tbaa !9
  %749 = icmp sle i32 %747, %748
  br i1 %749, label %750, label %950

750:                                              ; preds = %746
  %751 = load float, ptr %27, align 4, !tbaa !11
  %752 = load ptr, ptr %5, align 8, !tbaa !5
  %753 = load i32, ptr %42, align 4, !tbaa !9
  %754 = sub nsw i32 %753, 1
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds float, ptr %752, i64 %755
  %757 = load float, ptr %756, align 4, !tbaa !11
  %758 = fadd float %751, %757
  %759 = load ptr, ptr %5, align 8, !tbaa !5
  %760 = load i32, ptr %42, align 4, !tbaa !9
  %761 = load i32, ptr %47, align 4, !tbaa !9
  %762 = shl i32 %761, 1
  %763 = sub nsw i32 %760, %762
  %764 = sub nsw i32 %763, 2
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds float, ptr %759, i64 %765
  store float %758, ptr %766, align 4, !tbaa !11
  %767 = load ptr, ptr %5, align 8, !tbaa !5
  %768 = load i32, ptr %42, align 4, !tbaa !9
  %769 = sub nsw i32 %768, 1
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds float, ptr %767, i64 %770
  %772 = load float, ptr %771, align 4, !tbaa !11
  %773 = load float, ptr %60, align 4, !tbaa !11
  %774 = load float, ptr %27, align 4, !tbaa !11
  %775 = fmul float %773, %774
  %776 = fcmp ole float %772, %775
  br i1 %776, label %777, label %805

777:                                              ; preds = %750
  %778 = load ptr, ptr %5, align 8, !tbaa !5
  %779 = load i32, ptr %42, align 4, !tbaa !9
  %780 = sub nsw i32 %779, 1
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds float, ptr %778, i64 %781
  store float 0.000000e+00, ptr %782, align 4, !tbaa !11
  %783 = load float, ptr %27, align 4, !tbaa !11
  %784 = load ptr, ptr %5, align 8, !tbaa !5
  %785 = load i32, ptr %42, align 4, !tbaa !9
  %786 = load i32, ptr %47, align 4, !tbaa !9
  %787 = shl i32 %786, 1
  %788 = sub nsw i32 %785, %787
  %789 = sub nsw i32 %788, 2
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds float, ptr %784, i64 %790
  store float %783, ptr %791, align 4, !tbaa !11
  %792 = load ptr, ptr %5, align 8, !tbaa !5
  %793 = load i32, ptr %42, align 4, !tbaa !9
  %794 = load i32, ptr %47, align 4, !tbaa !9
  %795 = shl i32 %794, 1
  %796 = sub nsw i32 %793, %795
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds float, ptr %792, i64 %797
  store float 0.000000e+00, ptr %798, align 4, !tbaa !11
  %799 = load ptr, ptr %5, align 8, !tbaa !5
  %800 = load i32, ptr %42, align 4, !tbaa !9
  %801 = add nsw i32 %800, 1
  %802 = sext i32 %801 to i64
  %803 = getelementptr inbounds float, ptr %799, i64 %802
  %804 = load float, ptr %803, align 4, !tbaa !11
  store float %804, ptr %27, align 4, !tbaa !11
  br label %928

805:                                              ; preds = %750
  %806 = load float, ptr %52, align 4, !tbaa !11
  %807 = load ptr, ptr %5, align 8, !tbaa !5
  %808 = load i32, ptr %42, align 4, !tbaa !9
  %809 = add nsw i32 %808, 1
  %810 = sext i32 %809 to i64
  %811 = getelementptr inbounds float, ptr %807, i64 %810
  %812 = load float, ptr %811, align 4, !tbaa !11
  %813 = fmul float %806, %812
  %814 = load ptr, ptr %5, align 8, !tbaa !5
  %815 = load i32, ptr %42, align 4, !tbaa !9
  %816 = load i32, ptr %47, align 4, !tbaa !9
  %817 = shl i32 %816, 1
  %818 = sub nsw i32 %815, %817
  %819 = sub nsw i32 %818, 2
  %820 = sext i32 %819 to i64
  %821 = getelementptr inbounds float, ptr %814, i64 %820
  %822 = load float, ptr %821, align 4, !tbaa !11
  %823 = fcmp olt float %813, %822
  br i1 %823, label %824, label %878

824:                                              ; preds = %805
  %825 = load float, ptr %52, align 4, !tbaa !11
  %826 = load ptr, ptr %5, align 8, !tbaa !5
  %827 = load i32, ptr %42, align 4, !tbaa !9
  %828 = load i32, ptr %47, align 4, !tbaa !9
  %829 = shl i32 %828, 1
  %830 = sub nsw i32 %827, %829
  %831 = sub nsw i32 %830, 2
  %832 = sext i32 %831 to i64
  %833 = getelementptr inbounds float, ptr %826, i64 %832
  %834 = load float, ptr %833, align 4, !tbaa !11
  %835 = fmul float %825, %834
  %836 = load ptr, ptr %5, align 8, !tbaa !5
  %837 = load i32, ptr %42, align 4, !tbaa !9
  %838 = add nsw i32 %837, 1
  %839 = sext i32 %838 to i64
  %840 = getelementptr inbounds float, ptr %836, i64 %839
  %841 = load float, ptr %840, align 4, !tbaa !11
  %842 = fcmp olt float %835, %841
  br i1 %842, label %843, label %878

843:                                              ; preds = %824
  %844 = load ptr, ptr %5, align 8, !tbaa !5
  %845 = load i32, ptr %42, align 4, !tbaa !9
  %846 = add nsw i32 %845, 1
  %847 = sext i32 %846 to i64
  %848 = getelementptr inbounds float, ptr %844, i64 %847
  %849 = load float, ptr %848, align 4, !tbaa !11
  %850 = load ptr, ptr %5, align 8, !tbaa !5
  %851 = load i32, ptr %42, align 4, !tbaa !9
  %852 = load i32, ptr %47, align 4, !tbaa !9
  %853 = shl i32 %852, 1
  %854 = sub nsw i32 %851, %853
  %855 = sub nsw i32 %854, 2
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds float, ptr %850, i64 %856
  %858 = load float, ptr %857, align 4, !tbaa !11
  %859 = fdiv float %849, %858
  store float %859, ptr %21, align 4, !tbaa !11
  %860 = load ptr, ptr %5, align 8, !tbaa !5
  %861 = load i32, ptr %42, align 4, !tbaa !9
  %862 = sub nsw i32 %861, 1
  %863 = sext i32 %862 to i64
  %864 = getelementptr inbounds float, ptr %860, i64 %863
  %865 = load float, ptr %864, align 4, !tbaa !11
  %866 = load float, ptr %21, align 4, !tbaa !11
  %867 = fmul float %865, %866
  %868 = load ptr, ptr %5, align 8, !tbaa !5
  %869 = load i32, ptr %42, align 4, !tbaa !9
  %870 = load i32, ptr %47, align 4, !tbaa !9
  %871 = shl i32 %870, 1
  %872 = sub nsw i32 %869, %871
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds float, ptr %868, i64 %873
  store float %867, ptr %874, align 4, !tbaa !11
  %875 = load float, ptr %21, align 4, !tbaa !11
  %876 = load float, ptr %27, align 4, !tbaa !11
  %877 = fmul float %876, %875
  store float %877, ptr %27, align 4, !tbaa !11
  br label %927

878:                                              ; preds = %824, %805
  %879 = load ptr, ptr %5, align 8, !tbaa !5
  %880 = load i32, ptr %42, align 4, !tbaa !9
  %881 = add nsw i32 %880, 1
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds float, ptr %879, i64 %882
  %884 = load float, ptr %883, align 4, !tbaa !11
  %885 = load ptr, ptr %5, align 8, !tbaa !5
  %886 = load i32, ptr %42, align 4, !tbaa !9
  %887 = sub nsw i32 %886, 1
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds float, ptr %885, i64 %888
  %890 = load float, ptr %889, align 4, !tbaa !11
  %891 = load ptr, ptr %5, align 8, !tbaa !5
  %892 = load i32, ptr %42, align 4, !tbaa !9
  %893 = load i32, ptr %47, align 4, !tbaa !9
  %894 = shl i32 %893, 1
  %895 = sub nsw i32 %892, %894
  %896 = sub nsw i32 %895, 2
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds float, ptr %891, i64 %897
  %899 = load float, ptr %898, align 4, !tbaa !11
  %900 = fdiv float %890, %899
  %901 = fmul float %884, %900
  %902 = load ptr, ptr %5, align 8, !tbaa !5
  %903 = load i32, ptr %42, align 4, !tbaa !9
  %904 = load i32, ptr %47, align 4, !tbaa !9
  %905 = shl i32 %904, 1
  %906 = sub nsw i32 %903, %905
  %907 = sext i32 %906 to i64
  %908 = getelementptr inbounds float, ptr %902, i64 %907
  store float %901, ptr %908, align 4, !tbaa !11
  %909 = load ptr, ptr %5, align 8, !tbaa !5
  %910 = load i32, ptr %42, align 4, !tbaa !9
  %911 = add nsw i32 %910, 1
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds float, ptr %909, i64 %912
  %914 = load float, ptr %913, align 4, !tbaa !11
  %915 = load float, ptr %27, align 4, !tbaa !11
  %916 = load ptr, ptr %5, align 8, !tbaa !5
  %917 = load i32, ptr %42, align 4, !tbaa !9
  %918 = load i32, ptr %47, align 4, !tbaa !9
  %919 = shl i32 %918, 1
  %920 = sub nsw i32 %917, %919
  %921 = sub nsw i32 %920, 2
  %922 = sext i32 %921 to i64
  %923 = getelementptr inbounds float, ptr %916, i64 %922
  %924 = load float, ptr %923, align 4, !tbaa !11
  %925 = fdiv float %915, %924
  %926 = fmul float %914, %925
  store float %926, ptr %27, align 4, !tbaa !11
  br label %927

927:                                              ; preds = %878, %843
  br label %928

928:                                              ; preds = %927, %777
  %929 = load float, ptr %15, align 4, !tbaa !11
  store float %929, ptr %10, align 4, !tbaa !11
  %930 = load ptr, ptr %5, align 8, !tbaa !5
  %931 = load i32, ptr %42, align 4, !tbaa !9
  %932 = load i32, ptr %47, align 4, !tbaa !9
  %933 = shl i32 %932, 1
  %934 = sub nsw i32 %931, %933
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds float, ptr %930, i64 %935
  %937 = load float, ptr %936, align 4, !tbaa !11
  store float %937, ptr %11, align 4, !tbaa !11
  %938 = load float, ptr %10, align 4, !tbaa !11
  %939 = load float, ptr %11, align 4, !tbaa !11
  %940 = fcmp ole float %938, %939
  br i1 %940, label %941, label %943

941:                                              ; preds = %928
  %942 = load float, ptr %10, align 4, !tbaa !11
  br label %945

943:                                              ; preds = %928
  %944 = load float, ptr %11, align 4, !tbaa !11
  br label %945

945:                                              ; preds = %943, %941
  %946 = phi float [ %942, %941 ], [ %944, %943 ]
  store float %946, ptr %15, align 4, !tbaa !11
  br label %947

947:                                              ; preds = %945
  %948 = load i32, ptr %42, align 4, !tbaa !9
  %949 = add nsw i32 %948, 4
  store i32 %949, ptr %42, align 4, !tbaa !9
  br label %746, !llvm.loop !19

950:                                              ; preds = %746
  %951 = load float, ptr %27, align 4, !tbaa !11
  %952 = load ptr, ptr %5, align 8, !tbaa !5
  %953 = load i32, ptr %43, align 4, !tbaa !9
  %954 = shl i32 %953, 2
  %955 = load i32, ptr %47, align 4, !tbaa !9
  %956 = sub nsw i32 %954, %955
  %957 = sub nsw i32 %956, 2
  %958 = sext i32 %957 to i64
  %959 = getelementptr inbounds float, ptr %952, i64 %958
  store float %951, ptr %959, align 4, !tbaa !11
  %960 = load ptr, ptr %5, align 8, !tbaa !5
  %961 = load i32, ptr %40, align 4, !tbaa !9
  %962 = shl i32 %961, 2
  %963 = load i32, ptr %47, align 4, !tbaa !9
  %964 = sub nsw i32 %962, %963
  %965 = sub nsw i32 %964, 2
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds float, ptr %960, i64 %966
  %968 = load float, ptr %967, align 4, !tbaa !11
  store float %968, ptr %22, align 4, !tbaa !11
  %969 = load i32, ptr %43, align 4, !tbaa !9
  %970 = shl i32 %969, 2
  %971 = load i32, ptr %47, align 4, !tbaa !9
  %972 = sub nsw i32 %970, %971
  %973 = sub nsw i32 %972, 2
  store i32 %973, ptr %7, align 4, !tbaa !9
  %974 = load i32, ptr %40, align 4, !tbaa !9
  %975 = shl i32 %974, 2
  %976 = load i32, ptr %47, align 4, !tbaa !9
  %977 = sub nsw i32 %975, %976
  %978 = add nsw i32 %977, 2
  store i32 %978, ptr %42, align 4, !tbaa !9
  br label %979

979:                                              ; preds = %999, %950
  %980 = load i32, ptr %42, align 4, !tbaa !9
  %981 = load i32, ptr %7, align 4, !tbaa !9
  %982 = icmp sle i32 %980, %981
  br i1 %982, label %983, label %1002

983:                                              ; preds = %979
  %984 = load float, ptr %22, align 4, !tbaa !11
  store float %984, ptr %10, align 4, !tbaa !11
  %985 = load ptr, ptr %5, align 8, !tbaa !5
  %986 = load i32, ptr %42, align 4, !tbaa !9
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds float, ptr %985, i64 %987
  %989 = load float, ptr %988, align 4, !tbaa !11
  store float %989, ptr %11, align 4, !tbaa !11
  %990 = load float, ptr %10, align 4, !tbaa !11
  %991 = load float, ptr %11, align 4, !tbaa !11
  %992 = fcmp oge float %990, %991
  br i1 %992, label %993, label %995

993:                                              ; preds = %983
  %994 = load float, ptr %10, align 4, !tbaa !11
  br label %997

995:                                              ; preds = %983
  %996 = load float, ptr %11, align 4, !tbaa !11
  br label %997

997:                                              ; preds = %995, %993
  %998 = phi float [ %994, %993 ], [ %996, %995 ]
  store float %998, ptr %22, align 4, !tbaa !11
  br label %999

999:                                              ; preds = %997
  %1000 = load i32, ptr %42, align 4, !tbaa !9
  %1001 = add nsw i32 %1000, 4
  store i32 %1001, ptr %42, align 4, !tbaa !9
  br label %979, !llvm.loop !20

1002:                                             ; preds = %979
  %1003 = load i32, ptr %47, align 4, !tbaa !9
  %1004 = sub nsw i32 1, %1003
  store i32 %1004, ptr %47, align 4, !tbaa !9
  br label %1005

1005:                                             ; preds = %1002
  %1006 = load i32, ptr %30, align 4, !tbaa !9
  %1007 = add nsw i32 %1006, 1
  store i32 %1007, ptr %30, align 4, !tbaa !9
  br label %647, !llvm.loop !21

1008:                                             ; preds = %647
  store i32 0, ptr %45, align 4, !tbaa !9
  store float 0.000000e+00, ptr %25, align 4, !tbaa !11
  store float 0.000000e+00, ptr %26, align 4, !tbaa !11
  store float 0.000000e+00, ptr %46, align 4, !tbaa !11
  store float 0.000000e+00, ptr %53, align 4, !tbaa !11
  store float 0.000000e+00, ptr %54, align 4, !tbaa !11
  store float 0.000000e+00, ptr %29, align 4, !tbaa !11
  store float 0.000000e+00, ptr %57, align 4, !tbaa !11
  store i32 2, ptr %19, align 4, !tbaa !9
  store i32 0, ptr %33, align 4, !tbaa !9
  %1009 = load i32, ptr %43, align 4, !tbaa !9
  %1010 = load i32, ptr %40, align 4, !tbaa !9
  %1011 = sub nsw i32 %1009, %1010
  %1012 = shl i32 %1011, 1
  store i32 %1012, ptr %18, align 4, !tbaa !9
  %1013 = load ptr, ptr %4, align 8, !tbaa !5
  %1014 = load i32, ptr %1013, align 4, !tbaa !9
  %1015 = add nsw i32 %1014, 1
  store i32 %1015, ptr %7, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %1016

1016:                                             ; preds = %1774, %1008
  %1017 = load i32, ptr %49, align 4, !tbaa !9
  %1018 = load i32, ptr %7, align 4, !tbaa !9
  %1019 = icmp sle i32 %1017, %1018
  br i1 %1019, label %1020, label %1777

1020:                                             ; preds = %1016
  %1021 = load i32, ptr %43, align 4, !tbaa !9
  %1022 = icmp slt i32 %1021, 1
  br i1 %1022, label %1023, label %1024

1023:                                             ; preds = %1020
  br label %1779

1024:                                             ; preds = %1020
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  %1025 = load i32, ptr %43, align 4, !tbaa !9
  %1026 = load ptr, ptr %4, align 8, !tbaa !5
  %1027 = load i32, ptr %1026, align 4, !tbaa !9
  %1028 = icmp eq i32 %1025, %1027
  br i1 %1028, label %1029, label %1030

1029:                                             ; preds = %1024
  store float 0.000000e+00, ptr %36, align 4, !tbaa !11
  br label %1039

1030:                                             ; preds = %1024
  %1031 = load ptr, ptr %5, align 8, !tbaa !5
  %1032 = load i32, ptr %43, align 4, !tbaa !9
  %1033 = shl i32 %1032, 2
  %1034 = sub nsw i32 %1033, 1
  %1035 = sext i32 %1034 to i64
  %1036 = getelementptr inbounds float, ptr %1031, i64 %1035
  %1037 = load float, ptr %1036, align 4, !tbaa !11
  %1038 = fneg float %1037
  store float %1038, ptr %36, align 4, !tbaa !11
  br label %1039

1039:                                             ; preds = %1030, %1029
  %1040 = load float, ptr %36, align 4, !tbaa !11
  %1041 = fcmp olt float %1040, 0.000000e+00
  br i1 %1041, label %1042, label %1044

1042:                                             ; preds = %1039
  %1043 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 1, ptr %1043, align 4, !tbaa !9
  store i32 1, ptr %61, align 4
  br label %1876

1044:                                             ; preds = %1039
  store float 0.000000e+00, ptr %16, align 4, !tbaa !11
  %1045 = load i32, ptr %43, align 4, !tbaa !9
  %1046 = load i32, ptr %40, align 4, !tbaa !9
  %1047 = icmp sgt i32 %1045, %1046
  br i1 %1047, label %1048, label %1065

1048:                                             ; preds = %1044
  %1049 = load ptr, ptr %5, align 8, !tbaa !5
  %1050 = load i32, ptr %43, align 4, !tbaa !9
  %1051 = shl i32 %1050, 2
  %1052 = sub nsw i32 %1051, 5
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds float, ptr %1049, i64 %1053
  %1055 = load float, ptr %1054, align 4, !tbaa !11
  store float %1055, ptr %10, align 4, !tbaa !11
  %1056 = load float, ptr %10, align 4, !tbaa !11
  %1057 = fcmp oge float %1056, 0.000000e+00
  br i1 %1057, label %1058, label %1060

1058:                                             ; preds = %1048
  %1059 = load float, ptr %10, align 4, !tbaa !11
  br label %1063

1060:                                             ; preds = %1048
  %1061 = load float, ptr %10, align 4, !tbaa !11
  %1062 = fneg float %1061
  br label %1063

1063:                                             ; preds = %1060, %1058
  %1064 = phi float [ %1059, %1058 ], [ %1062, %1060 ]
  store float %1064, ptr %15, align 4, !tbaa !11
  br label %1066

1065:                                             ; preds = %1044
  store float 0.000000e+00, ptr %15, align 4, !tbaa !11
  br label %1066

1066:                                             ; preds = %1065, %1063
  %1067 = load ptr, ptr %5, align 8, !tbaa !5
  %1068 = load i32, ptr %43, align 4, !tbaa !9
  %1069 = shl i32 %1068, 2
  %1070 = sub nsw i32 %1069, 3
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds float, ptr %1067, i64 %1071
  %1073 = load float, ptr %1072, align 4, !tbaa !11
  store float %1073, ptr %20, align 4, !tbaa !11
  %1074 = load float, ptr %20, align 4, !tbaa !11
  store float %1074, ptr %22, align 4, !tbaa !11
  %1075 = load i32, ptr %43, align 4, !tbaa !9
  %1076 = shl i32 %1075, 2
  store i32 %1076, ptr %42, align 4, !tbaa !9
  br label %1077

1077:                                             ; preds = %1167, %1066
  %1078 = load i32, ptr %42, align 4, !tbaa !9
  %1079 = icmp sge i32 %1078, 8
  br i1 %1079, label %1080, label %1170

1080:                                             ; preds = %1077
  %1081 = load ptr, ptr %5, align 8, !tbaa !5
  %1082 = load i32, ptr %42, align 4, !tbaa !9
  %1083 = sub nsw i32 %1082, 5
  %1084 = sext i32 %1083 to i64
  %1085 = getelementptr inbounds float, ptr %1081, i64 %1084
  %1086 = load float, ptr %1085, align 4, !tbaa !11
  %1087 = fcmp ole float %1086, 0.000000e+00
  br i1 %1087, label %1088, label %1089

1088:                                             ; preds = %1080
  br label %1171

1089:                                             ; preds = %1080
  %1090 = load float, ptr %20, align 4, !tbaa !11
  %1091 = load float, ptr %16, align 4, !tbaa !11
  %1092 = fmul float %1091, 4.000000e+00
  %1093 = fcmp oge float %1090, %1092
  br i1 %1093, label %1094, label %1127

1094:                                             ; preds = %1089
  %1095 = load float, ptr %20, align 4, !tbaa !11
  store float %1095, ptr %10, align 4, !tbaa !11
  %1096 = load ptr, ptr %5, align 8, !tbaa !5
  %1097 = load i32, ptr %42, align 4, !tbaa !9
  %1098 = sub nsw i32 %1097, 3
  %1099 = sext i32 %1098 to i64
  %1100 = getelementptr inbounds float, ptr %1096, i64 %1099
  %1101 = load float, ptr %1100, align 4, !tbaa !11
  store float %1101, ptr %11, align 4, !tbaa !11
  %1102 = load float, ptr %10, align 4, !tbaa !11
  %1103 = load float, ptr %11, align 4, !tbaa !11
  %1104 = fcmp ole float %1102, %1103
  br i1 %1104, label %1105, label %1107

1105:                                             ; preds = %1094
  %1106 = load float, ptr %10, align 4, !tbaa !11
  br label %1109

1107:                                             ; preds = %1094
  %1108 = load float, ptr %11, align 4, !tbaa !11
  br label %1109

1109:                                             ; preds = %1107, %1105
  %1110 = phi float [ %1106, %1105 ], [ %1108, %1107 ]
  store float %1110, ptr %20, align 4, !tbaa !11
  %1111 = load float, ptr %16, align 4, !tbaa !11
  store float %1111, ptr %10, align 4, !tbaa !11
  %1112 = load ptr, ptr %5, align 8, !tbaa !5
  %1113 = load i32, ptr %42, align 4, !tbaa !9
  %1114 = sub nsw i32 %1113, 5
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds float, ptr %1112, i64 %1115
  %1117 = load float, ptr %1116, align 4, !tbaa !11
  store float %1117, ptr %11, align 4, !tbaa !11
  %1118 = load float, ptr %10, align 4, !tbaa !11
  %1119 = load float, ptr %11, align 4, !tbaa !11
  %1120 = fcmp oge float %1118, %1119
  br i1 %1120, label %1121, label %1123

1121:                                             ; preds = %1109
  %1122 = load float, ptr %10, align 4, !tbaa !11
  br label %1125

1123:                                             ; preds = %1109
  %1124 = load float, ptr %11, align 4, !tbaa !11
  br label %1125

1125:                                             ; preds = %1123, %1121
  %1126 = phi float [ %1122, %1121 ], [ %1124, %1123 ]
  store float %1126, ptr %16, align 4, !tbaa !11
  br label %1127

1127:                                             ; preds = %1125, %1089
  %1128 = load float, ptr %22, align 4, !tbaa !11
  store float %1128, ptr %10, align 4, !tbaa !11
  %1129 = load ptr, ptr %5, align 8, !tbaa !5
  %1130 = load i32, ptr %42, align 4, !tbaa !9
  %1131 = sub nsw i32 %1130, 7
  %1132 = sext i32 %1131 to i64
  %1133 = getelementptr inbounds float, ptr %1129, i64 %1132
  %1134 = load float, ptr %1133, align 4, !tbaa !11
  %1135 = load ptr, ptr %5, align 8, !tbaa !5
  %1136 = load i32, ptr %42, align 4, !tbaa !9
  %1137 = sub nsw i32 %1136, 5
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds float, ptr %1135, i64 %1138
  %1140 = load float, ptr %1139, align 4, !tbaa !11
  %1141 = fadd float %1134, %1140
  store float %1141, ptr %11, align 4, !tbaa !11
  %1142 = load float, ptr %10, align 4, !tbaa !11
  %1143 = load float, ptr %11, align 4, !tbaa !11
  %1144 = fcmp oge float %1142, %1143
  br i1 %1144, label %1145, label %1147

1145:                                             ; preds = %1127
  %1146 = load float, ptr %10, align 4, !tbaa !11
  br label %1149

1147:                                             ; preds = %1127
  %1148 = load float, ptr %11, align 4, !tbaa !11
  br label %1149

1149:                                             ; preds = %1147, %1145
  %1150 = phi float [ %1146, %1145 ], [ %1148, %1147 ]
  store float %1150, ptr %22, align 4, !tbaa !11
  %1151 = load float, ptr %15, align 4, !tbaa !11
  store float %1151, ptr %10, align 4, !tbaa !11
  %1152 = load ptr, ptr %5, align 8, !tbaa !5
  %1153 = load i32, ptr %42, align 4, !tbaa !9
  %1154 = sub nsw i32 %1153, 5
  %1155 = sext i32 %1154 to i64
  %1156 = getelementptr inbounds float, ptr %1152, i64 %1155
  %1157 = load float, ptr %1156, align 4, !tbaa !11
  store float %1157, ptr %11, align 4, !tbaa !11
  %1158 = load float, ptr %10, align 4, !tbaa !11
  %1159 = load float, ptr %11, align 4, !tbaa !11
  %1160 = fcmp ole float %1158, %1159
  br i1 %1160, label %1161, label %1163

1161:                                             ; preds = %1149
  %1162 = load float, ptr %10, align 4, !tbaa !11
  br label %1165

1163:                                             ; preds = %1149
  %1164 = load float, ptr %11, align 4, !tbaa !11
  br label %1165

1165:                                             ; preds = %1163, %1161
  %1166 = phi float [ %1162, %1161 ], [ %1164, %1163 ]
  store float %1166, ptr %15, align 4, !tbaa !11
  br label %1167

1167:                                             ; preds = %1165
  %1168 = load i32, ptr %42, align 4, !tbaa !9
  %1169 = add nsw i32 %1168, -4
  store i32 %1169, ptr %42, align 4, !tbaa !9
  br label %1077, !llvm.loop !22

1170:                                             ; preds = %1077
  store i32 4, ptr %42, align 4, !tbaa !9
  br label %1171

1171:                                             ; preds = %1170, %1088
  %1172 = load i32, ptr %42, align 4, !tbaa !9
  %1173 = sdiv i32 %1172, 4
  store i32 %1173, ptr %40, align 4, !tbaa !9
  store i32 0, ptr %47, align 4, !tbaa !9
  %1174 = load i32, ptr %43, align 4, !tbaa !9
  %1175 = load i32, ptr %40, align 4, !tbaa !9
  %1176 = sub nsw i32 %1174, %1175
  %1177 = icmp sgt i32 %1176, 1
  br i1 %1177, label %1178, label %1375

1178:                                             ; preds = %1171
  %1179 = load ptr, ptr %5, align 8, !tbaa !5
  %1180 = load i32, ptr %40, align 4, !tbaa !9
  %1181 = shl i32 %1180, 2
  %1182 = sub nsw i32 %1181, 3
  %1183 = sext i32 %1182 to i64
  %1184 = getelementptr inbounds float, ptr %1179, i64 %1183
  %1185 = load float, ptr %1184, align 4, !tbaa !11
  store float %1185, ptr %55, align 4, !tbaa !11
  %1186 = load float, ptr %55, align 4, !tbaa !11
  store float %1186, ptr %48, align 4, !tbaa !11
  %1187 = load i32, ptr %40, align 4, !tbaa !9
  store i32 %1187, ptr %17, align 4, !tbaa !9
  %1188 = load i32, ptr %43, align 4, !tbaa !9
  %1189 = shl i32 %1188, 2
  %1190 = sub nsw i32 %1189, 3
  store i32 %1190, ptr %8, align 4, !tbaa !9
  %1191 = load i32, ptr %40, align 4, !tbaa !9
  %1192 = shl i32 %1191, 2
  %1193 = add nsw i32 %1192, 1
  store i32 %1193, ptr %42, align 4, !tbaa !9
  br label %1194

1194:                                             ; preds = %1224, %1178
  %1195 = load i32, ptr %42, align 4, !tbaa !9
  %1196 = load i32, ptr %8, align 4, !tbaa !9
  %1197 = icmp sle i32 %1195, %1196
  br i1 %1197, label %1198, label %1227

1198:                                             ; preds = %1194
  %1199 = load ptr, ptr %5, align 8, !tbaa !5
  %1200 = load i32, ptr %42, align 4, !tbaa !9
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds float, ptr %1199, i64 %1201
  %1203 = load float, ptr %1202, align 4, !tbaa !11
  %1204 = load float, ptr %55, align 4, !tbaa !11
  %1205 = load float, ptr %55, align 4, !tbaa !11
  %1206 = load ptr, ptr %5, align 8, !tbaa !5
  %1207 = load i32, ptr %42, align 4, !tbaa !9
  %1208 = sub nsw i32 %1207, 2
  %1209 = sext i32 %1208 to i64
  %1210 = getelementptr inbounds float, ptr %1206, i64 %1209
  %1211 = load float, ptr %1210, align 4, !tbaa !11
  %1212 = fadd float %1205, %1211
  %1213 = fdiv float %1204, %1212
  %1214 = fmul float %1203, %1213
  store float %1214, ptr %55, align 4, !tbaa !11
  %1215 = load float, ptr %55, align 4, !tbaa !11
  %1216 = load float, ptr %48, align 4, !tbaa !11
  %1217 = fcmp ole float %1215, %1216
  br i1 %1217, label %1218, label %1223

1218:                                             ; preds = %1198
  %1219 = load float, ptr %55, align 4, !tbaa !11
  store float %1219, ptr %48, align 4, !tbaa !11
  %1220 = load i32, ptr %42, align 4, !tbaa !9
  %1221 = add nsw i32 %1220, 3
  %1222 = sdiv i32 %1221, 4
  store i32 %1222, ptr %17, align 4, !tbaa !9
  br label %1223

1223:                                             ; preds = %1218, %1198
  br label %1224

1224:                                             ; preds = %1223
  %1225 = load i32, ptr %42, align 4, !tbaa !9
  %1226 = add nsw i32 %1225, 4
  store i32 %1226, ptr %42, align 4, !tbaa !9
  br label %1194, !llvm.loop !23

1227:                                             ; preds = %1194
  %1228 = load i32, ptr %17, align 4, !tbaa !9
  %1229 = load i32, ptr %40, align 4, !tbaa !9
  %1230 = sub nsw i32 %1228, %1229
  %1231 = shl i32 %1230, 1
  %1232 = load i32, ptr %43, align 4, !tbaa !9
  %1233 = load i32, ptr %17, align 4, !tbaa !9
  %1234 = sub nsw i32 %1232, %1233
  %1235 = icmp slt i32 %1231, %1234
  br i1 %1235, label %1236, label %1374

1236:                                             ; preds = %1227
  %1237 = load float, ptr %48, align 4, !tbaa !11
  %1238 = load ptr, ptr %5, align 8, !tbaa !5
  %1239 = load i32, ptr %43, align 4, !tbaa !9
  %1240 = shl i32 %1239, 2
  %1241 = sub nsw i32 %1240, 3
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds float, ptr %1238, i64 %1242
  %1244 = load float, ptr %1243, align 4, !tbaa !11
  %1245 = fmul float %1244, 5.000000e-01
  %1246 = fcmp ole float %1237, %1245
  br i1 %1246, label %1247, label %1374

1247:                                             ; preds = %1236
  %1248 = load i32, ptr %40, align 4, !tbaa !9
  %1249 = load i32, ptr %43, align 4, !tbaa !9
  %1250 = add nsw i32 %1248, %1249
  %1251 = shl i32 %1250, 2
  store i32 %1251, ptr %59, align 4, !tbaa !9
  store i32 2, ptr %47, align 4, !tbaa !9
  %1252 = load i32, ptr %40, align 4, !tbaa !9
  %1253 = load i32, ptr %43, align 4, !tbaa !9
  %1254 = add nsw i32 %1252, %1253
  %1255 = sub nsw i32 %1254, 1
  %1256 = shl i32 %1255, 1
  store i32 %1256, ptr %8, align 4, !tbaa !9
  %1257 = load i32, ptr %40, align 4, !tbaa !9
  %1258 = shl i32 %1257, 2
  store i32 %1258, ptr %42, align 4, !tbaa !9
  br label %1259

1259:                                             ; preds = %1370, %1247
  %1260 = load i32, ptr %42, align 4, !tbaa !9
  %1261 = load i32, ptr %8, align 4, !tbaa !9
  %1262 = icmp sle i32 %1260, %1261
  br i1 %1262, label %1263, label %1373

1263:                                             ; preds = %1259
  %1264 = load ptr, ptr %5, align 8, !tbaa !5
  %1265 = load i32, ptr %42, align 4, !tbaa !9
  %1266 = sub nsw i32 %1265, 3
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds float, ptr %1264, i64 %1267
  %1269 = load float, ptr %1268, align 4, !tbaa !11
  store float %1269, ptr %21, align 4, !tbaa !11
  %1270 = load ptr, ptr %5, align 8, !tbaa !5
  %1271 = load i32, ptr %59, align 4, !tbaa !9
  %1272 = load i32, ptr %42, align 4, !tbaa !9
  %1273 = sub nsw i32 %1271, %1272
  %1274 = sub nsw i32 %1273, 3
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr inbounds float, ptr %1270, i64 %1275
  %1277 = load float, ptr %1276, align 4, !tbaa !11
  %1278 = load ptr, ptr %5, align 8, !tbaa !5
  %1279 = load i32, ptr %42, align 4, !tbaa !9
  %1280 = sub nsw i32 %1279, 3
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds float, ptr %1278, i64 %1281
  store float %1277, ptr %1282, align 4, !tbaa !11
  %1283 = load float, ptr %21, align 4, !tbaa !11
  %1284 = load ptr, ptr %5, align 8, !tbaa !5
  %1285 = load i32, ptr %59, align 4, !tbaa !9
  %1286 = load i32, ptr %42, align 4, !tbaa !9
  %1287 = sub nsw i32 %1285, %1286
  %1288 = sub nsw i32 %1287, 3
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds float, ptr %1284, i64 %1289
  store float %1283, ptr %1290, align 4, !tbaa !11
  %1291 = load ptr, ptr %5, align 8, !tbaa !5
  %1292 = load i32, ptr %42, align 4, !tbaa !9
  %1293 = sub nsw i32 %1292, 2
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds float, ptr %1291, i64 %1294
  %1296 = load float, ptr %1295, align 4, !tbaa !11
  store float %1296, ptr %21, align 4, !tbaa !11
  %1297 = load ptr, ptr %5, align 8, !tbaa !5
  %1298 = load i32, ptr %59, align 4, !tbaa !9
  %1299 = load i32, ptr %42, align 4, !tbaa !9
  %1300 = sub nsw i32 %1298, %1299
  %1301 = sub nsw i32 %1300, 2
  %1302 = sext i32 %1301 to i64
  %1303 = getelementptr inbounds float, ptr %1297, i64 %1302
  %1304 = load float, ptr %1303, align 4, !tbaa !11
  %1305 = load ptr, ptr %5, align 8, !tbaa !5
  %1306 = load i32, ptr %42, align 4, !tbaa !9
  %1307 = sub nsw i32 %1306, 2
  %1308 = sext i32 %1307 to i64
  %1309 = getelementptr inbounds float, ptr %1305, i64 %1308
  store float %1304, ptr %1309, align 4, !tbaa !11
  %1310 = load float, ptr %21, align 4, !tbaa !11
  %1311 = load ptr, ptr %5, align 8, !tbaa !5
  %1312 = load i32, ptr %59, align 4, !tbaa !9
  %1313 = load i32, ptr %42, align 4, !tbaa !9
  %1314 = sub nsw i32 %1312, %1313
  %1315 = sub nsw i32 %1314, 2
  %1316 = sext i32 %1315 to i64
  %1317 = getelementptr inbounds float, ptr %1311, i64 %1316
  store float %1310, ptr %1317, align 4, !tbaa !11
  %1318 = load ptr, ptr %5, align 8, !tbaa !5
  %1319 = load i32, ptr %42, align 4, !tbaa !9
  %1320 = sub nsw i32 %1319, 1
  %1321 = sext i32 %1320 to i64
  %1322 = getelementptr inbounds float, ptr %1318, i64 %1321
  %1323 = load float, ptr %1322, align 4, !tbaa !11
  store float %1323, ptr %21, align 4, !tbaa !11
  %1324 = load ptr, ptr %5, align 8, !tbaa !5
  %1325 = load i32, ptr %59, align 4, !tbaa !9
  %1326 = load i32, ptr %42, align 4, !tbaa !9
  %1327 = sub nsw i32 %1325, %1326
  %1328 = sub nsw i32 %1327, 5
  %1329 = sext i32 %1328 to i64
  %1330 = getelementptr inbounds float, ptr %1324, i64 %1329
  %1331 = load float, ptr %1330, align 4, !tbaa !11
  %1332 = load ptr, ptr %5, align 8, !tbaa !5
  %1333 = load i32, ptr %42, align 4, !tbaa !9
  %1334 = sub nsw i32 %1333, 1
  %1335 = sext i32 %1334 to i64
  %1336 = getelementptr inbounds float, ptr %1332, i64 %1335
  store float %1331, ptr %1336, align 4, !tbaa !11
  %1337 = load float, ptr %21, align 4, !tbaa !11
  %1338 = load ptr, ptr %5, align 8, !tbaa !5
  %1339 = load i32, ptr %59, align 4, !tbaa !9
  %1340 = load i32, ptr %42, align 4, !tbaa !9
  %1341 = sub nsw i32 %1339, %1340
  %1342 = sub nsw i32 %1341, 5
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds float, ptr %1338, i64 %1343
  store float %1337, ptr %1344, align 4, !tbaa !11
  %1345 = load ptr, ptr %5, align 8, !tbaa !5
  %1346 = load i32, ptr %42, align 4, !tbaa !9
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds float, ptr %1345, i64 %1347
  %1349 = load float, ptr %1348, align 4, !tbaa !11
  store float %1349, ptr %21, align 4, !tbaa !11
  %1350 = load ptr, ptr %5, align 8, !tbaa !5
  %1351 = load i32, ptr %59, align 4, !tbaa !9
  %1352 = load i32, ptr %42, align 4, !tbaa !9
  %1353 = sub nsw i32 %1351, %1352
  %1354 = sub nsw i32 %1353, 4
  %1355 = sext i32 %1354 to i64
  %1356 = getelementptr inbounds float, ptr %1350, i64 %1355
  %1357 = load float, ptr %1356, align 4, !tbaa !11
  %1358 = load ptr, ptr %5, align 8, !tbaa !5
  %1359 = load i32, ptr %42, align 4, !tbaa !9
  %1360 = sext i32 %1359 to i64
  %1361 = getelementptr inbounds float, ptr %1358, i64 %1360
  store float %1357, ptr %1361, align 4, !tbaa !11
  %1362 = load float, ptr %21, align 4, !tbaa !11
  %1363 = load ptr, ptr %5, align 8, !tbaa !5
  %1364 = load i32, ptr %59, align 4, !tbaa !9
  %1365 = load i32, ptr %42, align 4, !tbaa !9
  %1366 = sub nsw i32 %1364, %1365
  %1367 = sub nsw i32 %1366, 4
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds float, ptr %1363, i64 %1368
  store float %1362, ptr %1369, align 4, !tbaa !11
  br label %1370

1370:                                             ; preds = %1263
  %1371 = load i32, ptr %42, align 4, !tbaa !9
  %1372 = add nsw i32 %1371, 4
  store i32 %1372, ptr %42, align 4, !tbaa !9
  br label %1259, !llvm.loop !24

1373:                                             ; preds = %1259
  br label %1374

1374:                                             ; preds = %1373, %1236, %1227
  br label %1375

1375:                                             ; preds = %1374, %1171
  store float 0.000000e+00, ptr %10, align 4, !tbaa !11
  %1376 = load float, ptr %20, align 4, !tbaa !11
  %1377 = fpext float %1376 to double
  %1378 = load float, ptr %20, align 4, !tbaa !11
  %1379 = fpext float %1378 to double
  %1380 = call double @sqrt(double noundef %1379) #5
  %1381 = fmul double %1380, 2.000000e+00
  %1382 = load float, ptr %16, align 4, !tbaa !11
  %1383 = fpext float %1382 to double
  %1384 = call double @sqrt(double noundef %1383) #5
  %1385 = fneg double %1381
  %1386 = call double @llvm.fmuladd.f64(double %1385, double %1384, double %1377)
  %1387 = fptrunc double %1386 to float
  store float %1387, ptr %11, align 4, !tbaa !11
  %1388 = load float, ptr %10, align 4, !tbaa !11
  %1389 = load float, ptr %11, align 4, !tbaa !11
  %1390 = fcmp oge float %1388, %1389
  br i1 %1390, label %1391, label %1393

1391:                                             ; preds = %1375
  %1392 = load float, ptr %10, align 4, !tbaa !11
  br label %1395

1393:                                             ; preds = %1375
  %1394 = load float, ptr %11, align 4, !tbaa !11
  br label %1395

1395:                                             ; preds = %1393, %1391
  %1396 = phi float [ %1392, %1391 ], [ %1394, %1393 ]
  %1397 = fneg float %1396
  store float %1397, ptr %14, align 4, !tbaa !11
  %1398 = load i32, ptr %43, align 4, !tbaa !9
  %1399 = load i32, ptr %40, align 4, !tbaa !9
  %1400 = sub nsw i32 %1398, %1399
  %1401 = add nsw i32 %1400, 1
  %1402 = mul nsw i32 %1401, 100
  store i32 %1402, ptr %13, align 4, !tbaa !9
  %1403 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1403, ptr %8, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %1404

1404:                                             ; preds = %1598, %1395
  %1405 = load i32, ptr %50, align 4, !tbaa !9
  %1406 = load i32, ptr %8, align 4, !tbaa !9
  %1407 = icmp sle i32 %1405, %1406
  br i1 %1407, label %1408, label %1601

1408:                                             ; preds = %1404
  %1409 = load i32, ptr %40, align 4, !tbaa !9
  %1410 = load i32, ptr %43, align 4, !tbaa !9
  %1411 = icmp sgt i32 %1409, %1410
  br i1 %1411, label %1412, label %1413

1412:                                             ; preds = %1408
  br label %1773

1413:                                             ; preds = %1408
  %1414 = load ptr, ptr %5, align 8, !tbaa !5
  %1415 = getelementptr inbounds float, ptr %1414, i64 1
  call void @slasq3_(ptr noundef %40, ptr noundef %43, ptr noundef %1415, ptr noundef %47, ptr noundef %14, ptr noundef %36, ptr noundef %34, ptr noundef %22, ptr noundef %33, ptr noundef %19, ptr noundef %18, ptr noundef %12, ptr noundef %45, ptr noundef %25, ptr noundef %26, ptr noundef %46, ptr noundef %53, ptr noundef %54, ptr noundef %29, ptr noundef %57)
  %1416 = load i32, ptr %47, align 4, !tbaa !9
  %1417 = sub nsw i32 1, %1416
  store i32 %1417, ptr %47, align 4, !tbaa !9
  %1418 = load i32, ptr %47, align 4, !tbaa !9
  %1419 = icmp eq i32 %1418, 0
  br i1 %1419, label %1420, label %1597

1420:                                             ; preds = %1413
  %1421 = load i32, ptr %43, align 4, !tbaa !9
  %1422 = load i32, ptr %40, align 4, !tbaa !9
  %1423 = sub nsw i32 %1421, %1422
  %1424 = icmp sge i32 %1423, 3
  br i1 %1424, label %1425, label %1597

1425:                                             ; preds = %1420
  %1426 = load ptr, ptr %5, align 8, !tbaa !5
  %1427 = load i32, ptr %43, align 4, !tbaa !9
  %1428 = mul nsw i32 %1427, 4
  %1429 = sext i32 %1428 to i64
  %1430 = getelementptr inbounds float, ptr %1426, i64 %1429
  %1431 = load float, ptr %1430, align 4, !tbaa !11
  %1432 = load float, ptr %60, align 4, !tbaa !11
  %1433 = load float, ptr %22, align 4, !tbaa !11
  %1434 = fmul float %1432, %1433
  %1435 = fcmp ole float %1431, %1434
  br i1 %1435, label %1448, label %1436

1436:                                             ; preds = %1425
  %1437 = load ptr, ptr %5, align 8, !tbaa !5
  %1438 = load i32, ptr %43, align 4, !tbaa !9
  %1439 = shl i32 %1438, 2
  %1440 = sub nsw i32 %1439, 1
  %1441 = sext i32 %1440 to i64
  %1442 = getelementptr inbounds float, ptr %1437, i64 %1441
  %1443 = load float, ptr %1442, align 4, !tbaa !11
  %1444 = load float, ptr %60, align 4, !tbaa !11
  %1445 = load float, ptr %36, align 4, !tbaa !11
  %1446 = fmul float %1444, %1445
  %1447 = fcmp ole float %1443, %1446
  br i1 %1447, label %1448, label %1596

1448:                                             ; preds = %1436, %1425
  %1449 = load i32, ptr %40, align 4, !tbaa !9
  %1450 = sub nsw i32 %1449, 1
  store i32 %1450, ptr %24, align 4, !tbaa !9
  %1451 = load ptr, ptr %5, align 8, !tbaa !5
  %1452 = load i32, ptr %40, align 4, !tbaa !9
  %1453 = shl i32 %1452, 2
  %1454 = sub nsw i32 %1453, 3
  %1455 = sext i32 %1454 to i64
  %1456 = getelementptr inbounds float, ptr %1451, i64 %1455
  %1457 = load float, ptr %1456, align 4, !tbaa !11
  store float %1457, ptr %22, align 4, !tbaa !11
  %1458 = load ptr, ptr %5, align 8, !tbaa !5
  %1459 = load i32, ptr %40, align 4, !tbaa !9
  %1460 = shl i32 %1459, 2
  %1461 = sub nsw i32 %1460, 1
  %1462 = sext i32 %1461 to i64
  %1463 = getelementptr inbounds float, ptr %1458, i64 %1462
  %1464 = load float, ptr %1463, align 4, !tbaa !11
  store float %1464, ptr %15, align 4, !tbaa !11
  %1465 = load ptr, ptr %5, align 8, !tbaa !5
  %1466 = load i32, ptr %40, align 4, !tbaa !9
  %1467 = mul nsw i32 %1466, 4
  %1468 = sext i32 %1467 to i64
  %1469 = getelementptr inbounds float, ptr %1465, i64 %1468
  %1470 = load float, ptr %1469, align 4, !tbaa !11
  store float %1470, ptr %51, align 4, !tbaa !11
  %1471 = load i32, ptr %43, align 4, !tbaa !9
  %1472 = sub nsw i32 %1471, 3
  %1473 = shl i32 %1472, 2
  store i32 %1473, ptr %9, align 4, !tbaa !9
  %1474 = load i32, ptr %40, align 4, !tbaa !9
  %1475 = shl i32 %1474, 2
  store i32 %1475, ptr %42, align 4, !tbaa !9
  br label %1476

1476:                                             ; preds = %1577, %1448
  %1477 = load i32, ptr %42, align 4, !tbaa !9
  %1478 = load i32, ptr %9, align 4, !tbaa !9
  %1479 = icmp sle i32 %1477, %1478
  br i1 %1479, label %1480, label %1580

1480:                                             ; preds = %1476
  %1481 = load ptr, ptr %5, align 8, !tbaa !5
  %1482 = load i32, ptr %42, align 4, !tbaa !9
  %1483 = sext i32 %1482 to i64
  %1484 = getelementptr inbounds float, ptr %1481, i64 %1483
  %1485 = load float, ptr %1484, align 4, !tbaa !11
  %1486 = load float, ptr %60, align 4, !tbaa !11
  %1487 = load ptr, ptr %5, align 8, !tbaa !5
  %1488 = load i32, ptr %42, align 4, !tbaa !9
  %1489 = sub nsw i32 %1488, 3
  %1490 = sext i32 %1489 to i64
  %1491 = getelementptr inbounds float, ptr %1487, i64 %1490
  %1492 = load float, ptr %1491, align 4, !tbaa !11
  %1493 = fmul float %1486, %1492
  %1494 = fcmp ole float %1485, %1493
  br i1 %1494, label %1506, label %1495

1495:                                             ; preds = %1480
  %1496 = load ptr, ptr %5, align 8, !tbaa !5
  %1497 = load i32, ptr %42, align 4, !tbaa !9
  %1498 = sub nsw i32 %1497, 1
  %1499 = sext i32 %1498 to i64
  %1500 = getelementptr inbounds float, ptr %1496, i64 %1499
  %1501 = load float, ptr %1500, align 4, !tbaa !11
  %1502 = load float, ptr %60, align 4, !tbaa !11
  %1503 = load float, ptr %36, align 4, !tbaa !11
  %1504 = fmul float %1502, %1503
  %1505 = fcmp ole float %1501, %1504
  br i1 %1505, label %1506, label %1528

1506:                                             ; preds = %1495, %1480
  %1507 = load float, ptr %36, align 4, !tbaa !11
  %1508 = fneg float %1507
  %1509 = load ptr, ptr %5, align 8, !tbaa !5
  %1510 = load i32, ptr %42, align 4, !tbaa !9
  %1511 = sub nsw i32 %1510, 1
  %1512 = sext i32 %1511 to i64
  %1513 = getelementptr inbounds float, ptr %1509, i64 %1512
  store float %1508, ptr %1513, align 4, !tbaa !11
  %1514 = load i32, ptr %42, align 4, !tbaa !9
  %1515 = sdiv i32 %1514, 4
  store i32 %1515, ptr %24, align 4, !tbaa !9
  store float 0.000000e+00, ptr %22, align 4, !tbaa !11
  %1516 = load ptr, ptr %5, align 8, !tbaa !5
  %1517 = load i32, ptr %42, align 4, !tbaa !9
  %1518 = add nsw i32 %1517, 3
  %1519 = sext i32 %1518 to i64
  %1520 = getelementptr inbounds float, ptr %1516, i64 %1519
  %1521 = load float, ptr %1520, align 4, !tbaa !11
  store float %1521, ptr %15, align 4, !tbaa !11
  %1522 = load ptr, ptr %5, align 8, !tbaa !5
  %1523 = load i32, ptr %42, align 4, !tbaa !9
  %1524 = add nsw i32 %1523, 4
  %1525 = sext i32 %1524 to i64
  %1526 = getelementptr inbounds float, ptr %1522, i64 %1525
  %1527 = load float, ptr %1526, align 4, !tbaa !11
  store float %1527, ptr %51, align 4, !tbaa !11
  br label %1576

1528:                                             ; preds = %1495
  %1529 = load float, ptr %22, align 4, !tbaa !11
  store float %1529, ptr %10, align 4, !tbaa !11
  %1530 = load ptr, ptr %5, align 8, !tbaa !5
  %1531 = load i32, ptr %42, align 4, !tbaa !9
  %1532 = add nsw i32 %1531, 1
  %1533 = sext i32 %1532 to i64
  %1534 = getelementptr inbounds float, ptr %1530, i64 %1533
  %1535 = load float, ptr %1534, align 4, !tbaa !11
  store float %1535, ptr %11, align 4, !tbaa !11
  %1536 = load float, ptr %10, align 4, !tbaa !11
  %1537 = load float, ptr %11, align 4, !tbaa !11
  %1538 = fcmp oge float %1536, %1537
  br i1 %1538, label %1539, label %1541

1539:                                             ; preds = %1528
  %1540 = load float, ptr %10, align 4, !tbaa !11
  br label %1543

1541:                                             ; preds = %1528
  %1542 = load float, ptr %11, align 4, !tbaa !11
  br label %1543

1543:                                             ; preds = %1541, %1539
  %1544 = phi float [ %1540, %1539 ], [ %1542, %1541 ]
  store float %1544, ptr %22, align 4, !tbaa !11
  %1545 = load float, ptr %15, align 4, !tbaa !11
  store float %1545, ptr %10, align 4, !tbaa !11
  %1546 = load ptr, ptr %5, align 8, !tbaa !5
  %1547 = load i32, ptr %42, align 4, !tbaa !9
  %1548 = sub nsw i32 %1547, 1
  %1549 = sext i32 %1548 to i64
  %1550 = getelementptr inbounds float, ptr %1546, i64 %1549
  %1551 = load float, ptr %1550, align 4, !tbaa !11
  store float %1551, ptr %11, align 4, !tbaa !11
  %1552 = load float, ptr %10, align 4, !tbaa !11
  %1553 = load float, ptr %11, align 4, !tbaa !11
  %1554 = fcmp ole float %1552, %1553
  br i1 %1554, label %1555, label %1557

1555:                                             ; preds = %1543
  %1556 = load float, ptr %10, align 4, !tbaa !11
  br label %1559

1557:                                             ; preds = %1543
  %1558 = load float, ptr %11, align 4, !tbaa !11
  br label %1559

1559:                                             ; preds = %1557, %1555
  %1560 = phi float [ %1556, %1555 ], [ %1558, %1557 ]
  store float %1560, ptr %15, align 4, !tbaa !11
  %1561 = load float, ptr %51, align 4, !tbaa !11
  store float %1561, ptr %10, align 4, !tbaa !11
  %1562 = load ptr, ptr %5, align 8, !tbaa !5
  %1563 = load i32, ptr %42, align 4, !tbaa !9
  %1564 = sext i32 %1563 to i64
  %1565 = getelementptr inbounds float, ptr %1562, i64 %1564
  %1566 = load float, ptr %1565, align 4, !tbaa !11
  store float %1566, ptr %11, align 4, !tbaa !11
  %1567 = load float, ptr %10, align 4, !tbaa !11
  %1568 = load float, ptr %11, align 4, !tbaa !11
  %1569 = fcmp ole float %1567, %1568
  br i1 %1569, label %1570, label %1572

1570:                                             ; preds = %1559
  %1571 = load float, ptr %10, align 4, !tbaa !11
  br label %1574

1572:                                             ; preds = %1559
  %1573 = load float, ptr %11, align 4, !tbaa !11
  br label %1574

1574:                                             ; preds = %1572, %1570
  %1575 = phi float [ %1571, %1570 ], [ %1573, %1572 ]
  store float %1575, ptr %51, align 4, !tbaa !11
  br label %1576

1576:                                             ; preds = %1574, %1506
  br label %1577

1577:                                             ; preds = %1576
  %1578 = load i32, ptr %42, align 4, !tbaa !9
  %1579 = add nsw i32 %1578, 4
  store i32 %1579, ptr %42, align 4, !tbaa !9
  br label %1476, !llvm.loop !25

1580:                                             ; preds = %1476
  %1581 = load float, ptr %15, align 4, !tbaa !11
  %1582 = load ptr, ptr %5, align 8, !tbaa !5
  %1583 = load i32, ptr %43, align 4, !tbaa !9
  %1584 = shl i32 %1583, 2
  %1585 = sub nsw i32 %1584, 1
  %1586 = sext i32 %1585 to i64
  %1587 = getelementptr inbounds float, ptr %1582, i64 %1586
  store float %1581, ptr %1587, align 4, !tbaa !11
  %1588 = load float, ptr %51, align 4, !tbaa !11
  %1589 = load ptr, ptr %5, align 8, !tbaa !5
  %1590 = load i32, ptr %43, align 4, !tbaa !9
  %1591 = mul nsw i32 %1590, 4
  %1592 = sext i32 %1591 to i64
  %1593 = getelementptr inbounds float, ptr %1589, i64 %1592
  store float %1588, ptr %1593, align 4, !tbaa !11
  %1594 = load i32, ptr %24, align 4, !tbaa !9
  %1595 = add nsw i32 %1594, 1
  store i32 %1595, ptr %40, align 4, !tbaa !9
  br label %1596

1596:                                             ; preds = %1580, %1436
  br label %1597

1597:                                             ; preds = %1596, %1420, %1413
  br label %1598

1598:                                             ; preds = %1597
  %1599 = load i32, ptr %50, align 4, !tbaa !9
  %1600 = add nsw i32 %1599, 1
  store i32 %1600, ptr %50, align 4, !tbaa !9
  br label %1404, !llvm.loop !26

1601:                                             ; preds = %1404
  %1602 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 2, ptr %1602, align 4, !tbaa !9
  %1603 = load i32, ptr %40, align 4, !tbaa !9
  store i32 %1603, ptr %41, align 4, !tbaa !9
  %1604 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %1604, ptr %44, align 4, !tbaa !9
  br label %1605

1605:                                             ; preds = %1715, %1601
  %1606 = load ptr, ptr %5, align 8, !tbaa !5
  %1607 = load i32, ptr %40, align 4, !tbaa !9
  %1608 = shl i32 %1607, 2
  %1609 = sub nsw i32 %1608, 3
  %1610 = sext i32 %1609 to i64
  %1611 = getelementptr inbounds float, ptr %1606, i64 %1610
  %1612 = load float, ptr %1611, align 4, !tbaa !11
  store float %1612, ptr %39, align 4, !tbaa !11
  %1613 = load float, ptr %36, align 4, !tbaa !11
  %1614 = load ptr, ptr %5, align 8, !tbaa !5
  %1615 = load i32, ptr %40, align 4, !tbaa !9
  %1616 = shl i32 %1615, 2
  %1617 = sub nsw i32 %1616, 3
  %1618 = sext i32 %1617 to i64
  %1619 = getelementptr inbounds float, ptr %1614, i64 %1618
  %1620 = load float, ptr %1619, align 4, !tbaa !11
  %1621 = fadd float %1620, %1613
  store float %1621, ptr %1619, align 4, !tbaa !11
  %1622 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %1622, ptr %8, align 4, !tbaa !9
  %1623 = load i32, ptr %40, align 4, !tbaa !9
  %1624 = add nsw i32 %1623, 1
  store i32 %1624, ptr %30, align 4, !tbaa !9
  br label %1625

1625:                                             ; preds = %1686, %1605
  %1626 = load i32, ptr %30, align 4, !tbaa !9
  %1627 = load i32, ptr %8, align 4, !tbaa !9
  %1628 = icmp sle i32 %1626, %1627
  br i1 %1628, label %1629, label %1689

1629:                                             ; preds = %1625
  %1630 = load ptr, ptr %5, align 8, !tbaa !5
  %1631 = load i32, ptr %30, align 4, !tbaa !9
  %1632 = shl i32 %1631, 2
  %1633 = sub nsw i32 %1632, 5
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds float, ptr %1630, i64 %1634
  %1636 = load float, ptr %1635, align 4, !tbaa !11
  store float %1636, ptr %38, align 4, !tbaa !11
  %1637 = load float, ptr %39, align 4, !tbaa !11
  %1638 = load ptr, ptr %5, align 8, !tbaa !5
  %1639 = load i32, ptr %30, align 4, !tbaa !9
  %1640 = shl i32 %1639, 2
  %1641 = sub nsw i32 %1640, 7
  %1642 = sext i32 %1641 to i64
  %1643 = getelementptr inbounds float, ptr %1638, i64 %1642
  %1644 = load float, ptr %1643, align 4, !tbaa !11
  %1645 = fdiv float %1637, %1644
  %1646 = load ptr, ptr %5, align 8, !tbaa !5
  %1647 = load i32, ptr %30, align 4, !tbaa !9
  %1648 = shl i32 %1647, 2
  %1649 = sub nsw i32 %1648, 5
  %1650 = sext i32 %1649 to i64
  %1651 = getelementptr inbounds float, ptr %1646, i64 %1650
  %1652 = load float, ptr %1651, align 4, !tbaa !11
  %1653 = fmul float %1652, %1645
  store float %1653, ptr %1651, align 4, !tbaa !11
  %1654 = load ptr, ptr %5, align 8, !tbaa !5
  %1655 = load i32, ptr %30, align 4, !tbaa !9
  %1656 = shl i32 %1655, 2
  %1657 = sub nsw i32 %1656, 3
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds float, ptr %1654, i64 %1658
  %1660 = load float, ptr %1659, align 4, !tbaa !11
  store float %1660, ptr %39, align 4, !tbaa !11
  %1661 = load ptr, ptr %5, align 8, !tbaa !5
  %1662 = load i32, ptr %30, align 4, !tbaa !9
  %1663 = shl i32 %1662, 2
  %1664 = sub nsw i32 %1663, 3
  %1665 = sext i32 %1664 to i64
  %1666 = getelementptr inbounds float, ptr %1661, i64 %1665
  %1667 = load float, ptr %1666, align 4, !tbaa !11
  %1668 = load float, ptr %36, align 4, !tbaa !11
  %1669 = fadd float %1667, %1668
  %1670 = load float, ptr %38, align 4, !tbaa !11
  %1671 = fadd float %1669, %1670
  %1672 = load ptr, ptr %5, align 8, !tbaa !5
  %1673 = load i32, ptr %30, align 4, !tbaa !9
  %1674 = shl i32 %1673, 2
  %1675 = sub nsw i32 %1674, 5
  %1676 = sext i32 %1675 to i64
  %1677 = getelementptr inbounds float, ptr %1672, i64 %1676
  %1678 = load float, ptr %1677, align 4, !tbaa !11
  %1679 = fsub float %1671, %1678
  %1680 = load ptr, ptr %5, align 8, !tbaa !5
  %1681 = load i32, ptr %30, align 4, !tbaa !9
  %1682 = shl i32 %1681, 2
  %1683 = sub nsw i32 %1682, 3
  %1684 = sext i32 %1683 to i64
  %1685 = getelementptr inbounds float, ptr %1680, i64 %1684
  store float %1679, ptr %1685, align 4, !tbaa !11
  br label %1686

1686:                                             ; preds = %1629
  %1687 = load i32, ptr %30, align 4, !tbaa !9
  %1688 = add nsw i32 %1687, 1
  store i32 %1688, ptr %30, align 4, !tbaa !9
  br label %1625, !llvm.loop !27

1689:                                             ; preds = %1625
  %1690 = load i32, ptr %41, align 4, !tbaa !9
  %1691 = icmp sgt i32 %1690, 1
  br i1 %1691, label %1692, label %1725

1692:                                             ; preds = %1689
  %1693 = load i32, ptr %41, align 4, !tbaa !9
  %1694 = sub nsw i32 %1693, 1
  store i32 %1694, ptr %44, align 4, !tbaa !9
  br label %1695

1695:                                             ; preds = %1709, %1692
  %1696 = load i32, ptr %41, align 4, !tbaa !9
  %1697 = icmp sge i32 %1696, 2
  br i1 %1697, label %1698, label %1707

1698:                                             ; preds = %1695
  %1699 = load ptr, ptr %5, align 8, !tbaa !5
  %1700 = load i32, ptr %41, align 4, !tbaa !9
  %1701 = shl i32 %1700, 2
  %1702 = sub nsw i32 %1701, 5
  %1703 = sext i32 %1702 to i64
  %1704 = getelementptr inbounds float, ptr %1699, i64 %1703
  %1705 = load float, ptr %1704, align 4, !tbaa !11
  %1706 = fcmp oge float %1705, 0.000000e+00
  br label %1707

1707:                                             ; preds = %1698, %1695
  %1708 = phi i1 [ false, %1695 ], [ %1706, %1698 ]
  br i1 %1708, label %1709, label %1712

1709:                                             ; preds = %1707
  %1710 = load i32, ptr %41, align 4, !tbaa !9
  %1711 = add nsw i32 %1710, -1
  store i32 %1711, ptr %41, align 4, !tbaa !9
  br label %1695, !llvm.loop !28

1712:                                             ; preds = %1707
  %1713 = load i32, ptr %41, align 4, !tbaa !9
  %1714 = icmp sge i32 %1713, 1
  br i1 %1714, label %1715, label %1724

1715:                                             ; preds = %1712
  %1716 = load ptr, ptr %5, align 8, !tbaa !5
  %1717 = load i32, ptr %44, align 4, !tbaa !9
  %1718 = shl i32 %1717, 2
  %1719 = sub nsw i32 %1718, 1
  %1720 = sext i32 %1719 to i64
  %1721 = getelementptr inbounds float, ptr %1716, i64 %1720
  %1722 = load float, ptr %1721, align 4, !tbaa !11
  %1723 = fneg float %1722
  store float %1723, ptr %36, align 4, !tbaa !11
  br label %1605

1724:                                             ; preds = %1712
  br label %1725

1725:                                             ; preds = %1724, %1689
  %1726 = load ptr, ptr %4, align 8, !tbaa !5
  %1727 = load i32, ptr %1726, align 4, !tbaa !9
  store i32 %1727, ptr %8, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %1728

1728:                                             ; preds = %1769, %1725
  %1729 = load i32, ptr %30, align 4, !tbaa !9
  %1730 = load i32, ptr %8, align 4, !tbaa !9
  %1731 = icmp sle i32 %1729, %1730
  br i1 %1731, label %1732, label %1772

1732:                                             ; preds = %1728
  %1733 = load ptr, ptr %5, align 8, !tbaa !5
  %1734 = load i32, ptr %30, align 4, !tbaa !9
  %1735 = shl i32 %1734, 2
  %1736 = sub nsw i32 %1735, 3
  %1737 = sext i32 %1736 to i64
  %1738 = getelementptr inbounds float, ptr %1733, i64 %1737
  %1739 = load float, ptr %1738, align 4, !tbaa !11
  %1740 = load ptr, ptr %5, align 8, !tbaa !5
  %1741 = load i32, ptr %30, align 4, !tbaa !9
  %1742 = shl i32 %1741, 1
  %1743 = sub nsw i32 %1742, 1
  %1744 = sext i32 %1743 to i64
  %1745 = getelementptr inbounds float, ptr %1740, i64 %1744
  store float %1739, ptr %1745, align 4, !tbaa !11
  %1746 = load i32, ptr %30, align 4, !tbaa !9
  %1747 = load i32, ptr %43, align 4, !tbaa !9
  %1748 = icmp slt i32 %1746, %1747
  br i1 %1748, label %1749, label %1762

1749:                                             ; preds = %1732
  %1750 = load ptr, ptr %5, align 8, !tbaa !5
  %1751 = load i32, ptr %30, align 4, !tbaa !9
  %1752 = shl i32 %1751, 2
  %1753 = sub nsw i32 %1752, 1
  %1754 = sext i32 %1753 to i64
  %1755 = getelementptr inbounds float, ptr %1750, i64 %1754
  %1756 = load float, ptr %1755, align 4, !tbaa !11
  %1757 = load ptr, ptr %5, align 8, !tbaa !5
  %1758 = load i32, ptr %30, align 4, !tbaa !9
  %1759 = mul nsw i32 %1758, 2
  %1760 = sext i32 %1759 to i64
  %1761 = getelementptr inbounds float, ptr %1757, i64 %1760
  store float %1756, ptr %1761, align 4, !tbaa !11
  br label %1768

1762:                                             ; preds = %1732
  %1763 = load ptr, ptr %5, align 8, !tbaa !5
  %1764 = load i32, ptr %30, align 4, !tbaa !9
  %1765 = mul nsw i32 %1764, 2
  %1766 = sext i32 %1765 to i64
  %1767 = getelementptr inbounds float, ptr %1763, i64 %1766
  store float 0.000000e+00, ptr %1767, align 4, !tbaa !11
  br label %1768

1768:                                             ; preds = %1762, %1749
  br label %1769

1769:                                             ; preds = %1768
  %1770 = load i32, ptr %30, align 4, !tbaa !9
  %1771 = add nsw i32 %1770, 1
  store i32 %1771, ptr %30, align 4, !tbaa !9
  br label %1728, !llvm.loop !29

1772:                                             ; preds = %1728
  store i32 1, ptr %61, align 4
  br label %1876

1773:                                             ; preds = %1412
  br label %1774

1774:                                             ; preds = %1773
  %1775 = load i32, ptr %49, align 4, !tbaa !9
  %1776 = add nsw i32 %1775, 1
  store i32 %1776, ptr %49, align 4, !tbaa !9
  br label %1016, !llvm.loop !30

1777:                                             ; preds = %1016
  %1778 = load ptr, ptr %6, align 8, !tbaa !5
  store i32 3, ptr %1778, align 4, !tbaa !9
  store i32 1, ptr %61, align 4
  br label %1876

1779:                                             ; preds = %1023
  %1780 = load ptr, ptr %4, align 8, !tbaa !5
  %1781 = load i32, ptr %1780, align 4, !tbaa !9
  store i32 %1781, ptr %7, align 4, !tbaa !9
  store i32 2, ptr %30, align 4, !tbaa !9
  br label %1782

1782:                                             ; preds = %1798, %1779
  %1783 = load i32, ptr %30, align 4, !tbaa !9
  %1784 = load i32, ptr %7, align 4, !tbaa !9
  %1785 = icmp sle i32 %1783, %1784
  br i1 %1785, label %1786, label %1801

1786:                                             ; preds = %1782
  %1787 = load ptr, ptr %5, align 8, !tbaa !5
  %1788 = load i32, ptr %30, align 4, !tbaa !9
  %1789 = shl i32 %1788, 2
  %1790 = sub nsw i32 %1789, 3
  %1791 = sext i32 %1790 to i64
  %1792 = getelementptr inbounds float, ptr %1787, i64 %1791
  %1793 = load float, ptr %1792, align 4, !tbaa !11
  %1794 = load ptr, ptr %5, align 8, !tbaa !5
  %1795 = load i32, ptr %30, align 4, !tbaa !9
  %1796 = sext i32 %1795 to i64
  %1797 = getelementptr inbounds float, ptr %1794, i64 %1796
  store float %1793, ptr %1797, align 4, !tbaa !11
  br label %1798

1798:                                             ; preds = %1786
  %1799 = load i32, ptr %30, align 4, !tbaa !9
  %1800 = add nsw i32 %1799, 1
  store i32 %1800, ptr %30, align 4, !tbaa !9
  br label %1782, !llvm.loop !31

1801:                                             ; preds = %1782
  %1802 = load ptr, ptr %4, align 8, !tbaa !5
  %1803 = load ptr, ptr %5, align 8, !tbaa !5
  %1804 = getelementptr inbounds float, ptr %1803, i64 1
  call void @slasrt_(ptr noundef @.str.3, ptr noundef %1802, ptr noundef %1804, ptr noundef %37)
  store float 0.000000e+00, ptr %28, align 4, !tbaa !11
  %1805 = load ptr, ptr %4, align 8, !tbaa !5
  %1806 = load i32, ptr %1805, align 4, !tbaa !9
  store i32 %1806, ptr %30, align 4, !tbaa !9
  br label %1807

1807:                                             ; preds = %1818, %1801
  %1808 = load i32, ptr %30, align 4, !tbaa !9
  %1809 = icmp sge i32 %1808, 1
  br i1 %1809, label %1810, label %1821

1810:                                             ; preds = %1807
  %1811 = load ptr, ptr %5, align 8, !tbaa !5
  %1812 = load i32, ptr %30, align 4, !tbaa !9
  %1813 = sext i32 %1812 to i64
  %1814 = getelementptr inbounds float, ptr %1811, i64 %1813
  %1815 = load float, ptr %1814, align 4, !tbaa !11
  %1816 = load float, ptr %28, align 4, !tbaa !11
  %1817 = fadd float %1816, %1815
  store float %1817, ptr %28, align 4, !tbaa !11
  br label %1818

1818:                                             ; preds = %1810
  %1819 = load i32, ptr %30, align 4, !tbaa !9
  %1820 = add nsw i32 %1819, -1
  store i32 %1820, ptr %30, align 4, !tbaa !9
  br label %1807, !llvm.loop !32

1821:                                             ; preds = %1807
  %1822 = load float, ptr %35, align 4, !tbaa !11
  %1823 = load ptr, ptr %5, align 8, !tbaa !5
  %1824 = load ptr, ptr %4, align 8, !tbaa !5
  %1825 = load i32, ptr %1824, align 4, !tbaa !9
  %1826 = shl i32 %1825, 1
  %1827 = add nsw i32 %1826, 1
  %1828 = sext i32 %1827 to i64
  %1829 = getelementptr inbounds float, ptr %1823, i64 %1828
  store float %1822, ptr %1829, align 4, !tbaa !11
  %1830 = load float, ptr %28, align 4, !tbaa !11
  %1831 = load ptr, ptr %5, align 8, !tbaa !5
  %1832 = load ptr, ptr %4, align 8, !tbaa !5
  %1833 = load i32, ptr %1832, align 4, !tbaa !9
  %1834 = shl i32 %1833, 1
  %1835 = add nsw i32 %1834, 2
  %1836 = sext i32 %1835 to i64
  %1837 = getelementptr inbounds float, ptr %1831, i64 %1836
  store float %1830, ptr %1837, align 4, !tbaa !11
  %1838 = load i32, ptr %19, align 4, !tbaa !9
  %1839 = sitofp i32 %1838 to float
  %1840 = load ptr, ptr %5, align 8, !tbaa !5
  %1841 = load ptr, ptr %4, align 8, !tbaa !5
  %1842 = load i32, ptr %1841, align 4, !tbaa !9
  %1843 = shl i32 %1842, 1
  %1844 = add nsw i32 %1843, 3
  %1845 = sext i32 %1844 to i64
  %1846 = getelementptr inbounds float, ptr %1840, i64 %1845
  store float %1839, ptr %1846, align 4, !tbaa !11
  %1847 = load ptr, ptr %4, align 8, !tbaa !5
  %1848 = load i32, ptr %1847, align 4, !tbaa !9
  store i32 %1848, ptr %7, align 4, !tbaa !9
  %1849 = load i32, ptr %18, align 4, !tbaa !9
  %1850 = sitofp i32 %1849 to float
  %1851 = load i32, ptr %7, align 4, !tbaa !9
  %1852 = load i32, ptr %7, align 4, !tbaa !9
  %1853 = mul nsw i32 %1851, %1852
  %1854 = sitofp i32 %1853 to float
  %1855 = fdiv float %1850, %1854
  %1856 = load ptr, ptr %5, align 8, !tbaa !5
  %1857 = load ptr, ptr %4, align 8, !tbaa !5
  %1858 = load i32, ptr %1857, align 4, !tbaa !9
  %1859 = shl i32 %1858, 1
  %1860 = add nsw i32 %1859, 4
  %1861 = sext i32 %1860 to i64
  %1862 = getelementptr inbounds float, ptr %1856, i64 %1861
  store float %1855, ptr %1862, align 4, !tbaa !11
  %1863 = load i32, ptr %33, align 4, !tbaa !9
  %1864 = sitofp i32 %1863 to float
  %1865 = fmul float %1864, 1.000000e+02
  %1866 = load i32, ptr %19, align 4, !tbaa !9
  %1867 = sitofp i32 %1866 to float
  %1868 = fdiv float %1865, %1867
  %1869 = load ptr, ptr %5, align 8, !tbaa !5
  %1870 = load ptr, ptr %4, align 8, !tbaa !5
  %1871 = load i32, ptr %1870, align 4, !tbaa !9
  %1872 = shl i32 %1871, 1
  %1873 = add nsw i32 %1872, 5
  %1874 = sext i32 %1873 to i64
  %1875 = getelementptr inbounds float, ptr %1869, i64 %1874
  store float %1868, ptr %1875, align 4, !tbaa !11
  store i32 1, ptr %61, align 4
  br label %1876

1876:                                             ; preds = %1821, %1777, %1772, %1042, %499, %481, %411, %320, %306, %263, %122, %114, %106, %96, %83, %76
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  ret void
}

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

declare float @slamch_(ptr noundef) #2

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

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

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

declare void @slasrt_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @slasq3_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}


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

@.str = external hidden unnamed_addr constant [10 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@c__2 = external hidden global i32, align 4
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @slasq2_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef writeonly %2) local_unnamed_addr #0 {
  %4 = alloca i32, align 4
  %5 = alloca float, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca float, align 4
  %9 = alloca float, align 4
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca i32, align 4
  %13 = alloca float, align 4
  %14 = alloca float, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca float, align 4
  %20 = alloca i32, align 4
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  %24 = getelementptr inbounds i8, ptr %1, i64 -4
  store i32 0, ptr %2, align 4, !tbaa !5
  %25 = tail call float @slamch_(ptr noundef nonnull @.str) #5
  %26 = tail call float @slamch_(ptr noundef nonnull @.str.1) #5
  %27 = fmul float %25, 1.000000e+02
  %28 = fmul float %27, %27
  %29 = load i32, ptr %0, align 4, !tbaa !5
  %30 = icmp slt i32 %29, 0
  br i1 %30, label %31, label %33

31:                                               ; preds = %3
  store i32 -1, ptr %2, align 4, !tbaa !5
  %32 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__1, i32 noundef 6) #5
  br label %.loopexit

33:                                               ; preds = %3
  switch i32 %29, label %.lr.ph.preheader [
    i32 0, label %.loopexit
    i32 1, label %34
    i32 2, label %39
  ]

34:                                               ; preds = %33
  %35 = load float, ptr %1, align 4, !tbaa !9
  %36 = fcmp olt float %35, 0.000000e+00
  br i1 %36, label %37, label %.loopexit

37:                                               ; preds = %34
  store i32 -201, ptr %2, align 4, !tbaa !5
  %38 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2, i32 noundef 6) #5
  br label %.loopexit

39:                                               ; preds = %33
  %40 = load float, ptr %1, align 4, !tbaa !9
  %41 = fcmp olt float %40, 0.000000e+00
  br i1 %41, label %42, label %44

42:                                               ; preds = %39
  store i32 -201, ptr %2, align 4, !tbaa !5
  %43 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2, i32 noundef 6) #5
  br label %.loopexit

44:                                               ; preds = %39
  %45 = getelementptr inbounds i8, ptr %1, i64 4
  %46 = load float, ptr %45, align 4, !tbaa !9
  %47 = fcmp olt float %46, 0.000000e+00
  br i1 %47, label %48, label %50

48:                                               ; preds = %44
  store i32 -202, ptr %2, align 4, !tbaa !5
  %49 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2, i32 noundef 6) #5
  br label %.loopexit

50:                                               ; preds = %44
  %51 = getelementptr inbounds i8, ptr %1, i64 8
  %52 = load float, ptr %51, align 4, !tbaa !9
  %53 = fcmp olt float %52, 0.000000e+00
  br i1 %53, label %54, label %56

54:                                               ; preds = %50
  store i32 -203, ptr %2, align 4, !tbaa !5
  %55 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2, i32 noundef 6) #5
  br label %.loopexit

56:                                               ; preds = %50
  %57 = fcmp ogt float %52, %40
  br i1 %57, label %58, label %59

58:                                               ; preds = %56
  store float %40, ptr %51, align 4, !tbaa !9
  store float %52, ptr %1, align 4, !tbaa !9
  br label %59

59:                                               ; preds = %56, %58
  %60 = phi float [ %52, %56 ], [ %40, %58 ]
  %61 = phi float [ %40, %56 ], [ %52, %58 ]
  %62 = fadd float %46, %61
  %63 = fadd float %62, %60
  %64 = getelementptr inbounds i8, ptr %1, i64 16
  store float %63, ptr %64, align 4, !tbaa !9
  %65 = fmul float %28, %60
  %66 = fcmp ogt float %46, %65
  br i1 %66, label %67, label %100

67:                                               ; preds = %59
  %68 = fsub float %61, %60
  %69 = fadd float %46, %68
  %70 = fmul float %69, 5.000000e-01
  %71 = fdiv float %46, %70
  %72 = fmul float %60, %71
  %73 = fcmp ugt float %72, %70
  %74 = fpext float %60 to double
  %75 = fpext float %46 to double
  %76 = fpext float %70 to double
  br i1 %73, label %84, label %77

77:                                               ; preds = %67
  %78 = fdiv float %72, %70
  %79 = fadd float %78, 1.000000e+00
  %80 = fpext float %79 to double
  %81 = tail call double @sqrt(double noundef %80) #5
  %82 = fadd double %81, 1.000000e+00
  %83 = fmul double %82, %76
  br label %90

84:                                               ; preds = %67
  %85 = tail call double @sqrt(double noundef %76) #5
  %86 = fadd float %70, %72
  %87 = fpext float %86 to double
  %88 = tail call double @sqrt(double noundef %87) #5
  %89 = tail call double @llvm.fmuladd.f64(double %85, double %88, double %76)
  br label %90

90:                                               ; preds = %84, %77
  %.sink860 = phi double [ %89, %84 ], [ %83, %77 ]
  %91 = fdiv double %75, %.sink860
  %92 = fmul double %91, %74
  %.0550 = fptrunc double %92 to float
  %93 = load float, ptr %1, align 4, !tbaa !9
  %94 = load float, ptr %45, align 4, !tbaa !9
  %95 = fadd float %94, %.0550
  %96 = fadd float %93, %95
  %97 = fdiv float %93, %96
  %98 = load float, ptr %51, align 4, !tbaa !9
  %99 = fmul float %98, %97
  store float %99, ptr %51, align 4, !tbaa !9
  store float %96, ptr %1, align 4, !tbaa !9
  br label %100

100:                                              ; preds = %90, %59
  %101 = phi float [ %96, %90 ], [ %61, %59 ]
  %102 = phi float [ %99, %90 ], [ %60, %59 ]
  store float %102, ptr %45, align 4, !tbaa !9
  %103 = fadd float %102, %101
  %104 = getelementptr inbounds i8, ptr %1, i64 20
  store float %103, ptr %104, align 4, !tbaa !9
  br label %.loopexit

.lr.ph.preheader:                                 ; preds = %33
  %105 = shl nuw i32 %29, 1
  %106 = zext i32 %105 to i64
  %107 = getelementptr float, ptr %24, i64 %106
  store float 0.000000e+00, ptr %107, align 4, !tbaa !9
  %108 = add i32 %105, -2
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %125
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %125 ]
  %.0559624 = phi float [ 0.000000e+00, %.lr.ph.preheader ], [ %127, %125 ]
  %.0561623 = phi float [ 0.000000e+00, %.lr.ph.preheader ], [ %126, %125 ]
  %109 = phi float [ 0.000000e+00, %.lr.ph.preheader ], [ %129, %125 ]
  %110 = getelementptr inbounds float, ptr %24, i64 %indvars.iv
  %111 = load float, ptr %110, align 4, !tbaa !9
  %112 = fcmp olt float %111, 0.000000e+00
  br i1 %112, label %113, label %117

113:                                              ; preds = %.lr.ph
  %114 = trunc nuw nsw i64 %indvars.iv to i32
  %115 = sub nuw nsw i32 -200, %114
  store i32 %115, ptr %2, align 4, !tbaa !5
  %116 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2, i32 noundef 6) #5
  br label %.loopexit

117:                                              ; preds = %.lr.ph
  %118 = getelementptr inbounds i8, ptr %110, i64 4
  %119 = load float, ptr %118, align 4, !tbaa !9
  %120 = fcmp olt float %119, 0.000000e+00
  br i1 %120, label %121, label %125

121:                                              ; preds = %117
  %122 = trunc nuw nsw i64 %indvars.iv to i32
  %123 = sub nuw nsw i32 -201, %122
  store i32 %123, ptr %2, align 4, !tbaa !5
  %124 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2, i32 noundef 6) #5
  br label %.loopexit

125:                                              ; preds = %117
  %126 = fadd float %.0561623, %111
  %127 = fadd float %.0559624, %119
  %128 = fcmp oge float %109, %111
  %129 = select i1 %128, float %109, float %111
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 2
  %130 = trunc nuw i64 %indvars.iv.next to i32
  %.not = icmp slt i32 %108, %130
  br i1 %.not, label %._crit_edge, label %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %125
  %131 = getelementptr i8, ptr %107, i64 -4
  %132 = load float, ptr %131, align 4, !tbaa !9
  %133 = fcmp olt float %132, 0.000000e+00
  br i1 %133, label %134, label %137

134:                                              ; preds = %._crit_edge
  %135 = sub nuw nsw i32 -199, %105
  store i32 %135, ptr %2, align 4, !tbaa !5
  %136 = tail call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__2, i32 noundef 6) #5
  br label %.loopexit

137:                                              ; preds = %._crit_edge
  %138 = fadd float %126, %132
  %139 = fcmp oge float %129, %132
  %140 = select i1 %139, float %129, float %132
  store float %140, ptr %8, align 4, !tbaa !9
  %141 = fcmp oeq float %127, 0.000000e+00
  br i1 %141, label %.preheader, label %172

.preheader:                                       ; preds = %137
  %invariant.gep756 = getelementptr i8, ptr %1, i64 -8
  %.not607758 = icmp slt i32 %29, 2
  br i1 %.not607758, label %._crit_edge761, label %.lr.ph760.preheader

.lr.ph760.preheader:                              ; preds = %.preheader
  %142 = add nuw i32 %29, 1
  %wide.trip.count822 = zext i32 %142 to i64
  %143 = add nsw i64 %wide.trip.count822, -2
  %144 = add nsw i64 %wide.trip.count822, -3
  %xtraiter907 = and i64 %143, 3
  %145 = icmp ult i64 %144, 3
  br i1 %145, label %._crit_edge761.loopexit.unr-lcssa, label %.lr.ph760.preheader.new

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

.lr.ph760:                                        ; preds = %.lr.ph760, %.lr.ph760.preheader.new
  %indvars.iv819 = phi i64 [ 2, %.lr.ph760.preheader.new ], [ %indvars.iv.next820.3, %.lr.ph760 ]
  %niter = phi i64 [ 0, %.lr.ph760.preheader.new ], [ %niter.next.3, %.lr.ph760 ]
  %indvars.iv819.tr = trunc i64 %indvars.iv819 to i32
  %146 = shl i32 %indvars.iv819.tr, 1
  %147 = sext i32 %146 to i64
  %gep757 = getelementptr float, ptr %invariant.gep756, i64 %147
  %148 = load float, ptr %gep757, align 4, !tbaa !9
  %149 = getelementptr inbounds float, ptr %24, i64 %indvars.iv819
  store float %148, ptr %149, align 4, !tbaa !9
  %150 = trunc i64 %indvars.iv819 to i32
  %indvars.iv819.tr.1 = shl i32 %150, 1
  %151 = or disjoint i32 %indvars.iv819.tr.1, 2
  %152 = sext i32 %151 to i64
  %gep757.1 = getelementptr float, ptr %invariant.gep756, i64 %152
  %153 = load float, ptr %gep757.1, align 4, !tbaa !9
  %154 = getelementptr float, ptr %1, i64 %indvars.iv819
  store float %153, ptr %154, align 4, !tbaa !9
  %indvars.iv.next820.1 = add nuw nsw i64 %indvars.iv819, 2
  %indvars.iv819.tr.2 = trunc i64 %indvars.iv.next820.1 to i32
  %155 = shl i32 %indvars.iv819.tr.2, 1
  %156 = sext i32 %155 to i64
  %gep757.2 = getelementptr float, ptr %invariant.gep756, i64 %156
  %157 = load float, ptr %gep757.2, align 4, !tbaa !9
  %158 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.next820.1
  store float %157, ptr %158, align 4, !tbaa !9
  %indvars.iv.next820.2 = add nuw nsw i64 %indvars.iv819, 3
  %indvars.iv819.tr.3 = trunc i64 %indvars.iv.next820.2 to i32
  %159 = shl i32 %indvars.iv819.tr.3, 1
  %160 = sext i32 %159 to i64
  %gep757.3 = getelementptr float, ptr %invariant.gep756, i64 %160
  %161 = load float, ptr %gep757.3, align 4, !tbaa !9
  %162 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.next820.2
  store float %161, ptr %162, align 4, !tbaa !9
  %indvars.iv.next820.3 = add nuw nsw i64 %indvars.iv819, 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_edge761.loopexit.unr-lcssa, label %.lr.ph760, !llvm.loop !13

._crit_edge761.loopexit.unr-lcssa:                ; preds = %.lr.ph760, %.lr.ph760.preheader
  %indvars.iv819.unr = phi i64 [ 2, %.lr.ph760.preheader ], [ %indvars.iv.next820.3, %.lr.ph760 ]
  %lcmp.mod908.not = icmp eq i64 %xtraiter907, 0
  br i1 %lcmp.mod908.not, label %._crit_edge761, label %.lr.ph760.epil

.lr.ph760.epil:                                   ; preds = %._crit_edge761.loopexit.unr-lcssa, %.lr.ph760.epil
  %indvars.iv819.epil = phi i64 [ %indvars.iv.next820.epil, %.lr.ph760.epil ], [ %indvars.iv819.unr, %._crit_edge761.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph760.epil ], [ 0, %._crit_edge761.loopexit.unr-lcssa ]
  %indvars.iv819.tr.epil = trunc i64 %indvars.iv819.epil to i32
  %163 = shl i32 %indvars.iv819.tr.epil, 1
  %164 = sext i32 %163 to i64
  %gep757.epil = getelementptr float, ptr %invariant.gep756, i64 %164
  %165 = load float, ptr %gep757.epil, align 4, !tbaa !9
  %166 = getelementptr inbounds float, ptr %24, i64 %indvars.iv819.epil
  store float %165, ptr %166, align 4, !tbaa !9
  %indvars.iv.next820.epil = add nuw nsw i64 %indvars.iv819.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter907
  br i1 %epil.iter.cmp.not, label %._crit_edge761, label %.lr.ph760.epil, !llvm.loop !14

._crit_edge761:                                   ; preds = %._crit_edge761.loopexit.unr-lcssa, %.lr.ph760.epil, %.preheader
  call void @slasrt_(ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %15) #5
  %167 = load i32, ptr %0, align 4, !tbaa !5
  %168 = shl i32 %167, 1
  %169 = sext i32 %168 to i64
  %170 = getelementptr float, ptr %24, i64 %169
  %171 = getelementptr i8, ptr %170, i64 -4
  store float %138, ptr %171, align 4, !tbaa !9
  br label %.loopexit

172:                                              ; preds = %137
  %173 = fadd float %127, %138
  %174 = fcmp oeq float %173, 0.000000e+00
  br i1 %174, label %175, label %176

175:                                              ; preds = %172
  store float 0.000000e+00, ptr %131, align 4, !tbaa !9
  br label %.loopexit

176:                                              ; preds = %172
  store i32 0, ptr %4, align 4, !tbaa !5
  %.not762 = icmp eq i32 %29, 0
  br i1 %.not762, label %._crit_edge631, label %.lr.ph630

.lr.ph630:                                        ; preds = %176, %.lr.ph630
  %indvars.iv771 = phi i64 [ %indvars.iv.next772, %.lr.ph630 ], [ %106, %176 ]
  %.idx = shl i64 %indvars.iv771, 3
  %177 = getelementptr i8, ptr %24, i64 %.idx
  store float 0.000000e+00, ptr %177, align 4, !tbaa !9
  %178 = getelementptr inbounds float, ptr %24, i64 %indvars.iv771
  %179 = load float, ptr %178, align 4, !tbaa !9
  %180 = getelementptr i8, ptr %177, i64 -4
  store float %179, ptr %180, align 4, !tbaa !9
  %181 = getelementptr i8, ptr %177, i64 -8
  store float 0.000000e+00, ptr %181, align 4, !tbaa !9
  %182 = getelementptr i8, ptr %178, i64 -4
  %183 = load float, ptr %182, align 4, !tbaa !9
  %184 = getelementptr i8, ptr %177, i64 -12
  store float %183, ptr %184, align 4, !tbaa !9
  %indvars.iv.next772 = add nsw i64 %indvars.iv771, -2
  %185 = trunc nuw i64 %indvars.iv771 to i32
  %186 = icmp sgt i32 %185, 3
  br i1 %186, label %.lr.ph630, label %._crit_edge631, !llvm.loop !16

._crit_edge631:                                   ; preds = %.lr.ph630, %176
  store i32 1, ptr %16, align 4, !tbaa !5
  store i32 %29, ptr %17, align 4, !tbaa !5
  %187 = load float, ptr %1, align 4, !tbaa !9
  %188 = fmul float %187, 1.500000e+00
  %189 = shl i32 %29, 2
  %190 = sext i32 %189 to i64
  %191 = getelementptr float, ptr %24, i64 %190
  %192 = getelementptr i8, ptr %191, i64 -12
  %193 = load float, ptr %192, align 4, !tbaa !9
  %194 = fcmp olt float %188, %193
  br i1 %194, label %.lr.ph635.preheader, label %.loopexit614

.lr.ph635.preheader:                              ; preds = %._crit_edge631
  %195 = add i32 %189, 4
  br label %.lr.ph635

.lr.ph635:                                        ; preds = %.lr.ph635.preheader, %.lr.ph635
  %indvars.iv774 = phi i64 [ 4, %.lr.ph635.preheader ], [ %indvars.iv.next775, %.lr.ph635 ]
  %196 = getelementptr float, ptr %24, i64 %indvars.iv774
  %197 = getelementptr i8, ptr %196, i64 -12
  %198 = load float, ptr %197, align 4, !tbaa !9
  %199 = trunc nuw nsw i64 %indvars.iv774 to i32
  %200 = sub i32 %195, %199
  %201 = sext i32 %200 to i64
  %202 = getelementptr float, ptr %24, i64 %201
  %203 = getelementptr i8, ptr %202, i64 -12
  %204 = load float, ptr %203, align 4, !tbaa !9
  store float %204, ptr %197, align 4, !tbaa !9
  store float %198, ptr %203, align 4, !tbaa !9
  %205 = getelementptr i8, ptr %196, i64 -4
  %206 = load float, ptr %205, align 4, !tbaa !9
  %207 = getelementptr i8, ptr %202, i64 -20
  %208 = load float, ptr %207, align 4, !tbaa !9
  store float %208, ptr %205, align 4, !tbaa !9
  store float %206, ptr %207, align 4, !tbaa !9
  %indvars.iv.next775 = add nuw nsw i64 %indvars.iv774, 4
  %.not595 = icmp ugt i64 %indvars.iv.next775, %106
  br i1 %.not595, label %.loopexit614.loopexit, label %.lr.ph635, !llvm.loop !17

.loopexit614.loopexit:                            ; preds = %.lr.ph635
  %invariant.gep.phi.trans.insert = getelementptr i8, ptr %1, i64 -16
  %gep.phi.trans.insert = getelementptr float, ptr %invariant.gep.phi.trans.insert, i64 %190
  %.pre = load float, ptr %gep.phi.trans.insert, align 4, !tbaa !9
  br label %.loopexit614

.loopexit614:                                     ; preds = %.loopexit614.loopexit, %._crit_edge631
  %209 = phi float [ %.pre, %.loopexit614.loopexit ], [ %193, %._crit_edge631 ]
  store i32 0, ptr %20, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %1, i64 -16
  %210 = add i32 %189, -4
  %invariant.gep657 = getelementptr i8, ptr %1, i64 -12
  %.not604636 = icmp slt i32 %210, 4
  br i1 %.not604636, label %._crit_edge641.thread, label %.lr.ph640.preheader

._crit_edge641.thread:                            ; preds = %.loopexit614
  %211 = load float, ptr %1, align 4, !tbaa !9
  br label %._crit_edge655.thread

.lr.ph640.preheader:                              ; preds = %.loopexit614
  %212 = zext nneg i32 %210 to i64
  br label %.lr.ph640

.lr.ph640:                                        ; preds = %.lr.ph640.preheader, %227
  %indvars.iv777 = phi i64 [ %212, %.lr.ph640.preheader ], [ %indvars.iv.next778, %227 ]
  %.1562637 = phi float [ %209, %.lr.ph640.preheader ], [ %.2563, %227 ]
  %213 = getelementptr float, ptr %24, i64 %indvars.iv777
  %214 = getelementptr i8, ptr %213, i64 -4
  %215 = load float, ptr %214, align 4, !tbaa !9
  %216 = fmul float %28, %.1562637
  %217 = fcmp ugt float %215, %216
  br i1 %217, label %221, label %218

218:                                              ; preds = %.lr.ph640
  store float 0.000000e+00, ptr %214, align 4, !tbaa !9
  %219 = getelementptr i8, ptr %213, i64 -12
  %220 = load float, ptr %219, align 4, !tbaa !9
  br label %227

221:                                              ; preds = %.lr.ph640
  %222 = getelementptr i8, ptr %213, i64 -12
  %223 = load float, ptr %222, align 4, !tbaa !9
  %224 = fadd float %.1562637, %215
  %225 = fdiv float %.1562637, %224
  %226 = fmul float %225, %223
  br label %227

227:                                              ; preds = %218, %221
  %.2563 = phi float [ %220, %218 ], [ %226, %221 ]
  %indvars.iv.next778 = add nsw i64 %indvars.iv777, -4
  %.not604 = icmp slt i64 %indvars.iv777, 8
  br i1 %.not604, label %._crit_edge641, label %.lr.ph640, !llvm.loop !18

._crit_edge641:                                   ; preds = %227
  %228 = load float, ptr %1, align 4, !tbaa !9
  br i1 %.not604636, label %._crit_edge655.thread, label %.lr.ph647

.lr.ph647:                                        ; preds = %._crit_edge641
  %229 = zext nneg i32 %210 to i64
  br label %230

230:                                              ; preds = %.lr.ph647, %257
  %indvars.iv780 = phi i64 [ 4, %.lr.ph647 ], [ %indvars.iv.next781, %257 ]
  %.3564643 = phi float [ %228, %.lr.ph647 ], [ %.4565, %257 ]
  %231 = getelementptr float, ptr %24, i64 %indvars.iv780
  %232 = getelementptr i8, ptr %231, i64 -4
  %233 = load float, ptr %232, align 4, !tbaa !9
  %234 = fadd float %.3564643, %233
  %235 = getelementptr i8, ptr %231, i64 -8
  store float %234, ptr %235, align 4, !tbaa !9
  %236 = fmul float %28, %.3564643
  %237 = fcmp ugt float %233, %236
  br i1 %237, label %241, label %238

238:                                              ; preds = %230
  store float %.3564643, ptr %235, align 4, !tbaa !9
  store <2 x float> zeroinitializer, ptr %232, align 4, !tbaa !9
  %239 = getelementptr i8, ptr %231, i64 4
  %240 = load float, ptr %239, align 4, !tbaa !9
  br label %257

241:                                              ; preds = %230
  %242 = getelementptr i8, ptr %231, i64 4
  %243 = load float, ptr %242, align 4, !tbaa !9
  %244 = fmul float %26, %243
  %245 = fcmp olt float %244, %234
  %246 = fmul float %26, %234
  %247 = fcmp olt float %246, %243
  %or.cond = and i1 %247, %245
  br i1 %or.cond, label %248, label %252

248:                                              ; preds = %241
  %249 = fdiv float %243, %234
  %250 = fmul float %233, %249
  store float %250, ptr %231, align 4, !tbaa !9
  %251 = fmul float %.3564643, %249
  br label %257

252:                                              ; preds = %241
  %253 = fdiv float %233, %234
  %254 = fmul float %253, %243
  store float %254, ptr %231, align 4, !tbaa !9
  %255 = fdiv float %.3564643, %234
  %256 = fmul float %255, %243
  br label %257

257:                                              ; preds = %248, %252, %238
  %.4565 = phi float [ %240, %238 ], [ %251, %248 ], [ %256, %252 ]
  %indvars.iv.next781 = add nuw nsw i64 %indvars.iv780, 4
  %.not605 = icmp ugt i64 %indvars.iv.next781, %229
  br i1 %.not605, label %._crit_edge648, label %230, !llvm.loop !19

._crit_edge655.thread:                            ; preds = %._crit_edge641, %._crit_edge641.thread
  %.3564.lcssa.ph = phi float [ %211, %._crit_edge641.thread ], [ %228, %._crit_edge641 ]
  %gep658835 = getelementptr float, ptr %invariant.gep657, i64 %190
  store float %.3564.lcssa.ph, ptr %gep658835, align 4, !tbaa !9
  br label %._crit_edge641.1.thread

._crit_edge648:                                   ; preds = %257
  %gep658 = getelementptr float, ptr %invariant.gep657, i64 %190
  store float %.4565, ptr %gep658, align 4, !tbaa !9
  %258 = add i32 %189, -3
  br i1 %.not604636, label %._crit_edge641.1.thread, label %.lr.ph640.preheader.1

.lr.ph640.preheader.1:                            ; preds = %._crit_edge648
  %259 = or disjoint i32 %189, 1
  %260 = sext i32 %259 to i64
  %gep.1 = getelementptr float, ptr %invariant.gep, i64 %260
  %261 = load float, ptr %gep.1, align 4, !tbaa !9
  %262 = sext i32 %258 to i64
  br label %.lr.ph640.1

.lr.ph640.1:                                      ; preds = %277, %.lr.ph640.preheader.1
  %indvars.iv777.1 = phi i64 [ %262, %.lr.ph640.preheader.1 ], [ %indvars.iv.next778.1, %277 ]
  %.1562637.1 = phi float [ %261, %.lr.ph640.preheader.1 ], [ %.2563.1, %277 ]
  %263 = getelementptr float, ptr %24, i64 %indvars.iv777.1
  %264 = getelementptr i8, ptr %263, i64 -4
  %265 = load float, ptr %264, align 4, !tbaa !9
  %266 = fmul float %28, %.1562637.1
  %267 = fcmp ugt float %265, %266
  br i1 %267, label %271, label %268

268:                                              ; preds = %.lr.ph640.1
  store float 0.000000e+00, ptr %264, align 4, !tbaa !9
  %269 = getelementptr i8, ptr %263, i64 -12
  %270 = load float, ptr %269, align 4, !tbaa !9
  br label %277

271:                                              ; preds = %.lr.ph640.1
  %272 = getelementptr i8, ptr %263, i64 -12
  %273 = load float, ptr %272, align 4, !tbaa !9
  %274 = fadd float %.1562637.1, %265
  %275 = fdiv float %.1562637.1, %274
  %276 = fmul float %275, %273
  br label %277

277:                                              ; preds = %271, %268
  %.2563.1 = phi float [ %270, %268 ], [ %276, %271 ]
  %indvars.iv.next778.1 = add nsw i64 %indvars.iv777.1, -4
  %.not604.1 = icmp slt i64 %indvars.iv777.1, 9
  br i1 %.not604.1, label %._crit_edge641.1, label %.lr.ph640.1, !llvm.loop !18

._crit_edge641.1.thread:                          ; preds = %._crit_edge655.thread, %._crit_edge648
  %278 = getelementptr i8, ptr %1, i64 4
  %279 = load float, ptr %278, align 4, !tbaa !9
  br label %._crit_edge648.1.thread

._crit_edge641.1:                                 ; preds = %277
  %280 = getelementptr i8, ptr %1, i64 4
  %281 = load float, ptr %280, align 4, !tbaa !9
  br i1 %.not604636, label %._crit_edge648.1.thread, label %.lr.ph647.1

.lr.ph647.1:                                      ; preds = %._crit_edge641.1
  %282 = sext i32 %258 to i64
  br label %283

283:                                              ; preds = %312, %.lr.ph647.1
  %indvars.iv780.1 = phi i64 [ 5, %.lr.ph647.1 ], [ %indvars.iv.next781.1, %312 ]
  %.3564643.1 = phi float [ %281, %.lr.ph647.1 ], [ %.4565.1, %312 ]
  %284 = getelementptr float, ptr %24, i64 %indvars.iv780.1
  %285 = getelementptr i8, ptr %284, i64 -4
  %286 = load float, ptr %285, align 4, !tbaa !9
  %287 = fadd float %.3564643.1, %286
  %288 = getelementptr float, ptr %24, i64 %indvars.iv780.1
  %289 = getelementptr i8, ptr %288, i64 -8
  %290 = getelementptr i8, ptr %288, i64 -16
  store float %287, ptr %290, align 4, !tbaa !9
  %291 = fmul float %28, %.3564643.1
  %292 = fcmp ugt float %286, %291
  br i1 %292, label %296, label %293

293:                                              ; preds = %283
  store float %.3564643.1, ptr %290, align 4, !tbaa !9
  store <2 x float> zeroinitializer, ptr %289, align 4, !tbaa !9
  %294 = getelementptr i8, ptr %284, i64 4
  %295 = load float, ptr %294, align 4, !tbaa !9
  br label %312

296:                                              ; preds = %283
  %297 = getelementptr i8, ptr %284, i64 4
  %298 = load float, ptr %297, align 4, !tbaa !9
  %299 = fmul float %26, %298
  %300 = fcmp olt float %299, %287
  %301 = fmul float %26, %287
  %302 = fcmp olt float %301, %298
  %or.cond.1 = and i1 %302, %300
  br i1 %or.cond.1, label %308, label %303

303:                                              ; preds = %296
  %304 = fdiv float %286, %287
  %305 = fmul float %304, %298
  store float %305, ptr %289, align 4, !tbaa !9
  %306 = fdiv float %.3564643.1, %287
  %307 = fmul float %306, %298
  br label %312

308:                                              ; preds = %296
  %309 = fdiv float %298, %287
  %310 = fmul float %286, %309
  store float %310, ptr %289, align 4, !tbaa !9
  %311 = fmul float %.3564643.1, %309
  br label %312

312:                                              ; preds = %308, %303, %293
  %.4565.1 = phi float [ %295, %293 ], [ %311, %308 ], [ %307, %303 ]
  %indvars.iv.next781.1 = add nuw nsw i64 %indvars.iv780.1, 4
  %.not605.1 = icmp sgt i64 %indvars.iv.next781.1, %282
  br i1 %.not605.1, label %._crit_edge648.1, label %283, !llvm.loop !19

._crit_edge648.1.thread:                          ; preds = %._crit_edge641.1.thread, %._crit_edge641.1
  %.3564.lcssa.1.ph = phi float [ %279, %._crit_edge641.1.thread ], [ %281, %._crit_edge641.1 ]
  %313 = sext i32 %189 to i64
  %314 = getelementptr float, ptr %invariant.gep657, i64 %313
  %gep658.1838 = getelementptr i8, ptr %314, i64 -4
  store float %.3564.lcssa.1.ph, ptr %gep658.1838, align 4, !tbaa !9
  %315 = load float, ptr %1, align 4, !tbaa !9
  br label %.lr.ph725.preheader

._crit_edge648.1:                                 ; preds = %312
  %316 = sext i32 %189 to i64
  %317 = getelementptr float, ptr %invariant.gep657, i64 %316
  %gep658.1 = getelementptr i8, ptr %317, i64 -4
  store float %.4565.1, ptr %gep658.1, align 4, !tbaa !9
  %318 = load float, ptr %1, align 4, !tbaa !9
  %.not606651.1 = icmp slt i32 %189, 8
  br i1 %.not606651.1, label %.lr.ph725.preheader, label %.lr.ph654.preheader.1

.lr.ph654.preheader.1:                            ; preds = %._crit_edge648.1
  %319 = add nsw i32 %189, -3
  %320 = zext nneg i32 %319 to i64
  br label %.lr.ph654.1

.lr.ph654.1:                                      ; preds = %.lr.ph654.1, %.lr.ph654.preheader.1
  %indvars.iv783.1 = phi i64 [ 5, %.lr.ph654.preheader.1 ], [ %indvars.iv.next784.1, %.lr.ph654.1 ]
  %321 = phi float [ %318, %.lr.ph654.preheader.1 ], [ %325, %.lr.ph654.1 ]
  %322 = getelementptr inbounds float, ptr %24, i64 %indvars.iv783.1
  %323 = load float, ptr %322, align 4, !tbaa !9
  %324 = fcmp oge float %321, %323
  %325 = select i1 %324, float %321, float %323
  %indvars.iv.next784.1 = add nuw nsw i64 %indvars.iv783.1, 4
  %.not606.1 = icmp ugt i64 %indvars.iv.next784.1, %320
  br i1 %.not606.1, label %.lr.ph725.preheader, label %.lr.ph654.1, !llvm.loop !20

.lr.ph725.preheader:                              ; preds = %.lr.ph654.1, %._crit_edge648.1, %._crit_edge648.1.thread
  %.lcssa656665.1 = phi float [ %318, %._crit_edge648.1 ], [ %315, %._crit_edge648.1.thread ], [ %325, %.lr.ph654.1 ]
  store i32 0, ptr %20, align 4, !tbaa !5
  store float %.lcssa656665.1, ptr %8, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !5
  store float 0.000000e+00, ptr %9, align 4, !tbaa !9
  store float 0.000000e+00, ptr %10, align 4, !tbaa !9
  store float 0.000000e+00, ptr %19, align 4, !tbaa !9
  store float 0.000000e+00, ptr %21, align 4, !tbaa !9
  store float 0.000000e+00, ptr %22, align 4, !tbaa !9
  store float 0.000000e+00, ptr %11, align 4, !tbaa !9
  store float 0.000000e+00, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %7, align 4, !tbaa !5
  store i32 0, ptr %12, align 4, !tbaa !5
  store i32 %108, ptr %6, align 4, !tbaa !5
  %invariant.gep714 = getelementptr i8, ptr %1, i64 -8
  %invariant.gep716 = getelementptr i8, ptr %1, i64 -24
  %326 = add nuw i32 %29, 1
  br label %.lr.ph725

.lr.ph725:                                        ; preds = %.lr.ph725.preheader, %606
  %327 = phi i32 [ %438, %606 ], [ %29, %.lr.ph725.preheader ]
  %.0536723 = phi i32 [ %607, %606 ], [ 1, %.lr.ph725.preheader ]
  %328 = icmp slt i32 %327, 1
  br i1 %328, label %608, label %329

329:                                              ; preds = %.lr.ph725
  store float 0.000000e+00, ptr %13, align 4, !tbaa !9
  %330 = load i32, ptr %0, align 4, !tbaa !5
  %331 = icmp eq i32 %327, %330
  br i1 %331, label %.thread, label %332

.thread:                                          ; preds = %329
  store float 0.000000e+00, ptr %14, align 4, !tbaa !9
  br label %._crit_edge827

332:                                              ; preds = %329
  %333 = shl i32 %327, 2
  %334 = sext i32 %333 to i64
  %gep715 = getelementptr float, ptr %invariant.gep714, i64 %334
  %335 = load float, ptr %gep715, align 4, !tbaa !9
  %336 = fneg float %335
  store float %336, ptr %14, align 4, !tbaa !9
  %337 = fcmp ogt float %335, 0.000000e+00
  br i1 %337, label %338, label %._crit_edge827

338:                                              ; preds = %332
  store i32 1, ptr %2, align 4, !tbaa !5
  br label %.loopexit

._crit_edge827:                                   ; preds = %332, %.thread
  %.pre-phi829 = shl i32 %327, 2
  %.pre-phi831 = sext i32 %.pre-phi829 to i64
  %gep719 = getelementptr float, ptr %invariant.gep, i64 %.pre-phi831
  %339 = load float, ptr %gep719, align 4, !tbaa !9
  store float %339, ptr %8, align 4, !tbaa !9
  %340 = icmp sgt i32 %.pre-phi829, 7
  br i1 %340, label %.lr.ph673.preheader, label %._crit_edge674

.lr.ph673.preheader:                              ; preds = %._crit_edge827
  %341 = zext nneg i32 %.pre-phi829 to i64
  br label %.lr.ph673

.lr.ph673:                                        ; preds = %.lr.ph673.preheader, %357
  %indvars.iv786 = phi i64 [ %341, %.lr.ph673.preheader ], [ %indvars.iv.next787, %357 ]
  %.0569669 = phi float [ %339, %.lr.ph673.preheader ], [ %.1570, %357 ]
  %.0573668 = phi float [ 0.000000e+00, %.lr.ph673.preheader ], [ %.1574, %357 ]
  %342 = phi float [ %339, %.lr.ph673.preheader ], [ %362, %357 ]
  %343 = getelementptr float, ptr %24, i64 %indvars.iv786
  %344 = getelementptr i8, ptr %343, i64 -20
  %345 = load float, ptr %344, align 4, !tbaa !9
  %346 = fcmp ugt float %345, 0.000000e+00
  br i1 %346, label %347, label %._crit_edge674.loopexit.split.loop.exit855

347:                                              ; preds = %.lr.ph673
  %348 = fmul float %.0573668, 4.000000e+00
  %349 = fcmp ult float %.0569669, %348
  br i1 %349, label %357, label %350

350:                                              ; preds = %347
  %351 = getelementptr i8, ptr %343, i64 -12
  %352 = load float, ptr %351, align 4, !tbaa !9
  %353 = fcmp ole float %.0569669, %352
  %354 = select i1 %353, float %.0569669, float %352
  %355 = fcmp oge float %.0573668, %345
  %356 = select i1 %355, float %.0573668, float %345
  br label %357

357:                                              ; preds = %350, %347
  %.1574 = phi float [ %356, %350 ], [ %.0573668, %347 ]
  %.1570 = phi float [ %354, %350 ], [ %.0569669, %347 ]
  %358 = getelementptr i8, ptr %343, i64 -28
  %359 = load float, ptr %358, align 4, !tbaa !9
  %360 = fadd float %345, %359
  %361 = fcmp oge float %342, %360
  %362 = select i1 %361, float %342, float %360
  store float %362, ptr %8, align 4, !tbaa !9
  %indvars.iv.next787 = add nsw i64 %indvars.iv786, -4
  %363 = icmp sgt i64 %indvars.iv786, 11
  br i1 %363, label %.lr.ph673, label %._crit_edge674, !llvm.loop !21

._crit_edge674.loopexit.split.loop.exit855:       ; preds = %.lr.ph673
  %364 = trunc nuw nsw i64 %indvars.iv786 to i32
  br label %._crit_edge674

._crit_edge674:                                   ; preds = %357, %._crit_edge674.loopexit.split.loop.exit855, %._crit_edge827
  %.0573.lcssa = phi float [ 0.000000e+00, %._crit_edge827 ], [ %.0573668, %._crit_edge674.loopexit.split.loop.exit855 ], [ %.1574, %357 ]
  %.0569.lcssa = phi float [ %339, %._crit_edge827 ], [ %.0569669, %._crit_edge674.loopexit.split.loop.exit855 ], [ %.1570, %357 ]
  %.5 = phi i32 [ 4, %._crit_edge827 ], [ %364, %._crit_edge674.loopexit.split.loop.exit855 ], [ 4, %357 ]
  %365 = lshr i32 %.5, 2
  store i32 %365, ptr %16, align 4, !tbaa !5
  store i32 0, ptr %20, align 4, !tbaa !5
  %366 = sub nsw i32 %327, %365
  %367 = icmp sgt i32 %366, 1
  br i1 %367, label %368, label %.loopexit613

368:                                              ; preds = %._crit_edge674
  %369 = and i32 %.5, 2147483644
  %370 = zext nneg i32 %369 to i64
  %gep721 = getelementptr float, ptr %invariant.gep, i64 %370
  %371 = load float, ptr %gep721, align 4, !tbaa !9
  %372 = add nsw i32 %.pre-phi829, -3
  %.not597682.not = icmp slt i32 %369, %372
  br i1 %.not597682.not, label %.lr.ph688.preheader, label %._crit_edge689

.lr.ph688.preheader:                              ; preds = %368
  %373 = and i32 %.5, 2147483644
  %374 = or disjoint i32 %373, 1
  %375 = zext nneg i32 %374 to i64
  br label %.lr.ph688

.lr.ph688:                                        ; preds = %.lr.ph688.preheader, %.lr.ph688
  %indvars.iv789 = phi i64 [ %375, %.lr.ph688.preheader ], [ %indvars.iv.next790, %.lr.ph688 ]
  %.0686 = phi float [ %371, %.lr.ph688.preheader ], [ %382, %.lr.ph688 ]
  %.0537685 = phi float [ %371, %.lr.ph688.preheader ], [ %.1538, %.lr.ph688 ]
  %.0571683 = phi i32 [ %365, %.lr.ph688.preheader ], [ %.1572, %.lr.ph688 ]
  %376 = getelementptr inbounds float, ptr %24, i64 %indvars.iv789
  %377 = load float, ptr %376, align 4, !tbaa !9
  %378 = getelementptr i8, ptr %376, i64 -8
  %379 = load float, ptr %378, align 4, !tbaa !9
  %380 = fadd float %.0686, %379
  %381 = fdiv float %.0686, %380
  %382 = fmul float %377, %381
  %383 = fcmp ugt float %382, %.0537685
  %384 = add nuw nsw i64 %indvars.iv789, 3
  %385 = lshr i64 %384, 2
  %386 = trunc nuw nsw i64 %385 to i32
  %.1572 = select i1 %383, i32 %.0571683, i32 %386
  %.1538 = select i1 %383, float %.0537685, float %382
  %indvars.iv.next790 = add nuw nsw i64 %indvars.iv789, 4
  %387 = trunc nuw i64 %indvars.iv.next790 to i32
  %.not597 = icmp slt i32 %372, %387
  br i1 %.not597, label %._crit_edge689.loopexit, label %.lr.ph688, !llvm.loop !22

._crit_edge689.loopexit:                          ; preds = %.lr.ph688
  %.pre826 = sub nsw i32 %327, %.1572
  br label %._crit_edge689

._crit_edge689:                                   ; preds = %._crit_edge689.loopexit, %368
  %.pre-phi = phi i32 [ %.pre826, %._crit_edge689.loopexit ], [ %366, %368 ]
  %.0571.lcssa = phi i32 [ %.1572, %._crit_edge689.loopexit ], [ %365, %368 ]
  %.0537.lcssa = phi float [ %.1538, %._crit_edge689.loopexit ], [ %371, %368 ]
  %388 = sub nsw i32 %.0571.lcssa, %365
  %389 = shl i32 %388, 1
  %390 = icmp sge i32 %389, %.pre-phi
  %391 = fmul float %339, 5.000000e-01
  %392 = fcmp ugt float %.0537.lcssa, %391
  %or.cond611 = select i1 %390, i1 true, i1 %392
  br i1 %or.cond611, label %.loopexit613, label %393

393:                                              ; preds = %._crit_edge689
  %394 = add nuw nsw i32 %365, %327
  store i32 2, ptr %20, align 4, !tbaa !5
  %395 = shl nuw i32 %394, 1
  %396 = add i32 %395, -2
  %.not598692 = icmp sgt i32 %369, %396
  br i1 %.not598692, label %.loopexit613, label %.lr.ph695.preheader

.lr.ph695.preheader:                              ; preds = %393
  %397 = shl i32 %394, 2
  %398 = and i32 %.5, 2147483644
  %399 = zext nneg i32 %398 to i64
  %400 = sext i32 %397 to i64
  %401 = sext i32 %396 to i64
  br label %.lr.ph695

.lr.ph695:                                        ; preds = %.lr.ph695.preheader, %.lr.ph695
  %indvars.iv792 = phi i64 [ %399, %.lr.ph695.preheader ], [ %indvars.iv.next793, %.lr.ph695 ]
  %402 = getelementptr float, ptr %24, i64 %indvars.iv792
  %403 = getelementptr i8, ptr %402, i64 -12
  %404 = load float, ptr %403, align 4, !tbaa !9
  %405 = sub nsw i64 %400, %indvars.iv792
  %406 = getelementptr float, ptr %24, i64 %405
  %407 = getelementptr i8, ptr %406, i64 -12
  %408 = load float, ptr %407, align 4, !tbaa !9
  store float %408, ptr %403, align 4, !tbaa !9
  store float %404, ptr %407, align 4, !tbaa !9
  %409 = getelementptr i8, ptr %402, i64 -8
  %410 = load float, ptr %409, align 4, !tbaa !9
  %411 = getelementptr i8, ptr %406, i64 -8
  %412 = load float, ptr %411, align 4, !tbaa !9
  store float %412, ptr %409, align 4, !tbaa !9
  store float %410, ptr %411, align 4, !tbaa !9
  %413 = getelementptr i8, ptr %402, i64 -4
  %414 = load float, ptr %413, align 4, !tbaa !9
  %415 = getelementptr i8, ptr %406, i64 -20
  %416 = load float, ptr %415, align 4, !tbaa !9
  store float %416, ptr %413, align 4, !tbaa !9
  store float %414, ptr %415, align 4, !tbaa !9
  %417 = load float, ptr %402, align 4, !tbaa !9
  %418 = getelementptr i8, ptr %406, i64 -16
  %419 = load float, ptr %418, align 4, !tbaa !9
  store float %419, ptr %402, align 4, !tbaa !9
  store float %417, ptr %418, align 4, !tbaa !9
  %indvars.iv.next793 = add nuw nsw i64 %indvars.iv792, 4
  %.not598 = icmp sgt i64 %indvars.iv.next793, %401
  br i1 %.not598, label %.loopexit613, label %.lr.ph695, !llvm.loop !23

.loopexit613:                                     ; preds = %.lr.ph695, %393, %._crit_edge689, %._crit_edge674
  %420 = fpext float %.0569.lcssa to double
  %421 = call double @sqrt(double noundef %420) #5
  %422 = fpext float %.0573.lcssa to double
  %423 = call double @sqrt(double noundef %422) #5
  %424 = fmul double %421, -2.000000e+00
  %425 = call double @llvm.fmuladd.f64(double %424, double %423, double %420)
  %426 = fptrunc double %425 to float
  %427 = fcmp ole float %426, 0.000000e+00
  %.neg = fneg float %426
  %428 = select i1 %427, float -0.000000e+00, float %.neg
  store float %428, ptr %5, align 4, !tbaa !9
  %429 = load i32, ptr %17, align 4, !tbaa !5
  %430 = load i32, ptr %16, align 4, !tbaa !5
  %431 = sub nsw i32 %429, %430
  %432 = mul i32 %431, 100
  %433 = add i32 %432, 100
  %.not599708 = icmp slt i32 %433, 1
  br i1 %.not599708, label %._crit_edge712, label %.lr.ph711.preheader

.lr.ph711.preheader:                              ; preds = %.loopexit613
  %434 = mul i32 %429, 100
  %435 = add i32 %434, 101
  %.neg832 = mul i32 %430, -100
  %436 = add i32 %.neg832, %435
  br label %.lr.ph711

.lr.ph711:                                        ; preds = %.lr.ph711.preheader, %512
  %.0535709 = phi i32 [ %513, %512 ], [ 1, %.lr.ph711.preheader ]
  %437 = load i32, ptr %16, align 4, !tbaa !5
  %438 = load i32, ptr %17, align 4, !tbaa !5
  %439 = icmp sgt i32 %437, %438
  br i1 %439, label %606, label %440

440:                                              ; preds = %.lr.ph711
  call void @slasq3_(ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %1, ptr noundef nonnull %20, ptr noundef nonnull %5, ptr noundef nonnull %14, ptr noundef nonnull %13, ptr noundef nonnull %8, ptr noundef nonnull %12, ptr noundef nonnull %7, ptr noundef nonnull %6, ptr noundef nonnull %4, ptr noundef nonnull %18, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %19, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %11, ptr noundef nonnull %23) #5
  %441 = load i32, ptr %20, align 4, !tbaa !5
  %442 = sub nsw i32 1, %441
  store i32 %442, ptr %20, align 4, !tbaa !5
  %443 = icmp eq i32 %441, 1
  br i1 %443, label %444, label %512

444:                                              ; preds = %440
  %445 = load i32, ptr %17, align 4, !tbaa !5
  %446 = load i32, ptr %16, align 4, !tbaa !5
  %447 = sub nsw i32 %445, %446
  %448 = icmp sgt i32 %447, 2
  br i1 %448, label %449, label %512

449:                                              ; preds = %444
  %450 = shl nsw i32 %445, 2
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds float, ptr %24, i64 %451
  %453 = load float, ptr %452, align 4, !tbaa !9
  %454 = load float, ptr %8, align 4, !tbaa !9
  %455 = fmul float %28, %454
  %456 = fcmp ugt float %453, %455
  br i1 %456, label %457, label %463

457:                                              ; preds = %449
  %458 = getelementptr i8, ptr %452, i64 -4
  %459 = load float, ptr %458, align 4, !tbaa !9
  %460 = load float, ptr %14, align 4, !tbaa !9
  %461 = fmul float %28, %460
  %462 = fcmp ugt float %459, %461
  br i1 %462, label %512, label %463

463:                                              ; preds = %457, %449
  %464 = add nsw i32 %446, -1
  %465 = shl i32 %446, 2
  %466 = sext i32 %465 to i64
  %467 = getelementptr float, ptr %24, i64 %466
  %468 = getelementptr i8, ptr %467, i64 -12
  %469 = load float, ptr %468, align 4, !tbaa !9
  store float %469, ptr %8, align 4, !tbaa !9
  %470 = getelementptr i8, ptr %467, i64 -4
  %471 = load <2 x float>, ptr %470, align 4, !tbaa !9
  %472 = add i32 %450, -12
  %.not602697 = icmp sgt i32 %465, %472
  br i1 %.not602697, label %._crit_edge704, label %.lr.ph703

.lr.ph703:                                        ; preds = %463
  %473 = load float, ptr %14, align 4
  %474 = fmul float %28, %473
  %475 = fneg float %473
  %476 = sext i32 %472 to i64
  br label %477

477:                                              ; preds = %.lr.ph703, %506
  %indvars.iv795 = phi i64 [ %466, %.lr.ph703 ], [ %indvars.iv.next796, %506 ]
  %.0566698 = phi i32 [ %464, %.lr.ph703 ], [ %.1567, %506 ]
  %478 = phi float [ %469, %.lr.ph703 ], [ %507, %506 ]
  %479 = phi <2 x float> [ %471, %.lr.ph703 ], [ %508, %506 ]
  %480 = getelementptr inbounds float, ptr %24, i64 %indvars.iv795
  %481 = load float, ptr %480, align 4, !tbaa !9
  %482 = getelementptr i8, ptr %480, i64 -12
  %483 = load float, ptr %482, align 4, !tbaa !9
  %484 = fmul float %28, %483
  %485 = fcmp ugt float %481, %484
  br i1 %485, label %486, label %490

486:                                              ; preds = %477
  %487 = getelementptr i8, ptr %480, i64 -4
  %488 = load float, ptr %487, align 4, !tbaa !9
  %489 = fcmp ugt float %488, %474
  br i1 %489, label %497, label %490

490:                                              ; preds = %486, %477
  %491 = getelementptr i8, ptr %480, i64 -4
  store float %475, ptr %491, align 4, !tbaa !9
  %492 = trunc nsw i64 %indvars.iv795 to i32
  %493 = ashr exact i32 %492, 2
  store float 0.000000e+00, ptr %8, align 4, !tbaa !9
  %494 = or disjoint i64 %indvars.iv795, 3
  %495 = getelementptr inbounds float, ptr %24, i64 %494
  %496 = load <2 x float>, ptr %495, align 4, !tbaa !9
  br label %506

497:                                              ; preds = %486
  %498 = getelementptr float, ptr %1, i64 %indvars.iv795
  %499 = load float, ptr %498, align 4, !tbaa !9
  %500 = fcmp oge float %478, %499
  %501 = select i1 %500, float %478, float %499
  store float %501, ptr %8, align 4, !tbaa !9
  %502 = insertelement <2 x float> poison, float %488, i64 0
  %503 = insertelement <2 x float> %502, float %481, i64 1
  %504 = fcmp ole <2 x float> %479, %503
  %505 = select <2 x i1> %504, <2 x float> %479, <2 x float> %503
  br label %506

506:                                              ; preds = %490, %497
  %507 = phi float [ 0.000000e+00, %490 ], [ %501, %497 ]
  %.1567 = phi i32 [ %493, %490 ], [ %.0566698, %497 ]
  %508 = phi <2 x float> [ %496, %490 ], [ %505, %497 ]
  %indvars.iv.next796 = add nsw i64 %indvars.iv795, 4
  %.not602 = icmp sgt i64 %indvars.iv.next796, %476
  br i1 %.not602, label %._crit_edge704, label %477, !llvm.loop !24

._crit_edge704:                                   ; preds = %506, %463
  %.0566.lcssa = phi i32 [ %464, %463 ], [ %.1567, %506 ]
  %509 = phi <2 x float> [ %471, %463 ], [ %508, %506 ]
  %510 = getelementptr i8, ptr %452, i64 -4
  store <2 x float> %509, ptr %510, align 4, !tbaa !9
  %511 = add nsw i32 %.0566.lcssa, 1
  store i32 %511, ptr %16, align 4, !tbaa !5
  br label %512

512:                                              ; preds = %440, %444, %._crit_edge704, %457
  %513 = add nuw nsw i32 %.0535709, 1
  %exitcond.not = icmp eq i32 %513, %436
  br i1 %exitcond.not, label %._crit_edge712.loopexit, label %.lr.ph711, !llvm.loop !25

._crit_edge712.loopexit:                          ; preds = %512
  %.pre824 = load i32, ptr %16, align 4, !tbaa !5
  %.pre825 = load i32, ptr %17, align 4, !tbaa !5
  br label %._crit_edge712

._crit_edge712:                                   ; preds = %.loopexit613, %._crit_edge712.loopexit
  %514 = phi i32 [ %.pre825, %._crit_edge712.loopexit ], [ %429, %.loopexit613 ]
  %515 = phi i32 [ %.pre824, %._crit_edge712.loopexit ], [ %430, %.loopexit613 ]
  store i32 2, ptr %2, align 4, !tbaa !5
  %516 = shl i32 %515, 2
  %517 = sext i32 %516 to i64
  %518 = getelementptr float, ptr %24, i64 %517
  %519 = getelementptr i8, ptr %518, i64 -12
  %.not600.not727 = icmp slt i32 %515, %514
  %.promoted736 = load float, ptr %14, align 4, !tbaa !9
  %520 = sext i32 %515 to i64
  %wide.trip.count = sext i32 %514 to i64
  %521 = sub nsw i64 %wide.trip.count, %520
  %xtraiter = and i64 %521, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  %indvars.iv.next800.prol = add nsw i64 %520, 1
  %522 = trunc nsw i64 %indvars.iv.next800.prol to i32
  %523 = shl i32 %522, 2
  %524 = sext i32 %523 to i64
  %525 = getelementptr float, ptr %24, i64 %524
  %526 = getelementptr i8, ptr %525, i64 -20
  %527 = getelementptr i8, ptr %525, i64 -28
  %528 = getelementptr i8, ptr %525, i64 -12
  %529 = add nsw i64 %wide.trip.count, -1
  %530 = icmp eq i64 %529, %520
  br label %531

531:                                              ; preds = %.critedge, %._crit_edge712
  %532 = phi float [ %.promoted736, %._crit_edge712 ], [ %588, %.critedge ]
  %.0541 = phi i32 [ %515, %._crit_edge712 ], [ %.1542.lcssa, %.critedge ]
  %533 = load float, ptr %519, align 4, !tbaa !9
  %534 = fadd float %533, %532
  store float %534, ptr %519, align 4, !tbaa !9
  br i1 %.not600.not727, label %.lr.ph731.preheader, label %._crit_edge732

.lr.ph731.preheader:                              ; preds = %531
  br i1 %lcmp.mod.not, label %.lr.ph731.prol.loopexit, label %.lr.ph731.prol

.lr.ph731.prol:                                   ; preds = %.lr.ph731.preheader
  %535 = load float, ptr %526, align 4, !tbaa !9
  %536 = load float, ptr %527, align 4, !tbaa !9
  %537 = fdiv float %533, %536
  %538 = fmul float %535, %537
  store float %538, ptr %526, align 4, !tbaa !9
  %539 = load float, ptr %528, align 4, !tbaa !9
  %540 = fadd float %532, %539
  %541 = fadd float %535, %540
  %542 = fsub float %541, %538
  store float %542, ptr %528, align 4, !tbaa !9
  br label %.lr.ph731.prol.loopexit

.lr.ph731.prol.loopexit:                          ; preds = %.lr.ph731.prol, %.lr.ph731.preheader
  %indvars.iv799.unr = phi i64 [ %520, %.lr.ph731.preheader ], [ %indvars.iv.next800.prol, %.lr.ph731.prol ]
  %.0543729.unr = phi float [ %533, %.lr.ph731.preheader ], [ %539, %.lr.ph731.prol ]
  br i1 %530, label %._crit_edge732, label %.lr.ph731

.lr.ph731:                                        ; preds = %.lr.ph731.prol.loopexit, %.lr.ph731
  %indvars.iv799 = phi i64 [ %indvars.iv.next800.1, %.lr.ph731 ], [ %indvars.iv799.unr, %.lr.ph731.prol.loopexit ]
  %.0543729 = phi float [ %570, %.lr.ph731 ], [ %.0543729.unr, %.lr.ph731.prol.loopexit ]
  %543 = trunc i64 %indvars.iv799 to i32
  %544 = shl i32 %543, 2
  %545 = add i32 %544, 4
  %546 = sext i32 %545 to i64
  %547 = getelementptr float, ptr %24, i64 %546
  %548 = getelementptr i8, ptr %547, i64 -20
  %549 = load float, ptr %548, align 4, !tbaa !9
  %550 = getelementptr i8, ptr %547, i64 -28
  %551 = load float, ptr %550, align 4, !tbaa !9
  %552 = fdiv float %.0543729, %551
  %553 = fmul float %549, %552
  store float %553, ptr %548, align 4, !tbaa !9
  %554 = getelementptr i8, ptr %547, i64 -12
  %555 = load float, ptr %554, align 4, !tbaa !9
  %556 = fadd float %532, %555
  %557 = fadd float %549, %556
  %558 = fsub float %557, %553
  store float %558, ptr %554, align 4, !tbaa !9
  %indvars.iv.next800.1 = add nsw i64 %indvars.iv799, 2
  %559 = trunc nsw i64 %indvars.iv.next800.1 to i32
  %560 = shl i32 %559, 2
  %561 = sext i32 %560 to i64
  %562 = getelementptr float, ptr %24, i64 %561
  %563 = getelementptr i8, ptr %562, i64 -20
  %564 = load float, ptr %563, align 4, !tbaa !9
  %565 = getelementptr i8, ptr %562, i64 -28
  %566 = load float, ptr %565, align 4, !tbaa !9
  %567 = fdiv float %555, %566
  %568 = fmul float %564, %567
  store float %568, ptr %563, align 4, !tbaa !9
  %569 = getelementptr i8, ptr %562, i64 -12
  %570 = load float, ptr %569, align 4, !tbaa !9
  %571 = fadd float %532, %570
  %572 = fadd float %564, %571
  %573 = fsub float %572, %568
  store float %573, ptr %569, align 4, !tbaa !9
  %exitcond802.not.1 = icmp eq i64 %indvars.iv.next800.1, %wide.trip.count
  br i1 %exitcond802.not.1, label %._crit_edge732, label %.lr.ph731, !llvm.loop !26

._crit_edge732:                                   ; preds = %.lr.ph731.prol.loopexit, %.lr.ph731, %531
  %574 = icmp sgt i32 %.0541, 1
  br i1 %574, label %.preheader612.preheader, label %589

.preheader612.preheader:                          ; preds = %._crit_edge732
  %575 = zext nneg i32 %.0541 to i64
  br label %.preheader612

.preheader612:                                    ; preds = %.preheader612.preheader, %581
  %indvars.iv803 = phi i64 [ %575, %.preheader612.preheader ], [ %indvars.iv.next804, %581 ]
  %576 = trunc nuw nsw i64 %indvars.iv803 to i32
  %577 = shl i32 %576, 2
  %578 = sext i32 %577 to i64
  %gep734 = getelementptr float, ptr %invariant.gep716, i64 %578
  %579 = load float, ptr %gep734, align 4, !tbaa !9
  %580 = fcmp ult float %579, 0.000000e+00
  br i1 %580, label %.critedge, label %581

581:                                              ; preds = %.preheader612
  %indvars.iv.next804 = add nsw i64 %indvars.iv803, -1
  %582 = icmp sgt i64 %indvars.iv803, 2
  br i1 %582, label %.preheader612, label %.critedge, !llvm.loop !27

.critedge:                                        ; preds = %.preheader612, %581
  %.1542.lcssa = phi i32 [ %576, %.preheader612 ], [ 1, %581 ]
  %583 = shl i32 %.0541, 2
  %584 = add i32 %583, -5
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds float, ptr %24, i64 %585
  %587 = load float, ptr %586, align 4, !tbaa !9
  %588 = fneg float %587
  br label %531

589:                                              ; preds = %._crit_edge732
  %590 = load i32, ptr %0, align 4, !tbaa !5
  %.not601739 = icmp slt i32 %590, 1
  br i1 %.not601739, label %.loopexit, label %.lr.ph742.preheader

.lr.ph742.preheader:                              ; preds = %589
  %591 = sext i32 %514 to i64
  %592 = add nuw i32 %590, 1
  %wide.trip.count809 = zext i32 %592 to i64
  br label %.lr.ph742

.lr.ph742:                                        ; preds = %.lr.ph742.preheader, %604
  %indvars.iv806 = phi i64 [ 1, %.lr.ph742.preheader ], [ %indvars.iv.next807, %604 ]
  %593 = trunc nuw nsw i64 %indvars.iv806 to i32
  %594 = shl i32 %593, 2
  %595 = sext i32 %594 to i64
  %596 = getelementptr float, ptr %24, i64 %595
  %597 = getelementptr i8, ptr %596, i64 -12
  %598 = load float, ptr %597, align 4, !tbaa !9
  %sext = shl i64 %indvars.iv806, 33
  %599 = ashr exact i64 %sext, 30
  %gep738 = getelementptr i8, ptr %invariant.gep714, i64 %599
  store float %598, ptr %gep738, align 4, !tbaa !9
  %600 = icmp slt i64 %indvars.iv806, %591
  br i1 %600, label %601, label %604

601:                                              ; preds = %.lr.ph742
  %602 = getelementptr i8, ptr %596, i64 -4
  %603 = load float, ptr %602, align 4, !tbaa !9
  br label %604

604:                                              ; preds = %.lr.ph742, %601
  %.sink = phi float [ %603, %601 ], [ 0.000000e+00, %.lr.ph742 ]
  %.idx833 = shl i64 %indvars.iv806, 3
  %605 = getelementptr inbounds i8, ptr %24, i64 %.idx833
  store float %.sink, ptr %605, align 4
  %indvars.iv.next807 = add nuw nsw i64 %indvars.iv806, 1
  %exitcond810.not = icmp eq i64 %indvars.iv.next807, %wide.trip.count809
  br i1 %exitcond810.not, label %.loopexit, label %.lr.ph742, !llvm.loop !28

606:                                              ; preds = %.lr.ph711
  %607 = add nuw i32 %.0536723, 1
  %exitcond798 = icmp eq i32 %.0536723, %326
  br i1 %exitcond798, label %._crit_edge726, label %.lr.ph725, !llvm.loop !29

._crit_edge726:                                   ; preds = %606
  store i32 3, ptr %2, align 4, !tbaa !5
  br label %.loopexit

608:                                              ; preds = %.lr.ph725
  %609 = load i32, ptr %0, align 4, !tbaa !5
  %.not603745 = icmp slt i32 %609, 2
  br i1 %.not603745, label %._crit_edge749, label %.lr.ph748.preheader

.lr.ph748.preheader:                              ; preds = %608
  %610 = add nuw i32 %609, 1
  %wide.trip.count814 = zext i32 %610 to i64
  %611 = add nsw i64 %wide.trip.count814, -2
  %min.iters.check = icmp ult i64 %611, 17
  br i1 %min.iters.check, label %.lr.ph748.preheader882, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph748.preheader
  %612 = add nsw i64 %wide.trip.count814, -3
  %613 = trunc i64 %612 to i32
  %mul.result = shl i32 %613, 2
  %614 = icmp ugt i32 %mul.result, 2147483639
  %615 = icmp ugt i64 %612, 1073741823
  %616 = or i1 %614, %615
  br i1 %616, label %.lr.ph748.preheader882, label %vector.ph

vector.ph:                                        ; preds = %vector.scevcheck
  %n.mod.vf = and i64 %611, 7
  %617 = icmp eq i64 %n.mod.vf, 0
  %618 = select i1 %617, i64 8, i64 %n.mod.vf
  %n.vec = sub nsw i64 %611, %618
  %ind.end = add nsw i64 %n.vec, 2
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 2
  %619 = trunc i64 %index to i32
  %620 = shl i32 %619, 2
  %621 = or disjoint i32 %620, 8
  %622 = shl i32 %619, 2
  %623 = or disjoint i32 %622, 24
  %624 = sext i32 %621 to i64
  %625 = sext i32 %623 to i64
  %626 = getelementptr float, ptr %invariant.gep, i64 %624
  %627 = getelementptr float, ptr %invariant.gep, i64 %625
  %wide.vec = load <16 x float>, ptr %626, align 4, !tbaa !9
  %wide.vec880 = load <16 x float>, ptr %627, align 4, !tbaa !9
  %strided.vec = shufflevector <16 x float> %wide.vec, <16 x float> poison, <4 x i32> <i32 0, i32 4, i32 8, i32 12>
  %strided.vec881 = shufflevector <16 x float> %wide.vec880, <16 x float> poison, <4 x i32> <i32 0, i32 4, i32 8, i32 12>
  %628 = getelementptr inbounds float, ptr %24, i64 %offset.idx
  %629 = getelementptr inbounds i8, ptr %628, i64 16
  store <4 x float> %strided.vec, ptr %628, align 4, !tbaa !9
  store <4 x float> %strided.vec881, ptr %629, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %630 = icmp eq i64 %index.next, %n.vec
  br i1 %630, label %.lr.ph748.preheader882, label %vector.body, !llvm.loop !30

.lr.ph748.preheader882:                           ; preds = %vector.body, %vector.scevcheck, %.lr.ph748.preheader
  %indvars.iv811.ph = phi i64 [ 2, %vector.scevcheck ], [ 2, %.lr.ph748.preheader ], [ %ind.end, %vector.body ]
  %631 = sub nsw i64 %wide.trip.count814, %indvars.iv811.ph
  %632 = zext nneg i32 %609 to i64
  %633 = sub nsw i64 %632, %indvars.iv811.ph
  %xtraiter902 = and i64 %631, 3
  %lcmp.mod903.not = icmp eq i64 %xtraiter902, 0
  br i1 %lcmp.mod903.not, label %.lr.ph748.prol.loopexit, label %.lr.ph748.prol

.lr.ph748.prol:                                   ; preds = %.lr.ph748.preheader882, %.lr.ph748.prol
  %indvars.iv811.prol = phi i64 [ %indvars.iv.next812.prol, %.lr.ph748.prol ], [ %indvars.iv811.ph, %.lr.ph748.preheader882 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph748.prol ], [ 0, %.lr.ph748.preheader882 ]
  %634 = trunc nuw nsw i64 %indvars.iv811.prol to i32
  %635 = shl i32 %634, 2
  %636 = sext i32 %635 to i64
  %gep744.prol = getelementptr float, ptr %invariant.gep, i64 %636
  %637 = load float, ptr %gep744.prol, align 4, !tbaa !9
  %638 = getelementptr inbounds float, ptr %24, i64 %indvars.iv811.prol
  store float %637, ptr %638, align 4, !tbaa !9
  %indvars.iv.next812.prol = add nuw nsw i64 %indvars.iv811.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter902
  br i1 %prol.iter.cmp.not, label %.lr.ph748.prol.loopexit, label %.lr.ph748.prol, !llvm.loop !33

.lr.ph748.prol.loopexit:                          ; preds = %.lr.ph748.prol, %.lr.ph748.preheader882
  %indvars.iv811.unr = phi i64 [ %indvars.iv811.ph, %.lr.ph748.preheader882 ], [ %indvars.iv.next812.prol, %.lr.ph748.prol ]
  %639 = icmp ult i64 %633, 3
  br i1 %639, label %._crit_edge749, label %.lr.ph748

.lr.ph748:                                        ; preds = %.lr.ph748.prol.loopexit, %.lr.ph748
  %indvars.iv811 = phi i64 [ %indvars.iv.next812.3, %.lr.ph748 ], [ %indvars.iv811.unr, %.lr.ph748.prol.loopexit ]
  %640 = trunc nuw nsw i64 %indvars.iv811 to i32
  %641 = shl i32 %640, 2
  %642 = sext i32 %641 to i64
  %gep744 = getelementptr float, ptr %invariant.gep, i64 %642
  %643 = load float, ptr %gep744, align 4, !tbaa !9
  %644 = getelementptr inbounds float, ptr %24, i64 %indvars.iv811
  store float %643, ptr %644, align 4, !tbaa !9
  %645 = trunc i64 %indvars.iv811 to i32
  %646 = shl i32 %645, 2
  %647 = add i32 %646, 4
  %648 = sext i32 %647 to i64
  %gep744.1 = getelementptr float, ptr %invariant.gep, i64 %648
  %649 = load float, ptr %gep744.1, align 4, !tbaa !9
  %650 = getelementptr float, ptr %1, i64 %indvars.iv811
  store float %649, ptr %650, align 4, !tbaa !9
  %indvars.iv.next812.1 = add nuw nsw i64 %indvars.iv811, 2
  %651 = trunc nuw nsw i64 %indvars.iv.next812.1 to i32
  %652 = shl i32 %651, 2
  %653 = sext i32 %652 to i64
  %gep744.2 = getelementptr float, ptr %invariant.gep, i64 %653
  %654 = load float, ptr %gep744.2, align 4, !tbaa !9
  %655 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.next812.1
  store float %654, ptr %655, align 4, !tbaa !9
  %indvars.iv.next812.2 = add nuw nsw i64 %indvars.iv811, 3
  %656 = trunc nuw nsw i64 %indvars.iv.next812.2 to i32
  %657 = shl i32 %656, 2
  %658 = sext i32 %657 to i64
  %gep744.3 = getelementptr float, ptr %invariant.gep, i64 %658
  %659 = load float, ptr %gep744.3, align 4, !tbaa !9
  %660 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.next812.2
  store float %659, ptr %660, align 4, !tbaa !9
  %indvars.iv.next812.3 = add nuw nsw i64 %indvars.iv811, 4
  %exitcond815.not.3 = icmp eq i64 %indvars.iv.next812.3, %wide.trip.count814
  br i1 %exitcond815.not.3, label %._crit_edge749, label %.lr.ph748, !llvm.loop !34

._crit_edge749:                                   ; preds = %.lr.ph748.prol.loopexit, %.lr.ph748, %608
  call void @slasrt_(ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %15) #5
  %661 = load i32, ptr %0, align 4, !tbaa !5
  %662 = icmp sgt i32 %661, 0
  br i1 %662, label %.lr.ph753.preheader, label %._crit_edge754

.lr.ph753.preheader:                              ; preds = %._crit_edge749
  %663 = zext nneg i32 %661 to i64
  %xtraiter904 = and i64 %663, 7
  %lcmp.mod905.not = icmp eq i64 %xtraiter904, 0
  br i1 %lcmp.mod905.not, label %.lr.ph753.prol.loopexit, label %.lr.ph753.prol

.lr.ph753.prol:                                   ; preds = %.lr.ph753.preheader, %.lr.ph753.prol
  %indvars.iv816.prol = phi i64 [ %indvars.iv.next817.prol, %.lr.ph753.prol ], [ %663, %.lr.ph753.preheader ]
  %.1560750.prol = phi float [ %666, %.lr.ph753.prol ], [ 0.000000e+00, %.lr.ph753.preheader ]
  %prol.iter906 = phi i64 [ %prol.iter906.next, %.lr.ph753.prol ], [ 0, %.lr.ph753.preheader ]
  %664 = getelementptr inbounds float, ptr %24, i64 %indvars.iv816.prol
  %665 = load float, ptr %664, align 4, !tbaa !9
  %666 = fadd float %.1560750.prol, %665
  %indvars.iv.next817.prol = add nsw i64 %indvars.iv816.prol, -1
  %prol.iter906.next = add i64 %prol.iter906, 1
  %prol.iter906.cmp.not = icmp eq i64 %prol.iter906.next, %xtraiter904
  br i1 %prol.iter906.cmp.not, label %.lr.ph753.prol.loopexit, label %.lr.ph753.prol, !llvm.loop !35

.lr.ph753.prol.loopexit:                          ; preds = %.lr.ph753.prol, %.lr.ph753.preheader
  %indvars.iv816.unr = phi i64 [ %663, %.lr.ph753.preheader ], [ %indvars.iv.next817.prol, %.lr.ph753.prol ]
  %.1560750.unr = phi float [ 0.000000e+00, %.lr.ph753.preheader ], [ %666, %.lr.ph753.prol ]
  %.lcssa.unr = phi float [ poison, %.lr.ph753.preheader ], [ %666, %.lr.ph753.prol ]
  %667 = icmp ult i32 %661, 8
  br i1 %667, label %._crit_edge754, label %.lr.ph753.preheader.new

.lr.ph753.preheader.new:                          ; preds = %.lr.ph753.prol.loopexit
  %invariant.gep929 = getelementptr i8, ptr %24, i64 -4
  %invariant.gep930 = getelementptr i8, ptr %24, i64 -8
  %invariant.gep932 = getelementptr i8, ptr %24, i64 -12
  %invariant.gep934 = getelementptr i8, ptr %24, i64 -16
  %invariant.gep936 = getelementptr i8, ptr %24, i64 -20
  %invariant.gep938 = getelementptr i8, ptr %24, i64 -24
  br label %.lr.ph753

.lr.ph753:                                        ; preds = %.lr.ph753, %.lr.ph753.preheader.new
  %indvars.iv816 = phi i64 [ %indvars.iv816.unr, %.lr.ph753.preheader.new ], [ %indvars.iv.next817.7, %.lr.ph753 ]
  %.1560750 = phi float [ %.1560750.unr, %.lr.ph753.preheader.new ], [ %685, %.lr.ph753 ]
  %668 = getelementptr inbounds float, ptr %24, i64 %indvars.iv816
  %669 = load float, ptr %668, align 4, !tbaa !9
  %670 = fadd float %.1560750, %669
  %gep = getelementptr float, ptr %invariant.gep929, i64 %indvars.iv816
  %671 = load float, ptr %gep, align 4, !tbaa !9
  %672 = fadd float %670, %671
  %gep931 = getelementptr float, ptr %invariant.gep930, i64 %indvars.iv816
  %673 = load float, ptr %gep931, align 4, !tbaa !9
  %674 = fadd float %672, %673
  %gep933 = getelementptr float, ptr %invariant.gep932, i64 %indvars.iv816
  %675 = load float, ptr %gep933, align 4, !tbaa !9
  %676 = fadd float %674, %675
  %gep935 = getelementptr float, ptr %invariant.gep934, i64 %indvars.iv816
  %677 = load float, ptr %gep935, align 4, !tbaa !9
  %678 = fadd float %676, %677
  %gep937 = getelementptr float, ptr %invariant.gep936, i64 %indvars.iv816
  %679 = load float, ptr %gep937, align 4, !tbaa !9
  %680 = fadd float %678, %679
  %gep939 = getelementptr float, ptr %invariant.gep938, i64 %indvars.iv816
  %681 = load float, ptr %gep939, align 4, !tbaa !9
  %682 = fadd float %680, %681
  %indvars.iv.next817.6 = add nsw i64 %indvars.iv816, -7
  %683 = getelementptr inbounds float, ptr %24, i64 %indvars.iv.next817.6
  %684 = load float, ptr %683, align 4, !tbaa !9
  %685 = fadd float %682, %684
  %indvars.iv.next817.7 = add nsw i64 %indvars.iv816, -8
  %686 = icmp ugt i64 %indvars.iv.next817.6, 1
  br i1 %686, label %.lr.ph753, label %._crit_edge754, !llvm.loop !36

._crit_edge754:                                   ; preds = %.lr.ph753.prol.loopexit, %.lr.ph753, %._crit_edge749
  %.1560.lcssa = phi float [ 0.000000e+00, %._crit_edge749 ], [ %.lcssa.unr, %.lr.ph753.prol.loopexit ], [ %685, %.lr.ph753 ]
  %687 = shl i32 %661, 1
  %688 = or disjoint i32 %687, 1
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds float, ptr %24, i64 %689
  store float %173, ptr %690, align 4, !tbaa !9
  %691 = sext i32 %687 to i64
  %692 = getelementptr float, ptr %24, i64 %691
  %693 = getelementptr i8, ptr %692, i64 8
  store float %.1560.lcssa, ptr %693, align 4, !tbaa !9
  %694 = load i32, ptr %7, align 4, !tbaa !5
  %695 = sitofp i32 %694 to float
  %696 = getelementptr i8, ptr %692, i64 12
  store float %695, ptr %696, align 4, !tbaa !9
  %697 = load i32, ptr %6, align 4, !tbaa !5
  %698 = sitofp i32 %697 to float
  %699 = mul nsw i32 %661, %661
  %700 = uitofp nneg i32 %699 to float
  %701 = getelementptr i8, ptr %692, i64 16
  %702 = load i32, ptr %12, align 4, !tbaa !5
  %703 = sitofp i32 %702 to float
  %704 = fmul float %703, 1.000000e+02
  %705 = insertelement <2 x float> poison, float %698, i64 0
  %706 = insertelement <2 x float> %705, float %704, i64 1
  %707 = insertelement <2 x float> poison, float %700, i64 0
  %708 = insertelement <2 x float> %707, float %695, i64 1
  %709 = fdiv <2 x float> %706, %708
  store <2 x float> %709, ptr %701, align 4, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %604, %589, %33, %34, %37, %._crit_edge754, %._crit_edge726, %338, %175, %._crit_edge761, %134, %121, %113, %100, %54, %48, %42, %31
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #5
  ret void
}

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

declare void @slasrt_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @slasq3_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.unroll.disable"}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12, !31, !32}
!31 = !{!"llvm.loop.isvectorized", i32 1}
!32 = !{!"llvm.loop.unroll.runtime.disable"}
!33 = distinct !{!33, !15}
!34 = distinct !{!34, !12, !31}
!35 = distinct !{!35, !15}
!36 = distinct !{!36, !12}


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