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

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

@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c_b13 = external hidden global float, align 4
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b26 = external hidden global float, align 4
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @slasd3_(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, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19) #0 {
  %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 ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca float, align 4
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca float, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  store ptr %0, ptr %21, align 8, !tbaa !5
  store ptr %1, ptr %22, align 8, !tbaa !5
  store ptr %2, ptr %23, align 8, !tbaa !5
  store ptr %3, ptr %24, align 8, !tbaa !5
  store ptr %4, ptr %25, align 8, !tbaa !5
  store ptr %5, ptr %26, align 8, !tbaa !5
  store ptr %6, ptr %27, align 8, !tbaa !5
  store ptr %7, ptr %28, align 8, !tbaa !5
  store ptr %8, ptr %29, align 8, !tbaa !5
  store ptr %9, ptr %30, align 8, !tbaa !5
  store ptr %10, ptr %31, align 8, !tbaa !5
  store ptr %11, ptr %32, align 8, !tbaa !5
  store ptr %12, ptr %33, align 8, !tbaa !5
  store ptr %13, ptr %34, align 8, !tbaa !5
  store ptr %14, ptr %35, align 8, !tbaa !5
  store ptr %15, ptr %36, align 8, !tbaa !5
  store ptr %16, ptr %37, align 8, !tbaa !5
  store ptr %17, ptr %38, align 8, !tbaa !5
  store ptr %18, ptr %39, align 8, !tbaa !5
  store ptr %19, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #4
  %68 = load ptr, ptr %25, align 8, !tbaa !5
  %69 = getelementptr inbounds float, ptr %68, i32 -1
  store ptr %69, ptr %25, align 8, !tbaa !5
  %70 = load ptr, ptr %27, align 8, !tbaa !5
  %71 = load i32, ptr %70, align 4, !tbaa !9
  store i32 %71, ptr %41, align 4, !tbaa !9
  %72 = load i32, ptr %41, align 4, !tbaa !9
  %73 = mul nsw i32 %72, 1
  %74 = add nsw i32 1, %73
  store i32 %74, ptr %42, align 4, !tbaa !9
  %75 = load i32, ptr %42, align 4, !tbaa !9
  %76 = load ptr, ptr %26, align 8, !tbaa !5
  %77 = sext i32 %75 to i64
  %78 = sub i64 0, %77
  %79 = getelementptr inbounds float, ptr %76, i64 %78
  store ptr %79, ptr %26, align 8, !tbaa !5
  %80 = load ptr, ptr %28, align 8, !tbaa !5
  %81 = getelementptr inbounds float, ptr %80, i32 -1
  store ptr %81, ptr %28, align 8, !tbaa !5
  %82 = load ptr, ptr %30, align 8, !tbaa !5
  %83 = load i32, ptr %82, align 4, !tbaa !9
  store i32 %83, ptr %43, align 4, !tbaa !9
  %84 = load i32, ptr %43, align 4, !tbaa !9
  %85 = mul nsw i32 %84, 1
  %86 = add nsw i32 1, %85
  store i32 %86, ptr %44, align 4, !tbaa !9
  %87 = load i32, ptr %44, align 4, !tbaa !9
  %88 = load ptr, ptr %29, align 8, !tbaa !5
  %89 = sext i32 %87 to i64
  %90 = sub i64 0, %89
  %91 = getelementptr inbounds float, ptr %88, i64 %90
  store ptr %91, ptr %29, align 8, !tbaa !5
  %92 = load ptr, ptr %32, align 8, !tbaa !5
  %93 = load i32, ptr %92, align 4, !tbaa !9
  store i32 %93, ptr %45, align 4, !tbaa !9
  %94 = load i32, ptr %45, align 4, !tbaa !9
  %95 = mul nsw i32 %94, 1
  %96 = add nsw i32 1, %95
  store i32 %96, ptr %46, align 4, !tbaa !9
  %97 = load i32, ptr %46, align 4, !tbaa !9
  %98 = load ptr, ptr %31, align 8, !tbaa !5
  %99 = sext i32 %97 to i64
  %100 = sub i64 0, %99
  %101 = getelementptr inbounds float, ptr %98, i64 %100
  store ptr %101, ptr %31, align 8, !tbaa !5
  %102 = load ptr, ptr %34, align 8, !tbaa !5
  %103 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %103, ptr %47, align 4, !tbaa !9
  %104 = load i32, ptr %47, align 4, !tbaa !9
  %105 = mul nsw i32 %104, 1
  %106 = add nsw i32 1, %105
  store i32 %106, ptr %48, align 4, !tbaa !9
  %107 = load i32, ptr %48, align 4, !tbaa !9
  %108 = load ptr, ptr %33, align 8, !tbaa !5
  %109 = sext i32 %107 to i64
  %110 = sub i64 0, %109
  %111 = getelementptr inbounds float, ptr %108, i64 %110
  store ptr %111, ptr %33, align 8, !tbaa !5
  %112 = load ptr, ptr %36, align 8, !tbaa !5
  %113 = load i32, ptr %112, align 4, !tbaa !9
  store i32 %113, ptr %49, align 4, !tbaa !9
  %114 = load i32, ptr %49, align 4, !tbaa !9
  %115 = mul nsw i32 %114, 1
  %116 = add nsw i32 1, %115
  store i32 %116, ptr %50, align 4, !tbaa !9
  %117 = load i32, ptr %50, align 4, !tbaa !9
  %118 = load ptr, ptr %35, align 8, !tbaa !5
  %119 = sext i32 %117 to i64
  %120 = sub i64 0, %119
  %121 = getelementptr inbounds float, ptr %118, i64 %120
  store ptr %121, ptr %35, align 8, !tbaa !5
  %122 = load ptr, ptr %37, align 8, !tbaa !5
  %123 = getelementptr inbounds i32, ptr %122, i32 -1
  store ptr %123, ptr %37, align 8, !tbaa !5
  %124 = load ptr, ptr %38, align 8, !tbaa !5
  %125 = getelementptr inbounds i32, ptr %124, i32 -1
  store ptr %125, ptr %38, align 8, !tbaa !5
  %126 = load ptr, ptr %39, align 8, !tbaa !5
  %127 = getelementptr inbounds float, ptr %126, i32 -1
  store ptr %127, ptr %39, align 8, !tbaa !5
  %128 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 0, ptr %128, align 4, !tbaa !9
  %129 = load ptr, ptr %21, align 8, !tbaa !5
  %130 = load i32, ptr %129, align 4, !tbaa !9
  %131 = icmp slt i32 %130, 1
  br i1 %131, label %132, label %134

132:                                              ; preds = %20
  %133 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -1, ptr %133, align 4, !tbaa !9
  br label %152

134:                                              ; preds = %20
  %135 = load ptr, ptr %22, align 8, !tbaa !5
  %136 = load i32, ptr %135, align 4, !tbaa !9
  %137 = icmp slt i32 %136, 1
  br i1 %137, label %138, label %140

138:                                              ; preds = %134
  %139 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -2, ptr %139, align 4, !tbaa !9
  br label %151

140:                                              ; preds = %134
  %141 = load ptr, ptr %23, align 8, !tbaa !5
  %142 = load i32, ptr %141, align 4, !tbaa !9
  %143 = icmp ne i32 %142, 1
  br i1 %143, label %144, label %150

144:                                              ; preds = %140
  %145 = load ptr, ptr %23, align 8, !tbaa !5
  %146 = load i32, ptr %145, align 4, !tbaa !9
  %147 = icmp ne i32 %146, 0
  br i1 %147, label %148, label %150

148:                                              ; preds = %144
  %149 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -3, ptr %149, align 4, !tbaa !9
  br label %150

150:                                              ; preds = %148, %144, %140
  br label %151

151:                                              ; preds = %150, %138
  br label %152

152:                                              ; preds = %151, %132
  %153 = load ptr, ptr %21, align 8, !tbaa !5
  %154 = load i32, ptr %153, align 4, !tbaa !9
  %155 = load ptr, ptr %22, align 8, !tbaa !5
  %156 = load i32, ptr %155, align 4, !tbaa !9
  %157 = add nsw i32 %154, %156
  %158 = add nsw i32 %157, 1
  store i32 %158, ptr %59, align 4, !tbaa !9
  %159 = load i32, ptr %59, align 4, !tbaa !9
  %160 = load ptr, ptr %23, align 8, !tbaa !5
  %161 = load i32, ptr %160, align 4, !tbaa !9
  %162 = add nsw i32 %159, %161
  store i32 %162, ptr %58, align 4, !tbaa !9
  %163 = load ptr, ptr %21, align 8, !tbaa !5
  %164 = load i32, ptr %163, align 4, !tbaa !9
  %165 = add nsw i32 %164, 1
  store i32 %165, ptr %64, align 4, !tbaa !9
  %166 = load ptr, ptr %21, align 8, !tbaa !5
  %167 = load i32, ptr %166, align 4, !tbaa !9
  %168 = add nsw i32 %167, 2
  store i32 %168, ptr %65, align 4, !tbaa !9
  %169 = load ptr, ptr %24, align 8, !tbaa !5
  %170 = load i32, ptr %169, align 4, !tbaa !9
  %171 = icmp slt i32 %170, 1
  br i1 %171, label %177, label %172

172:                                              ; preds = %152
  %173 = load ptr, ptr %24, align 8, !tbaa !5
  %174 = load i32, ptr %173, align 4, !tbaa !9
  %175 = load i32, ptr %59, align 4, !tbaa !9
  %176 = icmp sgt i32 %174, %175
  br i1 %176, label %177, label %179

177:                                              ; preds = %172, %152
  %178 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -4, ptr %178, align 4, !tbaa !9
  br label %220

179:                                              ; preds = %172
  %180 = load ptr, ptr %27, align 8, !tbaa !5
  %181 = load i32, ptr %180, align 4, !tbaa !9
  %182 = load ptr, ptr %24, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !9
  %184 = icmp slt i32 %181, %183
  br i1 %184, label %185, label %187

185:                                              ; preds = %179
  %186 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -7, ptr %186, align 4, !tbaa !9
  br label %219

187:                                              ; preds = %179
  %188 = load ptr, ptr %30, align 8, !tbaa !5
  %189 = load i32, ptr %188, align 4, !tbaa !9
  %190 = load i32, ptr %59, align 4, !tbaa !9
  %191 = icmp slt i32 %189, %190
  br i1 %191, label %192, label %194

192:                                              ; preds = %187
  %193 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -10, ptr %193, align 4, !tbaa !9
  br label %218

194:                                              ; preds = %187
  %195 = load ptr, ptr %32, align 8, !tbaa !5
  %196 = load i32, ptr %195, align 4, !tbaa !9
  %197 = load i32, ptr %59, align 4, !tbaa !9
  %198 = icmp slt i32 %196, %197
  br i1 %198, label %199, label %201

199:                                              ; preds = %194
  %200 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -12, ptr %200, align 4, !tbaa !9
  br label %217

201:                                              ; preds = %194
  %202 = load ptr, ptr %34, align 8, !tbaa !5
  %203 = load i32, ptr %202, align 4, !tbaa !9
  %204 = load i32, ptr %58, align 4, !tbaa !9
  %205 = icmp slt i32 %203, %204
  br i1 %205, label %206, label %208

206:                                              ; preds = %201
  %207 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -14, ptr %207, align 4, !tbaa !9
  br label %216

208:                                              ; preds = %201
  %209 = load ptr, ptr %36, align 8, !tbaa !5
  %210 = load i32, ptr %209, align 4, !tbaa !9
  %211 = load i32, ptr %58, align 4, !tbaa !9
  %212 = icmp slt i32 %210, %211
  br i1 %212, label %213, label %215

213:                                              ; preds = %208
  %214 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 -16, ptr %214, align 4, !tbaa !9
  br label %215

215:                                              ; preds = %213, %208
  br label %216

216:                                              ; preds = %215, %206
  br label %217

217:                                              ; preds = %216, %199
  br label %218

218:                                              ; preds = %217, %192
  br label %219

219:                                              ; preds = %218, %185
  br label %220

220:                                              ; preds = %219, %177
  %221 = load ptr, ptr %40, align 8, !tbaa !5
  %222 = load i32, ptr %221, align 4, !tbaa !9
  %223 = icmp ne i32 %222, 0
  br i1 %223, label %224, label %229

224:                                              ; preds = %220
  %225 = load ptr, ptr %40, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = sub nsw i32 0, %226
  store i32 %227, ptr %51, align 4, !tbaa !9
  %228 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %51, i32 noundef 6)
  store i32 1, ptr %67, align 4
  br label %1228

229:                                              ; preds = %220
  %230 = load ptr, ptr %24, align 8, !tbaa !5
  %231 = load i32, ptr %230, align 4, !tbaa !9
  %232 = icmp eq i32 %231, 1
  br i1 %232, label %233, label %304

233:                                              ; preds = %229
  %234 = load ptr, ptr %39, align 8, !tbaa !5
  %235 = getelementptr inbounds float, ptr %234, i64 1
  %236 = load float, ptr %235, align 4, !tbaa !11
  %237 = fcmp oge float %236, 0.000000e+00
  br i1 %237, label %238, label %242

238:                                              ; preds = %233
  %239 = load ptr, ptr %39, align 8, !tbaa !5
  %240 = getelementptr inbounds float, ptr %239, i64 1
  %241 = load float, ptr %240, align 4, !tbaa !11
  br label %247

242:                                              ; preds = %233
  %243 = load ptr, ptr %39, align 8, !tbaa !5
  %244 = getelementptr inbounds float, ptr %243, i64 1
  %245 = load float, ptr %244, align 4, !tbaa !11
  %246 = fneg float %245
  br label %247

247:                                              ; preds = %242, %238
  %248 = phi float [ %241, %238 ], [ %246, %242 ]
  %249 = load ptr, ptr %25, align 8, !tbaa !5
  %250 = getelementptr inbounds float, ptr %249, i64 1
  store float %248, ptr %250, align 4, !tbaa !11
  %251 = load ptr, ptr %35, align 8, !tbaa !5
  %252 = load i32, ptr %49, align 4, !tbaa !9
  %253 = add nsw i32 %252, 1
  %254 = sext i32 %253 to i64
  %255 = getelementptr inbounds float, ptr %251, i64 %254
  %256 = load ptr, ptr %36, align 8, !tbaa !5
  %257 = load ptr, ptr %33, align 8, !tbaa !5
  %258 = load i32, ptr %47, align 4, !tbaa !9
  %259 = add nsw i32 %258, 1
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds float, ptr %257, i64 %260
  %262 = load ptr, ptr %34, align 8, !tbaa !5
  call void @scopy_(ptr noundef %58, ptr noundef %255, ptr noundef %256, ptr noundef %261, ptr noundef %262)
  %263 = load ptr, ptr %39, align 8, !tbaa !5
  %264 = getelementptr inbounds float, ptr %263, i64 1
  %265 = load float, ptr %264, align 4, !tbaa !11
  %266 = fcmp ogt float %265, 0.000000e+00
  br i1 %266, label %267, label %278

267:                                              ; preds = %247
  %268 = load ptr, ptr %31, align 8, !tbaa !5
  %269 = load i32, ptr %45, align 4, !tbaa !9
  %270 = add nsw i32 %269, 1
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds float, ptr %268, i64 %271
  %273 = load ptr, ptr %29, align 8, !tbaa !5
  %274 = load i32, ptr %43, align 4, !tbaa !9
  %275 = add nsw i32 %274, 1
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds float, ptr %273, i64 %276
  call void @scopy_(ptr noundef %59, ptr noundef %272, ptr noundef @c__1, ptr noundef %277, ptr noundef @c__1)
  br label %303

278:                                              ; preds = %247
  %279 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %279, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %280

280:                                              ; preds = %299, %278
  %281 = load i32, ptr %56, align 4, !tbaa !9
  %282 = load i32, ptr %51, align 4, !tbaa !9
  %283 = icmp sle i32 %281, %282
  br i1 %283, label %284, label %302

284:                                              ; preds = %280
  %285 = load ptr, ptr %31, align 8, !tbaa !5
  %286 = load i32, ptr %56, align 4, !tbaa !9
  %287 = load i32, ptr %45, align 4, !tbaa !9
  %288 = add nsw i32 %286, %287
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds float, ptr %285, i64 %289
  %291 = load float, ptr %290, align 4, !tbaa !11
  %292 = fneg float %291
  %293 = load ptr, ptr %29, align 8, !tbaa !5
  %294 = load i32, ptr %56, align 4, !tbaa !9
  %295 = load i32, ptr %43, align 4, !tbaa !9
  %296 = add nsw i32 %294, %295
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds float, ptr %293, i64 %297
  store float %292, ptr %298, align 4, !tbaa !11
  br label %299

299:                                              ; preds = %284
  %300 = load i32, ptr %56, align 4, !tbaa !9
  %301 = add nsw i32 %300, 1
  store i32 %301, ptr %56, align 4, !tbaa !9
  br label %280, !llvm.loop !13

302:                                              ; preds = %280
  br label %303

303:                                              ; preds = %302, %267
  store i32 1, ptr %67, align 4
  br label %1228

304:                                              ; preds = %229
  %305 = load ptr, ptr %24, align 8, !tbaa !5
  %306 = load i32, ptr %305, align 4, !tbaa !9
  store i32 %306, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %307

307:                                              ; preds = %331, %304
  %308 = load i32, ptr %56, align 4, !tbaa !9
  %309 = load i32, ptr %51, align 4, !tbaa !9
  %310 = icmp sle i32 %308, %309
  br i1 %310, label %311, label %334

311:                                              ; preds = %307
  %312 = load ptr, ptr %28, align 8, !tbaa !5
  %313 = load i32, ptr %56, align 4, !tbaa !9
  %314 = sext i32 %313 to i64
  %315 = getelementptr inbounds float, ptr %312, i64 %314
  %316 = load ptr, ptr %28, align 8, !tbaa !5
  %317 = load i32, ptr %56, align 4, !tbaa !9
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds float, ptr %316, i64 %318
  %320 = call float @slamc3_(ptr noundef %315, ptr noundef %319)
  %321 = load ptr, ptr %28, align 8, !tbaa !5
  %322 = load i32, ptr %56, align 4, !tbaa !9
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds float, ptr %321, i64 %323
  %325 = load float, ptr %324, align 4, !tbaa !11
  %326 = fsub float %320, %325
  %327 = load ptr, ptr %28, align 8, !tbaa !5
  %328 = load i32, ptr %56, align 4, !tbaa !9
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds float, ptr %327, i64 %329
  store float %326, ptr %330, align 4, !tbaa !11
  br label %331

