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

; 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__9 = external hidden global i64, align 8
@c__0 = 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 [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b82 = 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

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

95:                                               ; preds = %14
  %96 = load ptr, ptr %17, 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 %49, align 8, !tbaa !9
  %100 = load ptr, ptr %16, align 8, !tbaa !5
  %101 = load i64, ptr %100, align 8, !tbaa !9
  %102 = load ptr, ptr %17, 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 %16, align 8, !tbaa !5
  %107 = load i64, ptr %106, align 8, !tbaa !9
  br label %111

108:                                              ; preds = %98
  %109 = load ptr, ptr %17, 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 %50, align 8, !tbaa !9
  %113 = load ptr, ptr %16, align 8, !tbaa !5
  %114 = load ptr, ptr %17, align 8, !tbaa !5
  %115 = load ptr, ptr %18, align 8, !tbaa !5
  %116 = call i64 @ilaenv_(ptr noundef @c__6, ptr noundef @.str, ptr noundef @.str.1, ptr noundef %113, ptr noundef %114, ptr noundef %115, ptr noundef @c_n1)
  store i64 %116, ptr %53, align 8, !tbaa !9
  %117 = load ptr, ptr %27, align 8, !tbaa !5
  %118 = load i64, ptr %117, align 8, !tbaa !9
  %119 = icmp eq i64 %118, -1
  %120 = zext i1 %119 to i32
  %121 = sext i32 %120 to i64
  store i64 %121, ptr %61, align 8, !tbaa !9
  %122 = load ptr, ptr %16, align 8, !tbaa !5
  %123 = load i64, ptr %122, align 8, !tbaa !9
  %124 = icmp slt i64 %123, 0
  br i1 %124, label %125, label %127

125:                                              ; preds = %111
  %126 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -1, ptr %126, align 8, !tbaa !9
  br label %171

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

131:                                              ; preds = %127
  %132 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -2, ptr %132, align 8, !tbaa !9
  br label %170

133:                                              ; preds = %127
  %134 = load ptr, ptr %18, align 8, !tbaa !5
  %135 = load i64, ptr %134, align 8, !tbaa !9
  %136 = icmp slt i64 %135, 0
  br i1 %136, label %137, label %139

137:                                              ; preds = %133
  %138 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -3, ptr %138, align 8, !tbaa !9
  br label %169

139:                                              ; preds = %133
  %140 = load ptr, ptr %20, align 8, !tbaa !5
  %141 = load i64, ptr %140, align 8, !tbaa !9
  %142 = load ptr, ptr %16, align 8, !tbaa !5
  %143 = load i64, ptr %142, align 8, !tbaa !9
  %144 = icmp sge i64 1, %143
  br i1 %144, label %145, label %146

145:                                              ; preds = %139
  br label %149

146:                                              ; preds = %139
  %147 = load ptr, ptr %16, align 8, !tbaa !5
  %148 = load i64, ptr %147, align 8, !tbaa !9
  br label %149

149:                                              ; preds = %146, %145
  %150 = phi i64 [ 1, %145 ], [ %148, %146 ]
  %151 = icmp slt i64 %141, %150
  br i1 %151, label %152, label %154

152:                                              ; preds = %149
  %153 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -5, ptr %153, align 8, !tbaa !9
  br label %168

154:                                              ; preds = %149
  %155 = load ptr, ptr %22, align 8, !tbaa !5
  %156 = load i64, ptr %155, align 8, !tbaa !9
  %157 = load i64, ptr %50, align 8, !tbaa !9
  %158 = icmp sge i64 1, %157
  br i1 %158, label %159, label %160

159:                                              ; preds = %154
  br label %162

160:                                              ; preds = %154
  %161 = load i64, ptr %50, align 8, !tbaa !9
  br label %162

162:                                              ; preds = %160, %159
  %163 = phi i64 [ 1, %159 ], [ %161, %160 ]
  %164 = icmp slt i64 %156, %163
  br i1 %164, label %165, label %167

165:                                              ; preds = %162
  %166 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -7, ptr %166, align 8, !tbaa !9
  br label %167

167:                                              ; preds = %165, %162
  br label %168

168:                                              ; preds = %167, %152
  br label %169

169:                                              ; preds = %168, %137
  br label %170

170:                                              ; preds = %169, %131
  br label %171

171:                                              ; preds = %170, %125
  %172 = call i64 @ilaenv_(ptr noundef @c__9, ptr noundef @.str, ptr noundef @.str.1, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c__0)
  store i64 %172, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %58, align 8, !tbaa !9
  %173 = load i64, ptr %49, align 8, !tbaa !9
  %174 = icmp sge i64 1, %173
  br i1 %174, label %175, label %176

175:                                              ; preds = %171
  br label %178

176:                                              ; preds = %171
  %177 = load i64, ptr %49, align 8, !tbaa !9
  br label %178

178:                                              ; preds = %176, %175
  %179 = phi i64 [ 1, %175 ], [ %177, %176 ]
  store i64 %179, ptr %49, align 8, !tbaa !9
  %180 = load i64, ptr %49, align 8, !tbaa !9
  %181 = sitofp i64 %180 to double
  %182 = load i64, ptr %62, align 8, !tbaa !9
  %183 = add nsw i64 %182, 1
  %184 = sitofp i64 %183 to double
  %185 = fdiv double %181, %184
  %186 = call double @log(double noundef %185) #4
  %187 = call double @log(double noundef 2.000000e+00) #4
  %188 = fdiv double %186, %187
  %189 = fptosi double %188 to i64
  %190 = add nsw i64 %189, 1
  store i64 %190, ptr %34, align 8, !tbaa !9
  %191 = load i64, ptr %34, align 8, !tbaa !9
  %192 = icmp sge i64 %191, 0
  br i1 %192, label %193, label %195

193:                                              ; preds = %178
  %194 = load i64, ptr %34, align 8, !tbaa !9
  br label %196

195:                                              ; preds = %178
  br label %196

196:                                              ; preds = %195, %193
  %197 = phi i64 [ %194, %193 ], [ 0, %195 ]
  store i64 %197, ptr %45, align 8, !tbaa !9
  %198 = load ptr, ptr %29, align 8, !tbaa !5
  %199 = load i64, ptr %198, align 8, !tbaa !9
  %200 = icmp eq i64 %199, 0
  br i1 %200, label %201, label %814

201:                                              ; preds = %196
  store i64 0, ptr %59, align 8, !tbaa !9
  %202 = load ptr, ptr %16, align 8, !tbaa !5
  %203 = load i64, ptr %202, align 8, !tbaa !9
  store i64 %203, ptr %40, align 8, !tbaa !9
  %204 = load ptr, ptr %16, align 8, !tbaa !5
  %205 = load i64, ptr %204, align 8, !tbaa !9
  %206 = load ptr, ptr %17, align 8, !tbaa !5
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = icmp sge i64 %205, %207
  br i1 %208, label %209, label %256

209:                                              ; preds = %201
  %210 = load ptr, ptr %16, align 8, !tbaa !5
  %211 = load i64, ptr %210, align 8, !tbaa !9
  %212 = load i64, ptr %53, align 8, !tbaa !9
  %213 = icmp sge i64 %211, %212
  br i1 %213, label %214, label %256

214:                                              ; preds = %209
  %215 = load ptr, ptr %17, align 8, !tbaa !5
  %216 = load i64, ptr %215, align 8, !tbaa !9
  store i64 %216, ptr %40, align 8, !tbaa !9
  %217 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %217, ptr %34, align 8, !tbaa !9
  %218 = load ptr, ptr %17, align 8, !tbaa !5
  %219 = load i64, ptr %218, align 8, !tbaa !9
  %220 = load ptr, ptr %17, align 8, !tbaa !5
  %221 = load i64, ptr %220, align 8, !tbaa !9
  %222 = load ptr, ptr %16, align 8, !tbaa !5
  %223 = load ptr, ptr %17, align 8, !tbaa !5
  %224 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.2, ptr noundef @.str.1, ptr noundef %222, ptr noundef %223, ptr noundef @c_n1, ptr noundef @c_n1)
  %225 = mul nsw i64 %221, %224
  %226 = add nsw i64 %219, %225
  store i64 %226, ptr %35, align 8, !tbaa !9
  %227 = load i64, ptr %34, align 8, !tbaa !9
  %228 = load i64, ptr %35, align 8, !tbaa !9
  %229 = icmp sge i64 %227, %228
  br i1 %229, label %230, label %232

230:                                              ; preds = %214
  %231 = load i64, ptr %34, align 8, !tbaa !9
  br label %234

232:                                              ; preds = %214
  %233 = load i64, ptr %35, align 8, !tbaa !9
  br label %234

234:                                              ; preds = %232, %230
  %235 = phi i64 [ %231, %230 ], [ %233, %232 ]
  store i64 %235, ptr %59, align 8, !tbaa !9
  %236 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %236, ptr %34, align 8, !tbaa !9
  %237 = load ptr, ptr %17, align 8, !tbaa !5
  %238 = load i64, ptr %237, align 8, !tbaa !9
  %239 = load ptr, ptr %18, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  %241 = load ptr, ptr %16, align 8, !tbaa !5
  %242 = load ptr, ptr %18, align 8, !tbaa !5
  %243 = load ptr, ptr %17, align 8, !tbaa !5
  %244 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %241, ptr noundef %242, ptr noundef %243, ptr noundef @c_n1)
  %245 = mul nsw i64 %240, %244
  %246 = add nsw i64 %238, %245
  store i64 %246, ptr %35, align 8, !tbaa !9
  %247 = load i64, ptr %34, align 8, !tbaa !9
  %248 = load i64, ptr %35, align 8, !tbaa !9
  %249 = icmp sge i64 %247, %248
  br i1 %249, label %250, label %252

250:                                              ; preds = %234
  %251 = load i64, ptr %34, align 8, !tbaa !9
  br label %254

252:                                              ; preds = %234
  %253 = load i64, ptr %35, align 8, !tbaa !9
  br label %254

254:                                              ; preds = %252, %250
  %255 = phi i64 [ %251, %250 ], [ %253, %252 ]
  store i64 %255, ptr %59, align 8, !tbaa !9
  br label %256

256:                                              ; preds = %254, %209, %201
  %257 = load ptr, ptr %16, align 8, !tbaa !5
  %258 = load i64, ptr %257, align 8, !tbaa !9
  %259 = load ptr, ptr %17, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = icmp sge i64 %258, %260
  br i1 %261, label %262, label %402

262:                                              ; preds = %256
  %263 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %263, ptr %34, align 8, !tbaa !9
  %264 = load ptr, ptr %17, align 8, !tbaa !5
  %265 = load i64, ptr %264, align 8, !tbaa !9
  %266 = mul nsw i64 %265, 3
  %267 = load i64, ptr %40, align 8, !tbaa !9
  %268 = load ptr, ptr %17, align 8, !tbaa !5
  %269 = load i64, ptr %268, align 8, !tbaa !9
  %270 = add nsw i64 %267, %269
  %271 = load ptr, ptr %17, align 8, !tbaa !5
  %272 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.1, ptr noundef %40, ptr noundef %271, ptr noundef @c_n1, ptr noundef @c_n1)
  %273 = mul nsw i64 %270, %272
  %274 = add nsw i64 %266, %273
  store i64 %274, ptr %35, align 8, !tbaa !9
  %275 = load i64, ptr %34, align 8, !tbaa !9
  %276 = load i64, ptr %35, align 8, !tbaa !9
  %277 = icmp sge i64 %275, %276
  br i1 %277, label %278, label %280

278:                                              ; preds = %262
  %279 = load i64, ptr %34, align 8, !tbaa !9
  br label %282

280:                                              ; preds = %262
  %281 = load i64, ptr %35, align 8, !tbaa !9
  br label %282

282:                                              ; preds = %280, %278
  %283 = phi i64 [ %279, %278 ], [ %281, %280 ]
  store i64 %283, ptr %59, align 8, !tbaa !9
  %284 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %284, ptr %34, align 8, !tbaa !9
  %285 = load ptr, ptr %17, align 8, !tbaa !5
  %286 = load i64, ptr %285, align 8, !tbaa !9
  %287 = mul nsw i64 %286, 3
  %288 = load ptr, ptr %18, align 8, !tbaa !5
  %289 = load i64, ptr %288, align 8, !tbaa !9
  %290 = load ptr, ptr %18, align 8, !tbaa !5
  %291 = load ptr, ptr %17, align 8, !tbaa !5
  %292 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %40, ptr noundef %290, ptr noundef %291, ptr noundef @c_n1)
  %293 = mul nsw i64 %289, %292
  %294 = add nsw i64 %287, %293
  store i64 %294, ptr %35, align 8, !tbaa !9
  %295 = load i64, ptr %34, align 8, !tbaa !9
  %296 = load i64, ptr %35, align 8, !tbaa !9
  %297 = icmp sge i64 %295, %296
  br i1 %297, label %298, label %300

298:                                              ; preds = %282
  %299 = load i64, ptr %34, align 8, !tbaa !9
  br label %302

300:                                              ; preds = %282
  %301 = load i64, ptr %35, align 8, !tbaa !9
  br label %302

302:                                              ; preds = %300, %298
  %303 = phi i64 [ %299, %298 ], [ %301, %300 ]
  store i64 %303, ptr %59, align 8, !tbaa !9
  %304 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %304, ptr %34, align 8, !tbaa !9
  %305 = load ptr, ptr %17, align 8, !tbaa !5
  %306 = load i64, ptr %305, align 8, !tbaa !9
  %307 = mul nsw i64 %306, 3
  %308 = load ptr, ptr %17, align 8, !tbaa !5
  %309 = load i64, ptr %308, align 8, !tbaa !9
  %310 = sub nsw i64 %309, 1
  %311 = load ptr, ptr %17, align 8, !tbaa !5
  %312 = load ptr, ptr %18, align 8, !tbaa !5
  %313 = load ptr, ptr %17, align 8, !tbaa !5
  %314 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.8, ptr noundef %311, ptr noundef %312, ptr noundef %313, ptr noundef @c_n1)
  %315 = mul nsw i64 %310, %314
  %316 = add nsw i64 %307, %315
  store i64 %316, ptr %35, align 8, !tbaa !9
  %317 = load i64, ptr %34, align 8, !tbaa !9
  %318 = load i64, ptr %35, align 8, !tbaa !9
  %319 = icmp sge i64 %317, %318
  br i1 %319, label %320, label %322

320:                                              ; preds = %302
  %321 = load i64, ptr %34, align 8, !tbaa !9
  br label %324

322:                                              ; preds = %302
  %323 = load i64, ptr %35, align 8, !tbaa !9
  br label %324

324:                                              ; preds = %322, %320
  %325 = phi i64 [ %321, %320 ], [ %323, %322 ]
  store i64 %325, ptr %59, align 8, !tbaa !9
  %326 = load i64, ptr %62, align 8, !tbaa !9
  %327 = add nsw i64 %326, 1
  store i64 %327, ptr %34, align 8, !tbaa !9
  %328 = load ptr, ptr %17, align 8, !tbaa !5
  %329 = load i64, ptr %328, align 8, !tbaa !9
  %330 = mul nsw i64 %329, 9
  %331 = load ptr, ptr %17, align 8, !tbaa !5
  %332 = load i64, ptr %331, align 8, !tbaa !9
  %333 = shl i64 %332, 1
  %334 = load i64, ptr %62, align 8, !tbaa !9
  %335 = mul nsw i64 %333, %334
  %336 = add nsw i64 %330, %335
  %337 = load ptr, ptr %17, align 8, !tbaa !5
  %338 = load i64, ptr %337, align 8, !tbaa !9
  %339 = shl i64 %338, 3
  %340 = load i64, ptr %45, align 8, !tbaa !9
  %341 = mul nsw i64 %339, %340
  %342 = add nsw i64 %336, %341
  %343 = load ptr, ptr %17, align 8, !tbaa !5
  %344 = load i64, ptr %343, align 8, !tbaa !9
  %345 = load ptr, ptr %18, align 8, !tbaa !5
  %346 = load i64, ptr %345, align 8, !tbaa !9
  %347 = mul nsw i64 %344, %346
  %348 = add nsw i64 %342, %347
  %349 = load i64, ptr %34, align 8, !tbaa !9
  %350 = load i64, ptr %34, align 8, !tbaa !9
  %351 = mul nsw i64 %349, %350
  %352 = add nsw i64 %348, %351
  store i64 %352, ptr %56, align 8, !tbaa !9
  %353 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %353, ptr %34, align 8, !tbaa !9
  %354 = load ptr, ptr %17, align 8, !tbaa !5
  %355 = load i64, ptr %354, align 8, !tbaa !9
  %356 = mul nsw i64 %355, 3
  %357 = load i64, ptr %56, align 8, !tbaa !9
  %358 = add nsw i64 %356, %357
  store i64 %358, ptr %35, align 8, !tbaa !9
  %359 = load i64, ptr %34, align 8, !tbaa !9
  %360 = load i64, ptr %35, align 8, !tbaa !9
  %361 = icmp sge i64 %359, %360
  br i1 %361, label %362, label %364

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

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

366:                                              ; preds = %364, %362
  %367 = phi i64 [ %363, %362 ], [ %365, %364 ]
  store i64 %367, ptr %59, align 8, !tbaa !9
  %368 = load ptr, ptr %17, align 8, !tbaa !5
  %369 = load i64, ptr %368, align 8, !tbaa !9
  %370 = mul nsw i64 %369, 3
  %371 = load i64, ptr %40, align 8, !tbaa !9
  %372 = add nsw i64 %370, %371
  store i64 %372, ptr %34, align 8, !tbaa !9
  %373 = load ptr, ptr %17, align 8, !tbaa !5
  %374 = load i64, ptr %373, align 8, !tbaa !9
  %375 = mul nsw i64 %374, 3
  %376 = load ptr, ptr %18, align 8, !tbaa !5
  %377 = load i64, ptr %376, align 8, !tbaa !9
  %378 = add nsw i64 %375, %377
  store i64 %378, ptr %35, align 8, !tbaa !9
  %379 = load i64, ptr %34, align 8, !tbaa !9
  %380 = load i64, ptr %35, align 8, !tbaa !9
  %381 = icmp sge i64 %379, %380
  br i1 %381, label %382, label %384

382:                                              ; preds = %366
  %383 = load i64, ptr %34, align 8, !tbaa !9
  br label %386

384:                                              ; preds = %366
  %385 = load i64, ptr %35, align 8, !tbaa !9
  br label %386

386:                                              ; preds = %384, %382
  %387 = phi i64 [ %383, %382 ], [ %385, %384 ]
  store i64 %387, ptr %34, align 8, !tbaa !9
  %388 = load ptr, ptr %17, align 8, !tbaa !5
  %389 = load i64, ptr %388, align 8, !tbaa !9
  %390 = mul nsw i64 %389, 3
  %391 = load i64, ptr %56, align 8, !tbaa !9
  %392 = add nsw i64 %390, %391
  store i64 %392, ptr %35, align 8, !tbaa !9
  %393 = load i64, ptr %34, align 8, !tbaa !9
  %394 = load i64, ptr %35, align 8, !tbaa !9
  %395 = icmp sge i64 %393, %394
  br i1 %395, label %396, label %398

