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

; 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 [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 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 [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1

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

200:                                              ; preds = %34
  %201 = load ptr, ptr %36, align 8, !tbaa !5
  %202 = call i32 @lsame_(ptr noundef %201, ptr noundef @.str.2)
  %203 = icmp ne i32 %202, 0
  br label %204

204:                                              ; preds = %200, %34
  %205 = phi i1 [ true, %34 ], [ %203, %200 ]
  %206 = zext i1 %205 to i32
  store i32 %206, ptr %96, align 4, !tbaa !9
  %207 = load ptr, ptr %36, align 8, !tbaa !5
  %208 = call i32 @lsame_(ptr noundef %207, ptr noundef @.str.3)
  store i32 %208, ptr %97, align 4, !tbaa !9
  %209 = load ptr, ptr %37, align 8, !tbaa !5
  %210 = call i32 @lsame_(ptr noundef %209, ptr noundef @.str.4)
  store i32 %210, ptr %99, align 4, !tbaa !9
  %211 = load ptr, ptr %37, align 8, !tbaa !5
  %212 = call i32 @lsame_(ptr noundef %211, ptr noundef @.str.5)
  store i32 %212, ptr %100, align 4, !tbaa !9
  %213 = load ptr, ptr %37, align 8, !tbaa !5
  %214 = call i32 @lsame_(ptr noundef %213, ptr noundef @.str.6)
  store i32 %214, ptr %112, align 4, !tbaa !9
  %215 = load ptr, ptr %41, align 8, !tbaa !5
  %216 = call i32 @lsame_(ptr noundef %215, ptr noundef @.str)
  store i32 %216, ptr %102, align 4, !tbaa !9
  %217 = load ptr, ptr %41, align 8, !tbaa !5
  %218 = call i32 @lsame_(ptr noundef %217, ptr noundef @.str.7)
  store i32 %218, ptr %93, align 4, !tbaa !9
  %219 = load ptr, ptr %39, align 8, !tbaa !5
  %220 = call i32 @lsame_(ptr noundef %219, ptr noundef @.str.6)
  store i32 %220, ptr %90, align 4, !tbaa !9
  %221 = load ptr, ptr %40, align 8, !tbaa !5
  %222 = call i32 @lsame_(ptr noundef %221, ptr noundef @.str)
  store i32 %222, ptr %111, align 4, !tbaa !9
  %223 = load ptr, ptr %43, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !9
  %225 = load ptr, ptr %44, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = icmp sle i32 %224, %226
  br i1 %227, label %228, label %231

228:                                              ; preds = %204
  %229 = load ptr, ptr %43, align 8, !tbaa !5
  %230 = load i32, ptr %229, align 4, !tbaa !9
  br label %234

231:                                              ; preds = %204
  %232 = load ptr, ptr %44, align 8, !tbaa !5
  %233 = load i32, ptr %232, align 4, !tbaa !9
  br label %234

234:                                              ; preds = %231, %228
  %235 = phi i32 [ %230, %228 ], [ %233, %231 ]
  store i32 %235, ptr %89, align 4, !tbaa !9
  %236 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 0, ptr %236, align 4, !tbaa !9
  %237 = load ptr, ptr %66, align 8, !tbaa !5
  %238 = load i32, ptr %237, align 4, !tbaa !9
  %239 = icmp eq i32 %238, -1
  br i1 %239, label %244, label %240

240:                                              ; preds = %234
  %241 = load ptr, ptr %68, align 8, !tbaa !5
  %242 = load i32, ptr %241, align 4, !tbaa !9
  %243 = icmp eq i32 %242, -1
  br label %244

244:                                              ; preds = %240, %234
  %245 = phi i1 [ true, %234 ], [ %243, %240 ]
  %246 = zext i1 %245 to i32
  store i32 %246, ptr %109, align 4, !tbaa !9
  %247 = load i32, ptr %96, align 4, !tbaa !9
  %248 = icmp ne i32 %247, 0
  br i1 %248, label %258, label %249

249:                                              ; preds = %244
  %250 = load i32, ptr %97, align 4, !tbaa !9
  %251 = icmp ne i32 %250, 0
  br i1 %251, label %258, label %252

252:                                              ; preds = %249
  %253 = load ptr, ptr %36, align 8, !tbaa !5
  %254 = call i32 @lsame_(ptr noundef %253, ptr noundef @.str.8)
  %255 = icmp ne i32 %254, 0
  br i1 %255, label %258, label %256

256:                                              ; preds = %252
  %257 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -1, ptr %257, align 4, !tbaa !9
  br label %466

258:                                              ; preds = %252, %249, %244
  %259 = load i32, ptr %99, align 4, !tbaa !9
  %260 = icmp ne i32 %259, 0
  br i1 %260, label %273, label %261

261:                                              ; preds = %258
  %262 = load i32, ptr %100, align 4, !tbaa !9
  %263 = icmp ne i32 %262, 0
  br i1 %263, label %273, label %264

264:                                              ; preds = %261
  %265 = load i32, ptr %112, align 4, !tbaa !9
  %266 = icmp ne i32 %265, 0
  br i1 %266, label %273, label %267

267:                                              ; preds = %264
  %268 = load ptr, ptr %37, align 8, !tbaa !5
  %269 = call i32 @lsame_(ptr noundef %268, ptr noundef @.str.8)
  %270 = icmp ne i32 %269, 0
  br i1 %270, label %273, label %271

271:                                              ; preds = %267
  %272 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -2, ptr %272, align 4, !tbaa !9
  br label %465

273:                                              ; preds = %267, %264, %261, %258
  %274 = load i32, ptr %110, align 4, !tbaa !9
  %275 = icmp ne i32 %274, 0
  br i1 %275, label %280, label %276

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

280:                                              ; preds = %276, %273
  %281 = load i32, ptr %110, align 4, !tbaa !9
  %282 = icmp ne i32 %281, 0
  br i1 %282, label %283, label %289

283:                                              ; preds = %280
  %284 = load ptr, ptr %37, align 8, !tbaa !5
  %285 = call i32 @lsame_(ptr noundef %284, ptr noundef @.str.8)
  %286 = icmp ne i32 %285, 0
  br i1 %286, label %287, label %289

287:                                              ; preds = %283, %276
  %288 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -3, ptr %288, align 4, !tbaa !9
  br label %464

289:                                              ; preds = %283, %280
  %290 = load i32, ptr %90, align 4, !tbaa !9
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %298, label %292

292:                                              ; preds = %289
  %293 = load ptr, ptr %39, align 8, !tbaa !5
  %294 = call i32 @lsame_(ptr noundef %293, ptr noundef @.str.8)
  %295 = icmp ne i32 %294, 0
  br i1 %295, label %298, label %296

296:                                              ; preds = %292
  %297 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -4, ptr %297, align 4, !tbaa !9
  br label %463

298:                                              ; preds = %292, %289
  %299 = load i32, ptr %111, align 4, !tbaa !9
  %300 = icmp ne i32 %299, 0
  br i1 %300, label %307, label %301

301:                                              ; preds = %298
  %302 = load ptr, ptr %40, align 8, !tbaa !5
  %303 = call i32 @lsame_(ptr noundef %302, ptr noundef @.str.8)
  %304 = icmp ne i32 %303, 0
  br i1 %304, label %307, label %305

305:                                              ; preds = %301
  %306 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -5, ptr %306, align 4, !tbaa !9
  br label %462

307:                                              ; preds = %301, %298
  %308 = load i32, ptr %102, align 4, !tbaa !9
  %309 = icmp ne i32 %308, 0
  br i1 %309, label %319, label %310

310:                                              ; preds = %307
  %311 = load i32, ptr %93, align 4, !tbaa !9
  %312 = icmp ne i32 %311, 0
  br i1 %312, label %319, label %313

313:                                              ; preds = %310
  %314 = load ptr, ptr %41, align 8, !tbaa !5
  %315 = call i32 @lsame_(ptr noundef %314, ptr noundef @.str.8)
  %316 = icmp ne i32 %315, 0
  br i1 %316, label %319, label %317

317:                                              ; preds = %313
  %318 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -6, ptr %318, align 4, !tbaa !9
  br label %461

319:                                              ; preds = %313, %310, %307
  %320 = load ptr, ptr %42, align 8, !tbaa !5
  %321 = load i32, ptr %320, align 4, !tbaa !9
  %322 = icmp eq i32 %321, 1
  br i1 %322, label %337, label %323

323:                                              ; preds = %319
  %324 = load ptr, ptr %42, align 8, !tbaa !5
  %325 = load i32, ptr %324, align 4, !tbaa !9
  %326 = icmp eq i32 %325, 2
  br i1 %326, label %337, label %327

327:                                              ; preds = %323
  %328 = load ptr, ptr %42, align 8, !tbaa !5
  %329 = load i32, ptr %328, align 4, !tbaa !9
  %330 = icmp eq i32 %329, 3
  br i1 %330, label %337, label %331

331:                                              ; preds = %327
  %332 = load ptr, ptr %42, align 8, !tbaa !5
  %333 = load i32, ptr %332, align 4, !tbaa !9
  %334 = icmp eq i32 %333, 4
  br i1 %334, label %337, label %335

335:                                              ; preds = %331
  %336 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -7, ptr %336, align 4, !tbaa !9
  br label %460

337:                                              ; preds = %331, %327, %323, %319
  %338 = load ptr, ptr %43, align 8, !tbaa !5
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = icmp slt i32 %339, 0
  br i1 %340, label %341, label %343

341:                                              ; preds = %337
  %342 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -8, ptr %342, align 4, !tbaa !9
  br label %459

343:                                              ; preds = %337
  %344 = load ptr, ptr %44, align 8, !tbaa !5
  %345 = load i32, ptr %344, align 4, !tbaa !9
  %346 = icmp slt i32 %345, 0
  br i1 %346, label %354, label %347

347:                                              ; preds = %343
  %348 = load ptr, ptr %44, align 8, !tbaa !5
  %349 = load i32, ptr %348, align 4, !tbaa !9
  %350 = load ptr, ptr %43, align 8, !tbaa !5
  %351 = load i32, ptr %350, align 4, !tbaa !9
  %352 = add nsw i32 %351, 1
  %353 = icmp sgt i32 %349, %352
  br i1 %353, label %354, label %356

354:                                              ; preds = %347, %343
  %355 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -9, ptr %355, align 4, !tbaa !9
  br label %458

356:                                              ; preds = %347
  %357 = load ptr, ptr %46, align 8, !tbaa !5
  %358 = load i32, ptr %357, align 4, !tbaa !9
  %359 = load ptr, ptr %43, align 8, !tbaa !5
  %360 = load i32, ptr %359, align 4, !tbaa !9
  %361 = icmp slt i32 %358, %360
  br i1 %361, label %362, label %364

362:                                              ; preds = %356
  %363 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -11, ptr %363, align 4, !tbaa !9
  br label %457

364:                                              ; preds = %356
  %365 = load ptr, ptr %48, align 8, !tbaa !5
  %366 = load i32, ptr %365, align 4, !tbaa !9
  %367 = load i32, ptr %89, align 4, !tbaa !9
  %368 = icmp slt i32 %366, %367
  br i1 %368, label %369, label %371

369:                                              ; preds = %364
  %370 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -13, ptr %370, align 4, !tbaa !9
  br label %456

371:                                              ; preds = %364
  %372 = load ptr, ptr %50, align 8, !tbaa !5
  %373 = load i32, ptr %372, align 4, !tbaa !9
  %374 = load i32, ptr %89, align 4, !tbaa !9
  %375 = icmp slt i32 %373, %374
  br i1 %375, label %376, label %378

376:                                              ; preds = %371
  %377 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -15, ptr %377, align 4, !tbaa !9
  br label %455

378:                                              ; preds = %371
  %379 = load ptr, ptr %51, align 8, !tbaa !5
  %380 = load i32, ptr %379, align 4, !tbaa !9
  %381 = icmp eq i32 %380, -2
  br i1 %381, label %398, label %382

382:                                              ; preds = %378
  %383 = load ptr, ptr %51, align 8, !tbaa !5
  %384 = load i32, ptr %383, align 4, !tbaa !9
  %385 = icmp eq i32 %384, -1
  br i1 %385, label %398, label %386

386:                                              ; preds = %382
  %387 = load ptr, ptr %51, align 8, !tbaa !5
  %388 = load i32, ptr %387, align 4, !tbaa !9
  %389 = icmp sge i32 %388, 1
  br i1 %389, label %390, label %396

390:                                              ; preds = %386
  %391 = load ptr, ptr %51, align 8, !tbaa !5
  %392 = load i32, ptr %391, align 4, !tbaa !9
  %393 = load ptr, ptr %44, align 8, !tbaa !5
  %394 = load i32, ptr %393, align 4, !tbaa !9
  %395 = icmp sle i32 %392, %394
  br i1 %395, label %398, label %396

396:                                              ; preds = %390, %386
  %397 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -16, ptr %397, align 4, !tbaa !9
  br label %454

398:                                              ; preds = %390, %382, %378
  %399 = load ptr, ptr %52, align 8, !tbaa !5
  %400 = load float, ptr %399, align 4, !tbaa !11
  %401 = load float, ptr %86, align 4, !tbaa !11
  %402 = fcmp olt float %400, %401
  br i1 %402, label %408, label %403

403:                                              ; preds = %398
  %404 = load ptr, ptr %52, align 8, !tbaa !5
  %405 = load float, ptr %404, align 4, !tbaa !11
  %406 = load float, ptr %113, align 4, !tbaa !11
  %407 = fcmp oge float %405, %406
  br i1 %407, label %408, label %410

408:                                              ; preds = %403, %398
  %409 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -17, ptr %409, align 4, !tbaa !9
  br label %453

410:                                              ; preds = %403
  %411 = load ptr, ptr %57, align 8, !tbaa !5
  %412 = load i32, ptr %411, align 4, !tbaa !9
  %413 = load ptr, ptr %43, align 8, !tbaa !5
  %414 = load i32, ptr %413, align 4, !tbaa !9
  %415 = icmp slt i32 %412, %414
  br i1 %415, label %416, label %418

416:                                              ; preds = %410
  %417 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -22, ptr %417, align 4, !tbaa !9
  br label %452

418:                                              ; preds = %410
  %419 = load i32, ptr %102, align 4, !tbaa !9
  %420 = icmp ne i32 %419, 0
  br i1 %420, label %424, label %421

421:                                              ; preds = %418
  %422 = load i32, ptr %93, align 4, !tbaa !9
  %423 = icmp ne i32 %422, 0
  br i1 %423, label %424, label %431

424:                                              ; preds = %421, %418
  %425 = load ptr, ptr %60, align 8, !tbaa !5
  %426 = load i32, ptr %425, align 4, !tbaa !9
  %427 = load i32, ptr %89, align 4, !tbaa !9
  %428 = icmp slt i32 %426, %427
  br i1 %428, label %429, label %431

429:                                              ; preds = %424
  %430 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -25, ptr %430, align 4, !tbaa !9
  br label %451

431:                                              ; preds = %424, %421
  %432 = load ptr, ptr %62, align 8, !tbaa !5
  %433 = load i32, ptr %432, align 4, !tbaa !9
  %434 = load ptr, ptr %44, align 8, !tbaa !5
  %435 = load i32, ptr %434, align 4, !tbaa !9
  %436 = sub nsw i32 %435, 1
  %437 = icmp slt i32 %433, %436
  br i1 %437, label %438, label %440

438:                                              ; preds = %431
  %439 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -27, ptr %439, align 4, !tbaa !9
  br label %450

440:                                              ; preds = %431
  %441 = load ptr, ptr %64, align 8, !tbaa !5
  %442 = load i32, ptr %441, align 4, !tbaa !9
  %443 = load ptr, ptr %44, align 8, !tbaa !5
  %444 = load i32, ptr %443, align 4, !tbaa !9
  %445 = sub nsw i32 %444, 1
  %446 = icmp slt i32 %442, %445
  br i1 %446, label %447, label %449

447:                                              ; preds = %440
  %448 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -29, ptr %448, align 4, !tbaa !9
  br label %449

449:                                              ; preds = %447, %440
  br label %450

450:                                              ; preds = %449, %438
  br label %451

451:                                              ; preds = %450, %429
  br label %452

452:                                              ; preds = %451, %416
  br label %453

453:                                              ; preds = %452, %408
  br label %454

454:                                              ; preds = %453, %396
  br label %455

455:                                              ; preds = %454, %376
  br label %456

456:                                              ; preds = %455, %369
  br label %457

457:                                              ; preds = %456, %362
  br label %458

458:                                              ; preds = %457, %354
  br label %459

459:                                              ; preds = %458, %341
  br label %460

460:                                              ; preds = %459, %335
  br label %461

461:                                              ; preds = %460, %317
  br label %462

462:                                              ; preds = %461, %305
  br label %463

463:                                              ; preds = %462, %296
  br label %464

464:                                              ; preds = %463, %287
  br label %465

465:                                              ; preds = %464, %271
  br label %466

466:                                              ; preds = %465, %256
  %467 = load i32, ptr %99, align 4, !tbaa !9
  %468 = icmp ne i32 %467, 0
  br i1 %468, label %472, label %469

469:                                              ; preds = %466
  %470 = load i32, ptr %100, align 4, !tbaa !9
  %471 = icmp ne i32 %470, 0
  br i1 %471, label %472, label %474

472:                                              ; preds = %469, %466
  %473 = getelementptr inbounds [1 x i8], ptr %88, i64 0, i64 0
  store i8 86, ptr %473, align 1, !tbaa !13
  br label %476

474:                                              ; preds = %469
  %475 = getelementptr inbounds [1 x i8], ptr %88, i64 0, i64 0
  store i8 78, ptr %475, align 1, !tbaa !13
  br label %476

476:                                              ; preds = %474, %472
  %477 = load ptr, ptr %69, align 8, !tbaa !5
  %478 = load i32, ptr %477, align 4, !tbaa !9
  %479 = icmp eq i32 %478, 0
  br i1 %479, label %480, label %822

480:                                              ; preds = %476
  %481 = load ptr, ptr %44, align 8, !tbaa !5
  %482 = load i32, ptr %481, align 4, !tbaa !9
  %483 = icmp eq i32 %482, 0
  br i1 %483, label %488, label %484

484:                                              ; preds = %480
  %485 = load ptr, ptr %44, align 8, !tbaa !5
  %486 = load i32, ptr %485, align 4, !tbaa !9
  %487 = icmp eq i32 %486, 1
  br i1 %487, label %488, label %502

488:                                              ; preds = %484, %480
  %489 = load i32, ptr %109, align 4, !tbaa !9
  %490 = icmp ne i32 %489, 0
  br i1 %490, label %491, label %498

491:                                              ; preds = %488
  %492 = load ptr, ptr %67, align 8, !tbaa !5
  %493 = getelementptr inbounds i32, ptr %492, i64 1
  store i32 1, ptr %493, align 4, !tbaa !9
  %494 = load ptr, ptr %65, align 8, !tbaa !5
  %495 = getelementptr inbounds float, ptr %494, i64 1
  store float 2.000000e+00, ptr %495, align 4, !tbaa !11
  %496 = load ptr, ptr %65, align 8, !tbaa !5
  %497 = getelementptr inbounds float, ptr %496, i64 2
  store float 2.000000e+00, ptr %497, align 4, !tbaa !11
  br label %500

498:                                              ; preds = %488
  %499 = load ptr, ptr %53, align 8, !tbaa !5
  store i32 0, ptr %499, align 4, !tbaa !9
  br label %500

500:                                              ; preds = %498, %491
  %501 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 1, ptr %501, align 4, !tbaa !9
  store i32 0, ptr %35, align 4
  store i32 1, ptr %114, align 4
  br label %1171

502:                                              ; preds = %484
  %503 = load ptr, ptr %44, align 8, !tbaa !5
  %504 = load i32, ptr %503, align 4, !tbaa !9
  %505 = icmp sge i32 1, %504
  br i1 %505, label %506, label %507

506:                                              ; preds = %502
  br label %510

507:                                              ; preds = %502
  %508 = load ptr, ptr %44, align 8, !tbaa !5
  %509 = load i32, ptr %508, align 4, !tbaa !9
  br label %510

510:                                              ; preds = %507, %506
  %511 = phi i32 [ 1, %506 ], [ %509, %507 ]
  store i32 %511, ptr %91, align 4, !tbaa !9
  %512 = load ptr, ptr %43, align 8, !tbaa !5
  %513 = load i32, ptr %512, align 4, !tbaa !9
  %514 = load ptr, ptr %44, align 8, !tbaa !5
  %515 = load i32, ptr %514, align 4, !tbaa !9
  %516 = icmp sle i32 %513, %515
  br i1 %516, label %517, label %520

517:                                              ; preds = %510
  %518 = load ptr, ptr %43, align 8, !tbaa !5
  %519 = load i32, ptr %518, align 4, !tbaa !9
  br label %523

520:                                              ; preds = %510
  %521 = load ptr, ptr %44, align 8, !tbaa !5
  %522 = load i32, ptr %521, align 4, !tbaa !9
  br label %523

523:                                              ; preds = %520, %517
  %524 = phi i32 [ %519, %517 ], [ %522, %520 ]
  %525 = load i32, ptr %91, align 4, !tbaa !9
  %526 = add nsw i32 %524, %525
  store i32 %526, ptr %103, align 4, !tbaa !9
  %527 = load i32, ptr %109, align 4, !tbaa !9
  %528 = icmp ne i32 %527, 0
  br i1 %528, label %529, label %559

529:                                              ; preds = %523
  %530 = load ptr, ptr %43, align 8, !tbaa !5
  %531 = load ptr, ptr %44, align 8, !tbaa !5
  %532 = load ptr, ptr %45, align 8, !tbaa !5
  %533 = load i32, ptr %71, align 4, !tbaa !9
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds float, ptr %532, i64 %534
  %536 = load ptr, ptr %46, align 8, !tbaa !5
  %537 = load ptr, ptr %65, align 8, !tbaa !5
  %538 = getelementptr inbounds float, ptr %537, i64 1
  %539 = getelementptr inbounds [2 x float], ptr %106, i64 0, i64 0
  %540 = call i32 @sgeqrf_(ptr noundef %530, ptr noundef %531, ptr noundef %535, ptr noundef %536, ptr noundef %538, ptr noundef %539, ptr noundef @c_n1, ptr noundef %87)
  %541 = getelementptr inbounds [2 x float], ptr %106, i64 0, i64 0
  %542 = load float, ptr %541, align 4, !tbaa !11
  %543 = fptosi float %542 to i32
  store i32 %543, ptr %92, align 4, !tbaa !9
  %544 = load ptr, ptr %43, align 8, !tbaa !5
  %545 = load i32, ptr %544, align 4, !tbaa !9
  %546 = load ptr, ptr %44, align 8, !tbaa !5
  %547 = load i32, ptr %546, align 4, !tbaa !9
  %548 = icmp sle i32 %545, %547
  br i1 %548, label %549, label %552

549:                                              ; preds = %529
  %550 = load ptr, ptr %43, align 8, !tbaa !5
  %551 = load i32, ptr %550, align 4, !tbaa !9
  br label %555

552:                                              ; preds = %529
  %553 = load ptr, ptr %44, align 8, !tbaa !5
  %554 = load i32, ptr %553, align 4, !tbaa !9
  br label %555

555:                                              ; preds = %552, %549
  %556 = phi i32 [ %551, %549 ], [ %554, %552 ]
  %557 = load i32, ptr %92, align 4, !tbaa !9
  %558 = add nsw i32 %556, %557
  store i32 %558, ptr %105, align 4, !tbaa !9
  br label %559

559:                                              ; preds = %555, %523
  %560 = load ptr, ptr %44, align 8, !tbaa !5
  %561 = load i32, ptr %560, align 4, !tbaa !9
  %562 = sub nsw i32 %561, 1
  store i32 %562, ptr %84, align 4, !tbaa !9
  %563 = load ptr, ptr %36, align 8, !tbaa !5
  %564 = getelementptr inbounds [1 x i8], ptr %88, i64 0, i64 0
  %565 = load ptr, ptr %38, align 8, !tbaa !5
  %566 = load ptr, ptr %41, align 8, !tbaa !5
  %567 = load ptr, ptr %42, align 8, !tbaa !5
  %568 = load ptr, ptr %47, align 8, !tbaa !5
  %569 = load i32, ptr %73, align 4, !tbaa !9
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds float, ptr %568, i64 %570
  %572 = load ptr, ptr %48, align 8, !tbaa !5
  %573 = load ptr, ptr %49, align 8, !tbaa !5
  %574 = load i32, ptr %75, align 4, !tbaa !9
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds float, ptr %573, i64 %575
  %577 = load ptr, ptr %50, align 8, !tbaa !5
  %578 = load ptr, ptr %51, align 8, !tbaa !5
  %579 = load ptr, ptr %52, align 8, !tbaa !5
  %580 = load ptr, ptr %53, align 8, !tbaa !5
  %581 = load ptr, ptr %54, align 8, !tbaa !5
  %582 = getelementptr inbounds float, ptr %581, i64 1
  %583 = load ptr, ptr %55, align 8, !tbaa !5
  %584 = getelementptr inbounds float, ptr %583, i64 1
  %585 = load ptr, ptr %56, align 8, !tbaa !5
  %586 = load i32, ptr %77, align 4, !tbaa !9
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds float, ptr %585, i64 %587
  %589 = load ptr, ptr %57, align 8, !tbaa !5
  %590 = load ptr, ptr %58, align 8, !tbaa !5
  %591 = getelementptr inbounds float, ptr %590, i64 1
  %592 = load ptr, ptr %59, align 8, !tbaa !5
  %593 = load i32, ptr %79, align 4, !tbaa !9
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %592, i64 %594
  %596 = load ptr, ptr %60, align 8, !tbaa !5
  %597 = load ptr, ptr %61, align 8, !tbaa !5
  %598 = load i32, ptr %81, align 4, !tbaa !9
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds float, ptr %597, i64 %599
  %601 = load ptr, ptr %62, align 8, !tbaa !5
  %602 = load ptr, ptr %63, align 8, !tbaa !5
  %603 = load i32, ptr %83, align 4, !tbaa !9
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds float, ptr %602, i64 %604
  %606 = load ptr, ptr %64, align 8, !tbaa !5
  %607 = load ptr, ptr %65, align 8, !tbaa !5
  %608 = getelementptr inbounds float, ptr %607, i64 1
  %609 = load ptr, ptr %67, align 8, !tbaa !5
  %610 = getelementptr inbounds i32, ptr %609, i64 1
  %611 = load ptr, ptr %68, align 8, !tbaa !5
  %612 = call i32 @sgedmd_(ptr noundef %563, ptr noundef %564, ptr noundef %565, ptr noundef %566, ptr noundef %567, ptr noundef %89, ptr noundef %84, ptr noundef %571, ptr noundef %572, ptr noundef %576, ptr noundef %577, ptr noundef %578, ptr noundef %579, ptr noundef %580, ptr noundef %582, ptr noundef %584, ptr noundef %588, ptr noundef %589, ptr noundef %591, ptr noundef %595, ptr noundef %596, ptr noundef %600, ptr noundef %601, ptr noundef %605, ptr noundef %606, ptr noundef %608, ptr noundef @c_n1, ptr noundef %610, ptr noundef %611, ptr noundef %87)
  %613 = load ptr, ptr %65, align 8, !tbaa !5
  %614 = getelementptr inbounds float, ptr %613, i64 1
  %615 = load float, ptr %614, align 4, !tbaa !11
  %616 = fptosi float %615 to i32
  store i32 %616, ptr %94, align 4, !tbaa !9
  %617 = load i32, ptr %103, align 4, !tbaa !9
  store i32 %617, ptr %84, align 4, !tbaa !9
  %618 = load i32, ptr %89, align 4, !tbaa !9
  %619 = load i32, ptr %94, align 4, !tbaa !9
  %620 = add nsw i32 %618, %619
  store i32 %620, ptr %85, align 4, !tbaa !9
  %621 = load i32, ptr %84, align 4, !tbaa !9
  %622 = load i32, ptr %85, align 4, !tbaa !9
  %623 = icmp sge i32 %621, %622
  br i1 %623, label %624, label %626

624:                                              ; preds = %559
  %625 = load i32, ptr %84, align 4, !tbaa !9
  br label %628

626:                                              ; preds = %559
  %627 = load i32, ptr %85, align 4, !tbaa !9
  br label %628

628:                                              ; preds = %626, %624
  %629 = phi i32 [ %625, %624 ], [ %627, %626 ]
  store i32 %629, ptr %103, align 4, !tbaa !9
  %630 = load ptr, ptr %67, align 8, !tbaa !5
  %631 = getelementptr inbounds i32, ptr %630, i64 1
  %632 = load i32, ptr %631, align 4, !tbaa !9
  store i32 %632, ptr %98, align 4, !tbaa !9
  %633 = load i32, ptr %109, align 4, !tbaa !9
  %634 = icmp ne i32 %633, 0
  br i1 %634, label %635, label %653

635:                                              ; preds = %628
  %636 = load ptr, ptr %65, align 8, !tbaa !5
  %637 = getelementptr inbounds float, ptr %636, i64 2
  %638 = load float, ptr %637, align 4, !tbaa !11
  %639 = fptosi float %638 to i32
  store i32 %639, ptr %95, align 4, !tbaa !9
  %640 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %640, ptr %84, align 4, !tbaa !9
  %641 = load i32, ptr %89, align 4, !tbaa !9
  %642 = load i32, ptr %95, align 4, !tbaa !9
  %643 = add nsw i32 %641, %642
  store i32 %643, ptr %85, align 4, !tbaa !9
  %644 = load i32, ptr %84, align 4, !tbaa !9
  %645 = load i32, ptr %85, align 4, !tbaa !9
  %646 = icmp sge i32 %644, %645
  br i1 %646, label %647, label %649

647:                                              ; preds = %635
  %648 = load i32, ptr %84, align 4, !tbaa !9
  br label %651

649:                                              ; preds = %635
  %650 = load i32, ptr %85, align 4, !tbaa !9
  br label %651

651:                                              ; preds = %649, %647
  %652 = phi i32 [ %648, %647 ], [ %650, %649 ]
  store i32 %652, ptr %105, align 4, !tbaa !9
  br label %653

653:                                              ; preds = %651, %628
  %654 = load i32, ptr %99, align 4, !tbaa !9
  %655 = icmp ne i32 %654, 0
  br i1 %655, label %659, label %656

656:                                              ; preds = %653
  %657 = load i32, ptr %100, align 4, !tbaa !9
  %658 = icmp ne i32 %657, 0
  br i1 %658, label %659, label %728

659:                                              ; preds = %656, %653
  %660 = load ptr, ptr %44, align 8, !tbaa !5
  %661 = load i32, ptr %660, align 4, !tbaa !9
  %662 = icmp sge i32 1, %661
  br i1 %662, label %663, label %664

663:                                              ; preds = %659
  br label %667

664:                                              ; preds = %659
  %665 = load ptr, ptr %44, align 8, !tbaa !5
  %666 = load i32, ptr %665, align 4, !tbaa !9
  br label %667

667:                                              ; preds = %664, %663
  %668 = phi i32 [ 1, %663 ], [ %666, %664 ]
  store i32 %668, ptr %107, align 4, !tbaa !9
  %669 = load i32, ptr %103, align 4, !tbaa !9
  store i32 %669, ptr %84, align 4, !tbaa !9
  %670 = load i32, ptr %89, align 4, !tbaa !9
  %671 = load ptr, ptr %44, align 8, !tbaa !5
  %672 = load i32, ptr %671, align 4, !tbaa !9
  %673 = add nsw i32 %670, %672
  %674 = sub nsw i32 %673, 1
  %675 = load i32, ptr %107, align 4, !tbaa !9
  %676 = add nsw i32 %674, %675
  store i32 %676, ptr %85, align 4, !tbaa !9
  %677 = load i32, ptr %84, align 4, !tbaa !9
  %678 = load i32, ptr %85, align 4, !tbaa !9
  %679 = icmp sge i32 %677, %678
  br i1 %679, label %680, label %682

680:                                              ; preds = %667
  %681 = load i32, ptr %84, align 4, !tbaa !9
  br label %684

682:                                              ; preds = %667
  %683 = load i32, ptr %85, align 4, !tbaa !9
  br label %684

684:                                              ; preds = %682, %680
  %685 = phi i32 [ %681, %680 ], [ %683, %682 ]
  store i32 %685, ptr %103, align 4, !tbaa !9
  %686 = load i32, ptr %109, align 4, !tbaa !9
  %687 = icmp ne i32 %686, 0
  br i1 %687, label %688, label %727

688:                                              ; preds = %684
  %689 = load ptr, ptr %43, align 8, !tbaa !5
  %690 = load ptr, ptr %44, align 8, !tbaa !5
  %691 = load ptr, ptr %45, align 8, !tbaa !5
  %692 = load i32, ptr %71, align 4, !tbaa !9
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds float, ptr %691, i64 %693
  %695 = load ptr, ptr %46, align 8, !tbaa !5
  %696 = load ptr, ptr %65, align 8, !tbaa !5
  %697 = getelementptr inbounds float, ptr %696, i64 1
  %698 = load ptr, ptr %56, align 8, !tbaa !5
  %699 = load i32, ptr %77, align 4, !tbaa !9
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds float, ptr %698, i64 %700
  %702 = load ptr, ptr %57, align 8, !tbaa !5
  %703 = load ptr, ptr %65, align 8, !tbaa !5
  %704 = getelementptr inbounds float, ptr %703, i64 1
  %705 = call i32 @sormqr_(ptr noundef @.str.9, ptr noundef @.str.8, ptr noundef %689, ptr noundef %690, ptr noundef %89, ptr noundef %694, ptr noundef %695, ptr noundef %697, ptr noundef %701, ptr noundef %702, ptr noundef %704, ptr noundef @c_n1, ptr noundef %87)
  %706 = load ptr, ptr %65, align 8, !tbaa !5
  %707 = getelementptr inbounds float, ptr %706, i64 1
  %708 = load float, ptr %707, align 4, !tbaa !11
  %709 = fptosi float %708 to i32
  store i32 %709, ptr %108, align 4, !tbaa !9
  %710 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %710, ptr %84, align 4, !tbaa !9
  %711 = load i32, ptr %89, align 4, !tbaa !9
  %712 = load ptr, ptr %44, align 8, !tbaa !5
  %713 = load i32, ptr %712, align 4, !tbaa !9
  %714 = add nsw i32 %711, %713
  %715 = sub nsw i32 %714, 1
  %716 = load i32, ptr %108, align 4, !tbaa !9
  %717 = add nsw i32 %715, %716
  store i32 %717, ptr %85, align 4, !tbaa !9
  %718 = load i32, ptr %84, align 4, !tbaa !9
  %719 = load i32, ptr %85, align 4, !tbaa !9
  %720 = icmp sge i32 %718, %719
  br i1 %720, label %721, label %723

721:                                              ; preds = %688
  %722 = load i32, ptr %84, align 4, !tbaa !9
  br label %725

723:                                              ; preds = %688
  %724 = load i32, ptr %85, align 4, !tbaa !9
  br label %725

725:                                              ; preds = %723, %721
  %726 = phi i32 [ %722, %721 ], [ %724, %723 ]
  store i32 %726, ptr %105, align 4, !tbaa !9
  br label %727

727:                                              ; preds = %725, %684
  br label %728

728:                                              ; preds = %727, %656
  %729 = load i32, ptr %90, align 4, !tbaa !9
  %730 = icmp ne i32 %729, 0
  br i1 %730, label %731, label %787

731:                                              ; preds = %728
  %732 = load ptr, ptr %44, align 8, !tbaa !5
  %733 = load i32, ptr %732, align 4, !tbaa !9
  store i32 %733, ptr %101, align 4, !tbaa !9
  %734 = load i32, ptr %103, align 4, !tbaa !9
  store i32 %734, ptr %84, align 4, !tbaa !9
  %735 = load i32, ptr %89, align 4, !tbaa !9
  %736 = load ptr, ptr %44, align 8, !tbaa !5
  %737 = load i32, ptr %736, align 4, !tbaa !9
  %738 = add nsw i32 %735, %737
  %739 = sub nsw i32 %738, 1
  %740 = load i32, ptr %101, align 4, !tbaa !9
  %741 = add nsw i32 %739, %740
  store i32 %741, ptr %85, align 4, !tbaa !9
  %742 = load i32, ptr %84, align 4, !tbaa !9
  %743 = load i32, ptr %85, align 4, !tbaa !9
  %744 = icmp sge i32 %742, %743
  br i1 %744, label %745, label %747

745:                                              ; preds = %731
  %746 = load i32, ptr %84, align 4, !tbaa !9
  br label %749

747:                                              ; preds = %731
  %748 = load i32, ptr %85, align 4, !tbaa !9
  br label %749

749:                                              ; preds = %747, %745
  %750 = phi i32 [ %746, %745 ], [ %748, %747 ]
  store i32 %750, ptr %103, align 4, !tbaa !9
  %751 = load i32, ptr %109, align 4, !tbaa !9
  %752 = icmp ne i32 %751, 0
  br i1 %752, label %753, label %786

753:                                              ; preds = %749
  %754 = load ptr, ptr %43, align 8, !tbaa !5
  %755 = load ptr, ptr %45, align 8, !tbaa !5
  %756 = load i32, ptr %71, align 4, !tbaa !9
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds float, ptr %755, i64 %757
  %759 = load ptr, ptr %46, align 8, !tbaa !5
  %760 = load ptr, ptr %65, align 8, !tbaa !5
  %761 = getelementptr inbounds float, ptr %760, i64 1
  %762 = load ptr, ptr %65, align 8, !tbaa !5
  %763 = getelementptr inbounds float, ptr %762, i64 1
  %764 = call i32 @sorgqr_(ptr noundef %754, ptr noundef %89, ptr noundef %89, ptr noundef %758, ptr noundef %759, ptr noundef %761, ptr noundef %763, ptr noundef @c_n1, ptr noundef %87)
  %765 = load ptr, ptr %65, align 8, !tbaa !5
  %766 = getelementptr inbounds float, ptr %765, i64 1
  %767 = load float, ptr %766, align 4, !tbaa !11
  %768 = fptosi float %767 to i32
  store i32 %768, ptr %104, align 4, !tbaa !9
  %769 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %769, ptr %84, align 4, !tbaa !9
  %770 = load i32, ptr %89, align 4, !tbaa !9
  %771 = load ptr, ptr %44, align 8, !tbaa !5
  %772 = load i32, ptr %771, align 4, !tbaa !9
  %773 = add nsw i32 %770, %772
  %774 = sub nsw i32 %773, 1
  %775 = load i32, ptr %104, align 4, !tbaa !9
  %776 = add nsw i32 %774, %775
  store i32 %776, ptr %85, align 4, !tbaa !9
  %777 = load i32, ptr %84, align 4, !tbaa !9
  %778 = load i32, ptr %85, align 4, !tbaa !9
  %779 = icmp sge i32 %777, %778
  br i1 %779, label %780, label %782

780:                                              ; preds = %753
  %781 = load i32, ptr %84, align 4, !tbaa !9
  br label %784

782:                                              ; preds = %753
  %783 = load i32, ptr %85, align 4, !tbaa !9
  br label %784

784:                                              ; preds = %782, %780
  %785 = phi i32 [ %781, %780 ], [ %783, %782 ]
  store i32 %785, ptr %105, align 4, !tbaa !9
  br label %786

786:                                              ; preds = %784, %749
  br label %787

787:                                              ; preds = %786, %728
  %788 = load i32, ptr %98, align 4, !tbaa !9
  %789 = icmp sge i32 1, %788
  br i1 %789, label %790, label %791

790:                                              ; preds = %787
  br label %793

791:                                              ; preds = %787
  %792 = load i32, ptr %98, align 4, !tbaa !9
  br label %793

793:                                              ; preds = %791, %790
  %794 = phi i32 [ 1, %790 ], [ %792, %791 ]
  store i32 %794, ptr %98, align 4, !tbaa !9
  %795 = load i32, ptr %103, align 4, !tbaa !9
  %796 = icmp sge i32 2, %795
  br i1 %796, label %797, label %798

797:                                              ; preds = %793
  br label %800

798:                                              ; preds = %793
  %799 = load i32, ptr %103, align 4, !tbaa !9
  br label %800

800:                                              ; preds = %798, %797
  %801 = phi i32 [ 2, %797 ], [ %799, %798 ]
  store i32 %801, ptr %103, align 4, !tbaa !9
  %802 = load ptr, ptr %66, align 8, !tbaa !5
  %803 = load i32, ptr %802, align 4, !tbaa !9
  %804 = load i32, ptr %103, align 4, !tbaa !9
  %805 = icmp slt i32 %803, %804
  br i1 %805, label %806, label %811

806:                                              ; preds = %800
  %807 = load i32, ptr %109, align 4, !tbaa !9
  %808 = icmp ne i32 %807, 0
  br i1 %808, label %811, label %809

809:                                              ; preds = %806
  %810 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -31, ptr %810, align 4, !tbaa !9
  br label %811

811:                                              ; preds = %809, %806, %800
  %812 = load ptr, ptr %68, align 8, !tbaa !5
  %813 = load i32, ptr %812, align 4, !tbaa !9
  %814 = load i32, ptr %98, align 4, !tbaa !9
  %815 = icmp slt i32 %813, %814
  br i1 %815, label %816, label %821

816:                                              ; preds = %811
  %817 = load i32, ptr %109, align 4, !tbaa !9
  %818 = icmp ne i32 %817, 0
  br i1 %818, label %821, label %819

819:                                              ; preds = %816
  %820 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -33, ptr %820, align 4, !tbaa !9
  br label %821

821:                                              ; preds = %819, %816, %811
  br label %822

822:                                              ; preds = %821, %476
  %823 = load ptr, ptr %69, align 8, !tbaa !5
  %824 = load i32, ptr %823, align 4, !tbaa !9
  %825 = icmp ne i32 %824, 0
  br i1 %825, label %826, label %831

826:                                              ; preds = %822
  %827 = load ptr, ptr %69, align 8, !tbaa !5
  %828 = load i32, ptr %827, align 4, !tbaa !9
  %829 = sub nsw i32 0, %828
  store i32 %829, ptr %84, align 4, !tbaa !9
  %830 = call i32 @xerbla_(ptr noundef @.str.10, ptr noundef %84)
  store i32 0, ptr %35, align 4
  store i32 1, ptr %114, align 4
  br label %1171

831:                                              ; preds = %822
  %832 = load i32, ptr %109, align 4, !tbaa !9
  %833 = icmp ne i32 %832, 0
  br i1 %833, label %834, label %846

834:                                              ; preds = %831
  %835 = load i32, ptr %98, align 4, !tbaa !9
  %836 = load ptr, ptr %67, align 8, !tbaa !5
  %837 = getelementptr inbounds i32, ptr %836, i64 1
  store i32 %835, ptr %837, align 4, !tbaa !9
  %838 = load i32, ptr %103, align 4, !tbaa !9
  %839 = sitofp i32 %838 to float
  %840 = load ptr, ptr %65, align 8, !tbaa !5
  %841 = getelementptr inbounds float, ptr %840, i64 1
  store float %839, ptr %841, align 4, !tbaa !11
  %842 = load i32, ptr %105, align 4, !tbaa !9
  %843 = sitofp i32 %842 to float
  %844 = load ptr, ptr %65, align 8, !tbaa !5
  %845 = getelementptr inbounds float, ptr %844, i64 2
  store float %843, ptr %845, align 4, !tbaa !11
  store i32 0, ptr %35, align 4
  store i32 1, ptr %114, align 4
  br label %1171

846:                                              ; preds = %831
  br label %847

847:                                              ; preds = %846
  %848 = load ptr, ptr %66, align 8, !tbaa !5
  %849 = load i32, ptr %848, align 4, !tbaa !9
  %850 = load i32, ptr %89, align 4, !tbaa !9
  %851 = sub nsw i32 %849, %850
  store i32 %851, ptr %84, align 4, !tbaa !9
  %852 = load ptr, ptr %43, align 8, !tbaa !5
  %853 = load ptr, ptr %44, align 8, !tbaa !5
  %854 = load ptr, ptr %45, align 8, !tbaa !5
  %855 = load i32, ptr %71, align 4, !tbaa !9
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds float, ptr %854, i64 %856
  %858 = load ptr, ptr %46, align 8, !tbaa !5
  %859 = load ptr, ptr %65, align 8, !tbaa !5
  %860 = getelementptr inbounds float, ptr %859, i64 1
  %861 = load ptr, ptr %65, align 8, !tbaa !5
  %862 = load i32, ptr %89, align 4, !tbaa !9
  %863 = add nsw i32 %862, 1
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds float, ptr %861, i64 %864
  %866 = call i32 @sgeqrf_(ptr noundef %852, ptr noundef %853, ptr noundef %857, ptr noundef %858, ptr noundef %860, ptr noundef %865, ptr noundef %84, ptr noundef %87)
  %867 = load ptr, ptr %44, align 8, !tbaa !5
  %868 = load i32, ptr %867, align 4, !tbaa !9
  %869 = sub nsw i32 %868, 1
  store i32 %869, ptr %84, align 4, !tbaa !9
  %870 = load ptr, ptr %47, align 8, !tbaa !5
  %871 = load i32, ptr %73, align 4, !tbaa !9
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds float, ptr %870, i64 %872
  %874 = load ptr, ptr %48, align 8, !tbaa !5
  %875 = call i32 @slaset_(ptr noundef @.str.9, ptr noundef %89, ptr noundef %84, ptr noundef %86, ptr noundef %86, ptr noundef %873, ptr noundef %874)
  %876 = load ptr, ptr %44, align 8, !tbaa !5
  %877 = load i32, ptr %876, align 4, !tbaa !9
  %878 = sub nsw i32 %877, 1
  store i32 %878, ptr %84, align 4, !tbaa !9
  %879 = load ptr, ptr %45, align 8, !tbaa !5
  %880 = load i32, ptr %71, align 4, !tbaa !9
  %881 = sext i32 %880 to i64
  %882 = getelementptr inbounds float, ptr %879, i64 %881
  %883 = load ptr, ptr %46, align 8, !tbaa !5
  %884 = load ptr, ptr %47, align 8, !tbaa !5
  %885 = load i32, ptr %73, align 4, !tbaa !9
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds float, ptr %884, i64 %886
  %888 = load ptr, ptr %48, align 8, !tbaa !5
  %889 = call i32 @slacpy_(ptr noundef @.str.11, ptr noundef %89, ptr noundef %84, ptr noundef %882, ptr noundef %883, ptr noundef %887, ptr noundef %888)
  %890 = load ptr, ptr %44, align 8, !tbaa !5
  %891 = load i32, ptr %890, align 4, !tbaa !9
  %892 = sub nsw i32 %891, 1
  store i32 %892, ptr %84, align 4, !tbaa !9
  %893 = load ptr, ptr %45, align 8, !tbaa !5
  %894 = load i32, ptr %70, align 4, !tbaa !9
  %895 = shl i32 %894, 1
  %896 = add nsw i32 %895, 1
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds float, ptr %893, i64 %897
  %899 = load ptr, ptr %46, align 8, !tbaa !5
  %900 = load ptr, ptr %49, align 8, !tbaa !5
  %901 = load i32, ptr %75, align 4, !tbaa !9
  %902 = sext i32 %901 to i64
  %903 = getelementptr inbounds float, ptr %900, i64 %902
  %904 = load ptr, ptr %50, align 8, !tbaa !5
  %905 = call i32 @slacpy_(ptr noundef @.str.12, ptr noundef %89, ptr noundef %84, ptr noundef %898, ptr noundef %899, ptr noundef %903, ptr noundef %904)
  %906 = load ptr, ptr %43, align 8, !tbaa !5
  %907 = load i32, ptr %906, align 4, !tbaa !9
  %908 = icmp sge i32 %907, 3
  br i1 %908, label %909, label %922

909:                                              ; preds = %847
  %910 = load i32, ptr %89, align 4, !tbaa !9
  %911 = sub nsw i32 %910, 2
  store i32 %911, ptr %84, align 4, !tbaa !9
  %912 = load ptr, ptr %44, align 8, !tbaa !5
  %913 = load i32, ptr %912, align 4, !tbaa !9
  %914 = sub nsw i32 %913, 2
  store i32 %914, ptr %85, align 4, !tbaa !9
  %915 = load ptr, ptr %49, align 8, !tbaa !5
  %916 = load i32, ptr %74, align 4, !tbaa !9
  %917 = add nsw i32 %916, 3
  %918 = sext i32 %917 to i64
  %919 = getelementptr inbounds float, ptr %915, i64 %918
  %920 = load ptr, ptr %50, align 8, !tbaa !5
  %921 = call i32 @slaset_(ptr noundef @.str.9, ptr noundef %84, ptr noundef %85, ptr noundef %86, ptr noundef %86, ptr noundef %919, ptr noundef %920)
  br label %922

922:                                              ; preds = %909, %847
  %923 = load ptr, ptr %44, align 8, !tbaa !5
  %924 = load i32, ptr %923, align 4, !tbaa !9
  %925 = sub nsw i32 %924, 1
  store i32 %925, ptr %84, align 4, !tbaa !9
  %926 = load ptr, ptr %66, align 8, !tbaa !5
  %927 = load i32, ptr %926, align 4, !tbaa !9
  %928 = load i32, ptr %89, align 4, !tbaa !9
  %929 = sub nsw i32 %927, %928
  store i32 %929, ptr %85, align 4, !tbaa !9
  %930 = load ptr, ptr %36, align 8, !tbaa !5
  %931 = getelementptr inbounds [1 x i8], ptr %88, i64 0, i64 0
  %932 = load ptr, ptr %38, align 8, !tbaa !5
  %933 = load ptr, ptr %41, align 8, !tbaa !5
  %934 = load ptr, ptr %42, align 8, !tbaa !5
  %935 = load ptr, ptr %47, align 8, !tbaa !5
  %936 = load i32, ptr %73, align 4, !tbaa !9
  %937 = sext i32 %936 to i64
  %938 = getelementptr inbounds float, ptr %935, i64 %937
  %939 = load ptr, ptr %48, align 8, !tbaa !5
  %940 = load ptr, ptr %49, align 8, !tbaa !5
  %941 = load i32, ptr %75, align 4, !tbaa !9
  %942 = sext i32 %941 to i64
  %943 = getelementptr inbounds float, ptr %940, i64 %942
  %944 = load ptr, ptr %50, align 8, !tbaa !5
  %945 = load ptr, ptr %51, align 8, !tbaa !5
  %946 = load ptr, ptr %52, align 8, !tbaa !5
  %947 = load ptr, ptr %53, align 8, !tbaa !5
  %948 = load ptr, ptr %54, align 8, !tbaa !5
  %949 = getelementptr inbounds float, ptr %948, i64 1
  %950 = load ptr, ptr %55, align 8, !tbaa !5
  %951 = getelementptr inbounds float, ptr %950, i64 1
  %952 = load ptr, ptr %56, align 8, !tbaa !5
  %953 = load i32, ptr %77, align 4, !tbaa !9
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds float, ptr %952, i64 %954
  %956 = load ptr, ptr %57, align 8, !tbaa !5
  %957 = load ptr, ptr %58, align 8, !tbaa !5
  %958 = getelementptr inbounds float, ptr %957, i64 1
  %959 = load ptr, ptr %59, align 8, !tbaa !5
  %960 = load i32, ptr %79, align 4, !tbaa !9
  %961 = sext i32 %960 to i64
  %962 = getelementptr inbounds float, ptr %959, i64 %961
  %963 = load ptr, ptr %60, align 8, !tbaa !5
  %964 = load ptr, ptr %61, align 8, !tbaa !5
  %965 = load i32, ptr %81, align 4, !tbaa !9
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds float, ptr %964, i64 %966
  %968 = load ptr, ptr %62, align 8, !tbaa !5
  %969 = load ptr, ptr %63, align 8, !tbaa !5
  %970 = load i32, ptr %83, align 4, !tbaa !9
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds float, ptr %969, i64 %971
  %973 = load ptr, ptr %64, align 8, !tbaa !5
  %974 = load ptr, ptr %65, align 8, !tbaa !5
  %975 = load i32, ptr %89, align 4, !tbaa !9
  %976 = add nsw i32 %975, 1
  %977 = sext i32 %976 to i64
  %978 = getelementptr inbounds float, ptr %974, i64 %977
  %979 = load ptr, ptr %67, align 8, !tbaa !5
  %980 = getelementptr inbounds i32, ptr %979, i64 1
  %981 = load ptr, ptr %68, align 8, !tbaa !5
  %982 = call i32 @sgedmd_(ptr noundef %930, ptr noundef %931, ptr noundef %932, ptr noundef %933, ptr noundef %934, ptr noundef %89, ptr noundef %84, ptr noundef %938, ptr noundef %939, ptr noundef %943, ptr noundef %944, ptr noundef %945, ptr noundef %946, ptr noundef %947, ptr noundef %949, ptr noundef %951, ptr noundef %955, ptr noundef %956, ptr noundef %958, ptr noundef %962, ptr noundef %963, ptr noundef %967, ptr noundef %968, ptr noundef %972, ptr noundef %973, ptr noundef %978, ptr noundef %85, ptr noundef %980, ptr noundef %981, ptr noundef %87)
  %983 = load i32, ptr %87, align 4, !tbaa !9
  %984 = icmp eq i32 %983, 2
  br i1 %984, label %988, label %985

985:                                              ; preds = %922
  %986 = load i32, ptr %87, align 4, !tbaa !9
  %987 = icmp eq i32 %986, 3
  br i1 %987, label %988, label %991

988:                                              ; preds = %985, %922
  %989 = load i32, ptr %87, align 4, !tbaa !9
  %990 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 %989, ptr %990, align 4, !tbaa !9
  store i32 0, ptr %35, align 4
  store i32 1, ptr %114, align 4
  br label %1171

991:                                              ; preds = %985
  %992 = load i32, ptr %87, align 4, !tbaa !9
  %993 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 %992, ptr %993, align 4, !tbaa !9
  br label %994

994:                                              ; preds = %991
  %995 = load i32, ptr %99, align 4, !tbaa !9
  %996 = icmp ne i32 %995, 0
  br i1 %996, label %997, label %1048

997:                                              ; preds = %994
  %998 = load ptr, ptr %43, align 8, !tbaa !5
  %999 = load i32, ptr %998, align 4, !tbaa !9
  %1000 = load i32, ptr %89, align 4, !tbaa !9
  %1001 = icmp sgt i32 %999, %1000
  br i1 %1001, label %1002, label %1017

1002:                                             ; preds = %997
  %1003 = load ptr, ptr %43, align 8, !tbaa !5
  %1004 = load i32, ptr %1003, align 4, !tbaa !9
  %1005 = load i32, ptr %89, align 4, !tbaa !9
  %1006 = sub nsw i32 %1004, %1005
  store i32 %1006, ptr %84, align 4, !tbaa !9
  %1007 = load ptr, ptr %53, align 8, !tbaa !5
  %1008 = load ptr, ptr %56, align 8, !tbaa !5
  %1009 = load i32, ptr %89, align 4, !tbaa !9
  %1010 = add nsw i32 %1009, 1
  %1011 = load i32, ptr %76, align 4, !tbaa !9
  %1012 = add nsw i32 %1010, %1011
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds float, ptr %1008, i64 %1013
  %1015 = load ptr, ptr %57, align 8, !tbaa !5
  %1016 = call i32 @slaset_(ptr noundef @.str.12, ptr noundef %84, ptr noundef %1007, ptr noundef %86, ptr noundef %86, ptr noundef %1014, ptr noundef %1015)
  br label %1017

1017:                                             ; preds = %1002, %997
  %1018 = load ptr, ptr %66, align 8, !tbaa !5
  %1019 = load i32, ptr %1018, align 4, !tbaa !9
  %1020 = load i32, ptr %89, align 4, !tbaa !9
  %1021 = load ptr, ptr %44, align 8, !tbaa !5
  %1022 = load i32, ptr %1021, align 4, !tbaa !9
  %1023 = add nsw i32 %1020, %1022
  %1024 = sub nsw i32 %1023, 1
  %1025 = sub nsw i32 %1019, %1024
  store i32 %1025, ptr %84, align 4, !tbaa !9
  %1026 = load ptr, ptr %43, align 8, !tbaa !5
  %1027 = load ptr, ptr %53, align 8, !tbaa !5
  %1028 = load ptr, ptr %45, align 8, !tbaa !5
  %1029 = load i32, ptr %71, align 4, !tbaa !9
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds float, ptr %1028, i64 %1030
  %1032 = load ptr, ptr %46, align 8, !tbaa !5
  %1033 = load ptr, ptr %65, align 8, !tbaa !5
  %1034 = getelementptr inbounds float, ptr %1033, i64 1
  %1035 = load ptr, ptr %56, align 8, !tbaa !5
  %1036 = load i32, ptr %77, align 4, !tbaa !9
  %1037 = sext i32 %1036 to i64
  %1038 = getelementptr inbounds float, ptr %1035, i64 %1037
  %1039 = load ptr, ptr %57, align 8, !tbaa !5
  %1040 = load ptr, ptr %65, align 8, !tbaa !5
  %1041 = load i32, ptr %89, align 4, !tbaa !9
  %1042 = load ptr, ptr %44, align 8, !tbaa !5
  %1043 = load i32, ptr %1042, align 4, !tbaa !9
  %1044 = add nsw i32 %1041, %1043
  %1045 = sext i32 %1044 to i64
  %1046 = getelementptr inbounds float, ptr %1040, i64 %1045
  %1047 = call i32 @sormqr_(ptr noundef @.str.9, ptr noundef @.str.8, ptr noundef %1026, ptr noundef %1027, ptr noundef %89, ptr noundef %1031, ptr noundef %1032, ptr noundef %1034, ptr noundef %1038, ptr noundef %1039, ptr noundef %1046, ptr noundef %84, ptr noundef %87)
  br label %1119

1048:                                             ; preds = %994
  %1049 = load i32, ptr %100, align 4, !tbaa !9
  %1050 = icmp ne i32 %1049, 0
  br i1 %1050, label %1051, label %1118

1051:                                             ; preds = %1048
  %1052 = load ptr, ptr %44, align 8, !tbaa !5
  %1053 = load ptr, ptr %53, align 8, !tbaa !5
  %1054 = load ptr, ptr %47, align 8, !tbaa !5
  %1055 = load i32, ptr %73, align 4, !tbaa !9
  %1056 = sext i32 %1055 to i64
  %1057 = getelementptr inbounds float, ptr %1054, i64 %1056
  %1058 = load ptr, ptr %48, align 8, !tbaa !5
  %1059 = load ptr, ptr %56, align 8, !tbaa !5
  %1060 = load i32, ptr %77, align 4, !tbaa !9
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds float, ptr %1059, i64 %1061
  %1063 = load ptr, ptr %57, align 8, !tbaa !5
  %1064 = call i32 @slacpy_(ptr noundef @.str.12, ptr noundef %1052, ptr noundef %1053, ptr noundef %1057, ptr noundef %1058, ptr noundef %1062, ptr noundef %1063)
  %1065 = load ptr, ptr %43, align 8, !tbaa !5
  %1066 = load i32, ptr %1065, align 4, !tbaa !9
  %1067 = load ptr, ptr %44, align 8, !tbaa !5
  %1068 = load i32, ptr %1067, align 4, !tbaa !9
  %1069 = icmp sgt i32 %1066, %1068
  br i1 %1069, label %1070, label %1087

1070:                                             ; preds = %1051
  %1071 = load ptr, ptr %43, align 8, !tbaa !5
  %1072 = load i32, ptr %1071, align 4, !tbaa !9
  %1073 = load ptr, ptr %44, align 8, !tbaa !5
  %1074 = load i32, ptr %1073, align 4, !tbaa !9
  %1075 = sub nsw i32 %1072, %1074
  store i32 %1075, ptr %84, align 4, !tbaa !9
  %1076 = load ptr, ptr %53, align 8, !tbaa !5
  %1077 = load ptr, ptr %56, align 8, !tbaa !5
  %1078 = load ptr, ptr %44, align 8, !tbaa !5
  %1079 = load i32, ptr %1078, align 4, !tbaa !9
  %1080 = add nsw i32 %1079, 1
  %1081 = load i32, ptr %76, align 4, !tbaa !9
  %1082 = add nsw i32 %1080, %1081
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds float, ptr %1077, i64 %1083
  %1085 = load ptr, ptr %57, align 8, !tbaa !5
  %1086 = call i32 @slaset_(ptr noundef @.str.12, ptr noundef %84, ptr noundef %1076, ptr noundef %86, ptr noundef %86, ptr noundef %1084, ptr noundef %1085)
  br label %1087

1087:                                             ; preds = %1070, %1051
  %1088 = load ptr, ptr %66, align 8, !tbaa !5
  %1089 = load i32, ptr %1088, align 4, !tbaa !9
  %1090 = load i32, ptr %89, align 4, !tbaa !9
  %1091 = load ptr, ptr %44, align 8, !tbaa !5
  %1092 = load i32, ptr %1091, align 4, !tbaa !9
  %1093 = add nsw i32 %1090, %1092
  %1094 = sub nsw i32 %1093, 1
  %1095 = sub nsw i32 %1089, %1094
  store i32 %1095, ptr %84, align 4, !tbaa !9
  %1096 = load ptr, ptr %43, align 8, !tbaa !5
  %1097 = load ptr, ptr %53, align 8, !tbaa !5
  %1098 = load ptr, ptr %45, align 8, !tbaa !5
  %1099 = load i32, ptr %71, align 4, !tbaa !9
  %1100 = sext i32 %1099 to i64
  %1101 = getelementptr inbounds float, ptr %1098, i64 %1100
  %1102 = load ptr, ptr %46, align 8, !tbaa !5
  %1103 = load ptr, ptr %65, align 8, !tbaa !5
  %1104 = getelementptr inbounds float, ptr %1103, i64 1
  %1105 = load ptr, ptr %56, align 8, !tbaa !5
  %1106 = load i32, ptr %77, align 4, !tbaa !9
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds float, ptr %1105, i64 %1107
  %1109 = load ptr, ptr %57, align 8, !tbaa !5
  %1110 = load ptr, ptr %65, align 8, !tbaa !5
  %1111 = load i32, ptr %89, align 4, !tbaa !9
  %1112 = load ptr, ptr %44, align 8, !tbaa !5
  %1113 = load i32, ptr %1112, align 4, !tbaa !9
  %1114 = add nsw i32 %1111, %1113
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds float, ptr %1110, i64 %1115
  %1117 = call i32 @sormqr_(ptr noundef @.str.9, ptr noundef @.str.8, ptr noundef %1096, ptr noundef %1097, ptr noundef %89, ptr noundef %1101, ptr noundef %1102, ptr noundef %1104, ptr noundef %1108, ptr noundef %1109, ptr noundef %1116, ptr noundef %84, ptr noundef %87)
  br label %1118

1118:                                             ; preds = %1087, %1048
  br label %1119

1119:                                             ; preds = %1118, %1017
  %1120 = load i32, ptr %111, align 4, !tbaa !9
  %1121 = icmp ne i32 %1120, 0
  br i1 %1121, label %1122, label %1142

1122:                                             ; preds = %1119
  %1123 = load ptr, ptr %44, align 8, !tbaa !5
  %1124 = load ptr, ptr %49, align 8, !tbaa !5
  %1125 = load i32, ptr %75, align 4, !tbaa !9
  %1126 = sext i32 %1125 to i64
  %1127 = getelementptr inbounds float, ptr %1124, i64 %1126
  %1128 = load ptr, ptr %50, align 8, !tbaa !5
  %1129 = call i32 @slaset_(ptr noundef @.str.12, ptr noundef %89, ptr noundef %1123, ptr noundef %86, ptr noundef %86, ptr noundef %1127, ptr noundef %1128)
  %1130 = load ptr, ptr %44, align 8, !tbaa !5
  %1131 = load ptr, ptr %45, align 8, !tbaa !5
  %1132 = load i32, ptr %71, align 4, !tbaa !9
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds float, ptr %1131, i64 %1133
  %1135 = load ptr, ptr %46, align 8, !tbaa !5
  %1136 = load ptr, ptr %49, align 8, !tbaa !5
  %1137 = load i32, ptr %75, align 4, !tbaa !9
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds float, ptr %1136, i64 %1138
  %1140 = load ptr, ptr %50, align 8, !tbaa !5
  %1141 = call i32 @slacpy_(ptr noundef @.str.11, ptr noundef %89, ptr noundef %1130, ptr noundef %1134, ptr noundef %1135, ptr noundef %1139, ptr noundef %1140)
  br label %1142

1142:                                             ; preds = %1122, %1119
  %1143 = load i32, ptr %90, align 4, !tbaa !9
  %1144 = icmp ne i32 %1143, 0
  br i1 %1144, label %1145, label %1170

1145:                                             ; preds = %1142
  %1146 = load ptr, ptr %66, align 8, !tbaa !5
  %1147 = load i32, ptr %1146, align 4, !tbaa !9
  %1148 = load i32, ptr %89, align 4, !tbaa !9
  %1149 = load ptr, ptr %44, align 8, !tbaa !5
  %1150 = load i32, ptr %1149, align 4, !tbaa !9
  %1151 = add nsw i32 %1148, %1150
  %1152 = sub nsw i32 %1151, 1
  %1153 = sub nsw i32 %1147, %1152
  store i32 %1153, ptr %84, align 4, !tbaa !9
  %1154 = load ptr, ptr %43, align 8, !tbaa !5
  %1155 = load ptr, ptr %45, align 8, !tbaa !5
  %1156 = load i32, ptr %71, align 4, !tbaa !9
  %1157 = sext i32 %1156 to i64
  %1158 = getelementptr inbounds float, ptr %1155, i64 %1157
  %1159 = load ptr, ptr %46, align 8, !tbaa !5
  %1160 = load ptr, ptr %65, align 8, !tbaa !5
  %1161 = getelementptr inbounds float, ptr %1160, i64 1
  %1162 = load ptr, ptr %65, align 8, !tbaa !5
  %1163 = load i32, ptr %89, align 4, !tbaa !9
  %1164 = load ptr, ptr %44, align 8, !tbaa !5
  %1165 = load i32, ptr %1164, align 4, !tbaa !9
  %1166 = add nsw i32 %1163, %1165
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds float, ptr %1162, i64 %1167
  %1169 = call i32 @sorgqr_(ptr noundef %1154, ptr noundef %89, ptr noundef %89, ptr noundef %1158, ptr noundef %1159, ptr noundef %1161, ptr noundef %1168, ptr noundef %84, ptr noundef %87)
  br label %1170

1170:                                             ; preds = %1145, %1142
  store i32 0, ptr %35, align 4
  store i32 1, ptr %114, align 4
  br label %1171

1171:                                             ; preds = %1170, %988, %834, %826, %500
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #3
  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
  %1172 = load i32, ptr %35, align 4
  ret i32 %1172
}

; 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 i32 @sgeqrf_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @sgedmd_(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @sormqr_(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 i32 @sorgqr_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

declare i32 @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 }

!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}


; 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 [2 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 [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @sgedmdq_(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, ptr noundef %27, ptr noundef %28, ptr noundef %29, ptr nocapture noundef readonly %30, ptr noundef %31, ptr noundef %32, ptr nocapture noundef %33) local_unnamed_addr #0 {
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca float, align 4
  %38 = alloca i32, align 4
  %39 = alloca [1 x i8], align 1
  %40 = alloca i32, align 4
  %41 = alloca [2 x float], align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #4
  %42 = load i32, ptr %10, align 4, !tbaa !5
  %narrow = xor i32 %42, -1
  %43 = sext i32 %narrow to i64
  %44 = getelementptr inbounds float, ptr %9, i64 %43
  %45 = load i32, ptr %14, align 4, !tbaa !5
  %narrow451 = xor i32 %45, -1
  %46 = sext i32 %narrow451 to i64
  %47 = getelementptr inbounds float, ptr %13, i64 %46
  %48 = load i32, ptr %21, align 4, !tbaa !5
  %narrow452 = xor i32 %48, -1
  %49 = sext i32 %narrow452 to i64
  %50 = getelementptr inbounds float, ptr %20, i64 %49
  %51 = getelementptr inbounds i8, ptr %29, i64 -4
  store float 0.000000e+00, ptr %37, align 4, !tbaa !9
  %52 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #4
  %53 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %.not = icmp eq i32 %53, 0
  br i1 %.not, label %54, label %57

54:                                               ; preds = %34
  %55 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #4
  %56 = icmp ne i32 %55, 0
  br label %57

57:                                               ; preds = %54, %34
  %58 = phi i1 [ true, %34 ], [ %56, %54 ]
  %59 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #4
  %60 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #4
  %61 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.5) #4
  %62 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.6) #4
  %63 = tail call i32 @lsame_(ptr noundef %5, ptr noundef nonnull @.str) #4
  %64 = tail call i32 @lsame_(ptr noundef %5, ptr noundef nonnull @.str.7) #4
  %65 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.6) #4
  %66 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str) #4
  %67 = load i32, ptr %7, align 4, !tbaa !5
  %68 = load i32, ptr %8, align 4, !tbaa !5
  %. = tail call i32 @llvm.smin.i32(i32 %67, i32 %68)
  store i32 %., ptr %40, align 4, !tbaa !5
  store i32 0, ptr %33, align 4, !tbaa !5
  %69 = load i32, ptr %30, align 4, !tbaa !5
  %70 = icmp eq i32 %69, -1
  br i1 %70, label %74, label %71