331:                                              ; preds = %311
  %332 = load i32, ptr %56, align 4, !tbaa !9
  %333 = add nsw i32 %332, 1
  store i32 %333, ptr %56, align 4, !tbaa !9
  br label %307, !llvm.loop !15

334:                                              ; preds = %307
  %335 = load ptr, ptr %24, align 8, !tbaa !5
  %336 = load ptr, ptr %39, align 8, !tbaa !5
  %337 = getelementptr inbounds float, ptr %336, i64 1
  %338 = load ptr, ptr %26, align 8, !tbaa !5
  %339 = load i32, ptr %42, align 4, !tbaa !9
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds float, ptr %338, i64 %340
  call void @scopy_(ptr noundef %335, ptr noundef %337, ptr noundef @c__1, ptr noundef %341, ptr noundef @c__1)
  %342 = load ptr, ptr %24, align 8, !tbaa !5
  %343 = load ptr, ptr %39, align 8, !tbaa !5
  %344 = getelementptr inbounds float, ptr %343, i64 1
  %345 = call float @snrm2_(ptr noundef %342, ptr noundef %344, ptr noundef @c__1)
  store float %345, ptr %63, align 4, !tbaa !11
  %346 = load ptr, ptr %24, align 8, !tbaa !5
  %347 = load ptr, ptr %39, align 8, !tbaa !5
  %348 = getelementptr inbounds float, ptr %347, i64 1
  %349 = load ptr, ptr %24, align 8, !tbaa !5
  %350 = load ptr, ptr %40, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.1, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %63, ptr noundef @c_b13, ptr noundef %346, ptr noundef @c__1, ptr noundef %348, ptr noundef %349, ptr noundef %350)
  %351 = load float, ptr %63, align 4, !tbaa !11
  %352 = load float, ptr %63, align 4, !tbaa !11
  %353 = fmul float %352, %351
  store float %353, ptr %63, align 4, !tbaa !11
  %354 = load ptr, ptr %24, align 8, !tbaa !5
  %355 = load i32, ptr %354, align 4, !tbaa !9
  store i32 %355, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %356

356:                                              ; preds = %390, %334
  %357 = load i32, ptr %57, align 4, !tbaa !9
  %358 = load i32, ptr %51, align 4, !tbaa !9
  %359 = icmp sle i32 %357, %358
  br i1 %359, label %360, label %393

360:                                              ; preds = %356
  %361 = load ptr, ptr %24, align 8, !tbaa !5
  %362 = load ptr, ptr %28, align 8, !tbaa !5
  %363 = getelementptr inbounds float, ptr %362, i64 1
  %364 = load ptr, ptr %39, align 8, !tbaa !5
  %365 = getelementptr inbounds float, ptr %364, i64 1
  %366 = load ptr, ptr %29, align 8, !tbaa !5
  %367 = load i32, ptr %57, align 4, !tbaa !9
  %368 = load i32, ptr %43, align 4, !tbaa !9
  %369 = mul nsw i32 %367, %368
  %370 = add nsw i32 %369, 1
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds float, ptr %366, i64 %371
  %373 = load ptr, ptr %25, align 8, !tbaa !5
  %374 = load i32, ptr %57, align 4, !tbaa !9
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds float, ptr %373, i64 %375
  %377 = load ptr, ptr %33, align 8, !tbaa !5
  %378 = load i32, ptr %57, align 4, !tbaa !9
  %379 = load i32, ptr %47, align 4, !tbaa !9
  %380 = mul nsw i32 %378, %379
  %381 = add nsw i32 %380, 1
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds float, ptr %377, i64 %382
  %384 = load ptr, ptr %40, align 8, !tbaa !5
  call void @slasd4_(ptr noundef %361, ptr noundef %57, ptr noundef %363, ptr noundef %365, ptr noundef %372, ptr noundef %63, ptr noundef %376, ptr noundef %383, ptr noundef %384)
  %385 = load ptr, ptr %40, align 8, !tbaa !5
  %386 = load i32, ptr %385, align 4, !tbaa !9
  %387 = icmp ne i32 %386, 0
  br i1 %387, label %388, label %389

388:                                              ; preds = %360
  store i32 1, ptr %67, align 4
  br label %1228

389:                                              ; preds = %360
  br label %390

390:                                              ; preds = %389
  %391 = load i32, ptr %57, align 4, !tbaa !9
  %392 = add nsw i32 %391, 1
  store i32 %392, ptr %57, align 4, !tbaa !9
  br label %356, !llvm.loop !16

393:                                              ; preds = %356
  %394 = load ptr, ptr %24, align 8, !tbaa !5
  %395 = load i32, ptr %394, align 4, !tbaa !9
  store i32 %395, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %396

396:                                              ; preds = %602, %393
  %397 = load i32, ptr %56, align 4, !tbaa !9
  %398 = load i32, ptr %51, align 4, !tbaa !9
  %399 = icmp sle i32 %397, %398
  br i1 %399, label %400, label %605

400:                                              ; preds = %396
  %401 = load ptr, ptr %29, align 8, !tbaa !5
  %402 = load i32, ptr %56, align 4, !tbaa !9
  %403 = load ptr, ptr %24, align 8, !tbaa !5
  %404 = load i32, ptr %403, align 4, !tbaa !9
  %405 = load i32, ptr %43, align 4, !tbaa !9
  %406 = mul nsw i32 %404, %405
  %407 = add nsw i32 %402, %406
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds float, ptr %401, i64 %408
  %410 = load float, ptr %409, align 4, !tbaa !11
  %411 = load ptr, ptr %33, align 8, !tbaa !5
  %412 = load i32, ptr %56, align 4, !tbaa !9
  %413 = load ptr, ptr %24, align 8, !tbaa !5
  %414 = load i32, ptr %413, align 4, !tbaa !9
  %415 = load i32, ptr %47, align 4, !tbaa !9
  %416 = mul nsw i32 %414, %415
  %417 = add nsw i32 %412, %416
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds float, ptr %411, i64 %418
  %420 = load float, ptr %419, align 4, !tbaa !11
  %421 = fmul float %410, %420
  %422 = load ptr, ptr %39, align 8, !tbaa !5
  %423 = load i32, ptr %56, align 4, !tbaa !9
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds float, ptr %422, i64 %424
  store float %421, ptr %425, align 4, !tbaa !11
  %426 = load i32, ptr %56, align 4, !tbaa !9
  %427 = sub nsw i32 %426, 1
  store i32 %427, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  br label %428

428:                                              ; preds = %482, %400
  %429 = load i32, ptr %57, align 4, !tbaa !9
  %430 = load i32, ptr %52, align 4, !tbaa !9
  %431 = icmp sle i32 %429, %430
  br i1 %431, label %432, label %485

432:                                              ; preds = %428
  %433 = load ptr, ptr %29, align 8, !tbaa !5
  %434 = load i32, ptr %56, align 4, !tbaa !9
  %435 = load i32, ptr %57, align 4, !tbaa !9
  %436 = load i32, ptr %43, align 4, !tbaa !9
  %437 = mul nsw i32 %435, %436
  %438 = add nsw i32 %434, %437
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds float, ptr %433, i64 %439
  %441 = load float, ptr %440, align 4, !tbaa !11
  %442 = load ptr, ptr %33, align 8, !tbaa !5
  %443 = load i32, ptr %56, align 4, !tbaa !9
  %444 = load i32, ptr %57, align 4, !tbaa !9
  %445 = load i32, ptr %47, align 4, !tbaa !9
  %446 = mul nsw i32 %444, %445
  %447 = add nsw i32 %443, %446
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds float, ptr %442, i64 %448
  %450 = load float, ptr %449, align 4, !tbaa !11
  %451 = fmul float %441, %450
  %452 = load ptr, ptr %28, align 8, !tbaa !5
  %453 = load i32, ptr %56, align 4, !tbaa !9
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds float, ptr %452, i64 %454
  %456 = load float, ptr %455, align 4, !tbaa !11
  %457 = load ptr, ptr %28, align 8, !tbaa !5
  %458 = load i32, ptr %57, align 4, !tbaa !9
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds float, ptr %457, i64 %459
  %461 = load float, ptr %460, align 4, !tbaa !11
  %462 = fsub float %456, %461
  %463 = fdiv float %451, %462
  %464 = load ptr, ptr %28, align 8, !tbaa !5
  %465 = load i32, ptr %56, align 4, !tbaa !9
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds float, ptr %464, i64 %466
  %468 = load float, ptr %467, align 4, !tbaa !11
  %469 = load ptr, ptr %28, align 8, !tbaa !5
  %470 = load i32, ptr %57, align 4, !tbaa !9
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds float, ptr %469, i64 %471
  %473 = load float, ptr %472, align 4, !tbaa !11
  %474 = fadd float %468, %473
  %475 = fdiv float %463, %474
  %476 = load ptr, ptr %39, align 8, !tbaa !5
  %477 = load i32, ptr %56, align 4, !tbaa !9
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds float, ptr %476, i64 %478
  %480 = load float, ptr %479, align 4, !tbaa !11
  %481 = fmul float %480, %475
  store float %481, ptr %479, align 4, !tbaa !11
  br label %482

482:                                              ; preds = %432
  %483 = load i32, ptr %57, align 4, !tbaa !9
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr %57, align 4, !tbaa !9
  br label %428, !llvm.loop !17

485:                                              ; preds = %428
  %486 = load ptr, ptr %24, align 8, !tbaa !5
  %487 = load i32, ptr %486, align 4, !tbaa !9
  %488 = sub nsw i32 %487, 1
  store i32 %488, ptr %52, align 4, !tbaa !9
  %489 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %489, ptr %57, align 4, !tbaa !9
  br label %490

490:                                              ; preds = %546, %485
  %491 = load i32, ptr %57, align 4, !tbaa !9
  %492 = load i32, ptr %52, align 4, !tbaa !9
  %493 = icmp sle i32 %491, %492
  br i1 %493, label %494, label %549

494:                                              ; preds = %490
  %495 = load ptr, ptr %29, align 8, !tbaa !5
  %496 = load i32, ptr %56, align 4, !tbaa !9
  %497 = load i32, ptr %57, align 4, !tbaa !9
  %498 = load i32, ptr %43, align 4, !tbaa !9
  %499 = mul nsw i32 %497, %498
  %500 = add nsw i32 %496, %499
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds float, ptr %495, i64 %501
  %503 = load float, ptr %502, align 4, !tbaa !11
  %504 = load ptr, ptr %33, align 8, !tbaa !5
  %505 = load i32, ptr %56, align 4, !tbaa !9
  %506 = load i32, ptr %57, align 4, !tbaa !9
  %507 = load i32, ptr %47, align 4, !tbaa !9
  %508 = mul nsw i32 %506, %507
  %509 = add nsw i32 %505, %508
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds float, ptr %504, i64 %510
  %512 = load float, ptr %511, align 4, !tbaa !11
  %513 = fmul float %503, %512
  %514 = load ptr, ptr %28, align 8, !tbaa !5
  %515 = load i32, ptr %56, align 4, !tbaa !9
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds float, ptr %514, i64 %516
  %518 = load float, ptr %517, align 4, !tbaa !11
  %519 = load ptr, ptr %28, align 8, !tbaa !5
  %520 = load i32, ptr %57, align 4, !tbaa !9
  %521 = add nsw i32 %520, 1
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds float, ptr %519, i64 %522
  %524 = load float, ptr %523, align 4, !tbaa !11
  %525 = fsub float %518, %524
  %526 = fdiv float %513, %525
  %527 = load ptr, ptr %28, align 8, !tbaa !5
  %528 = load i32, ptr %56, align 4, !tbaa !9
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds float, ptr %527, i64 %529
  %531 = load float, ptr %530, align 4, !tbaa !11
  %532 = load ptr, ptr %28, align 8, !tbaa !5
  %533 = load i32, ptr %57, align 4, !tbaa !9
  %534 = add nsw i32 %533, 1
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds float, ptr %532, i64 %535
  %537 = load float, ptr %536, align 4, !tbaa !11
  %538 = fadd float %531, %537
  %539 = fdiv float %526, %538
  %540 = load ptr, ptr %39, align 8, !tbaa !5
  %541 = load i32, ptr %56, align 4, !tbaa !9
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds float, ptr %540, i64 %542
  %544 = load float, ptr %543, align 4, !tbaa !11
  %545 = fmul float %544, %539
  store float %545, ptr %543, align 4, !tbaa !11
  br label %546

546:                                              ; preds = %494
  %547 = load i32, ptr %57, align 4, !tbaa !9
  %548 = add nsw i32 %547, 1
  store i32 %548, ptr %57, align 4, !tbaa !9
  br label %490, !llvm.loop !18

549:                                              ; preds = %490
  %550 = load ptr, ptr %39, align 8, !tbaa !5
  %551 = load i32, ptr %56, align 4, !tbaa !9
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds float, ptr %550, i64 %552
  %554 = load float, ptr %553, align 4, !tbaa !11
  store float %554, ptr %53, align 4, !tbaa !11
  %555 = load float, ptr %53, align 4, !tbaa !11
  %556 = fcmp oge float %555, 0.000000e+00
  br i1 %556, label %557, label %559

557:                                              ; preds = %549
  %558 = load float, ptr %53, align 4, !tbaa !11
  br label %562

559:                                              ; preds = %549
  %560 = load float, ptr %53, align 4, !tbaa !11
  %561 = fneg float %560
  br label %562

562:                                              ; preds = %559, %557
  %563 = phi float [ %558, %557 ], [ %561, %559 ]
  %564 = fpext float %563 to double
  %565 = call double @sqrt(double noundef %564) #4
  %566 = fptrunc double %565 to float
  store float %566, ptr %54, align 4, !tbaa !11
  %567 = load ptr, ptr %26, align 8, !tbaa !5
  %568 = load i32, ptr %56, align 4, !tbaa !9
  %569 = load i32, ptr %41, align 4, !tbaa !9
  %570 = add nsw i32 %568, %569
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds float, ptr %567, i64 %571
  %573 = load float, ptr %572, align 4, !tbaa !11
  %574 = fcmp oge float %573, 0.000000e+00
  br i1 %574, label %575, label %585

575:                                              ; preds = %562
  %576 = load float, ptr %54, align 4, !tbaa !11
  %577 = fcmp oge float %576, 0.000000e+00
  br i1 %577, label %578, label %580

578:                                              ; preds = %575
  %579 = load float, ptr %54, align 4, !tbaa !11
  br label %583

580:                                              ; preds = %575
  %581 = load float, ptr %54, align 4, !tbaa !11
  %582 = fneg float %581
  br label %583

583:                                              ; preds = %580, %578
  %584 = phi float [ %579, %578 ], [ %582, %580 ]
  br label %596

585:                                              ; preds = %562
  %586 = load float, ptr %54, align 4, !tbaa !11
  %587 = fcmp oge float %586, 0.000000e+00
  br i1 %587, label %588, label %590

588:                                              ; preds = %585
  %589 = load float, ptr %54, align 4, !tbaa !11
  br label %593

590:                                              ; preds = %585
  %591 = load float, ptr %54, align 4, !tbaa !11
  %592 = fneg float %591
  br label %593

593:                                              ; preds = %590, %588
  %594 = phi float [ %589, %588 ], [ %592, %590 ]
  %595 = fneg float %594
  br label %596

596:                                              ; preds = %593, %583
  %597 = phi float [ %584, %583 ], [ %595, %593 ]
  %598 = load ptr, ptr %39, align 8, !tbaa !5
  %599 = load i32, ptr %56, align 4, !tbaa !9
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds float, ptr %598, i64 %600
  store float %597, ptr %601, align 4, !tbaa !11
  br label %602

602:                                              ; preds = %596
  %603 = load i32, ptr %56, align 4, !tbaa !9
  %604 = add nsw i32 %603, 1
  store i32 %604, ptr %56, align 4, !tbaa !9
  br label %396, !llvm.loop !19

605:                                              ; preds = %396
  %606 = load ptr, ptr %24, align 8, !tbaa !5
  %607 = load i32, ptr %606, align 4, !tbaa !9
  store i32 %607, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %608

608:                                              ; preds = %776, %605
  %609 = load i32, ptr %56, align 4, !tbaa !9
  %610 = load i32, ptr %51, align 4, !tbaa !9
  %611 = icmp sle i32 %609, %610
  br i1 %611, label %612, label %779

612:                                              ; preds = %608
  %613 = load ptr, ptr %39, align 8, !tbaa !5
  %614 = getelementptr inbounds float, ptr %613, i64 1
  %615 = load float, ptr %614, align 4, !tbaa !11
  %616 = load ptr, ptr %29, align 8, !tbaa !5
  %617 = load i32, ptr %56, align 4, !tbaa !9
  %618 = load i32, ptr %43, align 4, !tbaa !9
  %619 = mul nsw i32 %617, %618
  %620 = add nsw i32 %619, 1
  %621 = sext i32 %620 to i64
  %622 = getelementptr inbounds float, ptr %616, i64 %621
  %623 = load float, ptr %622, align 4, !tbaa !11
  %624 = fdiv float %615, %623
  %625 = load ptr, ptr %33, align 8, !tbaa !5
  %626 = load i32, ptr %56, align 4, !tbaa !9
  %627 = load i32, ptr %47, align 4, !tbaa !9
  %628 = mul nsw i32 %626, %627
  %629 = add nsw i32 %628, 1
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds float, ptr %625, i64 %630
  %632 = load float, ptr %631, align 4, !tbaa !11
  %633 = fdiv float %624, %632
  %634 = load ptr, ptr %33, align 8, !tbaa !5
  %635 = load i32, ptr %56, align 4, !tbaa !9
  %636 = load i32, ptr %47, align 4, !tbaa !9
  %637 = mul nsw i32 %635, %636
  %638 = add nsw i32 %637, 1
  %639 = sext i32 %638 to i64
  %640 = getelementptr inbounds float, ptr %634, i64 %639
  store float %633, ptr %640, align 4, !tbaa !11
  %641 = load ptr, ptr %29, align 8, !tbaa !5
  %642 = load i32, ptr %56, align 4, !tbaa !9
  %643 = load i32, ptr %43, align 4, !tbaa !9
  %644 = mul nsw i32 %642, %643
  %645 = add nsw i32 %644, 1
  %646 = sext i32 %645 to i64
  %647 = getelementptr inbounds float, ptr %641, i64 %646
  store float -1.000000e+00, ptr %647, align 4, !tbaa !11
  %648 = load ptr, ptr %24, align 8, !tbaa !5
  %649 = load i32, ptr %648, align 4, !tbaa !9
  store i32 %649, ptr %52, align 4, !tbaa !9
  store i32 2, ptr %57, align 4, !tbaa !9
  br label %650

