; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (dgelss)

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

@c__6 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i64, align 8
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b74 = external hidden global double, align 8
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b108 = external hidden global double, align 8

; Function Attrs: nounwind uwtable
define dso_local i32 @dgelss_(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) #0 {
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca double, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca i64, align 8
  %47 = alloca [1 x double], align 8
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca i64, align 8
  %51 = alloca double, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca double, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca double, align 8
  %64 = alloca i64, align 8
  %65 = alloca i32, align 4
  store ptr %0, ptr %15, align 8, !tbaa !5
  store ptr %1, ptr %16, align 8, !tbaa !5
  store ptr %2, ptr %17, align 8, !tbaa !5
  store ptr %3, ptr %18, align 8, !tbaa !5
  store ptr %4, ptr %19, align 8, !tbaa !5
  store ptr %5, ptr %20, align 8, !tbaa !5
  store ptr %6, ptr %21, align 8, !tbaa !5
  store ptr %7, ptr %22, align 8, !tbaa !5
  store ptr %8, ptr %23, align 8, !tbaa !5
  store ptr %9, ptr %24, align 8, !tbaa !5
  store ptr %10, ptr %25, align 8, !tbaa !5
  store ptr %11, ptr %26, align 8, !tbaa !5
  store ptr %12, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #3
  %66 = load ptr, ptr %19, align 8, !tbaa !5
  %67 = load i64, ptr %66, align 8, !tbaa !9
  store i64 %67, ptr %28, align 8, !tbaa !9
  %68 = load i64, ptr %28, align 8, !tbaa !9
  %69 = add nsw i64 1, %68
  store i64 %69, ptr %29, align 8, !tbaa !9
  %70 = load i64, ptr %29, align 8, !tbaa !9
  %71 = load ptr, ptr %18, align 8, !tbaa !5
  %72 = sub i64 0, %70
  %73 = getelementptr inbounds double, ptr %71, i64 %72
  store ptr %73, ptr %18, align 8, !tbaa !5
  %74 = load ptr, ptr %21, align 8, !tbaa !5
  %75 = load i64, ptr %74, align 8, !tbaa !9
  store i64 %75, ptr %30, align 8, !tbaa !9
  %76 = load i64, ptr %30, align 8, !tbaa !9
  %77 = add nsw i64 1, %76
  store i64 %77, ptr %31, align 8, !tbaa !9
  %78 = load i64, ptr %31, align 8, !tbaa !9
  %79 = load ptr, ptr %20, align 8, !tbaa !5
  %80 = sub i64 0, %78
  %81 = getelementptr inbounds double, ptr %79, i64 %80
  store ptr %81, ptr %20, align 8, !tbaa !5
  %82 = load ptr, ptr %22, align 8, !tbaa !5
  %83 = getelementptr inbounds double, ptr %82, i32 -1
  store ptr %83, ptr %22, align 8, !tbaa !5
  %84 = load ptr, ptr %25, align 8, !tbaa !5
  %85 = getelementptr inbounds double, ptr %84, i32 -1
  store ptr %85, ptr %25, align 8, !tbaa !5
  %86 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 0, ptr %86, align 8, !tbaa !9
  %87 = load ptr, ptr %15, align 8, !tbaa !5
  %88 = load i64, ptr %87, align 8, !tbaa !9
  %89 = load ptr, ptr %16, align 8, !tbaa !5
  %90 = load i64, ptr %89, align 8, !tbaa !9
  %91 = icmp sle i64 %88, %90
  br i1 %91, label %92, label %95

92:                                               ; preds = %13
  %93 = load ptr, ptr %15, align 8, !tbaa !5
  %94 = load i64, ptr %93, align 8, !tbaa !9
  br label %98

95:                                               ; preds = %13
  %96 = load ptr, ptr %16, align 8, !tbaa !5
  %97 = load i64, ptr %96, align 8, !tbaa !9
  br label %98

98:                                               ; preds = %95, %92
  %99 = phi i64 [ %94, %92 ], [ %97, %95 ]
  store i64 %99, ptr %52, align 8, !tbaa !9
  %100 = load ptr, ptr %15, align 8, !tbaa !5
  %101 = load i64, ptr %100, align 8, !tbaa !9
  %102 = load ptr, ptr %16, align 8, !tbaa !5
  %103 = load i64, ptr %102, align 8, !tbaa !9
  %104 = icmp sge i64 %101, %103
  br i1 %104, label %105, label %108

105:                                              ; preds = %98
  %106 = load ptr, ptr %15, align 8, !tbaa !5
  %107 = load i64, ptr %106, align 8, !tbaa !9
  br label %111

108:                                              ; preds = %98
  %109 = load ptr, ptr %16, align 8, !tbaa !5
  %110 = load i64, ptr %109, align 8, !tbaa !9
  br label %111

111:                                              ; preds = %108, %105
  %112 = phi i64 [ %107, %105 ], [ %110, %108 ]
  store i64 %112, ptr %53, align 8, !tbaa !9
  %113 = load ptr, ptr %26, align 8, !tbaa !5
  %114 = load i64, ptr %113, align 8, !tbaa !9
  %115 = icmp eq i64 %114, -1
  %116 = zext i1 %115 to i32
  %117 = sext i32 %116 to i64
  store i64 %117, ptr %64, align 8, !tbaa !9
  %118 = load ptr, ptr %15, align 8, !tbaa !5
  %119 = load i64, ptr %118, align 8, !tbaa !9
  %120 = icmp slt i64 %119, 0
  br i1 %120, label %121, label %123

121:                                              ; preds = %111
  %122 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -1, ptr %122, align 8, !tbaa !9
  br label %167

123:                                              ; preds = %111
  %124 = load ptr, ptr %16, align 8, !tbaa !5
  %125 = load i64, ptr %124, align 8, !tbaa !9
  %126 = icmp slt i64 %125, 0
  br i1 %126, label %127, label %129

127:                                              ; preds = %123
  %128 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -2, ptr %128, align 8, !tbaa !9
  br label %166

129:                                              ; preds = %123
  %130 = load ptr, ptr %17, align 8, !tbaa !5
  %131 = load i64, ptr %130, align 8, !tbaa !9
  %132 = icmp slt i64 %131, 0
  br i1 %132, label %133, label %135

133:                                              ; preds = %129
  %134 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -3, ptr %134, align 8, !tbaa !9
  br label %165

135:                                              ; preds = %129
  %136 = load ptr, ptr %19, align 8, !tbaa !5
  %137 = load i64, ptr %136, align 8, !tbaa !9
  %138 = load ptr, ptr %15, align 8, !tbaa !5
  %139 = load i64, ptr %138, align 8, !tbaa !9
  %140 = icmp sge i64 1, %139
  br i1 %140, label %141, label %142

141:                                              ; preds = %135
  br label %145

142:                                              ; preds = %135
  %143 = load ptr, ptr %15, align 8, !tbaa !5
  %144 = load i64, ptr %143, align 8, !tbaa !9
  br label %145

145:                                              ; preds = %142, %141
  %146 = phi i64 [ 1, %141 ], [ %144, %142 ]
  %147 = icmp slt i64 %137, %146
  br i1 %147, label %148, label %150

148:                                              ; preds = %145
  %149 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -5, ptr %149, align 8, !tbaa !9
  br label %164

150:                                              ; preds = %145
  %151 = load ptr, ptr %21, align 8, !tbaa !5
  %152 = load i64, ptr %151, align 8, !tbaa !9
  %153 = load i64, ptr %53, align 8, !tbaa !9
  %154 = icmp sge i64 1, %153
  br i1 %154, label %155, label %156

155:                                              ; preds = %150
  br label %158

156:                                              ; preds = %150
  %157 = load i64, ptr %53, align 8, !tbaa !9
  br label %158

158:                                              ; preds = %156, %155
  %159 = phi i64 [ 1, %155 ], [ %157, %156 ]
  %160 = icmp slt i64 %152, %159
  br i1 %160, label %161, label %163

161:                                              ; preds = %158
  %162 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -7, ptr %162, align 8, !tbaa !9
  br label %163

163:                                              ; preds = %161, %158
  br label %164

164:                                              ; preds = %163, %148
  br label %165

165:                                              ; preds = %164, %133
  br label %166

166:                                              ; preds = %165, %127
  br label %167

167:                                              ; preds = %166, %121
  %168 = load ptr, ptr %27, align 8, !tbaa !5
  %169 = load i64, ptr %168, align 8, !tbaa !9
  %170 = icmp eq i64 %169, 0
  br i1 %170, label %171, label %717

171:                                              ; preds = %167
  store i64 1, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %62, align 8, !tbaa !9
  %172 = load i64, ptr %52, align 8, !tbaa !9
  %173 = icmp sgt i64 %172, 0
  br i1 %173, label %174, label %702

174:                                              ; preds = %171
  %175 = load ptr, ptr %15, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  store i64 %176, ptr %41, align 8, !tbaa !9
  %177 = load ptr, ptr %15, align 8, !tbaa !5
  %178 = load ptr, ptr %16, align 8, !tbaa !5
  %179 = load ptr, ptr %17, align 8, !tbaa !5
  %180 = call i64 @ilaenv_(ptr noundef @c__6, ptr noundef @.str, ptr noundef @.str.1, ptr noundef %177, ptr noundef %178, ptr noundef %179, ptr noundef @c_n1)
  store i64 %180, ptr %56, align 8, !tbaa !9
  %181 = load ptr, ptr %15, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  %183 = load ptr, ptr %16, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = icmp sge i64 %182, %184
  br i1 %185, label %186, label %233

186:                                              ; preds = %174
  %187 = load ptr, ptr %15, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  %189 = load i64, ptr %56, align 8, !tbaa !9
  %190 = icmp sge i64 %188, %189
  br i1 %190, label %191, label %233

191:                                              ; preds = %186
  %192 = load ptr, ptr %16, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  store i64 %193, ptr %41, align 8, !tbaa !9
  %194 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %194, ptr %32, align 8, !tbaa !9
  %195 = load ptr, ptr %16, align 8, !tbaa !5
  %196 = load i64, ptr %195, align 8, !tbaa !9
  %197 = load ptr, ptr %16, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !9
  %199 = load ptr, ptr %15, align 8, !tbaa !5
  %200 = load ptr, ptr %16, align 8, !tbaa !5
  %201 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.2, ptr noundef @.str.1, ptr noundef %199, ptr noundef %200, ptr noundef @c_n1, ptr noundef @c_n1)
  %202 = mul nsw i64 %198, %201
  %203 = add nsw i64 %196, %202
  store i64 %203, ptr %33, align 8, !tbaa !9
  %204 = load i64, ptr %32, align 8, !tbaa !9
  %205 = load i64, ptr %33, align 8, !tbaa !9
  %206 = icmp sge i64 %204, %205
  br i1 %206, label %207, label %209

207:                                              ; preds = %191
  %208 = load i64, ptr %32, align 8, !tbaa !9
  br label %211

209:                                              ; preds = %191
  %210 = load i64, ptr %33, align 8, !tbaa !9
  br label %211

211:                                              ; preds = %209, %207
  %212 = phi i64 [ %208, %207 ], [ %210, %209 ]
  store i64 %212, ptr %62, align 8, !tbaa !9
  %213 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %213, ptr %32, align 8, !tbaa !9
  %214 = load ptr, ptr %16, align 8, !tbaa !5
  %215 = load i64, ptr %214, align 8, !tbaa !9
  %216 = load ptr, ptr %17, align 8, !tbaa !5
  %217 = load i64, ptr %216, align 8, !tbaa !9
  %218 = load ptr, ptr %15, align 8, !tbaa !5
  %219 = load ptr, ptr %17, align 8, !tbaa !5
  %220 = load ptr, ptr %16, align 8, !tbaa !5
  %221 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %218, ptr noundef %219, ptr noundef %220, ptr noundef @c_n1)
  %222 = mul nsw i64 %217, %221
  %223 = add nsw i64 %215, %222
  store i64 %223, ptr %33, align 8, !tbaa !9
  %224 = load i64, ptr %32, align 8, !tbaa !9
  %225 = load i64, ptr %33, align 8, !tbaa !9
  %226 = icmp sge i64 %224, %225
  br i1 %226, label %227, label %229

227:                                              ; preds = %211
  %228 = load i64, ptr %32, align 8, !tbaa !9
  br label %231

229:                                              ; preds = %211
  %230 = load i64, ptr %33, align 8, !tbaa !9
  br label %231

231:                                              ; preds = %229, %227
  %232 = phi i64 [ %228, %227 ], [ %230, %229 ]
  store i64 %232, ptr %62, align 8, !tbaa !9
  br label %233

233:                                              ; preds = %231, %186, %174
  %234 = load ptr, ptr %15, align 8, !tbaa !5
  %235 = load i64, ptr %234, align 8, !tbaa !9
  %236 = load ptr, ptr %16, align 8, !tbaa !5
  %237 = load i64, ptr %236, align 8, !tbaa !9
  %238 = icmp sge i64 %235, %237
  br i1 %238, label %239, label %377

239:                                              ; preds = %233
  store i64 1, ptr %32, align 8, !tbaa !9
  %240 = load ptr, ptr %16, align 8, !tbaa !5
  %241 = load i64, ptr %240, align 8, !tbaa !9
  %242 = mul nsw i64 %241, 5
  store i64 %242, ptr %33, align 8, !tbaa !9
  %243 = load i64, ptr %32, align 8, !tbaa !9
  %244 = load i64, ptr %33, align 8, !tbaa !9
  %245 = icmp sge i64 %243, %244
  br i1 %245, label %246, label %248

246:                                              ; preds = %239
  %247 = load i64, ptr %32, align 8, !tbaa !9
  br label %250

248:                                              ; preds = %239
  %249 = load i64, ptr %33, align 8, !tbaa !9
  br label %250

250:                                              ; preds = %248, %246
  %251 = phi i64 [ %247, %246 ], [ %249, %248 ]
  store i64 %251, ptr %58, align 8, !tbaa !9
  %252 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %252, ptr %32, align 8, !tbaa !9
  %253 = load ptr, ptr %16, align 8, !tbaa !5
  %254 = load i64, ptr %253, align 8, !tbaa !9
  %255 = mul nsw i64 %254, 3
  %256 = load i64, ptr %41, align 8, !tbaa !9
  %257 = load ptr, ptr %16, align 8, !tbaa !5
  %258 = load i64, ptr %257, align 8, !tbaa !9
  %259 = add nsw i64 %256, %258
  %260 = load ptr, ptr %16, align 8, !tbaa !5
  %261 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.1, ptr noundef %41, ptr noundef %260, ptr noundef @c_n1, ptr noundef @c_n1)
  %262 = mul nsw i64 %259, %261
  %263 = add nsw i64 %255, %262
  store i64 %263, ptr %33, align 8, !tbaa !9
  %264 = load i64, ptr %32, align 8, !tbaa !9
  %265 = load i64, ptr %33, align 8, !tbaa !9
  %266 = icmp sge i64 %264, %265
  br i1 %266, label %267, label %269

267:                                              ; preds = %250
  %268 = load i64, ptr %32, align 8, !tbaa !9
  br label %271

269:                                              ; preds = %250
  %270 = load i64, ptr %33, align 8, !tbaa !9
  br label %271

271:                                              ; preds = %269, %267
  %272 = phi i64 [ %268, %267 ], [ %270, %269 ]
  store i64 %272, ptr %62, align 8, !tbaa !9
  %273 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %273, ptr %32, align 8, !tbaa !9
  %274 = load ptr, ptr %16, align 8, !tbaa !5
  %275 = load i64, ptr %274, align 8, !tbaa !9
  %276 = mul nsw i64 %275, 3
  %277 = load ptr, ptr %17, align 8, !tbaa !5
  %278 = load i64, ptr %277, align 8, !tbaa !9
  %279 = load ptr, ptr %17, align 8, !tbaa !5
  %280 = load ptr, ptr %16, align 8, !tbaa !5
  %281 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %41, ptr noundef %279, ptr noundef %280, ptr noundef @c_n1)
  %282 = mul nsw i64 %278, %281
  %283 = add nsw i64 %276, %282
  store i64 %283, ptr %33, align 8, !tbaa !9
  %284 = load i64, ptr %32, align 8, !tbaa !9
  %285 = load i64, ptr %33, align 8, !tbaa !9
  %286 = icmp sge i64 %284, %285
  br i1 %286, label %287, label %289

287:                                              ; preds = %271
  %288 = load i64, ptr %32, align 8, !tbaa !9
  br label %291

289:                                              ; preds = %271
  %290 = load i64, ptr %33, align 8, !tbaa !9
  br label %291

291:                                              ; preds = %289, %287
  %292 = phi i64 [ %288, %287 ], [ %290, %289 ]
  store i64 %292, ptr %62, align 8, !tbaa !9
  %293 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %293, ptr %32, align 8, !tbaa !9
  %294 = load ptr, ptr %16, align 8, !tbaa !5
  %295 = load i64, ptr %294, align 8, !tbaa !9
  %296 = mul nsw i64 %295, 3
  %297 = load ptr, ptr %16, align 8, !tbaa !5
  %298 = load i64, ptr %297, align 8, !tbaa !9
  %299 = sub nsw i64 %298, 1
  %300 = load ptr, ptr %16, align 8, !tbaa !5
  %301 = load ptr, ptr %16, align 8, !tbaa !5
  %302 = load ptr, ptr %16, align 8, !tbaa !5
  %303 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef @.str.9, ptr noundef %300, ptr noundef %301, ptr noundef %302, ptr noundef @c_n1)
  %304 = mul nsw i64 %299, %303
  %305 = add nsw i64 %296, %304
  store i64 %305, ptr %33, align 8, !tbaa !9
  %306 = load i64, ptr %32, align 8, !tbaa !9
  %307 = load i64, ptr %33, align 8, !tbaa !9
  %308 = icmp sge i64 %306, %307
  br i1 %308, label %309, label %311

309:                                              ; preds = %291
  %310 = load i64, ptr %32, align 8, !tbaa !9
  br label %313

311:                                              ; preds = %291
  %312 = load i64, ptr %33, align 8, !tbaa !9
  br label %313

313:                                              ; preds = %311, %309
  %314 = phi i64 [ %310, %309 ], [ %312, %311 ]
  store i64 %314, ptr %62, align 8, !tbaa !9
  %315 = load i64, ptr %62, align 8, !tbaa !9
  %316 = load i64, ptr %58, align 8, !tbaa !9
  %317 = icmp sge i64 %315, %316
  br i1 %317, label %318, label %320

318:                                              ; preds = %313
  %319 = load i64, ptr %62, align 8, !tbaa !9
  br label %322

320:                                              ; preds = %313
  %321 = load i64, ptr %58, align 8, !tbaa !9
  br label %322

322:                                              ; preds = %320, %318
  %323 = phi i64 [ %319, %318 ], [ %321, %320 ]
  store i64 %323, ptr %62, align 8, !tbaa !9
  %324 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %324, ptr %32, align 8, !tbaa !9
  %325 = load ptr, ptr %16, align 8, !tbaa !5
  %326 = load i64, ptr %325, align 8, !tbaa !9
  %327 = load ptr, ptr %17, align 8, !tbaa !5
  %328 = load i64, ptr %327, align 8, !tbaa !9
  %329 = mul nsw i64 %326, %328
  store i64 %329, ptr %33, align 8, !tbaa !9
  %330 = load i64, ptr %32, align 8, !tbaa !9
  %331 = load i64, ptr %33, align 8, !tbaa !9
  %332 = icmp sge i64 %330, %331
  br i1 %332, label %333, label %335

333:                                              ; preds = %322
  %334 = load i64, ptr %32, align 8, !tbaa !9
  br label %337

335:                                              ; preds = %322
  %336 = load i64, ptr %33, align 8, !tbaa !9
  br label %337

337:                                              ; preds = %335, %333
  %338 = phi i64 [ %334, %333 ], [ %336, %335 ]
  store i64 %338, ptr %62, align 8, !tbaa !9
  %339 = load ptr, ptr %16, align 8, !tbaa !5
  %340 = load i64, ptr %339, align 8, !tbaa !9
  %341 = mul nsw i64 %340, 3
  %342 = load i64, ptr %41, align 8, !tbaa !9
  %343 = add nsw i64 %341, %342
  store i64 %343, ptr %32, align 8, !tbaa !9
  %344 = load ptr, ptr %16, align 8, !tbaa !5
  %345 = load i64, ptr %344, align 8, !tbaa !9
  %346 = mul nsw i64 %345, 3
  %347 = load ptr, ptr %17, align 8, !tbaa !5
  %348 = load i64, ptr %347, align 8, !tbaa !9
  %349 = add nsw i64 %346, %348
  store i64 %349, ptr %33, align 8, !tbaa !9
  %350 = load i64, ptr %32, align 8, !tbaa !9
  %351 = load i64, ptr %33, align 8, !tbaa !9
  %352 = icmp sge i64 %350, %351
  br i1 %352, label %353, label %355

353:                                              ; preds = %337
  %354 = load i64, ptr %32, align 8, !tbaa !9
  br label %357

355:                                              ; preds = %337
  %356 = load i64, ptr %33, align 8, !tbaa !9
  br label %357

357:                                              ; preds = %355, %353
  %358 = phi i64 [ %354, %353 ], [ %356, %355 ]
  store i64 %358, ptr %32, align 8, !tbaa !9
  %359 = load i64, ptr %32, align 8, !tbaa !9
  %360 = load i64, ptr %58, align 8, !tbaa !9
  %361 = icmp sge i64 %359, %360
  br i1 %361, label %362, label %364

362:                                              ; preds = %357
  %363 = load i64, ptr %32, align 8, !tbaa !9
  br label %366

364:                                              ; preds = %357
  %365 = load i64, ptr %58, align 8, !tbaa !9
  br label %366

366:                                              ; preds = %364, %362
  %367 = phi i64 [ %363, %362 ], [ %365, %364 ]
  store i64 %367, ptr %61, align 8, !tbaa !9
  %368 = load i64, ptr %61, align 8, !tbaa !9
  %369 = load i64, ptr %62, align 8, !tbaa !9
  %370 = icmp sge i64 %368, %369
  br i1 %370, label %371, label %373

371:                                              ; preds = %366
  %372 = load i64, ptr %61, align 8, !tbaa !9
  br label %375

373:                                              ; preds = %366
  %374 = load i64, ptr %62, align 8, !tbaa !9
  br label %375

375:                                              ; preds = %373, %371
  %376 = phi i64 [ %372, %371 ], [ %374, %373 ]
  store i64 %376, ptr %62, align 8, !tbaa !9
  br label %377

377:                                              ; preds = %375, %233
  %378 = load ptr, ptr %16, align 8, !tbaa !5
  %379 = load i64, ptr %378, align 8, !tbaa !9
  %380 = load ptr, ptr %15, align 8, !tbaa !5
  %381 = load i64, ptr %380, align 8, !tbaa !9
  %382 = icmp sgt i64 %379, %381
  br i1 %382, label %383, label %692

383:                                              ; preds = %377
  store i64 1, ptr %32, align 8, !tbaa !9
  %384 = load ptr, ptr %15, align 8, !tbaa !5
  %385 = load i64, ptr %384, align 8, !tbaa !9
  %386 = mul nsw i64 %385, 5
  store i64 %386, ptr %33, align 8, !tbaa !9
  %387 = load i64, ptr %32, align 8, !tbaa !9
  %388 = load i64, ptr %33, align 8, !tbaa !9
  %389 = icmp sge i64 %387, %388
  br i1 %389, label %390, label %392

390:                                              ; preds = %383
  %391 = load i64, ptr %32, align 8, !tbaa !9
  br label %394

392:                                              ; preds = %383
  %393 = load i64, ptr %33, align 8, !tbaa !9
  br label %394

394:                                              ; preds = %392, %390
  %395 = phi i64 [ %391, %390 ], [ %393, %392 ]
  store i64 %395, ptr %58, align 8, !tbaa !9
  %396 = load ptr, ptr %15, align 8, !tbaa !5
  %397 = load i64, ptr %396, align 8, !tbaa !9
  %398 = mul nsw i64 %397, 3
  %399 = load ptr, ptr %17, align 8, !tbaa !5
  %400 = load i64, ptr %399, align 8, !tbaa !9
  %401 = add nsw i64 %398, %400
  store i64 %401, ptr %32, align 8, !tbaa !9
  %402 = load ptr, ptr %15, align 8, !tbaa !5
  %403 = load i64, ptr %402, align 8, !tbaa !9
  %404 = mul nsw i64 %403, 3
  %405 = load ptr, ptr %16, align 8, !tbaa !5
  %406 = load i64, ptr %405, align 8, !tbaa !9
  %407 = add nsw i64 %404, %406
  store i64 %407, ptr %33, align 8, !tbaa !9
  %408 = load i64, ptr %32, align 8, !tbaa !9
  %409 = load i64, ptr %33, align 8, !tbaa !9
  %410 = icmp sge i64 %408, %409
  br i1 %410, label %411, label %413

411:                                              ; preds = %394
  %412 = load i64, ptr %32, align 8, !tbaa !9
  br label %415

413:                                              ; preds = %394
  %414 = load i64, ptr %33, align 8, !tbaa !9
  br label %415

415:                                              ; preds = %413, %411
  %416 = phi i64 [ %412, %411 ], [ %414, %413 ]
  store i64 %416, ptr %32, align 8, !tbaa !9
  %417 = load i64, ptr %32, align 8, !tbaa !9
  %418 = load i64, ptr %58, align 8, !tbaa !9
  %419 = icmp sge i64 %417, %418
  br i1 %419, label %420, label %422

420:                                              ; preds = %415
  %421 = load i64, ptr %32, align 8, !tbaa !9
  br label %424

422:                                              ; preds = %415
  %423 = load i64, ptr %58, align 8, !tbaa !9
  br label %424

424:                                              ; preds = %422, %420
  %425 = phi i64 [ %421, %420 ], [ %423, %422 ]
  store i64 %425, ptr %61, align 8, !tbaa !9
  %426 = load ptr, ptr %16, align 8, !tbaa !5
  %427 = load i64, ptr %426, align 8, !tbaa !9
  %428 = load i64, ptr %56, align 8, !tbaa !9
  %429 = icmp sge i64 %427, %428
  br i1 %429, label %430, label %611

430:                                              ; preds = %424
  %431 = load ptr, ptr %15, align 8, !tbaa !5
  %432 = load i64, ptr %431, align 8, !tbaa !9
  %433 = load ptr, ptr %15, align 8, !tbaa !5
  %434 = load i64, ptr %433, align 8, !tbaa !9
  %435 = load ptr, ptr %15, align 8, !tbaa !5
  %436 = load ptr, ptr %16, align 8, !tbaa !5
  %437 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.10, ptr noundef @.str.1, ptr noundef %435, ptr noundef %436, ptr noundef @c_n1, ptr noundef @c_n1)
  %438 = mul nsw i64 %434, %437
  %439 = add nsw i64 %432, %438
  store i64 %439, ptr %62, align 8, !tbaa !9
  %440 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %440, ptr %32, align 8, !tbaa !9
  %441 = load ptr, ptr %15, align 8, !tbaa !5
  %442 = load i64, ptr %441, align 8, !tbaa !9
  %443 = load ptr, ptr %15, align 8, !tbaa !5
  %444 = load i64, ptr %443, align 8, !tbaa !9
  %445 = mul nsw i64 %442, %444
  %446 = load ptr, ptr %15, align 8, !tbaa !5
  %447 = load i64, ptr %446, align 8, !tbaa !9
  %448 = shl i64 %447, 2
  %449 = add nsw i64 %445, %448
  %450 = load ptr, ptr %15, align 8, !tbaa !5
  %451 = load i64, ptr %450, align 8, !tbaa !9
  %452 = shl i64 %451, 1
  %453 = load ptr, ptr %15, align 8, !tbaa !5
  %454 = load ptr, ptr %15, align 8, !tbaa !5
  %455 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.1, ptr noundef %453, ptr noundef %454, ptr noundef @c_n1, ptr noundef @c_n1)
  %456 = mul nsw i64 %452, %455
  %457 = add nsw i64 %449, %456
  store i64 %457, ptr %33, align 8, !tbaa !9
  %458 = load i64, ptr %32, align 8, !tbaa !9
  %459 = load i64, ptr %33, align 8, !tbaa !9
  %460 = icmp sge i64 %458, %459
  br i1 %460, label %461, label %463

461:                                              ; preds = %430
  %462 = load i64, ptr %32, align 8, !tbaa !9
  br label %465

463:                                              ; preds = %430
  %464 = load i64, ptr %33, align 8, !tbaa !9
  br label %465

465:                                              ; preds = %463, %461
  %466 = phi i64 [ %462, %461 ], [ %464, %463 ]
  store i64 %466, ptr %62, align 8, !tbaa !9
  %467 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %467, ptr %32, align 8, !tbaa !9
  %468 = load ptr, ptr %15, align 8, !tbaa !5
  %469 = load i64, ptr %468, align 8, !tbaa !9
  %470 = load ptr, ptr %15, align 8, !tbaa !5
  %471 = load i64, ptr %470, align 8, !tbaa !9
  %472 = mul nsw i64 %469, %471
  %473 = load ptr, ptr %15, align 8, !tbaa !5
  %474 = load i64, ptr %473, align 8, !tbaa !9
  %475 = shl i64 %474, 2
  %476 = add nsw i64 %472, %475
  %477 = load ptr, ptr %17, align 8, !tbaa !5
  %478 = load i64, ptr %477, align 8, !tbaa !9
  %479 = load ptr, ptr %15, align 8, !tbaa !5
  %480 = load ptr, ptr %17, align 8, !tbaa !5
  %481 = load ptr, ptr %15, align 8, !tbaa !5
  %482 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %479, ptr noundef %480, ptr noundef %481, ptr noundef @c_n1)
  %483 = mul nsw i64 %478, %482
  %484 = add nsw i64 %476, %483
  store i64 %484, ptr %33, align 8, !tbaa !9
  %485 = load i64, ptr %32, align 8, !tbaa !9
  %486 = load i64, ptr %33, align 8, !tbaa !9
  %487 = icmp sge i64 %485, %486
  br i1 %487, label %488, label %490

488:                                              ; preds = %465
  %489 = load i64, ptr %32, align 8, !tbaa !9
  br label %492

490:                                              ; preds = %465
  %491 = load i64, ptr %33, align 8, !tbaa !9
  br label %492

492:                                              ; preds = %490, %488
  %493 = phi i64 [ %489, %488 ], [ %491, %490 ]
  store i64 %493, ptr %62, align 8, !tbaa !9
  %494 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %494, ptr %32, align 8, !tbaa !9
  %495 = load ptr, ptr %15, align 8, !tbaa !5
  %496 = load i64, ptr %495, align 8, !tbaa !9
  %497 = load ptr, ptr %15, align 8, !tbaa !5
  %498 = load i64, ptr %497, align 8, !tbaa !9
  %499 = mul nsw i64 %496, %498
  %500 = load ptr, ptr %15, align 8, !tbaa !5
  %501 = load i64, ptr %500, align 8, !tbaa !9
  %502 = shl i64 %501, 2
  %503 = add nsw i64 %499, %502
  %504 = load ptr, ptr %15, align 8, !tbaa !5
  %505 = load i64, ptr %504, align 8, !tbaa !9
  %506 = sub nsw i64 %505, 1
  %507 = load ptr, ptr %15, align 8, !tbaa !5
  %508 = load ptr, ptr %15, align 8, !tbaa !5
  %509 = load ptr, ptr %15, align 8, !tbaa !5
  %510 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef @.str.9, ptr noundef %507, ptr noundef %508, ptr noundef %509, ptr noundef @c_n1)
  %511 = mul nsw i64 %506, %510
  %512 = add nsw i64 %503, %511
  store i64 %512, ptr %33, align 8, !tbaa !9
  %513 = load i64, ptr %32, align 8, !tbaa !9
  %514 = load i64, ptr %33, align 8, !tbaa !9
  %515 = icmp sge i64 %513, %514
  br i1 %515, label %516, label %518

516:                                              ; preds = %492
  %517 = load i64, ptr %32, align 8, !tbaa !9
  br label %520

518:                                              ; preds = %492
  %519 = load i64, ptr %33, align 8, !tbaa !9
  br label %520

520:                                              ; preds = %518, %516
  %521 = phi i64 [ %517, %516 ], [ %519, %518 ]
  store i64 %521, ptr %62, align 8, !tbaa !9
  %522 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %522, ptr %32, align 8, !tbaa !9
  %523 = load ptr, ptr %15, align 8, !tbaa !5
  %524 = load i64, ptr %523, align 8, !tbaa !9
  %525 = load ptr, ptr %15, align 8, !tbaa !5
  %526 = load i64, ptr %525, align 8, !tbaa !9
  %527 = mul nsw i64 %524, %526
  %528 = load ptr, ptr %15, align 8, !tbaa !5
  %529 = load i64, ptr %528, align 8, !tbaa !9
  %530 = add nsw i64 %527, %529
  %531 = load i64, ptr %58, align 8, !tbaa !9
  %532 = add nsw i64 %530, %531
  store i64 %532, ptr %33, align 8, !tbaa !9
  %533 = load i64, ptr %32, align 8, !tbaa !9
  %534 = load i64, ptr %33, align 8, !tbaa !9
  %535 = icmp sge i64 %533, %534
  br i1 %535, label %536, label %538

536:                                              ; preds = %520
  %537 = load i64, ptr %32, align 8, !tbaa !9
  br label %540

538:                                              ; preds = %520
  %539 = load i64, ptr %33, align 8, !tbaa !9
  br label %540

540:                                              ; preds = %538, %536
  %541 = phi i64 [ %537, %536 ], [ %539, %538 ]
  store i64 %541, ptr %62, align 8, !tbaa !9
  %542 = load ptr, ptr %17, align 8, !tbaa !5
  %543 = load i64, ptr %542, align 8, !tbaa !9
  %544 = icmp sgt i64 %543, 1
  br i1 %544, label %545, label %570

545:                                              ; preds = %540
  %546 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %546, ptr %32, align 8, !tbaa !9
  %547 = load ptr, ptr %15, align 8, !tbaa !5
  %548 = load i64, ptr %547, align 8, !tbaa !9
  %549 = load ptr, ptr %15, align 8, !tbaa !5
  %550 = load i64, ptr %549, align 8, !tbaa !9
  %551 = mul nsw i64 %548, %550
  %552 = load ptr, ptr %15, align 8, !tbaa !5
  %553 = load i64, ptr %552, align 8, !tbaa !9
  %554 = add nsw i64 %551, %553
  %555 = load ptr, ptr %15, align 8, !tbaa !5
  %556 = load i64, ptr %555, align 8, !tbaa !9
  %557 = load ptr, ptr %17, align 8, !tbaa !5
  %558 = load i64, ptr %557, align 8, !tbaa !9
  %559 = mul nsw i64 %556, %558
  %560 = add nsw i64 %554, %559
  store i64 %560, ptr %33, align 8, !tbaa !9
  %561 = load i64, ptr %32, align 8, !tbaa !9
  %562 = load i64, ptr %33, align 8, !tbaa !9
  %563 = icmp sge i64 %561, %562
  br i1 %563, label %564, label %566

564:                                              ; preds = %545
  %565 = load i64, ptr %32, align 8, !tbaa !9
  br label %568

566:                                              ; preds = %545
  %567 = load i64, ptr %33, align 8, !tbaa !9
  br label %568

568:                                              ; preds = %566, %564
  %569 = phi i64 [ %565, %564 ], [ %567, %566 ]
  store i64 %569, ptr %62, align 8, !tbaa !9
  br label %590

570:                                              ; preds = %540
  %571 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %571, ptr %32, align 8, !tbaa !9
  %572 = load ptr, ptr %15, align 8, !tbaa !5
  %573 = load i64, ptr %572, align 8, !tbaa !9
  %574 = load ptr, ptr %15, align 8, !tbaa !5
  %575 = load i64, ptr %574, align 8, !tbaa !9
  %576 = mul nsw i64 %573, %575
  %577 = load ptr, ptr %15, align 8, !tbaa !5
  %578 = load i64, ptr %577, align 8, !tbaa !9
  %579 = shl i64 %578, 1
  %580 = add nsw i64 %576, %579
  store i64 %580, ptr %33, align 8, !tbaa !9
  %581 = load i64, ptr %32, align 8, !tbaa !9
  %582 = load i64, ptr %33, align 8, !tbaa !9
  %583 = icmp sge i64 %581, %582
  br i1 %583, label %584, label %586

584:                                              ; preds = %570
  %585 = load i64, ptr %32, align 8, !tbaa !9
  br label %588

586:                                              ; preds = %570
  %587 = load i64, ptr %33, align 8, !tbaa !9
  br label %588

588:                                              ; preds = %586, %584
  %589 = phi i64 [ %585, %584 ], [ %587, %586 ]
  store i64 %589, ptr %62, align 8, !tbaa !9
  br label %590

590:                                              ; preds = %588, %568
  %591 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %591, ptr %32, align 8, !tbaa !9
  %592 = load ptr, ptr %15, align 8, !tbaa !5
  %593 = load i64, ptr %592, align 8, !tbaa !9
  %594 = load ptr, ptr %17, align 8, !tbaa !5
  %595 = load i64, ptr %594, align 8, !tbaa !9
  %596 = load ptr, ptr %16, align 8, !tbaa !5
  %597 = load ptr, ptr %17, align 8, !tbaa !5
  %598 = load ptr, ptr %15, align 8, !tbaa !5
  %599 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.11, ptr noundef @.str.4, ptr noundef %596, ptr noundef %597, ptr noundef %598, ptr noundef @c_n1)
  %600 = mul nsw i64 %595, %599
  %601 = add nsw i64 %593, %600
  store i64 %601, ptr %33, align 8, !tbaa !9
  %602 = load i64, ptr %32, align 8, !tbaa !9
  %603 = load i64, ptr %33, align 8, !tbaa !9
  %604 = icmp sge i64 %602, %603
  br i1 %604, label %605, label %607

605:                                              ; preds = %590
  %606 = load i64, ptr %32, align 8, !tbaa !9
  br label %609

607:                                              ; preds = %590
  %608 = load i64, ptr %33, align 8, !tbaa !9
  br label %609

609:                                              ; preds = %607, %605
  %610 = phi i64 [ %606, %605 ], [ %608, %607 ]
  store i64 %610, ptr %62, align 8, !tbaa !9
  br label %691

611:                                              ; preds = %424
  %612 = load ptr, ptr %15, align 8, !tbaa !5
  %613 = load i64, ptr %612, align 8, !tbaa !9
  %614 = mul nsw i64 %613, 3
  %615 = load ptr, ptr %16, align 8, !tbaa !5
  %616 = load i64, ptr %615, align 8, !tbaa !9
  %617 = load ptr, ptr %15, align 8, !tbaa !5
  %618 = load i64, ptr %617, align 8, !tbaa !9
  %619 = add nsw i64 %616, %618
  %620 = load ptr, ptr %15, align 8, !tbaa !5
  %621 = load ptr, ptr %16, align 8, !tbaa !5
  %622 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.1, ptr noundef %620, ptr noundef %621, ptr noundef @c_n1, ptr noundef @c_n1)
  %623 = mul nsw i64 %619, %622
  %624 = add nsw i64 %614, %623
  store i64 %624, ptr %62, align 8, !tbaa !9
  %625 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %625, ptr %32, align 8, !tbaa !9
  %626 = load ptr, ptr %15, align 8, !tbaa !5
  %627 = load i64, ptr %626, align 8, !tbaa !9
  %628 = mul nsw i64 %627, 3
  %629 = load ptr, ptr %17, align 8, !tbaa !5
  %630 = load i64, ptr %629, align 8, !tbaa !9
  %631 = load ptr, ptr %15, align 8, !tbaa !5
  %632 = load ptr, ptr %17, align 8, !tbaa !5
  %633 = load ptr, ptr %15, align 8, !tbaa !5
  %634 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %631, ptr noundef %632, ptr noundef %633, ptr noundef @c_n1)
  %635 = mul nsw i64 %630, %634
  %636 = add nsw i64 %628, %635
  store i64 %636, ptr %33, align 8, !tbaa !9
  %637 = load i64, ptr %32, align 8, !tbaa !9
  %638 = load i64, ptr %33, align 8, !tbaa !9
  %639 = icmp sge i64 %637, %638
  br i1 %639, label %640, label %642

640:                                              ; preds = %611
  %641 = load i64, ptr %32, align 8, !tbaa !9
  br label %644

642:                                              ; preds = %611
  %643 = load i64, ptr %33, align 8, !tbaa !9
  br label %644

644:                                              ; preds = %642, %640
  %645 = phi i64 [ %641, %640 ], [ %643, %642 ]
  store i64 %645, ptr %62, align 8, !tbaa !9
  %646 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %646, ptr %32, align 8, !tbaa !9
  %647 = load ptr, ptr %15, align 8, !tbaa !5
  %648 = load i64, ptr %647, align 8, !tbaa !9
  %649 = mul nsw i64 %648, 3
  %650 = load ptr, ptr %15, align 8, !tbaa !5
  %651 = load i64, ptr %650, align 8, !tbaa !9
  %652 = load ptr, ptr %15, align 8, !tbaa !5
  %653 = load ptr, ptr %16, align 8, !tbaa !5
  %654 = load ptr, ptr %15, align 8, !tbaa !5
  %655 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef @.str.9, ptr noundef %652, ptr noundef %653, ptr noundef %654, ptr noundef @c_n1)
  %656 = mul nsw i64 %651, %655
  %657 = add nsw i64 %649, %656
  store i64 %657, ptr %33, align 8, !tbaa !9
  %658 = load i64, ptr %32, align 8, !tbaa !9
  %659 = load i64, ptr %33, align 8, !tbaa !9
  %660 = icmp sge i64 %658, %659
  br i1 %660, label %661, label %663

661:                                              ; preds = %644
  %662 = load i64, ptr %32, align 8, !tbaa !9
  br label %665

663:                                              ; preds = %644
  %664 = load i64, ptr %33, align 8, !tbaa !9
  br label %665

665:                                              ; preds = %663, %661
  %666 = phi i64 [ %662, %661 ], [ %664, %663 ]
  store i64 %666, ptr %62, align 8, !tbaa !9
  %667 = load i64, ptr %62, align 8, !tbaa !9
  %668 = load i64, ptr %58, align 8, !tbaa !9
  %669 = icmp sge i64 %667, %668
  br i1 %669, label %670, label %672

670:                                              ; preds = %665
  %671 = load i64, ptr %62, align 8, !tbaa !9
  br label %674

672:                                              ; preds = %665
  %673 = load i64, ptr %58, align 8, !tbaa !9
  br label %674

674:                                              ; preds = %672, %670
  %675 = phi i64 [ %671, %670 ], [ %673, %672 ]
  store i64 %675, ptr %62, align 8, !tbaa !9
  %676 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %676, ptr %32, align 8, !tbaa !9
  %677 = load ptr, ptr %16, align 8, !tbaa !5
  %678 = load i64, ptr %677, align 8, !tbaa !9
  %679 = load ptr, ptr %17, align 8, !tbaa !5
  %680 = load i64, ptr %679, align 8, !tbaa !9
  %681 = mul nsw i64 %678, %680
  store i64 %681, ptr %33, align 8, !tbaa !9
  %682 = load i64, ptr %32, align 8, !tbaa !9
  %683 = load i64, ptr %33, align 8, !tbaa !9
  %684 = icmp sge i64 %682, %683
  br i1 %684, label %685, label %687

685:                                              ; preds = %674
  %686 = load i64, ptr %32, align 8, !tbaa !9
  br label %689

687:                                              ; preds = %674
  %688 = load i64, ptr %33, align 8, !tbaa !9
  br label %689

689:                                              ; preds = %687, %685
  %690 = phi i64 [ %686, %685 ], [ %688, %687 ]
  store i64 %690, ptr %62, align 8, !tbaa !9
  br label %691

691:                                              ; preds = %689, %609
  br label %692

692:                                              ; preds = %691, %377
  %693 = load i64, ptr %61, align 8, !tbaa !9
  %694 = load i64, ptr %62, align 8, !tbaa !9
  %695 = icmp sge i64 %693, %694
  br i1 %695, label %696, label %698

696:                                              ; preds = %692
  %697 = load i64, ptr %61, align 8, !tbaa !9
  br label %700

698:                                              ; preds = %692
  %699 = load i64, ptr %62, align 8, !tbaa !9
  br label %700

700:                                              ; preds = %698, %696
  %701 = phi i64 [ %697, %696 ], [ %699, %698 ]
  store i64 %701, ptr %62, align 8, !tbaa !9
  br label %702

702:                                              ; preds = %700, %171
  %703 = load i64, ptr %62, align 8, !tbaa !9
  %704 = sitofp i64 %703 to double
  %705 = load ptr, ptr %25, align 8, !tbaa !5
  %706 = getelementptr inbounds double, ptr %705, i64 1
  store double %704, ptr %706, align 8, !tbaa !11
  %707 = load ptr, ptr %26, align 8, !tbaa !5
  %708 = load i64, ptr %707, align 8, !tbaa !9
  %709 = load i64, ptr %61, align 8, !tbaa !9
  %710 = icmp slt i64 %708, %709
  br i1 %710, label %711, label %716

711:                                              ; preds = %702
  %712 = load i64, ptr %64, align 8, !tbaa !9
  %713 = icmp ne i64 %712, 0
  br i1 %713, label %716, label %714

714:                                              ; preds = %711
  %715 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -12, ptr %715, align 8, !tbaa !9
  br label %716

716:                                              ; preds = %714, %711, %702
  br label %717

717:                                              ; preds = %716, %167
  %718 = load ptr, ptr %27, align 8, !tbaa !5
  %719 = load i64, ptr %718, align 8, !tbaa !9
  %720 = icmp ne i64 %719, 0
  br i1 %720, label %721, label %726

721:                                              ; preds = %717
  %722 = load ptr, ptr %27, align 8, !tbaa !5
  %723 = load i64, ptr %722, align 8, !tbaa !9
  %724 = sub nsw i64 0, %723
  store i64 %724, ptr %32, align 8, !tbaa !9
  %725 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %32)
  store i32 0, ptr %14, align 4
  store i32 1, ptr %65, align 4
  br label %2236

726:                                              ; preds = %717
  %727 = load i64, ptr %64, align 8, !tbaa !9
  %728 = icmp ne i64 %727, 0
  br i1 %728, label %729, label %730

729:                                              ; preds = %726
  store i32 0, ptr %14, align 4
  store i32 1, ptr %65, align 4
  br label %2236

730:                                              ; preds = %726
  br label %731

731:                                              ; preds = %730
  %732 = load ptr, ptr %15, align 8, !tbaa !5
  %733 = load i64, ptr %732, align 8, !tbaa !9
  %734 = icmp eq i64 %733, 0
  br i1 %734, label %739, label %735

735:                                              ; preds = %731
  %736 = load ptr, ptr %16, align 8, !tbaa !5
  %737 = load i64, ptr %736, align 8, !tbaa !9
  %738 = icmp eq i64 %737, 0
  br i1 %738, label %739, label %741

739:                                              ; preds = %735, %731
  %740 = load ptr, ptr %24, align 8, !tbaa !5
  store i64 0, ptr %740, align 8, !tbaa !9
  store i32 0, ptr %14, align 4
  store i32 1, ptr %65, align 4
  br label %2236

741:                                              ; preds = %735
  %742 = call double @dlamch_(ptr noundef @.str.9)
  store double %742, ptr %42, align 8, !tbaa !11
  %743 = call double @dlamch_(ptr noundef @.str.12)
  store double %743, ptr %51, align 8, !tbaa !11
  %744 = load double, ptr %51, align 8, !tbaa !11
  %745 = load double, ptr %42, align 8, !tbaa !11
  %746 = fdiv double %744, %745
  store double %746, ptr %63, align 8, !tbaa !11
  %747 = load double, ptr %63, align 8, !tbaa !11
  %748 = fdiv double 1.000000e+00, %747
  store double %748, ptr %59, align 8, !tbaa !11
  %749 = call i32 @dlabad_(ptr noundef %63, ptr noundef %59)
  %750 = load ptr, ptr %15, align 8, !tbaa !5
  %751 = load ptr, ptr %16, align 8, !tbaa !5
  %752 = load ptr, ptr %18, align 8, !tbaa !5
  %753 = load i64, ptr %29, align 8, !tbaa !9
  %754 = getelementptr inbounds double, ptr %752, i64 %753
  %755 = load ptr, ptr %19, align 8, !tbaa !5
  %756 = load ptr, ptr %25, align 8, !tbaa !5
  %757 = getelementptr inbounds double, ptr %756, i64 1
  %758 = call double @dlange_(ptr noundef @.str.13, ptr noundef %750, ptr noundef %751, ptr noundef %754, ptr noundef %755, ptr noundef %757)
  store double %758, ptr %44, align 8, !tbaa !11
  store i64 0, ptr %48, align 8, !tbaa !9
  %759 = load double, ptr %44, align 8, !tbaa !11
  %760 = fcmp ogt double %759, 0.000000e+00
  br i1 %760, label %761, label %774

761:                                              ; preds = %741
  %762 = load double, ptr %44, align 8, !tbaa !11
  %763 = load double, ptr %63, align 8, !tbaa !11
  %764 = fcmp olt double %762, %763
  br i1 %764, label %765, label %774

765:                                              ; preds = %761
  %766 = load ptr, ptr %15, align 8, !tbaa !5
  %767 = load ptr, ptr %16, align 8, !tbaa !5
  %768 = load ptr, ptr %18, align 8, !tbaa !5
  %769 = load i64, ptr %29, align 8, !tbaa !9
  %770 = getelementptr inbounds double, ptr %768, i64 %769
  %771 = load ptr, ptr %19, align 8, !tbaa !5
  %772 = load ptr, ptr %27, align 8, !tbaa !5
  %773 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %44, ptr noundef %63, ptr noundef %766, ptr noundef %767, ptr noundef %770, ptr noundef %771, ptr noundef %772)
  store i64 1, ptr %48, align 8, !tbaa !9
  br label %816

774:                                              ; preds = %761, %741
  %775 = load double, ptr %44, align 8, !tbaa !11
  %776 = load double, ptr %59, align 8, !tbaa !11
  %777 = fcmp ogt double %775, %776
  br i1 %777, label %778, label %787

778:                                              ; preds = %774
  %779 = load ptr, ptr %15, align 8, !tbaa !5
  %780 = load ptr, ptr %16, align 8, !tbaa !5
  %781 = load ptr, ptr %18, align 8, !tbaa !5
  %782 = load i64, ptr %29, align 8, !tbaa !9
  %783 = getelementptr inbounds double, ptr %781, i64 %782
  %784 = load ptr, ptr %19, align 8, !tbaa !5
  %785 = load ptr, ptr %27, align 8, !tbaa !5
  %786 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %44, ptr noundef %59, ptr noundef %779, ptr noundef %780, ptr noundef %783, ptr noundef %784, ptr noundef %785)
  store i64 2, ptr %48, align 8, !tbaa !9
  br label %815

787:                                              ; preds = %774
  %788 = load double, ptr %44, align 8, !tbaa !11
  %789 = fcmp oeq double %788, 0.000000e+00
  br i1 %789, label %790, label %814

790:                                              ; preds = %787
  %791 = load ptr, ptr %15, align 8, !tbaa !5
  %792 = load i64, ptr %791, align 8, !tbaa !9
  %793 = load ptr, ptr %16, align 8, !tbaa !5
  %794 = load i64, ptr %793, align 8, !tbaa !9
  %795 = icmp sge i64 %792, %794
  br i1 %795, label %796, label %799

796:                                              ; preds = %790
  %797 = load ptr, ptr %15, align 8, !tbaa !5
  %798 = load i64, ptr %797, align 8, !tbaa !9
  br label %802

799:                                              ; preds = %790
  %800 = load ptr, ptr %16, align 8, !tbaa !5
  %801 = load i64, ptr %800, align 8, !tbaa !9
  br label %802

802:                                              ; preds = %799, %796
  %803 = phi i64 [ %798, %796 ], [ %801, %799 ]
  store i64 %803, ptr %32, align 8, !tbaa !9
  %804 = load ptr, ptr %17, align 8, !tbaa !5
  %805 = load ptr, ptr %20, align 8, !tbaa !5
  %806 = load i64, ptr %31, align 8, !tbaa !9
  %807 = getelementptr inbounds double, ptr %805, i64 %806
  %808 = load ptr, ptr %21, align 8, !tbaa !5
  %809 = call i32 @dlaset_(ptr noundef @.str.15, ptr noundef %32, ptr noundef %804, ptr noundef @c_b74, ptr noundef @c_b74, ptr noundef %807, ptr noundef %808)
  %810 = load ptr, ptr %22, align 8, !tbaa !5
  %811 = getelementptr inbounds double, ptr %810, i64 1
  %812 = call i32 @dlaset_(ptr noundef @.str.15, ptr noundef %52, ptr noundef @c__1, ptr noundef @c_b74, ptr noundef @c_b74, ptr noundef %811, ptr noundef @c__1)
  %813 = load ptr, ptr %24, align 8, !tbaa !5
  store i64 0, ptr %813, align 8, !tbaa !9
  br label %2231

814:                                              ; preds = %787
  br label %815

815:                                              ; preds = %814, %778
  br label %816

816:                                              ; preds = %815, %765
  %817 = load ptr, ptr %15, align 8, !tbaa !5
  %818 = load ptr, ptr %17, align 8, !tbaa !5
  %819 = load ptr, ptr %20, align 8, !tbaa !5
  %820 = load i64, ptr %31, align 8, !tbaa !9
  %821 = getelementptr inbounds double, ptr %819, i64 %820
  %822 = load ptr, ptr %21, align 8, !tbaa !5
  %823 = load ptr, ptr %25, align 8, !tbaa !5
  %824 = getelementptr inbounds double, ptr %823, i64 1
  %825 = call double @dlange_(ptr noundef @.str.13, ptr noundef %817, ptr noundef %818, ptr noundef %821, ptr noundef %822, ptr noundef %824)
  store double %825, ptr %45, align 8, !tbaa !11
  store i64 0, ptr %49, align 8, !tbaa !9
  %826 = load double, ptr %45, align 8, !tbaa !11
  %827 = fcmp ogt double %826, 0.000000e+00
  br i1 %827, label %828, label %841