71:                                               ; preds = %57
  %72 = load i32, ptr %32, align 4, !tbaa !5
  %73 = icmp eq i32 %72, -1
  br label %74

74:                                               ; preds = %71, %57
  %75 = phi i1 [ true, %57 ], [ %73, %71 ]
  %76 = icmp ne i32 %59, 0
  %or.cond = select i1 %58, i1 true, i1 %76
  br i1 %or.cond, label %79, label %77

77:                                               ; preds = %74
  %78 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.8) #4
  %.not430 = icmp eq i32 %78, 0
  br i1 %.not430, label %.thread, label %79

79:                                               ; preds = %77, %74
  %80 = icmp ne i32 %60, 0
  %81 = icmp ne i32 %61, 0
  %or.cond3 = select i1 %80, i1 true, i1 %81
  %82 = icmp ne i32 %62, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %82
  br i1 %or.cond5, label %85, label %83

83:                                               ; preds = %79
  %84 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.8) #4
  %.not431 = icmp eq i32 %84, 0
  br i1 %.not431, label %.thread, label %85

85:                                               ; preds = %83, %79
  %.not432 = icmp eq i32 %52, 0
  br i1 %.not432, label %86, label %.critedge

86:                                               ; preds = %85
  %87 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.8) #4
  %.not433 = icmp eq i32 %87, 0
  br i1 %.not433, label %.thread, label %89