650:                                              ; preds = %711, %612
  %651 = load i32, ptr %57, align 4, !tbaa !9
  %652 = load i32, ptr %52, align 4, !tbaa !9
  %653 = icmp sle i32 %651, %652
  br i1 %653, label %654, label %714

654:                                              ; preds = %650
  %655 = load ptr, ptr %39, align 8, !tbaa !5
  %656 = load i32, ptr %57, align 4, !tbaa !9
  %657 = sext i32 %656 to i64
  %658 = getelementptr inbounds float, ptr %655, i64 %657
  %659 = load float, ptr %658, align 4, !tbaa !11
  %660 = load ptr, ptr %29, align 8, !tbaa !5
  %661 = load i32, ptr %57, align 4, !tbaa !9
  %662 = load i32, ptr %56, align 4, !tbaa !9
  %663 = load i32, ptr %43, align 4, !tbaa !9
  %664 = mul nsw i32 %662, %663
  %665 = add nsw i32 %661, %664
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds float, ptr %660, i64 %666
  %668 = load float, ptr %667, align 4, !tbaa !11
  %669 = fdiv float %659, %668
  %670 = load ptr, ptr %33, align 8, !tbaa !5
  %671 = load i32, ptr %57, align 4, !tbaa !9
  %672 = load i32, ptr %56, align 4, !tbaa !9
  %673 = load i32, ptr %47, align 4, !tbaa !9
  %674 = mul nsw i32 %672, %673
  %675 = add nsw i32 %671, %674
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds float, ptr %670, i64 %676
  %678 = load float, ptr %677, align 4, !tbaa !11
  %679 = fdiv float %669, %678
  %680 = load ptr, ptr %33, align 8, !tbaa !5
  %681 = load i32, ptr %57, align 4, !tbaa !9
  %682 = load i32, ptr %56, align 4, !tbaa !9
  %683 = load i32, ptr %47, align 4, !tbaa !9
  %684 = mul nsw i32 %682, %683
  %685 = add nsw i32 %681, %684
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds float, ptr %680, i64 %686
  store float %679, ptr %687, align 4, !tbaa !11
  %688 = load ptr, ptr %28, align 8, !tbaa !5
  %689 = load i32, ptr %57, align 4, !tbaa !9
  %690 = sext i32 %689 to i64
  %691 = getelementptr inbounds float, ptr %688, i64 %690
  %692 = load float, ptr %691, align 4, !tbaa !11
  %693 = load ptr, ptr %33, align 8, !tbaa !5
  %694 = load i32, ptr %57, align 4, !tbaa !9
  %695 = load i32, ptr %56, align 4, !tbaa !9
  %696 = load i32, ptr %47, align 4, !tbaa !9
  %697 = mul nsw i32 %695, %696
  %698 = add nsw i32 %694, %697
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds float, ptr %693, i64 %699
  %701 = load float, ptr %700, align 4, !tbaa !11
  %702 = fmul float %692, %701
  %703 = load ptr, ptr %29, align 8, !tbaa !5
  %704 = load i32, ptr %57, align 4, !tbaa !9
  %705 = load i32, ptr %56, align 4, !tbaa !9
  %706 = load i32, ptr %43, align 4, !tbaa !9
  %707 = mul nsw i32 %705, %706
  %708 = add nsw i32 %704, %707
  %709 = sext i32 %708 to i64
  %710 = getelementptr inbounds float, ptr %703, i64 %709
  store float %702, ptr %710, align 4, !tbaa !11
  br label %711

711:                                              ; preds = %654
  %712 = load i32, ptr %57, align 4, !tbaa !9
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr %57, align 4, !tbaa !9
  br label %650, !llvm.loop !20

714:                                              ; preds = %650
  %715 = load ptr, ptr %24, align 8, !tbaa !5
  %716 = load ptr, ptr %29, align 8, !tbaa !5
  %717 = load i32, ptr %56, align 4, !tbaa !9
  %718 = load i32, ptr %43, align 4, !tbaa !9
  %719 = mul nsw i32 %717, %718
  %720 = add nsw i32 %719, 1
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds float, ptr %716, i64 %721
  %723 = call float @snrm2_(ptr noundef %715, ptr noundef %722, ptr noundef @c__1)
  store float %723, ptr %55, align 4, !tbaa !11
  %724 = load ptr, ptr %29, align 8, !tbaa !5
  %725 = load i32, ptr %56, align 4, !tbaa !9
  %726 = load i32, ptr %43, align 4, !tbaa !9
  %727 = mul nsw i32 %725, %726
  %728 = add nsw i32 %727, 1
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds float, ptr %724, i64 %729
  %731 = load float, ptr %730, align 4, !tbaa !11
  %732 = load float, ptr %55, align 4, !tbaa !11
  %733 = fdiv float %731, %732
  %734 = load ptr, ptr %26, align 8, !tbaa !5
  %735 = load i32, ptr %56, align 4, !tbaa !9
  %736 = load i32, ptr %41, align 4, !tbaa !9
  %737 = mul nsw i32 %735, %736
  %738 = add nsw i32 %737, 1
  %739 = sext i32 %738 to i64
  %740 = getelementptr inbounds float, ptr %734, i64 %739
  store float %733, ptr %740, align 4, !tbaa !11
  %741 = load ptr, ptr %24, align 8, !tbaa !5
  %742 = load i32, ptr %741, align 4, !tbaa !9
  store i32 %742, ptr %52, align 4, !tbaa !9
  store i32 2, ptr %57, align 4, !tbaa !9
  br label %743

743:                                              ; preds = %772, %714
  %744 = load i32, ptr %57, align 4, !tbaa !9
  %745 = load i32, ptr %52, align 4, !tbaa !9
  %746 = icmp sle i32 %744, %745
  br i1 %746, label %747, label %775

747:                                              ; preds = %743
  %748 = load ptr, ptr %37, align 8, !tbaa !5
  %749 = load i32, ptr %57, align 4, !tbaa !9
  %750 = sext i32 %749 to i64
  %751 = getelementptr inbounds i32, ptr %748, i64 %750
  %752 = load i32, ptr %751, align 4, !tbaa !9
  store i32 %752, ptr %62, align 4, !tbaa !9
  %753 = load ptr, ptr %29, align 8, !tbaa !5
  %754 = load i32, ptr %62, align 4, !tbaa !9
  %755 = load i32, ptr %56, align 4, !tbaa !9
  %756 = load i32, ptr %43, align 4, !tbaa !9
  %757 = mul nsw i32 %755, %756
  %758 = add nsw i32 %754, %757
  %759 = sext i32 %758 to i64
  %760 = getelementptr inbounds float, ptr %753, i64 %759
  %761 = load float, ptr %760, align 4, !tbaa !11
  %762 = load float, ptr %55, align 4, !tbaa !11
  %763 = fdiv float %761, %762
  %764 = load ptr, ptr %26, align 8, !tbaa !5
  %765 = load i32, ptr %57, align 4, !tbaa !9
  %766 = load i32, ptr %56, align 4, !tbaa !9
  %767 = load i32, ptr %41, align 4, !tbaa !9
  %768 = mul nsw i32 %766, %767
  %769 = add nsw i32 %765, %768
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds float, ptr %764, i64 %770
  store float %763, ptr %771, align 4, !tbaa !11
  br label %772

772:                                              ; preds = %747
  %773 = load i32, ptr %57, align 4, !tbaa !9
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr %57, align 4, !tbaa !9
  br label %743, !llvm.loop !21

775:                                              ; preds = %743
  br label %776

776:                                              ; preds = %775
  %777 = load i32, ptr %56, align 4, !tbaa !9
  %778 = add nsw i32 %777, 1
  store i32 %778, ptr %56, align 4, !tbaa !9
  br label %608, !llvm.loop !22

779:                                              ; preds = %608
  %780 = load ptr, ptr %24, align 8, !tbaa !5
  %781 = load i32, ptr %780, align 4, !tbaa !9
  %782 = icmp eq i32 %781, 2
  br i1 %782, label %783, label %801

783:                                              ; preds = %779
  %784 = load ptr, ptr %24, align 8, !tbaa !5
  %785 = load ptr, ptr %24, align 8, !tbaa !5
  %786 = load ptr, ptr %31, align 8, !tbaa !5
  %787 = load i32, ptr %46, align 4, !tbaa !9
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds float, ptr %786, i64 %788
  %790 = load ptr, ptr %32, align 8, !tbaa !5
  %791 = load ptr, ptr %26, align 8, !tbaa !5
  %792 = load i32, ptr %42, align 4, !tbaa !9
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds float, ptr %791, i64 %793
  %795 = load ptr, ptr %27, align 8, !tbaa !5
  %796 = load ptr, ptr %29, align 8, !tbaa !5
  %797 = load i32, ptr %44, align 4, !tbaa !9
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds float, ptr %796, i64 %798
  %800 = load ptr, ptr %30, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.2, ptr noundef @.str.2, ptr noundef %59, ptr noundef %784, ptr noundef %785, ptr noundef @c_b13, ptr noundef %789, ptr noundef %790, ptr noundef %794, ptr noundef %795, ptr noundef @c_b26, ptr noundef %799, ptr noundef %800)
  br label %973

801:                                              ; preds = %779
  %802 = load ptr, ptr %38, align 8, !tbaa !5
  %803 = getelementptr inbounds i32, ptr %802, i64 1
  %804 = load i32, ptr %803, align 4, !tbaa !9
  %805 = icmp sgt i32 %804, 0
  br i1 %805, label %806, label %869

806:                                              ; preds = %801
  %807 = load ptr, ptr %21, align 8, !tbaa !5
  %808 = load ptr, ptr %24, align 8, !tbaa !5
  %809 = load ptr, ptr %38, align 8, !tbaa !5
  %810 = getelementptr inbounds i32, ptr %809, i64 1
  %811 = load ptr, ptr %31, align 8, !tbaa !5
  %812 = load i32, ptr %45, align 4, !tbaa !9
  %813 = shl i32 %812, 1
  %814 = add nsw i32 %813, 1
  %815 = sext i32 %814 to i64
  %816 = getelementptr inbounds float, ptr %811, i64 %815
  %817 = load ptr, ptr %32, align 8, !tbaa !5
  %818 = load ptr, ptr %26, align 8, !tbaa !5
  %819 = load i32, ptr %41, align 4, !tbaa !9
  %820 = add nsw i32 %819, 2
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds float, ptr %818, i64 %821
  %823 = load ptr, ptr %27, align 8, !tbaa !5
  %824 = load ptr, ptr %29, align 8, !tbaa !5
  %825 = load i32, ptr %43, align 4, !tbaa !9
  %826 = add nsw i32 %825, 1
  %827 = sext i32 %826 to i64
  %828 = getelementptr inbounds float, ptr %824, i64 %827
  %829 = load ptr, ptr %30, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.2, ptr noundef @.str.2, ptr noundef %807, ptr noundef %808, ptr noundef %810, ptr noundef @c_b13, ptr noundef %816, ptr noundef %817, ptr noundef %822, ptr noundef %823, ptr noundef @c_b26, ptr noundef %828, ptr noundef %829)
  %830 = load ptr, ptr %38, align 8, !tbaa !5
  %831 = getelementptr inbounds i32, ptr %830, i64 3
  %832 = load i32, ptr %831, align 4, !tbaa !9
  %833 = icmp sgt i32 %832, 0
  br i1 %833, label %834, label %868

834:                                              ; preds = %806
  %835 = load ptr, ptr %38, align 8, !tbaa !5
  %836 = getelementptr inbounds i32, ptr %835, i64 1
  %837 = load i32, ptr %836, align 4, !tbaa !9
  %838 = add nsw i32 %837, 2
  %839 = load ptr, ptr %38, align 8, !tbaa !5
  %840 = getelementptr inbounds i32, ptr %839, i64 2
  %841 = load i32, ptr %840, align 4, !tbaa !9
  %842 = add nsw i32 %838, %841
  store i32 %842, ptr %61, align 4, !tbaa !9
  %843 = load ptr, ptr %21, align 8, !tbaa !5
  %844 = load ptr, ptr %24, align 8, !tbaa !5
  %845 = load ptr, ptr %38, align 8, !tbaa !5
  %846 = getelementptr inbounds i32, ptr %845, i64 3
  %847 = load ptr, ptr %31, align 8, !tbaa !5
  %848 = load i32, ptr %61, align 4, !tbaa !9
  %849 = load i32, ptr %45, align 4, !tbaa !9
  %850 = mul nsw i32 %848, %849
  %851 = add nsw i32 %850, 1
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds float, ptr %847, i64 %852
  %854 = load ptr, ptr %32, align 8, !tbaa !5
  %855 = load ptr, ptr %26, align 8, !tbaa !5
  %856 = load i32, ptr %61, align 4, !tbaa !9
  %857 = load i32, ptr %41, align 4, !tbaa !9
  %858 = add nsw i32 %856, %857
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds float, ptr %855, i64 %859
  %861 = load ptr, ptr %27, align 8, !tbaa !5
  %862 = load ptr, ptr %29, align 8, !tbaa !5
  %863 = load i32, ptr %43, align 4, !tbaa !9
  %864 = add nsw i32 %863, 1
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds float, ptr %862, i64 %865
  %867 = load ptr, ptr %30, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.2, ptr noundef @.str.2, ptr noundef %843, ptr noundef %844, ptr noundef %846, ptr noundef @c_b13, ptr noundef %853, ptr noundef %854, ptr noundef %860, ptr noundef %861, ptr noundef @c_b13, ptr noundef %866, ptr noundef %867)
  br label %868

868:                                              ; preds = %834, %806
  br label %922

869:                                              ; preds = %801
  %870 = load ptr, ptr %38, align 8, !tbaa !5
  %871 = getelementptr inbounds i32, ptr %870, i64 3
  %872 = load i32, ptr %871, align 4, !tbaa !9
  %873 = icmp sgt i32 %872, 0
  br i1 %873, label %874, label %908

874:                                              ; preds = %869
  %875 = load ptr, ptr %38, align 8, !tbaa !5
  %876 = getelementptr inbounds i32, ptr %875, i64 1
  %877 = load i32, ptr %876, align 4, !tbaa !9
  %878 = add nsw i32 %877, 2
  %879 = load ptr, ptr %38, align 8, !tbaa !5
  %880 = getelementptr inbounds i32, ptr %879, i64 2
  %881 = load i32, ptr %880, align 4, !tbaa !9
  %882 = add nsw i32 %878, %881
  store i32 %882, ptr %61, align 4, !tbaa !9
  %883 = load ptr, ptr %21, align 8, !tbaa !5
  %884 = load ptr, ptr %24, align 8, !tbaa !5
  %885 = load ptr, ptr %38, align 8, !tbaa !5
  %886 = getelementptr inbounds i32, ptr %885, i64 3
  %887 = load ptr, ptr %31, align 8, !tbaa !5
  %888 = load i32, ptr %61, align 4, !tbaa !9
  %889 = load i32, ptr %45, align 4, !tbaa !9
  %890 = mul nsw i32 %888, %889
  %891 = add nsw i32 %890, 1
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds float, ptr %887, i64 %892
  %894 = load ptr, ptr %32, align 8, !tbaa !5
  %895 = load ptr, ptr %26, align 8, !tbaa !5
  %896 = load i32, ptr %61, align 4, !tbaa !9
  %897 = load i32, ptr %41, align 4, !tbaa !9
  %898 = add nsw i32 %896, %897
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds float, ptr %895, i64 %899
  %901 = load ptr, ptr %27, align 8, !tbaa !5
  %902 = load ptr, ptr %29, align 8, !tbaa !5
  %903 = load i32, ptr %43, align 4, !tbaa !9
  %904 = add nsw i32 %903, 1
  %905 = sext i32 %904 to i64
  %906 = getelementptr inbounds float, ptr %902, i64 %905
  %907 = load ptr, ptr %30, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.2, ptr noundef @.str.2, ptr noundef %883, ptr noundef %884, ptr noundef %886, ptr noundef @c_b13, ptr noundef %893, ptr noundef %894, ptr noundef %900, ptr noundef %901, ptr noundef @c_b26, ptr noundef %906, ptr noundef %907)
  br label %921

908:                                              ; preds = %869
  %909 = load ptr, ptr %21, align 8, !tbaa !5
  %910 = load ptr, ptr %24, align 8, !tbaa !5
  %911 = load ptr, ptr %31, align 8, !tbaa !5
  %912 = load i32, ptr %46, align 4, !tbaa !9
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds float, ptr %911, i64 %913
  %915 = load ptr, ptr %32, align 8, !tbaa !5
  %916 = load ptr, ptr %29, align 8, !tbaa !5
  %917 = load i32, ptr %44, align 4, !tbaa !9
  %918 = sext i32 %917 to i64
  %919 = getelementptr inbounds float, ptr %916, i64 %918
  %920 = load ptr, ptr %30, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %909, ptr noundef %910, ptr noundef %914, ptr noundef %915, ptr noundef %919, ptr noundef %920)
  br label %921

921:                                              ; preds = %908, %874
  br label %922

922:                                              ; preds = %921, %868
  %923 = load ptr, ptr %24, align 8, !tbaa !5
  %924 = load ptr, ptr %26, align 8, !tbaa !5
  %925 = load i32, ptr %41, align 4, !tbaa !9
  %926 = add nsw i32 %925, 1
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds float, ptr %924, i64 %927
  %929 = load ptr, ptr %27, align 8, !tbaa !5
  %930 = load ptr, ptr %29, align 8, !tbaa !5
  %931 = load i32, ptr %64, align 4, !tbaa !9
  %932 = load i32, ptr %43, align 4, !tbaa !9
  %933 = add nsw i32 %931, %932
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds float, ptr %930, i64 %934
  %936 = load ptr, ptr %30, align 8, !tbaa !5
  call void @scopy_(ptr noundef %923, ptr noundef %928, ptr noundef %929, ptr noundef %935, ptr noundef %936)
  %937 = load ptr, ptr %38, align 8, !tbaa !5
  %938 = getelementptr inbounds i32, ptr %937, i64 1
  %939 = load i32, ptr %938, align 4, !tbaa !9
  %940 = add nsw i32 %939, 2
  store i32 %940, ptr %61, align 4, !tbaa !9
  %941 = load ptr, ptr %38, align 8, !tbaa !5
  %942 = getelementptr inbounds i32, ptr %941, i64 2
  %943 = load i32, ptr %942, align 4, !tbaa !9
  %944 = load ptr, ptr %38, align 8, !tbaa !5
  %945 = getelementptr inbounds i32, ptr %944, i64 3
  %946 = load i32, ptr %945, align 4, !tbaa !9
  %947 = add nsw i32 %943, %946
  store i32 %947, ptr %60, align 4, !tbaa !9
  %948 = load ptr, ptr %22, align 8, !tbaa !5
  %949 = load ptr, ptr %24, align 8, !tbaa !5
  %950 = load ptr, ptr %31, align 8, !tbaa !5
  %951 = load i32, ptr %65, align 4, !tbaa !9
  %952 = load i32, ptr %61, align 4, !tbaa !9
  %953 = load i32, ptr %45, align 4, !tbaa !9
  %954 = mul nsw i32 %952, %953
  %955 = add nsw i32 %951, %954
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds float, ptr %950, i64 %956
  %958 = load ptr, ptr %32, align 8, !tbaa !5
  %959 = load ptr, ptr %26, align 8, !tbaa !5
  %960 = load i32, ptr %61, align 4, !tbaa !9
  %961 = load i32, ptr %41, align 4, !tbaa !9
  %962 = add nsw i32 %960, %961
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds float, ptr %959, i64 %963
  %965 = load ptr, ptr %27, align 8, !tbaa !5
  %966 = load ptr, ptr %29, align 8, !tbaa !5
  %967 = load i32, ptr %65, align 4, !tbaa !9
  %968 = load i32, ptr %43, align 4, !tbaa !9
  %969 = add nsw i32 %967, %968
  %970 = sext i32 %969 to i64
  %971 = getelementptr inbounds float, ptr %966, i64 %970
  %972 = load ptr, ptr %30, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.2, ptr noundef @.str.2, ptr noundef %948, ptr noundef %949, ptr noundef %60, ptr noundef @c_b13, ptr noundef %957, ptr noundef %958, ptr noundef %964, ptr noundef %965, ptr noundef @c_b26, ptr noundef %971, ptr noundef %972)
  br label %973

973:                                              ; preds = %922, %783
  %974 = load ptr, ptr %24, align 8, !tbaa !5
  %975 = load i32, ptr %974, align 4, !tbaa !9
  store i32 %975, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %976

976:                                              ; preds = %1041, %973
  %977 = load i32, ptr %56, align 4, !tbaa !9
  %978 = load i32, ptr %51, align 4, !tbaa !9
  %979 = icmp sle i32 %977, %978
  br i1 %979, label %980, label %1044

980:                                              ; preds = %976
  %981 = load ptr, ptr %24, align 8, !tbaa !5
  %982 = load ptr, ptr %33, align 8, !tbaa !5
  %983 = load i32, ptr %56, align 4, !tbaa !9
  %984 = load i32, ptr %47, align 4, !tbaa !9
  %985 = mul nsw i32 %983, %984
  %986 = add nsw i32 %985, 1
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds float, ptr %982, i64 %987
  %989 = call float @snrm2_(ptr noundef %981, ptr noundef %988, ptr noundef @c__1)
  store float %989, ptr %55, align 4, !tbaa !11
  %990 = load ptr, ptr %33, align 8, !tbaa !5
  %991 = load i32, ptr %56, align 4, !tbaa !9
  %992 = load i32, ptr %47, align 4, !tbaa !9
  %993 = mul nsw i32 %991, %992
  %994 = add nsw i32 %993, 1
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds float, ptr %990, i64 %995
  %997 = load float, ptr %996, align 4, !tbaa !11
  %998 = load float, ptr %55, align 4, !tbaa !11
  %999 = fdiv float %997, %998
  %1000 = load ptr, ptr %26, align 8, !tbaa !5
  %1001 = load i32, ptr %56, align 4, !tbaa !9
  %1002 = load i32, ptr %41, align 4, !tbaa !9
  %1003 = add nsw i32 %1001, %1002
  %1004 = sext i32 %1003 to i64
  %1005 = getelementptr inbounds float, ptr %1000, i64 %1004
  store float %999, ptr %1005, align 4, !tbaa !11
  %1006 = load ptr, ptr %24, align 8, !tbaa !5
  %1007 = load i32, ptr %1006, align 4, !tbaa !9
  store i32 %1007, ptr %52, align 4, !tbaa !9
  store i32 2, ptr %57, align 4, !tbaa !9
  br label %1008

1008:                                             ; preds = %1037, %980
  %1009 = load i32, ptr %57, align 4, !tbaa !9
  %1010 = load i32, ptr %52, align 4, !tbaa !9
  %1011 = icmp sle i32 %1009, %1010
  br i1 %1011, label %1012, label %1040

1012:                                             ; preds = %1008
  %1013 = load ptr, ptr %37, align 8, !tbaa !5
  %1014 = load i32, ptr %57, align 4, !tbaa !9
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds i32, ptr %1013, i64 %1015
  %1017 = load i32, ptr %1016, align 4, !tbaa !9
  store i32 %1017, ptr %62, align 4, !tbaa !9
  %1018 = load ptr, ptr %33, align 8, !tbaa !5
  %1019 = load i32, ptr %62, align 4, !tbaa !9
  %1020 = load i32, ptr %56, align 4, !tbaa !9
  %1021 = load i32, ptr %47, align 4, !tbaa !9
  %1022 = mul nsw i32 %1020, %1021
  %1023 = add nsw i32 %1019, %1022
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds float, ptr %1018, i64 %1024
  %1026 = load float, ptr %1025, align 4, !tbaa !11
  %1027 = load float, ptr %55, align 4, !tbaa !11
  %1028 = fdiv float %1026, %1027
  %1029 = load ptr, ptr %26, align 8, !tbaa !5
  %1030 = load i32, ptr %56, align 4, !tbaa !9
  %1031 = load i32, ptr %57, align 4, !tbaa !9
  %1032 = load i32, ptr %41, align 4, !tbaa !9
  %1033 = mul nsw i32 %1031, %1032
  %1034 = add nsw i32 %1030, %1033
  %1035 = sext i32 %1034 to i64
  %1036 = getelementptr inbounds float, ptr %1029, i64 %1035
  store float %1028, ptr %1036, align 4, !tbaa !11
  br label %1037

1037:                                             ; preds = %1012
  %1038 = load i32, ptr %57, align 4, !tbaa !9
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr %57, align 4, !tbaa !9
  br label %1008, !llvm.loop !23

1040:                                             ; preds = %1008
  br label %1041

1041:                                             ; preds = %1040
  %1042 = load i32, ptr %56, align 4, !tbaa !9
  %1043 = add nsw i32 %1042, 1
  store i32 %1043, ptr %56, align 4, !tbaa !9
  br label %976, !llvm.loop !24

1044:                                             ; preds = %976
  %1045 = load ptr, ptr %24, align 8, !tbaa !5
  %1046 = load i32, ptr %1045, align 4, !tbaa !9
  %1047 = icmp eq i32 %1046, 2
  br i1 %1047, label %1048, label %1066

1048:                                             ; preds = %1044
  %1049 = load ptr, ptr %24, align 8, !tbaa !5
  %1050 = load ptr, ptr %24, align 8, !tbaa !5
  %1051 = load ptr, ptr %26, align 8, !tbaa !5
  %1052 = load i32, ptr %42, align 4, !tbaa !9
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds float, ptr %1051, i64 %1053
  %1055 = load ptr, ptr %27, align 8, !tbaa !5
  %1056 = load ptr, ptr %35, align 8, !tbaa !5
  %1057 = load i32, ptr %50, align 4, !tbaa !9
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds float, ptr %1056, i64 %1058
  %1060 = load ptr, ptr %36, align 8, !tbaa !5
  %1061 = load ptr, ptr %33, align 8, !tbaa !5
  %1062 = load i32, ptr %48, align 4, !tbaa !9
  %1063 = sext i32 %1062 to i64
  %1064 = getelementptr inbounds float, ptr %1061, i64 %1063
  %1065 = load ptr, ptr %34, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.2, ptr noundef @.str.2, ptr noundef %1049, ptr noundef %58, ptr noundef %1050, ptr noundef @c_b13, ptr noundef %1054, ptr noundef %1055, ptr noundef %1059, ptr noundef %1060, ptr noundef @c_b26, ptr noundef %1064, ptr noundef %1065)
  store i32 1, ptr %67, align 4
  br label %1228

1066:                                             ; preds = %1044
  %1067 = load ptr, ptr %38, align 8, !tbaa !5
  %1068 = getelementptr inbounds i32, ptr %1067, i64 1
  %1069 = load i32, ptr %1068, align 4, !tbaa !9
  %1070 = add nsw i32 %1069, 1
  store i32 %1070, ptr %61, align 4, !tbaa !9
  %1071 = load ptr, ptr %24, align 8, !tbaa !5
  %1072 = load ptr, ptr %26, align 8, !tbaa !5
  %1073 = load i32, ptr %41, align 4, !tbaa !9
  %1074 = add nsw i32 %1073, 1
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds float, ptr %1072, i64 %1075
  %1077 = load ptr, ptr %27, align 8, !tbaa !5
  %1078 = load ptr, ptr %35, align 8, !tbaa !5
  %1079 = load i32, ptr %49, align 4, !tbaa !9
  %1080 = add nsw i32 %1079, 1
  %1081 = sext i32 %1080 to i64
  %1082 = getelementptr inbounds float, ptr %1078, i64 %1081
  %1083 = load ptr, ptr %36, align 8, !tbaa !5
  %1084 = load ptr, ptr %33, align 8, !tbaa !5
  %1085 = load i32, ptr %47, align 4, !tbaa !9
  %1086 = add nsw i32 %1085, 1
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds float, ptr %1084, i64 %1087
  %1089 = load ptr, ptr %34, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.2, ptr noundef @.str.2, ptr noundef %1071, ptr noundef %64, ptr noundef %61, ptr noundef @c_b13, ptr noundef %1076, ptr noundef %1077, ptr noundef %1082, ptr noundef %1083, ptr noundef @c_b26, ptr noundef %1088, ptr noundef %1089)
  %1090 = load ptr, ptr %38, align 8, !tbaa !5
  %1091 = getelementptr inbounds i32, ptr %1090, i64 1
  %1092 = load i32, ptr %1091, align 4, !tbaa !9
  %1093 = add nsw i32 %1092, 2
  %1094 = load ptr, ptr %38, align 8, !tbaa !5
  %1095 = getelementptr inbounds i32, ptr %1094, i64 2
  %1096 = load i32, ptr %1095, align 4, !tbaa !9
  %1097 = add nsw i32 %1093, %1096
  store i32 %1097, ptr %61, align 4, !tbaa !9
  %1098 = load i32, ptr %61, align 4, !tbaa !9
  %1099 = load ptr, ptr %36, align 8, !tbaa !5
  %1100 = load i32, ptr %1099, align 4, !tbaa !9
  %1101 = icmp sle i32 %1098, %1100
  br i1 %1101, label %1102, label %1127

1102:                                             ; preds = %1066
  %1103 = load ptr, ptr %24, align 8, !tbaa !5
  %1104 = load ptr, ptr %38, align 8, !tbaa !5
  %1105 = getelementptr inbounds i32, ptr %1104, i64 3
  %1106 = load ptr, ptr %26, align 8, !tbaa !5
  %1107 = load i32, ptr %61, align 4, !tbaa !9
  %1108 = load i32, ptr %41, align 4, !tbaa !9
  %1109 = mul nsw i32 %1107, %1108
  %1110 = add nsw i32 %1109, 1
  %1111 = sext i32 %1110 to i64
  %1112 = getelementptr inbounds float, ptr %1106, i64 %1111
  %1113 = load ptr, ptr %27, align 8, !tbaa !5
  %1114 = load ptr, ptr %35, align 8, !tbaa !5
  %1115 = load i32, ptr %61, align 4, !tbaa !9
  %1116 = load i32, ptr %49, align 4, !tbaa !9
  %1117 = add nsw i32 %1115, %1116
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds float, ptr %1114, i64 %1118
  %1120 = load ptr, ptr %36, align 8, !tbaa !5
  %1121 = load ptr, ptr %33, align 8, !tbaa !5
  %1122 = load i32, ptr %47, align 4, !tbaa !9
  %1123 = add nsw i32 %1122, 1
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds float, ptr %1121, i64 %1124
  %1126 = load ptr, ptr %34, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.2, ptr noundef @.str.2, ptr noundef %1103, ptr noundef %64, ptr noundef %1105, ptr noundef @c_b13, ptr noundef %1112, ptr noundef %1113, ptr noundef %1119, ptr noundef %1120, ptr noundef @c_b13, ptr noundef %1125, ptr noundef %1126)
  br label %1127

1127:                                             ; preds = %1102, %1066
  %1128 = load ptr, ptr %38, align 8, !tbaa !5
  %1129 = getelementptr inbounds i32, ptr %1128, i64 1
  %1130 = load i32, ptr %1129, align 4, !tbaa !9
  %1131 = add nsw i32 %1130, 1
  store i32 %1131, ptr %61, align 4, !tbaa !9
  %1132 = load ptr, ptr %22, align 8, !tbaa !5
  %1133 = load i32, ptr %1132, align 4, !tbaa !9
  %1134 = load ptr, ptr %23, align 8, !tbaa !5
  %1135 = load i32, ptr %1134, align 4, !tbaa !9
  %1136 = add nsw i32 %1133, %1135
  store i32 %1136, ptr %66, align 4, !tbaa !9
  %1137 = load i32, ptr %61, align 4, !tbaa !9
  %1138 = icmp sgt i32 %1137, 1
  br i1 %1138, label %1139, label %1193

1139:                                             ; preds = %1127
  %1140 = load ptr, ptr %24, align 8, !tbaa !5
  %1141 = load i32, ptr %1140, align 4, !tbaa !9
  store i32 %1141, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %1142

1142:                                             ; preds = %1162, %1139
  %1143 = load i32, ptr %56, align 4, !tbaa !9
  %1144 = load i32, ptr %51, align 4, !tbaa !9
  %1145 = icmp sle i32 %1143, %1144
  br i1 %1145, label %1146, label %1165

1146:                                             ; preds = %1142
  %1147 = load ptr, ptr %26, align 8, !tbaa !5
  %1148 = load i32, ptr %56, align 4, !tbaa !9
  %1149 = load i32, ptr %41, align 4, !tbaa !9
  %1150 = add nsw i32 %1148, %1149
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr inbounds float, ptr %1147, i64 %1151
  %1153 = load float, ptr %1152, align 4, !tbaa !11
  %1154 = load ptr, ptr %26, align 8, !tbaa !5
  %1155 = load i32, ptr %56, align 4, !tbaa !9
  %1156 = load i32, ptr %61, align 4, !tbaa !9
  %1157 = load i32, ptr %41, 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
  store float %1153, ptr %1161, align 4, !tbaa !11
  br label %1162

1162:                                             ; preds = %1146
  %1163 = load i32, ptr %56, align 4, !tbaa !9
  %1164 = add nsw i32 %1163, 1
  store i32 %1164, ptr %56, align 4, !tbaa !9
  br label %1142, !llvm.loop !25

1165:                                             ; preds = %1142
  %1166 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %1166, ptr %51, align 4, !tbaa !9
  %1167 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %1167, ptr %56, align 4, !tbaa !9
  br label %1168

1168:                                             ; preds = %1189, %1165
  %1169 = load i32, ptr %56, align 4, !tbaa !9
  %1170 = load i32, ptr %51, align 4, !tbaa !9
  %1171 = icmp sle i32 %1169, %1170
  br i1 %1171, label %1172, label %1192

1172:                                             ; preds = %1168
  %1173 = load ptr, ptr %35, align 8, !tbaa !5
  %1174 = load i32, ptr %56, align 4, !tbaa !9
  %1175 = load i32, ptr %49, align 4, !tbaa !9
  %1176 = mul nsw i32 %1174, %1175
  %1177 = add nsw i32 %1176, 1
  %1178 = sext i32 %1177 to i64
  %1179 = getelementptr inbounds float, ptr %1173, i64 %1178
  %1180 = load float, ptr %1179, align 4, !tbaa !11
  %1181 = load ptr, ptr %35, align 8, !tbaa !5
  %1182 = load i32, ptr %61, align 4, !tbaa !9
  %1183 = load i32, ptr %56, align 4, !tbaa !9
  %1184 = load i32, ptr %49, align 4, !tbaa !9
  %1185 = mul nsw i32 %1183, %1184
  %1186 = add nsw i32 %1182, %1185
  %1187 = sext i32 %1186 to i64
  %1188 = getelementptr inbounds float, ptr %1181, i64 %1187
  store float %1180, ptr %1188, align 4, !tbaa !11
  br label %1189

1189:                                             ; preds = %1172
  %1190 = load i32, ptr %56, align 4, !tbaa !9
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr %56, align 4, !tbaa !9
  br label %1168, !llvm.loop !26

1192:                                             ; preds = %1168
  br label %1193

1193:                                             ; preds = %1192, %1127
  %1194 = load ptr, ptr %38, align 8, !tbaa !5
  %1195 = getelementptr inbounds i32, ptr %1194, i64 2
  %1196 = load i32, ptr %1195, align 4, !tbaa !9
  %1197 = add nsw i32 %1196, 1
  %1198 = load ptr, ptr %38, align 8, !tbaa !5
  %1199 = getelementptr inbounds i32, ptr %1198, i64 3
  %1200 = load i32, ptr %1199, align 4, !tbaa !9
  %1201 = add nsw i32 %1197, %1200
  store i32 %1201, ptr %60, align 4, !tbaa !9
  %1202 = load ptr, ptr %24, align 8, !tbaa !5
  %1203 = load ptr, ptr %26, align 8, !tbaa !5
  %1204 = load i32, ptr %61, align 4, !tbaa !9
  %1205 = load i32, ptr %41, align 4, !tbaa !9
  %1206 = mul nsw i32 %1204, %1205
  %1207 = add nsw i32 %1206, 1
  %1208 = sext i32 %1207 to i64
  %1209 = getelementptr inbounds float, ptr %1203, i64 %1208
  %1210 = load ptr, ptr %27, align 8, !tbaa !5
  %1211 = load ptr, ptr %35, align 8, !tbaa !5
  %1212 = load i32, ptr %61, align 4, !tbaa !9
  %1213 = load i32, ptr %65, align 4, !tbaa !9
  %1214 = load i32, ptr %49, align 4, !tbaa !9
  %1215 = mul nsw i32 %1213, %1214
  %1216 = add nsw i32 %1212, %1215
  %1217 = sext i32 %1216 to i64
  %1218 = getelementptr inbounds float, ptr %1211, i64 %1217
  %1219 = load ptr, ptr %36, align 8, !tbaa !5
  %1220 = load ptr, ptr %33, align 8, !tbaa !5
  %1221 = load i32, ptr %65, align 4, !tbaa !9
  %1222 = load i32, ptr %47, align 4, !tbaa !9
  %1223 = mul nsw i32 %1221, %1222
  %1224 = add nsw i32 %1223, 1
  %1225 = sext i32 %1224 to i64
  %1226 = getelementptr inbounds float, ptr %1220, i64 %1225
  %1227 = load ptr, ptr %34, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.2, ptr noundef @.str.2, ptr noundef %1202, ptr noundef %66, ptr noundef %60, ptr noundef @c_b13, ptr noundef %1209, ptr noundef %1210, ptr noundef %1218, ptr noundef %1219, ptr noundef @c_b26, ptr noundef %1226, ptr noundef %1227)
  store i32 1, ptr %67, align 4
  br label %1228

1228:                                             ; preds = %1193, %1048, %388, %303, %224
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  ret void
}

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

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

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

declare float @slamc3_(ptr noundef, ptr noundef) #2

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

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

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

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

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

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

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

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

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

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


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

@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c_b13 = external hidden global float, align 4
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b26 = external hidden global float, align 4
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @slasd3_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %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, ptr nocapture noundef readonly %16, ptr noundef %17, ptr noundef %18, ptr noundef %19) local_unnamed_addr #0 {
  %21 = ptrtoint ptr %10 to i64
  %22 = ptrtoint ptr %8 to i64
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca float, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #3
  %32 = getelementptr inbounds i8, ptr %4, i64 -4
  %33 = load i32, ptr %6, align 4, !tbaa !5
  %narrow = xor i32 %33, -1
  %34 = sext i32 %narrow to i64
  %35 = getelementptr inbounds float, ptr %5, i64 %34
  %36 = getelementptr inbounds i8, ptr %7, i64 -4
  %37 = load i32, ptr %9, align 4, !tbaa !5
  %narrow452 = xor i32 %37, -1
  %38 = sext i32 %narrow452 to i64
  %39 = getelementptr inbounds float, ptr %8, i64 %38
  %40 = load i32, ptr %11, align 4, !tbaa !5
  %narrow451 = xor i32 %40, -1
  %41 = sext i32 %narrow451 to i64
  %42 = getelementptr inbounds float, ptr %10, i64 %41
  %43 = load i32, ptr %13, align 4, !tbaa !5
  %narrow449 = xor i32 %43, -1
  %44 = sext i32 %narrow449 to i64
  %45 = getelementptr inbounds float, ptr %12, i64 %44
  %46 = load i32, ptr %15, align 4, !tbaa !5
  %narrow448 = xor i32 %46, -1
  %47 = sext i32 %narrow448 to i64
  %48 = getelementptr inbounds float, ptr %14, i64 %47
  %49 = getelementptr inbounds i8, ptr %16, i64 -4
  %50 = getelementptr inbounds i8, ptr %18, i64 -4
  store i32 0, ptr %19, align 4, !tbaa !5
  %51 = load i32, ptr %0, align 4, !tbaa !5
  %52 = icmp slt i32 %51, 1
  br i1 %52, label %.sink.split, label %53

53:                                               ; preds = %20
  %54 = load i32, ptr %1, align 4, !tbaa !5
  %55 = icmp slt i32 %54, 1
  br i1 %55, label %.sink.split, label %56

56:                                               ; preds = %53
  %57 = load i32, ptr %2, align 4, !tbaa !5
  %switch = icmp ult i32 %57, 2
  br i1 %switch, label %58, label %.sink.split

.sink.split:                                      ; preds = %56, %53, %20
  %.sink = phi i32 [ -1, %20 ], [ -2, %53 ], [ -3, %56 ]
  %.pr.neg.ph = phi i32 [ 1, %20 ], [ 2, %53 ], [ 3, %56 ]
  store i32 %.sink, ptr %19, align 4, !tbaa !5
  br label %58

58:                                               ; preds = %.sink.split, %56
  %.not428 = phi i1 [ true, %56 ], [ false, %.sink.split ]
  %.pr.neg = phi i32 [ 0, %56 ], [ %.pr.neg.ph, %.sink.split ]
  %59 = load i32, ptr %0, align 4, !tbaa !5
  %60 = load i32, ptr %1, align 4, !tbaa !5
  %61 = add nsw i32 %60, %59
  %62 = add nsw i32 %61, 1
  store i32 %62, ptr %26, align 4, !tbaa !5
  %63 = load i32, ptr %2, align 4, !tbaa !5
  %64 = add nsw i32 %62, %63
  store i32 %64, ptr %25, align 4, !tbaa !5
  %65 = add nsw i32 %59, 1
  store i32 %65, ptr %30, align 4, !tbaa !5
  %66 = add i32 %59, 2
  %67 = load i32, ptr %3, align 4, !tbaa !5
  %68 = icmp slt i32 %67, 1
  %69 = icmp sgt i32 %67, %62
  %or.cond = select i1 %68, i1 true, i1 %69
  br i1 %or.cond, label %.thread.sink.split, label %70

70:                                               ; preds = %58
  %71 = load i32, ptr %6, align 4, !tbaa !5
  %72 = icmp slt i32 %71, %67
  br i1 %72, label %.thread.sink.split, label %73

73:                                               ; preds = %70
  %74 = load i32, ptr %9, align 4, !tbaa !5
  %.not = icmp sgt i32 %74, %61
  br i1 %.not, label %75, label %.thread.sink.split

75:                                               ; preds = %73
  %76 = load i32, ptr %11, align 4, !tbaa !5
  %.not454 = icmp sgt i32 %76, %61
  br i1 %.not454, label %77, label %.thread.sink.split

77:                                               ; preds = %75
  %78 = load i32, ptr %13, align 4, !tbaa !5
  %79 = icmp slt i32 %78, %64
  br i1 %79, label %.thread.sink.split, label %80

80:                                               ; preds = %77
  %81 = load i32, ptr %15, align 4, !tbaa !5
  %82 = icmp slt i32 %81, %64
  br i1 %82, label %.thread.sink.split, label %83

83:                                               ; preds = %80
  br i1 %.not428, label %85, label %.thread

.thread.sink.split:                               ; preds = %80, %77, %75, %73, %70, %58
  %.sink630 = phi i32 [ -4, %58 ], [ -7, %70 ], [ -10, %73 ], [ -12, %75 ], [ -14, %77 ], [ -16, %80 ]
  %.neg.ph = phi i32 [ 4, %58 ], [ 7, %70 ], [ 10, %73 ], [ 12, %75 ], [ 14, %77 ], [ 16, %80 ]
  store i32 %.sink630, ptr %19, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %83
  %.neg = phi i32 [ %.pr.neg, %83 ], [ %.neg.ph, %.thread.sink.split ]
  store i32 %.neg, ptr %23, align 4, !tbaa !5
  %84 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %23, i32 noundef 6) #3
  br label %.loopexit

85:                                               ; preds = %83
  %86 = icmp eq i32 %67, 1
  br i1 %86, label %87, label %.lr.ph.preheader

87:                                               ; preds = %85
  %88 = load float, ptr %18, align 4, !tbaa !9
  %89 = fcmp ult float %88, 0.000000e+00
  %90 = fneg float %88
  %91 = select i1 %89, float %90, float %88
  store float %91, ptr %4, align 4, !tbaa !9
  call void @scopy_(ptr noundef nonnull %25, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %12, ptr noundef nonnull %13) #3
  %92 = load float, ptr %18, align 4, !tbaa !9
  %93 = fcmp ogt float %92, 0.000000e+00
  br i1 %93, label %94, label %95

94:                                               ; preds = %87
  call void @scopy_(ptr noundef nonnull %26, ptr noundef %10, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef nonnull @c__1) #3
  br label %.loopexit

95:                                               ; preds = %87
  %96 = load i32, ptr %26, align 4, !tbaa !5
  %.not450529 = icmp slt i32 %96, 1
  br i1 %.not450529, label %.loopexit, label %.lr.ph532.preheader

.lr.ph532.preheader:                              ; preds = %95
  %97 = sext i32 %40 to i64
  %98 = sext i32 %37 to i64
  %99 = add nuw i32 %96, 1
  %wide.trip.count586 = zext i32 %99 to i64
  %invariant.gep626 = getelementptr float, ptr %42, i64 %97
  %invariant.gep628 = getelementptr float, ptr %39, i64 %98
  %100 = zext nneg i32 %96 to i64
  %min.iters.check701 = icmp ult i32 %96, 20
  br i1 %min.iters.check701, label %.lr.ph532.preheader715, label %vector.memcheck697

vector.memcheck697:                               ; preds = %.lr.ph532.preheader
  %101 = add nsw i64 %98, %38
  %102 = shl nsw i64 %101, 2
  %103 = add i64 %102, %22
  %104 = add nsw i64 %97, %41
  %105 = shl nsw i64 %104, 2
  %106 = add i64 %105, %21
  %107 = sub i64 %103, %106
  %diff.check698 = icmp ult i64 %107, 32
  br i1 %diff.check698, label %.lr.ph532.preheader715, label %vector.ph702

vector.ph702:                                     ; preds = %vector.memcheck697
  %n.vec704 = and i64 %100, 2147483640
  %ind.end705 = or disjoint i64 %n.vec704, 1
  br label %vector.body707

vector.body707:                                   ; preds = %vector.body707, %vector.ph702
  %index708 = phi i64 [ 0, %vector.ph702 ], [ %index.next712, %vector.body707 ]
  %offset.idx709 = or disjoint i64 %index708, 1
  %108 = getelementptr float, ptr %invariant.gep626, i64 %offset.idx709
  %109 = getelementptr i8, ptr %108, i64 16
  %wide.load710 = load <4 x float>, ptr %108, align 4, !tbaa !9
  %wide.load711 = load <4 x float>, ptr %109, align 4, !tbaa !9
  %110 = fneg <4 x float> %wide.load710
  %111 = fneg <4 x float> %wide.load711
  %112 = getelementptr float, ptr %invariant.gep628, i64 %offset.idx709
  %113 = getelementptr i8, ptr %112, i64 16
  store <4 x float> %110, ptr %112, align 4, !tbaa !9
  store <4 x float> %111, ptr %113, align 4, !tbaa !9
  %index.next712 = add nuw i64 %index708, 8
  %114 = icmp eq i64 %index.next712, %n.vec704
  br i1 %114, label %middle.block699, label %vector.body707, !llvm.loop !11

middle.block699:                                  ; preds = %vector.body707
  %cmp.n713 = icmp eq i64 %n.vec704, %100
  br i1 %cmp.n713, label %.loopexit, label %.lr.ph532.preheader715

.lr.ph532.preheader715:                           ; preds = %middle.block699, %vector.memcheck697, %.lr.ph532.preheader
  %indvars.iv583.ph = phi i64 [ 1, %vector.memcheck697 ], [ 1, %.lr.ph532.preheader ], [ %ind.end705, %middle.block699 ]
  %115 = sub nsw i64 %wide.trip.count586, %indvars.iv583.ph
  %116 = zext nneg i32 %96 to i64
  %117 = sub nsw i64 %116, %indvars.iv583.ph
  %xtraiter734 = and i64 %115, 3
  %lcmp.mod735.not = icmp eq i64 %xtraiter734, 0
  br i1 %lcmp.mod735.not, label %.lr.ph532.prol.loopexit, label %.lr.ph532.prol

.lr.ph532.prol:                                   ; preds = %.lr.ph532.preheader715, %.lr.ph532.prol
  %indvars.iv583.prol = phi i64 [ %indvars.iv.next584.prol, %.lr.ph532.prol ], [ %indvars.iv583.ph, %.lr.ph532.preheader715 ]
  %prol.iter736 = phi i64 [ %prol.iter736.next, %.lr.ph532.prol ], [ 0, %.lr.ph532.preheader715 ]
  %gep627.prol = getelementptr float, ptr %invariant.gep626, i64 %indvars.iv583.prol
  %118 = load float, ptr %gep627.prol, align 4, !tbaa !9
  %119 = fneg float %118
  %gep629.prol = getelementptr float, ptr %invariant.gep628, i64 %indvars.iv583.prol
  store float %119, ptr %gep629.prol, align 4, !tbaa !9
  %indvars.iv.next584.prol = add nuw nsw i64 %indvars.iv583.prol, 1
  %prol.iter736.next = add i64 %prol.iter736, 1
  %prol.iter736.cmp.not = icmp eq i64 %prol.iter736.next, %xtraiter734
  br i1 %prol.iter736.cmp.not, label %.lr.ph532.prol.loopexit, label %.lr.ph532.prol, !llvm.loop !15

.lr.ph532.prol.loopexit:                          ; preds = %.lr.ph532.prol, %.lr.ph532.preheader715
  %indvars.iv583.unr = phi i64 [ %indvars.iv583.ph, %.lr.ph532.preheader715 ], [ %indvars.iv.next584.prol, %.lr.ph532.prol ]
  %120 = icmp ult i64 %117, 3
  br i1 %120, label %.loopexit, label %.lr.ph532

.lr.ph532:                                        ; preds = %.lr.ph532.prol.loopexit, %.lr.ph532
  %indvars.iv583 = phi i64 [ %indvars.iv.next584.3, %.lr.ph532 ], [ %indvars.iv583.unr, %.lr.ph532.prol.loopexit ]
  %gep627 = getelementptr float, ptr %invariant.gep626, i64 %indvars.iv583
  %121 = load float, ptr %gep627, align 4, !tbaa !9
  %122 = fneg float %121
  %gep629 = getelementptr float, ptr %invariant.gep628, i64 %indvars.iv583
  store float %122, ptr %gep629, align 4, !tbaa !9
  %indvars.iv.next584 = add nuw nsw i64 %indvars.iv583, 1
  %gep627.1 = getelementptr float, ptr %invariant.gep626, i64 %indvars.iv.next584
  %123 = load float, ptr %gep627.1, align 4, !tbaa !9
  %124 = fneg float %123
  %gep629.1 = getelementptr float, ptr %invariant.gep628, i64 %indvars.iv.next584
  store float %124, ptr %gep629.1, align 4, !tbaa !9
  %indvars.iv.next584.1 = add nuw nsw i64 %indvars.iv583, 2
  %gep627.2 = getelementptr float, ptr %invariant.gep626, i64 %indvars.iv.next584.1
  %125 = load float, ptr %gep627.2, align 4, !tbaa !9
  %126 = fneg float %125
  %gep629.2 = getelementptr float, ptr %invariant.gep628, i64 %indvars.iv.next584.1
  store float %126, ptr %gep629.2, align 4, !tbaa !9
  %indvars.iv.next584.2 = add nuw nsw i64 %indvars.iv583, 3
  %gep627.3 = getelementptr float, ptr %invariant.gep626, i64 %indvars.iv.next584.2
  %127 = load float, ptr %gep627.3, align 4, !tbaa !9
  %128 = fneg float %127
  %gep629.3 = getelementptr float, ptr %invariant.gep628, i64 %indvars.iv.next584.2
  store float %128, ptr %gep629.3, align 4, !tbaa !9
  %indvars.iv.next584.3 = add nuw nsw i64 %indvars.iv583, 4
  %exitcond587.not.3 = icmp eq i64 %indvars.iv.next584.3, %wide.trip.count586
  br i1 %exitcond587.not.3, label %.loopexit, label %.lr.ph532, !llvm.loop !17

.lr.ph.preheader:                                 ; preds = %85
  %129 = add nuw i32 %67, 1
  %wide.trip.count = zext i32 %129 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %130 = getelementptr inbounds float, ptr %36, i64 %indvars.iv
  %131 = tail call float @slamc3_(ptr noundef nonnull %130, ptr noundef nonnull %130) #3
  %132 = load float, ptr %130, align 4, !tbaa !9
  %133 = fsub float %131, %132
  store float %133, ptr %130, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !18

._crit_edge:                                      ; preds = %.lr.ph
  tail call void @scopy_(ptr noundef nonnull %3, ptr noundef %18, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull @c__1) #3
  %134 = tail call float @snrm2_(ptr noundef nonnull %3, ptr noundef %18, ptr noundef nonnull @c__1) #3
  store float %134, ptr %29, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.1, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %29, ptr noundef nonnull @c_b13, ptr noundef nonnull %3, ptr noundef nonnull @c__1, ptr noundef %18, ptr noundef nonnull %3, ptr noundef nonnull %19) #3
  %135 = load float, ptr %29, align 4, !tbaa !9
  %136 = fmul float %135, %135
  store float %136, ptr %29, align 4, !tbaa !9
  %137 = load i32, ptr %3, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %39, i64 4
  %invariant.gep459 = getelementptr i8, ptr %45, i64 4
  store i32 1, ptr %24, align 4, !tbaa !5
  %.not430461 = icmp slt i32 %137, 1
  br i1 %.not430461, label %._crit_edge504.thread, label %.lr.ph464

.lr.ph464:                                        ; preds = %._crit_edge, %145
  %storemerge462 = phi i32 [ %147, %145 ], [ 1, %._crit_edge ]
  %138 = mul nsw i32 %storemerge462, %37
  %139 = sext i32 %138 to i64
  %gep = getelementptr float, ptr %invariant.gep, i64 %139
  %140 = sext i32 %storemerge462 to i64
  %141 = getelementptr inbounds float, ptr %32, i64 %140
  %142 = mul nsw i32 %storemerge462, %43
  %143 = sext i32 %142 to i64
  %gep460 = getelementptr float, ptr %invariant.gep459, i64 %143
  call void @slasd4_(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %7, ptr noundef %18, ptr noundef %gep, ptr noundef nonnull %29, ptr noundef nonnull %141, ptr noundef %gep460, ptr noundef nonnull %19) #3
  %144 = load i32, ptr %19, align 4, !tbaa !5
  %.not447 = icmp eq i32 %144, 0
  br i1 %.not447, label %145, label %.loopexit

145:                                              ; preds = %.lr.ph464
  %146 = load i32, ptr %24, align 4, !tbaa !5
  %147 = add nsw i32 %146, 1
  store i32 %147, ptr %24, align 4, !tbaa !5
  %.not430.not = icmp slt i32 %146, %137
  br i1 %.not430.not, label %.lr.ph464, label %._crit_edge465, !llvm.loop !19

._crit_edge465:                                   ; preds = %145
  %.pre = load i32, ptr %3, align 4, !tbaa !5
  %.not431477 = icmp slt i32 %.pre, 1
  br i1 %.not431477, label %._crit_edge504.thread, label %.lr.ph480

