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

; 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 @dgedmdq_(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 double, align 8
  %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 double], align 16
  %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 double, align 8
  %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 8, 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 16, 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 8, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double 0.000000e+00, ptr %86, align 8, !tbaa !11
  store double 1.000000e+00, ptr %113, align 8, !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 double, ptr %399, align 8, !tbaa !11
  %401 = load double, ptr %86, align 8, !tbaa !11
  %402 = fcmp olt double %400, %401
  br i1 %402, label %408, label %403

403:                                              ; preds = %398
  %404 = load ptr, ptr %52, align 8, !tbaa !5
  %405 = load double, ptr %404, align 8, !tbaa !11
  %406 = load double, ptr %113, align 8, !tbaa !11
  %407 = fcmp oge double %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 %475, label %469

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

472:                                              ; preds = %469
  %473 = load i32, ptr %112, align 4, !tbaa !9
  %474 = icmp ne i32 %473, 0
  br i1 %474, label %475, label %477

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

477:                                              ; preds = %472
  %478 = getelementptr inbounds [1 x i8], ptr %88, i64 0, i64 0
  store i8 78, ptr %478, align 1, !tbaa !13
  br label %479

479:                                              ; preds = %477, %475
  %480 = load ptr, ptr %69, align 8, !tbaa !5
  %481 = load i32, ptr %480, align 4, !tbaa !9
  %482 = icmp eq i32 %481, 0
  br i1 %482, label %483, label %813

483:                                              ; preds = %479
  %484 = load ptr, ptr %44, align 8, !tbaa !5
  %485 = load i32, ptr %484, align 4, !tbaa !9
  %486 = icmp eq i32 %485, 0
  br i1 %486, label %491, label %487

487:                                              ; preds = %483
  %488 = load ptr, ptr %44, align 8, !tbaa !5
  %489 = load i32, ptr %488, align 4, !tbaa !9
  %490 = icmp eq i32 %489, 1
  br i1 %490, label %491, label %505

491:                                              ; preds = %487, %483
  %492 = load i32, ptr %109, align 4, !tbaa !9
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %494, label %501

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

501:                                              ; preds = %491
  %502 = load ptr, ptr %53, align 8, !tbaa !5
  store i32 0, ptr %502, align 4, !tbaa !9
  br label %503

503:                                              ; preds = %501, %494
  %504 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 1, ptr %504, align 4, !tbaa !9
  store i32 0, ptr %35, align 4
  store i32 1, ptr %114, align 4
  br label %1162

505:                                              ; preds = %487
  %506 = load ptr, ptr %44, align 8, !tbaa !5
  %507 = load i32, ptr %506, align 4, !tbaa !9
  %508 = icmp sge i32 1, %507
  br i1 %508, label %509, label %510

509:                                              ; preds = %505
  br label %513

510:                                              ; preds = %505
  %511 = load ptr, ptr %44, align 8, !tbaa !5
  %512 = load i32, ptr %511, align 4, !tbaa !9
  br label %513

513:                                              ; preds = %510, %509
  %514 = phi i32 [ 1, %509 ], [ %512, %510 ]
  store i32 %514, ptr %91, align 4, !tbaa !9
  %515 = load i32, ptr %89, align 4, !tbaa !9
  %516 = load i32, ptr %91, align 4, !tbaa !9
  %517 = add nsw i32 %515, %516
  store i32 %517, ptr %103, align 4, !tbaa !9
  %518 = load i32, ptr %109, align 4, !tbaa !9
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %520, label %550

520:                                              ; preds = %513
  %521 = load ptr, ptr %43, align 8, !tbaa !5
  %522 = load ptr, ptr %44, align 8, !tbaa !5
  %523 = load ptr, ptr %45, align 8, !tbaa !5
  %524 = load i32, ptr %71, align 4, !tbaa !9
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds double, ptr %523, i64 %525
  %527 = load ptr, ptr %46, align 8, !tbaa !5
  %528 = load ptr, ptr %65, align 8, !tbaa !5
  %529 = getelementptr inbounds double, ptr %528, i64 1
  %530 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 0
  %531 = call i32 @dgeqrf_(ptr noundef %521, ptr noundef %522, ptr noundef %526, ptr noundef %527, ptr noundef %529, ptr noundef %530, ptr noundef @c_n1, ptr noundef %87)
  %532 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 0
  %533 = load double, ptr %532, align 16, !tbaa !11
  %534 = fptosi double %533 to i32
  store i32 %534, ptr %92, align 4, !tbaa !9
  %535 = load ptr, ptr %43, align 8, !tbaa !5
  %536 = load i32, ptr %535, align 4, !tbaa !9
  %537 = load ptr, ptr %44, align 8, !tbaa !5
  %538 = load i32, ptr %537, align 4, !tbaa !9
  %539 = icmp sle i32 %536, %538
  br i1 %539, label %540, label %543

540:                                              ; preds = %520
  %541 = load ptr, ptr %43, align 8, !tbaa !5
  %542 = load i32, ptr %541, align 4, !tbaa !9
  br label %546

543:                                              ; preds = %520
  %544 = load ptr, ptr %44, align 8, !tbaa !5
  %545 = load i32, ptr %544, align 4, !tbaa !9
  br label %546

546:                                              ; preds = %543, %540
  %547 = phi i32 [ %542, %540 ], [ %545, %543 ]
  %548 = load i32, ptr %92, align 4, !tbaa !9
  %549 = add nsw i32 %547, %548
  store i32 %549, ptr %105, align 4, !tbaa !9
  br label %550

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

615:                                              ; preds = %550
  %616 = load i32, ptr %84, align 4, !tbaa !9
  br label %619

617:                                              ; preds = %550
  %618 = load i32, ptr %85, align 4, !tbaa !9
  br label %619

619:                                              ; preds = %617, %615
  %620 = phi i32 [ %616, %615 ], [ %618, %617 ]
  store i32 %620, ptr %103, align 4, !tbaa !9
  %621 = load ptr, ptr %67, align 8, !tbaa !5
  %622 = getelementptr inbounds i32, ptr %621, i64 1
  %623 = load i32, ptr %622, align 4, !tbaa !9
  store i32 %623, ptr %98, align 4, !tbaa !9
  %624 = load i32, ptr %109, align 4, !tbaa !9
  %625 = icmp ne i32 %624, 0
  br i1 %625, label %626, label %644

626:                                              ; preds = %619
  %627 = load ptr, ptr %65, align 8, !tbaa !5
  %628 = getelementptr inbounds double, ptr %627, i64 2
  %629 = load double, ptr %628, align 8, !tbaa !11
  %630 = fptosi double %629 to i32
  store i32 %630, ptr %95, align 4, !tbaa !9
  %631 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %631, ptr %84, align 4, !tbaa !9
  %632 = load i32, ptr %89, align 4, !tbaa !9
  %633 = load i32, ptr %95, align 4, !tbaa !9
  %634 = add nsw i32 %632, %633
  store i32 %634, ptr %85, align 4, !tbaa !9
  %635 = load i32, ptr %84, align 4, !tbaa !9
  %636 = load i32, ptr %85, align 4, !tbaa !9
  %637 = icmp sge i32 %635, %636
  br i1 %637, label %638, label %640

638:                                              ; preds = %626
  %639 = load i32, ptr %84, align 4, !tbaa !9
  br label %642

640:                                              ; preds = %626
  %641 = load i32, ptr %85, align 4, !tbaa !9
  br label %642

642:                                              ; preds = %640, %638
  %643 = phi i32 [ %639, %638 ], [ %641, %640 ]
  store i32 %643, ptr %105, align 4, !tbaa !9
  br label %644

644:                                              ; preds = %642, %619
  %645 = load i32, ptr %99, align 4, !tbaa !9
  %646 = icmp ne i32 %645, 0
  br i1 %646, label %650, label %647

647:                                              ; preds = %644
  %648 = load i32, ptr %100, align 4, !tbaa !9
  %649 = icmp ne i32 %648, 0
  br i1 %649, label %650, label %719

650:                                              ; preds = %647, %644
  %651 = load ptr, ptr %44, align 8, !tbaa !5
  %652 = load i32, ptr %651, align 4, !tbaa !9
  %653 = icmp sge i32 1, %652
  br i1 %653, label %654, label %655

654:                                              ; preds = %650
  br label %658

655:                                              ; preds = %650
  %656 = load ptr, ptr %44, align 8, !tbaa !5
  %657 = load i32, ptr %656, align 4, !tbaa !9
  br label %658

658:                                              ; preds = %655, %654
  %659 = phi i32 [ 1, %654 ], [ %657, %655 ]
  store i32 %659, ptr %107, align 4, !tbaa !9
  %660 = load i32, ptr %103, align 4, !tbaa !9
  store i32 %660, ptr %84, align 4, !tbaa !9
  %661 = load i32, ptr %89, align 4, !tbaa !9
  %662 = load ptr, ptr %44, align 8, !tbaa !5
  %663 = load i32, ptr %662, align 4, !tbaa !9
  %664 = add nsw i32 %661, %663
  %665 = sub nsw i32 %664, 1
  %666 = load i32, ptr %107, align 4, !tbaa !9
  %667 = add nsw i32 %665, %666
  store i32 %667, ptr %85, align 4, !tbaa !9
  %668 = load i32, ptr %84, align 4, !tbaa !9
  %669 = load i32, ptr %85, align 4, !tbaa !9
  %670 = icmp sge i32 %668, %669
  br i1 %670, label %671, label %673

671:                                              ; preds = %658
  %672 = load i32, ptr %84, align 4, !tbaa !9
  br label %675

673:                                              ; preds = %658
  %674 = load i32, ptr %85, align 4, !tbaa !9
  br label %675

675:                                              ; preds = %673, %671
  %676 = phi i32 [ %672, %671 ], [ %674, %673 ]
  store i32 %676, ptr %103, align 4, !tbaa !9
  %677 = load i32, ptr %109, align 4, !tbaa !9
  %678 = icmp ne i32 %677, 0
  br i1 %678, label %679, label %718

679:                                              ; preds = %675
  %680 = load ptr, ptr %43, align 8, !tbaa !5
  %681 = load ptr, ptr %44, align 8, !tbaa !5
  %682 = load ptr, ptr %45, align 8, !tbaa !5
  %683 = load i32, ptr %71, align 4, !tbaa !9
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds double, ptr %682, i64 %684
  %686 = load ptr, ptr %46, align 8, !tbaa !5
  %687 = load ptr, ptr %65, align 8, !tbaa !5
  %688 = getelementptr inbounds double, ptr %687, i64 1
  %689 = load ptr, ptr %56, align 8, !tbaa !5
  %690 = load i32, ptr %77, align 4, !tbaa !9
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds double, ptr %689, i64 %691
  %693 = load ptr, ptr %57, align 8, !tbaa !5
  %694 = load ptr, ptr %65, align 8, !tbaa !5
  %695 = getelementptr inbounds double, ptr %694, i64 1
  %696 = call i32 @dormqr_(ptr noundef @.str.9, ptr noundef @.str.8, ptr noundef %680, ptr noundef %681, ptr noundef %89, ptr noundef %685, ptr noundef %686, ptr noundef %688, ptr noundef %692, ptr noundef %693, ptr noundef %695, ptr noundef @c_n1, ptr noundef %87)
  %697 = load ptr, ptr %65, align 8, !tbaa !5
  %698 = getelementptr inbounds double, ptr %697, i64 1
  %699 = load double, ptr %698, align 8, !tbaa !11
  %700 = fptosi double %699 to i32
  store i32 %700, ptr %108, align 4, !tbaa !9
  %701 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %701, ptr %84, align 4, !tbaa !9
  %702 = load i32, ptr %89, align 4, !tbaa !9
  %703 = load ptr, ptr %44, align 8, !tbaa !5
  %704 = load i32, ptr %703, align 4, !tbaa !9
  %705 = add nsw i32 %702, %704
  %706 = sub nsw i32 %705, 1
  %707 = load i32, ptr %108, align 4, !tbaa !9
  %708 = add nsw i32 %706, %707
  store i32 %708, ptr %85, align 4, !tbaa !9
  %709 = load i32, ptr %84, align 4, !tbaa !9
  %710 = load i32, ptr %85, align 4, !tbaa !9
  %711 = icmp sge i32 %709, %710
  br i1 %711, label %712, label %714

712:                                              ; preds = %679
  %713 = load i32, ptr %84, align 4, !tbaa !9
  br label %716

714:                                              ; preds = %679
  %715 = load i32, ptr %85, align 4, !tbaa !9
  br label %716

716:                                              ; preds = %714, %712
  %717 = phi i32 [ %713, %712 ], [ %715, %714 ]
  store i32 %717, ptr %105, align 4, !tbaa !9
  br label %718

718:                                              ; preds = %716, %675
  br label %719

719:                                              ; preds = %718, %647
  %720 = load i32, ptr %90, align 4, !tbaa !9
  %721 = icmp ne i32 %720, 0
  br i1 %721, label %722, label %778

722:                                              ; preds = %719
  %723 = load ptr, ptr %44, align 8, !tbaa !5
  %724 = load i32, ptr %723, align 4, !tbaa !9
  store i32 %724, ptr %101, align 4, !tbaa !9
  %725 = load i32, ptr %103, align 4, !tbaa !9
  store i32 %725, ptr %84, align 4, !tbaa !9
  %726 = load i32, ptr %89, align 4, !tbaa !9
  %727 = load ptr, ptr %44, align 8, !tbaa !5
  %728 = load i32, ptr %727, align 4, !tbaa !9
  %729 = add nsw i32 %726, %728
  %730 = sub nsw i32 %729, 1
  %731 = load i32, ptr %101, align 4, !tbaa !9
  %732 = add nsw i32 %730, %731
  store i32 %732, ptr %85, align 4, !tbaa !9
  %733 = load i32, ptr %84, align 4, !tbaa !9
  %734 = load i32, ptr %85, align 4, !tbaa !9
  %735 = icmp sge i32 %733, %734
  br i1 %735, label %736, label %738

736:                                              ; preds = %722
  %737 = load i32, ptr %84, align 4, !tbaa !9
  br label %740

738:                                              ; preds = %722
  %739 = load i32, ptr %85, align 4, !tbaa !9
  br label %740

740:                                              ; preds = %738, %736
  %741 = phi i32 [ %737, %736 ], [ %739, %738 ]
  store i32 %741, ptr %103, align 4, !tbaa !9
  %742 = load i32, ptr %109, align 4, !tbaa !9
  %743 = icmp ne i32 %742, 0
  br i1 %743, label %744, label %777

744:                                              ; preds = %740
  %745 = load ptr, ptr %43, align 8, !tbaa !5
  %746 = load ptr, ptr %45, align 8, !tbaa !5
  %747 = load i32, ptr %71, align 4, !tbaa !9
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds double, ptr %746, i64 %748
  %750 = load ptr, ptr %46, align 8, !tbaa !5
  %751 = load ptr, ptr %65, align 8, !tbaa !5
  %752 = getelementptr inbounds double, ptr %751, i64 1
  %753 = load ptr, ptr %65, align 8, !tbaa !5
  %754 = getelementptr inbounds double, ptr %753, i64 1
  %755 = call i32 @dorgqr_(ptr noundef %745, ptr noundef %89, ptr noundef %89, ptr noundef %749, ptr noundef %750, ptr noundef %752, ptr noundef %754, ptr noundef @c_n1, ptr noundef %87)
  %756 = load ptr, ptr %65, align 8, !tbaa !5
  %757 = getelementptr inbounds double, ptr %756, i64 1
  %758 = load double, ptr %757, align 8, !tbaa !11
  %759 = fptosi double %758 to i32
  store i32 %759, ptr %104, align 4, !tbaa !9
  %760 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %760, ptr %84, align 4, !tbaa !9
  %761 = load i32, ptr %89, align 4, !tbaa !9
  %762 = load ptr, ptr %44, align 8, !tbaa !5
  %763 = load i32, ptr %762, align 4, !tbaa !9
  %764 = add nsw i32 %761, %763
  %765 = sub nsw i32 %764, 1
  %766 = load i32, ptr %104, align 4, !tbaa !9
  %767 = add nsw i32 %765, %766
  store i32 %767, ptr %85, align 4, !tbaa !9
  %768 = load i32, ptr %84, align 4, !tbaa !9
  %769 = load i32, ptr %85, align 4, !tbaa !9
  %770 = icmp sge i32 %768, %769
  br i1 %770, label %771, label %773