.critedge:                                        ; preds = %85
  %88 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.8) #4
  %.not434 = icmp eq i32 %88, 0
  br i1 %.not434, label %89, label %.thread

89:                                               ; preds = %86, %.critedge
  %.not435 = icmp eq i32 %65, 0
  br i1 %.not435, label %90, label %92

90:                                               ; preds = %89
  %91 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.8) #4
  %.not436 = icmp eq i32 %91, 0
  br i1 %.not436, label %.thread, label %92

92:                                               ; preds = %90, %89
  %.not437 = icmp eq i32 %66, 0
  br i1 %.not437, label %93, label %95

93:                                               ; preds = %92
  %94 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.8) #4
  %.not438 = icmp eq i32 %94, 0
  br i1 %.not438, label %.thread, label %95

95:                                               ; preds = %93, %92
  %96 = icmp ne i32 %63, 0
  %97 = icmp ne i32 %64, 0
  %or.cond7 = select i1 %96, i1 true, i1 %97
  br i1 %or.cond7, label %100, label %98

98:                                               ; preds = %95
  %99 = tail call i32 @lsame_(ptr noundef %5, ptr noundef nonnull @.str.8) #4
  %.not439 = icmp eq i32 %99, 0
  br i1 %.not439, label %.thread, label %100

100:                                              ; preds = %98, %95
  %101 = load i32, ptr %6, align 4, !tbaa !5
  %.off = add i32 %101, -1
  %switch = icmp ult i32 %.off, 4
  br i1 %switch, label %102, label %.thread