.lr.ph480:                                        ; preds = %._crit_edge465
  %148 = sext i32 %43 to i64
  %149 = sext i32 %37 to i64
  %150 = sext i32 %33 to i64
  %invariant.gep608 = getelementptr float, ptr %35, i64 %150
  %151 = zext nneg i32 %.pre to i64
  br label %152

152:                                              ; preds = %.lr.ph480, %211
  %indvars.iv544 = phi i64 [ 1, %.lr.ph480 ], [ %indvars.iv.next545, %211 ]
  %153 = load i32, ptr %3, align 4, !tbaa !5
  %154 = mul nsw i32 %153, %37
  %155 = sext i32 %154 to i64
  %156 = getelementptr float, ptr %39, i64 %indvars.iv544
  %157 = getelementptr float, ptr %156, i64 %155
  %158 = load float, ptr %157, align 4, !tbaa !9
  %159 = mul nsw i32 %153, %43
  %160 = sext i32 %159 to i64
  %161 = getelementptr float, ptr %45, i64 %indvars.iv544
  %162 = getelementptr float, ptr %161, i64 %160
  %163 = load float, ptr %162, align 4, !tbaa !9
  %164 = fmul float %158, %163
  %165 = getelementptr inbounds float, ptr %50, i64 %indvars.iv544
  store float %164, ptr %165, align 4, !tbaa !9
  %.not444.not466 = icmp ugt i64 %indvars.iv544, 1
  br i1 %.not444.not466, label %.lr.ph469, label %.preheader

.lr.ph469:                                        ; preds = %152
  %166 = getelementptr inbounds float, ptr %36, i64 %indvars.iv544
  %invariant.gep600 = getelementptr float, ptr %39, i64 %indvars.iv544
  %invariant.gep602 = getelementptr float, ptr %45, i64 %indvars.iv544
  br label %171

.preheader.loopexit:                              ; preds = %171
  %167 = trunc nuw nsw i64 %indvars.iv544 to i32
  br label %.preheader

.preheader:                                       ; preds = %152, %.preheader.loopexit
  %.pre-phi = phi i32 [ %167, %.preheader.loopexit ], [ 1, %152 ]
  %168 = phi float [ %185, %.preheader.loopexit ], [ %164, %152 ]
  %169 = sext i32 %153 to i64
  %.not446.not472 = icmp slt i64 %indvars.iv544, %169
  br i1 %.not446.not472, label %.lr.ph474, label %._crit_edge475

.lr.ph474:                                        ; preds = %.preheader
  %170 = getelementptr inbounds float, ptr %36, i64 %indvars.iv544
  %wide.trip.count549 = zext i32 %153 to i64
  %invariant.gep604 = getelementptr float, ptr %39, i64 %indvars.iv544
  %invariant.gep606 = getelementptr float, ptr %45, i64 %indvars.iv544
  br label %186

171:                                              ; preds = %.lr.ph469, %171
  %172 = phi float [ %164, %.lr.ph469 ], [ %185, %171 ]
  %indvars.iv539 = phi i64 [ 1, %.lr.ph469 ], [ %indvars.iv.next540, %171 ]
  %173 = mul nsw i64 %indvars.iv539, %149
  %gep601 = getelementptr float, ptr %invariant.gep600, i64 %173
  %174 = load float, ptr %gep601, align 4, !tbaa !9
  %175 = mul nsw i64 %indvars.iv539, %148
  %gep603 = getelementptr float, ptr %invariant.gep602, i64 %175
  %176 = load float, ptr %gep603, align 4, !tbaa !9
  %177 = fmul float %174, %176
  %178 = load float, ptr %166, align 4, !tbaa !9
  %179 = getelementptr inbounds float, ptr %36, i64 %indvars.iv539
  %180 = load float, ptr %179, align 4, !tbaa !9
  %181 = fsub float %178, %180
  %182 = fdiv float %177, %181
  %183 = fadd float %178, %180
  %184 = fdiv float %182, %183
  %185 = fmul float %172, %184
  store float %185, ptr %165, align 4, !tbaa !9
  %indvars.iv.next540 = add nuw nsw i64 %indvars.iv539, 1
  %exitcond543.not = icmp eq i64 %indvars.iv.next540, %indvars.iv544
  br i1 %exitcond543.not, label %.preheader.loopexit, label %171, !llvm.loop !20

186:                                              ; preds = %.lr.ph474, %186
  %187 = phi float [ %168, %.lr.ph474 ], [ %199, %186 ]
  %indvars.iv546 = phi i64 [ %indvars.iv544, %.lr.ph474 ], [ %indvars.iv.next547, %186 ]
  %188 = mul nsw i64 %indvars.iv546, %149
  %gep605 = getelementptr float, ptr %invariant.gep604, i64 %188
  %189 = load float, ptr %gep605, align 4, !tbaa !9
  %190 = mul nsw i64 %indvars.iv546, %148
  %gep607 = getelementptr float, ptr %invariant.gep606, i64 %190
  %191 = load float, ptr %gep607, align 4, !tbaa !9
  %192 = fmul float %189, %191
  %193 = load float, ptr %170, align 4, !tbaa !9
  %gep471 = getelementptr float, ptr %7, i64 %indvars.iv546
  %194 = load float, ptr %gep471, align 4, !tbaa !9
  %195 = fsub float %193, %194
  %196 = fdiv float %192, %195
  %197 = fadd float %193, %194
  %198 = fdiv float %196, %197
  %199 = fmul float %187, %198
  store float %199, ptr %165, align 4, !tbaa !9
  %indvars.iv.next547 = add nuw nsw i64 %indvars.iv546, 1
  %exitcond550.not = icmp eq i64 %indvars.iv.next547, %wide.trip.count549
  br i1 %exitcond550.not, label %._crit_edge475, label %186, !llvm.loop !21

._crit_edge475:                                   ; preds = %186, %.preheader
  %200 = phi float [ %168, %.preheader ], [ %199, %186 ]
  %storemerge445.lcssa = phi i32 [ %.pre-phi, %.preheader ], [ %153, %186 ]
  store i32 %storemerge445.lcssa, ptr %24, align 4, !tbaa !5
  %201 = fcmp oge float %200, 0.000000e+00
  %202 = fneg float %200
  %203 = select i1 %201, float %200, float %202
  %sqrtf = call float @sqrtf(float noundef %203) #4
  %gep609 = getelementptr float, ptr %invariant.gep608, i64 %indvars.iv544
  %204 = load float, ptr %gep609, align 4, !tbaa !9
  %205 = fcmp ult float %204, 0.000000e+00
  %206 = fcmp oge float %sqrtf, 0.000000e+00
  %sqrtf.neg = fneg float %sqrtf
  br i1 %205, label %209, label %207

207:                                              ; preds = %._crit_edge475
  %208 = select i1 %206, float %sqrtf, float %sqrtf.neg
  br label %211

209:                                              ; preds = %._crit_edge475
  %210 = select i1 %206, float %sqrtf.neg, float %sqrtf
  br label %211

211:                                              ; preds = %209, %207
  %212 = phi float [ %208, %207 ], [ %210, %209 ]
  store float %212, ptr %165, align 4, !tbaa !9
  %indvars.iv.next545 = add nuw nsw i64 %indvars.iv544, 1
  %.not431.not = icmp ult i64 %indvars.iv544, %151
  br i1 %.not431.not, label %152, label %._crit_edge481, !llvm.loop !22

._crit_edge481:                                   ; preds = %211
  %.pre589 = load i32, ptr %3, align 4, !tbaa !5
  %invariant.gep498 = getelementptr i8, ptr %35, i64 4
  %.not432500 = icmp slt i32 %.pre589, 1
  br i1 %.not432500, label %._crit_edge504.thread, label %.lr.ph503.preheader

.lr.ph503.preheader:                              ; preds = %._crit_edge481
  %213 = sext i32 %37 to i64
  %214 = sext i32 %43 to i64
  %215 = sext i32 %33 to i64
  %216 = zext nneg i32 %.pre589 to i64
  %217 = add nsw i64 %148, %44
  %218 = shl nsw i64 %217, 2
  %219 = shl nsw i64 %148, 2
  %220 = add nsw i64 %149, %38
  %221 = shl nsw i64 %220, 2
  %222 = shl nsw i64 %149, 2
  %scevgep640 = getelementptr i8, ptr %18, i64 4
  %scevgep641 = getelementptr i8, ptr %18, i64 -4
  %scevgep643 = getelementptr i8, ptr %7, i64 4
  %scevgep644 = getelementptr i8, ptr %7, i64 -4
  %223 = getelementptr i8, ptr %12, i64 %218
  %224 = getelementptr i8, ptr %223, i64 8
  %225 = getelementptr i8, ptr %12, i64 %218
  %226 = getelementptr i8, ptr %8, i64 %221
  %227 = getelementptr i8, ptr %226, i64 8
  %228 = getelementptr i8, ptr %8, i64 %221
  br label %.lr.ph503

.lr.ph503:                                        ; preds = %.lr.ph503.preheader, %._crit_edge492
  %indvar = phi i64 [ 0, %.lr.ph503.preheader ], [ %indvar.next, %._crit_edge492 ]
  %229 = phi i32 [ %.pre589, %.lr.ph503.preheader ], [ %284, %._crit_edge492 ]
  %indvars.iv562 = phi i64 [ 1, %.lr.ph503.preheader ], [ %indvars.iv.next563, %._crit_edge492 ]
  %230 = mul i64 %219, %indvar
  %scevgep = getelementptr i8, ptr %224, i64 %230
  %scevgep635 = getelementptr i8, ptr %225, i64 %230
  %231 = mul i64 %222, %indvar
  %scevgep637 = getelementptr i8, ptr %227, i64 %231
  %scevgep638 = getelementptr i8, ptr %228, i64 %231
  %232 = load float, ptr %18, align 4, !tbaa !9
  %233 = mul nsw i64 %indvars.iv562, %213
  %gep495 = getelementptr float, ptr %invariant.gep, i64 %233
  %234 = load float, ptr %gep495, align 4, !tbaa !9
  %235 = fdiv float %232, %234
  %236 = mul nsw i64 %indvars.iv562, %214
  %gep497 = getelementptr float, ptr %invariant.gep459, i64 %236
  %237 = load float, ptr %gep497, align 4, !tbaa !9
  %238 = fdiv float %235, %237
  store float %238, ptr %gep497, align 4, !tbaa !9
  store float -1.000000e+00, ptr %gep495, align 4, !tbaa !9
  %.not440482 = icmp slt i32 %229, 2
  br i1 %.not440482, label %._crit_edge486, label %.lr.ph485.preheader

.lr.ph485.preheader:                              ; preds = %.lr.ph503
  %239 = add nuw i32 %229, 1
  %wide.trip.count555 = zext i32 %239 to i64
  %invariant.gep610 = getelementptr float, ptr %39, i64 %233
  %invariant.gep612 = getelementptr float, ptr %45, i64 %236
  %240 = add nsw i64 %wide.trip.count555, -2
  %min.iters.check = icmp ult i64 %240, 4
  br i1 %min.iters.check, label %.lr.ph485.preheader717, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph485.preheader
  %241 = shl nuw nsw i64 %wide.trip.count555, 2
  %scevgep636 = getelementptr i8, ptr %scevgep635, i64 %241
  %scevgep639 = getelementptr i8, ptr %scevgep638, i64 %241
  %scevgep642 = getelementptr i8, ptr %scevgep641, i64 %241
  %scevgep645 = getelementptr i8, ptr %scevgep644, i64 %241
  %bound0 = icmp ult ptr %scevgep, %scevgep639
  %bound1 = icmp ult ptr %scevgep637, %scevgep636
  %found.conflict = and i1 %bound0, %bound1
  %bound0646 = icmp ult ptr %scevgep, %scevgep642
  %bound1647 = icmp ult ptr %scevgep640, %scevgep636
  %found.conflict648 = and i1 %bound0646, %bound1647
  %conflict.rdx = or i1 %found.conflict, %found.conflict648
  %bound0649 = icmp ult ptr %scevgep, %scevgep645
  %bound1650 = icmp ult ptr %scevgep643, %scevgep636
  %found.conflict651 = and i1 %bound0649, %bound1650
  %conflict.rdx652 = or i1 %conflict.rdx, %found.conflict651
  %bound0653 = icmp ult ptr %scevgep637, %scevgep642
  %bound1654 = icmp ult ptr %scevgep640, %scevgep639
  %found.conflict655 = and i1 %bound0653, %bound1654
  %conflict.rdx656 = or i1 %conflict.rdx652, %found.conflict655
  %bound0657 = icmp ult ptr %scevgep637, %scevgep645
  %bound1658 = icmp ult ptr %scevgep643, %scevgep639
  %found.conflict659 = and i1 %bound0657, %bound1658
  %conflict.rdx660 = or i1 %conflict.rdx656, %found.conflict659
  br i1 %conflict.rdx660, label %.lr.ph485.preheader717, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %240, -4
  %ind.end = or disjoint i64 %n.vec, 2
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 2
  %242 = getelementptr inbounds float, ptr %50, i64 %offset.idx
  %wide.load = load <4 x float>, ptr %242, align 4, !tbaa !9, !alias.scope !23
  %243 = getelementptr float, ptr %invariant.gep610, i64 %offset.idx
  %wide.load661 = load <4 x float>, ptr %243, align 4, !tbaa !9, !alias.scope !26, !noalias !28
  %244 = fdiv <4 x float> %wide.load, %wide.load661
  %245 = getelementptr float, ptr %invariant.gep612, i64 %offset.idx
  %wide.load662 = load <4 x float>, ptr %245, align 4, !tbaa !9, !alias.scope !30, !noalias !32
  %246 = fdiv <4 x float> %244, %wide.load662
  store <4 x float> %246, ptr %245, align 4, !tbaa !9, !alias.scope !30, !noalias !32
  %247 = getelementptr inbounds float, ptr %36, i64 %offset.idx
  %wide.load663 = load <4 x float>, ptr %247, align 4, !tbaa !9, !alias.scope !33
  %248 = fmul <4 x float> %246, %wide.load663
  store <4 x float> %248, ptr %243, align 4, !tbaa !9, !alias.scope !26, !noalias !28
  %index.next = add nuw i64 %index, 4
  %249 = icmp eq i64 %index.next, %n.vec
  br i1 %249, label %middle.block, label %vector.body, !llvm.loop !34

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %240, %n.vec
  br i1 %cmp.n, label %._crit_edge486, label %.lr.ph485.preheader717

.lr.ph485.preheader717:                           ; preds = %middle.block, %vector.memcheck, %.lr.ph485.preheader
  %indvars.iv552.ph = phi i64 [ 2, %vector.memcheck ], [ 2, %.lr.ph485.preheader ], [ %ind.end, %middle.block ]
  %250 = sub nsw i64 %wide.trip.count555, %indvars.iv552.ph
  %251 = zext nneg i32 %229 to i64
  %xtraiter = and i64 %250, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph485.prol.loopexit, label %.lr.ph485.prol

.lr.ph485.prol:                                   ; preds = %.lr.ph485.preheader717
  %252 = getelementptr inbounds float, ptr %50, i64 %indvars.iv552.ph
  %253 = load float, ptr %252, align 4, !tbaa !9
  %gep611.prol = getelementptr float, ptr %invariant.gep610, i64 %indvars.iv552.ph
  %254 = load float, ptr %gep611.prol, align 4, !tbaa !9
  %255 = fdiv float %253, %254
  %gep613.prol = getelementptr float, ptr %invariant.gep612, i64 %indvars.iv552.ph
  %256 = load float, ptr %gep613.prol, align 4, !tbaa !9
  %257 = fdiv float %255, %256
  store float %257, ptr %gep613.prol, align 4, !tbaa !9
  %258 = getelementptr inbounds float, ptr %36, i64 %indvars.iv552.ph
  %259 = load float, ptr %258, align 4, !tbaa !9
  %260 = fmul float %257, %259
  store float %260, ptr %gep611.prol, align 4, !tbaa !9
  %indvars.iv.next553.prol = add nuw nsw i64 %indvars.iv552.ph, 1
  br label %.lr.ph485.prol.loopexit

.lr.ph485.prol.loopexit:                          ; preds = %.lr.ph485.prol, %.lr.ph485.preheader717
  %indvars.iv552.unr = phi i64 [ %indvars.iv552.ph, %.lr.ph485.preheader717 ], [ %indvars.iv.next553.prol, %.lr.ph485.prol ]
  %261 = icmp eq i64 %indvars.iv552.ph, %251
  br i1 %261, label %._crit_edge486, label %.lr.ph485

.lr.ph485:                                        ; preds = %.lr.ph485.prol.loopexit, %.lr.ph485
  %indvars.iv552 = phi i64 [ %indvars.iv.next553.1, %.lr.ph485 ], [ %indvars.iv552.unr, %.lr.ph485.prol.loopexit ]
  %262 = getelementptr inbounds float, ptr %50, i64 %indvars.iv552
  %263 = load float, ptr %262, align 4, !tbaa !9
  %gep611 = getelementptr float, ptr %invariant.gep610, i64 %indvars.iv552
  %264 = load float, ptr %gep611, align 4, !tbaa !9
  %265 = fdiv float %263, %264
  %gep613 = getelementptr float, ptr %invariant.gep612, i64 %indvars.iv552
  %266 = load float, ptr %gep613, align 4, !tbaa !9
  %267 = fdiv float %265, %266
  store float %267, ptr %gep613, align 4, !tbaa !9
  %268 = getelementptr inbounds float, ptr %36, i64 %indvars.iv552
  %269 = load float, ptr %268, align 4, !tbaa !9
  %270 = fmul float %267, %269
  store float %270, ptr %gep611, align 4, !tbaa !9
  %indvars.iv.next553 = add nuw nsw i64 %indvars.iv552, 1
  %271 = getelementptr float, ptr %18, i64 %indvars.iv552
  %272 = load float, ptr %271, align 4, !tbaa !9
  %gep611.1 = getelementptr float, ptr %invariant.gep610, i64 %indvars.iv.next553
  %273 = load float, ptr %gep611.1, align 4, !tbaa !9
  %274 = fdiv float %272, %273
  %gep613.1 = getelementptr float, ptr %invariant.gep612, i64 %indvars.iv.next553
  %275 = load float, ptr %gep613.1, align 4, !tbaa !9
  %276 = fdiv float %274, %275
  store float %276, ptr %gep613.1, align 4, !tbaa !9
  %277 = getelementptr float, ptr %7, i64 %indvars.iv552
  %278 = load float, ptr %277, align 4, !tbaa !9
  %279 = fmul float %276, %278
  store float %279, ptr %gep611.1, align 4, !tbaa !9
  %indvars.iv.next553.1 = add nuw nsw i64 %indvars.iv552, 2
  %exitcond556.not.1 = icmp eq i64 %indvars.iv.next553.1, %wide.trip.count555
  br i1 %exitcond556.not.1, label %._crit_edge486, label %.lr.ph485, !llvm.loop !35