771:                                              ; preds = %744
  %772 = load i32, ptr %84, align 4, !tbaa !9
  br label %775

773:                                              ; preds = %744
  %774 = load i32, ptr %85, align 4, !tbaa !9
  br label %775

775:                                              ; preds = %773, %771
  %776 = phi i32 [ %772, %771 ], [ %774, %773 ]
  store i32 %776, ptr %105, align 4, !tbaa !9
  br label %777

777:                                              ; preds = %775, %740
  br label %778

778:                                              ; preds = %777, %719
  %779 = load i32, ptr %98, align 4, !tbaa !9
  %780 = icmp sge i32 1, %779
  br i1 %780, label %781, label %782

781:                                              ; preds = %778
  br label %784

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

784:                                              ; preds = %782, %781
  %785 = phi i32 [ 1, %781 ], [ %783, %782 ]
  store i32 %785, ptr %98, align 4, !tbaa !9
  %786 = load i32, ptr %103, align 4, !tbaa !9
  %787 = icmp sge i32 2, %786
  br i1 %787, label %788, label %789

788:                                              ; preds = %784
  br label %791

789:                                              ; preds = %784
  %790 = load i32, ptr %103, align 4, !tbaa !9
  br label %791

791:                                              ; preds = %789, %788
  %792 = phi i32 [ 2, %788 ], [ %790, %789 ]
  store i32 %792, ptr %103, align 4, !tbaa !9
  %793 = load ptr, ptr %66, align 8, !tbaa !5
  %794 = load i32, ptr %793, align 4, !tbaa !9
  %795 = load i32, ptr %103, align 4, !tbaa !9
  %796 = icmp slt i32 %794, %795
  br i1 %796, label %797, label %802

797:                                              ; preds = %791
  %798 = load i32, ptr %109, align 4, !tbaa !9
  %799 = icmp ne i32 %798, 0
  br i1 %799, label %802, label %800

800:                                              ; preds = %797
  %801 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -31, ptr %801, align 4, !tbaa !9
  br label %802

802:                                              ; preds = %800, %797, %791
  %803 = load ptr, ptr %68, align 8, !tbaa !5
  %804 = load i32, ptr %803, align 4, !tbaa !9
  %805 = load i32, ptr %98, align 4, !tbaa !9
  %806 = icmp slt i32 %804, %805
  br i1 %806, label %807, label %812

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

810:                                              ; preds = %807
  %811 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 -33, ptr %811, align 4, !tbaa !9
  br label %812

812:                                              ; preds = %810, %807, %802
  br label %813

813:                                              ; preds = %812, %479
  %814 = load ptr, ptr %69, align 8, !tbaa !5
  %815 = load i32, ptr %814, align 4, !tbaa !9
  %816 = icmp ne i32 %815, 0
  br i1 %816, label %817, label %822

817:                                              ; preds = %813
  %818 = load ptr, ptr %69, align 8, !tbaa !5
  %819 = load i32, ptr %818, align 4, !tbaa !9
  %820 = sub nsw i32 0, %819
  store i32 %820, ptr %84, align 4, !tbaa !9
  %821 = 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 %1162

822:                                              ; preds = %813
  %823 = load i32, ptr %109, align 4, !tbaa !9
  %824 = icmp ne i32 %823, 0
  br i1 %824, label %825, label %837

825:                                              ; preds = %822
  %826 = load i32, ptr %98, align 4, !tbaa !9
  %827 = load ptr, ptr %67, align 8, !tbaa !5
  %828 = getelementptr inbounds i32, ptr %827, i64 1
  store i32 %826, ptr %828, align 4, !tbaa !9
  %829 = load i32, ptr %103, align 4, !tbaa !9
  %830 = sitofp i32 %829 to double
  %831 = load ptr, ptr %65, align 8, !tbaa !5
  %832 = getelementptr inbounds double, ptr %831, i64 1
  store double %830, ptr %832, align 8, !tbaa !11
  %833 = load i32, ptr %105, align 4, !tbaa !9
  %834 = sitofp i32 %833 to double
  %835 = load ptr, ptr %65, align 8, !tbaa !5
  %836 = getelementptr inbounds double, ptr %835, i64 2
  store double %834, ptr %836, align 8, !tbaa !11
  store i32 0, ptr %35, align 4
  store i32 1, ptr %114, align 4
  br label %1162

837:                                              ; preds = %822
  br label %838

838:                                              ; preds = %837
  %839 = load ptr, ptr %66, align 8, !tbaa !5
  %840 = load i32, ptr %839, align 4, !tbaa !9
  %841 = load i32, ptr %89, align 4, !tbaa !9
  %842 = sub nsw i32 %840, %841
  store i32 %842, ptr %84, align 4, !tbaa !9
  %843 = load ptr, ptr %43, align 8, !tbaa !5
  %844 = load ptr, ptr %44, align 8, !tbaa !5
  %845 = load ptr, ptr %45, align 8, !tbaa !5
  %846 = load i32, ptr %71, align 4, !tbaa !9
  %847 = sext i32 %846 to i64
  %848 = getelementptr inbounds double, ptr %845, i64 %847
  %849 = load ptr, ptr %46, align 8, !tbaa !5
  %850 = load ptr, ptr %65, align 8, !tbaa !5
  %851 = getelementptr inbounds double, ptr %850, i64 1
  %852 = load ptr, ptr %65, align 8, !tbaa !5
  %853 = load i32, ptr %89, align 4, !tbaa !9
  %854 = add nsw i32 %853, 1
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds double, ptr %852, i64 %855
  %857 = call i32 @dgeqrf_(ptr noundef %843, ptr noundef %844, ptr noundef %848, ptr noundef %849, ptr noundef %851, ptr noundef %856, ptr noundef %84, ptr noundef %87)
  %858 = load ptr, ptr %44, align 8, !tbaa !5
  %859 = load i32, ptr %858, align 4, !tbaa !9
  %860 = sub nsw i32 %859, 1
  store i32 %860, ptr %84, align 4, !tbaa !9
  %861 = load ptr, ptr %47, align 8, !tbaa !5
  %862 = load i32, ptr %73, align 4, !tbaa !9
  %863 = sext i32 %862 to i64
  %864 = getelementptr inbounds double, ptr %861, i64 %863
  %865 = load ptr, ptr %48, align 8, !tbaa !5
  %866 = call i32 @dlaset_(ptr noundef @.str.9, ptr noundef %89, ptr noundef %84, ptr noundef %86, ptr noundef %86, ptr noundef %864, ptr noundef %865)
  %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 %45, align 8, !tbaa !5
  %871 = load i32, ptr %71, align 4, !tbaa !9
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds double, ptr %870, i64 %872
  %874 = load ptr, ptr %46, align 8, !tbaa !5
  %875 = load ptr, ptr %47, align 8, !tbaa !5
  %876 = load i32, ptr %73, align 4, !tbaa !9
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds double, ptr %875, i64 %877
  %879 = load ptr, ptr %48, align 8, !tbaa !5
  %880 = call i32 @dlacpy_(ptr noundef @.str.11, ptr noundef %89, ptr noundef %84, ptr noundef %873, ptr noundef %874, ptr noundef %878, ptr noundef %879)
  %881 = load ptr, ptr %44, align 8, !tbaa !5
  %882 = load i32, ptr %881, align 4, !tbaa !9
  %883 = sub nsw i32 %882, 1
  store i32 %883, ptr %84, align 4, !tbaa !9
  %884 = load ptr, ptr %45, align 8, !tbaa !5
  %885 = load i32, ptr %70, align 4, !tbaa !9
  %886 = shl i32 %885, 1
  %887 = add nsw i32 %886, 1
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds double, ptr %884, i64 %888
  %890 = load ptr, ptr %46, align 8, !tbaa !5
  %891 = load ptr, ptr %49, align 8, !tbaa !5
  %892 = load i32, ptr %75, align 4, !tbaa !9
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds double, ptr %891, i64 %893
  %895 = load ptr, ptr %50, align 8, !tbaa !5
  %896 = call i32 @dlacpy_(ptr noundef @.str.12, ptr noundef %89, ptr noundef %84, ptr noundef %889, ptr noundef %890, ptr noundef %894, ptr noundef %895)
  %897 = load ptr, ptr %43, align 8, !tbaa !5
  %898 = load i32, ptr %897, align 4, !tbaa !9
  %899 = icmp sge i32 %898, 3
  br i1 %899, label %900, label %913