102:                                              ; preds = %100
  %103 = load i32, ptr %7, align 4, !tbaa !5
  %104 = icmp slt i32 %103, 0
  br i1 %104, label %.thread, label %105

105:                                              ; preds = %102
  %106 = load i32, ptr %8, align 4, !tbaa !5
  %107 = icmp slt i32 %106, 0
  %108 = add nuw nsw i32 %103, 1
  %109 = icmp sgt i32 %106, %108
  %or.cond456 = select i1 %107, i1 true, i1 %109
  br i1 %or.cond456, label %.thread, label %110

110:                                              ; preds = %105
  %111 = load i32, ptr %10, align 4, !tbaa !5
  %112 = icmp slt i32 %111, %103
  br i1 %112, label %.thread, label %113

113:                                              ; preds = %110
  %114 = load i32, ptr %12, align 4, !tbaa !5
  %115 = icmp slt i32 %114, %.
  br i1 %115, label %.thread, label %116

116:                                              ; preds = %113
  %117 = load i32, ptr %14, align 4, !tbaa !5
  %118 = icmp slt i32 %117, %.
  br i1 %118, label %.thread, label %119

119:                                              ; preds = %116
  %120 = load i32, ptr %15, align 4, !tbaa !5
  %switch463 = icmp ugt i32 %120, -3
  br i1 %switch463, label %123, label %121