._crit_edge486:                                   ; preds = %.lr.ph485.prol.loopexit, %.lr.ph485, %middle.block, %.lr.ph503
  %storemerge439.lcssa = phi i32 [ 2, %.lr.ph503 ], [ %239, %middle.block ], [ %239, %.lr.ph485 ], [ %239, %.lr.ph485.prol.loopexit ]
  store i32 %storemerge439.lcssa, ptr %24, align 4, !tbaa !5
  %280 = call float @snrm2_(ptr noundef nonnull %3, ptr noundef nonnull %gep495, ptr noundef nonnull @c__1) #3
  %281 = load float, ptr %gep495, align 4, !tbaa !9
  %282 = fdiv float %281, %280
  %283 = mul nsw i64 %indvars.iv562, %215
  %gep499 = getelementptr float, ptr %invariant.gep498, i64 %283
  store float %282, ptr %gep499, align 4, !tbaa !9
  %284 = load i32, ptr %3, align 4, !tbaa !5
  %.not442488 = icmp slt i32 %284, 2
  br i1 %.not442488, label %._crit_edge492, label %.lr.ph491.preheader

.lr.ph491.preheader:                              ; preds = %._crit_edge486
  %285 = add nuw i32 %284, 1
  %wide.trip.count560 = zext i32 %285 to i64
  %286 = getelementptr float, ptr %39, i64 %233
  %invariant.gep614 = getelementptr float, ptr %35, i64 %283
  %287 = add nsw i64 %wide.trip.count560, -2
  %288 = add nsw i64 %wide.trip.count560, -3
  %xtraiter722 = and i64 %287, 3
  %289 = icmp ult i64 %288, 3
  br i1 %289, label %._crit_edge492.loopexit.unr-lcssa, label %.lr.ph491.preheader.new

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

.lr.ph491:                                        ; preds = %.lr.ph491, %.lr.ph491.preheader.new
  %indvars.iv557 = phi i64 [ 2, %.lr.ph491.preheader.new ], [ %indvars.iv.next558.3, %.lr.ph491 ]
  %niter = phi i64 [ 0, %.lr.ph491.preheader.new ], [ %niter.next.3, %.lr.ph491 ]
  %290 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv557
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = sext i32 %291 to i64
  %293 = getelementptr float, ptr %286, i64 %292
  %294 = load float, ptr %293, align 4, !tbaa !9
  %295 = fdiv float %294, %280
  %gep615 = getelementptr float, ptr %invariant.gep614, i64 %indvars.iv557
  store float %295, ptr %gep615, align 4, !tbaa !9
  %indvars.iv.next558 = or disjoint i64 %indvars.iv557, 1
  %296 = getelementptr i32, ptr %16, i64 %indvars.iv557
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = sext i32 %297 to i64
  %299 = getelementptr float, ptr %286, i64 %298
  %300 = load float, ptr %299, align 4, !tbaa !9
  %301 = fdiv float %300, %280
  %gep615.1 = getelementptr float, ptr %invariant.gep614, i64 %indvars.iv.next558
  store float %301, ptr %gep615.1, align 4, !tbaa !9
  %indvars.iv.next558.1 = add nuw nsw i64 %indvars.iv557, 2
  %302 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv.next558.1
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = sext i32 %303 to i64
  %305 = getelementptr float, ptr %286, i64 %304
  %306 = load float, ptr %305, align 4, !tbaa !9
  %307 = fdiv float %306, %280
  %gep615.2 = getelementptr float, ptr %invariant.gep614, i64 %indvars.iv.next558.1
  store float %307, ptr %gep615.2, align 4, !tbaa !9
  %indvars.iv.next558.2 = add nuw nsw i64 %indvars.iv557, 3
  %308 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv.next558.2
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = sext i32 %309 to i64
  %311 = getelementptr float, ptr %286, i64 %310
  %312 = load float, ptr %311, align 4, !tbaa !9
  %313 = fdiv float %312, %280
  %gep615.3 = getelementptr float, ptr %invariant.gep614, i64 %indvars.iv.next558.2
  store float %313, ptr %gep615.3, align 4, !tbaa !9
  %indvars.iv.next558.3 = add nuw nsw i64 %indvars.iv557, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge492.loopexit.unr-lcssa, label %.lr.ph491, !llvm.loop !36

._crit_edge492.loopexit.unr-lcssa:                ; preds = %.lr.ph491, %.lr.ph491.preheader
  %indvars.iv557.unr = phi i64 [ 2, %.lr.ph491.preheader ], [ %indvars.iv.next558.3, %.lr.ph491 ]
  %lcmp.mod723.not = icmp eq i64 %xtraiter722, 0
  br i1 %lcmp.mod723.not, label %._crit_edge492, label %.lr.ph491.epil

.lr.ph491.epil:                                   ; preds = %._crit_edge492.loopexit.unr-lcssa, %.lr.ph491.epil
  %indvars.iv557.epil = phi i64 [ %indvars.iv.next558.epil, %.lr.ph491.epil ], [ %indvars.iv557.unr, %._crit_edge492.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph491.epil ], [ 0, %._crit_edge492.loopexit.unr-lcssa ]
  %314 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv557.epil
  %315 = load i32, ptr %314, align 4, !tbaa !5
  %316 = sext i32 %315 to i64
  %317 = getelementptr float, ptr %286, i64 %316
  %318 = load float, ptr %317, align 4, !tbaa !9
  %319 = fdiv float %318, %280
  %gep615.epil = getelementptr float, ptr %invariant.gep614, i64 %indvars.iv557.epil
  store float %319, ptr %gep615.epil, align 4, !tbaa !9
  %indvars.iv.next558.epil = add nuw nsw i64 %indvars.iv557.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter722
  br i1 %epil.iter.cmp.not, label %._crit_edge492, label %.lr.ph491.epil, !llvm.loop !37

._crit_edge492:                                   ; preds = %._crit_edge492.loopexit.unr-lcssa, %.lr.ph491.epil, %._crit_edge486
  %storemerge441.lcssa = phi i32 [ 2, %._crit_edge486 ], [ %285, %.lr.ph491.epil ], [ %285, %._crit_edge492.loopexit.unr-lcssa ]
  store i32 %storemerge441.lcssa, ptr %24, align 4, !tbaa !5
  %indvars.iv.next563 = add nuw nsw i64 %indvars.iv562, 1
  %.not432.not = icmp ult i64 %indvars.iv562, %216
  %indvar.next = add i64 %indvar, 1
  br i1 %.not432.not, label %.lr.ph503, label %._crit_edge504, !llvm.loop !38

._crit_edge504:                                   ; preds = %._crit_edge492
  %320 = icmp eq i32 %284, 2
  br i1 %320, label %321, label %._crit_edge504.thread

321:                                              ; preds = %._crit_edge504
  call void @sgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2, ptr noundef nonnull %26, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef nonnull @c_b13, ptr noundef %10, ptr noundef nonnull %11, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef nonnull @c_b26, ptr noundef nonnull %8, ptr noundef nonnull %9) #3
  br label %386

._crit_edge504.thread:                            ; preds = %._crit_edge465, %._crit_edge, %._crit_edge481, %._crit_edge504
  %322 = load i32, ptr %17, align 4, !tbaa !5
  %323 = icmp sgt i32 %322, 0
  br i1 %323, label %324, label %348

324:                                              ; preds = %._crit_edge504.thread
  %325 = shl i32 %40, 1
  %326 = or disjoint i32 %325, 1
  %327 = sext i32 %326 to i64
  %328 = getelementptr inbounds float, ptr %42, i64 %327
  %329 = sext i32 %33 to i64
  %330 = getelementptr float, ptr %35, i64 %329
  %331 = getelementptr i8, ptr %330, i64 8
  call void @sgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2, ptr noundef nonnull %0, ptr noundef nonnull %3, ptr noundef nonnull %17, ptr noundef nonnull @c_b13, ptr noundef nonnull %328, ptr noundef nonnull %11, ptr noundef %331, ptr noundef nonnull %6, ptr noundef nonnull @c_b26, ptr noundef %8, ptr noundef nonnull %9) #3
  %332 = getelementptr inbounds i8, ptr %17, i64 8
  %333 = load i32, ptr %332, align 4, !tbaa !5
  %334 = icmp sgt i32 %333, 0
  br i1 %334, label %335, label %365

335:                                              ; preds = %324
  %336 = load i32, ptr %17, align 4, !tbaa !5
  %337 = add nsw i32 %336, 2
  %338 = getelementptr inbounds i8, ptr %17, i64 4
  %339 = load i32, ptr %338, align 4, !tbaa !5
  %340 = add nsw i32 %337, %339
  store i32 %340, ptr %28, align 4, !tbaa !5
  %341 = mul nsw i32 %340, %40
  %342 = sext i32 %341 to i64
  %343 = getelementptr float, ptr %42, i64 %342
  %344 = getelementptr i8, ptr %343, i64 4
  %345 = add nsw i32 %340, %33
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds float, ptr %35, i64 %346
  call void @sgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2, ptr noundef nonnull %0, ptr noundef nonnull %3, ptr noundef nonnull %332, ptr noundef nonnull @c_b13, ptr noundef %344, ptr noundef nonnull %11, ptr noundef %347, ptr noundef nonnull %6, ptr noundef nonnull @c_b13, ptr noundef %8, ptr noundef nonnull %9) #3
  br label %365

348:                                              ; preds = %._crit_edge504.thread
  %349 = getelementptr inbounds i8, ptr %17, i64 8
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = icmp sgt i32 %350, 0
  br i1 %351, label %352, label %364

352:                                              ; preds = %348
  %353 = add nsw i32 %322, 2
  %354 = getelementptr inbounds i8, ptr %17, i64 4
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = add nsw i32 %353, %355
  store i32 %356, ptr %28, align 4, !tbaa !5
  %357 = mul nsw i32 %356, %40
  %358 = sext i32 %357 to i64
  %359 = getelementptr float, ptr %42, i64 %358
  %360 = getelementptr i8, ptr %359, i64 4
  %361 = add nsw i32 %356, %33
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds float, ptr %35, i64 %362
  call void @sgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2, ptr noundef nonnull %0, ptr noundef nonnull %3, ptr noundef nonnull %349, ptr noundef nonnull @c_b13, ptr noundef %360, ptr noundef nonnull %11, ptr noundef %363, ptr noundef nonnull %6, ptr noundef nonnull @c_b26, ptr noundef %8, ptr noundef nonnull %9) #3
  br label %365

364:                                              ; preds = %348
  call void @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %3, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %8, ptr noundef nonnull %9) #3
  br label %365

365:                                              ; preds = %352, %364, %324, %335
  %366 = add nsw i32 %65, %37
  %367 = sext i32 %366 to i64
  %368 = getelementptr inbounds float, ptr %39, i64 %367
  call void @scopy_(ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %368, ptr noundef nonnull %9) #3
  %369 = load i32, ptr %17, align 4, !tbaa !5
  %370 = add nsw i32 %369, 2
  %371 = getelementptr inbounds i8, ptr %17, i64 4
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = getelementptr inbounds i8, ptr %17, i64 8
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = add nsw i32 %374, %372
  store i32 %375, ptr %27, align 4, !tbaa !5
  %376 = mul nsw i32 %370, %40
  %377 = add nsw i32 %376, %66
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds float, ptr %42, i64 %378
  %380 = add nsw i32 %370, %33
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds float, ptr %35, i64 %381
  %383 = add nsw i32 %66, %37
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds float, ptr %39, i64 %384
  call void @sgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2, ptr noundef nonnull %1, ptr noundef nonnull %3, ptr noundef nonnull %27, ptr noundef nonnull @c_b13, ptr noundef %379, ptr noundef nonnull %11, ptr noundef %382, ptr noundef nonnull %6, ptr noundef nonnull @c_b26, ptr noundef %385, ptr noundef nonnull %9) #3
  br label %386

386:                                              ; preds = %365, %321
  %387 = load i32, ptr %3, align 4, !tbaa !5
  %.not433513 = icmp slt i32 %387, 1
  br i1 %.not433513, label %._crit_edge517.thread, label %.lr.ph516.preheader

.lr.ph516.preheader:                              ; preds = %386
  %388 = sext i32 %33 to i64
  %389 = sext i32 %43 to i64
  %invariant.gep618 = getelementptr float, ptr %35, i64 %388
  %390 = zext nneg i32 %387 to i64
  br label %.lr.ph516

.lr.ph516:                                        ; preds = %.lr.ph516.preheader, %._crit_edge509
  %indvars.iv570 = phi i64 [ 1, %.lr.ph516.preheader ], [ %indvars.iv.next571, %._crit_edge509 ]
  %391 = mul nsw i64 %indvars.iv570, %389
  %gep512 = getelementptr float, ptr %invariant.gep459, i64 %391
  %392 = call float @snrm2_(ptr noundef nonnull %3, ptr noundef %gep512, ptr noundef nonnull @c__1) #3
  %393 = load float, ptr %gep512, align 4, !tbaa !9
  %394 = fdiv float %393, %392
  %gep619 = getelementptr float, ptr %invariant.gep618, i64 %indvars.iv570
  store float %394, ptr %gep619, align 4, !tbaa !9
  %395 = load i32, ptr %3, align 4, !tbaa !5
  %.not438505 = icmp slt i32 %395, 2
  br i1 %.not438505, label %._crit_edge509, label %.lr.ph508.preheader

.lr.ph508.preheader:                              ; preds = %.lr.ph516
  %396 = add nuw i32 %395, 1
  %wide.trip.count568 = zext i32 %396 to i64
  %397 = getelementptr float, ptr %45, i64 %391
  %invariant.gep616 = getelementptr float, ptr %35, i64 %indvars.iv570
  %xtraiter724 = and i64 %wide.trip.count568, 1
  %398 = icmp eq i32 %396, 3
  br i1 %398, label %._crit_edge509.loopexit.unr-lcssa, label %.lr.ph508.preheader.new

.lr.ph508.preheader.new:                          ; preds = %.lr.ph508.preheader
  %399 = and i64 %wide.trip.count568, 4294967294
  %400 = add nsw i64 %399, -4
  br label %.lr.ph508

.lr.ph508:                                        ; preds = %.lr.ph508, %.lr.ph508.preheader.new
  %indvars.iv565 = phi i64 [ 2, %.lr.ph508.preheader.new ], [ %indvars.iv.next566.1, %.lr.ph508 ]
  %niter728 = phi i64 [ 0, %.lr.ph508.preheader.new ], [ %niter728.next.1, %.lr.ph508 ]
  %401 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv565
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = sext i32 %402 to i64
  %404 = getelementptr float, ptr %397, i64 %403
  %405 = load float, ptr %404, align 4, !tbaa !9
  %406 = fdiv float %405, %392
  %407 = mul nsw i64 %indvars.iv565, %388
  %gep617 = getelementptr float, ptr %invariant.gep616, i64 %407
  store float %406, ptr %gep617, align 4, !tbaa !9
  %indvars.iv.next566 = or disjoint i64 %indvars.iv565, 1
  %408 = getelementptr i32, ptr %16, i64 %indvars.iv565
  %409 = load i32, ptr %408, align 4, !tbaa !5
  %410 = sext i32 %409 to i64
  %411 = getelementptr float, ptr %397, i64 %410
  %412 = load float, ptr %411, align 4, !tbaa !9
  %413 = fdiv float %412, %392
  %414 = mul nsw i64 %indvars.iv.next566, %388
  %gep617.1 = getelementptr float, ptr %invariant.gep616, i64 %414
  store float %413, ptr %gep617.1, align 4, !tbaa !9
  %indvars.iv.next566.1 = add nuw nsw i64 %indvars.iv565, 2
  %niter728.next.1 = add i64 %niter728, 2
  %niter728.ncmp.1 = icmp eq i64 %niter728, %400
  br i1 %niter728.ncmp.1, label %._crit_edge509.loopexit.unr-lcssa, label %.lr.ph508, !llvm.loop !39

._crit_edge509.loopexit.unr-lcssa:                ; preds = %.lr.ph508, %.lr.ph508.preheader
  %indvars.iv565.unr = phi i64 [ 2, %.lr.ph508.preheader ], [ %indvars.iv.next566.1, %.lr.ph508 ]
  %lcmp.mod726.not = icmp eq i64 %xtraiter724, 0
  br i1 %lcmp.mod726.not, label %._crit_edge509, label %.lr.ph508.epil

.lr.ph508.epil:                                   ; preds = %._crit_edge509.loopexit.unr-lcssa
  %415 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv565.unr
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = sext i32 %416 to i64
  %418 = getelementptr float, ptr %397, i64 %417
  %419 = load float, ptr %418, align 4, !tbaa !9
  %420 = fdiv float %419, %392
  %421 = mul nsw i64 %indvars.iv565.unr, %388
  %gep617.epil = getelementptr float, ptr %invariant.gep616, i64 %421
  store float %420, ptr %gep617.epil, align 4, !tbaa !9
  br label %._crit_edge509

._crit_edge509:                                   ; preds = %.lr.ph508.epil, %._crit_edge509.loopexit.unr-lcssa, %.lr.ph516
  %storemerge437.lcssa = phi i32 [ 2, %.lr.ph516 ], [ %396, %._crit_edge509.loopexit.unr-lcssa ], [ %396, %.lr.ph508.epil ]
  store i32 %storemerge437.lcssa, ptr %24, align 4, !tbaa !5
  %indvars.iv.next571 = add nuw nsw i64 %indvars.iv570, 1
  %.not433.not = icmp ult i64 %indvars.iv570, %390
  br i1 %.not433.not, label %.lr.ph516, label %._crit_edge517, !llvm.loop !40

._crit_edge517:                                   ; preds = %._crit_edge509
  %422 = icmp eq i32 %395, 2
  br i1 %422, label %423, label %._crit_edge517.thread

423:                                              ; preds = %._crit_edge517
  call void @sgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2, ptr noundef nonnull %3, ptr noundef nonnull %25, ptr noundef nonnull %3, ptr noundef nonnull @c_b13, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull @c_b26, ptr noundef nonnull %12, ptr noundef nonnull %13) #3
  br label %.loopexit