828:                                              ; preds = %816
  %829 = load double, ptr %45, align 8, !tbaa !11
  %830 = load double, ptr %63, align 8, !tbaa !11
  %831 = fcmp olt double %829, %830
  br i1 %831, label %832, label %841

832:                                              ; preds = %828
  %833 = load ptr, ptr %15, align 8, !tbaa !5
  %834 = load ptr, ptr %17, align 8, !tbaa !5
  %835 = load ptr, ptr %20, align 8, !tbaa !5
  %836 = load i64, ptr %31, align 8, !tbaa !9
  %837 = getelementptr inbounds double, ptr %835, i64 %836
  %838 = load ptr, ptr %21, align 8, !tbaa !5
  %839 = load ptr, ptr %27, align 8, !tbaa !5
  %840 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %45, ptr noundef %63, ptr noundef %833, ptr noundef %834, ptr noundef %837, ptr noundef %838, ptr noundef %839)
  store i64 1, ptr %49, align 8, !tbaa !9
  br label %855

841:                                              ; preds = %828, %816
  %842 = load double, ptr %45, align 8, !tbaa !11
  %843 = load double, ptr %59, align 8, !tbaa !11
  %844 = fcmp ogt double %842, %843
  br i1 %844, label %845, label %854

845:                                              ; preds = %841
  %846 = load ptr, ptr %15, align 8, !tbaa !5
  %847 = load ptr, ptr %17, align 8, !tbaa !5
  %848 = load ptr, ptr %20, align 8, !tbaa !5
  %849 = load i64, ptr %31, align 8, !tbaa !9
  %850 = getelementptr inbounds double, ptr %848, i64 %849
  %851 = load ptr, ptr %21, align 8, !tbaa !5
  %852 = load ptr, ptr %27, align 8, !tbaa !5
  %853 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %45, ptr noundef %59, ptr noundef %846, ptr noundef %847, ptr noundef %850, ptr noundef %851, ptr noundef %852)
  store i64 2, ptr %49, align 8, !tbaa !9
  br label %854

854:                                              ; preds = %845, %841
  br label %855

855:                                              ; preds = %854, %832
  %856 = load ptr, ptr %15, align 8, !tbaa !5
  %857 = load i64, ptr %856, align 8, !tbaa !9
  %858 = load ptr, ptr %16, align 8, !tbaa !5
  %859 = load i64, ptr %858, align 8, !tbaa !9
  %860 = icmp sge i64 %857, %859
  br i1 %860, label %861, label %1263

861:                                              ; preds = %855
  %862 = load ptr, ptr %15, align 8, !tbaa !5
  %863 = load i64, ptr %862, align 8, !tbaa !9
  store i64 %863, ptr %41, align 8, !tbaa !9
  %864 = load ptr, ptr %15, align 8, !tbaa !5
  %865 = load i64, ptr %864, align 8, !tbaa !9
  %866 = load i64, ptr %56, align 8, !tbaa !9
  %867 = icmp sge i64 %865, %866
  br i1 %867, label %868, label %935

868:                                              ; preds = %861
  %869 = load ptr, ptr %16, align 8, !tbaa !5
  %870 = load i64, ptr %869, align 8, !tbaa !9
  store i64 %870, ptr %41, align 8, !tbaa !9
  store i64 1, ptr %46, align 8, !tbaa !9
  %871 = load i64, ptr %46, align 8, !tbaa !9
  %872 = load ptr, ptr %16, align 8, !tbaa !5
  %873 = load i64, ptr %872, align 8, !tbaa !9
  %874 = add nsw i64 %871, %873
  store i64 %874, ptr %57, align 8, !tbaa !9
  %875 = load ptr, ptr %26, align 8, !tbaa !5
  %876 = load i64, ptr %875, align 8, !tbaa !9
  %877 = load i64, ptr %57, align 8, !tbaa !9
  %878 = sub nsw i64 %876, %877
  %879 = add nsw i64 %878, 1
  store i64 %879, ptr %32, align 8, !tbaa !9
  %880 = load ptr, ptr %15, align 8, !tbaa !5
  %881 = load ptr, ptr %16, align 8, !tbaa !5
  %882 = load ptr, ptr %18, align 8, !tbaa !5
  %883 = load i64, ptr %29, align 8, !tbaa !9
  %884 = getelementptr inbounds double, ptr %882, i64 %883
  %885 = load ptr, ptr %19, align 8, !tbaa !5
  %886 = load ptr, ptr %25, align 8, !tbaa !5
  %887 = load i64, ptr %46, align 8, !tbaa !9
  %888 = getelementptr inbounds double, ptr %886, i64 %887
  %889 = load ptr, ptr %25, align 8, !tbaa !5
  %890 = load i64, ptr %57, align 8, !tbaa !9
  %891 = getelementptr inbounds double, ptr %889, i64 %890
  %892 = load ptr, ptr %27, align 8, !tbaa !5
  %893 = call i32 @dgeqrf_(ptr noundef %880, ptr noundef %881, ptr noundef %884, ptr noundef %885, ptr noundef %888, ptr noundef %891, ptr noundef %32, ptr noundef %892)
  %894 = load ptr, ptr %26, align 8, !tbaa !5
  %895 = load i64, ptr %894, align 8, !tbaa !9
  %896 = load i64, ptr %57, align 8, !tbaa !9
  %897 = sub nsw i64 %895, %896
  %898 = add nsw i64 %897, 1
  store i64 %898, ptr %32, align 8, !tbaa !9
  %899 = load ptr, ptr %15, align 8, !tbaa !5
  %900 = load ptr, ptr %17, align 8, !tbaa !5
  %901 = load ptr, ptr %16, align 8, !tbaa !5
  %902 = load ptr, ptr %18, align 8, !tbaa !5
  %903 = load i64, ptr %29, align 8, !tbaa !9
  %904 = getelementptr inbounds double, ptr %902, i64 %903
  %905 = load ptr, ptr %19, align 8, !tbaa !5
  %906 = load ptr, ptr %25, align 8, !tbaa !5
  %907 = load i64, ptr %46, align 8, !tbaa !9
  %908 = getelementptr inbounds double, ptr %906, i64 %907
  %909 = load ptr, ptr %20, align 8, !tbaa !5
  %910 = load i64, ptr %31, align 8, !tbaa !9
  %911 = getelementptr inbounds double, ptr %909, i64 %910
  %912 = load ptr, ptr %21, align 8, !tbaa !5
  %913 = load ptr, ptr %25, align 8, !tbaa !5
  %914 = load i64, ptr %57, align 8, !tbaa !9
  %915 = getelementptr inbounds double, ptr %913, i64 %914
  %916 = load ptr, ptr %27, align 8, !tbaa !5
  %917 = call i32 @dormqr_(ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef %899, ptr noundef %900, ptr noundef %901, ptr noundef %904, ptr noundef %905, ptr noundef %908, ptr noundef %911, ptr noundef %912, ptr noundef %915, ptr noundef %32, ptr noundef %916)
  %918 = load ptr, ptr %16, align 8, !tbaa !5
  %919 = load i64, ptr %918, align 8, !tbaa !9
  %920 = icmp sgt i64 %919, 1
  br i1 %920, label %921, label %934

921:                                              ; preds = %868
  %922 = load ptr, ptr %16, align 8, !tbaa !5
  %923 = load i64, ptr %922, align 8, !tbaa !9
  %924 = sub nsw i64 %923, 1
  store i64 %924, ptr %32, align 8, !tbaa !9
  %925 = load ptr, ptr %16, align 8, !tbaa !5
  %926 = load i64, ptr %925, align 8, !tbaa !9
  %927 = sub nsw i64 %926, 1
  store i64 %927, ptr %33, align 8, !tbaa !9
  %928 = load ptr, ptr %18, align 8, !tbaa !5
  %929 = load i64, ptr %28, align 8, !tbaa !9
  %930 = add nsw i64 %929, 2
  %931 = getelementptr inbounds double, ptr %928, i64 %930
  %932 = load ptr, ptr %19, align 8, !tbaa !5
  %933 = call i32 @dlaset_(ptr noundef @.str.16, ptr noundef %32, ptr noundef %33, ptr noundef @c_b74, ptr noundef @c_b74, ptr noundef %931, ptr noundef %932)
  br label %934

934:                                              ; preds = %921, %868
  br label %935

935:                                              ; preds = %934, %861
  store i64 1, ptr %39, align 8, !tbaa !9
  %936 = load i64, ptr %39, align 8, !tbaa !9
  %937 = load ptr, ptr %16, align 8, !tbaa !5
  %938 = load i64, ptr %937, align 8, !tbaa !9
  %939 = add nsw i64 %936, %938
  store i64 %939, ptr %55, align 8, !tbaa !9
  %940 = load i64, ptr %55, align 8, !tbaa !9
  %941 = load ptr, ptr %16, align 8, !tbaa !5
  %942 = load i64, ptr %941, align 8, !tbaa !9
  %943 = add nsw i64 %940, %942
  store i64 %943, ptr %54, align 8, !tbaa !9
  %944 = load i64, ptr %54, align 8, !tbaa !9
  %945 = load ptr, ptr %16, align 8, !tbaa !5
  %946 = load i64, ptr %945, align 8, !tbaa !9
  %947 = add nsw i64 %944, %946
  store i64 %947, ptr %57, align 8, !tbaa !9
  %948 = load ptr, ptr %26, align 8, !tbaa !5
  %949 = load i64, ptr %948, align 8, !tbaa !9
  %950 = load i64, ptr %57, align 8, !tbaa !9
  %951 = sub nsw i64 %949, %950
  %952 = add nsw i64 %951, 1
  store i64 %952, ptr %32, align 8, !tbaa !9
  %953 = load ptr, ptr %16, align 8, !tbaa !5
  %954 = load ptr, ptr %18, align 8, !tbaa !5
  %955 = load i64, ptr %29, align 8, !tbaa !9
  %956 = getelementptr inbounds double, ptr %954, i64 %955
  %957 = load ptr, ptr %19, align 8, !tbaa !5
  %958 = load ptr, ptr %22, align 8, !tbaa !5
  %959 = getelementptr inbounds double, ptr %958, i64 1
  %960 = load ptr, ptr %25, align 8, !tbaa !5
  %961 = load i64, ptr %39, align 8, !tbaa !9
  %962 = getelementptr inbounds double, ptr %960, i64 %961
  %963 = load ptr, ptr %25, align 8, !tbaa !5
  %964 = load i64, ptr %55, align 8, !tbaa !9
  %965 = getelementptr inbounds double, ptr %963, i64 %964
  %966 = load ptr, ptr %25, align 8, !tbaa !5
  %967 = load i64, ptr %54, align 8, !tbaa !9
  %968 = getelementptr inbounds double, ptr %966, i64 %967
  %969 = load ptr, ptr %25, align 8, !tbaa !5
  %970 = load i64, ptr %57, align 8, !tbaa !9
  %971 = getelementptr inbounds double, ptr %969, i64 %970
  %972 = load ptr, ptr %27, align 8, !tbaa !5
  %973 = call i32 @dgebrd_(ptr noundef %41, ptr noundef %953, ptr noundef %956, ptr noundef %957, ptr noundef %959, ptr noundef %962, ptr noundef %965, ptr noundef %968, ptr noundef %971, ptr noundef %32, ptr noundef %972)
  %974 = load ptr, ptr %26, align 8, !tbaa !5
  %975 = load i64, ptr %974, align 8, !tbaa !9
  %976 = load i64, ptr %57, align 8, !tbaa !9
  %977 = sub nsw i64 %975, %976
  %978 = add nsw i64 %977, 1
  store i64 %978, ptr %32, align 8, !tbaa !9
  %979 = load ptr, ptr %17, align 8, !tbaa !5
  %980 = load ptr, ptr %16, align 8, !tbaa !5
  %981 = load ptr, ptr %18, align 8, !tbaa !5
  %982 = load i64, ptr %29, align 8, !tbaa !9
  %983 = getelementptr inbounds double, ptr %981, i64 %982
  %984 = load ptr, ptr %19, align 8, !tbaa !5
  %985 = load ptr, ptr %25, align 8, !tbaa !5
  %986 = load i64, ptr %55, align 8, !tbaa !9
  %987 = getelementptr inbounds double, ptr %985, i64 %986
  %988 = load ptr, ptr %20, align 8, !tbaa !5
  %989 = load i64, ptr %31, align 8, !tbaa !9
  %990 = getelementptr inbounds double, ptr %988, i64 %989
  %991 = load ptr, ptr %21, align 8, !tbaa !5
  %992 = load ptr, ptr %25, align 8, !tbaa !5
  %993 = load i64, ptr %57, align 8, !tbaa !9
  %994 = getelementptr inbounds double, ptr %992, i64 %993
  %995 = load ptr, ptr %27, align 8, !tbaa !5
  %996 = call i32 @dormbr_(ptr noundef @.str.18, ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef %41, ptr noundef %979, ptr noundef %980, ptr noundef %983, ptr noundef %984, ptr noundef %987, ptr noundef %990, ptr noundef %991, ptr noundef %994, ptr noundef %32, ptr noundef %995)
  %997 = load ptr, ptr %26, align 8, !tbaa !5
  %998 = load i64, ptr %997, align 8, !tbaa !9
  %999 = load i64, ptr %57, align 8, !tbaa !9
  %1000 = sub nsw i64 %998, %999
  %1001 = add nsw i64 %1000, 1
  store i64 %1001, ptr %32, align 8, !tbaa !9
  %1002 = load ptr, ptr %16, align 8, !tbaa !5
  %1003 = load ptr, ptr %16, align 8, !tbaa !5
  %1004 = load ptr, ptr %16, align 8, !tbaa !5
  %1005 = load ptr, ptr %18, align 8, !tbaa !5
  %1006 = load i64, ptr %29, align 8, !tbaa !9
  %1007 = getelementptr inbounds double, ptr %1005, i64 %1006
  %1008 = load ptr, ptr %19, align 8, !tbaa !5
  %1009 = load ptr, ptr %25, align 8, !tbaa !5
  %1010 = load i64, ptr %54, align 8, !tbaa !9
  %1011 = getelementptr inbounds double, ptr %1009, i64 %1010
  %1012 = load ptr, ptr %25, align 8, !tbaa !5
  %1013 = load i64, ptr %57, align 8, !tbaa !9
  %1014 = getelementptr inbounds double, ptr %1012, i64 %1013
  %1015 = load ptr, ptr %27, align 8, !tbaa !5
  %1016 = call i32 @dorgbr_(ptr noundef @.str.9, ptr noundef %1002, ptr noundef %1003, ptr noundef %1004, ptr noundef %1007, ptr noundef %1008, ptr noundef %1011, ptr noundef %1014, ptr noundef %32, ptr noundef %1015)
  %1017 = load i64, ptr %39, align 8, !tbaa !9
  %1018 = load ptr, ptr %16, align 8, !tbaa !5
  %1019 = load i64, ptr %1018, align 8, !tbaa !9
  %1020 = add nsw i64 %1017, %1019
  store i64 %1020, ptr %57, align 8, !tbaa !9
  %1021 = load ptr, ptr %16, align 8, !tbaa !5
  %1022 = load ptr, ptr %16, align 8, !tbaa !5
  %1023 = load ptr, ptr %17, align 8, !tbaa !5
  %1024 = load ptr, ptr %22, align 8, !tbaa !5
  %1025 = getelementptr inbounds double, ptr %1024, i64 1
  %1026 = load ptr, ptr %25, align 8, !tbaa !5
  %1027 = load i64, ptr %39, align 8, !tbaa !9
  %1028 = getelementptr inbounds double, ptr %1026, i64 %1027
  %1029 = load ptr, ptr %18, align 8, !tbaa !5
  %1030 = load i64, ptr %29, align 8, !tbaa !9
  %1031 = getelementptr inbounds double, ptr %1029, i64 %1030
  %1032 = load ptr, ptr %19, align 8, !tbaa !5
  %1033 = getelementptr inbounds [1 x double], ptr %47, i64 0, i64 0
  %1034 = load ptr, ptr %20, align 8, !tbaa !5
  %1035 = load i64, ptr %31, align 8, !tbaa !9
  %1036 = getelementptr inbounds double, ptr %1034, i64 %1035
  %1037 = load ptr, ptr %21, align 8, !tbaa !5
  %1038 = load ptr, ptr %25, align 8, !tbaa !5
  %1039 = load i64, ptr %57, align 8, !tbaa !9
  %1040 = getelementptr inbounds double, ptr %1038, i64 %1039
  %1041 = load ptr, ptr %27, align 8, !tbaa !5
  %1042 = call i32 @dbdsqr_(ptr noundef @.str.19, ptr noundef %1021, ptr noundef %1022, ptr noundef @c__0, ptr noundef %1023, ptr noundef %1025, ptr noundef %1028, ptr noundef %1031, ptr noundef %1032, ptr noundef %1033, ptr noundef @c__1, ptr noundef %1036, ptr noundef %1037, ptr noundef %1040, ptr noundef %1041)
  %1043 = load ptr, ptr %27, align 8, !tbaa !5
  %1044 = load i64, ptr %1043, align 8, !tbaa !9
  %1045 = icmp ne i64 %1044, 0
  br i1 %1045, label %1046, label %1047

1046:                                             ; preds = %935
  br label %2231

1047:                                             ; preds = %935
  %1048 = load ptr, ptr %23, align 8, !tbaa !5
  %1049 = load double, ptr %1048, align 8, !tbaa !11
  %1050 = load ptr, ptr %22, align 8, !tbaa !5
  %1051 = getelementptr inbounds double, ptr %1050, i64 1
  %1052 = load double, ptr %1051, align 8, !tbaa !11
  %1053 = fmul double %1049, %1052
  store double %1053, ptr %36, align 8, !tbaa !11
  %1054 = load double, ptr %36, align 8, !tbaa !11
  %1055 = load double, ptr %51, align 8, !tbaa !11
  %1056 = fcmp oge double %1054, %1055
  br i1 %1056, label %1057, label %1059

1057:                                             ; preds = %1047
  %1058 = load double, ptr %36, align 8, !tbaa !11
  br label %1061

1059:                                             ; preds = %1047
  %1060 = load double, ptr %51, align 8, !tbaa !11
  br label %1061

1061:                                             ; preds = %1059, %1057
  %1062 = phi double [ %1058, %1057 ], [ %1060, %1059 ]
  store double %1062, ptr %43, align 8, !tbaa !11
  %1063 = load ptr, ptr %23, align 8, !tbaa !5
  %1064 = load double, ptr %1063, align 8, !tbaa !11
  %1065 = fcmp olt double %1064, 0.000000e+00
  br i1 %1065, label %1066, label %1081

1066:                                             ; preds = %1061
  %1067 = load double, ptr %42, align 8, !tbaa !11
  %1068 = load ptr, ptr %22, align 8, !tbaa !5
  %1069 = getelementptr inbounds double, ptr %1068, i64 1
  %1070 = load double, ptr %1069, align 8, !tbaa !11
  %1071 = fmul double %1067, %1070
  store double %1071, ptr %36, align 8, !tbaa !11
  %1072 = load double, ptr %36, align 8, !tbaa !11
  %1073 = load double, ptr %51, align 8, !tbaa !11
  %1074 = fcmp oge double %1072, %1073
  br i1 %1074, label %1075, label %1077

1075:                                             ; preds = %1066
  %1076 = load double, ptr %36, align 8, !tbaa !11
  br label %1079

1077:                                             ; preds = %1066
  %1078 = load double, ptr %51, align 8, !tbaa !11
  br label %1079

1079:                                             ; preds = %1077, %1075
  %1080 = phi double [ %1076, %1075 ], [ %1078, %1077 ]
  store double %1080, ptr %43, align 8, !tbaa !11
  br label %1081

1081:                                             ; preds = %1079, %1061
  %1082 = load ptr, ptr %24, align 8, !tbaa !5
  store i64 0, ptr %1082, align 8, !tbaa !9
  %1083 = load ptr, ptr %16, align 8, !tbaa !5
  %1084 = load i64, ptr %1083, align 8, !tbaa !9
  store i64 %1084, ptr %32, align 8, !tbaa !9
  store i64 1, ptr %37, align 8, !tbaa !9
  br label %1085

1085:                                             ; preds = %1121, %1081
  %1086 = load i64, ptr %37, align 8, !tbaa !9
  %1087 = load i64, ptr %32, align 8, !tbaa !9
  %1088 = icmp sle i64 %1086, %1087
  br i1 %1088, label %1089, label %1124

1089:                                             ; preds = %1085
  %1090 = load ptr, ptr %22, align 8, !tbaa !5
  %1091 = load i64, ptr %37, align 8, !tbaa !9
  %1092 = getelementptr inbounds double, ptr %1090, i64 %1091
  %1093 = load double, ptr %1092, align 8, !tbaa !11
  %1094 = load double, ptr %43, align 8, !tbaa !11
  %1095 = fcmp ogt double %1093, %1094
  br i1 %1095, label %1096, label %1111

1096:                                             ; preds = %1089
  %1097 = load ptr, ptr %17, align 8, !tbaa !5
  %1098 = load ptr, ptr %22, align 8, !tbaa !5
  %1099 = load i64, ptr %37, align 8, !tbaa !9
  %1100 = getelementptr inbounds double, ptr %1098, i64 %1099
  %1101 = load ptr, ptr %20, align 8, !tbaa !5
  %1102 = load i64, ptr %37, align 8, !tbaa !9
  %1103 = load i64, ptr %30, align 8, !tbaa !9
  %1104 = add nsw i64 %1102, %1103
  %1105 = getelementptr inbounds double, ptr %1101, i64 %1104
  %1106 = load ptr, ptr %21, align 8, !tbaa !5
  %1107 = call i32 @drscl_(ptr noundef %1097, ptr noundef %1100, ptr noundef %1105, ptr noundef %1106)
  %1108 = load ptr, ptr %24, align 8, !tbaa !5
  %1109 = load i64, ptr %1108, align 8, !tbaa !9
  %1110 = add nsw i64 %1109, 1
  store i64 %1110, ptr %1108, align 8, !tbaa !9
  br label %1120

1111:                                             ; preds = %1089
  %1112 = load ptr, ptr %17, align 8, !tbaa !5
  %1113 = load ptr, ptr %20, align 8, !tbaa !5
  %1114 = load i64, ptr %37, align 8, !tbaa !9
  %1115 = load i64, ptr %30, align 8, !tbaa !9
  %1116 = add nsw i64 %1114, %1115
  %1117 = getelementptr inbounds double, ptr %1113, i64 %1116
  %1118 = load ptr, ptr %21, align 8, !tbaa !5
  %1119 = call i32 @dlaset_(ptr noundef @.str.15, ptr noundef @c__1, ptr noundef %1112, ptr noundef @c_b74, ptr noundef @c_b74, ptr noundef %1117, ptr noundef %1118)
  br label %1120

1120:                                             ; preds = %1111, %1096
  br label %1121

1121:                                             ; preds = %1120
  %1122 = load i64, ptr %37, align 8, !tbaa !9
  %1123 = add nsw i64 %1122, 1
  store i64 %1123, ptr %37, align 8, !tbaa !9
  br label %1085, !llvm.loop !13

1124:                                             ; preds = %1085
  %1125 = load ptr, ptr %26, align 8, !tbaa !5
  %1126 = load i64, ptr %1125, align 8, !tbaa !9
  %1127 = load ptr, ptr %21, align 8, !tbaa !5
  %1128 = load i64, ptr %1127, align 8, !tbaa !9
  %1129 = load ptr, ptr %17, align 8, !tbaa !5
  %1130 = load i64, ptr %1129, align 8, !tbaa !9
  %1131 = mul nsw i64 %1128, %1130
  %1132 = icmp sge i64 %1126, %1131
  br i1 %1132, label %1133, label %1163

1133:                                             ; preds = %1124
  %1134 = load ptr, ptr %17, align 8, !tbaa !5
  %1135 = load i64, ptr %1134, align 8, !tbaa !9
  %1136 = icmp sgt i64 %1135, 1
  br i1 %1136, label %1137, label %1163

1137:                                             ; preds = %1133
  %1138 = load ptr, ptr %16, align 8, !tbaa !5
  %1139 = load ptr, ptr %17, align 8, !tbaa !5
  %1140 = load ptr, ptr %16, align 8, !tbaa !5
  %1141 = load ptr, ptr %18, align 8, !tbaa !5
  %1142 = load i64, ptr %29, align 8, !tbaa !9
  %1143 = getelementptr inbounds double, ptr %1141, i64 %1142
  %1144 = load ptr, ptr %19, align 8, !tbaa !5
  %1145 = load ptr, ptr %20, align 8, !tbaa !5
  %1146 = load i64, ptr %31, align 8, !tbaa !9
  %1147 = getelementptr inbounds double, ptr %1145, i64 %1146
  %1148 = load ptr, ptr %21, align 8, !tbaa !5
  %1149 = load ptr, ptr %25, align 8, !tbaa !5
  %1150 = getelementptr inbounds double, ptr %1149, i64 1
  %1151 = load ptr, ptr %21, align 8, !tbaa !5
  %1152 = call i32 @f2c_dgemm(ptr noundef @.str.17, ptr noundef @.str.20, ptr noundef %1138, ptr noundef %1139, ptr noundef %1140, ptr noundef @c_b108, ptr noundef %1143, ptr noundef %1144, ptr noundef %1147, ptr noundef %1148, ptr noundef @c_b74, ptr noundef %1150, ptr noundef %1151)
  %1153 = load ptr, ptr %16, align 8, !tbaa !5
  %1154 = load ptr, ptr %17, align 8, !tbaa !5
  %1155 = load ptr, ptr %25, align 8, !tbaa !5
  %1156 = getelementptr inbounds double, ptr %1155, i64 1
  %1157 = load ptr, ptr %21, align 8, !tbaa !5
  %1158 = load ptr, ptr %20, align 8, !tbaa !5
  %1159 = load i64, ptr %31, align 8, !tbaa !9
  %1160 = getelementptr inbounds double, ptr %1158, i64 %1159
  %1161 = load ptr, ptr %21, align 8, !tbaa !5
  %1162 = call i32 @dlacpy_(ptr noundef @.str.14, ptr noundef %1153, ptr noundef %1154, ptr noundef %1156, ptr noundef %1157, ptr noundef %1160, ptr noundef %1161)
  br label %1262

1163:                                             ; preds = %1133, %1124
  %1164 = load ptr, ptr %17, align 8, !tbaa !5
  %1165 = load i64, ptr %1164, align 8, !tbaa !9
  %1166 = icmp sgt i64 %1165, 1
  br i1 %1166, label %1167, label %1241