121:                                              ; preds = %119
  %122 = icmp slt i32 %120, 1
  %.not440 = icmp sgt i32 %120, %106
  %or.cond457 = or i1 %122, %.not440
  br i1 %or.cond457, label %.thread, label %123

123:                                              ; preds = %119, %121
  %124 = load float, ptr %16, align 4, !tbaa !9
  %125 = fcmp uge float %124, 0.000000e+00
  %126 = fcmp ult float %124, 1.000000e+00
  %or.cond458 = and i1 %126, %125
  br i1 %or.cond458, label %127, label %.thread

127:                                              ; preds = %123
  %128 = load i32, ptr %21, align 4, !tbaa !5
  %129 = icmp slt i32 %128, %103
  br i1 %129, label %.thread, label %130

130:                                              ; preds = %127
  br i1 %or.cond7, label %131, label %134

131:                                              ; preds = %130
  %132 = load i32, ptr %24, align 4, !tbaa !5
  %133 = icmp slt i32 %132, %.
  br i1 %133, label %.thread, label %134

134:                                              ; preds = %130, %131
  %135 = load i32, ptr %26, align 4, !tbaa !5
  %136 = add nsw i32 %106, -1
  %137 = icmp slt i32 %135, %136
  br i1 %137, label %.thread, label %138