396:                                              ; preds = %386
  %397 = load i64, ptr %34, align 8, !tbaa !9
  br label %400

398:                                              ; preds = %386
  %399 = load i64, ptr %35, align 8, !tbaa !9
  br label %400

400:                                              ; preds = %398, %396
  %401 = phi i64 [ %397, %396 ], [ %399, %398 ]
  store i64 %401, ptr %58, align 8, !tbaa !9
  br label %402

402:                                              ; preds = %400, %256
  %403 = load ptr, ptr %17, align 8, !tbaa !5
  %404 = load i64, ptr %403, align 8, !tbaa !9
  %405 = load ptr, ptr %16, align 8, !tbaa !5
  %406 = load i64, ptr %405, align 8, !tbaa !9
  %407 = icmp sgt i64 %404, %406
  br i1 %407, label %408, label %790

408:                                              ; preds = %402
  %409 = load i64, ptr %62, align 8, !tbaa !9
  %410 = add nsw i64 %409, 1
  store i64 %410, ptr %34, align 8, !tbaa !9
  %411 = load ptr, ptr %16, align 8, !tbaa !5
  %412 = load i64, ptr %411, align 8, !tbaa !9
  %413 = mul nsw i64 %412, 9
  %414 = load ptr, ptr %16, align 8, !tbaa !5
  %415 = load i64, ptr %414, align 8, !tbaa !9
  %416 = shl i64 %415, 1
  %417 = load i64, ptr %62, align 8, !tbaa !9
  %418 = mul nsw i64 %416, %417
  %419 = add nsw i64 %413, %418
  %420 = load ptr, ptr %16, align 8, !tbaa !5
  %421 = load i64, ptr %420, align 8, !tbaa !9
  %422 = shl i64 %421, 3
  %423 = load i64, ptr %45, align 8, !tbaa !9
  %424 = mul nsw i64 %422, %423
  %425 = add nsw i64 %419, %424
  %426 = load ptr, ptr %16, align 8, !tbaa !5
  %427 = load i64, ptr %426, align 8, !tbaa !9
  %428 = load ptr, ptr %18, align 8, !tbaa !5
  %429 = load i64, ptr %428, align 8, !tbaa !9
  %430 = mul nsw i64 %427, %429
  %431 = add nsw i64 %425, %430
  %432 = load i64, ptr %34, align 8, !tbaa !9
  %433 = load i64, ptr %34, align 8, !tbaa !9
  %434 = mul nsw i64 %432, %433
  %435 = add nsw i64 %431, %434
  store i64 %435, ptr %56, align 8, !tbaa !9
  %436 = load ptr, ptr %17, align 8, !tbaa !5
  %437 = load i64, ptr %436, align 8, !tbaa !9
  %438 = load i64, ptr %53, align 8, !tbaa !9
  %439 = icmp sge i64 %437, %438
  br i1 %439, label %440, label %683

440:                                              ; preds = %408
  %441 = load ptr, ptr %16, align 8, !tbaa !5
  %442 = load i64, ptr %441, align 8, !tbaa !9
  %443 = load ptr, ptr %16, align 8, !tbaa !5
  %444 = load i64, ptr %443, align 8, !tbaa !9
  %445 = load ptr, ptr %16, align 8, !tbaa !5
  %446 = load ptr, ptr %17, align 8, !tbaa !5
  %447 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.9, ptr noundef @.str.1, ptr noundef %445, ptr noundef %446, ptr noundef @c_n1, ptr noundef @c_n1)
  %448 = mul nsw i64 %444, %447
  %449 = add nsw i64 %442, %448
  store i64 %449, ptr %59, align 8, !tbaa !9
  %450 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %450, ptr %34, align 8, !tbaa !9
  %451 = load ptr, ptr %16, align 8, !tbaa !5
  %452 = load i64, ptr %451, align 8, !tbaa !9
  %453 = load ptr, ptr %16, align 8, !tbaa !5
  %454 = load i64, ptr %453, align 8, !tbaa !9
  %455 = mul nsw i64 %452, %454
  %456 = load ptr, ptr %16, align 8, !tbaa !5
  %457 = load i64, ptr %456, align 8, !tbaa !9
  %458 = shl i64 %457, 2
  %459 = add nsw i64 %455, %458
  %460 = load ptr, ptr %16, align 8, !tbaa !5
  %461 = load i64, ptr %460, align 8, !tbaa !9
  %462 = shl i64 %461, 1
  %463 = load ptr, ptr %16, align 8, !tbaa !5
  %464 = load ptr, ptr %16, align 8, !tbaa !5
  %465 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.1, ptr noundef %463, ptr noundef %464, ptr noundef @c_n1, ptr noundef @c_n1)
  %466 = mul nsw i64 %462, %465
  %467 = add nsw i64 %459, %466
  store i64 %467, ptr %35, align 8, !tbaa !9
  %468 = load i64, ptr %34, align 8, !tbaa !9
  %469 = load i64, ptr %35, align 8, !tbaa !9
  %470 = icmp sge i64 %468, %469
  br i1 %470, label %471, label %473

471:                                              ; preds = %440
  %472 = load i64, ptr %34, align 8, !tbaa !9
  br label %475

473:                                              ; preds = %440
  %474 = load i64, ptr %35, align 8, !tbaa !9
  br label %475

475:                                              ; preds = %473, %471
  %476 = phi i64 [ %472, %471 ], [ %474, %473 ]
  store i64 %476, ptr %59, align 8, !tbaa !9
  %477 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %477, ptr %34, align 8, !tbaa !9
  %478 = load ptr, ptr %16, align 8, !tbaa !5
  %479 = load i64, ptr %478, align 8, !tbaa !9
  %480 = load ptr, ptr %16, align 8, !tbaa !5
  %481 = load i64, ptr %480, align 8, !tbaa !9
  %482 = mul nsw i64 %479, %481
  %483 = load ptr, ptr %16, align 8, !tbaa !5
  %484 = load i64, ptr %483, align 8, !tbaa !9
  %485 = shl i64 %484, 2
  %486 = add nsw i64 %482, %485
  %487 = load ptr, ptr %18, align 8, !tbaa !5
  %488 = load i64, ptr %487, align 8, !tbaa !9
  %489 = load ptr, ptr %16, align 8, !tbaa !5
  %490 = load ptr, ptr %18, align 8, !tbaa !5
  %491 = load ptr, ptr %16, align 8, !tbaa !5
  %492 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %489, ptr noundef %490, ptr noundef %491, ptr noundef @c_n1)
  %493 = mul nsw i64 %488, %492
  %494 = add nsw i64 %486, %493
  store i64 %494, ptr %35, align 8, !tbaa !9
  %495 = load i64, ptr %34, align 8, !tbaa !9
  %496 = load i64, ptr %35, align 8, !tbaa !9
  %497 = icmp sge i64 %495, %496
  br i1 %497, label %498, label %500

498:                                              ; preds = %475
  %499 = load i64, ptr %34, align 8, !tbaa !9
  br label %502

500:                                              ; preds = %475
  %501 = load i64, ptr %35, align 8, !tbaa !9
  br label %502

502:                                              ; preds = %500, %498
  %503 = phi i64 [ %499, %498 ], [ %501, %500 ]
  store i64 %503, ptr %59, align 8, !tbaa !9
  %504 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %504, ptr %34, align 8, !tbaa !9
  %505 = load ptr, ptr %16, align 8, !tbaa !5
  %506 = load i64, ptr %505, align 8, !tbaa !9
  %507 = load ptr, ptr %16, align 8, !tbaa !5
  %508 = load i64, ptr %507, align 8, !tbaa !9
  %509 = mul nsw i64 %506, %508
  %510 = load ptr, ptr %16, align 8, !tbaa !5
  %511 = load i64, ptr %510, align 8, !tbaa !9
  %512 = shl i64 %511, 2
  %513 = add nsw i64 %509, %512
  %514 = load ptr, ptr %16, align 8, !tbaa !5
  %515 = load i64, ptr %514, align 8, !tbaa !9
  %516 = sub nsw i64 %515, 1
  %517 = load ptr, ptr %16, align 8, !tbaa !5
  %518 = load ptr, ptr %18, align 8, !tbaa !5
  %519 = load ptr, ptr %16, align 8, !tbaa !5
  %520 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.8, ptr noundef %517, ptr noundef %518, ptr noundef %519, ptr noundef @c_n1)
  %521 = mul nsw i64 %516, %520
  %522 = add nsw i64 %513, %521
  store i64 %522, ptr %35, align 8, !tbaa !9
  %523 = load i64, ptr %34, align 8, !tbaa !9
  %524 = load i64, ptr %35, align 8, !tbaa !9
  %525 = icmp sge i64 %523, %524
  br i1 %525, label %526, label %528

526:                                              ; preds = %502
  %527 = load i64, ptr %34, align 8, !tbaa !9
  br label %530

528:                                              ; preds = %502
  %529 = load i64, ptr %35, align 8, !tbaa !9
  br label %530

530:                                              ; preds = %528, %526
  %531 = phi i64 [ %527, %526 ], [ %529, %528 ]
  store i64 %531, ptr %59, align 8, !tbaa !9
  %532 = load ptr, ptr %18, align 8, !tbaa !5
  %533 = load i64, ptr %532, align 8, !tbaa !9
  %534 = icmp sgt i64 %533, 1
  br i1 %534, label %535, label %560

535:                                              ; preds = %530
  %536 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %536, ptr %34, align 8, !tbaa !9
  %537 = load ptr, ptr %16, align 8, !tbaa !5
  %538 = load i64, ptr %537, align 8, !tbaa !9
  %539 = load ptr, ptr %16, align 8, !tbaa !5
  %540 = load i64, ptr %539, align 8, !tbaa !9
  %541 = mul nsw i64 %538, %540
  %542 = load ptr, ptr %16, align 8, !tbaa !5
  %543 = load i64, ptr %542, align 8, !tbaa !9
  %544 = add nsw i64 %541, %543
  %545 = load ptr, ptr %16, align 8, !tbaa !5
  %546 = load i64, ptr %545, align 8, !tbaa !9
  %547 = load ptr, ptr %18, align 8, !tbaa !5
  %548 = load i64, ptr %547, align 8, !tbaa !9
  %549 = mul nsw i64 %546, %548
  %550 = add nsw i64 %544, %549
  store i64 %550, ptr %35, align 8, !tbaa !9
  %551 = load i64, ptr %34, align 8, !tbaa !9
  %552 = load i64, ptr %35, align 8, !tbaa !9
  %553 = icmp sge i64 %551, %552
  br i1 %553, label %554, label %556

554:                                              ; preds = %535
  %555 = load i64, ptr %34, align 8, !tbaa !9
  br label %558

556:                                              ; preds = %535
  %557 = load i64, ptr %35, align 8, !tbaa !9
  br label %558

558:                                              ; preds = %556, %554
  %559 = phi i64 [ %555, %554 ], [ %557, %556 ]
  store i64 %559, ptr %59, align 8, !tbaa !9
  br label %580

560:                                              ; preds = %530
  %561 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %561, ptr %34, align 8, !tbaa !9
  %562 = load ptr, ptr %16, align 8, !tbaa !5
  %563 = load i64, ptr %562, align 8, !tbaa !9
  %564 = load ptr, ptr %16, align 8, !tbaa !5
  %565 = load i64, ptr %564, align 8, !tbaa !9
  %566 = mul nsw i64 %563, %565
  %567 = load ptr, ptr %16, align 8, !tbaa !5
  %568 = load i64, ptr %567, align 8, !tbaa !9
  %569 = shl i64 %568, 1
  %570 = add nsw i64 %566, %569
  store i64 %570, ptr %35, align 8, !tbaa !9
  %571 = load i64, ptr %34, align 8, !tbaa !9
  %572 = load i64, ptr %35, align 8, !tbaa !9
  %573 = icmp sge i64 %571, %572
  br i1 %573, label %574, label %576

574:                                              ; preds = %560
  %575 = load i64, ptr %34, align 8, !tbaa !9
  br label %578

576:                                              ; preds = %560
  %577 = load i64, ptr %35, align 8, !tbaa !9
  br label %578

578:                                              ; preds = %576, %574
  %579 = phi i64 [ %575, %574 ], [ %577, %576 ]
  store i64 %579, ptr %59, align 8, !tbaa !9
  br label %580

580:                                              ; preds = %578, %558
  %581 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %581, ptr %34, align 8, !tbaa !9
  %582 = load ptr, ptr %16, align 8, !tbaa !5
  %583 = load i64, ptr %582, align 8, !tbaa !9
  %584 = load ptr, ptr %18, align 8, !tbaa !5
  %585 = load i64, ptr %584, align 8, !tbaa !9
  %586 = load ptr, ptr %17, align 8, !tbaa !5
  %587 = load ptr, ptr %18, align 8, !tbaa !5
  %588 = load ptr, ptr %16, align 8, !tbaa !5
  %589 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.10, ptr noundef @.str.4, ptr noundef %586, ptr noundef %587, ptr noundef %588, ptr noundef @c_n1)
  %590 = mul nsw i64 %585, %589
  %591 = add nsw i64 %583, %590
  store i64 %591, ptr %35, align 8, !tbaa !9
  %592 = load i64, ptr %34, align 8, !tbaa !9
  %593 = load i64, ptr %35, align 8, !tbaa !9
  %594 = icmp sge i64 %592, %593
  br i1 %594, label %595, label %597

595:                                              ; preds = %580
  %596 = load i64, ptr %34, align 8, !tbaa !9
  br label %599

597:                                              ; preds = %580
  %598 = load i64, ptr %35, align 8, !tbaa !9
  br label %599

599:                                              ; preds = %597, %595
  %600 = phi i64 [ %596, %595 ], [ %598, %597 ]
  store i64 %600, ptr %59, align 8, !tbaa !9
  %601 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %601, ptr %34, align 8, !tbaa !9
  %602 = load ptr, ptr %16, align 8, !tbaa !5
  %603 = load i64, ptr %602, align 8, !tbaa !9
  %604 = load ptr, ptr %16, align 8, !tbaa !5
  %605 = load i64, ptr %604, align 8, !tbaa !9
  %606 = mul nsw i64 %603, %605
  %607 = load ptr, ptr %16, align 8, !tbaa !5
  %608 = load i64, ptr %607, align 8, !tbaa !9
  %609 = shl i64 %608, 2
  %610 = add nsw i64 %606, %609
  %611 = load i64, ptr %56, align 8, !tbaa !9
  %612 = add nsw i64 %610, %611
  store i64 %612, ptr %35, align 8, !tbaa !9
  %613 = load i64, ptr %34, align 8, !tbaa !9
  %614 = load i64, ptr %35, align 8, !tbaa !9
  %615 = icmp sge i64 %613, %614
  br i1 %615, label %616, label %618

616:                                              ; preds = %599
  %617 = load i64, ptr %34, align 8, !tbaa !9
  br label %620

618:                                              ; preds = %599
  %619 = load i64, ptr %35, align 8, !tbaa !9
  br label %620

620:                                              ; preds = %618, %616
  %621 = phi i64 [ %617, %616 ], [ %619, %618 ]
  store i64 %621, ptr %59, align 8, !tbaa !9
  %622 = load ptr, ptr %16, align 8, !tbaa !5
  %623 = load i64, ptr %622, align 8, !tbaa !9
  store i64 %623, ptr %36, align 8, !tbaa !9
  %624 = load ptr, ptr %16, align 8, !tbaa !5
  %625 = load i64, ptr %624, align 8, !tbaa !9
  %626 = shl i64 %625, 1
  %627 = sub nsw i64 %626, 4
  store i64 %627, ptr %37, align 8, !tbaa !9
  %628 = load i64, ptr %36, align 8, !tbaa !9
  %629 = load i64, ptr %37, align 8, !tbaa !9
  %630 = icmp sge i64 %628, %629
  br i1 %630, label %631, label %633

631:                                              ; preds = %620
  %632 = load i64, ptr %36, align 8, !tbaa !9
  br label %635

633:                                              ; preds = %620
  %634 = load i64, ptr %37, align 8, !tbaa !9
  br label %635

635:                                              ; preds = %633, %631
  %636 = phi i64 [ %632, %631 ], [ %634, %633 ]
  store i64 %636, ptr %36, align 8, !tbaa !9
  %637 = load i64, ptr %36, align 8, !tbaa !9
  %638 = load ptr, ptr %18, align 8, !tbaa !5
  %639 = load i64, ptr %638, align 8, !tbaa !9
  %640 = icmp sge i64 %637, %639
  br i1 %640, label %641, label %643

641:                                              ; preds = %635
  %642 = load i64, ptr %36, align 8, !tbaa !9
  br label %646

643:                                              ; preds = %635
  %644 = load ptr, ptr %18, align 8, !tbaa !5
  %645 = load i64, ptr %644, align 8, !tbaa !9
  br label %646

646:                                              ; preds = %643, %641
  %647 = phi i64 [ %642, %641 ], [ %645, %643 ]
  store i64 %647, ptr %36, align 8, !tbaa !9
  %648 = load ptr, ptr %17, align 8, !tbaa !5
  %649 = load i64, ptr %648, align 8, !tbaa !9
  %650 = load ptr, ptr %16, align 8, !tbaa !5
  %651 = load i64, ptr %650, align 8, !tbaa !9
  %652 = mul nsw i64 %651, 3
  %653 = sub nsw i64 %649, %652
  store i64 %653, ptr %37, align 8, !tbaa !9
  %654 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %654, ptr %34, align 8, !tbaa !9
  %655 = load ptr, ptr %16, align 8, !tbaa !5
  %656 = load i64, ptr %655, align 8, !tbaa !9
  %657 = shl i64 %656, 2
  %658 = load ptr, ptr %16, align 8, !tbaa !5
  %659 = load i64, ptr %658, align 8, !tbaa !9
  %660 = load ptr, ptr %16, align 8, !tbaa !5
  %661 = load i64, ptr %660, align 8, !tbaa !9
  %662 = mul nsw i64 %659, %661
  %663 = add nsw i64 %657, %662
  %664 = load i64, ptr %36, align 8, !tbaa !9
  %665 = load i64, ptr %37, align 8, !tbaa !9
  %666 = icmp sge i64 %664, %665
  br i1 %666, label %667, label %669

667:                                              ; preds = %646
  %668 = load i64, ptr %36, align 8, !tbaa !9
  br label %671

669:                                              ; preds = %646
  %670 = load i64, ptr %37, align 8, !tbaa !9
  br label %671

671:                                              ; preds = %669, %667
  %672 = phi i64 [ %668, %667 ], [ %670, %669 ]
  %673 = add nsw i64 %663, %672
  store i64 %673, ptr %35, align 8, !tbaa !9
  %674 = load i64, ptr %34, align 8, !tbaa !9
  %675 = load i64, ptr %35, align 8, !tbaa !9
  %676 = icmp sge i64 %674, %675
  br i1 %676, label %677, label %679

