; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4
@.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 void @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 i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca float, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca i32, align 4
  %46 = alloca float, align 4
  %47 = alloca float, align 4
  %48 = alloca float, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca float, align 4
  %52 = alloca float, align 4
  %53 = alloca float, align 4
  %54 = alloca float, align 4
  %55 = alloca [1 x i8], align 1
  %56 = alloca float, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca float, align 4
  %61 = alloca float, align 4
  %62 = alloca float, align 4
  %63 = alloca float, align 4
  %64 = alloca float, align 4
  %65 = alloca float, align 4
  %66 = alloca float, align 4
  %67 = alloca float, align 4
  %68 = alloca float, align 4
  %69 = alloca [1 x i8], align 1
  %70 = alloca float, align 4
  %71 = alloca float, align 4
  %72 = alloca float, align 4
  %73 = alloca i32, 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 4, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #5
  %74 = load ptr, ptr %21, align 8, !tbaa !5
  %75 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %75, ptr %35, align 4, !tbaa !9
  %76 = load i32, ptr %35, align 4, !tbaa !9
  %77 = mul nsw i32 %76, 1
  %78 = add nsw i32 1, %77
  store i32 %78, ptr %36, align 4, !tbaa !9
  %79 = load i32, ptr %36, align 4, !tbaa !9
  %80 = load ptr, ptr %20, align 8, !tbaa !5
  %81 = sext i32 %79 to i64
  %82 = sub i64 0, %81
  %83 = getelementptr inbounds float, ptr %80, i64 %82
  store ptr %83, ptr %20, align 8, !tbaa !5
  %84 = load ptr, ptr %24, align 8, !tbaa !5
  %85 = getelementptr inbounds float, ptr %84, i32 -1
  store ptr %85, ptr %24, align 8, !tbaa !5
  %86 = load ptr, ptr %25, align 8, !tbaa !5
  %87 = getelementptr inbounds float, ptr %86, i32 -1
  store ptr %87, ptr %25, align 8, !tbaa !5
  %88 = load ptr, ptr %27, align 8, !tbaa !5
  %89 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %89, ptr %33, align 4, !tbaa !9
  %90 = load i32, ptr %33, align 4, !tbaa !9
  %91 = mul nsw i32 %90, 1
  %92 = add nsw i32 1, %91
  store i32 %92, ptr %34, align 4, !tbaa !9
  %93 = load i32, ptr %34, align 4, !tbaa !9
  %94 = load ptr, ptr %26, align 8, !tbaa !5
  %95 = sext i32 %93 to i64
  %96 = sub i64 0, %95
  %97 = getelementptr inbounds float, ptr %94, i64 %96
  store ptr %97, ptr %26, align 8, !tbaa !5
  %98 = load ptr, ptr %28, align 8, !tbaa !5
  %99 = getelementptr inbounds float, ptr %98, i32 -1
  store ptr %99, ptr %28, align 8, !tbaa !5
  %100 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 0, ptr %100, align 4, !tbaa !9
  %101 = load ptr, ptr %19, align 8, !tbaa !5
  %102 = load i32, ptr %101, align 4, !tbaa !9
  %103 = sitofp i32 %102 to float
  %104 = fpext float %103 to double
  %105 = call double @sqrt(double noundef %104) #5
  %106 = fptrunc double %105 to float
  store float %106, ptr %60, align 4, !tbaa !11
  %107 = load float, ptr %60, align 4, !tbaa !11
  %108 = fdiv float 0x3FB99999A0000000, %107
  store float %108, ptr %71, align 4, !tbaa !11
  store float 1.000000e+00, ptr %41, align 4, !tbaa !11
  %109 = load ptr, ptr %29, align 8, !tbaa !5
  %110 = load float, ptr %109, align 4, !tbaa !11
  %111 = load float, ptr %60, align 4, !tbaa !11
  %112 = fmul float %110, %111
  store float %112, ptr %42, align 4, !tbaa !11
  %113 = load float, ptr %41, align 4, !tbaa !11
  %114 = load float, ptr %42, align 4, !tbaa !11
  %115 = fcmp oge float %113, %114
  br i1 %115, label %116, label %118

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

118:                                              ; preds = %16
  %119 = load float, ptr %42, align 4, !tbaa !11
  br label %120

120:                                              ; preds = %118, %116
  %121 = phi float [ %117, %116 ], [ %119, %118 ]
  %122 = load ptr, ptr %30, align 8, !tbaa !5
  %123 = load float, ptr %122, align 4, !tbaa !11
  %124 = fmul float %121, %123
  store float %124, ptr %70, align 4, !tbaa !11
  %125 = load ptr, ptr %19, align 8, !tbaa !5
  %126 = load i32, ptr %125, align 4, !tbaa !9
  store i32 %126, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %127

127:                                              ; preds = %180, %120
  %128 = load i32, ptr %50, align 4, !tbaa !9
  %129 = load i32, ptr %37, align 4, !tbaa !9
  %130 = icmp sle i32 %128, %129
  br i1 %130, label %131, label %183

131:                                              ; preds = %127
  %132 = load i32, ptr %50, align 4, !tbaa !9
  %133 = sub nsw i32 %132, 1
  store i32 %133, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %134

134:                                              ; preds = %156, %131
  %135 = load i32, ptr %49, align 4, !tbaa !9
  %136 = load i32, ptr %38, align 4, !tbaa !9
  %137 = icmp sle i32 %135, %136
  br i1 %137, label %138, label %159

138:                                              ; preds = %134
  %139 = load ptr, ptr %20, align 8, !tbaa !5
  %140 = load i32, ptr %49, align 4, !tbaa !9
  %141 = load i32, ptr %50, align 4, !tbaa !9
  %142 = load i32, ptr %35, align 4, !tbaa !9
  %143 = mul nsw i32 %141, %142
  %144 = add nsw i32 %140, %143
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds float, ptr %139, i64 %145
  %147 = load float, ptr %146, align 4, !tbaa !11
  %148 = load ptr, ptr %26, align 8, !tbaa !5
  %149 = load i32, ptr %49, align 4, !tbaa !9
  %150 = load i32, ptr %50, align 4, !tbaa !9
  %151 = load i32, ptr %33, align 4, !tbaa !9
  %152 = mul nsw i32 %150, %151
  %153 = add nsw i32 %149, %152
  %154 = sext i32 %153 to i64
  %155 = getelementptr inbounds float, ptr %148, i64 %154
  store float %147, ptr %155, align 4, !tbaa !11
  br label %156

156:                                              ; preds = %138
  %157 = load i32, ptr %49, align 4, !tbaa !9
  %158 = add nsw i32 %157, 1
  store i32 %158, ptr %49, align 4, !tbaa !9
  br label %134, !llvm.loop !13

159:                                              ; preds = %134
  %160 = load ptr, ptr %20, align 8, !tbaa !5
  %161 = load i32, ptr %50, align 4, !tbaa !9
  %162 = load i32, ptr %50, align 4, !tbaa !9
  %163 = load i32, ptr %35, align 4, !tbaa !9
  %164 = mul nsw i32 %162, %163
  %165 = add nsw i32 %161, %164
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds float, ptr %160, i64 %166
  %168 = load float, ptr %167, align 4, !tbaa !11
  %169 = load ptr, ptr %22, align 8, !tbaa !5
  %170 = load float, ptr %169, align 4, !tbaa !11
  %171 = fsub float %168, %170
  %172 = load ptr, ptr %26, align 8, !tbaa !5
  %173 = load i32, ptr %50, align 4, !tbaa !9
  %174 = load i32, ptr %50, align 4, !tbaa !9
  %175 = load i32, ptr %33, align 4, !tbaa !9
  %176 = mul nsw i32 %174, %175
  %177 = add nsw i32 %173, %176
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds float, ptr %172, i64 %178
  store float %171, ptr %179, align 4, !tbaa !11
  br label %180

180:                                              ; preds = %159
  %181 = load i32, ptr %50, align 4, !tbaa !9
  %182 = add nsw i32 %181, 1
  store i32 %182, ptr %50, align 4, !tbaa !9
  br label %127, !llvm.loop !15

183:                                              ; preds = %127
  %184 = load ptr, ptr %23, align 8, !tbaa !5
  %185 = load float, ptr %184, align 4, !tbaa !11
  %186 = fcmp oeq float %185, 0.000000e+00
  br i1 %186, label %187, label %773

187:                                              ; preds = %183
  %188 = load ptr, ptr %18, align 8, !tbaa !5
  %189 = load i32, ptr %188, align 4, !tbaa !9
  %190 = icmp ne i32 %189, 0
  br i1 %190, label %191, label %209

191:                                              ; preds = %187
  %192 = load ptr, ptr %19, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  store i32 %193, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %194

194:                                              ; preds = %205, %191
  %195 = load i32, ptr %49, align 4, !tbaa !9
  %196 = load i32, ptr %37, align 4, !tbaa !9
  %197 = icmp sle i32 %195, %196
  br i1 %197, label %198, label %208

198:                                              ; preds = %194
  %199 = load ptr, ptr %29, align 8, !tbaa !5
  %200 = load float, ptr %199, align 4, !tbaa !11
  %201 = load ptr, ptr %24, align 8, !tbaa !5
  %202 = load i32, ptr %49, align 4, !tbaa !9
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds float, ptr %201, i64 %203
  store float %200, ptr %204, align 4, !tbaa !11
  br label %205

205:                                              ; preds = %198
  %206 = load i32, ptr %49, align 4, !tbaa !9
  %207 = add nsw i32 %206, 1
  store i32 %207, ptr %49, align 4, !tbaa !9
  br label %194, !llvm.loop !16

208:                                              ; preds = %194
  br label %231

209:                                              ; preds = %187
  %210 = load ptr, ptr %19, align 8, !tbaa !5
  %211 = load ptr, ptr %24, align 8, !tbaa !5
  %212 = getelementptr inbounds float, ptr %211, i64 1
  %213 = call float @snrm2_(ptr noundef %210, ptr noundef %212, ptr noundef @c__1)
  store float %213, ptr %61, align 4, !tbaa !11
  %214 = load ptr, ptr %29, align 8, !tbaa !5
  %215 = load float, ptr %214, align 4, !tbaa !11
  %216 = load float, ptr %60, align 4, !tbaa !11
  %217 = fmul float %215, %216
  %218 = load float, ptr %61, align 4, !tbaa !11
  %219 = load float, ptr %70, align 4, !tbaa !11
  %220 = fcmp oge float %218, %219
  br i1 %220, label %221, label %223

221:                                              ; preds = %209
  %222 = load float, ptr %61, align 4, !tbaa !11
  br label %225

223:                                              ; preds = %209
  %224 = load float, ptr %70, align 4, !tbaa !11
  br label %225

225:                                              ; preds = %223, %221
  %226 = phi float [ %222, %221 ], [ %224, %223 ]
  %227 = fdiv float %217, %226
  store float %227, ptr %41, align 4, !tbaa !11
  %228 = load ptr, ptr %19, align 8, !tbaa !5
  %229 = load ptr, ptr %24, align 8, !tbaa !5
  %230 = getelementptr inbounds float, ptr %229, i64 1
  call void @sscal_(ptr noundef %228, ptr noundef %41, ptr noundef %230, ptr noundef @c__1)
  br label %231

231:                                              ; preds = %225, %208
  %232 = load ptr, ptr %17, align 8, !tbaa !5
  %233 = load i32, ptr %232, align 4, !tbaa !9
  %234 = icmp ne i32 %233, 0
  br i1 %234, label %235, label %462

235:                                              ; preds = %231
  %236 = load ptr, ptr %19, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = sub nsw i32 %237, 1
  store i32 %238, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %239

239:                                              ; preds = %431, %235
  %240 = load i32, ptr %49, align 4, !tbaa !9
  %241 = load i32, ptr %37, align 4, !tbaa !9
  %242 = icmp sle i32 %240, %241
  br i1 %242, label %243, label %434

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

265:                                              ; preds = %243
  %266 = load float, ptr %41, align 4, !tbaa !11
  br label %270

267:                                              ; preds = %243
  %268 = load float, ptr %41, align 4, !tbaa !11
  %269 = fneg float %268
  br label %270

270:                                              ; preds = %267, %265
  %271 = phi float [ %266, %265 ], [ %269, %267 ]
  %272 = load float, ptr %63, align 4, !tbaa !11
  %273 = fcmp oge float %272, 0.000000e+00
  br i1 %273, label %274, label %276

274:                                              ; preds = %270
  %275 = load float, ptr %63, align 4, !tbaa !11
  br label %279

276:                                              ; preds = %270
  %277 = load float, ptr %63, align 4, !tbaa !11
  %278 = fneg float %277
  br label %279

279:                                              ; preds = %276, %274
  %280 = phi float [ %275, %274 ], [ %278, %276 ]
  %281 = fcmp olt float %271, %280
  br i1 %281, label %282, label %357

282:                                              ; preds = %279
  %283 = load ptr, ptr %26, align 8, !tbaa !5
  %284 = load i32, ptr %49, align 4, !tbaa !9
  %285 = load i32, ptr %49, align 4, !tbaa !9
  %286 = load i32, ptr %33, align 4, !tbaa !9
  %287 = mul nsw i32 %285, %286
  %288 = add nsw i32 %284, %287
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds float, ptr %283, i64 %289
  %291 = load float, ptr %290, align 4, !tbaa !11
  %292 = load float, ptr %63, align 4, !tbaa !11
  %293 = fdiv float %291, %292
  store float %293, ptr %53, align 4, !tbaa !11
  %294 = load float, ptr %63, align 4, !tbaa !11
  %295 = load ptr, ptr %26, align 8, !tbaa !5
  %296 = load i32, ptr %49, align 4, !tbaa !9
  %297 = load i32, ptr %49, align 4, !tbaa !9
  %298 = load i32, ptr %33, align 4, !tbaa !9
  %299 = mul nsw i32 %297, %298
  %300 = add nsw i32 %296, %299
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds float, ptr %295, i64 %301
  store float %294, ptr %302, align 4, !tbaa !11
  %303 = load ptr, ptr %19, align 8, !tbaa !5
  %304 = load i32, ptr %303, align 4, !tbaa !9
  store i32 %304, ptr %38, align 4, !tbaa !9
  %305 = load i32, ptr %49, align 4, !tbaa !9
  %306 = add nsw i32 %305, 1
  store i32 %306, ptr %50, align 4, !tbaa !9
  br label %307

307:                                              ; preds = %353, %282
  %308 = load i32, ptr %50, align 4, !tbaa !9
  %309 = load i32, ptr %38, align 4, !tbaa !9
  %310 = icmp sle i32 %308, %309
  br i1 %310, label %311, label %356

311:                                              ; preds = %307
  %312 = load ptr, ptr %26, align 8, !tbaa !5
  %313 = load i32, ptr %49, align 4, !tbaa !9
  %314 = add nsw i32 %313, 1
  %315 = load i32, ptr %50, align 4, !tbaa !9
  %316 = load i32, ptr %33, align 4, !tbaa !9
  %317 = mul nsw i32 %315, %316
  %318 = add nsw i32 %314, %317
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds float, ptr %312, i64 %319
  %321 = load float, ptr %320, align 4, !tbaa !11
  store float %321, ptr %46, align 4, !tbaa !11
  %322 = load ptr, ptr %26, align 8, !tbaa !5
  %323 = load i32, ptr %49, align 4, !tbaa !9
  %324 = load i32, ptr %50, align 4, !tbaa !9
  %325 = load i32, ptr %33, align 4, !tbaa !9
  %326 = mul nsw i32 %324, %325
  %327 = add nsw i32 %323, %326
  %328 = sext i32 %327 to i64
  %329 = getelementptr inbounds float, ptr %322, i64 %328
  %330 = load float, ptr %329, align 4, !tbaa !11
  %331 = load float, ptr %53, align 4, !tbaa !11
  %332 = load float, ptr %46, align 4, !tbaa !11
  %333 = fneg float %331
  %334 = call float @llvm.fmuladd.f32(float %333, float %332, float %330)
  %335 = load ptr, ptr %26, align 8, !tbaa !5
  %336 = load i32, ptr %49, align 4, !tbaa !9
  %337 = add nsw i32 %336, 1
  %338 = load i32, ptr %50, align 4, !tbaa !9
  %339 = load i32, ptr %33, align 4, !tbaa !9
  %340 = mul nsw i32 %338, %339
  %341 = add nsw i32 %337, %340
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds float, ptr %335, i64 %342
  store float %334, ptr %343, align 4, !tbaa !11
  %344 = load float, ptr %46, align 4, !tbaa !11
  %345 = load ptr, ptr %26, align 8, !tbaa !5
  %346 = load i32, ptr %49, align 4, !tbaa !9
  %347 = load i32, ptr %50, align 4, !tbaa !9
  %348 = load i32, ptr %33, align 4, !tbaa !9
  %349 = mul nsw i32 %347, %348
  %350 = add nsw i32 %346, %349
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds float, ptr %345, i64 %351
  store float %344, ptr %352, align 4, !tbaa !11
  br label %353

353:                                              ; preds = %311
  %354 = load i32, ptr %50, align 4, !tbaa !9
  %355 = add nsw i32 %354, 1
  store i32 %355, ptr %50, align 4, !tbaa !9
  br label %307, !llvm.loop !17

356:                                              ; preds = %307
  br label %430

357:                                              ; preds = %279
  %358 = load ptr, ptr %26, align 8, !tbaa !5
  %359 = load i32, ptr %49, align 4, !tbaa !9
  %360 = load i32, ptr %49, align 4, !tbaa !9
  %361 = load i32, ptr %33, align 4, !tbaa !9
  %362 = mul nsw i32 %360, %361
  %363 = add nsw i32 %359, %362
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds float, ptr %358, i64 %364
  %366 = load float, ptr %365, align 4, !tbaa !11
  %367 = fcmp oeq float %366, 0.000000e+00
  br i1 %367, label %368, label %379

368:                                              ; preds = %357
  %369 = load ptr, ptr %29, align 8, !tbaa !5
  %370 = load float, ptr %369, align 4, !tbaa !11
  %371 = load ptr, ptr %26, align 8, !tbaa !5
  %372 = load i32, ptr %49, align 4, !tbaa !9
  %373 = load i32, ptr %49, align 4, !tbaa !9
  %374 = load i32, ptr %33, align 4, !tbaa !9
  %375 = mul nsw i32 %373, %374
  %376 = add nsw i32 %372, %375
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds float, ptr %371, i64 %377
  store float %370, ptr %378, align 4, !tbaa !11
  br label %379

379:                                              ; preds = %368, %357
  %380 = load float, ptr %63, align 4, !tbaa !11
  %381 = load ptr, ptr %26, align 8, !tbaa !5
  %382 = load i32, ptr %49, align 4, !tbaa !9
  %383 = load i32, ptr %49, align 4, !tbaa !9
  %384 = load i32, ptr %33, align 4, !tbaa !9
  %385 = mul nsw i32 %383, %384
  %386 = add nsw i32 %382, %385
  %387 = sext i32 %386 to i64
  %388 = getelementptr inbounds float, ptr %381, i64 %387
  %389 = load float, ptr %388, align 4, !tbaa !11
  %390 = fdiv float %380, %389
  store float %390, ptr %53, align 4, !tbaa !11
  %391 = load float, ptr %53, align 4, !tbaa !11
  %392 = fcmp une float %391, 0.000000e+00
  br i1 %392, label %393, label %429

393:                                              ; preds = %379
  %394 = load ptr, ptr %19, align 8, !tbaa !5
  %395 = load i32, ptr %394, align 4, !tbaa !9
  store i32 %395, ptr %38, align 4, !tbaa !9
  %396 = load i32, ptr %49, align 4, !tbaa !9
  %397 = add nsw i32 %396, 1
  store i32 %397, ptr %50, align 4, !tbaa !9
  br label %398

398:                                              ; preds = %425, %393
  %399 = load i32, ptr %50, align 4, !tbaa !9
  %400 = load i32, ptr %38, align 4, !tbaa !9
  %401 = icmp sle i32 %399, %400
  br i1 %401, label %402, label %428

402:                                              ; preds = %398
  %403 = load float, ptr %53, align 4, !tbaa !11
  %404 = load ptr, ptr %26, align 8, !tbaa !5
  %405 = load i32, ptr %49, align 4, !tbaa !9
  %406 = load i32, ptr %50, align 4, !tbaa !9
  %407 = load i32, ptr %33, align 4, !tbaa !9
  %408 = mul nsw i32 %406, %407
  %409 = add nsw i32 %405, %408
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds float, ptr %404, i64 %410
  %412 = load float, ptr %411, align 4, !tbaa !11
  %413 = load ptr, ptr %26, align 8, !tbaa !5
  %414 = load i32, ptr %49, align 4, !tbaa !9
  %415 = add nsw i32 %414, 1
  %416 = load i32, ptr %50, align 4, !tbaa !9
  %417 = load i32, ptr %33, align 4, !tbaa !9
  %418 = mul nsw i32 %416, %417
  %419 = add nsw i32 %415, %418
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds float, ptr %413, i64 %420
  %422 = load float, ptr %421, align 4, !tbaa !11
  %423 = fneg float %403
  %424 = call float @llvm.fmuladd.f32(float %423, float %412, float %422)
  store float %424, ptr %421, align 4, !tbaa !11
  br label %425

425:                                              ; preds = %402
  %426 = load i32, ptr %50, align 4, !tbaa !9
  %427 = add nsw i32 %426, 1
  store i32 %427, ptr %50, align 4, !tbaa !9
  br label %398, !llvm.loop !18

428:                                              ; preds = %398
  br label %429

429:                                              ; preds = %428, %379
  br label %430

430:                                              ; preds = %429, %356
  br label %431

431:                                              ; preds = %430
  %432 = load i32, ptr %49, align 4, !tbaa !9
  %433 = add nsw i32 %432, 1
  store i32 %433, ptr %49, align 4, !tbaa !9
  br label %239, !llvm.loop !19

434:                                              ; preds = %239
  %435 = load ptr, ptr %26, align 8, !tbaa !5
  %436 = load ptr, ptr %19, align 8, !tbaa !5
  %437 = load i32, ptr %436, align 4, !tbaa !9
  %438 = load ptr, ptr %19, align 8, !tbaa !5
  %439 = load i32, ptr %438, align 4, !tbaa !9
  %440 = load i32, ptr %33, align 4, !tbaa !9
  %441 = mul nsw i32 %439, %440
  %442 = add nsw i32 %437, %441
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds float, ptr %435, i64 %443
  %445 = load float, ptr %444, align 4, !tbaa !11
  %446 = fcmp oeq float %445, 0.000000e+00
  br i1 %446, label %447, label %460

447:                                              ; preds = %434
  %448 = load ptr, ptr %29, align 8, !tbaa !5
  %449 = load float, ptr %448, align 4, !tbaa !11
  %450 = load ptr, ptr %26, align 8, !tbaa !5
  %451 = load ptr, ptr %19, align 8, !tbaa !5
  %452 = load i32, ptr %451, align 4, !tbaa !9
  %453 = load ptr, ptr %19, align 8, !tbaa !5
  %454 = load i32, ptr %453, align 4, !tbaa !9
  %455 = load i32, ptr %33, align 4, !tbaa !9
  %456 = mul nsw i32 %454, %455
  %457 = add nsw i32 %452, %456
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds float, ptr %450, i64 %458
  store float %449, ptr %459, align 4, !tbaa !11
  br label %460

460:                                              ; preds = %447, %434
  %461 = getelementptr inbounds [1 x i8], ptr %55, i64 0, i64 0
  store i8 78, ptr %461, align 1, !tbaa !20
  br label %673

462:                                              ; preds = %231
  %463 = load ptr, ptr %19, align 8, !tbaa !5
  %464 = load i32, ptr %463, align 4, !tbaa !9
  store i32 %464, ptr %50, align 4, !tbaa !9
  br label %465

465:                                              ; preds = %652, %462
  %466 = load i32, ptr %50, align 4, !tbaa !9
  %467 = icmp sge i32 %466, 2
  br i1 %467, label %468, label %655

468:                                              ; preds = %465
  %469 = load ptr, ptr %20, align 8, !tbaa !5
  %470 = load i32, ptr %50, align 4, !tbaa !9
  %471 = load i32, ptr %50, align 4, !tbaa !9
  %472 = sub nsw i32 %471, 1
  %473 = load i32, ptr %35, align 4, !tbaa !9
  %474 = mul nsw i32 %472, %473
  %475 = add nsw i32 %470, %474
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds float, ptr %469, i64 %476
  %478 = load float, ptr %477, align 4, !tbaa !11
  store float %478, ptr %64, align 4, !tbaa !11
  %479 = load ptr, ptr %26, align 8, !tbaa !5
  %480 = load i32, ptr %50, align 4, !tbaa !9
  %481 = load i32, ptr %50, align 4, !tbaa !9
  %482 = load i32, ptr %33, align 4, !tbaa !9
  %483 = mul nsw i32 %481, %482
  %484 = add nsw i32 %480, %483
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds float, ptr %479, i64 %485
  %487 = load float, ptr %486, align 4, !tbaa !11
  store float %487, ptr %41, align 4, !tbaa !11
  %488 = load float, ptr %41, align 4, !tbaa !11
  %489 = fcmp oge float %488, 0.000000e+00
  br i1 %489, label %490, label %492

490:                                              ; preds = %468
  %491 = load float, ptr %41, align 4, !tbaa !11
  br label %495

492:                                              ; preds = %468
  %493 = load float, ptr %41, align 4, !tbaa !11
  %494 = fneg float %493
  br label %495

495:                                              ; preds = %492, %490
  %496 = phi float [ %491, %490 ], [ %494, %492 ]
  %497 = load float, ptr %64, align 4, !tbaa !11
  %498 = fcmp oge float %497, 0.000000e+00
  br i1 %498, label %499, label %501

499:                                              ; preds = %495
  %500 = load float, ptr %64, align 4, !tbaa !11
  br label %504

501:                                              ; preds = %495
  %502 = load float, ptr %64, align 4, !tbaa !11
  %503 = fneg float %502
  br label %504

504:                                              ; preds = %501, %499
  %505 = phi float [ %500, %499 ], [ %503, %501 ]
  %506 = fcmp olt float %496, %505
  br i1 %506, label %507, label %580

507:                                              ; preds = %504
  %508 = load ptr, ptr %26, align 8, !tbaa !5
  %509 = load i32, ptr %50, align 4, !tbaa !9
  %510 = load i32, ptr %50, align 4, !tbaa !9
  %511 = load i32, ptr %33, align 4, !tbaa !9
  %512 = mul nsw i32 %510, %511
  %513 = add nsw i32 %509, %512
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds float, ptr %508, i64 %514
  %516 = load float, ptr %515, align 4, !tbaa !11
  %517 = load float, ptr %64, align 4, !tbaa !11
  %518 = fdiv float %516, %517
  store float %518, ptr %53, align 4, !tbaa !11
  %519 = load float, ptr %64, align 4, !tbaa !11
  %520 = load ptr, ptr %26, align 8, !tbaa !5
  %521 = load i32, ptr %50, align 4, !tbaa !9
  %522 = load i32, ptr %50, align 4, !tbaa !9
  %523 = load i32, ptr %33, align 4, !tbaa !9
  %524 = mul nsw i32 %522, %523
  %525 = add nsw i32 %521, %524
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds float, ptr %520, i64 %526
  store float %519, ptr %527, align 4, !tbaa !11
  %528 = load i32, ptr %50, align 4, !tbaa !9
  %529 = sub nsw i32 %528, 1
  store i32 %529, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %530

530:                                              ; preds = %576, %507
  %531 = load i32, ptr %49, align 4, !tbaa !9
  %532 = load i32, ptr %37, align 4, !tbaa !9
  %533 = icmp sle i32 %531, %532
  br i1 %533, label %534, label %579

534:                                              ; preds = %530
  %535 = load ptr, ptr %26, align 8, !tbaa !5
  %536 = load i32, ptr %49, align 4, !tbaa !9
  %537 = load i32, ptr %50, align 4, !tbaa !9
  %538 = sub nsw i32 %537, 1
  %539 = load i32, ptr %33, align 4, !tbaa !9
  %540 = mul nsw i32 %538, %539
  %541 = add nsw i32 %536, %540
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds float, ptr %535, i64 %542
  %544 = load float, ptr %543, align 4, !tbaa !11
  store float %544, ptr %46, align 4, !tbaa !11
  %545 = load ptr, ptr %26, align 8, !tbaa !5
  %546 = load i32, ptr %49, align 4, !tbaa !9
  %547 = load i32, ptr %50, align 4, !tbaa !9
  %548 = load i32, ptr %33, align 4, !tbaa !9
  %549 = mul nsw i32 %547, %548
  %550 = add nsw i32 %546, %549
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds float, ptr %545, i64 %551
  %553 = load float, ptr %552, align 4, !tbaa !11
  %554 = load float, ptr %53, align 4, !tbaa !11
  %555 = load float, ptr %46, align 4, !tbaa !11
  %556 = fneg float %554
  %557 = call float @llvm.fmuladd.f32(float %556, float %555, float %553)
  %558 = load ptr, ptr %26, align 8, !tbaa !5
  %559 = load i32, ptr %49, align 4, !tbaa !9
  %560 = load i32, ptr %50, align 4, !tbaa !9
  %561 = sub nsw i32 %560, 1
  %562 = load i32, ptr %33, align 4, !tbaa !9
  %563 = mul nsw i32 %561, %562
  %564 = add nsw i32 %559, %563
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds float, ptr %558, i64 %565
  store float %557, ptr %566, align 4, !tbaa !11
  %567 = load float, ptr %46, align 4, !tbaa !11
  %568 = load ptr, ptr %26, align 8, !tbaa !5
  %569 = load i32, ptr %49, align 4, !tbaa !9
  %570 = load i32, ptr %50, align 4, !tbaa !9
  %571 = load i32, ptr %33, align 4, !tbaa !9
  %572 = mul nsw i32 %570, %571
  %573 = add nsw i32 %569, %572
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds float, ptr %568, i64 %574
  store float %567, ptr %575, align 4, !tbaa !11
  br label %576

576:                                              ; preds = %534
  %577 = load i32, ptr %49, align 4, !tbaa !9
  %578 = add nsw i32 %577, 1
  store i32 %578, ptr %49, align 4, !tbaa !9
  br label %530, !llvm.loop !21

579:                                              ; preds = %530
  br label %651

580:                                              ; preds = %504
  %581 = load ptr, ptr %26, align 8, !tbaa !5
  %582 = load i32, ptr %50, align 4, !tbaa !9
  %583 = load i32, ptr %50, align 4, !tbaa !9
  %584 = load i32, ptr %33, align 4, !tbaa !9
  %585 = mul nsw i32 %583, %584
  %586 = add nsw i32 %582, %585
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds float, ptr %581, i64 %587
  %589 = load float, ptr %588, align 4, !tbaa !11
  %590 = fcmp oeq float %589, 0.000000e+00
  br i1 %590, label %591, label %602

591:                                              ; preds = %580
  %592 = load ptr, ptr %29, align 8, !tbaa !5
  %593 = load float, ptr %592, align 4, !tbaa !11
  %594 = load ptr, ptr %26, align 8, !tbaa !5
  %595 = load i32, ptr %50, align 4, !tbaa !9
  %596 = load i32, ptr %50, align 4, !tbaa !9
  %597 = load i32, ptr %33, align 4, !tbaa !9
  %598 = mul nsw i32 %596, %597
  %599 = add nsw i32 %595, %598
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds float, ptr %594, i64 %600
  store float %593, ptr %601, align 4, !tbaa !11
  br label %602

602:                                              ; preds = %591, %580
  %603 = load float, ptr %64, align 4, !tbaa !11
  %604 = load ptr, ptr %26, align 8, !tbaa !5
  %605 = load i32, ptr %50, align 4, !tbaa !9
  %606 = load i32, ptr %50, align 4, !tbaa !9
  %607 = load i32, ptr %33, align 4, !tbaa !9
  %608 = mul nsw i32 %606, %607
  %609 = add nsw i32 %605, %608
  %610 = sext i32 %609 to i64
  %611 = getelementptr inbounds float, ptr %604, i64 %610
  %612 = load float, ptr %611, align 4, !tbaa !11
  %613 = fdiv float %603, %612
  store float %613, ptr %53, align 4, !tbaa !11
  %614 = load float, ptr %53, align 4, !tbaa !11
  %615 = fcmp une float %614, 0.000000e+00
  br i1 %615, label %616, label %650

616:                                              ; preds = %602
  %617 = load i32, ptr %50, align 4, !tbaa !9
  %618 = sub nsw i32 %617, 1
  store i32 %618, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %619

619:                                              ; preds = %646, %616
  %620 = load i32, ptr %49, align 4, !tbaa !9
  %621 = load i32, ptr %37, align 4, !tbaa !9
  %622 = icmp sle i32 %620, %621
  br i1 %622, label %623, label %649

623:                                              ; preds = %619
  %624 = load float, ptr %53, align 4, !tbaa !11
  %625 = load ptr, ptr %26, align 8, !tbaa !5
  %626 = load i32, ptr %49, align 4, !tbaa !9
  %627 = load i32, ptr %50, align 4, !tbaa !9
  %628 = load i32, ptr %33, align 4, !tbaa !9
  %629 = mul nsw i32 %627, %628
  %630 = add nsw i32 %626, %629
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds float, ptr %625, i64 %631
  %633 = load float, ptr %632, align 4, !tbaa !11
  %634 = load ptr, ptr %26, align 8, !tbaa !5
  %635 = load i32, ptr %49, align 4, !tbaa !9
  %636 = load i32, ptr %50, align 4, !tbaa !9
  %637 = sub nsw i32 %636, 1
  %638 = load i32, ptr %33, align 4, !tbaa !9
  %639 = mul nsw i32 %637, %638
  %640 = add nsw i32 %635, %639
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds float, ptr %634, i64 %641
  %643 = load float, ptr %642, align 4, !tbaa !11
  %644 = fneg float %624
  %645 = call float @llvm.fmuladd.f32(float %644, float %633, float %643)
  store float %645, ptr %642, align 4, !tbaa !11
  br label %646

646:                                              ; preds = %623
  %647 = load i32, ptr %49, align 4, !tbaa !9
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr %49, align 4, !tbaa !9
  br label %619, !llvm.loop !22

649:                                              ; preds = %619
  br label %650

650:                                              ; preds = %649, %602
  br label %651

651:                                              ; preds = %650, %579
  br label %652

652:                                              ; preds = %651
  %653 = load i32, ptr %50, align 4, !tbaa !9
  %654 = add nsw i32 %653, -1
  store i32 %654, ptr %50, align 4, !tbaa !9
  br label %465, !llvm.loop !23

655:                                              ; preds = %465
  %656 = load ptr, ptr %26, align 8, !tbaa !5
  %657 = load i32, ptr %33, align 4, !tbaa !9
  %658 = add nsw i32 %657, 1
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds float, ptr %656, i64 %659
  %661 = load float, ptr %660, align 4, !tbaa !11
  %662 = fcmp oeq float %661, 0.000000e+00
  br i1 %662, label %663, label %671

663:                                              ; preds = %655
  %664 = load ptr, ptr %29, align 8, !tbaa !5
  %665 = load float, ptr %664, align 4, !tbaa !11
  %666 = load ptr, ptr %26, align 8, !tbaa !5
  %667 = load i32, ptr %33, align 4, !tbaa !9
  %668 = add nsw i32 %667, 1
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds float, ptr %666, i64 %669
  store float %665, ptr %670, align 4, !tbaa !11
  br label %671