138:                                              ; preds = %134
  %139 = load i32, ptr %28, align 4, !tbaa !5
  %140 = icmp slt i32 %139, %136
  br i1 %140, label %.thread, label %143

.thread:                                          ; preds = %138, %134, %131, %127, %123, %121, %116, %113, %110, %105, %102, %100, %98, %93, %90, %86, %.critedge, %83, %77
  %.sink = phi i32 [ -1, %77 ], [ -2, %83 ], [ -3, %.critedge ], [ -3, %86 ], [ -4, %90 ], [ -5, %93 ], [ -6, %98 ], [ -7, %100 ], [ -8, %102 ], [ -9, %105 ], [ -11, %110 ], [ -13, %113 ], [ -15, %116 ], [ -16, %121 ], [ -17, %123 ], [ -22, %127 ], [ -25, %131 ], [ -27, %134 ], [ -29, %138 ]
  store i32 %.sink, ptr %33, align 4, !tbaa !5
  %141 = icmp ne i32 %60, 0
  %142 = icmp ne i32 %61, 0
  %or.cond11465 = select i1 %141, i1 true, i1 %142
  %.459466 = select i1 %or.cond11465, i8 86, i8 78
  store i8 %.459466, ptr %39, align 1, !tbaa !11
  br label %.thread484

