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

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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [5 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @cgesvxx_(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, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26) #0 {
  %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 ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca i32, 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 i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca float, align 4
  %69 = alloca float, align 4
  %70 = alloca float, align 4
  %71 = alloca i32, align 4
  %72 = alloca float, align 4
  %73 = alloca float, align 4
  %74 = alloca i32, align 4
  %75 = alloca float, align 4
  %76 = alloca i32, align 4
  %77 = alloca float, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca float, align 4
  %81 = alloca i32, align 4
  %82 = alloca float, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  store ptr %0, ptr %28, align 8, !tbaa !5
  store ptr %1, ptr %29, align 8, !tbaa !5
  store ptr %2, ptr %30, align 8, !tbaa !5
  store ptr %3, ptr %31, align 8, !tbaa !5
  store ptr %4, ptr %32, align 8, !tbaa !5
  store ptr %5, ptr %33, align 8, !tbaa !5
  store ptr %6, ptr %34, align 8, !tbaa !5
  store ptr %7, ptr %35, align 8, !tbaa !5
  store ptr %8, ptr %36, align 8, !tbaa !5
  store ptr %9, ptr %37, align 8, !tbaa !5
  store ptr %10, ptr %38, align 8, !tbaa !5
  store ptr %11, ptr %39, align 8, !tbaa !5
  store ptr %12, ptr %40, align 8, !tbaa !5
  store ptr %13, ptr %41, align 8, !tbaa !5
  store ptr %14, ptr %42, align 8, !tbaa !5
  store ptr %15, ptr %43, align 8, !tbaa !5
  store ptr %16, ptr %44, align 8, !tbaa !5
  store ptr %17, ptr %45, align 8, !tbaa !5
  store ptr %18, ptr %46, align 8, !tbaa !5
  store ptr %19, ptr %47, align 8, !tbaa !5
  store ptr %20, ptr %48, align 8, !tbaa !5
  store ptr %21, ptr %49, align 8, !tbaa !5
  store ptr %22, ptr %50, align 8, !tbaa !5
  store ptr %23, ptr %51, align 8, !tbaa !5
  store ptr %24, ptr %52, align 8, !tbaa !5
  store ptr %25, ptr %53, align 8, !tbaa !5
  store ptr %26, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #3
  %85 = load ptr, ptr %31, align 8, !tbaa !5
  %86 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %86, ptr %65, align 4, !tbaa !9
  %87 = load i32, ptr %65, align 4, !tbaa !9
  %88 = mul nsw i32 %87, 1
  %89 = add nsw i32 1, %88
  store i32 %89, ptr %66, align 4, !tbaa !9
  %90 = load i32, ptr %66, align 4, !tbaa !9
  %91 = load ptr, ptr %49, align 8, !tbaa !5
  %92 = sext i32 %90 to i64
  %93 = sub i64 0, %92
  %94 = getelementptr inbounds float, ptr %91, i64 %93
  store ptr %94, ptr %49, align 8, !tbaa !5
  %95 = load ptr, ptr %31, align 8, !tbaa !5
  %96 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %96, ptr %63, align 4, !tbaa !9
  %97 = load i32, ptr %63, align 4, !tbaa !9
  %98 = mul nsw i32 %97, 1
  %99 = add nsw i32 1, %98
  store i32 %99, ptr %64, align 4, !tbaa !9
  %100 = load i32, ptr %64, align 4, !tbaa !9
  %101 = load ptr, ptr %48, align 8, !tbaa !5
  %102 = sext i32 %100 to i64
  %103 = sub i64 0, %102
  %104 = getelementptr inbounds float, ptr %101, i64 %103
  store ptr %104, ptr %48, align 8, !tbaa !5
  %105 = load ptr, ptr %33, align 8, !tbaa !5
  %106 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %106, ptr %55, align 4, !tbaa !9
  %107 = load i32, ptr %55, align 4, !tbaa !9
  %108 = mul nsw i32 %107, 1
  %109 = add nsw i32 1, %108
  store i32 %109, ptr %56, align 4, !tbaa !9
  %110 = load i32, ptr %56, align 4, !tbaa !9
  %111 = load ptr, ptr %32, align 8, !tbaa !5
  %112 = sext i32 %110 to i64
  %113 = sub i64 0, %112
  %114 = getelementptr inbounds %struct.complex, ptr %111, i64 %113
  store ptr %114, ptr %32, align 8, !tbaa !5
  %115 = load ptr, ptr %35, align 8, !tbaa !5
  %116 = load i32, ptr %115, align 4, !tbaa !9
  store i32 %116, ptr %57, align 4, !tbaa !9
  %117 = load i32, ptr %57, align 4, !tbaa !9
  %118 = mul nsw i32 %117, 1
  %119 = add nsw i32 1, %118
  store i32 %119, ptr %58, align 4, !tbaa !9
  %120 = load i32, ptr %58, align 4, !tbaa !9
  %121 = load ptr, ptr %34, align 8, !tbaa !5
  %122 = sext i32 %120 to i64
  %123 = sub i64 0, %122
  %124 = getelementptr inbounds %struct.complex, ptr %121, i64 %123
  store ptr %124, ptr %34, align 8, !tbaa !5
  %125 = load ptr, ptr %36, align 8, !tbaa !5
  %126 = getelementptr inbounds i32, ptr %125, i32 -1
  store ptr %126, ptr %36, align 8, !tbaa !5
  %127 = load ptr, ptr %38, align 8, !tbaa !5
  %128 = getelementptr inbounds float, ptr %127, i32 -1
  store ptr %128, ptr %38, align 8, !tbaa !5
  %129 = load ptr, ptr %39, align 8, !tbaa !5
  %130 = getelementptr inbounds float, ptr %129, i32 -1
  store ptr %130, ptr %39, align 8, !tbaa !5
  %131 = load ptr, ptr %41, align 8, !tbaa !5
  %132 = load i32, ptr %131, align 4, !tbaa !9
  store i32 %132, ptr %59, align 4, !tbaa !9
  %133 = load i32, ptr %59, align 4, !tbaa !9
  %134 = mul nsw i32 %133, 1
  %135 = add nsw i32 1, %134
  store i32 %135, ptr %60, align 4, !tbaa !9
  %136 = load i32, ptr %60, align 4, !tbaa !9
  %137 = load ptr, ptr %40, align 8, !tbaa !5
  %138 = sext i32 %136 to i64
  %139 = sub i64 0, %138
  %140 = getelementptr inbounds %struct.complex, ptr %137, i64 %139
  store ptr %140, ptr %40, align 8, !tbaa !5
  %141 = load ptr, ptr %43, align 8, !tbaa !5
  %142 = load i32, ptr %141, align 4, !tbaa !9
  store i32 %142, ptr %61, align 4, !tbaa !9
  %143 = load i32, ptr %61, align 4, !tbaa !9
  %144 = mul nsw i32 %143, 1
  %145 = add nsw i32 1, %144
  store i32 %145, ptr %62, align 4, !tbaa !9
  %146 = load i32, ptr %62, align 4, !tbaa !9
  %147 = load ptr, ptr %42, align 8, !tbaa !5
  %148 = sext i32 %146 to i64
  %149 = sub i64 0, %148
  %150 = getelementptr inbounds %struct.complex, ptr %147, i64 %149
  store ptr %150, ptr %42, align 8, !tbaa !5
  %151 = load ptr, ptr %46, align 8, !tbaa !5
  %152 = getelementptr inbounds float, ptr %151, i32 -1
  store ptr %152, ptr %46, align 8, !tbaa !5
  %153 = load ptr, ptr %51, align 8, !tbaa !5
  %154 = getelementptr inbounds float, ptr %153, i32 -1
  store ptr %154, ptr %51, align 8, !tbaa !5
  %155 = load ptr, ptr %52, align 8, !tbaa !5
  %156 = getelementptr inbounds %struct.complex, ptr %155, i32 -1
  store ptr %156, ptr %52, align 8, !tbaa !5
  %157 = load ptr, ptr %53, align 8, !tbaa !5
  %158 = getelementptr inbounds float, ptr %157, i32 -1
  store ptr %158, ptr %53, align 8, !tbaa !5
  %159 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 0, ptr %159, align 4, !tbaa !9
  %160 = load ptr, ptr %28, align 8, !tbaa !5
  %161 = call i32 @lsame_(ptr noundef %160, ptr noundef @.str)
  store i32 %161, ptr %76, align 4, !tbaa !9
  %162 = load ptr, ptr %28, align 8, !tbaa !5
  %163 = call i32 @lsame_(ptr noundef %162, ptr noundef @.str.1)
  store i32 %163, ptr %74, align 4, !tbaa !9
  %164 = load ptr, ptr %29, align 8, !tbaa !5
  %165 = call i32 @lsame_(ptr noundef %164, ptr noundef @.str)
  store i32 %165, ptr %81, align 4, !tbaa !9
  %166 = call float @slamch_(ptr noundef @.str.2)
  store float %166, ptr %82, align 4, !tbaa !11
  %167 = load float, ptr %82, align 4, !tbaa !11
  %168 = fdiv float 1.000000e+00, %167
  store float %168, ptr %77, align 4, !tbaa !11
  %169 = load i32, ptr %76, align 4, !tbaa !9
  %170 = icmp ne i32 %169, 0
  br i1 %170, label %174, label %171

171:                                              ; preds = %27
  %172 = load i32, ptr %74, align 4, !tbaa !9
  %173 = icmp ne i32 %172, 0
  br i1 %173, label %174, label %176

174:                                              ; preds = %171, %27
  %175 = load ptr, ptr %37, align 8, !tbaa !5
  store i8 78, ptr %175, align 1, !tbaa !13
  store i32 0, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %79, align 4, !tbaa !9
  br label %197

176:                                              ; preds = %171
  %177 = load ptr, ptr %37, align 8, !tbaa !5
  %178 = call i32 @lsame_(ptr noundef %177, ptr noundef @.str.3)
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %184, label %180

180:                                              ; preds = %176
  %181 = load ptr, ptr %37, align 8, !tbaa !5
  %182 = call i32 @lsame_(ptr noundef %181, ptr noundef @.str.4)
  %183 = icmp ne i32 %182, 0
  br label %184

184:                                              ; preds = %180, %176
  %185 = phi i1 [ true, %176 ], [ %183, %180 ]
  %186 = zext i1 %185 to i32
  store i32 %186, ptr %83, align 4, !tbaa !9
  %187 = load ptr, ptr %37, align 8, !tbaa !5
  %188 = call i32 @lsame_(ptr noundef %187, ptr noundef @.str.5)
  %189 = icmp ne i32 %188, 0
  br i1 %189, label %194, label %190

190:                                              ; preds = %184
  %191 = load ptr, ptr %37, align 8, !tbaa !5
  %192 = call i32 @lsame_(ptr noundef %191, ptr noundef @.str.4)
  %193 = icmp ne i32 %192, 0
  br label %194

194:                                              ; preds = %190, %184
  %195 = phi i1 [ true, %184 ], [ %193, %190 ]
  %196 = zext i1 %195 to i32
  store i32 %196, ptr %79, align 4, !tbaa !9
  br label %197

197:                                              ; preds = %194, %174
  %198 = load ptr, ptr %45, align 8, !tbaa !5
  store float 0.000000e+00, ptr %198, align 4, !tbaa !11
  %199 = load i32, ptr %76, align 4, !tbaa !9
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %210, label %201

201:                                              ; preds = %197
  %202 = load i32, ptr %74, align 4, !tbaa !9
  %203 = icmp ne i32 %202, 0
  br i1 %203, label %210, label %204

204:                                              ; preds = %201
  %205 = load ptr, ptr %28, align 8, !tbaa !5
  %206 = call i32 @lsame_(ptr noundef %205, ptr noundef @.str.6)
  %207 = icmp ne i32 %206, 0
  br i1 %207, label %210, label %208

208:                                              ; preds = %204
  %209 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -1, ptr %209, align 4, !tbaa !9
  br label %482

210:                                              ; preds = %204, %201, %197
  %211 = load i32, ptr %81, align 4, !tbaa !9
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %223, label %213

213:                                              ; preds = %210
  %214 = load ptr, ptr %29, align 8, !tbaa !5
  %215 = call i32 @lsame_(ptr noundef %214, ptr noundef @.str.7)
  %216 = icmp ne i32 %215, 0
  br i1 %216, label %223, label %217

217:                                              ; preds = %213
  %218 = load ptr, ptr %29, align 8, !tbaa !5
  %219 = call i32 @lsame_(ptr noundef %218, ptr noundef @.str.5)
  %220 = icmp ne i32 %219, 0
  br i1 %220, label %223, label %221

221:                                              ; preds = %217
  %222 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -2, ptr %222, align 4, !tbaa !9
  br label %481

223:                                              ; preds = %217, %213, %210
  %224 = load ptr, ptr %30, align 8, !tbaa !5
  %225 = load i32, ptr %224, align 4, !tbaa !9
  %226 = icmp slt i32 %225, 0
  br i1 %226, label %227, label %229

227:                                              ; preds = %223
  %228 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -3, ptr %228, align 4, !tbaa !9
  br label %480

229:                                              ; preds = %223
  %230 = load ptr, ptr %31, align 8, !tbaa !5
  %231 = load i32, ptr %230, align 4, !tbaa !9
  %232 = icmp slt i32 %231, 0
  br i1 %232, label %233, label %235

233:                                              ; preds = %229
  %234 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -4, ptr %234, align 4, !tbaa !9
  br label %479

235:                                              ; preds = %229
  %236 = load ptr, ptr %33, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = load ptr, ptr %30, align 8, !tbaa !5
  %239 = load i32, ptr %238, align 4, !tbaa !9
  %240 = icmp sge i32 1, %239
  br i1 %240, label %241, label %242

241:                                              ; preds = %235
  br label %245

242:                                              ; preds = %235
  %243 = load ptr, ptr %30, align 8, !tbaa !5
  %244 = load i32, ptr %243, align 4, !tbaa !9
  br label %245

245:                                              ; preds = %242, %241
  %246 = phi i32 [ 1, %241 ], [ %244, %242 ]
  %247 = icmp slt i32 %237, %246
  br i1 %247, label %248, label %250

248:                                              ; preds = %245
  %249 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -6, ptr %249, align 4, !tbaa !9
  br label %478

250:                                              ; preds = %245
  %251 = load ptr, ptr %35, align 8, !tbaa !5
  %252 = load i32, ptr %251, align 4, !tbaa !9
  %253 = load ptr, ptr %30, align 8, !tbaa !5
  %254 = load i32, ptr %253, align 4, !tbaa !9
  %255 = icmp sge i32 1, %254
  br i1 %255, label %256, label %257

256:                                              ; preds = %250
  br label %260

257:                                              ; preds = %250
  %258 = load ptr, ptr %30, align 8, !tbaa !5
  %259 = load i32, ptr %258, align 4, !tbaa !9
  br label %260

260:                                              ; preds = %257, %256
  %261 = phi i32 [ 1, %256 ], [ %259, %257 ]
  %262 = icmp slt i32 %252, %261
  br i1 %262, label %263, label %265

263:                                              ; preds = %260
  %264 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -8, ptr %264, align 4, !tbaa !9
  br label %477

265:                                              ; preds = %260
  %266 = load ptr, ptr %28, align 8, !tbaa !5
  %267 = call i32 @lsame_(ptr noundef %266, ptr noundef @.str.6)
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %269, label %281

269:                                              ; preds = %265
  %270 = load i32, ptr %83, align 4, !tbaa !9
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %281, label %272

272:                                              ; preds = %269
  %273 = load i32, ptr %79, align 4, !tbaa !9
  %274 = icmp ne i32 %273, 0
  br i1 %274, label %281, label %275

275:                                              ; preds = %272
  %276 = load ptr, ptr %37, align 8, !tbaa !5
  %277 = call i32 @lsame_(ptr noundef %276, ptr noundef @.str)
  %278 = icmp ne i32 %277, 0
  br i1 %278, label %281, label %279

279:                                              ; preds = %275
  %280 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -10, ptr %280, align 4, !tbaa !9
  br label %476

281:                                              ; preds = %275, %272, %269, %265
  %282 = load i32, ptr %83, align 4, !tbaa !9
  %283 = icmp ne i32 %282, 0
  br i1 %283, label %284, label %358

284:                                              ; preds = %281
  %285 = load float, ptr %77, align 4, !tbaa !11
  store float %285, ptr %72, align 4, !tbaa !11
  store float 0.000000e+00, ptr %73, align 4, !tbaa !11
  %286 = load ptr, ptr %30, align 8, !tbaa !5
  %287 = load i32, ptr %286, align 4, !tbaa !9
  store i32 %287, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %288

288:                                              ; preds = %323, %284
  %289 = load i32, ptr %71, align 4, !tbaa !9
  %290 = load i32, ptr %67, align 4, !tbaa !9
  %291 = icmp sle i32 %289, %290
  br i1 %291, label %292, label %326

292:                                              ; preds = %288
  %293 = load float, ptr %72, align 4, !tbaa !11
  store float %293, ptr %68, align 4, !tbaa !11
  %294 = load ptr, ptr %38, align 8, !tbaa !5
  %295 = load i32, ptr %71, align 4, !tbaa !9
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds float, ptr %294, i64 %296
  %298 = load float, ptr %297, align 4, !tbaa !11
  store float %298, ptr %69, align 4, !tbaa !11
  %299 = load float, ptr %68, align 4, !tbaa !11
  %300 = load float, ptr %69, align 4, !tbaa !11
  %301 = fcmp ole float %299, %300
  br i1 %301, label %302, label %304

302:                                              ; preds = %292
  %303 = load float, ptr %68, align 4, !tbaa !11
  br label %306

304:                                              ; preds = %292
  %305 = load float, ptr %69, align 4, !tbaa !11
  br label %306

306:                                              ; preds = %304, %302
  %307 = phi float [ %303, %302 ], [ %305, %304 ]
  store float %307, ptr %72, align 4, !tbaa !11
  %308 = load float, ptr %73, align 4, !tbaa !11
  store float %308, ptr %68, align 4, !tbaa !11
  %309 = load ptr, ptr %38, align 8, !tbaa !5
  %310 = load i32, ptr %71, align 4, !tbaa !9
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds float, ptr %309, i64 %311
  %313 = load float, ptr %312, align 4, !tbaa !11
  store float %313, ptr %69, align 4, !tbaa !11
  %314 = load float, ptr %68, align 4, !tbaa !11
  %315 = load float, ptr %69, align 4, !tbaa !11
  %316 = fcmp oge float %314, %315
  br i1 %316, label %317, label %319

317:                                              ; preds = %306
  %318 = load float, ptr %68, align 4, !tbaa !11
  br label %321

319:                                              ; preds = %306
  %320 = load float, ptr %69, align 4, !tbaa !11
  br label %321

321:                                              ; preds = %319, %317
  %322 = phi float [ %318, %317 ], [ %320, %319 ]
  store float %322, ptr %73, align 4, !tbaa !11
  br label %323

323:                                              ; preds = %321
  %324 = load i32, ptr %71, align 4, !tbaa !9
  %325 = add nsw i32 %324, 1
  store i32 %325, ptr %71, align 4, !tbaa !9
  br label %288, !llvm.loop !14

326:                                              ; preds = %288
  %327 = load float, ptr %72, align 4, !tbaa !11
  %328 = fcmp ole float %327, 0.000000e+00
  br i1 %328, label %329, label %331

329:                                              ; preds = %326
  %330 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -11, ptr %330, align 4, !tbaa !9
  br label %357

331:                                              ; preds = %326
  %332 = load ptr, ptr %30, align 8, !tbaa !5
  %333 = load i32, ptr %332, align 4, !tbaa !9
  %334 = icmp sgt i32 %333, 0
  br i1 %334, label %335, label %355

335:                                              ; preds = %331
  %336 = load float, ptr %72, align 4, !tbaa !11
  %337 = load float, ptr %82, align 4, !tbaa !11
  %338 = fcmp oge float %336, %337
  br i1 %338, label %339, label %341

339:                                              ; preds = %335
  %340 = load float, ptr %72, align 4, !tbaa !11
  br label %343

341:                                              ; preds = %335
  %342 = load float, ptr %82, align 4, !tbaa !11
  br label %343

343:                                              ; preds = %341, %339
  %344 = phi float [ %340, %339 ], [ %342, %341 ]
  %345 = load float, ptr %73, align 4, !tbaa !11
  %346 = load float, ptr %77, align 4, !tbaa !11
  %347 = fcmp ole float %345, %346
  br i1 %347, label %348, label %350

348:                                              ; preds = %343
  %349 = load float, ptr %73, align 4, !tbaa !11
  br label %352

350:                                              ; preds = %343
  %351 = load float, ptr %77, align 4, !tbaa !11
  br label %352

352:                                              ; preds = %350, %348
  %353 = phi float [ %349, %348 ], [ %351, %350 ]
  %354 = fdiv float %344, %353
  store float %354, ptr %80, align 4, !tbaa !11
  br label %356

355:                                              ; preds = %331
  store float 1.000000e+00, ptr %80, align 4, !tbaa !11
  br label %356

356:                                              ; preds = %355, %352
  br label %357

357:                                              ; preds = %356, %329
  br label %358

358:                                              ; preds = %357, %281
  %359 = load i32, ptr %79, align 4, !tbaa !9
  %360 = icmp ne i32 %359, 0
  br i1 %360, label %361, label %439

361:                                              ; preds = %358
  %362 = load ptr, ptr %54, align 8, !tbaa !5
  %363 = load i32, ptr %362, align 4, !tbaa !9
  %364 = icmp eq i32 %363, 0
  br i1 %364, label %365, label %439

365:                                              ; preds = %361
  %366 = load float, ptr %77, align 4, !tbaa !11
  store float %366, ptr %72, align 4, !tbaa !11
  store float 0.000000e+00, ptr %73, align 4, !tbaa !11
  %367 = load ptr, ptr %30, align 8, !tbaa !5
  %368 = load i32, ptr %367, align 4, !tbaa !9
  store i32 %368, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %369

369:                                              ; preds = %404, %365
  %370 = load i32, ptr %71, align 4, !tbaa !9
  %371 = load i32, ptr %67, align 4, !tbaa !9
  %372 = icmp sle i32 %370, %371
  br i1 %372, label %373, label %407

373:                                              ; preds = %369
  %374 = load float, ptr %72, align 4, !tbaa !11
  store float %374, ptr %68, align 4, !tbaa !11
  %375 = load ptr, ptr %39, align 8, !tbaa !5
  %376 = load i32, ptr %71, align 4, !tbaa !9
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds float, ptr %375, i64 %377
  %379 = load float, ptr %378, align 4, !tbaa !11
  store float %379, ptr %69, align 4, !tbaa !11
  %380 = load float, ptr %68, align 4, !tbaa !11
  %381 = load float, ptr %69, align 4, !tbaa !11
  %382 = fcmp ole float %380, %381
  br i1 %382, label %383, label %385

383:                                              ; preds = %373
  %384 = load float, ptr %68, align 4, !tbaa !11
  br label %387

385:                                              ; preds = %373
  %386 = load float, ptr %69, align 4, !tbaa !11
  br label %387

387:                                              ; preds = %385, %383
  %388 = phi float [ %384, %383 ], [ %386, %385 ]
  store float %388, ptr %72, align 4, !tbaa !11
  %389 = load float, ptr %73, align 4, !tbaa !11
  store float %389, ptr %68, align 4, !tbaa !11
  %390 = load ptr, ptr %39, align 8, !tbaa !5
  %391 = load i32, ptr %71, align 4, !tbaa !9
  %392 = sext i32 %391 to i64
  %393 = getelementptr inbounds float, ptr %390, i64 %392
  %394 = load float, ptr %393, align 4, !tbaa !11
  store float %394, ptr %69, align 4, !tbaa !11
  %395 = load float, ptr %68, align 4, !tbaa !11
  %396 = load float, ptr %69, align 4, !tbaa !11
  %397 = fcmp oge float %395, %396
  br i1 %397, label %398, label %400

398:                                              ; preds = %387
  %399 = load float, ptr %68, align 4, !tbaa !11
  br label %402

400:                                              ; preds = %387
  %401 = load float, ptr %69, align 4, !tbaa !11
  br label %402

402:                                              ; preds = %400, %398
  %403 = phi float [ %399, %398 ], [ %401, %400 ]
  store float %403, ptr %73, align 4, !tbaa !11
  br label %404

404:                                              ; preds = %402
  %405 = load i32, ptr %71, align 4, !tbaa !9
  %406 = add nsw i32 %405, 1
  store i32 %406, ptr %71, align 4, !tbaa !9
  br label %369, !llvm.loop !16

407:                                              ; preds = %369
  %408 = load float, ptr %72, align 4, !tbaa !11
  %409 = fcmp ole float %408, 0.000000e+00
  br i1 %409, label %410, label %412

410:                                              ; preds = %407
  %411 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -12, ptr %411, align 4, !tbaa !9
  br label %438

412:                                              ; preds = %407
  %413 = load ptr, ptr %30, align 8, !tbaa !5
  %414 = load i32, ptr %413, align 4, !tbaa !9
  %415 = icmp sgt i32 %414, 0
  br i1 %415, label %416, label %436

416:                                              ; preds = %412
  %417 = load float, ptr %72, align 4, !tbaa !11
  %418 = load float, ptr %82, align 4, !tbaa !11
  %419 = fcmp oge float %417, %418
  br i1 %419, label %420, label %422

420:                                              ; preds = %416
  %421 = load float, ptr %72, align 4, !tbaa !11
  br label %424

422:                                              ; preds = %416
  %423 = load float, ptr %82, align 4, !tbaa !11
  br label %424

424:                                              ; preds = %422, %420
  %425 = phi float [ %421, %420 ], [ %423, %422 ]
  %426 = load float, ptr %73, align 4, !tbaa !11
  %427 = load float, ptr %77, align 4, !tbaa !11
  %428 = fcmp ole float %426, %427
  br i1 %428, label %429, label %431

429:                                              ; preds = %424
  %430 = load float, ptr %73, align 4, !tbaa !11
  br label %433

431:                                              ; preds = %424
  %432 = load float, ptr %77, align 4, !tbaa !11
  br label %433

433:                                              ; preds = %431, %429
  %434 = phi float [ %430, %429 ], [ %432, %431 ]
  %435 = fdiv float %425, %434
  store float %435, ptr %75, align 4, !tbaa !11
  br label %437

436:                                              ; preds = %412
  store float 1.000000e+00, ptr %75, align 4, !tbaa !11
  br label %437

437:                                              ; preds = %436, %433
  br label %438

438:                                              ; preds = %437, %410
  br label %439

439:                                              ; preds = %438, %361, %358
  %440 = load ptr, ptr %54, align 8, !tbaa !5
  %441 = load i32, ptr %440, align 4, !tbaa !9
  %442 = icmp eq i32 %441, 0
  br i1 %442, label %443, label %475

443:                                              ; preds = %439
  %444 = load ptr, ptr %41, align 8, !tbaa !5
  %445 = load i32, ptr %444, align 4, !tbaa !9
  %446 = load ptr, ptr %30, align 8, !tbaa !5
  %447 = load i32, ptr %446, align 4, !tbaa !9
  %448 = icmp sge i32 1, %447
  br i1 %448, label %449, label %450

449:                                              ; preds = %443
  br label %453

450:                                              ; preds = %443
  %451 = load ptr, ptr %30, align 8, !tbaa !5
  %452 = load i32, ptr %451, align 4, !tbaa !9
  br label %453

453:                                              ; preds = %450, %449
  %454 = phi i32 [ 1, %449 ], [ %452, %450 ]
  %455 = icmp slt i32 %445, %454
  br i1 %455, label %456, label %458

456:                                              ; preds = %453
  %457 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -14, ptr %457, align 4, !tbaa !9
  br label %474

458:                                              ; preds = %453
  %459 = load ptr, ptr %43, align 8, !tbaa !5
  %460 = load i32, ptr %459, align 4, !tbaa !9
  %461 = load ptr, ptr %30, align 8, !tbaa !5
  %462 = load i32, ptr %461, align 4, !tbaa !9
  %463 = icmp sge i32 1, %462
  br i1 %463, label %464, label %465

464:                                              ; preds = %458
  br label %468

465:                                              ; preds = %458
  %466 = load ptr, ptr %30, align 8, !tbaa !5
  %467 = load i32, ptr %466, align 4, !tbaa !9
  br label %468

468:                                              ; preds = %465, %464
  %469 = phi i32 [ 1, %464 ], [ %467, %465 ]
  %470 = icmp slt i32 %460, %469
  br i1 %470, label %471, label %473

471:                                              ; preds = %468
  %472 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -16, ptr %472, align 4, !tbaa !9
  br label %473

473:                                              ; preds = %471, %468
  br label %474

474:                                              ; preds = %473, %456
  br label %475

475:                                              ; preds = %474, %439
  br label %476

476:                                              ; preds = %475, %279
  br label %477

477:                                              ; preds = %476, %263
  br label %478

478:                                              ; preds = %477, %248
  br label %479

479:                                              ; preds = %478, %233
  br label %480

480:                                              ; preds = %479, %227
  br label %481

481:                                              ; preds = %480, %221
  br label %482

482:                                              ; preds = %481, %208
  %483 = load ptr, ptr %54, align 8, !tbaa !5
  %484 = load i32, ptr %483, align 4, !tbaa !9
  %485 = icmp ne i32 %484, 0
  br i1 %485, label %486, label %491

486:                                              ; preds = %482
  %487 = load ptr, ptr %54, align 8, !tbaa !5
  %488 = load i32, ptr %487, align 4, !tbaa !9
  %489 = sub nsw i32 0, %488
  store i32 %489, ptr %67, align 4, !tbaa !9
  %490 = call i32 @xerbla_(ptr noundef @.str.8, ptr noundef %67, i32 noundef 7)
  store i32 1, ptr %84, align 4
  br label %785

491:                                              ; preds = %482
  %492 = load i32, ptr %74, align 4, !tbaa !9
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %494, label %580

494:                                              ; preds = %491
  %495 = load ptr, ptr %30, align 8, !tbaa !5
  %496 = load ptr, ptr %30, align 8, !tbaa !5
  %497 = load ptr, ptr %32, align 8, !tbaa !5
  %498 = load i32, ptr %56, align 4, !tbaa !9
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds %struct.complex, ptr %497, i64 %499
  %501 = load ptr, ptr %33, align 8, !tbaa !5
  %502 = load ptr, ptr %38, align 8, !tbaa !5
  %503 = getelementptr inbounds float, ptr %502, i64 1
  %504 = load ptr, ptr %39, align 8, !tbaa !5
  %505 = getelementptr inbounds float, ptr %504, i64 1
  call void @cgeequb_(ptr noundef %495, ptr noundef %496, ptr noundef %500, ptr noundef %501, ptr noundef %503, ptr noundef %505, ptr noundef %80, ptr noundef %75, ptr noundef %70, ptr noundef %78)
  %506 = load i32, ptr %78, align 4, !tbaa !9
  %507 = icmp eq i32 %506, 0
  br i1 %507, label %508, label %541

508:                                              ; preds = %494
  %509 = load ptr, ptr %30, align 8, !tbaa !5
  %510 = load ptr, ptr %30, align 8, !tbaa !5
  %511 = load ptr, ptr %32, align 8, !tbaa !5
  %512 = load i32, ptr %56, align 4, !tbaa !9
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds %struct.complex, ptr %511, i64 %513
  %515 = load ptr, ptr %33, align 8, !tbaa !5
  %516 = load ptr, ptr %38, align 8, !tbaa !5
  %517 = getelementptr inbounds float, ptr %516, i64 1
  %518 = load ptr, ptr %39, align 8, !tbaa !5
  %519 = getelementptr inbounds float, ptr %518, i64 1
  %520 = load ptr, ptr %37, align 8, !tbaa !5
  call void @claqge_(ptr noundef %509, ptr noundef %510, ptr noundef %514, ptr noundef %515, ptr noundef %517, ptr noundef %519, ptr noundef %80, ptr noundef %75, ptr noundef %70, ptr noundef %520)
  %521 = load ptr, ptr %37, align 8, !tbaa !5
  %522 = call i32 @lsame_(ptr noundef %521, ptr noundef @.str.3)
  %523 = icmp ne i32 %522, 0
  br i1 %523, label %528, label %524

524:                                              ; preds = %508
  %525 = load ptr, ptr %37, align 8, !tbaa !5
  %526 = call i32 @lsame_(ptr noundef %525, ptr noundef @.str.4)
  %527 = icmp ne i32 %526, 0
  br label %528

528:                                              ; preds = %524, %508
  %529 = phi i1 [ true, %508 ], [ %527, %524 ]
  %530 = zext i1 %529 to i32
  store i32 %530, ptr %83, align 4, !tbaa !9
  %531 = load ptr, ptr %37, align 8, !tbaa !5
  %532 = call i32 @lsame_(ptr noundef %531, ptr noundef @.str.5)
  %533 = icmp ne i32 %532, 0
  br i1 %533, label %538, label %534

534:                                              ; preds = %528
  %535 = load ptr, ptr %37, align 8, !tbaa !5
  %536 = call i32 @lsame_(ptr noundef %535, ptr noundef @.str.4)
  %537 = icmp ne i32 %536, 0
  br label %538

538:                                              ; preds = %534, %528
  %539 = phi i1 [ true, %528 ], [ %537, %534 ]
  %540 = zext i1 %539 to i32
  store i32 %540, ptr %79, align 4, !tbaa !9
  br label %541

541:                                              ; preds = %538, %494
  %542 = load i32, ptr %83, align 4, !tbaa !9
  %543 = icmp ne i32 %542, 0
  br i1 %543, label %560, label %544

544:                                              ; preds = %541
  %545 = load ptr, ptr %30, align 8, !tbaa !5
  %546 = load i32, ptr %545, align 4, !tbaa !9
  store i32 %546, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %547

547:                                              ; preds = %556, %544
  %548 = load i32, ptr %71, align 4, !tbaa !9
  %549 = load i32, ptr %67, align 4, !tbaa !9
  %550 = icmp sle i32 %548, %549
  br i1 %550, label %551, label %559

551:                                              ; preds = %547
  %552 = load ptr, ptr %38, align 8, !tbaa !5
  %553 = load i32, ptr %71, align 4, !tbaa !9
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds float, ptr %552, i64 %554
  store float 1.000000e+00, ptr %555, align 4, !tbaa !11
  br label %556

556:                                              ; preds = %551
  %557 = load i32, ptr %71, align 4, !tbaa !9
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %71, align 4, !tbaa !9
  br label %547, !llvm.loop !17

559:                                              ; preds = %547
  br label %560

560:                                              ; preds = %559, %541
  %561 = load i32, ptr %79, align 4, !tbaa !9
  %562 = icmp ne i32 %561, 0
  br i1 %562, label %579, label %563

563:                                              ; preds = %560
  %564 = load ptr, ptr %30, align 8, !tbaa !5
  %565 = load i32, ptr %564, align 4, !tbaa !9
  store i32 %565, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %566

566:                                              ; preds = %575, %563
  %567 = load i32, ptr %71, align 4, !tbaa !9
  %568 = load i32, ptr %67, align 4, !tbaa !9
  %569 = icmp sle i32 %567, %568
  br i1 %569, label %570, label %578

570:                                              ; preds = %566
  %571 = load ptr, ptr %39, align 8, !tbaa !5
  %572 = load i32, ptr %71, align 4, !tbaa !9
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds float, ptr %571, i64 %573
  store float 1.000000e+00, ptr %574, align 4, !tbaa !11
  br label %575

575:                                              ; preds = %570
  %576 = load i32, ptr %71, align 4, !tbaa !9
  %577 = add nsw i32 %576, 1
  store i32 %577, ptr %71, align 4, !tbaa !9
  br label %566, !llvm.loop !18

578:                                              ; preds = %566
  br label %579

579:                                              ; preds = %578, %560
  br label %580

580:                                              ; preds = %579, %491
  %581 = load i32, ptr %81, align 4, !tbaa !9
  %582 = icmp ne i32 %581, 0
  br i1 %582, label %583, label %597

583:                                              ; preds = %580
  %584 = load i32, ptr %83, align 4, !tbaa !9
  %585 = icmp ne i32 %584, 0
  br i1 %585, label %586, label %596

586:                                              ; preds = %583
  %587 = load ptr, ptr %30, align 8, !tbaa !5
  %588 = load ptr, ptr %31, align 8, !tbaa !5
  %589 = load ptr, ptr %38, align 8, !tbaa !5
  %590 = getelementptr inbounds float, ptr %589, i64 1
  %591 = load ptr, ptr %40, align 8, !tbaa !5
  %592 = load i32, ptr %60, align 4, !tbaa !9
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds %struct.complex, ptr %591, i64 %593
  %595 = load ptr, ptr %41, align 8, !tbaa !5
  call void @clascl2_(ptr noundef %587, ptr noundef %588, ptr noundef %590, ptr noundef %594, ptr noundef %595)
  br label %596

596:                                              ; preds = %586, %583
  br label %611

597:                                              ; preds = %580
  %598 = load i32, ptr %79, align 4, !tbaa !9
  %599 = icmp ne i32 %598, 0
  br i1 %599, label %600, label %610

600:                                              ; preds = %597
  %601 = load ptr, ptr %30, align 8, !tbaa !5
  %602 = load ptr, ptr %31, align 8, !tbaa !5
  %603 = load ptr, ptr %39, align 8, !tbaa !5
  %604 = getelementptr inbounds float, ptr %603, i64 1
  %605 = load ptr, ptr %40, align 8, !tbaa !5
  %606 = load i32, ptr %60, align 4, !tbaa !9
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds %struct.complex, ptr %605, i64 %607
  %609 = load ptr, ptr %41, align 8, !tbaa !5
  call void @clascl2_(ptr noundef %601, ptr noundef %602, ptr noundef %604, ptr noundef %608, ptr noundef %609)
  br label %610

610:                                              ; preds = %600, %597
  br label %611

611:                                              ; preds = %610, %596
  %612 = load i32, ptr %76, align 4, !tbaa !9
  %613 = icmp ne i32 %612, 0
  br i1 %613, label %617, label %614

614:                                              ; preds = %611
  %615 = load i32, ptr %74, align 4, !tbaa !9
  %616 = icmp ne i32 %615, 0
  br i1 %616, label %617, label %659

617:                                              ; preds = %614, %611
  %618 = load ptr, ptr %30, align 8, !tbaa !5
  %619 = load ptr, ptr %30, align 8, !tbaa !5
  %620 = load ptr, ptr %32, align 8, !tbaa !5
  %621 = load i32, ptr %56, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds %struct.complex, ptr %620, i64 %622
  %624 = load ptr, ptr %33, align 8, !tbaa !5
  %625 = load ptr, ptr %34, align 8, !tbaa !5
  %626 = load i32, ptr %58, align 4, !tbaa !9
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds %struct.complex, ptr %625, i64 %627
  %629 = load ptr, ptr %35, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.9, ptr noundef %618, ptr noundef %619, ptr noundef %623, ptr noundef %624, ptr noundef %628, ptr noundef %629)
  %630 = load ptr, ptr %30, align 8, !tbaa !5
  %631 = load ptr, ptr %30, align 8, !tbaa !5
  %632 = load ptr, ptr %34, align 8, !tbaa !5
  %633 = load i32, ptr %58, align 4, !tbaa !9
  %634 = sext i32 %633 to i64
  %635 = getelementptr inbounds %struct.complex, ptr %632, i64 %634
  %636 = load ptr, ptr %35, align 8, !tbaa !5
  %637 = load ptr, ptr %36, align 8, !tbaa !5
  %638 = getelementptr inbounds i32, ptr %637, i64 1
  %639 = load ptr, ptr %54, align 8, !tbaa !5
  call void @cgetrf_(ptr noundef %630, ptr noundef %631, ptr noundef %635, ptr noundef %636, ptr noundef %638, ptr noundef %639)
  %640 = load ptr, ptr %54, align 8, !tbaa !5
  %641 = load i32, ptr %640, align 4, !tbaa !9
  %642 = icmp sgt i32 %641, 0
  br i1 %642, label %643, label %658