671:                                              ; preds = %663, %655
  %672 = getelementptr inbounds [1 x i8], ptr %55, i64 0, i64 0
  store i8 84, ptr %672, align 1, !tbaa !20
  br label %673

673:                                              ; preds = %671, %460
  %674 = getelementptr inbounds [1 x i8], ptr %69, i64 0, i64 0
  store i8 78, ptr %674, align 1, !tbaa !20
  %675 = load ptr, ptr %19, align 8, !tbaa !5
  %676 = load i32, ptr %675, align 4, !tbaa !9
  store i32 %676, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %677

677:                                              ; preds = %745, %673
  %678 = load i32, ptr %73, align 4, !tbaa !9
  %679 = load i32, ptr %37, align 4, !tbaa !9
  %680 = icmp sle i32 %678, %679
  br i1 %680, label %681, label %748

681:                                              ; preds = %677
  %682 = getelementptr inbounds [1 x i8], ptr %55, i64 0, i64 0
  %683 = getelementptr inbounds [1 x i8], ptr %69, i64 0, i64 0
  %684 = load ptr, ptr %19, align 8, !tbaa !5
  %685 = load ptr, ptr %26, align 8, !tbaa !5
  %686 = load i32, ptr %34, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %685, i64 %687
  %689 = load ptr, ptr %27, align 8, !tbaa !5
  %690 = load ptr, ptr %24, align 8, !tbaa !5
  %691 = getelementptr inbounds float, ptr %690, i64 1
  %692 = load ptr, ptr %28, align 8, !tbaa !5
  %693 = getelementptr inbounds float, ptr %692, i64 1
  call void @slatrs_(ptr noundef @.str, ptr noundef %682, ptr noundef @.str.1, ptr noundef %683, ptr noundef %684, ptr noundef %688, ptr noundef %689, ptr noundef %691, ptr noundef %51, ptr noundef %693, ptr noundef %45)
  %694 = getelementptr inbounds [1 x i8], ptr %69, i64 0, i64 0
  store i8 89, ptr %694, align 1, !tbaa !20
  %695 = load ptr, ptr %19, align 8, !tbaa !5
  %696 = load ptr, ptr %24, align 8, !tbaa !5
  %697 = getelementptr inbounds float, ptr %696, i64 1
  %698 = call float @sasum_(ptr noundef %695, ptr noundef %697, ptr noundef @c__1)
  store float %698, ptr %61, align 4, !tbaa !11
  %699 = load float, ptr %61, align 4, !tbaa !11
  %700 = load float, ptr %71, align 4, !tbaa !11
  %701 = load float, ptr %51, align 4, !tbaa !11
  %702 = fmul float %700, %701
  %703 = fcmp oge float %699, %702
  br i1 %703, label %704, label %705

704:                                              ; preds = %681
  br label %750

705:                                              ; preds = %681
  %706 = load ptr, ptr %29, align 8, !tbaa !5
  %707 = load float, ptr %706, align 4, !tbaa !11
  %708 = load float, ptr %60, align 4, !tbaa !11
  %709 = fadd float %708, 1.000000e+00
  %710 = fdiv float %707, %709
  store float %710, ptr %46, align 4, !tbaa !11
  %711 = load ptr, ptr %29, align 8, !tbaa !5
  %712 = load float, ptr %711, align 4, !tbaa !11
  %713 = load ptr, ptr %24, align 8, !tbaa !5
  %714 = getelementptr inbounds float, ptr %713, i64 1
  store float %712, ptr %714, align 4, !tbaa !11
  %715 = load ptr, ptr %19, align 8, !tbaa !5
  %716 = load i32, ptr %715, align 4, !tbaa !9
  store i32 %716, ptr %38, align 4, !tbaa !9
  store i32 2, ptr %49, align 4, !tbaa !9
  br label %717

717:                                              ; preds = %727, %705
  %718 = load i32, ptr %49, align 4, !tbaa !9
  %719 = load i32, ptr %38, align 4, !tbaa !9
  %720 = icmp sle i32 %718, %719
  br i1 %720, label %721, label %730

721:                                              ; preds = %717
  %722 = load float, ptr %46, align 4, !tbaa !11
  %723 = load ptr, ptr %24, align 8, !tbaa !5
  %724 = load i32, ptr %49, align 4, !tbaa !9
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds float, ptr %723, i64 %725
  store float %722, ptr %726, align 4, !tbaa !11
  br label %727

727:                                              ; preds = %721
  %728 = load i32, ptr %49, align 4, !tbaa !9
  %729 = add nsw i32 %728, 1
  store i32 %729, ptr %49, align 4, !tbaa !9
  br label %717, !llvm.loop !24

730:                                              ; preds = %717
  %731 = load ptr, ptr %29, align 8, !tbaa !5
  %732 = load float, ptr %731, align 4, !tbaa !11
  %733 = load float, ptr %60, align 4, !tbaa !11
  %734 = load ptr, ptr %24, align 8, !tbaa !5
  %735 = load ptr, ptr %19, align 8, !tbaa !5
  %736 = load i32, ptr %735, align 4, !tbaa !9
  %737 = load i32, ptr %73, align 4, !tbaa !9
  %738 = sub nsw i32 %736, %737
  %739 = add nsw i32 %738, 1
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds float, ptr %734, i64 %740
  %742 = load float, ptr %741, align 4, !tbaa !11
  %743 = fneg float %732
  %744 = call float @llvm.fmuladd.f32(float %743, float %733, float %742)
  store float %744, ptr %741, align 4, !tbaa !11
  br label %745

745:                                              ; preds = %730
  %746 = load i32, ptr %73, align 4, !tbaa !9
  %747 = add nsw i32 %746, 1
  store i32 %747, ptr %73, align 4, !tbaa !9
  br label %677, !llvm.loop !25

748:                                              ; preds = %677
  %749 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 1, ptr %749, align 4, !tbaa !9
  br label %750

750:                                              ; preds = %748, %704
  %751 = load ptr, ptr %19, align 8, !tbaa !5
  %752 = load ptr, ptr %24, align 8, !tbaa !5
  %753 = getelementptr inbounds float, ptr %752, i64 1
  %754 = call i32 @isamax_(ptr noundef %751, ptr noundef %753, ptr noundef @c__1)
  store i32 %754, ptr %49, align 4, !tbaa !9
  %755 = load ptr, ptr %24, align 8, !tbaa !5
  %756 = load i32, ptr %49, align 4, !tbaa !9
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds float, ptr %755, i64 %757
  %759 = load float, ptr %758, align 4, !tbaa !11
  store float %759, ptr %41, align 4, !tbaa !11
  %760 = load float, ptr %41, align 4, !tbaa !11
  %761 = fcmp oge float %760, 0.000000e+00
  br i1 %761, label %762, label %764

762:                                              ; preds = %750
  %763 = load float, ptr %41, align 4, !tbaa !11
  br label %767

764:                                              ; preds = %750
  %765 = load float, ptr %41, align 4, !tbaa !11
  %766 = fneg float %765
  br label %767

767:                                              ; preds = %764, %762
  %768 = phi float [ %763, %762 ], [ %766, %764 ]
  %769 = fdiv float 1.000000e+00, %768
  store float %769, ptr %42, align 4, !tbaa !11
  %770 = load ptr, ptr %19, align 8, !tbaa !5
  %771 = load ptr, ptr %24, align 8, !tbaa !5
  %772 = getelementptr inbounds float, ptr %771, i64 1
  call void @sscal_(ptr noundef %770, ptr noundef %42, ptr noundef %772, ptr noundef @c__1)
  br label %2341

773:                                              ; preds = %183
  %774 = load ptr, ptr %18, align 8, !tbaa !5
  %775 = load i32, ptr %774, align 4, !tbaa !9
  %776 = icmp ne i32 %775, 0
  br i1 %776, label %777, label %799

777:                                              ; preds = %773
  %778 = load ptr, ptr %19, align 8, !tbaa !5
  %779 = load i32, ptr %778, align 4, !tbaa !9
  store i32 %779, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %780

780:                                              ; preds = %795, %777
  %781 = load i32, ptr %49, align 4, !tbaa !9
  %782 = load i32, ptr %37, align 4, !tbaa !9
  %783 = icmp sle i32 %781, %782
  br i1 %783, label %784, label %798

784:                                              ; preds = %780
  %785 = load ptr, ptr %29, align 8, !tbaa !5
  %786 = load float, ptr %785, align 4, !tbaa !11
  %787 = load ptr, ptr %24, align 8, !tbaa !5
  %788 = load i32, ptr %49, align 4, !tbaa !9
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds float, ptr %787, i64 %789
  store float %786, ptr %790, align 4, !tbaa !11
  %791 = load ptr, ptr %25, align 8, !tbaa !5
  %792 = load i32, ptr %49, align 4, !tbaa !9
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds float, ptr %791, i64 %793
  store float 0.000000e+00, ptr %794, align 4, !tbaa !11
  br label %795

795:                                              ; preds = %784
  %796 = load i32, ptr %49, align 4, !tbaa !9
  %797 = add nsw i32 %796, 1
  store i32 %797, ptr %49, align 4, !tbaa !9
  br label %780, !llvm.loop !26

798:                                              ; preds = %780
  br label %829

799:                                              ; preds = %773
  %800 = load ptr, ptr %19, align 8, !tbaa !5
  %801 = load ptr, ptr %24, align 8, !tbaa !5
  %802 = getelementptr inbounds float, ptr %801, i64 1
  %803 = call float @snrm2_(ptr noundef %800, ptr noundef %802, ptr noundef @c__1)
  store float %803, ptr %41, align 4, !tbaa !11
  %804 = load ptr, ptr %19, align 8, !tbaa !5
  %805 = load ptr, ptr %25, align 8, !tbaa !5
  %806 = getelementptr inbounds float, ptr %805, i64 1
  %807 = call float @snrm2_(ptr noundef %804, ptr noundef %806, ptr noundef @c__1)
  store float %807, ptr %42, align 4, !tbaa !11
  %808 = call float @slapy2_(ptr noundef %41, ptr noundef %42)
  store float %808, ptr %47, align 4, !tbaa !11
  %809 = load ptr, ptr %29, align 8, !tbaa !5
  %810 = load float, ptr %809, align 4, !tbaa !11
  %811 = load float, ptr %60, align 4, !tbaa !11
  %812 = fmul float %810, %811
  %813 = load float, ptr %47, align 4, !tbaa !11
  %814 = load float, ptr %70, align 4, !tbaa !11
  %815 = fcmp oge float %813, %814
  br i1 %815, label %816, label %818

816:                                              ; preds = %799
  %817 = load float, ptr %47, align 4, !tbaa !11
  br label %820

818:                                              ; preds = %799
  %819 = load float, ptr %70, align 4, !tbaa !11
  br label %820

820:                                              ; preds = %818, %816
  %821 = phi float [ %817, %816 ], [ %819, %818 ]
  %822 = fdiv float %812, %821
  store float %822, ptr %72, align 4, !tbaa !11
  %823 = load ptr, ptr %19, align 8, !tbaa !5
  %824 = load ptr, ptr %24, align 8, !tbaa !5
  %825 = getelementptr inbounds float, ptr %824, i64 1
  call void @sscal_(ptr noundef %823, ptr noundef %72, ptr noundef %825, ptr noundef @c__1)
  %826 = load ptr, ptr %19, align 8, !tbaa !5
  %827 = load ptr, ptr %25, align 8, !tbaa !5
  %828 = getelementptr inbounds float, ptr %827, i64 1
  call void @sscal_(ptr noundef %826, ptr noundef %72, ptr noundef %828, ptr noundef @c__1)
  br label %829

829:                                              ; preds = %820, %798
  %830 = load ptr, ptr %17, align 8, !tbaa !5
  %831 = load i32, ptr %830, align 4, !tbaa !9
  %832 = icmp ne i32 %831, 0
  br i1 %832, label %833, label %1325

833:                                              ; preds = %829
  %834 = load ptr, ptr %23, align 8, !tbaa !5
  %835 = load float, ptr %834, align 4, !tbaa !11
  %836 = fneg float %835
  %837 = load ptr, ptr %26, align 8, !tbaa !5
  %838 = load i32, ptr %33, align 4, !tbaa !9
  %839 = add nsw i32 %838, 2
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds float, ptr %837, i64 %840
  store float %836, ptr %841, align 4, !tbaa !11
  %842 = load ptr, ptr %19, align 8, !tbaa !5
  %843 = load i32, ptr %842, align 4, !tbaa !9
  store i32 %843, ptr %37, align 4, !tbaa !9
  store i32 2, ptr %49, align 4, !tbaa !9
  br label %844

844:                                              ; preds = %856, %833
  %845 = load i32, ptr %49, align 4, !tbaa !9
  %846 = load i32, ptr %37, align 4, !tbaa !9
  %847 = icmp sle i32 %845, %846
  br i1 %847, label %848, label %859

848:                                              ; preds = %844
  %849 = load ptr, ptr %26, align 8, !tbaa !5
  %850 = load i32, ptr %49, align 4, !tbaa !9
  %851 = add nsw i32 %850, 1
  %852 = load i32, ptr %33, align 4, !tbaa !9
  %853 = add nsw i32 %851, %852
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds float, ptr %849, i64 %854
  store float 0.000000e+00, ptr %855, align 4, !tbaa !11
  br label %856

856:                                              ; preds = %848
  %857 = load i32, ptr %49, align 4, !tbaa !9
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr %49, align 4, !tbaa !9
  br label %844, !llvm.loop !27

859:                                              ; preds = %844
  %860 = load ptr, ptr %19, align 8, !tbaa !5
  %861 = load i32, ptr %860, align 4, !tbaa !9
  %862 = sub nsw i32 %861, 1
  store i32 %862, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %863

863:                                              ; preds = %1274, %859
  %864 = load i32, ptr %49, align 4, !tbaa !9
  %865 = load i32, ptr %37, align 4, !tbaa !9
  %866 = icmp sle i32 %864, %865
  br i1 %866, label %867, label %1277

867:                                              ; preds = %863
  %868 = load ptr, ptr %26, align 8, !tbaa !5
  %869 = load i32, ptr %49, align 4, !tbaa !9
  %870 = load i32, ptr %49, align 4, !tbaa !9
  %871 = load i32, ptr %33, align 4, !tbaa !9
  %872 = mul nsw i32 %870, %871
  %873 = add nsw i32 %869, %872
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds float, ptr %868, i64 %874
  %876 = load ptr, ptr %26, align 8, !tbaa !5
  %877 = load i32, ptr %49, align 4, !tbaa !9
  %878 = add nsw i32 %877, 1
  %879 = load i32, ptr %49, align 4, !tbaa !9
  %880 = load i32, ptr %33, align 4, !tbaa !9
  %881 = mul nsw i32 %879, %880
  %882 = add nsw i32 %878, %881
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds float, ptr %876, i64 %883
  %885 = call float @slapy2_(ptr noundef %875, ptr noundef %884)
  store float %885, ptr %65, align 4, !tbaa !11
  %886 = load ptr, ptr %20, align 8, !tbaa !5
  %887 = load i32, ptr %49, align 4, !tbaa !9
  %888 = add nsw i32 %887, 1
  %889 = load i32, ptr %49, align 4, !tbaa !9
  %890 = load i32, ptr %35, align 4, !tbaa !9
  %891 = mul nsw i32 %889, %890
  %892 = add nsw i32 %888, %891
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds float, ptr %886, i64 %893
  %895 = load float, ptr %894, align 4, !tbaa !11
  store float %895, ptr %63, align 4, !tbaa !11
  %896 = load float, ptr %65, align 4, !tbaa !11
  %897 = load float, ptr %63, align 4, !tbaa !11
  %898 = fcmp oge float %897, 0.000000e+00
  br i1 %898, label %899, label %901

899:                                              ; preds = %867
  %900 = load float, ptr %63, align 4, !tbaa !11
  br label %904

901:                                              ; preds = %867
  %902 = load float, ptr %63, align 4, !tbaa !11
  %903 = fneg float %902
  br label %904

904:                                              ; preds = %901, %899
  %905 = phi float [ %900, %899 ], [ %903, %901 ]
  %906 = fcmp olt float %896, %905
  br i1 %906, label %907, label %1079

907:                                              ; preds = %904
  %908 = load ptr, ptr %26, align 8, !tbaa !5
  %909 = load i32, ptr %49, align 4, !tbaa !9
  %910 = load i32, ptr %49, align 4, !tbaa !9
  %911 = load i32, ptr %33, align 4, !tbaa !9
  %912 = mul nsw i32 %910, %911
  %913 = add nsw i32 %909, %912
  %914 = sext i32 %913 to i64
  %915 = getelementptr inbounds float, ptr %908, i64 %914
  %916 = load float, ptr %915, align 4, !tbaa !11
  %917 = load float, ptr %63, align 4, !tbaa !11
  %918 = fdiv float %916, %917
  store float %918, ptr %68, align 4, !tbaa !11
  %919 = load ptr, ptr %26, align 8, !tbaa !5
  %920 = load i32, ptr %49, align 4, !tbaa !9
  %921 = add nsw i32 %920, 1
  %922 = load i32, ptr %49, align 4, !tbaa !9
  %923 = load i32, ptr %33, align 4, !tbaa !9
  %924 = mul nsw i32 %922, %923
  %925 = add nsw i32 %921, %924
  %926 = sext i32 %925 to i64
  %927 = getelementptr inbounds float, ptr %919, i64 %926
  %928 = load float, ptr %927, align 4, !tbaa !11
  %929 = load float, ptr %63, align 4, !tbaa !11
  %930 = fdiv float %928, %929
  store float %930, ptr %67, align 4, !tbaa !11
  %931 = load float, ptr %63, align 4, !tbaa !11
  %932 = load ptr, ptr %26, align 8, !tbaa !5
  %933 = load i32, ptr %49, align 4, !tbaa !9
  %934 = load i32, ptr %49, align 4, !tbaa !9
  %935 = load i32, ptr %33, align 4, !tbaa !9
  %936 = mul nsw i32 %934, %935
  %937 = add nsw i32 %933, %936
  %938 = sext i32 %937 to i64
  %939 = getelementptr inbounds float, ptr %932, i64 %938
  store float %931, ptr %939, align 4, !tbaa !11
  %940 = load ptr, ptr %26, align 8, !tbaa !5
  %941 = load i32, ptr %49, align 4, !tbaa !9
  %942 = add nsw i32 %941, 1
  %943 = load i32, ptr %49, align 4, !tbaa !9
  %944 = load i32, ptr %33, align 4, !tbaa !9
  %945 = mul nsw i32 %943, %944
  %946 = add nsw i32 %942, %945
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds float, ptr %940, i64 %947
  store float 0.000000e+00, ptr %948, align 4, !tbaa !11
  %949 = load ptr, ptr %19, align 8, !tbaa !5
  %950 = load i32, ptr %949, align 4, !tbaa !9
  store i32 %950, ptr %38, align 4, !tbaa !9
  %951 = load i32, ptr %49, align 4, !tbaa !9
  %952 = add nsw i32 %951, 1
  store i32 %952, ptr %50, align 4, !tbaa !9
  br label %953

953:                                              ; preds = %1032, %907
  %954 = load i32, ptr %50, align 4, !tbaa !9
  %955 = load i32, ptr %38, align 4, !tbaa !9
  %956 = icmp sle i32 %954, %955
  br i1 %956, label %957, label %1035

957:                                              ; preds = %953
  %958 = load ptr, ptr %26, align 8, !tbaa !5
  %959 = load i32, ptr %49, align 4, !tbaa !9
  %960 = add nsw i32 %959, 1
  %961 = load i32, ptr %50, align 4, !tbaa !9
  %962 = load i32, ptr %33, align 4, !tbaa !9
  %963 = mul nsw i32 %961, %962
  %964 = add nsw i32 %960, %963
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds float, ptr %958, i64 %965
  %967 = load float, ptr %966, align 4, !tbaa !11
  store float %967, ptr %46, align 4, !tbaa !11
  %968 = load ptr, ptr %26, align 8, !tbaa !5
  %969 = load i32, ptr %49, align 4, !tbaa !9
  %970 = load i32, ptr %50, align 4, !tbaa !9
  %971 = load i32, ptr %33, align 4, !tbaa !9
  %972 = mul nsw i32 %970, %971
  %973 = add nsw i32 %969, %972
  %974 = sext i32 %973 to i64
  %975 = getelementptr inbounds float, ptr %968, i64 %974
  %976 = load float, ptr %975, align 4, !tbaa !11
  %977 = load float, ptr %68, align 4, !tbaa !11
  %978 = load float, ptr %46, align 4, !tbaa !11
  %979 = fneg float %977
  %980 = call float @llvm.fmuladd.f32(float %979, float %978, float %976)
  %981 = load ptr, ptr %26, align 8, !tbaa !5
  %982 = load i32, ptr %49, align 4, !tbaa !9
  %983 = add nsw i32 %982, 1
  %984 = load i32, ptr %50, align 4, !tbaa !9
  %985 = load i32, ptr %33, align 4, !tbaa !9
  %986 = mul nsw i32 %984, %985
  %987 = add nsw i32 %983, %986
  %988 = sext i32 %987 to i64
  %989 = getelementptr inbounds float, ptr %981, i64 %988
  store float %980, ptr %989, align 4, !tbaa !11
  %990 = load ptr, ptr %26, align 8, !tbaa !5
  %991 = load i32, ptr %50, align 4, !tbaa !9
  %992 = add nsw i32 %991, 1
  %993 = load i32, ptr %49, align 4, !tbaa !9
  %994 = load i32, ptr %33, align 4, !tbaa !9
  %995 = mul nsw i32 %993, %994
  %996 = add nsw i32 %992, %995
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds float, ptr %990, i64 %997
  %999 = load float, ptr %998, align 4, !tbaa !11
  %1000 = load float, ptr %67, align 4, !tbaa !11
  %1001 = load float, ptr %46, align 4, !tbaa !11
  %1002 = fneg float %1000
  %1003 = call float @llvm.fmuladd.f32(float %1002, float %1001, float %999)
  %1004 = load ptr, ptr %26, align 8, !tbaa !5
  %1005 = load i32, ptr %50, align 4, !tbaa !9
  %1006 = add nsw i32 %1005, 1
  %1007 = load i32, ptr %49, align 4, !tbaa !9
  %1008 = add nsw i32 %1007, 1
  %1009 = load i32, ptr %33, align 4, !tbaa !9
  %1010 = mul nsw i32 %1008, %1009
  %1011 = add nsw i32 %1006, %1010
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds float, ptr %1004, i64 %1012
  store float %1003, ptr %1013, align 4, !tbaa !11
  %1014 = load float, ptr %46, align 4, !tbaa !11
  %1015 = load ptr, ptr %26, align 8, !tbaa !5
  %1016 = load i32, ptr %49, align 4, !tbaa !9
  %1017 = load i32, ptr %50, align 4, !tbaa !9
  %1018 = load i32, ptr %33, align 4, !tbaa !9
  %1019 = mul nsw i32 %1017, %1018
  %1020 = add nsw i32 %1016, %1019
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds float, ptr %1015, i64 %1021
  store float %1014, ptr %1022, align 4, !tbaa !11
  %1023 = load ptr, ptr %26, align 8, !tbaa !5
  %1024 = load i32, ptr %50, align 4, !tbaa !9
  %1025 = add nsw i32 %1024, 1
  %1026 = load i32, ptr %49, align 4, !tbaa !9
  %1027 = load i32, ptr %33, align 4, !tbaa !9
  %1028 = mul nsw i32 %1026, %1027
  %1029 = add nsw i32 %1025, %1028
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds float, ptr %1023, i64 %1030
  store float 0.000000e+00, ptr %1031, align 4, !tbaa !11
  br label %1032

1032:                                             ; preds = %957
  %1033 = load i32, ptr %50, align 4, !tbaa !9
  %1034 = add nsw i32 %1033, 1
  store i32 %1034, ptr %50, align 4, !tbaa !9
  br label %953, !llvm.loop !28

1035:                                             ; preds = %953
  %1036 = load ptr, ptr %23, align 8, !tbaa !5
  %1037 = load float, ptr %1036, align 4, !tbaa !11
  %1038 = fneg float %1037
  %1039 = load ptr, ptr %26, align 8, !tbaa !5
  %1040 = load i32, ptr %49, align 4, !tbaa !9
  %1041 = add nsw i32 %1040, 2
  %1042 = load i32, ptr %49, align 4, !tbaa !9
  %1043 = load i32, ptr %33, align 4, !tbaa !9
  %1044 = mul nsw i32 %1042, %1043
  %1045 = add nsw i32 %1041, %1044
  %1046 = sext i32 %1045 to i64
  %1047 = getelementptr inbounds float, ptr %1039, i64 %1046
  store float %1038, ptr %1047, align 4, !tbaa !11
  %1048 = load float, ptr %67, align 4, !tbaa !11
  %1049 = load ptr, ptr %23, align 8, !tbaa !5
  %1050 = load float, ptr %1049, align 4, !tbaa !11
  %1051 = load ptr, ptr %26, align 8, !tbaa !5
  %1052 = load i32, ptr %49, align 4, !tbaa !9
  %1053 = add nsw i32 %1052, 1
  %1054 = load i32, ptr %49, align 4, !tbaa !9
  %1055 = add nsw i32 %1054, 1
  %1056 = load i32, ptr %33, align 4, !tbaa !9
  %1057 = mul nsw i32 %1055, %1056
  %1058 = add nsw i32 %1053, %1057
  %1059 = sext i32 %1058 to i64
  %1060 = getelementptr inbounds float, ptr %1051, i64 %1059
  %1061 = load float, ptr %1060, align 4, !tbaa !11
  %1062 = fneg float %1048
  %1063 = call float @llvm.fmuladd.f32(float %1062, float %1050, float %1061)
  store float %1063, ptr %1060, align 4, !tbaa !11
  %1064 = load float, ptr %68, align 4, !tbaa !11
  %1065 = load ptr, ptr %23, align 8, !tbaa !5
  %1066 = load float, ptr %1065, align 4, !tbaa !11
  %1067 = load ptr, ptr %26, align 8, !tbaa !5
  %1068 = load i32, ptr %49, align 4, !tbaa !9
  %1069 = add nsw i32 %1068, 2
  %1070 = load i32, ptr %49, align 4, !tbaa !9
  %1071 = add nsw i32 %1070, 1
  %1072 = load i32, ptr %33, align 4, !tbaa !9
  %1073 = mul nsw i32 %1071, %1072
  %1074 = add nsw i32 %1069, %1073
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds float, ptr %1067, i64 %1075
  %1077 = load float, ptr %1076, align 4, !tbaa !11
  %1078 = call float @llvm.fmuladd.f32(float %1064, float %1066, float %1077)
  store float %1078, ptr %1076, align 4, !tbaa !11
  br label %1239

1079:                                             ; preds = %904
  %1080 = load float, ptr %65, align 4, !tbaa !11
  %1081 = fcmp oeq float %1080, 0.000000e+00
  br i1 %1081, label %1082, label %1104

1082:                                             ; preds = %1079
  %1083 = load ptr, ptr %29, align 8, !tbaa !5
  %1084 = load float, ptr %1083, align 4, !tbaa !11
  %1085 = load ptr, ptr %26, align 8, !tbaa !5
  %1086 = load i32, ptr %49, align 4, !tbaa !9
  %1087 = load i32, ptr %49, align 4, !tbaa !9
  %1088 = load i32, ptr %33, align 4, !tbaa !9
  %1089 = mul nsw i32 %1087, %1088
  %1090 = add nsw i32 %1086, %1089
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds float, ptr %1085, i64 %1091
  store float %1084, ptr %1092, align 4, !tbaa !11
  %1093 = load ptr, ptr %26, align 8, !tbaa !5
  %1094 = load i32, ptr %49, align 4, !tbaa !9
  %1095 = add nsw i32 %1094, 1
  %1096 = load i32, ptr %49, align 4, !tbaa !9
  %1097 = load i32, ptr %33, align 4, !tbaa !9
  %1098 = mul nsw i32 %1096, %1097
  %1099 = add nsw i32 %1095, %1098
  %1100 = sext i32 %1099 to i64
  %1101 = getelementptr inbounds float, ptr %1093, i64 %1100
  store float 0.000000e+00, ptr %1101, align 4, !tbaa !11
  %1102 = load ptr, ptr %29, align 8, !tbaa !5
  %1103 = load float, ptr %1102, align 4, !tbaa !11
  store float %1103, ptr %65, align 4, !tbaa !11
  br label %1104

1104:                                             ; preds = %1082, %1079
  %1105 = load float, ptr %63, align 4, !tbaa !11
  %1106 = load float, ptr %65, align 4, !tbaa !11
  %1107 = fdiv float %1105, %1106
  %1108 = load float, ptr %65, align 4, !tbaa !11
  %1109 = fdiv float %1107, %1108
  store float %1109, ptr %63, align 4, !tbaa !11
  %1110 = load ptr, ptr %26, align 8, !tbaa !5
  %1111 = load i32, ptr %49, align 4, !tbaa !9
  %1112 = load i32, ptr %49, align 4, !tbaa !9
  %1113 = load i32, ptr %33, align 4, !tbaa !9
  %1114 = mul nsw i32 %1112, %1113
  %1115 = add nsw i32 %1111, %1114
  %1116 = sext i32 %1115 to i64
  %1117 = getelementptr inbounds float, ptr %1110, i64 %1116
  %1118 = load float, ptr %1117, align 4, !tbaa !11
  %1119 = load float, ptr %63, align 4, !tbaa !11
  %1120 = fmul float %1118, %1119
  store float %1120, ptr %68, align 4, !tbaa !11
  %1121 = load ptr, ptr %26, align 8, !tbaa !5
  %1122 = load i32, ptr %49, align 4, !tbaa !9
  %1123 = add nsw i32 %1122, 1
  %1124 = load i32, ptr %49, align 4, !tbaa !9
  %1125 = load i32, ptr %33, align 4, !tbaa !9
  %1126 = mul nsw i32 %1124, %1125
  %1127 = add nsw i32 %1123, %1126
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds float, ptr %1121, i64 %1128
  %1130 = load float, ptr %1129, align 4, !tbaa !11
  %1131 = fneg float %1130
  %1132 = load float, ptr %63, align 4, !tbaa !11
  %1133 = fmul float %1131, %1132
  store float %1133, ptr %67, align 4, !tbaa !11
  %1134 = load ptr, ptr %19, align 8, !tbaa !5
  %1135 = load i32, ptr %1134, align 4, !tbaa !9
  store i32 %1135, ptr %38, align 4, !tbaa !9
  %1136 = load i32, ptr %49, align 4, !tbaa !9
  %1137 = add nsw i32 %1136, 1
  store i32 %1137, ptr %50, align 4, !tbaa !9
  br label %1138

1138:                                             ; preds = %1221, %1104
  %1139 = load i32, ptr %50, align 4, !tbaa !9
  %1140 = load i32, ptr %38, align 4, !tbaa !9
  %1141 = icmp sle i32 %1139, %1140
  br i1 %1141, label %1142, label %1224

1142:                                             ; preds = %1138
  %1143 = load ptr, ptr %26, align 8, !tbaa !5
  %1144 = load i32, ptr %49, align 4, !tbaa !9
  %1145 = add nsw i32 %1144, 1
  %1146 = load i32, ptr %50, align 4, !tbaa !9
  %1147 = load i32, ptr %33, align 4, !tbaa !9
  %1148 = mul nsw i32 %1146, %1147
  %1149 = add nsw i32 %1145, %1148
  %1150 = sext i32 %1149 to i64
  %1151 = getelementptr inbounds float, ptr %1143, i64 %1150
  %1152 = load float, ptr %1151, align 4, !tbaa !11
  %1153 = load float, ptr %68, align 4, !tbaa !11
  %1154 = load ptr, ptr %26, align 8, !tbaa !5
  %1155 = load i32, ptr %49, align 4, !tbaa !9
  %1156 = load i32, ptr %50, align 4, !tbaa !9
  %1157 = load i32, ptr %33, align 4, !tbaa !9
  %1158 = mul nsw i32 %1156, %1157
  %1159 = add nsw i32 %1155, %1158
  %1160 = sext i32 %1159 to i64
  %1161 = getelementptr inbounds float, ptr %1154, i64 %1160
  %1162 = load float, ptr %1161, align 4, !tbaa !11
  %1163 = fneg float %1153
  %1164 = call float @llvm.fmuladd.f32(float %1163, float %1162, float %1152)
  %1165 = load float, ptr %67, align 4, !tbaa !11
  %1166 = load ptr, ptr %26, align 8, !tbaa !5
  %1167 = load i32, ptr %50, align 4, !tbaa !9
  %1168 = add nsw i32 %1167, 1
  %1169 = load i32, ptr %49, align 4, !tbaa !9
  %1170 = load i32, ptr %33, align 4, !tbaa !9
  %1171 = mul nsw i32 %1169, %1170
  %1172 = add nsw i32 %1168, %1171
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds float, ptr %1166, i64 %1173
  %1175 = load float, ptr %1174, align 4, !tbaa !11
  %1176 = call float @llvm.fmuladd.f32(float %1165, float %1175, float %1164)
  %1177 = load ptr, ptr %26, align 8, !tbaa !5
  %1178 = load i32, ptr %49, align 4, !tbaa !9
  %1179 = add nsw i32 %1178, 1
  %1180 = load i32, ptr %50, align 4, !tbaa !9
  %1181 = load i32, ptr %33, align 4, !tbaa !9
  %1182 = mul nsw i32 %1180, %1181
  %1183 = add nsw i32 %1179, %1182
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds float, ptr %1177, i64 %1184
  store float %1176, ptr %1185, align 4, !tbaa !11
  %1186 = load float, ptr %68, align 4, !tbaa !11
  %1187 = fneg float %1186
  %1188 = load ptr, ptr %26, align 8, !tbaa !5
  %1189 = load i32, ptr %50, align 4, !tbaa !9
  %1190 = add nsw i32 %1189, 1
  %1191 = load i32, ptr %49, align 4, !tbaa !9
  %1192 = load i32, ptr %33, align 4, !tbaa !9
  %1193 = mul nsw i32 %1191, %1192
  %1194 = add nsw i32 %1190, %1193
  %1195 = sext i32 %1194 to i64
  %1196 = getelementptr inbounds float, ptr %1188, i64 %1195
  %1197 = load float, ptr %1196, align 4, !tbaa !11
  %1198 = load float, ptr %67, align 4, !tbaa !11
  %1199 = load ptr, ptr %26, align 8, !tbaa !5
  %1200 = load i32, ptr %49, align 4, !tbaa !9
  %1201 = load i32, ptr %50, align 4, !tbaa !9
  %1202 = load i32, ptr %33, align 4, !tbaa !9
  %1203 = mul nsw i32 %1201, %1202
  %1204 = add nsw i32 %1200, %1203
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds float, ptr %1199, i64 %1205
  %1207 = load float, ptr %1206, align 4, !tbaa !11
  %1208 = fmul float %1198, %1207
  %1209 = fneg float %1208
  %1210 = call float @llvm.fmuladd.f32(float %1187, float %1197, float %1209)
  %1211 = load ptr, ptr %26, align 8, !tbaa !5
  %1212 = load i32, ptr %50, align 4, !tbaa !9
  %1213 = add nsw i32 %1212, 1
  %1214 = load i32, ptr %49, align 4, !tbaa !9
  %1215 = add nsw i32 %1214, 1
  %1216 = load i32, ptr %33, align 4, !tbaa !9
  %1217 = mul nsw i32 %1215, %1216
  %1218 = add nsw i32 %1213, %1217
  %1219 = sext i32 %1218 to i64
  %1220 = getelementptr inbounds float, ptr %1211, i64 %1219
  store float %1210, ptr %1220, align 4, !tbaa !11
  br label %1221

1221:                                             ; preds = %1142
  %1222 = load i32, ptr %50, align 4, !tbaa !9
  %1223 = add nsw i32 %1222, 1
  store i32 %1223, ptr %50, align 4, !tbaa !9
  br label %1138, !llvm.loop !29

1224:                                             ; preds = %1138
  %1225 = load ptr, ptr %23, align 8, !tbaa !5
  %1226 = load float, ptr %1225, align 4, !tbaa !11
  %1227 = load ptr, ptr %26, align 8, !tbaa !5
  %1228 = load i32, ptr %49, align 4, !tbaa !9
  %1229 = add nsw i32 %1228, 2
  %1230 = load i32, ptr %49, align 4, !tbaa !9
  %1231 = add nsw i32 %1230, 1
  %1232 = load i32, ptr %33, align 4, !tbaa !9
  %1233 = mul nsw i32 %1231, %1232
  %1234 = add nsw i32 %1229, %1233
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds float, ptr %1227, i64 %1235
  %1237 = load float, ptr %1236, align 4, !tbaa !11
  %1238 = fsub float %1237, %1226
  store float %1238, ptr %1236, align 4, !tbaa !11
  br label %1239

1239:                                             ; preds = %1224, %1035
  %1240 = load ptr, ptr %19, align 8, !tbaa !5
  %1241 = load i32, ptr %1240, align 4, !tbaa !9
  %1242 = load i32, ptr %49, align 4, !tbaa !9
  %1243 = sub nsw i32 %1241, %1242
  store i32 %1243, ptr %38, align 4, !tbaa !9
  %1244 = load ptr, ptr %19, align 8, !tbaa !5
  %1245 = load i32, ptr %1244, align 4, !tbaa !9
  %1246 = load i32, ptr %49, align 4, !tbaa !9
  %1247 = sub nsw i32 %1245, %1246
  store i32 %1247, ptr %39, align 4, !tbaa !9
  %1248 = load ptr, ptr %26, align 8, !tbaa !5
  %1249 = load i32, ptr %49, align 4, !tbaa !9
  %1250 = load i32, ptr %49, align 4, !tbaa !9
  %1251 = add nsw i32 %1250, 1
  %1252 = load i32, ptr %33, align 4, !tbaa !9
  %1253 = mul nsw i32 %1251, %1252
  %1254 = add nsw i32 %1249, %1253
  %1255 = sext i32 %1254 to i64
  %1256 = getelementptr inbounds float, ptr %1248, i64 %1255
  %1257 = load ptr, ptr %27, align 8, !tbaa !5
  %1258 = call float @sasum_(ptr noundef %38, ptr noundef %1256, ptr noundef %1257)
  %1259 = load ptr, ptr %26, align 8, !tbaa !5
  %1260 = load i32, ptr %49, align 4, !tbaa !9
  %1261 = add nsw i32 %1260, 2
  %1262 = load i32, ptr %49, align 4, !tbaa !9
  %1263 = load i32, ptr %33, align 4, !tbaa !9
  %1264 = mul nsw i32 %1262, %1263
  %1265 = add nsw i32 %1261, %1264
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds float, ptr %1259, i64 %1266
  %1268 = call float @sasum_(ptr noundef %39, ptr noundef %1267, ptr noundef @c__1)
  %1269 = fadd float %1258, %1268
  %1270 = load ptr, ptr %28, align 8, !tbaa !5
  %1271 = load i32, ptr %49, align 4, !tbaa !9
  %1272 = sext i32 %1271 to i64
  %1273 = getelementptr inbounds float, ptr %1270, i64 %1272
  store float %1269, ptr %1273, align 4, !tbaa !11
  br label %1274

1274:                                             ; preds = %1239
  %1275 = load i32, ptr %49, align 4, !tbaa !9
  %1276 = add nsw i32 %1275, 1
  store i32 %1276, ptr %49, align 4, !tbaa !9
  br label %863, !llvm.loop !30

1277:                                             ; preds = %863
  %1278 = load ptr, ptr %26, align 8, !tbaa !5
  %1279 = load ptr, ptr %19, align 8, !tbaa !5
  %1280 = load i32, ptr %1279, align 4, !tbaa !9
  %1281 = load ptr, ptr %19, align 8, !tbaa !5
  %1282 = load i32, ptr %1281, align 4, !tbaa !9
  %1283 = load i32, ptr %33, align 4, !tbaa !9
  %1284 = mul nsw i32 %1282, %1283
  %1285 = add nsw i32 %1280, %1284
  %1286 = sext i32 %1285 to i64
  %1287 = getelementptr inbounds float, ptr %1278, i64 %1286
  %1288 = load float, ptr %1287, align 4, !tbaa !11
  %1289 = fcmp oeq float %1288, 0.000000e+00
  br i1 %1289, label %1290, label %1317

1290:                                             ; preds = %1277
  %1291 = load ptr, ptr %26, align 8, !tbaa !5
  %1292 = load ptr, ptr %19, align 8, !tbaa !5
  %1293 = load i32, ptr %1292, align 4, !tbaa !9
  %1294 = add nsw i32 %1293, 1
  %1295 = load ptr, ptr %19, align 8, !tbaa !5
  %1296 = load i32, ptr %1295, align 4, !tbaa !9
  %1297 = load i32, ptr %33, align 4, !tbaa !9
  %1298 = mul nsw i32 %1296, %1297
  %1299 = add nsw i32 %1294, %1298
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds float, ptr %1291, i64 %1300
  %1302 = load float, ptr %1301, align 4, !tbaa !11
  %1303 = fcmp oeq float %1302, 0.000000e+00
  br i1 %1303, label %1304, label %1317

1304:                                             ; preds = %1290
  %1305 = load ptr, ptr %29, align 8, !tbaa !5
  %1306 = load float, ptr %1305, align 4, !tbaa !11
  %1307 = load ptr, ptr %26, align 8, !tbaa !5
  %1308 = load ptr, ptr %19, align 8, !tbaa !5
  %1309 = load i32, ptr %1308, align 4, !tbaa !9
  %1310 = load ptr, ptr %19, align 8, !tbaa !5
  %1311 = load i32, ptr %1310, align 4, !tbaa !9
  %1312 = load i32, ptr %33, align 4, !tbaa !9
  %1313 = mul nsw i32 %1311, %1312
  %1314 = add nsw i32 %1309, %1313
  %1315 = sext i32 %1314 to i64
  %1316 = getelementptr inbounds float, ptr %1307, i64 %1315
  store float %1306, ptr %1316, align 4, !tbaa !11
  br label %1317

1317:                                             ; preds = %1304, %1290, %1277
  %1318 = load ptr, ptr %28, align 8, !tbaa !5
  %1319 = load ptr, ptr %19, align 8, !tbaa !5
  %1320 = load i32, ptr %1319, align 4, !tbaa !9
  %1321 = sext i32 %1320 to i64
  %1322 = getelementptr inbounds float, ptr %1318, i64 %1321
  store float 0.000000e+00, ptr %1322, align 4, !tbaa !11
  %1323 = load ptr, ptr %19, align 8, !tbaa !5
  %1324 = load i32, ptr %1323, align 4, !tbaa !9
  store i32 %1324, ptr %57, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  store i32 -1, ptr %59, align 4, !tbaa !9
  br label %1787

1325:                                             ; preds = %829
  %1326 = load ptr, ptr %23, align 8, !tbaa !5
  %1327 = load float, ptr %1326, align 4, !tbaa !11
  %1328 = load ptr, ptr %26, align 8, !tbaa !5
  %1329 = load ptr, ptr %19, align 8, !tbaa !5
  %1330 = load i32, ptr %1329, align 4, !tbaa !9
  %1331 = add nsw i32 %1330, 1
  %1332 = load ptr, ptr %19, align 8, !tbaa !5
  %1333 = load i32, ptr %1332, align 4, !tbaa !9
  %1334 = load i32, ptr %33, align 4, !tbaa !9
  %1335 = mul nsw i32 %1333, %1334
  %1336 = add nsw i32 %1331, %1335
  %1337 = sext i32 %1336 to i64
  %1338 = getelementptr inbounds float, ptr %1328, i64 %1337
  store float %1327, ptr %1338, align 4, !tbaa !11
  %1339 = load ptr, ptr %19, align 8, !tbaa !5
  %1340 = load i32, ptr %1339, align 4, !tbaa !9
  %1341 = sub nsw i32 %1340, 1
  store i32 %1341, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %1342

1342:                                             ; preds = %1357, %1325
  %1343 = load i32, ptr %50, align 4, !tbaa !9
  %1344 = load i32, ptr %37, align 4, !tbaa !9
  %1345 = icmp sle i32 %1343, %1344
  br i1 %1345, label %1346, label %1360

1346:                                             ; preds = %1342
  %1347 = load ptr, ptr %26, align 8, !tbaa !5
  %1348 = load ptr, ptr %19, align 8, !tbaa !5
  %1349 = load i32, ptr %1348, align 4, !tbaa !9
  %1350 = add nsw i32 %1349, 1
  %1351 = load i32, ptr %50, align 4, !tbaa !9
  %1352 = load i32, ptr %33, align 4, !tbaa !9
  %1353 = mul nsw i32 %1351, %1352
  %1354 = add nsw i32 %1350, %1353
  %1355 = sext i32 %1354 to i64
  %1356 = getelementptr inbounds float, ptr %1347, i64 %1355
  store float 0.000000e+00, ptr %1356, align 4, !tbaa !11
  br label %1357

1357:                                             ; preds = %1346
  %1358 = load i32, ptr %50, align 4, !tbaa !9
  %1359 = add nsw i32 %1358, 1
  store i32 %1359, ptr %50, align 4, !tbaa !9
  br label %1342, !llvm.loop !31

1360:                                             ; preds = %1342
  %1361 = load ptr, ptr %19, align 8, !tbaa !5
  %1362 = load i32, ptr %1361, align 4, !tbaa !9
  store i32 %1362, ptr %50, align 4, !tbaa !9
  br label %1363

1363:                                             ; preds = %1755, %1360
  %1364 = load i32, ptr %50, align 4, !tbaa !9
  %1365 = icmp sge i32 %1364, 2
  br i1 %1365, label %1366, label %1758

1366:                                             ; preds = %1363
  %1367 = load ptr, ptr %20, align 8, !tbaa !5
  %1368 = load i32, ptr %50, align 4, !tbaa !9
  %1369 = load i32, ptr %50, align 4, !tbaa !9
  %1370 = sub nsw i32 %1369, 1
  %1371 = load i32, ptr %35, align 4, !tbaa !9
  %1372 = mul nsw i32 %1370, %1371
  %1373 = add nsw i32 %1368, %1372
  %1374 = sext i32 %1373 to i64
  %1375 = getelementptr inbounds float, ptr %1367, i64 %1374
  %1376 = load float, ptr %1375, align 4, !tbaa !11
  store float %1376, ptr %64, align 4, !tbaa !11
  %1377 = load ptr, ptr %26, align 8, !tbaa !5
  %1378 = load i32, ptr %50, align 4, !tbaa !9
  %1379 = load i32, ptr %50, align 4, !tbaa !9
  %1380 = load i32, ptr %33, align 4, !tbaa !9
  %1381 = mul nsw i32 %1379, %1380
  %1382 = add nsw i32 %1378, %1381
  %1383 = sext i32 %1382 to i64
  %1384 = getelementptr inbounds float, ptr %1377, i64 %1383
  %1385 = load ptr, ptr %26, align 8, !tbaa !5
  %1386 = load i32, ptr %50, align 4, !tbaa !9
  %1387 = add nsw i32 %1386, 1
  %1388 = load i32, ptr %50, align 4, !tbaa !9
  %1389 = load i32, ptr %33, align 4, !tbaa !9
  %1390 = mul nsw i32 %1388, %1389
  %1391 = add nsw i32 %1387, %1390
  %1392 = sext i32 %1391 to i64
  %1393 = getelementptr inbounds float, ptr %1385, i64 %1392
  %1394 = call float @slapy2_(ptr noundef %1384, ptr noundef %1393)
  store float %1394, ptr %66, align 4, !tbaa !11
  %1395 = load float, ptr %66, align 4, !tbaa !11
  %1396 = load float, ptr %64, align 4, !tbaa !11
  %1397 = fcmp oge float %1396, 0.000000e+00
  br i1 %1397, label %1398, label %1400

1398:                                             ; preds = %1366
  %1399 = load float, ptr %64, align 4, !tbaa !11
  br label %1403

1400:                                             ; preds = %1366
  %1401 = load float, ptr %64, align 4, !tbaa !11
  %1402 = fneg float %1401
  br label %1403

1403:                                             ; preds = %1400, %1398
  %1404 = phi float [ %1399, %1398 ], [ %1402, %1400 ]
  %1405 = fcmp olt float %1395, %1404
  br i1 %1405, label %1406, label %1573

1406:                                             ; preds = %1403
  %1407 = load ptr, ptr %26, align 8, !tbaa !5
  %1408 = load i32, ptr %50, align 4, !tbaa !9
  %1409 = load i32, ptr %50, align 4, !tbaa !9
  %1410 = load i32, ptr %33, align 4, !tbaa !9
  %1411 = mul nsw i32 %1409, %1410
  %1412 = add nsw i32 %1408, %1411
  %1413 = sext i32 %1412 to i64
  %1414 = getelementptr inbounds float, ptr %1407, i64 %1413
  %1415 = load float, ptr %1414, align 4, !tbaa !11
  %1416 = load float, ptr %64, align 4, !tbaa !11
  %1417 = fdiv float %1415, %1416
  store float %1417, ptr %68, align 4, !tbaa !11
  %1418 = load ptr, ptr %26, align 8, !tbaa !5
  %1419 = load i32, ptr %50, align 4, !tbaa !9
  %1420 = add nsw i32 %1419, 1
  %1421 = load i32, ptr %50, align 4, !tbaa !9
  %1422 = load i32, ptr %33, align 4, !tbaa !9
  %1423 = mul nsw i32 %1421, %1422
  %1424 = add nsw i32 %1420, %1423
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds float, ptr %1418, i64 %1425
  %1427 = load float, ptr %1426, align 4, !tbaa !11
  %1428 = load float, ptr %64, align 4, !tbaa !11
  %1429 = fdiv float %1427, %1428
  store float %1429, ptr %67, align 4, !tbaa !11
  %1430 = load float, ptr %64, align 4, !tbaa !11
  %1431 = load ptr, ptr %26, align 8, !tbaa !5
  %1432 = load i32, ptr %50, align 4, !tbaa !9
  %1433 = load i32, ptr %50, align 4, !tbaa !9
  %1434 = load i32, ptr %33, align 4, !tbaa !9
  %1435 = mul nsw i32 %1433, %1434
  %1436 = add nsw i32 %1432, %1435
  %1437 = sext i32 %1436 to i64
  %1438 = getelementptr inbounds float, ptr %1431, i64 %1437
  store float %1430, ptr %1438, align 4, !tbaa !11
  %1439 = load ptr, ptr %26, align 8, !tbaa !5
  %1440 = load i32, ptr %50, align 4, !tbaa !9
  %1441 = add nsw i32 %1440, 1
  %1442 = load i32, ptr %50, align 4, !tbaa !9
  %1443 = load i32, ptr %33, align 4, !tbaa !9
  %1444 = mul nsw i32 %1442, %1443
  %1445 = add nsw i32 %1441, %1444
  %1446 = sext i32 %1445 to i64
  %1447 = getelementptr inbounds float, ptr %1439, i64 %1446
  store float 0.000000e+00, ptr %1447, align 4, !tbaa !11
  %1448 = load i32, ptr %50, align 4, !tbaa !9
  %1449 = sub nsw i32 %1448, 1
  store i32 %1449, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %1450

1450:                                             ; preds = %1527, %1406
  %1451 = load i32, ptr %49, align 4, !tbaa !9
  %1452 = load i32, ptr %37, align 4, !tbaa !9
  %1453 = icmp sle i32 %1451, %1452
  br i1 %1453, label %1454, label %1530

1454:                                             ; preds = %1450
  %1455 = load ptr, ptr %26, align 8, !tbaa !5
  %1456 = load i32, ptr %49, align 4, !tbaa !9
  %1457 = load i32, ptr %50, align 4, !tbaa !9
  %1458 = sub nsw i32 %1457, 1
  %1459 = load i32, ptr %33, align 4, !tbaa !9
  %1460 = mul nsw i32 %1458, %1459
  %1461 = add nsw i32 %1456, %1460
  %1462 = sext i32 %1461 to i64
  %1463 = getelementptr inbounds float, ptr %1455, i64 %1462
  %1464 = load float, ptr %1463, align 4, !tbaa !11
  store float %1464, ptr %46, align 4, !tbaa !11
  %1465 = load ptr, ptr %26, align 8, !tbaa !5
  %1466 = load i32, ptr %49, align 4, !tbaa !9
  %1467 = load i32, ptr %50, align 4, !tbaa !9
  %1468 = load i32, ptr %33, align 4, !tbaa !9
  %1469 = mul nsw i32 %1467, %1468
  %1470 = add nsw i32 %1466, %1469
  %1471 = sext i32 %1470 to i64
  %1472 = getelementptr inbounds float, ptr %1465, i64 %1471
  %1473 = load float, ptr %1472, align 4, !tbaa !11
  %1474 = load float, ptr %68, align 4, !tbaa !11
  %1475 = load float, ptr %46, align 4, !tbaa !11
  %1476 = fneg float %1474
  %1477 = call float @llvm.fmuladd.f32(float %1476, float %1475, float %1473)
  %1478 = load ptr, ptr %26, align 8, !tbaa !5
  %1479 = load i32, ptr %49, align 4, !tbaa !9
  %1480 = load i32, ptr %50, align 4, !tbaa !9
  %1481 = sub nsw i32 %1480, 1
  %1482 = load i32, ptr %33, align 4, !tbaa !9
  %1483 = mul nsw i32 %1481, %1482
  %1484 = add nsw i32 %1479, %1483
  %1485 = sext i32 %1484 to i64
  %1486 = getelementptr inbounds float, ptr %1478, i64 %1485
  store float %1477, ptr %1486, align 4, !tbaa !11
  %1487 = load ptr, ptr %26, align 8, !tbaa !5
  %1488 = load i32, ptr %50, align 4, !tbaa !9
  %1489 = add nsw i32 %1488, 1
  %1490 = load i32, ptr %49, align 4, !tbaa !9
  %1491 = load i32, ptr %33, align 4, !tbaa !9
  %1492 = mul nsw i32 %1490, %1491
  %1493 = add nsw i32 %1489, %1492
  %1494 = sext i32 %1493 to i64
  %1495 = getelementptr inbounds float, ptr %1487, i64 %1494
  %1496 = load float, ptr %1495, align 4, !tbaa !11
  %1497 = load float, ptr %67, align 4, !tbaa !11
  %1498 = load float, ptr %46, align 4, !tbaa !11
  %1499 = fneg float %1497
  %1500 = call float @llvm.fmuladd.f32(float %1499, float %1498, float %1496)
  %1501 = load ptr, ptr %26, align 8, !tbaa !5
  %1502 = load i32, ptr %50, align 4, !tbaa !9
  %1503 = load i32, ptr %49, align 4, !tbaa !9
  %1504 = load i32, ptr %33, align 4, !tbaa !9
  %1505 = mul nsw i32 %1503, %1504
  %1506 = add nsw i32 %1502, %1505
  %1507 = sext i32 %1506 to i64
  %1508 = getelementptr inbounds float, ptr %1501, i64 %1507
  store float %1500, ptr %1508, align 4, !tbaa !11
  %1509 = load float, ptr %46, align 4, !tbaa !11
  %1510 = load ptr, ptr %26, align 8, !tbaa !5
  %1511 = load i32, ptr %49, align 4, !tbaa !9
  %1512 = load i32, ptr %50, align 4, !tbaa !9
  %1513 = load i32, ptr %33, align 4, !tbaa !9
  %1514 = mul nsw i32 %1512, %1513
  %1515 = add nsw i32 %1511, %1514
  %1516 = sext i32 %1515 to i64
  %1517 = getelementptr inbounds float, ptr %1510, i64 %1516
  store float %1509, ptr %1517, align 4, !tbaa !11
  %1518 = load ptr, ptr %26, align 8, !tbaa !5
  %1519 = load i32, ptr %50, align 4, !tbaa !9
  %1520 = add nsw i32 %1519, 1
  %1521 = load i32, ptr %49, align 4, !tbaa !9
  %1522 = load i32, ptr %33, align 4, !tbaa !9
  %1523 = mul nsw i32 %1521, %1522
  %1524 = add nsw i32 %1520, %1523
  %1525 = sext i32 %1524 to i64
  %1526 = getelementptr inbounds float, ptr %1518, i64 %1525
  store float 0.000000e+00, ptr %1526, align 4, !tbaa !11
  br label %1527

1527:                                             ; preds = %1454
  %1528 = load i32, ptr %49, align 4, !tbaa !9
  %1529 = add nsw i32 %1528, 1
  store i32 %1529, ptr %49, align 4, !tbaa !9
  br label %1450, !llvm.loop !32

1530:                                             ; preds = %1450
  %1531 = load ptr, ptr %23, align 8, !tbaa !5
  %1532 = load float, ptr %1531, align 4, !tbaa !11
  %1533 = load ptr, ptr %26, align 8, !tbaa !5
  %1534 = load i32, ptr %50, align 4, !tbaa !9
  %1535 = add nsw i32 %1534, 1
  %1536 = load i32, ptr %50, align 4, !tbaa !9
  %1537 = sub nsw i32 %1536, 1
  %1538 = load i32, ptr %33, align 4, !tbaa !9
  %1539 = mul nsw i32 %1537, %1538
  %1540 = add nsw i32 %1535, %1539
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds float, ptr %1533, i64 %1541
  store float %1532, ptr %1542, align 4, !tbaa !11
  %1543 = load float, ptr %67, align 4, !tbaa !11
  %1544 = load ptr, ptr %23, align 8, !tbaa !5
  %1545 = load float, ptr %1544, align 4, !tbaa !11
  %1546 = load ptr, ptr %26, align 8, !tbaa !5
  %1547 = load i32, ptr %50, align 4, !tbaa !9
  %1548 = sub nsw i32 %1547, 1
  %1549 = load i32, ptr %50, align 4, !tbaa !9
  %1550 = sub nsw i32 %1549, 1
  %1551 = load i32, ptr %33, align 4, !tbaa !9
  %1552 = mul nsw i32 %1550, %1551
  %1553 = add nsw i32 %1548, %1552
  %1554 = sext i32 %1553 to i64
  %1555 = getelementptr inbounds float, ptr %1546, i64 %1554
  %1556 = load float, ptr %1555, align 4, !tbaa !11
  %1557 = call float @llvm.fmuladd.f32(float %1543, float %1545, float %1556)
  store float %1557, ptr %1555, align 4, !tbaa !11
  %1558 = load float, ptr %68, align 4, !tbaa !11
  %1559 = load ptr, ptr %23, align 8, !tbaa !5
  %1560 = load float, ptr %1559, align 4, !tbaa !11
  %1561 = load ptr, ptr %26, align 8, !tbaa !5
  %1562 = load i32, ptr %50, align 4, !tbaa !9
  %1563 = load i32, ptr %50, align 4, !tbaa !9
  %1564 = sub nsw i32 %1563, 1
  %1565 = load i32, ptr %33, align 4, !tbaa !9
  %1566 = mul nsw i32 %1564, %1565
  %1567 = add nsw i32 %1562, %1566
  %1568 = sext i32 %1567 to i64
  %1569 = getelementptr inbounds float, ptr %1561, i64 %1568
  %1570 = load float, ptr %1569, align 4, !tbaa !11
  %1571 = fneg float %1558
  %1572 = call float @llvm.fmuladd.f32(float %1571, float %1560, float %1570)
  store float %1572, ptr %1569, align 4, !tbaa !11
  br label %1728

1573:                                             ; preds = %1403
  %1574 = load float, ptr %66, align 4, !tbaa !11
  %1575 = fcmp oeq float %1574, 0.000000e+00
  br i1 %1575, label %1576, label %1598

1576:                                             ; preds = %1573
  %1577 = load ptr, ptr %29, align 8, !tbaa !5
  %1578 = load float, ptr %1577, align 4, !tbaa !11
  %1579 = load ptr, ptr %26, align 8, !tbaa !5
  %1580 = load i32, ptr %50, align 4, !tbaa !9
  %1581 = load i32, ptr %50, align 4, !tbaa !9
  %1582 = load i32, ptr %33, align 4, !tbaa !9
  %1583 = mul nsw i32 %1581, %1582
  %1584 = add nsw i32 %1580, %1583
  %1585 = sext i32 %1584 to i64
  %1586 = getelementptr inbounds float, ptr %1579, i64 %1585
  store float %1578, ptr %1586, align 4, !tbaa !11
  %1587 = load ptr, ptr %26, align 8, !tbaa !5
  %1588 = load i32, ptr %50, align 4, !tbaa !9
  %1589 = add nsw i32 %1588, 1
  %1590 = load i32, ptr %50, align 4, !tbaa !9
  %1591 = load i32, ptr %33, align 4, !tbaa !9
  %1592 = mul nsw i32 %1590, %1591
  %1593 = add nsw i32 %1589, %1592
  %1594 = sext i32 %1593 to i64
  %1595 = getelementptr inbounds float, ptr %1587, i64 %1594
  store float 0.000000e+00, ptr %1595, align 4, !tbaa !11
  %1596 = load ptr, ptr %29, align 8, !tbaa !5
  %1597 = load float, ptr %1596, align 4, !tbaa !11
  store float %1597, ptr %66, align 4, !tbaa !11
  br label %1598

1598:                                             ; preds = %1576, %1573
  %1599 = load float, ptr %64, align 4, !tbaa !11
  %1600 = load float, ptr %66, align 4, !tbaa !11
  %1601 = fdiv float %1599, %1600
  %1602 = load float, ptr %66, align 4, !tbaa !11
  %1603 = fdiv float %1601, %1602
  store float %1603, ptr %64, align 4, !tbaa !11
  %1604 = load ptr, ptr %26, align 8, !tbaa !5
  %1605 = load i32, ptr %50, align 4, !tbaa !9
  %1606 = load i32, ptr %50, align 4, !tbaa !9
  %1607 = load i32, ptr %33, align 4, !tbaa !9
  %1608 = mul nsw i32 %1606, %1607
  %1609 = add nsw i32 %1605, %1608
  %1610 = sext i32 %1609 to i64
  %1611 = getelementptr inbounds float, ptr %1604, i64 %1610
  %1612 = load float, ptr %1611, align 4, !tbaa !11
  %1613 = load float, ptr %64, align 4, !tbaa !11
  %1614 = fmul float %1612, %1613
  store float %1614, ptr %68, align 4, !tbaa !11
  %1615 = load ptr, ptr %26, align 8, !tbaa !5
  %1616 = load i32, ptr %50, align 4, !tbaa !9
  %1617 = add nsw i32 %1616, 1
  %1618 = load i32, ptr %50, align 4, !tbaa !9
  %1619 = load i32, ptr %33, align 4, !tbaa !9
  %1620 = mul nsw i32 %1618, %1619
  %1621 = add nsw i32 %1617, %1620
  %1622 = sext i32 %1621 to i64
  %1623 = getelementptr inbounds float, ptr %1615, i64 %1622
  %1624 = load float, ptr %1623, align 4, !tbaa !11
  %1625 = fneg float %1624
  %1626 = load float, ptr %64, align 4, !tbaa !11
  %1627 = fmul float %1625, %1626
  store float %1627, ptr %67, align 4, !tbaa !11
  %1628 = load i32, ptr %50, align 4, !tbaa !9
  %1629 = sub nsw i32 %1628, 1
  store i32 %1629, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %1630

1630:                                             ; preds = %1711, %1598
  %1631 = load i32, ptr %49, align 4, !tbaa !9
  %1632 = load i32, ptr %37, align 4, !tbaa !9
  %1633 = icmp sle i32 %1631, %1632
  br i1 %1633, label %1634, label %1714

1634:                                             ; preds = %1630
  %1635 = load ptr, ptr %26, align 8, !tbaa !5
  %1636 = load i32, ptr %49, align 4, !tbaa !9
  %1637 = load i32, ptr %50, align 4, !tbaa !9
  %1638 = sub nsw i32 %1637, 1
  %1639 = load i32, ptr %33, align 4, !tbaa !9
  %1640 = mul nsw i32 %1638, %1639
  %1641 = add nsw i32 %1636, %1640
  %1642 = sext i32 %1641 to i64
  %1643 = getelementptr inbounds float, ptr %1635, i64 %1642
  %1644 = load float, ptr %1643, align 4, !tbaa !11
  %1645 = load float, ptr %68, align 4, !tbaa !11
  %1646 = load ptr, ptr %26, align 8, !tbaa !5
  %1647 = load i32, ptr %49, align 4, !tbaa !9
  %1648 = load i32, ptr %50, align 4, !tbaa !9
  %1649 = load i32, ptr %33, align 4, !tbaa !9
  %1650 = mul nsw i32 %1648, %1649
  %1651 = add nsw i32 %1647, %1650
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds float, ptr %1646, i64 %1652
  %1654 = load float, ptr %1653, align 4, !tbaa !11
  %1655 = fneg float %1645
  %1656 = call float @llvm.fmuladd.f32(float %1655, float %1654, float %1644)
  %1657 = load float, ptr %67, align 4, !tbaa !11
  %1658 = load ptr, ptr %26, align 8, !tbaa !5
  %1659 = load i32, ptr %50, align 4, !tbaa !9
  %1660 = add nsw i32 %1659, 1
  %1661 = load i32, ptr %49, align 4, !tbaa !9
  %1662 = load i32, ptr %33, align 4, !tbaa !9
  %1663 = mul nsw i32 %1661, %1662
  %1664 = add nsw i32 %1660, %1663
  %1665 = sext i32 %1664 to i64
  %1666 = getelementptr inbounds float, ptr %1658, i64 %1665
  %1667 = load float, ptr %1666, align 4, !tbaa !11
  %1668 = call float @llvm.fmuladd.f32(float %1657, float %1667, float %1656)
  %1669 = load ptr, ptr %26, align 8, !tbaa !5
  %1670 = load i32, ptr %49, align 4, !tbaa !9
  %1671 = load i32, ptr %50, align 4, !tbaa !9
  %1672 = sub nsw i32 %1671, 1
  %1673 = load i32, ptr %33, align 4, !tbaa !9
  %1674 = mul nsw i32 %1672, %1673
  %1675 = add nsw i32 %1670, %1674
  %1676 = sext i32 %1675 to i64
  %1677 = getelementptr inbounds float, ptr %1669, i64 %1676
  store float %1668, ptr %1677, align 4, !tbaa !11
  %1678 = load float, ptr %68, align 4, !tbaa !11
  %1679 = fneg float %1678
  %1680 = load ptr, ptr %26, align 8, !tbaa !5
  %1681 = load i32, ptr %50, align 4, !tbaa !9
  %1682 = add nsw i32 %1681, 1
  %1683 = load i32, ptr %49, align 4, !tbaa !9
  %1684 = load i32, ptr %33, align 4, !tbaa !9
  %1685 = mul nsw i32 %1683, %1684
  %1686 = add nsw i32 %1682, %1685
  %1687 = sext i32 %1686 to i64
  %1688 = getelementptr inbounds float, ptr %1680, i64 %1687
  %1689 = load float, ptr %1688, align 4, !tbaa !11
  %1690 = load float, ptr %67, align 4, !tbaa !11
  %1691 = load ptr, ptr %26, align 8, !tbaa !5
  %1692 = load i32, ptr %49, align 4, !tbaa !9
  %1693 = load i32, ptr %50, align 4, !tbaa !9
  %1694 = load i32, ptr %33, align 4, !tbaa !9
  %1695 = mul nsw i32 %1693, %1694
  %1696 = add nsw i32 %1692, %1695
  %1697 = sext i32 %1696 to i64
  %1698 = getelementptr inbounds float, ptr %1691, i64 %1697
  %1699 = load float, ptr %1698, align 4, !tbaa !11
  %1700 = fmul float %1690, %1699
  %1701 = fneg float %1700
  %1702 = call float @llvm.fmuladd.f32(float %1679, float %1689, float %1701)
  %1703 = load ptr, ptr %26, align 8, !tbaa !5
  %1704 = load i32, ptr %50, align 4, !tbaa !9
  %1705 = load i32, ptr %49, align 4, !tbaa !9
  %1706 = load i32, ptr %33, align 4, !tbaa !9
  %1707 = mul nsw i32 %1705, %1706
  %1708 = add nsw i32 %1704, %1707
  %1709 = sext i32 %1708 to i64
  %1710 = getelementptr inbounds float, ptr %1703, i64 %1709
  store float %1702, ptr %1710, align 4, !tbaa !11
  br label %1711

1711:                                             ; preds = %1634
  %1712 = load i32, ptr %49, align 4, !tbaa !9
  %1713 = add nsw i32 %1712, 1
  store i32 %1713, ptr %49, align 4, !tbaa !9
  br label %1630, !llvm.loop !33

1714:                                             ; preds = %1630
  %1715 = load ptr, ptr %23, align 8, !tbaa !5
  %1716 = load float, ptr %1715, align 4, !tbaa !11
  %1717 = load ptr, ptr %26, align 8, !tbaa !5
  %1718 = load i32, ptr %50, align 4, !tbaa !9
  %1719 = load i32, ptr %50, align 4, !tbaa !9
  %1720 = sub nsw i32 %1719, 1
  %1721 = load i32, ptr %33, align 4, !tbaa !9
  %1722 = mul nsw i32 %1720, %1721
  %1723 = add nsw i32 %1718, %1722
  %1724 = sext i32 %1723 to i64
  %1725 = getelementptr inbounds float, ptr %1717, i64 %1724
  %1726 = load float, ptr %1725, align 4, !tbaa !11
  %1727 = fadd float %1726, %1716
  store float %1727, ptr %1725, align 4, !tbaa !11
  br label %1728

1728:                                             ; preds = %1714, %1530
  %1729 = load i32, ptr %50, align 4, !tbaa !9
  %1730 = sub nsw i32 %1729, 1
  store i32 %1730, ptr %37, align 4, !tbaa !9
  %1731 = load i32, ptr %50, align 4, !tbaa !9
  %1732 = sub nsw i32 %1731, 1
  store i32 %1732, ptr %38, align 4, !tbaa !9
  %1733 = load ptr, ptr %26, align 8, !tbaa !5
  %1734 = load i32, ptr %50, align 4, !tbaa !9
  %1735 = load i32, ptr %33, align 4, !tbaa !9
  %1736 = mul nsw i32 %1734, %1735
  %1737 = add nsw i32 %1736, 1
  %1738 = sext i32 %1737 to i64
  %1739 = getelementptr inbounds float, ptr %1733, i64 %1738
  %1740 = call float @sasum_(ptr noundef %37, ptr noundef %1739, ptr noundef @c__1)
  %1741 = load ptr, ptr %26, align 8, !tbaa !5
  %1742 = load i32, ptr %50, align 4, !tbaa !9
  %1743 = add nsw i32 %1742, 1
  %1744 = load i32, ptr %33, align 4, !tbaa !9
  %1745 = add nsw i32 %1743, %1744
  %1746 = sext i32 %1745 to i64
  %1747 = getelementptr inbounds float, ptr %1741, i64 %1746
  %1748 = load ptr, ptr %27, align 8, !tbaa !5
  %1749 = call float @sasum_(ptr noundef %38, ptr noundef %1747, ptr noundef %1748)
  %1750 = fadd float %1740, %1749
  %1751 = load ptr, ptr %28, align 8, !tbaa !5
  %1752 = load i32, ptr %50, align 4, !tbaa !9
  %1753 = sext i32 %1752 to i64
  %1754 = getelementptr inbounds float, ptr %1751, i64 %1753
  store float %1750, ptr %1754, align 4, !tbaa !11
  br label %1755

1755:                                             ; preds = %1728
  %1756 = load i32, ptr %50, align 4, !tbaa !9
  %1757 = add nsw i32 %1756, -1
  store i32 %1757, ptr %50, align 4, !tbaa !9
  br label %1363, !llvm.loop !34

1758:                                             ; preds = %1363
  %1759 = load ptr, ptr %26, align 8, !tbaa !5
  %1760 = load i32, ptr %33, align 4, !tbaa !9
  %1761 = add nsw i32 %1760, 1
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds float, ptr %1759, i64 %1762
  %1764 = load float, ptr %1763, align 4, !tbaa !11
  %1765 = fcmp oeq float %1764, 0.000000e+00
  br i1 %1765, label %1766, label %1782

1766:                                             ; preds = %1758
  %1767 = load ptr, ptr %26, align 8, !tbaa !5
  %1768 = load i32, ptr %33, align 4, !tbaa !9
  %1769 = add nsw i32 %1768, 2
  %1770 = sext i32 %1769 to i64
  %1771 = getelementptr inbounds float, ptr %1767, i64 %1770
  %1772 = load float, ptr %1771, align 4, !tbaa !11
  %1773 = fcmp oeq float %1772, 0.000000e+00
  br i1 %1773, label %1774, label %1782

1774:                                             ; preds = %1766
  %1775 = load ptr, ptr %29, align 8, !tbaa !5
  %1776 = load float, ptr %1775, align 4, !tbaa !11
  %1777 = load ptr, ptr %26, align 8, !tbaa !5
  %1778 = load i32, ptr %33, align 4, !tbaa !9
  %1779 = add nsw i32 %1778, 1
  %1780 = sext i32 %1779 to i64
  %1781 = getelementptr inbounds float, ptr %1777, i64 %1780
  store float %1776, ptr %1781, align 4, !tbaa !11
  br label %1782

1782:                                             ; preds = %1774, %1766, %1758
  %1783 = load ptr, ptr %28, align 8, !tbaa !5
  %1784 = getelementptr inbounds float, ptr %1783, i64 1
  store float 0.000000e+00, ptr %1784, align 4, !tbaa !11
  store i32 1, ptr %57, align 4, !tbaa !9
  %1785 = load ptr, ptr %19, align 8, !tbaa !5
  %1786 = load i32, ptr %1785, align 4, !tbaa !9
  store i32 %1786, ptr %58, align 4, !tbaa !9
  store i32 1, ptr %59, align 4, !tbaa !9
  br label %1787

1787:                                             ; preds = %1782, %1317
  %1788 = load ptr, ptr %19, align 8, !tbaa !5
  %1789 = load i32, ptr %1788, align 4, !tbaa !9
  store i32 %1789, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1790

1790:                                             ; preds = %2275, %1787
  %1791 = load i32, ptr %73, align 4, !tbaa !9
  %1792 = load i32, ptr %37, align 4, !tbaa !9
  %1793 = icmp sle i32 %1791, %1792
  br i1 %1793, label %1794, label %2278

1794:                                             ; preds = %1790
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  store float 1.000000e+00, ptr %48, align 4, !tbaa !11
  %1795 = load ptr, ptr %31, align 8, !tbaa !5
  %1796 = load float, ptr %1795, align 4, !tbaa !11
  store float %1796, ptr %56, align 4, !tbaa !11
  %1797 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %1797, ptr %38, align 4, !tbaa !9
  %1798 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %1798, ptr %39, align 4, !tbaa !9
  %1799 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %1799, ptr %49, align 4, !tbaa !9
  br label %1800

1800:                                             ; preds = %2209, %1794
  %1801 = load i32, ptr %39, align 4, !tbaa !9
  %1802 = icmp slt i32 %1801, 0
  br i1 %1802, label %1803, label %1808

1803:                                             ; preds = %1800
  %1804 = load i32, ptr %49, align 4, !tbaa !9
  %1805 = load i32, ptr %38, align 4, !tbaa !9
  %1806 = icmp sge i32 %1804, %1805
  %1807 = zext i1 %1806 to i32
  br label %1813

1808:                                             ; preds = %1800
  %1809 = load i32, ptr %49, align 4, !tbaa !9
  %1810 = load i32, ptr %38, align 4, !tbaa !9
  %1811 = icmp sle i32 %1809, %1810
  %1812 = zext i1 %1811 to i32
  br label %1813

1813:                                             ; preds = %1808, %1803
  %1814 = phi i32 [ %1807, %1803 ], [ %1812, %1808 ]
  %1815 = icmp ne i32 %1814, 0
  br i1 %1815, label %1816, label %2213

1816:                                             ; preds = %1813
  %1817 = load ptr, ptr %28, align 8, !tbaa !5
  %1818 = load i32, ptr %49, align 4, !tbaa !9
  %1819 = sext i32 %1818 to i64
  %1820 = getelementptr inbounds float, ptr %1817, i64 %1819
  %1821 = load float, ptr %1820, align 4, !tbaa !11
  %1822 = load float, ptr %56, align 4, !tbaa !11
  %1823 = fcmp ogt float %1821, %1822
  br i1 %1823, label %1824, label %1838

1824:                                             ; preds = %1816
  %1825 = load float, ptr %48, align 4, !tbaa !11
  %1826 = fdiv float 1.000000e+00, %1825
  store float %1826, ptr %72, align 4, !tbaa !11
  %1827 = load ptr, ptr %19, align 8, !tbaa !5
  %1828 = load ptr, ptr %24, align 8, !tbaa !5
  %1829 = getelementptr inbounds float, ptr %1828, i64 1
  call void @sscal_(ptr noundef %1827, ptr noundef %72, ptr noundef %1829, ptr noundef @c__1)
  %1830 = load ptr, ptr %19, align 8, !tbaa !5
  %1831 = load ptr, ptr %25, align 8, !tbaa !5
  %1832 = getelementptr inbounds float, ptr %1831, i64 1
  call void @sscal_(ptr noundef %1830, ptr noundef %72, ptr noundef %1832, ptr noundef @c__1)
  %1833 = load float, ptr %72, align 4, !tbaa !11
  %1834 = load float, ptr %51, align 4, !tbaa !11
  %1835 = fmul float %1834, %1833
  store float %1835, ptr %51, align 4, !tbaa !11
  store float 1.000000e+00, ptr %48, align 4, !tbaa !11
  %1836 = load ptr, ptr %31, align 8, !tbaa !5
  %1837 = load float, ptr %1836, align 4, !tbaa !11
  store float %1837, ptr %56, align 4, !tbaa !11
  br label %1838

1838:                                             ; preds = %1824, %1816
  %1839 = load ptr, ptr %24, align 8, !tbaa !5
  %1840 = load i32, ptr %49, align 4, !tbaa !9
  %1841 = sext i32 %1840 to i64
  %1842 = getelementptr inbounds float, ptr %1839, i64 %1841
  %1843 = load float, ptr %1842, align 4, !tbaa !11
  store float %1843, ptr %68, align 4, !tbaa !11
  %1844 = load ptr, ptr %25, align 8, !tbaa !5
  %1845 = load i32, ptr %49, align 4, !tbaa !9
  %1846 = sext i32 %1845 to i64
  %1847 = getelementptr inbounds float, ptr %1844, i64 %1846
  %1848 = load float, ptr %1847, align 4, !tbaa !11
  store float %1848, ptr %67, align 4, !tbaa !11
  %1849 = load ptr, ptr %17, align 8, !tbaa !5
  %1850 = load i32, ptr %1849, align 4, !tbaa !9
  %1851 = icmp ne i32 %1850, 0
  br i1 %1851, label %1852, label %1933

1852:                                             ; preds = %1838
  %1853 = load ptr, ptr %19, align 8, !tbaa !5
  %1854 = load i32, ptr %1853, align 4, !tbaa !9
  store i32 %1854, ptr %40, align 4, !tbaa !9
  %1855 = load i32, ptr %49, align 4, !tbaa !9
  %1856 = add nsw i32 %1855, 1
  store i32 %1856, ptr %50, align 4, !tbaa !9
  br label %1857

1857:                                             ; preds = %1929, %1852
  %1858 = load i32, ptr %50, align 4, !tbaa !9
  %1859 = load i32, ptr %40, align 4, !tbaa !9
  %1860 = icmp sle i32 %1858, %1859
  br i1 %1860, label %1861, label %1932

1861:                                             ; preds = %1857
  %1862 = load float, ptr %68, align 4, !tbaa !11
  %1863 = load ptr, ptr %26, align 8, !tbaa !5
  %1864 = load i32, ptr %49, align 4, !tbaa !9
  %1865 = load i32, ptr %50, align 4, !tbaa !9
  %1866 = load i32, ptr %33, align 4, !tbaa !9
  %1867 = mul nsw i32 %1865, %1866
  %1868 = add nsw i32 %1864, %1867
  %1869 = sext i32 %1868 to i64
  %1870 = getelementptr inbounds float, ptr %1863, i64 %1869
  %1871 = load float, ptr %1870, align 4, !tbaa !11
  %1872 = load ptr, ptr %24, align 8, !tbaa !5
  %1873 = load i32, ptr %50, align 4, !tbaa !9
  %1874 = sext i32 %1873 to i64
  %1875 = getelementptr inbounds float, ptr %1872, i64 %1874
  %1876 = load float, ptr %1875, align 4, !tbaa !11
  %1877 = fneg float %1871
  %1878 = call float @llvm.fmuladd.f32(float %1877, float %1876, float %1862)
  %1879 = load ptr, ptr %26, align 8, !tbaa !5
  %1880 = load i32, ptr %50, align 4, !tbaa !9
  %1881 = add nsw i32 %1880, 1
  %1882 = load i32, ptr %49, align 4, !tbaa !9
  %1883 = load i32, ptr %33, align 4, !tbaa !9
  %1884 = mul nsw i32 %1882, %1883
  %1885 = add nsw i32 %1881, %1884
  %1886 = sext i32 %1885 to i64
  %1887 = getelementptr inbounds float, ptr %1879, i64 %1886
  %1888 = load float, ptr %1887, align 4, !tbaa !11
  %1889 = load ptr, ptr %25, align 8, !tbaa !5
  %1890 = load i32, ptr %50, align 4, !tbaa !9
  %1891 = sext i32 %1890 to i64
  %1892 = getelementptr inbounds float, ptr %1889, i64 %1891
  %1893 = load float, ptr %1892, align 4, !tbaa !11
  %1894 = call float @llvm.fmuladd.f32(float %1888, float %1893, float %1878)
  store float %1894, ptr %68, align 4, !tbaa !11
  %1895 = load float, ptr %67, align 4, !tbaa !11
  %1896 = load ptr, ptr %26, align 8, !tbaa !5
  %1897 = load i32, ptr %49, align 4, !tbaa !9
  %1898 = load i32, ptr %50, align 4, !tbaa !9
  %1899 = load i32, ptr %33, align 4, !tbaa !9
  %1900 = mul nsw i32 %1898, %1899
  %1901 = add nsw i32 %1897, %1900
  %1902 = sext i32 %1901 to i64
  %1903 = getelementptr inbounds float, ptr %1896, i64 %1902
  %1904 = load float, ptr %1903, align 4, !tbaa !11
  %1905 = load ptr, ptr %25, align 8, !tbaa !5
  %1906 = load i32, ptr %50, align 4, !tbaa !9
  %1907 = sext i32 %1906 to i64
  %1908 = getelementptr inbounds float, ptr %1905, i64 %1907
  %1909 = load float, ptr %1908, align 4, !tbaa !11
  %1910 = fneg float %1904
  %1911 = call float @llvm.fmuladd.f32(float %1910, float %1909, float %1895)
  %1912 = load ptr, ptr %26, align 8, !tbaa !5
  %1913 = load i32, ptr %50, align 4, !tbaa !9
  %1914 = add nsw i32 %1913, 1
  %1915 = load i32, ptr %49, align 4, !tbaa !9
  %1916 = load i32, ptr %33, align 4, !tbaa !9
  %1917 = mul nsw i32 %1915, %1916
  %1918 = add nsw i32 %1914, %1917
  %1919 = sext i32 %1918 to i64
  %1920 = getelementptr inbounds float, ptr %1912, i64 %1919
  %1921 = load float, ptr %1920, align 4, !tbaa !11
  %1922 = load ptr, ptr %24, align 8, !tbaa !5
  %1923 = load i32, ptr %50, align 4, !tbaa !9
  %1924 = sext i32 %1923 to i64
  %1925 = getelementptr inbounds float, ptr %1922, i64 %1924
  %1926 = load float, ptr %1925, align 4, !tbaa !11
  %1927 = fneg float %1921
  %1928 = call float @llvm.fmuladd.f32(float %1927, float %1926, float %1911)
  store float %1928, ptr %67, align 4, !tbaa !11
  br label %1929

1929:                                             ; preds = %1861
  %1930 = load i32, ptr %50, align 4, !tbaa !9
  %1931 = add nsw i32 %1930, 1
  store i32 %1931, ptr %50, align 4, !tbaa !9
  br label %1857, !llvm.loop !35

1932:                                             ; preds = %1857
  br label %2012

1933:                                             ; preds = %1838
  %1934 = load i32, ptr %49, align 4, !tbaa !9
  %1935 = sub nsw i32 %1934, 1
  store i32 %1935, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %1936

1936:                                             ; preds = %2008, %1933
  %1937 = load i32, ptr %50, align 4, !tbaa !9
  %1938 = load i32, ptr %40, align 4, !tbaa !9
  %1939 = icmp sle i32 %1937, %1938
  br i1 %1939, label %1940, label %2011

1940:                                             ; preds = %1936
  %1941 = load float, ptr %68, align 4, !tbaa !11
  %1942 = load ptr, ptr %26, align 8, !tbaa !5
  %1943 = load i32, ptr %50, align 4, !tbaa !9
  %1944 = load i32, ptr %49, align 4, !tbaa !9
  %1945 = load i32, ptr %33, align 4, !tbaa !9
  %1946 = mul nsw i32 %1944, %1945
  %1947 = add nsw i32 %1943, %1946
  %1948 = sext i32 %1947 to i64
  %1949 = getelementptr inbounds float, ptr %1942, i64 %1948
  %1950 = load float, ptr %1949, align 4, !tbaa !11
  %1951 = load ptr, ptr %24, align 8, !tbaa !5
  %1952 = load i32, ptr %50, align 4, !tbaa !9
  %1953 = sext i32 %1952 to i64
  %1954 = getelementptr inbounds float, ptr %1951, i64 %1953
  %1955 = load float, ptr %1954, align 4, !tbaa !11
  %1956 = fneg float %1950
  %1957 = call float @llvm.fmuladd.f32(float %1956, float %1955, float %1941)
  %1958 = load ptr, ptr %26, align 8, !tbaa !5
  %1959 = load i32, ptr %49, align 4, !tbaa !9
  %1960 = add nsw i32 %1959, 1
  %1961 = load i32, ptr %50, align 4, !tbaa !9
  %1962 = load i32, ptr %33, align 4, !tbaa !9
  %1963 = mul nsw i32 %1961, %1962
  %1964 = add nsw i32 %1960, %1963
  %1965 = sext i32 %1964 to i64
  %1966 = getelementptr inbounds float, ptr %1958, i64 %1965
  %1967 = load float, ptr %1966, align 4, !tbaa !11
  %1968 = load ptr, ptr %25, align 8, !tbaa !5
  %1969 = load i32, ptr %50, align 4, !tbaa !9
  %1970 = sext i32 %1969 to i64
  %1971 = getelementptr inbounds float, ptr %1968, i64 %1970
  %1972 = load float, ptr %1971, align 4, !tbaa !11
  %1973 = call float @llvm.fmuladd.f32(float %1967, float %1972, float %1957)
  store float %1973, ptr %68, align 4, !tbaa !11
  %1974 = load float, ptr %67, align 4, !tbaa !11
  %1975 = load ptr, ptr %26, align 8, !tbaa !5
  %1976 = load i32, ptr %50, align 4, !tbaa !9
  %1977 = load i32, ptr %49, align 4, !tbaa !9
  %1978 = load i32, ptr %33, align 4, !tbaa !9
  %1979 = mul nsw i32 %1977, %1978
  %1980 = add nsw i32 %1976, %1979
  %1981 = sext i32 %1980 to i64
  %1982 = getelementptr inbounds float, ptr %1975, i64 %1981
  %1983 = load float, ptr %1982, align 4, !tbaa !11
  %1984 = load ptr, ptr %25, align 8, !tbaa !5
  %1985 = load i32, ptr %50, align 4, !tbaa !9
  %1986 = sext i32 %1985 to i64
  %1987 = getelementptr inbounds float, ptr %1984, i64 %1986
  %1988 = load float, ptr %1987, align 4, !tbaa !11
  %1989 = fneg float %1983
  %1990 = call float @llvm.fmuladd.f32(float %1989, float %1988, float %1974)
  %1991 = load ptr, ptr %26, align 8, !tbaa !5
  %1992 = load i32, ptr %49, align 4, !tbaa !9
  %1993 = add nsw i32 %1992, 1
  %1994 = load i32, ptr %50, align 4, !tbaa !9
  %1995 = load i32, ptr %33, align 4, !tbaa !9
  %1996 = mul nsw i32 %1994, %1995
  %1997 = add nsw i32 %1993, %1996
  %1998 = sext i32 %1997 to i64
  %1999 = getelementptr inbounds float, ptr %1991, i64 %1998
  %2000 = load float, ptr %1999, align 4, !tbaa !11
  %2001 = load ptr, ptr %24, align 8, !tbaa !5
  %2002 = load i32, ptr %50, align 4, !tbaa !9
  %2003 = sext i32 %2002 to i64
  %2004 = getelementptr inbounds float, ptr %2001, i64 %2003
  %2005 = load float, ptr %2004, align 4, !tbaa !11
  %2006 = fneg float %2000
  %2007 = call float @llvm.fmuladd.f32(float %2006, float %2005, float %1990)
  store float %2007, ptr %67, align 4, !tbaa !11
  br label %2008

2008:                                             ; preds = %1940
  %2009 = load i32, ptr %50, align 4, !tbaa !9
  %2010 = add nsw i32 %2009, 1
  store i32 %2010, ptr %50, align 4, !tbaa !9
  br label %1936, !llvm.loop !36

2011:                                             ; preds = %1936
  br label %2012

2012:                                             ; preds = %2011, %1932
  %2013 = load ptr, ptr %26, align 8, !tbaa !5
  %2014 = load i32, ptr %49, align 4, !tbaa !9
  %2015 = load i32, ptr %49, align 4, !tbaa !9
  %2016 = load i32, ptr %33, align 4, !tbaa !9
  %2017 = mul nsw i32 %2015, %2016
  %2018 = add nsw i32 %2014, %2017
  %2019 = sext i32 %2018 to i64
  %2020 = getelementptr inbounds float, ptr %2013, i64 %2019
  %2021 = load float, ptr %2020, align 4, !tbaa !11
  store float %2021, ptr %41, align 4, !tbaa !11
  %2022 = load float, ptr %41, align 4, !tbaa !11
  %2023 = fcmp oge float %2022, 0.000000e+00
  br i1 %2023, label %2024, label %2026

2024:                                             ; preds = %2012
  %2025 = load float, ptr %41, align 4, !tbaa !11
  br label %2029

2026:                                             ; preds = %2012
  %2027 = load float, ptr %41, align 4, !tbaa !11
  %2028 = fneg float %2027
  br label %2029

2029:                                             ; preds = %2026, %2024
  %2030 = phi float [ %2025, %2024 ], [ %2028, %2026 ]
  %2031 = load ptr, ptr %26, align 8, !tbaa !5
  %2032 = load i32, ptr %49, align 4, !tbaa !9
  %2033 = add nsw i32 %2032, 1
  %2034 = load i32, ptr %49, align 4, !tbaa !9
  %2035 = load i32, ptr %33, align 4, !tbaa !9
  %2036 = mul nsw i32 %2034, %2035
  %2037 = add nsw i32 %2033, %2036
  %2038 = sext i32 %2037 to i64
  %2039 = getelementptr inbounds float, ptr %2031, i64 %2038
  %2040 = load float, ptr %2039, align 4, !tbaa !11
  store float %2040, ptr %42, align 4, !tbaa !11
  %2041 = load float, ptr %42, align 4, !tbaa !11
  %2042 = fcmp oge float %2041, 0.000000e+00
  br i1 %2042, label %2043, label %2045

2043:                                             ; preds = %2029
  %2044 = load float, ptr %42, align 4, !tbaa !11
  br label %2048

2045:                                             ; preds = %2029
  %2046 = load float, ptr %42, align 4, !tbaa !11
  %2047 = fneg float %2046
  br label %2048

2048:                                             ; preds = %2045, %2043
  %2049 = phi float [ %2044, %2043 ], [ %2047, %2045 ]
  %2050 = fadd float %2030, %2049
  store float %2050, ptr %52, align 4, !tbaa !11
  %2051 = load float, ptr %52, align 4, !tbaa !11
  %2052 = load ptr, ptr %30, align 8, !tbaa !5
  %2053 = load float, ptr %2052, align 4, !tbaa !11
  %2054 = fcmp ogt float %2051, %2053
  br i1 %2054, label %2055, label %2178

2055:                                             ; preds = %2048
  %2056 = load float, ptr %52, align 4, !tbaa !11
  %2057 = fcmp olt float %2056, 1.000000e+00
  br i1 %2057, label %2058, label %2110

2058:                                             ; preds = %2055
  %2059 = load float, ptr %68, align 4, !tbaa !11
  %2060 = fcmp oge float %2059, 0.000000e+00
  br i1 %2060, label %2061, label %2063

2061:                                             ; preds = %2058
  %2062 = load float, ptr %68, align 4, !tbaa !11
  br label %2066

2063:                                             ; preds = %2058
  %2064 = load float, ptr %68, align 4, !tbaa !11
  %2065 = fneg float %2064
  br label %2066

2066:                                             ; preds = %2063, %2061
  %2067 = phi float [ %2062, %2061 ], [ %2065, %2063 ]
  %2068 = load float, ptr %67, align 4, !tbaa !11
  %2069 = fcmp oge float %2068, 0.000000e+00
  br i1 %2069, label %2070, label %2072

2070:                                             ; preds = %2066
  %2071 = load float, ptr %67, align 4, !tbaa !11
  br label %2075

2072:                                             ; preds = %2066
  %2073 = load float, ptr %67, align 4, !tbaa !11
  %2074 = fneg float %2073
  br label %2075

2075:                                             ; preds = %2072, %2070
  %2076 = phi float [ %2071, %2070 ], [ %2074, %2072 ]
  %2077 = fadd float %2067, %2076
  store float %2077, ptr %62, align 4, !tbaa !11
  %2078 = load float, ptr %62, align 4, !tbaa !11
  %2079 = load float, ptr %52, align 4, !tbaa !11
  %2080 = load ptr, ptr %31, align 8, !tbaa !5
  %2081 = load float, ptr %2080, align 4, !tbaa !11
  %2082 = fmul float %2079, %2081
  %2083 = fcmp ogt float %2078, %2082
  br i1 %2083, label %2084, label %2109

2084:                                             ; preds = %2075
  %2085 = load float, ptr %62, align 4, !tbaa !11
  %2086 = fdiv float 1.000000e+00, %2085
  store float %2086, ptr %72, align 4, !tbaa !11
  %2087 = load ptr, ptr %19, align 8, !tbaa !5
  %2088 = load ptr, ptr %24, align 8, !tbaa !5
  %2089 = getelementptr inbounds float, ptr %2088, i64 1
  call void @sscal_(ptr noundef %2087, ptr noundef %72, ptr noundef %2089, ptr noundef @c__1)
  %2090 = load ptr, ptr %19, align 8, !tbaa !5
  %2091 = load ptr, ptr %25, align 8, !tbaa !5
  %2092 = getelementptr inbounds float, ptr %2091, i64 1
  call void @sscal_(ptr noundef %2090, ptr noundef %72, ptr noundef %2092, ptr noundef @c__1)
  %2093 = load ptr, ptr %24, align 8, !tbaa !5
  %2094 = load i32, ptr %49, align 4, !tbaa !9
  %2095 = sext i32 %2094 to i64
  %2096 = getelementptr inbounds float, ptr %2093, i64 %2095
  %2097 = load float, ptr %2096, align 4, !tbaa !11
  store float %2097, ptr %68, align 4, !tbaa !11
  %2098 = load ptr, ptr %25, align 8, !tbaa !5
  %2099 = load i32, ptr %49, align 4, !tbaa !9
  %2100 = sext i32 %2099 to i64
  %2101 = getelementptr inbounds float, ptr %2098, i64 %2100
  %2102 = load float, ptr %2101, align 4, !tbaa !11
  store float %2102, ptr %67, align 4, !tbaa !11
  %2103 = load float, ptr %72, align 4, !tbaa !11
  %2104 = load float, ptr %51, align 4, !tbaa !11
  %2105 = fmul float %2104, %2103
  store float %2105, ptr %51, align 4, !tbaa !11
  %2106 = load float, ptr %72, align 4, !tbaa !11
  %2107 = load float, ptr %48, align 4, !tbaa !11
  %2108 = fmul float %2107, %2106
  store float %2108, ptr %48, align 4, !tbaa !11
  br label %2109

2109:                                             ; preds = %2084, %2075
  br label %2110

2110:                                             ; preds = %2109, %2055
  %2111 = load ptr, ptr %26, align 8, !tbaa !5
  %2112 = load i32, ptr %49, align 4, !tbaa !9
  %2113 = load i32, ptr %49, align 4, !tbaa !9
  %2114 = load i32, ptr %33, align 4, !tbaa !9
  %2115 = mul nsw i32 %2113, %2114
  %2116 = add nsw i32 %2112, %2115
  %2117 = sext i32 %2116 to i64
  %2118 = getelementptr inbounds float, ptr %2111, i64 %2117
  %2119 = load ptr, ptr %26, align 8, !tbaa !5
  %2120 = load i32, ptr %49, align 4, !tbaa !9
  %2121 = add nsw i32 %2120, 1
  %2122 = load i32, ptr %49, align 4, !tbaa !9
  %2123 = load i32, ptr %33, align 4, !tbaa !9
  %2124 = mul nsw i32 %2122, %2123
  %2125 = add nsw i32 %2121, %2124
  %2126 = sext i32 %2125 to i64
  %2127 = getelementptr inbounds float, ptr %2119, i64 %2126
  %2128 = load ptr, ptr %24, align 8, !tbaa !5
  %2129 = load i32, ptr %49, align 4, !tbaa !9
  %2130 = sext i32 %2129 to i64
  %2131 = getelementptr inbounds float, ptr %2128, i64 %2130
  %2132 = load ptr, ptr %25, align 8, !tbaa !5
  %2133 = load i32, ptr %49, align 4, !tbaa !9
  %2134 = sext i32 %2133 to i64
  %2135 = getelementptr inbounds float, ptr %2132, i64 %2134
  call void @sladiv_(ptr noundef %68, ptr noundef %67, ptr noundef %2118, ptr noundef %2127, ptr noundef %2131, ptr noundef %2135)
  %2136 = load ptr, ptr %24, align 8, !tbaa !5
  %2137 = load i32, ptr %49, align 4, !tbaa !9
  %2138 = sext i32 %2137 to i64
  %2139 = getelementptr inbounds float, ptr %2136, i64 %2138
  %2140 = load float, ptr %2139, align 4, !tbaa !11
  store float %2140, ptr %41, align 4, !tbaa !11
  %2141 = load float, ptr %41, align 4, !tbaa !11
  %2142 = fcmp oge float %2141, 0.000000e+00
  br i1 %2142, label %2143, label %2145

2143:                                             ; preds = %2110
  %2144 = load float, ptr %41, align 4, !tbaa !11
  br label %2148

2145:                                             ; preds = %2110
  %2146 = load float, ptr %41, align 4, !tbaa !11
  %2147 = fneg float %2146
  br label %2148

2148:                                             ; preds = %2145, %2143
  %2149 = phi float [ %2144, %2143 ], [ %2147, %2145 ]
  %2150 = load ptr, ptr %25, align 8, !tbaa !5
  %2151 = load i32, ptr %49, align 4, !tbaa !9
  %2152 = sext i32 %2151 to i64
  %2153 = getelementptr inbounds float, ptr %2150, i64 %2152
  %2154 = load float, ptr %2153, align 4, !tbaa !11
  store float %2154, ptr %42, align 4, !tbaa !11
  %2155 = load float, ptr %42, align 4, !tbaa !11
  %2156 = fcmp oge float %2155, 0.000000e+00
  br i1 %2156, label %2157, label %2159

2157:                                             ; preds = %2148
  %2158 = load float, ptr %42, align 4, !tbaa !11
  br label %2162

2159:                                             ; preds = %2148
  %2160 = load float, ptr %42, align 4, !tbaa !11
  %2161 = fneg float %2160
  br label %2162

2162:                                             ; preds = %2159, %2157
  %2163 = phi float [ %2158, %2157 ], [ %2161, %2159 ]
  %2164 = fadd float %2149, %2163
  store float %2164, ptr %43, align 4, !tbaa !11
  %2165 = load float, ptr %43, align 4, !tbaa !11
  %2166 = load float, ptr %48, align 4, !tbaa !11
  %2167 = fcmp oge float %2165, %2166
  br i1 %2167, label %2168, label %2170

2168:                                             ; preds = %2162
  %2169 = load float, ptr %43, align 4, !tbaa !11
  br label %2172

2170:                                             ; preds = %2162
  %2171 = load float, ptr %48, align 4, !tbaa !11
  br label %2172

2172:                                             ; preds = %2170, %2168
  %2173 = phi float [ %2169, %2168 ], [ %2171, %2170 ]
  store float %2173, ptr %48, align 4, !tbaa !11
  %2174 = load ptr, ptr %31, align 8, !tbaa !5
  %2175 = load float, ptr %2174, align 4, !tbaa !11
  %2176 = load float, ptr %48, align 4, !tbaa !11
  %2177 = fdiv float %2175, %2176
  store float %2177, ptr %56, align 4, !tbaa !11
  br label %2208

2178:                                             ; preds = %2048
  %2179 = load ptr, ptr %19, align 8, !tbaa !5
  %2180 = load i32, ptr %2179, align 4, !tbaa !9
  store i32 %2180, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %50, align 4, !tbaa !9
  br label %2181

2181:                                             ; preds = %2194, %2178
  %2182 = load i32, ptr %50, align 4, !tbaa !9
  %2183 = load i32, ptr %40, align 4, !tbaa !9
  %2184 = icmp sle i32 %2182, %2183
  br i1 %2184, label %2185, label %2197

2185:                                             ; preds = %2181
  %2186 = load ptr, ptr %24, align 8, !tbaa !5
  %2187 = load i32, ptr %50, align 4, !tbaa !9
  %2188 = sext i32 %2187 to i64
  %2189 = getelementptr inbounds float, ptr %2186, i64 %2188
  store float 0.000000e+00, ptr %2189, align 4, !tbaa !11
  %2190 = load ptr, ptr %25, align 8, !tbaa !5
  %2191 = load i32, ptr %50, align 4, !tbaa !9
  %2192 = sext i32 %2191 to i64
  %2193 = getelementptr inbounds float, ptr %2190, i64 %2192
  store float 0.000000e+00, ptr %2193, align 4, !tbaa !11
  br label %2194

2194:                                             ; preds = %2185
  %2195 = load i32, ptr %50, align 4, !tbaa !9
  %2196 = add nsw i32 %2195, 1
  store i32 %2196, ptr %50, align 4, !tbaa !9
  br label %2181, !llvm.loop !37

2197:                                             ; preds = %2181
  %2198 = load ptr, ptr %24, align 8, !tbaa !5
  %2199 = load i32, ptr %49, align 4, !tbaa !9
  %2200 = sext i32 %2199 to i64
  %2201 = getelementptr inbounds float, ptr %2198, i64 %2200
  store float 1.000000e+00, ptr %2201, align 4, !tbaa !11
  %2202 = load ptr, ptr %25, align 8, !tbaa !5
  %2203 = load i32, ptr %49, align 4, !tbaa !9
  %2204 = sext i32 %2203 to i64
  %2205 = getelementptr inbounds float, ptr %2202, i64 %2204
  store float 1.000000e+00, ptr %2205, align 4, !tbaa !11
  store float 0.000000e+00, ptr %51, align 4, !tbaa !11
  store float 1.000000e+00, ptr %48, align 4, !tbaa !11
  %2206 = load ptr, ptr %31, align 8, !tbaa !5
  %2207 = load float, ptr %2206, align 4, !tbaa !11
  store float %2207, ptr %56, align 4, !tbaa !11
  br label %2208

2208:                                             ; preds = %2197, %2172
  br label %2209

2209:                                             ; preds = %2208
  %2210 = load i32, ptr %39, align 4, !tbaa !9
  %2211 = load i32, ptr %49, align 4, !tbaa !9
  %2212 = add nsw i32 %2211, %2210
  store i32 %2212, ptr %49, align 4, !tbaa !9
  br label %1800, !llvm.loop !38

2213:                                             ; preds = %1813
  %2214 = load ptr, ptr %19, align 8, !tbaa !5
  %2215 = load ptr, ptr %24, align 8, !tbaa !5
  %2216 = getelementptr inbounds float, ptr %2215, i64 1
  %2217 = call float @sasum_(ptr noundef %2214, ptr noundef %2216, ptr noundef @c__1)
  %2218 = load ptr, ptr %19, align 8, !tbaa !5
  %2219 = load ptr, ptr %25, align 8, !tbaa !5
  %2220 = getelementptr inbounds float, ptr %2219, i64 1
  %2221 = call float @sasum_(ptr noundef %2218, ptr noundef %2220, ptr noundef @c__1)
  %2222 = fadd float %2217, %2221
  store float %2222, ptr %61, align 4, !tbaa !11
  %2223 = load float, ptr %61, align 4, !tbaa !11
  %2224 = load float, ptr %71, align 4, !tbaa !11
  %2225 = load float, ptr %51, align 4, !tbaa !11
  %2226 = fmul float %2224, %2225
  %2227 = fcmp oge float %2223, %2226
  br i1 %2227, label %2228, label %2229

2228:                                             ; preds = %2213
  br label %2280

2229:                                             ; preds = %2213
  %2230 = load ptr, ptr %29, align 8, !tbaa !5
  %2231 = load float, ptr %2230, align 4, !tbaa !11
  %2232 = load float, ptr %60, align 4, !tbaa !11
  %2233 = fadd float %2232, 1.000000e+00
  %2234 = fdiv float %2231, %2233
  store float %2234, ptr %54, align 4, !tbaa !11
  %2235 = load ptr, ptr %29, align 8, !tbaa !5
  %2236 = load float, ptr %2235, align 4, !tbaa !11
  %2237 = load ptr, ptr %24, align 8, !tbaa !5
  %2238 = getelementptr inbounds float, ptr %2237, i64 1
  store float %2236, ptr %2238, align 4, !tbaa !11
  %2239 = load ptr, ptr %25, align 8, !tbaa !5
  %2240 = getelementptr inbounds float, ptr %2239, i64 1
  store float 0.000000e+00, ptr %2240, align 4, !tbaa !11
  %2241 = load ptr, ptr %19, align 8, !tbaa !5
  %2242 = load i32, ptr %2241, align 4, !tbaa !9
  store i32 %2242, ptr %39, align 4, !tbaa !9
  store i32 2, ptr %49, align 4, !tbaa !9
  br label %2243

2243:                                             ; preds = %2257, %2229
  %2244 = load i32, ptr %49, align 4, !tbaa !9
  %2245 = load i32, ptr %39, align 4, !tbaa !9
  %2246 = icmp sle i32 %2244, %2245
  br i1 %2246, label %2247, label %2260

2247:                                             ; preds = %2243
  %2248 = load float, ptr %54, align 4, !tbaa !11
  %2249 = load ptr, ptr %24, align 8, !tbaa !5
  %2250 = load i32, ptr %49, align 4, !tbaa !9
  %2251 = sext i32 %2250 to i64
  %2252 = getelementptr inbounds float, ptr %2249, i64 %2251
  store float %2248, ptr %2252, align 4, !tbaa !11
  %2253 = load ptr, ptr %25, align 8, !tbaa !5
  %2254 = load i32, ptr %49, align 4, !tbaa !9
  %2255 = sext i32 %2254 to i64
  %2256 = getelementptr inbounds float, ptr %2253, i64 %2255
  store float 0.000000e+00, ptr %2256, align 4, !tbaa !11
  br label %2257

2257:                                             ; preds = %2247
  %2258 = load i32, ptr %49, align 4, !tbaa !9
  %2259 = add nsw i32 %2258, 1
  store i32 %2259, ptr %49, align 4, !tbaa !9
  br label %2243, !llvm.loop !39

2260:                                             ; preds = %2243
  %2261 = load ptr, ptr %29, align 8, !tbaa !5
  %2262 = load float, ptr %2261, align 4, !tbaa !11
  %2263 = load float, ptr %60, align 4, !tbaa !11
  %2264 = load ptr, ptr %24, align 8, !tbaa !5
  %2265 = load ptr, ptr %19, align 8, !tbaa !5
  %2266 = load i32, ptr %2265, align 4, !tbaa !9
  %2267 = load i32, ptr %73, align 4, !tbaa !9
  %2268 = sub nsw i32 %2266, %2267
  %2269 = add nsw i32 %2268, 1
  %2270 = sext i32 %2269 to i64
  %2271 = getelementptr inbounds float, ptr %2264, i64 %2270
  %2272 = load float, ptr %2271, align 4, !tbaa !11
  %2273 = fneg float %2262
  %2274 = call float @llvm.fmuladd.f32(float %2273, float %2263, float %2272)
  store float %2274, ptr %2271, align 4, !tbaa !11
  br label %2275

2275:                                             ; preds = %2260
  %2276 = load i32, ptr %73, align 4, !tbaa !9
  %2277 = add nsw i32 %2276, 1
  store i32 %2277, ptr %73, align 4, !tbaa !9
  br label %1790, !llvm.loop !40

2278:                                             ; preds = %1790
  %2279 = load ptr, ptr %32, align 8, !tbaa !5
  store i32 1, ptr %2279, align 4, !tbaa !9
  br label %2280

2280:                                             ; preds = %2278, %2228
  store float 0.000000e+00, ptr %61, align 4, !tbaa !11
  %2281 = load ptr, ptr %19, align 8, !tbaa !5
  %2282 = load i32, ptr %2281, align 4, !tbaa !9
  store i32 %2282, ptr %37, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %2283

2283:                                             ; preds = %2327, %2280
  %2284 = load i32, ptr %49, align 4, !tbaa !9
  %2285 = load i32, ptr %37, align 4, !tbaa !9
  %2286 = icmp sle i32 %2284, %2285
  br i1 %2286, label %2287, label %2330

2287:                                             ; preds = %2283
  %2288 = load float, ptr %61, align 4, !tbaa !11
  store float %2288, ptr %43, align 4, !tbaa !11
  %2289 = load ptr, ptr %24, align 8, !tbaa !5
  %2290 = load i32, ptr %49, align 4, !tbaa !9
  %2291 = sext i32 %2290 to i64
  %2292 = getelementptr inbounds float, ptr %2289, i64 %2291
  %2293 = load float, ptr %2292, align 4, !tbaa !11
  store float %2293, ptr %41, align 4, !tbaa !11
  %2294 = load float, ptr %41, align 4, !tbaa !11
  %2295 = fcmp oge float %2294, 0.000000e+00
  br i1 %2295, label %2296, label %2298

2296:                                             ; preds = %2287
  %2297 = load float, ptr %41, align 4, !tbaa !11
  br label %2301

2298:                                             ; preds = %2287
  %2299 = load float, ptr %41, align 4, !tbaa !11
  %2300 = fneg float %2299
  br label %2301

2301:                                             ; preds = %2298, %2296
  %2302 = phi float [ %2297, %2296 ], [ %2300, %2298 ]
  %2303 = load ptr, ptr %25, align 8, !tbaa !5
  %2304 = load i32, ptr %49, align 4, !tbaa !9
  %2305 = sext i32 %2304 to i64
  %2306 = getelementptr inbounds float, ptr %2303, i64 %2305
  %2307 = load float, ptr %2306, align 4, !tbaa !11
  store float %2307, ptr %42, align 4, !tbaa !11
  %2308 = load float, ptr %42, align 4, !tbaa !11
  %2309 = fcmp oge float %2308, 0.000000e+00
  br i1 %2309, label %2310, label %2312

2310:                                             ; preds = %2301
  %2311 = load float, ptr %42, align 4, !tbaa !11
  br label %2315

2312:                                             ; preds = %2301
  %2313 = load float, ptr %42, align 4, !tbaa !11
  %2314 = fneg float %2313
  br label %2315

2315:                                             ; preds = %2312, %2310
  %2316 = phi float [ %2311, %2310 ], [ %2314, %2312 ]
  %2317 = fadd float %2302, %2316
  store float %2317, ptr %44, align 4, !tbaa !11
  %2318 = load float, ptr %43, align 4, !tbaa !11
  %2319 = load float, ptr %44, align 4, !tbaa !11
  %2320 = fcmp oge float %2318, %2319
  br i1 %2320, label %2321, label %2323

2321:                                             ; preds = %2315
  %2322 = load float, ptr %43, align 4, !tbaa !11
  br label %2325

2323:                                             ; preds = %2315
  %2324 = load float, ptr %44, align 4, !tbaa !11
  br label %2325

2325:                                             ; preds = %2323, %2321
  %2326 = phi float [ %2322, %2321 ], [ %2324, %2323 ]
  store float %2326, ptr %61, align 4, !tbaa !11
  br label %2327

2327:                                             ; preds = %2325
  %2328 = load i32, ptr %49, align 4, !tbaa !9
  %2329 = add nsw i32 %2328, 1
  store i32 %2329, ptr %49, align 4, !tbaa !9
  br label %2283, !llvm.loop !41

2330:                                             ; preds = %2283
  %2331 = load float, ptr %61, align 4, !tbaa !11
  %2332 = fdiv float 1.000000e+00, %2331
  store float %2332, ptr %41, align 4, !tbaa !11
  %2333 = load ptr, ptr %19, align 8, !tbaa !5
  %2334 = load ptr, ptr %24, align 8, !tbaa !5
  %2335 = getelementptr inbounds float, ptr %2334, i64 1
  call void @sscal_(ptr noundef %2333, ptr noundef %41, ptr noundef %2335, ptr noundef @c__1)
  %2336 = load float, ptr %61, align 4, !tbaa !11
  %2337 = fdiv float 1.000000e+00, %2336
  store float %2337, ptr %41, align 4, !tbaa !11
  %2338 = load ptr, ptr %19, align 8, !tbaa !5
  %2339 = load ptr, ptr %25, align 8, !tbaa !5
  %2340 = getelementptr inbounds float, ptr %2339, i64 1
  call void @sscal_(ptr noundef %2338, ptr noundef %41, ptr noundef %2340, ptr noundef @c__1)
  br label %2341

2341:                                             ; preds = %2330, %767
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  ret void
}

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

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

declare float @snrm2_(ptr noundef, ptr noundef, ptr noundef) #3

declare void @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 void @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 float @sasum_(ptr noundef, ptr noundef, ptr noundef) #3

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

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

declare void @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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = !{!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 i32, align 4
@.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 void @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 i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca i32, align 4
  %27 = alloca float, align 4
  %28 = alloca [1 x i8], align 1
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca [1 x i8], align 1
  %32 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 4, 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 1, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr nonnull %32) #6
  %33 = load i32, ptr %4, align 4, !tbaa !5
  %narrow = xor i32 %33, -1
  %34 = sext i32 %narrow to i64
  %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 i32, ptr %10, align 4, !tbaa !5
  %narrow885 = xor i32 %38, -1
  %39 = sext i32 %narrow885 to i64
  %40 = getelementptr inbounds float, ptr %9, i64 %39
  %41 = getelementptr inbounds i8, ptr %11, i64 -4
  store i32 0, ptr %15, align 4, !tbaa !5
  %42 = load i32, ptr %2, align 4, !tbaa !5
  %43 = sitofp i32 %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 i32, ptr %2, align 4, !tbaa !5
  %.not902 = icmp slt i32 %51, 1
  br i1 %.not902, label %104, label %.lr.ph905

.lr.ph905:                                        ; preds = %16
  %52 = add i32 %33, 1
  %53 = add i32 %38, 1
  %54 = sext i32 %33 to i64
  %55 = sext i32 %38 to i64
  %56 = add nsw i32 %51, -1
  %57 = add nuw i32 %51, 1
  %wide.trip.count1056 = zext i32 %57 to i64
  %58 = shl nsw i64 %55, 2
  %59 = add nsw i64 %55, %39
  %60 = shl nsw i64 %59, 2
  %61 = add nsw i64 %60, 4
  %62 = shl nsw i64 %55, 2
  %63 = add nsw i64 %58, 4
  %64 = shl nsw i64 %54, 2
  %65 = add nsw i64 %54, %34
  %66 = shl nsw i64 %65, 2
  %67 = add nsw i64 %66, 4
  %68 = shl nsw i64 %54, 2
  %69 = add nsw i64 %64, 4
  %70 = getelementptr i8, ptr %9, i64 %61
  %71 = getelementptr i8, ptr %9, i64 %61
  %72 = getelementptr i8, ptr %3, i64 %67
  %73 = getelementptr i8, ptr %3, i64 %67
  br label %74

74:                                               ; preds = %.lr.ph905, %._crit_edge
  %indvar = phi i64 [ 0, %.lr.ph905 ], [ %indvar.next, %._crit_edge ]
  %indvars.iv1053 = phi i64 [ 1, %.lr.ph905 ], [ %indvars.iv.next1054, %._crit_edge ]
  %75 = mul i64 %62, %indvar
  %scevgep1302 = getelementptr i8, ptr %70, i64 %75
  %76 = mul i64 %63, %indvar
  %scevgep1303 = getelementptr i8, ptr %71, i64 %76
  %77 = mul i64 %68, %indvar
  %scevgep1304 = getelementptr i8, ptr %72, i64 %77
  %78 = mul i64 %69, %indvar
  %scevgep1305 = getelementptr i8, ptr %73, i64 %78
  %.not889.not900 = icmp ugt i64 %indvars.iv1053, 1
  br i1 %.not889.not900, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %74
  %79 = mul nsw i64 %indvars.iv1053, %54
  %80 = mul nsw i64 %indvars.iv1053, %55
  %invariant.gep1223 = getelementptr float, ptr %35, i64 %79
  %invariant.gep1225 = getelementptr float, ptr %40, i64 %80
  %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 %scevgep1302, %scevgep1305
  %bound1 = icmp ult ptr %scevgep1304, %scevgep1303
  %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
  %81 = getelementptr float, ptr %invariant.gep1223, i64 %offset.idx
  %82 = getelementptr i8, ptr %81, i64 16
  %wide.load = load <4 x float>, ptr %81, align 4, !tbaa !9, !alias.scope !11
  %wide.load1306 = load <4 x float>, ptr %82, align 4, !tbaa !9, !alias.scope !11
  %83 = getelementptr float, ptr %invariant.gep1225, i64 %offset.idx
  %84 = getelementptr i8, ptr %83, i64 16
  store <4 x float> %wide.load, ptr %83, align 4, !tbaa !9, !alias.scope !14, !noalias !11
  store <4 x float> %wide.load1306, ptr %84, align 4, !tbaa !9, !alias.scope !14, !noalias !11
  %index.next = add nuw i64 %index, 8
  %85 = icmp eq i64 %index.next, %n.vec
  br i1 %85, 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
  %indvars.iv.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph ], [ %ind.end, %middle.block ]
  %86 = sub i64 %indvars.iv1053, %indvars.iv.ph
  %87 = sub i64 %indvar, %indvars.iv.ph
  %xtraiter = and i64 %86, 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
  %indvars.iv.prol = phi i64 [ %indvars.iv.next.prol, %scalar.ph.prol ], [ %indvars.iv.ph, %scalar.ph.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph.prol ], [ 0, %scalar.ph.preheader ]
  %gep1224.prol = getelementptr float, ptr %invariant.gep1223, i64 %indvars.iv.prol
  %88 = load float, ptr %gep1224.prol, align 4, !tbaa !9
  %gep1226.prol = getelementptr float, ptr %invariant.gep1225, i64 %indvars.iv.prol
  store float %88, ptr %gep1226.prol, align 4, !tbaa !9
  %indvars.iv.next.prol = add nuw nsw i64 %indvars.iv.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
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %scalar.ph.preheader ], [ %indvars.iv.next.prol, %scalar.ph.prol ]
  %89 = icmp ult i64 %87, 3
  br i1 %89, label %._crit_edge, label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.prol.loopexit, %scalar.ph
  %indvars.iv = phi i64 [ %indvars.iv.next.3, %scalar.ph ], [ %indvars.iv.unr, %scalar.ph.prol.loopexit ]
  %gep1224 = getelementptr float, ptr %invariant.gep1223, i64 %indvars.iv
  %90 = load float, ptr %gep1224, align 4, !tbaa !9
  %gep1226 = getelementptr float, ptr %invariant.gep1225, i64 %indvars.iv
  store float %90, ptr %gep1226, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %gep1224.1 = getelementptr float, ptr %invariant.gep1223, i64 %indvars.iv.next
  %91 = load float, ptr %gep1224.1, align 4, !tbaa !9
  %gep1226.1 = getelementptr float, ptr %invariant.gep1225, i64 %indvars.iv.next
  store float %91, ptr %gep1226.1, align 4, !tbaa !9
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %gep1224.2 = getelementptr float, ptr %invariant.gep1223, i64 %indvars.iv.next.1
  %92 = load float, ptr %gep1224.2, align 4, !tbaa !9
  %gep1226.2 = getelementptr float, ptr %invariant.gep1225, i64 %indvars.iv.next.1
  store float %92, ptr %gep1226.2, align 4, !tbaa !9
  %indvars.iv.next.2 = add nuw nsw i64 %indvars.iv, 3
  %gep1224.3 = getelementptr float, ptr %invariant.gep1223, i64 %indvars.iv.next.2
  %93 = load float, ptr %gep1224.3, align 4, !tbaa !9
  %gep1226.3 = getelementptr float, ptr %invariant.gep1225, i64 %indvars.iv.next.2
  store float %93, ptr %gep1226.3, align 4, !tbaa !9
  %indvars.iv.next.3 = add nuw nsw i64 %indvars.iv, 4
  %exitcond.not.3 = icmp eq i64 %indvars.iv.next.3, %indvars.iv1053
  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, %74
  %94 = trunc nuw nsw i64 %indvars.iv1053 to i32
  %95 = mul i32 %52, %94
  %96 = sext i32 %95 to i64
  %97 = getelementptr inbounds float, ptr %35, i64 %96
  %98 = load float, ptr %97, align 4, !tbaa !9
  %99 = load float, ptr %5, align 4, !tbaa !9
  %100 = fsub float %98, %99
  %101 = mul i32 %53, %94
  %102 = sext i32 %101 to i64
  %103 = getelementptr inbounds float, ptr %40, i64 %102
  store float %100, ptr %103, align 4, !tbaa !9
  %indvars.iv.next1054 = add nuw nsw i64 %indvars.iv1053, 1
  %exitcond1057.not = icmp eq i64 %indvars.iv.next1054, %wide.trip.count1056
  %indvar.next = add i64 %indvar, 1
  br i1 %exitcond1057.not, label %._crit_edge906, label %74, !llvm.loop !23

._crit_edge906:                                   ; preds = %._crit_edge
  store i32 %56, ptr %22, align 4, !tbaa !5
  br label %104

104:                                              ; preds = %._crit_edge906, %16
  %105 = load float, ptr %6, align 4, !tbaa !9
  %106 = fcmp oeq float %105, 0.000000e+00
  %107 = load i32, ptr %1, align 4, !tbaa !5
  %.not878 = icmp eq i32 %107, 0
  br i1 %106, label %108, label %346

108:                                              ; preds = %104
  br i1 %.not878, label %116, label %109

109:                                              ; preds = %108
  br i1 %.not902, label %.loopexit894, label %.lr.ph998.preheader

.lr.ph998.preheader:                              ; preds = %109
  %110 = add nuw i32 %51, 1
  %wide.trip.count1140 = zext i32 %110 to i64
  %.pre1190 = load float, ptr %12, align 4, !tbaa !9
  %111 = zext nneg i32 %51 to i64
  %min.iters.check1380 = icmp ult i32 %51, 8
  br i1 %min.iters.check1380, label %.lr.ph998.preheader1518, label %vector.ph1381

vector.ph1381:                                    ; preds = %.lr.ph998.preheader
  %n.vec1383 = and i64 %111, 2147483640
  %ind.end1384 = or disjoint i64 %n.vec1383, 1
  %broadcast.splatinsert1389 = insertelement <4 x float> poison, float %.pre1190, i64 0
  %broadcast.splat1390 = shufflevector <4 x float> %broadcast.splatinsert1389, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1386

vector.body1386:                                  ; preds = %vector.body1386, %vector.ph1381
  %index1387 = phi i64 [ 0, %vector.ph1381 ], [ %index.next1391, %vector.body1386 ]
  %112 = getelementptr float, ptr %7, i64 %index1387
  %113 = getelementptr inbounds i8, ptr %112, i64 16
  store <4 x float> %broadcast.splat1390, ptr %112, align 4, !tbaa !9
  store <4 x float> %broadcast.splat1390, ptr %113, align 4, !tbaa !9
  %index.next1391 = add nuw i64 %index1387, 8
  %114 = icmp eq i64 %index.next1391, %n.vec1383
  br i1 %114, label %middle.block1378, label %vector.body1386, !llvm.loop !24

middle.block1378:                                 ; preds = %vector.body1386
  %cmp.n1392 = icmp eq i64 %n.vec1383, %111
  br i1 %cmp.n1392, label %.loopexit894, label %.lr.ph998.preheader1518

.lr.ph998.preheader1518:                          ; preds = %middle.block1378, %.lr.ph998.preheader
  %indvars.iv1136.ph = phi i64 [ 1, %.lr.ph998.preheader ], [ %ind.end1384, %middle.block1378 ]
  br label %.lr.ph998

.lr.ph998:                                        ; preds = %.lr.ph998.preheader1518, %.lr.ph998
  %indvars.iv1136 = phi i64 [ %indvars.iv.next1137, %.lr.ph998 ], [ %indvars.iv1136.ph, %.lr.ph998.preheader1518 ]
  %115 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1136
  store float %.pre1190, ptr %115, align 4, !tbaa !9
  %indvars.iv.next1137 = add nuw nsw i64 %indvars.iv1136, 1
  %exitcond1141.not = icmp eq i64 %indvars.iv.next1137, %wide.trip.count1140
  br i1 %exitcond1141.not, label %.loopexit894, label %.lr.ph998, !llvm.loop !25

116:                                              ; preds = %108
  %117 = tail call float @snrm2_(ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %118 = load float, ptr %12, align 4, !tbaa !9
  %119 = fmul float %sqrtf, %118
  %120 = fcmp oge float %117, %50
  %121 = select i1 %120, float %117, float %50
  %122 = fdiv float %119, %121
  store float %122, ptr %24, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %24, ptr noundef %7, ptr noundef nonnull @c__1) #6
  br label %.loopexit894

.loopexit894:                                     ; preds = %.lr.ph998, %middle.block1378, %109, %116
  %123 = load i32, ptr %0, align 4, !tbaa !5
  %.not880 = icmp eq i32 %123, 0
  %124 = load i32, ptr %2, align 4, !tbaa !5
  %125 = icmp sgt i32 %124, 1
  br i1 %.not880, label %183, label %126

126:                                              ; preds = %.loopexit894
  %127 = add i32 %38, 1
  br i1 %125, label %.lr.ph1010, label %._crit_edge1200

.lr.ph1010:                                       ; preds = %126
  %128 = sext i32 %38 to i64
  %129 = add nuw i32 %124, 1
  %130 = sext i32 %33 to i64
  %wide.trip.count1160 = zext nneg i32 %124 to i64
  %wide.trip.count1148 = zext i32 %129 to i64
  %wide.trip.count1154 = zext i32 %129 to i64
  %ident.check1464.not = icmp eq i32 %38, 1
  %ident.check1469.not = icmp eq i32 %38, 1
  br label %131

131:                                              ; preds = %.lr.ph1010, %.loopexit892
  %indvar1466 = phi i64 [ 0, %.lr.ph1010 ], [ %indvar.next1467, %.loopexit892 ]
  %indvars.iv1156 = phi i64 [ 1, %.lr.ph1010 ], [ %indvars.iv.next1157, %.loopexit892 ]
  %indvars.iv1142 = phi i64 [ 2, %.lr.ph1010 ], [ %indvars.iv.next1143, %.loopexit892 ]
  %132 = shl nuw nsw i64 %indvar1466, 3
  %133 = or disjoint i64 %132, 4
  %scevgep1473 = getelementptr i8, ptr %9, i64 %133
  %134 = shl nuw nsw i64 %indvar1466, 3
  %135 = or disjoint i64 %134, 4
  %scevgep1468 = getelementptr i8, ptr %9, i64 %135
  %indvars.iv.next1157 = add nuw nsw i64 %indvars.iv1156, 1
  %136 = mul nsw i64 %indvars.iv1156, %130
  %137 = getelementptr float, ptr %35, i64 %indvars.iv.next1157
  %138 = getelementptr float, ptr %137, i64 %136
  %139 = load float, ptr %138, align 4, !tbaa !9
  %140 = trunc nuw nsw i64 %indvars.iv1156 to i32
  %141 = mul i32 %127, %140
  %142 = sext i32 %141 to i64
  %143 = getelementptr inbounds float, ptr %40, i64 %142
  %144 = load float, ptr %143, align 4, !tbaa !9
  %145 = fcmp oge float %144, 0.000000e+00
  %146 = fneg float %144
  %147 = select i1 %145, float %144, float %146
  %148 = fcmp oge float %139, 0.000000e+00
  %149 = fneg float %139
  %150 = select i1 %148, float %139, float %149
  %151 = fcmp olt float %147, %150
  br i1 %151, label %.lver.check1470, label %161

.lver.check1470:                                  ; preds = %131
  store float %139, ptr %143, align 4, !tbaa !9
  %152 = fdiv float %146, %139
  %invariant.gep1279 = getelementptr float, ptr %40, i64 %indvars.iv.next1157
  %invariant.gep1281 = getelementptr float, ptr %40, i64 %indvars.iv1156
  br i1 %ident.check1469.not, label %.ph1471, label %.ph1471.lver.orig

.ph1471.lver.orig:                                ; preds = %.lver.check1470, %.ph1471.lver.orig
  %indvars.iv1150.lver.orig = phi i64 [ %indvars.iv.next1151.lver.orig, %.ph1471.lver.orig ], [ %indvars.iv1142, %.lver.check1470 ]
  %153 = mul nsw i64 %indvars.iv1150.lver.orig, %128
  %gep1280.lver.orig = getelementptr float, ptr %invariant.gep1279, i64 %153
  %154 = load float, ptr %gep1280.lver.orig, align 4, !tbaa !9
  %gep1282.lver.orig = getelementptr float, ptr %invariant.gep1281, i64 %153
  %155 = load float, ptr %gep1282.lver.orig, align 4, !tbaa !9
  %156 = call float @llvm.fmuladd.f32(float %152, float %154, float %155)
  store float %156, ptr %gep1280.lver.orig, align 4, !tbaa !9
  store float %154, ptr %gep1282.lver.orig, align 4, !tbaa !9
  %indvars.iv.next1151.lver.orig = add nuw nsw i64 %indvars.iv1150.lver.orig, 1
  %exitcond1155.not.lver.orig = icmp eq i64 %indvars.iv.next1151.lver.orig, %wide.trip.count1154
  br i1 %exitcond1155.not.lver.orig, label %.loopexit892, label %.ph1471.lver.orig, !llvm.loop !26

.ph1471:                                          ; preds = %.lver.check1470
  %load_initial1474 = load float, ptr %scevgep1473, align 4
  br label %157

157:                                              ; preds = %.ph1471, %157
  %store_forwarded1475 = phi float [ %load_initial1474, %.ph1471 ], [ %160, %157 ]
  %indvars.iv1150 = phi i64 [ %indvars.iv1142, %.ph1471 ], [ %indvars.iv.next1151, %157 ]
  %158 = mul nuw nsw i64 %indvars.iv1150, %128
  %gep1280 = getelementptr float, ptr %invariant.gep1279, i64 %158
  %159 = load float, ptr %gep1280, align 4, !tbaa !9
  %gep1282 = getelementptr float, ptr %invariant.gep1281, i64 %158
  %160 = call float @llvm.fmuladd.f32(float %152, float %159, float %store_forwarded1475)
  store float %160, ptr %gep1280, align 4, !tbaa !9
  store float %159, ptr %gep1282, align 4, !tbaa !9
  %indvars.iv.next1151 = add nuw nsw i64 %indvars.iv1150, 1
  %exitcond1155.not = icmp eq i64 %indvars.iv.next1151, %wide.trip.count1154
  br i1 %exitcond1155.not, label %.loopexit892, label %157, !llvm.loop !26

161:                                              ; preds = %131
  %162 = fcmp oeq float %144, 0.000000e+00
  br i1 %162, label %163, label %165

163:                                              ; preds = %161
  %164 = load float, ptr %12, align 4, !tbaa !9
  store float %164, ptr %143, align 4, !tbaa !9
  br label %165

165:                                              ; preds = %163, %161
  %166 = phi float [ %164, %163 ], [ %144, %161 ]
  %167 = fdiv float %139, %166
  %168 = fcmp une float %167, 0.000000e+00
  br i1 %168, label %.lver.check, label %.loopexit892

.lver.check:                                      ; preds = %165
  %169 = fneg float %167
  %invariant.gep1275 = getelementptr float, ptr %40, i64 %indvars.iv1156
  %invariant.gep1277 = getelementptr float, ptr %40, i64 %indvars.iv.next1157
  br i1 %ident.check1464.not, label %.ph, label %.ph.lver.orig

.ph.lver.orig:                                    ; preds = %.lver.check, %.ph.lver.orig
  %indvars.iv1144.lver.orig = phi i64 [ %indvars.iv.next1145.lver.orig, %.ph.lver.orig ], [ %indvars.iv1142, %.lver.check ]
  %170 = mul nsw i64 %indvars.iv1144.lver.orig, %128
  %gep1276.lver.orig = getelementptr float, ptr %invariant.gep1275, i64 %170
  %171 = load float, ptr %gep1276.lver.orig, align 4, !tbaa !9
  %gep1278.lver.orig = getelementptr float, ptr %invariant.gep1277, i64 %170
  %172 = load float, ptr %gep1278.lver.orig, align 4, !tbaa !9
  %173 = call float @llvm.fmuladd.f32(float %169, float %171, float %172)
  store float %173, ptr %gep1278.lver.orig, align 4, !tbaa !9
  %indvars.iv.next1145.lver.orig = add nuw nsw i64 %indvars.iv1144.lver.orig, 1
  %exitcond1149.not.lver.orig = icmp eq i64 %indvars.iv.next1145.lver.orig, %wide.trip.count1148
  br i1 %exitcond1149.not.lver.orig, label %.loopexit892, label %.ph.lver.orig, !llvm.loop !27

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

174:                                              ; preds = %.ph, %174
  %store_forwarded = phi float [ %load_initial, %.ph ], [ %177, %174 ]
  %indvars.iv1144 = phi i64 [ %indvars.iv1142, %.ph ], [ %indvars.iv.next1145, %174 ]
  %175 = mul nuw nsw i64 %indvars.iv1144, %128
  %gep1278 = getelementptr float, ptr %invariant.gep1277, i64 %175
  %176 = load float, ptr %gep1278, align 4, !tbaa !9
  %177 = call float @llvm.fmuladd.f32(float %169, float %store_forwarded, float %176)
  store float %177, ptr %gep1278, align 4, !tbaa !9
  %indvars.iv.next1145 = add nuw nsw i64 %indvars.iv1144, 1
  %exitcond1149.not = icmp eq i64 %indvars.iv.next1145, %wide.trip.count1148
  br i1 %exitcond1149.not, label %.loopexit892, label %174, !llvm.loop !27

.loopexit892:                                     ; preds = %.ph.lver.orig, %174, %.ph1471.lver.orig, %157, %165
  %indvars.iv.next1143 = add nuw nsw i64 %indvars.iv1142, 1
  %exitcond1161.not = icmp eq i64 %indvars.iv.next1157, %wide.trip.count1160
  %indvar.next1467 = add i64 %indvar1466, 1
  br i1 %exitcond1161.not, label %._crit_edge1011, label %131, !llvm.loop !28

._crit_edge1011:                                  ; preds = %.loopexit892
  store float %144, ptr %24, align 4, !tbaa !9
  br label %._crit_edge1200

._crit_edge1200:                                  ; preds = %126, %._crit_edge1011
  %178 = mul i32 %124, %127
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds float, ptr %40, i64 %179
  %181 = load float, ptr %180, align 4, !tbaa !9
  %182 = fcmp oeq float %181, 0.000000e+00
  br i1 %182, label %.sink.split, label %313

183:                                              ; preds = %.loopexit894
  br i1 %125, label %.lr.ph1023.preheader, label %309

.lr.ph1023.preheader:                             ; preds = %183
  %184 = zext nneg i32 %124 to i64
  %185 = sext i32 %38 to i64
  %186 = add nuw nsw i64 %184, 4611686018427387903
  %187 = mul i64 %186, %185
  %188 = shl nsw i64 %39, 2
  %189 = add i64 %187, %39
  %190 = shl i64 %189, 2
  %191 = mul nsw i64 %185, -4
  %192 = add i64 %189, %184
  %193 = shl i64 %192, 2
  %194 = shl nsw i64 %185, 2
  %195 = sub nuw nsw i64 -4, %194
  %196 = mul nsw i64 %185, %184
  %197 = add i64 %196, %39
  %198 = shl i64 %197, 2
  %199 = add nsw i64 %194, 4
  %200 = mul i64 %199, %184
  %201 = add nuw nsw i64 %184, 4611686018427387903
  %202 = mul i64 %201, %185
  %203 = shl nsw i64 %39, 2
  %204 = add i64 %202, %39
  %205 = shl i64 %204, 2
  %206 = mul nsw i64 %185, -4
  %207 = add i64 %204, %184
  %208 = shl i64 %207, 2
  %209 = shl nsw i64 %185, 2
  %210 = sub nuw nsw i64 -4, %209
  %211 = mul nsw i64 %185, %184
  %212 = add i64 %211, %39
  %213 = shl i64 %212, 2
  %214 = add nsw i64 %209, 4
  %215 = mul i64 %214, %184
  %216 = getelementptr i8, ptr %9, i64 %205
  %217 = getelementptr i8, ptr %216, i64 4
  %218 = getelementptr i8, ptr %9, i64 %208
  %219 = getelementptr i8, ptr %9, i64 %213
  %220 = getelementptr i8, ptr %219, i64 4
  %221 = getelementptr i8, ptr %9, i64 %215
  %222 = getelementptr i8, ptr %221, i64 %203
  %223 = getelementptr i8, ptr %9, i64 %190
  %224 = getelementptr i8, ptr %223, i64 4
  %225 = getelementptr i8, ptr %9, i64 %193
  %226 = getelementptr i8, ptr %9, i64 %198
  %227 = getelementptr i8, ptr %226, i64 4
  %228 = getelementptr i8, ptr %9, i64 %200
  %229 = getelementptr i8, ptr %228, i64 %188
  br label %.lr.ph1023

.lr.ph1023:                                       ; preds = %.lr.ph1023.preheader, %.loopexit890
  %indvar1394 = phi i64 [ 0, %.lr.ph1023.preheader ], [ %indvar.next1395, %.loopexit890 ]
  %indvars.iv1176 = phi i64 [ %184, %.lr.ph1023.preheader ], [ %indvars.iv.next1177, %.loopexit890 ]
  %230 = xor i64 %indvar1394, -1
  %231 = add i64 %230, %184
  %232 = xor i64 %indvar1394, -1
  %233 = add i64 %232, %184
  %234 = xor i64 %indvar1394, -1
  %235 = add i64 %234, %184
  %236 = mul i64 %206, %indvar1394
  %scevgep1423 = getelementptr i8, ptr %217, i64 %236
  %237 = mul i64 %210, %indvar1394
  %scevgep1424 = getelementptr i8, ptr %218, i64 %237
  %scevgep1425 = getelementptr i8, ptr %220, i64 %236
  %scevgep1426 = getelementptr i8, ptr %222, i64 %237
  %238 = xor i64 %indvar1394, -1
  %239 = add i64 %238, %184
  %240 = mul i64 %191, %indvar1394
  %scevgep1396 = getelementptr i8, ptr %224, i64 %240
  %241 = mul i64 %195, %indvar1394
  %scevgep1397 = getelementptr i8, ptr %225, i64 %241
  %scevgep1398 = getelementptr i8, ptr %227, i64 %240
  %scevgep1399 = getelementptr i8, ptr %229, i64 %241
  %indvars1179 = trunc i64 %indvars.iv1176 to i32
  %indvars.iv.next1177 = add nsw i64 %indvars.iv1176, -1
  %indvars1178 = trunc i64 %indvars.iv.next1177 to i32
  %242 = mul nsw i32 %33, %indvars1178
  %243 = sext i32 %242 to i64
  %244 = getelementptr float, ptr %35, i64 %indvars.iv1176
  %245 = getelementptr float, ptr %244, i64 %243
  %246 = load float, ptr %245, align 4, !tbaa !9
  %247 = mul nsw i64 %indvars.iv1176, %185
  %248 = mul nsw i32 %38, %indvars1179
  %249 = sext i32 %248 to i64
  %250 = getelementptr float, ptr %40, i64 %indvars.iv1176
  %251 = getelementptr float, ptr %250, i64 %249
  %252 = load float, ptr %251, align 4, !tbaa !9
  %253 = fcmp oge float %252, 0.000000e+00
  %254 = fneg float %252
  %255 = select i1 %253, float %252, float %254
  %256 = fcmp oge float %246, 0.000000e+00
  %257 = fneg float %246
  %258 = select i1 %256, float %246, float %257
  %259 = fcmp olt float %255, %258
  br i1 %259, label %.lr.ph1020, label %280

.lr.ph1020:                                       ; preds = %.lr.ph1023
  store float %246, ptr %251, align 4, !tbaa !9
  store i32 %indvars1178, ptr %21, align 4, !tbaa !5
  %260 = mul nsw i64 %indvars.iv.next1177, %185
  %261 = fdiv float %254, %246
  %invariant.gep1287 = getelementptr float, ptr %40, i64 %260
  %invariant.gep1289 = getelementptr float, ptr %40, i64 %247
  %min.iters.check1405 = icmp ult i64 %239, 8
  br i1 %min.iters.check1405, label %scalar.ph1404.preheader, label %vector.memcheck1393

vector.memcheck1393:                              ; preds = %.lr.ph1020
  %bound01400 = icmp ult ptr %scevgep1396, %scevgep1399
  %bound11401 = icmp ult ptr %scevgep1398, %scevgep1397
  %found.conflict1402 = and i1 %bound01400, %bound11401
  br i1 %found.conflict1402, label %scalar.ph1404.preheader, label %vector.ph1406

vector.ph1406:                                    ; preds = %vector.memcheck1393
  %n.vec1408 = and i64 %239, -8
  %ind.end1409 = or disjoint i64 %n.vec1408, 1
  %broadcast.splatinsert1418 = insertelement <4 x float> poison, float %261, i64 0
  %broadcast.splat1419 = shufflevector <4 x float> %broadcast.splatinsert1418, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1411

vector.body1411:                                  ; preds = %vector.body1411, %vector.ph1406
  %index1412 = phi i64 [ 0, %vector.ph1406 ], [ %index.next1420, %vector.body1411 ]
  %offset.idx1413 = or disjoint i64 %index1412, 1
  %262 = getelementptr float, ptr %invariant.gep1287, i64 %offset.idx1413
  %263 = getelementptr i8, ptr %262, i64 16
  %wide.load1414 = load <4 x float>, ptr %262, align 4, !tbaa !9, !alias.scope !29, !noalias !32
  %wide.load1415 = load <4 x float>, ptr %263, align 4, !tbaa !9, !alias.scope !29, !noalias !32
  %264 = getelementptr float, ptr %invariant.gep1289, i64 %offset.idx1413
  %265 = getelementptr i8, ptr %264, i64 16
  %wide.load1416 = load <4 x float>, ptr %264, align 4, !tbaa !9, !alias.scope !32
  %wide.load1417 = load <4 x float>, ptr %265, align 4, !tbaa !9, !alias.scope !32
  %266 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1419, <4 x float> %wide.load1414, <4 x float> %wide.load1416)
  %267 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1419, <4 x float> %wide.load1415, <4 x float> %wide.load1417)
  store <4 x float> %266, ptr %262, align 4, !tbaa !9, !alias.scope !29, !noalias !32
  store <4 x float> %267, ptr %263, align 4, !tbaa !9, !alias.scope !29, !noalias !32
  store <4 x float> %wide.load1414, ptr %264, align 4, !tbaa !9, !alias.scope !32
  store <4 x float> %wide.load1415, ptr %265, align 4, !tbaa !9, !alias.scope !32
  %index.next1420 = add nuw i64 %index1412, 8
  %268 = icmp eq i64 %index.next1420, %n.vec1408
  br i1 %268, label %middle.block1403, label %vector.body1411, !llvm.loop !34

middle.block1403:                                 ; preds = %vector.body1411
  %cmp.n1421 = icmp eq i64 %239, %n.vec1408
  br i1 %cmp.n1421, label %.loopexit890, label %scalar.ph1404.preheader

scalar.ph1404.preheader:                          ; preds = %middle.block1403, %vector.memcheck1393, %.lr.ph1020
  %indvars.iv1170.ph = phi i64 [ 1, %vector.memcheck1393 ], [ 1, %.lr.ph1020 ], [ %ind.end1409, %middle.block1403 ]
  %269 = and i64 %indvars.iv1176, 1
  %lcmp.mod1549.not.not = icmp eq i64 %269, 0
  br i1 %lcmp.mod1549.not.not, label %scalar.ph1404.prol, label %scalar.ph1404.prol.loopexit

scalar.ph1404.prol:                               ; preds = %scalar.ph1404.preheader
  %gep1288.prol = getelementptr float, ptr %invariant.gep1287, i64 %indvars.iv1170.ph
  %270 = load float, ptr %gep1288.prol, align 4, !tbaa !9
  %gep1290.prol = getelementptr float, ptr %invariant.gep1289, i64 %indvars.iv1170.ph
  %271 = load float, ptr %gep1290.prol, align 4, !tbaa !9
  %272 = call float @llvm.fmuladd.f32(float %261, float %270, float %271)
  store float %272, ptr %gep1288.prol, align 4, !tbaa !9
  store float %270, ptr %gep1290.prol, align 4, !tbaa !9
  %indvars.iv.next1171.prol = add nuw nsw i64 %indvars.iv1170.ph, 1
  br label %scalar.ph1404.prol.loopexit

scalar.ph1404.prol.loopexit:                      ; preds = %scalar.ph1404.prol, %scalar.ph1404.preheader
  %indvars.iv1170.unr = phi i64 [ %indvars.iv1170.ph, %scalar.ph1404.preheader ], [ %indvars.iv.next1171.prol, %scalar.ph1404.prol ]
  %273 = icmp eq i64 %231, %indvars.iv1170.ph
  br i1 %273, label %.loopexit890, label %scalar.ph1404

scalar.ph1404:                                    ; preds = %scalar.ph1404.prol.loopexit, %scalar.ph1404
  %indvars.iv1170 = phi i64 [ %indvars.iv.next1171.1, %scalar.ph1404 ], [ %indvars.iv1170.unr, %scalar.ph1404.prol.loopexit ]
  %gep1288 = getelementptr float, ptr %invariant.gep1287, i64 %indvars.iv1170
  %274 = load float, ptr %gep1288, align 4, !tbaa !9
  %gep1290 = getelementptr float, ptr %invariant.gep1289, i64 %indvars.iv1170
  %275 = load float, ptr %gep1290, align 4, !tbaa !9
  %276 = call float @llvm.fmuladd.f32(float %261, float %274, float %275)
  store float %276, ptr %gep1288, align 4, !tbaa !9
  store float %274, ptr %gep1290, align 4, !tbaa !9
  %indvars.iv.next1171 = add nuw nsw i64 %indvars.iv1170, 1
  %gep1288.1 = getelementptr float, ptr %invariant.gep1287, i64 %indvars.iv.next1171
  %277 = load float, ptr %gep1288.1, align 4, !tbaa !9
  %gep1290.1 = getelementptr float, ptr %invariant.gep1289, i64 %indvars.iv.next1171
  %278 = load float, ptr %gep1290.1, align 4, !tbaa !9
  %279 = call float @llvm.fmuladd.f32(float %261, float %277, float %278)
  store float %279, ptr %gep1288.1, align 4, !tbaa !9
  store float %277, ptr %gep1290.1, align 4, !tbaa !9
  %indvars.iv.next1171.1 = add nuw nsw i64 %indvars.iv1170, 2
  %exitcond1175.not.1 = icmp eq i64 %indvars.iv.next1171.1, %indvars.iv1176
  br i1 %exitcond1175.not.1, label %.loopexit890, label %scalar.ph1404, !llvm.loop !35

280:                                              ; preds = %.lr.ph1023
  %281 = fcmp oeq float %252, 0.000000e+00
  br i1 %281, label %282, label %284

282:                                              ; preds = %280
  %283 = load float, ptr %12, align 4, !tbaa !9
  store float %283, ptr %251, align 4, !tbaa !9
  br label %284

284:                                              ; preds = %282, %280
  %285 = phi float [ %283, %282 ], [ %252, %280 ]
  %286 = fdiv float %246, %285
  %287 = fcmp une float %286, 0.000000e+00
  br i1 %287, label %.lr.ph1016, label %.loopexit890

.lr.ph1016:                                       ; preds = %284
  store i32 %indvars1178, ptr %21, align 4, !tbaa !5
  %288 = mul nsw i64 %indvars.iv.next1177, %185
  %289 = fneg float %286
  %invariant.gep1283 = getelementptr float, ptr %40, i64 %247
  %invariant.gep1285 = getelementptr float, ptr %40, i64 %288
  %min.iters.check1432 = icmp ult i64 %235, 8
  br i1 %min.iters.check1432, label %scalar.ph1431.preheader, label %vector.memcheck1422

vector.memcheck1422:                              ; preds = %.lr.ph1016
  %bound01427 = icmp ult ptr %scevgep1423, %scevgep1426
  %bound11428 = icmp ult ptr %scevgep1425, %scevgep1424
  %found.conflict1429 = and i1 %bound01427, %bound11428
  br i1 %found.conflict1429, label %scalar.ph1431.preheader, label %vector.ph1433

vector.ph1433:                                    ; preds = %vector.memcheck1422
  %n.vec1435 = and i64 %235, -8
  %ind.end1436 = or disjoint i64 %n.vec1435, 1
  %broadcast.splatinsert1445 = insertelement <4 x float> poison, float %289, i64 0
  %broadcast.splat1446 = shufflevector <4 x float> %broadcast.splatinsert1445, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1438

vector.body1438:                                  ; preds = %vector.body1438, %vector.ph1433
  %index1439 = phi i64 [ 0, %vector.ph1433 ], [ %index.next1447, %vector.body1438 ]
  %offset.idx1440 = or disjoint i64 %index1439, 1
  %290 = getelementptr float, ptr %invariant.gep1283, i64 %offset.idx1440
  %291 = getelementptr i8, ptr %290, i64 16
  %wide.load1441 = load <4 x float>, ptr %290, align 4, !tbaa !9, !alias.scope !36
  %wide.load1442 = load <4 x float>, ptr %291, align 4, !tbaa !9, !alias.scope !36
  %292 = getelementptr float, ptr %invariant.gep1285, i64 %offset.idx1440
  %293 = getelementptr i8, ptr %292, i64 16
  %wide.load1443 = load <4 x float>, ptr %292, align 4, !tbaa !9, !alias.scope !39, !noalias !36
  %wide.load1444 = load <4 x float>, ptr %293, align 4, !tbaa !9, !alias.scope !39, !noalias !36
  %294 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1446, <4 x float> %wide.load1441, <4 x float> %wide.load1443)
  %295 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1446, <4 x float> %wide.load1442, <4 x float> %wide.load1444)
  store <4 x float> %294, ptr %292, align 4, !tbaa !9, !alias.scope !39, !noalias !36
  store <4 x float> %295, ptr %293, align 4, !tbaa !9, !alias.scope !39, !noalias !36
  %index.next1447 = add nuw i64 %index1439, 8
  %296 = icmp eq i64 %index.next1447, %n.vec1435
  br i1 %296, label %middle.block1430, label %vector.body1438, !llvm.loop !41

middle.block1430:                                 ; preds = %vector.body1438
  %cmp.n1448 = icmp eq i64 %235, %n.vec1435
  br i1 %cmp.n1448, label %.loopexit890, label %scalar.ph1431.preheader

scalar.ph1431.preheader:                          ; preds = %middle.block1430, %vector.memcheck1422, %.lr.ph1016
  %indvars.iv1162.ph = phi i64 [ 1, %vector.memcheck1422 ], [ 1, %.lr.ph1016 ], [ %ind.end1436, %middle.block1430 ]
  %297 = and i64 %indvars.iv1176, 1
  %lcmp.mod1546.not.not = icmp eq i64 %297, 0
  br i1 %lcmp.mod1546.not.not, label %scalar.ph1431.prol, label %scalar.ph1431.prol.loopexit

scalar.ph1431.prol:                               ; preds = %scalar.ph1431.preheader
  %gep1284.prol = getelementptr float, ptr %invariant.gep1283, i64 %indvars.iv1162.ph
  %298 = load float, ptr %gep1284.prol, align 4, !tbaa !9
  %gep1286.prol = getelementptr float, ptr %invariant.gep1285, i64 %indvars.iv1162.ph
  %299 = load float, ptr %gep1286.prol, align 4, !tbaa !9
  %300 = call float @llvm.fmuladd.f32(float %289, float %298, float %299)
  store float %300, ptr %gep1286.prol, align 4, !tbaa !9
  %indvars.iv.next1163.prol = add nuw nsw i64 %indvars.iv1162.ph, 1
  br label %scalar.ph1431.prol.loopexit

scalar.ph1431.prol.loopexit:                      ; preds = %scalar.ph1431.prol, %scalar.ph1431.preheader
  %indvars.iv1162.unr = phi i64 [ %indvars.iv1162.ph, %scalar.ph1431.preheader ], [ %indvars.iv.next1163.prol, %scalar.ph1431.prol ]
  %301 = icmp eq i64 %233, %indvars.iv1162.ph
  br i1 %301, label %.loopexit890, label %scalar.ph1431

scalar.ph1431:                                    ; preds = %scalar.ph1431.prol.loopexit, %scalar.ph1431
  %indvars.iv1162 = phi i64 [ %indvars.iv.next1163.1, %scalar.ph1431 ], [ %indvars.iv1162.unr, %scalar.ph1431.prol.loopexit ]
  %gep1284 = getelementptr float, ptr %invariant.gep1283, i64 %indvars.iv1162
  %302 = load float, ptr %gep1284, align 4, !tbaa !9
  %gep1286 = getelementptr float, ptr %invariant.gep1285, i64 %indvars.iv1162
  %303 = load float, ptr %gep1286, align 4, !tbaa !9
  %304 = call float @llvm.fmuladd.f32(float %289, float %302, float %303)
  store float %304, ptr %gep1286, align 4, !tbaa !9
  %indvars.iv.next1163 = add nuw nsw i64 %indvars.iv1162, 1
  %gep1284.1 = getelementptr float, ptr %invariant.gep1283, i64 %indvars.iv.next1163
  %305 = load float, ptr %gep1284.1, align 4, !tbaa !9
  %gep1286.1 = getelementptr float, ptr %invariant.gep1285, i64 %indvars.iv.next1163
  %306 = load float, ptr %gep1286.1, align 4, !tbaa !9
  %307 = call float @llvm.fmuladd.f32(float %289, float %305, float %306)
  store float %307, ptr %gep1286.1, align 4, !tbaa !9
  %indvars.iv.next1163.1 = add nuw nsw i64 %indvars.iv1162, 2
  %exitcond1167.not.1 = icmp eq i64 %indvars.iv.next1163.1, %indvars.iv1176
  br i1 %exitcond1167.not.1, label %.loopexit890, label %scalar.ph1431, !llvm.loop !42

.loopexit890:                                     ; preds = %scalar.ph1431.prol.loopexit, %scalar.ph1431, %scalar.ph1404.prol.loopexit, %scalar.ph1404, %middle.block1430, %middle.block1403, %284
  %308 = icmp sgt i64 %indvars.iv1176, 2
  %indvar.next1395 = add i64 %indvar1394, 1
  br i1 %308, label %.lr.ph1023, label %._crit_edge1024, !llvm.loop !43

._crit_edge1024:                                  ; preds = %.loopexit890
  store float %252, ptr %24, align 4, !tbaa !9
  br label %309

309:                                              ; preds = %._crit_edge1024, %183
  %310 = load float, ptr %9, align 4, !tbaa !9
  %311 = fcmp oeq float %310, 0.000000e+00
  br i1 %311, label %.sink.split, label %313

.sink.split:                                      ; preds = %309, %._crit_edge1200
  %.sink1291 = phi ptr [ %180, %._crit_edge1200 ], [ %9, %309 ]
  %storemerge.ph = phi i8 [ 78, %._crit_edge1200 ], [ 84, %309 ]
  %312 = load float, ptr %12, align 4, !tbaa !9
  store float %312, ptr %.sink1291, align 4, !tbaa !9
  br label %313

313:                                              ; preds = %.sink.split, %309, %._crit_edge1200
  %storemerge = phi i8 [ 78, %._crit_edge1200 ], [ 84, %309 ], [ %storemerge.ph, %.sink.split ]
  store i8 %storemerge, ptr %28, align 1, !tbaa !44
  store i8 78, ptr %31, align 1, !tbaa !44
  store i32 %124, ptr %21, align 4, !tbaa !5
  %.not8841033 = icmp slt i32 %124, 1
  br i1 %.not8841033, label %._crit_edge1037, label %.lr.ph1036

.lr.ph1036:                                       ; preds = %313
  %314 = fadd float %sqrtf, 1.000000e+00
  br label %315

315:                                              ; preds = %.lr.ph1036, %._crit_edge1030
  %.01034 = phi i32 [ 1, %.lr.ph1036 ], [ %336, %._crit_edge1030 ]
  call void @slatrs_(ptr noundef nonnull @.str, ptr noundef nonnull %28, ptr noundef nonnull @.str.1, ptr noundef nonnull %31, ptr noundef nonnull %2, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %7, ptr noundef nonnull %27, ptr noundef %11, ptr noundef nonnull %26) #6
  store i8 89, ptr %31, align 1, !tbaa !44
  %316 = call float @sasum_(ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %317 = load float, ptr %27, align 4, !tbaa !9
  %318 = fmul float %44, %317
  %319 = fcmp ult float %316, %318
  br i1 %319, label %320, label %.loopexit

320:                                              ; preds = %315
  %321 = load float, ptr %12, align 4, !tbaa !9
  %322 = fdiv float %321, %314
  store float %321, ptr %7, align 4, !tbaa !9
  %323 = load i32, ptr %2, align 4, !tbaa !5
  %.not8861026 = icmp slt i32 %323, 2
  br i1 %.not8861026, label %._crit_edge1030, label %.lr.ph1029.preheader

.lr.ph1029.preheader:                             ; preds = %320
  %324 = add nuw i32 %323, 1
  %wide.trip.count1184 = zext i32 %324 to i64
  %325 = add nsw i64 %wide.trip.count1184, -2
  %min.iters.check1451 = icmp ult i64 %325, 8
  br i1 %min.iters.check1451, label %.lr.ph1029.preheader1512, label %vector.ph1452

vector.ph1452:                                    ; preds = %.lr.ph1029.preheader
  %n.vec1454 = and i64 %325, -8
  %ind.end1455 = or disjoint i64 %n.vec1454, 2
  %broadcast.splatinsert1460 = insertelement <4 x float> poison, float %322, i64 0
  %broadcast.splat1461 = shufflevector <4 x float> %broadcast.splatinsert1460, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1457

vector.body1457:                                  ; preds = %vector.body1457, %vector.ph1452
  %index1458 = phi i64 [ 0, %vector.ph1452 ], [ %index.next1462, %vector.body1457 ]
  %offset.idx1459 = or disjoint i64 %index1458, 2
  %326 = getelementptr inbounds float, ptr %36, i64 %offset.idx1459
  %327 = getelementptr inbounds i8, ptr %326, i64 16
  store <4 x float> %broadcast.splat1461, ptr %326, align 4, !tbaa !9
  store <4 x float> %broadcast.splat1461, ptr %327, align 4, !tbaa !9
  %index.next1462 = add nuw i64 %index1458, 8
  %328 = icmp eq i64 %index.next1462, %n.vec1454
  br i1 %328, label %middle.block1449, label %vector.body1457, !llvm.loop !45

middle.block1449:                                 ; preds = %vector.body1457
  %cmp.n1463 = icmp eq i64 %325, %n.vec1454
  br i1 %cmp.n1463, label %._crit_edge1030.loopexit, label %.lr.ph1029.preheader1512

.lr.ph1029.preheader1512:                         ; preds = %middle.block1449, %.lr.ph1029.preheader
  %indvars.iv1180.ph = phi i64 [ 2, %.lr.ph1029.preheader ], [ %ind.end1455, %middle.block1449 ]
  br label %.lr.ph1029

.lr.ph1029:                                       ; preds = %.lr.ph1029.preheader1512, %.lr.ph1029
  %indvars.iv1180 = phi i64 [ %indvars.iv.next1181, %.lr.ph1029 ], [ %indvars.iv1180.ph, %.lr.ph1029.preheader1512 ]
  %329 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1180
  store float %322, ptr %329, align 4, !tbaa !9
  %indvars.iv.next1181 = add nuw nsw i64 %indvars.iv1180, 1
  %exitcond1185.not = icmp eq i64 %indvars.iv.next1181, %wide.trip.count1184
  br i1 %exitcond1185.not, label %._crit_edge1030.loopexit, label %.lr.ph1029, !llvm.loop !46

._crit_edge1030.loopexit:                         ; preds = %.lr.ph1029, %middle.block1449
  %.pre1193 = load float, ptr %12, align 4, !tbaa !9
  br label %._crit_edge1030

._crit_edge1030:                                  ; preds = %._crit_edge1030.loopexit, %320
  %330 = phi float [ %.pre1193, %._crit_edge1030.loopexit ], [ %321, %320 ]
  %331 = sub nsw i32 %323, %.01034
  %332 = sext i32 %331 to i64
  %gep1032 = getelementptr float, ptr %7, i64 %332
  %333 = load float, ptr %gep1032, align 4, !tbaa !9
  %334 = fneg float %330
  %335 = call float @llvm.fmuladd.f32(float %334, float %sqrtf, float %333)
  store float %335, ptr %gep1032, align 4, !tbaa !9
  %336 = add nuw nsw i32 %.01034, 1
  %337 = load i32, ptr %21, align 4, !tbaa !5
  %.not884.not = icmp slt i32 %.01034, %337
  br i1 %.not884.not, label %315, label %._crit_edge1037, !llvm.loop !47

._crit_edge1037:                                  ; preds = %._crit_edge1030, %313
  store i32 1, ptr %15, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %315, %._crit_edge1037
  %338 = call i32 @isamax_(ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds float, ptr %36, i64 %339
  %341 = load float, ptr %340, align 4, !tbaa !9
  store float %341, ptr %24, align 4, !tbaa !9
  %342 = fcmp oge float %341, 0.000000e+00
  %343 = fneg float %341
  %344 = select i1 %342, float %341, float %343
  %345 = fdiv float 1.000000e+00, %344
  store float %345, ptr %25, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef %7, ptr noundef nonnull @c__1) #6
  br label %904

346:                                              ; preds = %104
  br i1 %.not878, label %377, label %347

347:                                              ; preds = %346
  br i1 %.not902, label %.loopexit899, label %.lr.ph910.preheader

.lr.ph910.preheader:                              ; preds = %347
  %348 = add nuw i32 %51, 1
  %wide.trip.count = zext i32 %348 to i64
  %349 = zext nneg i32 %51 to i64
  %min.iters.check1323 = icmp ult i32 %51, 24
  br i1 %min.iters.check1323, label %.lr.ph910.preheader1531, label %vector.memcheck1307

vector.memcheck1307:                              ; preds = %.lr.ph910.preheader
  %350 = shl nuw nsw i64 %wide.trip.count, 2
  %351 = add nsw i64 %350, -4
  %scevgep1308 = getelementptr i8, ptr %7, i64 %351
  %scevgep1309 = getelementptr i8, ptr %8, i64 %351
  %scevgep1310 = getelementptr i8, ptr %12, i64 4
  %bound01311 = icmp ugt ptr %scevgep1309, %7
  %bound11312 = icmp ugt ptr %scevgep1308, %8
  %found.conflict1313 = and i1 %bound01311, %bound11312
  %bound01314 = icmp ugt ptr %scevgep1310, %7
  %bound11315 = icmp ugt ptr %scevgep1308, %12
  %found.conflict1316 = and i1 %bound01314, %bound11315
  %conflict.rdx = or i1 %found.conflict1313, %found.conflict1316
  %bound01317 = icmp ugt ptr %scevgep1310, %8
  %bound11318 = icmp ugt ptr %scevgep1309, %12
  %found.conflict1319 = and i1 %bound01317, %bound11318
  %conflict.rdx1320 = or i1 %conflict.rdx, %found.conflict1319
  br i1 %conflict.rdx1320, label %.lr.ph910.preheader1531, label %vector.ph1324

vector.ph1324:                                    ; preds = %vector.memcheck1307
  %n.vec1326 = and i64 %349, 2147483640
  %ind.end1327 = or disjoint i64 %n.vec1326, 1
  %352 = load float, ptr %12, align 4, !tbaa !9, !alias.scope !48
  %broadcast.splatinsert1332 = insertelement <4 x float> poison, float %352, i64 0
  %broadcast.splat1333 = shufflevector <4 x float> %broadcast.splatinsert1332, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1329

vector.body1329:                                  ; preds = %vector.body1329, %vector.ph1324
  %index1330 = phi i64 [ 0, %vector.ph1324 ], [ %index.next1334, %vector.body1329 ]
  %353 = getelementptr float, ptr %7, i64 %index1330
  %354 = getelementptr inbounds i8, ptr %353, i64 16
  store <4 x float> %broadcast.splat1333, ptr %353, align 4, !tbaa !9, !alias.scope !51, !noalias !53
  store <4 x float> %broadcast.splat1333, ptr %354, align 4, !tbaa !9, !alias.scope !51, !noalias !53
  %355 = getelementptr float, ptr %8, i64 %index1330
  %356 = getelementptr inbounds i8, ptr %355, i64 16
  store <4 x float> zeroinitializer, ptr %355, align 4, !tbaa !9, !alias.scope !55, !noalias !48
  store <4 x float> zeroinitializer, ptr %356, align 4, !tbaa !9, !alias.scope !55, !noalias !48
  %index.next1334 = add nuw i64 %index1330, 8
  %357 = icmp eq i64 %index.next1334, %n.vec1326
  br i1 %357, label %middle.block1321, label %vector.body1329, !llvm.loop !56

middle.block1321:                                 ; preds = %vector.body1329
  %cmp.n1335 = icmp eq i64 %n.vec1326, %349
  br i1 %cmp.n1335, label %.loopexit899, label %.lr.ph910.preheader1531

.lr.ph910.preheader1531:                          ; preds = %middle.block1321, %vector.memcheck1307, %.lr.ph910.preheader
  %indvars.iv1058.ph = phi i64 [ 1, %vector.memcheck1307 ], [ 1, %.lr.ph910.preheader ], [ %ind.end1327, %middle.block1321 ]
  %358 = sub nsw i64 %wide.trip.count, %indvars.iv1058.ph
  %359 = zext nneg i32 %51 to i64
  %360 = sub nsw i64 %359, %indvars.iv1058.ph
  %xtraiter1532 = and i64 %358, 3
  %lcmp.mod1533.not = icmp eq i64 %xtraiter1532, 0
  br i1 %lcmp.mod1533.not, label %.lr.ph910.prol.loopexit, label %.lr.ph910.prol

.lr.ph910.prol:                                   ; preds = %.lr.ph910.preheader1531, %.lr.ph910.prol
  %indvars.iv1058.prol = phi i64 [ %indvars.iv.next1059.prol, %.lr.ph910.prol ], [ %indvars.iv1058.ph, %.lr.ph910.preheader1531 ]
  %prol.iter1534 = phi i64 [ %prol.iter1534.next, %.lr.ph910.prol ], [ 0, %.lr.ph910.preheader1531 ]
  %361 = load float, ptr %12, align 4, !tbaa !9
  %362 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1058.prol
  store float %361, ptr %362, align 4, !tbaa !9
  %363 = getelementptr inbounds float, ptr %37, i64 %indvars.iv1058.prol
  store float 0.000000e+00, ptr %363, align 4, !tbaa !9
  %indvars.iv.next1059.prol = add nuw nsw i64 %indvars.iv1058.prol, 1
  %prol.iter1534.next = add i64 %prol.iter1534, 1
  %prol.iter1534.cmp.not = icmp eq i64 %prol.iter1534.next, %xtraiter1532
  br i1 %prol.iter1534.cmp.not, label %.lr.ph910.prol.loopexit, label %.lr.ph910.prol, !llvm.loop !57

.lr.ph910.prol.loopexit:                          ; preds = %.lr.ph910.prol, %.lr.ph910.preheader1531
  %indvars.iv1058.unr = phi i64 [ %indvars.iv1058.ph, %.lr.ph910.preheader1531 ], [ %indvars.iv.next1059.prol, %.lr.ph910.prol ]
  %364 = icmp ult i64 %360, 3
  br i1 %364, label %.loopexit899, label %.lr.ph910

.lr.ph910:                                        ; preds = %.lr.ph910.prol.loopexit, %.lr.ph910
  %indvars.iv1058 = phi i64 [ %indvars.iv.next1059.3, %.lr.ph910 ], [ %indvars.iv1058.unr, %.lr.ph910.prol.loopexit ]
  %365 = load float, ptr %12, align 4, !tbaa !9
  %366 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1058
  store float %365, ptr %366, align 4, !tbaa !9
  %367 = getelementptr inbounds float, ptr %37, i64 %indvars.iv1058
  store float 0.000000e+00, ptr %367, align 4, !tbaa !9
  %368 = load float, ptr %12, align 4, !tbaa !9
  %369 = getelementptr float, ptr %7, i64 %indvars.iv1058
  store float %368, ptr %369, align 4, !tbaa !9
  %370 = getelementptr float, ptr %8, i64 %indvars.iv1058
  store float 0.000000e+00, ptr %370, align 4, !tbaa !9
  %indvars.iv.next1059.1 = add nuw nsw i64 %indvars.iv1058, 2
  %371 = load float, ptr %12, align 4, !tbaa !9
  %372 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next1059.1
  store float %371, ptr %372, align 4, !tbaa !9
  %373 = getelementptr inbounds float, ptr %37, i64 %indvars.iv.next1059.1
  store float 0.000000e+00, ptr %373, align 4, !tbaa !9
  %indvars.iv.next1059.2 = add nuw nsw i64 %indvars.iv1058, 3
  %374 = load float, ptr %12, align 4, !tbaa !9
  %375 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next1059.2
  store float %374, ptr %375, align 4, !tbaa !9
  %376 = getelementptr inbounds float, ptr %37, i64 %indvars.iv.next1059.2
  store float 0.000000e+00, ptr %376, align 4, !tbaa !9
  %indvars.iv.next1059.3 = add nuw nsw i64 %indvars.iv1058, 4
  %exitcond1061.not.3 = icmp eq i64 %indvars.iv.next1059.3, %wide.trip.count
  br i1 %exitcond1061.not.3, label %.loopexit899, label %.lr.ph910, !llvm.loop !58

377:                                              ; preds = %346
  %378 = tail call float @snrm2_(ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull @c__1) #6
  store float %378, ptr %24, align 4, !tbaa !9
  %379 = tail call float @snrm2_(ptr noundef nonnull %2, ptr noundef %8, ptr noundef nonnull @c__1) #6
  store float %379, ptr %25, align 4, !tbaa !9
  %380 = call float @slapy2_(ptr noundef nonnull %24, ptr noundef nonnull %25) #6
  %381 = load float, ptr %12, align 4, !tbaa !9
  %382 = fmul float %sqrtf, %381
  %383 = fcmp oge float %380, %50
  %384 = select i1 %383, float %380, float %50
  %385 = fdiv float %382, %384
  store float %385, ptr %32, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %32, ptr noundef %7, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %32, ptr noundef %8, ptr noundef nonnull @c__1) #6
  br label %.loopexit899

.loopexit899:                                     ; preds = %.lr.ph910.prol.loopexit, %.lr.ph910, %middle.block1321, %347, %377
  %386 = load i32, ptr %0, align 4, !tbaa !5
  %.not863.not = icmp eq i32 %386, 0
  %387 = load float, ptr %6, align 4, !tbaa !9
  br i1 %.not863.not, label %532, label %388

388:                                              ; preds = %.loopexit899
  %389 = fneg float %387
  %390 = sext i32 %38 to i64
  %391 = getelementptr float, ptr %40, i64 %390
  %392 = getelementptr i8, ptr %391, i64 8
  store float %389, ptr %392, align 4, !tbaa !9
  %393 = load i32, ptr %2, align 4, !tbaa !5
  %.not867911 = icmp slt i32 %393, 2
  br i1 %.not867911, label %._crit_edge930, label %.lr.ph929.preheader

.lr.ph929.preheader:                              ; preds = %388
  %394 = add i32 %38, 3
  %395 = sext i32 %394 to i64
  %396 = add nsw i64 %39, %395
  %397 = shl nsw i64 %396, 2
  %scevgep = getelementptr i8, ptr %9, i64 %397
  %398 = add nsw i32 %393, -1
  %399 = zext nneg i32 %398 to i64
  %400 = shl nuw nsw i64 %399, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %400, i1 false), !tbaa !9
  store i32 %398, ptr %21, align 4, !tbaa !5
  %401 = sext i32 %33 to i64
  %invariant.gep1557 = getelementptr i8, ptr %9, i64 8
  %invariant.gep1559 = getelementptr i8, ptr %9, i64 8
  %ident.check1492.not = icmp eq i32 %38, 1
  %ident.check1503.not = icmp eq i32 %38, 1
  br label %.lr.ph929

.lr.ph929:                                        ; preds = %.lr.ph929.preheader, %500
  %indvar1496 = phi i64 [ 0, %.lr.ph929.preheader ], [ %indvar.next1497, %500 ]
  %indvars.iv1079 = phi i64 [ 1, %.lr.ph929.preheader ], [ %indvars.iv.next1080, %500 ]
  %indvars.iv1065 = phi i64 [ 2, %.lr.ph929.preheader ], [ %indvars.iv.next1066, %500 ]
  %402 = shl nuw nsw i64 %indvar1496, 3
  %gep1558 = getelementptr i8, ptr %invariant.gep1557, i64 %402
  %403 = shl nuw nsw i64 %indvar1496, 3
  %gep1560 = getelementptr i8, ptr %invariant.gep1559, i64 %403
  %indvars1081 = trunc i64 %indvars.iv1079 to i32
  %404 = mul nsw i64 %indvars.iv1079, %390
  %405 = mul nsw i32 %38, %indvars1081
  %406 = sext i32 %405 to i64
  %407 = getelementptr float, ptr %40, i64 %indvars.iv1079
  %408 = getelementptr float, ptr %407, i64 %406
  %indvars.iv.next1080 = add nuw nsw i64 %indvars.iv1079, 1
  %indvars = trunc i64 %indvars.iv.next1080 to i32
  %409 = getelementptr float, ptr %40, i64 %indvars.iv.next1080
  %410 = getelementptr float, ptr %409, i64 %404
  %411 = call float @slapy2_(ptr noundef %408, ptr noundef %410) #6
  %412 = mul nsw i64 %indvars.iv1079, %401
  %413 = getelementptr float, ptr %35, i64 %indvars.iv.next1080
  %414 = getelementptr float, ptr %413, i64 %412
  %415 = load float, ptr %414, align 4, !tbaa !9
  %416 = fcmp oge float %415, 0.000000e+00
  %417 = fneg float %415
  %418 = select i1 %416, float %415, float %417
  %419 = fcmp olt float %411, %418
  br i1 %419, label %420, label %458

420:                                              ; preds = %.lr.ph929
  %421 = load float, ptr %408, align 4, !tbaa !9
  %422 = fdiv float %421, %415
  store float %422, ptr %30, align 4, !tbaa !9
  %423 = load float, ptr %410, align 4, !tbaa !9
  %424 = fdiv float %423, %415
  store float %424, ptr %29, align 4, !tbaa !9
  store float %415, ptr %408, align 4, !tbaa !9
  store float 0.000000e+00, ptr %410, align 4, !tbaa !9
  %425 = load i32, ptr %2, align 4, !tbaa !5
  %426 = sext i32 %425 to i64
  %.not877921.not = icmp slt i64 %indvars.iv1079, %426
  %427 = fneg float %424
  br i1 %.not877921.not, label %.lver.check1504, label %.._crit_edge925_crit_edge

.._crit_edge925_crit_edge:                        ; preds = %420
  %.pre1205 = mul nsw i64 %indvars.iv.next1080, %390
  br label %._crit_edge925

.lver.check1504:                                  ; preds = %420
  %428 = fneg float %422
  %429 = mul nsw i64 %indvars.iv.next1080, %390
  %430 = add i32 %425, 1
  %wide.trip.count1077 = zext i32 %430 to i64
  %invariant.gep1235 = getelementptr float, ptr %40, i64 %indvars.iv.next1080
  %invariant.gep1237 = getelementptr float, ptr %40, i64 %indvars.iv1079
  %invariant.gep1239 = getelementptr float, ptr %40, i64 %404
  %invariant.gep1241 = getelementptr float, ptr %40, i64 %429
  br i1 %ident.check1503.not, label %.ph1505, label %.ph1505.lver.orig

.ph1505.lver.orig:                                ; preds = %.lver.check1504, %.ph1505.lver.orig
  %indvars.iv1074.lver.orig = phi i64 [ %indvars.iv.next1075.lver.orig, %.ph1505.lver.orig ], [ %indvars.iv1065, %.lver.check1504 ]
  %431 = mul nsw i64 %indvars.iv1074.lver.orig, %390
  %gep1236.lver.orig = getelementptr float, ptr %invariant.gep1235, i64 %431
  %432 = load float, ptr %gep1236.lver.orig, align 4, !tbaa !9
  %gep1238.lver.orig = getelementptr float, ptr %invariant.gep1237, i64 %431
  %433 = load float, ptr %gep1238.lver.orig, align 4, !tbaa !9
  %434 = call float @llvm.fmuladd.f32(float %428, float %432, float %433)
  store float %434, ptr %gep1236.lver.orig, align 4, !tbaa !9
  %indvars.iv.next1075.lver.orig = add nuw nsw i64 %indvars.iv1074.lver.orig, 1
  %gep1240.lver.orig = getelementptr float, ptr %invariant.gep1239, i64 %indvars.iv.next1075.lver.orig
  %435 = load float, ptr %gep1240.lver.orig, align 4, !tbaa !9
  %436 = call float @llvm.fmuladd.f32(float %427, float %432, float %435)
  %gep1242.lver.orig = getelementptr float, ptr %invariant.gep1241, i64 %indvars.iv.next1075.lver.orig
  store float %436, ptr %gep1242.lver.orig, align 4, !tbaa !9
  store float %432, ptr %gep1238.lver.orig, align 4, !tbaa !9
  store float 0.000000e+00, ptr %gep1240.lver.orig, align 4, !tbaa !9
  %exitcond1078.not.lver.orig = icmp eq i64 %indvars.iv.next1075.lver.orig, %wide.trip.count1077
  br i1 %exitcond1078.not.lver.orig, label %._crit_edge925, label %.ph1505.lver.orig, !llvm.loop !59

.ph1505:                                          ; preds = %.lver.check1504
  %load_initial1508 = load float, ptr %gep1558, align 4
  br label %437

437:                                              ; preds = %.ph1505, %437
  %store_forwarded1509 = phi float [ %load_initial1508, %.ph1505 ], [ %442, %437 ]
  %indvars.iv1074 = phi i64 [ %indvars.iv1065, %.ph1505 ], [ %indvars.iv.next1075, %437 ]
  %438 = mul nuw nsw i64 %indvars.iv1074, %390
  %gep1236 = getelementptr float, ptr %invariant.gep1235, i64 %438
  %gep1238 = getelementptr float, ptr %invariant.gep1237, i64 %438
  %439 = load float, ptr %gep1238, align 4, !tbaa !9
  %440 = call float @llvm.fmuladd.f32(float %428, float %store_forwarded1509, float %439)
  store float %440, ptr %gep1236, align 4, !tbaa !9
  %indvars.iv.next1075 = add nuw nsw i64 %indvars.iv1074, 1
  %gep1240 = getelementptr float, ptr %invariant.gep1239, i64 %indvars.iv.next1075
  %441 = load float, ptr %gep1240, align 4, !tbaa !9
  %442 = call float @llvm.fmuladd.f32(float %427, float %store_forwarded1509, float %441)
  %gep1242 = getelementptr float, ptr %invariant.gep1241, i64 %indvars.iv.next1075
  store float %442, ptr %gep1242, align 4, !tbaa !9
  store float %store_forwarded1509, ptr %gep1238, align 4, !tbaa !9
  store float 0.000000e+00, ptr %gep1240, align 4, !tbaa !9
  %exitcond1078.not = icmp eq i64 %indvars.iv.next1075, %wide.trip.count1077
  br i1 %exitcond1078.not, label %._crit_edge925, label %437, !llvm.loop !59

._crit_edge925:                                   ; preds = %.ph1505.lver.orig, %437, %.._crit_edge925_crit_edge
  %.pre-phi1206 = phi i64 [ %.pre1205, %.._crit_edge925_crit_edge ], [ %429, %437 ], [ %429, %.ph1505.lver.orig ]
  %443 = load float, ptr %6, align 4, !tbaa !9
  %444 = fneg float %443
  %445 = add nuw nsw i64 %indvars.iv1079, 2
  %446 = add nsw i64 %445, %404
  %447 = getelementptr inbounds float, ptr %40, i64 %446
  store float %444, ptr %447, align 4, !tbaa !9
  %448 = load float, ptr %6, align 4, !tbaa !9
  %449 = getelementptr float, ptr %40, i64 %.pre-phi1206
  %450 = getelementptr float, ptr %449, i64 %indvars.iv.next1080
  %451 = load float, ptr %450, align 4, !tbaa !9
  %452 = call float @llvm.fmuladd.f32(float %427, float %448, float %451)
  store float %452, ptr %450, align 4, !tbaa !9
  %453 = load float, ptr %6, align 4, !tbaa !9
  %454 = getelementptr float, ptr %40, i64 %.pre-phi1206
  %455 = getelementptr float, ptr %454, i64 %445
  %456 = load float, ptr %455, align 4, !tbaa !9
  %457 = call float @llvm.fmuladd.f32(float %422, float %453, float %456)
  store float %457, ptr %455, align 4, !tbaa !9
  br label %500

458:                                              ; preds = %.lr.ph929
  %459 = fcmp oeq float %411, 0.000000e+00
  br i1 %459, label %460, label %._crit_edge1186

._crit_edge1186:                                  ; preds = %458
  %.pre = load float, ptr %410, align 4, !tbaa !9
  br label %463

460:                                              ; preds = %458
  %461 = load float, ptr %12, align 4, !tbaa !9
  store float %461, ptr %408, align 4, !tbaa !9
  store float 0.000000e+00, ptr %410, align 4, !tbaa !9
  %462 = load float, ptr %12, align 4, !tbaa !9
  br label %463

463:                                              ; preds = %._crit_edge1186, %460
  %464 = phi float [ 0.000000e+00, %460 ], [ %.pre, %._crit_edge1186 ]
  %.0831 = phi float [ %462, %460 ], [ %411, %._crit_edge1186 ]
  %465 = fdiv float %415, %.0831
  %466 = fdiv float %465, %.0831
  %467 = load float, ptr %408, align 4, !tbaa !9
  %468 = fmul float %467, %466
  store float %468, ptr %30, align 4, !tbaa !9
  %469 = fneg float %464
  %470 = fmul float %466, %469
  store float %470, ptr %29, align 4, !tbaa !9
  %471 = load i32, ptr %2, align 4, !tbaa !5
  %472 = sext i32 %471 to i64
  %.not876916.not = icmp slt i64 %indvars.iv1079, %472
  br i1 %.not876916.not, label %.lver.check1493, label %.._crit_edge920_crit_edge

.._crit_edge920_crit_edge:                        ; preds = %463
  %.pre1209 = mul nsw i64 %indvars.iv.next1080, %390
  br label %._crit_edge920

.lver.check1493:                                  ; preds = %463
  %473 = fneg float %468
  %474 = fneg float %470
  %475 = mul nsw i64 %indvars.iv.next1080, %390
  %476 = add i32 %471, 1
  %wide.trip.count1070 = zext i32 %476 to i64
  %invariant.gep1227 = getelementptr float, ptr %40, i64 %indvars.iv.next1080
  %invariant.gep1229 = getelementptr float, ptr %40, i64 %indvars.iv1079
  %invariant.gep1231 = getelementptr float, ptr %40, i64 %404
  %invariant.gep1233 = getelementptr float, ptr %40, i64 %475
  br i1 %ident.check1492.not, label %.ph1494, label %.ph1494.lver.orig

.ph1494.lver.orig:                                ; preds = %.lver.check1493, %.ph1494.lver.orig
  %indvars.iv1067.lver.orig = phi i64 [ %indvars.iv.next1068.lver.orig, %.ph1494.lver.orig ], [ %indvars.iv1065, %.lver.check1493 ]
  %477 = mul nsw i64 %indvars.iv1067.lver.orig, %390
  %gep1228.lver.orig = getelementptr float, ptr %invariant.gep1227, i64 %477
  %478 = load float, ptr %gep1228.lver.orig, align 4, !tbaa !9
  %gep1230.lver.orig = getelementptr float, ptr %invariant.gep1229, i64 %477
  %479 = load float, ptr %gep1230.lver.orig, align 4, !tbaa !9
  %480 = call float @llvm.fmuladd.f32(float %473, float %479, float %478)
  %indvars.iv.next1068.lver.orig = add nuw nsw i64 %indvars.iv1067.lver.orig, 1
  %gep1232.lver.orig = getelementptr float, ptr %invariant.gep1231, i64 %indvars.iv.next1068.lver.orig
  %481 = load float, ptr %gep1232.lver.orig, align 4, !tbaa !9
  %482 = call float @llvm.fmuladd.f32(float %470, float %481, float %480)
  store float %482, ptr %gep1228.lver.orig, align 4, !tbaa !9
  %483 = load float, ptr %gep1232.lver.orig, align 4, !tbaa !9
  %484 = fmul float %479, %474
  %485 = call float @llvm.fmuladd.f32(float %473, float %483, float %484)
  %gep1234.lver.orig = getelementptr float, ptr %invariant.gep1233, i64 %indvars.iv.next1068.lver.orig
  store float %485, ptr %gep1234.lver.orig, align 4, !tbaa !9
  %exitcond1071.not.lver.orig = icmp eq i64 %indvars.iv.next1068.lver.orig, %wide.trip.count1070
  br i1 %exitcond1071.not.lver.orig, label %._crit_edge920, label %.ph1494.lver.orig, !llvm.loop !60

.ph1494:                                          ; preds = %.lver.check1493
  %load_initial1499 = load float, ptr %gep1560, align 4
  br label %486

486:                                              ; preds = %.ph1494, %486
  %store_forwarded1500 = phi float [ %load_initial1499, %.ph1494 ], [ %493, %486 ]
  %indvars.iv1067 = phi i64 [ %indvars.iv1065, %.ph1494 ], [ %indvars.iv.next1068, %486 ]
  %487 = mul nuw nsw i64 %indvars.iv1067, %390
  %gep1228 = getelementptr float, ptr %invariant.gep1227, i64 %487
  %gep1230 = getelementptr float, ptr %invariant.gep1229, i64 %487
  %488 = load float, ptr %gep1230, align 4, !tbaa !9
  %489 = call float @llvm.fmuladd.f32(float %473, float %488, float %store_forwarded1500)
  %indvars.iv.next1068 = add nuw nsw i64 %indvars.iv1067, 1
  %gep1232 = getelementptr float, ptr %invariant.gep1231, i64 %indvars.iv.next1068
  %490 = call float @llvm.fmuladd.f32(float %470, float %store_forwarded1500, float %489)
  store float %490, ptr %gep1228, align 4, !tbaa !9
  %491 = load float, ptr %gep1232, align 4, !tbaa !9
  %492 = fmul float %488, %474
  %493 = call float @llvm.fmuladd.f32(float %473, float %491, float %492)
  %gep1234 = getelementptr float, ptr %invariant.gep1233, i64 %indvars.iv.next1068
  store float %493, ptr %gep1234, align 4, !tbaa !9
  %exitcond1071.not = icmp eq i64 %indvars.iv.next1068, %wide.trip.count1070
  br i1 %exitcond1071.not, label %._crit_edge920, label %486, !llvm.loop !60

._crit_edge920:                                   ; preds = %.ph1494.lver.orig, %486, %.._crit_edge920_crit_edge
  %.pre-phi1210 = phi i64 [ %.pre1209, %.._crit_edge920_crit_edge ], [ %475, %486 ], [ %475, %.ph1494.lver.orig ]
  %494 = load float, ptr %6, align 4, !tbaa !9
  %495 = add nuw nsw i64 %indvars.iv1079, 2
  %496 = getelementptr float, ptr %40, i64 %495
  %497 = getelementptr float, ptr %496, i64 %.pre-phi1210
  %498 = load float, ptr %497, align 4, !tbaa !9
  %499 = fsub float %498, %494
  store float %499, ptr %497, align 4, !tbaa !9
  %.pre1198 = add nsw i64 %495, %404
  br label %500

500:                                              ; preds = %._crit_edge920, %._crit_edge925
  %.pre-phi1199 = phi i64 [ %.pre1198, %._crit_edge920 ], [ %446, %._crit_edge925 ]
  %501 = phi i32 [ %471, %._crit_edge920 ], [ %425, %._crit_edge925 ]
  %502 = sub nsw i32 %501, %indvars1081
  store i32 %502, ptr %22, align 4, !tbaa !5
  store i32 %502, ptr %23, align 4, !tbaa !5
  %503 = mul nsw i32 %38, %indvars
  %504 = sext i32 %503 to i64
  %505 = getelementptr float, ptr %40, i64 %indvars.iv1079
  %506 = getelementptr float, ptr %505, i64 %504
  %507 = call float @sasum_(ptr noundef nonnull %22, ptr noundef %506, ptr noundef nonnull %10) #6
  %508 = getelementptr inbounds float, ptr %40, i64 %.pre-phi1199
  %509 = call float @sasum_(ptr noundef nonnull %23, ptr noundef %508, ptr noundef nonnull @c__1) #6
  %510 = fadd float %507, %509
  %511 = getelementptr inbounds float, ptr %41, i64 %indvars.iv1079
  store float %510, ptr %511, align 4, !tbaa !9
  %512 = load i32, ptr %21, align 4, !tbaa !5
  %513 = sext i32 %512 to i64
  %.not868.not = icmp slt i64 %indvars.iv1079, %513
  %indvars.iv.next1066 = add nuw nsw i64 %indvars.iv1065, 1
  %indvar.next1497 = add i64 %indvar1496, 1
  br i1 %.not868.not, label %.lr.ph929, label %._crit_edge930.loopexit, !llvm.loop !61

._crit_edge930.loopexit:                          ; preds = %500
  %.pre1187 = load i32, ptr %2, align 4, !tbaa !5
  br label %._crit_edge930

._crit_edge930:                                   ; preds = %388, %._crit_edge930.loopexit
  %514 = phi i32 [ %.pre1187, %._crit_edge930.loopexit ], [ %393, %388 ]
  %515 = add i32 %38, 1
  %516 = mul i32 %514, %515
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds float, ptr %40, i64 %517
  %519 = load float, ptr %518, align 4, !tbaa !9
  %520 = fcmp oeq float %519, 0.000000e+00
  br i1 %520, label %521, label %529

521:                                              ; preds = %._crit_edge930
  %522 = add i32 %516, 1
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds float, ptr %40, i64 %523
  %525 = load float, ptr %524, align 4, !tbaa !9
  %526 = fcmp oeq float %525, 0.000000e+00
  br i1 %526, label %527, label %529

527:                                              ; preds = %521
  %528 = load float, ptr %12, align 4, !tbaa !9
  store float %528, ptr %518, align 4, !tbaa !9
  br label %529

529:                                              ; preds = %527, %521, %._crit_edge930
  %530 = sext i32 %514 to i64
  %531 = getelementptr inbounds float, ptr %41, i64 %530
  store float 0.000000e+00, ptr %531, align 4, !tbaa !9
  br label %678

532:                                              ; preds = %.loopexit899
  %533 = load i32, ptr %2, align 4, !tbaa !5
  %534 = add nsw i32 %533, 1
  %535 = mul nsw i32 %533, %38
  %536 = add nsw i32 %534, %535
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds float, ptr %40, i64 %537
  store float %387, ptr %538, align 4, !tbaa !9
  %539 = add nsw i32 %533, -1
  store i32 %539, ptr %21, align 4, !tbaa !5
  %.not864.not931 = icmp sgt i32 %533, 1
  br i1 %.not864.not931, label %.lr.ph934.preheader, label %._crit_edge947

.lr.ph934.preheader:                              ; preds = %532
  %540 = sext i32 %38 to i64
  %541 = zext nneg i32 %534 to i64
  %wide.trip.count1086 = zext nneg i32 %533 to i64
  %invariant.gep1243 = getelementptr float, ptr %40, i64 %541
  %542 = add nsw i64 %wide.trip.count1086, -1
  %min.iters.check1338 = icmp ugt i32 %533, 8
  %ident.check.not = icmp eq i32 %38, 1
  %or.cond = select i1 %min.iters.check1338, i1 %ident.check.not, i1 false
  br i1 %or.cond, label %vector.ph1339, label %.lr.ph934.preheader1528

.lr.ph934.preheader1528:                          ; preds = %middle.block1336, %.lr.ph934.preheader
  %indvars.iv1082.ph = phi i64 [ 1, %.lr.ph934.preheader ], [ %ind.end1342, %middle.block1336 ]
  %543 = sub nsw i64 %wide.trip.count1086, %indvars.iv1082.ph
  %xtraiter1535 = and i64 %543, 3
  %lcmp.mod1536.not = icmp eq i64 %xtraiter1535, 0
  br i1 %lcmp.mod1536.not, label %.lr.ph934.prol.loopexit, label %.lr.ph934.prol

.lr.ph934.prol:                                   ; preds = %.lr.ph934.preheader1528, %.lr.ph934.prol
  %indvars.iv1082.prol = phi i64 [ %indvars.iv.next1083.prol, %.lr.ph934.prol ], [ %indvars.iv1082.ph, %.lr.ph934.preheader1528 ]
  %prol.iter1537 = phi i64 [ %prol.iter1537.next, %.lr.ph934.prol ], [ 0, %.lr.ph934.preheader1528 ]
  %544 = mul nsw i64 %indvars.iv1082.prol, %540
  %gep1244.prol = getelementptr float, ptr %invariant.gep1243, i64 %544
  store float 0.000000e+00, ptr %gep1244.prol, align 4, !tbaa !9
  %indvars.iv.next1083.prol = add nuw nsw i64 %indvars.iv1082.prol, 1
  %prol.iter1537.next = add i64 %prol.iter1537, 1
  %prol.iter1537.cmp.not = icmp eq i64 %prol.iter1537.next, %xtraiter1535
  br i1 %prol.iter1537.cmp.not, label %.lr.ph934.prol.loopexit, label %.lr.ph934.prol, !llvm.loop !62

.lr.ph934.prol.loopexit:                          ; preds = %.lr.ph934.prol, %.lr.ph934.preheader1528
  %indvars.iv1082.unr = phi i64 [ %indvars.iv1082.ph, %.lr.ph934.preheader1528 ], [ %indvars.iv.next1083.prol, %.lr.ph934.prol ]
  %545 = sub nsw i64 %indvars.iv1082.ph, %wide.trip.count1086
  %546 = icmp ugt i64 %545, -4
  br i1 %546, label %.preheader898, label %.lr.ph934

vector.ph1339:                                    ; preds = %.lr.ph934.preheader
  %n.vec1341 = and i64 %542, -8
  %ind.end1342 = or disjoint i64 %n.vec1341, 1
  br label %vector.body1344

vector.body1344:                                  ; preds = %vector.body1344, %vector.ph1339
  %index1345 = phi i64 [ 0, %vector.ph1339 ], [ %index.next1347, %vector.body1344 ]
  %offset.idx1346 = or disjoint i64 %index1345, 1
  %547 = getelementptr float, ptr %invariant.gep1243, i64 %offset.idx1346
  %548 = getelementptr i8, ptr %547, i64 16
  store <4 x float> zeroinitializer, ptr %547, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %548, align 4, !tbaa !9
  %index.next1347 = add nuw i64 %index1345, 8
  %549 = icmp eq i64 %index.next1347, %n.vec1341
  br i1 %549, label %middle.block1336, label %vector.body1344, !llvm.loop !63

middle.block1336:                                 ; preds = %vector.body1344
  %cmp.n1348 = icmp eq i64 %542, %n.vec1341
  br i1 %cmp.n1348, label %.preheader898, label %.lr.ph934.preheader1528

.preheader898:                                    ; preds = %.lr.ph934.prol.loopexit, %.lr.ph934, %middle.block1336
  %invariant.gep = getelementptr i8, ptr %40, i64 4
  br i1 %.not864.not931, label %.lr.ph946.preheader, label %._crit_edge947

.lr.ph946.preheader:                              ; preds = %.preheader898
  %550 = sext i32 %38 to i64
  %551 = zext nneg i32 %533 to i64
  %invariant.gep1261 = getelementptr float, ptr %40, i64 %550
  %552 = shl nuw nsw i64 %wide.trip.count1086, 2
  %553 = add nsw i64 %552, -8
  %554 = shl nuw nsw i64 %wide.trip.count1086, 2
  %555 = add nsw i64 %554, -4
  %ident.check1476.not = icmp eq i32 %38, 1
  %ident.check1485.not = icmp eq i32 %38, 1
  br label %.lr.ph946

.lr.ph934:                                        ; preds = %.lr.ph934.prol.loopexit, %.lr.ph934
  %indvars.iv1082 = phi i64 [ %indvars.iv.next1083.3, %.lr.ph934 ], [ %indvars.iv1082.unr, %.lr.ph934.prol.loopexit ]
  %556 = mul nsw i64 %indvars.iv1082, %540
  %gep1244 = getelementptr float, ptr %invariant.gep1243, i64 %556
  store float 0.000000e+00, ptr %gep1244, align 4, !tbaa !9
  %indvars.iv.next1083 = add nuw nsw i64 %indvars.iv1082, 1
  %557 = mul nsw i64 %indvars.iv.next1083, %540
  %gep1244.1 = getelementptr float, ptr %invariant.gep1243, i64 %557
  store float 0.000000e+00, ptr %gep1244.1, align 4, !tbaa !9
  %indvars.iv.next1083.1 = add nuw nsw i64 %indvars.iv1082, 2
  %558 = mul nsw i64 %indvars.iv.next1083.1, %540
  %gep1244.2 = getelementptr float, ptr %invariant.gep1243, i64 %558
  store float 0.000000e+00, ptr %gep1244.2, align 4, !tbaa !9
  %indvars.iv.next1083.2 = add nuw nsw i64 %indvars.iv1082, 3
  %559 = mul nsw i64 %indvars.iv.next1083.2, %540
  %gep1244.3 = getelementptr float, ptr %invariant.gep1243, i64 %559
  store float 0.000000e+00, ptr %gep1244.3, align 4, !tbaa !9
  %indvars.iv.next1083.3 = add nuw nsw i64 %indvars.iv1082, 4
  %exitcond1087.not.3 = icmp eq i64 %indvars.iv.next1083.3, %wide.trip.count1086
  br i1 %exitcond1087.not.3, label %.preheader898, label %.lr.ph934, !llvm.loop !64

.lr.ph946:                                        ; preds = %.lr.ph946.preheader, %660
  %indvar1480 = phi i64 [ 0, %.lr.ph946.preheader ], [ %indvar.next1481, %660 ]
  %indvars.iv1102 = phi i64 [ %551, %.lr.ph946.preheader ], [ %indvars.iv.next1103, %660 ]
  %560 = shl i64 %indvar1480, 2
  %561 = sub i64 %555, %560
  %scevgep1489 = getelementptr i8, ptr %9, i64 %561
  %562 = shl i64 %indvar1480, 2
  %563 = sub i64 %553, %562
  %scevgep1482 = getelementptr i8, ptr %9, i64 %563
  %indvars1105 = trunc i64 %indvars.iv1102 to i32
  %indvars.iv.next1103 = add nsw i64 %indvars.iv1102, -1
  %indvars1104 = trunc i64 %indvars.iv.next1103 to i32
  %564 = mul nsw i32 %33, %indvars1104
  %565 = sext i32 %564 to i64
  %566 = getelementptr float, ptr %35, i64 %indvars.iv1102
  %567 = getelementptr float, ptr %566, i64 %565
  %568 = load float, ptr %567, align 4, !tbaa !9
  %569 = mul nsw i64 %indvars.iv1102, %550
  %570 = mul nsw i32 %38, %indvars1105
  %571 = sext i32 %570 to i64
  %572 = getelementptr float, ptr %40, i64 %indvars.iv1102
  %573 = getelementptr float, ptr %572, i64 %571
  %574 = add nuw nsw i64 %indvars.iv1102, 1
  %575 = getelementptr float, ptr %40, i64 %574
  %576 = getelementptr float, ptr %575, i64 %569
  %577 = call float @slapy2_(ptr noundef %573, ptr noundef %576) #6
  %578 = fcmp oge float %568, 0.000000e+00
  %579 = fneg float %568
  %580 = select i1 %578, float %568, float %579
  %581 = fcmp olt float %577, %580
  br i1 %581, label %.lver.check1486, label %618

.lver.check1486:                                  ; preds = %.lr.ph946
  %582 = load float, ptr %573, align 4, !tbaa !9
  %583 = fdiv float %582, %568
  store float %583, ptr %30, align 4, !tbaa !9
  %584 = load float, ptr %576, align 4, !tbaa !9
  %585 = fdiv float %584, %568
  store float %585, ptr %29, align 4, !tbaa !9
  store float %568, ptr %573, align 4, !tbaa !9
  store float 0.000000e+00, ptr %576, align 4, !tbaa !9
  %586 = mul nsw i64 %indvars.iv.next1103, %550
  %587 = fneg float %583
  %588 = fneg float %585
  %invariant.gep1253 = getelementptr float, ptr %40, i64 %586
  %invariant.gep1255 = getelementptr float, ptr %40, i64 %569
  %invariant.gep1257 = getelementptr float, ptr %40, i64 %574
  %invariant.gep1259 = getelementptr float, ptr %40, i64 %indvars.iv1102
  br i1 %ident.check1485.not, label %.ph1487, label %.ph1487.lver.orig

.ph1487.lver.orig:                                ; preds = %.lver.check1486, %.ph1487.lver.orig
  %indvars.iv1096.lver.orig = phi i64 [ %indvars.iv.next1097.lver.orig, %.ph1487.lver.orig ], [ 1, %.lver.check1486 ]
  %gep1254.lver.orig = getelementptr float, ptr %invariant.gep1253, i64 %indvars.iv1096.lver.orig
  %589 = load float, ptr %gep1254.lver.orig, align 4, !tbaa !9
  %gep1256.lver.orig = getelementptr float, ptr %invariant.gep1255, i64 %indvars.iv1096.lver.orig
  %590 = load float, ptr %gep1256.lver.orig, align 4, !tbaa !9
  %591 = call float @llvm.fmuladd.f32(float %587, float %589, float %590)
  store float %591, ptr %gep1254.lver.orig, align 4, !tbaa !9
  %592 = mul nsw i64 %indvars.iv1096.lver.orig, %550
  %gep1258.lver.orig = getelementptr float, ptr %invariant.gep1257, i64 %592
  %593 = load float, ptr %gep1258.lver.orig, align 4, !tbaa !9
  %594 = call float @llvm.fmuladd.f32(float %588, float %589, float %593)
  %gep1260.lver.orig = getelementptr float, ptr %invariant.gep1259, i64 %592
  store float %594, ptr %gep1260.lver.orig, align 4, !tbaa !9
  store float %589, ptr %gep1256.lver.orig, align 4, !tbaa !9
  store float 0.000000e+00, ptr %gep1258.lver.orig, align 4, !tbaa !9
  %indvars.iv.next1097.lver.orig = add nuw nsw i64 %indvars.iv1096.lver.orig, 1
  %exitcond1101.not.lver.orig = icmp eq i64 %indvars.iv.next1097.lver.orig, %indvars.iv1102
  br i1 %exitcond1101.not.lver.orig, label %._crit_edge944, label %.ph1487.lver.orig, !llvm.loop !65

.ph1487:                                          ; preds = %.lver.check1486
  %load_initial1490 = load float, ptr %scevgep1489, align 4
  %gep1254.peel = getelementptr i8, ptr %invariant.gep1253, i64 4
  %595 = load float, ptr %gep1254.peel, align 4, !tbaa !9
  %gep1256.peel = getelementptr i8, ptr %invariant.gep1255, i64 4
  %596 = call float @llvm.fmuladd.f32(float %587, float %595, float %load_initial1490)
  store float %596, ptr %gep1254.peel, align 4, !tbaa !9
  %gep1258.peel = getelementptr float, ptr %invariant.gep1257, i64 %550
  %597 = load float, ptr %gep1258.peel, align 4, !tbaa !9
  %598 = call float @llvm.fmuladd.f32(float %588, float %595, float %597)
  %gep1260.peel = getelementptr float, ptr %invariant.gep1259, i64 %550
  store float %598, ptr %gep1260.peel, align 4, !tbaa !9
  store float %595, ptr %gep1256.peel, align 4, !tbaa !9
  store float 0.000000e+00, ptr %gep1258.peel, align 4, !tbaa !9
  %exitcond1101.not.peel = icmp eq i64 %indvars.iv1102, 2
  br i1 %exitcond1101.not.peel, label %._crit_edge944, label %.ph1487.peel.newph

.ph1487.peel.newph:                               ; preds = %.ph1487, %.ph1487.peel.newph
  %indvars.iv1096 = phi i64 [ %indvars.iv.next1097, %.ph1487.peel.newph ], [ 2, %.ph1487 ]
  %gep1254 = getelementptr float, ptr %invariant.gep1253, i64 %indvars.iv1096
  %599 = load float, ptr %gep1254, align 4, !tbaa !9
  %gep1256 = getelementptr float, ptr %invariant.gep1255, i64 %indvars.iv1096
  %600 = call float @llvm.fmuladd.f32(float %587, float %599, float 0.000000e+00)
  store float %600, ptr %gep1254, align 4, !tbaa !9
  %601 = mul nuw nsw i64 %indvars.iv1096, %550
  %gep1258 = getelementptr float, ptr %invariant.gep1257, i64 %601
  %602 = load float, ptr %gep1258, align 4, !tbaa !9
  %603 = call float @llvm.fmuladd.f32(float %588, float %599, float %602)
  %gep1260 = getelementptr float, ptr %invariant.gep1259, i64 %601
  store float %603, ptr %gep1260, align 4, !tbaa !9
  store float %599, ptr %gep1256, align 4, !tbaa !9
  store float 0.000000e+00, ptr %gep1258, align 4, !tbaa !9
  %indvars.iv.next1097 = add nuw nsw i64 %indvars.iv1096, 1
  %exitcond1101.not = icmp eq i64 %indvars.iv.next1097, %indvars.iv1102
  br i1 %exitcond1101.not, label %._crit_edge944, label %.ph1487.peel.newph, !llvm.loop !66

._crit_edge944:                                   ; preds = %.ph1487.lver.orig, %.ph1487, %.ph1487.peel.newph
  %604 = load float, ptr %6, align 4, !tbaa !9
  %605 = mul nsw i32 %38, %indvars1104
  %606 = getelementptr float, ptr %40, i64 %586
  %607 = getelementptr float, ptr %606, i64 %574
  store float %604, ptr %607, align 4, !tbaa !9
  %608 = getelementptr float, ptr %40, i64 %586
  %609 = getelementptr float, ptr %608, i64 %indvars.iv.next1103
  %610 = load float, ptr %609, align 4, !tbaa !9
  %611 = call float @llvm.fmuladd.f32(float %585, float %604, float %610)
  store float %611, ptr %609, align 4, !tbaa !9
  %612 = load float, ptr %6, align 4, !tbaa !9
  %613 = sext i32 %605 to i64
  %614 = getelementptr float, ptr %40, i64 %indvars.iv1102
  %615 = getelementptr float, ptr %614, i64 %613
  %616 = load float, ptr %615, align 4, !tbaa !9
  %617 = call float @llvm.fmuladd.f32(float %587, float %612, float %616)
  store float %617, ptr %615, align 4, !tbaa !9
  br label %660

618:                                              ; preds = %.lr.ph946
  %619 = fcmp oeq float %577, 0.000000e+00
  br i1 %619, label %620, label %._crit_edge1188

._crit_edge1188:                                  ; preds = %618
  %.pre1189 = load float, ptr %576, align 4, !tbaa !9
  br label %.lver.check1477

620:                                              ; preds = %618
  %621 = load float, ptr %12, align 4, !tbaa !9
  store float %621, ptr %573, align 4, !tbaa !9
  store float 0.000000e+00, ptr %576, align 4, !tbaa !9
  %622 = load float, ptr %12, align 4, !tbaa !9
  br label %.lver.check1477

.lver.check1477:                                  ; preds = %620, %._crit_edge1188
  %623 = phi float [ 0.000000e+00, %620 ], [ %.pre1189, %._crit_edge1188 ]
  %.0830 = phi float [ %622, %620 ], [ %577, %._crit_edge1188 ]
  %624 = fdiv float %568, %.0830
  %625 = fdiv float %624, %.0830
  %626 = load float, ptr %573, align 4, !tbaa !9
  %627 = fmul float %626, %625
  store float %627, ptr %30, align 4, !tbaa !9
  %628 = fneg float %623
  %629 = fmul float %625, %628
  store float %629, ptr %29, align 4, !tbaa !9
  %630 = mul nsw i64 %indvars.iv.next1103, %550
  %631 = fneg float %627
  %632 = fneg float %629
  %invariant.gep1245 = getelementptr float, ptr %40, i64 %630
  %invariant.gep1247 = getelementptr float, ptr %40, i64 %569
  %invariant.gep1249 = getelementptr float, ptr %40, i64 %574
  %invariant.gep1251 = getelementptr float, ptr %40, i64 %indvars.iv1102
  br i1 %ident.check1476.not, label %.ph1478, label %.ph1478.lver.orig

.ph1478.lver.orig:                                ; preds = %.lver.check1477, %.ph1478.lver.orig
  %indvars.iv1088.lver.orig = phi i64 [ %indvars.iv.next1089.lver.orig, %.ph1478.lver.orig ], [ 1, %.lver.check1477 ]
  %gep1246.lver.orig = getelementptr float, ptr %invariant.gep1245, i64 %indvars.iv1088.lver.orig
  %633 = load float, ptr %gep1246.lver.orig, align 4, !tbaa !9
  %gep1248.lver.orig = getelementptr float, ptr %invariant.gep1247, i64 %indvars.iv1088.lver.orig
  %634 = load float, ptr %gep1248.lver.orig, align 4, !tbaa !9
  %635 = call float @llvm.fmuladd.f32(float %631, float %634, float %633)
  %636 = mul nsw i64 %indvars.iv1088.lver.orig, %550
  %gep1250.lver.orig = getelementptr float, ptr %invariant.gep1249, i64 %636
  %637 = load float, ptr %gep1250.lver.orig, align 4, !tbaa !9
  %638 = call float @llvm.fmuladd.f32(float %629, float %637, float %635)
  store float %638, ptr %gep1246.lver.orig, align 4, !tbaa !9
  %639 = load float, ptr %gep1250.lver.orig, align 4, !tbaa !9
  %640 = load float, ptr %gep1248.lver.orig, align 4, !tbaa !9
  %641 = fmul float %640, %632
  %642 = call float @llvm.fmuladd.f32(float %631, float %639, float %641)
  %gep1252.lver.orig = getelementptr float, ptr %invariant.gep1251, i64 %636
  store float %642, ptr %gep1252.lver.orig, align 4, !tbaa !9
  %indvars.iv.next1089.lver.orig = add nuw nsw i64 %indvars.iv1088.lver.orig, 1
  %exitcond1093.not.lver.orig = icmp eq i64 %indvars.iv.next1089.lver.orig, %indvars.iv1102
  br i1 %exitcond1093.not.lver.orig, label %._crit_edge939, label %.ph1478.lver.orig, !llvm.loop !68