143:                                              ; preds = %138
  %.pr = load i32, ptr %33, align 4, !tbaa !5
  %.459 = select i1 %or.cond3, i8 86, i8 78
  store i8 %.459, ptr %39, align 1, !tbaa !11
  %144 = icmp eq i32 %.pr, 0
  br i1 %144, label %145, label %.thread484

145:                                              ; preds = %143
  %switch464 = icmp ult i32 %106, 2
  br i1 %switch464, label %146, label %150

146:                                              ; preds = %145
  br i1 %75, label %147, label %148

147:                                              ; preds = %146
  store i32 1, ptr %31, align 4, !tbaa !5
  store <2 x float> <float 2.000000e+00, float 2.000000e+00>, ptr %29, align 4, !tbaa !9
  br label %149

148:                                              ; preds = %146
  store i32 0, ptr %17, align 4, !tbaa !5
  br label %149

149:                                              ; preds = %148, %147
  store i32 1, ptr %33, align 4, !tbaa !5
  br label %320

150:                                              ; preds = %145
  %151 = tail call i32 @llvm.umin.i32(i32 %103, i32 %106)
  %152 = add nuw nsw i32 %151, %106
  br i1 %75, label %153, label %160

153:                                              ; preds = %150
  %154 = call i32 @sgeqrf_(ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %29, ptr noundef nonnull %41, ptr noundef nonnull @c_n1, ptr noundef nonnull %38) #4
  %155 = load float, ptr %41, align 4, !tbaa !9
  %156 = fptosi float %155 to i32
  %157 = load i32, ptr %7, align 4, !tbaa !5
  %158 = load i32, ptr %8, align 4, !tbaa !5
  %.460 = call i32 @llvm.smin.i32(i32 %157, i32 %158)
  %159 = add nsw i32 %.460, %156
  %.pre483 = add nsw i32 %158, -1
  br label %160

160:                                              ; preds = %153, %150
  %.pre-phi = phi i32 [ %.pre483, %153 ], [ %136, %150 ]
  %.0403 = phi i32 [ %159, %153 ], [ undef, %150 ]
  store i32 %.pre-phi, ptr %35, align 4, !tbaa !5
  %161 = call i32 @sgedmd_(ptr noundef %0, ptr noundef nonnull %39, ptr noundef %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %40, ptr noundef nonnull %35, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef nonnull %21, ptr noundef %22, ptr noundef %23, ptr noundef nonnull %24, ptr noundef %25, ptr noundef nonnull %26, ptr noundef %27, ptr noundef nonnull %28, ptr noundef %29, ptr noundef nonnull @c_n1, ptr noundef %31, ptr noundef %32, ptr noundef nonnull %38) #4
  %162 = load float, ptr %29, align 4, !tbaa !9
  %163 = fptosi float %162 to i32
  %164 = load i32, ptr %40, align 4, !tbaa !5
  %165 = add nsw i32 %164, %163
  %166 = call i32 @llvm.smax.i32(i32 %152, i32 %165)
  %167 = load i32, ptr %31, align 4, !tbaa !5
  br i1 %75, label %168, label %174

168:                                              ; preds = %160
  %169 = getelementptr inbounds i8, ptr %29, i64 4
  %170 = load float, ptr %169, align 4, !tbaa !9
  %171 = fptosi float %170 to i32
  %172 = add nsw i32 %164, %171
  store i32 %172, ptr %36, align 4, !tbaa !5
  %173 = call i32 @llvm.smax.i32(i32 %.0403, i32 %172)
  br label %174

174:                                              ; preds = %168, %160
  %.1 = phi i32 [ %173, %168 ], [ %.0403, %160 ]
  br i1 %or.cond3, label %175, label %191

175:                                              ; preds = %174
  %176 = load i32, ptr %8, align 4, !tbaa !5
  %spec.select461 = call i32 @llvm.smax.i32(i32 %176, i32 1)
  store i32 %166, ptr %35, align 4, !tbaa !5
  %177 = add i32 %164, -1
  %178 = add i32 %177, %176
  %179 = add nsw i32 %178, %spec.select461
  %180 = call i32 @llvm.smax.i32(i32 %166, i32 %179)
  br i1 %75, label %181, label %191

181:                                              ; preds = %175
  %182 = call i32 @sormqr_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.8, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %40, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %29, ptr noundef %20, ptr noundef nonnull %21, ptr noundef nonnull %29, ptr noundef nonnull @c_n1, ptr noundef nonnull %38) #4
  %183 = load float, ptr %29, align 4, !tbaa !9
  %184 = fptosi float %183 to i32
  %185 = load i32, ptr %40, align 4, !tbaa !5
  %186 = load i32, ptr %8, align 4, !tbaa !5
  %187 = add i32 %184, -1
  %188 = add i32 %187, %185
  %189 = add i32 %188, %186
  store i32 %189, ptr %36, align 4, !tbaa !5
  %190 = call i32 @llvm.smax.i32(i32 %.1, i32 %189)
  br label %191

191:                                              ; preds = %175, %181, %174
  %192 = phi i32 [ %185, %181 ], [ %164, %175 ], [ %164, %174 ]
  %.0404 = phi i32 [ %180, %181 ], [ %180, %175 ], [ %166, %174 ]
  %.2 = phi i32 [ %190, %181 ], [ %.1, %175 ], [ %.1, %174 ]
  br i1 %.not435, label %208, label %193

193:                                              ; preds = %191
  %194 = load i32, ptr %8, align 4, !tbaa !5
  store i32 %.0404, ptr %35, align 4, !tbaa !5
  %factor = shl i32 %194, 1
  %195 = add i32 %factor, -1
  %196 = add i32 %195, %192
  %197 = call i32 @llvm.smax.i32(i32 %.0404, i32 %196)
  br i1 %75, label %198, label %208