1167:                                             ; preds = %1163
  %1168 = load ptr, ptr %26, align 8, !tbaa !5
  %1169 = load i64, ptr %1168, align 8, !tbaa !9
  %1170 = load ptr, ptr %16, align 8, !tbaa !5
  %1171 = load i64, ptr %1170, align 8, !tbaa !9
  %1172 = sdiv i64 %1169, %1171
  store i64 %1172, ptr %50, align 8, !tbaa !9
  %1173 = load ptr, ptr %17, align 8, !tbaa !5
  %1174 = load i64, ptr %1173, align 8, !tbaa !9
  store i64 %1174, ptr %32, align 8, !tbaa !9
  %1175 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %1175, ptr %33, align 8, !tbaa !9
  store i64 1, ptr %37, align 8, !tbaa !9
  br label %1176

1176:                                             ; preds = %1236, %1167
  %1177 = load i64, ptr %33, align 8, !tbaa !9
  %1178 = icmp slt i64 %1177, 0
  br i1 %1178, label %1179, label %1184

1179:                                             ; preds = %1176
  %1180 = load i64, ptr %37, align 8, !tbaa !9
  %1181 = load i64, ptr %32, align 8, !tbaa !9
  %1182 = icmp sge i64 %1180, %1181
  %1183 = zext i1 %1182 to i32
  br label %1189

1184:                                             ; preds = %1176
  %1185 = load i64, ptr %37, align 8, !tbaa !9
  %1186 = load i64, ptr %32, align 8, !tbaa !9
  %1187 = icmp sle i64 %1185, %1186
  %1188 = zext i1 %1187 to i32
  br label %1189

1189:                                             ; preds = %1184, %1179
  %1190 = phi i32 [ %1183, %1179 ], [ %1188, %1184 ]
  %1191 = icmp ne i32 %1190, 0
  br i1 %1191, label %1192, label %1240

1192:                                             ; preds = %1189
  %1193 = load ptr, ptr %17, align 8, !tbaa !5
  %1194 = load i64, ptr %1193, align 8, !tbaa !9
  %1195 = load i64, ptr %37, align 8, !tbaa !9
  %1196 = sub nsw i64 %1194, %1195
  %1197 = add nsw i64 %1196, 1
  store i64 %1197, ptr %34, align 8, !tbaa !9
  %1198 = load i64, ptr %34, align 8, !tbaa !9
  %1199 = load i64, ptr %50, align 8, !tbaa !9
  %1200 = icmp sle i64 %1198, %1199
  br i1 %1200, label %1201, label %1203

1201:                                             ; preds = %1192
  %1202 = load i64, ptr %34, align 8, !tbaa !9
  br label %1205

1203:                                             ; preds = %1192
  %1204 = load i64, ptr %50, align 8, !tbaa !9
  br label %1205

1205:                                             ; preds = %1203, %1201
  %1206 = phi i64 [ %1202, %1201 ], [ %1204, %1203 ]
  store i64 %1206, ptr %38, align 8, !tbaa !9
  %1207 = load ptr, ptr %16, align 8, !tbaa !5
  %1208 = load ptr, ptr %16, align 8, !tbaa !5
  %1209 = load ptr, ptr %18, align 8, !tbaa !5
  %1210 = load i64, ptr %29, align 8, !tbaa !9
  %1211 = getelementptr inbounds double, ptr %1209, i64 %1210
  %1212 = load ptr, ptr %19, align 8, !tbaa !5
  %1213 = load ptr, ptr %20, align 8, !tbaa !5
  %1214 = load i64, ptr %37, align 8, !tbaa !9
  %1215 = load i64, ptr %30, align 8, !tbaa !9
  %1216 = mul nsw i64 %1214, %1215
  %1217 = add nsw i64 %1216, 1
  %1218 = getelementptr inbounds double, ptr %1213, i64 %1217
  %1219 = load ptr, ptr %21, align 8, !tbaa !5
  %1220 = load ptr, ptr %25, align 8, !tbaa !5
  %1221 = getelementptr inbounds double, ptr %1220, i64 1
  %1222 = load ptr, ptr %16, align 8, !tbaa !5
  %1223 = call i32 @f2c_dgemm(ptr noundef @.str.17, ptr noundef @.str.20, ptr noundef %1207, ptr noundef %38, ptr noundef %1208, ptr noundef @c_b108, ptr noundef %1211, ptr noundef %1212, ptr noundef %1218, ptr noundef %1219, ptr noundef @c_b74, ptr noundef %1221, ptr noundef %1222)
  %1224 = load ptr, ptr %16, align 8, !tbaa !5
  %1225 = load ptr, ptr %25, align 8, !tbaa !5
  %1226 = getelementptr inbounds double, ptr %1225, i64 1
  %1227 = load ptr, ptr %16, align 8, !tbaa !5
  %1228 = load ptr, ptr %20, align 8, !tbaa !5
  %1229 = load i64, ptr %37, align 8, !tbaa !9
  %1230 = load i64, ptr %30, align 8, !tbaa !9
  %1231 = mul nsw i64 %1229, %1230
  %1232 = add nsw i64 %1231, 1
  %1233 = getelementptr inbounds double, ptr %1228, i64 %1232
  %1234 = load ptr, ptr %21, align 8, !tbaa !5
  %1235 = call i32 @dlacpy_(ptr noundef @.str.14, ptr noundef %1224, ptr noundef %38, ptr noundef %1226, ptr noundef %1227, ptr noundef %1233, ptr noundef %1234)
  br label %1236

1236:                                             ; preds = %1205
  %1237 = load i64, ptr %33, align 8, !tbaa !9
  %1238 = load i64, ptr %37, align 8, !tbaa !9
  %1239 = add nsw i64 %1238, %1237
  store i64 %1239, ptr %37, align 8, !tbaa !9
  br label %1176, !llvm.loop !15

1240:                                             ; preds = %1189
  br label %1261

1241:                                             ; preds = %1163
  %1242 = load ptr, ptr %16, align 8, !tbaa !5
  %1243 = load ptr, ptr %16, align 8, !tbaa !5
  %1244 = load ptr, ptr %18, align 8, !tbaa !5
  %1245 = load i64, ptr %29, align 8, !tbaa !9
  %1246 = getelementptr inbounds double, ptr %1244, i64 %1245
  %1247 = load ptr, ptr %19, align 8, !tbaa !5
  %1248 = load ptr, ptr %20, align 8, !tbaa !5
  %1249 = load i64, ptr %31, align 8, !tbaa !9
  %1250 = getelementptr inbounds double, ptr %1248, i64 %1249
  %1251 = load ptr, ptr %25, align 8, !tbaa !5
  %1252 = getelementptr inbounds double, ptr %1251, i64 1
  %1253 = call i32 @f2c_dgemv(ptr noundef @.str.17, ptr noundef %1242, ptr noundef %1243, ptr noundef @c_b108, ptr noundef %1246, ptr noundef %1247, ptr noundef %1250, ptr noundef @c__1, ptr noundef @c_b74, ptr noundef %1252, ptr noundef @c__1)
  %1254 = load ptr, ptr %16, align 8, !tbaa !5
  %1255 = load ptr, ptr %25, align 8, !tbaa !5
  %1256 = getelementptr inbounds double, ptr %1255, i64 1
  %1257 = load ptr, ptr %20, align 8, !tbaa !5
  %1258 = load i64, ptr %31, align 8, !tbaa !9
  %1259 = getelementptr inbounds double, ptr %1257, i64 %1258
  %1260 = call i32 @f2c_dcopy(ptr noundef %1254, ptr noundef %1256, ptr noundef @c__1, ptr noundef %1259, ptr noundef @c__1)
  br label %1261

1261:                                             ; preds = %1241, %1240
  br label %1262

1262:                                             ; preds = %1261, %1137
  br label %2172

1263:                                             ; preds = %855
  %1264 = load ptr, ptr %15, align 8, !tbaa !5
  %1265 = load i64, ptr %1264, align 8, !tbaa !9
  store i64 %1265, ptr %33, align 8, !tbaa !9
  %1266 = load ptr, ptr %15, align 8, !tbaa !5
  %1267 = load i64, ptr %1266, align 8, !tbaa !9
  %1268 = shl i64 %1267, 1
  %1269 = sub nsw i64 %1268, 4
  store i64 %1269, ptr %32, align 8, !tbaa !9
  %1270 = load i64, ptr %33, align 8, !tbaa !9
  %1271 = load i64, ptr %32, align 8, !tbaa !9
  %1272 = icmp sge i64 %1270, %1271
  br i1 %1272, label %1273, label %1275

1273:                                             ; preds = %1263
  %1274 = load i64, ptr %33, align 8, !tbaa !9
  br label %1277

1275:                                             ; preds = %1263
  %1276 = load i64, ptr %32, align 8, !tbaa !9
  br label %1277

1277:                                             ; preds = %1275, %1273
  %1278 = phi i64 [ %1274, %1273 ], [ %1276, %1275 ]
  store i64 %1278, ptr %33, align 8, !tbaa !9
  %1279 = load i64, ptr %33, align 8, !tbaa !9
  %1280 = load ptr, ptr %17, align 8, !tbaa !5
  %1281 = load i64, ptr %1280, align 8, !tbaa !9
  %1282 = icmp sge i64 %1279, %1281
  br i1 %1282, label %1283, label %1285

1283:                                             ; preds = %1277
  %1284 = load i64, ptr %33, align 8, !tbaa !9
  br label %1288

1285:                                             ; preds = %1277
  %1286 = load ptr, ptr %17, align 8, !tbaa !5
  %1287 = load i64, ptr %1286, align 8, !tbaa !9
  br label %1288

1288:                                             ; preds = %1285, %1283
  %1289 = phi i64 [ %1284, %1283 ], [ %1287, %1285 ]
  store i64 %1289, ptr %33, align 8, !tbaa !9
  %1290 = load ptr, ptr %16, align 8, !tbaa !5
  %1291 = load i64, ptr %1290, align 8, !tbaa !9
  %1292 = load ptr, ptr %15, align 8, !tbaa !5
  %1293 = load i64, ptr %1292, align 8, !tbaa !9
  %1294 = mul nsw i64 %1293, 3
  %1295 = sub nsw i64 %1291, %1294
  store i64 %1295, ptr %32, align 8, !tbaa !9
  %1296 = load ptr, ptr %16, align 8, !tbaa !5
  %1297 = load i64, ptr %1296, align 8, !tbaa !9
  %1298 = load i64, ptr %56, align 8, !tbaa !9
  %1299 = icmp sge i64 %1297, %1298
  br i1 %1299, label %1300, label %1841

1300:                                             ; preds = %1288
  %1301 = load ptr, ptr %26, align 8, !tbaa !5
  %1302 = load i64, ptr %1301, align 8, !tbaa !9
  %1303 = load ptr, ptr %15, align 8, !tbaa !5
  %1304 = load i64, ptr %1303, align 8, !tbaa !9
  %1305 = shl i64 %1304, 2
  %1306 = load ptr, ptr %15, align 8, !tbaa !5
  %1307 = load i64, ptr %1306, align 8, !tbaa !9
  %1308 = load ptr, ptr %15, align 8, !tbaa !5
  %1309 = load i64, ptr %1308, align 8, !tbaa !9
  %1310 = mul nsw i64 %1307, %1309
  %1311 = add nsw i64 %1305, %1310
  %1312 = load i64, ptr %33, align 8, !tbaa !9
  %1313 = load i64, ptr %32, align 8, !tbaa !9
  %1314 = icmp sge i64 %1312, %1313
  br i1 %1314, label %1315, label %1317

1315:                                             ; preds = %1300
  %1316 = load i64, ptr %33, align 8, !tbaa !9
  br label %1319

1317:                                             ; preds = %1300
  %1318 = load i64, ptr %32, align 8, !tbaa !9
  br label %1319

1319:                                             ; preds = %1317, %1315
  %1320 = phi i64 [ %1316, %1315 ], [ %1318, %1317 ]
  %1321 = add nsw i64 %1311, %1320
  %1322 = icmp sge i64 %1302, %1321
  br i1 %1322, label %1323, label %1841

1323:                                             ; preds = %1319
  %1324 = load ptr, ptr %15, align 8, !tbaa !5
  %1325 = load i64, ptr %1324, align 8, !tbaa !9
  store i64 %1325, ptr %60, align 8, !tbaa !9
  %1326 = load ptr, ptr %15, align 8, !tbaa !5
  %1327 = load i64, ptr %1326, align 8, !tbaa !9
  store i64 %1327, ptr %34, align 8, !tbaa !9
  %1328 = load ptr, ptr %15, align 8, !tbaa !5
  %1329 = load i64, ptr %1328, align 8, !tbaa !9
  %1330 = shl i64 %1329, 1
  %1331 = sub nsw i64 %1330, 4
  store i64 %1331, ptr %35, align 8, !tbaa !9
  %1332 = load i64, ptr %34, align 8, !tbaa !9
  %1333 = load i64, ptr %35, align 8, !tbaa !9
  %1334 = icmp sge i64 %1332, %1333
  br i1 %1334, label %1335, label %1337

1335:                                             ; preds = %1323
  %1336 = load i64, ptr %34, align 8, !tbaa !9
  br label %1339

1337:                                             ; preds = %1323
  %1338 = load i64, ptr %35, align 8, !tbaa !9
  br label %1339

1339:                                             ; preds = %1337, %1335
  %1340 = phi i64 [ %1336, %1335 ], [ %1338, %1337 ]
  store i64 %1340, ptr %34, align 8, !tbaa !9
  %1341 = load i64, ptr %34, align 8, !tbaa !9
  %1342 = load ptr, ptr %17, align 8, !tbaa !5
  %1343 = load i64, ptr %1342, align 8, !tbaa !9
  %1344 = icmp sge i64 %1341, %1343
  br i1 %1344, label %1345, label %1347

1345:                                             ; preds = %1339
  %1346 = load i64, ptr %34, align 8, !tbaa !9
  br label %1350

1347:                                             ; preds = %1339
  %1348 = load ptr, ptr %17, align 8, !tbaa !5
  %1349 = load i64, ptr %1348, align 8, !tbaa !9
  br label %1350

1350:                                             ; preds = %1347, %1345
  %1351 = phi i64 [ %1346, %1345 ], [ %1349, %1347 ]
  store i64 %1351, ptr %34, align 8, !tbaa !9
  %1352 = load ptr, ptr %16, align 8, !tbaa !5
  %1353 = load i64, ptr %1352, align 8, !tbaa !9
  %1354 = load ptr, ptr %15, align 8, !tbaa !5
  %1355 = load i64, ptr %1354, align 8, !tbaa !9
  %1356 = mul nsw i64 %1355, 3
  %1357 = sub nsw i64 %1353, %1356
  store i64 %1357, ptr %35, align 8, !tbaa !9
  %1358 = load ptr, ptr %15, align 8, !tbaa !5
  %1359 = load i64, ptr %1358, align 8, !tbaa !9
  %1360 = shl i64 %1359, 2
  %1361 = load ptr, ptr %15, align 8, !tbaa !5
  %1362 = load i64, ptr %1361, align 8, !tbaa !9
  %1363 = load ptr, ptr %19, align 8, !tbaa !5
  %1364 = load i64, ptr %1363, align 8, !tbaa !9
  %1365 = mul nsw i64 %1362, %1364
  %1366 = add nsw i64 %1360, %1365
  %1367 = load i64, ptr %34, align 8, !tbaa !9
  %1368 = load i64, ptr %35, align 8, !tbaa !9
  %1369 = icmp sge i64 %1367, %1368
  br i1 %1369, label %1370, label %1372

1370:                                             ; preds = %1350
  %1371 = load i64, ptr %34, align 8, !tbaa !9
  br label %1374

1372:                                             ; preds = %1350
  %1373 = load i64, ptr %35, align 8, !tbaa !9
  br label %1374

1374:                                             ; preds = %1372, %1370
  %1375 = phi i64 [ %1371, %1370 ], [ %1373, %1372 ]
  %1376 = add nsw i64 %1366, %1375
  store i64 %1376, ptr %33, align 8, !tbaa !9
  %1377 = load ptr, ptr %15, align 8, !tbaa !5
  %1378 = load i64, ptr %1377, align 8, !tbaa !9
  %1379 = load ptr, ptr %19, align 8, !tbaa !5
  %1380 = load i64, ptr %1379, align 8, !tbaa !9
  %1381 = mul nsw i64 %1378, %1380
  %1382 = load ptr, ptr %15, align 8, !tbaa !5
  %1383 = load i64, ptr %1382, align 8, !tbaa !9
  %1384 = add nsw i64 %1381, %1383
  %1385 = load ptr, ptr %15, align 8, !tbaa !5
  %1386 = load i64, ptr %1385, align 8, !tbaa !9
  %1387 = load ptr, ptr %17, align 8, !tbaa !5
  %1388 = load i64, ptr %1387, align 8, !tbaa !9
  %1389 = mul nsw i64 %1386, %1388
  %1390 = add nsw i64 %1384, %1389
  store i64 %1390, ptr %32, align 8, !tbaa !9
  %1391 = load ptr, ptr %26, align 8, !tbaa !5
  %1392 = load i64, ptr %1391, align 8, !tbaa !9
  %1393 = load i64, ptr %33, align 8, !tbaa !9
  %1394 = load i64, ptr %32, align 8, !tbaa !9
  %1395 = icmp sge i64 %1393, %1394
  br i1 %1395, label %1396, label %1398

1396:                                             ; preds = %1374
  %1397 = load i64, ptr %33, align 8, !tbaa !9
  br label %1400

1398:                                             ; preds = %1374
  %1399 = load i64, ptr %32, align 8, !tbaa !9
  br label %1400

1400:                                             ; preds = %1398, %1396
  %1401 = phi i64 [ %1397, %1396 ], [ %1399, %1398 ]
  %1402 = icmp sge i64 %1392, %1401
  br i1 %1402, label %1403, label %1406

1403:                                             ; preds = %1400
  %1404 = load ptr, ptr %19, align 8, !tbaa !5
  %1405 = load i64, ptr %1404, align 8, !tbaa !9
  store i64 %1405, ptr %60, align 8, !tbaa !9
  br label %1406

1406:                                             ; preds = %1403, %1400
  store i64 1, ptr %46, align 8, !tbaa !9
  %1407 = load ptr, ptr %15, align 8, !tbaa !5
  %1408 = load i64, ptr %1407, align 8, !tbaa !9
  %1409 = add nsw i64 %1408, 1
  store i64 %1409, ptr %57, align 8, !tbaa !9
  %1410 = load ptr, ptr %26, align 8, !tbaa !5
  %1411 = load i64, ptr %1410, align 8, !tbaa !9
  %1412 = load i64, ptr %57, align 8, !tbaa !9
  %1413 = sub nsw i64 %1411, %1412
  %1414 = add nsw i64 %1413, 1
  store i64 %1414, ptr %33, align 8, !tbaa !9
  %1415 = load ptr, ptr %15, align 8, !tbaa !5
  %1416 = load ptr, ptr %16, align 8, !tbaa !5
  %1417 = load ptr, ptr %18, align 8, !tbaa !5
  %1418 = load i64, ptr %29, align 8, !tbaa !9
  %1419 = getelementptr inbounds double, ptr %1417, i64 %1418
  %1420 = load ptr, ptr %19, align 8, !tbaa !5
  %1421 = load ptr, ptr %25, align 8, !tbaa !5
  %1422 = load i64, ptr %46, align 8, !tbaa !9
  %1423 = getelementptr inbounds double, ptr %1421, i64 %1422
  %1424 = load ptr, ptr %25, align 8, !tbaa !5
  %1425 = load i64, ptr %57, align 8, !tbaa !9
  %1426 = getelementptr inbounds double, ptr %1424, i64 %1425
  %1427 = load ptr, ptr %27, align 8, !tbaa !5
  %1428 = call i32 @dgelqf_(ptr noundef %1415, ptr noundef %1416, ptr noundef %1419, ptr noundef %1420, ptr noundef %1423, ptr noundef %1426, ptr noundef %33, ptr noundef %1427)
  %1429 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %1429, ptr %40, align 8, !tbaa !9
  %1430 = load ptr, ptr %15, align 8, !tbaa !5
  %1431 = load ptr, ptr %15, align 8, !tbaa !5
  %1432 = load ptr, ptr %18, align 8, !tbaa !5
  %1433 = load i64, ptr %29, align 8, !tbaa !9
  %1434 = getelementptr inbounds double, ptr %1432, i64 %1433
  %1435 = load ptr, ptr %19, align 8, !tbaa !5
  %1436 = load ptr, ptr %25, align 8, !tbaa !5
  %1437 = load i64, ptr %40, align 8, !tbaa !9
  %1438 = getelementptr inbounds double, ptr %1436, i64 %1437
  %1439 = call i32 @dlacpy_(ptr noundef @.str.16, ptr noundef %1430, ptr noundef %1431, ptr noundef %1434, ptr noundef %1435, ptr noundef %1438, ptr noundef %60)
  %1440 = load ptr, ptr %15, align 8, !tbaa !5
  %1441 = load i64, ptr %1440, align 8, !tbaa !9
  %1442 = sub nsw i64 %1441, 1
  store i64 %1442, ptr %33, align 8, !tbaa !9
  %1443 = load ptr, ptr %15, align 8, !tbaa !5
  %1444 = load i64, ptr %1443, align 8, !tbaa !9
  %1445 = sub nsw i64 %1444, 1
  store i64 %1445, ptr %32, align 8, !tbaa !9
  %1446 = load ptr, ptr %25, align 8, !tbaa !5
  %1447 = load i64, ptr %40, align 8, !tbaa !9
  %1448 = load i64, ptr %60, align 8, !tbaa !9
  %1449 = add nsw i64 %1447, %1448
  %1450 = getelementptr inbounds double, ptr %1446, i64 %1449
  %1451 = call i32 @dlaset_(ptr noundef @.str.19, ptr noundef %33, ptr noundef %32, ptr noundef @c_b74, ptr noundef @c_b74, ptr noundef %1450, ptr noundef %60)
  %1452 = load i64, ptr %40, align 8, !tbaa !9
  %1453 = load i64, ptr %60, align 8, !tbaa !9
  %1454 = load ptr, ptr %15, align 8, !tbaa !5
  %1455 = load i64, ptr %1454, align 8, !tbaa !9
  %1456 = mul nsw i64 %1453, %1455
  %1457 = add nsw i64 %1452, %1456
  store i64 %1457, ptr %39, align 8, !tbaa !9
  %1458 = load i64, ptr %39, align 8, !tbaa !9
  %1459 = load ptr, ptr %15, align 8, !tbaa !5
  %1460 = load i64, ptr %1459, align 8, !tbaa !9
  %1461 = add nsw i64 %1458, %1460
  store i64 %1461, ptr %55, align 8, !tbaa !9
  %1462 = load i64, ptr %55, align 8, !tbaa !9
  %1463 = load ptr, ptr %15, align 8, !tbaa !5
  %1464 = load i64, ptr %1463, align 8, !tbaa !9
  %1465 = add nsw i64 %1462, %1464
  store i64 %1465, ptr %54, align 8, !tbaa !9
  %1466 = load i64, ptr %54, align 8, !tbaa !9
  %1467 = load ptr, ptr %15, align 8, !tbaa !5
  %1468 = load i64, ptr %1467, align 8, !tbaa !9
  %1469 = add nsw i64 %1466, %1468
  store i64 %1469, ptr %57, align 8, !tbaa !9
  %1470 = load ptr, ptr %26, align 8, !tbaa !5
  %1471 = load i64, ptr %1470, align 8, !tbaa !9
  %1472 = load i64, ptr %57, align 8, !tbaa !9
  %1473 = sub nsw i64 %1471, %1472
  %1474 = add nsw i64 %1473, 1
  store i64 %1474, ptr %33, align 8, !tbaa !9
  %1475 = load ptr, ptr %15, align 8, !tbaa !5
  %1476 = load ptr, ptr %15, align 8, !tbaa !5
  %1477 = load ptr, ptr %25, align 8, !tbaa !5
  %1478 = load i64, ptr %40, align 8, !tbaa !9
  %1479 = getelementptr inbounds double, ptr %1477, i64 %1478
  %1480 = load ptr, ptr %22, align 8, !tbaa !5
  %1481 = getelementptr inbounds double, ptr %1480, i64 1
  %1482 = load ptr, ptr %25, align 8, !tbaa !5
  %1483 = load i64, ptr %39, align 8, !tbaa !9
  %1484 = getelementptr inbounds double, ptr %1482, i64 %1483
  %1485 = load ptr, ptr %25, align 8, !tbaa !5
  %1486 = load i64, ptr %55, align 8, !tbaa !9
  %1487 = getelementptr inbounds double, ptr %1485, i64 %1486
  %1488 = load ptr, ptr %25, align 8, !tbaa !5
  %1489 = load i64, ptr %54, align 8, !tbaa !9
  %1490 = getelementptr inbounds double, ptr %1488, i64 %1489
  %1491 = load ptr, ptr %25, align 8, !tbaa !5
  %1492 = load i64, ptr %57, align 8, !tbaa !9
  %1493 = getelementptr inbounds double, ptr %1491, i64 %1492
  %1494 = load ptr, ptr %27, align 8, !tbaa !5
  %1495 = call i32 @dgebrd_(ptr noundef %1475, ptr noundef %1476, ptr noundef %1479, ptr noundef %60, ptr noundef %1481, ptr noundef %1484, ptr noundef %1487, ptr noundef %1490, ptr noundef %1493, ptr noundef %33, ptr noundef %1494)
  %1496 = load ptr, ptr %26, align 8, !tbaa !5
  %1497 = load i64, ptr %1496, align 8, !tbaa !9
  %1498 = load i64, ptr %57, align 8, !tbaa !9
  %1499 = sub nsw i64 %1497, %1498
  %1500 = add nsw i64 %1499, 1
  store i64 %1500, ptr %33, align 8, !tbaa !9
  %1501 = load ptr, ptr %15, align 8, !tbaa !5
  %1502 = load ptr, ptr %17, align 8, !tbaa !5
  %1503 = load ptr, ptr %15, align 8, !tbaa !5
  %1504 = load ptr, ptr %25, align 8, !tbaa !5
  %1505 = load i64, ptr %40, align 8, !tbaa !9
  %1506 = getelementptr inbounds double, ptr %1504, i64 %1505
  %1507 = load ptr, ptr %25, align 8, !tbaa !5
  %1508 = load i64, ptr %55, align 8, !tbaa !9
  %1509 = getelementptr inbounds double, ptr %1507, i64 %1508
  %1510 = load ptr, ptr %20, align 8, !tbaa !5
  %1511 = load i64, ptr %31, align 8, !tbaa !9
  %1512 = getelementptr inbounds double, ptr %1510, i64 %1511
  %1513 = load ptr, ptr %21, align 8, !tbaa !5
  %1514 = load ptr, ptr %25, align 8, !tbaa !5
  %1515 = load i64, ptr %57, align 8, !tbaa !9
  %1516 = getelementptr inbounds double, ptr %1514, i64 %1515
  %1517 = load ptr, ptr %27, align 8, !tbaa !5
  %1518 = call i32 @dormbr_(ptr noundef @.str.18, ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef %1501, ptr noundef %1502, ptr noundef %1503, ptr noundef %1506, ptr noundef %60, ptr noundef %1509, ptr noundef %1512, ptr noundef %1513, ptr noundef %1516, ptr noundef %33, ptr noundef %1517)
  %1519 = load ptr, ptr %26, align 8, !tbaa !5
  %1520 = load i64, ptr %1519, align 8, !tbaa !9
  %1521 = load i64, ptr %57, align 8, !tbaa !9
  %1522 = sub nsw i64 %1520, %1521
  %1523 = add nsw i64 %1522, 1
  store i64 %1523, ptr %33, align 8, !tbaa !9
  %1524 = load ptr, ptr %15, align 8, !tbaa !5
  %1525 = load ptr, ptr %15, align 8, !tbaa !5
  %1526 = load ptr, ptr %15, align 8, !tbaa !5
  %1527 = load ptr, ptr %25, align 8, !tbaa !5
  %1528 = load i64, ptr %40, align 8, !tbaa !9
  %1529 = getelementptr inbounds double, ptr %1527, i64 %1528
  %1530 = load ptr, ptr %25, align 8, !tbaa !5
  %1531 = load i64, ptr %54, align 8, !tbaa !9
  %1532 = getelementptr inbounds double, ptr %1530, i64 %1531
  %1533 = load ptr, ptr %25, align 8, !tbaa !5
  %1534 = load i64, ptr %57, align 8, !tbaa !9
  %1535 = getelementptr inbounds double, ptr %1533, i64 %1534
  %1536 = load ptr, ptr %27, align 8, !tbaa !5
  %1537 = call i32 @dorgbr_(ptr noundef @.str.9, ptr noundef %1524, ptr noundef %1525, ptr noundef %1526, ptr noundef %1529, ptr noundef %60, ptr noundef %1532, ptr noundef %1535, ptr noundef %33, ptr noundef %1536)
  %1538 = load i64, ptr %39, align 8, !tbaa !9
  %1539 = load ptr, ptr %15, align 8, !tbaa !5
  %1540 = load i64, ptr %1539, align 8, !tbaa !9
  %1541 = add nsw i64 %1538, %1540
  store i64 %1541, ptr %57, align 8, !tbaa !9
  %1542 = load ptr, ptr %15, align 8, !tbaa !5
  %1543 = load ptr, ptr %15, align 8, !tbaa !5
  %1544 = load ptr, ptr %17, align 8, !tbaa !5
  %1545 = load ptr, ptr %22, align 8, !tbaa !5
  %1546 = getelementptr inbounds double, ptr %1545, i64 1
  %1547 = load ptr, ptr %25, align 8, !tbaa !5
  %1548 = load i64, ptr %39, align 8, !tbaa !9
  %1549 = getelementptr inbounds double, ptr %1547, i64 %1548
  %1550 = load ptr, ptr %25, align 8, !tbaa !5
  %1551 = load i64, ptr %40, align 8, !tbaa !9
  %1552 = getelementptr inbounds double, ptr %1550, i64 %1551
  %1553 = load ptr, ptr %18, align 8, !tbaa !5
  %1554 = load i64, ptr %29, align 8, !tbaa !9
  %1555 = getelementptr inbounds double, ptr %1553, i64 %1554
  %1556 = load ptr, ptr %19, align 8, !tbaa !5
  %1557 = load ptr, ptr %20, align 8, !tbaa !5
  %1558 = load i64, ptr %31, align 8, !tbaa !9
  %1559 = getelementptr inbounds double, ptr %1557, i64 %1558
  %1560 = load ptr, ptr %21, align 8, !tbaa !5
  %1561 = load ptr, ptr %25, align 8, !tbaa !5
  %1562 = load i64, ptr %57, align 8, !tbaa !9
  %1563 = getelementptr inbounds double, ptr %1561, i64 %1562
  %1564 = load ptr, ptr %27, align 8, !tbaa !5
  %1565 = call i32 @dbdsqr_(ptr noundef @.str.19, ptr noundef %1542, ptr noundef %1543, ptr noundef @c__0, ptr noundef %1544, ptr noundef %1546, ptr noundef %1549, ptr noundef %1552, ptr noundef %60, ptr noundef %1555, ptr noundef %1556, ptr noundef %1559, ptr noundef %1560, ptr noundef %1563, ptr noundef %1564)
  %1566 = load ptr, ptr %27, align 8, !tbaa !5
  %1567 = load i64, ptr %1566, align 8, !tbaa !9
  %1568 = icmp ne i64 %1567, 0
  br i1 %1568, label %1569, label %1570