677:                                              ; preds = %671
  %678 = load i64, ptr %34, align 8, !tbaa !9
  br label %681

679:                                              ; preds = %671
  %680 = load i64, ptr %35, align 8, !tbaa !9
  br label %681

681:                                              ; preds = %679, %677
  %682 = phi i64 [ %678, %677 ], [ %680, %679 ]
  store i64 %682, ptr %59, align 8, !tbaa !9
  br label %754

683:                                              ; preds = %408
  %684 = load ptr, ptr %16, align 8, !tbaa !5
  %685 = load i64, ptr %684, align 8, !tbaa !9
  %686 = mul nsw i64 %685, 3
  %687 = load ptr, ptr %17, align 8, !tbaa !5
  %688 = load i64, ptr %687, align 8, !tbaa !9
  %689 = load ptr, ptr %16, align 8, !tbaa !5
  %690 = load i64, ptr %689, align 8, !tbaa !9
  %691 = add nsw i64 %688, %690
  %692 = load ptr, ptr %16, align 8, !tbaa !5
  %693 = load ptr, ptr %17, align 8, !tbaa !5
  %694 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.1, ptr noundef %692, ptr noundef %693, ptr noundef @c_n1, ptr noundef @c_n1)
  %695 = mul nsw i64 %691, %694
  %696 = add nsw i64 %686, %695
  store i64 %696, ptr %59, align 8, !tbaa !9
  %697 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %697, ptr %34, align 8, !tbaa !9
  %698 = load ptr, ptr %16, align 8, !tbaa !5
  %699 = load i64, ptr %698, align 8, !tbaa !9
  %700 = mul nsw i64 %699, 3
  %701 = load ptr, ptr %18, align 8, !tbaa !5
  %702 = load i64, ptr %701, align 8, !tbaa !9
  %703 = load ptr, ptr %16, align 8, !tbaa !5
  %704 = load ptr, ptr %18, align 8, !tbaa !5
  %705 = load ptr, ptr %17, align 8, !tbaa !5
  %706 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %703, ptr noundef %704, ptr noundef %705, ptr noundef @c_n1)
  %707 = mul nsw i64 %702, %706
  %708 = add nsw i64 %700, %707
  store i64 %708, ptr %35, align 8, !tbaa !9
  %709 = load i64, ptr %34, align 8, !tbaa !9
  %710 = load i64, ptr %35, align 8, !tbaa !9
  %711 = icmp sge i64 %709, %710
  br i1 %711, label %712, label %714

712:                                              ; preds = %683
  %713 = load i64, ptr %34, align 8, !tbaa !9
  br label %716

714:                                              ; preds = %683
  %715 = load i64, ptr %35, align 8, !tbaa !9
  br label %716

716:                                              ; preds = %714, %712
  %717 = phi i64 [ %713, %712 ], [ %715, %714 ]
  store i64 %717, ptr %59, align 8, !tbaa !9
  %718 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %718, ptr %34, align 8, !tbaa !9
  %719 = load ptr, ptr %16, align 8, !tbaa !5
  %720 = load i64, ptr %719, align 8, !tbaa !9
  %721 = mul nsw i64 %720, 3
  %722 = load ptr, ptr %16, align 8, !tbaa !5
  %723 = load i64, ptr %722, align 8, !tbaa !9
  %724 = load ptr, ptr %17, align 8, !tbaa !5
  %725 = load ptr, ptr %18, align 8, !tbaa !5
  %726 = load ptr, ptr %16, align 8, !tbaa !5
  %727 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.8, ptr noundef %724, ptr noundef %725, ptr noundef %726, ptr noundef @c_n1)
  %728 = mul nsw i64 %723, %727
  %729 = add nsw i64 %721, %728
  store i64 %729, ptr %35, align 8, !tbaa !9
  %730 = load i64, ptr %34, align 8, !tbaa !9
  %731 = load i64, ptr %35, align 8, !tbaa !9
  %732 = icmp sge i64 %730, %731
  br i1 %732, label %733, label %735

733:                                              ; preds = %716
  %734 = load i64, ptr %34, align 8, !tbaa !9
  br label %737

735:                                              ; preds = %716
  %736 = load i64, ptr %35, align 8, !tbaa !9
  br label %737

737:                                              ; preds = %735, %733
  %738 = phi i64 [ %734, %733 ], [ %736, %735 ]
  store i64 %738, ptr %59, align 8, !tbaa !9
  %739 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %739, ptr %34, align 8, !tbaa !9
  %740 = load ptr, ptr %16, align 8, !tbaa !5
  %741 = load i64, ptr %740, align 8, !tbaa !9
  %742 = mul nsw i64 %741, 3
  %743 = load i64, ptr %56, align 8, !tbaa !9
  %744 = add nsw i64 %742, %743
  store i64 %744, ptr %35, align 8, !tbaa !9
  %745 = load i64, ptr %34, align 8, !tbaa !9
  %746 = load i64, ptr %35, align 8, !tbaa !9
  %747 = icmp sge i64 %745, %746
  br i1 %747, label %748, label %750

748:                                              ; preds = %737
  %749 = load i64, ptr %34, align 8, !tbaa !9
  br label %752

750:                                              ; preds = %737
  %751 = load i64, ptr %35, align 8, !tbaa !9
  br label %752

752:                                              ; preds = %750, %748
  %753 = phi i64 [ %749, %748 ], [ %751, %750 ]
  store i64 %753, ptr %59, align 8, !tbaa !9
  br label %754

754:                                              ; preds = %752, %681
  %755 = load ptr, ptr %16, align 8, !tbaa !5
  %756 = load i64, ptr %755, align 8, !tbaa !9
  %757 = mul nsw i64 %756, 3
  %758 = load ptr, ptr %18, align 8, !tbaa !5
  %759 = load i64, ptr %758, align 8, !tbaa !9
  %760 = add nsw i64 %757, %759
  store i64 %760, ptr %34, align 8, !tbaa !9
  %761 = load ptr, ptr %16, align 8, !tbaa !5
  %762 = load i64, ptr %761, align 8, !tbaa !9
  %763 = mul nsw i64 %762, 3
  %764 = load ptr, ptr %16, align 8, !tbaa !5
  %765 = load i64, ptr %764, align 8, !tbaa !9
  %766 = add nsw i64 %763, %765
  store i64 %766, ptr %35, align 8, !tbaa !9
  %767 = load i64, ptr %34, align 8, !tbaa !9
  %768 = load i64, ptr %35, align 8, !tbaa !9
  %769 = icmp sge i64 %767, %768
  br i1 %769, label %770, label %772

770:                                              ; preds = %754
  %771 = load i64, ptr %34, align 8, !tbaa !9
  br label %774

772:                                              ; preds = %754
  %773 = load i64, ptr %35, align 8, !tbaa !9
  br label %774

774:                                              ; preds = %772, %770
  %775 = phi i64 [ %771, %770 ], [ %773, %772 ]
  store i64 %775, ptr %34, align 8, !tbaa !9
  %776 = load ptr, ptr %16, align 8, !tbaa !5
  %777 = load i64, ptr %776, align 8, !tbaa !9
  %778 = mul nsw i64 %777, 3
  %779 = load i64, ptr %56, align 8, !tbaa !9
  %780 = add nsw i64 %778, %779
  store i64 %780, ptr %35, align 8, !tbaa !9
  %781 = load i64, ptr %34, align 8, !tbaa !9
  %782 = load i64, ptr %35, align 8, !tbaa !9
  %783 = icmp sge i64 %781, %782
  br i1 %783, label %784, label %786

784:                                              ; preds = %774
  %785 = load i64, ptr %34, align 8, !tbaa !9
  br label %788

786:                                              ; preds = %774
  %787 = load i64, ptr %35, align 8, !tbaa !9
  br label %788

788:                                              ; preds = %786, %784
  %789 = phi i64 [ %785, %784 ], [ %787, %786 ]
  store i64 %789, ptr %58, align 8, !tbaa !9
  br label %790

790:                                              ; preds = %788, %402
  %791 = load i64, ptr %58, align 8, !tbaa !9
  %792 = load i64, ptr %59, align 8, !tbaa !9
  %793 = icmp sle i64 %791, %792
  br i1 %793, label %794, label %796

794:                                              ; preds = %790
  %795 = load i64, ptr %58, align 8, !tbaa !9
  br label %798

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

798:                                              ; preds = %796, %794
  %799 = phi i64 [ %795, %794 ], [ %797, %796 ]
  store i64 %799, ptr %58, align 8, !tbaa !9
  %800 = load i64, ptr %59, align 8, !tbaa !9
  %801 = sitofp i64 %800 to double
  %802 = load ptr, ptr %26, align 8, !tbaa !5
  %803 = getelementptr inbounds double, ptr %802, i64 1
  store double %801, ptr %803, align 8, !tbaa !11
  %804 = load ptr, ptr %27, align 8, !tbaa !5
  %805 = load i64, ptr %804, align 8, !tbaa !9
  %806 = load i64, ptr %58, align 8, !tbaa !9
  %807 = icmp slt i64 %805, %806
  br i1 %807, label %808, label %813

808:                                              ; preds = %798
  %809 = load i64, ptr %61, align 8, !tbaa !9
  %810 = icmp ne i64 %809, 0
  br i1 %810, label %813, label %811

811:                                              ; preds = %808
  %812 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -12, ptr %812, align 8, !tbaa !9
  br label %813

813:                                              ; preds = %811, %808, %798
  br label %814

814:                                              ; preds = %813, %196
  %815 = load ptr, ptr %29, align 8, !tbaa !5
  %816 = load i64, ptr %815, align 8, !tbaa !9
  %817 = icmp ne i64 %816, 0
  br i1 %817, label %818, label %823

818:                                              ; preds = %814
  %819 = load ptr, ptr %29, align 8, !tbaa !5
  %820 = load i64, ptr %819, align 8, !tbaa !9
  %821 = sub nsw i64 0, %820
  store i64 %821, ptr %34, align 8, !tbaa !9
  %822 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %34)
  store i32 0, ptr %15, align 4
  store i32 1, ptr %63, align 4
  br label %1719

823:                                              ; preds = %814
  %824 = load i64, ptr %61, align 8, !tbaa !9
  %825 = icmp ne i64 %824, 0
  br i1 %825, label %826, label %827

826:                                              ; preds = %823
  br label %1714

827:                                              ; preds = %823
  br label %828

828:                                              ; preds = %827
  %829 = load ptr, ptr %16, align 8, !tbaa !5
  %830 = load i64, ptr %829, align 8, !tbaa !9
  %831 = icmp eq i64 %830, 0
  br i1 %831, label %836, label %832

832:                                              ; preds = %828
  %833 = load ptr, ptr %17, align 8, !tbaa !5
  %834 = load i64, ptr %833, align 8, !tbaa !9
  %835 = icmp eq i64 %834, 0
  br i1 %835, label %836, label %838

836:                                              ; preds = %832, %828
  %837 = load ptr, ptr %25, align 8, !tbaa !5
  store i64 0, ptr %837, align 8, !tbaa !9
  store i32 0, ptr %15, align 4
  store i32 1, ptr %63, align 4
  br label %1719

838:                                              ; preds = %832
  %839 = call double @dlamch_(ptr noundef @.str.11)
  store double %839, ptr %41, align 8, !tbaa !11
  %840 = call double @dlamch_(ptr noundef @.str.12)
  store double %840, ptr %48, align 8, !tbaa !11
  %841 = load double, ptr %48, align 8, !tbaa !11
  %842 = load double, ptr %41, align 8, !tbaa !11
  %843 = fdiv double %841, %842
  store double %843, ptr %60, align 8, !tbaa !11
  %844 = load double, ptr %60, align 8, !tbaa !11
  %845 = fdiv double 1.000000e+00, %844
  store double %845, ptr %55, align 8, !tbaa !11
  %846 = call i32 @dlabad_(ptr noundef %60, ptr noundef %55)
  %847 = load ptr, ptr %16, align 8, !tbaa !5
  %848 = load ptr, ptr %17, align 8, !tbaa !5
  %849 = load ptr, ptr %19, align 8, !tbaa !5
  %850 = load i64, ptr %31, align 8, !tbaa !9
  %851 = getelementptr inbounds double, ptr %849, i64 %850
  %852 = load ptr, ptr %20, align 8, !tbaa !5
  %853 = load ptr, ptr %26, align 8, !tbaa !5
  %854 = getelementptr inbounds double, ptr %853, i64 1
  %855 = call double @dlange_(ptr noundef @.str.13, ptr noundef %847, ptr noundef %848, ptr noundef %851, ptr noundef %852, ptr noundef %854)
  store double %855, ptr %42, align 8, !tbaa !11
  store i64 0, ptr %46, align 8, !tbaa !9
  %856 = load double, ptr %42, align 8, !tbaa !11
  %857 = fcmp ogt double %856, 0.000000e+00
  br i1 %857, label %858, label %871

858:                                              ; preds = %838
  %859 = load double, ptr %42, align 8, !tbaa !11
  %860 = load double, ptr %60, align 8, !tbaa !11
  %861 = fcmp olt double %859, %860
  br i1 %861, label %862, label %871

862:                                              ; preds = %858
  %863 = load ptr, ptr %16, align 8, !tbaa !5
  %864 = load ptr, ptr %17, align 8, !tbaa !5
  %865 = load ptr, ptr %19, align 8, !tbaa !5
  %866 = load i64, ptr %31, align 8, !tbaa !9
  %867 = getelementptr inbounds double, ptr %865, i64 %866
  %868 = load ptr, ptr %20, align 8, !tbaa !5
  %869 = load ptr, ptr %29, align 8, !tbaa !5
  %870 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %42, ptr noundef %60, ptr noundef %863, ptr noundef %864, ptr noundef %867, ptr noundef %868, ptr noundef %869)
  store i64 1, ptr %46, align 8, !tbaa !9
  br label %913

871:                                              ; preds = %858, %838
  %872 = load double, ptr %42, align 8, !tbaa !11
  %873 = load double, ptr %55, align 8, !tbaa !11
  %874 = fcmp ogt double %872, %873
  br i1 %874, label %875, label %884

875:                                              ; preds = %871
  %876 = load ptr, ptr %16, align 8, !tbaa !5
  %877 = load ptr, ptr %17, align 8, !tbaa !5
  %878 = load ptr, ptr %19, align 8, !tbaa !5
  %879 = load i64, ptr %31, align 8, !tbaa !9
  %880 = getelementptr inbounds double, ptr %878, i64 %879
  %881 = load ptr, ptr %20, align 8, !tbaa !5
  %882 = load ptr, ptr %29, align 8, !tbaa !5
  %883 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %42, ptr noundef %55, ptr noundef %876, ptr noundef %877, ptr noundef %880, ptr noundef %881, ptr noundef %882)
  store i64 2, ptr %46, align 8, !tbaa !9
  br label %912

884:                                              ; preds = %871
  %885 = load double, ptr %42, align 8, !tbaa !11
  %886 = fcmp oeq double %885, 0.000000e+00
  br i1 %886, label %887, label %911

887:                                              ; preds = %884
  %888 = load ptr, ptr %16, align 8, !tbaa !5
  %889 = load i64, ptr %888, align 8, !tbaa !9
  %890 = load ptr, ptr %17, align 8, !tbaa !5
  %891 = load i64, ptr %890, align 8, !tbaa !9
  %892 = icmp sge i64 %889, %891
  br i1 %892, label %893, label %896

893:                                              ; preds = %887
  %894 = load ptr, ptr %16, align 8, !tbaa !5
  %895 = load i64, ptr %894, align 8, !tbaa !9
  br label %899

896:                                              ; preds = %887
  %897 = load ptr, ptr %17, align 8, !tbaa !5
  %898 = load i64, ptr %897, align 8, !tbaa !9
  br label %899

899:                                              ; preds = %896, %893
  %900 = phi i64 [ %895, %893 ], [ %898, %896 ]
  store i64 %900, ptr %34, align 8, !tbaa !9
  %901 = load ptr, ptr %18, align 8, !tbaa !5
  %902 = load ptr, ptr %21, align 8, !tbaa !5
  %903 = load i64, ptr %33, align 8, !tbaa !9
  %904 = getelementptr inbounds double, ptr %902, i64 %903
  %905 = load ptr, ptr %22, align 8, !tbaa !5
  %906 = call i32 @dlaset_(ptr noundef @.str.15, ptr noundef %34, ptr noundef %901, ptr noundef @c_b82, ptr noundef @c_b82, ptr noundef %904, ptr noundef %905)
  %907 = load ptr, ptr %23, align 8, !tbaa !5
  %908 = getelementptr inbounds double, ptr %907, i64 1
  %909 = call i32 @dlaset_(ptr noundef @.str.15, ptr noundef %49, ptr noundef @c__1, ptr noundef @c_b82, ptr noundef @c_b82, ptr noundef %908, ptr noundef @c__1)
  %910 = load ptr, ptr %25, align 8, !tbaa !5
  store i64 0, ptr %910, align 8, !tbaa !9
  br label %1714

911:                                              ; preds = %884
  br label %912

912:                                              ; preds = %911, %875
  br label %913

913:                                              ; preds = %912, %862
  %914 = load ptr, ptr %16, align 8, !tbaa !5
  %915 = load ptr, ptr %18, align 8, !tbaa !5
  %916 = load ptr, ptr %21, align 8, !tbaa !5
  %917 = load i64, ptr %33, align 8, !tbaa !9
  %918 = getelementptr inbounds double, ptr %916, i64 %917
  %919 = load ptr, ptr %22, align 8, !tbaa !5
  %920 = load ptr, ptr %26, align 8, !tbaa !5
  %921 = getelementptr inbounds double, ptr %920, i64 1
  %922 = call double @dlange_(ptr noundef @.str.13, ptr noundef %914, ptr noundef %915, ptr noundef %918, ptr noundef %919, ptr noundef %921)
  store double %922, ptr %43, align 8, !tbaa !11
  store i64 0, ptr %47, align 8, !tbaa !9
  %923 = load double, ptr %43, align 8, !tbaa !11
  %924 = fcmp ogt double %923, 0.000000e+00
  br i1 %924, label %925, label %938

925:                                              ; preds = %913
  %926 = load double, ptr %43, align 8, !tbaa !11
  %927 = load double, ptr %60, align 8, !tbaa !11
  %928 = fcmp olt double %926, %927
  br i1 %928, label %929, label %938

929:                                              ; preds = %925
  %930 = load ptr, ptr %16, align 8, !tbaa !5
  %931 = load ptr, ptr %18, align 8, !tbaa !5
  %932 = load ptr, ptr %21, align 8, !tbaa !5
  %933 = load i64, ptr %33, align 8, !tbaa !9
  %934 = getelementptr inbounds double, ptr %932, i64 %933
  %935 = load ptr, ptr %22, align 8, !tbaa !5
  %936 = load ptr, ptr %29, align 8, !tbaa !5
  %937 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %43, ptr noundef %60, ptr noundef %930, ptr noundef %931, ptr noundef %934, ptr noundef %935, ptr noundef %936)
  store i64 1, ptr %47, align 8, !tbaa !9
  br label %952

938:                                              ; preds = %925, %913
  %939 = load double, ptr %43, align 8, !tbaa !11
  %940 = load double, ptr %55, align 8, !tbaa !11
  %941 = fcmp ogt double %939, %940
  br i1 %941, label %942, label %951

942:                                              ; preds = %938
  %943 = load ptr, ptr %16, align 8, !tbaa !5
  %944 = load ptr, ptr %18, align 8, !tbaa !5
  %945 = load ptr, ptr %21, align 8, !tbaa !5
  %946 = load i64, ptr %33, align 8, !tbaa !9
  %947 = getelementptr inbounds double, ptr %945, i64 %946
  %948 = load ptr, ptr %22, align 8, !tbaa !5
  %949 = load ptr, ptr %29, align 8, !tbaa !5
  %950 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %43, ptr noundef %55, ptr noundef %943, ptr noundef %944, ptr noundef %947, ptr noundef %948, ptr noundef %949)
  store i64 2, ptr %47, align 8, !tbaa !9
  br label %951

951:                                              ; preds = %942, %938
  br label %952

952:                                              ; preds = %951, %929
  %953 = load ptr, ptr %16, align 8, !tbaa !5
  %954 = load i64, ptr %953, align 8, !tbaa !9
  %955 = load ptr, ptr %17, align 8, !tbaa !5
  %956 = load i64, ptr %955, align 8, !tbaa !9
  %957 = icmp slt i64 %954, %956
  br i1 %957, label %958, label %974

958:                                              ; preds = %952
  %959 = load ptr, ptr %17, align 8, !tbaa !5
  %960 = load i64, ptr %959, align 8, !tbaa !9
  %961 = load ptr, ptr %16, align 8, !tbaa !5
  %962 = load i64, ptr %961, align 8, !tbaa !9
  %963 = sub nsw i64 %960, %962
  store i64 %963, ptr %34, align 8, !tbaa !9
  %964 = load ptr, ptr %18, align 8, !tbaa !5
  %965 = load ptr, ptr %21, align 8, !tbaa !5
  %966 = load ptr, ptr %16, align 8, !tbaa !5
  %967 = load i64, ptr %966, align 8, !tbaa !9
  %968 = add nsw i64 %967, 1
  %969 = load i64, ptr %32, align 8, !tbaa !9
  %970 = add nsw i64 %968, %969
  %971 = getelementptr inbounds double, ptr %965, i64 %970
  %972 = load ptr, ptr %22, align 8, !tbaa !5
  %973 = call i32 @dlaset_(ptr noundef @.str.15, ptr noundef %34, ptr noundef %964, ptr noundef @c_b82, ptr noundef @c_b82, ptr noundef %971, ptr noundef %972)
  br label %974

974:                                              ; preds = %958, %952
  %975 = load ptr, ptr %16, align 8, !tbaa !5
  %976 = load i64, ptr %975, align 8, !tbaa !9
  %977 = load ptr, ptr %17, align 8, !tbaa !5
  %978 = load i64, ptr %977, align 8, !tbaa !9
  %979 = icmp sge i64 %976, %978
  br i1 %979, label %980, label %1165

980:                                              ; preds = %974
  %981 = load ptr, ptr %16, align 8, !tbaa !5
  %982 = load i64, ptr %981, align 8, !tbaa !9
  store i64 %982, ptr %40, align 8, !tbaa !9
  %983 = load ptr, ptr %16, align 8, !tbaa !5
  %984 = load i64, ptr %983, align 8, !tbaa !9
  %985 = load i64, ptr %53, align 8, !tbaa !9
  %986 = icmp sge i64 %984, %985
  br i1 %986, label %987, label %1054

987:                                              ; preds = %980
  %988 = load ptr, ptr %17, align 8, !tbaa !5
  %989 = load i64, ptr %988, align 8, !tbaa !9
  store i64 %989, ptr %40, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  %990 = load i64, ptr %44, align 8, !tbaa !9
  %991 = load ptr, ptr %17, align 8, !tbaa !5
  %992 = load i64, ptr %991, align 8, !tbaa !9
  %993 = add nsw i64 %990, %992
  store i64 %993, ptr %54, align 8, !tbaa !9
  %994 = load ptr, ptr %27, align 8, !tbaa !5
  %995 = load i64, ptr %994, align 8, !tbaa !9
  %996 = load i64, ptr %54, align 8, !tbaa !9
  %997 = sub nsw i64 %995, %996
  %998 = add nsw i64 %997, 1
  store i64 %998, ptr %34, align 8, !tbaa !9
  %999 = load ptr, ptr %16, align 8, !tbaa !5
  %1000 = load ptr, ptr %17, align 8, !tbaa !5
  %1001 = load ptr, ptr %19, align 8, !tbaa !5
  %1002 = load i64, ptr %31, align 8, !tbaa !9
  %1003 = getelementptr inbounds double, ptr %1001, i64 %1002
  %1004 = load ptr, ptr %20, align 8, !tbaa !5
  %1005 = load ptr, ptr %26, align 8, !tbaa !5
  %1006 = load i64, ptr %44, align 8, !tbaa !9
  %1007 = getelementptr inbounds double, ptr %1005, i64 %1006
  %1008 = load ptr, ptr %26, align 8, !tbaa !5
  %1009 = load i64, ptr %54, align 8, !tbaa !9
  %1010 = getelementptr inbounds double, ptr %1008, i64 %1009
  %1011 = load ptr, ptr %29, align 8, !tbaa !5
  %1012 = call i32 @dgeqrf_(ptr noundef %999, ptr noundef %1000, ptr noundef %1003, ptr noundef %1004, ptr noundef %1007, ptr noundef %1010, ptr noundef %34, ptr noundef %1011)
  %1013 = load ptr, ptr %27, align 8, !tbaa !5
  %1014 = load i64, ptr %1013, align 8, !tbaa !9
  %1015 = load i64, ptr %54, align 8, !tbaa !9
  %1016 = sub nsw i64 %1014, %1015
  %1017 = add nsw i64 %1016, 1
  store i64 %1017, ptr %34, align 8, !tbaa !9
  %1018 = load ptr, ptr %16, align 8, !tbaa !5
  %1019 = load ptr, ptr %18, align 8, !tbaa !5
  %1020 = load ptr, ptr %17, align 8, !tbaa !5
  %1021 = load ptr, ptr %19, align 8, !tbaa !5
  %1022 = load i64, ptr %31, align 8, !tbaa !9
  %1023 = getelementptr inbounds double, ptr %1021, i64 %1022
  %1024 = load ptr, ptr %20, align 8, !tbaa !5
  %1025 = load ptr, ptr %26, align 8, !tbaa !5
  %1026 = load i64, ptr %44, align 8, !tbaa !9
  %1027 = getelementptr inbounds double, ptr %1025, i64 %1026
  %1028 = load ptr, ptr %21, align 8, !tbaa !5
  %1029 = load i64, ptr %33, align 8, !tbaa !9
  %1030 = getelementptr inbounds double, ptr %1028, i64 %1029
  %1031 = load ptr, ptr %22, align 8, !tbaa !5
  %1032 = load ptr, ptr %26, align 8, !tbaa !5
  %1033 = load i64, ptr %54, align 8, !tbaa !9
  %1034 = getelementptr inbounds double, ptr %1032, i64 %1033
  %1035 = load ptr, ptr %29, align 8, !tbaa !5
  %1036 = call i32 @dormqr_(ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef %1018, ptr noundef %1019, ptr noundef %1020, ptr noundef %1023, ptr noundef %1024, ptr noundef %1027, ptr noundef %1030, ptr noundef %1031, ptr noundef %1034, ptr noundef %34, ptr noundef %1035)
  %1037 = load ptr, ptr %17, align 8, !tbaa !5
  %1038 = load i64, ptr %1037, align 8, !tbaa !9
  %1039 = icmp sgt i64 %1038, 1
  br i1 %1039, label %1040, label %1053

1040:                                             ; preds = %987
  %1041 = load ptr, ptr %17, align 8, !tbaa !5
  %1042 = load i64, ptr %1041, align 8, !tbaa !9
  %1043 = sub nsw i64 %1042, 1
  store i64 %1043, ptr %34, align 8, !tbaa !9
  %1044 = load ptr, ptr %17, align 8, !tbaa !5
  %1045 = load i64, ptr %1044, align 8, !tbaa !9
  %1046 = sub nsw i64 %1045, 1
  store i64 %1046, ptr %35, align 8, !tbaa !9
  %1047 = load ptr, ptr %19, align 8, !tbaa !5
  %1048 = load i64, ptr %30, align 8, !tbaa !9
  %1049 = add nsw i64 %1048, 2
  %1050 = getelementptr inbounds double, ptr %1047, i64 %1049
  %1051 = load ptr, ptr %20, align 8, !tbaa !5
  %1052 = call i32 @dlaset_(ptr noundef @.str.16, ptr noundef %34, ptr noundef %35, ptr noundef @c_b82, ptr noundef @c_b82, ptr noundef %1050, ptr noundef %1051)
  br label %1053

1053:                                             ; preds = %1040, %987
  br label %1054

1054:                                             ; preds = %1053, %980
  store i64 1, ptr %38, align 8, !tbaa !9
  %1055 = load i64, ptr %38, align 8, !tbaa !9
  %1056 = load ptr, ptr %17, align 8, !tbaa !5
  %1057 = load i64, ptr %1056, align 8, !tbaa !9
  %1058 = add nsw i64 %1055, %1057
  store i64 %1058, ptr %52, align 8, !tbaa !9
  %1059 = load i64, ptr %52, align 8, !tbaa !9
  %1060 = load ptr, ptr %17, align 8, !tbaa !5
  %1061 = load i64, ptr %1060, align 8, !tbaa !9
  %1062 = add nsw i64 %1059, %1061
  store i64 %1062, ptr %51, align 8, !tbaa !9
  %1063 = load i64, ptr %51, align 8, !tbaa !9
  %1064 = load ptr, ptr %17, align 8, !tbaa !5
  %1065 = load i64, ptr %1064, align 8, !tbaa !9
  %1066 = add nsw i64 %1063, %1065
  store i64 %1066, ptr %54, align 8, !tbaa !9
  %1067 = load ptr, ptr %27, align 8, !tbaa !5
  %1068 = load i64, ptr %1067, align 8, !tbaa !9
  %1069 = load i64, ptr %54, align 8, !tbaa !9
  %1070 = sub nsw i64 %1068, %1069
  %1071 = add nsw i64 %1070, 1
  store i64 %1071, ptr %34, align 8, !tbaa !9
  %1072 = load ptr, ptr %17, align 8, !tbaa !5
  %1073 = load ptr, ptr %19, align 8, !tbaa !5
  %1074 = load i64, ptr %31, align 8, !tbaa !9
  %1075 = getelementptr inbounds double, ptr %1073, i64 %1074
  %1076 = load ptr, ptr %20, align 8, !tbaa !5
  %1077 = load ptr, ptr %23, align 8, !tbaa !5
  %1078 = getelementptr inbounds double, ptr %1077, i64 1
  %1079 = load ptr, ptr %26, align 8, !tbaa !5
  %1080 = load i64, ptr %38, align 8, !tbaa !9
  %1081 = getelementptr inbounds double, ptr %1079, i64 %1080
  %1082 = load ptr, ptr %26, align 8, !tbaa !5
  %1083 = load i64, ptr %52, align 8, !tbaa !9
  %1084 = getelementptr inbounds double, ptr %1082, i64 %1083
  %1085 = load ptr, ptr %26, align 8, !tbaa !5
  %1086 = load i64, ptr %51, align 8, !tbaa !9
  %1087 = getelementptr inbounds double, ptr %1085, i64 %1086
  %1088 = load ptr, ptr %26, align 8, !tbaa !5
  %1089 = load i64, ptr %54, align 8, !tbaa !9
  %1090 = getelementptr inbounds double, ptr %1088, i64 %1089
  %1091 = load ptr, ptr %29, align 8, !tbaa !5
  %1092 = call i32 @dgebrd_(ptr noundef %40, ptr noundef %1072, ptr noundef %1075, ptr noundef %1076, ptr noundef %1078, ptr noundef %1081, ptr noundef %1084, ptr noundef %1087, ptr noundef %1090, ptr noundef %34, ptr noundef %1091)
  %1093 = load ptr, ptr %27, align 8, !tbaa !5
  %1094 = load i64, ptr %1093, align 8, !tbaa !9
  %1095 = load i64, ptr %54, align 8, !tbaa !9
  %1096 = sub nsw i64 %1094, %1095
  %1097 = add nsw i64 %1096, 1
  store i64 %1097, ptr %34, align 8, !tbaa !9
  %1098 = load ptr, ptr %18, align 8, !tbaa !5
  %1099 = load ptr, ptr %17, align 8, !tbaa !5
  %1100 = load ptr, ptr %19, align 8, !tbaa !5
  %1101 = load i64, ptr %31, align 8, !tbaa !9
  %1102 = getelementptr inbounds double, ptr %1100, i64 %1101
  %1103 = load ptr, ptr %20, align 8, !tbaa !5
  %1104 = load ptr, ptr %26, align 8, !tbaa !5
  %1105 = load i64, ptr %52, align 8, !tbaa !9
  %1106 = getelementptr inbounds double, ptr %1104, i64 %1105
  %1107 = load ptr, ptr %21, align 8, !tbaa !5
  %1108 = load i64, ptr %33, align 8, !tbaa !9
  %1109 = getelementptr inbounds double, ptr %1107, i64 %1108
  %1110 = load ptr, ptr %22, align 8, !tbaa !5
  %1111 = load ptr, ptr %26, align 8, !tbaa !5
  %1112 = load i64, ptr %54, align 8, !tbaa !9
  %1113 = getelementptr inbounds double, ptr %1111, i64 %1112
  %1114 = load ptr, ptr %29, align 8, !tbaa !5
  %1115 = call i32 @dormbr_(ptr noundef @.str.18, ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef %40, ptr noundef %1098, ptr noundef %1099, ptr noundef %1102, ptr noundef %1103, ptr noundef %1106, ptr noundef %1109, ptr noundef %1110, ptr noundef %1113, ptr noundef %34, ptr noundef %1114)
  %1116 = load ptr, ptr %17, align 8, !tbaa !5
  %1117 = load ptr, ptr %18, align 8, !tbaa !5
  %1118 = load ptr, ptr %23, align 8, !tbaa !5
  %1119 = getelementptr inbounds double, ptr %1118, i64 1
  %1120 = load ptr, ptr %26, align 8, !tbaa !5
  %1121 = load i64, ptr %38, align 8, !tbaa !9
  %1122 = getelementptr inbounds double, ptr %1120, i64 %1121
  %1123 = load ptr, ptr %21, align 8, !tbaa !5
  %1124 = load i64, ptr %33, align 8, !tbaa !9
  %1125 = getelementptr inbounds double, ptr %1123, i64 %1124
  %1126 = load ptr, ptr %22, align 8, !tbaa !5
  %1127 = load ptr, ptr %24, align 8, !tbaa !5
  %1128 = load ptr, ptr %25, align 8, !tbaa !5
  %1129 = load ptr, ptr %26, align 8, !tbaa !5
  %1130 = load i64, ptr %54, align 8, !tbaa !9
  %1131 = getelementptr inbounds double, ptr %1129, i64 %1130
  %1132 = load ptr, ptr %28, align 8, !tbaa !5
  %1133 = getelementptr inbounds i64, ptr %1132, i64 1
  %1134 = load ptr, ptr %29, align 8, !tbaa !5
  %1135 = call i32 @dlalsd_(ptr noundef @.str.19, ptr noundef %62, ptr noundef %1116, ptr noundef %1117, ptr noundef %1119, ptr noundef %1122, ptr noundef %1125, ptr noundef %1126, ptr noundef %1127, ptr noundef %1128, ptr noundef %1131, ptr noundef %1133, ptr noundef %1134)
  %1136 = load ptr, ptr %29, align 8, !tbaa !5
  %1137 = load i64, ptr %1136, align 8, !tbaa !9
  %1138 = icmp ne i64 %1137, 0
  br i1 %1138, label %1139, label %1140

1139:                                             ; preds = %1054
  br label %1714

1140:                                             ; preds = %1054
  %1141 = load ptr, ptr %27, align 8, !tbaa !5
  %1142 = load i64, ptr %1141, align 8, !tbaa !9
  %1143 = load i64, ptr %54, align 8, !tbaa !9
  %1144 = sub nsw i64 %1142, %1143
  %1145 = add nsw i64 %1144, 1
  store i64 %1145, ptr %34, align 8, !tbaa !9
  %1146 = load ptr, ptr %17, align 8, !tbaa !5
  %1147 = load ptr, ptr %18, align 8, !tbaa !5
  %1148 = load ptr, ptr %17, align 8, !tbaa !5
  %1149 = load ptr, ptr %19, align 8, !tbaa !5
  %1150 = load i64, ptr %31, align 8, !tbaa !9
  %1151 = getelementptr inbounds double, ptr %1149, i64 %1150
  %1152 = load ptr, ptr %20, align 8, !tbaa !5
  %1153 = load ptr, ptr %26, align 8, !tbaa !5
  %1154 = load i64, ptr %51, align 8, !tbaa !9
  %1155 = getelementptr inbounds double, ptr %1153, i64 %1154
  %1156 = load ptr, ptr %21, align 8, !tbaa !5
  %1157 = load i64, ptr %33, align 8, !tbaa !9
  %1158 = getelementptr inbounds double, ptr %1156, i64 %1157
  %1159 = load ptr, ptr %22, align 8, !tbaa !5
  %1160 = load ptr, ptr %26, align 8, !tbaa !5
  %1161 = load i64, ptr %54, align 8, !tbaa !9
  %1162 = getelementptr inbounds double, ptr %1160, i64 %1161
  %1163 = load ptr, ptr %29, align 8, !tbaa !5
  %1164 = call i32 @dormbr_(ptr noundef @.str.11, ptr noundef @.str.16, ptr noundef @.str.20, ptr noundef %1146, ptr noundef %1147, ptr noundef %1148, ptr noundef %1151, ptr noundef %1152, ptr noundef %1155, ptr noundef %1158, ptr noundef %1159, ptr noundef %1162, ptr noundef %34, ptr noundef %1163)
  br label %1655

1165:                                             ; preds = %974
  %1166 = load ptr, ptr %16, align 8, !tbaa !5
  %1167 = load i64, ptr %1166, align 8, !tbaa !9
  store i64 %1167, ptr %34, align 8, !tbaa !9
  %1168 = load ptr, ptr %16, align 8, !tbaa !5
  %1169 = load i64, ptr %1168, align 8, !tbaa !9
  %1170 = shl i64 %1169, 1
  %1171 = sub nsw i64 %1170, 4
  store i64 %1171, ptr %35, align 8, !tbaa !9
  %1172 = load i64, ptr %34, align 8, !tbaa !9
  %1173 = load i64, ptr %35, align 8, !tbaa !9
  %1174 = icmp sge i64 %1172, %1173
  br i1 %1174, label %1175, label %1177