900:                                              ; preds = %838
  %901 = load i32, ptr %89, align 4, !tbaa !9
  %902 = sub nsw i32 %901, 2
  store i32 %902, ptr %84, align 4, !tbaa !9
  %903 = load ptr, ptr %44, align 8, !tbaa !5
  %904 = load i32, ptr %903, align 4, !tbaa !9
  %905 = sub nsw i32 %904, 2
  store i32 %905, ptr %85, align 4, !tbaa !9
  %906 = load ptr, ptr %49, align 8, !tbaa !5
  %907 = load i32, ptr %74, align 4, !tbaa !9
  %908 = add nsw i32 %907, 3
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds double, ptr %906, i64 %909
  %911 = load ptr, ptr %50, align 8, !tbaa !5
  %912 = call i32 @dlaset_(ptr noundef @.str.9, ptr noundef %84, ptr noundef %85, ptr noundef %86, ptr noundef %86, ptr noundef %910, ptr noundef %911)
  br label %913

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

976:                                              ; preds = %913
  %977 = load i32, ptr %87, align 4, !tbaa !9
  %978 = icmp eq i32 %977, 3
  br i1 %978, label %979, label %982

979:                                              ; preds = %976, %913
  %980 = load i32, ptr %87, align 4, !tbaa !9
  %981 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 %980, ptr %981, align 4, !tbaa !9
  store i32 0, ptr %35, align 4
  store i32 1, ptr %114, align 4
  br label %1162

982:                                              ; preds = %976
  %983 = load i32, ptr %87, align 4, !tbaa !9
  %984 = load ptr, ptr %69, align 8, !tbaa !5
  store i32 %983, ptr %984, align 4, !tbaa !9
  br label %985

985:                                              ; preds = %982
  %986 = load i32, ptr %99, align 4, !tbaa !9
  %987 = icmp ne i32 %986, 0
  br i1 %987, label %988, label %1039

988:                                              ; preds = %985
  %989 = load ptr, ptr %43, align 8, !tbaa !5
  %990 = load i32, ptr %989, align 4, !tbaa !9
  %991 = load i32, ptr %89, align 4, !tbaa !9
  %992 = icmp sgt i32 %990, %991
  br i1 %992, label %993, label %1008

993:                                              ; preds = %988
  %994 = load ptr, ptr %43, align 8, !tbaa !5
  %995 = load i32, ptr %994, align 4, !tbaa !9
  %996 = load i32, ptr %89, align 4, !tbaa !9
  %997 = sub nsw i32 %995, %996
  store i32 %997, ptr %84, align 4, !tbaa !9
  %998 = load ptr, ptr %53, align 8, !tbaa !5
  %999 = load ptr, ptr %56, align 8, !tbaa !5
  %1000 = load i32, ptr %89, align 4, !tbaa !9
  %1001 = add nsw i32 %1000, 1
  %1002 = load i32, ptr %76, align 4, !tbaa !9
  %1003 = add nsw i32 %1001, %1002
  %1004 = sext i32 %1003 to i64
  %1005 = getelementptr inbounds double, ptr %999, i64 %1004
  %1006 = load ptr, ptr %57, align 8, !tbaa !5
  %1007 = call i32 @dlaset_(ptr noundef @.str.12, ptr noundef %84, ptr noundef %998, ptr noundef %86, ptr noundef %86, ptr noundef %1005, ptr noundef %1006)
  br label %1008

1008:                                             ; preds = %993, %988
  %1009 = load ptr, ptr %66, align 8, !tbaa !5
  %1010 = load i32, ptr %1009, align 4, !tbaa !9
  %1011 = load i32, ptr %89, align 4, !tbaa !9
  %1012 = load ptr, ptr %44, align 8, !tbaa !5
  %1013 = load i32, ptr %1012, align 4, !tbaa !9
  %1014 = add nsw i32 %1011, %1013
  %1015 = sub nsw i32 %1014, 1
  %1016 = sub nsw i32 %1010, %1015
  store i32 %1016, ptr %84, align 4, !tbaa !9
  %1017 = load ptr, ptr %43, align 8, !tbaa !5
  %1018 = load ptr, ptr %53, align 8, !tbaa !5
  %1019 = load ptr, ptr %45, align 8, !tbaa !5
  %1020 = load i32, ptr %71, align 4, !tbaa !9
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds double, ptr %1019, i64 %1021
  %1023 = load ptr, ptr %46, align 8, !tbaa !5
  %1024 = load ptr, ptr %65, align 8, !tbaa !5
  %1025 = getelementptr inbounds double, ptr %1024, i64 1
  %1026 = load ptr, ptr %56, align 8, !tbaa !5
  %1027 = load i32, ptr %77, align 4, !tbaa !9
  %1028 = sext i32 %1027 to i64
  %1029 = getelementptr inbounds double, ptr %1026, i64 %1028
  %1030 = load ptr, ptr %57, align 8, !tbaa !5
  %1031 = load ptr, ptr %65, align 8, !tbaa !5
  %1032 = load i32, ptr %89, align 4, !tbaa !9
  %1033 = load ptr, ptr %44, align 8, !tbaa !5
  %1034 = load i32, ptr %1033, align 4, !tbaa !9
  %1035 = add nsw i32 %1032, %1034
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds double, ptr %1031, i64 %1036
  %1038 = call i32 @dormqr_(ptr noundef @.str.9, ptr noundef @.str.8, ptr noundef %1017, ptr noundef %1018, ptr noundef %89, ptr noundef %1022, ptr noundef %1023, ptr noundef %1025, ptr noundef %1029, ptr noundef %1030, ptr noundef %1037, ptr noundef %84, ptr noundef %87)
  br label %1110

1039:                                             ; preds = %985
  %1040 = load i32, ptr %100, align 4, !tbaa !9
  %1041 = icmp ne i32 %1040, 0
  br i1 %1041, label %1042, label %1109

1042:                                             ; preds = %1039
  %1043 = load ptr, ptr %44, align 8, !tbaa !5
  %1044 = load ptr, ptr %53, align 8, !tbaa !5
  %1045 = load ptr, ptr %47, align 8, !tbaa !5
  %1046 = load i32, ptr %73, align 4, !tbaa !9
  %1047 = sext i32 %1046 to i64
  %1048 = getelementptr inbounds double, ptr %1045, i64 %1047
  %1049 = load ptr, ptr %48, align 8, !tbaa !5
  %1050 = load ptr, ptr %56, align 8, !tbaa !5
  %1051 = load i32, ptr %77, align 4, !tbaa !9
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds double, ptr %1050, i64 %1052
  %1054 = load ptr, ptr %57, align 8, !tbaa !5
  %1055 = call i32 @dlacpy_(ptr noundef @.str.12, ptr noundef %1043, ptr noundef %1044, ptr noundef %1048, ptr noundef %1049, ptr noundef %1053, ptr noundef %1054)
  %1056 = load ptr, ptr %43, align 8, !tbaa !5
  %1057 = load i32, ptr %1056, align 4, !tbaa !9
  %1058 = load ptr, ptr %44, align 8, !tbaa !5
  %1059 = load i32, ptr %1058, align 4, !tbaa !9
  %1060 = icmp sgt i32 %1057, %1059
  br i1 %1060, label %1061, label %1078

1061:                                             ; preds = %1042
  %1062 = load ptr, ptr %43, align 8, !tbaa !5
  %1063 = load i32, ptr %1062, align 4, !tbaa !9
  %1064 = load ptr, ptr %44, align 8, !tbaa !5
  %1065 = load i32, ptr %1064, align 4, !tbaa !9
  %1066 = sub nsw i32 %1063, %1065
  store i32 %1066, ptr %84, align 4, !tbaa !9
  %1067 = load ptr, ptr %53, align 8, !tbaa !5
  %1068 = load ptr, ptr %56, align 8, !tbaa !5
  %1069 = load ptr, ptr %44, align 8, !tbaa !5
  %1070 = load i32, ptr %1069, align 4, !tbaa !9
  %1071 = add nsw i32 %1070, 1
  %1072 = load i32, ptr %76, align 4, !tbaa !9
  %1073 = add nsw i32 %1071, %1072
  %1074 = sext i32 %1073 to i64
  %1075 = getelementptr inbounds double, ptr %1068, i64 %1074
  %1076 = load ptr, ptr %57, align 8, !tbaa !5
  %1077 = call i32 @dlaset_(ptr noundef @.str.12, ptr noundef %84, ptr noundef %1067, ptr noundef %86, ptr noundef %86, ptr noundef %1075, ptr noundef %1076)
  br label %1078

1078:                                             ; preds = %1061, %1042
  %1079 = load ptr, ptr %66, align 8, !tbaa !5
  %1080 = load i32, ptr %1079, align 4, !tbaa !9
  %1081 = load i32, ptr %89, align 4, !tbaa !9
  %1082 = load ptr, ptr %44, align 8, !tbaa !5
  %1083 = load i32, ptr %1082, align 4, !tbaa !9
  %1084 = add nsw i32 %1081, %1083
  %1085 = sub nsw i32 %1084, 1
  %1086 = sub nsw i32 %1080, %1085
  store i32 %1086, ptr %84, align 4, !tbaa !9
  %1087 = load ptr, ptr %43, align 8, !tbaa !5
  %1088 = load ptr, ptr %53, align 8, !tbaa !5
  %1089 = load ptr, ptr %45, align 8, !tbaa !5
  %1090 = load i32, ptr %71, align 4, !tbaa !9
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds double, ptr %1089, i64 %1091
  %1093 = load ptr, ptr %46, align 8, !tbaa !5
  %1094 = load ptr, ptr %65, align 8, !tbaa !5
  %1095 = getelementptr inbounds double, ptr %1094, i64 1
  %1096 = load ptr, ptr %56, align 8, !tbaa !5
  %1097 = load i32, ptr %77, align 4, !tbaa !9
  %1098 = sext i32 %1097 to i64
  %1099 = getelementptr inbounds double, ptr %1096, i64 %1098
  %1100 = load ptr, ptr %57, align 8, !tbaa !5
  %1101 = load ptr, ptr %65, align 8, !tbaa !5
  %1102 = load i32, ptr %89, align 4, !tbaa !9
  %1103 = load ptr, ptr %44, align 8, !tbaa !5
  %1104 = load i32, ptr %1103, align 4, !tbaa !9
  %1105 = add nsw i32 %1102, %1104
  %1106 = sext i32 %1105 to i64
  %1107 = getelementptr inbounds double, ptr %1101, i64 %1106
  %1108 = call i32 @dormqr_(ptr noundef @.str.9, ptr noundef @.str.8, ptr noundef %1087, ptr noundef %1088, ptr noundef %89, ptr noundef %1092, ptr noundef %1093, ptr noundef %1095, ptr noundef %1099, ptr noundef %1100, ptr noundef %1107, ptr noundef %84, ptr noundef %87)
  br label %1109

1109:                                             ; preds = %1078, %1039
  br label %1110

1110:                                             ; preds = %1109, %1008
  %1111 = load i32, ptr %111, align 4, !tbaa !9
  %1112 = icmp ne i32 %1111, 0
  br i1 %1112, label %1113, label %1133

1113:                                             ; preds = %1110
  %1114 = load ptr, ptr %44, align 8, !tbaa !5
  %1115 = load ptr, ptr %49, align 8, !tbaa !5
  %1116 = load i32, ptr %75, align 4, !tbaa !9
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds double, ptr %1115, i64 %1117
  %1119 = load ptr, ptr %50, align 8, !tbaa !5
  %1120 = call i32 @dlaset_(ptr noundef @.str.12, ptr noundef %89, ptr noundef %1114, ptr noundef %86, ptr noundef %86, ptr noundef %1118, ptr noundef %1119)
  %1121 = load ptr, ptr %44, align 8, !tbaa !5
  %1122 = load ptr, ptr %45, align 8, !tbaa !5
  %1123 = load i32, ptr %71, align 4, !tbaa !9
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds double, ptr %1122, i64 %1124
  %1126 = load ptr, ptr %46, align 8, !tbaa !5
  %1127 = load ptr, ptr %49, align 8, !tbaa !5
  %1128 = load i32, ptr %75, align 4, !tbaa !9
  %1129 = sext i32 %1128 to i64
  %1130 = getelementptr inbounds double, ptr %1127, i64 %1129
  %1131 = load ptr, ptr %50, align 8, !tbaa !5
  %1132 = call i32 @dlacpy_(ptr noundef @.str.11, ptr noundef %89, ptr noundef %1121, ptr noundef %1125, ptr noundef %1126, ptr noundef %1130, ptr noundef %1131)
  br label %1133

1133:                                             ; preds = %1113, %1110
  %1134 = load i32, ptr %90, align 4, !tbaa !9
  %1135 = icmp ne i32 %1134, 0
  br i1 %1135, label %1136, label %1161

1136:                                             ; preds = %1133
  %1137 = load ptr, ptr %66, align 8, !tbaa !5
  %1138 = load i32, ptr %1137, align 4, !tbaa !9
  %1139 = load i32, ptr %89, align 4, !tbaa !9
  %1140 = load ptr, ptr %44, align 8, !tbaa !5
  %1141 = load i32, ptr %1140, align 4, !tbaa !9
  %1142 = add nsw i32 %1139, %1141
  %1143 = sub nsw i32 %1142, 1
  %1144 = sub nsw i32 %1138, %1143
  store i32 %1144, ptr %84, align 4, !tbaa !9
  %1145 = load ptr, ptr %43, align 8, !tbaa !5
  %1146 = load ptr, ptr %45, align 8, !tbaa !5
  %1147 = load i32, ptr %71, align 4, !tbaa !9
  %1148 = sext i32 %1147 to i64
  %1149 = getelementptr inbounds double, ptr %1146, i64 %1148
  %1150 = load ptr, ptr %46, align 8, !tbaa !5
  %1151 = load ptr, ptr %65, align 8, !tbaa !5
  %1152 = getelementptr inbounds double, ptr %1151, i64 1
  %1153 = load ptr, ptr %65, align 8, !tbaa !5
  %1154 = load i32, ptr %89, align 4, !tbaa !9
  %1155 = load ptr, ptr %44, align 8, !tbaa !5
  %1156 = load i32, ptr %1155, align 4, !tbaa !9
  %1157 = add nsw i32 %1154, %1156
  %1158 = sext i32 %1157 to i64
  %1159 = getelementptr inbounds double, ptr %1153, i64 %1158
  %1160 = call i32 @dorgqr_(ptr noundef %1145, ptr noundef %89, ptr noundef %89, ptr noundef %1149, ptr noundef %1150, ptr noundef %1152, ptr noundef %1159, ptr noundef %84, ptr noundef %87)
  br label %1161

1161:                                             ; preds = %1136, %1133
  store i32 0, ptr %35, align 4
  store i32 1, ptr %114, align 4
  br label %1162

1162:                                             ; preds = %1161, %979, %825, %817, %503
  call void @llvm.lifetime.end.p0(i64 8, 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 16, 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 8, 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
  %1163 = load i32, ptr %35, align 4
  ret i32 %1163
}

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

declare i32 @dgedmd_(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 @dormqr_(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 @dorgqr_(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 @dlaset_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @dlacpy_(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 = !{!"double", !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 @dgedmdq_(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 double, align 8
  %38 = alloca i32, align 4
  %39 = alloca [1 x i8], align 1
  %40 = alloca i32, align 4
  %41 = alloca [2 x double], align 16
  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 8, 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 16, 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 double, ptr %9, i64 %43
  %45 = load i32, ptr %14, align 4, !tbaa !5
  %narrow447 = xor i32 %45, -1
  %46 = sext i32 %narrow447 to i64
  %47 = getelementptr inbounds double, ptr %13, i64 %46
  %48 = load i32, ptr %21, align 4, !tbaa !5
  %narrow448 = xor i32 %48, -1
  %49 = sext i32 %narrow448 to i64
  %50 = getelementptr inbounds double, ptr %20, i64 %49
  %51 = getelementptr inbounds i8, ptr %29, i64 -8
  store double 0.000000e+00, ptr %37, align 8, !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 %80, label %77

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

79:                                               ; preds = %77
  store i32 -1, ptr %33, align 4, !tbaa !5
  br label %159

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

84:                                               ; preds = %80
  %85 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.8) #4
  %.not428 = icmp eq i32 %85, 0
  br i1 %.not428, label %86, label %87

86:                                               ; preds = %84
  store i32 -2, ptr %33, align 4, !tbaa !5
  br label %159

87:                                               ; preds = %84, %80
  %.not429 = icmp eq i32 %52, 0
  br i1 %.not429, label %88, label %.critedge

88:                                               ; preds = %87
  %89 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.8) #4
  %.not430 = icmp eq i32 %89, 0
  br i1 %.not430, label %91, label %92

.critedge:                                        ; preds = %87
  %90 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.8) #4
  %.not431 = icmp eq i32 %90, 0
  br i1 %.not431, label %92, label %91

91:                                               ; preds = %.critedge, %88
  store i32 -3, ptr %33, align 4, !tbaa !5
  br label %159

92:                                               ; preds = %88, %.critedge
  %.not432 = icmp eq i32 %65, 0
  br i1 %.not432, label %93, label %96

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

95:                                               ; preds = %93
  store i32 -4, ptr %33, align 4, !tbaa !5
  br label %159

96:                                               ; preds = %93, %92
  %.not434 = icmp eq i32 %66, 0
  br i1 %.not434, label %97, label %100

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

99:                                               ; preds = %97
  store i32 -5, ptr %33, align 4, !tbaa !5
  br label %159

100:                                              ; preds = %97, %96
  %101 = icmp ne i32 %63, 0
  %102 = icmp ne i32 %64, 0
  %or.cond7 = select i1 %101, i1 true, i1 %102
  br i1 %or.cond7, label %106, label %103

103:                                              ; preds = %100
  %104 = tail call i32 @lsame_(ptr noundef %5, ptr noundef nonnull @.str.8) #4
  %.not436 = icmp eq i32 %104, 0
  br i1 %.not436, label %105, label %106

105:                                              ; preds = %103
  store i32 -6, ptr %33, align 4, !tbaa !5
  br label %159

106:                                              ; preds = %103, %100
  %107 = load i32, ptr %6, align 4, !tbaa !5
  %.off = add i32 %107, -1
  %switch = icmp ult i32 %.off, 4
  br i1 %switch, label %109, label %108

108:                                              ; preds = %106
  store i32 -7, ptr %33, align 4, !tbaa !5
  br label %159

109:                                              ; preds = %106
  %110 = load i32, ptr %7, align 4, !tbaa !5
  %111 = icmp slt i32 %110, 0
  br i1 %111, label %112, label %113

112:                                              ; preds = %109
  store i32 -8, ptr %33, align 4, !tbaa !5
  br label %159

113:                                              ; preds = %109
  %114 = load i32, ptr %8, align 4, !tbaa !5
  %115 = icmp slt i32 %114, 0
  %116 = add nuw nsw i32 %110, 1
  %117 = icmp sgt i32 %114, %116
  %or.cond452 = select i1 %115, i1 true, i1 %117
  br i1 %or.cond452, label %118, label %119

118:                                              ; preds = %113
  store i32 -9, ptr %33, align 4, !tbaa !5
  br label %159

119:                                              ; preds = %113
  %120 = load i32, ptr %10, align 4, !tbaa !5
  %121 = icmp slt i32 %120, %110
  br i1 %121, label %122, label %123

122:                                              ; preds = %119
  store i32 -11, ptr %33, align 4, !tbaa !5
  br label %159

123:                                              ; preds = %119
  %124 = load i32, ptr %12, align 4, !tbaa !5
  %125 = icmp slt i32 %124, %.
  br i1 %125, label %126, label %127

126:                                              ; preds = %123
  store i32 -13, ptr %33, align 4, !tbaa !5
  br label %159

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

130:                                              ; preds = %127
  store i32 -15, ptr %33, align 4, !tbaa !5
  br label %159

131:                                              ; preds = %127
  %132 = load i32, ptr %15, align 4, !tbaa !5
  %switch459 = icmp ugt i32 %132, -3
  br i1 %switch459, label %136, label %133

133:                                              ; preds = %131
  %134 = icmp slt i32 %132, 1
  %.not437 = icmp sgt i32 %132, %114
  %or.cond453 = or i1 %134, %.not437
  br i1 %or.cond453, label %135, label %136

135:                                              ; preds = %133
  store i32 -16, ptr %33, align 4, !tbaa !5
  br label %159

136:                                              ; preds = %131, %133
  %137 = load double, ptr %16, align 8, !tbaa !9
  %138 = fcmp uge double %137, 0.000000e+00
  %139 = fcmp ult double %137, 1.000000e+00
  %or.cond454 = and i1 %139, %138
  br i1 %or.cond454, label %141, label %140

140:                                              ; preds = %136
  store i32 -17, ptr %33, align 4, !tbaa !5
  br label %159

141:                                              ; preds = %136
  %142 = load i32, ptr %21, align 4, !tbaa !5
  %143 = icmp slt i32 %142, %110
  br i1 %143, label %144, label %145

144:                                              ; preds = %141
  store i32 -22, ptr %33, align 4, !tbaa !5
  br label %159

145:                                              ; preds = %141
  br i1 %or.cond7, label %146, label %150

146:                                              ; preds = %145
  %147 = load i32, ptr %24, align 4, !tbaa !5
  %148 = icmp slt i32 %147, %.
  br i1 %148, label %149, label %150

149:                                              ; preds = %146
  store i32 -25, ptr %33, align 4, !tbaa !5
  br label %159

150:                                              ; preds = %145, %146
  %151 = load i32, ptr %26, align 4, !tbaa !5
  %152 = add nsw i32 %114, -1
  %153 = icmp slt i32 %151, %152
  br i1 %153, label %154, label %155

154:                                              ; preds = %150
  store i32 -27, ptr %33, align 4, !tbaa !5
  br label %159

155:                                              ; preds = %150
  %156 = load i32, ptr %28, align 4, !tbaa !5
  %157 = icmp slt i32 %156, %152
  br i1 %157, label %158, label %._crit_edge

._crit_edge:                                      ; preds = %155
  %.pre = load i32, ptr %33, align 4, !tbaa !5
  br label %159

158:                                              ; preds = %155
  store i32 -29, ptr %33, align 4, !tbaa !5
  br label %159

159:                                              ; preds = %._crit_edge, %86, %95, %105, %112, %122, %130, %140, %149, %158, %154, %144, %135, %126, %118, %108, %99, %91, %79
  %160 = phi i32 [ %.pre, %._crit_edge ], [ -2, %86 ], [ -4, %95 ], [ -6, %105 ], [ -8, %112 ], [ -11, %122 ], [ -15, %130 ], [ -17, %140 ], [ -25, %149 ], [ -29, %158 ], [ -27, %154 ], [ -22, %144 ], [ -16, %135 ], [ -13, %126 ], [ -9, %118 ], [ -7, %108 ], [ -5, %99 ], [ -3, %91 ], [ -1, %79 ]
  %161 = icmp ne i32 %60, 0
  %162 = icmp ne i32 %61, 0
  %or.cond11 = select i1 %161, i1 true, i1 %162
  %163 = icmp ne i32 %62, 0
  %or.cond13 = select i1 %or.cond11, i1 true, i1 %163
  %.455 = select i1 %or.cond13, i8 86, i8 78
  store i8 %.455, ptr %39, align 1, !tbaa !11
  %164 = icmp eq i32 %160, 0
  br i1 %164, label %165, label %.thread

165:                                              ; preds = %159
  %166 = load i32, ptr %8, align 4, !tbaa !5
  %switch460 = icmp ult i32 %166, 2
  br i1 %switch460, label %167, label %171

167:                                              ; preds = %165
  br i1 %75, label %168, label %169

168:                                              ; preds = %167
  store i32 1, ptr %31, align 4, !tbaa !5
  store <2 x double> <double 2.000000e+00, double 2.000000e+00>, ptr %29, align 8, !tbaa !9
  br label %170

169:                                              ; preds = %167
  store i32 0, ptr %17, align 4, !tbaa !5
  br label %170

170:                                              ; preds = %169, %168
  store i32 1, ptr %33, align 4, !tbaa !5
  br label %344

171:                                              ; preds = %165
  %spec.select = tail call i32 @llvm.smax.i32(i32 %166, i32 1)
  %172 = add nsw i32 %., %spec.select
  br i1 %75, label %173, label %180

173:                                              ; preds = %171
  %174 = call i32 @dgeqrf_(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
  %175 = load double, ptr %41, align 16, !tbaa !9
  %176 = fptosi double %175 to i32
  %177 = load i32, ptr %7, align 4, !tbaa !5
  %178 = load i32, ptr %8, align 4, !tbaa !5
  %.456 = call i32 @llvm.smin.i32(i32 %177, i32 %178)
  %179 = add nsw i32 %.456, %176
  br label %180

180:                                              ; preds = %173, %171
  %181 = phi i32 [ %178, %173 ], [ %166, %171 ]
  %.0402 = phi i32 [ %179, %173 ], [ undef, %171 ]
  %182 = add nsw i32 %181, -1
  store i32 %182, ptr %35, align 4, !tbaa !5
  %183 = call i32 @dgedmd_(ptr noundef %0, ptr noundef nonnull %39, ptr noundef %2, ptr noundef %5, ptr noundef %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 %15, ptr noundef %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
  %184 = load double, ptr %29, align 8, !tbaa !9
  %185 = fptosi double %184 to i32
  %186 = load i32, ptr %40, align 4, !tbaa !5
  %187 = add nsw i32 %186, %185
  %188 = call i32 @llvm.smax.i32(i32 %172, i32 %187)
  %189 = load i32, ptr %31, align 4, !tbaa !5
  br i1 %75, label %190, label %196

190:                                              ; preds = %180
  %191 = getelementptr inbounds i8, ptr %29, i64 8
  %192 = load double, ptr %191, align 8, !tbaa !9
  %193 = fptosi double %192 to i32
  %194 = add nsw i32 %186, %193
  store i32 %194, ptr %36, align 4, !tbaa !5
  %195 = call i32 @llvm.smax.i32(i32 %.0402, i32 %194)
  br label %196

196:                                              ; preds = %190, %180
  %.1 = phi i32 [ %195, %190 ], [ %.0402, %180 ]
  br i1 %or.cond11, label %197, label %213

197:                                              ; preds = %196
  %198 = load i32, ptr %8, align 4, !tbaa !5
  %spec.select457 = call i32 @llvm.smax.i32(i32 %198, i32 1)
  store i32 %188, ptr %35, align 4, !tbaa !5
  %199 = add i32 %186, -1
  %200 = add i32 %199, %198
  %201 = add nsw i32 %200, %spec.select457
  %202 = call i32 @llvm.smax.i32(i32 %188, i32 %201)
  br i1 %75, label %203, label %213

203:                                              ; preds = %197
  %204 = call i32 @dormqr_(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
  %205 = load double, ptr %29, align 8, !tbaa !9
  %206 = fptosi double %205 to i32
  %207 = load i32, ptr %40, align 4, !tbaa !5
  %208 = load i32, ptr %8, align 4, !tbaa !5
  %209 = add i32 %206, -1
  %210 = add i32 %209, %207
  %211 = add i32 %210, %208
  store i32 %211, ptr %36, align 4, !tbaa !5
  %212 = call i32 @llvm.smax.i32(i32 %.1, i32 %211)
  br label %213

213:                                              ; preds = %197, %203, %196
  %214 = phi i32 [ %207, %203 ], [ %186, %197 ], [ %186, %196 ]
  %.0403 = phi i32 [ %202, %203 ], [ %202, %197 ], [ %188, %196 ]
  %.2 = phi i32 [ %212, %203 ], [ %.1, %197 ], [ %.1, %196 ]
  %.not443 = icmp eq i32 %65, 0
  br i1 %.not443, label %230, label %215

215:                                              ; preds = %213
  %216 = load i32, ptr %8, align 4, !tbaa !5
  store i32 %.0403, ptr %35, align 4, !tbaa !5
  %factor = shl i32 %216, 1
  %217 = add i32 %factor, -1
  %218 = add i32 %217, %214
  %219 = call i32 @llvm.smax.i32(i32 %.0403, i32 %218)
  br i1 %75, label %220, label %230

220:                                              ; preds = %215
  %221 = call i32 @dorgqr_(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
  %222 = load double, ptr %29, align 8, !tbaa !9
  %223 = fptosi double %222 to i32
  %224 = load i32, ptr %40, align 4, !tbaa !5
  %225 = load i32, ptr %8, align 4, !tbaa !5
  %226 = add i32 %223, -1
  %227 = add i32 %226, %224
  %228 = add i32 %227, %225
  %229 = call i32 @llvm.smax.i32(i32 %.2, i32 %228)
  br label %230

230:                                              ; preds = %215, %220, %213
  %231 = phi i32 [ %224, %220 ], [ %214, %215 ], [ %214, %213 ]
  %.1404 = phi i32 [ %219, %220 ], [ %219, %215 ], [ %.0403, %213 ]
  %.3 = phi i32 [ %229, %220 ], [ %.2, %215 ], [ %.2, %213 ]
  %232 = call i32 @llvm.smax.i32(i32 %189, i32 1)
  %233 = call i32 @llvm.smax.i32(i32 %.1404, i32 2)
  %234 = load i32, ptr %30, align 4, !tbaa !5
  %235 = icmp sge i32 %234, %233
  %or.cond17 = select i1 %235, i1 true, i1 %75
  br i1 %or.cond17, label %237, label %236

236:                                              ; preds = %230
  store i32 -31, ptr %33, align 4, !tbaa !5
  br label %237

237:                                              ; preds = %236, %230
  %238 = load i32, ptr %32, align 4, !tbaa !5
  %239 = icmp sge i32 %238, %232
  %or.cond19 = select i1 %239, i1 true, i1 %75
  br i1 %or.cond19, label %241, label %240

240:                                              ; preds = %237
  store i32 -33, ptr %33, align 4, !tbaa !5
  br label %.thread

241:                                              ; preds = %237
  %.pr = load i32, ptr %33, align 4, !tbaa !5
  %.not446 = icmp eq i32 %.pr, 0
  br i1 %.not446, label %245, label %.thread

.thread:                                          ; preds = %159, %240, %241
  %242 = phi i32 [ %.pr, %241 ], [ %160, %159 ], [ -33, %240 ]
  %243 = sub nsw i32 0, %242
  store i32 %243, ptr %35, align 4, !tbaa !5
  %244 = call i32 @xerbla_(ptr noundef nonnull @.str.10, ptr noundef nonnull %35) #4
  br label %344

245:                                              ; preds = %241
  br i1 %75, label %246, label %250

246:                                              ; preds = %245
  store i32 %232, ptr %31, align 4, !tbaa !5
  %247 = uitofp nneg i32 %233 to double
  store double %247, ptr %29, align 8, !tbaa !9
  %248 = sitofp i32 %.3 to double
  %249 = getelementptr inbounds i8, ptr %29, i64 8
  store double %248, ptr %249, align 8, !tbaa !9
  br label %344

250:                                              ; preds = %245
  %251 = load i32, ptr %30, align 4, !tbaa !5
  %252 = sub nsw i32 %251, %231
  store i32 %252, ptr %35, align 4, !tbaa !5
  %253 = sext i32 %231 to i64
  %254 = getelementptr double, ptr %51, i64 %253
  %255 = getelementptr i8, ptr %254, i64 8
  %256 = call i32 @dgeqrf_(ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %29, ptr noundef %255, ptr noundef nonnull %35, ptr noundef nonnull %38) #4
  %257 = load i32, ptr %8, align 4, !tbaa !5
  %258 = add nsw i32 %257, -1
  store i32 %258, ptr %35, align 4, !tbaa !5
  %259 = call i32 @dlaset_(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 %12) #4
  %260 = load i32, ptr %8, align 4, !tbaa !5
  %261 = add nsw i32 %260, -1
  store i32 %261, ptr %35, align 4, !tbaa !5
  %262 = call i32 @dlacpy_(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 %12) #4
  %263 = load i32, ptr %8, align 4, !tbaa !5
  %264 = add nsw i32 %263, -1
  store i32 %264, ptr %35, align 4, !tbaa !5
  %265 = shl i32 %42, 1
  %266 = or disjoint i32 %265, 1
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds double, ptr %44, i64 %267
  %269 = call i32 @dlacpy_(ptr noundef nonnull @.str.12, ptr noundef nonnull %40, ptr noundef nonnull %35, ptr noundef nonnull %268, ptr noundef nonnull %10, ptr noundef %13, ptr noundef nonnull %14) #4
  %270 = load i32, ptr %7, align 4, !tbaa !5
  %271 = icmp sgt i32 %270, 2
  br i1 %271, label %272, label %281

272:                                              ; preds = %250
  %273 = load i32, ptr %40, align 4, !tbaa !5
  %274 = add nsw i32 %273, -2
  store i32 %274, ptr %35, align 4, !tbaa !5
  %275 = load i32, ptr %8, align 4, !tbaa !5
  %276 = add nsw i32 %275, -2
  store i32 %276, ptr %36, align 4, !tbaa !5
  %277 = sext i32 %45 to i64
  %278 = getelementptr double, ptr %47, i64 %277
  %279 = getelementptr i8, ptr %278, i64 24
  %280 = call i32 @dlaset_(ptr noundef nonnull @.str.9, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %279, ptr noundef nonnull %14) #4
  br label %281

281:                                              ; preds = %272, %250
  %282 = load i32, ptr %8, align 4, !tbaa !5
  %283 = add nsw i32 %282, -1
  store i32 %283, ptr %35, align 4, !tbaa !5
  %284 = load i32, ptr %30, align 4, !tbaa !5
  %285 = load i32, ptr %40, align 4, !tbaa !5
  %286 = sub nsw i32 %284, %285
  store i32 %286, ptr %36, align 4, !tbaa !5
  %287 = sext i32 %285 to i64
  %288 = getelementptr double, ptr %51, i64 %287
  %289 = getelementptr i8, ptr %288, i64 8
  %290 = call i32 @dgedmd_(ptr noundef %0, ptr noundef nonnull %39, ptr noundef %2, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %40, ptr noundef nonnull %35, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef %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 %26, ptr noundef %27, ptr noundef %28, ptr noundef %289, ptr noundef nonnull %36, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %38) #4
  %291 = load i32, ptr %38, align 4
  %292 = and i32 %291, -2
  %or.cond21 = icmp eq i32 %292, 2
  store i32 %291, ptr %33, align 4, !tbaa !5
  br i1 %or.cond21, label %344, label %293

293:                                              ; preds = %281
  br i1 %161, label %294, label %309

294:                                              ; preds = %293
  %295 = load i32, ptr %7, align 4, !tbaa !5
  %296 = load i32, ptr %40, align 4, !tbaa !5
  %297 = icmp sgt i32 %295, %296
  br i1 %297, label %298, label %305

298:                                              ; preds = %294
  %299 = sub nsw i32 %295, %296
  store i32 %299, ptr %35, align 4, !tbaa !5
  %300 = add i32 %48, 1
  %301 = add i32 %300, %296
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds double, ptr %50, i64 %302
  %304 = call i32 @dlaset_(ptr noundef nonnull @.str.12, ptr noundef nonnull %35, ptr noundef %17, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %303, ptr noundef nonnull %21) #4
  %.pre471 = load i32, ptr %40, align 4, !tbaa !5
  br label %305

305:                                              ; preds = %298, %294
  %306 = phi i32 [ %.pre471, %298 ], [ %296, %294 ]
  %307 = load i32, ptr %8, align 4, !tbaa !5
  %308 = add nsw i32 %307, %306
  br label %.sink.split

309:                                              ; preds = %293
  br i1 %162, label %310, label %330

310:                                              ; preds = %309
  %311 = call i32 @dlacpy_(ptr noundef nonnull @.str.12, ptr noundef nonnull %8, ptr noundef %17, ptr noundef %11, ptr noundef %12, ptr noundef %20, ptr noundef nonnull %21) #4
  %312 = load i32, ptr %7, align 4, !tbaa !5
  %313 = load i32, ptr %8, align 4, !tbaa !5
  %314 = icmp sgt i32 %312, %313
  br i1 %314, label %315, label %322

315:                                              ; preds = %310
  %316 = sub nsw i32 %312, %313
  store i32 %316, ptr %35, align 4, !tbaa !5
  %317 = add i32 %48, 1
  %318 = add i32 %317, %313
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds double, ptr %50, i64 %319
  %321 = call i32 @dlaset_(ptr noundef nonnull @.str.12, ptr noundef nonnull %35, ptr noundef %17, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %320, ptr noundef nonnull %21) #4
  %.pre470 = load i32, ptr %8, align 4, !tbaa !5
  br label %322

322:                                              ; preds = %315, %310
  %323 = phi i32 [ %.pre470, %315 ], [ %313, %310 ]
  %324 = load i32, ptr %40, align 4, !tbaa !5
  %325 = add nsw i32 %323, %324
  br label %.sink.split

.sink.split:                                      ; preds = %305, %322
  %.sink473 = phi i32 [ %308, %305 ], [ %325, %322 ]
  %.sink474 = load i32, ptr %30, align 4, !tbaa !5
  %.neg467 = add i32 %.sink474, 1
  %326 = sub i32 %.neg467, %.sink473
  store i32 %326, ptr %35, align 4, !tbaa !5
  %327 = sext i32 %.sink473 to i64
  %328 = getelementptr inbounds double, ptr %51, i64 %327
  %329 = call i32 @dormqr_(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 %328, ptr noundef nonnull %35, ptr noundef nonnull %38) #4
  br label %330

330:                                              ; preds = %.sink.split, %309
  %.not449 = icmp eq i32 %66, 0
  br i1 %.not449, label %334, label %331

331:                                              ; preds = %330
  %332 = call i32 @dlaset_(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
  %333 = call i32 @dlacpy_(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 %334

334:                                              ; preds = %331, %330
  br i1 %.not443, label %344, label %335

335:                                              ; preds = %334
  %336 = load i32, ptr %30, align 4, !tbaa !5
  %337 = load i32, ptr %40, align 4, !tbaa !5
  %338 = load i32, ptr %8, align 4, !tbaa !5
  %339 = add nsw i32 %338, %337
  %.neg469 = add i32 %336, 1
  %340 = sub i32 %.neg469, %339
  store i32 %340, ptr %35, align 4, !tbaa !5
  %341 = sext i32 %339 to i64
  %342 = getelementptr inbounds double, ptr %51, i64 %341
  %343 = call i32 @dorgqr_(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 %342, ptr noundef nonnull %35, ptr noundef nonnull %38) #4
  br label %344

344:                                              ; preds = %281, %334, %335, %246, %.thread, %170
  call void @llvm.lifetime.end.p0(i64 16, 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 8, 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 @dgeqrf_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @dgedmd_(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 @dormqr_(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 @dorgqr_(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 @dlaset_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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 = !{!"double", !7, i64 0}
!11 = !{!7, !7, i64 0}


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