1569:                                             ; preds = %1406
  br label %2231

1570:                                             ; preds = %1406
  %1571 = load ptr, ptr %23, align 8, !tbaa !5
  %1572 = load double, ptr %1571, align 8, !tbaa !11
  %1573 = load ptr, ptr %22, align 8, !tbaa !5
  %1574 = getelementptr inbounds double, ptr %1573, i64 1
  %1575 = load double, ptr %1574, align 8, !tbaa !11
  %1576 = fmul double %1572, %1575
  store double %1576, ptr %36, align 8, !tbaa !11
  %1577 = load double, ptr %36, align 8, !tbaa !11
  %1578 = load double, ptr %51, align 8, !tbaa !11
  %1579 = fcmp oge double %1577, %1578
  br i1 %1579, label %1580, label %1582

1580:                                             ; preds = %1570
  %1581 = load double, ptr %36, align 8, !tbaa !11
  br label %1584

1582:                                             ; preds = %1570
  %1583 = load double, ptr %51, align 8, !tbaa !11
  br label %1584

1584:                                             ; preds = %1582, %1580
  %1585 = phi double [ %1581, %1580 ], [ %1583, %1582 ]
  store double %1585, ptr %43, align 8, !tbaa !11
  %1586 = load ptr, ptr %23, align 8, !tbaa !5
  %1587 = load double, ptr %1586, align 8, !tbaa !11
  %1588 = fcmp olt double %1587, 0.000000e+00
  br i1 %1588, label %1589, label %1604

1589:                                             ; preds = %1584
  %1590 = load double, ptr %42, align 8, !tbaa !11
  %1591 = load ptr, ptr %22, align 8, !tbaa !5
  %1592 = getelementptr inbounds double, ptr %1591, i64 1
  %1593 = load double, ptr %1592, align 8, !tbaa !11
  %1594 = fmul double %1590, %1593
  store double %1594, ptr %36, align 8, !tbaa !11
  %1595 = load double, ptr %36, align 8, !tbaa !11
  %1596 = load double, ptr %51, align 8, !tbaa !11
  %1597 = fcmp oge double %1595, %1596
  br i1 %1597, label %1598, label %1600

1598:                                             ; preds = %1589
  %1599 = load double, ptr %36, align 8, !tbaa !11
  br label %1602

1600:                                             ; preds = %1589
  %1601 = load double, ptr %51, align 8, !tbaa !11
  br label %1602

1602:                                             ; preds = %1600, %1598
  %1603 = phi double [ %1599, %1598 ], [ %1601, %1600 ]
  store double %1603, ptr %43, align 8, !tbaa !11
  br label %1604

1604:                                             ; preds = %1602, %1584
  %1605 = load ptr, ptr %24, align 8, !tbaa !5
  store i64 0, ptr %1605, align 8, !tbaa !9
  %1606 = load ptr, ptr %15, align 8, !tbaa !5
  %1607 = load i64, ptr %1606, align 8, !tbaa !9
  store i64 %1607, ptr %33, align 8, !tbaa !9
  store i64 1, ptr %37, align 8, !tbaa !9
  br label %1608

1608:                                             ; preds = %1644, %1604
  %1609 = load i64, ptr %37, align 8, !tbaa !9
  %1610 = load i64, ptr %33, align 8, !tbaa !9
  %1611 = icmp sle i64 %1609, %1610
  br i1 %1611, label %1612, label %1647

1612:                                             ; preds = %1608
  %1613 = load ptr, ptr %22, align 8, !tbaa !5
  %1614 = load i64, ptr %37, align 8, !tbaa !9
  %1615 = getelementptr inbounds double, ptr %1613, i64 %1614
  %1616 = load double, ptr %1615, align 8, !tbaa !11
  %1617 = load double, ptr %43, align 8, !tbaa !11
  %1618 = fcmp ogt double %1616, %1617
  br i1 %1618, label %1619, label %1634

1619:                                             ; preds = %1612
  %1620 = load ptr, ptr %17, align 8, !tbaa !5
  %1621 = load ptr, ptr %22, align 8, !tbaa !5
  %1622 = load i64, ptr %37, align 8, !tbaa !9
  %1623 = getelementptr inbounds double, ptr %1621, i64 %1622
  %1624 = load ptr, ptr %20, align 8, !tbaa !5
  %1625 = load i64, ptr %37, align 8, !tbaa !9
  %1626 = load i64, ptr %30, align 8, !tbaa !9
  %1627 = add nsw i64 %1625, %1626
  %1628 = getelementptr inbounds double, ptr %1624, i64 %1627
  %1629 = load ptr, ptr %21, align 8, !tbaa !5
  %1630 = call i32 @drscl_(ptr noundef %1620, ptr noundef %1623, ptr noundef %1628, ptr noundef %1629)
  %1631 = load ptr, ptr %24, align 8, !tbaa !5
  %1632 = load i64, ptr %1631, align 8, !tbaa !9
  %1633 = add nsw i64 %1632, 1
  store i64 %1633, ptr %1631, align 8, !tbaa !9
  br label %1643

1634:                                             ; preds = %1612
  %1635 = load ptr, ptr %17, align 8, !tbaa !5
  %1636 = load ptr, ptr %20, align 8, !tbaa !5
  %1637 = load i64, ptr %37, align 8, !tbaa !9
  %1638 = load i64, ptr %30, align 8, !tbaa !9
  %1639 = add nsw i64 %1637, %1638
  %1640 = getelementptr inbounds double, ptr %1636, i64 %1639
  %1641 = load ptr, ptr %21, align 8, !tbaa !5
  %1642 = call i32 @dlaset_(ptr noundef @.str.15, ptr noundef @c__1, ptr noundef %1635, ptr noundef @c_b74, ptr noundef @c_b74, ptr noundef %1640, ptr noundef %1641)
  br label %1643

1643:                                             ; preds = %1634, %1619
  br label %1644

1644:                                             ; preds = %1643
  %1645 = load i64, ptr %37, align 8, !tbaa !9
  %1646 = add nsw i64 %1645, 1
  store i64 %1646, ptr %37, align 8, !tbaa !9
  br label %1608, !llvm.loop !16

1647:                                             ; preds = %1608
  %1648 = load i64, ptr %39, align 8, !tbaa !9
  store i64 %1648, ptr %57, align 8, !tbaa !9
  %1649 = load ptr, ptr %26, align 8, !tbaa !5
  %1650 = load i64, ptr %1649, align 8, !tbaa !9
  %1651 = load ptr, ptr %21, align 8, !tbaa !5
  %1652 = load i64, ptr %1651, align 8, !tbaa !9
  %1653 = load ptr, ptr %17, align 8, !tbaa !5
  %1654 = load i64, ptr %1653, align 8, !tbaa !9
  %1655 = mul nsw i64 %1652, %1654
  %1656 = load i64, ptr %57, align 8, !tbaa !9
  %1657 = add nsw i64 %1655, %1656
  %1658 = sub nsw i64 %1657, 1
  %1659 = icmp sge i64 %1650, %1658
  br i1 %1659, label %1660, label %1691

1660:                                             ; preds = %1647
  %1661 = load ptr, ptr %17, align 8, !tbaa !5
  %1662 = load i64, ptr %1661, align 8, !tbaa !9
  %1663 = icmp sgt i64 %1662, 1
  br i1 %1663, label %1664, label %1691

1664:                                             ; preds = %1660
  %1665 = load ptr, ptr %15, align 8, !tbaa !5
  %1666 = load ptr, ptr %17, align 8, !tbaa !5
  %1667 = load ptr, ptr %15, align 8, !tbaa !5
  %1668 = load ptr, ptr %25, align 8, !tbaa !5
  %1669 = load i64, ptr %40, align 8, !tbaa !9
  %1670 = getelementptr inbounds double, ptr %1668, i64 %1669
  %1671 = load ptr, ptr %20, align 8, !tbaa !5
  %1672 = load i64, ptr %31, align 8, !tbaa !9
  %1673 = getelementptr inbounds double, ptr %1671, i64 %1672
  %1674 = load ptr, ptr %21, align 8, !tbaa !5
  %1675 = load ptr, ptr %25, align 8, !tbaa !5
  %1676 = load i64, ptr %57, align 8, !tbaa !9
  %1677 = getelementptr inbounds double, ptr %1675, i64 %1676
  %1678 = load ptr, ptr %21, align 8, !tbaa !5
  %1679 = call i32 @f2c_dgemm(ptr noundef @.str.17, ptr noundef @.str.20, ptr noundef %1665, ptr noundef %1666, ptr noundef %1667, ptr noundef @c_b108, ptr noundef %1670, ptr noundef %60, ptr noundef %1673, ptr noundef %1674, ptr noundef @c_b74, ptr noundef %1677, ptr noundef %1678)
  %1680 = load ptr, ptr %15, align 8, !tbaa !5
  %1681 = load ptr, ptr %17, align 8, !tbaa !5
  %1682 = load ptr, ptr %25, align 8, !tbaa !5
  %1683 = load i64, ptr %57, align 8, !tbaa !9
  %1684 = getelementptr inbounds double, ptr %1682, i64 %1683
  %1685 = load ptr, ptr %21, align 8, !tbaa !5
  %1686 = load ptr, ptr %20, align 8, !tbaa !5
  %1687 = load i64, ptr %31, align 8, !tbaa !9
  %1688 = getelementptr inbounds double, ptr %1686, i64 %1687
  %1689 = load ptr, ptr %21, align 8, !tbaa !5
  %1690 = call i32 @dlacpy_(ptr noundef @.str.14, ptr noundef %1680, ptr noundef %1681, ptr noundef %1684, ptr noundef %1685, ptr noundef %1688, ptr noundef %1689)
  br label %1797

1691:                                             ; preds = %1660, %1647
  %1692 = load ptr, ptr %17, align 8, !tbaa !5
  %1693 = load i64, ptr %1692, align 8, !tbaa !9
  %1694 = icmp sgt i64 %1693, 1
  br i1 %1694, label %1695, label %1773

1695:                                             ; preds = %1691
  %1696 = load ptr, ptr %26, align 8, !tbaa !5
  %1697 = load i64, ptr %1696, align 8, !tbaa !9
  %1698 = load i64, ptr %57, align 8, !tbaa !9
  %1699 = sub nsw i64 %1697, %1698
  %1700 = add nsw i64 %1699, 1
  %1701 = load ptr, ptr %15, align 8, !tbaa !5
  %1702 = load i64, ptr %1701, align 8, !tbaa !9
  %1703 = sdiv i64 %1700, %1702
  store i64 %1703, ptr %50, align 8, !tbaa !9
  %1704 = load ptr, ptr %17, align 8, !tbaa !5
  %1705 = load i64, ptr %1704, align 8, !tbaa !9
  store i64 %1705, ptr %33, align 8, !tbaa !9
  %1706 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %1706, ptr %32, align 8, !tbaa !9
  store i64 1, ptr %37, align 8, !tbaa !9
  br label %1707

1707:                                             ; preds = %1768, %1695
  %1708 = load i64, ptr %32, align 8, !tbaa !9
  %1709 = icmp slt i64 %1708, 0
  br i1 %1709, label %1710, label %1715

1710:                                             ; preds = %1707
  %1711 = load i64, ptr %37, align 8, !tbaa !9
  %1712 = load i64, ptr %33, align 8, !tbaa !9
  %1713 = icmp sge i64 %1711, %1712
  %1714 = zext i1 %1713 to i32
  br label %1720

1715:                                             ; preds = %1707
  %1716 = load i64, ptr %37, align 8, !tbaa !9
  %1717 = load i64, ptr %33, align 8, !tbaa !9
  %1718 = icmp sle i64 %1716, %1717
  %1719 = zext i1 %1718 to i32
  br label %1720

1720:                                             ; preds = %1715, %1710
  %1721 = phi i32 [ %1714, %1710 ], [ %1719, %1715 ]
  %1722 = icmp ne i32 %1721, 0
  br i1 %1722, label %1723, label %1772

1723:                                             ; preds = %1720
  %1724 = load ptr, ptr %17, align 8, !tbaa !5
  %1725 = load i64, ptr %1724, align 8, !tbaa !9
  %1726 = load i64, ptr %37, align 8, !tbaa !9
  %1727 = sub nsw i64 %1725, %1726
  %1728 = add nsw i64 %1727, 1
  store i64 %1728, ptr %34, align 8, !tbaa !9
  %1729 = load i64, ptr %34, align 8, !tbaa !9
  %1730 = load i64, ptr %50, align 8, !tbaa !9
  %1731 = icmp sle i64 %1729, %1730
  br i1 %1731, label %1732, label %1734

1732:                                             ; preds = %1723
  %1733 = load i64, ptr %34, align 8, !tbaa !9
  br label %1736

1734:                                             ; preds = %1723
  %1735 = load i64, ptr %50, align 8, !tbaa !9
  br label %1736

1736:                                             ; preds = %1734, %1732
  %1737 = phi i64 [ %1733, %1732 ], [ %1735, %1734 ]
  store i64 %1737, ptr %38, align 8, !tbaa !9
  %1738 = load ptr, ptr %15, align 8, !tbaa !5
  %1739 = load ptr, ptr %15, align 8, !tbaa !5
  %1740 = load ptr, ptr %25, align 8, !tbaa !5
  %1741 = load i64, ptr %40, align 8, !tbaa !9
  %1742 = getelementptr inbounds double, ptr %1740, i64 %1741
  %1743 = load ptr, ptr %20, align 8, !tbaa !5
  %1744 = load i64, ptr %37, align 8, !tbaa !9
  %1745 = load i64, ptr %30, align 8, !tbaa !9
  %1746 = mul nsw i64 %1744, %1745
  %1747 = add nsw i64 %1746, 1
  %1748 = getelementptr inbounds double, ptr %1743, i64 %1747
  %1749 = load ptr, ptr %21, align 8, !tbaa !5
  %1750 = load ptr, ptr %25, align 8, !tbaa !5
  %1751 = load i64, ptr %57, align 8, !tbaa !9
  %1752 = getelementptr inbounds double, ptr %1750, i64 %1751
  %1753 = load ptr, ptr %15, align 8, !tbaa !5
  %1754 = call i32 @f2c_dgemm(ptr noundef @.str.17, ptr noundef @.str.20, ptr noundef %1738, ptr noundef %38, ptr noundef %1739, ptr noundef @c_b108, ptr noundef %1742, ptr noundef %60, ptr noundef %1748, ptr noundef %1749, ptr noundef @c_b74, ptr noundef %1752, ptr noundef %1753)
  %1755 = load ptr, ptr %15, align 8, !tbaa !5
  %1756 = load ptr, ptr %25, align 8, !tbaa !5
  %1757 = load i64, ptr %57, align 8, !tbaa !9
  %1758 = getelementptr inbounds double, ptr %1756, i64 %1757
  %1759 = load ptr, ptr %15, align 8, !tbaa !5
  %1760 = load ptr, ptr %20, align 8, !tbaa !5
  %1761 = load i64, ptr %37, align 8, !tbaa !9
  %1762 = load i64, ptr %30, align 8, !tbaa !9
  %1763 = mul nsw i64 %1761, %1762
  %1764 = add nsw i64 %1763, 1
  %1765 = getelementptr inbounds double, ptr %1760, i64 %1764
  %1766 = load ptr, ptr %21, align 8, !tbaa !5
  %1767 = call i32 @dlacpy_(ptr noundef @.str.14, ptr noundef %1755, ptr noundef %38, ptr noundef %1758, ptr noundef %1759, ptr noundef %1765, ptr noundef %1766)
  br label %1768

1768:                                             ; preds = %1736
  %1769 = load i64, ptr %32, align 8, !tbaa !9
  %1770 = load i64, ptr %37, align 8, !tbaa !9
  %1771 = add nsw i64 %1770, %1769
  store i64 %1771, ptr %37, align 8, !tbaa !9
  br label %1707, !llvm.loop !17

1772:                                             ; preds = %1720
  br label %1796

1773:                                             ; preds = %1691
  %1774 = load ptr, ptr %15, align 8, !tbaa !5
  %1775 = load ptr, ptr %15, align 8, !tbaa !5
  %1776 = load ptr, ptr %25, align 8, !tbaa !5
  %1777 = load i64, ptr %40, align 8, !tbaa !9
  %1778 = getelementptr inbounds double, ptr %1776, i64 %1777
  %1779 = load ptr, ptr %20, align 8, !tbaa !5
  %1780 = load i64, ptr %30, align 8, !tbaa !9
  %1781 = add nsw i64 %1780, 1
  %1782 = getelementptr inbounds double, ptr %1779, i64 %1781
  %1783 = load ptr, ptr %25, align 8, !tbaa !5
  %1784 = load i64, ptr %57, align 8, !tbaa !9
  %1785 = getelementptr inbounds double, ptr %1783, i64 %1784
  %1786 = call i32 @f2c_dgemv(ptr noundef @.str.17, ptr noundef %1774, ptr noundef %1775, ptr noundef @c_b108, ptr noundef %1778, ptr noundef %60, ptr noundef %1782, ptr noundef @c__1, ptr noundef @c_b74, ptr noundef %1785, ptr noundef @c__1)
  %1787 = load ptr, ptr %15, align 8, !tbaa !5
  %1788 = load ptr, ptr %25, align 8, !tbaa !5
  %1789 = load i64, ptr %57, align 8, !tbaa !9
  %1790 = getelementptr inbounds double, ptr %1788, i64 %1789
  %1791 = load ptr, ptr %20, align 8, !tbaa !5
  %1792 = load i64, ptr %30, align 8, !tbaa !9
  %1793 = add nsw i64 %1792, 1
  %1794 = getelementptr inbounds double, ptr %1791, i64 %1793
  %1795 = call i32 @f2c_dcopy(ptr noundef %1787, ptr noundef %1790, ptr noundef @c__1, ptr noundef %1794, ptr noundef @c__1)
  br label %1796

1796:                                             ; preds = %1773, %1772
  br label %1797

1797:                                             ; preds = %1796, %1664
  %1798 = load ptr, ptr %16, align 8, !tbaa !5
  %1799 = load i64, ptr %1798, align 8, !tbaa !9
  %1800 = load ptr, ptr %15, align 8, !tbaa !5
  %1801 = load i64, ptr %1800, align 8, !tbaa !9
  %1802 = sub nsw i64 %1799, %1801
  store i64 %1802, ptr %32, align 8, !tbaa !9
  %1803 = load ptr, ptr %17, align 8, !tbaa !5
  %1804 = load ptr, ptr %20, align 8, !tbaa !5
  %1805 = load ptr, ptr %15, align 8, !tbaa !5
  %1806 = load i64, ptr %1805, align 8, !tbaa !9
  %1807 = add nsw i64 %1806, 1
  %1808 = load i64, ptr %30, align 8, !tbaa !9
  %1809 = add nsw i64 %1807, %1808
  %1810 = getelementptr inbounds double, ptr %1804, i64 %1809
  %1811 = load ptr, ptr %21, align 8, !tbaa !5
  %1812 = call i32 @dlaset_(ptr noundef @.str.15, ptr noundef %32, ptr noundef %1803, ptr noundef @c_b74, ptr noundef @c_b74, ptr noundef %1810, ptr noundef %1811)
  %1813 = load i64, ptr %46, align 8, !tbaa !9
  %1814 = load ptr, ptr %15, align 8, !tbaa !5
  %1815 = load i64, ptr %1814, align 8, !tbaa !9
  %1816 = add nsw i64 %1813, %1815
  store i64 %1816, ptr %57, align 8, !tbaa !9
  %1817 = load ptr, ptr %26, align 8, !tbaa !5
  %1818 = load i64, ptr %1817, align 8, !tbaa !9
  %1819 = load i64, ptr %57, align 8, !tbaa !9
  %1820 = sub nsw i64 %1818, %1819
  %1821 = add nsw i64 %1820, 1
  store i64 %1821, ptr %32, align 8, !tbaa !9
  %1822 = load ptr, ptr %16, align 8, !tbaa !5
  %1823 = load ptr, ptr %17, align 8, !tbaa !5
  %1824 = load ptr, ptr %15, align 8, !tbaa !5
  %1825 = load ptr, ptr %18, align 8, !tbaa !5
  %1826 = load i64, ptr %29, align 8, !tbaa !9
  %1827 = getelementptr inbounds double, ptr %1825, i64 %1826
  %1828 = load ptr, ptr %19, align 8, !tbaa !5
  %1829 = load ptr, ptr %25, align 8, !tbaa !5
  %1830 = load i64, ptr %46, align 8, !tbaa !9
  %1831 = getelementptr inbounds double, ptr %1829, i64 %1830
  %1832 = load ptr, ptr %20, align 8, !tbaa !5
  %1833 = load i64, ptr %31, align 8, !tbaa !9
  %1834 = getelementptr inbounds double, ptr %1832, i64 %1833
  %1835 = load ptr, ptr %21, align 8, !tbaa !5
  %1836 = load ptr, ptr %25, align 8, !tbaa !5
  %1837 = load i64, ptr %57, align 8, !tbaa !9
  %1838 = getelementptr inbounds double, ptr %1836, i64 %1837
  %1839 = load ptr, ptr %27, align 8, !tbaa !5
  %1840 = call i32 @dormlq_(ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef %1822, ptr noundef %1823, ptr noundef %1824, ptr noundef %1827, ptr noundef %1828, ptr noundef %1831, ptr noundef %1834, ptr noundef %1835, ptr noundef %1838, ptr noundef %32, ptr noundef %1839)
  br label %2171