1175:                                             ; preds = %1165
  %1176 = load i64, ptr %34, align 8, !tbaa !9
  br label %1179

1177:                                             ; preds = %1165
  %1178 = load i64, ptr %35, align 8, !tbaa !9
  br label %1179

1179:                                             ; preds = %1177, %1175
  %1180 = phi i64 [ %1176, %1175 ], [ %1178, %1177 ]
  store i64 %1180, ptr %34, align 8, !tbaa !9
  %1181 = load i64, ptr %34, align 8, !tbaa !9
  %1182 = load ptr, ptr %18, align 8, !tbaa !5
  %1183 = load i64, ptr %1182, align 8, !tbaa !9
  %1184 = icmp sge i64 %1181, %1183
  br i1 %1184, label %1185, label %1187

1185:                                             ; preds = %1179
  %1186 = load i64, ptr %34, align 8, !tbaa !9
  br label %1190

1187:                                             ; preds = %1179
  %1188 = load ptr, ptr %18, align 8, !tbaa !5
  %1189 = load i64, ptr %1188, align 8, !tbaa !9
  br label %1190

1190:                                             ; preds = %1187, %1185
  %1191 = phi i64 [ %1186, %1185 ], [ %1189, %1187 ]
  store i64 %1191, ptr %34, align 8, !tbaa !9
  %1192 = load ptr, ptr %17, align 8, !tbaa !5
  %1193 = load i64, ptr %1192, align 8, !tbaa !9
  %1194 = load ptr, ptr %16, align 8, !tbaa !5
  %1195 = load i64, ptr %1194, align 8, !tbaa !9
  %1196 = mul nsw i64 %1195, 3
  %1197 = sub nsw i64 %1193, %1196
  store i64 %1197, ptr %35, align 8, !tbaa !9
  %1198 = load i64, ptr %34, align 8, !tbaa !9
  %1199 = load i64, ptr %35, align 8, !tbaa !9
  %1200 = icmp sge i64 %1198, %1199
  br i1 %1200, label %1201, label %1203

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

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

1205:                                             ; preds = %1203, %1201
  %1206 = phi i64 [ %1202, %1201 ], [ %1204, %1203 ]
  store i64 %1206, ptr %34, align 8, !tbaa !9
  %1207 = load ptr, ptr %17, align 8, !tbaa !5
  %1208 = load i64, ptr %1207, align 8, !tbaa !9
  %1209 = load i64, ptr %53, align 8, !tbaa !9
  %1210 = icmp sge i64 %1208, %1209
  br i1 %1210, label %1211, label %1541

1211:                                             ; preds = %1205
  %1212 = load ptr, ptr %27, align 8, !tbaa !5
  %1213 = load i64, ptr %1212, align 8, !tbaa !9
  %1214 = load ptr, ptr %16, align 8, !tbaa !5
  %1215 = load i64, ptr %1214, align 8, !tbaa !9
  %1216 = shl i64 %1215, 2
  %1217 = load ptr, ptr %16, align 8, !tbaa !5
  %1218 = load i64, ptr %1217, align 8, !tbaa !9
  %1219 = load ptr, ptr %16, align 8, !tbaa !5
  %1220 = load i64, ptr %1219, align 8, !tbaa !9
  %1221 = mul nsw i64 %1218, %1220
  %1222 = add nsw i64 %1216, %1221
  %1223 = load i64, ptr %34, align 8, !tbaa !9
  %1224 = load i64, ptr %56, align 8, !tbaa !9
  %1225 = icmp sge i64 %1223, %1224
  br i1 %1225, label %1226, label %1228

1226:                                             ; preds = %1211
  %1227 = load i64, ptr %34, align 8, !tbaa !9
  br label %1230

1228:                                             ; preds = %1211
  %1229 = load i64, ptr %56, align 8, !tbaa !9
  br label %1230

1230:                                             ; preds = %1228, %1226
  %1231 = phi i64 [ %1227, %1226 ], [ %1229, %1228 ]
  %1232 = add nsw i64 %1222, %1231
  %1233 = icmp sge i64 %1213, %1232
  br i1 %1233, label %1234, label %1541

1234:                                             ; preds = %1230
  %1235 = load ptr, ptr %16, align 8, !tbaa !5
  %1236 = load i64, ptr %1235, align 8, !tbaa !9
  store i64 %1236, ptr %57, align 8, !tbaa !9
  %1237 = load ptr, ptr %16, align 8, !tbaa !5
  %1238 = load i64, ptr %1237, align 8, !tbaa !9
  store i64 %1238, ptr %36, align 8, !tbaa !9
  %1239 = load ptr, ptr %16, align 8, !tbaa !5
  %1240 = load i64, ptr %1239, align 8, !tbaa !9
  %1241 = shl i64 %1240, 1
  %1242 = sub nsw i64 %1241, 4
  store i64 %1242, ptr %37, align 8, !tbaa !9
  %1243 = load i64, ptr %36, align 8, !tbaa !9
  %1244 = load i64, ptr %37, align 8, !tbaa !9
  %1245 = icmp sge i64 %1243, %1244
  br i1 %1245, label %1246, label %1248

1246:                                             ; preds = %1234
  %1247 = load i64, ptr %36, align 8, !tbaa !9
  br label %1250

1248:                                             ; preds = %1234
  %1249 = load i64, ptr %37, align 8, !tbaa !9
  br label %1250

1250:                                             ; preds = %1248, %1246
  %1251 = phi i64 [ %1247, %1246 ], [ %1249, %1248 ]
  store i64 %1251, ptr %36, align 8, !tbaa !9
  %1252 = load i64, ptr %36, align 8, !tbaa !9
  %1253 = load ptr, ptr %18, align 8, !tbaa !5
  %1254 = load i64, ptr %1253, align 8, !tbaa !9
  %1255 = icmp sge i64 %1252, %1254
  br i1 %1255, label %1256, label %1258

1256:                                             ; preds = %1250
  %1257 = load i64, ptr %36, align 8, !tbaa !9
  br label %1261

1258:                                             ; preds = %1250
  %1259 = load ptr, ptr %18, align 8, !tbaa !5
  %1260 = load i64, ptr %1259, align 8, !tbaa !9
  br label %1261

1261:                                             ; preds = %1258, %1256
  %1262 = phi i64 [ %1257, %1256 ], [ %1260, %1258 ]
  store i64 %1262, ptr %36, align 8, !tbaa !9
  %1263 = load ptr, ptr %17, align 8, !tbaa !5
  %1264 = load i64, ptr %1263, align 8, !tbaa !9
  %1265 = load ptr, ptr %16, align 8, !tbaa !5
  %1266 = load i64, ptr %1265, align 8, !tbaa !9
  %1267 = mul nsw i64 %1266, 3
  %1268 = sub nsw i64 %1264, %1267
  store i64 %1268, ptr %37, align 8, !tbaa !9
  %1269 = load ptr, ptr %16, align 8, !tbaa !5
  %1270 = load i64, ptr %1269, align 8, !tbaa !9
  %1271 = shl i64 %1270, 2
  %1272 = load ptr, ptr %16, align 8, !tbaa !5
  %1273 = load i64, ptr %1272, align 8, !tbaa !9
  %1274 = load ptr, ptr %20, align 8, !tbaa !5
  %1275 = load i64, ptr %1274, align 8, !tbaa !9
  %1276 = mul nsw i64 %1273, %1275
  %1277 = add nsw i64 %1271, %1276
  %1278 = load i64, ptr %36, align 8, !tbaa !9
  %1279 = load i64, ptr %37, align 8, !tbaa !9
  %1280 = icmp sge i64 %1278, %1279
  br i1 %1280, label %1281, label %1283

1281:                                             ; preds = %1261
  %1282 = load i64, ptr %36, align 8, !tbaa !9
  br label %1285

1283:                                             ; preds = %1261
  %1284 = load i64, ptr %37, align 8, !tbaa !9
  br label %1285

1285:                                             ; preds = %1283, %1281
  %1286 = phi i64 [ %1282, %1281 ], [ %1284, %1283 ]
  %1287 = add nsw i64 %1277, %1286
  store i64 %1287, ptr %34, align 8, !tbaa !9
  %1288 = load ptr, ptr %16, align 8, !tbaa !5
  %1289 = load i64, ptr %1288, align 8, !tbaa !9
  %1290 = load ptr, ptr %20, align 8, !tbaa !5
  %1291 = load i64, ptr %1290, align 8, !tbaa !9
  %1292 = mul nsw i64 %1289, %1291
  %1293 = load ptr, ptr %16, align 8, !tbaa !5
  %1294 = load i64, ptr %1293, align 8, !tbaa !9
  %1295 = add nsw i64 %1292, %1294
  %1296 = load ptr, ptr %16, align 8, !tbaa !5
  %1297 = load i64, ptr %1296, align 8, !tbaa !9
  %1298 = load ptr, ptr %18, align 8, !tbaa !5
  %1299 = load i64, ptr %1298, align 8, !tbaa !9
  %1300 = mul nsw i64 %1297, %1299
  %1301 = add nsw i64 %1295, %1300
  store i64 %1301, ptr %35, align 8, !tbaa !9
  %1302 = load i64, ptr %34, align 8, !tbaa !9
  %1303 = load i64, ptr %35, align 8, !tbaa !9
  %1304 = icmp sge i64 %1302, %1303
  br i1 %1304, label %1305, label %1307

1305:                                             ; preds = %1285
  %1306 = load i64, ptr %34, align 8, !tbaa !9
  br label %1309

1307:                                             ; preds = %1285
  %1308 = load i64, ptr %35, align 8, !tbaa !9
  br label %1309

1309:                                             ; preds = %1307, %1305
  %1310 = phi i64 [ %1306, %1305 ], [ %1308, %1307 ]
  store i64 %1310, ptr %34, align 8, !tbaa !9
  %1311 = load ptr, ptr %16, align 8, !tbaa !5
  %1312 = load i64, ptr %1311, align 8, !tbaa !9
  %1313 = shl i64 %1312, 2
  %1314 = load ptr, ptr %16, align 8, !tbaa !5
  %1315 = load i64, ptr %1314, align 8, !tbaa !9
  %1316 = load ptr, ptr %20, align 8, !tbaa !5
  %1317 = load i64, ptr %1316, align 8, !tbaa !9
  %1318 = mul nsw i64 %1315, %1317
  %1319 = add nsw i64 %1313, %1318
  %1320 = load i64, ptr %56, align 8, !tbaa !9
  %1321 = add nsw i64 %1319, %1320
  store i64 %1321, ptr %35, align 8, !tbaa !9
  %1322 = load ptr, ptr %27, align 8, !tbaa !5
  %1323 = load i64, ptr %1322, align 8, !tbaa !9
  %1324 = load i64, ptr %34, align 8, !tbaa !9
  %1325 = load i64, ptr %35, align 8, !tbaa !9
  %1326 = icmp sge i64 %1324, %1325
  br i1 %1326, label %1327, label %1329

1327:                                             ; preds = %1309
  %1328 = load i64, ptr %34, align 8, !tbaa !9
  br label %1331

1329:                                             ; preds = %1309
  %1330 = load i64, ptr %35, align 8, !tbaa !9
  br label %1331

1331:                                             ; preds = %1329, %1327
  %1332 = phi i64 [ %1328, %1327 ], [ %1330, %1329 ]
  %1333 = icmp sge i64 %1323, %1332
  br i1 %1333, label %1334, label %1337

1334:                                             ; preds = %1331
  %1335 = load ptr, ptr %20, align 8, !tbaa !5
  %1336 = load i64, ptr %1335, align 8, !tbaa !9
  store i64 %1336, ptr %57, align 8, !tbaa !9
  br label %1337

1337:                                             ; preds = %1334, %1331
  store i64 1, ptr %44, align 8, !tbaa !9
  %1338 = load ptr, ptr %16, align 8, !tbaa !5
  %1339 = load i64, ptr %1338, align 8, !tbaa !9
  %1340 = add nsw i64 %1339, 1
  store i64 %1340, ptr %54, align 8, !tbaa !9
  %1341 = load ptr, ptr %27, align 8, !tbaa !5
  %1342 = load i64, ptr %1341, align 8, !tbaa !9
  %1343 = load i64, ptr %54, align 8, !tbaa !9
  %1344 = sub nsw i64 %1342, %1343
  %1345 = add nsw i64 %1344, 1
  store i64 %1345, ptr %34, align 8, !tbaa !9
  %1346 = load ptr, ptr %16, align 8, !tbaa !5
  %1347 = load ptr, ptr %17, align 8, !tbaa !5
  %1348 = load ptr, ptr %19, align 8, !tbaa !5
  %1349 = load i64, ptr %31, align 8, !tbaa !9
  %1350 = getelementptr inbounds double, ptr %1348, i64 %1349
  %1351 = load ptr, ptr %20, align 8, !tbaa !5
  %1352 = load ptr, ptr %26, align 8, !tbaa !5
  %1353 = load i64, ptr %44, align 8, !tbaa !9
  %1354 = getelementptr inbounds double, ptr %1352, i64 %1353
  %1355 = load ptr, ptr %26, align 8, !tbaa !5
  %1356 = load i64, ptr %54, align 8, !tbaa !9
  %1357 = getelementptr inbounds double, ptr %1355, i64 %1356
  %1358 = load ptr, ptr %29, align 8, !tbaa !5
  %1359 = call i32 @dgelqf_(ptr noundef %1346, ptr noundef %1347, ptr noundef %1350, ptr noundef %1351, ptr noundef %1354, ptr noundef %1357, ptr noundef %34, ptr noundef %1358)
  %1360 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1360, ptr %39, align 8, !tbaa !9
  %1361 = load ptr, ptr %16, align 8, !tbaa !5
  %1362 = load ptr, ptr %16, align 8, !tbaa !5
  %1363 = load ptr, ptr %19, align 8, !tbaa !5
  %1364 = load i64, ptr %31, align 8, !tbaa !9
  %1365 = getelementptr inbounds double, ptr %1363, i64 %1364
  %1366 = load ptr, ptr %20, align 8, !tbaa !5
  %1367 = load ptr, ptr %26, align 8, !tbaa !5
  %1368 = load i64, ptr %39, align 8, !tbaa !9
  %1369 = getelementptr inbounds double, ptr %1367, i64 %1368
  %1370 = call i32 @dlacpy_(ptr noundef @.str.16, ptr noundef %1361, ptr noundef %1362, ptr noundef %1365, ptr noundef %1366, ptr noundef %1369, ptr noundef %57)
  %1371 = load ptr, ptr %16, align 8, !tbaa !5
  %1372 = load i64, ptr %1371, align 8, !tbaa !9
  %1373 = sub nsw i64 %1372, 1
  store i64 %1373, ptr %34, align 8, !tbaa !9
  %1374 = load ptr, ptr %16, align 8, !tbaa !5
  %1375 = load i64, ptr %1374, align 8, !tbaa !9
  %1376 = sub nsw i64 %1375, 1
  store i64 %1376, ptr %35, align 8, !tbaa !9
  %1377 = load ptr, ptr %26, align 8, !tbaa !5
  %1378 = load i64, ptr %39, align 8, !tbaa !9
  %1379 = load i64, ptr %57, align 8, !tbaa !9
  %1380 = add nsw i64 %1378, %1379
  %1381 = getelementptr inbounds double, ptr %1377, i64 %1380
  %1382 = call i32 @dlaset_(ptr noundef @.str.19, ptr noundef %34, ptr noundef %35, ptr noundef @c_b82, ptr noundef @c_b82, ptr noundef %1381, ptr noundef %57)
  %1383 = load i64, ptr %39, align 8, !tbaa !9
  %1384 = load i64, ptr %57, align 8, !tbaa !9
  %1385 = load ptr, ptr %16, align 8, !tbaa !5
  %1386 = load i64, ptr %1385, align 8, !tbaa !9
  %1387 = mul nsw i64 %1384, %1386
  %1388 = add nsw i64 %1383, %1387
  store i64 %1388, ptr %38, align 8, !tbaa !9
  %1389 = load i64, ptr %38, align 8, !tbaa !9
  %1390 = load ptr, ptr %16, align 8, !tbaa !5
  %1391 = load i64, ptr %1390, align 8, !tbaa !9
  %1392 = add nsw i64 %1389, %1391
  store i64 %1392, ptr %52, align 8, !tbaa !9
  %1393 = load i64, ptr %52, align 8, !tbaa !9
  %1394 = load ptr, ptr %16, align 8, !tbaa !5
  %1395 = load i64, ptr %1394, align 8, !tbaa !9
  %1396 = add nsw i64 %1393, %1395
  store i64 %1396, ptr %51, align 8, !tbaa !9
  %1397 = load i64, ptr %51, align 8, !tbaa !9
  %1398 = load ptr, ptr %16, align 8, !tbaa !5
  %1399 = load i64, ptr %1398, align 8, !tbaa !9
  %1400 = add nsw i64 %1397, %1399
  store i64 %1400, ptr %54, align 8, !tbaa !9
  %1401 = load ptr, ptr %27, align 8, !tbaa !5
  %1402 = load i64, ptr %1401, align 8, !tbaa !9
  %1403 = load i64, ptr %54, align 8, !tbaa !9
  %1404 = sub nsw i64 %1402, %1403
  %1405 = add nsw i64 %1404, 1
  store i64 %1405, ptr %34, align 8, !tbaa !9
  %1406 = load ptr, ptr %16, align 8, !tbaa !5
  %1407 = load ptr, ptr %16, align 8, !tbaa !5
  %1408 = load ptr, ptr %26, align 8, !tbaa !5
  %1409 = load i64, ptr %39, align 8, !tbaa !9
  %1410 = getelementptr inbounds double, ptr %1408, i64 %1409
  %1411 = load ptr, ptr %23, align 8, !tbaa !5
  %1412 = getelementptr inbounds double, ptr %1411, i64 1
  %1413 = load ptr, ptr %26, align 8, !tbaa !5
  %1414 = load i64, ptr %38, align 8, !tbaa !9
  %1415 = getelementptr inbounds double, ptr %1413, i64 %1414
  %1416 = load ptr, ptr %26, align 8, !tbaa !5
  %1417 = load i64, ptr %52, align 8, !tbaa !9
  %1418 = getelementptr inbounds double, ptr %1416, i64 %1417
  %1419 = load ptr, ptr %26, align 8, !tbaa !5
  %1420 = load i64, ptr %51, align 8, !tbaa !9
  %1421 = getelementptr inbounds double, ptr %1419, i64 %1420
  %1422 = load ptr, ptr %26, align 8, !tbaa !5
  %1423 = load i64, ptr %54, align 8, !tbaa !9
  %1424 = getelementptr inbounds double, ptr %1422, i64 %1423
  %1425 = load ptr, ptr %29, align 8, !tbaa !5
  %1426 = call i32 @dgebrd_(ptr noundef %1406, ptr noundef %1407, ptr noundef %1410, ptr noundef %57, ptr noundef %1412, ptr noundef %1415, ptr noundef %1418, ptr noundef %1421, ptr noundef %1424, ptr noundef %34, ptr noundef %1425)
  %1427 = load ptr, ptr %27, align 8, !tbaa !5
  %1428 = load i64, ptr %1427, align 8, !tbaa !9
  %1429 = load i64, ptr %54, align 8, !tbaa !9
  %1430 = sub nsw i64 %1428, %1429
  %1431 = add nsw i64 %1430, 1
  store i64 %1431, ptr %34, align 8, !tbaa !9
  %1432 = load ptr, ptr %16, align 8, !tbaa !5
  %1433 = load ptr, ptr %18, align 8, !tbaa !5
  %1434 = load ptr, ptr %16, align 8, !tbaa !5
  %1435 = load ptr, ptr %26, align 8, !tbaa !5
  %1436 = load i64, ptr %39, align 8, !tbaa !9
  %1437 = getelementptr inbounds double, ptr %1435, i64 %1436
  %1438 = load ptr, ptr %26, align 8, !tbaa !5
  %1439 = load i64, ptr %52, align 8, !tbaa !9
  %1440 = getelementptr inbounds double, ptr %1438, i64 %1439
  %1441 = load ptr, ptr %21, align 8, !tbaa !5
  %1442 = load i64, ptr %33, align 8, !tbaa !9
  %1443 = getelementptr inbounds double, ptr %1441, i64 %1442
  %1444 = load ptr, ptr %22, align 8, !tbaa !5
  %1445 = load ptr, ptr %26, align 8, !tbaa !5
  %1446 = load i64, ptr %54, align 8, !tbaa !9
  %1447 = getelementptr inbounds double, ptr %1445, i64 %1446
  %1448 = load ptr, ptr %29, align 8, !tbaa !5
  %1449 = call i32 @dormbr_(ptr noundef @.str.18, ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef %1432, ptr noundef %1433, ptr noundef %1434, ptr noundef %1437, ptr noundef %57, ptr noundef %1440, ptr noundef %1443, ptr noundef %1444, ptr noundef %1447, ptr noundef %34, ptr noundef %1448)
  %1450 = load ptr, ptr %16, align 8, !tbaa !5
  %1451 = load ptr, ptr %18, align 8, !tbaa !5
  %1452 = load ptr, ptr %23, align 8, !tbaa !5
  %1453 = getelementptr inbounds double, ptr %1452, i64 1
  %1454 = load ptr, ptr %26, align 8, !tbaa !5
  %1455 = load i64, ptr %38, align 8, !tbaa !9
  %1456 = getelementptr inbounds double, ptr %1454, i64 %1455
  %1457 = load ptr, ptr %21, align 8, !tbaa !5
  %1458 = load i64, ptr %33, align 8, !tbaa !9
  %1459 = getelementptr inbounds double, ptr %1457, i64 %1458
  %1460 = load ptr, ptr %22, align 8, !tbaa !5
  %1461 = load ptr, ptr %24, align 8, !tbaa !5
  %1462 = load ptr, ptr %25, align 8, !tbaa !5
  %1463 = load ptr, ptr %26, align 8, !tbaa !5
  %1464 = load i64, ptr %54, align 8, !tbaa !9
  %1465 = getelementptr inbounds double, ptr %1463, i64 %1464
  %1466 = load ptr, ptr %28, align 8, !tbaa !5
  %1467 = getelementptr inbounds i64, ptr %1466, i64 1
  %1468 = load ptr, ptr %29, align 8, !tbaa !5
  %1469 = call i32 @dlalsd_(ptr noundef @.str.19, ptr noundef %62, ptr noundef %1450, ptr noundef %1451, ptr noundef %1453, ptr noundef %1456, ptr noundef %1459, ptr noundef %1460, ptr noundef %1461, ptr noundef %1462, ptr noundef %1465, ptr noundef %1467, ptr noundef %1468)
  %1470 = load ptr, ptr %29, align 8, !tbaa !5
  %1471 = load i64, ptr %1470, align 8, !tbaa !9
  %1472 = icmp ne i64 %1471, 0
  br i1 %1472, label %1473, label %1474

1473:                                             ; preds = %1337
  br label %1714

1474:                                             ; preds = %1337
  %1475 = load ptr, ptr %27, align 8, !tbaa !5
  %1476 = load i64, ptr %1475, align 8, !tbaa !9
  %1477 = load i64, ptr %54, align 8, !tbaa !9
  %1478 = sub nsw i64 %1476, %1477
  %1479 = add nsw i64 %1478, 1
  store i64 %1479, ptr %34, align 8, !tbaa !9
  %1480 = load ptr, ptr %16, align 8, !tbaa !5
  %1481 = load ptr, ptr %18, align 8, !tbaa !5
  %1482 = load ptr, ptr %16, align 8, !tbaa !5
  %1483 = load ptr, ptr %26, align 8, !tbaa !5
  %1484 = load i64, ptr %39, align 8, !tbaa !9
  %1485 = getelementptr inbounds double, ptr %1483, i64 %1484
  %1486 = load ptr, ptr %26, align 8, !tbaa !5
  %1487 = load i64, ptr %51, align 8, !tbaa !9
  %1488 = getelementptr inbounds double, ptr %1486, i64 %1487
  %1489 = load ptr, ptr %21, align 8, !tbaa !5
  %1490 = load i64, ptr %33, align 8, !tbaa !9
  %1491 = getelementptr inbounds double, ptr %1489, i64 %1490
  %1492 = load ptr, ptr %22, align 8, !tbaa !5
  %1493 = load ptr, ptr %26, align 8, !tbaa !5
  %1494 = load i64, ptr %54, align 8, !tbaa !9
  %1495 = getelementptr inbounds double, ptr %1493, i64 %1494
  %1496 = load ptr, ptr %29, align 8, !tbaa !5
  %1497 = call i32 @dormbr_(ptr noundef @.str.11, ptr noundef @.str.16, ptr noundef @.str.20, ptr noundef %1480, ptr noundef %1481, ptr noundef %1482, ptr noundef %1485, ptr noundef %57, ptr noundef %1488, ptr noundef %1491, ptr noundef %1492, ptr noundef %1495, ptr noundef %34, ptr noundef %1496)
  %1498 = load ptr, ptr %17, align 8, !tbaa !5
  %1499 = load i64, ptr %1498, align 8, !tbaa !9
  %1500 = load ptr, ptr %16, align 8, !tbaa !5
  %1501 = load i64, ptr %1500, align 8, !tbaa !9
  %1502 = sub nsw i64 %1499, %1501
  store i64 %1502, ptr %34, align 8, !tbaa !9
  %1503 = load ptr, ptr %18, align 8, !tbaa !5
  %1504 = load ptr, ptr %21, align 8, !tbaa !5
  %1505 = load ptr, ptr %16, align 8, !tbaa !5
  %1506 = load i64, ptr %1505, align 8, !tbaa !9
  %1507 = add nsw i64 %1506, 1
  %1508 = load i64, ptr %32, align 8, !tbaa !9
  %1509 = add nsw i64 %1507, %1508
  %1510 = getelementptr inbounds double, ptr %1504, i64 %1509
  %1511 = load ptr, ptr %22, align 8, !tbaa !5
  %1512 = call i32 @dlaset_(ptr noundef @.str.15, ptr noundef %34, ptr noundef %1503, ptr noundef @c_b82, ptr noundef @c_b82, ptr noundef %1510, ptr noundef %1511)
  %1513 = load i64, ptr %44, align 8, !tbaa !9
  %1514 = load ptr, ptr %16, align 8, !tbaa !5
  %1515 = load i64, ptr %1514, align 8, !tbaa !9
  %1516 = add nsw i64 %1513, %1515
  store i64 %1516, ptr %54, align 8, !tbaa !9
  %1517 = load ptr, ptr %27, align 8, !tbaa !5
  %1518 = load i64, ptr %1517, align 8, !tbaa !9
  %1519 = load i64, ptr %54, align 8, !tbaa !9
  %1520 = sub nsw i64 %1518, %1519
  %1521 = add nsw i64 %1520, 1
  store i64 %1521, ptr %34, align 8, !tbaa !9
  %1522 = load ptr, ptr %17, align 8, !tbaa !5
  %1523 = load ptr, ptr %18, align 8, !tbaa !5
  %1524 = load ptr, ptr %16, align 8, !tbaa !5
  %1525 = load ptr, ptr %19, align 8, !tbaa !5
  %1526 = load i64, ptr %31, align 8, !tbaa !9
  %1527 = getelementptr inbounds double, ptr %1525, i64 %1526
  %1528 = load ptr, ptr %20, align 8, !tbaa !5
  %1529 = load ptr, ptr %26, align 8, !tbaa !5
  %1530 = load i64, ptr %44, align 8, !tbaa !9
  %1531 = getelementptr inbounds double, ptr %1529, i64 %1530
  %1532 = load ptr, ptr %21, align 8, !tbaa !5
  %1533 = load i64, ptr %33, align 8, !tbaa !9
  %1534 = getelementptr inbounds double, ptr %1532, i64 %1533
  %1535 = load ptr, ptr %22, align 8, !tbaa !5
  %1536 = load ptr, ptr %26, align 8, !tbaa !5
  %1537 = load i64, ptr %54, align 8, !tbaa !9
  %1538 = getelementptr inbounds double, ptr %1536, i64 %1537
  %1539 = load ptr, ptr %29, align 8, !tbaa !5
  %1540 = call i32 @dormlq_(ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef %1522, ptr noundef %1523, ptr noundef %1524, ptr noundef %1527, ptr noundef %1528, ptr noundef %1531, ptr noundef %1534, ptr noundef %1535, ptr noundef %1538, ptr noundef %34, ptr noundef %1539)
  br label %1654

1541:                                             ; preds = %1230, %1205
  store i64 1, ptr %38, align 8, !tbaa !9
  %1542 = load i64, ptr %38, align 8, !tbaa !9
  %1543 = load ptr, ptr %16, align 8, !tbaa !5
  %1544 = load i64, ptr %1543, align 8, !tbaa !9
  %1545 = add nsw i64 %1542, %1544
  store i64 %1545, ptr %52, align 8, !tbaa !9
  %1546 = load i64, ptr %52, align 8, !tbaa !9
  %1547 = load ptr, ptr %16, align 8, !tbaa !5
  %1548 = load i64, ptr %1547, align 8, !tbaa !9
  %1549 = add nsw i64 %1546, %1548
  store i64 %1549, ptr %51, align 8, !tbaa !9
  %1550 = load i64, ptr %51, align 8, !tbaa !9
  %1551 = load ptr, ptr %16, align 8, !tbaa !5
  %1552 = load i64, ptr %1551, align 8, !tbaa !9
  %1553 = add nsw i64 %1550, %1552
  store i64 %1553, ptr %54, align 8, !tbaa !9
  %1554 = load ptr, ptr %27, align 8, !tbaa !5
  %1555 = load i64, ptr %1554, align 8, !tbaa !9
  %1556 = load i64, ptr %54, align 8, !tbaa !9
  %1557 = sub nsw i64 %1555, %1556
  %1558 = add nsw i64 %1557, 1
  store i64 %1558, ptr %34, align 8, !tbaa !9
  %1559 = load ptr, ptr %16, align 8, !tbaa !5
  %1560 = load ptr, ptr %17, align 8, !tbaa !5
  %1561 = load ptr, ptr %19, align 8, !tbaa !5
  %1562 = load i64, ptr %31, align 8, !tbaa !9
  %1563 = getelementptr inbounds double, ptr %1561, i64 %1562
  %1564 = load ptr, ptr %20, align 8, !tbaa !5
  %1565 = load ptr, ptr %23, align 8, !tbaa !5
  %1566 = getelementptr inbounds double, ptr %1565, i64 1
  %1567 = load ptr, ptr %26, align 8, !tbaa !5
  %1568 = load i64, ptr %38, align 8, !tbaa !9
  %1569 = getelementptr inbounds double, ptr %1567, i64 %1568
  %1570 = load ptr, ptr %26, align 8, !tbaa !5
  %1571 = load i64, ptr %52, align 8, !tbaa !9
  %1572 = getelementptr inbounds double, ptr %1570, i64 %1571
  %1573 = load ptr, ptr %26, align 8, !tbaa !5
  %1574 = load i64, ptr %51, align 8, !tbaa !9
  %1575 = getelementptr inbounds double, ptr %1573, i64 %1574
  %1576 = load ptr, ptr %26, align 8, !tbaa !5
  %1577 = load i64, ptr %54, align 8, !tbaa !9
  %1578 = getelementptr inbounds double, ptr %1576, i64 %1577
  %1579 = load ptr, ptr %29, align 8, !tbaa !5
  %1580 = call i32 @dgebrd_(ptr noundef %1559, ptr noundef %1560, ptr noundef %1563, ptr noundef %1564, ptr noundef %1566, ptr noundef %1569, ptr noundef %1572, ptr noundef %1575, ptr noundef %1578, ptr noundef %34, ptr noundef %1579)
  %1581 = load ptr, ptr %27, align 8, !tbaa !5
  %1582 = load i64, ptr %1581, align 8, !tbaa !9
  %1583 = load i64, ptr %54, align 8, !tbaa !9
  %1584 = sub nsw i64 %1582, %1583
  %1585 = add nsw i64 %1584, 1
  store i64 %1585, ptr %34, align 8, !tbaa !9
  %1586 = load ptr, ptr %16, align 8, !tbaa !5
  %1587 = load ptr, ptr %18, align 8, !tbaa !5
  %1588 = load ptr, ptr %17, align 8, !tbaa !5
  %1589 = load ptr, ptr %19, align 8, !tbaa !5
  %1590 = load i64, ptr %31, align 8, !tbaa !9
  %1591 = getelementptr inbounds double, ptr %1589, i64 %1590
  %1592 = load ptr, ptr %20, align 8, !tbaa !5
  %1593 = load ptr, ptr %26, align 8, !tbaa !5
  %1594 = load i64, ptr %52, align 8, !tbaa !9
  %1595 = getelementptr inbounds double, ptr %1593, i64 %1594
  %1596 = load ptr, ptr %21, align 8, !tbaa !5
  %1597 = load i64, ptr %33, align 8, !tbaa !9
  %1598 = getelementptr inbounds double, ptr %1596, i64 %1597
  %1599 = load ptr, ptr %22, align 8, !tbaa !5
  %1600 = load ptr, ptr %26, align 8, !tbaa !5
  %1601 = load i64, ptr %54, align 8, !tbaa !9
  %1602 = getelementptr inbounds double, ptr %1600, i64 %1601
  %1603 = load ptr, ptr %29, align 8, !tbaa !5
  %1604 = call i32 @dormbr_(ptr noundef @.str.18, ptr noundef @.str.16, ptr noundef @.str.17, ptr noundef %1586, ptr noundef %1587, ptr noundef %1588, ptr noundef %1591, ptr noundef %1592, ptr noundef %1595, ptr noundef %1598, ptr noundef %1599, ptr noundef %1602, ptr noundef %34, ptr noundef %1603)
  %1605 = load ptr, ptr %16, align 8, !tbaa !5
  %1606 = load ptr, ptr %18, align 8, !tbaa !5
  %1607 = load ptr, ptr %23, align 8, !tbaa !5
  %1608 = getelementptr inbounds double, ptr %1607, i64 1
  %1609 = load ptr, ptr %26, align 8, !tbaa !5
  %1610 = load i64, ptr %38, align 8, !tbaa !9
  %1611 = getelementptr inbounds double, ptr %1609, i64 %1610
  %1612 = load ptr, ptr %21, align 8, !tbaa !5
  %1613 = load i64, ptr %33, align 8, !tbaa !9
  %1614 = getelementptr inbounds double, ptr %1612, i64 %1613
  %1615 = load ptr, ptr %22, align 8, !tbaa !5
  %1616 = load ptr, ptr %24, align 8, !tbaa !5
  %1617 = load ptr, ptr %25, align 8, !tbaa !5
  %1618 = load ptr, ptr %26, align 8, !tbaa !5
  %1619 = load i64, ptr %54, align 8, !tbaa !9
  %1620 = getelementptr inbounds double, ptr %1618, i64 %1619
  %1621 = load ptr, ptr %28, align 8, !tbaa !5
  %1622 = getelementptr inbounds i64, ptr %1621, i64 1
  %1623 = load ptr, ptr %29, align 8, !tbaa !5
  %1624 = call i32 @dlalsd_(ptr noundef @.str.16, ptr noundef %62, ptr noundef %1605, ptr noundef %1606, ptr noundef %1608, ptr noundef %1611, ptr noundef %1614, ptr noundef %1615, ptr noundef %1616, ptr noundef %1617, ptr noundef %1620, ptr noundef %1622, ptr noundef %1623)
  %1625 = load ptr, ptr %29, align 8, !tbaa !5
  %1626 = load i64, ptr %1625, align 8, !tbaa !9
  %1627 = icmp ne i64 %1626, 0
  br i1 %1627, label %1628, label %1629

1628:                                             ; preds = %1541
  br label %1714

1629:                                             ; preds = %1541
  %1630 = load ptr, ptr %27, align 8, !tbaa !5
  %1631 = load i64, ptr %1630, align 8, !tbaa !9
  %1632 = load i64, ptr %54, align 8, !tbaa !9
  %1633 = sub nsw i64 %1631, %1632
  %1634 = add nsw i64 %1633, 1
  store i64 %1634, ptr %34, align 8, !tbaa !9
  %1635 = load ptr, ptr %17, align 8, !tbaa !5
  %1636 = load ptr, ptr %18, align 8, !tbaa !5
  %1637 = load ptr, ptr %16, align 8, !tbaa !5
  %1638 = load ptr, ptr %19, align 8, !tbaa !5
  %1639 = load i64, ptr %31, align 8, !tbaa !9
  %1640 = getelementptr inbounds double, ptr %1638, i64 %1639
  %1641 = load ptr, ptr %20, align 8, !tbaa !5
  %1642 = load ptr, ptr %26, align 8, !tbaa !5
  %1643 = load i64, ptr %51, align 8, !tbaa !9
  %1644 = getelementptr inbounds double, ptr %1642, i64 %1643
  %1645 = load ptr, ptr %21, align 8, !tbaa !5
  %1646 = load i64, ptr %33, align 8, !tbaa !9
  %1647 = getelementptr inbounds double, ptr %1645, i64 %1646
  %1648 = load ptr, ptr %22, align 8, !tbaa !5
  %1649 = load ptr, ptr %26, align 8, !tbaa !5
  %1650 = load i64, ptr %54, align 8, !tbaa !9
  %1651 = getelementptr inbounds double, ptr %1649, i64 %1650
  %1652 = load ptr, ptr %29, align 8, !tbaa !5
  %1653 = call i32 @dormbr_(ptr noundef @.str.11, ptr noundef @.str.16, ptr noundef @.str.20, ptr noundef %1635, ptr noundef %1636, ptr noundef %1637, ptr noundef %1640, ptr noundef %1641, ptr noundef %1644, ptr noundef %1647, ptr noundef %1648, ptr noundef %1651, ptr noundef %34, ptr noundef %1652)
  br label %1654

1654:                                             ; preds = %1629, %1474
  br label %1655

1655:                                             ; preds = %1654, %1140
  %1656 = load i64, ptr %46, align 8, !tbaa !9
  %1657 = icmp eq i64 %1656, 1
  br i1 %1657, label %1658, label %1671

1658:                                             ; preds = %1655
  %1659 = load ptr, ptr %17, align 8, !tbaa !5
  %1660 = load ptr, ptr %18, align 8, !tbaa !5
  %1661 = load ptr, ptr %21, align 8, !tbaa !5
  %1662 = load i64, ptr %33, align 8, !tbaa !9
  %1663 = getelementptr inbounds double, ptr %1661, i64 %1662
  %1664 = load ptr, ptr %22, align 8, !tbaa !5
  %1665 = load ptr, ptr %29, align 8, !tbaa !5
  %1666 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %42, ptr noundef %60, ptr noundef %1659, ptr noundef %1660, ptr noundef %1663, ptr noundef %1664, ptr noundef %1665)
  %1667 = load ptr, ptr %23, align 8, !tbaa !5
  %1668 = getelementptr inbounds double, ptr %1667, i64 1
  %1669 = load ptr, ptr %29, align 8, !tbaa !5
  %1670 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %60, ptr noundef %42, ptr noundef %49, ptr noundef @c__1, ptr noundef %1668, ptr noundef %49, ptr noundef %1669)
  br label %1688

1671:                                             ; preds = %1655
  %1672 = load i64, ptr %46, align 8, !tbaa !9
  %1673 = icmp eq i64 %1672, 2
  br i1 %1673, label %1674, label %1687

1674:                                             ; preds = %1671
  %1675 = load ptr, ptr %17, align 8, !tbaa !5
  %1676 = load ptr, ptr %18, align 8, !tbaa !5
  %1677 = load ptr, ptr %21, align 8, !tbaa !5
  %1678 = load i64, ptr %33, align 8, !tbaa !9
  %1679 = getelementptr inbounds double, ptr %1677, i64 %1678
  %1680 = load ptr, ptr %22, align 8, !tbaa !5
  %1681 = load ptr, ptr %29, align 8, !tbaa !5
  %1682 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %42, ptr noundef %55, ptr noundef %1675, ptr noundef %1676, ptr noundef %1679, ptr noundef %1680, ptr noundef %1681)
  %1683 = load ptr, ptr %23, align 8, !tbaa !5
  %1684 = getelementptr inbounds double, ptr %1683, i64 1
  %1685 = load ptr, ptr %29, align 8, !tbaa !5
  %1686 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %55, ptr noundef %42, ptr noundef %49, ptr noundef @c__1, ptr noundef %1684, ptr noundef %49, ptr noundef %1685)
  br label %1687

1687:                                             ; preds = %1674, %1671
  br label %1688

1688:                                             ; preds = %1687, %1658
  %1689 = load i64, ptr %47, align 8, !tbaa !9
  %1690 = icmp eq i64 %1689, 1
  br i1 %1690, label %1691, label %1700

1691:                                             ; preds = %1688
  %1692 = load ptr, ptr %17, align 8, !tbaa !5
  %1693 = load ptr, ptr %18, align 8, !tbaa !5
  %1694 = load ptr, ptr %21, align 8, !tbaa !5
  %1695 = load i64, ptr %33, align 8, !tbaa !9
  %1696 = getelementptr inbounds double, ptr %1694, i64 %1695
  %1697 = load ptr, ptr %22, align 8, !tbaa !5
  %1698 = load ptr, ptr %29, align 8, !tbaa !5
  %1699 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %60, ptr noundef %43, ptr noundef %1692, ptr noundef %1693, ptr noundef %1696, ptr noundef %1697, ptr noundef %1698)
  br label %1713

1700:                                             ; preds = %1688
  %1701 = load i64, ptr %47, align 8, !tbaa !9
  %1702 = icmp eq i64 %1701, 2
  br i1 %1702, label %1703, label %1712

1703:                                             ; preds = %1700
  %1704 = load ptr, ptr %17, align 8, !tbaa !5
  %1705 = load ptr, ptr %18, align 8, !tbaa !5
  %1706 = load ptr, ptr %21, align 8, !tbaa !5
  %1707 = load i64, ptr %33, align 8, !tbaa !9
  %1708 = getelementptr inbounds double, ptr %1706, i64 %1707
  %1709 = load ptr, ptr %22, align 8, !tbaa !5
  %1710 = load ptr, ptr %29, align 8, !tbaa !5
  %1711 = call i32 @dlascl_(ptr noundef @.str.14, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %55, ptr noundef %43, ptr noundef %1704, ptr noundef %1705, ptr noundef %1708, ptr noundef %1709, ptr noundef %1710)
  br label %1712

1712:                                             ; preds = %1703, %1700
  br label %1713

1713:                                             ; preds = %1712, %1691
  br label %1714

1714:                                             ; preds = %1713, %1628, %1473, %1139, %899, %826
  %1715 = load i64, ptr %59, align 8, !tbaa !9
  %1716 = sitofp i64 %1715 to double
  %1717 = load ptr, ptr %26, align 8, !tbaa !5
  %1718 = getelementptr inbounds double, ptr %1717, i64 1
  store double %1716, ptr %1718, align 8, !tbaa !11
  store i32 0, ptr %15, align 4
  store i32 1, ptr %63, align 4
  br label %1719

1719:                                             ; preds = %1714, %836, %818
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  %1720 = load i32, ptr %15, align 4
  ret i32 %1720
}

; 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

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

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

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

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


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

@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__9 = external hidden global i64, align 8
@c__0 = 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 [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b82 = 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

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

34:                                               ; preds = %14
  %35 = load i64, ptr %1, align 8, !tbaa !5
  %36 = icmp slt i64 %35, 0
  br i1 %36, label %.sink.split, label %37

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

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

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

.sink.split:                                      ; preds = %43, %40, %37, %34, %14
  %.sink = phi i64 [ -1, %14 ], [ -2, %34 ], [ -3, %37 ], [ -5, %40 ], [ -7, %43 ]
  store i64 %.sink, ptr %13, align 8, !tbaa !5
  br label %47

47:                                               ; preds = %.sink.split, %43
  %48 = tail call i64 @ilaenv_(ptr noundef nonnull @c__9, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0) #5
  store i64 %48, ptr %24, align 8, !tbaa !5
  %49 = tail call i64 @llvm.smax.i64(i64 %., i64 1)
  store i64 %49, ptr %20, align 8, !tbaa !5
  %50 = uitofp nneg i64 %49 to double
  %51 = add nsw i64 %48, 1
  %52 = sitofp i64 %51 to double
  %53 = fdiv double %50, %52
  %54 = tail call double @log(double noundef %53) #5
  %55 = fdiv double %54, 0x3FE62E42FEFA39EF
  %56 = fptosi double %55 to i64
  %57 = add nsw i64 %56, 1
  store i64 %57, ptr %15, align 8, !tbaa !5
  %58 = icmp sgt i64 %56, -2
  %59 = select i1 %58, i64 %57, i64 0
  %60 = load i64, ptr %13, align 8, !tbaa !5
  %61 = icmp eq i64 %60, 0
  br i1 %61, label %62, label %.thread

62:                                               ; preds = %47
  %63 = load i64, ptr %0, align 8, !tbaa !5
  store i64 %63, ptr %17, align 8, !tbaa !5
  %64 = load i64, ptr %1, align 8, !tbaa !5
  %.not677 = icmp slt i64 %63, %64
  %.not678 = icmp slt i64 %63, %29
  %or.cond729 = select i1 %.not677, i1 true, i1 %.not678
  br i1 %or.cond729, label %76, label %65

65:                                               ; preds = %62
  store i64 %64, ptr %17, align 8, !tbaa !5
  %66 = 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) #5
  %67 = add i64 %66, 1
  %68 = mul i64 %67, %64
  %69 = tail call i64 @llvm.smax.i64(i64 %68, i64 0)
  store i64 %69, ptr %15, align 8, !tbaa !5
  %70 = load i64, ptr %1, align 8, !tbaa !5
  %71 = load i64, ptr %2, align 8, !tbaa !5
  %72 = 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) #5
  %73 = mul nsw i64 %72, %71
  %74 = add nsw i64 %73, %70
  store i64 %74, ptr %16, align 8, !tbaa !5
  %75 = tail call i64 @llvm.smax.i64(i64 %69, i64 %74)
  %.pre = load i64, ptr %0, align 8, !tbaa !5
  %.pre759 = load i64, ptr %1, align 8, !tbaa !5
  br label %76

76:                                               ; preds = %65, %62
  %77 = phi i64 [ %64, %65 ], [ %63, %62 ]
  %78 = phi i64 [ %.pre759, %65 ], [ %64, %62 ]
  %79 = phi i64 [ %.pre, %65 ], [ %63, %62 ]
  %.0644 = phi i64 [ %75, %65 ], [ 0, %62 ]
  %.not681 = icmp slt i64 %79, %78
  br i1 %.not681, label %118, label %80

80:                                               ; preds = %76
  store i64 %.0644, ptr %15, align 8, !tbaa !5
  %81 = mul nsw i64 %78, 3
  %82 = add nsw i64 %77, %78
  %83 = 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) #5
  %84 = mul nsw i64 %82, %83
  %85 = add nsw i64 %84, %81
  %86 = load i64, ptr %15, align 8
  %87 = call i64 @llvm.smax.i64(i64 %86, i64 %85)
  store i64 %87, ptr %15, align 8, !tbaa !5
  %88 = load i64, ptr %1, align 8, !tbaa !5
  %89 = mul nsw i64 %88, 3
  %90 = load i64, ptr %2, align 8, !tbaa !5
  %91 = 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) #5
  %92 = mul nsw i64 %91, %90
  %93 = add nsw i64 %92, %89
  %94 = load i64, ptr %15, align 8
  %95 = call i64 @llvm.smax.i64(i64 %94, i64 %93)
  store i64 %95, ptr %15, align 8, !tbaa !5
  %96 = load i64, ptr %1, align 8, !tbaa !5
  %97 = mul nsw i64 %96, 3
  %98 = add nsw i64 %96, -1
  %99 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.8, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef nonnull @c_n1) #5
  %100 = mul nsw i64 %98, %99
  %101 = add nsw i64 %100, %97
  %102 = load i64, ptr %15, align 8
  %103 = call i64 @llvm.smax.i64(i64 %102, i64 %101)
  %104 = load i64, ptr %1, align 8, !tbaa !5
  %105 = shl i64 %48, 1
  %106 = shl i64 %59, 3
  %107 = load i64, ptr %2, align 8, !tbaa !5
  %108 = mul nsw i64 %51, %51
  %reass.add = add i64 %107, 9
  %reass.add741 = add i64 %reass.add, %106
  %reass.add742 = add i64 %reass.add741, %105
  %reass.mul = mul i64 %reass.add742, %104
  %109 = add i64 %reass.mul, %108
  %110 = mul nsw i64 %104, 3
  %111 = add nsw i64 %109, %110
  %112 = call i64 @llvm.smax.i64(i64 %103, i64 %111)
  %113 = load i64, ptr %17, align 8, !tbaa !5
  %114 = add nsw i64 %113, %110
  %115 = add nsw i64 %110, %107
  %116 = call i64 @llvm.smax.i64(i64 %114, i64 %115)
  store i64 %116, ptr %15, align 8, !tbaa !5
  store i64 %111, ptr %16, align 8, !tbaa !5
  %117 = call i64 @llvm.smax.i64(i64 %116, i64 %111)
  %.pre760 = load i64, ptr %0, align 8, !tbaa !5
  br label %118

118:                                              ; preds = %80, %76
  %119 = phi i64 [ %.pre760, %80 ], [ %79, %76 ]
  %120 = phi i64 [ %104, %80 ], [ %78, %76 ]
  %.0647 = phi i64 [ %109, %80 ], [ undef, %76 ]
  %.0645 = phi i64 [ %117, %80 ], [ 1, %76 ]
  %.1 = phi i64 [ %112, %80 ], [ %.0644, %76 ]
  %121 = icmp sgt i64 %120, %119
  br i1 %121, label %122, label %211

122:                                              ; preds = %118
  store i64 %51, ptr %15, align 8, !tbaa !5
  %123 = shl i64 %48, 1
  %124 = shl i64 %59, 3
  %125 = load i64, ptr %2, align 8, !tbaa !5
  %126 = mul nsw i64 %51, %51
  %reass.add743 = add i64 %124, 9
  %reass.add744 = add i64 %reass.add743, %123
  %reass.add745 = add i64 %reass.add744, %125
  %reass.mul746 = mul i64 %reass.add745, %119
  %127 = add i64 %reass.mul746, %126
  %.not688 = icmp slt i64 %120, %29
  br i1 %.not688, label %180, label %128

128:                                              ; preds = %122
  %129 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #5
  %130 = add i64 %129, 1
  %131 = mul i64 %130, %119
  store i64 %131, ptr %15, align 8, !tbaa !5
  %132 = load i64, ptr %0, align 8, !tbaa !5
  %133 = add i64 %132, 4
  %134 = 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) #5
  %135 = shl i64 %134, 1
  %reass.add747 = add i64 %133, %135
  %reass.mul748 = mul i64 %reass.add747, %132
  store i64 %reass.mul748, ptr %16, align 8, !tbaa !5
  %136 = load i64, ptr %15, align 8
  %137 = call i64 @llvm.smax.i64(i64 %136, i64 %reass.mul748)
  store i64 %137, ptr %15, align 8, !tbaa !5
  %138 = load i64, ptr %0, align 8, !tbaa !5
  %139 = add i64 %138, 4
  %140 = mul i64 %139, %138
  %141 = load i64, ptr %2, align 8, !tbaa !5
  %142 = 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) #5
  %143 = mul nsw i64 %142, %141
  %144 = add nsw i64 %143, %140
  %145 = load i64, ptr %15, align 8
  %146 = call i64 @llvm.smax.i64(i64 %145, i64 %144)
  store i64 %146, ptr %15, align 8, !tbaa !5
  %147 = load i64, ptr %0, align 8, !tbaa !5
  %148 = add i64 %147, 4
  %149 = mul i64 %148, %147
  %150 = add nsw i64 %147, -1
  %151 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.8, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull @c_n1) #5
  %152 = mul nsw i64 %150, %151
  %153 = add nsw i64 %149, %152
  %154 = load i64, ptr %15, align 8
  %155 = call i64 @llvm.smax.i64(i64 %154, i64 %153)
  %156 = load i64, ptr %2, align 8, !tbaa !5
  %157 = load i64, ptr %0, align 8, !tbaa !5
  %158 = add nuw i64 %156, 1
  %.inv = icmp slt i64 %156, 2
  %.sink770.v = select i1 %.inv, i64 2, i64 %158
  %.sink770 = add i64 %.sink770.v, %157
  %159 = mul i64 %.sink770, %157
  %160 = call i64 @llvm.smax.i64(i64 %155, i64 %159)
  store i64 %160, ptr %15, align 8, !tbaa !5
  %161 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.4, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull @c_n1) #5
  %162 = mul nsw i64 %161, %156
  %163 = add nsw i64 %162, %157
  %164 = load i64, ptr %15, align 8
  %165 = call i64 @llvm.smax.i64(i64 %164, i64 %163)
  %166 = load i64, ptr %0, align 8, !tbaa !5
  %167 = add i64 %166, 4
  %168 = mul i64 %167, %166
  %169 = add nsw i64 %168, %127
  %170 = call i64 @llvm.smax.i64(i64 %165, i64 %169)
  %171 = shl i64 %166, 1
  %172 = add nsw i64 %171, -4
  %173 = call i64 @llvm.smax.i64(i64 %166, i64 %172)
  %174 = load i64, ptr %2, align 8, !tbaa !5
  %.730 = call i64 @llvm.smax.i64(i64 %173, i64 %174)
  %175 = load i64, ptr %1, align 8, !tbaa !5
  %.neg = mul i64 %166, -3
  %176 = add i64 %175, %.neg
  %177 = call i64 @llvm.smax.i64(i64 %.730, i64 %176)
  %178 = add nsw i64 %177, %168
  %179 = call i64 @llvm.smax.i64(i64 %170, i64 %178)
  %.pre766 = mul nsw i64 %166, 3
  %.pre767 = add nsw i64 %.pre766, %127
  br label %204

180:                                              ; preds = %122
  %181 = mul nsw i64 %119, 3
  %182 = add nsw i64 %119, %120
  %183 = 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) #5
  %184 = mul nsw i64 %183, %182
  %185 = add nsw i64 %184, %181
  store i64 %185, ptr %15, align 8, !tbaa !5
  %186 = load i64, ptr %0, align 8, !tbaa !5
  %187 = mul nsw i64 %186, 3
  %188 = load i64, ptr %2, align 8, !tbaa !5
  %189 = 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 %1, ptr noundef nonnull @c_n1) #5
  %190 = mul nsw i64 %189, %188
  %191 = add nsw i64 %190, %187
  %192 = load i64, ptr %15, align 8
  %193 = call i64 @llvm.smax.i64(i64 %192, i64 %191)
  store i64 %193, ptr %15, align 8, !tbaa !5
  %194 = load i64, ptr %0, align 8, !tbaa !5
  %195 = call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.8, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull @c_n1) #5
  %196 = add i64 %195, 3
  %197 = mul i64 %196, %194
  %198 = load i64, ptr %15, align 8
  %199 = call i64 @llvm.smax.i64(i64 %198, i64 %197)
  %200 = load i64, ptr %0, align 8, !tbaa !5
  %201 = mul nsw i64 %200, 3
  %202 = add nsw i64 %201, %127
  %203 = call i64 @llvm.smax.i64(i64 %199, i64 %202)
  %.pre761 = load i64, ptr %2, align 8, !tbaa !5
  br label %204

204:                                              ; preds = %180, %128
  %.pre-phi768 = phi i64 [ %202, %180 ], [ %.pre767, %128 ]
  %.pre-phi = phi i64 [ %201, %180 ], [ %.pre766, %128 ]
  %205 = phi i64 [ %.pre761, %180 ], [ %174, %128 ]
  %206 = phi i64 [ %200, %180 ], [ %166, %128 ]
  %.3 = phi i64 [ %203, %180 ], [ %179, %128 ]
  %207 = add nsw i64 %.pre-phi, %205
  %208 = shl nsw i64 %206, 2
  %209 = call i64 @llvm.smax.i64(i64 %207, i64 %208)
  store i64 %209, ptr %15, align 8, !tbaa !5
  store i64 %.pre-phi768, ptr %16, align 8, !tbaa !5
  %210 = call i64 @llvm.smax.i64(i64 %209, i64 %.pre-phi768)
  br label %211