198:                                              ; preds = %193
  %199 = call i32 @sorgqr_(ptr noundef nonnull %7, ptr noundef nonnull %40, ptr noundef nonnull %40, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %29, ptr noundef nonnull %29, ptr noundef nonnull @c_n1, ptr noundef nonnull %38) #4
  %200 = load float, ptr %29, align 4, !tbaa !9
  %201 = fptosi float %200 to i32
  %202 = load i32, ptr %40, align 4, !tbaa !5
  %203 = load i32, ptr %8, align 4, !tbaa !5
  %204 = add i32 %201, -1
  %205 = add i32 %204, %202
  %206 = add i32 %205, %203
  %207 = call i32 @llvm.smax.i32(i32 %.2, i32 %206)
  br label %208

208:                                              ; preds = %193, %198, %191
  %209 = phi i32 [ %202, %198 ], [ %192, %193 ], [ %192, %191 ]
  %.1405 = phi i32 [ %197, %198 ], [ %197, %193 ], [ %.0404, %191 ]
  %.3 = phi i32 [ %207, %198 ], [ %.2, %193 ], [ %.2, %191 ]
  %210 = call i32 @llvm.smax.i32(i32 %167, i32 1)
  %211 = load i32, ptr %30, align 4, !tbaa !5
  %212 = icmp sge i32 %211, %.1405
  %or.cond15 = select i1 %212, i1 true, i1 %75
  br i1 %or.cond15, label %214, label %213

213:                                              ; preds = %208
  store i32 -31, ptr %33, align 4, !tbaa !5
  br label %214

214:                                              ; preds = %213, %208
  %215 = load i32, ptr %32, align 4, !tbaa !5
  %216 = icmp sge i32 %215, %210
  %or.cond17 = select i1 %216, i1 true, i1 %75
  br i1 %or.cond17, label %217, label %.thread470

.thread470:                                       ; preds = %214
  store i32 -33, ptr %33, align 4, !tbaa !5
  br label %.thread484

217:                                              ; preds = %214
  %.pr469.pre = load i32, ptr %33, align 4, !tbaa !5
  %218 = uitofp nneg i32 %.1405 to float
  %219 = sitofp i32 %.3 to float
  %.not450 = icmp eq i32 %.pr469.pre, 0
  br i1 %.not450, label %223, label %.thread484

.thread484:                                       ; preds = %143, %.thread, %.thread470, %217
  %220 = phi i32 [ -33, %.thread470 ], [ %.pr469.pre, %217 ], [ %.pr, %143 ], [ %.sink, %.thread ]
  %221 = sub nsw i32 0, %220
  store i32 %221, ptr %35, align 4, !tbaa !5
  %222 = call i32 @xerbla_(ptr noundef nonnull @.str.10, ptr noundef nonnull %35) #4
  br label %320

223:                                              ; preds = %217
  br i1 %75, label %224, label %226

224:                                              ; preds = %223
  store i32 %210, ptr %31, align 4, !tbaa !5
  store float %218, ptr %29, align 4, !tbaa !9
  %225 = getelementptr inbounds i8, ptr %29, i64 4
  store float %219, ptr %225, align 4, !tbaa !9
  br label %320

226:                                              ; preds = %223
  %227 = load i32, ptr %30, align 4, !tbaa !5
  %228 = sub nsw i32 %227, %209
  store i32 %228, ptr %35, align 4, !tbaa !5
  %229 = sext i32 %209 to i64
  %230 = getelementptr float, ptr %51, i64 %229
  %231 = getelementptr i8, ptr %230, i64 4
  %232 = call i32 @sgeqrf_(ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %29, ptr noundef %231, ptr noundef nonnull %35, ptr noundef nonnull %38) #4
  %233 = load i32, ptr %8, align 4, !tbaa !5
  %234 = add nsw i32 %233, -1
  store i32 %234, ptr %35, align 4, !tbaa !5
  %235 = call i32 @slaset_(ptr noundef nonnull @.str.9, ptr noundef nonnull %40, ptr noundef nonnull %35, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %11, ptr noundef nonnull %12) #4
  %236 = load i32, ptr %8, align 4, !tbaa !5
  %237 = add nsw i32 %236, -1
  store i32 %237, ptr %35, align 4, !tbaa !5
  %238 = call i32 @slacpy_(ptr noundef nonnull @.str.11, ptr noundef nonnull %40, ptr noundef nonnull %35, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12) #4
  %239 = load i32, ptr %8, align 4, !tbaa !5
  %240 = add nsw i32 %239, -1
  store i32 %240, ptr %35, align 4, !tbaa !5
  %241 = shl i32 %42, 1
  %242 = or disjoint i32 %241, 1
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds float, ptr %44, i64 %243
  %245 = call i32 @slacpy_(ptr noundef nonnull @.str.12, ptr noundef nonnull %40, ptr noundef nonnull %35, ptr noundef nonnull %244, ptr noundef nonnull %10, ptr noundef %13, ptr noundef nonnull %14) #4
  %246 = load i32, ptr %7, align 4, !tbaa !5
  %247 = icmp sgt i32 %246, 2
  br i1 %247, label %248, label %257

248:                                              ; preds = %226
  %249 = load i32, ptr %40, align 4, !tbaa !5
  %250 = add nsw i32 %249, -2
  store i32 %250, ptr %35, align 4, !tbaa !5
  %251 = load i32, ptr %8, align 4, !tbaa !5
  %252 = add nsw i32 %251, -2
  store i32 %252, ptr %36, align 4, !tbaa !5
  %253 = sext i32 %45 to i64
  %254 = getelementptr float, ptr %47, i64 %253
  %255 = getelementptr i8, ptr %254, i64 12
  %256 = call i32 @slaset_(ptr noundef nonnull @.str.9, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %255, ptr noundef nonnull %14) #4
  br label %257

257:                                              ; preds = %248, %226
  %258 = load i32, ptr %8, align 4, !tbaa !5
  %259 = add nsw i32 %258, -1
  store i32 %259, ptr %35, align 4, !tbaa !5
  %260 = load i32, ptr %30, align 4, !tbaa !5
  %261 = load i32, ptr %40, align 4, !tbaa !5
  %262 = sub nsw i32 %260, %261
  store i32 %262, ptr %36, align 4, !tbaa !5
  %263 = sext i32 %261 to i64
  %264 = getelementptr float, ptr %51, i64 %263
  %265 = getelementptr i8, ptr %264, i64 4
  %266 = call i32 @sgedmd_(ptr noundef %0, ptr noundef nonnull %39, ptr noundef %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %40, ptr noundef nonnull %35, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef nonnull %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef nonnull %26, ptr noundef %27, ptr noundef nonnull %28, ptr noundef %265, ptr noundef nonnull %36, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %38) #4
  %267 = load i32, ptr %38, align 4
  %268 = and i32 %267, -2
  %or.cond19 = icmp eq i32 %268, 2
  store i32 %267, ptr %33, align 4, !tbaa !5
  br i1 %or.cond19, label %320, label %269

269:                                              ; preds = %257
  br i1 %80, label %270, label %285

270:                                              ; preds = %269
  %271 = load i32, ptr %7, align 4, !tbaa !5
  %272 = load i32, ptr %40, align 4, !tbaa !5
  %273 = icmp sgt i32 %271, %272
  br i1 %273, label %274, label %281

274:                                              ; preds = %270
  %275 = sub nsw i32 %271, %272
  store i32 %275, ptr %35, align 4, !tbaa !5
  %276 = add i32 %48, 1
  %277 = add i32 %276, %272
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds float, ptr %50, i64 %278
  %280 = call i32 @slaset_(ptr noundef nonnull @.str.12, ptr noundef nonnull %35, ptr noundef %17, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %279, ptr noundef nonnull %21) #4
  %.pre482 = load i32, ptr %40, align 4, !tbaa !5
  br label %281

281:                                              ; preds = %274, %270
  %282 = phi i32 [ %.pre482, %274 ], [ %272, %270 ]
  %283 = load i32, ptr %8, align 4, !tbaa !5
  %284 = add nsw i32 %283, %282
  br label %.sink.split

285:                                              ; preds = %269
  br i1 %81, label %286, label %306

286:                                              ; preds = %285
  %287 = call i32 @slacpy_(ptr noundef nonnull @.str.12, ptr noundef nonnull %8, ptr noundef %17, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %20, ptr noundef nonnull %21) #4
  %288 = load i32, ptr %7, align 4, !tbaa !5
  %289 = load i32, ptr %8, align 4, !tbaa !5
  %290 = icmp sgt i32 %288, %289
  br i1 %290, label %291, label %298

291:                                              ; preds = %286
  %292 = sub nsw i32 %288, %289
  store i32 %292, ptr %35, align 4, !tbaa !5
  %293 = add i32 %48, 1
  %294 = add i32 %293, %289
  %295 = sext i32 %294 to i64
  %296 = getelementptr inbounds float, ptr %50, i64 %295
  %297 = call i32 @slaset_(ptr noundef nonnull @.str.12, ptr noundef nonnull %35, ptr noundef %17, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %296, ptr noundef nonnull %21) #4
  %.pre = load i32, ptr %8, align 4, !tbaa !5
  br label %298

298:                                              ; preds = %291, %286
  %299 = phi i32 [ %.pre, %291 ], [ %289, %286 ]
  %300 = load i32, ptr %40, align 4, !tbaa !5
  %301 = add nsw i32 %299, %300
  br label %.sink.split

.sink.split:                                      ; preds = %281, %298
  %.sink495 = phi i32 [ %284, %281 ], [ %301, %298 ]
  %.sink496 = load i32, ptr %30, align 4, !tbaa !5
  %.neg477 = add i32 %.sink496, 1
  %302 = sub i32 %.neg477, %.sink495
  store i32 %302, ptr %35, align 4, !tbaa !5
  %303 = sext i32 %.sink495 to i64
  %304 = getelementptr inbounds float, ptr %51, i64 %303
  %305 = call i32 @sormqr_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.8, ptr noundef nonnull %7, ptr noundef %17, ptr noundef nonnull %40, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %29, ptr noundef %20, ptr noundef nonnull %21, ptr noundef nonnull %304, ptr noundef nonnull %35, ptr noundef nonnull %38) #4
  br label %306

306:                                              ; preds = %.sink.split, %285
  %.not453 = icmp eq i32 %66, 0
  br i1 %.not453, label %310, label %307

307:                                              ; preds = %306
  %308 = call i32 @slaset_(ptr noundef nonnull @.str.12, ptr noundef nonnull %40, ptr noundef nonnull %8, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %13, ptr noundef nonnull %14) #4
  %309 = call i32 @slacpy_(ptr noundef nonnull @.str.11, ptr noundef nonnull %40, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %13, ptr noundef nonnull %14) #4
  br label %310

310:                                              ; preds = %307, %306
  %.not454 = icmp eq i32 %65, 0
  br i1 %.not454, label %320, label %311

311:                                              ; preds = %310
  %312 = load i32, ptr %30, align 4, !tbaa !5
  %313 = load i32, ptr %40, align 4, !tbaa !5
  %314 = load i32, ptr %8, align 4, !tbaa !5
  %315 = add nsw i32 %314, %313
  %.neg479 = add i32 %312, 1
  %316 = sub i32 %.neg479, %315
  store i32 %316, ptr %35, align 4, !tbaa !5
  %317 = sext i32 %315 to i64
  %318 = getelementptr inbounds float, ptr %51, i64 %317
  %319 = call i32 @sorgqr_(ptr noundef nonnull %7, ptr noundef nonnull %40, ptr noundef nonnull %40, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %29, ptr noundef nonnull %318, ptr noundef nonnull %35, ptr noundef nonnull %38) #4
  br label %320

320:                                              ; preds = %257, %310, %311, %224, %.thread484, %149
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #4
  ret i32 0
}

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

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

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

declare i32 @sgedmd_(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, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @sormqr_(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 i32 @sorgqr_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.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 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!7, !7, i64 0}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass