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

; 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"

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

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

112:                                              ; preds = %16
  %113 = load float, ptr %41, align 4, !tbaa !11
  br label %116

114:                                              ; preds = %16
  %115 = load float, ptr %42, align 4, !tbaa !11
  br label %116

116:                                              ; preds = %114, %112
  %117 = phi float [ %113, %112 ], [ %115, %114 ]
  %118 = fpext float %117 to double
  %119 = load ptr, ptr %30, align 8, !tbaa !5
  %120 = load float, ptr %119, align 4, !tbaa !11
  %121 = fpext float %120 to double
  %122 = fmul double %118, %121
  %123 = fptrunc double %122 to float
  store float %123, ptr %72, align 4, !tbaa !11
  %124 = load ptr, ptr %19, align 8, !tbaa !5
  %125 = load i64, ptr %124, align 8, !tbaa !9
  store i64 %125, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %46, align 8, !tbaa !9
  br label %126

126:                                              ; preds = %175, %116
  %127 = load i64, ptr %46, align 8, !tbaa !9
  %128 = load i64, ptr %37, align 8, !tbaa !9
  %129 = icmp sle i64 %127, %128
  br i1 %129, label %130, label %178

130:                                              ; preds = %126
  %131 = load i64, ptr %46, align 8, !tbaa !9
  %132 = sub nsw i64 %131, 1
  store i64 %132, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %133

133:                                              ; preds = %153, %130
  %134 = load i64, ptr %45, align 8, !tbaa !9
  %135 = load i64, ptr %38, align 8, !tbaa !9
  %136 = icmp sle i64 %134, %135
  br i1 %136, label %137, label %156

137:                                              ; preds = %133
  %138 = load ptr, ptr %20, align 8, !tbaa !5
  %139 = load i64, ptr %45, align 8, !tbaa !9
  %140 = load i64, ptr %46, align 8, !tbaa !9
  %141 = load i64, ptr %35, align 8, !tbaa !9
  %142 = mul nsw i64 %140, %141
  %143 = add nsw i64 %139, %142
  %144 = getelementptr inbounds float, ptr %138, i64 %143
  %145 = load float, ptr %144, align 4, !tbaa !11
  %146 = load ptr, ptr %26, align 8, !tbaa !5
  %147 = load i64, ptr %45, align 8, !tbaa !9
  %148 = load i64, ptr %46, align 8, !tbaa !9
  %149 = load i64, ptr %33, align 8, !tbaa !9
  %150 = mul nsw i64 %148, %149
  %151 = add nsw i64 %147, %150
  %152 = getelementptr inbounds float, ptr %146, i64 %151
  store float %145, ptr %152, align 4, !tbaa !11
  br label %153

153:                                              ; preds = %137
  %154 = load i64, ptr %45, align 8, !tbaa !9
  %155 = add nsw i64 %154, 1
  store i64 %155, ptr %45, align 8, !tbaa !9
  br label %133, !llvm.loop !13

156:                                              ; preds = %133
  %157 = load ptr, ptr %20, align 8, !tbaa !5
  %158 = load i64, ptr %46, align 8, !tbaa !9
  %159 = load i64, ptr %46, align 8, !tbaa !9
  %160 = load i64, ptr %35, align 8, !tbaa !9
  %161 = mul nsw i64 %159, %160
  %162 = add nsw i64 %158, %161
  %163 = getelementptr inbounds float, ptr %157, i64 %162
  %164 = load float, ptr %163, align 4, !tbaa !11
  %165 = load ptr, ptr %22, align 8, !tbaa !5
  %166 = load float, ptr %165, align 4, !tbaa !11
  %167 = fsub float %164, %166
  %168 = load ptr, ptr %26, align 8, !tbaa !5
  %169 = load i64, ptr %46, align 8, !tbaa !9
  %170 = load i64, ptr %46, align 8, !tbaa !9
  %171 = load i64, ptr %33, align 8, !tbaa !9
  %172 = mul nsw i64 %170, %171
  %173 = add nsw i64 %169, %172
  %174 = getelementptr inbounds float, ptr %168, i64 %173
  store float %167, ptr %174, align 4, !tbaa !11
  br label %175

175:                                              ; preds = %156
  %176 = load i64, ptr %46, align 8, !tbaa !9
  %177 = add nsw i64 %176, 1
  store i64 %177, ptr %46, align 8, !tbaa !9
  br label %126, !llvm.loop !15

178:                                              ; preds = %126
  %179 = load ptr, ptr %23, align 8, !tbaa !5
  %180 = load float, ptr %179, align 4, !tbaa !11
  %181 = fcmp oeq float %180, 0.000000e+00
  br i1 %181, label %182, label %747

182:                                              ; preds = %178
  %183 = load ptr, ptr %18, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = icmp ne i64 %184, 0
  br i1 %185, label %186, label %203

186:                                              ; preds = %182
  %187 = load ptr, ptr %19, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  store i64 %188, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %189

189:                                              ; preds = %199, %186
  %190 = load i64, ptr %45, align 8, !tbaa !9
  %191 = load i64, ptr %37, align 8, !tbaa !9
  %192 = icmp sle i64 %190, %191
  br i1 %192, label %193, label %202

193:                                              ; preds = %189
  %194 = load ptr, ptr %29, align 8, !tbaa !5
  %195 = load float, ptr %194, align 4, !tbaa !11
  %196 = load ptr, ptr %24, align 8, !tbaa !5
  %197 = load i64, ptr %45, align 8, !tbaa !9
  %198 = getelementptr inbounds float, ptr %196, i64 %197
  store float %195, ptr %198, align 4, !tbaa !11
  br label %199

199:                                              ; preds = %193
  %200 = load i64, ptr %45, align 8, !tbaa !9
  %201 = add nsw i64 %200, 1
  store i64 %201, ptr %45, align 8, !tbaa !9
  br label %189, !llvm.loop !16

202:                                              ; preds = %189
  br label %230

203:                                              ; preds = %182
  %204 = load ptr, ptr %19, align 8, !tbaa !5
  %205 = load ptr, ptr %24, align 8, !tbaa !5
  %206 = getelementptr inbounds float, ptr %205, i64 1
  %207 = call double @f2c_snrm2(ptr noundef %204, ptr noundef %206, ptr noundef @c__1)
  %208 = fptrunc double %207 to float
  store float %208, ptr %68, align 4, !tbaa !11
  %209 = load ptr, ptr %29, align 8, !tbaa !5
  %210 = load float, ptr %209, align 4, !tbaa !11
  %211 = load float, ptr %67, align 4, !tbaa !11
  %212 = fmul float %210, %211
  %213 = fpext float %212 to double
  %214 = load float, ptr %68, align 4, !tbaa !11
  %215 = load float, ptr %72, align 4, !tbaa !11
  %216 = fcmp oge float %214, %215
  br i1 %216, label %217, label %219

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

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

221:                                              ; preds = %219, %217
  %222 = phi float [ %218, %217 ], [ %220, %219 ]
  %223 = fpext float %222 to double
  %224 = fdiv double %213, %223
  %225 = fptrunc double %224 to float
  store float %225, ptr %41, align 4, !tbaa !11
  %226 = load ptr, ptr %19, align 8, !tbaa !5
  %227 = load ptr, ptr %24, align 8, !tbaa !5
  %228 = getelementptr inbounds float, ptr %227, i64 1
  %229 = call i32 @f2c_sscal(ptr noundef %226, ptr noundef %41, ptr noundef %228, ptr noundef @c__1)
  br label %230

230:                                              ; preds = %221, %202
  %231 = load ptr, ptr %17, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  %233 = icmp ne i64 %232, 0
  br i1 %233, label %234, label %448

234:                                              ; preds = %230
  %235 = load ptr, ptr %19, align 8, !tbaa !5
  %236 = load i64, ptr %235, align 8, !tbaa !9
  %237 = sub nsw i64 %236, 1
  store i64 %237, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %238

238:                                              ; preds = %419, %234
  %239 = load i64, ptr %45, align 8, !tbaa !9
  %240 = load i64, ptr %37, align 8, !tbaa !9
  %241 = icmp sle i64 %239, %240
  br i1 %241, label %242, label %422

242:                                              ; preds = %238
  %243 = load ptr, ptr %20, align 8, !tbaa !5
  %244 = load i64, ptr %45, align 8, !tbaa !9
  %245 = add nsw i64 %244, 1
  %246 = load i64, ptr %45, align 8, !tbaa !9
  %247 = load i64, ptr %35, align 8, !tbaa !9
  %248 = mul nsw i64 %246, %247
  %249 = add nsw i64 %245, %248
  %250 = getelementptr inbounds float, ptr %243, i64 %249
  %251 = load float, ptr %250, align 4, !tbaa !11
  store float %251, ptr %54, align 4, !tbaa !11
  %252 = load ptr, ptr %26, align 8, !tbaa !5
  %253 = load i64, ptr %45, align 8, !tbaa !9
  %254 = load i64, ptr %45, align 8, !tbaa !9
  %255 = load i64, ptr %33, align 8, !tbaa !9
  %256 = mul nsw i64 %254, %255
  %257 = add nsw i64 %253, %256
  %258 = getelementptr inbounds float, ptr %252, i64 %257
  %259 = load float, ptr %258, align 4, !tbaa !11
  store float %259, ptr %41, align 4, !tbaa !11
  %260 = load float, ptr %41, align 4, !tbaa !11
  %261 = fcmp oge float %260, 0.000000e+00
  br i1 %261, label %262, label %264

262:                                              ; preds = %242
  %263 = load float, ptr %41, align 4, !tbaa !11
  br label %267

264:                                              ; preds = %242
  %265 = load float, ptr %41, align 4, !tbaa !11
  %266 = fneg float %265
  br label %267

267:                                              ; preds = %264, %262
  %268 = phi float [ %263, %262 ], [ %266, %264 ]
  %269 = fpext float %268 to double
  %270 = load float, ptr %54, align 4, !tbaa !11
  %271 = fcmp oge float %270, 0.000000e+00
  br i1 %271, label %272, label %274

272:                                              ; preds = %267
  %273 = load float, ptr %54, align 4, !tbaa !11
  br label %277

274:                                              ; preds = %267
  %275 = load float, ptr %54, align 4, !tbaa !11
  %276 = fneg float %275
  br label %277

277:                                              ; preds = %274, %272
  %278 = phi float [ %273, %272 ], [ %276, %274 ]
  %279 = fpext float %278 to double
  %280 = fcmp olt double %269, %279
  br i1 %280, label %281, label %350

281:                                              ; preds = %277
  %282 = load ptr, ptr %26, align 8, !tbaa !5
  %283 = load i64, ptr %45, align 8, !tbaa !9
  %284 = load i64, ptr %45, align 8, !tbaa !9
  %285 = load i64, ptr %33, align 8, !tbaa !9
  %286 = mul nsw i64 %284, %285
  %287 = add nsw i64 %283, %286
  %288 = getelementptr inbounds float, ptr %282, i64 %287
  %289 = load float, ptr %288, align 4, !tbaa !11
  %290 = load float, ptr %54, align 4, !tbaa !11
  %291 = fdiv float %289, %290
  store float %291, ptr %48, align 4, !tbaa !11
  %292 = load float, ptr %54, align 4, !tbaa !11
  %293 = load ptr, ptr %26, align 8, !tbaa !5
  %294 = load i64, ptr %45, align 8, !tbaa !9
  %295 = load i64, ptr %45, align 8, !tbaa !9
  %296 = load i64, ptr %33, align 8, !tbaa !9
  %297 = mul nsw i64 %295, %296
  %298 = add nsw i64 %294, %297
  %299 = getelementptr inbounds float, ptr %293, i64 %298
  store float %292, ptr %299, align 4, !tbaa !11
  %300 = load ptr, ptr %19, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  store i64 %301, ptr %38, align 8, !tbaa !9
  %302 = load i64, ptr %45, align 8, !tbaa !9
  %303 = add nsw i64 %302, 1
  store i64 %303, ptr %46, align 8, !tbaa !9
  br label %304

304:                                              ; preds = %346, %281
  %305 = load i64, ptr %46, align 8, !tbaa !9
  %306 = load i64, ptr %38, align 8, !tbaa !9
  %307 = icmp sle i64 %305, %306
  br i1 %307, label %308, label %349

308:                                              ; preds = %304
  %309 = load ptr, ptr %26, align 8, !tbaa !5
  %310 = load i64, ptr %45, align 8, !tbaa !9
  %311 = add nsw i64 %310, 1
  %312 = load i64, ptr %46, align 8, !tbaa !9
  %313 = load i64, ptr %33, align 8, !tbaa !9
  %314 = mul nsw i64 %312, %313
  %315 = add nsw i64 %311, %314
  %316 = getelementptr inbounds float, ptr %309, i64 %315
  %317 = load float, ptr %316, align 4, !tbaa !11
  store float %317, ptr %61, align 4, !tbaa !11
  %318 = load ptr, ptr %26, align 8, !tbaa !5
  %319 = load i64, ptr %45, align 8, !tbaa !9
  %320 = load i64, ptr %46, align 8, !tbaa !9
  %321 = load i64, ptr %33, align 8, !tbaa !9
  %322 = mul nsw i64 %320, %321
  %323 = add nsw i64 %319, %322
  %324 = getelementptr inbounds float, ptr %318, i64 %323
  %325 = load float, ptr %324, align 4, !tbaa !11
  %326 = load float, ptr %48, align 4, !tbaa !11
  %327 = load float, ptr %61, align 4, !tbaa !11
  %328 = fneg float %326
  %329 = call float @llvm.fmuladd.f32(float %328, float %327, float %325)
  %330 = load ptr, ptr %26, align 8, !tbaa !5
  %331 = load i64, ptr %45, align 8, !tbaa !9
  %332 = add nsw i64 %331, 1
  %333 = load i64, ptr %46, align 8, !tbaa !9
  %334 = load i64, ptr %33, align 8, !tbaa !9
  %335 = mul nsw i64 %333, %334
  %336 = add nsw i64 %332, %335
  %337 = getelementptr inbounds float, ptr %330, i64 %336
  store float %329, ptr %337, align 4, !tbaa !11
  %338 = load float, ptr %61, align 4, !tbaa !11
  %339 = load ptr, ptr %26, align 8, !tbaa !5
  %340 = load i64, ptr %45, align 8, !tbaa !9
  %341 = load i64, ptr %46, align 8, !tbaa !9
  %342 = load i64, ptr %33, align 8, !tbaa !9
  %343 = mul nsw i64 %341, %342
  %344 = add nsw i64 %340, %343
  %345 = getelementptr inbounds float, ptr %339, i64 %344
  store float %338, ptr %345, align 4, !tbaa !11
  br label %346

346:                                              ; preds = %308
  %347 = load i64, ptr %46, align 8, !tbaa !9
  %348 = add nsw i64 %347, 1
  store i64 %348, ptr %46, align 8, !tbaa !9
  br label %304, !llvm.loop !17

349:                                              ; preds = %304
  br label %418

350:                                              ; preds = %277
  %351 = load ptr, ptr %26, align 8, !tbaa !5
  %352 = load i64, ptr %45, align 8, !tbaa !9
  %353 = load i64, ptr %45, align 8, !tbaa !9
  %354 = load i64, ptr %33, align 8, !tbaa !9
  %355 = mul nsw i64 %353, %354
  %356 = add nsw i64 %352, %355
  %357 = getelementptr inbounds float, ptr %351, i64 %356
  %358 = load float, ptr %357, align 4, !tbaa !11
  %359 = fcmp oeq float %358, 0.000000e+00
  br i1 %359, label %360, label %370

360:                                              ; preds = %350
  %361 = load ptr, ptr %29, align 8, !tbaa !5
  %362 = load float, ptr %361, align 4, !tbaa !11
  %363 = load ptr, ptr %26, align 8, !tbaa !5
  %364 = load i64, ptr %45, align 8, !tbaa !9
  %365 = load i64, ptr %45, align 8, !tbaa !9
  %366 = load i64, ptr %33, align 8, !tbaa !9
  %367 = mul nsw i64 %365, %366
  %368 = add nsw i64 %364, %367
  %369 = getelementptr inbounds float, ptr %363, i64 %368
  store float %362, ptr %369, align 4, !tbaa !11
  br label %370

370:                                              ; preds = %360, %350
  %371 = load float, ptr %54, align 4, !tbaa !11
  %372 = load ptr, ptr %26, align 8, !tbaa !5
  %373 = load i64, ptr %45, align 8, !tbaa !9
  %374 = load i64, ptr %45, align 8, !tbaa !9
  %375 = load i64, ptr %33, align 8, !tbaa !9
  %376 = mul nsw i64 %374, %375
  %377 = add nsw i64 %373, %376
  %378 = getelementptr inbounds float, ptr %372, i64 %377
  %379 = load float, ptr %378, align 4, !tbaa !11
  %380 = fdiv float %371, %379
  store float %380, ptr %48, align 4, !tbaa !11
  %381 = load float, ptr %48, align 4, !tbaa !11
  %382 = fcmp une float %381, 0.000000e+00
  br i1 %382, label %383, label %417

383:                                              ; preds = %370
  %384 = load ptr, ptr %19, align 8, !tbaa !5
  %385 = load i64, ptr %384, align 8, !tbaa !9
  store i64 %385, ptr %38, align 8, !tbaa !9
  %386 = load i64, ptr %45, align 8, !tbaa !9
  %387 = add nsw i64 %386, 1
  store i64 %387, ptr %46, align 8, !tbaa !9
  br label %388

388:                                              ; preds = %413, %383
  %389 = load i64, ptr %46, align 8, !tbaa !9
  %390 = load i64, ptr %38, align 8, !tbaa !9
  %391 = icmp sle i64 %389, %390
  br i1 %391, label %392, label %416

392:                                              ; preds = %388
  %393 = load float, ptr %48, align 4, !tbaa !11
  %394 = load ptr, ptr %26, align 8, !tbaa !5
  %395 = load i64, ptr %45, align 8, !tbaa !9
  %396 = load i64, ptr %46, align 8, !tbaa !9
  %397 = load i64, ptr %33, align 8, !tbaa !9
  %398 = mul nsw i64 %396, %397
  %399 = add nsw i64 %395, %398
  %400 = getelementptr inbounds float, ptr %394, i64 %399
  %401 = load float, ptr %400, align 4, !tbaa !11
  %402 = load ptr, ptr %26, align 8, !tbaa !5
  %403 = load i64, ptr %45, align 8, !tbaa !9
  %404 = add nsw i64 %403, 1
  %405 = load i64, ptr %46, align 8, !tbaa !9
  %406 = load i64, ptr %33, align 8, !tbaa !9
  %407 = mul nsw i64 %405, %406
  %408 = add nsw i64 %404, %407
  %409 = getelementptr inbounds float, ptr %402, i64 %408
  %410 = load float, ptr %409, align 4, !tbaa !11
  %411 = fneg float %393
  %412 = call float @llvm.fmuladd.f32(float %411, float %401, float %410)
  store float %412, ptr %409, align 4, !tbaa !11
  br label %413

413:                                              ; preds = %392
  %414 = load i64, ptr %46, align 8, !tbaa !9
  %415 = add nsw i64 %414, 1
  store i64 %415, ptr %46, align 8, !tbaa !9
  br label %388, !llvm.loop !18

416:                                              ; preds = %388
  br label %417

417:                                              ; preds = %416, %370
  br label %418

418:                                              ; preds = %417, %349
  br label %419

419:                                              ; preds = %418
  %420 = load i64, ptr %45, align 8, !tbaa !9
  %421 = add nsw i64 %420, 1
  store i64 %421, ptr %45, align 8, !tbaa !9
  br label %238, !llvm.loop !19

422:                                              ; preds = %238
  %423 = load ptr, ptr %26, align 8, !tbaa !5
  %424 = load ptr, ptr %19, align 8, !tbaa !5
  %425 = load i64, ptr %424, align 8, !tbaa !9
  %426 = load ptr, ptr %19, align 8, !tbaa !5
  %427 = load i64, ptr %426, align 8, !tbaa !9
  %428 = load i64, ptr %33, align 8, !tbaa !9
  %429 = mul nsw i64 %427, %428
  %430 = add nsw i64 %425, %429
  %431 = getelementptr inbounds float, ptr %423, i64 %430
  %432 = load float, ptr %431, align 4, !tbaa !11
  %433 = fcmp oeq float %432, 0.000000e+00
  br i1 %433, label %434, label %446

434:                                              ; preds = %422
  %435 = load ptr, ptr %29, align 8, !tbaa !5
  %436 = load float, ptr %435, align 4, !tbaa !11
  %437 = load ptr, ptr %26, align 8, !tbaa !5
  %438 = load ptr, ptr %19, align 8, !tbaa !5
  %439 = load i64, ptr %438, align 8, !tbaa !9
  %440 = load ptr, ptr %19, align 8, !tbaa !5
  %441 = load i64, ptr %440, align 8, !tbaa !9
  %442 = load i64, ptr %33, align 8, !tbaa !9
  %443 = mul nsw i64 %441, %442
  %444 = add nsw i64 %439, %443
  %445 = getelementptr inbounds float, ptr %437, i64 %444
  store float %436, ptr %445, align 4, !tbaa !11
  br label %446

446:                                              ; preds = %434, %422
  %447 = getelementptr inbounds [1 x i8], ptr %65, i64 0, i64 0
  store i8 78, ptr %447, align 1, !tbaa !20
  br label %646

448:                                              ; preds = %230
  %449 = load ptr, ptr %19, align 8, !tbaa !5
  %450 = load i64, ptr %449, align 8, !tbaa !9
  store i64 %450, ptr %46, align 8, !tbaa !9
  br label %451

451:                                              ; preds = %627, %448
  %452 = load i64, ptr %46, align 8, !tbaa !9
  %453 = icmp sge i64 %452, 2
  br i1 %453, label %454, label %630

454:                                              ; preds = %451
  %455 = load ptr, ptr %20, align 8, !tbaa !5
  %456 = load i64, ptr %46, align 8, !tbaa !9
  %457 = load i64, ptr %46, align 8, !tbaa !9
  %458 = sub nsw i64 %457, 1
  %459 = load i64, ptr %35, align 8, !tbaa !9
  %460 = mul nsw i64 %458, %459
  %461 = add nsw i64 %456, %460
  %462 = getelementptr inbounds float, ptr %455, i64 %461
  %463 = load float, ptr %462, align 4, !tbaa !11
  store float %463, ptr %55, align 4, !tbaa !11
  %464 = load ptr, ptr %26, align 8, !tbaa !5
  %465 = load i64, ptr %46, align 8, !tbaa !9
  %466 = load i64, ptr %46, align 8, !tbaa !9
  %467 = load i64, ptr %33, align 8, !tbaa !9
  %468 = mul nsw i64 %466, %467
  %469 = add nsw i64 %465, %468
  %470 = getelementptr inbounds float, ptr %464, i64 %469
  %471 = load float, ptr %470, align 4, !tbaa !11
  store float %471, ptr %41, align 4, !tbaa !11
  %472 = load float, ptr %41, align 4, !tbaa !11
  %473 = fcmp oge float %472, 0.000000e+00
  br i1 %473, label %474, label %476

474:                                              ; preds = %454
  %475 = load float, ptr %41, align 4, !tbaa !11
  br label %479

476:                                              ; preds = %454
  %477 = load float, ptr %41, align 4, !tbaa !11
  %478 = fneg float %477
  br label %479

479:                                              ; preds = %476, %474
  %480 = phi float [ %475, %474 ], [ %478, %476 ]
  %481 = fpext float %480 to double
  %482 = load float, ptr %55, align 4, !tbaa !11
  %483 = fcmp oge float %482, 0.000000e+00
  br i1 %483, label %484, label %486

484:                                              ; preds = %479
  %485 = load float, ptr %55, align 4, !tbaa !11
  br label %489

486:                                              ; preds = %479
  %487 = load float, ptr %55, align 4, !tbaa !11
  %488 = fneg float %487
  br label %489

489:                                              ; preds = %486, %484
  %490 = phi float [ %485, %484 ], [ %488, %486 ]
  %491 = fpext float %490 to double
  %492 = fcmp olt double %481, %491
  br i1 %492, label %493, label %560

493:                                              ; preds = %489
  %494 = load ptr, ptr %26, align 8, !tbaa !5
  %495 = load i64, ptr %46, align 8, !tbaa !9
  %496 = load i64, ptr %46, align 8, !tbaa !9
  %497 = load i64, ptr %33, align 8, !tbaa !9
  %498 = mul nsw i64 %496, %497
  %499 = add nsw i64 %495, %498
  %500 = getelementptr inbounds float, ptr %494, i64 %499
  %501 = load float, ptr %500, align 4, !tbaa !11
  %502 = load float, ptr %55, align 4, !tbaa !11
  %503 = fdiv float %501, %502
  store float %503, ptr %48, align 4, !tbaa !11
  %504 = load float, ptr %55, align 4, !tbaa !11
  %505 = load ptr, ptr %26, align 8, !tbaa !5
  %506 = load i64, ptr %46, align 8, !tbaa !9
  %507 = load i64, ptr %46, align 8, !tbaa !9
  %508 = load i64, ptr %33, align 8, !tbaa !9
  %509 = mul nsw i64 %507, %508
  %510 = add nsw i64 %506, %509
  %511 = getelementptr inbounds float, ptr %505, i64 %510
  store float %504, ptr %511, align 4, !tbaa !11
  %512 = load i64, ptr %46, align 8, !tbaa !9
  %513 = sub nsw i64 %512, 1
  store i64 %513, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %514

514:                                              ; preds = %556, %493
  %515 = load i64, ptr %45, align 8, !tbaa !9
  %516 = load i64, ptr %37, align 8, !tbaa !9
  %517 = icmp sle i64 %515, %516
  br i1 %517, label %518, label %559

518:                                              ; preds = %514
  %519 = load ptr, ptr %26, align 8, !tbaa !5
  %520 = load i64, ptr %45, align 8, !tbaa !9
  %521 = load i64, ptr %46, align 8, !tbaa !9
  %522 = sub nsw i64 %521, 1
  %523 = load i64, ptr %33, align 8, !tbaa !9
  %524 = mul nsw i64 %522, %523
  %525 = add nsw i64 %520, %524
  %526 = getelementptr inbounds float, ptr %519, i64 %525
  %527 = load float, ptr %526, align 4, !tbaa !11
  store float %527, ptr %61, align 4, !tbaa !11
  %528 = load ptr, ptr %26, align 8, !tbaa !5
  %529 = load i64, ptr %45, align 8, !tbaa !9
  %530 = load i64, ptr %46, align 8, !tbaa !9
  %531 = load i64, ptr %33, align 8, !tbaa !9
  %532 = mul nsw i64 %530, %531
  %533 = add nsw i64 %529, %532
  %534 = getelementptr inbounds float, ptr %528, i64 %533
  %535 = load float, ptr %534, align 4, !tbaa !11
  %536 = load float, ptr %48, align 4, !tbaa !11
  %537 = load float, ptr %61, align 4, !tbaa !11
  %538 = fneg float %536
  %539 = call float @llvm.fmuladd.f32(float %538, float %537, float %535)
  %540 = load ptr, ptr %26, align 8, !tbaa !5
  %541 = load i64, ptr %45, align 8, !tbaa !9
  %542 = load i64, ptr %46, align 8, !tbaa !9
  %543 = sub nsw i64 %542, 1
  %544 = load i64, ptr %33, align 8, !tbaa !9
  %545 = mul nsw i64 %543, %544
  %546 = add nsw i64 %541, %545
  %547 = getelementptr inbounds float, ptr %540, i64 %546
  store float %539, ptr %547, align 4, !tbaa !11
  %548 = load float, ptr %61, align 4, !tbaa !11
  %549 = load ptr, ptr %26, align 8, !tbaa !5
  %550 = load i64, ptr %45, align 8, !tbaa !9
  %551 = load i64, ptr %46, align 8, !tbaa !9
  %552 = load i64, ptr %33, align 8, !tbaa !9
  %553 = mul nsw i64 %551, %552
  %554 = add nsw i64 %550, %553
  %555 = getelementptr inbounds float, ptr %549, i64 %554
  store float %548, ptr %555, align 4, !tbaa !11
  br label %556

556:                                              ; preds = %518
  %557 = load i64, ptr %45, align 8, !tbaa !9
  %558 = add nsw i64 %557, 1
  store i64 %558, ptr %45, align 8, !tbaa !9
  br label %514, !llvm.loop !21

559:                                              ; preds = %514
  br label %626

560:                                              ; preds = %489
  %561 = load ptr, ptr %26, align 8, !tbaa !5
  %562 = load i64, ptr %46, align 8, !tbaa !9
  %563 = load i64, ptr %46, align 8, !tbaa !9
  %564 = load i64, ptr %33, align 8, !tbaa !9
  %565 = mul nsw i64 %563, %564
  %566 = add nsw i64 %562, %565
  %567 = getelementptr inbounds float, ptr %561, i64 %566
  %568 = load float, ptr %567, align 4, !tbaa !11
  %569 = fcmp oeq float %568, 0.000000e+00
  br i1 %569, label %570, label %580

570:                                              ; preds = %560
  %571 = load ptr, ptr %29, align 8, !tbaa !5
  %572 = load float, ptr %571, align 4, !tbaa !11
  %573 = load ptr, ptr %26, align 8, !tbaa !5
  %574 = load i64, ptr %46, align 8, !tbaa !9
  %575 = load i64, ptr %46, align 8, !tbaa !9
  %576 = load i64, ptr %33, align 8, !tbaa !9
  %577 = mul nsw i64 %575, %576
  %578 = add nsw i64 %574, %577
  %579 = getelementptr inbounds float, ptr %573, i64 %578
  store float %572, ptr %579, align 4, !tbaa !11
  br label %580

580:                                              ; preds = %570, %560
  %581 = load float, ptr %55, align 4, !tbaa !11
  %582 = load ptr, ptr %26, align 8, !tbaa !5
  %583 = load i64, ptr %46, align 8, !tbaa !9
  %584 = load i64, ptr %46, align 8, !tbaa !9
  %585 = load i64, ptr %33, align 8, !tbaa !9
  %586 = mul nsw i64 %584, %585
  %587 = add nsw i64 %583, %586
  %588 = getelementptr inbounds float, ptr %582, i64 %587
  %589 = load float, ptr %588, align 4, !tbaa !11
  %590 = fdiv float %581, %589
  store float %590, ptr %48, align 4, !tbaa !11
  %591 = load float, ptr %48, align 4, !tbaa !11
  %592 = fcmp une float %591, 0.000000e+00
  br i1 %592, label %593, label %625

593:                                              ; preds = %580
  %594 = load i64, ptr %46, align 8, !tbaa !9
  %595 = sub nsw i64 %594, 1
  store i64 %595, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %596

596:                                              ; preds = %621, %593
  %597 = load i64, ptr %45, align 8, !tbaa !9
  %598 = load i64, ptr %37, align 8, !tbaa !9
  %599 = icmp sle i64 %597, %598
  br i1 %599, label %600, label %624

600:                                              ; preds = %596
  %601 = load float, ptr %48, align 4, !tbaa !11
  %602 = load ptr, ptr %26, align 8, !tbaa !5
  %603 = load i64, ptr %45, align 8, !tbaa !9
  %604 = load i64, ptr %46, align 8, !tbaa !9
  %605 = load i64, ptr %33, align 8, !tbaa !9
  %606 = mul nsw i64 %604, %605
  %607 = add nsw i64 %603, %606
  %608 = getelementptr inbounds float, ptr %602, i64 %607
  %609 = load float, ptr %608, align 4, !tbaa !11
  %610 = load ptr, ptr %26, align 8, !tbaa !5
  %611 = load i64, ptr %45, align 8, !tbaa !9
  %612 = load i64, ptr %46, align 8, !tbaa !9
  %613 = sub nsw i64 %612, 1
  %614 = load i64, ptr %33, align 8, !tbaa !9
  %615 = mul nsw i64 %613, %614
  %616 = add nsw i64 %611, %615
  %617 = getelementptr inbounds float, ptr %610, i64 %616
  %618 = load float, ptr %617, align 4, !tbaa !11
  %619 = fneg float %601
  %620 = call float @llvm.fmuladd.f32(float %619, float %609, float %618)
  store float %620, ptr %617, align 4, !tbaa !11
  br label %621

621:                                              ; preds = %600
  %622 = load i64, ptr %45, align 8, !tbaa !9
  %623 = add nsw i64 %622, 1
  store i64 %623, ptr %45, align 8, !tbaa !9
  br label %596, !llvm.loop !22

624:                                              ; preds = %596
  br label %625

625:                                              ; preds = %624, %580
  br label %626

626:                                              ; preds = %625, %559
  br label %627

627:                                              ; preds = %626
  %628 = load i64, ptr %46, align 8, !tbaa !9
  %629 = add nsw i64 %628, -1
  store i64 %629, ptr %46, align 8, !tbaa !9
  br label %451, !llvm.loop !23

630:                                              ; preds = %451
  %631 = load ptr, ptr %26, align 8, !tbaa !5
  %632 = load i64, ptr %33, align 8, !tbaa !9
  %633 = add nsw i64 %632, 1
  %634 = getelementptr inbounds float, ptr %631, i64 %633
  %635 = load float, ptr %634, align 4, !tbaa !11
  %636 = fcmp oeq float %635, 0.000000e+00
  br i1 %636, label %637, label %644

637:                                              ; preds = %630
  %638 = load ptr, ptr %29, align 8, !tbaa !5
  %639 = load float, ptr %638, align 4, !tbaa !11
  %640 = load ptr, ptr %26, align 8, !tbaa !5
  %641 = load i64, ptr %33, align 8, !tbaa !9
  %642 = add nsw i64 %641, 1
  %643 = getelementptr inbounds float, ptr %640, i64 %642
  store float %639, ptr %643, align 4, !tbaa !11
  br label %644

644:                                              ; preds = %637, %630
  %645 = getelementptr inbounds [1 x i8], ptr %65, i64 0, i64 0
  store i8 84, ptr %645, align 1, !tbaa !20
  br label %646

646:                                              ; preds = %644, %446
  %647 = getelementptr inbounds [1 x i8], ptr %71, i64 0, i64 0
  store i8 78, ptr %647, align 1, !tbaa !20
  %648 = load ptr, ptr %19, align 8, !tbaa !5
  %649 = load i64, ptr %648, align 8, !tbaa !9
  store i64 %649, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %59, align 8, !tbaa !9
  br label %650

650:                                              ; preds = %717, %646
  %651 = load i64, ptr %59, align 8, !tbaa !9
  %652 = load i64, ptr %37, align 8, !tbaa !9
  %653 = icmp sle i64 %651, %652
  br i1 %653, label %654, label %720

654:                                              ; preds = %650
  %655 = getelementptr inbounds [1 x i8], ptr %65, i64 0, i64 0
  %656 = getelementptr inbounds [1 x i8], ptr %71, i64 0, i64 0
  %657 = load ptr, ptr %19, align 8, !tbaa !5
  %658 = load ptr, ptr %26, align 8, !tbaa !5
  %659 = load i64, ptr %34, align 8, !tbaa !9
  %660 = getelementptr inbounds float, ptr %658, i64 %659
  %661 = load ptr, ptr %27, align 8, !tbaa !5
  %662 = load ptr, ptr %24, align 8, !tbaa !5
  %663 = getelementptr inbounds float, ptr %662, i64 1
  %664 = load ptr, ptr %28, align 8, !tbaa !5
  %665 = getelementptr inbounds float, ptr %664, i64 1
  %666 = call i32 @slatrs_(ptr noundef @.str, ptr noundef %655, ptr noundef @.str.1, ptr noundef %656, ptr noundef %657, ptr noundef %660, ptr noundef %661, ptr noundef %663, ptr noundef %64, ptr noundef %665, ptr noundef %60)
  %667 = getelementptr inbounds [1 x i8], ptr %71, i64 0, i64 0
  store i8 89, ptr %667, align 1, !tbaa !20
  %668 = load ptr, ptr %19, align 8, !tbaa !5
  %669 = load ptr, ptr %24, align 8, !tbaa !5
  %670 = getelementptr inbounds float, ptr %669, i64 1
  %671 = call double @f2c_sasum(ptr noundef %668, ptr noundef %670, ptr noundef @c__1)
  %672 = fptrunc double %671 to float
  store float %672, ptr %68, align 4, !tbaa !11
  %673 = load float, ptr %68, align 4, !tbaa !11
  %674 = load float, ptr %73, align 4, !tbaa !11
  %675 = load float, ptr %64, align 4, !tbaa !11
  %676 = fmul float %674, %675
  %677 = fcmp oge float %673, %676
  br i1 %677, label %678, label %679

678:                                              ; preds = %654
  br label %722

679:                                              ; preds = %654
  %680 = load ptr, ptr %29, align 8, !tbaa !5
  %681 = load float, ptr %680, align 4, !tbaa !11
  %682 = load float, ptr %67, align 4, !tbaa !11
  %683 = fadd float %682, 1.000000e+00
  %684 = fdiv float %681, %683
  store float %684, ptr %61, align 4, !tbaa !11
  %685 = load ptr, ptr %29, align 8, !tbaa !5
  %686 = load float, ptr %685, align 4, !tbaa !11
  %687 = load ptr, ptr %24, align 8, !tbaa !5
  %688 = getelementptr inbounds float, ptr %687, i64 1
  store float %686, ptr %688, align 4, !tbaa !11
  %689 = load ptr, ptr %19, align 8, !tbaa !5
  %690 = load i64, ptr %689, align 8, !tbaa !9
  store i64 %690, ptr %38, align 8, !tbaa !9
  store i64 2, ptr %45, align 8, !tbaa !9
  br label %691

691:                                              ; preds = %700, %679
  %692 = load i64, ptr %45, align 8, !tbaa !9
  %693 = load i64, ptr %38, align 8, !tbaa !9
  %694 = icmp sle i64 %692, %693
  br i1 %694, label %695, label %703

695:                                              ; preds = %691
  %696 = load float, ptr %61, align 4, !tbaa !11
  %697 = load ptr, ptr %24, align 8, !tbaa !5
  %698 = load i64, ptr %45, align 8, !tbaa !9
  %699 = getelementptr inbounds float, ptr %697, i64 %698
  store float %696, ptr %699, align 4, !tbaa !11
  br label %700

700:                                              ; preds = %695
  %701 = load i64, ptr %45, align 8, !tbaa !9
  %702 = add nsw i64 %701, 1
  store i64 %702, ptr %45, align 8, !tbaa !9
  br label %691, !llvm.loop !24

703:                                              ; preds = %691
  %704 = load ptr, ptr %29, align 8, !tbaa !5
  %705 = load float, ptr %704, align 4, !tbaa !11
  %706 = load float, ptr %67, align 4, !tbaa !11
  %707 = load ptr, ptr %24, align 8, !tbaa !5
  %708 = load ptr, ptr %19, align 8, !tbaa !5
  %709 = load i64, ptr %708, align 8, !tbaa !9
  %710 = load i64, ptr %59, align 8, !tbaa !9
  %711 = sub nsw i64 %709, %710
  %712 = add nsw i64 %711, 1
  %713 = getelementptr inbounds float, ptr %707, i64 %712
  %714 = load float, ptr %713, align 4, !tbaa !11
  %715 = fneg float %705
  %716 = call float @llvm.fmuladd.f32(float %715, float %706, float %714)
  store float %716, ptr %713, align 4, !tbaa !11
  br label %717

717:                                              ; preds = %703
  %718 = load i64, ptr %59, align 8, !tbaa !9
  %719 = add nsw i64 %718, 1
  store i64 %719, ptr %59, align 8, !tbaa !9
  br label %650, !llvm.loop !25

720:                                              ; preds = %650
  %721 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %721, align 8, !tbaa !9
  br label %722

722:                                              ; preds = %720, %678
  %723 = load ptr, ptr %19, align 8, !tbaa !5
  %724 = load ptr, ptr %24, align 8, !tbaa !5
  %725 = getelementptr inbounds float, ptr %724, i64 1
  %726 = call i64 @f2c_isamax(ptr noundef %723, ptr noundef %725, ptr noundef @c__1)
  store i64 %726, ptr %45, align 8, !tbaa !9
  %727 = load ptr, ptr %24, align 8, !tbaa !5
  %728 = load i64, ptr %45, align 8, !tbaa !9
  %729 = getelementptr inbounds float, ptr %727, i64 %728
  %730 = load float, ptr %729, align 4, !tbaa !11
  store float %730, ptr %41, align 4, !tbaa !11
  %731 = load float, ptr %41, align 4, !tbaa !11
  %732 = fcmp oge float %731, 0.000000e+00
  br i1 %732, label %733, label %735

733:                                              ; preds = %722
  %734 = load float, ptr %41, align 4, !tbaa !11
  br label %738

735:                                              ; preds = %722
  %736 = load float, ptr %41, align 4, !tbaa !11
  %737 = fneg float %736
  br label %738

738:                                              ; preds = %735, %733
  %739 = phi float [ %734, %733 ], [ %737, %735 ]
  %740 = fpext float %739 to double
  %741 = fdiv double 1.000000e+00, %740
  %742 = fptrunc double %741 to float
  store float %742, ptr %42, align 4, !tbaa !11
  %743 = load ptr, ptr %19, align 8, !tbaa !5
  %744 = load ptr, ptr %24, align 8, !tbaa !5
  %745 = getelementptr inbounds float, ptr %744, i64 1
  %746 = call i32 @f2c_sscal(ptr noundef %743, ptr noundef %42, ptr noundef %745, ptr noundef @c__1)
  br label %2240

747:                                              ; preds = %178
  %748 = load ptr, ptr %18, align 8, !tbaa !5
  %749 = load i64, ptr %748, align 8, !tbaa !9
  %750 = icmp ne i64 %749, 0
  br i1 %750, label %751, label %771

751:                                              ; preds = %747
  %752 = load ptr, ptr %19, align 8, !tbaa !5
  %753 = load i64, ptr %752, align 8, !tbaa !9
  store i64 %753, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %754

754:                                              ; preds = %767, %751
  %755 = load i64, ptr %45, align 8, !tbaa !9
  %756 = load i64, ptr %37, align 8, !tbaa !9
  %757 = icmp sle i64 %755, %756
  br i1 %757, label %758, label %770

758:                                              ; preds = %754
  %759 = load ptr, ptr %29, align 8, !tbaa !5
  %760 = load float, ptr %759, align 4, !tbaa !11
  %761 = load ptr, ptr %24, align 8, !tbaa !5
  %762 = load i64, ptr %45, align 8, !tbaa !9
  %763 = getelementptr inbounds float, ptr %761, i64 %762
  store float %760, ptr %763, align 4, !tbaa !11
  %764 = load ptr, ptr %25, align 8, !tbaa !5
  %765 = load i64, ptr %45, align 8, !tbaa !9
  %766 = getelementptr inbounds float, ptr %764, i64 %765
  store float 0.000000e+00, ptr %766, align 4, !tbaa !11
  br label %767

767:                                              ; preds = %758
  %768 = load i64, ptr %45, align 8, !tbaa !9
  %769 = add nsw i64 %768, 1
  store i64 %769, ptr %45, align 8, !tbaa !9
  br label %754, !llvm.loop !26

770:                                              ; preds = %754
  br label %809

771:                                              ; preds = %747
  %772 = load ptr, ptr %19, align 8, !tbaa !5
  %773 = load ptr, ptr %24, align 8, !tbaa !5
  %774 = getelementptr inbounds float, ptr %773, i64 1
  %775 = call double @f2c_snrm2(ptr noundef %772, ptr noundef %774, ptr noundef @c__1)
  %776 = fptrunc double %775 to float
  store float %776, ptr %41, align 4, !tbaa !11
  %777 = load ptr, ptr %19, align 8, !tbaa !5
  %778 = load ptr, ptr %25, align 8, !tbaa !5
  %779 = getelementptr inbounds float, ptr %778, i64 1
  %780 = call double @f2c_snrm2(ptr noundef %777, ptr noundef %779, ptr noundef @c__1)
  %781 = fptrunc double %780 to float
  store float %781, ptr %42, align 4, !tbaa !11
  %782 = call double @slapy2_(ptr noundef %41, ptr noundef %42)
  %783 = fptrunc double %782 to float
  store float %783, ptr %62, align 4, !tbaa !11
  %784 = load ptr, ptr %29, align 8, !tbaa !5
  %785 = load float, ptr %784, align 4, !tbaa !11
  %786 = load float, ptr %67, align 4, !tbaa !11
  %787 = fmul float %785, %786
  %788 = fpext float %787 to double
  %789 = load float, ptr %62, align 4, !tbaa !11
  %790 = load float, ptr %72, align 4, !tbaa !11
  %791 = fcmp oge float %789, %790
  br i1 %791, label %792, label %794

792:                                              ; preds = %771
  %793 = load float, ptr %62, align 4, !tbaa !11
  br label %796

794:                                              ; preds = %771
  %795 = load float, ptr %72, align 4, !tbaa !11
  br label %796

796:                                              ; preds = %794, %792
  %797 = phi float [ %793, %792 ], [ %795, %794 ]
  %798 = fpext float %797 to double
  %799 = fdiv double %788, %798
  %800 = fptrunc double %799 to float
  store float %800, ptr %58, align 4, !tbaa !11
  %801 = load ptr, ptr %19, align 8, !tbaa !5
  %802 = load ptr, ptr %24, align 8, !tbaa !5
  %803 = getelementptr inbounds float, ptr %802, i64 1
  %804 = call i32 @f2c_sscal(ptr noundef %801, ptr noundef %58, ptr noundef %803, ptr noundef @c__1)
  %805 = load ptr, ptr %19, align 8, !tbaa !5
  %806 = load ptr, ptr %25, align 8, !tbaa !5
  %807 = getelementptr inbounds float, ptr %806, i64 1
  %808 = call i32 @f2c_sscal(ptr noundef %805, ptr noundef %58, ptr noundef %807, ptr noundef @c__1)
  br label %809

809:                                              ; preds = %796, %770
  %810 = load ptr, ptr %17, align 8, !tbaa !5
  %811 = load i64, ptr %810, align 8, !tbaa !9
  %812 = icmp ne i64 %811, 0
  br i1 %812, label %813, label %1271

813:                                              ; preds = %809
  %814 = load ptr, ptr %23, align 8, !tbaa !5
  %815 = load float, ptr %814, align 4, !tbaa !11
  %816 = fneg float %815
  %817 = load ptr, ptr %26, align 8, !tbaa !5
  %818 = load i64, ptr %33, align 8, !tbaa !9
  %819 = add nsw i64 %818, 2
  %820 = getelementptr inbounds float, ptr %817, i64 %819
  store float %816, ptr %820, align 4, !tbaa !11
  %821 = load ptr, ptr %19, align 8, !tbaa !5
  %822 = load i64, ptr %821, align 8, !tbaa !9
  store i64 %822, ptr %37, align 8, !tbaa !9
  store i64 2, ptr %45, align 8, !tbaa !9
  br label %823

823:                                              ; preds = %834, %813
  %824 = load i64, ptr %45, align 8, !tbaa !9
  %825 = load i64, ptr %37, align 8, !tbaa !9
  %826 = icmp sle i64 %824, %825
  br i1 %826, label %827, label %837

827:                                              ; preds = %823
  %828 = load ptr, ptr %26, align 8, !tbaa !5
  %829 = load i64, ptr %45, align 8, !tbaa !9
  %830 = add nsw i64 %829, 1
  %831 = load i64, ptr %33, align 8, !tbaa !9
  %832 = add nsw i64 %830, %831
  %833 = getelementptr inbounds float, ptr %828, i64 %832
  store float 0.000000e+00, ptr %833, align 4, !tbaa !11
  br label %834

834:                                              ; preds = %827
  %835 = load i64, ptr %45, align 8, !tbaa !9
  %836 = add nsw i64 %835, 1
  store i64 %836, ptr %45, align 8, !tbaa !9
  br label %823, !llvm.loop !27

837:                                              ; preds = %823
  %838 = load ptr, ptr %19, align 8, !tbaa !5
  %839 = load i64, ptr %838, align 8, !tbaa !9
  %840 = sub nsw i64 %839, 1
  store i64 %840, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %841

841:                                              ; preds = %1224, %837
  %842 = load i64, ptr %45, align 8, !tbaa !9
  %843 = load i64, ptr %37, align 8, !tbaa !9
  %844 = icmp sle i64 %842, %843
  br i1 %844, label %845, label %1227

845:                                              ; preds = %841
  %846 = load ptr, ptr %26, align 8, !tbaa !5
  %847 = load i64, ptr %45, align 8, !tbaa !9
  %848 = load i64, ptr %45, align 8, !tbaa !9
  %849 = load i64, ptr %33, align 8, !tbaa !9
  %850 = mul nsw i64 %848, %849
  %851 = add nsw i64 %847, %850
  %852 = getelementptr inbounds float, ptr %846, i64 %851
  %853 = load ptr, ptr %26, align 8, !tbaa !5
  %854 = load i64, ptr %45, align 8, !tbaa !9
  %855 = add nsw i64 %854, 1
  %856 = load i64, ptr %45, align 8, !tbaa !9
  %857 = load i64, ptr %33, align 8, !tbaa !9
  %858 = mul nsw i64 %856, %857
  %859 = add nsw i64 %855, %858
  %860 = getelementptr inbounds float, ptr %853, i64 %859
  %861 = call double @slapy2_(ptr noundef %852, ptr noundef %860)
  %862 = fptrunc double %861 to float
  store float %862, ptr %69, align 4, !tbaa !11
  %863 = load ptr, ptr %20, align 8, !tbaa !5
  %864 = load i64, ptr %45, align 8, !tbaa !9
  %865 = add nsw i64 %864, 1
  %866 = load i64, ptr %45, align 8, !tbaa !9
  %867 = load i64, ptr %35, align 8, !tbaa !9
  %868 = mul nsw i64 %866, %867
  %869 = add nsw i64 %865, %868
  %870 = getelementptr inbounds float, ptr %863, i64 %869
  %871 = load float, ptr %870, align 4, !tbaa !11
  store float %871, ptr %54, align 4, !tbaa !11
  %872 = load float, ptr %69, align 4, !tbaa !11
  %873 = fpext float %872 to double
  %874 = load float, ptr %54, align 4, !tbaa !11
  %875 = fcmp oge float %874, 0.000000e+00
  br i1 %875, label %876, label %878

876:                                              ; preds = %845
  %877 = load float, ptr %54, align 4, !tbaa !11
  br label %881

878:                                              ; preds = %845
  %879 = load float, ptr %54, align 4, !tbaa !11
  %880 = fneg float %879
  br label %881

881:                                              ; preds = %878, %876
  %882 = phi float [ %877, %876 ], [ %880, %878 ]
  %883 = fpext float %882 to double
  %884 = fcmp olt double %873, %883
  br i1 %884, label %885, label %1043

885:                                              ; preds = %881
  %886 = load ptr, ptr %26, align 8, !tbaa !5
  %887 = load i64, ptr %45, align 8, !tbaa !9
  %888 = load i64, ptr %45, align 8, !tbaa !9
  %889 = load i64, ptr %33, align 8, !tbaa !9
  %890 = mul nsw i64 %888, %889
  %891 = add nsw i64 %887, %890
  %892 = getelementptr inbounds float, ptr %886, i64 %891
  %893 = load float, ptr %892, align 4, !tbaa !11
  %894 = load float, ptr %54, align 4, !tbaa !11
  %895 = fdiv float %893, %894
  store float %895, ptr %57, align 4, !tbaa !11
  %896 = load ptr, ptr %26, align 8, !tbaa !5
  %897 = load i64, ptr %45, align 8, !tbaa !9
  %898 = add nsw i64 %897, 1
  %899 = load i64, ptr %45, align 8, !tbaa !9
  %900 = load i64, ptr %33, align 8, !tbaa !9
  %901 = mul nsw i64 %899, %900
  %902 = add nsw i64 %898, %901
  %903 = getelementptr inbounds float, ptr %896, i64 %902
  %904 = load float, ptr %903, align 4, !tbaa !11
  %905 = load float, ptr %54, align 4, !tbaa !11
  %906 = fdiv float %904, %905
  store float %906, ptr %56, align 4, !tbaa !11
  %907 = load float, ptr %54, align 4, !tbaa !11
  %908 = load ptr, ptr %26, align 8, !tbaa !5
  %909 = load i64, ptr %45, align 8, !tbaa !9
  %910 = load i64, ptr %45, align 8, !tbaa !9
  %911 = load i64, ptr %33, align 8, !tbaa !9
  %912 = mul nsw i64 %910, %911
  %913 = add nsw i64 %909, %912
  %914 = getelementptr inbounds float, ptr %908, i64 %913
  store float %907, ptr %914, align 4, !tbaa !11
  %915 = load ptr, ptr %26, align 8, !tbaa !5
  %916 = load i64, ptr %45, align 8, !tbaa !9
  %917 = add nsw i64 %916, 1
  %918 = load i64, ptr %45, align 8, !tbaa !9
  %919 = load i64, ptr %33, align 8, !tbaa !9
  %920 = mul nsw i64 %918, %919
  %921 = add nsw i64 %917, %920
  %922 = getelementptr inbounds float, ptr %915, i64 %921
  store float 0.000000e+00, ptr %922, align 4, !tbaa !11
  %923 = load ptr, ptr %19, align 8, !tbaa !5
  %924 = load i64, ptr %923, align 8, !tbaa !9
  store i64 %924, ptr %38, align 8, !tbaa !9
  %925 = load i64, ptr %45, align 8, !tbaa !9
  %926 = add nsw i64 %925, 1
  store i64 %926, ptr %46, align 8, !tbaa !9
  br label %927

927:                                              ; preds = %999, %885
  %928 = load i64, ptr %46, align 8, !tbaa !9
  %929 = load i64, ptr %38, align 8, !tbaa !9
  %930 = icmp sle i64 %928, %929
  br i1 %930, label %931, label %1002

931:                                              ; preds = %927
  %932 = load ptr, ptr %26, align 8, !tbaa !5
  %933 = load i64, ptr %45, align 8, !tbaa !9
  %934 = add nsw i64 %933, 1
  %935 = load i64, ptr %46, align 8, !tbaa !9
  %936 = load i64, ptr %33, align 8, !tbaa !9
  %937 = mul nsw i64 %935, %936
  %938 = add nsw i64 %934, %937
  %939 = getelementptr inbounds float, ptr %932, i64 %938
  %940 = load float, ptr %939, align 4, !tbaa !11
  store float %940, ptr %61, align 4, !tbaa !11
  %941 = load ptr, ptr %26, align 8, !tbaa !5
  %942 = load i64, ptr %45, align 8, !tbaa !9
  %943 = load i64, ptr %46, align 8, !tbaa !9
  %944 = load i64, ptr %33, align 8, !tbaa !9
  %945 = mul nsw i64 %943, %944
  %946 = add nsw i64 %942, %945
  %947 = getelementptr inbounds float, ptr %941, i64 %946
  %948 = load float, ptr %947, align 4, !tbaa !11
  %949 = load float, ptr %57, align 4, !tbaa !11
  %950 = load float, ptr %61, align 4, !tbaa !11
  %951 = fneg float %949
  %952 = call float @llvm.fmuladd.f32(float %951, float %950, float %948)
  %953 = load ptr, ptr %26, align 8, !tbaa !5
  %954 = load i64, ptr %45, align 8, !tbaa !9
  %955 = add nsw i64 %954, 1
  %956 = load i64, ptr %46, align 8, !tbaa !9
  %957 = load i64, ptr %33, align 8, !tbaa !9
  %958 = mul nsw i64 %956, %957
  %959 = add nsw i64 %955, %958
  %960 = getelementptr inbounds float, ptr %953, i64 %959
  store float %952, ptr %960, align 4, !tbaa !11
  %961 = load ptr, ptr %26, align 8, !tbaa !5
  %962 = load i64, ptr %46, align 8, !tbaa !9
  %963 = add nsw i64 %962, 1
  %964 = load i64, ptr %45, align 8, !tbaa !9
  %965 = load i64, ptr %33, align 8, !tbaa !9
  %966 = mul nsw i64 %964, %965
  %967 = add nsw i64 %963, %966
  %968 = getelementptr inbounds float, ptr %961, i64 %967
  %969 = load float, ptr %968, align 4, !tbaa !11
  %970 = load float, ptr %56, align 4, !tbaa !11
  %971 = load float, ptr %61, align 4, !tbaa !11
  %972 = fneg float %970
  %973 = call float @llvm.fmuladd.f32(float %972, float %971, float %969)
  %974 = load ptr, ptr %26, align 8, !tbaa !5
  %975 = load i64, ptr %46, align 8, !tbaa !9
  %976 = add nsw i64 %975, 1
  %977 = load i64, ptr %45, align 8, !tbaa !9
  %978 = add nsw i64 %977, 1
  %979 = load i64, ptr %33, align 8, !tbaa !9
  %980 = mul nsw i64 %978, %979
  %981 = add nsw i64 %976, %980
  %982 = getelementptr inbounds float, ptr %974, i64 %981
  store float %973, ptr %982, align 4, !tbaa !11
  %983 = load float, ptr %61, align 4, !tbaa !11
  %984 = load ptr, ptr %26, align 8, !tbaa !5
  %985 = load i64, ptr %45, align 8, !tbaa !9
  %986 = load i64, ptr %46, align 8, !tbaa !9
  %987 = load i64, ptr %33, align 8, !tbaa !9
  %988 = mul nsw i64 %986, %987
  %989 = add nsw i64 %985, %988
  %990 = getelementptr inbounds float, ptr %984, i64 %989
  store float %983, ptr %990, align 4, !tbaa !11
  %991 = load ptr, ptr %26, align 8, !tbaa !5
  %992 = load i64, ptr %46, align 8, !tbaa !9
  %993 = add nsw i64 %992, 1
  %994 = load i64, ptr %45, align 8, !tbaa !9
  %995 = load i64, ptr %33, align 8, !tbaa !9
  %996 = mul nsw i64 %994, %995
  %997 = add nsw i64 %993, %996
  %998 = getelementptr inbounds float, ptr %991, i64 %997
  store float 0.000000e+00, ptr %998, align 4, !tbaa !11
  br label %999

999:                                              ; preds = %931
  %1000 = load i64, ptr %46, align 8, !tbaa !9
  %1001 = add nsw i64 %1000, 1
  store i64 %1001, ptr %46, align 8, !tbaa !9
  br label %927, !llvm.loop !28

1002:                                             ; preds = %927
  %1003 = load ptr, ptr %23, align 8, !tbaa !5
  %1004 = load float, ptr %1003, align 4, !tbaa !11
  %1005 = fneg float %1004
  %1006 = load ptr, ptr %26, align 8, !tbaa !5
  %1007 = load i64, ptr %45, align 8, !tbaa !9
  %1008 = add nsw i64 %1007, 2
  %1009 = load i64, ptr %45, align 8, !tbaa !9
  %1010 = load i64, ptr %33, align 8, !tbaa !9
  %1011 = mul nsw i64 %1009, %1010
  %1012 = add nsw i64 %1008, %1011
  %1013 = getelementptr inbounds float, ptr %1006, i64 %1012
  store float %1005, ptr %1013, align 4, !tbaa !11
  %1014 = load float, ptr %56, align 4, !tbaa !11
  %1015 = load ptr, ptr %23, align 8, !tbaa !5
  %1016 = load float, ptr %1015, align 4, !tbaa !11
  %1017 = load ptr, ptr %26, align 8, !tbaa !5
  %1018 = load i64, ptr %45, align 8, !tbaa !9
  %1019 = add nsw i64 %1018, 1
  %1020 = load i64, ptr %45, align 8, !tbaa !9
  %1021 = add nsw i64 %1020, 1
  %1022 = load i64, ptr %33, align 8, !tbaa !9
  %1023 = mul nsw i64 %1021, %1022
  %1024 = add nsw i64 %1019, %1023
  %1025 = getelementptr inbounds float, ptr %1017, i64 %1024
  %1026 = load float, ptr %1025, align 4, !tbaa !11
  %1027 = fneg float %1014
  %1028 = call float @llvm.fmuladd.f32(float %1027, float %1016, float %1026)
  store float %1028, ptr %1025, align 4, !tbaa !11
  %1029 = load float, ptr %57, align 4, !tbaa !11
  %1030 = load ptr, ptr %23, align 8, !tbaa !5
  %1031 = load float, ptr %1030, align 4, !tbaa !11
  %1032 = load ptr, ptr %26, align 8, !tbaa !5
  %1033 = load i64, ptr %45, align 8, !tbaa !9
  %1034 = add nsw i64 %1033, 2
  %1035 = load i64, ptr %45, align 8, !tbaa !9
  %1036 = add nsw i64 %1035, 1
  %1037 = load i64, ptr %33, align 8, !tbaa !9
  %1038 = mul nsw i64 %1036, %1037
  %1039 = add nsw i64 %1034, %1038
  %1040 = getelementptr inbounds float, ptr %1032, i64 %1039
  %1041 = load float, ptr %1040, align 4, !tbaa !11
  %1042 = call float @llvm.fmuladd.f32(float %1029, float %1031, float %1041)
  store float %1042, ptr %1040, align 4, !tbaa !11
  br label %1191

1043:                                             ; preds = %881
  %1044 = load float, ptr %69, align 4, !tbaa !11
  %1045 = fcmp oeq float %1044, 0.000000e+00
  br i1 %1045, label %1046, label %1066

1046:                                             ; preds = %1043
  %1047 = load ptr, ptr %29, align 8, !tbaa !5
  %1048 = load float, ptr %1047, align 4, !tbaa !11
  %1049 = load ptr, ptr %26, align 8, !tbaa !5
  %1050 = load i64, ptr %45, align 8, !tbaa !9
  %1051 = load i64, ptr %45, align 8, !tbaa !9
  %1052 = load i64, ptr %33, align 8, !tbaa !9
  %1053 = mul nsw i64 %1051, %1052
  %1054 = add nsw i64 %1050, %1053
  %1055 = getelementptr inbounds float, ptr %1049, i64 %1054
  store float %1048, ptr %1055, align 4, !tbaa !11
  %1056 = load ptr, ptr %26, align 8, !tbaa !5
  %1057 = load i64, ptr %45, align 8, !tbaa !9
  %1058 = add nsw i64 %1057, 1
  %1059 = load i64, ptr %45, align 8, !tbaa !9
  %1060 = load i64, ptr %33, align 8, !tbaa !9
  %1061 = mul nsw i64 %1059, %1060
  %1062 = add nsw i64 %1058, %1061
  %1063 = getelementptr inbounds float, ptr %1056, i64 %1062
  store float 0.000000e+00, ptr %1063, align 4, !tbaa !11
  %1064 = load ptr, ptr %29, align 8, !tbaa !5
  %1065 = load float, ptr %1064, align 4, !tbaa !11
  store float %1065, ptr %69, align 4, !tbaa !11
  br label %1066

1066:                                             ; preds = %1046, %1043
  %1067 = load float, ptr %54, align 4, !tbaa !11
  %1068 = load float, ptr %69, align 4, !tbaa !11
  %1069 = fdiv float %1067, %1068
  %1070 = load float, ptr %69, align 4, !tbaa !11
  %1071 = fdiv float %1069, %1070
  store float %1071, ptr %54, align 4, !tbaa !11
  %1072 = load ptr, ptr %26, align 8, !tbaa !5
  %1073 = load i64, ptr %45, align 8, !tbaa !9
  %1074 = load i64, ptr %45, align 8, !tbaa !9
  %1075 = load i64, ptr %33, align 8, !tbaa !9
  %1076 = mul nsw i64 %1074, %1075
  %1077 = add nsw i64 %1073, %1076
  %1078 = getelementptr inbounds float, ptr %1072, i64 %1077
  %1079 = load float, ptr %1078, align 4, !tbaa !11
  %1080 = load float, ptr %54, align 4, !tbaa !11
  %1081 = fmul float %1079, %1080
  store float %1081, ptr %57, align 4, !tbaa !11
  %1082 = load ptr, ptr %26, align 8, !tbaa !5
  %1083 = load i64, ptr %45, align 8, !tbaa !9
  %1084 = add nsw i64 %1083, 1
  %1085 = load i64, ptr %45, align 8, !tbaa !9
  %1086 = load i64, ptr %33, align 8, !tbaa !9
  %1087 = mul nsw i64 %1085, %1086
  %1088 = add nsw i64 %1084, %1087
  %1089 = getelementptr inbounds float, ptr %1082, i64 %1088
  %1090 = load float, ptr %1089, align 4, !tbaa !11
  %1091 = fneg float %1090
  %1092 = load float, ptr %54, align 4, !tbaa !11
  %1093 = fmul float %1091, %1092
  store float %1093, ptr %56, align 4, !tbaa !11
  %1094 = load ptr, ptr %19, align 8, !tbaa !5
  %1095 = load i64, ptr %1094, align 8, !tbaa !9
  store i64 %1095, ptr %38, align 8, !tbaa !9
  %1096 = load i64, ptr %45, align 8, !tbaa !9
  %1097 = add nsw i64 %1096, 1
  store i64 %1097, ptr %46, align 8, !tbaa !9
  br label %1098

1098:                                             ; preds = %1174, %1066
  %1099 = load i64, ptr %46, align 8, !tbaa !9
  %1100 = load i64, ptr %38, align 8, !tbaa !9
  %1101 = icmp sle i64 %1099, %1100
  br i1 %1101, label %1102, label %1177

1102:                                             ; preds = %1098
  %1103 = load ptr, ptr %26, align 8, !tbaa !5
  %1104 = load i64, ptr %45, align 8, !tbaa !9
  %1105 = add nsw i64 %1104, 1
  %1106 = load i64, ptr %46, align 8, !tbaa !9
  %1107 = load i64, ptr %33, align 8, !tbaa !9
  %1108 = mul nsw i64 %1106, %1107
  %1109 = add nsw i64 %1105, %1108
  %1110 = getelementptr inbounds float, ptr %1103, i64 %1109
  %1111 = load float, ptr %1110, align 4, !tbaa !11
  %1112 = load float, ptr %57, align 4, !tbaa !11
  %1113 = load ptr, ptr %26, align 8, !tbaa !5
  %1114 = load i64, ptr %45, align 8, !tbaa !9
  %1115 = load i64, ptr %46, align 8, !tbaa !9
  %1116 = load i64, ptr %33, align 8, !tbaa !9
  %1117 = mul nsw i64 %1115, %1116
  %1118 = add nsw i64 %1114, %1117
  %1119 = getelementptr inbounds float, ptr %1113, i64 %1118
  %1120 = load float, ptr %1119, align 4, !tbaa !11
  %1121 = fneg float %1112
  %1122 = call float @llvm.fmuladd.f32(float %1121, float %1120, float %1111)
  %1123 = load float, ptr %56, align 4, !tbaa !11
  %1124 = load ptr, ptr %26, align 8, !tbaa !5
  %1125 = load i64, ptr %46, align 8, !tbaa !9
  %1126 = add nsw i64 %1125, 1
  %1127 = load i64, ptr %45, align 8, !tbaa !9
  %1128 = load i64, ptr %33, align 8, !tbaa !9
  %1129 = mul nsw i64 %1127, %1128
  %1130 = add nsw i64 %1126, %1129
  %1131 = getelementptr inbounds float, ptr %1124, i64 %1130
  %1132 = load float, ptr %1131, align 4, !tbaa !11
  %1133 = call float @llvm.fmuladd.f32(float %1123, float %1132, float %1122)
  %1134 = load ptr, ptr %26, align 8, !tbaa !5
  %1135 = load i64, ptr %45, align 8, !tbaa !9
  %1136 = add nsw i64 %1135, 1
  %1137 = load i64, ptr %46, align 8, !tbaa !9
  %1138 = load i64, ptr %33, align 8, !tbaa !9
  %1139 = mul nsw i64 %1137, %1138
  %1140 = add nsw i64 %1136, %1139
  %1141 = getelementptr inbounds float, ptr %1134, i64 %1140
  store float %1133, ptr %1141, align 4, !tbaa !11
  %1142 = load float, ptr %57, align 4, !tbaa !11
  %1143 = fneg float %1142
  %1144 = load ptr, ptr %26, align 8, !tbaa !5
  %1145 = load i64, ptr %46, align 8, !tbaa !9
  %1146 = add nsw i64 %1145, 1
  %1147 = load i64, ptr %45, align 8, !tbaa !9
  %1148 = load i64, ptr %33, align 8, !tbaa !9
  %1149 = mul nsw i64 %1147, %1148
  %1150 = add nsw i64 %1146, %1149
  %1151 = getelementptr inbounds float, ptr %1144, i64 %1150
  %1152 = load float, ptr %1151, align 4, !tbaa !11
  %1153 = load float, ptr %56, align 4, !tbaa !11
  %1154 = load ptr, ptr %26, align 8, !tbaa !5
  %1155 = load i64, ptr %45, align 8, !tbaa !9
  %1156 = load i64, ptr %46, align 8, !tbaa !9
  %1157 = load i64, ptr %33, align 8, !tbaa !9
  %1158 = mul nsw i64 %1156, %1157
  %1159 = add nsw i64 %1155, %1158
  %1160 = getelementptr inbounds float, ptr %1154, i64 %1159
  %1161 = load float, ptr %1160, align 4, !tbaa !11
  %1162 = fmul float %1153, %1161
  %1163 = fneg float %1162
  %1164 = call float @llvm.fmuladd.f32(float %1143, float %1152, float %1163)
  %1165 = load ptr, ptr %26, align 8, !tbaa !5
  %1166 = load i64, ptr %46, align 8, !tbaa !9
  %1167 = add nsw i64 %1166, 1
  %1168 = load i64, ptr %45, align 8, !tbaa !9
  %1169 = add nsw i64 %1168, 1
  %1170 = load i64, ptr %33, align 8, !tbaa !9
  %1171 = mul nsw i64 %1169, %1170
  %1172 = add nsw i64 %1167, %1171
  %1173 = getelementptr inbounds float, ptr %1165, i64 %1172
  store float %1164, ptr %1173, align 4, !tbaa !11
  br label %1174

1174:                                             ; preds = %1102
  %1175 = load i64, ptr %46, align 8, !tbaa !9
  %1176 = add nsw i64 %1175, 1
  store i64 %1176, ptr %46, align 8, !tbaa !9
  br label %1098, !llvm.loop !29

1177:                                             ; preds = %1098
  %1178 = load ptr, ptr %23, align 8, !tbaa !5
  %1179 = load float, ptr %1178, align 4, !tbaa !11
  %1180 = load ptr, ptr %26, align 8, !tbaa !5
  %1181 = load i64, ptr %45, align 8, !tbaa !9
  %1182 = add nsw i64 %1181, 2
  %1183 = load i64, ptr %45, align 8, !tbaa !9
  %1184 = add nsw i64 %1183, 1
  %1185 = load i64, ptr %33, align 8, !tbaa !9
  %1186 = mul nsw i64 %1184, %1185
  %1187 = add nsw i64 %1182, %1186
  %1188 = getelementptr inbounds float, ptr %1180, i64 %1187
  %1189 = load float, ptr %1188, align 4, !tbaa !11
  %1190 = fsub float %1189, %1179
  store float %1190, ptr %1188, align 4, !tbaa !11
  br label %1191

1191:                                             ; preds = %1177, %1002
  %1192 = load ptr, ptr %19, align 8, !tbaa !5
  %1193 = load i64, ptr %1192, align 8, !tbaa !9
  %1194 = load i64, ptr %45, align 8, !tbaa !9
  %1195 = sub nsw i64 %1193, %1194
  store i64 %1195, ptr %38, align 8, !tbaa !9
  %1196 = load ptr, ptr %19, align 8, !tbaa !5
  %1197 = load i64, ptr %1196, align 8, !tbaa !9
  %1198 = load i64, ptr %45, align 8, !tbaa !9
  %1199 = sub nsw i64 %1197, %1198
  store i64 %1199, ptr %39, align 8, !tbaa !9
  %1200 = load ptr, ptr %26, align 8, !tbaa !5
  %1201 = load i64, ptr %45, align 8, !tbaa !9
  %1202 = load i64, ptr %45, align 8, !tbaa !9
  %1203 = add nsw i64 %1202, 1
  %1204 = load i64, ptr %33, align 8, !tbaa !9
  %1205 = mul nsw i64 %1203, %1204
  %1206 = add nsw i64 %1201, %1205
  %1207 = getelementptr inbounds float, ptr %1200, i64 %1206
  %1208 = load ptr, ptr %27, align 8, !tbaa !5
  %1209 = call double @f2c_sasum(ptr noundef %38, ptr noundef %1207, ptr noundef %1208)
  %1210 = load ptr, ptr %26, align 8, !tbaa !5
  %1211 = load i64, ptr %45, align 8, !tbaa !9
  %1212 = add nsw i64 %1211, 2
  %1213 = load i64, ptr %45, align 8, !tbaa !9
  %1214 = load i64, ptr %33, align 8, !tbaa !9
  %1215 = mul nsw i64 %1213, %1214
  %1216 = add nsw i64 %1212, %1215
  %1217 = getelementptr inbounds float, ptr %1210, i64 %1216
  %1218 = call double @f2c_sasum(ptr noundef %39, ptr noundef %1217, ptr noundef @c__1)
  %1219 = fadd double %1209, %1218
  %1220 = fptrunc double %1219 to float
  %1221 = load ptr, ptr %28, align 8, !tbaa !5
  %1222 = load i64, ptr %45, align 8, !tbaa !9
  %1223 = getelementptr inbounds float, ptr %1221, i64 %1222
  store float %1220, ptr %1223, align 4, !tbaa !11
  br label %1224

1224:                                             ; preds = %1191
  %1225 = load i64, ptr %45, align 8, !tbaa !9
  %1226 = add nsw i64 %1225, 1
  store i64 %1226, ptr %45, align 8, !tbaa !9
  br label %841, !llvm.loop !30

1227:                                             ; preds = %841
  %1228 = load ptr, ptr %26, align 8, !tbaa !5
  %1229 = load ptr, ptr %19, align 8, !tbaa !5
  %1230 = load i64, ptr %1229, align 8, !tbaa !9
  %1231 = load ptr, ptr %19, align 8, !tbaa !5
  %1232 = load i64, ptr %1231, align 8, !tbaa !9
  %1233 = load i64, ptr %33, align 8, !tbaa !9
  %1234 = mul nsw i64 %1232, %1233
  %1235 = add nsw i64 %1230, %1234
  %1236 = getelementptr inbounds float, ptr %1228, i64 %1235
  %1237 = load float, ptr %1236, align 4, !tbaa !11
  %1238 = fcmp oeq float %1237, 0.000000e+00
  br i1 %1238, label %1239, label %1264

1239:                                             ; preds = %1227
  %1240 = load ptr, ptr %26, align 8, !tbaa !5
  %1241 = load ptr, ptr %19, align 8, !tbaa !5
  %1242 = load i64, ptr %1241, align 8, !tbaa !9
  %1243 = add nsw i64 %1242, 1
  %1244 = load ptr, ptr %19, align 8, !tbaa !5
  %1245 = load i64, ptr %1244, align 8, !tbaa !9
  %1246 = load i64, ptr %33, align 8, !tbaa !9
  %1247 = mul nsw i64 %1245, %1246
  %1248 = add nsw i64 %1243, %1247
  %1249 = getelementptr inbounds float, ptr %1240, i64 %1248
  %1250 = load float, ptr %1249, align 4, !tbaa !11
  %1251 = fcmp oeq float %1250, 0.000000e+00
  br i1 %1251, label %1252, label %1264

1252:                                             ; preds = %1239
  %1253 = load ptr, ptr %29, align 8, !tbaa !5
  %1254 = load float, ptr %1253, align 4, !tbaa !11
  %1255 = load ptr, ptr %26, align 8, !tbaa !5
  %1256 = load ptr, ptr %19, align 8, !tbaa !5
  %1257 = load i64, ptr %1256, align 8, !tbaa !9
  %1258 = load ptr, ptr %19, align 8, !tbaa !5
  %1259 = load i64, ptr %1258, align 8, !tbaa !9
  %1260 = load i64, ptr %33, align 8, !tbaa !9
  %1261 = mul nsw i64 %1259, %1260
  %1262 = add nsw i64 %1257, %1261
  %1263 = getelementptr inbounds float, ptr %1255, i64 %1262
  store float %1254, ptr %1263, align 4, !tbaa !11
  br label %1264

1264:                                             ; preds = %1252, %1239, %1227
  %1265 = load ptr, ptr %28, align 8, !tbaa !5
  %1266 = load ptr, ptr %19, align 8, !tbaa !5
  %1267 = load i64, ptr %1266, align 8, !tbaa !9
  %1268 = getelementptr inbounds float, ptr %1265, i64 %1267
  store float 0.000000e+00, ptr %1268, align 4, !tbaa !11
  %1269 = load ptr, ptr %19, align 8, !tbaa !5
  %1270 = load i64, ptr %1269, align 8, !tbaa !9
  store i64 %1270, ptr %50, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  store i64 -1, ptr %52, align 8, !tbaa !9
  br label %1700

1271:                                             ; preds = %809
  %1272 = load ptr, ptr %23, align 8, !tbaa !5
  %1273 = load float, ptr %1272, align 4, !tbaa !11
  %1274 = load ptr, ptr %26, align 8, !tbaa !5
  %1275 = load ptr, ptr %19, align 8, !tbaa !5
  %1276 = load i64, ptr %1275, align 8, !tbaa !9
  %1277 = add nsw i64 %1276, 1
  %1278 = load ptr, ptr %19, align 8, !tbaa !5
  %1279 = load i64, ptr %1278, align 8, !tbaa !9
  %1280 = load i64, ptr %33, align 8, !tbaa !9
  %1281 = mul nsw i64 %1279, %1280
  %1282 = add nsw i64 %1277, %1281
  %1283 = getelementptr inbounds float, ptr %1274, i64 %1282
  store float %1273, ptr %1283, align 4, !tbaa !11
  %1284 = load ptr, ptr %19, align 8, !tbaa !5
  %1285 = load i64, ptr %1284, align 8, !tbaa !9
  %1286 = sub nsw i64 %1285, 1
  store i64 %1286, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %46, align 8, !tbaa !9
  br label %1287

1287:                                             ; preds = %1301, %1271
  %1288 = load i64, ptr %46, align 8, !tbaa !9
  %1289 = load i64, ptr %37, align 8, !tbaa !9
  %1290 = icmp sle i64 %1288, %1289
  br i1 %1290, label %1291, label %1304

1291:                                             ; preds = %1287
  %1292 = load ptr, ptr %26, align 8, !tbaa !5
  %1293 = load ptr, ptr %19, align 8, !tbaa !5
  %1294 = load i64, ptr %1293, align 8, !tbaa !9
  %1295 = add nsw i64 %1294, 1
  %1296 = load i64, ptr %46, align 8, !tbaa !9
  %1297 = load i64, ptr %33, align 8, !tbaa !9
  %1298 = mul nsw i64 %1296, %1297
  %1299 = add nsw i64 %1295, %1298
  %1300 = getelementptr inbounds float, ptr %1292, i64 %1299
  store float 0.000000e+00, ptr %1300, align 4, !tbaa !11
  br label %1301

1301:                                             ; preds = %1291
  %1302 = load i64, ptr %46, align 8, !tbaa !9
  %1303 = add nsw i64 %1302, 1
  store i64 %1303, ptr %46, align 8, !tbaa !9
  br label %1287, !llvm.loop !31

1304:                                             ; preds = %1287
  %1305 = load ptr, ptr %19, align 8, !tbaa !5
  %1306 = load i64, ptr %1305, align 8, !tbaa !9
  store i64 %1306, ptr %46, align 8, !tbaa !9
  br label %1307

1307:                                             ; preds = %1671, %1304
  %1308 = load i64, ptr %46, align 8, !tbaa !9
  %1309 = icmp sge i64 %1308, 2
  br i1 %1309, label %1310, label %1674

1310:                                             ; preds = %1307
  %1311 = load ptr, ptr %20, align 8, !tbaa !5
  %1312 = load i64, ptr %46, align 8, !tbaa !9
  %1313 = load i64, ptr %46, align 8, !tbaa !9
  %1314 = sub nsw i64 %1313, 1
  %1315 = load i64, ptr %35, align 8, !tbaa !9
  %1316 = mul nsw i64 %1314, %1315
  %1317 = add nsw i64 %1312, %1316
  %1318 = getelementptr inbounds float, ptr %1311, i64 %1317
  %1319 = load float, ptr %1318, align 4, !tbaa !11
  store float %1319, ptr %55, align 4, !tbaa !11
  %1320 = load ptr, ptr %26, align 8, !tbaa !5
  %1321 = load i64, ptr %46, align 8, !tbaa !9
  %1322 = load i64, ptr %46, align 8, !tbaa !9
  %1323 = load i64, ptr %33, align 8, !tbaa !9
  %1324 = mul nsw i64 %1322, %1323
  %1325 = add nsw i64 %1321, %1324
  %1326 = getelementptr inbounds float, ptr %1320, i64 %1325
  %1327 = load ptr, ptr %26, align 8, !tbaa !5
  %1328 = load i64, ptr %46, align 8, !tbaa !9
  %1329 = add nsw i64 %1328, 1
  %1330 = load i64, ptr %46, align 8, !tbaa !9
  %1331 = load i64, ptr %33, align 8, !tbaa !9
  %1332 = mul nsw i64 %1330, %1331
  %1333 = add nsw i64 %1329, %1332
  %1334 = getelementptr inbounds float, ptr %1327, i64 %1333
  %1335 = call double @slapy2_(ptr noundef %1326, ptr noundef %1334)
  %1336 = fptrunc double %1335 to float
  store float %1336, ptr %70, align 4, !tbaa !11
  %1337 = load float, ptr %70, align 4, !tbaa !11
  %1338 = fpext float %1337 to double
  %1339 = load float, ptr %55, align 4, !tbaa !11
  %1340 = fcmp oge float %1339, 0.000000e+00
  br i1 %1340, label %1341, label %1343

1341:                                             ; preds = %1310
  %1342 = load float, ptr %55, align 4, !tbaa !11
  br label %1346

1343:                                             ; preds = %1310
  %1344 = load float, ptr %55, align 4, !tbaa !11
  %1345 = fneg float %1344
  br label %1346

1346:                                             ; preds = %1343, %1341
  %1347 = phi float [ %1342, %1341 ], [ %1345, %1343 ]
  %1348 = fpext float %1347 to double
  %1349 = fcmp olt double %1338, %1348
  br i1 %1349, label %1350, label %1503

1350:                                             ; preds = %1346
  %1351 = load ptr, ptr %26, align 8, !tbaa !5
  %1352 = load i64, ptr %46, align 8, !tbaa !9
  %1353 = load i64, ptr %46, align 8, !tbaa !9
  %1354 = load i64, ptr %33, align 8, !tbaa !9
  %1355 = mul nsw i64 %1353, %1354
  %1356 = add nsw i64 %1352, %1355
  %1357 = getelementptr inbounds float, ptr %1351, i64 %1356
  %1358 = load float, ptr %1357, align 4, !tbaa !11
  %1359 = load float, ptr %55, align 4, !tbaa !11
  %1360 = fdiv float %1358, %1359
  store float %1360, ptr %57, align 4, !tbaa !11
  %1361 = load ptr, ptr %26, align 8, !tbaa !5
  %1362 = load i64, ptr %46, align 8, !tbaa !9
  %1363 = add nsw i64 %1362, 1
  %1364 = load i64, ptr %46, align 8, !tbaa !9
  %1365 = load i64, ptr %33, align 8, !tbaa !9
  %1366 = mul nsw i64 %1364, %1365
  %1367 = add nsw i64 %1363, %1366
  %1368 = getelementptr inbounds float, ptr %1361, i64 %1367
  %1369 = load float, ptr %1368, align 4, !tbaa !11
  %1370 = load float, ptr %55, align 4, !tbaa !11
  %1371 = fdiv float %1369, %1370
  store float %1371, ptr %56, align 4, !tbaa !11
  %1372 = load float, ptr %55, align 4, !tbaa !11
  %1373 = load ptr, ptr %26, align 8, !tbaa !5
  %1374 = load i64, ptr %46, align 8, !tbaa !9
  %1375 = load i64, ptr %46, align 8, !tbaa !9
  %1376 = load i64, ptr %33, align 8, !tbaa !9
  %1377 = mul nsw i64 %1375, %1376
  %1378 = add nsw i64 %1374, %1377
  %1379 = getelementptr inbounds float, ptr %1373, i64 %1378
  store float %1372, ptr %1379, align 4, !tbaa !11
  %1380 = load ptr, ptr %26, align 8, !tbaa !5
  %1381 = load i64, ptr %46, align 8, !tbaa !9
  %1382 = add nsw i64 %1381, 1
  %1383 = load i64, ptr %46, align 8, !tbaa !9
  %1384 = load i64, ptr %33, align 8, !tbaa !9
  %1385 = mul nsw i64 %1383, %1384
  %1386 = add nsw i64 %1382, %1385
  %1387 = getelementptr inbounds float, ptr %1380, i64 %1386
  store float 0.000000e+00, ptr %1387, align 4, !tbaa !11
  %1388 = load i64, ptr %46, align 8, !tbaa !9
  %1389 = sub nsw i64 %1388, 1
  store i64 %1389, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %1390

1390:                                             ; preds = %1460, %1350
  %1391 = load i64, ptr %45, align 8, !tbaa !9
  %1392 = load i64, ptr %37, align 8, !tbaa !9
  %1393 = icmp sle i64 %1391, %1392
  br i1 %1393, label %1394, label %1463

1394:                                             ; preds = %1390
  %1395 = load ptr, ptr %26, align 8, !tbaa !5
  %1396 = load i64, ptr %45, align 8, !tbaa !9
  %1397 = load i64, ptr %46, align 8, !tbaa !9
  %1398 = sub nsw i64 %1397, 1
  %1399 = load i64, ptr %33, align 8, !tbaa !9
  %1400 = mul nsw i64 %1398, %1399
  %1401 = add nsw i64 %1396, %1400
  %1402 = getelementptr inbounds float, ptr %1395, i64 %1401
  %1403 = load float, ptr %1402, align 4, !tbaa !11
  store float %1403, ptr %61, align 4, !tbaa !11
  %1404 = load ptr, ptr %26, align 8, !tbaa !5
  %1405 = load i64, ptr %45, align 8, !tbaa !9
  %1406 = load i64, ptr %46, align 8, !tbaa !9
  %1407 = load i64, ptr %33, align 8, !tbaa !9
  %1408 = mul nsw i64 %1406, %1407
  %1409 = add nsw i64 %1405, %1408
  %1410 = getelementptr inbounds float, ptr %1404, i64 %1409
  %1411 = load float, ptr %1410, align 4, !tbaa !11
  %1412 = load float, ptr %57, align 4, !tbaa !11
  %1413 = load float, ptr %61, align 4, !tbaa !11
  %1414 = fneg float %1412
  %1415 = call float @llvm.fmuladd.f32(float %1414, float %1413, float %1411)
  %1416 = load ptr, ptr %26, align 8, !tbaa !5
  %1417 = load i64, ptr %45, align 8, !tbaa !9
  %1418 = load i64, ptr %46, align 8, !tbaa !9
  %1419 = sub nsw i64 %1418, 1
  %1420 = load i64, ptr %33, align 8, !tbaa !9
  %1421 = mul nsw i64 %1419, %1420
  %1422 = add nsw i64 %1417, %1421
  %1423 = getelementptr inbounds float, ptr %1416, i64 %1422
  store float %1415, ptr %1423, align 4, !tbaa !11
  %1424 = load ptr, ptr %26, align 8, !tbaa !5
  %1425 = load i64, ptr %46, align 8, !tbaa !9
  %1426 = add nsw i64 %1425, 1
  %1427 = load i64, ptr %45, align 8, !tbaa !9
  %1428 = load i64, ptr %33, align 8, !tbaa !9
  %1429 = mul nsw i64 %1427, %1428
  %1430 = add nsw i64 %1426, %1429
  %1431 = getelementptr inbounds float, ptr %1424, i64 %1430
  %1432 = load float, ptr %1431, align 4, !tbaa !11
  %1433 = load float, ptr %56, align 4, !tbaa !11
  %1434 = load float, ptr %61, align 4, !tbaa !11
  %1435 = fneg float %1433
  %1436 = call float @llvm.fmuladd.f32(float %1435, float %1434, float %1432)
  %1437 = load ptr, ptr %26, align 8, !tbaa !5
  %1438 = load i64, ptr %46, align 8, !tbaa !9
  %1439 = load i64, ptr %45, align 8, !tbaa !9
  %1440 = load i64, ptr %33, align 8, !tbaa !9
  %1441 = mul nsw i64 %1439, %1440
  %1442 = add nsw i64 %1438, %1441
  %1443 = getelementptr inbounds float, ptr %1437, i64 %1442
  store float %1436, ptr %1443, align 4, !tbaa !11
  %1444 = load float, ptr %61, align 4, !tbaa !11
  %1445 = load ptr, ptr %26, align 8, !tbaa !5
  %1446 = load i64, ptr %45, align 8, !tbaa !9
  %1447 = load i64, ptr %46, align 8, !tbaa !9
  %1448 = load i64, ptr %33, align 8, !tbaa !9
  %1449 = mul nsw i64 %1447, %1448
  %1450 = add nsw i64 %1446, %1449
  %1451 = getelementptr inbounds float, ptr %1445, i64 %1450
  store float %1444, ptr %1451, align 4, !tbaa !11
  %1452 = load ptr, ptr %26, align 8, !tbaa !5
  %1453 = load i64, ptr %46, align 8, !tbaa !9
  %1454 = add nsw i64 %1453, 1
  %1455 = load i64, ptr %45, align 8, !tbaa !9
  %1456 = load i64, ptr %33, align 8, !tbaa !9
  %1457 = mul nsw i64 %1455, %1456
  %1458 = add nsw i64 %1454, %1457
  %1459 = getelementptr inbounds float, ptr %1452, i64 %1458
  store float 0.000000e+00, ptr %1459, align 4, !tbaa !11
  br label %1460

1460:                                             ; preds = %1394
  %1461 = load i64, ptr %45, align 8, !tbaa !9
  %1462 = add nsw i64 %1461, 1
  store i64 %1462, ptr %45, align 8, !tbaa !9
  br label %1390, !llvm.loop !32

1463:                                             ; preds = %1390
  %1464 = load ptr, ptr %23, align 8, !tbaa !5
  %1465 = load float, ptr %1464, align 4, !tbaa !11
  %1466 = load ptr, ptr %26, align 8, !tbaa !5
  %1467 = load i64, ptr %46, align 8, !tbaa !9
  %1468 = add nsw i64 %1467, 1
  %1469 = load i64, ptr %46, align 8, !tbaa !9
  %1470 = sub nsw i64 %1469, 1
  %1471 = load i64, ptr %33, align 8, !tbaa !9
  %1472 = mul nsw i64 %1470, %1471
  %1473 = add nsw i64 %1468, %1472
  %1474 = getelementptr inbounds float, ptr %1466, i64 %1473
  store float %1465, ptr %1474, align 4, !tbaa !11
  %1475 = load float, ptr %56, align 4, !tbaa !11
  %1476 = load ptr, ptr %23, align 8, !tbaa !5
  %1477 = load float, ptr %1476, align 4, !tbaa !11
  %1478 = load ptr, ptr %26, align 8, !tbaa !5
  %1479 = load i64, ptr %46, align 8, !tbaa !9
  %1480 = sub nsw i64 %1479, 1
  %1481 = load i64, ptr %46, align 8, !tbaa !9
  %1482 = sub nsw i64 %1481, 1
  %1483 = load i64, ptr %33, align 8, !tbaa !9
  %1484 = mul nsw i64 %1482, %1483
  %1485 = add nsw i64 %1480, %1484
  %1486 = getelementptr inbounds float, ptr %1478, i64 %1485
  %1487 = load float, ptr %1486, align 4, !tbaa !11
  %1488 = call float @llvm.fmuladd.f32(float %1475, float %1477, float %1487)
  store float %1488, ptr %1486, align 4, !tbaa !11
  %1489 = load float, ptr %57, align 4, !tbaa !11
  %1490 = load ptr, ptr %23, align 8, !tbaa !5
  %1491 = load float, ptr %1490, align 4, !tbaa !11
  %1492 = load ptr, ptr %26, align 8, !tbaa !5
  %1493 = load i64, ptr %46, align 8, !tbaa !9
  %1494 = load i64, ptr %46, align 8, !tbaa !9
  %1495 = sub nsw i64 %1494, 1
  %1496 = load i64, ptr %33, align 8, !tbaa !9
  %1497 = mul nsw i64 %1495, %1496
  %1498 = add nsw i64 %1493, %1497
  %1499 = getelementptr inbounds float, ptr %1492, i64 %1498
  %1500 = load float, ptr %1499, align 4, !tbaa !11
  %1501 = fneg float %1489
  %1502 = call float @llvm.fmuladd.f32(float %1501, float %1491, float %1500)
  store float %1502, ptr %1499, align 4, !tbaa !11
  br label %1646

1503:                                             ; preds = %1346
  %1504 = load float, ptr %70, align 4, !tbaa !11
  %1505 = fcmp oeq float %1504, 0.000000e+00
  br i1 %1505, label %1506, label %1526

1506:                                             ; preds = %1503
  %1507 = load ptr, ptr %29, align 8, !tbaa !5
  %1508 = load float, ptr %1507, align 4, !tbaa !11
  %1509 = load ptr, ptr %26, align 8, !tbaa !5
  %1510 = load i64, ptr %46, align 8, !tbaa !9
  %1511 = load i64, ptr %46, align 8, !tbaa !9
  %1512 = load i64, ptr %33, align 8, !tbaa !9
  %1513 = mul nsw i64 %1511, %1512
  %1514 = add nsw i64 %1510, %1513
  %1515 = getelementptr inbounds float, ptr %1509, i64 %1514
  store float %1508, ptr %1515, align 4, !tbaa !11
  %1516 = load ptr, ptr %26, align 8, !tbaa !5
  %1517 = load i64, ptr %46, align 8, !tbaa !9
  %1518 = add nsw i64 %1517, 1
  %1519 = load i64, ptr %46, align 8, !tbaa !9
  %1520 = load i64, ptr %33, align 8, !tbaa !9
  %1521 = mul nsw i64 %1519, %1520
  %1522 = add nsw i64 %1518, %1521
  %1523 = getelementptr inbounds float, ptr %1516, i64 %1522
  store float 0.000000e+00, ptr %1523, align 4, !tbaa !11
  %1524 = load ptr, ptr %29, align 8, !tbaa !5
  %1525 = load float, ptr %1524, align 4, !tbaa !11
  store float %1525, ptr %70, align 4, !tbaa !11
  br label %1526

1526:                                             ; preds = %1506, %1503
  %1527 = load float, ptr %55, align 4, !tbaa !11
  %1528 = load float, ptr %70, align 4, !tbaa !11
  %1529 = fdiv float %1527, %1528
  %1530 = load float, ptr %70, align 4, !tbaa !11
  %1531 = fdiv float %1529, %1530
  store float %1531, ptr %55, align 4, !tbaa !11
  %1532 = load ptr, ptr %26, align 8, !tbaa !5
  %1533 = load i64, ptr %46, align 8, !tbaa !9
  %1534 = load i64, ptr %46, align 8, !tbaa !9
  %1535 = load i64, ptr %33, align 8, !tbaa !9
  %1536 = mul nsw i64 %1534, %1535
  %1537 = add nsw i64 %1533, %1536
  %1538 = getelementptr inbounds float, ptr %1532, i64 %1537
  %1539 = load float, ptr %1538, align 4, !tbaa !11
  %1540 = load float, ptr %55, align 4, !tbaa !11
  %1541 = fmul float %1539, %1540
  store float %1541, ptr %57, align 4, !tbaa !11
  %1542 = load ptr, ptr %26, align 8, !tbaa !5
  %1543 = load i64, ptr %46, align 8, !tbaa !9
  %1544 = add nsw i64 %1543, 1
  %1545 = load i64, ptr %46, align 8, !tbaa !9
  %1546 = load i64, ptr %33, align 8, !tbaa !9
  %1547 = mul nsw i64 %1545, %1546
  %1548 = add nsw i64 %1544, %1547
  %1549 = getelementptr inbounds float, ptr %1542, i64 %1548
  %1550 = load float, ptr %1549, align 4, !tbaa !11
  %1551 = fneg float %1550
  %1552 = load float, ptr %55, align 4, !tbaa !11
  %1553 = fmul float %1551, %1552
  store float %1553, ptr %56, align 4, !tbaa !11
  %1554 = load i64, ptr %46, align 8, !tbaa !9
  %1555 = sub nsw i64 %1554, 1
  store i64 %1555, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %1556

1556:                                             ; preds = %1630, %1526
  %1557 = load i64, ptr %45, align 8, !tbaa !9
  %1558 = load i64, ptr %37, align 8, !tbaa !9
  %1559 = icmp sle i64 %1557, %1558
  br i1 %1559, label %1560, label %1633

1560:                                             ; preds = %1556
  %1561 = load ptr, ptr %26, align 8, !tbaa !5
  %1562 = load i64, ptr %45, align 8, !tbaa !9
  %1563 = load i64, ptr %46, align 8, !tbaa !9
  %1564 = sub nsw i64 %1563, 1
  %1565 = load i64, ptr %33, align 8, !tbaa !9
  %1566 = mul nsw i64 %1564, %1565
  %1567 = add nsw i64 %1562, %1566
  %1568 = getelementptr inbounds float, ptr %1561, i64 %1567
  %1569 = load float, ptr %1568, align 4, !tbaa !11
  %1570 = load float, ptr %57, align 4, !tbaa !11
  %1571 = load ptr, ptr %26, align 8, !tbaa !5
  %1572 = load i64, ptr %45, align 8, !tbaa !9
  %1573 = load i64, ptr %46, align 8, !tbaa !9
  %1574 = load i64, ptr %33, align 8, !tbaa !9
  %1575 = mul nsw i64 %1573, %1574
  %1576 = add nsw i64 %1572, %1575
  %1577 = getelementptr inbounds float, ptr %1571, i64 %1576
  %1578 = load float, ptr %1577, align 4, !tbaa !11
  %1579 = fneg float %1570
  %1580 = call float @llvm.fmuladd.f32(float %1579, float %1578, float %1569)
  %1581 = load float, ptr %56, align 4, !tbaa !11
  %1582 = load ptr, ptr %26, align 8, !tbaa !5
  %1583 = load i64, ptr %46, align 8, !tbaa !9
  %1584 = add nsw i64 %1583, 1
  %1585 = load i64, ptr %45, align 8, !tbaa !9
  %1586 = load i64, ptr %33, align 8, !tbaa !9
  %1587 = mul nsw i64 %1585, %1586
  %1588 = add nsw i64 %1584, %1587
  %1589 = getelementptr inbounds float, ptr %1582, i64 %1588
  %1590 = load float, ptr %1589, align 4, !tbaa !11
  %1591 = call float @llvm.fmuladd.f32(float %1581, float %1590, float %1580)
  %1592 = load ptr, ptr %26, align 8, !tbaa !5
  %1593 = load i64, ptr %45, align 8, !tbaa !9
  %1594 = load i64, ptr %46, align 8, !tbaa !9
  %1595 = sub nsw i64 %1594, 1
  %1596 = load i64, ptr %33, align 8, !tbaa !9
  %1597 = mul nsw i64 %1595, %1596
  %1598 = add nsw i64 %1593, %1597
  %1599 = getelementptr inbounds float, ptr %1592, i64 %1598
  store float %1591, ptr %1599, align 4, !tbaa !11
  %1600 = load float, ptr %57, align 4, !tbaa !11
  %1601 = fneg float %1600
  %1602 = load ptr, ptr %26, align 8, !tbaa !5
  %1603 = load i64, ptr %46, align 8, !tbaa !9
  %1604 = add nsw i64 %1603, 1
  %1605 = load i64, ptr %45, align 8, !tbaa !9
  %1606 = load i64, ptr %33, align 8, !tbaa !9
  %1607 = mul nsw i64 %1605, %1606
  %1608 = add nsw i64 %1604, %1607
  %1609 = getelementptr inbounds float, ptr %1602, i64 %1608
  %1610 = load float, ptr %1609, align 4, !tbaa !11
  %1611 = load float, ptr %56, align 4, !tbaa !11
  %1612 = load ptr, ptr %26, align 8, !tbaa !5
  %1613 = load i64, ptr %45, align 8, !tbaa !9
  %1614 = load i64, ptr %46, align 8, !tbaa !9
  %1615 = load i64, ptr %33, align 8, !tbaa !9
  %1616 = mul nsw i64 %1614, %1615
  %1617 = add nsw i64 %1613, %1616
  %1618 = getelementptr inbounds float, ptr %1612, i64 %1617
  %1619 = load float, ptr %1618, align 4, !tbaa !11
  %1620 = fmul float %1611, %1619
  %1621 = fneg float %1620
  %1622 = call float @llvm.fmuladd.f32(float %1601, float %1610, float %1621)
  %1623 = load ptr, ptr %26, align 8, !tbaa !5
  %1624 = load i64, ptr %46, align 8, !tbaa !9
  %1625 = load i64, ptr %45, align 8, !tbaa !9
  %1626 = load i64, ptr %33, align 8, !tbaa !9
  %1627 = mul nsw i64 %1625, %1626
  %1628 = add nsw i64 %1624, %1627
  %1629 = getelementptr inbounds float, ptr %1623, i64 %1628
  store float %1622, ptr %1629, align 4, !tbaa !11
  br label %1630

1630:                                             ; preds = %1560
  %1631 = load i64, ptr %45, align 8, !tbaa !9
  %1632 = add nsw i64 %1631, 1
  store i64 %1632, ptr %45, align 8, !tbaa !9
  br label %1556, !llvm.loop !33

1633:                                             ; preds = %1556
  %1634 = load ptr, ptr %23, align 8, !tbaa !5
  %1635 = load float, ptr %1634, align 4, !tbaa !11
  %1636 = load ptr, ptr %26, align 8, !tbaa !5
  %1637 = load i64, ptr %46, align 8, !tbaa !9
  %1638 = load i64, ptr %46, align 8, !tbaa !9
  %1639 = sub nsw i64 %1638, 1
  %1640 = load i64, ptr %33, align 8, !tbaa !9
  %1641 = mul nsw i64 %1639, %1640
  %1642 = add nsw i64 %1637, %1641
  %1643 = getelementptr inbounds float, ptr %1636, i64 %1642
  %1644 = load float, ptr %1643, align 4, !tbaa !11
  %1645 = fadd float %1644, %1635
  store float %1645, ptr %1643, align 4, !tbaa !11
  br label %1646

1646:                                             ; preds = %1633, %1463
  %1647 = load i64, ptr %46, align 8, !tbaa !9
  %1648 = sub nsw i64 %1647, 1
  store i64 %1648, ptr %37, align 8, !tbaa !9
  %1649 = load i64, ptr %46, align 8, !tbaa !9
  %1650 = sub nsw i64 %1649, 1
  store i64 %1650, ptr %38, align 8, !tbaa !9
  %1651 = load ptr, ptr %26, align 8, !tbaa !5
  %1652 = load i64, ptr %46, align 8, !tbaa !9
  %1653 = load i64, ptr %33, align 8, !tbaa !9
  %1654 = mul nsw i64 %1652, %1653
  %1655 = add nsw i64 %1654, 1
  %1656 = getelementptr inbounds float, ptr %1651, i64 %1655
  %1657 = call double @f2c_sasum(ptr noundef %37, ptr noundef %1656, ptr noundef @c__1)
  %1658 = load ptr, ptr %26, align 8, !tbaa !5
  %1659 = load i64, ptr %46, align 8, !tbaa !9
  %1660 = add nsw i64 %1659, 1
  %1661 = load i64, ptr %33, align 8, !tbaa !9
  %1662 = add nsw i64 %1660, %1661
  %1663 = getelementptr inbounds float, ptr %1658, i64 %1662
  %1664 = load ptr, ptr %27, align 8, !tbaa !5
  %1665 = call double @f2c_sasum(ptr noundef %38, ptr noundef %1663, ptr noundef %1664)
  %1666 = fadd double %1657, %1665
  %1667 = fptrunc double %1666 to float
  %1668 = load ptr, ptr %28, align 8, !tbaa !5
  %1669 = load i64, ptr %46, align 8, !tbaa !9
  %1670 = getelementptr inbounds float, ptr %1668, i64 %1669
  store float %1667, ptr %1670, align 4, !tbaa !11
  br label %1671

1671:                                             ; preds = %1646
  %1672 = load i64, ptr %46, align 8, !tbaa !9
  %1673 = add nsw i64 %1672, -1
  store i64 %1673, ptr %46, align 8, !tbaa !9
  br label %1307, !llvm.loop !34

1674:                                             ; preds = %1307
  %1675 = load ptr, ptr %26, align 8, !tbaa !5
  %1676 = load i64, ptr %33, align 8, !tbaa !9
  %1677 = add nsw i64 %1676, 1
  %1678 = getelementptr inbounds float, ptr %1675, i64 %1677
  %1679 = load float, ptr %1678, align 4, !tbaa !11
  %1680 = fcmp oeq float %1679, 0.000000e+00
  br i1 %1680, label %1681, label %1695

1681:                                             ; preds = %1674
  %1682 = load ptr, ptr %26, align 8, !tbaa !5
  %1683 = load i64, ptr %33, align 8, !tbaa !9
  %1684 = add nsw i64 %1683, 2
  %1685 = getelementptr inbounds float, ptr %1682, i64 %1684
  %1686 = load float, ptr %1685, align 4, !tbaa !11
  %1687 = fcmp oeq float %1686, 0.000000e+00
  br i1 %1687, label %1688, label %1695

1688:                                             ; preds = %1681
  %1689 = load ptr, ptr %29, align 8, !tbaa !5
  %1690 = load float, ptr %1689, align 4, !tbaa !11
  %1691 = load ptr, ptr %26, align 8, !tbaa !5
  %1692 = load i64, ptr %33, align 8, !tbaa !9
  %1693 = add nsw i64 %1692, 1
  %1694 = getelementptr inbounds float, ptr %1691, i64 %1693
  store float %1690, ptr %1694, align 4, !tbaa !11
  br label %1695

1695:                                             ; preds = %1688, %1681, %1674
  %1696 = load ptr, ptr %28, align 8, !tbaa !5
  %1697 = getelementptr inbounds float, ptr %1696, i64 1
  store float 0.000000e+00, ptr %1697, align 4, !tbaa !11
  store i64 1, ptr %50, align 8, !tbaa !9
  %1698 = load ptr, ptr %19, align 8, !tbaa !5
  %1699 = load i64, ptr %1698, align 8, !tbaa !9
  store i64 %1699, ptr %51, align 8, !tbaa !9
  store i64 1, ptr %52, align 8, !tbaa !9
  br label %1700

1700:                                             ; preds = %1695, %1264
  %1701 = load ptr, ptr %19, align 8, !tbaa !5
  %1702 = load i64, ptr %1701, align 8, !tbaa !9
  store i64 %1702, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %59, align 8, !tbaa !9
  br label %1703

1703:                                             ; preds = %2169, %1700
  %1704 = load i64, ptr %59, align 8, !tbaa !9
  %1705 = load i64, ptr %37, align 8, !tbaa !9
  %1706 = icmp sle i64 %1704, %1705
  br i1 %1706, label %1707, label %2172

1707:                                             ; preds = %1703
  store float 1.000000e+00, ptr %64, align 4, !tbaa !11
  store float 1.000000e+00, ptr %63, align 4, !tbaa !11
  %1708 = load ptr, ptr %31, align 8, !tbaa !5
  %1709 = load float, ptr %1708, align 4, !tbaa !11
  store float %1709, ptr %66, align 4, !tbaa !11
  %1710 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %1710, ptr %38, align 8, !tbaa !9
  %1711 = load i64, ptr %52, align 8, !tbaa !9
  store i64 %1711, ptr %39, align 8, !tbaa !9
  %1712 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %1712, ptr %45, align 8, !tbaa !9
  br label %1713

1713:                                             ; preds = %2105, %1707
  %1714 = load i64, ptr %39, align 8, !tbaa !9
  %1715 = icmp slt i64 %1714, 0
  br i1 %1715, label %1716, label %1721

1716:                                             ; preds = %1713
  %1717 = load i64, ptr %45, align 8, !tbaa !9
  %1718 = load i64, ptr %38, align 8, !tbaa !9
  %1719 = icmp sge i64 %1717, %1718
  %1720 = zext i1 %1719 to i32
  br label %1726

1721:                                             ; preds = %1713
  %1722 = load i64, ptr %45, align 8, !tbaa !9
  %1723 = load i64, ptr %38, align 8, !tbaa !9
  %1724 = icmp sle i64 %1722, %1723
  %1725 = zext i1 %1724 to i32
  br label %1726

1726:                                             ; preds = %1721, %1716
  %1727 = phi i32 [ %1720, %1716 ], [ %1725, %1721 ]
  %1728 = icmp ne i32 %1727, 0
  br i1 %1728, label %1729, label %2109

1729:                                             ; preds = %1726
  %1730 = load ptr, ptr %28, align 8, !tbaa !5
  %1731 = load i64, ptr %45, align 8, !tbaa !9
  %1732 = getelementptr inbounds float, ptr %1730, i64 %1731
  %1733 = load float, ptr %1732, align 4, !tbaa !11
  %1734 = load float, ptr %66, align 4, !tbaa !11
  %1735 = fcmp ogt float %1733, %1734
  br i1 %1735, label %1736, label %1752

1736:                                             ; preds = %1729
  %1737 = load float, ptr %63, align 4, !tbaa !11
  %1738 = fdiv float 1.000000e+00, %1737
  store float %1738, ptr %58, align 4, !tbaa !11
  %1739 = load ptr, ptr %19, align 8, !tbaa !5
  %1740 = load ptr, ptr %24, align 8, !tbaa !5
  %1741 = getelementptr inbounds float, ptr %1740, i64 1
  %1742 = call i32 @f2c_sscal(ptr noundef %1739, ptr noundef %58, ptr noundef %1741, ptr noundef @c__1)
  %1743 = load ptr, ptr %19, align 8, !tbaa !5
  %1744 = load ptr, ptr %25, align 8, !tbaa !5
  %1745 = getelementptr inbounds float, ptr %1744, i64 1
  %1746 = call i32 @f2c_sscal(ptr noundef %1743, ptr noundef %58, ptr noundef %1745, ptr noundef @c__1)
  %1747 = load float, ptr %58, align 4, !tbaa !11
  %1748 = load float, ptr %64, align 4, !tbaa !11
  %1749 = fmul float %1748, %1747
  store float %1749, ptr %64, align 4, !tbaa !11
  store float 1.000000e+00, ptr %63, align 4, !tbaa !11
  %1750 = load ptr, ptr %31, align 8, !tbaa !5
  %1751 = load float, ptr %1750, align 4, !tbaa !11
  store float %1751, ptr %66, align 4, !tbaa !11
  br label %1752

1752:                                             ; preds = %1736, %1729
  %1753 = load ptr, ptr %24, align 8, !tbaa !5
  %1754 = load i64, ptr %45, align 8, !tbaa !9
  %1755 = getelementptr inbounds float, ptr %1753, i64 %1754
  %1756 = load float, ptr %1755, align 4, !tbaa !11
  store float %1756, ptr %57, align 4, !tbaa !11
  %1757 = load ptr, ptr %25, align 8, !tbaa !5
  %1758 = load i64, ptr %45, align 8, !tbaa !9
  %1759 = getelementptr inbounds float, ptr %1757, i64 %1758
  %1760 = load float, ptr %1759, align 4, !tbaa !11
  store float %1760, ptr %56, align 4, !tbaa !11
  %1761 = load ptr, ptr %17, align 8, !tbaa !5
  %1762 = load i64, ptr %1761, align 8, !tbaa !9
  %1763 = icmp ne i64 %1762, 0
  br i1 %1763, label %1764, label %1837

1764:                                             ; preds = %1752
  %1765 = load ptr, ptr %19, align 8, !tbaa !5
  %1766 = load i64, ptr %1765, align 8, !tbaa !9
  store i64 %1766, ptr %40, align 8, !tbaa !9
  %1767 = load i64, ptr %45, align 8, !tbaa !9
  %1768 = add nsw i64 %1767, 1
  store i64 %1768, ptr %46, align 8, !tbaa !9
  br label %1769

1769:                                             ; preds = %1833, %1764
  %1770 = load i64, ptr %46, align 8, !tbaa !9
  %1771 = load i64, ptr %40, align 8, !tbaa !9
  %1772 = icmp sle i64 %1770, %1771
  br i1 %1772, label %1773, label %1836

1773:                                             ; preds = %1769
  %1774 = load float, ptr %57, align 4, !tbaa !11
  %1775 = load ptr, ptr %26, align 8, !tbaa !5
  %1776 = load i64, ptr %45, align 8, !tbaa !9
  %1777 = load i64, ptr %46, align 8, !tbaa !9
  %1778 = load i64, ptr %33, align 8, !tbaa !9
  %1779 = mul nsw i64 %1777, %1778
  %1780 = add nsw i64 %1776, %1779
  %1781 = getelementptr inbounds float, ptr %1775, i64 %1780
  %1782 = load float, ptr %1781, align 4, !tbaa !11
  %1783 = load ptr, ptr %24, align 8, !tbaa !5
  %1784 = load i64, ptr %46, align 8, !tbaa !9
  %1785 = getelementptr inbounds float, ptr %1783, i64 %1784
  %1786 = load float, ptr %1785, align 4, !tbaa !11
  %1787 = fneg float %1782
  %1788 = call float @llvm.fmuladd.f32(float %1787, float %1786, float %1774)
  %1789 = load ptr, ptr %26, align 8, !tbaa !5
  %1790 = load i64, ptr %46, align 8, !tbaa !9
  %1791 = add nsw i64 %1790, 1
  %1792 = load i64, ptr %45, align 8, !tbaa !9
  %1793 = load i64, ptr %33, align 8, !tbaa !9
  %1794 = mul nsw i64 %1792, %1793
  %1795 = add nsw i64 %1791, %1794
  %1796 = getelementptr inbounds float, ptr %1789, i64 %1795
  %1797 = load float, ptr %1796, align 4, !tbaa !11
  %1798 = load ptr, ptr %25, align 8, !tbaa !5
  %1799 = load i64, ptr %46, align 8, !tbaa !9
  %1800 = getelementptr inbounds float, ptr %1798, i64 %1799
  %1801 = load float, ptr %1800, align 4, !tbaa !11
  %1802 = call float @llvm.fmuladd.f32(float %1797, float %1801, float %1788)
  store float %1802, ptr %57, align 4, !tbaa !11
  %1803 = load float, ptr %56, align 4, !tbaa !11
  %1804 = load ptr, ptr %26, align 8, !tbaa !5
  %1805 = load i64, ptr %45, align 8, !tbaa !9
  %1806 = load i64, ptr %46, align 8, !tbaa !9
  %1807 = load i64, ptr %33, align 8, !tbaa !9
  %1808 = mul nsw i64 %1806, %1807
  %1809 = add nsw i64 %1805, %1808
  %1810 = getelementptr inbounds float, ptr %1804, i64 %1809
  %1811 = load float, ptr %1810, align 4, !tbaa !11
  %1812 = load ptr, ptr %25, align 8, !tbaa !5
  %1813 = load i64, ptr %46, align 8, !tbaa !9
  %1814 = getelementptr inbounds float, ptr %1812, i64 %1813
  %1815 = load float, ptr %1814, align 4, !tbaa !11
  %1816 = fneg float %1811
  %1817 = call float @llvm.fmuladd.f32(float %1816, float %1815, float %1803)
  %1818 = load ptr, ptr %26, align 8, !tbaa !5
  %1819 = load i64, ptr %46, align 8, !tbaa !9
  %1820 = add nsw i64 %1819, 1
  %1821 = load i64, ptr %45, align 8, !tbaa !9
  %1822 = load i64, ptr %33, align 8, !tbaa !9
  %1823 = mul nsw i64 %1821, %1822
  %1824 = add nsw i64 %1820, %1823
  %1825 = getelementptr inbounds float, ptr %1818, i64 %1824
  %1826 = load float, ptr %1825, align 4, !tbaa !11
  %1827 = load ptr, ptr %24, align 8, !tbaa !5
  %1828 = load i64, ptr %46, align 8, !tbaa !9
  %1829 = getelementptr inbounds float, ptr %1827, i64 %1828
  %1830 = load float, ptr %1829, align 4, !tbaa !11
  %1831 = fneg float %1826
  %1832 = call float @llvm.fmuladd.f32(float %1831, float %1830, float %1817)
  store float %1832, ptr %56, align 4, !tbaa !11
  br label %1833

1833:                                             ; preds = %1773
  %1834 = load i64, ptr %46, align 8, !tbaa !9
  %1835 = add nsw i64 %1834, 1
  store i64 %1835, ptr %46, align 8, !tbaa !9
  br label %1769, !llvm.loop !35

1836:                                             ; preds = %1769
  br label %1908

1837:                                             ; preds = %1752
  %1838 = load i64, ptr %45, align 8, !tbaa !9
  %1839 = sub nsw i64 %1838, 1
  store i64 %1839, ptr %40, align 8, !tbaa !9
  store i64 1, ptr %46, align 8, !tbaa !9
  br label %1840

1840:                                             ; preds = %1904, %1837
  %1841 = load i64, ptr %46, align 8, !tbaa !9
  %1842 = load i64, ptr %40, align 8, !tbaa !9
  %1843 = icmp sle i64 %1841, %1842
  br i1 %1843, label %1844, label %1907

1844:                                             ; preds = %1840
  %1845 = load float, ptr %57, align 4, !tbaa !11
  %1846 = load ptr, ptr %26, align 8, !tbaa !5
  %1847 = load i64, ptr %46, align 8, !tbaa !9
  %1848 = load i64, ptr %45, align 8, !tbaa !9
  %1849 = load i64, ptr %33, align 8, !tbaa !9
  %1850 = mul nsw i64 %1848, %1849
  %1851 = add nsw i64 %1847, %1850
  %1852 = getelementptr inbounds float, ptr %1846, i64 %1851
  %1853 = load float, ptr %1852, align 4, !tbaa !11
  %1854 = load ptr, ptr %24, align 8, !tbaa !5
  %1855 = load i64, ptr %46, align 8, !tbaa !9
  %1856 = getelementptr inbounds float, ptr %1854, i64 %1855
  %1857 = load float, ptr %1856, align 4, !tbaa !11
  %1858 = fneg float %1853
  %1859 = call float @llvm.fmuladd.f32(float %1858, float %1857, float %1845)
  %1860 = load ptr, ptr %26, align 8, !tbaa !5
  %1861 = load i64, ptr %45, align 8, !tbaa !9
  %1862 = add nsw i64 %1861, 1
  %1863 = load i64, ptr %46, align 8, !tbaa !9
  %1864 = load i64, ptr %33, align 8, !tbaa !9
  %1865 = mul nsw i64 %1863, %1864
  %1866 = add nsw i64 %1862, %1865
  %1867 = getelementptr inbounds float, ptr %1860, i64 %1866
  %1868 = load float, ptr %1867, align 4, !tbaa !11
  %1869 = load ptr, ptr %25, align 8, !tbaa !5
  %1870 = load i64, ptr %46, align 8, !tbaa !9
  %1871 = getelementptr inbounds float, ptr %1869, i64 %1870
  %1872 = load float, ptr %1871, align 4, !tbaa !11
  %1873 = call float @llvm.fmuladd.f32(float %1868, float %1872, float %1859)
  store float %1873, ptr %57, align 4, !tbaa !11
  %1874 = load float, ptr %56, align 4, !tbaa !11
  %1875 = load ptr, ptr %26, align 8, !tbaa !5
  %1876 = load i64, ptr %46, align 8, !tbaa !9
  %1877 = load i64, ptr %45, align 8, !tbaa !9
  %1878 = load i64, ptr %33, align 8, !tbaa !9
  %1879 = mul nsw i64 %1877, %1878
  %1880 = add nsw i64 %1876, %1879
  %1881 = getelementptr inbounds float, ptr %1875, i64 %1880
  %1882 = load float, ptr %1881, align 4, !tbaa !11
  %1883 = load ptr, ptr %25, align 8, !tbaa !5
  %1884 = load i64, ptr %46, align 8, !tbaa !9
  %1885 = getelementptr inbounds float, ptr %1883, i64 %1884
  %1886 = load float, ptr %1885, align 4, !tbaa !11
  %1887 = fneg float %1882
  %1888 = call float @llvm.fmuladd.f32(float %1887, float %1886, float %1874)
  %1889 = load ptr, ptr %26, align 8, !tbaa !5
  %1890 = load i64, ptr %45, align 8, !tbaa !9
  %1891 = add nsw i64 %1890, 1
  %1892 = load i64, ptr %46, align 8, !tbaa !9
  %1893 = load i64, ptr %33, align 8, !tbaa !9
  %1894 = mul nsw i64 %1892, %1893
  %1895 = add nsw i64 %1891, %1894
  %1896 = getelementptr inbounds float, ptr %1889, i64 %1895
  %1897 = load float, ptr %1896, align 4, !tbaa !11
  %1898 = load ptr, ptr %24, align 8, !tbaa !5
  %1899 = load i64, ptr %46, align 8, !tbaa !9
  %1900 = getelementptr inbounds float, ptr %1898, i64 %1899
  %1901 = load float, ptr %1900, align 4, !tbaa !11
  %1902 = fneg float %1897
  %1903 = call float @llvm.fmuladd.f32(float %1902, float %1901, float %1888)
  store float %1903, ptr %56, align 4, !tbaa !11
  br label %1904

1904:                                             ; preds = %1844
  %1905 = load i64, ptr %46, align 8, !tbaa !9
  %1906 = add nsw i64 %1905, 1
  store i64 %1906, ptr %46, align 8, !tbaa !9
  br label %1840, !llvm.loop !36

1907:                                             ; preds = %1840
  br label %1908

1908:                                             ; preds = %1907, %1836
  %1909 = load ptr, ptr %26, align 8, !tbaa !5
  %1910 = load i64, ptr %45, align 8, !tbaa !9
  %1911 = load i64, ptr %45, align 8, !tbaa !9
  %1912 = load i64, ptr %33, align 8, !tbaa !9
  %1913 = mul nsw i64 %1911, %1912
  %1914 = add nsw i64 %1910, %1913
  %1915 = getelementptr inbounds float, ptr %1909, i64 %1914
  %1916 = load float, ptr %1915, align 4, !tbaa !11
  store float %1916, ptr %41, align 4, !tbaa !11
  %1917 = load float, ptr %41, align 4, !tbaa !11
  %1918 = fcmp oge float %1917, 0.000000e+00
  br i1 %1918, label %1919, label %1921

1919:                                             ; preds = %1908
  %1920 = load float, ptr %41, align 4, !tbaa !11
  br label %1924

1921:                                             ; preds = %1908
  %1922 = load float, ptr %41, align 4, !tbaa !11
  %1923 = fneg float %1922
  br label %1924

1924:                                             ; preds = %1921, %1919
  %1925 = phi float [ %1920, %1919 ], [ %1923, %1921 ]
  %1926 = fpext float %1925 to double
  %1927 = load ptr, ptr %26, align 8, !tbaa !5
  %1928 = load i64, ptr %45, align 8, !tbaa !9
  %1929 = add nsw i64 %1928, 1
  %1930 = load i64, ptr %45, align 8, !tbaa !9
  %1931 = load i64, ptr %33, align 8, !tbaa !9
  %1932 = mul nsw i64 %1930, %1931
  %1933 = add nsw i64 %1929, %1932
  %1934 = getelementptr inbounds float, ptr %1927, i64 %1933
  %1935 = load float, ptr %1934, align 4, !tbaa !11
  store float %1935, ptr %42, align 4, !tbaa !11
  %1936 = load float, ptr %42, align 4, !tbaa !11
  %1937 = fcmp oge float %1936, 0.000000e+00
  br i1 %1937, label %1938, label %1940

1938:                                             ; preds = %1924
  %1939 = load float, ptr %42, align 4, !tbaa !11
  br label %1943

1940:                                             ; preds = %1924
  %1941 = load float, ptr %42, align 4, !tbaa !11
  %1942 = fneg float %1941
  br label %1943

1943:                                             ; preds = %1940, %1938
  %1944 = phi float [ %1939, %1938 ], [ %1942, %1940 ]
  %1945 = fpext float %1944 to double
  %1946 = fadd double %1926, %1945
  %1947 = fptrunc double %1946 to float
  store float %1947, ptr %47, align 4, !tbaa !11
  %1948 = load float, ptr %47, align 4, !tbaa !11
  %1949 = load ptr, ptr %30, align 8, !tbaa !5
  %1950 = load float, ptr %1949, align 4, !tbaa !11
  %1951 = fcmp ogt float %1948, %1950
  br i1 %1951, label %1952, label %2078

1952:                                             ; preds = %1943
  %1953 = load float, ptr %47, align 4, !tbaa !11
  %1954 = fcmp olt float %1953, 1.000000e+00
  br i1 %1954, label %1955, label %2010

1955:                                             ; preds = %1952
  %1956 = load float, ptr %57, align 4, !tbaa !11
  %1957 = fcmp oge float %1956, 0.000000e+00
  br i1 %1957, label %1958, label %1960

1958:                                             ; preds = %1955
  %1959 = load float, ptr %57, align 4, !tbaa !11
  br label %1963

1960:                                             ; preds = %1955
  %1961 = load float, ptr %57, align 4, !tbaa !11
  %1962 = fneg float %1961
  br label %1963

1963:                                             ; preds = %1960, %1958
  %1964 = phi float [ %1959, %1958 ], [ %1962, %1960 ]
  %1965 = fpext float %1964 to double
  %1966 = load float, ptr %56, align 4, !tbaa !11
  %1967 = fcmp oge float %1966, 0.000000e+00
  br i1 %1967, label %1968, label %1970

1968:                                             ; preds = %1963
  %1969 = load float, ptr %56, align 4, !tbaa !11
  br label %1973

1970:                                             ; preds = %1963
  %1971 = load float, ptr %56, align 4, !tbaa !11
  %1972 = fneg float %1971
  br label %1973

1973:                                             ; preds = %1970, %1968
  %1974 = phi float [ %1969, %1968 ], [ %1972, %1970 ]
  %1975 = fpext float %1974 to double
  %1976 = fadd double %1965, %1975
  %1977 = fptrunc double %1976 to float
  store float %1977, ptr %53, align 4, !tbaa !11
  %1978 = load float, ptr %53, align 4, !tbaa !11
  %1979 = load float, ptr %47, align 4, !tbaa !11
  %1980 = load ptr, ptr %31, align 8, !tbaa !5
  %1981 = load float, ptr %1980, align 4, !tbaa !11
  %1982 = fmul float %1979, %1981
  %1983 = fcmp ogt float %1978, %1982
  br i1 %1983, label %1984, label %2009

1984:                                             ; preds = %1973
  %1985 = load float, ptr %53, align 4, !tbaa !11
  %1986 = fdiv float 1.000000e+00, %1985
  store float %1986, ptr %58, align 4, !tbaa !11
  %1987 = load ptr, ptr %19, align 8, !tbaa !5
  %1988 = load ptr, ptr %24, align 8, !tbaa !5
  %1989 = getelementptr inbounds float, ptr %1988, i64 1
  %1990 = call i32 @f2c_sscal(ptr noundef %1987, ptr noundef %58, ptr noundef %1989, ptr noundef @c__1)
  %1991 = load ptr, ptr %19, align 8, !tbaa !5
  %1992 = load ptr, ptr %25, align 8, !tbaa !5
  %1993 = getelementptr inbounds float, ptr %1992, i64 1
  %1994 = call i32 @f2c_sscal(ptr noundef %1991, ptr noundef %58, ptr noundef %1993, ptr noundef @c__1)
  %1995 = load ptr, ptr %24, align 8, !tbaa !5
  %1996 = load i64, ptr %45, align 8, !tbaa !9
  %1997 = getelementptr inbounds float, ptr %1995, i64 %1996
  %1998 = load float, ptr %1997, align 4, !tbaa !11
  store float %1998, ptr %57, align 4, !tbaa !11
  %1999 = load ptr, ptr %25, align 8, !tbaa !5
  %2000 = load i64, ptr %45, align 8, !tbaa !9
  %2001 = getelementptr inbounds float, ptr %1999, i64 %2000
  %2002 = load float, ptr %2001, align 4, !tbaa !11
  store float %2002, ptr %56, align 4, !tbaa !11
  %2003 = load float, ptr %58, align 4, !tbaa !11
  %2004 = load float, ptr %64, align 4, !tbaa !11
  %2005 = fmul float %2004, %2003
  store float %2005, ptr %64, align 4, !tbaa !11
  %2006 = load float, ptr %58, align 4, !tbaa !11
  %2007 = load float, ptr %63, align 4, !tbaa !11
  %2008 = fmul float %2007, %2006
  store float %2008, ptr %63, align 4, !tbaa !11
  br label %2009

2009:                                             ; preds = %1984, %1973
  br label %2010

2010:                                             ; preds = %2009, %1952
  %2011 = load ptr, ptr %26, align 8, !tbaa !5
  %2012 = load i64, ptr %45, align 8, !tbaa !9
  %2013 = load i64, ptr %45, align 8, !tbaa !9
  %2014 = load i64, ptr %33, align 8, !tbaa !9
  %2015 = mul nsw i64 %2013, %2014
  %2016 = add nsw i64 %2012, %2015
  %2017 = getelementptr inbounds float, ptr %2011, i64 %2016
  %2018 = load ptr, ptr %26, align 8, !tbaa !5
  %2019 = load i64, ptr %45, align 8, !tbaa !9
  %2020 = add nsw i64 %2019, 1
  %2021 = load i64, ptr %45, align 8, !tbaa !9
  %2022 = load i64, ptr %33, align 8, !tbaa !9
  %2023 = mul nsw i64 %2021, %2022
  %2024 = add nsw i64 %2020, %2023
  %2025 = getelementptr inbounds float, ptr %2018, i64 %2024
  %2026 = load ptr, ptr %24, align 8, !tbaa !5
  %2027 = load i64, ptr %45, align 8, !tbaa !9
  %2028 = getelementptr inbounds float, ptr %2026, i64 %2027
  %2029 = load ptr, ptr %25, align 8, !tbaa !5
  %2030 = load i64, ptr %45, align 8, !tbaa !9
  %2031 = getelementptr inbounds float, ptr %2029, i64 %2030
  %2032 = call i32 @sladiv_(ptr noundef %57, ptr noundef %56, ptr noundef %2017, ptr noundef %2025, ptr noundef %2028, ptr noundef %2031)
  %2033 = load ptr, ptr %24, align 8, !tbaa !5
  %2034 = load i64, ptr %45, align 8, !tbaa !9
  %2035 = getelementptr inbounds float, ptr %2033, i64 %2034
  %2036 = load float, ptr %2035, align 4, !tbaa !11
  store float %2036, ptr %41, align 4, !tbaa !11
  %2037 = load float, ptr %41, align 4, !tbaa !11
  %2038 = fcmp oge float %2037, 0.000000e+00
  br i1 %2038, label %2039, label %2041

2039:                                             ; preds = %2010
  %2040 = load float, ptr %41, align 4, !tbaa !11
  br label %2044

2041:                                             ; preds = %2010
  %2042 = load float, ptr %41, align 4, !tbaa !11
  %2043 = fneg float %2042
  br label %2044

2044:                                             ; preds = %2041, %2039
  %2045 = phi float [ %2040, %2039 ], [ %2043, %2041 ]
  %2046 = fpext float %2045 to double
  %2047 = load ptr, ptr %25, align 8, !tbaa !5
  %2048 = load i64, ptr %45, align 8, !tbaa !9
  %2049 = getelementptr inbounds float, ptr %2047, i64 %2048
  %2050 = load float, ptr %2049, align 4, !tbaa !11
  store float %2050, ptr %42, align 4, !tbaa !11
  %2051 = load float, ptr %42, align 4, !tbaa !11
  %2052 = fcmp oge float %2051, 0.000000e+00
  br i1 %2052, label %2053, label %2055

2053:                                             ; preds = %2044
  %2054 = load float, ptr %42, align 4, !tbaa !11
  br label %2058

2055:                                             ; preds = %2044
  %2056 = load float, ptr %42, align 4, !tbaa !11
  %2057 = fneg float %2056
  br label %2058

2058:                                             ; preds = %2055, %2053
  %2059 = phi float [ %2054, %2053 ], [ %2057, %2055 ]
  %2060 = fpext float %2059 to double
  %2061 = fadd double %2046, %2060
  %2062 = fptrunc double %2061 to float
  store float %2062, ptr %43, align 4, !tbaa !11
  %2063 = load float, ptr %43, align 4, !tbaa !11
  %2064 = load float, ptr %63, align 4, !tbaa !11
  %2065 = fcmp oge float %2063, %2064
  br i1 %2065, label %2066, label %2068

2066:                                             ; preds = %2058
  %2067 = load float, ptr %43, align 4, !tbaa !11
  br label %2070

2068:                                             ; preds = %2058
  %2069 = load float, ptr %63, align 4, !tbaa !11
  br label %2070

2070:                                             ; preds = %2068, %2066
  %2071 = phi float [ %2067, %2066 ], [ %2069, %2068 ]
  %2072 = fpext float %2071 to double
  %2073 = fptrunc double %2072 to float
  store float %2073, ptr %63, align 4, !tbaa !11
  %2074 = load ptr, ptr %31, align 8, !tbaa !5
  %2075 = load float, ptr %2074, align 4, !tbaa !11
  %2076 = load float, ptr %63, align 4, !tbaa !11
  %2077 = fdiv float %2075, %2076
  store float %2077, ptr %66, align 4, !tbaa !11
  br label %2104

2078:                                             ; preds = %1943
  %2079 = load ptr, ptr %19, align 8, !tbaa !5
  %2080 = load i64, ptr %2079, align 8, !tbaa !9
  store i64 %2080, ptr %40, align 8, !tbaa !9
  store i64 1, ptr %46, align 8, !tbaa !9
  br label %2081

2081:                                             ; preds = %2092, %2078
  %2082 = load i64, ptr %46, align 8, !tbaa !9
  %2083 = load i64, ptr %40, align 8, !tbaa !9
  %2084 = icmp sle i64 %2082, %2083
  br i1 %2084, label %2085, label %2095

2085:                                             ; preds = %2081
  %2086 = load ptr, ptr %24, align 8, !tbaa !5
  %2087 = load i64, ptr %46, align 8, !tbaa !9
  %2088 = getelementptr inbounds float, ptr %2086, i64 %2087
  store float 0.000000e+00, ptr %2088, align 4, !tbaa !11
  %2089 = load ptr, ptr %25, align 8, !tbaa !5
  %2090 = load i64, ptr %46, align 8, !tbaa !9
  %2091 = getelementptr inbounds float, ptr %2089, i64 %2090
  store float 0.000000e+00, ptr %2091, align 4, !tbaa !11
  br label %2092

2092:                                             ; preds = %2085
  %2093 = load i64, ptr %46, align 8, !tbaa !9
  %2094 = add nsw i64 %2093, 1
  store i64 %2094, ptr %46, align 8, !tbaa !9
  br label %2081, !llvm.loop !37

2095:                                             ; preds = %2081
  %2096 = load ptr, ptr %24, align 8, !tbaa !5
  %2097 = load i64, ptr %45, align 8, !tbaa !9
  %2098 = getelementptr inbounds float, ptr %2096, i64 %2097
  store float 1.000000e+00, ptr %2098, align 4, !tbaa !11
  %2099 = load ptr, ptr %25, align 8, !tbaa !5
  %2100 = load i64, ptr %45, align 8, !tbaa !9
  %2101 = getelementptr inbounds float, ptr %2099, i64 %2100
  store float 1.000000e+00, ptr %2101, align 4, !tbaa !11
  store float 0.000000e+00, ptr %64, align 4, !tbaa !11
  store float 1.000000e+00, ptr %63, align 4, !tbaa !11
  %2102 = load ptr, ptr %31, align 8, !tbaa !5
  %2103 = load float, ptr %2102, align 4, !tbaa !11
  store float %2103, ptr %66, align 4, !tbaa !11
  br label %2104

2104:                                             ; preds = %2095, %2070
  br label %2105

2105:                                             ; preds = %2104
  %2106 = load i64, ptr %39, align 8, !tbaa !9
  %2107 = load i64, ptr %45, align 8, !tbaa !9
  %2108 = add nsw i64 %2107, %2106
  store i64 %2108, ptr %45, align 8, !tbaa !9
  br label %1713, !llvm.loop !38

2109:                                             ; preds = %1726
  %2110 = load ptr, ptr %19, align 8, !tbaa !5
  %2111 = load ptr, ptr %24, align 8, !tbaa !5
  %2112 = getelementptr inbounds float, ptr %2111, i64 1
  %2113 = call double @f2c_sasum(ptr noundef %2110, ptr noundef %2112, ptr noundef @c__1)
  %2114 = load ptr, ptr %19, align 8, !tbaa !5
  %2115 = load ptr, ptr %25, align 8, !tbaa !5
  %2116 = getelementptr inbounds float, ptr %2115, i64 1
  %2117 = call double @f2c_sasum(ptr noundef %2114, ptr noundef %2116, ptr noundef @c__1)
  %2118 = fadd double %2113, %2117
  %2119 = fptrunc double %2118 to float
  store float %2119, ptr %68, align 4, !tbaa !11
  %2120 = load float, ptr %68, align 4, !tbaa !11
  %2121 = load float, ptr %73, align 4, !tbaa !11
  %2122 = load float, ptr %64, align 4, !tbaa !11
  %2123 = fmul float %2121, %2122
  %2124 = fcmp oge float %2120, %2123
  br i1 %2124, label %2125, label %2126

2125:                                             ; preds = %2109
  br label %2174

2126:                                             ; preds = %2109
  %2127 = load ptr, ptr %29, align 8, !tbaa !5
  %2128 = load float, ptr %2127, align 4, !tbaa !11
  %2129 = load float, ptr %67, align 4, !tbaa !11
  %2130 = fadd float %2129, 1.000000e+00
  %2131 = fdiv float %2128, %2130
  store float %2131, ptr %49, align 4, !tbaa !11
  %2132 = load ptr, ptr %29, align 8, !tbaa !5
  %2133 = load float, ptr %2132, align 4, !tbaa !11
  %2134 = load ptr, ptr %24, align 8, !tbaa !5
  %2135 = getelementptr inbounds float, ptr %2134, i64 1
  store float %2133, ptr %2135, align 4, !tbaa !11
  %2136 = load ptr, ptr %25, align 8, !tbaa !5
  %2137 = getelementptr inbounds float, ptr %2136, i64 1
  store float 0.000000e+00, ptr %2137, align 4, !tbaa !11
  %2138 = load ptr, ptr %19, align 8, !tbaa !5
  %2139 = load i64, ptr %2138, align 8, !tbaa !9
  store i64 %2139, ptr %39, align 8, !tbaa !9
  store i64 2, ptr %45, align 8, !tbaa !9
  br label %2140

2140:                                             ; preds = %2152, %2126
  %2141 = load i64, ptr %45, align 8, !tbaa !9
  %2142 = load i64, ptr %39, align 8, !tbaa !9
  %2143 = icmp sle i64 %2141, %2142
  br i1 %2143, label %2144, label %2155

2144:                                             ; preds = %2140
  %2145 = load float, ptr %49, align 4, !tbaa !11
  %2146 = load ptr, ptr %24, align 8, !tbaa !5
  %2147 = load i64, ptr %45, align 8, !tbaa !9
  %2148 = getelementptr inbounds float, ptr %2146, i64 %2147
  store float %2145, ptr %2148, align 4, !tbaa !11
  %2149 = load ptr, ptr %25, align 8, !tbaa !5
  %2150 = load i64, ptr %45, align 8, !tbaa !9
  %2151 = getelementptr inbounds float, ptr %2149, i64 %2150
  store float 0.000000e+00, ptr %2151, align 4, !tbaa !11
  br label %2152

2152:                                             ; preds = %2144
  %2153 = load i64, ptr %45, align 8, !tbaa !9
  %2154 = add nsw i64 %2153, 1
  store i64 %2154, ptr %45, align 8, !tbaa !9
  br label %2140, !llvm.loop !39

2155:                                             ; preds = %2140
  %2156 = load ptr, ptr %29, align 8, !tbaa !5
  %2157 = load float, ptr %2156, align 4, !tbaa !11
  %2158 = load float, ptr %67, align 4, !tbaa !11
  %2159 = load ptr, ptr %24, align 8, !tbaa !5
  %2160 = load ptr, ptr %19, align 8, !tbaa !5
  %2161 = load i64, ptr %2160, align 8, !tbaa !9
  %2162 = load i64, ptr %59, align 8, !tbaa !9
  %2163 = sub nsw i64 %2161, %2162
  %2164 = add nsw i64 %2163, 1
  %2165 = getelementptr inbounds float, ptr %2159, i64 %2164
  %2166 = load float, ptr %2165, align 4, !tbaa !11
  %2167 = fneg float %2157
  %2168 = call float @llvm.fmuladd.f32(float %2167, float %2158, float %2166)
  store float %2168, ptr %2165, align 4, !tbaa !11
  br label %2169

2169:                                             ; preds = %2155
  %2170 = load i64, ptr %59, align 8, !tbaa !9
  %2171 = add nsw i64 %2170, 1
  store i64 %2171, ptr %59, align 8, !tbaa !9
  br label %1703, !llvm.loop !40

2172:                                             ; preds = %1703
  %2173 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %2173, align 8, !tbaa !9
  br label %2174

2174:                                             ; preds = %2172, %2125
  store float 0.000000e+00, ptr %68, align 4, !tbaa !11
  %2175 = load ptr, ptr %19, align 8, !tbaa !5
  %2176 = load i64, ptr %2175, align 8, !tbaa !9
  store i64 %2176, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %2177

2177:                                             ; preds = %2224, %2174
  %2178 = load i64, ptr %45, align 8, !tbaa !9
  %2179 = load i64, ptr %37, align 8, !tbaa !9
  %2180 = icmp sle i64 %2178, %2179
  br i1 %2180, label %2181, label %2227

2181:                                             ; preds = %2177
  %2182 = load float, ptr %68, align 4, !tbaa !11
  store float %2182, ptr %43, align 4, !tbaa !11
  %2183 = load ptr, ptr %24, align 8, !tbaa !5
  %2184 = load i64, ptr %45, align 8, !tbaa !9
  %2185 = getelementptr inbounds float, ptr %2183, i64 %2184
  %2186 = load float, ptr %2185, align 4, !tbaa !11
  store float %2186, ptr %41, align 4, !tbaa !11
  %2187 = load float, ptr %41, align 4, !tbaa !11
  %2188 = fcmp oge float %2187, 0.000000e+00
  br i1 %2188, label %2189, label %2191

2189:                                             ; preds = %2181
  %2190 = load float, ptr %41, align 4, !tbaa !11
  br label %2194

2191:                                             ; preds = %2181
  %2192 = load float, ptr %41, align 4, !tbaa !11
  %2193 = fneg float %2192
  br label %2194

2194:                                             ; preds = %2191, %2189
  %2195 = phi float [ %2190, %2189 ], [ %2193, %2191 ]
  %2196 = fpext float %2195 to double
  %2197 = load ptr, ptr %25, align 8, !tbaa !5
  %2198 = load i64, ptr %45, align 8, !tbaa !9
  %2199 = getelementptr inbounds float, ptr %2197, i64 %2198
  %2200 = load float, ptr %2199, align 4, !tbaa !11
  store float %2200, ptr %42, align 4, !tbaa !11
  %2201 = load float, ptr %42, align 4, !tbaa !11
  %2202 = fcmp oge float %2201, 0.000000e+00
  br i1 %2202, label %2203, label %2205

2203:                                             ; preds = %2194
  %2204 = load float, ptr %42, align 4, !tbaa !11
  br label %2208

2205:                                             ; preds = %2194
  %2206 = load float, ptr %42, align 4, !tbaa !11
  %2207 = fneg float %2206
  br label %2208

2208:                                             ; preds = %2205, %2203
  %2209 = phi float [ %2204, %2203 ], [ %2207, %2205 ]
  %2210 = fpext float %2209 to double
  %2211 = fadd double %2196, %2210
  %2212 = fptrunc double %2211 to float
  store float %2212, ptr %44, align 4, !tbaa !11
  %2213 = load float, ptr %43, align 4, !tbaa !11
  %2214 = load float, ptr %44, align 4, !tbaa !11
  %2215 = fcmp oge float %2213, %2214
  br i1 %2215, label %2216, label %2218

2216:                                             ; preds = %2208
  %2217 = load float, ptr %43, align 4, !tbaa !11
  br label %2220

2218:                                             ; preds = %2208
  %2219 = load float, ptr %44, align 4, !tbaa !11
  br label %2220

2220:                                             ; preds = %2218, %2216
  %2221 = phi float [ %2217, %2216 ], [ %2219, %2218 ]
  %2222 = fpext float %2221 to double
  %2223 = fptrunc double %2222 to float
  store float %2223, ptr %68, align 4, !tbaa !11
  br label %2224

2224:                                             ; preds = %2220
  %2225 = load i64, ptr %45, align 8, !tbaa !9
  %2226 = add nsw i64 %2225, 1
  store i64 %2226, ptr %45, align 8, !tbaa !9
  br label %2177, !llvm.loop !41

2227:                                             ; preds = %2177
  %2228 = load float, ptr %68, align 4, !tbaa !11
  %2229 = fdiv float 1.000000e+00, %2228
  store float %2229, ptr %41, align 4, !tbaa !11
  %2230 = load ptr, ptr %19, align 8, !tbaa !5
  %2231 = load ptr, ptr %24, align 8, !tbaa !5
  %2232 = getelementptr inbounds float, ptr %2231, i64 1
  %2233 = call i32 @f2c_sscal(ptr noundef %2230, ptr noundef %41, ptr noundef %2232, ptr noundef @c__1)
  %2234 = load float, ptr %68, align 4, !tbaa !11
  %2235 = fdiv float 1.000000e+00, %2234
  store float %2235, ptr %41, align 4, !tbaa !11
  %2236 = load ptr, ptr %19, align 8, !tbaa !5
  %2237 = load ptr, ptr %25, align 8, !tbaa !5
  %2238 = getelementptr inbounds float, ptr %2237, i64 1
  %2239 = call i32 @f2c_sscal(ptr noundef %2236, ptr noundef %41, ptr noundef %2238, ptr noundef @c__1)
  br label %2240

2240:                                             ; preds = %2227, %738
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 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 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  ret i32 0
}

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

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

declare double @f2c_snrm2(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @f2c_sscal(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

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

declare i32 @slatrs_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

declare double @f2c_sasum(ptr noundef, ptr noundef, ptr noundef) #3

declare i64 @f2c_isamax(ptr noundef, ptr noundef, ptr noundef) #3

declare double @slapy2_(ptr noundef, ptr noundef) #3

declare i32 @sladiv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = !{!7, !7, i64 0}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !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"

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slaein_(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1, ptr noundef %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr nocapture noundef readonly %12, ptr nocapture noundef readonly %13, ptr nocapture noundef readonly %14, ptr nocapture noundef writeonly %15) local_unnamed_addr #0 {
  %17 = ptrtoint ptr %7 to i64
  %18 = ptrtoint ptr %8 to i64
  %19 = ptrtoint ptr %7 to i64
  %20 = ptrtoint ptr %8 to i64
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca i64, align 8
  %30 = alloca float, align 4
  %31 = alloca [1 x i8], align 1
  %32 = alloca [1 x i8], align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #6
  %33 = load i64, ptr %4, align 8, !tbaa !5
  %34 = xor i64 %33, -1
  %35 = getelementptr inbounds float, ptr %3, i64 %34
  %36 = getelementptr inbounds i8, ptr %7, i64 -4
  %37 = getelementptr inbounds i8, ptr %8, i64 -4
  %38 = load i64, ptr %10, align 8, !tbaa !5
  %39 = xor i64 %38, -1
  %40 = getelementptr inbounds float, ptr %9, i64 %39
  %41 = getelementptr inbounds i8, ptr %11, i64 -4
  store i64 0, ptr %15, align 8, !tbaa !5
  %42 = load i64, ptr %2, align 8, !tbaa !5
  %43 = sitofp i64 %42 to float
  %sqrtf = tail call float @sqrtf(float noundef %43) #7
  %44 = fdiv float 0x3FB99999A0000000, %sqrtf
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %45 = load float, ptr %12, align 4, !tbaa !9
  %46 = fmul float %sqrtf, %45
  store float %46, ptr %25, align 4, !tbaa !9
  %47 = fcmp ole float %46, 1.000000e+00
  %48 = select i1 %47, float 1.000000e+00, float %46
  %49 = load float, ptr %13, align 4, !tbaa !9
  %50 = fmul float %49, %48
  %51 = load i64, ptr %2, align 8, !tbaa !5
  %.not903 = icmp slt i64 %51, 1
  br i1 %.not903, label %92, label %.lr.ph906

.lr.ph906:                                        ; preds = %16
  %52 = add i64 %33, 1
  %53 = add i64 %38, 1
  %54 = shl i64 %38, 2
  %55 = add i64 %54, 4
  %56 = shl i64 %33, 2
  %57 = add i64 %56, 4
  br label %58

58:                                               ; preds = %.lr.ph906, %._crit_edge
  %indvar = phi i64 [ 0, %.lr.ph906 ], [ %indvar.next, %._crit_edge ]
  %.0840904 = phi i64 [ 1, %.lr.ph906 ], [ %90, %._crit_edge ]
  %59 = mul i64 %54, %indvar
  %scevgep1129 = getelementptr i8, ptr %9, i64 %59
  %60 = mul i64 %55, %indvar
  %scevgep1130 = getelementptr i8, ptr %9, i64 %60
  %61 = mul i64 %56, %indvar
  %scevgep1131 = getelementptr i8, ptr %3, i64 %61
  %62 = mul i64 %57, %indvar
  %scevgep1132 = getelementptr i8, ptr %3, i64 %62
  %.not888.not899 = icmp ugt i64 %.0840904, 1
  br i1 %.not888.not899, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %58
  %63 = mul nsw i64 %.0840904, %33
  %invariant.gep = getelementptr float, ptr %35, i64 %63
  %64 = mul nsw i64 %.0840904, %38
  %invariant.gep901 = getelementptr float, ptr %40, i64 %64
  %min.iters.check = icmp ult i64 %indvar, 8
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph
  %bound0 = icmp ult ptr %scevgep1129, %scevgep1132
  %bound1 = icmp ult ptr %scevgep1131, %scevgep1130
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %indvar, -8
  %ind.end = or disjoint i64 %n.vec, 1
  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, 1
  %65 = getelementptr float, ptr %invariant.gep, i64 %offset.idx
  %66 = getelementptr i8, ptr %65, i64 16
  %wide.load = load <4 x float>, ptr %65, align 4, !tbaa !9, !alias.scope !11
  %wide.load1133 = load <4 x float>, ptr %66, align 4, !tbaa !9, !alias.scope !11
  %67 = getelementptr float, ptr %invariant.gep901, i64 %offset.idx
  %68 = getelementptr i8, ptr %67, i64 16
  store <4 x float> %wide.load, ptr %67, align 4, !tbaa !9, !alias.scope !14, !noalias !11
  store <4 x float> %wide.load1133, ptr %68, align 4, !tbaa !9, !alias.scope !14, !noalias !11
  %index.next = add nuw i64 %index, 8
  %69 = icmp eq i64 %index.next, %n.vec
  br i1 %69, label %middle.block, label %vector.body, !llvm.loop !16

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %indvar, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph
  %.0844900.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph ], [ %ind.end, %middle.block ]
  %70 = sub i64 %.0840904, %.0844900.ph
  %71 = sub i64 %indvar, %.0844900.ph
  %xtraiter = and i64 %70, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader, %scalar.ph.prol
  %.0844900.prol = phi i64 [ %73, %scalar.ph.prol ], [ %.0844900.ph, %scalar.ph.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph.prol ], [ 0, %scalar.ph.preheader ]
  %gep.prol = getelementptr float, ptr %invariant.gep, i64 %.0844900.prol
  %72 = load float, ptr %gep.prol, align 4, !tbaa !9
  %gep902.prol = getelementptr float, ptr %invariant.gep901, i64 %.0844900.prol
  store float %72, ptr %gep902.prol, align 4, !tbaa !9
  %73 = add nuw nsw i64 %.0844900.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol, !llvm.loop !20

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %.0844900.unr = phi i64 [ %.0844900.ph, %scalar.ph.preheader ], [ %73, %scalar.ph.prol ]
  %74 = icmp ult i64 %71, 3
  br i1 %74, label %._crit_edge, label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.prol.loopexit, %scalar.ph
  %.0844900 = phi i64 [ %82, %scalar.ph ], [ %.0844900.unr, %scalar.ph.prol.loopexit ]
  %gep = getelementptr float, ptr %invariant.gep, i64 %.0844900
  %75 = load float, ptr %gep, align 4, !tbaa !9
  %gep902 = getelementptr float, ptr %invariant.gep901, i64 %.0844900
  store float %75, ptr %gep902, align 4, !tbaa !9
  %76 = add nuw nsw i64 %.0844900, 1
  %gep.1 = getelementptr float, ptr %invariant.gep, i64 %76
  %77 = load float, ptr %gep.1, align 4, !tbaa !9
  %gep902.1 = getelementptr float, ptr %invariant.gep901, i64 %76
  store float %77, ptr %gep902.1, align 4, !tbaa !9
  %78 = add nuw nsw i64 %.0844900, 2
  %gep.2 = getelementptr float, ptr %invariant.gep, i64 %78
  %79 = load float, ptr %gep.2, align 4, !tbaa !9
  %gep902.2 = getelementptr float, ptr %invariant.gep901, i64 %78
  store float %79, ptr %gep902.2, align 4, !tbaa !9
  %80 = add nuw nsw i64 %.0844900, 3
  %gep.3 = getelementptr float, ptr %invariant.gep, i64 %80
  %81 = load float, ptr %gep.3, align 4, !tbaa !9
  %gep902.3 = getelementptr float, ptr %invariant.gep901, i64 %80
  store float %81, ptr %gep902.3, align 4, !tbaa !9
  %82 = add nuw nsw i64 %.0844900, 4
  %exitcond.not.3 = icmp eq i64 %82, %.0840904
  br i1 %exitcond.not.3, label %._crit_edge, label %scalar.ph, !llvm.loop !22

._crit_edge:                                      ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block, %58
  %83 = mul i64 %.0840904, %52
  %84 = getelementptr inbounds float, ptr %35, i64 %83
  %85 = load float, ptr %84, align 4, !tbaa !9
  %86 = load float, ptr %5, align 4, !tbaa !9
  %87 = fsub float %85, %86
  %88 = mul i64 %.0840904, %53
  %89 = getelementptr inbounds float, ptr %40, i64 %88
  store float %87, ptr %89, align 4, !tbaa !9
  %90 = add nuw i64 %.0840904, 1
  %exitcond1060.not = icmp eq i64 %.0840904, %51
  %indvar.next = add i64 %indvar, 1
  br i1 %exitcond1060.not, label %._crit_edge907, label %58, !llvm.loop !23

._crit_edge907:                                   ; preds = %._crit_edge
  %91 = add nsw i64 %51, -1
  store i64 %91, ptr %22, align 8, !tbaa !5
  br label %92

92:                                               ; preds = %._crit_edge907, %16
  %93 = load float, ptr %6, align 4, !tbaa !9
  %94 = fcmp oeq float %93, 0.000000e+00
  %95 = load i64, ptr %1, align 8, !tbaa !5
  %.not878 = icmp eq i64 %95, 0
  br i1 %94, label %96, label %320

96:                                               ; preds = %92
  br i1 %.not878, label %103, label %97

97:                                               ; preds = %96
  br i1 %.not903, label %.loopexit893, label %.lr.ph1010.preheader

.lr.ph1010.preheader:                             ; preds = %97
  %.pre1090 = load float, ptr %12, align 4, !tbaa !9
  %min.iters.check1207 = icmp ult i64 %51, 8
  br i1 %min.iters.check1207, label %.lr.ph1010.preheader1346, label %vector.ph1208

vector.ph1208:                                    ; preds = %.lr.ph1010.preheader
  %n.vec1210 = and i64 %51, 9223372036854775800
  %ind.end1211 = or disjoint i64 %n.vec1210, 1
  %broadcast.splatinsert1216 = insertelement <4 x float> poison, float %.pre1090, i64 0
  %broadcast.splat1217 = shufflevector <4 x float> %broadcast.splatinsert1216, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1213

vector.body1213:                                  ; preds = %vector.body1213, %vector.ph1208
  %index1214 = phi i64 [ 0, %vector.ph1208 ], [ %index.next1218, %vector.body1213 ]
  %98 = getelementptr float, ptr %7, i64 %index1214
  %99 = getelementptr inbounds i8, ptr %98, i64 16
  store <4 x float> %broadcast.splat1217, ptr %98, align 4, !tbaa !9
  store <4 x float> %broadcast.splat1217, ptr %99, align 4, !tbaa !9
  %index.next1218 = add nuw i64 %index1214, 8
  %100 = icmp eq i64 %index.next1218, %n.vec1210
  br i1 %100, label %middle.block1205, label %vector.body1213, !llvm.loop !24

middle.block1205:                                 ; preds = %vector.body1213
  %cmp.n1219 = icmp eq i64 %51, %n.vec1210
  br i1 %cmp.n1219, label %.loopexit893, label %.lr.ph1010.preheader1346

.lr.ph1010.preheader1346:                         ; preds = %middle.block1205, %.lr.ph1010.preheader
  %.18451008.ph = phi i64 [ 1, %.lr.ph1010.preheader ], [ %ind.end1211, %middle.block1205 ]
  br label %.lr.ph1010

.lr.ph1010:                                       ; preds = %.lr.ph1010.preheader1346, %.lr.ph1010
  %.18451008 = phi i64 [ %102, %.lr.ph1010 ], [ %.18451008.ph, %.lr.ph1010.preheader1346 ]
  %101 = getelementptr inbounds float, ptr %36, i64 %.18451008
  store float %.pre1090, ptr %101, align 4, !tbaa !9
  %102 = add nuw i64 %.18451008, 1
  %exitcond1071.not = icmp eq i64 %.18451008, %51
  br i1 %exitcond1071.not, label %.loopexit893, label %.lr.ph1010, !llvm.loop !25

103:                                              ; preds = %96
  %104 = tail call double @f2c_snrm2(ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %105 = fptrunc double %104 to float
  %106 = load float, ptr %12, align 4, !tbaa !9
  %107 = fmul float %sqrtf, %106
  %108 = fcmp ole float %50, %105
  %109 = select i1 %108, float %105, float %50
  %110 = fdiv float %107, %109
  store float %110, ptr %24, align 4, !tbaa !9
  %111 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %24, ptr noundef %7, ptr noundef nonnull @c__1) #6
  br label %.loopexit893

.loopexit893:                                     ; preds = %.lr.ph1010, %middle.block1205, %97, %103
  %112 = load i64, ptr %0, align 8, !tbaa !5
  %.not880 = icmp eq i64 %112, 0
  %113 = load i64, ptr %2, align 8, !tbaa !5
  %114 = icmp sgt i64 %113, 1
  br i1 %.not880, label %181, label %115

115:                                              ; preds = %.loopexit893
  %116 = add i64 %38, 1
  br i1 %114, label %.lr.ph1022.preheader, label %._crit_edge1097

.lr.ph1022.preheader:                             ; preds = %115
  %ident.check1291.not = icmp eq i64 %38, 1
  %ident.check1296.not = icmp eq i64 %38, 1
  br label %.lr.ph1022

.lr.ph1022:                                       ; preds = %.lr.ph1022.preheader, %.loopexit891
  %indvar1293 = phi i64 [ %indvar.next1294, %.loopexit891 ], [ 0, %.lr.ph1022.preheader ]
  %.28461020 = phi i64 [ %121, %.loopexit891 ], [ 1, %.lr.ph1022.preheader ]
  %117 = shl i64 %indvar1293, 3
  %118 = or disjoint i64 %117, 4
  %scevgep1300 = getelementptr i8, ptr %9, i64 %118
  %119 = shl i64 %indvar1293, 3
  %120 = or disjoint i64 %119, 4
  %scevgep1295 = getelementptr i8, ptr %9, i64 %120
  %121 = add nuw nsw i64 %.28461020, 1
  %122 = mul nsw i64 %.28461020, %33
  %123 = getelementptr float, ptr %35, i64 %121
  %124 = getelementptr float, ptr %123, i64 %122
  %125 = load float, ptr %124, align 4, !tbaa !9
  %126 = mul i64 %.28461020, %116
  %127 = getelementptr inbounds float, ptr %40, i64 %126
  %128 = load float, ptr %127, align 4, !tbaa !9
  %129 = fcmp oge float %128, 0.000000e+00
  %130 = fneg float %128
  %131 = select i1 %129, float %128, float %130
  %132 = fcmp oge float %125, 0.000000e+00
  %133 = fneg float %125
  %134 = select i1 %132, float %125, float %133
  %135 = fcmp olt float %131, %134
  br i1 %135, label %.lver.check1297, label %153

.lver.check1297:                                  ; preds = %.lr.ph1022
  store float %125, ptr %127, align 4, !tbaa !9
  %136 = getelementptr float, ptr %40, i64 %121
  %137 = getelementptr float, ptr %40, i64 %.28461020
  %138 = fdiv float %130, %125
  br i1 %ident.check1296.not, label %.ph1298, label %.ph1298.lver.orig

.ph1298.lver.orig:                                ; preds = %.lver.check1297, %.ph1298.lver.orig
  %.18411016.lver.orig = phi i64 [ %145, %.ph1298.lver.orig ], [ %121, %.lver.check1297 ]
  %139 = mul nsw i64 %.18411016.lver.orig, %38
  %140 = getelementptr float, ptr %136, i64 %139
  %141 = load float, ptr %140, align 4, !tbaa !9
  %142 = getelementptr float, ptr %137, i64 %139
  %143 = load float, ptr %142, align 4, !tbaa !9
  %144 = call float @llvm.fmuladd.f32(float %138, float %141, float %143)
  store float %144, ptr %140, align 4, !tbaa !9
  store float %141, ptr %142, align 4, !tbaa !9
  %145 = add nuw nsw i64 %.18411016.lver.orig, 1
  %.not887.not.lver.orig = icmp slt i64 %.18411016.lver.orig, %113
  br i1 %.not887.not.lver.orig, label %.ph1298.lver.orig, label %.loopexit891, !llvm.loop !26

.ph1298:                                          ; preds = %.lver.check1297
  %load_initial1301 = load float, ptr %scevgep1300, align 4
  br label %146

146:                                              ; preds = %.ph1298, %146
  %store_forwarded1302 = phi float [ %load_initial1301, %.ph1298 ], [ %151, %146 ]
  %.18411016 = phi i64 [ %121, %.ph1298 ], [ %152, %146 ]
  %147 = mul nuw nsw i64 %.18411016, %38
  %148 = getelementptr float, ptr %136, i64 %147
  %149 = load float, ptr %148, align 4, !tbaa !9
  %150 = getelementptr float, ptr %137, i64 %147
  %151 = call float @llvm.fmuladd.f32(float %138, float %149, float %store_forwarded1302)
  store float %151, ptr %148, align 4, !tbaa !9
  store float %149, ptr %150, align 4, !tbaa !9
  %152 = add nuw nsw i64 %.18411016, 1
  %.not887.not = icmp slt i64 %.18411016, %113
  br i1 %.not887.not, label %146, label %.loopexit891, !llvm.loop !26

153:                                              ; preds = %.lr.ph1022
  %154 = fcmp oeq float %128, 0.000000e+00
  br i1 %154, label %155, label %157

155:                                              ; preds = %153
  %156 = load float, ptr %12, align 4, !tbaa !9
  store float %156, ptr %127, align 4, !tbaa !9
  br label %157

157:                                              ; preds = %155, %153
  %158 = phi float [ %156, %155 ], [ %128, %153 ]
  %159 = fdiv float %125, %158
  %160 = fcmp une float %159, 0.000000e+00
  br i1 %160, label %.lver.check, label %.loopexit891

.lver.check:                                      ; preds = %157
  %161 = getelementptr float, ptr %40, i64 %.28461020
  %162 = getelementptr float, ptr %40, i64 %121
  %163 = fneg float %159
  br i1 %ident.check1291.not, label %.ph, label %.ph.lver.orig

.ph.lver.orig:                                    ; preds = %.lver.check, %.ph.lver.orig
  %.28421012.lver.orig = phi i64 [ %170, %.ph.lver.orig ], [ %121, %.lver.check ]
  %164 = mul nsw i64 %.28421012.lver.orig, %38
  %165 = getelementptr float, ptr %161, i64 %164
  %166 = load float, ptr %165, align 4, !tbaa !9
  %167 = getelementptr float, ptr %162, i64 %164
  %168 = load float, ptr %167, align 4, !tbaa !9
  %169 = call float @llvm.fmuladd.f32(float %163, float %166, float %168)
  store float %169, ptr %167, align 4, !tbaa !9
  %170 = add nuw nsw i64 %.28421012.lver.orig, 1
  %.not886.not.lver.orig = icmp slt i64 %.28421012.lver.orig, %113
  br i1 %.not886.not.lver.orig, label %.ph.lver.orig, label %.loopexit891, !llvm.loop !27

.ph:                                              ; preds = %.lver.check
  %load_initial = load float, ptr %scevgep1295, align 4
  br label %171

171:                                              ; preds = %.ph, %171
  %store_forwarded = phi float [ %load_initial, %.ph ], [ %175, %171 ]
  %.28421012 = phi i64 [ %121, %.ph ], [ %176, %171 ]
  %172 = mul nuw nsw i64 %.28421012, %38
  %173 = getelementptr float, ptr %162, i64 %172
  %174 = load float, ptr %173, align 4, !tbaa !9
  %175 = call float @llvm.fmuladd.f32(float %163, float %store_forwarded, float %174)
  store float %175, ptr %173, align 4, !tbaa !9
  %176 = add nuw nsw i64 %.28421012, 1
  %.not886.not = icmp slt i64 %.28421012, %113
  br i1 %.not886.not, label %171, label %.loopexit891, !llvm.loop !27

.loopexit891:                                     ; preds = %.ph.lver.orig, %171, %.ph1298.lver.orig, %146, %157
  %exitcond1072.not = icmp eq i64 %121, %113
  %indvar.next1294 = add i64 %indvar1293, 1
  br i1 %exitcond1072.not, label %._crit_edge1023, label %.lr.ph1022, !llvm.loop !28

._crit_edge1023:                                  ; preds = %.loopexit891
  store float %128, ptr %24, align 4, !tbaa !9
  br label %._crit_edge1097

._crit_edge1097:                                  ; preds = %115, %._crit_edge1023
  %177 = mul i64 %113, %116
  %178 = getelementptr inbounds float, ptr %40, i64 %177
  %179 = load float, ptr %178, align 4, !tbaa !9
  %180 = fcmp oeq float %179, 0.000000e+00
  br i1 %180, label %.sink.split, label %285

181:                                              ; preds = %.loopexit893
  br i1 %114, label %.lr.ph1035.preheader, label %281

.lr.ph1035.preheader:                             ; preds = %181
  %182 = shl i64 %113, 2
  %183 = add i64 %182, -8
  %184 = mul i64 %38, %183
  %185 = mul i64 %38, -4
  %186 = shl i64 %38, 2
  %187 = sub nuw nsw i64 -4, %186
  %188 = add i64 %182, -4
  %189 = mul i64 %38, %188
  %190 = shl i64 %113, 2
  %191 = add i64 %190, -8
  %192 = mul i64 %38, %191
  %193 = mul i64 %38, -4
  %194 = shl i64 %38, 2
  %195 = sub nuw nsw i64 -4, %194
  %196 = add i64 %190, -4
  %197 = mul i64 %38, %196
  %198 = getelementptr i8, ptr %9, i64 %192
  %199 = getelementptr i8, ptr %9, i64 %192
  %200 = getelementptr i8, ptr %199, i64 %190
  %201 = getelementptr i8, ptr %200, i64 -4
  %202 = getelementptr i8, ptr %9, i64 %197
  %203 = getelementptr i8, ptr %9, i64 %197
  %204 = getelementptr i8, ptr %203, i64 %190
  %205 = getelementptr i8, ptr %204, i64 -4
  %206 = getelementptr i8, ptr %9, i64 %184
  %207 = getelementptr i8, ptr %9, i64 %184
  %208 = getelementptr i8, ptr %207, i64 %182
  %209 = getelementptr i8, ptr %208, i64 -4
  %210 = getelementptr i8, ptr %9, i64 %189
  %211 = getelementptr i8, ptr %9, i64 %189
  %212 = getelementptr i8, ptr %211, i64 %182
  %213 = getelementptr i8, ptr %212, i64 -4
  br label %.lr.ph1035

.lr.ph1035:                                       ; preds = %.lr.ph1035.preheader, %.loopexit889
  %indvar1221 = phi i64 [ 0, %.lr.ph1035.preheader ], [ %indvar.next1222, %.loopexit889 ]
  %.38431033 = phi i64 [ %113, %.lr.ph1035.preheader ], [ %222, %.loopexit889 ]
  %214 = xor i64 %indvar1221, -1
  %215 = add i64 %113, %214
  %216 = mul i64 %193, %indvar1221
  %scevgep1250 = getelementptr i8, ptr %198, i64 %216
  %217 = mul i64 %195, %indvar1221
  %scevgep1251 = getelementptr i8, ptr %201, i64 %217
  %scevgep1252 = getelementptr i8, ptr %202, i64 %216
  %scevgep1253 = getelementptr i8, ptr %205, i64 %217
  %218 = xor i64 %indvar1221, -1
  %219 = add i64 %113, %218
  %220 = mul i64 %185, %indvar1221
  %scevgep1223 = getelementptr i8, ptr %206, i64 %220
  %221 = mul i64 %187, %indvar1221
  %scevgep1224 = getelementptr i8, ptr %209, i64 %221
  %scevgep1225 = getelementptr i8, ptr %210, i64 %220
  %scevgep1226 = getelementptr i8, ptr %213, i64 %221
  %222 = add nsw i64 %.38431033, -1
  %223 = mul nsw i64 %222, %33
  %224 = getelementptr float, ptr %35, i64 %.38431033
  %225 = getelementptr float, ptr %224, i64 %223
  %226 = load float, ptr %225, align 4, !tbaa !9
  %227 = mul nsw i64 %.38431033, %38
  %228 = getelementptr float, ptr %40, i64 %.38431033
  %229 = getelementptr float, ptr %228, i64 %227
  %230 = load float, ptr %229, align 4, !tbaa !9
  %231 = fcmp oge float %230, 0.000000e+00
  %232 = fneg float %230
  %233 = select i1 %231, float %230, float %232
  %234 = fcmp oge float %226, 0.000000e+00
  %235 = fneg float %226
  %236 = select i1 %234, float %226, float %235
  %237 = fcmp olt float %233, %236
  br i1 %237, label %.lr.ph1032, label %255

.lr.ph1032:                                       ; preds = %.lr.ph1035
  store float %226, ptr %229, align 4, !tbaa !9
  store i64 %222, ptr %21, align 8, !tbaa !5
  %238 = mul nsw i64 %222, %38
  %239 = fdiv float %232, %226
  %min.iters.check1232 = icmp ult i64 %219, 8
  br i1 %min.iters.check1232, label %scalar.ph1231.preheader, label %vector.memcheck1220

vector.memcheck1220:                              ; preds = %.lr.ph1032
  %bound01227 = icmp ult ptr %scevgep1223, %scevgep1226
  %bound11228 = icmp ult ptr %scevgep1225, %scevgep1224
  %found.conflict1229 = and i1 %bound01227, %bound11228
  br i1 %found.conflict1229, label %scalar.ph1231.preheader, label %vector.ph1233

vector.ph1233:                                    ; preds = %vector.memcheck1220
  %n.vec1235 = and i64 %219, -8
  %ind.end1236 = or disjoint i64 %n.vec1235, 1
  %broadcast.splatinsert1245 = insertelement <4 x float> poison, float %239, i64 0
  %broadcast.splat1246 = shufflevector <4 x float> %broadcast.splatinsert1245, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1238

vector.body1238:                                  ; preds = %vector.body1238, %vector.ph1233
  %index1239 = phi i64 [ 0, %vector.ph1233 ], [ %index.next1247, %vector.body1238 ]
  %offset.idx1240 = or disjoint i64 %index1239, 1
  %240 = getelementptr float, ptr %40, i64 %offset.idx1240
  %241 = getelementptr float, ptr %240, i64 %238
  %242 = getelementptr i8, ptr %241, i64 16
  %wide.load1241 = load <4 x float>, ptr %241, align 4, !tbaa !9, !alias.scope !29, !noalias !32
  %wide.load1242 = load <4 x float>, ptr %242, align 4, !tbaa !9, !alias.scope !29, !noalias !32
  %243 = getelementptr float, ptr %240, i64 %227
  %244 = getelementptr i8, ptr %243, i64 16
  %wide.load1243 = load <4 x float>, ptr %243, align 4, !tbaa !9, !alias.scope !32
  %wide.load1244 = load <4 x float>, ptr %244, align 4, !tbaa !9, !alias.scope !32
  %245 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1246, <4 x float> %wide.load1241, <4 x float> %wide.load1243)
  %246 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1246, <4 x float> %wide.load1242, <4 x float> %wide.load1244)
  store <4 x float> %245, ptr %241, align 4, !tbaa !9, !alias.scope !29, !noalias !32
  store <4 x float> %246, ptr %242, align 4, !tbaa !9, !alias.scope !29, !noalias !32
  store <4 x float> %wide.load1241, ptr %243, align 4, !tbaa !9, !alias.scope !32
  store <4 x float> %wide.load1242, ptr %244, align 4, !tbaa !9, !alias.scope !32
  %index.next1247 = add nuw i64 %index1239, 8
  %247 = icmp eq i64 %index.next1247, %n.vec1235
  br i1 %247, label %middle.block1230, label %vector.body1238, !llvm.loop !34

middle.block1230:                                 ; preds = %vector.body1238
  %cmp.n1248 = icmp eq i64 %219, %n.vec1235
  br i1 %cmp.n1248, label %.loopexit889, label %scalar.ph1231.preheader

scalar.ph1231.preheader:                          ; preds = %middle.block1230, %vector.memcheck1220, %.lr.ph1032
  %.38471030.ph = phi i64 [ 1, %vector.memcheck1220 ], [ 1, %.lr.ph1032 ], [ %ind.end1236, %middle.block1230 ]
  br label %scalar.ph1231

scalar.ph1231:                                    ; preds = %scalar.ph1231.preheader, %scalar.ph1231
  %.38471030 = phi i64 [ %254, %scalar.ph1231 ], [ %.38471030.ph, %scalar.ph1231.preheader ]
  %248 = getelementptr float, ptr %40, i64 %.38471030
  %249 = getelementptr float, ptr %248, i64 %238
  %250 = load float, ptr %249, align 4, !tbaa !9
  %251 = getelementptr float, ptr %248, i64 %227
  %252 = load float, ptr %251, align 4, !tbaa !9
  %253 = call float @llvm.fmuladd.f32(float %239, float %250, float %252)
  store float %253, ptr %249, align 4, !tbaa !9
  store float %250, ptr %251, align 4, !tbaa !9
  %254 = add nuw nsw i64 %.38471030, 1
  %.not882.not = icmp slt i64 %254, %.38431033
  br i1 %.not882.not, label %scalar.ph1231, label %.loopexit889, !llvm.loop !35

255:                                              ; preds = %.lr.ph1035
  %256 = fcmp oeq float %230, 0.000000e+00
  br i1 %256, label %257, label %259

257:                                              ; preds = %255
  %258 = load float, ptr %12, align 4, !tbaa !9
  store float %258, ptr %229, align 4, !tbaa !9
  br label %259

259:                                              ; preds = %257, %255
  %260 = phi float [ %258, %257 ], [ %230, %255 ]
  %261 = fdiv float %226, %260
  %262 = fcmp une float %261, 0.000000e+00
  br i1 %262, label %.lr.ph1028, label %.loopexit889

.lr.ph1028:                                       ; preds = %259
  store i64 %222, ptr %21, align 8, !tbaa !5
  %263 = mul nsw i64 %222, %38
  %264 = fneg float %261
  %min.iters.check1259 = icmp ult i64 %215, 8
  br i1 %min.iters.check1259, label %scalar.ph1258.preheader, label %vector.memcheck1249

vector.memcheck1249:                              ; preds = %.lr.ph1028
  %bound01254 = icmp ult ptr %scevgep1250, %scevgep1253
  %bound11255 = icmp ult ptr %scevgep1252, %scevgep1251
  %found.conflict1256 = and i1 %bound01254, %bound11255
  br i1 %found.conflict1256, label %scalar.ph1258.preheader, label %vector.ph1260

vector.ph1260:                                    ; preds = %vector.memcheck1249
  %n.vec1262 = and i64 %215, -8
  %ind.end1263 = or disjoint i64 %n.vec1262, 1
  %broadcast.splatinsert1272 = insertelement <4 x float> poison, float %264, i64 0
  %broadcast.splat1273 = shufflevector <4 x float> %broadcast.splatinsert1272, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1265

vector.body1265:                                  ; preds = %vector.body1265, %vector.ph1260
  %index1266 = phi i64 [ 0, %vector.ph1260 ], [ %index.next1274, %vector.body1265 ]
  %offset.idx1267 = or disjoint i64 %index1266, 1
  %265 = getelementptr float, ptr %40, i64 %offset.idx1267
  %266 = getelementptr float, ptr %265, i64 %227
  %267 = getelementptr i8, ptr %266, i64 16
  %wide.load1268 = load <4 x float>, ptr %266, align 4, !tbaa !9, !alias.scope !36
  %wide.load1269 = load <4 x float>, ptr %267, align 4, !tbaa !9, !alias.scope !36
  %268 = getelementptr float, ptr %265, i64 %263
  %269 = getelementptr i8, ptr %268, i64 16
  %wide.load1270 = load <4 x float>, ptr %268, align 4, !tbaa !9, !alias.scope !39, !noalias !36
  %wide.load1271 = load <4 x float>, ptr %269, align 4, !tbaa !9, !alias.scope !39, !noalias !36
  %270 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1273, <4 x float> %wide.load1268, <4 x float> %wide.load1270)
  %271 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1273, <4 x float> %wide.load1269, <4 x float> %wide.load1271)
  store <4 x float> %270, ptr %268, align 4, !tbaa !9, !alias.scope !39, !noalias !36
  store <4 x float> %271, ptr %269, align 4, !tbaa !9, !alias.scope !39, !noalias !36
  %index.next1274 = add nuw i64 %index1266, 8
  %272 = icmp eq i64 %index.next1274, %n.vec1262
  br i1 %272, label %middle.block1257, label %vector.body1265, !llvm.loop !41

middle.block1257:                                 ; preds = %vector.body1265
  %cmp.n1275 = icmp eq i64 %215, %n.vec1262
  br i1 %cmp.n1275, label %.loopexit889, label %scalar.ph1258.preheader

scalar.ph1258.preheader:                          ; preds = %middle.block1257, %vector.memcheck1249, %.lr.ph1028
  %.48481026.ph = phi i64 [ 1, %vector.memcheck1249 ], [ 1, %.lr.ph1028 ], [ %ind.end1263, %middle.block1257 ]
  br label %scalar.ph1258

scalar.ph1258:                                    ; preds = %scalar.ph1258.preheader, %scalar.ph1258
  %.48481026 = phi i64 [ %279, %scalar.ph1258 ], [ %.48481026.ph, %scalar.ph1258.preheader ]
  %273 = getelementptr float, ptr %40, i64 %.48481026
  %274 = getelementptr float, ptr %273, i64 %227
  %275 = load float, ptr %274, align 4, !tbaa !9
  %276 = getelementptr float, ptr %273, i64 %263
  %277 = load float, ptr %276, align 4, !tbaa !9
  %278 = call float @llvm.fmuladd.f32(float %264, float %275, float %277)
  store float %278, ptr %276, align 4, !tbaa !9
  %279 = add nuw nsw i64 %.48481026, 1
  %.not881.not = icmp slt i64 %279, %.38431033
  br i1 %.not881.not, label %scalar.ph1258, label %.loopexit889, !llvm.loop !42

.loopexit889:                                     ; preds = %scalar.ph1258, %scalar.ph1231, %middle.block1257, %middle.block1230, %259
  %280 = icmp sgt i64 %.38431033, 2
  %indvar.next1222 = add i64 %indvar1221, 1
  br i1 %280, label %.lr.ph1035, label %._crit_edge1036, !llvm.loop !43

._crit_edge1036:                                  ; preds = %.loopexit889
  store float %230, ptr %24, align 4, !tbaa !9
  br label %281

281:                                              ; preds = %._crit_edge1036, %181
  %282 = load float, ptr %9, align 4, !tbaa !9
  %283 = fcmp oeq float %282, 0.000000e+00
  br i1 %283, label %.sink.split, label %285

.sink.split:                                      ; preds = %281, %._crit_edge1097
  %.sink1118 = phi ptr [ %178, %._crit_edge1097 ], [ %9, %281 ]
  %storemerge.ph = phi i8 [ 78, %._crit_edge1097 ], [ 84, %281 ]
  %284 = load float, ptr %12, align 4, !tbaa !9
  store float %284, ptr %.sink1118, align 4, !tbaa !9
  br label %285

285:                                              ; preds = %.sink.split, %281, %._crit_edge1097
  %storemerge = phi i8 [ 78, %._crit_edge1097 ], [ 84, %281 ], [ %storemerge.ph, %.sink.split ]
  store i8 %storemerge, ptr %31, align 1, !tbaa !44
  store i8 78, ptr %32, align 1, !tbaa !44
  store i64 %113, ptr %21, align 8, !tbaa !5
  %.not8841043 = icmp slt i64 %113, 1
  br i1 %.not8841043, label %._crit_edge1047, label %.lr.ph1046

.lr.ph1046:                                       ; preds = %285
  %286 = fadd float %sqrtf, 1.000000e+00
  br label %287

287:                                              ; preds = %.lr.ph1046, %._crit_edge1042
  %.08351044 = phi i64 [ 1, %.lr.ph1046 ], [ %310, %._crit_edge1042 ]
  %288 = call i32 @slatrs_(ptr noundef nonnull @.str, ptr noundef nonnull %31, ptr noundef nonnull @.str.1, ptr noundef nonnull %32, ptr noundef nonnull %2, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %7, ptr noundef nonnull %30, ptr noundef %11, ptr noundef nonnull %29) #6
  store i8 89, ptr %32, align 1, !tbaa !44
  %289 = call double @f2c_sasum(ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %290 = fptrunc double %289 to float
  %291 = load float, ptr %30, align 4, !tbaa !9
  %292 = fmul float %44, %291
  %293 = fcmp ugt float %292, %290
  br i1 %293, label %294, label %.loopexit

294:                                              ; preds = %287
  %295 = load float, ptr %12, align 4, !tbaa !9
  %296 = fdiv float %295, %286
  store float %295, ptr %7, align 4, !tbaa !9
  %297 = load i64, ptr %2, align 8, !tbaa !5
  %.not8851038 = icmp slt i64 %297, 2
  br i1 %.not8851038, label %._crit_edge1042, label %.lr.ph1041.preheader

.lr.ph1041.preheader:                             ; preds = %294
  %298 = add nsw i64 %297, -1
  %min.iters.check1278 = icmp ult i64 %297, 9
  br i1 %min.iters.check1278, label %.lr.ph1041.preheader1340, label %vector.ph1279

vector.ph1279:                                    ; preds = %.lr.ph1041.preheader
  %n.vec1281 = and i64 %298, -8
  %ind.end1282 = or disjoint i64 %n.vec1281, 2
  %broadcast.splatinsert1287 = insertelement <4 x float> poison, float %296, i64 0
  %broadcast.splat1288 = shufflevector <4 x float> %broadcast.splatinsert1287, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1284

vector.body1284:                                  ; preds = %vector.body1284, %vector.ph1279
  %index1285 = phi i64 [ 0, %vector.ph1279 ], [ %index.next1289, %vector.body1284 ]
  %offset.idx1286 = or disjoint i64 %index1285, 2
  %299 = getelementptr inbounds float, ptr %36, i64 %offset.idx1286
  %300 = getelementptr inbounds i8, ptr %299, i64 16
  store <4 x float> %broadcast.splat1288, ptr %299, align 4, !tbaa !9
  store <4 x float> %broadcast.splat1288, ptr %300, align 4, !tbaa !9
  %index.next1289 = add nuw i64 %index1285, 8
  %301 = icmp eq i64 %index.next1289, %n.vec1281
  br i1 %301, label %middle.block1276, label %vector.body1284, !llvm.loop !45

middle.block1276:                                 ; preds = %vector.body1284
  %cmp.n1290 = icmp eq i64 %298, %n.vec1281
  br i1 %cmp.n1290, label %._crit_edge1042.loopexit, label %.lr.ph1041.preheader1340

.lr.ph1041.preheader1340:                         ; preds = %middle.block1276, %.lr.ph1041.preheader
  %.58491039.ph = phi i64 [ 2, %.lr.ph1041.preheader ], [ %ind.end1282, %middle.block1276 ]
  br label %.lr.ph1041

.lr.ph1041:                                       ; preds = %.lr.ph1041.preheader1340, %.lr.ph1041
  %.58491039 = phi i64 [ %303, %.lr.ph1041 ], [ %.58491039.ph, %.lr.ph1041.preheader1340 ]
  %302 = getelementptr inbounds float, ptr %36, i64 %.58491039
  store float %296, ptr %302, align 4, !tbaa !9
  %303 = add nuw i64 %.58491039, 1
  %exitcond1074.not = icmp eq i64 %.58491039, %297
  br i1 %exitcond1074.not, label %._crit_edge1042.loopexit, label %.lr.ph1041, !llvm.loop !46

._crit_edge1042.loopexit:                         ; preds = %.lr.ph1041, %middle.block1276
  %.pre1093 = load float, ptr %12, align 4, !tbaa !9
  br label %._crit_edge1042

._crit_edge1042:                                  ; preds = %._crit_edge1042.loopexit, %294
  %304 = phi float [ %.pre1093, %._crit_edge1042.loopexit ], [ %295, %294 ]
  %305 = sub nsw i64 %297, %.08351044
  %306 = getelementptr float, ptr %7, i64 %305
  %307 = load float, ptr %306, align 4, !tbaa !9
  %308 = fneg float %304
  %309 = call float @llvm.fmuladd.f32(float %308, float %sqrtf, float %307)
  store float %309, ptr %306, align 4, !tbaa !9
  %310 = add nuw nsw i64 %.08351044, 1
  %311 = load i64, ptr %21, align 8, !tbaa !5
  %.not884.not = icmp slt i64 %.08351044, %311
  br i1 %.not884.not, label %287, label %._crit_edge1047, !llvm.loop !47

._crit_edge1047:                                  ; preds = %._crit_edge1042, %285
  store i64 1, ptr %15, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %287, %._crit_edge1047
  %312 = call i64 @f2c_isamax(ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %313 = getelementptr inbounds float, ptr %36, i64 %312
  %314 = load float, ptr %313, align 4, !tbaa !9
  store float %314, ptr %24, align 4, !tbaa !9
  %315 = fcmp oge float %314, 0.000000e+00
  %316 = fneg float %314
  %317 = select i1 %315, float %314, float %316
  %318 = fdiv float 1.000000e+00, %317
  store float %318, ptr %25, align 4, !tbaa !9
  %319 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef %7, ptr noundef nonnull @c__1) #6
  br label %915

320:                                              ; preds = %92
  br i1 %.not878, label %352, label %321

321:                                              ; preds = %320
  br i1 %.not903, label %.loopexit898, label %.lr.ph911.preheader

.lr.ph911.preheader:                              ; preds = %321
  %min.iters.check1150 = icmp ult i64 %51, 20
  br i1 %min.iters.check1150, label %.lr.ph911.preheader1359, label %vector.memcheck1134

vector.memcheck1134:                              ; preds = %.lr.ph911.preheader
  %322 = shl i64 %51, 2
  %scevgep1135 = getelementptr i8, ptr %7, i64 %322
  %scevgep1136 = getelementptr i8, ptr %8, i64 %322
  %scevgep1137 = getelementptr i8, ptr %12, i64 4
  %bound01138 = icmp ugt ptr %scevgep1136, %7
  %bound11139 = icmp ugt ptr %scevgep1135, %8
  %found.conflict1140 = and i1 %bound01138, %bound11139
  %bound01141 = icmp ugt ptr %scevgep1137, %7
  %bound11142 = icmp ugt ptr %scevgep1135, %12
  %found.conflict1143 = and i1 %bound01141, %bound11142
  %conflict.rdx = or i1 %found.conflict1140, %found.conflict1143
  %bound01144 = icmp ugt ptr %scevgep1137, %8
  %bound11145 = icmp ugt ptr %scevgep1136, %12
  %found.conflict1146 = and i1 %bound01144, %bound11145
  %conflict.rdx1147 = or i1 %conflict.rdx, %found.conflict1146
  br i1 %conflict.rdx1147, label %.lr.ph911.preheader1359, label %vector.ph1151

vector.ph1151:                                    ; preds = %vector.memcheck1134
  %n.vec1153 = and i64 %51, 9223372036854775800
  %ind.end1154 = or disjoint i64 %n.vec1153, 1
  %323 = load float, ptr %12, align 4, !tbaa !9, !alias.scope !48
  %broadcast.splatinsert1159 = insertelement <4 x float> poison, float %323, i64 0
  %broadcast.splat1160 = shufflevector <4 x float> %broadcast.splatinsert1159, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1156

vector.body1156:                                  ; preds = %vector.body1156, %vector.ph1151
  %index1157 = phi i64 [ 0, %vector.ph1151 ], [ %index.next1161, %vector.body1156 ]
  %324 = getelementptr float, ptr %7, i64 %index1157
  %325 = getelementptr inbounds i8, ptr %324, i64 16
  store <4 x float> %broadcast.splat1160, ptr %324, align 4, !tbaa !9, !alias.scope !51, !noalias !53
  store <4 x float> %broadcast.splat1160, ptr %325, align 4, !tbaa !9, !alias.scope !51, !noalias !53
  %326 = getelementptr float, ptr %8, i64 %index1157
  %327 = getelementptr inbounds i8, ptr %326, i64 16
  store <4 x float> zeroinitializer, ptr %326, align 4, !tbaa !9, !alias.scope !55, !noalias !48
  store <4 x float> zeroinitializer, ptr %327, align 4, !tbaa !9, !alias.scope !55, !noalias !48
  %index.next1161 = add nuw i64 %index1157, 8
  %328 = icmp eq i64 %index.next1161, %n.vec1153
  br i1 %328, label %middle.block1148, label %vector.body1156, !llvm.loop !56

middle.block1148:                                 ; preds = %vector.body1156
  %cmp.n1162 = icmp eq i64 %51, %n.vec1153
  br i1 %cmp.n1162, label %.loopexit898, label %.lr.ph911.preheader1359

.lr.ph911.preheader1359:                          ; preds = %middle.block1148, %vector.memcheck1134, %.lr.ph911.preheader
  %.6850909.ph = phi i64 [ 1, %vector.memcheck1134 ], [ 1, %.lr.ph911.preheader ], [ %ind.end1154, %middle.block1148 ]
  %329 = add nuw i64 %51, 1
  %330 = sub i64 %329, %.6850909.ph
  %331 = sub i64 %51, %.6850909.ph
  %xtraiter1360 = and i64 %330, 3
  %lcmp.mod1361.not = icmp eq i64 %xtraiter1360, 0
  br i1 %lcmp.mod1361.not, label %.lr.ph911.prol.loopexit, label %.lr.ph911.prol

.lr.ph911.prol:                                   ; preds = %.lr.ph911.preheader1359, %.lr.ph911.prol
  %.6850909.prol = phi i64 [ %335, %.lr.ph911.prol ], [ %.6850909.ph, %.lr.ph911.preheader1359 ]
  %prol.iter1362 = phi i64 [ %prol.iter1362.next, %.lr.ph911.prol ], [ 0, %.lr.ph911.preheader1359 ]
  %332 = load float, ptr %12, align 4, !tbaa !9
  %333 = getelementptr inbounds float, ptr %36, i64 %.6850909.prol
  store float %332, ptr %333, align 4, !tbaa !9
  %334 = getelementptr inbounds float, ptr %37, i64 %.6850909.prol
  store float 0.000000e+00, ptr %334, align 4, !tbaa !9
  %335 = add nuw i64 %.6850909.prol, 1
  %prol.iter1362.next = add i64 %prol.iter1362, 1
  %prol.iter1362.cmp.not = icmp eq i64 %prol.iter1362.next, %xtraiter1360
  br i1 %prol.iter1362.cmp.not, label %.lr.ph911.prol.loopexit, label %.lr.ph911.prol, !llvm.loop !57

.lr.ph911.prol.loopexit:                          ; preds = %.lr.ph911.prol, %.lr.ph911.preheader1359
  %.6850909.unr = phi i64 [ %.6850909.ph, %.lr.ph911.preheader1359 ], [ %335, %.lr.ph911.prol ]
  %336 = icmp ult i64 %331, 3
  br i1 %336, label %.loopexit898, label %.lr.ph911

.lr.ph911:                                        ; preds = %.lr.ph911.prol.loopexit, %.lr.ph911
  %.6850909 = phi i64 [ %351, %.lr.ph911 ], [ %.6850909.unr, %.lr.ph911.prol.loopexit ]
  %337 = load float, ptr %12, align 4, !tbaa !9
  %338 = getelementptr inbounds float, ptr %36, i64 %.6850909
  store float %337, ptr %338, align 4, !tbaa !9
  %339 = getelementptr inbounds float, ptr %37, i64 %.6850909
  store float 0.000000e+00, ptr %339, align 4, !tbaa !9
  %340 = load float, ptr %12, align 4, !tbaa !9
  %341 = getelementptr float, ptr %7, i64 %.6850909
  store float %340, ptr %341, align 4, !tbaa !9
  %342 = getelementptr float, ptr %8, i64 %.6850909
  store float 0.000000e+00, ptr %342, align 4, !tbaa !9
  %343 = add nuw i64 %.6850909, 2
  %344 = load float, ptr %12, align 4, !tbaa !9
  %345 = getelementptr inbounds float, ptr %36, i64 %343
  store float %344, ptr %345, align 4, !tbaa !9
  %346 = getelementptr inbounds float, ptr %37, i64 %343
  store float 0.000000e+00, ptr %346, align 4, !tbaa !9
  %347 = add nuw i64 %.6850909, 3
  %348 = load float, ptr %12, align 4, !tbaa !9
  %349 = getelementptr inbounds float, ptr %36, i64 %347
  store float %348, ptr %349, align 4, !tbaa !9
  %350 = getelementptr inbounds float, ptr %37, i64 %347
  store float 0.000000e+00, ptr %350, align 4, !tbaa !9
  %351 = add nuw i64 %.6850909, 4
  %exitcond1061.not.3 = icmp eq i64 %347, %51
  br i1 %exitcond1061.not.3, label %.loopexit898, label %.lr.ph911, !llvm.loop !58

352:                                              ; preds = %320
  %353 = tail call double @f2c_snrm2(ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %354 = fptrunc double %353 to float
  store float %354, ptr %24, align 4, !tbaa !9
  %355 = tail call double @f2c_snrm2(ptr noundef nonnull %2, ptr noundef %8, ptr noundef nonnull @c__1) #6
  %356 = fptrunc double %355 to float
  store float %356, ptr %25, align 4, !tbaa !9
  %357 = call double @slapy2_(ptr noundef nonnull %24, ptr noundef nonnull %25) #6
  %358 = fptrunc double %357 to float
  %359 = load float, ptr %12, align 4, !tbaa !9
  %360 = fmul float %sqrtf, %359
  %361 = fcmp ole float %50, %358
  %362 = select i1 %361, float %358, float %50
  %363 = fdiv float %360, %362
  store float %363, ptr %28, align 4, !tbaa !9
  %364 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %365 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef %8, ptr noundef nonnull @c__1) #6
  br label %.loopexit898

.loopexit898:                                     ; preds = %.lr.ph911.prol.loopexit, %.lr.ph911, %middle.block1148, %321, %352
  %366 = load i64, ptr %0, align 8, !tbaa !5
  %.not863.not = icmp eq i64 %366, 0
  %367 = load float, ptr %6, align 4, !tbaa !9
  br i1 %.not863.not, label %515, label %368

368:                                              ; preds = %.loopexit898
  %369 = fneg float %367
  %370 = getelementptr inbounds i8, ptr %9, i64 4
  store float %369, ptr %370, align 4, !tbaa !9
  %371 = load i64, ptr %2, align 8, !tbaa !5
  %.not867912 = icmp slt i64 %371, 2
  br i1 %.not867912, label %._crit_edge933, label %.lr.ph932.preheader

.lr.ph932.preheader:                              ; preds = %368
  %scevgep = getelementptr i8, ptr %9, i64 8
  %372 = shl i64 %371, 2
  %373 = add i64 %372, -4
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %373, i1 false), !tbaa !9
  %374 = add nsw i64 %371, -1
  store i64 %374, ptr %21, align 8, !tbaa !5
  %invariant.gep927 = getelementptr i8, ptr %40, i64 8
  %invariant.gep1384 = getelementptr i8, ptr %9, i64 8
  %invariant.gep1386 = getelementptr i8, ptr %9, i64 8
  %ident.check1319.not = icmp eq i64 %38, 1
  %ident.check1330.not = icmp eq i64 %38, 1
  br label %.lr.ph932

.lr.ph932:                                        ; preds = %.lr.ph932.preheader, %488
  %indvar1323 = phi i64 [ 0, %.lr.ph932.preheader ], [ %indvar.next1324, %488 ]
  %.8852930 = phi i64 [ 1, %.lr.ph932.preheader ], [ %380, %488 ]
  %375 = shl i64 %indvar1323, 3
  %gep1385 = getelementptr i8, ptr %invariant.gep1384, i64 %375
  %376 = shl i64 %indvar1323, 3
  %gep1387 = getelementptr i8, ptr %invariant.gep1386, i64 %376
  %377 = mul nsw i64 %.8852930, %38
  %378 = getelementptr float, ptr %40, i64 %.8852930
  %379 = getelementptr float, ptr %378, i64 %377
  %380 = add nuw nsw i64 %.8852930, 1
  %381 = getelementptr float, ptr %40, i64 %380
  %382 = getelementptr float, ptr %381, i64 %377
  %383 = call double @slapy2_(ptr noundef %379, ptr noundef %382) #6
  %384 = fptrunc double %383 to float
  %385 = mul nsw i64 %.8852930, %33
  %386 = getelementptr float, ptr %35, i64 %380
  %387 = getelementptr float, ptr %386, i64 %385
  %388 = load float, ptr %387, align 4, !tbaa !9
  %389 = fcmp oge float %388, 0.000000e+00
  %390 = fneg float %388
  %391 = select i1 %389, float %388, float %390
  %392 = fcmp ogt float %391, %384
  br i1 %392, label %393, label %437

393:                                              ; preds = %.lr.ph932
  %394 = load float, ptr %379, align 4, !tbaa !9
  %395 = fdiv float %394, %388
  store float %395, ptr %27, align 4, !tbaa !9
  %396 = load float, ptr %382, align 4, !tbaa !9
  %397 = fdiv float %396, %388
  store float %397, ptr %26, align 4, !tbaa !9
  store float %388, ptr %379, align 4, !tbaa !9
  store float 0.000000e+00, ptr %382, align 4, !tbaa !9
  %398 = load i64, ptr %2, align 8, !tbaa !5
  %.not877922.not = icmp slt i64 %.8852930, %398
  %399 = fneg float %397
  br i1 %.not877922.not, label %.lver.check1331, label %.._crit_edge926_crit_edge

.._crit_edge926_crit_edge:                        ; preds = %393
  %.pre1100 = mul nsw i64 %380, %38
  br label %._crit_edge926

.lver.check1331:                                  ; preds = %393
  %400 = fneg float %395
  %401 = mul nsw i64 %380, %38
  br i1 %ident.check1330.not, label %.ph1332, label %.ph1332.lver.orig

.ph1332.lver.orig:                                ; preds = %.lver.check1331, %.ph1332.lver.orig
  %.4923.lver.orig = phi i64 [ %408, %.ph1332.lver.orig ], [ %380, %.lver.check1331 ]
  %402 = mul nsw i64 %.4923.lver.orig, %38
  %403 = getelementptr float, ptr %381, i64 %402
  %404 = load float, ptr %403, align 4, !tbaa !9
  %405 = getelementptr float, ptr %378, i64 %402
  %406 = load float, ptr %405, align 4, !tbaa !9
  %407 = call float @llvm.fmuladd.f32(float %400, float %404, float %406)
  store float %407, ptr %403, align 4, !tbaa !9
  %408 = add nuw nsw i64 %.4923.lver.orig, 1
  %409 = getelementptr float, ptr %40, i64 %408
  %410 = getelementptr float, ptr %409, i64 %377
  %411 = load float, ptr %410, align 4, !tbaa !9
  %412 = call float @llvm.fmuladd.f32(float %399, float %404, float %411)
  %413 = getelementptr float, ptr %409, i64 %401
  store float %412, ptr %413, align 4, !tbaa !9
  store float %404, ptr %405, align 4, !tbaa !9
  store float 0.000000e+00, ptr %410, align 4, !tbaa !9
  %.not877.not.lver.orig = icmp slt i64 %.4923.lver.orig, %398
  br i1 %.not877.not.lver.orig, label %.ph1332.lver.orig, label %._crit_edge926, !llvm.loop !59

.ph1332:                                          ; preds = %.lver.check1331
  %load_initial1335 = load float, ptr %gep1385, align 4
  br label %414

414:                                              ; preds = %.ph1332, %414
  %store_forwarded1336 = phi float [ %load_initial1335, %.ph1332 ], [ %424, %414 ]
  %.4923 = phi i64 [ %380, %.ph1332 ], [ %420, %414 ]
  %415 = mul nuw nsw i64 %.4923, %38
  %416 = getelementptr float, ptr %381, i64 %415
  %417 = getelementptr float, ptr %378, i64 %415
  %418 = load float, ptr %417, align 4, !tbaa !9
  %419 = call float @llvm.fmuladd.f32(float %400, float %store_forwarded1336, float %418)
  store float %419, ptr %416, align 4, !tbaa !9
  %420 = add nuw nsw i64 %.4923, 1
  %421 = getelementptr float, ptr %40, i64 %420
  %422 = getelementptr float, ptr %421, i64 %377
  %423 = load float, ptr %422, align 4, !tbaa !9
  %424 = call float @llvm.fmuladd.f32(float %399, float %store_forwarded1336, float %423)
  %425 = getelementptr float, ptr %421, i64 %401
  store float %424, ptr %425, align 4, !tbaa !9
  store float %store_forwarded1336, ptr %417, align 4, !tbaa !9
  store float 0.000000e+00, ptr %422, align 4, !tbaa !9
  %.not877.not = icmp slt i64 %.4923, %398
  br i1 %.not877.not, label %414, label %._crit_edge926, !llvm.loop !59

._crit_edge926:                                   ; preds = %.ph1332.lver.orig, %414, %.._crit_edge926_crit_edge
  %.pre-phi1101 = phi i64 [ %.pre1100, %.._crit_edge926_crit_edge ], [ %401, %414 ], [ %401, %.ph1332.lver.orig ]
  %426 = load float, ptr %6, align 4, !tbaa !9
  %427 = fneg float %426
  %gep928 = getelementptr float, ptr %invariant.gep927, i64 %.8852930
  %428 = getelementptr float, ptr %gep928, i64 %377
  store float %427, ptr %428, align 4, !tbaa !9
  %429 = load float, ptr %6, align 4, !tbaa !9
  %430 = getelementptr float, ptr %381, i64 %.pre-phi1101
  %431 = load float, ptr %430, align 4, !tbaa !9
  %432 = call float @llvm.fmuladd.f32(float %399, float %429, float %431)
  store float %432, ptr %430, align 4, !tbaa !9
  %433 = load float, ptr %6, align 4, !tbaa !9
  %434 = getelementptr float, ptr %gep928, i64 %.pre-phi1101
  %435 = load float, ptr %434, align 4, !tbaa !9
  %436 = call float @llvm.fmuladd.f32(float %395, float %433, float %435)
  store float %436, ptr %434, align 4, !tbaa !9
  br label %488

437:                                              ; preds = %.lr.ph932
  %438 = fcmp oeq float %384, 0.000000e+00
  br i1 %438, label %439, label %._crit_edge1075

._crit_edge1075:                                  ; preds = %437
  %.pre = load float, ptr %379, align 4, !tbaa !9
  %.pre1076 = load float, ptr %382, align 4, !tbaa !9
  br label %442

439:                                              ; preds = %437
  %440 = load float, ptr %12, align 4, !tbaa !9
  store float %440, ptr %379, align 4, !tbaa !9
  store float 0.000000e+00, ptr %382, align 4, !tbaa !9
  %441 = load float, ptr %12, align 4, !tbaa !9
  br label %442

442:                                              ; preds = %._crit_edge1075, %439
  %443 = phi float [ 0.000000e+00, %439 ], [ %.pre1076, %._crit_edge1075 ]
  %444 = phi float [ %440, %439 ], [ %.pre, %._crit_edge1075 ]
  %.0830 = phi float [ %441, %439 ], [ %384, %._crit_edge1075 ]
  %445 = fdiv float %388, %.0830
  %446 = fdiv float %445, %.0830
  %447 = fmul float %444, %446
  store float %447, ptr %27, align 4, !tbaa !9
  %448 = fneg float %443
  %449 = fmul float %446, %448
  store float %449, ptr %26, align 4, !tbaa !9
  %450 = load i64, ptr %2, align 8, !tbaa !5
  %.not876917.not = icmp slt i64 %.8852930, %450
  br i1 %.not876917.not, label %.lver.check1320, label %.._crit_edge921_crit_edge

.._crit_edge921_crit_edge:                        ; preds = %442
  %.pre1104 = mul nsw i64 %380, %38
  br label %._crit_edge921

.lver.check1320:                                  ; preds = %442
  %451 = fneg float %447
  %452 = fneg float %449
  %453 = mul nsw i64 %380, %38
  br i1 %ident.check1319.not, label %.ph1321, label %.ph1321.lver.orig

.ph1321.lver.orig:                                ; preds = %.lver.check1320, %.ph1321.lver.orig
  %.5918.lver.orig = phi i64 [ %460, %.ph1321.lver.orig ], [ %380, %.lver.check1320 ]
  %454 = mul nsw i64 %.5918.lver.orig, %38
  %455 = getelementptr float, ptr %381, i64 %454
  %456 = load float, ptr %455, align 4, !tbaa !9
  %457 = getelementptr float, ptr %378, i64 %454
  %458 = load float, ptr %457, align 4, !tbaa !9
  %459 = call float @llvm.fmuladd.f32(float %451, float %458, float %456)
  %460 = add nuw nsw i64 %.5918.lver.orig, 1
  %461 = getelementptr float, ptr %40, i64 %460
  %462 = getelementptr float, ptr %461, i64 %377
  %463 = load float, ptr %462, align 4, !tbaa !9
  %464 = call float @llvm.fmuladd.f32(float %449, float %463, float %459)
  store float %464, ptr %455, align 4, !tbaa !9
  %465 = load float, ptr %462, align 4, !tbaa !9
  %466 = fmul float %458, %452
  %467 = call float @llvm.fmuladd.f32(float %451, float %465, float %466)
  %468 = getelementptr float, ptr %461, i64 %453
  store float %467, ptr %468, align 4, !tbaa !9
  %.not876.not.lver.orig = icmp slt i64 %.5918.lver.orig, %450
  br i1 %.not876.not.lver.orig, label %.ph1321.lver.orig, label %._crit_edge921, !llvm.loop !60

.ph1321:                                          ; preds = %.lver.check1320
  %load_initial1326 = load float, ptr %gep1387, align 4
  br label %469

469:                                              ; preds = %.ph1321, %469
  %store_forwarded1327 = phi float [ %load_initial1326, %.ph1321 ], [ %481, %469 ]
  %.5918 = phi i64 [ %380, %.ph1321 ], [ %475, %469 ]
  %470 = mul nuw nsw i64 %.5918, %38
  %471 = getelementptr float, ptr %381, i64 %470
  %472 = getelementptr float, ptr %378, i64 %470
  %473 = load float, ptr %472, align 4, !tbaa !9
  %474 = call float @llvm.fmuladd.f32(float %451, float %473, float %store_forwarded1327)
  %475 = add nuw nsw i64 %.5918, 1
  %476 = getelementptr float, ptr %40, i64 %475
  %477 = getelementptr float, ptr %476, i64 %377
  %478 = call float @llvm.fmuladd.f32(float %449, float %store_forwarded1327, float %474)
  store float %478, ptr %471, align 4, !tbaa !9
  %479 = load float, ptr %477, align 4, !tbaa !9
  %480 = fmul float %473, %452
  %481 = call float @llvm.fmuladd.f32(float %451, float %479, float %480)
  %482 = getelementptr float, ptr %476, i64 %453
  store float %481, ptr %482, align 4, !tbaa !9
  %.not876.not = icmp slt i64 %.5918, %450
  br i1 %.not876.not, label %469, label %._crit_edge921, !llvm.loop !60

._crit_edge921:                                   ; preds = %.ph1321.lver.orig, %469, %.._crit_edge921_crit_edge
  %.pre-phi1105 = phi i64 [ %.pre1104, %.._crit_edge921_crit_edge ], [ %453, %469 ], [ %453, %.ph1321.lver.orig ]
  %483 = load float, ptr %6, align 4, !tbaa !9
  %484 = getelementptr i8, ptr %378, i64 8
  %485 = getelementptr float, ptr %484, i64 %.pre-phi1105
  %486 = load float, ptr %485, align 4, !tbaa !9
  %487 = fsub float %486, %483
  store float %487, ptr %485, align 4, !tbaa !9
  br label %488

488:                                              ; preds = %._crit_edge921, %._crit_edge926
  %.pre-phi1096 = phi i64 [ %.pre-phi1105, %._crit_edge921 ], [ %.pre-phi1101, %._crit_edge926 ]
  %489 = phi i64 [ %450, %._crit_edge921 ], [ %398, %._crit_edge926 ]
  %490 = sub nsw i64 %489, %.8852930
  store i64 %490, ptr %22, align 8, !tbaa !5
  store i64 %490, ptr %23, align 8, !tbaa !5
  %491 = getelementptr float, ptr %378, i64 %.pre-phi1096
  %492 = call double @f2c_sasum(ptr noundef nonnull %22, ptr noundef %491, ptr noundef nonnull %10) #6
  %493 = getelementptr i8, ptr %378, i64 8
  %494 = getelementptr float, ptr %493, i64 %377
  %495 = call double @f2c_sasum(ptr noundef nonnull %23, ptr noundef %494, ptr noundef nonnull @c__1) #6
  %496 = fadd double %492, %495
  %497 = fptrunc double %496 to float
  %498 = getelementptr inbounds float, ptr %41, i64 %.8852930
  store float %497, ptr %498, align 4, !tbaa !9
  %499 = load i64, ptr %21, align 8, !tbaa !5
  %.not868.not = icmp slt i64 %.8852930, %499
  %indvar.next1324 = add i64 %indvar1323, 1
  br i1 %.not868.not, label %.lr.ph932, label %._crit_edge933.loopexit, !llvm.loop !61

._crit_edge933.loopexit:                          ; preds = %488
  %.pre1077 = load i64, ptr %2, align 8, !tbaa !5
  br label %._crit_edge933

._crit_edge933:                                   ; preds = %368, %._crit_edge933.loopexit
  %500 = phi i64 [ %.pre1077, %._crit_edge933.loopexit ], [ %371, %368 ]
  %501 = mul nsw i64 %500, %38
  %502 = getelementptr float, ptr %40, i64 %500
  %503 = getelementptr float, ptr %502, i64 %501
  %504 = load float, ptr %503, align 4, !tbaa !9
  %505 = fcmp oeq float %504, 0.000000e+00
  br i1 %505, label %506, label %513

506:                                              ; preds = %._crit_edge933
  %507 = getelementptr i8, ptr %502, i64 4
  %508 = getelementptr float, ptr %507, i64 %501
  %509 = load float, ptr %508, align 4, !tbaa !9
  %510 = fcmp oeq float %509, 0.000000e+00
  br i1 %510, label %511, label %513

511:                                              ; preds = %506
  %512 = load float, ptr %12, align 4, !tbaa !9
  store float %512, ptr %503, align 4, !tbaa !9
  br label %513

513:                                              ; preds = %511, %506, %._crit_edge933
  %514 = getelementptr inbounds float, ptr %41, i64 %500
  store float 0.000000e+00, ptr %514, align 4, !tbaa !9
  br label %681

515:                                              ; preds = %.loopexit898
  %516 = load i64, ptr %2, align 8, !tbaa !5
  %517 = mul nsw i64 %516, %38
  %518 = getelementptr float, ptr %40, i64 %516
  %519 = getelementptr i8, ptr %518, i64 4
  %520 = getelementptr float, ptr %519, i64 %517
  store float %367, ptr %520, align 4, !tbaa !9
  %521 = add nsw i64 %516, -1
  store i64 %521, ptr %21, align 8, !tbaa !5
  %.not864.not934 = icmp sgt i64 %516, 1
  br i1 %.not864.not934, label %.lr.ph937.preheader, label %._crit_edge955

.lr.ph937.preheader:                              ; preds = %515
  %522 = add nsw i64 %516, -1
  %min.iters.check1165 = icmp ugt i64 %516, 8
  %ident.check.not = icmp eq i64 %38, 1
  %or.cond = select i1 %min.iters.check1165, i1 %ident.check.not, i1 false
  br i1 %or.cond, label %vector.ph1166, label %.lr.ph937.preheader1356

.lr.ph937.preheader1356:                          ; preds = %middle.block1163, %.lr.ph937.preheader
  %.6935.ph = phi i64 [ 1, %.lr.ph937.preheader ], [ %ind.end1169, %middle.block1163 ]
  %523 = sub i64 %516, %.6935.ph
  %xtraiter1363 = and i64 %523, 3
  %lcmp.mod1364.not = icmp eq i64 %xtraiter1363, 0
  br i1 %lcmp.mod1364.not, label %.lr.ph937.prol.loopexit, label %.lr.ph937.prol

.lr.ph937.prol:                                   ; preds = %.lr.ph937.preheader1356, %.lr.ph937.prol
  %.6935.prol = phi i64 [ %526, %.lr.ph937.prol ], [ %.6935.ph, %.lr.ph937.preheader1356 ]
  %prol.iter1365 = phi i64 [ %prol.iter1365.next, %.lr.ph937.prol ], [ 0, %.lr.ph937.preheader1356 ]
  %524 = mul nsw i64 %.6935.prol, %38
  %525 = getelementptr float, ptr %519, i64 %524
  store float 0.000000e+00, ptr %525, align 4, !tbaa !9
  %526 = add nuw nsw i64 %.6935.prol, 1
  %prol.iter1365.next = add i64 %prol.iter1365, 1
  %prol.iter1365.cmp.not = icmp eq i64 %prol.iter1365.next, %xtraiter1363
  br i1 %prol.iter1365.cmp.not, label %.lr.ph937.prol.loopexit, label %.lr.ph937.prol, !llvm.loop !62

.lr.ph937.prol.loopexit:                          ; preds = %.lr.ph937.prol, %.lr.ph937.preheader1356
  %.6935.unr = phi i64 [ %.6935.ph, %.lr.ph937.preheader1356 ], [ %526, %.lr.ph937.prol ]
  %527 = sub i64 %.6935.ph, %516
  %528 = icmp ugt i64 %527, -4
  br i1 %528, label %.preheader897, label %.lr.ph937

vector.ph1166:                                    ; preds = %.lr.ph937.preheader
  %n.vec1168 = and i64 %522, -8
  %ind.end1169 = or disjoint i64 %n.vec1168, 1
  br label %vector.body1171

vector.body1171:                                  ; preds = %vector.body1171, %vector.ph1166
  %index1172 = phi i64 [ 0, %vector.ph1166 ], [ %index.next1174, %vector.body1171 ]
  %offset.idx1173 = or disjoint i64 %index1172, 1
  %529 = getelementptr float, ptr %519, i64 %offset.idx1173
  %530 = getelementptr i8, ptr %529, i64 16
  store <4 x float> zeroinitializer, ptr %529, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %530, align 4, !tbaa !9
  %index.next1174 = add nuw i64 %index1172, 8
  %531 = icmp eq i64 %index.next1174, %n.vec1168
  br i1 %531, label %middle.block1163, label %vector.body1171, !llvm.loop !63

middle.block1163:                                 ; preds = %vector.body1171
  %cmp.n1175 = icmp eq i64 %522, %n.vec1168
  br i1 %cmp.n1175, label %.preheader897, label %.lr.ph937.preheader1356

.preheader897:                                    ; preds = %.lr.ph937.prol.loopexit, %.lr.ph937, %middle.block1163
  %invariant.gep948 = getelementptr i8, ptr %40, i64 4
  br i1 %.not864.not934, label %.lr.ph954.preheader, label %._crit_edge955

.lr.ph954.preheader:                              ; preds = %.preheader897
  %532 = shl i64 %516, 2
  %533 = add i64 %532, -8
  %534 = add i64 %532, -4
  %ident.check1303.not = icmp eq i64 %38, 1
  %ident.check1312.not = icmp eq i64 %38, 1
  %535 = getelementptr i8, ptr %40, i64 4
  br label %.lr.ph954

.lr.ph937:                                        ; preds = %.lr.ph937.prol.loopexit, %.lr.ph937
  %.6935 = phi i64 [ %547, %.lr.ph937 ], [ %.6935.unr, %.lr.ph937.prol.loopexit ]
  %536 = mul nsw i64 %.6935, %38
  %537 = getelementptr float, ptr %519, i64 %536
  store float 0.000000e+00, ptr %537, align 4, !tbaa !9
  %538 = add nuw nsw i64 %.6935, 1
  %539 = mul nsw i64 %538, %38
  %540 = getelementptr float, ptr %519, i64 %539
  store float 0.000000e+00, ptr %540, align 4, !tbaa !9
  %541 = add nuw nsw i64 %.6935, 2
  %542 = mul nsw i64 %541, %38
  %543 = getelementptr float, ptr %519, i64 %542
  store float 0.000000e+00, ptr %543, align 4, !tbaa !9
  %544 = add nuw nsw i64 %.6935, 3
  %545 = mul nsw i64 %544, %38
  %546 = getelementptr float, ptr %519, i64 %545
  store float 0.000000e+00, ptr %546, align 4, !tbaa !9
  %547 = add nuw nsw i64 %.6935, 4
  %exitcond1063.not.3 = icmp eq i64 %547, %516
  br i1 %exitcond1063.not.3, label %.preheader897, label %.lr.ph937, !llvm.loop !64

.lr.ph954:                                        ; preds = %.lr.ph954.preheader, %663
  %indvar1307 = phi i64 [ 0, %.lr.ph954.preheader ], [ %indvar.next1308, %663 ]
  %.7952 = phi i64 [ %516, %.lr.ph954.preheader ], [ %552, %663 ]
  %548 = shl i64 %indvar1307, 2
  %549 = sub i64 %534, %548
  %scevgep1316 = getelementptr i8, ptr %9, i64 %549
  %550 = shl i64 %indvar1307, 2
  %551 = sub i64 %533, %550
  %scevgep1309 = getelementptr i8, ptr %9, i64 %551
  %552 = add nsw i64 %.7952, -1
  %553 = mul nsw i64 %552, %33
  %554 = getelementptr float, ptr %35, i64 %.7952
  %555 = getelementptr float, ptr %554, i64 %553
  %556 = load float, ptr %555, align 4, !tbaa !9
  %557 = mul nsw i64 %.7952, %38
  %558 = getelementptr float, ptr %40, i64 %.7952
  %559 = getelementptr float, ptr %558, i64 %557
  %gep949 = getelementptr float, ptr %invariant.gep948, i64 %.7952
  %560 = getelementptr float, ptr %gep949, i64 %557
  %561 = call double @slapy2_(ptr noundef %559, ptr noundef %560) #6
  %562 = fptrunc double %561 to float
  %563 = fcmp oge float %556, 0.000000e+00
  %564 = fneg float %556
  %565 = select i1 %563, float %556, float %564
  %566 = fcmp ogt float %565, %562
  br i1 %566, label %.lver.check1313, label %613

.lver.check1313:                                  ; preds = %.lr.ph954
  %567 = load float, ptr %559, align 4, !tbaa !9
  %568 = fdiv float %567, %556
  store float %568, ptr %27, align 4, !tbaa !9
  %569 = load float, ptr %560, align 4, !tbaa !9
  %570 = fdiv float %569, %556
  store float %570, ptr %26, align 4, !tbaa !9
  store float %556, ptr %559, align 4, !tbaa !9
  store float 0.000000e+00, ptr %560, align 4, !tbaa !9
  %571 = mul nsw i64 %552, %38
  %572 = fneg float %568
  %573 = fneg float %570
  br i1 %ident.check1312.not, label %.ph1314, label %.ph1314.lver.orig

.ph1314.lver.orig:                                ; preds = %.lver.check1313, %.ph1314.lver.orig
  %.9853944.lver.orig = phi i64 [ %585, %.ph1314.lver.orig ], [ 1, %.lver.check1313 ]
  %574 = getelementptr float, ptr %40, i64 %.9853944.lver.orig
  %575 = getelementptr float, ptr %574, i64 %571
  %576 = load float, ptr %575, align 4, !tbaa !9
  %577 = getelementptr float, ptr %574, i64 %557
  %578 = load float, ptr %577, align 4, !tbaa !9
  %579 = call float @llvm.fmuladd.f32(float %572, float %576, float %578)
  store float %579, ptr %575, align 4, !tbaa !9
  %580 = mul nsw i64 %.9853944.lver.orig, %38
  %581 = getelementptr float, ptr %gep949, i64 %580
  %582 = load float, ptr %581, align 4, !tbaa !9
  %583 = call float @llvm.fmuladd.f32(float %573, float %576, float %582)
  %584 = getelementptr float, ptr %558, i64 %580
  store float %583, ptr %584, align 4, !tbaa !9
  store float %576, ptr %577, align 4, !tbaa !9
  store float 0.000000e+00, ptr %581, align 4, !tbaa !9
  %585 = add nuw nsw i64 %.9853944.lver.orig, 1
  %.not866.not.lver.orig = icmp slt i64 %585, %.7952
  br i1 %.not866.not.lver.orig, label %.ph1314.lver.orig, label %._crit_edge947, !llvm.loop !65

.ph1314:                                          ; preds = %.lver.check1313
  %load_initial1317 = load float, ptr %scevgep1316, align 4
  %586 = getelementptr float, ptr %535, i64 %571
  %587 = load float, ptr %586, align 4, !tbaa !9
  %588 = getelementptr float, ptr %535, i64 %557
  %589 = call float @llvm.fmuladd.f32(float %572, float %587, float %load_initial1317)
  store float %589, ptr %586, align 4, !tbaa !9
  %590 = getelementptr float, ptr %gep949, i64 %38
  %591 = load float, ptr %590, align 4, !tbaa !9
  %592 = call float @llvm.fmuladd.f32(float %573, float %587, float %591)
  %593 = getelementptr float, ptr %558, i64 %38
  store float %592, ptr %593, align 4, !tbaa !9
  store float %587, ptr %588, align 4, !tbaa !9
  store float 0.000000e+00, ptr %590, align 4, !tbaa !9
  %.not866.not.peel = icmp sgt i64 %.7952, 2
  br i1 %.not866.not.peel, label %.ph1314.peel.newph, label %._crit_edge947

.ph1314.peel.newph:                               ; preds = %.ph1314, %.ph1314.peel.newph
  %.9853944 = phi i64 [ %604, %.ph1314.peel.newph ], [ 2, %.ph1314 ]
  %594 = getelementptr float, ptr %40, i64 %.9853944
  %595 = getelementptr float, ptr %594, i64 %571
  %596 = load float, ptr %595, align 4, !tbaa !9
  %597 = getelementptr float, ptr %594, i64 %557
  %598 = call float @llvm.fmuladd.f32(float %572, float %596, float 0.000000e+00)
  store float %598, ptr %595, align 4, !tbaa !9
  %599 = mul nuw nsw i64 %.9853944, %38
  %600 = getelementptr float, ptr %gep949, i64 %599
  %601 = load float, ptr %600, align 4, !tbaa !9
  %602 = call float @llvm.fmuladd.f32(float %573, float %596, float %601)
  %603 = getelementptr float, ptr %558, i64 %599
  store float %602, ptr %603, align 4, !tbaa !9
  store float %596, ptr %597, align 4, !tbaa !9
  store float 0.000000e+00, ptr %600, align 4, !tbaa !9
  %604 = add nuw nsw i64 %.9853944, 1
  %.not866.not = icmp slt i64 %604, %.7952
  br i1 %.not866.not, label %.ph1314.peel.newph, label %._crit_edge947, !llvm.loop !66

._crit_edge947:                                   ; preds = %.ph1314.lver.orig, %.ph1314, %.ph1314.peel.newph
  %.phi.trans.insert1088 = getelementptr float, ptr %558, i64 %571
  %.pre1089 = load float, ptr %.phi.trans.insert1088, align 4, !tbaa !9
  %.phi.trans.insert1085 = getelementptr float, ptr %40, i64 %552
  %.phi.trans.insert1086 = getelementptr float, ptr %.phi.trans.insert1085, i64 %571
  %.pre1087 = load float, ptr %.phi.trans.insert1086, align 4, !tbaa !9
  %605 = load float, ptr %6, align 4, !tbaa !9
  %606 = getelementptr float, ptr %gep949, i64 %571
  store float %605, ptr %606, align 4, !tbaa !9
  %607 = getelementptr float, ptr %40, i64 %552
  %608 = getelementptr float, ptr %607, i64 %571
  %609 = call float @llvm.fmuladd.f32(float %570, float %605, float %.pre1087)
  store float %609, ptr %608, align 4, !tbaa !9
  %610 = load float, ptr %6, align 4, !tbaa !9
  %611 = getelementptr float, ptr %558, i64 %571
  %612 = call float @llvm.fmuladd.f32(float %572, float %610, float %.pre1089)
  store float %612, ptr %611, align 4, !tbaa !9
  br label %663

613:                                              ; preds = %.lr.ph954
  %614 = fcmp oeq float %562, 0.000000e+00
  br i1 %614, label %615, label %._crit_edge1078

._crit_edge1078:                                  ; preds = %613
  %.pre1079 = load float, ptr %559, align 4, !tbaa !9
  %.pre1080 = load float, ptr %560, align 4, !tbaa !9
  br label %.lver.check1304

615:                                              ; preds = %613
  %616 = load float, ptr %12, align 4, !tbaa !9
  store float %616, ptr %559, align 4, !tbaa !9
  store float 0.000000e+00, ptr %560, align 4, !tbaa !9
  %617 = load float, ptr %12, align 4, !tbaa !9
  br label %.lver.check1304

.lver.check1304:                                  ; preds = %615, %._crit_edge1078
  %618 = phi float [ 0.000000e+00, %615 ], [ %.pre1080, %._crit_edge1078 ]
  %619 = phi float [ %616, %615 ], [ %.pre1079, %._crit_edge1078 ]
  %.0 = phi float [ %617, %615 ], [ %562, %._crit_edge1078 ]
  %620 = fdiv float %556, %.0
  %621 = fdiv float %620, %.0
  %622 = fmul float %619, %621
  store float %622, ptr %27, align 4, !tbaa !9
  %623 = fneg float %618
  %624 = fmul float %621, %623
  store float %624, ptr %26, align 4, !tbaa !9
  %625 = mul nsw i64 %552, %38
  %626 = fneg float %622
  %627 = fneg float %624
  br i1 %ident.check1303.not, label %.ph1305, label %.ph1305.lver.orig

.ph1305.lver.orig:                                ; preds = %.lver.check1304, %.ph1305.lver.orig
  %.10854939.lver.orig = phi i64 [ %643, %.ph1305.lver.orig ], [ 1, %.lver.check1304 ]
  %628 = getelementptr float, ptr %40, i64 %.10854939.lver.orig
  %629 = getelementptr float, ptr %628, i64 %625
  %630 = load float, ptr %629, align 4, !tbaa !9
  %631 = getelementptr float, ptr %628, i64 %557
  %632 = load float, ptr %631, align 4, !tbaa !9
  %633 = call float @llvm.fmuladd.f32(float %626, float %632, float %630)
  %634 = mul nsw i64 %.10854939.lver.orig, %38
  %635 = getelementptr float, ptr %gep949, i64 %634
  %636 = load float, ptr %635, align 4, !tbaa !9
  %637 = call float @llvm.fmuladd.f32(float %624, float %636, float %633)
  store float %637, ptr %629, align 4, !tbaa !9
  %638 = load float, ptr %635, align 4, !tbaa !9
  %639 = load float, ptr %631, align 4, !tbaa !9
  %640 = fmul float %639, %627
  %641 = call float @llvm.fmuladd.f32(float %626, float %638, float %640)
  %642 = getelementptr float, ptr %558, i64 %634
  store float %641, ptr %642, align 4, !tbaa !9
  %643 = add nuw nsw i64 %.10854939.lver.orig, 1
  %.not865.not.lver.orig = icmp slt i64 %643, %.7952
  br i1 %.not865.not.lver.orig, label %.ph1305.lver.orig, label %._crit_edge942, !llvm.loop !68

.ph1305:                                          ; preds = %.lver.check1304
  %load_initial1310 = load float, ptr %scevgep1309, align 4
  br label %644

644:                                              ; preds = %.ph1305, %644
  %store_forwarded1311 = phi float [ %load_initial1310, %.ph1305 ], [ %657, %644 ]
  %.10854939 = phi i64 [ 1, %.ph1305 ], [ %659, %644 ]
  %645 = getelementptr float, ptr %40, i64 %.10854939
  %646 = getelementptr float, ptr %645, i64 %625
  %647 = getelementptr float, ptr %645, i64 %557
  %648 = load float, ptr %647, align 4, !tbaa !9
  %649 = call float @llvm.fmuladd.f32(float %626, float %648, float %store_forwarded1311)
  %650 = mul nuw nsw i64 %.10854939, %38
  %651 = getelementptr float, ptr %gep949, i64 %650
  %652 = load float, ptr %651, align 4, !tbaa !9
  %653 = call float @llvm.fmuladd.f32(float %624, float %652, float %649)
  store float %653, ptr %646, align 4, !tbaa !9
  %654 = load float, ptr %651, align 4, !tbaa !9
  %655 = load float, ptr %647, align 4, !tbaa !9
  %656 = fmul float %655, %627
  %657 = call float @llvm.fmuladd.f32(float %626, float %654, float %656)
  %658 = getelementptr float, ptr %558, i64 %650
  store float %657, ptr %658, align 4, !tbaa !9
  %659 = add nuw nsw i64 %.10854939, 1
  %.not865.not = icmp slt i64 %659, %.7952
  br i1 %.not865.not, label %644, label %._crit_edge942, !llvm.loop !68

._crit_edge942:                                   ; preds = %.ph1305.lver.orig, %644
  %.phi.trans.insert = getelementptr float, ptr %558, i64 %625
  %.pre1082 = load float, ptr %.phi.trans.insert, align 4, !tbaa !9
  %660 = load float, ptr %6, align 4, !tbaa !9
  %661 = getelementptr float, ptr %558, i64 %625
  %662 = fadd float %660, %.pre1082
  store float %662, ptr %661, align 4, !tbaa !9
  br label %663

663:                                              ; preds = %._crit_edge942, %._crit_edge947
  store i64 %552, ptr %21, align 8, !tbaa !5
  store i64 %552, ptr %22, align 8, !tbaa !5
  %gep951 = getelementptr float, ptr %invariant.gep948, i64 %557
  %664 = call double @f2c_sasum(ptr noundef nonnull %21, ptr noundef %gep951, ptr noundef nonnull @c__1) #6
  %665 = getelementptr inbounds float, ptr %9, i64 %.7952
  %666 = call double @f2c_sasum(ptr noundef nonnull %22, ptr noundef nonnull %665, ptr noundef nonnull %10) #6
  %667 = fadd double %664, %666
  %668 = fptrunc double %667 to float
  %669 = getelementptr inbounds float, ptr %41, i64 %.7952
  store float %668, ptr %669, align 4, !tbaa !9
  %670 = icmp sgt i64 %.7952, 2
  %indvar.next1308 = add i64 %indvar1307, 1
  br i1 %670, label %.lr.ph954, label %._crit_edge955, !llvm.loop !69

._crit_edge955:                                   ; preds = %663, %515, %.preheader897
  %671 = load float, ptr %9, align 4, !tbaa !9
  %672 = fcmp oeq float %671, 0.000000e+00
  br i1 %672, label %673, label %679

673:                                              ; preds = %._crit_edge955
  %674 = getelementptr inbounds i8, ptr %9, i64 4
  %675 = load float, ptr %674, align 4, !tbaa !9
  %676 = fcmp oeq float %675, 0.000000e+00
  br i1 %676, label %677, label %679

677:                                              ; preds = %673
  %678 = load float, ptr %12, align 4, !tbaa !9
  store float %678, ptr %9, align 4, !tbaa !9
  br label %679

679:                                              ; preds = %677, %673, %._crit_edge955
  store float 0.000000e+00, ptr %11, align 4, !tbaa !9
  %680 = load i64, ptr %2, align 8, !tbaa !5
  br label %681

681:                                              ; preds = %679, %513
  %682 = phi i64 [ %500, %513 ], [ %680, %679 ]
  %.0839 = phi i64 [ %500, %513 ], [ 1, %679 ]
  %.0838 = phi i64 [ 1, %513 ], [ %680, %679 ]
  %.0837 = phi i64 [ -1, %513 ], [ 1, %679 ]
  store i64 %682, ptr %21, align 8, !tbaa !5
  %.not869994 = icmp slt i64 %682, 1
  br i1 %.not869994, label %._crit_edge998, label %.lr.ph997

.lr.ph997:                                        ; preds = %681
  %invariant.gep979 = getelementptr i8, ptr %40, i64 4
  %683 = fadd float %sqrtf, 1.000000e+00
  %684 = icmp sge i64 %.0839, %.0838
  %685 = icmp sle i64 %.0839, %.0838
  %.in981 = select i1 %.not863.not, i1 %685, i1 %684
  %686 = sub i64 %20, %19
  %687 = sub i64 %18, %17
  %diff.check1191 = icmp ult i64 %687, 32
  %diff.check = icmp ult i64 %686, 32
  br label %688

688:                                              ; preds = %.lr.ph997, %._crit_edge993
  %.1836995 = phi i64 [ 1, %.lr.ph997 ], [ %894, %._crit_edge993 ]
  %689 = load float, ptr %14, align 4, !tbaa !9
  store i64 %.0838, ptr %22, align 8, !tbaa !5
  store i64 %.0837, ptr %23, align 8, !tbaa !5
  br i1 %.in981, label %.lr.ph987, label %._crit_edge988

.lr.ph987:                                        ; preds = %688, %845
  %690 = phi float [ %846, %845 ], [ 1.000000e+00, %688 ]
  %.0832985 = phi float [ %.1, %845 ], [ %689, %688 ]
  %.0833984 = phi float [ %.3, %845 ], [ 1.000000e+00, %688 ]
  %.11982 = phi i64 [ %848, %845 ], [ %.0839, %688 ]
  %691 = getelementptr inbounds float, ptr %41, i64 %.11982
  %692 = load float, ptr %691, align 4, !tbaa !9
  %693 = fcmp ogt float %692, %.0832985
  br i1 %693, label %694, label %700

694:                                              ; preds = %.lr.ph987
  %695 = fdiv float 1.000000e+00, %.0833984
  store float %695, ptr %28, align 4, !tbaa !9
  %696 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %697 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef %8, ptr noundef nonnull @c__1) #6
  %698 = load float, ptr %28, align 4, !tbaa !9
  %699 = fmul float %698, %690
  br label %700

700:                                              ; preds = %694, %.lr.ph987
  %701 = phi float [ %699, %694 ], [ %690, %.lr.ph987 ]
  %.1834 = phi float [ 1.000000e+00, %694 ], [ %.0833984, %.lr.ph987 ]
  %702 = getelementptr inbounds float, ptr %36, i64 %.11982
  %703 = load float, ptr %702, align 4, !tbaa !9
  store float %703, ptr %27, align 4, !tbaa !9
  %704 = getelementptr inbounds float, ptr %37, i64 %.11982
  %705 = load float, ptr %704, align 4, !tbaa !9
  store float %705, ptr %26, align 4, !tbaa !9
  %706 = load i64, ptr %0, align 8, !tbaa !5
  %.not872 = icmp eq i64 %706, 0
  br i1 %.not872, label %.preheader, label %710

.preheader:                                       ; preds = %700
  %.not873.not967 = icmp sgt i64 %.11982, 1
  %707 = insertelement <2 x float> poison, float %705, i64 0
  %708 = insertelement <2 x float> %707, float %703, i64 1
  br i1 %.not873.not967, label %.lr.ph969, label %.loopexit894

.lr.ph969:                                        ; preds = %.preheader
  %709 = mul nsw i64 %.11982, %38
  %invariant.gep970 = getelementptr float, ptr %40, i64 %709
  %gep980 = getelementptr float, ptr %invariant.gep979, i64 %.11982
  br label %740

710:                                              ; preds = %700
  %711 = load i64, ptr %2, align 8, !tbaa !5
  %.not874957.not = icmp slt i64 %.11982, %711
  %712 = insertelement <2 x float> poison, float %705, i64 0
  %713 = insertelement <2 x float> %712, float %703, i64 1
  br i1 %.not874957.not, label %.lr.ph960, label %.loopexit894

.lr.ph960:                                        ; preds = %710
  %714 = add nsw i64 %.11982, 1
  %715 = getelementptr float, ptr %40, i64 %.11982
  %716 = mul nsw i64 %.11982, %38
  %invariant.gep961 = getelementptr float, ptr %40, i64 %716
  br label %717

717:                                              ; preds = %.lr.ph960, %717
  %.8958 = phi i64 [ %714, %.lr.ph960 ], [ %725, %717 ]
  %718 = phi <2 x float> [ %713, %.lr.ph960 ], [ %739, %717 ]
  %719 = mul nsw i64 %.8958, %38
  %720 = getelementptr float, ptr %715, i64 %719
  %721 = load float, ptr %720, align 4, !tbaa !9
  %722 = getelementptr inbounds float, ptr %36, i64 %.8958
  %723 = load float, ptr %722, align 4, !tbaa !9
  %724 = fneg float %721
  %725 = add nsw i64 %.8958, 1
  %gep962 = getelementptr float, ptr %invariant.gep961, i64 %725
  %726 = load float, ptr %gep962, align 4, !tbaa !9
  %727 = getelementptr inbounds float, ptr %37, i64 %.8958
  %728 = load float, ptr %727, align 4, !tbaa !9
  %729 = insertelement <2 x float> poison, float %724, i64 0
  %730 = shufflevector <2 x float> %729, <2 x float> poison, <2 x i32> zeroinitializer
  %731 = insertelement <2 x float> poison, float %728, i64 0
  %732 = insertelement <2 x float> %731, float %723, i64 1
  %733 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %730, <2 x float> %732, <2 x float> %718)
  %734 = fneg float %726
  %735 = insertelement <2 x float> poison, float %734, i64 0
  %736 = insertelement <2 x float> %735, float %726, i64 1
  %737 = insertelement <2 x float> poison, float %723, i64 0
  %738 = insertelement <2 x float> %737, float %728, i64 1
  %739 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %736, <2 x float> %738, <2 x float> %733)
  %exitcond1065.not = icmp eq i64 %.8958, %711
  br i1 %exitcond1065.not, label %..loopexit895_crit_edge, label %717, !llvm.loop !70

740:                                              ; preds = %.lr.ph969, %740
  %.9968 = phi i64 [ 1, %.lr.ph969 ], [ %762, %740 ]
  %741 = phi <2 x float> [ %708, %.lr.ph969 ], [ %761, %740 ]
  %gep971 = getelementptr float, ptr %invariant.gep970, i64 %.9968
  %742 = load float, ptr %gep971, align 4, !tbaa !9
  %743 = getelementptr inbounds float, ptr %36, i64 %.9968
  %744 = load float, ptr %743, align 4, !tbaa !9
  %745 = fneg float %742
  %746 = mul nsw i64 %.9968, %38
  %747 = getelementptr float, ptr %gep980, i64 %746
  %748 = load float, ptr %747, align 4, !tbaa !9
  %749 = getelementptr inbounds float, ptr %37, i64 %.9968
  %750 = load float, ptr %749, align 4, !tbaa !9
  %751 = insertelement <2 x float> poison, float %745, i64 0
  %752 = shufflevector <2 x float> %751, <2 x float> poison, <2 x i32> zeroinitializer
  %753 = insertelement <2 x float> poison, float %750, i64 0
  %754 = insertelement <2 x float> %753, float %744, i64 1
  %755 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %752, <2 x float> %754, <2 x float> %741)
  %756 = fneg float %748
  %757 = insertelement <2 x float> poison, float %756, i64 0
  %758 = insertelement <2 x float> %757, float %748, i64 1
  %759 = insertelement <2 x float> poison, float %744, i64 0
  %760 = insertelement <2 x float> %759, float %750, i64 1
  %761 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %758, <2 x float> %760, <2 x float> %755)
  %762 = add nuw nsw i64 %.9968, 1
  %exitcond1066.not = icmp eq i64 %762, %.11982
  br i1 %exitcond1066.not, label %..loopexit894_crit_edge, label %740, !llvm.loop !71

..loopexit894_crit_edge:                          ; preds = %740
  %763 = extractelement <2 x float> %761, i64 1
  store float %763, ptr %27, align 4, !tbaa !9
  %764 = extractelement <2 x float> %761, i64 0
  store float %764, ptr %26, align 4, !tbaa !9
  br label %.loopexit894

..loopexit895_crit_edge:                          ; preds = %717
  %765 = extractelement <2 x float> %739, i64 1
  store float %765, ptr %27, align 4, !tbaa !9
  %766 = extractelement <2 x float> %739, i64 0
  store float %766, ptr %26, align 4, !tbaa !9
  br label %.loopexit894

.loopexit894:                                     ; preds = %710, %..loopexit895_crit_edge, %.preheader, %..loopexit894_crit_edge
  %767 = phi <2 x float> [ %713, %710 ], [ %739, %..loopexit895_crit_edge ], [ %708, %.preheader ], [ %761, %..loopexit894_crit_edge ]
  %768 = mul nsw i64 %.11982, %38
  %769 = getelementptr float, ptr %40, i64 %.11982
  %770 = getelementptr float, ptr %769, i64 %768
  %771 = getelementptr i8, ptr %769, i64 4
  %772 = getelementptr float, ptr %771, i64 %768
  %773 = load <2 x float>, ptr %770, align 4, !tbaa !9
  %774 = extractelement <2 x float> %773, i64 0
  store float %774, ptr %24, align 4, !tbaa !9
  %775 = extractelement <2 x float> %773, i64 1
  store float %775, ptr %25, align 4, !tbaa !9
  %776 = fcmp oge <2 x float> %773, zeroinitializer
  %777 = fneg <2 x float> %773
  %778 = select <2 x i1> %776, <2 x float> %773, <2 x float> %777
  %shift = shufflevector <2 x float> %778, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %779 = fadd <2 x float> %778, %shift
  %780 = extractelement <2 x float> %779, i64 0
  %781 = load float, ptr %13, align 4, !tbaa !9
  %782 = fcmp ogt float %780, %781
  br i1 %782, label %783, label %819

783:                                              ; preds = %.loopexit894
  %784 = fcmp olt float %780, 1.000000e+00
  br i1 %784, label %785, label %803

785:                                              ; preds = %783
  %786 = fcmp oge <2 x float> %767, zeroinitializer
  %787 = fneg <2 x float> %767
  %788 = select <2 x i1> %786, <2 x float> %767, <2 x float> %787
  %shift1339 = shufflevector <2 x float> %788, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %789 = fadd <2 x float> %shift1339, %788
  %790 = extractelement <2 x float> %789, i64 0
  %791 = load float, ptr %14, align 4, !tbaa !9
  %792 = fmul float %780, %791
  %793 = fcmp ogt float %790, %792
  br i1 %793, label %794, label %803

794:                                              ; preds = %785
  %795 = fdiv float 1.000000e+00, %790
  store float %795, ptr %28, align 4, !tbaa !9
  %796 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  %797 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #6
  %798 = load float, ptr %702, align 4, !tbaa !9
  store float %798, ptr %27, align 4, !tbaa !9
  %799 = load float, ptr %704, align 4, !tbaa !9
  store float %799, ptr %26, align 4, !tbaa !9
  %800 = load float, ptr %28, align 4, !tbaa !9
  %801 = fmul float %800, %701
  %802 = fmul float %.1834, %800
  br label %803

803:                                              ; preds = %785, %794, %783
  %804 = phi float [ %801, %794 ], [ %701, %785 ], [ %701, %783 ]
  %.2 = phi float [ %802, %794 ], [ %.1834, %785 ], [ %.1834, %783 ]
  %805 = call i32 @sladiv_(ptr noundef nonnull %27, ptr noundef nonnull %26, ptr noundef nonnull %770, ptr noundef nonnull %772, ptr noundef nonnull %702, ptr noundef nonnull %704) #6
  %806 = load float, ptr %702, align 4, !tbaa !9
  store float %806, ptr %24, align 4, !tbaa !9
  %807 = fcmp oge float %806, 0.000000e+00
  %808 = fneg float %806
  %809 = select i1 %807, float %806, float %808
  %810 = load float, ptr %704, align 4, !tbaa !9
  store float %810, ptr %25, align 4, !tbaa !9
  %811 = fcmp oge float %810, 0.000000e+00
  %812 = fneg float %810
  %813 = select i1 %811, float %810, float %812
  %814 = fadd float %809, %813
  %815 = fcmp oge float %814, %.2
  %816 = select i1 %815, float %814, float %.2
  %817 = load float, ptr %14, align 4, !tbaa !9
  %818 = fdiv float %817, %816
  br label %845

819:                                              ; preds = %.loopexit894
  %820 = load i64, ptr %2, align 8, !tbaa !5
  %.not875974 = icmp slt i64 %820, 1
  br i1 %.not875974, label %._crit_edge978, label %.lr.ph977.preheader

.lr.ph977.preheader:                              ; preds = %819
  %min.iters.check1194 = icmp ult i64 %820, 8
  %or.cond1337 = or i1 %min.iters.check1194, %diff.check1191
  br i1 %or.cond1337, label %.lr.ph977.preheader1349, label %vector.ph1195

vector.ph1195:                                    ; preds = %.lr.ph977.preheader
  %n.vec1197 = and i64 %820, 9223372036854775800
  %ind.end1198 = or disjoint i64 %n.vec1197, 1
  br label %vector.body1200

vector.body1200:                                  ; preds = %vector.body1200, %vector.ph1195
  %index1201 = phi i64 [ 0, %vector.ph1195 ], [ %index.next1203, %vector.body1200 ]
  %821 = getelementptr float, ptr %7, i64 %index1201
  %822 = getelementptr inbounds i8, ptr %821, i64 16
  store <4 x float> zeroinitializer, ptr %821, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %822, align 4, !tbaa !9
  %823 = getelementptr float, ptr %8, i64 %index1201
  %824 = getelementptr inbounds i8, ptr %823, i64 16
  store <4 x float> zeroinitializer, ptr %823, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %824, align 4, !tbaa !9
  %index.next1203 = add nuw i64 %index1201, 8
  %825 = icmp eq i64 %index.next1203, %n.vec1197
  br i1 %825, label %middle.block1192, label %vector.body1200, !llvm.loop !72

middle.block1192:                                 ; preds = %vector.body1200
  %cmp.n1204 = icmp eq i64 %820, %n.vec1197
  br i1 %cmp.n1204, label %._crit_edge978, label %.lr.ph977.preheader1349

.lr.ph977.preheader1349:                          ; preds = %middle.block1192, %.lr.ph977.preheader
  %.10975.ph = phi i64 [ 1, %.lr.ph977.preheader ], [ %ind.end1198, %middle.block1192 ]
  %826 = add nuw i64 %820, 1
  %827 = sub i64 %826, %.10975.ph
  %828 = sub i64 %820, %.10975.ph
  %xtraiter1367 = and i64 %827, 3
  %lcmp.mod1368.not = icmp eq i64 %xtraiter1367, 0
  br i1 %lcmp.mod1368.not, label %.lr.ph977.prol.loopexit, label %.lr.ph977.prol

.lr.ph977.prol:                                   ; preds = %.lr.ph977.preheader1349, %.lr.ph977.prol
  %.10975.prol = phi i64 [ %831, %.lr.ph977.prol ], [ %.10975.ph, %.lr.ph977.preheader1349 ]
  %prol.iter1369 = phi i64 [ %prol.iter1369.next, %.lr.ph977.prol ], [ 0, %.lr.ph977.preheader1349 ]
  %829 = getelementptr inbounds float, ptr %36, i64 %.10975.prol
  store float 0.000000e+00, ptr %829, align 4, !tbaa !9
  %830 = getelementptr inbounds float, ptr %37, i64 %.10975.prol
  store float 0.000000e+00, ptr %830, align 4, !tbaa !9
  %831 = add nuw i64 %.10975.prol, 1
  %prol.iter1369.next = add i64 %prol.iter1369, 1
  %prol.iter1369.cmp.not = icmp eq i64 %prol.iter1369.next, %xtraiter1367
  br i1 %prol.iter1369.cmp.not, label %.lr.ph977.prol.loopexit, label %.lr.ph977.prol, !llvm.loop !73

.lr.ph977.prol.loopexit:                          ; preds = %.lr.ph977.prol, %.lr.ph977.preheader1349
  %.10975.unr = phi i64 [ %.10975.ph, %.lr.ph977.preheader1349 ], [ %831, %.lr.ph977.prol ]
  %832 = icmp ult i64 %828, 3
  br i1 %832, label %._crit_edge978, label %.lr.ph977

.lr.ph977:                                        ; preds = %.lr.ph977.prol.loopexit, %.lr.ph977
  %.10975 = phi i64 [ %843, %.lr.ph977 ], [ %.10975.unr, %.lr.ph977.prol.loopexit ]
  %833 = getelementptr inbounds float, ptr %36, i64 %.10975
  store float 0.000000e+00, ptr %833, align 4, !tbaa !9
  %834 = getelementptr inbounds float, ptr %37, i64 %.10975
  store float 0.000000e+00, ptr %834, align 4, !tbaa !9
  %835 = getelementptr float, ptr %7, i64 %.10975
  store float 0.000000e+00, ptr %835, align 4, !tbaa !9
  %836 = getelementptr float, ptr %8, i64 %.10975
  store float 0.000000e+00, ptr %836, align 4, !tbaa !9
  %837 = add nuw i64 %.10975, 2
  %838 = getelementptr inbounds float, ptr %36, i64 %837
  store float 0.000000e+00, ptr %838, align 4, !tbaa !9
  %839 = getelementptr inbounds float, ptr %37, i64 %837
  store float 0.000000e+00, ptr %839, align 4, !tbaa !9
  %840 = add nuw i64 %.10975, 3
  %841 = getelementptr inbounds float, ptr %36, i64 %840
  store float 0.000000e+00, ptr %841, align 4, !tbaa !9
  %842 = getelementptr inbounds float, ptr %37, i64 %840
  store float 0.000000e+00, ptr %842, align 4, !tbaa !9
  %843 = add nuw i64 %.10975, 4
  %exitcond1067.not.3 = icmp eq i64 %840, %820
  br i1 %exitcond1067.not.3, label %._crit_edge978, label %.lr.ph977, !llvm.loop !74

._crit_edge978:                                   ; preds = %.lr.ph977.prol.loopexit, %.lr.ph977, %middle.block1192, %819
  store float 1.000000e+00, ptr %702, align 4, !tbaa !9
  store float 1.000000e+00, ptr %704, align 4, !tbaa !9
  %844 = load float, ptr %14, align 4, !tbaa !9
  br label %845

845:                                              ; preds = %803, %._crit_edge978
  %846 = phi float [ %804, %803 ], [ 0.000000e+00, %._crit_edge978 ]
  %.3 = phi float [ %816, %803 ], [ 1.000000e+00, %._crit_edge978 ]
  %.1 = phi float [ %818, %803 ], [ %844, %._crit_edge978 ]
  %847 = load i64, ptr %23, align 8, !tbaa !5
  %848 = add nsw i64 %847, %.11982
  %849 = icmp slt i64 %847, 0
  %850 = load i64, ptr %22, align 8
  %851 = icmp sge i64 %848, %850
  %852 = icmp sle i64 %848, %850
  %.in = select i1 %849, i1 %851, i1 %852
  br i1 %.in, label %.lr.ph987, label %._crit_edge988, !llvm.loop !75

._crit_edge988:                                   ; preds = %845, %688
  %853 = phi float [ 1.000000e+00, %688 ], [ %846, %845 ]
  %854 = call double @f2c_sasum(ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %855 = call double @f2c_sasum(ptr noundef nonnull %2, ptr noundef %8, ptr noundef nonnull @c__1) #6
  %856 = fadd double %854, %855
  %857 = fptrunc double %856 to float
  %858 = fmul float %44, %853
  %859 = fcmp ugt float %858, %857
  br i1 %859, label %860, label %.loopexit896

860:                                              ; preds = %._crit_edge988
  %861 = load float, ptr %12, align 4, !tbaa !9
  %862 = fdiv float %861, %683
  store float %861, ptr %7, align 4, !tbaa !9
  store float 0.000000e+00, ptr %8, align 4, !tbaa !9
  %863 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %863, ptr %23, align 8, !tbaa !5
  %.not870989 = icmp slt i64 %863, 2
  br i1 %.not870989, label %._crit_edge993, label %.lr.ph992.preheader

.lr.ph992.preheader:                              ; preds = %860
  %864 = add nsw i64 %863, -1
  %min.iters.check1179 = icmp ult i64 %863, 9
  %or.cond1338 = or i1 %min.iters.check1179, %diff.check
  br i1 %or.cond1338, label %.lr.ph992.preheader1350, label %vector.ph1180

vector.ph1180:                                    ; preds = %.lr.ph992.preheader
  %n.vec1182 = and i64 %864, -8
  %ind.end1183 = or disjoint i64 %n.vec1182, 2
  %broadcast.splatinsert = insertelement <4 x float> poison, float %862, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1185

vector.body1185:                                  ; preds = %vector.body1185, %vector.ph1180
  %index1186 = phi i64 [ 0, %vector.ph1180 ], [ %index.next1188, %vector.body1185 ]
  %offset.idx1187 = or disjoint i64 %index1186, 2
  %865 = getelementptr inbounds float, ptr %36, i64 %offset.idx1187
  %866 = getelementptr inbounds i8, ptr %865, i64 16
  store <4 x float> %broadcast.splat, ptr %865, align 4, !tbaa !9
  store <4 x float> %broadcast.splat, ptr %866, align 4, !tbaa !9
  %867 = getelementptr inbounds float, ptr %37, i64 %offset.idx1187
  %868 = getelementptr inbounds i8, ptr %867, i64 16
  store <4 x float> zeroinitializer, ptr %867, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %868, align 4, !tbaa !9
  %index.next1188 = add nuw i64 %index1186, 8
  %869 = icmp eq i64 %index.next1188, %n.vec1182
  br i1 %869, label %middle.block1177, label %vector.body1185, !llvm.loop !76

middle.block1177:                                 ; preds = %vector.body1185
  %cmp.n1189 = icmp eq i64 %864, %n.vec1182
  br i1 %cmp.n1189, label %._crit_edge993, label %.lr.ph992.preheader1350

.lr.ph992.preheader1350:                          ; preds = %middle.block1177, %.lr.ph992.preheader
  %.12990.ph = phi i64 [ 2, %.lr.ph992.preheader ], [ %ind.end1183, %middle.block1177 ]
  %870 = add nuw i64 %863, 1
  %871 = sub i64 %870, %.12990.ph
  %872 = sub i64 %863, %.12990.ph
  %xtraiter1370 = and i64 %871, 3
  %lcmp.mod1371.not = icmp eq i64 %xtraiter1370, 0
  br i1 %lcmp.mod1371.not, label %.lr.ph992.prol.loopexit, label %.lr.ph992.prol

.lr.ph992.prol:                                   ; preds = %.lr.ph992.preheader1350, %.lr.ph992.prol
  %.12990.prol = phi i64 [ %875, %.lr.ph992.prol ], [ %.12990.ph, %.lr.ph992.preheader1350 ]
  %prol.iter1372 = phi i64 [ %prol.iter1372.next, %.lr.ph992.prol ], [ 0, %.lr.ph992.preheader1350 ]
  %873 = getelementptr inbounds float, ptr %36, i64 %.12990.prol
  store float %862, ptr %873, align 4, !tbaa !9
  %874 = getelementptr inbounds float, ptr %37, i64 %.12990.prol
  store float 0.000000e+00, ptr %874, align 4, !tbaa !9
  %875 = add nuw i64 %.12990.prol, 1
  %prol.iter1372.next = add i64 %prol.iter1372, 1
  %prol.iter1372.cmp.not = icmp eq i64 %prol.iter1372.next, %xtraiter1370
  br i1 %prol.iter1372.cmp.not, label %.lr.ph992.prol.loopexit, label %.lr.ph992.prol, !llvm.loop !77

.lr.ph992.prol.loopexit:                          ; preds = %.lr.ph992.prol, %.lr.ph992.preheader1350
  %.12990.unr = phi i64 [ %.12990.ph, %.lr.ph992.preheader1350 ], [ %875, %.lr.ph992.prol ]
  %876 = icmp ult i64 %872, 3
  br i1 %876, label %._crit_edge993, label %.lr.ph992

.lr.ph992:                                        ; preds = %.lr.ph992.prol.loopexit, %.lr.ph992
  %.12990 = phi i64 [ %887, %.lr.ph992 ], [ %.12990.unr, %.lr.ph992.prol.loopexit ]
  %877 = getelementptr inbounds float, ptr %36, i64 %.12990
  store float %862, ptr %877, align 4, !tbaa !9
  %878 = getelementptr inbounds float, ptr %37, i64 %.12990
  store float 0.000000e+00, ptr %878, align 4, !tbaa !9
  %879 = getelementptr float, ptr %7, i64 %.12990
  store float %862, ptr %879, align 4, !tbaa !9
  %880 = getelementptr float, ptr %8, i64 %.12990
  store float 0.000000e+00, ptr %880, align 4, !tbaa !9
  %881 = add nuw i64 %.12990, 2
  %882 = getelementptr inbounds float, ptr %36, i64 %881
  store float %862, ptr %882, align 4, !tbaa !9
  %883 = getelementptr inbounds float, ptr %37, i64 %881
  store float 0.000000e+00, ptr %883, align 4, !tbaa !9
  %884 = add nuw i64 %.12990, 3
  %885 = getelementptr inbounds float, ptr %36, i64 %884
  store float %862, ptr %885, align 4, !tbaa !9
  %886 = getelementptr inbounds float, ptr %37, i64 %884
  store float 0.000000e+00, ptr %886, align 4, !tbaa !9
  %887 = add nuw i64 %.12990, 4
  %exitcond1069.not.3 = icmp eq i64 %884, %863
  br i1 %exitcond1069.not.3, label %._crit_edge993, label %.lr.ph992, !llvm.loop !78

._crit_edge993:                                   ; preds = %.lr.ph992.prol.loopexit, %.lr.ph992, %middle.block1177, %860
  %888 = load float, ptr %12, align 4, !tbaa !9
  %889 = sub nsw i64 %863, %.1836995
  %890 = getelementptr float, ptr %7, i64 %889
  %891 = load float, ptr %890, align 4, !tbaa !9
  %892 = fneg float %888
  %893 = call float @llvm.fmuladd.f32(float %892, float %sqrtf, float %891)
  store float %893, ptr %890, align 4, !tbaa !9
  %894 = add nuw nsw i64 %.1836995, 1
  %895 = load i64, ptr %21, align 8, !tbaa !5
  %.not869.not = icmp slt i64 %.1836995, %895
  br i1 %.not869.not, label %688, label %._crit_edge998, !llvm.loop !79

._crit_edge998:                                   ; preds = %._crit_edge993, %681
  store i64 1, ptr %15, align 8, !tbaa !5
  br label %.loopexit896

.loopexit896:                                     ; preds = %._crit_edge988, %._crit_edge998
  %896 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %896, ptr %21, align 8, !tbaa !5
  %.not871999 = icmp slt i64 %896, 1
  br i1 %.not871999, label %911, label %.lr.ph1003

.lr.ph1003:                                       ; preds = %.loopexit896, %.lr.ph1003
  %.08311001 = phi float [ %909, %.lr.ph1003 ], [ 0.000000e+00, %.loopexit896 ]
  %.131000 = phi i64 [ %910, %.lr.ph1003 ], [ 1, %.loopexit896 ]
  %897 = getelementptr inbounds float, ptr %36, i64 %.131000
  %898 = load float, ptr %897, align 4, !tbaa !9
  %899 = fcmp oge float %898, 0.000000e+00
  %900 = fneg float %898
  %901 = select i1 %899, float %898, float %900
  %902 = getelementptr inbounds float, ptr %37, i64 %.131000
  %903 = load float, ptr %902, align 4, !tbaa !9
  %904 = fcmp oge float %903, 0.000000e+00
  %905 = fneg float %903
  %906 = select i1 %904, float %903, float %905
  %907 = fadd float %901, %906
  %908 = fcmp oge float %.08311001, %907
  %909 = select i1 %908, float %.08311001, float %907
  %910 = add nuw i64 %.131000, 1
  %exitcond1070.not = icmp eq i64 %.131000, %896
  br i1 %exitcond1070.not, label %._crit_edge1004, label %.lr.ph1003, !llvm.loop !80

._crit_edge1004:                                  ; preds = %.lr.ph1003
  store float %903, ptr %25, align 4, !tbaa !9
  br label %911

911:                                              ; preds = %._crit_edge1004, %.loopexit896
  %.0831.lcssa = phi float [ %909, %._crit_edge1004 ], [ 0.000000e+00, %.loopexit896 ]
  %912 = fdiv float 1.000000e+00, %.0831.lcssa
  store float %912, ptr %24, align 4, !tbaa !9
  %913 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %24, ptr noundef %7, ptr noundef nonnull @c__1) #6
  store float %912, ptr %24, align 4, !tbaa !9
  %914 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %24, ptr noundef %8, ptr noundef nonnull @c__1) #6
  br label %915

915:                                              ; preds = %911, %.loopexit
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  ret i32 0
}

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

declare double @f2c_snrm2(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

declare i32 @slatrs_(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

declare double @f2c_sasum(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i64 @f2c_isamax(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @slapy2_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sladiv_(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

declare float @sqrtf(float) local_unnamed_addr

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!12}
!12 = distinct !{!12, !13}
!13 = distinct !{!13, !"LVerDomain"}
!14 = !{!15}
!15 = distinct !{!15, !13}
!16 = distinct !{!16, !17, !18, !19}
!17 = !{!"llvm.loop.mustprogress"}
!18 = !{!"llvm.loop.isvectorized", i32 1}
!19 = !{!"llvm.loop.unroll.runtime.disable"}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.unroll.disable"}
!22 = distinct !{!22, !17, !18}
!23 = distinct !{!23, !17}
!24 = distinct !{!24, !17, !18, !19}
!25 = distinct !{!25, !17, !19, !18}
!26 = distinct !{!26, !17}
!27 = distinct !{!27, !17}
!28 = distinct !{!28, !17}
!29 = !{!30}
!30 = distinct !{!30, !31}
!31 = distinct !{!31, !"LVerDomain"}
!32 = !{!33}
!33 = distinct !{!33, !31}
!34 = distinct !{!34, !17, !18, !19}
!35 = distinct !{!35, !17, !18}
!36 = !{!37}
!37 = distinct !{!37, !38}
!38 = distinct !{!38, !"LVerDomain"}
!39 = !{!40}
!40 = distinct !{!40, !38}
!41 = distinct !{!41, !17, !18, !19}
!42 = distinct !{!42, !17, !18}
!43 = distinct !{!43, !17}
!44 = !{!7, !7, i64 0}
!45 = distinct !{!45, !17, !18, !19}
!46 = distinct !{!46, !17, !19, !18}
!47 = distinct !{!47, !17}
!48 = !{!49}
!49 = distinct !{!49, !50}
!50 = distinct !{!50, !"LVerDomain"}
!51 = !{!52}
!52 = distinct !{!52, !50}
!53 = !{!54, !49}
!54 = distinct !{!54, !50}
!55 = !{!54}
!56 = distinct !{!56, !17, !18, !19}
!57 = distinct !{!57, !21}
!58 = distinct !{!58, !17, !18}
!59 = distinct !{!59, !17}
!60 = distinct !{!60, !17}
!61 = distinct !{!61, !17}
!62 = distinct !{!62, !21}
!63 = distinct !{!63, !17, !18, !19}
!64 = distinct !{!64, !17, !18}
!65 = distinct !{!65, !17}
!66 = distinct !{!66, !17, !67}
!67 = !{!"llvm.loop.peeled.count", i32 1}
!68 = distinct !{!68, !17}
!69 = distinct !{!69, !17}
!70 = distinct !{!70, !17}
!71 = distinct !{!71, !17}
!72 = distinct !{!72, !17, !18, !19}
!73 = distinct !{!73, !21}
!74 = distinct !{!74, !17, !18}
!75 = distinct !{!75, !17}
!76 = distinct !{!76, !17, !18, !19}
!77 = distinct !{!77, !21}
!78 = distinct !{!78, !17, !18}
!79 = distinct !{!79, !17}
!80 = distinct !{!80, !17}


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