211:                                              ; preds = %204, %118
  %212 = phi i64 [ %206, %204 ], [ %119, %118 ]
  %.1648 = phi i64 [ %127, %204 ], [ %.0647, %118 ]
  %.1646 = phi i64 [ %210, %204 ], [ %.0645, %118 ]
  %.4 = phi i64 [ %.3, %204 ], [ %.1, %118 ]
  %213 = call i64 @llvm.smin.i64(i64 %.1646, i64 %.4)
  %214 = sitofp i64 %.4 to double
  store double %214, ptr %10, align 8, !tbaa !9
  %215 = load i64, ptr %11, align 8, !tbaa !5
  %216 = icmp sge i64 %215, %213
  %or.cond = select i1 %216, i1 true, i1 %31
  br i1 %or.cond, label %218, label %217

217:                                              ; preds = %211
  store i64 -12, ptr %13, align 8, !tbaa !5
  br label %.thread

218:                                              ; preds = %211
  %.pr = load i64, ptr %13, align 8, !tbaa !5
  %.not706 = icmp eq i64 %.pr, 0
  br i1 %.not706, label %222, label %.thread

.thread:                                          ; preds = %47, %217, %218
  %219 = phi i64 [ %.pr, %218 ], [ %60, %47 ], [ -12, %217 ]
  %220 = sub nsw i64 0, %219
  store i64 %220, ptr %15, align 8, !tbaa !5
  %221 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %15) #5
  br label %404

222:                                              ; preds = %218
  br i1 %31, label %403, label %223

223:                                              ; preds = %222
  %224 = icmp eq i64 %212, 0
  br i1 %224, label %228, label %225

225:                                              ; preds = %223
  %226 = load i64, ptr %1, align 8, !tbaa !5
  %227 = icmp eq i64 %226, 0
  br i1 %227, label %228, label %229

228:                                              ; preds = %225, %223
  store i64 0, ptr %9, align 8, !tbaa !5
  br label %404

229:                                              ; preds = %225
  %230 = call double @dlamch_(ptr noundef nonnull @.str.11) #5
  %231 = call double @dlamch_(ptr noundef nonnull @.str.12) #5
  %232 = fdiv double %231, %230
  store double %232, ptr %23, align 8, !tbaa !9
  %233 = fdiv double 1.000000e+00, %232
  store double %233, ptr %21, align 8, !tbaa !9
  %234 = call i32 @dlabad_(ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %235 = 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) #5
  store double %235, ptr %18, align 8, !tbaa !9
  %236 = fcmp ogt double %235, 0.000000e+00
  %237 = load double, ptr %23, align 8
  %238 = fcmp olt double %235, %237
  %or.cond732 = select i1 %236, i1 %238, i1 false
  br i1 %or.cond732, label %.sink.split771, label %239

239:                                              ; preds = %229
  %240 = load double, ptr %21, align 8, !tbaa !9
  %241 = fcmp ogt double %235, %240
  br i1 %241, label %.sink.split771, label %242

242:                                              ; preds = %239
  %243 = fcmp oeq double %235, 0.000000e+00
  br i1 %243, label %244, label %250

244:                                              ; preds = %242
  %245 = load i64, ptr %0, align 8, !tbaa !5
  %246 = load i64, ptr %1, align 8, !tbaa !5
  %.733 = call i64 @llvm.smax.i64(i64 %245, i64 %246)
  store i64 %.733, ptr %15, align 8, !tbaa !5
  %247 = call i32 @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %15, ptr noundef %2, ptr noundef nonnull @c_b82, ptr noundef nonnull @c_b82, ptr noundef %5, ptr noundef nonnull %6) #5
  %248 = call i32 @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %20, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b82, ptr noundef nonnull @c_b82, ptr noundef %7, ptr noundef nonnull @c__1) #5
  store i64 0, ptr %9, align 8, !tbaa !5
  br label %403

.sink.split771:                                   ; preds = %239, %229
  %.sink772 = phi ptr [ %23, %229 ], [ %21, %239 ]
  %.ph = xor i1 %or.cond732, true
  %249 = 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 %.sink772, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %13) #5
  br label %250

250:                                              ; preds = %.sink.split771, %242
  %251 = phi i1 [ false, %242 ], [ %.ph, %.sink.split771 ]
  %252 = call double @dlange_(ptr noundef nonnull @.str.13, ptr noundef nonnull %0, ptr noundef %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %10) #5
  store double %252, ptr %19, align 8, !tbaa !9
  %253 = fcmp ule double %252, 0.000000e+00
  %254 = load double, ptr %23, align 8
  %255 = fcmp uge double %252, %254
  %or.cond735.not = select i1 %253, i1 true, i1 %255
  br i1 %or.cond735.not, label %256, label %.sink.split773

256:                                              ; preds = %250
  %257 = load double, ptr %21, align 8, !tbaa !9
  %258 = fcmp ogt double %252, %257
  br i1 %258, label %.sink.split773, label %260

.sink.split773:                                   ; preds = %256, %250
  %.sink775 = phi ptr [ %23, %250 ], [ %21, %256 ]
  %259 = 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 %.sink775, ptr noundef nonnull %0, ptr noundef %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %13) #5
  br label %260

260:                                              ; preds = %.sink.split773, %256
  %261 = phi i1 [ false, %256 ], [ %or.cond735.not, %.sink.split773 ]
  %262 = load i64, ptr %0, align 8, !tbaa !5
  %263 = load i64, ptr %1, align 8, !tbaa !5
  %264 = icmp slt i64 %262, %263
  br i1 %264, label %265, label %269

265:                                              ; preds = %260
  %266 = sub nsw i64 %263, %262
  store i64 %266, ptr %15, align 8, !tbaa !5
  %267 = getelementptr inbounds double, ptr %5, i64 %262
  %268 = call i32 @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %15, ptr noundef %2, ptr noundef nonnull @c_b82, ptr noundef nonnull @c_b82, ptr noundef %267, ptr noundef nonnull %6) #5
  %.pre762 = load i64, ptr %0, align 8, !tbaa !5
  %.pre763 = load i64, ptr %1, align 8, !tbaa !5
  br label %269

269:                                              ; preds = %265, %260
  %270 = phi i64 [ %.pre763, %265 ], [ %263, %260 ]
  %271 = phi i64 [ %.pre762, %265 ], [ %262, %260 ]
  %.not708 = icmp slt i64 %271, %270
  br i1 %.not708, label %307, label %272

272:                                              ; preds = %269
  store i64 %271, ptr %17, align 8, !tbaa !5
  %.not726 = icmp slt i64 %271, %29
  br i1 %.not726, label %287, label %273

273:                                              ; preds = %272
  store i64 %270, ptr %17, align 8, !tbaa !5
  %274 = load i64, ptr %11, align 8, !tbaa !5
  %275 = sub i64 %274, %270
  store i64 %275, ptr %15, align 8, !tbaa !5
  %276 = getelementptr double, ptr %10, i64 %270
  %277 = call i32 @dgeqrf_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10, ptr noundef %276, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  %278 = load i64, ptr %11, align 8, !tbaa !5
  %279 = sub i64 %278, %270
  store i64 %279, ptr %15, align 8, !tbaa !5
  %280 = call i32 @dormqr_(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17, ptr noundef nonnull %0, ptr noundef %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10, ptr noundef %5, ptr noundef %6, ptr noundef %276, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  %281 = load i64, ptr %1, align 8, !tbaa !5
  %282 = icmp sgt i64 %281, 1
  br i1 %282, label %283, label %287

283:                                              ; preds = %273
  %284 = add nsw i64 %281, -1
  store i64 %284, ptr %15, align 8, !tbaa !5
  store i64 %284, ptr %16, align 8, !tbaa !5
  %285 = getelementptr inbounds i8, ptr %3, i64 8
  %286 = call i32 @dlaset_(ptr noundef nonnull @.str.16, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull @c_b82, ptr noundef nonnull @c_b82, ptr noundef nonnull %285, ptr noundef %4) #5
  %.pre764 = load i64, ptr %1, align 8, !tbaa !5
  br label %287

287:                                              ; preds = %273, %283, %272
  %288 = phi i64 [ %281, %273 ], [ %.pre764, %283 ], [ %270, %272 ]
  %reass.add727 = shl i64 %288, 1
  %289 = or disjoint i64 %reass.add727, 1
  %290 = add nsw i64 %289, %288
  %291 = load i64, ptr %11, align 8, !tbaa !5
  %292 = add i64 %291, 1
  %293 = sub i64 %292, %290
  store i64 %293, ptr %15, align 8, !tbaa !5
  %294 = getelementptr double, ptr %10, i64 %288
  %295 = getelementptr double, ptr %10, i64 %reass.add727
  %296 = getelementptr inbounds double, ptr %25, i64 %290
  %297 = call i32 @dgebrd_(ptr noundef nonnull %17, ptr noundef nonnull %1, ptr noundef %3, ptr noundef %4, ptr noundef %7, ptr noundef nonnull %10, ptr noundef %294, ptr noundef %295, ptr noundef nonnull %296, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  %298 = load i64, ptr %11, align 8, !tbaa !5
  %reass.sub = sub i64 %298, %290
  %299 = add i64 %reass.sub, 1
  store i64 %299, ptr %15, align 8, !tbaa !5
  %300 = call i32 @dormbr_(ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17, ptr noundef nonnull %17, ptr noundef %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef %4, ptr noundef %294, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %296, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  %301 = call i32 @dlalsd_(ptr noundef nonnull @.str.19, ptr noundef nonnull %24, ptr noundef nonnull %1, ptr noundef %2, ptr noundef %7, ptr noundef nonnull %10, ptr noundef %5, ptr noundef %6, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %296, ptr noundef %12, ptr noundef nonnull %13) #5
  %302 = load i64, ptr %13, align 8, !tbaa !5
  %.not728 = icmp eq i64 %302, 0
  br i1 %.not728, label %303, label %403

303:                                              ; preds = %287
  %304 = load i64, ptr %11, align 8, !tbaa !5
  %reass.sub754 = sub i64 %304, %290
  %305 = add i64 %reass.sub754, 1
  store i64 %305, ptr %15, align 8, !tbaa !5
  %306 = call i32 @dormbr_(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.20, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef %4, ptr noundef %295, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %296, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  br label %394

307:                                              ; preds = %269
  %308 = shl i64 %271, 1
  %309 = add nsw i64 %308, -4
  %310 = call i64 @llvm.smax.i64(i64 %271, i64 %309)
  %311 = load i64, ptr %2, align 8, !tbaa !5
  %.736 = call i64 @llvm.smax.i64(i64 %310, i64 %311)
  %.neg711 = mul i64 %271, -3
  %312 = add i64 %.neg711, %270
  store i64 %312, ptr %16, align 8, !tbaa !5
  %313 = call i64 @llvm.smax.i64(i64 %.736, i64 %312)
  %.not713 = icmp slt i64 %270, %29
  %.pre765 = load i64, ptr %11, align 8, !tbaa !5
  br i1 %.not713, label %377, label %314

314:                                              ; preds = %307
  %315 = add i64 %271, 4
  %316 = mul i64 %315, %271
  %317 = call i64 @llvm.smax.i64(i64 %313, i64 %.1648)
  %318 = add nsw i64 %317, %316
  %.not715 = icmp slt i64 %.pre765, %318
  br i1 %.not715, label %377, label %319

319:                                              ; preds = %314
  store i64 %271, ptr %22, align 8, !tbaa !5
  %320 = load i64, ptr %4, align 8, !tbaa !5
  %321 = add i64 %320, 4
  %322 = mul i64 %321, %271
  %323 = add nsw i64 %322, %313
  %324 = add i64 %311, 1
  %325 = add i64 %324, %320
  %326 = mul i64 %325, %271
  %327 = call i64 @llvm.smax.i64(i64 %323, i64 %326)
  %328 = add nsw i64 %322, %.1648
  store i64 %328, ptr %16, align 8, !tbaa !5
  %329 = call i64 @llvm.smax.i64(i64 %327, i64 %328)
  %.not723 = icmp slt i64 %.pre765, %329
  br i1 %.not723, label %331, label %330

330:                                              ; preds = %319
  store i64 %320, ptr %22, align 8, !tbaa !5
  br label %331

331:                                              ; preds = %330, %319
  %332 = add nsw i64 %271, 1
  %333 = sub i64 %.pre765, %271
  store i64 %333, ptr %15, align 8, !tbaa !5
  %334 = getelementptr double, ptr %10, i64 %271
  %335 = call i32 @dgelqf_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10, ptr noundef %334, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  %336 = 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 %334, ptr noundef nonnull %22) #5
  %337 = load i64, ptr %0, align 8, !tbaa !5
  %338 = add nsw i64 %337, -1
  store i64 %338, ptr %15, align 8, !tbaa !5
  store i64 %338, ptr %16, align 8, !tbaa !5
  %339 = load i64, ptr %22, align 8, !tbaa !5
  %340 = getelementptr double, ptr %334, i64 %339
  %341 = call i32 @dlaset_(ptr noundef nonnull @.str.19, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull @c_b82, ptr noundef nonnull @c_b82, ptr noundef %340, ptr noundef nonnull %22) #5
  %342 = load i64, ptr %22, align 8, !tbaa !5
  %343 = load i64, ptr %0, align 8, !tbaa !5
  %344 = mul nsw i64 %343, %342
  %345 = add nsw i64 %344, %332
  %346 = add nsw i64 %345, %343
  %347 = add nsw i64 %346, %343
  %348 = add nsw i64 %347, %343
  %349 = load i64, ptr %11, align 8, !tbaa !5
  %350 = add i64 %349, 1
  %351 = sub i64 %350, %348
  store i64 %351, ptr %15, align 8, !tbaa !5
  %352 = getelementptr inbounds double, ptr %25, i64 %345
  %353 = getelementptr inbounds double, ptr %25, i64 %346
  %354 = getelementptr inbounds double, ptr %25, i64 %347
  %355 = getelementptr inbounds double, ptr %25, i64 %348
  %356 = call i32 @dgebrd_(ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef %334, ptr noundef nonnull %22, ptr noundef %7, ptr noundef nonnull %352, ptr noundef nonnull %353, ptr noundef nonnull %354, ptr noundef nonnull %355, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  %357 = load i64, ptr %11, align 8, !tbaa !5
  %358 = add i64 %357, 1
  %359 = sub i64 %358, %348
  store i64 %359, ptr %15, align 8, !tbaa !5
  %360 = 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 %334, ptr noundef nonnull %22, ptr noundef nonnull %353, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %355, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  %361 = call i32 @dlalsd_(ptr noundef nonnull @.str.19, ptr noundef nonnull %24, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull %352, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %355, ptr noundef %12, ptr noundef nonnull %13) #5
  %362 = load i64, ptr %13, align 8, !tbaa !5
  %.not724 = icmp eq i64 %362, 0
  br i1 %.not724, label %363, label %403

363:                                              ; preds = %331
  %364 = load i64, ptr %11, align 8, !tbaa !5
  %reass.sub755 = sub i64 %364, %348
  %365 = add i64 %reass.sub755, 1
  store i64 %365, ptr %15, align 8, !tbaa !5
  %366 = call i32 @dormbr_(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.20, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef %334, ptr noundef nonnull %22, ptr noundef nonnull %354, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %355, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  %367 = load i64, ptr %1, align 8, !tbaa !5
  %368 = load i64, ptr %0, align 8, !tbaa !5
  %369 = sub nsw i64 %367, %368
  store i64 %369, ptr %15, align 8, !tbaa !5
  %370 = getelementptr inbounds double, ptr %5, i64 %368
  %371 = call i32 @dlaset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %15, ptr noundef nonnull %2, ptr noundef nonnull @c_b82, ptr noundef nonnull @c_b82, ptr noundef %370, ptr noundef %6) #5
  %372 = load i64, ptr %0, align 8, !tbaa !5
  %373 = load i64, ptr %11, align 8, !tbaa !5
  %374 = sub i64 %373, %372
  store i64 %374, ptr %15, align 8, !tbaa !5
  %375 = getelementptr double, ptr %10, i64 %372
  %376 = 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 nonnull %10, ptr noundef %5, ptr noundef %6, ptr noundef %375, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  br label %394

377:                                              ; preds = %314, %307
  %378 = or disjoint i64 %308, 1
  %379 = add nsw i64 %378, %271
  %reass.sub756 = sub i64 %.pre765, %379
  %380 = add i64 %reass.sub756, 1
  store i64 %380, ptr %15, align 8, !tbaa !5
  %381 = getelementptr double, ptr %10, i64 %271
  %382 = getelementptr double, ptr %10, i64 %308
  %383 = getelementptr inbounds double, ptr %25, i64 %379
  %384 = 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 %381, ptr noundef %382, ptr noundef nonnull %383, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  %385 = load i64, ptr %11, align 8, !tbaa !5
  %reass.sub757 = sub i64 %385, %379
  %386 = add i64 %reass.sub757, 1
  store i64 %386, ptr %15, align 8, !tbaa !5
  %387 = 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 %381, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %383, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  %388 = call i32 @dlalsd_(ptr noundef nonnull @.str.16, ptr noundef nonnull %24, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull %10, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %383, ptr noundef %12, ptr noundef nonnull %13) #5
  %389 = load i64, ptr %13, align 8, !tbaa !5
  %.not716 = icmp eq i64 %389, 0
  br i1 %.not716, label %390, label %403

390:                                              ; preds = %377
  %391 = load i64, ptr %11, align 8, !tbaa !5
  %reass.sub758 = sub i64 %391, %379
  %392 = add i64 %reass.sub758, 1
  store i64 %392, ptr %15, align 8, !tbaa !5
  %393 = call i32 @dormbr_(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.20, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %382, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %383, ptr noundef nonnull %15, ptr noundef nonnull %13) #5
  br label %394

394:                                              ; preds = %363, %390, %303
  %brmerge = or i1 %or.cond732, %251
  br i1 %brmerge, label %.sink.split776, label %397

.sink.split776:                                   ; preds = %394
  %.mux = select i1 %or.cond732, ptr %23, ptr %21
  %395 = 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 %2, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %13) #5
  %396 = 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 %20, ptr noundef nonnull @c__1, ptr noundef %7, ptr noundef nonnull %20, ptr noundef nonnull %13) #5
  br label %397

397:                                              ; preds = %394, %.sink.split776
  br i1 %or.cond735.not, label %400, label %398

398:                                              ; preds = %397
  %399 = call i32 @dlascl_(ptr noundef nonnull @.str.14, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull %19, ptr noundef nonnull %1, ptr noundef %2, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %13) #5
  br label %403

400:                                              ; preds = %397
  br i1 %261, label %401, label %403

401:                                              ; preds = %400
  %402 = call i32 @dlascl_(ptr noundef nonnull @.str.14, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %21, ptr noundef nonnull %19, ptr noundef nonnull %1, ptr noundef %2, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %13) #5
  br label %403

403:                                              ; preds = %398, %401, %400, %377, %331, %287, %222, %244
  store double %214, ptr %10, align 8, !tbaa !9
  br label %404

404:                                              ; preds = %403, %228, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @log(double noundef) local_unnamed_addr #3

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 @dlalsd_(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 @dgelqf_(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 @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) #4

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

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

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


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