.ph1478:                                          ; preds = %.lver.check1477
  %load_initial1483 = load float, ptr %scevgep1482, align 4
  br label %643

643:                                              ; preds = %.ph1478, %643
  %store_forwarded1484 = phi float [ %load_initial1483, %.ph1478 ], [ %652, %643 ]
  %indvars.iv1088 = phi i64 [ 1, %.ph1478 ], [ %indvars.iv.next1089, %643 ]
  %gep1246 = getelementptr float, ptr %invariant.gep1245, i64 %indvars.iv1088
  %gep1248 = getelementptr float, ptr %invariant.gep1247, i64 %indvars.iv1088
  %644 = load float, ptr %gep1248, align 4, !tbaa !9
  %645 = call float @llvm.fmuladd.f32(float %631, float %644, float %store_forwarded1484)
  %646 = mul nuw nsw i64 %indvars.iv1088, %550
  %gep1250 = getelementptr float, ptr %invariant.gep1249, i64 %646
  %647 = load float, ptr %gep1250, align 4, !tbaa !9
  %648 = call float @llvm.fmuladd.f32(float %629, float %647, float %645)
  store float %648, ptr %gep1246, align 4, !tbaa !9
  %649 = load float, ptr %gep1250, align 4, !tbaa !9
  %650 = load float, ptr %gep1248, align 4, !tbaa !9
  %651 = fmul float %650, %632
  %652 = call float @llvm.fmuladd.f32(float %631, float %649, float %651)
  %gep1252 = getelementptr float, ptr %invariant.gep1251, i64 %646
  store float %652, ptr %gep1252, align 4, !tbaa !9
  %indvars.iv.next1089 = add nuw nsw i64 %indvars.iv1088, 1
  %exitcond1093.not = icmp eq i64 %indvars.iv.next1089, %indvars.iv1102
  br i1 %exitcond1093.not, label %._crit_edge939, label %643, !llvm.loop !68

._crit_edge939:                                   ; preds = %.ph1478.lver.orig, %643
  %653 = load float, ptr %6, align 4, !tbaa !9
  %654 = mul nsw i32 %38, %indvars1104
  %655 = sext i32 %654 to i64
  %656 = getelementptr float, ptr %40, i64 %indvars.iv1102
  %657 = getelementptr float, ptr %656, i64 %655
  %658 = load float, ptr %657, align 4, !tbaa !9
  %659 = fadd float %653, %658
  store float %659, ptr %657, align 4, !tbaa !9
  br label %660

660:                                              ; preds = %._crit_edge939, %._crit_edge944
  store i32 %indvars1104, ptr %21, align 4, !tbaa !5
  store i32 %indvars1104, ptr %22, align 4, !tbaa !5
  %gep = getelementptr float, ptr %invariant.gep, i64 %569
  %661 = call float @sasum_(ptr noundef nonnull %21, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %gep1262 = getelementptr float, ptr %invariant.gep1261, i64 %574
  %662 = call float @sasum_(ptr noundef nonnull %22, ptr noundef %gep1262, ptr noundef nonnull %10) #6
  %663 = fadd float %661, %662
  %664 = getelementptr inbounds float, ptr %41, i64 %indvars.iv1102
  store float %663, ptr %664, align 4, !tbaa !9
  %665 = icmp sgt i64 %indvars.iv1102, 2
  %indvar.next1481 = add i64 %indvar1480, 1
  br i1 %665, label %.lr.ph946, label %._crit_edge947, !llvm.loop !69

._crit_edge947:                                   ; preds = %660, %532, %.preheader898
  %666 = load float, ptr %9, align 4, !tbaa !9
  %667 = fcmp oeq float %666, 0.000000e+00
  br i1 %667, label %668, label %676

668:                                              ; preds = %._crit_edge947
  %669 = sext i32 %38 to i64
  %670 = getelementptr float, ptr %40, i64 %669
  %671 = getelementptr i8, ptr %670, i64 8
  %672 = load float, ptr %671, align 4, !tbaa !9
  %673 = fcmp oeq float %672, 0.000000e+00
  br i1 %673, label %674, label %676

674:                                              ; preds = %668
  %675 = load float, ptr %12, align 4, !tbaa !9
  store float %675, ptr %9, align 4, !tbaa !9
  br label %676

676:                                              ; preds = %674, %668, %._crit_edge947
  store float 0.000000e+00, ptr %11, align 4, !tbaa !9
  %677 = load i32, ptr %2, align 4, !tbaa !5
  br label %678

678:                                              ; preds = %676, %529
  %679 = phi i32 [ %514, %529 ], [ %677, %676 ]
  %.0835 = phi i32 [ %514, %529 ], [ 1, %676 ]
  %.0834 = phi i32 [ 1, %529 ], [ %677, %676 ]
  %.0833 = phi i32 [ -1, %529 ], [ 1, %676 ]
  store i32 %679, ptr %21, align 4, !tbaa !5
  %.not869982 = icmp slt i32 %679, 1
  br i1 %.not869982, label %._crit_edge986, label %.lr.ph985

.lr.ph985:                                        ; preds = %678
  %680 = fadd float %sqrtf, 1.000000e+00
  %681 = sext i32 %38 to i64
  %682 = icmp sge i32 %.0835, %.0834
  %683 = icmp sle i32 %.0835, %.0834
  %.in967 = select i1 %.not863.not, i1 %683, i1 %682
  %invariant.gep1273 = getelementptr i8, ptr %40, i64 4
  %684 = sub i64 %20, %19
  %685 = sub i64 %18, %17
  %diff.check1364 = icmp ult i64 %685, 32
  %diff.check = icmp ult i64 %684, 32
  br label %686

686:                                              ; preds = %.lr.ph985, %._crit_edge979
  %.1983 = phi i32 [ 1, %.lr.ph985 ], [ %885, %._crit_edge979 ]
  %687 = load float, ptr %14, align 4, !tbaa !9
  store i32 %.0834, ptr %22, align 4, !tbaa !5
  store i32 %.0833, ptr %23, align 4, !tbaa !5
  br i1 %.in967, label %.lr.ph973, label %._crit_edge974

.lr.ph973:                                        ; preds = %686, %840
  %688 = phi float [ %841, %840 ], [ 1.000000e+00, %686 ]
  %.0836971 = phi float [ %.1837, %840 ], [ %687, %686 ]
  %.11969 = phi i32 [ %843, %840 ], [ %.0835, %686 ]
  %.0851968 = phi float [ %.3854, %840 ], [ 1.000000e+00, %686 ]
  %689 = sext i32 %.11969 to i64
  %690 = getelementptr inbounds float, ptr %41, i64 %689
  %691 = load float, ptr %690, align 4, !tbaa !9
  %692 = fcmp ogt float %691, %.0836971
  br i1 %692, label %693, label %697

693:                                              ; preds = %.lr.ph973
  %694 = fdiv float 1.000000e+00, %.0851968
  store float %694, ptr %32, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %32, ptr noundef %7, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %32, ptr noundef %8, ptr noundef nonnull @c__1) #6
  %695 = load float, ptr %32, align 4, !tbaa !9
  %696 = fmul float %695, %688
  br label %697

697:                                              ; preds = %693, %.lr.ph973
  %698 = phi float [ %696, %693 ], [ %688, %.lr.ph973 ]
  %.1852 = phi float [ 1.000000e+00, %693 ], [ %.0851968, %.lr.ph973 ]
  %699 = getelementptr inbounds float, ptr %36, i64 %689
  %700 = load float, ptr %699, align 4, !tbaa !9
  store float %700, ptr %30, align 4, !tbaa !9
  %701 = getelementptr inbounds float, ptr %37, i64 %689
  %702 = load float, ptr %701, align 4, !tbaa !9
  store float %702, ptr %29, align 4, !tbaa !9
  %703 = load i32, ptr %0, align 4, !tbaa !5
  %.not872 = icmp eq i32 %703, 0
  br i1 %.not872, label %.preheader, label %709

.preheader:                                       ; preds = %697
  %.not873.not957 = icmp sgt i32 %.11969, 1
  %704 = insertelement <2 x float> poison, float %702, i64 0
  %705 = insertelement <2 x float> %704, float %700, i64 1
  br i1 %.not873.not957, label %.lr.ph959, label %.loopexit895

.lr.ph959:                                        ; preds = %.preheader
  %706 = mul nsw i32 %.11969, %38
  %707 = sext i32 %706 to i64
  %wide.trip.count1115 = zext nneg i32 %.11969 to i64
  %invariant.gep1267 = getelementptr float, ptr %40, i64 %707
  %708 = zext nneg i32 %.11969 to i64
  %gep1274 = getelementptr float, ptr %invariant.gep1273, i64 %708
  br label %738

709:                                              ; preds = %697
  %710 = load i32, ptr %2, align 4, !tbaa !5
  %.not874949.not = icmp slt i32 %.11969, %710
  %711 = insertelement <2 x float> poison, float %702, i64 0
  %712 = insertelement <2 x float> %711, float %700, i64 1
  br i1 %.not874949.not, label %.lr.ph952, label %.loopexit895

.lr.ph952:                                        ; preds = %709
  %713 = mul nsw i32 %.11969, %38
  %714 = add nsw i64 %689, 1
  %715 = sext i32 %713 to i64
  %716 = add i32 %710, 1
  %invariant.gep1263 = getelementptr float, ptr %40, i64 %689
  %invariant.gep1265 = getelementptr float, ptr %40, i64 %715
  br label %717

717:                                              ; preds = %.lr.ph952, %717
  %indvars.iv1106 = phi i64 [ %714, %.lr.ph952 ], [ %indvars.iv.next1107, %717 ]
  %718 = phi <2 x float> [ %712, %.lr.ph952 ], [ %737, %717 ]
  %719 = mul nsw i64 %indvars.iv1106, %681
  %gep1264 = getelementptr float, ptr %invariant.gep1263, i64 %719
  %720 = load float, ptr %gep1264, align 4, !tbaa !9
  %721 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1106
  %722 = load float, ptr %721, align 4, !tbaa !9
  %723 = fneg float %720
  %indvars.iv.next1107 = add nsw i64 %indvars.iv1106, 1
  %gep1266 = getelementptr float, ptr %invariant.gep1265, i64 %indvars.iv.next1107
  %724 = load float, ptr %gep1266, align 4, !tbaa !9
  %725 = getelementptr inbounds float, ptr %37, i64 %indvars.iv1106
  %726 = load float, ptr %725, align 4, !tbaa !9
  %727 = insertelement <2 x float> poison, float %723, i64 0
  %728 = shufflevector <2 x float> %727, <2 x float> poison, <2 x i32> zeroinitializer
  %729 = insertelement <2 x float> poison, float %726, i64 0
  %730 = insertelement <2 x float> %729, float %722, i64 1
  %731 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %728, <2 x float> %730, <2 x float> %718)
  %732 = fneg float %724
  %733 = insertelement <2 x float> poison, float %732, i64 0
  %734 = insertelement <2 x float> %733, float %724, i64 1
  %735 = insertelement <2 x float> poison, float %722, i64 0
  %736 = insertelement <2 x float> %735, float %726, i64 1
  %737 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %734, <2 x float> %736, <2 x float> %731)
  %lftr.wideiv = trunc i64 %indvars.iv.next1107 to i32
  %exitcond1110.not = icmp eq i32 %716, %lftr.wideiv
  br i1 %exitcond1110.not, label %..loopexit896_crit_edge, label %717, !llvm.loop !70

738:                                              ; preds = %.lr.ph959, %738
  %indvars.iv1111 = phi i64 [ 1, %.lr.ph959 ], [ %indvars.iv.next1112, %738 ]
  %739 = phi <2 x float> [ %705, %.lr.ph959 ], [ %758, %738 ]
  %gep1268 = getelementptr float, ptr %invariant.gep1267, i64 %indvars.iv1111
  %740 = load float, ptr %gep1268, align 4, !tbaa !9
  %741 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1111
  %742 = load float, ptr %741, align 4, !tbaa !9
  %743 = fneg float %740
  %744 = mul nsw i64 %indvars.iv1111, %681
  %gep1272 = getelementptr float, ptr %gep1274, i64 %744
  %745 = load float, ptr %gep1272, align 4, !tbaa !9
  %746 = getelementptr inbounds float, ptr %37, i64 %indvars.iv1111
  %747 = load float, ptr %746, align 4, !tbaa !9
  %748 = insertelement <2 x float> poison, float %743, i64 0
  %749 = shufflevector <2 x float> %748, <2 x float> poison, <2 x i32> zeroinitializer
  %750 = insertelement <2 x float> poison, float %747, i64 0
  %751 = insertelement <2 x float> %750, float %742, i64 1
  %752 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %749, <2 x float> %751, <2 x float> %739)
  %753 = fneg float %745
  %754 = insertelement <2 x float> poison, float %753, i64 0
  %755 = insertelement <2 x float> %754, float %745, i64 1
  %756 = insertelement <2 x float> poison, float %742, i64 0
  %757 = insertelement <2 x float> %756, float %747, i64 1
  %758 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %755, <2 x float> %757, <2 x float> %752)
  %indvars.iv.next1112 = add nuw nsw i64 %indvars.iv1111, 1
  %exitcond1116.not = icmp eq i64 %indvars.iv.next1112, %wide.trip.count1115
  br i1 %exitcond1116.not, label %..loopexit895_crit_edge, label %738, !llvm.loop !71

..loopexit895_crit_edge:                          ; preds = %738
  %759 = extractelement <2 x float> %758, i64 1
  store float %759, ptr %30, align 4, !tbaa !9
  %760 = extractelement <2 x float> %758, i64 0
  store float %760, ptr %29, align 4, !tbaa !9
  br label %.loopexit895

..loopexit896_crit_edge:                          ; preds = %717
  %761 = extractelement <2 x float> %737, i64 1
  store float %761, ptr %30, align 4, !tbaa !9
  %762 = extractelement <2 x float> %737, i64 0
  store float %762, ptr %29, align 4, !tbaa !9
  br label %.loopexit895

.loopexit895:                                     ; preds = %709, %..loopexit896_crit_edge, %.preheader, %..loopexit895_crit_edge
  %763 = phi <2 x float> [ %712, %709 ], [ %737, %..loopexit896_crit_edge ], [ %705, %.preheader ], [ %758, %..loopexit895_crit_edge ]
  %764 = mul nsw i32 %.11969, %38
  %765 = add nsw i32 %764, %.11969
  %766 = sext i32 %765 to i64
  %767 = getelementptr inbounds float, ptr %40, i64 %766
  %768 = load float, ptr %767, align 4, !tbaa !9
  store float %768, ptr %24, align 4, !tbaa !9
  %769 = fcmp oge float %768, 0.000000e+00
  %770 = fneg float %768
  %771 = select i1 %769, float %768, float %770
  %772 = add nsw i32 %.11969, 1
  %773 = add nsw i32 %772, %764
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds float, ptr %40, i64 %774
  %776 = load float, ptr %775, align 4, !tbaa !9
  store float %776, ptr %25, align 4, !tbaa !9
  %777 = fcmp oge float %776, 0.000000e+00
  %778 = fneg float %776
  %779 = select i1 %777, float %776, float %778
  %780 = fadd float %771, %779
  %781 = load float, ptr %13, align 4, !tbaa !9
  %782 = fcmp ogt float %780, %781
  br i1 %782, label %783, label %816

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

785:                                              ; preds = %783
  %786 = fcmp oge <2 x float> %763, zeroinitializer
  %787 = fneg <2 x float> %763
  %788 = select <2 x i1> %786, <2 x float> %763, <2 x float> %787
  %shift = shufflevector <2 x float> %788, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %789 = fadd <2 x float> %shift, %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 %801

794:                                              ; preds = %785
  %795 = fdiv float 1.000000e+00, %790
  store float %795, ptr %32, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %32, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %32, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #6
  %796 = load float, ptr %699, align 4, !tbaa !9
  store float %796, ptr %30, align 4, !tbaa !9
  %797 = load float, ptr %701, align 4, !tbaa !9
  store float %797, ptr %29, align 4, !tbaa !9
  %798 = load float, ptr %32, align 4, !tbaa !9
  %799 = fmul float %798, %698
  %800 = fmul float %.1852, %798
  br label %801

801:                                              ; preds = %785, %794, %783
  %802 = phi float [ %799, %794 ], [ %698, %785 ], [ %698, %783 ]
  %.2853 = phi float [ %800, %794 ], [ %.1852, %785 ], [ %.1852, %783 ]
  call void @sladiv_(ptr noundef nonnull %30, ptr noundef nonnull %29, ptr noundef nonnull %767, ptr noundef nonnull %775, ptr noundef nonnull %699, ptr noundef nonnull %701) #6
  %803 = load float, ptr %699, align 4, !tbaa !9
  store float %803, ptr %24, align 4, !tbaa !9
  %804 = fcmp oge float %803, 0.000000e+00
  %805 = fneg float %803
  %806 = select i1 %804, float %803, float %805
  %807 = load float, ptr %701, align 4, !tbaa !9
  store float %807, ptr %25, align 4, !tbaa !9
  %808 = fcmp oge float %807, 0.000000e+00
  %809 = fneg float %807
  %810 = select i1 %808, float %807, float %809
  %811 = fadd float %806, %810
  %812 = fcmp oge float %811, %.2853
  %813 = select i1 %812, float %811, float %.2853
  %814 = load float, ptr %14, align 4, !tbaa !9
  %815 = fdiv float %814, %813
  br label %840

816:                                              ; preds = %.loopexit895
  %817 = load i32, ptr %2, align 4, !tbaa !5
  %.not875962 = icmp slt i32 %817, 1
  br i1 %.not875962, label %._crit_edge966, label %.lr.ph965.preheader

.lr.ph965.preheader:                              ; preds = %816
  %818 = add nuw i32 %817, 1
  %wide.trip.count1121 = zext i32 %818 to i64
  %819 = zext nneg i32 %817 to i64
  %min.iters.check1367 = icmp ult i32 %817, 8
  %or.cond1510 = or i1 %min.iters.check1367, %diff.check1364
  br i1 %or.cond1510, label %.lr.ph965.preheader1521, label %vector.ph1368

vector.ph1368:                                    ; preds = %.lr.ph965.preheader
  %n.vec1370 = and i64 %819, 2147483640
  %ind.end1371 = or disjoint i64 %n.vec1370, 1
  br label %vector.body1373

vector.body1373:                                  ; preds = %vector.body1373, %vector.ph1368
  %index1374 = phi i64 [ 0, %vector.ph1368 ], [ %index.next1376, %vector.body1373 ]
  %820 = getelementptr float, ptr %7, i64 %index1374
  %821 = getelementptr inbounds i8, ptr %820, i64 16
  store <4 x float> zeroinitializer, ptr %820, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %821, align 4, !tbaa !9
  %822 = getelementptr float, ptr %8, i64 %index1374
  %823 = getelementptr inbounds i8, ptr %822, i64 16
  store <4 x float> zeroinitializer, ptr %822, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %823, align 4, !tbaa !9
  %index.next1376 = add nuw i64 %index1374, 8
  %824 = icmp eq i64 %index.next1376, %n.vec1370
  br i1 %824, label %middle.block1365, label %vector.body1373, !llvm.loop !72

middle.block1365:                                 ; preds = %vector.body1373
  %cmp.n1377 = icmp eq i64 %n.vec1370, %819
  br i1 %cmp.n1377, label %._crit_edge966, label %.lr.ph965.preheader1521

.lr.ph965.preheader1521:                          ; preds = %middle.block1365, %.lr.ph965.preheader
  %indvars.iv1117.ph = phi i64 [ 1, %.lr.ph965.preheader ], [ %ind.end1371, %middle.block1365 ]
  %825 = sub nsw i64 %wide.trip.count1121, %indvars.iv1117.ph
  %826 = zext nneg i32 %817 to i64
  %827 = sub nsw i64 %826, %indvars.iv1117.ph
  %xtraiter1539 = and i64 %825, 3
  %lcmp.mod1540.not = icmp eq i64 %xtraiter1539, 0
  br i1 %lcmp.mod1540.not, label %.lr.ph965.prol.loopexit, label %.lr.ph965.prol

.lr.ph965.prol:                                   ; preds = %.lr.ph965.preheader1521, %.lr.ph965.prol
  %indvars.iv1117.prol = phi i64 [ %indvars.iv.next1118.prol, %.lr.ph965.prol ], [ %indvars.iv1117.ph, %.lr.ph965.preheader1521 ]
  %prol.iter1541 = phi i64 [ %prol.iter1541.next, %.lr.ph965.prol ], [ 0, %.lr.ph965.preheader1521 ]
  %828 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1117.prol
  store float 0.000000e+00, ptr %828, align 4, !tbaa !9
  %829 = getelementptr inbounds float, ptr %37, i64 %indvars.iv1117.prol
  store float 0.000000e+00, ptr %829, align 4, !tbaa !9
  %indvars.iv.next1118.prol = add nuw nsw i64 %indvars.iv1117.prol, 1
  %prol.iter1541.next = add i64 %prol.iter1541, 1
  %prol.iter1541.cmp.not = icmp eq i64 %prol.iter1541.next, %xtraiter1539
  br i1 %prol.iter1541.cmp.not, label %.lr.ph965.prol.loopexit, label %.lr.ph965.prol, !llvm.loop !73

.lr.ph965.prol.loopexit:                          ; preds = %.lr.ph965.prol, %.lr.ph965.preheader1521
  %indvars.iv1117.unr = phi i64 [ %indvars.iv1117.ph, %.lr.ph965.preheader1521 ], [ %indvars.iv.next1118.prol, %.lr.ph965.prol ]
  %830 = icmp ult i64 %827, 3
  br i1 %830, label %._crit_edge966, label %.lr.ph965

.lr.ph965:                                        ; preds = %.lr.ph965.prol.loopexit, %.lr.ph965
  %indvars.iv1117 = phi i64 [ %indvars.iv.next1118.3, %.lr.ph965 ], [ %indvars.iv1117.unr, %.lr.ph965.prol.loopexit ]
  %831 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1117
  store float 0.000000e+00, ptr %831, align 4, !tbaa !9
  %832 = getelementptr inbounds float, ptr %37, i64 %indvars.iv1117
  store float 0.000000e+00, ptr %832, align 4, !tbaa !9
  %833 = getelementptr float, ptr %7, i64 %indvars.iv1117
  store float 0.000000e+00, ptr %833, align 4, !tbaa !9
  %834 = getelementptr float, ptr %8, i64 %indvars.iv1117
  store float 0.000000e+00, ptr %834, align 4, !tbaa !9
  %indvars.iv.next1118.1 = add nuw nsw i64 %indvars.iv1117, 2
  %835 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next1118.1
  store float 0.000000e+00, ptr %835, align 4, !tbaa !9
  %836 = getelementptr inbounds float, ptr %37, i64 %indvars.iv.next1118.1
  store float 0.000000e+00, ptr %836, align 4, !tbaa !9
  %indvars.iv.next1118.2 = add nuw nsw i64 %indvars.iv1117, 3
  %837 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next1118.2
  store float 0.000000e+00, ptr %837, align 4, !tbaa !9
  %838 = getelementptr inbounds float, ptr %37, i64 %indvars.iv.next1118.2
  store float 0.000000e+00, ptr %838, align 4, !tbaa !9
  %indvars.iv.next1118.3 = add nuw nsw i64 %indvars.iv1117, 4
  %exitcond1122.not.3 = icmp eq i64 %indvars.iv.next1118.3, %wide.trip.count1121
  br i1 %exitcond1122.not.3, label %._crit_edge966, label %.lr.ph965, !llvm.loop !74

._crit_edge966:                                   ; preds = %.lr.ph965.prol.loopexit, %.lr.ph965, %middle.block1365, %816
  store float 1.000000e+00, ptr %699, align 4, !tbaa !9
  store float 1.000000e+00, ptr %701, align 4, !tbaa !9
  %839 = load float, ptr %14, align 4, !tbaa !9
  br label %840

840:                                              ; preds = %801, %._crit_edge966
  %841 = phi float [ %802, %801 ], [ 0.000000e+00, %._crit_edge966 ]
  %.3854 = phi float [ %813, %801 ], [ 1.000000e+00, %._crit_edge966 ]
  %.1837 = phi float [ %815, %801 ], [ %839, %._crit_edge966 ]
  %842 = load i32, ptr %23, align 4, !tbaa !5
  %843 = add nsw i32 %842, %.11969
  %844 = icmp slt i32 %842, 0
  %845 = load i32, ptr %22, align 4
  %846 = icmp sge i32 %843, %845
  %847 = icmp sle i32 %843, %845
  %.in = select i1 %844, i1 %846, i1 %847
  br i1 %.in, label %.lr.ph973, label %._crit_edge974, !llvm.loop !75

._crit_edge974:                                   ; preds = %840, %686
  %848 = phi float [ 1.000000e+00, %686 ], [ %841, %840 ]
  %849 = call float @sasum_(ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %850 = call float @sasum_(ptr noundef nonnull %2, ptr noundef %8, ptr noundef nonnull @c__1) #6
  %851 = fadd float %849, %850
  %852 = fmul float %44, %848
  %853 = fcmp ult float %851, %852
  br i1 %853, label %854, label %.loopexit897

854:                                              ; preds = %._crit_edge974
  %855 = load float, ptr %12, align 4, !tbaa !9
  %856 = fdiv float %855, %680
  store float %855, ptr %7, align 4, !tbaa !9
  store float 0.000000e+00, ptr %8, align 4, !tbaa !9
  %857 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %857, ptr %23, align 4, !tbaa !5
  %.not870975 = icmp slt i32 %857, 2
  br i1 %.not870975, label %._crit_edge979, label %.lr.ph978.preheader

.lr.ph978.preheader:                              ; preds = %854
  %858 = add nuw i32 %857, 1
  %wide.trip.count1128 = zext i32 %858 to i64
  %859 = add nsw i64 %wide.trip.count1128, -2
  %min.iters.check1352 = icmp ult i64 %859, 8
  %or.cond1511 = or i1 %min.iters.check1352, %diff.check
  br i1 %or.cond1511, label %.lr.ph978.preheader1522, label %vector.ph1353

vector.ph1353:                                    ; preds = %.lr.ph978.preheader
  %n.vec1355 = and i64 %859, -8
  %ind.end1356 = or disjoint i64 %n.vec1355, 2
  %broadcast.splatinsert = insertelement <4 x float> poison, float %856, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1358

vector.body1358:                                  ; preds = %vector.body1358, %vector.ph1353
  %index1359 = phi i64 [ 0, %vector.ph1353 ], [ %index.next1361, %vector.body1358 ]
  %offset.idx1360 = or disjoint i64 %index1359, 2
  %860 = getelementptr inbounds float, ptr %36, i64 %offset.idx1360
  %861 = getelementptr inbounds i8, ptr %860, i64 16
  store <4 x float> %broadcast.splat, ptr %860, align 4, !tbaa !9
  store <4 x float> %broadcast.splat, ptr %861, align 4, !tbaa !9
  %862 = getelementptr inbounds float, ptr %37, i64 %offset.idx1360
  %863 = getelementptr inbounds i8, ptr %862, i64 16
  store <4 x float> zeroinitializer, ptr %862, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %863, align 4, !tbaa !9
  %index.next1361 = add nuw i64 %index1359, 8
  %864 = icmp eq i64 %index.next1361, %n.vec1355
  br i1 %864, label %middle.block1350, label %vector.body1358, !llvm.loop !76

middle.block1350:                                 ; preds = %vector.body1358
  %cmp.n1362 = icmp eq i64 %859, %n.vec1355
  br i1 %cmp.n1362, label %._crit_edge979, label %.lr.ph978.preheader1522

.lr.ph978.preheader1522:                          ; preds = %middle.block1350, %.lr.ph978.preheader
  %indvars.iv1124.ph = phi i64 [ 2, %.lr.ph978.preheader ], [ %ind.end1356, %middle.block1350 ]
  %865 = sub nsw i64 %wide.trip.count1128, %indvars.iv1124.ph
  %866 = zext nneg i32 %857 to i64
  %867 = sub nsw i64 %866, %indvars.iv1124.ph
  %xtraiter1542 = and i64 %865, 3
  %lcmp.mod1543.not = icmp eq i64 %xtraiter1542, 0
  br i1 %lcmp.mod1543.not, label %.lr.ph978.prol.loopexit, label %.lr.ph978.prol

.lr.ph978.prol:                                   ; preds = %.lr.ph978.preheader1522, %.lr.ph978.prol
  %indvars.iv1124.prol = phi i64 [ %indvars.iv.next1125.prol, %.lr.ph978.prol ], [ %indvars.iv1124.ph, %.lr.ph978.preheader1522 ]
  %prol.iter1544 = phi i64 [ %prol.iter1544.next, %.lr.ph978.prol ], [ 0, %.lr.ph978.preheader1522 ]
  %868 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1124.prol
  store float %856, ptr %868, align 4, !tbaa !9
  %869 = getelementptr inbounds float, ptr %37, i64 %indvars.iv1124.prol
  store float 0.000000e+00, ptr %869, align 4, !tbaa !9
  %indvars.iv.next1125.prol = add nuw nsw i64 %indvars.iv1124.prol, 1
  %prol.iter1544.next = add i64 %prol.iter1544, 1
  %prol.iter1544.cmp.not = icmp eq i64 %prol.iter1544.next, %xtraiter1542
  br i1 %prol.iter1544.cmp.not, label %.lr.ph978.prol.loopexit, label %.lr.ph978.prol, !llvm.loop !77

.lr.ph978.prol.loopexit:                          ; preds = %.lr.ph978.prol, %.lr.ph978.preheader1522
  %indvars.iv1124.unr = phi i64 [ %indvars.iv1124.ph, %.lr.ph978.preheader1522 ], [ %indvars.iv.next1125.prol, %.lr.ph978.prol ]
  %870 = icmp ult i64 %867, 3
  br i1 %870, label %._crit_edge979, label %.lr.ph978

.lr.ph978:                                        ; preds = %.lr.ph978.prol.loopexit, %.lr.ph978
  %indvars.iv1124 = phi i64 [ %indvars.iv.next1125.3, %.lr.ph978 ], [ %indvars.iv1124.unr, %.lr.ph978.prol.loopexit ]
  %871 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1124
  store float %856, ptr %871, align 4, !tbaa !9
  %872 = getelementptr inbounds float, ptr %37, i64 %indvars.iv1124
  store float 0.000000e+00, ptr %872, align 4, !tbaa !9
  %873 = getelementptr float, ptr %7, i64 %indvars.iv1124
  store float %856, ptr %873, align 4, !tbaa !9
  %874 = getelementptr float, ptr %8, i64 %indvars.iv1124
  store float 0.000000e+00, ptr %874, align 4, !tbaa !9
  %indvars.iv.next1125.1 = add nuw nsw i64 %indvars.iv1124, 2
  %875 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next1125.1
  store float %856, ptr %875, align 4, !tbaa !9
  %876 = getelementptr inbounds float, ptr %37, i64 %indvars.iv.next1125.1
  store float 0.000000e+00, ptr %876, align 4, !tbaa !9
  %indvars.iv.next1125.2 = add nuw nsw i64 %indvars.iv1124, 3
  %877 = getelementptr inbounds float, ptr %36, i64 %indvars.iv.next1125.2
  store float %856, ptr %877, align 4, !tbaa !9
  %878 = getelementptr inbounds float, ptr %37, i64 %indvars.iv.next1125.2
  store float 0.000000e+00, ptr %878, align 4, !tbaa !9
  %indvars.iv.next1125.3 = add nuw nsw i64 %indvars.iv1124, 4
  %exitcond1129.not.3 = icmp eq i64 %indvars.iv.next1125.3, %wide.trip.count1128
  br i1 %exitcond1129.not.3, label %._crit_edge979, label %.lr.ph978, !llvm.loop !78

._crit_edge979:                                   ; preds = %.lr.ph978.prol.loopexit, %.lr.ph978, %middle.block1350, %854
  %879 = load float, ptr %12, align 4, !tbaa !9
  %880 = sub nsw i32 %857, %.1983
  %881 = sext i32 %880 to i64
  %gep981 = getelementptr float, ptr %7, i64 %881
  %882 = load float, ptr %gep981, align 4, !tbaa !9
  %883 = fneg float %879
  %884 = call float @llvm.fmuladd.f32(float %883, float %sqrtf, float %882)
  store float %884, ptr %gep981, align 4, !tbaa !9
  %885 = add nuw nsw i32 %.1983, 1
  %886 = load i32, ptr %21, align 4, !tbaa !5
  %.not869.not = icmp slt i32 %.1983, %886
  br i1 %.not869.not, label %686, label %._crit_edge986, !llvm.loop !79

._crit_edge986:                                   ; preds = %._crit_edge979, %678
  store i32 1, ptr %15, align 4, !tbaa !5
  br label %.loopexit897

.loopexit897:                                     ; preds = %._crit_edge974, %._crit_edge986
  %887 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %887, ptr %21, align 4, !tbaa !5
  %.not871987 = icmp slt i32 %887, 1
  br i1 %.not871987, label %902, label %.lr.ph991.preheader

.lr.ph991.preheader:                              ; preds = %.loopexit897
  %888 = add nuw i32 %887, 1
  %wide.trip.count1134 = zext i32 %888 to i64
  br label %.lr.ph991

.lr.ph991:                                        ; preds = %.lr.ph991.preheader, %.lr.ph991
  %indvars.iv1130 = phi i64 [ 1, %.lr.ph991.preheader ], [ %indvars.iv.next1131, %.lr.ph991 ]
  %.0832989 = phi float [ 0.000000e+00, %.lr.ph991.preheader ], [ %901, %.lr.ph991 ]
  %889 = getelementptr inbounds float, ptr %36, i64 %indvars.iv1130
  %890 = load float, ptr %889, align 4, !tbaa !9
  %891 = fcmp oge float %890, 0.000000e+00
  %892 = fneg float %890
  %893 = select i1 %891, float %890, float %892
  %894 = getelementptr inbounds float, ptr %37, i64 %indvars.iv1130
  %895 = load float, ptr %894, align 4, !tbaa !9
  %896 = fcmp oge float %895, 0.000000e+00
  %897 = fneg float %895
  %898 = select i1 %896, float %895, float %897
  %899 = fadd float %893, %898
  %900 = fcmp oge float %.0832989, %899
  %901 = select i1 %900, float %.0832989, float %899
  %indvars.iv.next1131 = add nuw nsw i64 %indvars.iv1130, 1
  %exitcond1135.not = icmp eq i64 %indvars.iv.next1131, %wide.trip.count1134
  br i1 %exitcond1135.not, label %._crit_edge992, label %.lr.ph991, !llvm.loop !80

._crit_edge992:                                   ; preds = %.lr.ph991
  store float %895, ptr %25, align 4, !tbaa !9
  br label %902

902:                                              ; preds = %._crit_edge992, %.loopexit897
  %.0832.lcssa = phi float [ %901, %._crit_edge992 ], [ 0.000000e+00, %.loopexit897 ]
  %903 = fdiv float 1.000000e+00, %.0832.lcssa
  store float %903, ptr %24, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %24, ptr noundef %7, ptr noundef nonnull @c__1) #6
  store float %903, ptr %24, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %2, ptr noundef nonnull %24, ptr noundef %8, ptr noundef nonnull @c__1) #6
  br label %904

904:                                              ; preds = %902, %.loopexit
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 1, 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 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  ret void
}

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

declare float @snrm2_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @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 void @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 float @sasum_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

declare void @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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!12}
!12 = distinct !{!12, !13}
!13 = distinct !{!13, !"LVerDomain"}
!14 = !{!15}
!15 = distinct !{!15, !13}
!16 = 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