1841:                                             ; preds = %1319, %1288
  store i64 1, ptr %39, align 8, !tbaa !9
  %1842 = load i64, ptr %39, align 8, !tbaa !9
  %1843 = load ptr, ptr %15, align 8, !tbaa !5
  %1844 = load i64, ptr %1843, align 8, !tbaa !9
  %1845 = add nsw i64 %1842, %1844
  store i64 %1845, ptr %55, align 8, !tbaa !9
  %1846 = load i64, ptr %55, align 8, !tbaa !9
  %1847 = load ptr, ptr %15, align 8, !tbaa !5
  %1848 = load i64, ptr %1847, align 8, !tbaa !9
  %1849 = add nsw i64 %1846, %1848
  store i64 %1849, ptr %54, align 8, !tbaa !9
  %1850 = load i64, ptr %54, align 8, !tbaa !9
  %1851 = load ptr, ptr %15, align 8, !tbaa !5
  %1852 = load i64, ptr %1851, align 8, !tbaa !9
  %1853 = add nsw i64 %1850, %1852
  store i64 %1853, ptr %57, align 8, !tbaa !9
  %1854 = load ptr, ptr %26, align 8, !tbaa !5
  %1855 = load i64, ptr %1854, align 8, !tbaa !9
  %1856 = load i64, ptr %57, align 8, !tbaa !9
  %1857 = sub nsw i64 %1855, %1856
  %1858 = add nsw i64 %1857, 1
  store i64 %1858, ptr %32, align 8, !tbaa !9
  %1859 = load ptr, ptr %15, align 8, !tbaa !5
  %1860 = load ptr, ptr %16, align 8, !tbaa !5
  %1861 = load ptr, ptr %18, align 8, !tbaa !5
  %1862 = load i64, ptr %29, align 8, !tbaa !9
  %1863 = getelementptr inbounds double, ptr %1861, i64 %1862
  %1864 = load ptr, ptr %19, align 8, !tbaa !5
  %1865 = load ptr, ptr %22, align 8, !tbaa !5
  %1866 = getelementptr inbounds double, ptr %1865, i64 1
  %1867 = load ptr, ptr %25, align 8, !tbaa !5
  %1868 = load i64, ptr %39, align 8, !tbaa !9
  %1869 = getelementptr inbounds double, ptr %1867, i64 %1868
  %1870 = load ptr, ptr %25, align 8, !tbaa !5
  %1871 = load i64, ptr %55, align 8, !tbaa !9
  %1872 = getelementptr inbounds double, ptr %1870, i64 %1871
  %1873 = load ptr, ptr %25, align 8, !tbaa !5
  %1874 = load i64, ptr %54, align 8, !tbaa !9
  %1875 = getelementptr inbounds double, ptr %1873, i64 %1874
  %1876 = load ptr, ptr %25, align 8, !tbaa !5
  %1877 = load i64, ptr %57, align 8, !tbaa !9
  %1878 = getelementptr inbounds double, ptr %1876, i64 %1877
  %1879 = load ptr, ptr %27, align 8, !tbaa !5
  %1880 = call i32 @dgebrd_(ptr noundef %1859, ptr noundef %1860, ptr noundef %1863, ptr noundef %1864, ptr noundef %1866, ptr noundef %1869, ptr noundef %1872, ptr noundef %1875, ptr noundef %1878, ptr noundef %32, ptr noundef %1879)
  %1881 = load ptr, ptr %26, align 8, !tbaa !5
  %1882 = load i64, ptr %1881, align 8, !tbaa !9
  %1883 = load i64, ptr %57, align 8, !tbaa !9
  %1884 = sub nsw i64 %1882, %1883
  %1885 = add nsw i64 %1884, 1
  store i64 %1885, ptr %32, align 8, !tbaa !9
  %1886 = load ptr, ptr %15, align 8, !tbaa !5
  %1887 = load ptr, ptr %17, align 8, !tbaa !5
  %1888 = load ptr, ptr %16, align 8, !tbaa !5
  %1889 = load ptr, ptr %18, align 8, !tbaa !5
  %1890 = load i64, ptr %29, align 8, !tbaa !9
  %1891 = getelementptr inbounds double, ptr %1889, i64 %1890
  %1892 = load ptr, ptr %19, align 8, !tbaa !5
  %1893 = load ptr, ptr %25, align 8, !tbaa !5
  %1894 = load i64, ptr %55, align 8, !tbaa !9
  %1895 = getelementptr inbounds double, ptr %1893, i64 %1894
  %1896 = load ptr, ptr %20, align 8, !tbaa !5
  %1897 = load i64, ptr %31, align 8, !tbaa !9
  %1898 = getelementptr inbounds double, ptr %1896, i64 %1897
  %1899 = load ptr, ptr %21, align 8, !tbaa !5
  %1900 = load ptr, ptr %25, align 8, !tbaa !5
  %1901 = load i64, ptr %57, align 8, !tbaa !9
  %1902 = getelementptr inbounds double, ptr %1900, i64 %1901
  %1903 = load ptr, ptr %27, align 8, !tbaa !5
  %1904 = call i32 @dormbr_(ptr noundef @.str.18, ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef %1886, ptr noundef %1887, ptr noundef %1888, ptr noundef %1891, ptr noundef %1892, ptr noundef %1895, ptr noundef %1898, ptr noundef %1899, ptr noundef %1902, ptr noundef %32, ptr noundef %1903)
  %1905 = load ptr, ptr %26, align 8, !tbaa !5
  %1906 = load i64, ptr %1905, align 8, !tbaa !9
  %1907 = load i64, ptr %57, align 8, !tbaa !9
  %1908 = sub nsw i64 %1906, %1907
  %1909 = add nsw i64 %1908, 1
  store i64 %1909, ptr %32, align 8, !tbaa !9
  %1910 = load ptr, ptr %15, align 8, !tbaa !5
  %1911 = load ptr, ptr %16, align 8, !tbaa !5
  %1912 = load ptr, ptr %15, align 8, !tbaa !5
  %1913 = load ptr, ptr %18, align 8, !tbaa !5
  %1914 = load i64, ptr %29, align 8, !tbaa !9
  %1915 = getelementptr inbounds double, ptr %1913, i64 %1914
  %1916 = load ptr, ptr %19, align 8, !tbaa !5
  %1917 = load ptr, ptr %25, align 8, !tbaa !5
  %1918 = load i64, ptr %54, align 8, !tbaa !9
  %1919 = getelementptr inbounds double, ptr %1917, i64 %1918
  %1920 = load ptr, ptr %25, align 8, !tbaa !5
  %1921 = load i64, ptr %57, align 8, !tbaa !9
  %1922 = getelementptr inbounds double, ptr %1920, i64 %1921
  %1923 = load ptr, ptr %27, align 8, !tbaa !5
  %1924 = call i32 @dorgbr_(ptr noundef @.str.9, ptr noundef %1910, ptr noundef %1911, ptr noundef %1912, ptr noundef %1915, ptr noundef %1916, ptr noundef %1919, ptr noundef %1922, ptr noundef %32, ptr noundef %1923)
  %1925 = load i64, ptr %39, align 8, !tbaa !9
  %1926 = load ptr, ptr %15, align 8, !tbaa !5
  %1927 = load i64, ptr %1926, align 8, !tbaa !9
  %1928 = add nsw i64 %1925, %1927
  store i64 %1928, ptr %57, align 8, !tbaa !9
  %1929 = load ptr, ptr %15, align 8, !tbaa !5
  %1930 = load ptr, ptr %16, align 8, !tbaa !5
  %1931 = load ptr, ptr %17, align 8, !tbaa !5
  %1932 = load ptr, ptr %22, align 8, !tbaa !5
  %1933 = getelementptr inbounds double, ptr %1932, i64 1
  %1934 = load ptr, ptr %25, align 8, !tbaa !5
  %1935 = load i64, ptr %39, align 8, !tbaa !9
  %1936 = getelementptr inbounds double, ptr %1934, i64 %1935
  %1937 = load ptr, ptr %18, align 8, !tbaa !5
  %1938 = load i64, ptr %29, align 8, !tbaa !9
  %1939 = getelementptr inbounds double, ptr %1937, i64 %1938
  %1940 = load ptr, ptr %19, align 8, !tbaa !5
  %1941 = getelementptr inbounds [1 x double], ptr %47, i64 0, i64 0
  %1942 = load ptr, ptr %20, align 8, !tbaa !5
  %1943 = load i64, ptr %31, align 8, !tbaa !9
  %1944 = getelementptr inbounds double, ptr %1942, i64 %1943
  %1945 = load ptr, ptr %21, align 8, !tbaa !5
  %1946 = load ptr, ptr %25, align 8, !tbaa !5
  %1947 = load i64, ptr %57, align 8, !tbaa !9
  %1948 = getelementptr inbounds double, ptr %1946, i64 %1947
  %1949 = load ptr, ptr %27, align 8, !tbaa !5
  %1950 = call i32 @dbdsqr_(ptr noundef @.str.16, ptr noundef %1929, ptr noundef %1930, ptr noundef @c__0, ptr noundef %1931, ptr noundef %1933, ptr noundef %1936, ptr noundef %1939, ptr noundef %1940, ptr noundef %1941, ptr noundef @c__1, ptr noundef %1944, ptr noundef %1945, ptr noundef %1948, ptr noundef %1949)
  %1951 = load ptr, ptr %27, align 8, !tbaa !5
  %1952 = load i64, ptr %1951, align 8, !tbaa !9
  %1953 = icmp ne i64 %1952, 0
  br i1 %1953, label %1954, label %1955

1954:                                             ; preds = %1841
  br label %2231

1955:                                             ; preds = %1841
  %1956 = load ptr, ptr %23, align 8, !tbaa !5
  %1957 = load double, ptr %1956, align 8, !tbaa !11
  %1958 = load ptr, ptr %22, align 8, !tbaa !5
  %1959 = getelementptr inbounds double, ptr %1958, i64 1
  %1960 = load double, ptr %1959, align 8, !tbaa !11
  %1961 = fmul double %1957, %1960
  store double %1961, ptr %36, align 8, !tbaa !11
  %1962 = load double, ptr %36, align 8, !tbaa !11
  %1963 = load double, ptr %51, align 8, !tbaa !11
  %1964 = fcmp oge double %1962, %1963
  br i1 %1964, label %1965, label %1967

1965:                                             ; preds = %1955
  %1966 = load double, ptr %36, align 8, !tbaa !11
  br label %1969

1967:                                             ; preds = %1955
  %1968 = load double, ptr %51, align 8, !tbaa !11
  br label %1969

1969:                                             ; preds = %1967, %1965
  %1970 = phi double [ %1966, %1965 ], [ %1968, %1967 ]
  store double %1970, ptr %43, align 8, !tbaa !11
  %1971 = load ptr, ptr %23, align 8, !tbaa !5
  %1972 = load double, ptr %1971, align 8, !tbaa !11
  %1973 = fcmp olt double %1972, 0.000000e+00
  br i1 %1973, label %1974, label %1989

1974:                                             ; preds = %1969
  %1975 = load double, ptr %42, align 8, !tbaa !11
  %1976 = load ptr, ptr %22, align 8, !tbaa !5
  %1977 = getelementptr inbounds double, ptr %1976, i64 1
  %1978 = load double, ptr %1977, align 8, !tbaa !11
  %1979 = fmul double %1975, %1978
  store double %1979, ptr %36, align 8, !tbaa !11
  %1980 = load double, ptr %36, align 8, !tbaa !11
  %1981 = load double, ptr %51, align 8, !tbaa !11
  %1982 = fcmp oge double %1980, %1981
  br i1 %1982, label %1983, label %1985

1983:                                             ; preds = %1974
  %1984 = load double, ptr %36, align 8, !tbaa !11
  br label %1987

1985:                                             ; preds = %1974
  %1986 = load double, ptr %51, align 8, !tbaa !11
  br label %1987

1987:                                             ; preds = %1985, %1983
  %1988 = phi double [ %1984, %1983 ], [ %1986, %1985 ]
  store double %1988, ptr %43, align 8, !tbaa !11
  br label %1989

1989:                                             ; preds = %1987, %1969
  %1990 = load ptr, ptr %24, align 8, !tbaa !5
  store i64 0, ptr %1990, align 8, !tbaa !9
  %1991 = load ptr, ptr %15, align 8, !tbaa !5
  %1992 = load i64, ptr %1991, align 8, !tbaa !9
  store i64 %1992, ptr %32, align 8, !tbaa !9
  store i64 1, ptr %37, align 8, !tbaa !9
  br label %1993

1993:                                             ; preds = %2029, %1989
  %1994 = load i64, ptr %37, align 8, !tbaa !9
  %1995 = load i64, ptr %32, align 8, !tbaa !9
  %1996 = icmp sle i64 %1994, %1995
  br i1 %1996, label %1997, label %2032

1997:                                             ; preds = %1993
  %1998 = load ptr, ptr %22, align 8, !tbaa !5
  %1999 = load i64, ptr %37, align 8, !tbaa !9
  %2000 = getelementptr inbounds double, ptr %1998, i64 %1999
  %2001 = load double, ptr %2000, align 8, !tbaa !11
  %2002 = load double, ptr %43, align 8, !tbaa !11
  %2003 = fcmp ogt double %2001, %2002
  br i1 %2003, label %2004, label %2019

2004:                                             ; preds = %1997
  %2005 = load ptr, ptr %17, align 8, !tbaa !5
  %2006 = load ptr, ptr %22, align 8, !tbaa !5
  %2007 = load i64, ptr %37, align 8, !tbaa !9
  %2008 = getelementptr inbounds double, ptr %2006, i64 %2007
  %2009 = load ptr, ptr %20, align 8, !tbaa !5
  %2010 = load i64, ptr %37, align 8, !tbaa !9
  %2011 = load i64, ptr %30, align 8, !tbaa !9
  %2012 = add nsw i64 %2010, %2011
  %2013 = getelementptr inbounds double, ptr %2009, i64 %2012
  %2014 = load ptr, ptr %21, align 8, !tbaa !5
  %2015 = call i32 @drscl_(ptr noundef %2005, ptr noundef %2008, ptr noundef %2013, ptr noundef %2014)
  %2016 = load ptr, ptr %24, align 8, !tbaa !5
  %2017 = load i64, ptr %2016, align 8, !tbaa !9
  %2018 = add nsw i64 %2017, 1
  store i64 %2018, ptr %2016, align 8, !tbaa !9
  br label %2028

2019:                                             ; preds = %1997
  %2020 = load ptr, ptr %17, align 8, !tbaa !5
  %2021 = load ptr, ptr %20, align 8, !tbaa !5
  %2022 = load i64, ptr %37, align 8, !tbaa !9
  %2023 = load i64, ptr %30, align 8, !tbaa !9
  %2024 = add nsw i64 %2022, %2023
  %2025 = getelementptr inbounds double, ptr %2021, i64 %2024
  %2026 = load ptr, ptr %21, align 8, !tbaa !5
  %2027 = call i32 @dlaset_(ptr noundef @.str.15, ptr noundef @c__1, ptr noundef %2020, ptr noundef @c_b74, ptr noundef @c_b74, ptr noundef %2025, ptr noundef %2026)
  br label %2028

2028:                                             ; preds = %2019, %2004
  br label %2029

2029:                                             ; preds = %2028
  %2030 = load i64, ptr %37, align 8, !tbaa !9
  %2031 = add nsw i64 %2030, 1
  store i64 %2031, ptr %37, align 8, !tbaa !9
  br label %1993, !llvm.loop !18

2032:                                             ; preds = %1993
  %2033 = load ptr, ptr %26, align 8, !tbaa !5
  %2034 = load i64, ptr %2033, align 8, !tbaa !9
  %2035 = load ptr, ptr %21, align 8, !tbaa !5
  %2036 = load i64, ptr %2035, align 8, !tbaa !9
  %2037 = load ptr, ptr %17, align 8, !tbaa !5
  %2038 = load i64, ptr %2037, align 8, !tbaa !9
  %2039 = mul nsw i64 %2036, %2038
  %2040 = icmp sge i64 %2034, %2039
  br i1 %2040, label %2041, label %2071

2041:                                             ; preds = %2032
  %2042 = load ptr, ptr %17, align 8, !tbaa !5
  %2043 = load i64, ptr %2042, align 8, !tbaa !9
  %2044 = icmp sgt i64 %2043, 1
  br i1 %2044, label %2045, label %2071

2045:                                             ; preds = %2041
  %2046 = load ptr, ptr %16, align 8, !tbaa !5
  %2047 = load ptr, ptr %17, align 8, !tbaa !5
  %2048 = load ptr, ptr %15, align 8, !tbaa !5
  %2049 = load ptr, ptr %18, align 8, !tbaa !5
  %2050 = load i64, ptr %29, align 8, !tbaa !9
  %2051 = getelementptr inbounds double, ptr %2049, i64 %2050
  %2052 = load ptr, ptr %19, align 8, !tbaa !5
  %2053 = load ptr, ptr %20, align 8, !tbaa !5
  %2054 = load i64, ptr %31, align 8, !tbaa !9
  %2055 = getelementptr inbounds double, ptr %2053, i64 %2054
  %2056 = load ptr, ptr %21, align 8, !tbaa !5
  %2057 = load ptr, ptr %25, align 8, !tbaa !5
  %2058 = getelementptr inbounds double, ptr %2057, i64 1
  %2059 = load ptr, ptr %21, align 8, !tbaa !5
  %2060 = call i32 @f2c_dgemm(ptr noundef @.str.17, ptr noundef @.str.20, ptr noundef %2046, ptr noundef %2047, ptr noundef %2048, ptr noundef @c_b108, ptr noundef %2051, ptr noundef %2052, ptr noundef %2055, ptr noundef %2056, ptr noundef @c_b74, ptr noundef %2058, ptr noundef %2059)
  %2061 = load ptr, ptr %16, align 8, !tbaa !5
  %2062 = load ptr, ptr %17, align 8, !tbaa !5
  %2063 = load ptr, ptr %25, align 8, !tbaa !5
  %2064 = getelementptr inbounds double, ptr %2063, i64 1
  %2065 = load ptr, ptr %21, align 8, !tbaa !5
  %2066 = load ptr, ptr %20, align 8, !tbaa !5
  %2067 = load i64, ptr %31, align 8, !tbaa !9
  %2068 = getelementptr inbounds double, ptr %2066, i64 %2067
  %2069 = load ptr, ptr %21, align 8, !tbaa !5
  %2070 = call i32 @dlacpy_(ptr noundef @.str.15, ptr noundef %2061, ptr noundef %2062, ptr noundef %2064, ptr noundef %2065, ptr noundef %2068, ptr noundef %2069)
  br label %2170

2071:                                             ; preds = %2041, %2032
  %2072 = load ptr, ptr %17, align 8, !tbaa !5
  %2073 = load i64, ptr %2072, align 8, !tbaa !9
  %2074 = icmp sgt i64 %2073, 1
  br i1 %2074, label %2075, label %2149

2075:                                             ; preds = %2071
  %2076 = load ptr, ptr %26, align 8, !tbaa !5
  %2077 = load i64, ptr %2076, align 8, !tbaa !9
  %2078 = load ptr, ptr %16, align 8, !tbaa !5
  %2079 = load i64, ptr %2078, align 8, !tbaa !9
  %2080 = sdiv i64 %2077, %2079
  store i64 %2080, ptr %50, align 8, !tbaa !9
  %2081 = load ptr, ptr %17, align 8, !tbaa !5
  %2082 = load i64, ptr %2081, align 8, !tbaa !9
  store i64 %2082, ptr %32, align 8, !tbaa !9
  %2083 = load i64, ptr %50, align 8, !tbaa !9
  store i64 %2083, ptr %33, align 8, !tbaa !9
  store i64 1, ptr %37, align 8, !tbaa !9
  br label %2084

2084:                                             ; preds = %2144, %2075
  %2085 = load i64, ptr %33, align 8, !tbaa !9
  %2086 = icmp slt i64 %2085, 0
  br i1 %2086, label %2087, label %2092

2087:                                             ; preds = %2084
  %2088 = load i64, ptr %37, align 8, !tbaa !9
  %2089 = load i64, ptr %32, align 8, !tbaa !9
  %2090 = icmp sge i64 %2088, %2089
  %2091 = zext i1 %2090 to i32
  br label %2097

2092:                                             ; preds = %2084
  %2093 = load i64, ptr %37, align 8, !tbaa !9
  %2094 = load i64, ptr %32, align 8, !tbaa !9
  %2095 = icmp sle i64 %2093, %2094
  %2096 = zext i1 %2095 to i32
  br label %2097

2097:                                             ; preds = %2092, %2087
  %2098 = phi i32 [ %2091, %2087 ], [ %2096, %2092 ]
  %2099 = icmp ne i32 %2098, 0
  br i1 %2099, label %2100, label %2148

2100:                                             ; preds = %2097
  %2101 = load ptr, ptr %17, align 8, !tbaa !5
  %2102 = load i64, ptr %2101, align 8, !tbaa !9
  %2103 = load i64, ptr %37, align 8, !tbaa !9
  %2104 = sub nsw i64 %2102, %2103
  %2105 = add nsw i64 %2104, 1
  store i64 %2105, ptr %34, align 8, !tbaa !9
  %2106 = load i64, ptr %34, align 8, !tbaa !9
  %2107 = load i64, ptr %50, align 8, !tbaa !9
  %2108 = icmp sle i64 %2106, %2107
  br i1 %2108, label %2109, label %2111

2109:                                             ; preds = %2100
  %2110 = load i64, ptr %34, align 8, !tbaa !9
  br label %2113

2111:                                             ; preds = %2100
  %2112 = load i64, ptr %50, align 8, !tbaa !9
  br label %2113

2113:                                             ; preds = %2111, %2109
  %2114 = phi i64 [ %2110, %2109 ], [ %2112, %2111 ]
  store i64 %2114, ptr %38, align 8, !tbaa !9
  %2115 = load ptr, ptr %16, align 8, !tbaa !5
  %2116 = load ptr, ptr %15, align 8, !tbaa !5
  %2117 = load ptr, ptr %18, align 8, !tbaa !5
  %2118 = load i64, ptr %29, align 8, !tbaa !9
  %2119 = getelementptr inbounds double, ptr %2117, i64 %2118
  %2120 = load ptr, ptr %19, align 8, !tbaa !5
  %2121 = load ptr, ptr %20, align 8, !tbaa !5
  %2122 = load i64, ptr %37, align 8, !tbaa !9
  %2123 = load i64, ptr %30, align 8, !tbaa !9
  %2124 = mul nsw i64 %2122, %2123
  %2125 = add nsw i64 %2124, 1
  %2126 = getelementptr inbounds double, ptr %2121, i64 %2125
  %2127 = load ptr, ptr %21, align 8, !tbaa !5
  %2128 = load ptr, ptr %25, align 8, !tbaa !5
  %2129 = getelementptr inbounds double, ptr %2128, i64 1
  %2130 = load ptr, ptr %16, align 8, !tbaa !5
  %2131 = call i32 @f2c_dgemm(ptr noundef @.str.17, ptr noundef @.str.20, ptr noundef %2115, ptr noundef %38, ptr noundef %2116, ptr noundef @c_b108, ptr noundef %2119, ptr noundef %2120, ptr noundef %2126, ptr noundef %2127, ptr noundef @c_b74, ptr noundef %2129, ptr noundef %2130)
  %2132 = load ptr, ptr %16, align 8, !tbaa !5
  %2133 = load ptr, ptr %25, align 8, !tbaa !5
  %2134 = getelementptr inbounds double, ptr %2133, i64 1
  %2135 = load ptr, ptr %16, align 8, !tbaa !5
  %2136 = load ptr, ptr %20, align 8, !tbaa !5
  %2137 = load i64, ptr %37, align 8, !tbaa !9
  %2138 = load i64, ptr %30, align 8, !tbaa !9
  %2139 = mul nsw i64 %2137, %2138
  %2140 = add nsw i64 %2139, 1
  %2141 = getelementptr inbounds double, ptr %2136, i64 %2140
  %2142 = load ptr, ptr %21, align 8, !tbaa !5
  %2143 = call i32 @dlacpy_(ptr noundef @.str.15, ptr noundef %2132, ptr noundef %38, ptr noundef %2134, ptr noundef %2135, ptr noundef %2141, ptr noundef %2142)
  br label %2144

2144:                                             ; preds = %2113
  %2145 = load i64, ptr %33, align 8, !tbaa !9
  %2146 = load i64, ptr %37, align 8, !tbaa !9
  %2147 = add nsw i64 %2146, %2145
  store i64 %2147, ptr %37, align 8, !tbaa !9
  br label %2084, !llvm.loop !19

2148:                                             ; preds = %2097
  br label %2169

2149:                                             ; preds = %2071
  %2150 = load ptr, ptr %15, align 8, !tbaa !5
  %2151 = load ptr, ptr %16, align 8, !tbaa !5
  %2152 = load ptr, ptr %18, align 8, !tbaa !5
  %2153 = load i64, ptr %29, align 8, !tbaa !9
  %2154 = getelementptr inbounds double, ptr %2152, i64 %2153
  %2155 = load ptr, ptr %19, align 8, !tbaa !5
  %2156 = load ptr, ptr %20, align 8, !tbaa !5
  %2157 = load i64, ptr %31, align 8, !tbaa !9
  %2158 = getelementptr inbounds double, ptr %2156, i64 %2157
  %2159 = load ptr, ptr %25, align 8, !tbaa !5
  %2160 = getelementptr inbounds double, ptr %2159, i64 1
  %2161 = call i32 @f2c_dgemv(ptr noundef @.str.17, ptr noundef %2150, ptr noundef %2151, ptr noundef @c_b108, ptr noundef %2154, ptr noundef %2155, ptr noundef %2158, ptr noundef @c__1, ptr noundef @c_b74, ptr noundef %2160, ptr noundef @c__1)
  %2162 = load ptr, ptr %16, align 8, !tbaa !5
  %2163 = load ptr, ptr %25, align 8, !tbaa !5
  %2164 = getelementptr inbounds double, ptr %2163, i64 1
  %2165 = load ptr, ptr %20, align 8, !tbaa !5
  %2166 = load i64, ptr %31, align 8, !tbaa !9
  %2167 = getelementptr inbounds double, ptr %2165, i64 %2166
  %2168 = call i32 @f2c_dcopy(ptr noundef %2162, ptr noundef %2164, ptr noundef @c__1, ptr noundef %2167, ptr noundef @c__1)
  br label %2169

2169:                                             ; preds = %2149, %2148
  br label %2170

2170:                                             ; preds = %2169, %2045
  br label %2171

2171:                                             ; preds = %2170, %1797
  br label %2172

2172:                                             ; preds = %2171, %1262
  %2173 = load i64, ptr %48, align 8, !tbaa !9
  %2174 = icmp eq i64 %2173, 1
  br i1 %2174, label %2175, label %2188

2175:                                             ; preds = %2172
  %2176 = load ptr, ptr %16, align 8, !tbaa !5
  %2177 = load ptr, ptr %17, align 8, !tbaa !5
  %2178 = load ptr, ptr %20, align 8, !tbaa !5
  %2179 = load i64, ptr %31, align 8, !tbaa !9
  %2180 = getelementptr inbounds double, ptr %2178, i64 %2179
  %2181 = load ptr, ptr %21, align 8, !tbaa !5
  %2182 = load ptr, ptr %27, align 8, !tbaa !5
  %2183 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %44, ptr noundef %63, ptr noundef %2176, ptr noundef %2177, ptr noundef %2180, ptr noundef %2181, ptr noundef %2182)
  %2184 = load ptr, ptr %22, align 8, !tbaa !5
  %2185 = getelementptr inbounds double, ptr %2184, i64 1
  %2186 = load ptr, ptr %27, align 8, !tbaa !5
  %2187 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %63, ptr noundef %44, ptr noundef %52, ptr noundef @c__1, ptr noundef %2185, ptr noundef %52, ptr noundef %2186)
  br label %2205

2188:                                             ; preds = %2172
  %2189 = load i64, ptr %48, align 8, !tbaa !9
  %2190 = icmp eq i64 %2189, 2
  br i1 %2190, label %2191, label %2204

2191:                                             ; preds = %2188
  %2192 = load ptr, ptr %16, align 8, !tbaa !5
  %2193 = load ptr, ptr %17, align 8, !tbaa !5
  %2194 = load ptr, ptr %20, align 8, !tbaa !5
  %2195 = load i64, ptr %31, align 8, !tbaa !9
  %2196 = getelementptr inbounds double, ptr %2194, i64 %2195
  %2197 = load ptr, ptr %21, align 8, !tbaa !5
  %2198 = load ptr, ptr %27, align 8, !tbaa !5
  %2199 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %44, ptr noundef %59, ptr noundef %2192, ptr noundef %2193, ptr noundef %2196, ptr noundef %2197, ptr noundef %2198)
  %2200 = load ptr, ptr %22, align 8, !tbaa !5
  %2201 = getelementptr inbounds double, ptr %2200, i64 1
  %2202 = load ptr, ptr %27, align 8, !tbaa !5
  %2203 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %59, ptr noundef %44, ptr noundef %52, ptr noundef @c__1, ptr noundef %2201, ptr noundef %52, ptr noundef %2202)
  br label %2204

2204:                                             ; preds = %2191, %2188
  br label %2205

2205:                                             ; preds = %2204, %2175
  %2206 = load i64, ptr %49, align 8, !tbaa !9
  %2207 = icmp eq i64 %2206, 1
  br i1 %2207, label %2208, label %2217

2208:                                             ; preds = %2205
  %2209 = load ptr, ptr %16, align 8, !tbaa !5
  %2210 = load ptr, ptr %17, align 8, !tbaa !5
  %2211 = load ptr, ptr %20, align 8, !tbaa !5
  %2212 = load i64, ptr %31, align 8, !tbaa !9
  %2213 = getelementptr inbounds double, ptr %2211, i64 %2212
  %2214 = load ptr, ptr %21, align 8, !tbaa !5
  %2215 = load ptr, ptr %27, align 8, !tbaa !5
  %2216 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %63, ptr noundef %45, ptr noundef %2209, ptr noundef %2210, ptr noundef %2213, ptr noundef %2214, ptr noundef %2215)
  br label %2230

2217:                                             ; preds = %2205
  %2218 = load i64, ptr %49, align 8, !tbaa !9
  %2219 = icmp eq i64 %2218, 2
  br i1 %2219, label %2220, label %2229

2220:                                             ; preds = %2217
  %2221 = load ptr, ptr %16, align 8, !tbaa !5
  %2222 = load ptr, ptr %17, align 8, !tbaa !5
  %2223 = load ptr, ptr %20, align 8, !tbaa !5
  %2224 = load i64, ptr %31, align 8, !tbaa !9
  %2225 = getelementptr inbounds double, ptr %2223, i64 %2224
  %2226 = load ptr, ptr %21, align 8, !tbaa !5
  %2227 = load ptr, ptr %27, align 8, !tbaa !5
  %2228 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %59, ptr noundef %45, ptr noundef %2221, ptr noundef %2222, ptr noundef %2225, ptr noundef %2226, ptr noundef %2227)
  br label %2229

2229:                                             ; preds = %2220, %2217
  br label %2230

2230:                                             ; preds = %2229, %2208
  br label %2231

2231:                                             ; preds = %2230, %1954, %1569, %1046, %802
  %2232 = load i64, ptr %62, align 8, !tbaa !9
  %2233 = sitofp i64 %2232 to double
  %2234 = load ptr, ptr %25, align 8, !tbaa !5
  %2235 = getelementptr inbounds double, ptr %2234, i64 1
  store double %2233, ptr %2235, align 8, !tbaa !11
  store i32 0, ptr %14, align 4
  store i32 1, ptr %65, align 4
  br label %2236

2236:                                             ; preds = %2231, %739, %729, %721
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #3
  %2237 = load i32, ptr %14, align 4
  ret i32 %2237
}

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

declare i64 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare double @dlamch_(ptr noundef) #2

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

declare double @dlange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @dlascl_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, 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 @dgeqrf_(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 @dgebrd_(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 @dormbr_(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 @dorgbr_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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

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

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

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

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


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

@c__6 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@.str.2 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i64, align 8
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b74 = external hidden global double, align 8
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b108 = external hidden global double, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @dgelss_(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 nocapture noundef readonly %8, ptr nocapture noundef %9, ptr noundef %10, ptr nocapture noundef readonly %11, ptr noundef %12) local_unnamed_addr #0 {
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca [1 x double], align 8
  %21 = alloca i64, align 8
  %22 = alloca double, align 8
  %23 = alloca i64, align 8
  %24 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #4
  %25 = load i64, ptr %6, align 8, !tbaa !5
  %26 = xor i64 %25, -1
  %27 = getelementptr inbounds double, ptr %5, i64 %26
  %28 = getelementptr inbounds i8, ptr %7, i64 -8
  %29 = getelementptr inbounds i8, ptr %10, i64 -8
  store i64 0, ptr %12, align 8, !tbaa !5
  %30 = load i64, ptr %0, align 8, !tbaa !5
  %31 = load i64, ptr %1, align 8, !tbaa !5
  %. = tail call i64 @llvm.smin.i64(i64 %30, i64 %31)
  store i64 %., ptr %21, align 8, !tbaa !5
  %32 = tail call i64 @llvm.smax.i64(i64 %30, i64 %31)
  %33 = load i64, ptr %11, align 8, !tbaa !5
  %34 = icmp eq i64 %33, -1
  %35 = icmp slt i64 %30, 0
  br i1 %35, label %.thread1031.sink.split, label %36

36:                                               ; preds = %13
  %37 = icmp slt i64 %31, 0
  br i1 %37, label %.thread1031.sink.split, label %38

38:                                               ; preds = %36
  %39 = load i64, ptr %2, align 8, !tbaa !5
  %40 = icmp slt i64 %39, 0
  br i1 %40, label %.thread1031.sink.split, label %41

41:                                               ; preds = %38
  %42 = load i64, ptr %4, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %30, i64 1)
  %43 = icmp slt i64 %42, %spec.select
  br i1 %43, label %.thread1031.sink.split, label %44

44:                                               ; preds = %41
  %45 = load i64, ptr %6, align 8, !tbaa !5
  %46 = tail call i64 @llvm.smax.i64(i64 %32, i64 1)
  %47 = icmp slt i64 %45, %46
  br i1 %47, label %.thread1031.sink.split, label %48

48:                                               ; preds = %44
  %49 = icmp sgt i64 %., 0
  br i1 %49, label %50, label %192

50:                                               ; preds = %48
  store i64 %30, ptr %17, align 8, !tbaa !5
  %51 = tail call i64 @ilaenv_(ptr noundef nonnull @c__6, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull @c_n1) #4
  %52 = load i64, ptr %0, align 8, !tbaa !5
  %53 = load i64, ptr %1, align 8, !tbaa !5
  %.not956 = icmp slt i64 %52, %53
  %.not957 = icmp slt i64 %52, %51
  %or.cond1015 = select i1 %.not956, i1 true, i1 %.not957
  br i1 %or.cond1015, label %65, label %54

54:                                               ; preds = %50
  store i64 %53, ptr %17, align 8, !tbaa !5
  %55 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.1, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #4
  %56 = add i64 %55, 1
  %57 = mul i64 %56, %53
  %58 = tail call i64 @llvm.smax.i64(i64 %57, i64 1)
  store i64 %58, ptr %14, align 8, !tbaa !5
  %59 = load i64, ptr %1, align 8, !tbaa !5
  %60 = load i64, ptr %2, align 8, !tbaa !5
  %61 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef nonnull @c_n1) #4
  %62 = mul nsw i64 %61, %60
  %63 = add nsw i64 %62, %59
  store i64 %63, ptr %15, align 8, !tbaa !5
  %64 = tail call i64 @llvm.smax.i64(i64 %58, i64 %63)
  %.pre = load i64, ptr %0, align 8, !tbaa !5
  %.pre1097 = load i64, ptr %1, align 8, !tbaa !5
  br label %65

65:                                               ; preds = %54, %50
  %66 = phi i64 [ %53, %54 ], [ %30, %50 ]
  %67 = phi i64 [ %.pre1097, %54 ], [ %53, %50 ]
  %68 = phi i64 [ %.pre, %54 ], [ %52, %50 ]
  %.0915 = phi i64 [ %64, %54 ], [ 1, %50 ]
  %.not960 = icmp slt i64 %68, %67
  br i1 %.not960, label %108, label %69

69:                                               ; preds = %65
  %70 = mul nsw i64 %67, 5
  store i64 %70, ptr %15, align 8, !tbaa !5
  %71 = icmp slt i64 %67, 1
  %72 = select i1 %71, i64 1, i64 %70
  store i64 %.0915, ptr %14, align 8, !tbaa !5
  %73 = mul nsw i64 %67, 3
  %74 = add nsw i64 %66, %67
  %75 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.1, ptr noundef nonnull %17, ptr noundef nonnull %1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #4
  %76 = mul nsw i64 %74, %75
  %77 = add nsw i64 %76, %73
  store i64 %77, ptr %15, align 8, !tbaa !5
  %78 = load i64, ptr %14, align 8
  %79 = call i64 @llvm.smax.i64(i64 %78, i64 %77)
  store i64 %79, ptr %14, align 8, !tbaa !5
  %80 = load i64, ptr %1, align 8, !tbaa !5
  %81 = mul nsw i64 %80, 3
  %82 = load i64, ptr %2, align 8, !tbaa !5
  %83 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %17, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef nonnull @c_n1) #4
  %84 = mul nsw i64 %83, %82
  %85 = add nsw i64 %84, %81
  store i64 %85, ptr %15, align 8, !tbaa !5
  %86 = load i64, ptr %14, align 8
  %87 = call i64 @llvm.smax.i64(i64 %86, i64 %85)
  store i64 %87, ptr %14, align 8, !tbaa !5
  %88 = load i64, ptr %1, align 8, !tbaa !5
  %89 = mul nsw i64 %88, 3
  %90 = add nsw i64 %88, -1
  %91 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef nonnull @c_n1) #4
  %92 = mul nsw i64 %90, %91
  %93 = add nsw i64 %92, %89
  %94 = load i64, ptr %14, align 8
  %95 = call i64 @llvm.smax.i64(i64 %94, i64 %93)
  %96 = call i64 @llvm.smax.i64(i64 %95, i64 %72)
  %97 = load i64, ptr %1, align 8, !tbaa !5
  %98 = load i64, ptr %2, align 8, !tbaa !5
  %99 = mul nsw i64 %98, %97
  %100 = call i64 @llvm.smax.i64(i64 %96, i64 %99)
  %101 = mul nsw i64 %97, 3
  %102 = load i64, ptr %17, align 8, !tbaa !5
  %103 = add nsw i64 %102, %101
  %104 = add nsw i64 %101, %98
  store i64 %104, ptr %15, align 8, !tbaa !5
  %105 = call i64 @llvm.smax.i64(i64 %103, i64 %104)
  store i64 %105, ptr %14, align 8, !tbaa !5
  %106 = call i64 @llvm.smax.i64(i64 %105, i64 %72)
  %107 = call i64 @llvm.smax.i64(i64 %106, i64 %100)
  %.pre1098 = load i64, ptr %0, align 8, !tbaa !5
  br label %108

108:                                              ; preds = %69, %65
  %109 = phi i64 [ %.pre1098, %69 ], [ %68, %65 ]
  %110 = phi i64 [ %97, %69 ], [ %67, %65 ]
  %.0916 = phi i64 [ %106, %69 ], [ 1, %65 ]
  %.1 = phi i64 [ %107, %69 ], [ %.0915, %65 ]
  %111 = icmp sgt i64 %110, %109
  br i1 %111, label %112, label %190

112:                                              ; preds = %108
  %113 = mul nsw i64 %109, 5
  %114 = icmp slt i64 %109, 1
  %115 = select i1 %114, i64 1, i64 %113
  %116 = mul nsw i64 %109, 3
  %117 = load i64, ptr %2, align 8, !tbaa !5
  %118 = add nsw i64 %117, %116
  %119 = add nsw i64 %116, %110
  store i64 %119, ptr %15, align 8, !tbaa !5
  %120 = call i64 @llvm.smax.i64(i64 %118, i64 %119)
  store i64 %120, ptr %14, align 8, !tbaa !5
  %121 = call i64 @llvm.smax.i64(i64 %120, i64 %115)
  %.not971 = icmp slt i64 %110, %51
  br i1 %.not971, label %166, label %122

122:                                              ; preds = %112
  %123 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #4
  %124 = add i64 %123, 1
  %125 = mul i64 %124, %109
  store i64 %125, ptr %14, align 8, !tbaa !5
  %126 = load i64, ptr %0, align 8, !tbaa !5
  %127 = add i64 %126, 4
  %128 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.1, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #4
  %129 = shl i64 %128, 1
  %reass.add = add i64 %127, %129
  %reass.mul = mul i64 %reass.add, %126
  store i64 %reass.mul, ptr %15, align 8, !tbaa !5
  %130 = load i64, ptr %14, align 8
  %131 = call i64 @llvm.smax.i64(i64 %130, i64 %reass.mul)
  store i64 %131, ptr %14, align 8, !tbaa !5
  %132 = load i64, ptr %0, align 8, !tbaa !5
  %133 = add i64 %132, 4
  %134 = mul i64 %133, %132
  %135 = load i64, ptr %2, align 8, !tbaa !5
  %136 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull @c_n1) #4
  %137 = mul nsw i64 %136, %135
  %138 = add nsw i64 %137, %134
  store i64 %138, ptr %15, align 8, !tbaa !5
  %139 = load i64, ptr %14, align 8
  %140 = call i64 @llvm.smax.i64(i64 %139, i64 %138)
  store i64 %140, ptr %14, align 8, !tbaa !5
  %141 = load i64, ptr %0, align 8, !tbaa !5
  %142 = add i64 %141, 4
  %143 = mul i64 %142, %141
  %144 = add nsw i64 %141, -1
  %145 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull @c_n1) #4
  %146 = mul nsw i64 %144, %145
  %147 = add nsw i64 %143, %146
  %148 = load i64, ptr %14, align 8
  %149 = call i64 @llvm.smax.i64(i64 %148, i64 %147)
  %150 = load i64, ptr %0, align 8, !tbaa !5
  %151 = add i64 %150, 1
  %152 = mul i64 %151, %150
  %153 = add nsw i64 %152, %115
  %154 = call i64 @llvm.smax.i64(i64 %149, i64 %153)
  %155 = load i64, ptr %2, align 8, !tbaa !5
  %156 = icmp sgt i64 %155, 1
  %157 = add i64 %150, 2
  %158 = add i64 %155, %151
  %.sink1104 = select i1 %156, i64 %158, i64 %157
  %159 = mul i64 %.sink1104, %150
  %160 = call i64 @llvm.smax.i64(i64 %154, i64 %159)
  store i64 %159, ptr %15, align 8
  store i64 %160, ptr %14, align 8, !tbaa !5
  %161 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.4, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull @c_n1) #4
  %162 = mul nsw i64 %161, %155
  %163 = add nsw i64 %162, %150
  store i64 %163, ptr %15, align 8, !tbaa !5
  %164 = load i64, ptr %14, align 8
  %165 = call i64 @llvm.smax.i64(i64 %164, i64 %163)
  br label %190

166:                                              ; preds = %112
  %167 = add nsw i64 %109, %110
  %168 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.1, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #4
  %169 = mul nsw i64 %168, %167
  %170 = add nsw i64 %169, %116
  store i64 %170, ptr %14, align 8, !tbaa !5
  %171 = load i64, ptr %0, align 8, !tbaa !5
  %172 = mul nsw i64 %171, 3
  %173 = load i64, ptr %2, align 8, !tbaa !5
  %174 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull @c_n1) #4
  %175 = mul nsw i64 %174, %173
  %176 = add nsw i64 %175, %172
  store i64 %176, ptr %15, align 8, !tbaa !5
  %177 = load i64, ptr %14, align 8
  %178 = call i64 @llvm.smax.i64(i64 %177, i64 %176)
  store i64 %178, ptr %14, align 8, !tbaa !5
  %179 = load i64, ptr %0, align 8, !tbaa !5
  %180 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %0, ptr noundef nonnull @c_n1) #4
  %181 = add i64 %180, 3
  %182 = mul i64 %181, %179
  %183 = load i64, ptr %14, align 8
  %184 = call i64 @llvm.smax.i64(i64 %183, i64 %182)
  %185 = call i64 @llvm.smax.i64(i64 %184, i64 %115)
  store i64 %185, ptr %14, align 8, !tbaa !5
  %186 = load i64, ptr %1, align 8, !tbaa !5
  %187 = load i64, ptr %2, align 8, !tbaa !5
  %188 = mul nsw i64 %187, %186
  store i64 %188, ptr %15, align 8, !tbaa !5
  %189 = call i64 @llvm.smax.i64(i64 %185, i64 %188)
  br label %190

190:                                              ; preds = %122, %166, %108
  %.1917 = phi i64 [ %121, %122 ], [ %121, %166 ], [ %.0916, %108 ]
  %.3 = phi i64 [ %165, %122 ], [ %189, %166 ], [ %.1, %108 ]
  %191 = call i64 @llvm.smax.i64(i64 %.1917, i64 %.3)
  %.pre1099 = load i64, ptr %11, align 8, !tbaa !5
  br label %192

192:                                              ; preds = %190, %48
  %193 = phi i64 [ %.pre1099, %190 ], [ %33, %48 ]
  %.0919 = phi i64 [ %51, %190 ], [ undef, %48 ]
  %.2918 = phi i64 [ %.1917, %190 ], [ 1, %48 ]
  %.4 = phi i64 [ %191, %190 ], [ 1, %48 ]
  %194 = sitofp i64 %.4 to double
  store double %194, ptr %10, align 8, !tbaa !9
  %195 = icmp sge i64 %193, %.2918
  %or.cond = select i1 %195, i1 true, i1 %34
  br i1 %or.cond, label %.thread, label %.thread1031.sink.split

.thread:                                          ; preds = %192
  %.pr1027.pr = load i64, ptr %12, align 8, !tbaa !5
  %.not984 = icmp eq i64 %.pr1027.pr, 0
  br i1 %.not984, label %199, label %.thread1031

.thread1031.sink.split:                           ; preds = %192, %44, %41, %38, %36, %13
  %.sink = phi i64 [ -1, %13 ], [ -2, %36 ], [ -3, %38 ], [ -5, %41 ], [ -7, %44 ], [ -12, %192 ]
  store i64 %.sink, ptr %12, align 8, !tbaa !5
  br label %.thread1031

.thread1031:                                      ; preds = %.thread1031.sink.split, %.thread
  %196 = phi i64 [ %.pr1027.pr, %.thread ], [ %.sink, %.thread1031.sink.split ]
  %197 = sub nsw i64 0, %196
  store i64 %197, ptr %14, align 8, !tbaa !5
  %198 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %14) #4
  br label %535

199:                                              ; preds = %.thread
  br i1 %34, label %535, label %200

200:                                              ; preds = %199
  %201 = load i64, ptr %0, align 8, !tbaa !5
  %202 = icmp eq i64 %201, 0
  br i1 %202, label %206, label %203

203:                                              ; preds = %200
  %204 = load i64, ptr %1, align 8, !tbaa !5
  %205 = icmp eq i64 %204, 0
  br i1 %205, label %206, label %207

206:                                              ; preds = %203, %200
  store i64 0, ptr %9, align 8, !tbaa !5
  br label %535

207:                                              ; preds = %203
  %208 = call double @dlamch_(ptr noundef nonnull @.str.9) #4
  %209 = call double @dlamch_(ptr noundef nonnull @.str.12) #4
  %210 = fdiv double %209, %208
  store double %210, ptr %24, align 8, !tbaa !9
  %211 = fdiv double 1.000000e+00, %210
  store double %211, ptr %22, align 8, !tbaa !9
  %212 = call i32 @dlabad_(ptr noundef nonnull %24, ptr noundef nonnull %22) #4
  %213 = call double @dlange_(ptr noundef nonnull @.str.13, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10) #4
  store double %213, ptr %18, align 8, !tbaa !9
  %214 = fcmp ogt double %213, 0.000000e+00
  %215 = load double, ptr %24, align 8
  %216 = fcmp olt double %213, %215
  %or.cond1017 = select i1 %214, i1 %216, i1 false
  br i1 %or.cond1017, label %.sink.split, label %217

217:                                              ; preds = %207
  %218 = load double, ptr %22, align 8, !tbaa !9
  %219 = fcmp ogt double %213, %218
  br i1 %219, label %.sink.split, label %220

220:                                              ; preds = %217
  %221 = fcmp oeq double %213, 0.000000e+00
  br i1 %221, label %222, label %228

222:                                              ; preds = %220
  %223 = load i64, ptr %0, align 8, !tbaa !5
  %224 = load i64, ptr %1, align 8, !tbaa !5
  %.1018 = call i64 @llvm.smax.i64(i64 %223, i64 %224)
  store i64 %.1018, ptr %14, align 8, !tbaa !5
  %225 = call i32 @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %14, ptr noundef nonnull %2, ptr noundef nonnull @c_b74, ptr noundef nonnull @c_b74, ptr noundef %5, ptr noundef nonnull %6) #4
  %226 = call i32 @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %21, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b74, ptr noundef nonnull @c_b74, ptr noundef %7, ptr noundef nonnull @c__1) #4
  store i64 0, ptr %9, align 8, !tbaa !5
  br label %534

.sink.split:                                      ; preds = %217, %207
  %.sink1106 = phi ptr [ %24, %207 ], [ %22, %217 ]
  %.ph1105 = xor i1 %or.cond1017, true
  %227 = call i32 @dlascl_(ptr noundef nonnull @.str.14, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %18, ptr noundef nonnull %.sink1106, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %12) #4
  br label %228

228:                                              ; preds = %.sink.split, %220
  %229 = phi i1 [ false, %220 ], [ %.ph1105, %.sink.split ]
  %230 = call double @dlange_(ptr noundef nonnull @.str.13, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %10) #4
  store double %230, ptr %19, align 8, !tbaa !9
  %231 = fcmp ule double %230, 0.000000e+00
  %232 = load double, ptr %24, align 8
  %233 = fcmp uge double %230, %232
  %or.cond1020.not = select i1 %231, i1 true, i1 %233
  br i1 %or.cond1020.not, label %234, label %.sink.split1107

234:                                              ; preds = %228
  %235 = load double, ptr %22, align 8, !tbaa !9
  %236 = fcmp ogt double %230, %235
  br i1 %236, label %.sink.split1107, label %238

.sink.split1107:                                  ; preds = %234, %228
  %.sink1109 = phi ptr [ %24, %228 ], [ %22, %234 ]
  %237 = call i32 @dlascl_(ptr noundef nonnull @.str.14, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %19, ptr noundef nonnull %.sink1109, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %12) #4
  br label %238

238:                                              ; preds = %.sink.split1107, %234
  %239 = phi i1 [ false, %234 ], [ %or.cond1020.not, %.sink.split1107 ]
  %240 = load i64, ptr %0, align 8, !tbaa !5
  %241 = load i64, ptr %1, align 8, !tbaa !5
  %.not986 = icmp slt i64 %240, %241
  br i1 %.not986, label %331, label %242

242:                                              ; preds = %238
  store i64 %240, ptr %17, align 8, !tbaa !5
  %.not1008 = icmp slt i64 %240, %.0919
  br i1 %.not1008, label %257, label %243