._crit_edge517.thread:                            ; preds = %386, %._crit_edge517
  %424 = load i32, ptr %17, align 4, !tbaa !5
  %425 = add nsw i32 %424, 1
  store i32 %425, ptr %28, align 4, !tbaa !5
  call void @sgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2, ptr noundef nonnull %3, ptr noundef nonnull %30, ptr noundef nonnull %28, ptr noundef nonnull @c_b13, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull @c_b26, ptr noundef %12, ptr noundef nonnull %13) #3
  %426 = load i32, ptr %17, align 4, !tbaa !5
  %427 = add nsw i32 %426, 2
  %428 = getelementptr inbounds i8, ptr %17, i64 4
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = add nsw i32 %427, %429
  store i32 %430, ptr %28, align 4, !tbaa !5
  %431 = load i32, ptr %15, align 4, !tbaa !5
  %.not434 = icmp sgt i32 %430, %431
  br i1 %.not434, label %441, label %432

432:                                              ; preds = %._crit_edge517.thread
  %433 = getelementptr inbounds i8, ptr %17, i64 8
  %434 = mul nsw i32 %430, %33
  %435 = sext i32 %434 to i64
  %436 = getelementptr float, ptr %35, i64 %435
  %437 = getelementptr i8, ptr %436, i64 4
  %438 = add nsw i32 %430, %46
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds float, ptr %48, i64 %439
  call void @sgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2, ptr noundef nonnull %3, ptr noundef nonnull %30, ptr noundef nonnull %433, ptr noundef nonnull @c_b13, ptr noundef %437, ptr noundef nonnull %6, ptr noundef %440, ptr noundef nonnull %15, ptr noundef nonnull @c_b13, ptr noundef %12, ptr noundef nonnull %13) #3
  %.pre590 = load i32, ptr %17, align 4, !tbaa !5
  br label %441

441:                                              ; preds = %432, %._crit_edge517.thread
  %442 = phi i32 [ %.pre590, %432 ], [ %426, %._crit_edge517.thread ]
  %443 = add nsw i32 %442, 1
  store i32 %443, ptr %28, align 4, !tbaa !5
  %444 = load i32, ptr %1, align 4, !tbaa !5
  %445 = load i32, ptr %2, align 4, !tbaa !5
  %446 = add nsw i32 %445, %444
  store i32 %446, ptr %31, align 4, !tbaa !5
  %447 = icmp sgt i32 %442, 0
  br i1 %447, label %448, label %.loopexit455

448:                                              ; preds = %441
  %449 = load i32, ptr %3, align 4, !tbaa !5
  %.not435518 = icmp slt i32 %449, 1
  br i1 %.not435518, label %._crit_edge522, label %.lr.ph521

.lr.ph521:                                        ; preds = %448
  %450 = mul nsw i32 %443, %33
  %451 = sext i32 %33 to i64
  %452 = sext i32 %450 to i64
  %453 = add nuw i32 %449, 1
  %wide.trip.count577 = zext i32 %453 to i64
  %invariant.gep620 = getelementptr float, ptr %35, i64 %451
  %invariant.gep622 = getelementptr float, ptr %35, i64 %452
  %454 = zext nneg i32 %449 to i64
  %min.iters.check667 = icmp ult i32 %449, 12
  br i1 %min.iters.check667, label %scalar.ph666.preheader, label %vector.memcheck664

vector.memcheck664:                               ; preds = %.lr.ph521
  %455 = sub nsw i64 %452, %451
  %456 = and i64 %455, 4611686018427387896
  %diff.check = icmp eq i64 %456, 0
  br i1 %diff.check, label %scalar.ph666.preheader, label %vector.ph668

vector.ph668:                                     ; preds = %vector.memcheck664
  %n.vec670 = and i64 %454, 2147483640
  %ind.end671 = or disjoint i64 %n.vec670, 1
  br label %vector.body673

vector.body673:                                   ; preds = %vector.body673, %vector.ph668
  %index674 = phi i64 [ 0, %vector.ph668 ], [ %index.next678, %vector.body673 ]
  %offset.idx675 = or disjoint i64 %index674, 1
  %457 = getelementptr float, ptr %invariant.gep620, i64 %offset.idx675
  %458 = getelementptr i8, ptr %457, i64 16
  %wide.load676 = load <4 x float>, ptr %457, align 4, !tbaa !9
  %wide.load677 = load <4 x float>, ptr %458, align 4, !tbaa !9
  %459 = getelementptr float, ptr %invariant.gep622, i64 %offset.idx675
  %460 = getelementptr i8, ptr %459, i64 16
  store <4 x float> %wide.load676, ptr %459, align 4, !tbaa !9
  store <4 x float> %wide.load677, ptr %460, align 4, !tbaa !9
  %index.next678 = add nuw i64 %index674, 8
  %461 = icmp eq i64 %index.next678, %n.vec670
  br i1 %461, label %middle.block665, label %vector.body673, !llvm.loop !41

middle.block665:                                  ; preds = %vector.body673
  %cmp.n679 = icmp eq i64 %n.vec670, %454
  br i1 %cmp.n679, label %._crit_edge522, label %scalar.ph666.preheader

scalar.ph666.preheader:                           ; preds = %middle.block665, %vector.memcheck664, %.lr.ph521
  %indvars.iv574.ph = phi i64 [ 1, %vector.memcheck664 ], [ 1, %.lr.ph521 ], [ %ind.end671, %middle.block665 ]
  %462 = sub nsw i64 %wide.trip.count577, %indvars.iv574.ph
  %463 = zext nneg i32 %449 to i64
  %464 = sub nsw i64 %463, %indvars.iv574.ph
  %xtraiter729 = and i64 %462, 3
  %lcmp.mod730.not = icmp eq i64 %xtraiter729, 0
  br i1 %lcmp.mod730.not, label %scalar.ph666.prol.loopexit, label %scalar.ph666.prol

scalar.ph666.prol:                                ; preds = %scalar.ph666.preheader, %scalar.ph666.prol
  %indvars.iv574.prol = phi i64 [ %indvars.iv.next575.prol, %scalar.ph666.prol ], [ %indvars.iv574.ph, %scalar.ph666.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph666.prol ], [ 0, %scalar.ph666.preheader ]
  %gep621.prol = getelementptr float, ptr %invariant.gep620, i64 %indvars.iv574.prol
  %465 = load float, ptr %gep621.prol, align 4, !tbaa !9
  %gep623.prol = getelementptr float, ptr %invariant.gep622, i64 %indvars.iv574.prol
  store float %465, ptr %gep623.prol, align 4, !tbaa !9
  %indvars.iv.next575.prol = add nuw nsw i64 %indvars.iv574.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter729
  br i1 %prol.iter.cmp.not, label %scalar.ph666.prol.loopexit, label %scalar.ph666.prol, !llvm.loop !42

scalar.ph666.prol.loopexit:                       ; preds = %scalar.ph666.prol, %scalar.ph666.preheader
  %indvars.iv574.unr = phi i64 [ %indvars.iv574.ph, %scalar.ph666.preheader ], [ %indvars.iv.next575.prol, %scalar.ph666.prol ]
  %466 = icmp ult i64 %464, 3
  br i1 %466, label %._crit_edge522, label %scalar.ph666

scalar.ph666:                                     ; preds = %scalar.ph666.prol.loopexit, %scalar.ph666
  %indvars.iv574 = phi i64 [ %indvars.iv.next575.3, %scalar.ph666 ], [ %indvars.iv574.unr, %scalar.ph666.prol.loopexit ]
  %gep621 = getelementptr float, ptr %invariant.gep620, i64 %indvars.iv574
  %467 = load float, ptr %gep621, align 4, !tbaa !9
  %gep623 = getelementptr float, ptr %invariant.gep622, i64 %indvars.iv574
  store float %467, ptr %gep623, align 4, !tbaa !9
  %indvars.iv.next575 = add nuw nsw i64 %indvars.iv574, 1
  %gep621.1 = getelementptr float, ptr %invariant.gep620, i64 %indvars.iv.next575
  %468 = load float, ptr %gep621.1, align 4, !tbaa !9
  %gep623.1 = getelementptr float, ptr %invariant.gep622, i64 %indvars.iv.next575
  store float %468, ptr %gep623.1, align 4, !tbaa !9
  %indvars.iv.next575.1 = add nuw nsw i64 %indvars.iv574, 2
  %gep621.2 = getelementptr float, ptr %invariant.gep620, i64 %indvars.iv.next575.1
  %469 = load float, ptr %gep621.2, align 4, !tbaa !9
  %gep623.2 = getelementptr float, ptr %invariant.gep622, i64 %indvars.iv.next575.1
  store float %469, ptr %gep623.2, align 4, !tbaa !9
  %indvars.iv.next575.2 = add nuw nsw i64 %indvars.iv574, 3
  %gep621.3 = getelementptr float, ptr %invariant.gep620, i64 %indvars.iv.next575.2
  %470 = load float, ptr %gep621.3, align 4, !tbaa !9
  %gep623.3 = getelementptr float, ptr %invariant.gep622, i64 %indvars.iv.next575.2
  store float %470, ptr %gep623.3, align 4, !tbaa !9
  %indvars.iv.next575.3 = add nuw nsw i64 %indvars.iv574, 4
  %exitcond578.not.3 = icmp eq i64 %indvars.iv.next575.3, %wide.trip.count577
  br i1 %exitcond578.not.3, label %._crit_edge522, label %scalar.ph666, !llvm.loop !43

._crit_edge522:                                   ; preds = %scalar.ph666.prol.loopexit, %scalar.ph666, %middle.block665, %448
  %471 = load i32, ptr %25, align 4, !tbaa !5
  %invariant.gep523 = getelementptr i8, ptr %48, i64 4
  %.not436525 = icmp sgt i32 %66, %471
  br i1 %.not436525, label %.loopexit455, label %.lr.ph528.preheader

.lr.ph528.preheader:                              ; preds = %._crit_edge522
  %472 = sext i32 %66 to i64
  %473 = sext i32 %46 to i64
  %474 = zext nneg i32 %443 to i64
  %475 = add i32 %471, 1
  %invariant.gep624 = getelementptr float, ptr %48, i64 %474
  %476 = add i32 %471, -2
  %477 = sub i32 %476, %59
  %478 = zext i32 %477 to i64
  %479 = add nuw nsw i64 %478, 1
  %min.iters.check684 = icmp ugt i32 %477, 10
  %ident.check.not = icmp eq i32 %46, 1
  %or.cond714 = select i1 %min.iters.check684, i1 %ident.check.not, i1 false
  br i1 %or.cond714, label %vector.memcheck680, label %.lr.ph528.preheader716

vector.memcheck680:                               ; preds = %.lr.ph528.preheader
  %480 = shl nuw nsw i64 %474, 2
  %481 = add nsw i64 %480, -4
  %diff.check681 = icmp ult i64 %481, 32
  br i1 %diff.check681, label %.lr.ph528.preheader716, label %vector.ph685

vector.ph685:                                     ; preds = %vector.memcheck680
  %n.vec687 = and i64 %479, 8589934584
  %ind.end688 = add nsw i64 %n.vec687, %472
  br label %vector.body690

vector.body690:                                   ; preds = %vector.body690, %vector.ph685
  %index691 = phi i64 [ 0, %vector.ph685 ], [ %index.next695, %vector.body690 ]
  %offset.idx692 = add i64 %index691, %472
  %482 = getelementptr float, ptr %invariant.gep523, i64 %offset.idx692
  %483 = getelementptr i8, ptr %482, i64 16
  %wide.load693 = load <4 x float>, ptr %482, align 4, !tbaa !9
  %wide.load694 = load <4 x float>, ptr %483, align 4, !tbaa !9
  %484 = getelementptr float, ptr %invariant.gep624, i64 %offset.idx692
  %485 = getelementptr i8, ptr %484, i64 16
  store <4 x float> %wide.load693, ptr %484, align 4, !tbaa !9
  store <4 x float> %wide.load694, ptr %485, align 4, !tbaa !9
  %index.next695 = add nuw i64 %index691, 8
  %486 = icmp eq i64 %index.next695, %n.vec687
  br i1 %486, label %middle.block682, label %vector.body690, !llvm.loop !44

middle.block682:                                  ; preds = %vector.body690
  %cmp.n696 = icmp eq i64 %479, %n.vec687
  br i1 %cmp.n696, label %.loopexit455, label %.lr.ph528.preheader716

.lr.ph528.preheader716:                           ; preds = %middle.block682, %vector.memcheck680, %.lr.ph528.preheader
  %indvars.iv579.ph = phi i64 [ %472, %vector.memcheck680 ], [ %472, %.lr.ph528.preheader ], [ %ind.end688, %middle.block682 ]
  %487 = add i32 %471, 1
  %488 = trunc i64 %indvars.iv579.ph to i32
  %489 = sub i32 %487, %488
  %490 = sub i32 %471, %488
  %xtraiter731 = and i32 %489, 3
  %lcmp.mod732.not = icmp eq i32 %xtraiter731, 0
  br i1 %lcmp.mod732.not, label %.lr.ph528.prol.loopexit, label %.lr.ph528.prol

.lr.ph528.prol:                                   ; preds = %.lr.ph528.preheader716, %.lr.ph528.prol
  %indvars.iv579.prol = phi i64 [ %indvars.iv.next580.prol, %.lr.ph528.prol ], [ %indvars.iv579.ph, %.lr.ph528.preheader716 ]
  %prol.iter733 = phi i32 [ %prol.iter733.next, %.lr.ph528.prol ], [ 0, %.lr.ph528.preheader716 ]
  %491 = mul nsw i64 %indvars.iv579.prol, %473
  %gep524.prol = getelementptr float, ptr %invariant.gep523, i64 %491
  %492 = load float, ptr %gep524.prol, align 4, !tbaa !9
  %gep625.prol = getelementptr float, ptr %invariant.gep624, i64 %491
  store float %492, ptr %gep625.prol, align 4, !tbaa !9
  %indvars.iv.next580.prol = add nsw i64 %indvars.iv579.prol, 1
  %prol.iter733.next = add i32 %prol.iter733, 1
  %prol.iter733.cmp.not = icmp eq i32 %prol.iter733.next, %xtraiter731
  br i1 %prol.iter733.cmp.not, label %.lr.ph528.prol.loopexit, label %.lr.ph528.prol, !llvm.loop !45

.lr.ph528.prol.loopexit:                          ; preds = %.lr.ph528.prol, %.lr.ph528.preheader716
  %indvars.iv579.unr = phi i64 [ %indvars.iv579.ph, %.lr.ph528.preheader716 ], [ %indvars.iv.next580.prol, %.lr.ph528.prol ]
  %493 = icmp ult i32 %490, 3
  br i1 %493, label %.loopexit455, label %.lr.ph528

.lr.ph528:                                        ; preds = %.lr.ph528.prol.loopexit, %.lr.ph528
  %indvars.iv579 = phi i64 [ %indvars.iv.next580.3, %.lr.ph528 ], [ %indvars.iv579.unr, %.lr.ph528.prol.loopexit ]
  %494 = mul nsw i64 %indvars.iv579, %473
  %gep524 = getelementptr float, ptr %invariant.gep523, i64 %494
  %495 = load float, ptr %gep524, align 4, !tbaa !9
  %gep625 = getelementptr float, ptr %invariant.gep624, i64 %494
  store float %495, ptr %gep625, align 4, !tbaa !9
  %indvars.iv.next580 = add nsw i64 %indvars.iv579, 1
  %496 = mul nsw i64 %indvars.iv.next580, %473
  %gep524.1 = getelementptr float, ptr %invariant.gep523, i64 %496
  %497 = load float, ptr %gep524.1, align 4, !tbaa !9
  %gep625.1 = getelementptr float, ptr %invariant.gep624, i64 %496
  store float %497, ptr %gep625.1, align 4, !tbaa !9
  %indvars.iv.next580.1 = add nsw i64 %indvars.iv579, 2
  %498 = mul nsw i64 %indvars.iv.next580.1, %473
  %gep524.2 = getelementptr float, ptr %invariant.gep523, i64 %498
  %499 = load float, ptr %gep524.2, align 4, !tbaa !9
  %gep625.2 = getelementptr float, ptr %invariant.gep624, i64 %498
  store float %499, ptr %gep625.2, align 4, !tbaa !9
  %indvars.iv.next580.2 = add nsw i64 %indvars.iv579, 3
  %500 = mul nsw i64 %indvars.iv.next580.2, %473
  %gep524.3 = getelementptr float, ptr %invariant.gep523, i64 %500
  %501 = load float, ptr %gep524.3, align 4, !tbaa !9
  %gep625.3 = getelementptr float, ptr %invariant.gep624, i64 %500
  store float %501, ptr %gep625.3, align 4, !tbaa !9
  %indvars.iv.next580.3 = add nsw i64 %indvars.iv579, 4
  %lftr.wideiv.3 = trunc i64 %indvars.iv.next580.3 to i32
  %exitcond582.not.3 = icmp eq i32 %475, %lftr.wideiv.3
  br i1 %exitcond582.not.3, label %.loopexit455, label %.lr.ph528, !llvm.loop !46

.loopexit455:                                     ; preds = %.lr.ph528.prol.loopexit, %.lr.ph528, %middle.block682, %._crit_edge522, %441
  %502 = load i32, ptr %428, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  %504 = getelementptr inbounds i8, ptr %17, i64 8
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = add nsw i32 %503, %505
  store i32 %506, ptr %27, align 4, !tbaa !5
  %507 = mul nsw i32 %443, %33
  %508 = sext i32 %507 to i64
  %509 = getelementptr float, ptr %35, i64 %508
  %510 = getelementptr i8, ptr %509, i64 4
  %511 = mul nsw i32 %66, %46
  %512 = add nsw i32 %443, %511
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds float, ptr %48, i64 %513
  %515 = mul nsw i32 %66, %43
  %516 = sext i32 %515 to i64
  %517 = getelementptr float, ptr %45, i64 %516
  %518 = getelementptr i8, ptr %517, i64 4
  call void @sgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2, ptr noundef nonnull %3, ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef nonnull @c_b13, ptr noundef %510, ptr noundef nonnull %6, ptr noundef %514, ptr noundef nonnull %15, ptr noundef nonnull @c_b26, ptr noundef %518, ptr noundef nonnull %13) #3
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph464, %.lr.ph532.prol.loopexit, %.lr.ph532, %middle.block699, %95, %94, %.loopexit455, %423, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #3
  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 i32 @xerbla_(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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 = { nounwind }
attributes #4 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

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

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


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