643:                                              ; preds = %617
  %644 = load ptr, ptr %30, align 8, !tbaa !5
  %645 = load ptr, ptr %54, align 8, !tbaa !5
  %646 = load ptr, ptr %32, align 8, !tbaa !5
  %647 = load i32, ptr %56, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds %struct.complex, ptr %646, i64 %648
  %650 = load ptr, ptr %33, align 8, !tbaa !5
  %651 = load ptr, ptr %34, align 8, !tbaa !5
  %652 = load i32, ptr %58, align 4, !tbaa !9
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds %struct.complex, ptr %651, i64 %653
  %655 = load ptr, ptr %35, align 8, !tbaa !5
  %656 = call float @cla_gerpvgrw_(ptr noundef %644, ptr noundef %645, ptr noundef %649, ptr noundef %650, ptr noundef %654, ptr noundef %655)
  %657 = load ptr, ptr %45, align 8, !tbaa !5
  store float %656, ptr %657, align 4, !tbaa !11
  store i32 1, ptr %84, align 4
  br label %785

658:                                              ; preds = %617
  br label %659

659:                                              ; preds = %658, %614
  %660 = load ptr, ptr %30, align 8, !tbaa !5
  %661 = load ptr, ptr %30, align 8, !tbaa !5
  %662 = load ptr, ptr %32, align 8, !tbaa !5
  %663 = load i32, ptr %56, align 4, !tbaa !9
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds %struct.complex, ptr %662, i64 %664
  %666 = load ptr, ptr %33, align 8, !tbaa !5
  %667 = load ptr, ptr %34, align 8, !tbaa !5
  %668 = load i32, ptr %58, align 4, !tbaa !9
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds %struct.complex, ptr %667, i64 %669
  %671 = load ptr, ptr %35, align 8, !tbaa !5
  %672 = call float @cla_gerpvgrw_(ptr noundef %660, ptr noundef %661, ptr noundef %665, ptr noundef %666, ptr noundef %670, ptr noundef %671)
  %673 = load ptr, ptr %45, align 8, !tbaa !5
  store float %672, ptr %673, align 4, !tbaa !11
  %674 = load ptr, ptr %30, align 8, !tbaa !5
  %675 = load ptr, ptr %31, align 8, !tbaa !5
  %676 = load ptr, ptr %40, align 8, !tbaa !5
  %677 = load i32, ptr %60, align 4, !tbaa !9
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds %struct.complex, ptr %676, i64 %678
  %680 = load ptr, ptr %41, align 8, !tbaa !5
  %681 = load ptr, ptr %42, align 8, !tbaa !5
  %682 = load i32, ptr %62, align 4, !tbaa !9
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds %struct.complex, ptr %681, i64 %683
  %685 = load ptr, ptr %43, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.9, ptr noundef %674, ptr noundef %675, ptr noundef %679, ptr noundef %680, ptr noundef %684, ptr noundef %685)
  %686 = load ptr, ptr %29, align 8, !tbaa !5
  %687 = load ptr, ptr %30, align 8, !tbaa !5
  %688 = load ptr, ptr %31, align 8, !tbaa !5
  %689 = load ptr, ptr %34, align 8, !tbaa !5
  %690 = load i32, ptr %58, align 4, !tbaa !9
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds %struct.complex, ptr %689, i64 %691
  %693 = load ptr, ptr %35, align 8, !tbaa !5
  %694 = load ptr, ptr %36, align 8, !tbaa !5
  %695 = getelementptr inbounds i32, ptr %694, i64 1
  %696 = load ptr, ptr %42, align 8, !tbaa !5
  %697 = load i32, ptr %62, align 4, !tbaa !9
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds %struct.complex, ptr %696, i64 %698
  %700 = load ptr, ptr %43, align 8, !tbaa !5
  %701 = load ptr, ptr %54, align 8, !tbaa !5
  call void @cgetrs_(ptr noundef %686, ptr noundef %687, ptr noundef %688, ptr noundef %692, ptr noundef %693, ptr noundef %695, ptr noundef %699, ptr noundef %700, ptr noundef %701)
  %702 = load ptr, ptr %29, align 8, !tbaa !5
  %703 = load ptr, ptr %37, align 8, !tbaa !5
  %704 = load ptr, ptr %30, align 8, !tbaa !5
  %705 = load ptr, ptr %31, align 8, !tbaa !5
  %706 = load ptr, ptr %32, align 8, !tbaa !5
  %707 = load i32, ptr %56, align 4, !tbaa !9
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds %struct.complex, ptr %706, i64 %708
  %710 = load ptr, ptr %33, align 8, !tbaa !5
  %711 = load ptr, ptr %34, align 8, !tbaa !5
  %712 = load i32, ptr %58, align 4, !tbaa !9
  %713 = sext i32 %712 to i64
  %714 = getelementptr inbounds %struct.complex, ptr %711, i64 %713
  %715 = load ptr, ptr %35, align 8, !tbaa !5
  %716 = load ptr, ptr %36, align 8, !tbaa !5
  %717 = getelementptr inbounds i32, ptr %716, i64 1
  %718 = load ptr, ptr %38, align 8, !tbaa !5
  %719 = getelementptr inbounds float, ptr %718, i64 1
  %720 = load ptr, ptr %39, align 8, !tbaa !5
  %721 = getelementptr inbounds float, ptr %720, i64 1
  %722 = load ptr, ptr %40, align 8, !tbaa !5
  %723 = load i32, ptr %60, align 4, !tbaa !9
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds %struct.complex, ptr %722, i64 %724
  %726 = load ptr, ptr %41, align 8, !tbaa !5
  %727 = load ptr, ptr %42, align 8, !tbaa !5
  %728 = load i32, ptr %62, align 4, !tbaa !9
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds %struct.complex, ptr %727, i64 %729
  %731 = load ptr, ptr %43, align 8, !tbaa !5
  %732 = load ptr, ptr %44, align 8, !tbaa !5
  %733 = load ptr, ptr %46, align 8, !tbaa !5
  %734 = getelementptr inbounds float, ptr %733, i64 1
  %735 = load ptr, ptr %47, align 8, !tbaa !5
  %736 = load ptr, ptr %48, align 8, !tbaa !5
  %737 = load i32, ptr %64, align 4, !tbaa !9
  %738 = sext i32 %737 to i64
  %739 = getelementptr inbounds float, ptr %736, i64 %738
  %740 = load ptr, ptr %49, align 8, !tbaa !5
  %741 = load i32, ptr %66, align 4, !tbaa !9
  %742 = sext i32 %741 to i64
  %743 = getelementptr inbounds float, ptr %740, i64 %742
  %744 = load ptr, ptr %50, align 8, !tbaa !5
  %745 = load ptr, ptr %51, align 8, !tbaa !5
  %746 = getelementptr inbounds float, ptr %745, i64 1
  %747 = load ptr, ptr %52, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.complex, ptr %747, i64 1
  %749 = load ptr, ptr %53, align 8, !tbaa !5
  %750 = getelementptr inbounds float, ptr %749, i64 1
  %751 = load ptr, ptr %54, align 8, !tbaa !5
  call void @cgerfsx_(ptr noundef %702, ptr noundef %703, ptr noundef %704, ptr noundef %705, ptr noundef %709, ptr noundef %710, ptr noundef %714, ptr noundef %715, ptr noundef %717, ptr noundef %719, ptr noundef %721, ptr noundef %725, ptr noundef %726, ptr noundef %730, ptr noundef %731, ptr noundef %732, ptr noundef %734, ptr noundef %735, ptr noundef %739, ptr noundef %743, ptr noundef %744, ptr noundef %746, ptr noundef %748, ptr noundef %750, ptr noundef %751)
  %752 = load i32, ptr %79, align 4, !tbaa !9
  %753 = icmp ne i32 %752, 0
  br i1 %753, label %754, label %767

754:                                              ; preds = %659
  %755 = load i32, ptr %81, align 4, !tbaa !9
  %756 = icmp ne i32 %755, 0
  br i1 %756, label %757, label %767

757:                                              ; preds = %754
  %758 = load ptr, ptr %30, align 8, !tbaa !5
  %759 = load ptr, ptr %31, align 8, !tbaa !5
  %760 = load ptr, ptr %39, align 8, !tbaa !5
  %761 = getelementptr inbounds float, ptr %760, i64 1
  %762 = load ptr, ptr %42, align 8, !tbaa !5
  %763 = load i32, ptr %62, align 4, !tbaa !9
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds %struct.complex, ptr %762, i64 %764
  %766 = load ptr, ptr %43, align 8, !tbaa !5
  call void @clascl2_(ptr noundef %758, ptr noundef %759, ptr noundef %761, ptr noundef %765, ptr noundef %766)
  br label %784

767:                                              ; preds = %754, %659
  %768 = load i32, ptr %83, align 4, !tbaa !9
  %769 = icmp ne i32 %768, 0
  br i1 %769, label %770, label %783

770:                                              ; preds = %767
  %771 = load i32, ptr %81, align 4, !tbaa !9
  %772 = icmp ne i32 %771, 0
  br i1 %772, label %783, label %773

773:                                              ; preds = %770
  %774 = load ptr, ptr %30, align 8, !tbaa !5
  %775 = load ptr, ptr %31, align 8, !tbaa !5
  %776 = load ptr, ptr %38, align 8, !tbaa !5
  %777 = getelementptr inbounds float, ptr %776, i64 1
  %778 = load ptr, ptr %42, align 8, !tbaa !5
  %779 = load i32, ptr %62, align 4, !tbaa !9
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds %struct.complex, ptr %778, i64 %780
  %782 = load ptr, ptr %43, align 8, !tbaa !5
  call void @clascl2_(ptr noundef %774, ptr noundef %775, ptr noundef %777, ptr noundef %781, ptr noundef %782)
  br label %783

783:                                              ; preds = %773, %770, %767
  br label %784

784:                                              ; preds = %783, %757
  store i32 1, ptr %84, align 4
  br label %785

785:                                              ; preds = %784, %643, %486
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #3
  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 @lsame_(ptr noundef, ptr noundef) #2

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

declare void @cgerfsx_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, 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 }

!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 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}


; 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 [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [5 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @cgesvxx_(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 nocapture noundef writeonly %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26) local_unnamed_addr #0 {
  %28 = alloca i32, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca i32, align 4
  %32 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #4
  %33 = getelementptr inbounds i8, ptr %10, i64 -4
  %34 = getelementptr inbounds i8, ptr %11, i64 -4
  store i32 0, ptr %26, align 4, !tbaa !5
  %35 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %36 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %37 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #4
  %38 = tail call float @slamch_(ptr noundef nonnull @.str.2) #4
  %39 = fdiv float 1.000000e+00, %38
  %40 = icmp ne i32 %35, 0
  %41 = icmp ne i32 %36, 0
  %or.cond = select i1 %40, i1 true, i1 %41
  br i1 %or.cond, label %.thread, label %42

.thread:                                          ; preds = %27
  store i8 78, ptr %9, align 1, !tbaa !9
  store float 0.000000e+00, ptr %17, align 4, !tbaa !10
  br label %58

42:                                               ; preds = %27
  %43 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.3) #4
  %.not = icmp eq i32 %43, 0
  br i1 %.not, label %44, label %47

44:                                               ; preds = %42
  %45 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.4) #4
  %46 = icmp ne i32 %45, 0
  br label %47

47:                                               ; preds = %44, %42
  %48 = phi i1 [ true, %42 ], [ %46, %44 ]
  %49 = zext i1 %48 to i32
  %50 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.5) #4
  %.not317 = icmp eq i32 %50, 0
  br i1 %.not317, label %51, label %54

51:                                               ; preds = %47
  %52 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.4) #4
  %53 = icmp ne i32 %52, 0
  br label %54

54:                                               ; preds = %51, %47
  %55 = phi i1 [ true, %47 ], [ %53, %51 ]
  %56 = zext i1 %55 to i32
  store float 0.000000e+00, ptr %17, align 4, !tbaa !10
  %57 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.6) #4
  %.not318 = icmp eq i32 %57, 0
  br i1 %.not318, label %.thread349.sink.split, label %58

58:                                               ; preds = %.thread, %54
  %.0342 = phi i32 [ 0, %.thread ], [ %49, %54 ]
  %.0302340 = phi i32 [ 0, %.thread ], [ %56, %54 ]
  %.not319 = icmp eq i32 %37, 0
  br i1 %.not319, label %59, label %63

59:                                               ; preds = %58
  %60 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.7) #4
  %.not320 = icmp eq i32 %60, 0
  br i1 %.not320, label %61, label %63

61:                                               ; preds = %59
  %62 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.5) #4
  %.not321 = icmp eq i32 %62, 0
  br i1 %.not321, label %.thread349.sink.split, label %63

63:                                               ; preds = %61, %59, %58
  %64 = load i32, ptr %2, align 4, !tbaa !5
  %65 = icmp slt i32 %64, 0
  br i1 %65, label %.thread349.sink.split, label %66

66:                                               ; preds = %63
  %67 = load i32, ptr %3, align 4, !tbaa !5
  %68 = icmp slt i32 %67, 0
  br i1 %68, label %.thread349.sink.split, label %69

69:                                               ; preds = %66
  %70 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %64, i32 1)
  %71 = icmp slt i32 %70, %spec.select
  br i1 %71, label %.thread349.sink.split, label %72

72:                                               ; preds = %69
  %73 = load i32, ptr %7, align 4, !tbaa !5
  %74 = icmp slt i32 %73, %spec.select
  br i1 %74, label %.thread349.sink.split, label %75

75:                                               ; preds = %72
  %76 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.6) #4
  %77 = icmp eq i32 %76, 0
  %78 = icmp ne i32 %.0342, 0
  %or.cond5 = select i1 %77, i1 true, i1 %78
  %79 = icmp ne i32 %.0302340, 0
  %or.cond7 = select i1 %or.cond5, i1 true, i1 %79
  br i1 %or.cond7, label %82, label %80

80:                                               ; preds = %75
  %81 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str) #4
  %.not322 = icmp eq i32 %81, 0
  br i1 %.not322, label %.thread349.sink.split, label %..thread344_crit_edge

..thread344_crit_edge:                            ; preds = %80
  %.pr.pre = load i32, ptr %26, align 4, !tbaa !5
  br label %.thread344

82:                                               ; preds = %75
  br i1 %78, label %83, label %115

83:                                               ; preds = %82
  %84 = load i32, ptr %2, align 4, !tbaa !5
  %.not323373 = icmp slt i32 %84, 1
  br i1 %.not323373, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %83
  %85 = zext nneg i32 %84 to i64
  %xtraiter = and i64 %85, 1
  %86 = icmp eq i32 %84, 1
  br i1 %86, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %85, 2147483646
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader.new ], [ %indvars.iv.next.1, %.lr.ph ]
  %.0305376 = phi float [ 0.000000e+00, %.lr.ph.preheader.new ], [ %98, %.lr.ph ]
  %.0307375 = phi float [ %39, %.lr.ph.preheader.new ], [ %96, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %87 = getelementptr inbounds float, ptr %33, i64 %indvars.iv
  %88 = load float, ptr %87, align 4, !tbaa !10
  %89 = fcmp ole float %.0307375, %88
  %90 = select i1 %89, float %.0307375, float %88
  %91 = fcmp oge float %.0305376, %88
  %92 = select i1 %91, float %.0305376, float %88
  %93 = getelementptr float, ptr %10, i64 %indvars.iv
  %94 = load float, ptr %93, align 4, !tbaa !10
  %95 = fcmp ole float %90, %94
  %96 = select i1 %95, float %90, float %94
  %97 = fcmp oge float %92, %94
  %98 = select i1 %97, float %92, float %94
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !12

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph, %.lr.ph.preheader
  %.lcssa449.ph = phi float [ poison, %.lr.ph.preheader ], [ %96, %.lr.ph ]
  %.lcssa448.ph = phi float [ poison, %.lr.ph.preheader ], [ %98, %.lr.ph ]
  %indvars.iv.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next.1, %.lr.ph ]
  %.0305376.unr = phi float [ 0.000000e+00, %.lr.ph.preheader ], [ %98, %.lr.ph ]
  %.0307375.unr = phi float [ %39, %.lr.ph.preheader ], [ %96, %.lr.ph ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %._crit_edge.loopexit.unr-lcssa
  %99 = getelementptr inbounds float, ptr %33, i64 %indvars.iv.unr
  %100 = load float, ptr %99, align 4, !tbaa !10
  %101 = fcmp ole float %.0307375.unr, %100
  %102 = select i1 %101, float %.0307375.unr, float %100
  %103 = fcmp oge float %.0305376.unr, %100
  %104 = select i1 %103, float %.0305376.unr, float %100
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.loopexit.unr-lcssa, %83
  %.0307.lcssa = phi float [ %39, %83 ], [ %.lcssa449.ph, %._crit_edge.loopexit.unr-lcssa ], [ %102, %.lr.ph.epil ]
  %.0305.lcssa = phi float [ 0.000000e+00, %83 ], [ %.lcssa448.ph, %._crit_edge.loopexit.unr-lcssa ], [ %104, %.lr.ph.epil ]
  %105 = fcmp ugt float %.0307.lcssa, 0.000000e+00
  br i1 %105, label %106, label %.thread349.sink.split

106:                                              ; preds = %._crit_edge
  %107 = icmp sgt i32 %84, 0
  br i1 %107, label %108, label %114

108:                                              ; preds = %106
  %109 = fcmp oge float %.0307.lcssa, %38
  %110 = select i1 %109, float %.0307.lcssa, float %38
  %111 = fcmp ole float %.0305.lcssa, %39
  %112 = select i1 %111, float %.0305.lcssa, float %39
  %113 = fdiv float %110, %112
  store float %113, ptr %32, align 4, !tbaa !10
  br label %115

114:                                              ; preds = %106
  store float 1.000000e+00, ptr %32, align 4, !tbaa !10
  br label %115

115:                                              ; preds = %114, %108, %82
  %.pr.pre414.pr = load i32, ptr %26, align 4, !tbaa !5
  br i1 %79, label %116, label %.thread344

116:                                              ; preds = %115
  %117 = icmp eq i32 %.pr.pre414.pr, 0
  br i1 %117, label %118, label %.thread349

118:                                              ; preds = %116
  %119 = load i32, ptr %2, align 4, !tbaa !5
  %.not324378 = icmp slt i32 %119, 1
  br i1 %.not324378, label %._crit_edge384, label %.lr.ph383.preheader

.lr.ph383.preheader:                              ; preds = %118
  %120 = zext nneg i32 %119 to i64
  %xtraiter452 = and i64 %120, 1
  %121 = icmp eq i32 %119, 1
  br i1 %121, label %._crit_edge384.loopexit.unr-lcssa, label %.lr.ph383.preheader.new

.lr.ph383.preheader.new:                          ; preds = %.lr.ph383.preheader
  %unroll_iter456 = and i64 %120, 2147483646
  br label %.lr.ph383

.lr.ph383:                                        ; preds = %.lr.ph383, %.lr.ph383.preheader.new
  %indvars.iv399 = phi i64 [ 1, %.lr.ph383.preheader.new ], [ %indvars.iv.next400.1, %.lr.ph383 ]
  %.1306381 = phi float [ 0.000000e+00, %.lr.ph383.preheader.new ], [ %133, %.lr.ph383 ]
  %.1308380 = phi float [ %39, %.lr.ph383.preheader.new ], [ %131, %.lr.ph383 ]
  %niter457 = phi i64 [ 0, %.lr.ph383.preheader.new ], [ %niter457.next.1, %.lr.ph383 ]
  %122 = getelementptr inbounds float, ptr %34, i64 %indvars.iv399
  %123 = load float, ptr %122, align 4, !tbaa !10
  %124 = fcmp ole float %.1308380, %123
  %125 = select i1 %124, float %.1308380, float %123
  %126 = fcmp oge float %.1306381, %123
  %127 = select i1 %126, float %.1306381, float %123
  %128 = getelementptr float, ptr %11, i64 %indvars.iv399
  %129 = load float, ptr %128, align 4, !tbaa !10
  %130 = fcmp ole float %125, %129
  %131 = select i1 %130, float %125, float %129
  %132 = fcmp oge float %127, %129
  %133 = select i1 %132, float %127, float %129
  %indvars.iv.next400.1 = add nuw nsw i64 %indvars.iv399, 2
  %niter457.next.1 = add i64 %niter457, 2
  %niter457.ncmp.1 = icmp eq i64 %niter457.next.1, %unroll_iter456
  br i1 %niter457.ncmp.1, label %._crit_edge384.loopexit.unr-lcssa, label %.lr.ph383, !llvm.loop !14

._crit_edge384.loopexit.unr-lcssa:                ; preds = %.lr.ph383, %.lr.ph383.preheader
  %.lcssa447.ph = phi float [ poison, %.lr.ph383.preheader ], [ %131, %.lr.ph383 ]
  %.lcssa.ph = phi float [ poison, %.lr.ph383.preheader ], [ %133, %.lr.ph383 ]
  %indvars.iv399.unr = phi i64 [ 1, %.lr.ph383.preheader ], [ %indvars.iv.next400.1, %.lr.ph383 ]
  %.1306381.unr = phi float [ 0.000000e+00, %.lr.ph383.preheader ], [ %133, %.lr.ph383 ]
  %.1308380.unr = phi float [ %39, %.lr.ph383.preheader ], [ %131, %.lr.ph383 ]
  %lcmp.mod453.not = icmp eq i64 %xtraiter452, 0
  br i1 %lcmp.mod453.not, label %._crit_edge384, label %.lr.ph383.epil

.lr.ph383.epil:                                   ; preds = %._crit_edge384.loopexit.unr-lcssa
  %134 = getelementptr inbounds float, ptr %34, i64 %indvars.iv399.unr
  %135 = load float, ptr %134, align 4, !tbaa !10
  %136 = fcmp ole float %.1308380.unr, %135
  %137 = select i1 %136, float %.1308380.unr, float %135
  %138 = fcmp oge float %.1306381.unr, %135
  %139 = select i1 %138, float %.1306381.unr, float %135
  br label %._crit_edge384

._crit_edge384:                                   ; preds = %.lr.ph383.epil, %._crit_edge384.loopexit.unr-lcssa, %118
  %.1308.lcssa = phi float [ %39, %118 ], [ %.lcssa447.ph, %._crit_edge384.loopexit.unr-lcssa ], [ %137, %.lr.ph383.epil ]
  %.1306.lcssa = phi float [ 0.000000e+00, %118 ], [ %.lcssa.ph, %._crit_edge384.loopexit.unr-lcssa ], [ %139, %.lr.ph383.epil ]
  %140 = fcmp ugt float %.1308.lcssa, 0.000000e+00
  br i1 %140, label %141, label %.thread349.sink.split

141:                                              ; preds = %._crit_edge384
  %142 = icmp sgt i32 %119, 0
  br i1 %142, label %143, label %149

143:                                              ; preds = %141
  %144 = fcmp oge float %.1308.lcssa, %38
  %145 = select i1 %144, float %.1308.lcssa, float %38
  %146 = fcmp ole float %.1306.lcssa, %39
  %147 = select i1 %146, float %.1306.lcssa, float %39
  %148 = fdiv float %145, %147
  store float %148, ptr %30, align 4, !tbaa !10
  br label %.thread344.thread

149:                                              ; preds = %141
  store float 1.000000e+00, ptr %30, align 4, !tbaa !10
  br label %.thread344.thread

.thread344:                                       ; preds = %..thread344_crit_edge, %115
  %.pr347.pr = phi i32 [ %.pr.pre, %..thread344_crit_edge ], [ %.pr.pre414.pr, %115 ]
  %150 = icmp eq i32 %.pr347.pr, 0
  br i1 %150, label %.thread344.thread, label %.thread349

.thread344.thread:                                ; preds = %143, %149, %.thread344
  %151 = load i32, ptr %13, align 4, !tbaa !5
  %152 = load i32, ptr %2, align 4, !tbaa !5
  %spec.select335 = tail call i32 @llvm.smax.i32(i32 %152, i32 1)
  %153 = icmp slt i32 %151, %spec.select335
  br i1 %153, label %.thread349.sink.split, label %154

154:                                              ; preds = %.thread344.thread
  %155 = load i32, ptr %15, align 4, !tbaa !5
  %156 = icmp slt i32 %155, %spec.select335
  br i1 %156, label %.thread349.sink.split, label %.thread345

.thread349.sink.split:                            ; preds = %154, %.thread344.thread, %._crit_edge384, %._crit_edge, %80, %72, %69, %66, %63, %61, %54
  %.sink = phi i32 [ -1, %54 ], [ -2, %61 ], [ -3, %63 ], [ -4, %66 ], [ -6, %69 ], [ -8, %72 ], [ -10, %80 ], [ -11, %._crit_edge ], [ -12, %._crit_edge384 ], [ -14, %.thread344.thread ], [ -16, %154 ]
  store i32 %.sink, ptr %26, align 4, !tbaa !5
  br label %.thread349

.thread349:                                       ; preds = %.thread349.sink.split, %116, %.thread344
  %157 = phi i32 [ %.pr347.pr, %.thread344 ], [ %.pr.pre414.pr, %116 ], [ %.sink, %.thread349.sink.split ]
  %158 = sub nsw i32 0, %157
  store i32 %158, ptr %28, align 4, !tbaa !5
  %159 = call i32 @xerbla_(ptr noundef nonnull @.str.8, ptr noundef nonnull %28, i32 noundef 7) #4
  br label %209

.thread345:                                       ; preds = %154
  br i1 %41, label %160, label %.loopexit

160:                                              ; preds = %.thread345
  call void @cgeequb_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %32, ptr noundef nonnull %30, ptr noundef nonnull %29, ptr noundef nonnull %31) #4
  %161 = load i32, ptr %31, align 4, !tbaa !5
  %162 = icmp eq i32 %161, 0
  br i1 %162, label %163, label %176

163:                                              ; preds = %160
  call void @claqge_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %32, ptr noundef nonnull %30, ptr noundef nonnull %29, ptr noundef %9) #4
  %164 = call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.3) #4
  %.not326 = icmp eq i32 %164, 0
  br i1 %.not326, label %165, label %169

165:                                              ; preds = %163
  %166 = call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.4) #4
  %167 = icmp ne i32 %166, 0
  %168 = zext i1 %167 to i32
  br label %169

169:                                              ; preds = %165, %163
  %170 = phi i32 [ 1, %163 ], [ %168, %165 ]
  %171 = call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.5) #4
  %.not327 = icmp eq i32 %171, 0
  br i1 %.not327, label %172, label %176

172:                                              ; preds = %169
  %173 = call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.4) #4
  %174 = icmp ne i32 %173, 0
  %175 = zext i1 %174 to i32
  br label %176

176:                                              ; preds = %169, %172, %160
  %.1303 = phi i32 [ %.0302340, %160 ], [ 1, %169 ], [ %175, %172 ]
  %.1 = phi i32 [ %.0342, %160 ], [ %170, %169 ], [ %170, %172 ]
  %.not328 = icmp eq i32 %.1, 0
  br i1 %.not328, label %177, label %.loopexit372

177:                                              ; preds = %176
  %178 = load i32, ptr %2, align 4, !tbaa !5
  %.not329387 = icmp slt i32 %178, 1
  br i1 %.not329387, label %.loopexit372, label %.lr.ph390.preheader

.lr.ph390.preheader:                              ; preds = %177
  %179 = add nuw i32 %178, 1
  %wide.trip.count407 = zext i32 %179 to i64
  %180 = zext nneg i32 %178 to i64
  %min.iters.check = icmp ult i32 %178, 8
  br i1 %min.iters.check, label %.lr.ph390.preheader446, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph390.preheader
  %n.vec = and i64 %180, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %181 = getelementptr float, ptr %10, i64 %index
  %182 = getelementptr inbounds i8, ptr %181, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %181, align 4, !tbaa !10
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %182, align 4, !tbaa !10
  %index.next = add nuw i64 %index, 8
  %183 = icmp eq i64 %index.next, %n.vec
  br i1 %183, label %middle.block, label %vector.body, !llvm.loop !15

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %180
  br i1 %cmp.n, label %.loopexit372, label %.lr.ph390.preheader446

.lr.ph390.preheader446:                           ; preds = %middle.block, %.lr.ph390.preheader
  %indvars.iv404.ph = phi i64 [ 1, %.lr.ph390.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph390

.lr.ph390:                                        ; preds = %.lr.ph390.preheader446, %.lr.ph390
  %indvars.iv404 = phi i64 [ %indvars.iv.next405, %.lr.ph390 ], [ %indvars.iv404.ph, %.lr.ph390.preheader446 ]
  %184 = getelementptr inbounds float, ptr %33, i64 %indvars.iv404
  store float 1.000000e+00, ptr %184, align 4, !tbaa !10
  %indvars.iv.next405 = add nuw nsw i64 %indvars.iv404, 1
  %exitcond408.not = icmp eq i64 %indvars.iv.next405, %wide.trip.count407
  br i1 %exitcond408.not, label %.loopexit372, label %.lr.ph390, !llvm.loop !18

.loopexit372:                                     ; preds = %.lr.ph390, %middle.block, %177, %176
  %.not330 = icmp eq i32 %.1303, 0
  br i1 %.not330, label %185, label %.thread353

185:                                              ; preds = %.loopexit372
  %186 = load i32, ptr %2, align 4, !tbaa !5
  %.not331391 = icmp slt i32 %186, 1
  br i1 %.not331391, label %.loopexit, label %.lr.ph394.preheader

.lr.ph394.preheader:                              ; preds = %185
  %187 = add nuw i32 %186, 1
  %wide.trip.count412 = zext i32 %187 to i64
  %188 = zext nneg i32 %186 to i64
  %min.iters.check434 = icmp ult i32 %186, 8
  br i1 %min.iters.check434, label %.lr.ph394.preheader445, label %vector.ph435

vector.ph435:                                     ; preds = %.lr.ph394.preheader
  %n.vec437 = and i64 %188, 2147483640
  %ind.end438 = or disjoint i64 %n.vec437, 1
  br label %vector.body440

vector.body440:                                   ; preds = %vector.body440, %vector.ph435
  %index441 = phi i64 [ 0, %vector.ph435 ], [ %index.next443, %vector.body440 ]
  %189 = getelementptr float, ptr %11, i64 %index441
  %190 = getelementptr inbounds i8, ptr %189, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %189, align 4, !tbaa !10
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %190, align 4, !tbaa !10
  %index.next443 = add nuw i64 %index441, 8
  %191 = icmp eq i64 %index.next443, %n.vec437
  br i1 %191, label %middle.block432, label %vector.body440, !llvm.loop !19

middle.block432:                                  ; preds = %vector.body440
  %cmp.n444 = icmp eq i64 %n.vec437, %188
  br i1 %cmp.n444, label %.loopexit, label %.lr.ph394.preheader445

.lr.ph394.preheader445:                           ; preds = %middle.block432, %.lr.ph394.preheader
  %indvars.iv409.ph = phi i64 [ 1, %.lr.ph394.preheader ], [ %ind.end438, %middle.block432 ]
  br label %.lr.ph394

.lr.ph394:                                        ; preds = %.lr.ph394.preheader445, %.lr.ph394
  %indvars.iv409 = phi i64 [ %indvars.iv.next410, %.lr.ph394 ], [ %indvars.iv409.ph, %.lr.ph394.preheader445 ]
  %192 = getelementptr inbounds float, ptr %34, i64 %indvars.iv409
  store float 1.000000e+00, ptr %192, align 4, !tbaa !10
  %indvars.iv.next410 = add nuw nsw i64 %indvars.iv409, 1
  %exitcond413.not = icmp eq i64 %indvars.iv.next410, %wide.trip.count412
  br i1 %exitcond413.not, label %.loopexit, label %.lr.ph394, !llvm.loop !20

.loopexit:                                        ; preds = %.lr.ph394, %middle.block432, %185, %.thread345
  %.2304 = phi i32 [ %.0302340, %.thread345 ], [ 0, %185 ], [ 0, %middle.block432 ], [ 0, %.lr.ph394 ]
  %.2 = phi i32 [ %.0342, %.thread345 ], [ %.1, %185 ], [ %.1, %middle.block432 ], [ %.1, %.lr.ph394 ]
  br i1 %.not319, label %194, label %193

.thread353:                                       ; preds = %.loopexit372
  br i1 %.not319, label %.sink.split, label %193

193:                                              ; preds = %.thread353, %.loopexit
  %.2359 = phi i32 [ %.1, %.thread353 ], [ %.2, %.loopexit ]
  %.2304358 = phi i32 [ 1, %.thread353 ], [ %.2304, %.loopexit ]
  %.not333 = icmp eq i32 %.2359, 0
  br i1 %.not333, label %195, label %.sink.split

194:                                              ; preds = %.loopexit
  %.not332 = icmp eq i32 %.2304, 0
  br i1 %.not332, label %195, label %.sink.split

.sink.split:                                      ; preds = %194, %.thread353, %193
  %.sink428 = phi ptr [ %10, %193 ], [ %11, %.thread353 ], [ %11, %194 ]
  %.ph427 = phi i1 [ true, %193 ], [ false, %.thread353 ], [ false, %194 ]
  %.2360.ph = phi i32 [ 1, %193 ], [ %.1, %.thread353 ], [ %.2, %194 ]
  %.2304356.ph = phi i32 [ %.2304358, %193 ], [ 1, %.thread353 ], [ 1, %194 ]
  call void @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %.sink428, ptr noundef %12, ptr noundef nonnull %13) #4
  br label %195

195:                                              ; preds = %.sink.split, %194, %193
  %196 = phi i1 [ false, %194 ], [ true, %193 ], [ %.ph427, %.sink.split ]
  %.2360 = phi i32 [ %.2, %194 ], [ 0, %193 ], [ %.2360.ph, %.sink.split ]
  %.2304356 = phi i32 [ 0, %194 ], [ %.2304358, %193 ], [ %.2304356.ph, %.sink.split ]
  br i1 %or.cond, label %197, label %202

197:                                              ; preds = %195
  call void @clacpy_(ptr noundef nonnull @.str.9, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7) #4
  call void @cgetrf_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %26) #4
  %198 = load i32, ptr %26, align 4, !tbaa !5
  %199 = icmp sgt i32 %198, 0
  br i1 %199, label %200, label %202

200:                                              ; preds = %197
  %201 = call float @cla_gerpvgrw_(ptr noundef nonnull %2, ptr noundef nonnull %26, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7) #4
  store float %201, ptr %17, align 4, !tbaa !10
  br label %209

202:                                              ; preds = %197, %195
  %203 = call float @cla_gerpvgrw_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7) #4
  store float %203, ptr %17, align 4, !tbaa !10
  call void @clacpy_(ptr noundef nonnull @.str.9, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15) #4
  call void @cgetrs_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %26) #4
  call void @cgerfsx_(ptr noundef %1, ptr noundef %9, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %16, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef nonnull %26) #4
  %204 = icmp ne i32 %.2304356, 0
  %or.cond11 = and i1 %196, %204
  br i1 %or.cond11, label %205, label %206

205:                                              ; preds = %202
  call void @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %15) #4
  br label %209

206:                                              ; preds = %202
  %207 = icmp eq i32 %.2360, 0
  %or.cond13 = or i1 %196, %207
  br i1 %or.cond13, label %209, label %208

208:                                              ; preds = %206
  call void @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %10, ptr noundef %14, ptr noundef nonnull %15) #4
  br label %209

209:                                              ; preds = %205, %208, %206, %200, %.thread349
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #4
  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 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

declare void @cgeequb_(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 @claqge_(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 @clascl2_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

declare void @cgerfsx_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, 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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #3

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"float", !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13, !16, !17}
!16 = !{!"llvm.loop.isvectorized", i32 1}
!17 = !{!"llvm.loop.unroll.runtime.disable"}
!18 = distinct !{!18, !13, !17, !16}
!19 = distinct !{!19, !13, !16, !17}
!20 = distinct !{!20, !13, !17, !16}


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