243:                                              ; preds = %242
  store i64 %241, ptr %17, align 8, !tbaa !5
  %244 = load i64, ptr %11, align 8, !tbaa !5
  %245 = sub i64 %244, %241
  store i64 %245, ptr %14, align 8, !tbaa !5
  %246 = getelementptr double, ptr %10, i64 %241
  %247 = call i32 @dgeqrf_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10, ptr noundef %246, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %248 = load i64, ptr %11, align 8, !tbaa !5
  %249 = sub i64 %248, %241
  store i64 %249, ptr %14, align 8, !tbaa !5
  %250 = call i32 @dormqr_(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %246, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %251 = load i64, ptr %1, align 8, !tbaa !5
  %252 = icmp sgt i64 %251, 1
  br i1 %252, label %253, label %257

253:                                              ; preds = %243
  %254 = add nsw i64 %251, -1
  store i64 %254, ptr %14, align 8, !tbaa !5
  store i64 %254, ptr %15, align 8, !tbaa !5
  %255 = getelementptr inbounds i8, ptr %3, i64 8
  %256 = call i32 @dlaset_(ptr noundef nonnull @.str.16, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull @c_b74, ptr noundef nonnull @c_b74, ptr noundef nonnull %255, ptr noundef nonnull %4) #4
  %.pre1100 = load i64, ptr %1, align 8, !tbaa !5
  br label %257

257:                                              ; preds = %243, %253, %242
  %258 = phi i64 [ %251, %243 ], [ %.pre1100, %253 ], [ %241, %242 ]
  %reass.add1009 = shl i64 %258, 1
  %259 = or disjoint i64 %reass.add1009, 1
  %260 = add nsw i64 %259, %258
  %261 = load i64, ptr %11, align 8, !tbaa !5
  %262 = add i64 %261, 1
  %263 = sub i64 %262, %260
  store i64 %263, ptr %14, align 8, !tbaa !5
  %264 = getelementptr double, ptr %10, i64 %258
  %265 = getelementptr double, ptr %10, i64 %reass.add1009
  %266 = getelementptr inbounds double, ptr %29, i64 %260
  %267 = call i32 @dgebrd_(ptr noundef nonnull %17, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %10, ptr noundef %264, ptr noundef %265, ptr noundef nonnull %266, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %268 = load i64, ptr %11, align 8, !tbaa !5
  %reass.sub = sub i64 %268, %260
  %269 = add i64 %reass.sub, 1
  store i64 %269, ptr %14, align 8, !tbaa !5
  %270 = call i32 @dormbr_(ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17, ptr noundef nonnull %17, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %264, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %266, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %271 = load i64, ptr %11, align 8, !tbaa !5
  %reass.sub1087 = sub i64 %271, %260
  %272 = add i64 %reass.sub1087, 1
  store i64 %272, ptr %14, align 8, !tbaa !5
  %273 = call i32 @dorgbr_(ptr noundef nonnull @.str.9, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %265, ptr noundef nonnull %266, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %274 = load i64, ptr %1, align 8, !tbaa !5
  %275 = getelementptr double, ptr %10, i64 %274
  %276 = call i32 @dbdsqr_(ptr noundef nonnull @.str.19, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull %10, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %20, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %275, ptr noundef nonnull %12) #4
  %277 = load i64, ptr %12, align 8, !tbaa !5
  %.not1010 = icmp eq i64 %277, 0
  br i1 %.not1010, label %278, label %534

278:                                              ; preds = %257
  %279 = load double, ptr %8, align 8, !tbaa !9
  %280 = load double, ptr %7, align 8, !tbaa !9
  %281 = fmul double %279, %280
  %282 = fcmp oge double %281, %209
  %283 = select i1 %282, double %281, double %209
  %284 = fcmp olt double %279, 0.000000e+00
  br i1 %284, label %285, label %289

285:                                              ; preds = %278
  %286 = fmul double %208, %280
  %287 = fcmp oge double %286, %209
  %288 = select i1 %287, double %286, double %209
  br label %289

289:                                              ; preds = %285, %278
  %.0923 = phi double [ %288, %285 ], [ %283, %278 ]
  store i64 0, ptr %9, align 8, !tbaa !5
  %290 = load i64, ptr %1, align 8, !tbaa !5
  store i64 %290, ptr %14, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %5, i64 -8
  %.not10111049 = icmp slt i64 %290, 1
  br i1 %.not10111049, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %289, %300
  %.09261050 = phi i64 [ %301, %300 ], [ 1, %289 ]
  %291 = getelementptr inbounds double, ptr %28, i64 %.09261050
  %292 = load double, ptr %291, align 8, !tbaa !9
  %293 = fcmp ogt double %292, %.0923
  %gep1048 = getelementptr double, ptr %invariant.gep, i64 %.09261050
  br i1 %293, label %294, label %298

294:                                              ; preds = %.lr.ph
  %295 = call i32 @drscl_(ptr noundef nonnull %2, ptr noundef nonnull %291, ptr noundef %gep1048, ptr noundef nonnull %6) #4
  %296 = load i64, ptr %9, align 8, !tbaa !5
  %297 = add nsw i64 %296, 1
  store i64 %297, ptr %9, align 8, !tbaa !5
  br label %300

298:                                              ; preds = %.lr.ph
  %299 = call i32 @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_b74, ptr noundef nonnull @c_b74, ptr noundef %gep1048, ptr noundef nonnull %6) #4
  br label %300

300:                                              ; preds = %294, %298
  %301 = add nuw nsw i64 %.09261050, 1
  %302 = load i64, ptr %14, align 8, !tbaa !5
  %.not1011.not = icmp slt i64 %.09261050, %302
  br i1 %.not1011.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %300, %289
  %303 = load i64, ptr %11, align 8, !tbaa !5
  %304 = load i64, ptr %6, align 8, !tbaa !5
  %305 = load i64, ptr %2, align 8, !tbaa !5
  %306 = mul nsw i64 %305, %304
  %.not1012 = icmp sge i64 %303, %306
  %307 = icmp sgt i64 %305, 1
  %or.cond1021 = and i1 %307, %.not1012
  br i1 %or.cond1021, label %308, label %311

308:                                              ; preds = %._crit_edge
  %309 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.20, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef nonnull @c_b108, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull @c_b74, ptr noundef %10, ptr noundef nonnull %6) #4
  %310 = call i32 @dlacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6) #4
  br label %.loopexit

311:                                              ; preds = %._crit_edge
  br i1 %307, label %312, label %328

312:                                              ; preds = %311
  %313 = load i64, ptr %1, align 8, !tbaa !5
  %314 = sdiv i64 %303, %313
  store i64 %305, ptr %14, align 8, !tbaa !5
  store i64 %314, ptr %15, align 8, !tbaa !5
  %invariant.gep1051 = getelementptr i8, ptr %27, i64 8
  %315 = icmp sgt i64 %314, -1
  br i1 %315, label %.lr.ph1056, label %.loopexit

.lr.ph1056:                                       ; preds = %312, %.lr.ph1056
  %.19271054 = phi i64 [ %323, %.lr.ph1056 ], [ 1, %312 ]
  %316 = load i64, ptr %2, align 8, !tbaa !5
  %reass.sub1088 = sub i64 %316, %.19271054
  %317 = add i64 %reass.sub1088, 1
  %318 = call i64 @llvm.smin.i64(i64 %317, i64 %314)
  store i64 %318, ptr %16, align 8, !tbaa !5
  %319 = mul nsw i64 %.19271054, %25
  %gep1052 = getelementptr double, ptr %invariant.gep1051, i64 %319
  %320 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.20, ptr noundef nonnull %1, ptr noundef nonnull %16, ptr noundef nonnull %1, ptr noundef nonnull @c_b108, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %gep1052, ptr noundef nonnull %6, ptr noundef nonnull @c_b74, ptr noundef %10, ptr noundef nonnull %1) #4
  %321 = call i32 @dlacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %1, ptr noundef nonnull %16, ptr noundef %10, ptr noundef nonnull %1, ptr noundef %gep1052, ptr noundef nonnull %6) #4
  %322 = load i64, ptr %15, align 8, !tbaa !5
  %323 = add nsw i64 %322, %.19271054
  %324 = icmp slt i64 %322, 0
  %325 = load i64, ptr %14, align 8
  %326 = icmp sge i64 %323, %325
  %327 = icmp sle i64 %323, %325
  %.in1013 = select i1 %324, i1 %326, i1 %327
  br i1 %.in1013, label %.lr.ph1056, label %.loopexit, !llvm.loop !13

328:                                              ; preds = %311
  %329 = call i32 @f2c_dgemv(ptr noundef nonnull @.str.17, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef nonnull @c_b108, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b74, ptr noundef %10, ptr noundef nonnull @c__1) #4
  %330 = call i32 @f2c_dcopy(ptr noundef nonnull %1, ptr noundef %10, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull @c__1) #4
  br label %.loopexit

331:                                              ; preds = %238
  %332 = shl i64 %240, 1
  %333 = add nsw i64 %332, -4
  %334 = call i64 @llvm.smax.i64(i64 %240, i64 %333)
  %335 = load i64, ptr %2, align 8, !tbaa !5
  %.1022 = call i64 @llvm.smax.i64(i64 %334, i64 %335)
  store i64 %.1022, ptr %15, align 8, !tbaa !5
  %.not989 = icmp slt i64 %241, %.0919
  %.pre1101 = load i64, ptr %11, align 8, !tbaa !5
  br i1 %.not989, label %455, label %336

336:                                              ; preds = %331
  %.neg = mul i64 %240, -3
  %337 = add i64 %.neg, %241
  %338 = add i64 %240, 4
  %339 = mul i64 %338, %240
  %340 = call i64 @llvm.smax.i64(i64 %.1022, i64 %337)
  %341 = add nsw i64 %340, %339
  %.not991 = icmp slt i64 %.pre1101, %341
  br i1 %.not991, label %455, label %342

342:                                              ; preds = %336
  store i64 %240, ptr %23, align 8, !tbaa !5
  %343 = load i64, ptr %4, align 8, !tbaa !5
  %344 = add i64 %343, 4
  %345 = mul i64 %344, %240
  %346 = add nsw i64 %345, %340
  %347 = add i64 %335, 1
  %348 = add i64 %347, %343
  %349 = mul i64 %348, %240
  store i64 %349, ptr %14, align 8, !tbaa !5
  %350 = call i64 @llvm.smax.i64(i64 %346, i64 %349)
  %.not1001 = icmp slt i64 %.pre1101, %350
  br i1 %.not1001, label %352, label %351

351:                                              ; preds = %342
  store i64 %343, ptr %23, align 8, !tbaa !5
  br label %352

352:                                              ; preds = %351, %342
  %353 = add nsw i64 %240, 1
  %354 = sub i64 %.pre1101, %240
  store i64 %354, ptr %15, align 8, !tbaa !5
  %355 = getelementptr double, ptr %10, i64 %240
  %356 = call i32 @dgelqf_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10, ptr noundef %355, ptr noundef nonnull %15, ptr noundef nonnull %12) #4
  %357 = call i32 @dlacpy_(ptr noundef nonnull @.str.16, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %355, ptr noundef nonnull %23) #4
  %358 = load i64, ptr %0, align 8, !tbaa !5
  %359 = add nsw i64 %358, -1
  store i64 %359, ptr %15, align 8, !tbaa !5
  store i64 %359, ptr %14, align 8, !tbaa !5
  %360 = load i64, ptr %23, align 8, !tbaa !5
  %361 = getelementptr double, ptr %355, i64 %360
  %362 = call i32 @dlaset_(ptr noundef nonnull @.str.19, ptr noundef nonnull %15, ptr noundef nonnull %14, ptr noundef nonnull @c_b74, ptr noundef nonnull @c_b74, ptr noundef %361, ptr noundef nonnull %23) #4
  %363 = load i64, ptr %23, align 8, !tbaa !5
  %364 = load i64, ptr %0, align 8, !tbaa !5
  %365 = mul nsw i64 %364, %363
  %366 = add nsw i64 %365, %353
  %367 = add nsw i64 %366, %364
  %368 = add nsw i64 %367, %364
  %369 = add nsw i64 %368, %364
  %370 = load i64, ptr %11, align 8, !tbaa !5
  %371 = add i64 %370, 1
  %372 = sub i64 %371, %369
  store i64 %372, ptr %15, align 8, !tbaa !5
  %373 = getelementptr inbounds double, ptr %29, i64 %366
  %374 = getelementptr inbounds double, ptr %29, i64 %367
  %375 = getelementptr inbounds double, ptr %29, i64 %368
  %376 = getelementptr inbounds double, ptr %29, i64 %369
  %377 = call i32 @dgebrd_(ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef %355, ptr noundef nonnull %23, ptr noundef %7, ptr noundef nonnull %373, ptr noundef nonnull %374, ptr noundef nonnull %375, ptr noundef nonnull %376, ptr noundef nonnull %15, ptr noundef nonnull %12) #4
  %378 = load i64, ptr %11, align 8, !tbaa !5
  %379 = add i64 %378, 1
  %380 = sub i64 %379, %369
  store i64 %380, ptr %15, align 8, !tbaa !5
  %381 = call i32 @dormbr_(ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef %355, ptr noundef nonnull %23, ptr noundef nonnull %374, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %376, ptr noundef nonnull %15, ptr noundef nonnull %12) #4
  %382 = load i64, ptr %11, align 8, !tbaa !5
  %reass.sub1089 = sub i64 %382, %369
  %383 = add i64 %reass.sub1089, 1
  store i64 %383, ptr %15, align 8, !tbaa !5
  %384 = call i32 @dorgbr_(ptr noundef nonnull @.str.9, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef %355, ptr noundef nonnull %23, ptr noundef nonnull %375, ptr noundef nonnull %376, ptr noundef nonnull %15, ptr noundef nonnull %12) #4
  %385 = load i64, ptr %0, align 8, !tbaa !5
  %386 = getelementptr double, ptr %373, i64 %385
  %387 = call i32 @dbdsqr_(ptr noundef nonnull @.str.19, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull %373, ptr noundef %355, ptr noundef nonnull %23, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %386, ptr noundef nonnull %12) #4
  %388 = load i64, ptr %12, align 8, !tbaa !5
  %.not1002 = icmp eq i64 %388, 0
  br i1 %.not1002, label %389, label %534

389:                                              ; preds = %352
  %390 = load double, ptr %8, align 8, !tbaa !9
  %391 = load double, ptr %7, align 8, !tbaa !9
  %392 = fmul double %390, %391
  %393 = fcmp oge double %392, %209
  %394 = select i1 %393, double %392, double %209
  %395 = fcmp olt double %390, 0.000000e+00
  br i1 %395, label %396, label %400

396:                                              ; preds = %389
  %397 = fmul double %208, %391
  %398 = fcmp oge double %397, %209
  %399 = select i1 %398, double %397, double %209
  br label %400

400:                                              ; preds = %396, %389
  %.1924 = phi double [ %399, %396 ], [ %394, %389 ]
  store i64 0, ptr %9, align 8, !tbaa !5
  %401 = load i64, ptr %0, align 8, !tbaa !5
  store i64 %401, ptr %15, align 8, !tbaa !5
  %invariant.gep1057 = getelementptr i8, ptr %5, i64 -8
  %.not10031061 = icmp slt i64 %401, 1
  br i1 %.not10031061, label %._crit_edge1065, label %.lr.ph1064

.lr.ph1064:                                       ; preds = %400, %411
  %.29281062 = phi i64 [ %412, %411 ], [ 1, %400 ]
  %402 = getelementptr inbounds double, ptr %28, i64 %.29281062
  %403 = load double, ptr %402, align 8, !tbaa !9
  %404 = fcmp ogt double %403, %.1924
  %gep1060 = getelementptr double, ptr %invariant.gep1057, i64 %.29281062
  br i1 %404, label %405, label %409

405:                                              ; preds = %.lr.ph1064
  %406 = call i32 @drscl_(ptr noundef nonnull %2, ptr noundef nonnull %402, ptr noundef %gep1060, ptr noundef nonnull %6) #4
  %407 = load i64, ptr %9, align 8, !tbaa !5
  %408 = add nsw i64 %407, 1
  store i64 %408, ptr %9, align 8, !tbaa !5
  br label %411

409:                                              ; preds = %.lr.ph1064
  %410 = call i32 @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_b74, ptr noundef nonnull @c_b74, ptr noundef %gep1060, ptr noundef nonnull %6) #4
  br label %411

411:                                              ; preds = %405, %409
  %412 = add nuw nsw i64 %.29281062, 1
  %413 = load i64, ptr %15, align 8, !tbaa !5
  %.not1003.not = icmp slt i64 %.29281062, %413
  br i1 %.not1003.not, label %.lr.ph1064, label %._crit_edge1065, !llvm.loop !14

._crit_edge1065:                                  ; preds = %411, %400
  %414 = load i64, ptr %11, align 8, !tbaa !5
  %415 = load i64, ptr %6, align 8, !tbaa !5
  %416 = load i64, ptr %2, align 8, !tbaa !5
  %417 = mul nsw i64 %416, %415
  %418 = add i64 %365, %240
  %419 = add i64 %418, %417
  %.not1004 = icmp sge i64 %414, %419
  %420 = icmp sgt i64 %416, 1
  %or.cond1024 = and i1 %420, %.not1004
  br i1 %or.cond1024, label %421, label %424

421:                                              ; preds = %._crit_edge1065
  %422 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.20, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull @c_b108, ptr noundef %355, ptr noundef nonnull %23, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull @c_b74, ptr noundef nonnull %373, ptr noundef nonnull %6) #4
  %423 = call i32 @dlacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %373, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6) #4
  br label %.loopexit1045

424:                                              ; preds = %._crit_edge1065
  br i1 %420, label %425, label %442

425:                                              ; preds = %424
  %reass.sub1090 = sub i64 %414, %366
  %426 = add i64 %reass.sub1090, 1
  %427 = load i64, ptr %0, align 8, !tbaa !5
  %428 = sdiv i64 %426, %427
  store i64 %416, ptr %15, align 8, !tbaa !5
  store i64 %428, ptr %14, align 8, !tbaa !5
  %invariant.gep1066 = getelementptr i8, ptr %27, i64 8
  %429 = icmp sgt i64 %428, -1
  br i1 %429, label %.lr.ph1071, label %.loopexit1045

.lr.ph1071:                                       ; preds = %425, %.lr.ph1071
  %.39291069 = phi i64 [ %437, %.lr.ph1071 ], [ 1, %425 ]
  %430 = load i64, ptr %2, align 8, !tbaa !5
  %reass.sub1091 = sub i64 %430, %.39291069
  %431 = add i64 %reass.sub1091, 1
  %432 = call i64 @llvm.smin.i64(i64 %431, i64 %428)
  store i64 %432, ptr %16, align 8, !tbaa !5
  %433 = mul nsw i64 %.39291069, %25
  %gep1067 = getelementptr double, ptr %invariant.gep1066, i64 %433
  %434 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.20, ptr noundef nonnull %0, ptr noundef nonnull %16, ptr noundef nonnull %0, ptr noundef nonnull @c_b108, ptr noundef %355, ptr noundef nonnull %23, ptr noundef %gep1067, ptr noundef nonnull %6, ptr noundef nonnull @c_b74, ptr noundef nonnull %373, ptr noundef nonnull %0) #4
  %435 = call i32 @dlacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %0, ptr noundef nonnull %16, ptr noundef nonnull %373, ptr noundef nonnull %0, ptr noundef %gep1067, ptr noundef nonnull %6) #4
  %436 = load i64, ptr %14, align 8, !tbaa !5
  %437 = add nsw i64 %436, %.39291069
  %438 = icmp slt i64 %436, 0
  %439 = load i64, ptr %15, align 8
  %440 = icmp sge i64 %437, %439
  %441 = icmp sle i64 %437, %439
  %.in1005 = select i1 %438, i1 %440, i1 %441
  br i1 %.in1005, label %.lr.ph1071, label %.loopexit1045, !llvm.loop !15

442:                                              ; preds = %424
  %443 = call i32 @f2c_dgemv(ptr noundef nonnull @.str.17, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull @c_b108, ptr noundef %355, ptr noundef nonnull %23, ptr noundef %5, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b74, ptr noundef nonnull %373, ptr noundef nonnull @c__1) #4
  %444 = call i32 @f2c_dcopy(ptr noundef nonnull %0, ptr noundef nonnull %373, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull @c__1) #4
  br label %.loopexit1045

.loopexit1045:                                    ; preds = %.lr.ph1071, %425, %442, %421
  %445 = load i64, ptr %1, align 8, !tbaa !5
  %446 = load i64, ptr %0, align 8, !tbaa !5
  %447 = sub nsw i64 %445, %446
  store i64 %447, ptr %14, align 8, !tbaa !5
  %448 = getelementptr inbounds double, ptr %5, i64 %446
  %449 = call i32 @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %14, ptr noundef nonnull %2, ptr noundef nonnull @c_b74, ptr noundef nonnull @c_b74, ptr noundef %448, ptr noundef nonnull %6) #4
  %450 = load i64, ptr %0, align 8, !tbaa !5
  %451 = load i64, ptr %11, align 8, !tbaa !5
  %452 = sub i64 %451, %450
  store i64 %452, ptr %14, align 8, !tbaa !5
  %453 = getelementptr double, ptr %10, i64 %450
  %454 = call i32 @dormlq_(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %10, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %453, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  br label %.loopexit

455:                                              ; preds = %336, %331
  %456 = or disjoint i64 %332, 1
  %457 = add nsw i64 %456, %240
  %reass.sub1092 = sub i64 %.pre1101, %457
  %458 = add i64 %reass.sub1092, 1
  store i64 %458, ptr %14, align 8, !tbaa !5
  %459 = getelementptr double, ptr %10, i64 %240
  %460 = getelementptr double, ptr %10, i64 %332
  %461 = getelementptr inbounds double, ptr %29, i64 %457
  %462 = call i32 @dgebrd_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %10, ptr noundef %459, ptr noundef %460, ptr noundef nonnull %461, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %463 = load i64, ptr %11, align 8, !tbaa !5
  %reass.sub1093 = sub i64 %463, %457
  %464 = add i64 %reass.sub1093, 1
  store i64 %464, ptr %14, align 8, !tbaa !5
  %465 = call i32 @dormbr_(ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %459, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %461, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %466 = load i64, ptr %11, align 8, !tbaa !5
  %reass.sub1094 = sub i64 %466, %457
  %467 = add i64 %reass.sub1094, 1
  store i64 %467, ptr %14, align 8, !tbaa !5
  %468 = call i32 @dorgbr_(ptr noundef nonnull @.str.9, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %460, ptr noundef nonnull %461, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %469 = load i64, ptr %0, align 8, !tbaa !5
  %470 = getelementptr double, ptr %10, i64 %469
  %471 = call i32 @dbdsqr_(ptr noundef nonnull @.str.16, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull %10, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %20, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %470, ptr noundef nonnull %12) #4
  %472 = load i64, ptr %12, align 8, !tbaa !5
  %.not992 = icmp eq i64 %472, 0
  br i1 %.not992, label %473, label %534

473:                                              ; preds = %455
  %474 = load double, ptr %8, align 8, !tbaa !9
  %475 = load double, ptr %7, align 8, !tbaa !9
  %476 = fmul double %474, %475
  %477 = fcmp oge double %476, %209
  %478 = select i1 %477, double %476, double %209
  %479 = fcmp olt double %474, 0.000000e+00
  br i1 %479, label %480, label %484

480:                                              ; preds = %473
  %481 = fmul double %208, %475
  %482 = fcmp oge double %481, %209
  %483 = select i1 %482, double %481, double %209
  br label %484

484:                                              ; preds = %480, %473
  %.2925 = phi double [ %483, %480 ], [ %478, %473 ]
  store i64 0, ptr %9, align 8, !tbaa !5
  %485 = load i64, ptr %0, align 8, !tbaa !5
  store i64 %485, ptr %14, align 8, !tbaa !5
  %invariant.gep1072 = getelementptr i8, ptr %5, i64 -8
  %.not9931076 = icmp slt i64 %485, 1
  br i1 %.not9931076, label %._crit_edge1080, label %.lr.ph1079

.lr.ph1079:                                       ; preds = %484, %495
  %.49301077 = phi i64 [ %496, %495 ], [ 1, %484 ]
  %486 = getelementptr inbounds double, ptr %28, i64 %.49301077
  %487 = load double, ptr %486, align 8, !tbaa !9
  %488 = fcmp ogt double %487, %.2925
  %gep1075 = getelementptr double, ptr %invariant.gep1072, i64 %.49301077
  br i1 %488, label %489, label %493

489:                                              ; preds = %.lr.ph1079
  %490 = call i32 @drscl_(ptr noundef nonnull %2, ptr noundef nonnull %486, ptr noundef %gep1075, ptr noundef nonnull %6) #4
  %491 = load i64, ptr %9, align 8, !tbaa !5
  %492 = add nsw i64 %491, 1
  store i64 %492, ptr %9, align 8, !tbaa !5
  br label %495

493:                                              ; preds = %.lr.ph1079
  %494 = call i32 @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_b74, ptr noundef nonnull @c_b74, ptr noundef %gep1075, ptr noundef nonnull %6) #4
  br label %495

495:                                              ; preds = %489, %493
  %496 = add nuw nsw i64 %.49301077, 1
  %497 = load i64, ptr %14, align 8, !tbaa !5
  %.not993.not = icmp slt i64 %.49301077, %497
  br i1 %.not993.not, label %.lr.ph1079, label %._crit_edge1080, !llvm.loop !16

._crit_edge1080:                                  ; preds = %495, %484
  %498 = load i64, ptr %11, align 8, !tbaa !5
  %499 = load i64, ptr %6, align 8, !tbaa !5
  %500 = load i64, ptr %2, align 8, !tbaa !5
  %501 = mul nsw i64 %500, %499
  %.not994 = icmp sge i64 %498, %501
  %502 = icmp sgt i64 %500, 1
  %or.cond1025 = and i1 %502, %.not994
  br i1 %or.cond1025, label %503, label %506

503:                                              ; preds = %._crit_edge1080
  %504 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.20, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull @c_b108, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull @c_b74, ptr noundef %10, ptr noundef nonnull %6) #4
  %505 = call i32 @dlacpy_(ptr noundef nonnull @.str.15, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6) #4
  br label %.loopexit

506:                                              ; preds = %._crit_edge1080
  br i1 %502, label %507, label %523

507:                                              ; preds = %506
  %508 = load i64, ptr %1, align 8, !tbaa !5
  %509 = sdiv i64 %498, %508
  store i64 %500, ptr %14, align 8, !tbaa !5
  store i64 %509, ptr %15, align 8, !tbaa !5
  %invariant.gep1081 = getelementptr i8, ptr %27, i64 8
  %510 = icmp sgt i64 %509, -1
  br i1 %510, label %.lr.ph1086, label %.loopexit

.lr.ph1086:                                       ; preds = %507, %.lr.ph1086
  %.59311084 = phi i64 [ %518, %.lr.ph1086 ], [ 1, %507 ]
  %511 = load i64, ptr %2, align 8, !tbaa !5
  %reass.sub1095 = sub i64 %511, %.59311084
  %512 = add i64 %reass.sub1095, 1
  %513 = call i64 @llvm.smin.i64(i64 %512, i64 %509)
  store i64 %513, ptr %16, align 8, !tbaa !5
  %514 = mul nsw i64 %.59311084, %25
  %gep1082 = getelementptr double, ptr %invariant.gep1081, i64 %514
  %515 = call i32 @f2c_dgemm(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.20, ptr noundef nonnull %1, ptr noundef nonnull %16, ptr noundef nonnull %0, ptr noundef nonnull @c_b108, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %gep1082, ptr noundef nonnull %6, ptr noundef nonnull @c_b74, ptr noundef %10, ptr noundef nonnull %1) #4
  %516 = call i32 @dlacpy_(ptr noundef nonnull @.str.15, ptr noundef nonnull %1, ptr noundef nonnull %16, ptr noundef %10, ptr noundef nonnull %1, ptr noundef %gep1082, ptr noundef nonnull %6) #4
  %517 = load i64, ptr %15, align 8, !tbaa !5
  %518 = add nsw i64 %517, %.59311084
  %519 = icmp slt i64 %517, 0
  %520 = load i64, ptr %14, align 8
  %521 = icmp sge i64 %518, %520
  %522 = icmp sle i64 %518, %520
  %.in = select i1 %519, i1 %521, i1 %522
  br i1 %.in, label %.lr.ph1086, label %.loopexit, !llvm.loop !17

523:                                              ; preds = %506
  %524 = call i32 @f2c_dgemv(ptr noundef nonnull @.str.17, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull @c_b108, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b74, ptr noundef %10, ptr noundef nonnull @c__1) #4
  %525 = call i32 @f2c_dcopy(ptr noundef nonnull %1, ptr noundef %10, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull @c__1) #4
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph1056, %.lr.ph1086, %312, %507, %.loopexit1045, %523, %503, %308, %328
  %brmerge = or i1 %or.cond1017, %229
  br i1 %brmerge, label %.sink.split1110, label %528

.sink.split1110:                                  ; preds = %.loopexit
  %.mux = select i1 %or.cond1017, ptr %24, ptr %22
  %526 = call i32 @dlascl_(ptr noundef nonnull @.str.14, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %18, ptr noundef nonnull %.mux, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %12) #4
  %527 = call i32 @dlascl_(ptr noundef nonnull @.str.14, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %.mux, ptr noundef nonnull %18, ptr noundef nonnull %21, ptr noundef nonnull @c__1, ptr noundef %7, ptr noundef nonnull %21, ptr noundef nonnull %12) #4
  br label %528

528:                                              ; preds = %.loopexit, %.sink.split1110
  br i1 %or.cond1020.not, label %531, label %529

529:                                              ; preds = %528
  %530 = call i32 @dlascl_(ptr noundef nonnull @.str.14, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull %19, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %12) #4
  br label %534

531:                                              ; preds = %528
  br i1 %239, label %532, label %534

532:                                              ; preds = %531
  %533 = call i32 @dlascl_(ptr noundef nonnull @.str.14, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, ptr noundef nonnull %19, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %12) #4
  br label %534

534:                                              ; preds = %529, %532, %531, %455, %352, %257, %222
  store double %194, ptr %10, align 8, !tbaa !9
  br label %535

535:                                              ; preds = %199, %534, %206, %.thread1031
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #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 i64 @ilaenv_(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 double @dlamch_(ptr noundef) local_unnamed_addr #2

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

declare double @dlange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @dlascl_(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 @dlaset_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, 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 @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 @dgebrd_(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 @dormbr_(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 @dorgbr_(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 @dbdsqr_(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 @drscl_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #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 = !{!"long", !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 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass