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

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

@c__6 = external hidden global i32, align 4
@.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 i32, align 4
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b46 = external hidden global double, align 8
@c__1 = external hidden global i32, align 4
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b79 = external hidden global double, align 8

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

102:                                              ; preds = %13
  %103 = load ptr, ptr %14, align 8, !tbaa !5
  %104 = load i32, ptr %103, align 4, !tbaa !9
  br label %108

105:                                              ; preds = %13
  %106 = load ptr, ptr %15, align 8, !tbaa !5
  %107 = load i32, ptr %106, align 4, !tbaa !9
  br label %108

108:                                              ; preds = %105, %102
  %109 = phi i32 [ %104, %102 ], [ %107, %105 ]
  store i32 %109, ptr %51, align 4, !tbaa !9
  %110 = load ptr, ptr %14, align 8, !tbaa !5
  %111 = load i32, ptr %110, align 4, !tbaa !9
  %112 = load ptr, ptr %15, align 8, !tbaa !5
  %113 = load i32, ptr %112, align 4, !tbaa !9
  %114 = icmp sge i32 %111, %113
  br i1 %114, label %115, label %118

115:                                              ; preds = %108
  %116 = load ptr, ptr %14, align 8, !tbaa !5
  %117 = load i32, ptr %116, align 4, !tbaa !9
  br label %121

118:                                              ; preds = %108
  %119 = load ptr, ptr %15, align 8, !tbaa !5
  %120 = load i32, ptr %119, align 4, !tbaa !9
  br label %121

121:                                              ; preds = %118, %115
  %122 = phi i32 [ %117, %115 ], [ %120, %118 ]
  store i32 %122, ptr %52, align 4, !tbaa !9
  %123 = load ptr, ptr %25, align 8, !tbaa !5
  %124 = load i32, ptr %123, align 4, !tbaa !9
  %125 = icmp eq i32 %124, -1
  %126 = zext i1 %125 to i32
  store i32 %126, ptr %67, align 4, !tbaa !9
  %127 = load ptr, ptr %14, align 8, !tbaa !5
  %128 = load i32, ptr %127, align 4, !tbaa !9
  %129 = icmp slt i32 %128, 0
  br i1 %129, label %130, label %132

130:                                              ; preds = %121
  %131 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 -1, ptr %131, align 4, !tbaa !9
  br label %176

132:                                              ; preds = %121
  %133 = load ptr, ptr %15, align 8, !tbaa !5
  %134 = load i32, ptr %133, align 4, !tbaa !9
  %135 = icmp slt i32 %134, 0
  br i1 %135, label %136, label %138

136:                                              ; preds = %132
  %137 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 -2, ptr %137, align 4, !tbaa !9
  br label %175

138:                                              ; preds = %132
  %139 = load ptr, ptr %16, align 8, !tbaa !5
  %140 = load i32, ptr %139, align 4, !tbaa !9
  %141 = icmp slt i32 %140, 0
  br i1 %141, label %142, label %144

142:                                              ; preds = %138
  %143 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 -3, ptr %143, align 4, !tbaa !9
  br label %174

144:                                              ; preds = %138
  %145 = load ptr, ptr %18, align 8, !tbaa !5
  %146 = load i32, ptr %145, align 4, !tbaa !9
  %147 = load ptr, ptr %14, align 8, !tbaa !5
  %148 = load i32, ptr %147, align 4, !tbaa !9
  %149 = icmp sge i32 1, %148
  br i1 %149, label %150, label %151

150:                                              ; preds = %144
  br label %154

151:                                              ; preds = %144
  %152 = load ptr, ptr %14, align 8, !tbaa !5
  %153 = load i32, ptr %152, align 4, !tbaa !9
  br label %154

154:                                              ; preds = %151, %150
  %155 = phi i32 [ 1, %150 ], [ %153, %151 ]
  %156 = icmp slt i32 %146, %155
  br i1 %156, label %157, label %159

157:                                              ; preds = %154
  %158 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 -5, ptr %158, align 4, !tbaa !9
  br label %173

159:                                              ; preds = %154
  %160 = load ptr, ptr %20, align 8, !tbaa !5
  %161 = load i32, ptr %160, align 4, !tbaa !9
  %162 = load i32, ptr %52, align 4, !tbaa !9
  %163 = icmp sge i32 1, %162
  br i1 %163, label %164, label %165

164:                                              ; preds = %159
  br label %167

165:                                              ; preds = %159
  %166 = load i32, ptr %52, align 4, !tbaa !9
  br label %167

167:                                              ; preds = %165, %164
  %168 = phi i32 [ 1, %164 ], [ %166, %165 ]
  %169 = icmp slt i32 %161, %168
  br i1 %169, label %170, label %172

170:                                              ; preds = %167
  %171 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 -7, ptr %171, align 4, !tbaa !9
  br label %172

172:                                              ; preds = %170, %167
  br label %173

173:                                              ; preds = %172, %157
  br label %174

174:                                              ; preds = %173, %142
  br label %175

175:                                              ; preds = %174, %136
  br label %176

176:                                              ; preds = %175, %130
  %177 = load ptr, ptr %26, align 8, !tbaa !5
  %178 = load i32, ptr %177, align 4, !tbaa !9
  %179 = icmp eq i32 %178, 0
  br i1 %179, label %180, label %859

180:                                              ; preds = %176
  store i32 1, ptr %64, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  %181 = load i32, ptr %51, align 4, !tbaa !9
  %182 = icmp sgt i32 %181, 0
  br i1 %182, label %183, label %844

183:                                              ; preds = %180
  %184 = load ptr, ptr %14, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  store i32 %185, ptr %60, align 4, !tbaa !9
  %186 = load ptr, ptr %14, align 8, !tbaa !5
  %187 = load ptr, ptr %15, align 8, !tbaa !5
  %188 = load ptr, ptr %16, align 8, !tbaa !5
  %189 = call i32 @ilaenv_(ptr noundef @c__6, ptr noundef @.str, ptr noundef @.str.1, ptr noundef %186, ptr noundef %187, ptr noundef %188, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %189, ptr %55, align 4, !tbaa !9
  %190 = load ptr, ptr %14, align 8, !tbaa !5
  %191 = load i32, ptr %190, align 4, !tbaa !9
  %192 = load ptr, ptr %15, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  %194 = icmp sge i32 %191, %193
  br i1 %194, label %195, label %263

195:                                              ; preds = %183
  %196 = load ptr, ptr %14, align 8, !tbaa !5
  %197 = load i32, ptr %196, align 4, !tbaa !9
  %198 = load i32, ptr %55, align 4, !tbaa !9
  %199 = icmp sge i32 %197, %198
  br i1 %199, label %200, label %263

200:                                              ; preds = %195
  %201 = load ptr, ptr %14, align 8, !tbaa !5
  %202 = load ptr, ptr %15, align 8, !tbaa !5
  %203 = load ptr, ptr %17, align 8, !tbaa !5
  %204 = load i32, ptr %28, align 4, !tbaa !9
  %205 = sext i32 %204 to i64
  %206 = getelementptr inbounds double, ptr %203, i64 %205
  %207 = load ptr, ptr %18, align 8, !tbaa !5
  %208 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %209 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %210 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dgeqrf_(ptr noundef %201, ptr noundef %202, ptr noundef %206, ptr noundef %207, ptr noundef %208, ptr noundef %209, ptr noundef @c_n1, ptr noundef %210)
  %211 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %212 = load double, ptr %211, align 8, !tbaa !11
  %213 = fptosi double %212 to i32
  store i32 %213, ptr %41, align 4, !tbaa !9
  %214 = load ptr, ptr %14, align 8, !tbaa !5
  %215 = load ptr, ptr %16, align 8, !tbaa !5
  %216 = load ptr, ptr %15, align 8, !tbaa !5
  %217 = load ptr, ptr %17, align 8, !tbaa !5
  %218 = load i32, ptr %28, align 4, !tbaa !9
  %219 = sext i32 %218 to i64
  %220 = getelementptr inbounds double, ptr %217, i64 %219
  %221 = load ptr, ptr %18, align 8, !tbaa !5
  %222 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %223 = load ptr, ptr %19, align 8, !tbaa !5
  %224 = load i32, ptr %30, align 4, !tbaa !9
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds double, ptr %223, i64 %225
  %227 = load ptr, ptr %20, align 8, !tbaa !5
  %228 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %229 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dormqr_(ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %214, ptr noundef %215, ptr noundef %216, ptr noundef %220, ptr noundef %221, ptr noundef %222, ptr noundef %226, ptr noundef %227, ptr noundef %228, ptr noundef @c_n1, ptr noundef %229)
  %230 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %231 = load double, ptr %230, align 8, !tbaa !11
  %232 = fptosi double %231 to i32
  store i32 %232, ptr %46, align 4, !tbaa !9
  %233 = load ptr, ptr %15, align 8, !tbaa !5
  %234 = load i32, ptr %233, align 4, !tbaa !9
  store i32 %234, ptr %60, align 4, !tbaa !9
  %235 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %235, ptr %31, align 4, !tbaa !9
  %236 = load ptr, ptr %15, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = load i32, ptr %41, align 4, !tbaa !9
  %239 = add nsw i32 %237, %238
  store i32 %239, ptr %32, align 4, !tbaa !9
  %240 = load i32, ptr %31, align 4, !tbaa !9
  %241 = load i32, ptr %32, align 4, !tbaa !9
  %242 = icmp sge i32 %240, %241
  br i1 %242, label %243, label %245

243:                                              ; preds = %200
  %244 = load i32, ptr %31, align 4, !tbaa !9
  br label %247

245:                                              ; preds = %200
  %246 = load i32, ptr %32, align 4, !tbaa !9
  br label %247

247:                                              ; preds = %245, %243
  %248 = phi i32 [ %244, %243 ], [ %246, %245 ]
  store i32 %248, ptr %65, align 4, !tbaa !9
  %249 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %249, ptr %31, align 4, !tbaa !9
  %250 = load ptr, ptr %15, align 8, !tbaa !5
  %251 = load i32, ptr %250, align 4, !tbaa !9
  %252 = load i32, ptr %46, align 4, !tbaa !9
  %253 = add nsw i32 %251, %252
  store i32 %253, ptr %32, align 4, !tbaa !9
  %254 = load i32, ptr %31, align 4, !tbaa !9
  %255 = load i32, ptr %32, align 4, !tbaa !9
  %256 = icmp sge i32 %254, %255
  br i1 %256, label %257, label %259

257:                                              ; preds = %247
  %258 = load i32, ptr %31, align 4, !tbaa !9
  br label %261

259:                                              ; preds = %247
  %260 = load i32, ptr %32, align 4, !tbaa !9
  br label %261

261:                                              ; preds = %259, %257
  %262 = phi i32 [ %258, %257 ], [ %260, %259 ]
  store i32 %262, ptr %65, align 4, !tbaa !9
  br label %263

263:                                              ; preds = %261, %195, %183
  %264 = load ptr, ptr %14, align 8, !tbaa !5
  %265 = load i32, ptr %264, align 4, !tbaa !9
  %266 = load ptr, ptr %15, align 8, !tbaa !5
  %267 = load i32, ptr %266, align 4, !tbaa !9
  %268 = icmp sge i32 %265, %267
  br i1 %268, label %269, label %437

269:                                              ; preds = %263
  store i32 1, ptr %31, align 4, !tbaa !9
  %270 = load ptr, ptr %15, align 8, !tbaa !5
  %271 = load i32, ptr %270, align 4, !tbaa !9
  %272 = mul nsw i32 %271, 5
  store i32 %272, ptr %32, align 4, !tbaa !9
  %273 = load i32, ptr %31, align 4, !tbaa !9
  %274 = load i32, ptr %32, align 4, !tbaa !9
  %275 = icmp sge i32 %273, %274
  br i1 %275, label %276, label %278

276:                                              ; preds = %269
  %277 = load i32, ptr %31, align 4, !tbaa !9
  br label %280

278:                                              ; preds = %269
  %279 = load i32, ptr %32, align 4, !tbaa !9
  br label %280

280:                                              ; preds = %278, %276
  %281 = phi i32 [ %277, %276 ], [ %279, %278 ]
  store i32 %281, ptr %61, align 4, !tbaa !9
  %282 = load ptr, ptr %15, align 8, !tbaa !5
  %283 = load ptr, ptr %17, align 8, !tbaa !5
  %284 = load i32, ptr %28, align 4, !tbaa !9
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds double, ptr %283, i64 %285
  %287 = load ptr, ptr %18, align 8, !tbaa !5
  %288 = load ptr, ptr %21, align 8, !tbaa !5
  %289 = getelementptr inbounds double, ptr %288, i64 1
  %290 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %291 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %292 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %293 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %294 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dgebrd_(ptr noundef %60, ptr noundef %282, ptr noundef %286, ptr noundef %287, ptr noundef %289, ptr noundef %290, ptr noundef %291, ptr noundef %292, ptr noundef %293, ptr noundef @c_n1, ptr noundef %294)
  %295 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %296 = load double, ptr %295, align 8, !tbaa !11
  %297 = fptosi double %296 to i32
  store i32 %297, ptr %39, align 4, !tbaa !9
  %298 = load ptr, ptr %16, align 8, !tbaa !5
  %299 = load ptr, ptr %15, align 8, !tbaa !5
  %300 = load ptr, ptr %17, align 8, !tbaa !5
  %301 = load i32, ptr %28, align 4, !tbaa !9
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds double, ptr %300, i64 %302
  %304 = load ptr, ptr %18, align 8, !tbaa !5
  %305 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %306 = load ptr, ptr %19, align 8, !tbaa !5
  %307 = load i32, ptr %30, align 4, !tbaa !9
  %308 = sext i32 %307 to i64
  %309 = getelementptr inbounds double, ptr %306, i64 %308
  %310 = load ptr, ptr %20, align 8, !tbaa !5
  %311 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %312 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dormbr_(ptr noundef @.str.4, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %60, ptr noundef %298, ptr noundef %299, ptr noundef %303, ptr noundef %304, ptr noundef %305, ptr noundef %309, ptr noundef %310, ptr noundef %311, ptr noundef @c_n1, ptr noundef %312)
  %313 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %314 = load double, ptr %313, align 8, !tbaa !11
  %315 = fptosi double %314 to i32
  store i32 %315, ptr %43, align 4, !tbaa !9
  %316 = load ptr, ptr %15, align 8, !tbaa !5
  %317 = load ptr, ptr %15, align 8, !tbaa !5
  %318 = load ptr, ptr %15, align 8, !tbaa !5
  %319 = load ptr, ptr %17, align 8, !tbaa !5
  %320 = load i32, ptr %28, align 4, !tbaa !9
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds double, ptr %319, i64 %321
  %323 = load ptr, ptr %18, align 8, !tbaa !5
  %324 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %325 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %326 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dorgbr_(ptr noundef @.str.5, ptr noundef %316, ptr noundef %317, ptr noundef %318, ptr noundef %322, ptr noundef %323, ptr noundef %324, ptr noundef %325, ptr noundef @c_n1, ptr noundef %326)
  %327 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %328 = load double, ptr %327, align 8, !tbaa !11
  %329 = fptosi double %328 to i32
  store i32 %329, ptr %42, align 4, !tbaa !9
  %330 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %330, ptr %31, align 4, !tbaa !9
  %331 = load ptr, ptr %15, align 8, !tbaa !5
  %332 = load i32, ptr %331, align 4, !tbaa !9
  %333 = mul nsw i32 %332, 3
  %334 = load i32, ptr %39, align 4, !tbaa !9
  %335 = add nsw i32 %333, %334
  store i32 %335, ptr %32, align 4, !tbaa !9
  %336 = load i32, ptr %31, align 4, !tbaa !9
  %337 = load i32, ptr %32, align 4, !tbaa !9
  %338 = icmp sge i32 %336, %337
  br i1 %338, label %339, label %341

339:                                              ; preds = %280
  %340 = load i32, ptr %31, align 4, !tbaa !9
  br label %343

341:                                              ; preds = %280
  %342 = load i32, ptr %32, align 4, !tbaa !9
  br label %343

343:                                              ; preds = %341, %339
  %344 = phi i32 [ %340, %339 ], [ %342, %341 ]
  store i32 %344, ptr %65, align 4, !tbaa !9
  %345 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %345, ptr %31, align 4, !tbaa !9
  %346 = load ptr, ptr %15, align 8, !tbaa !5
  %347 = load i32, ptr %346, align 4, !tbaa !9
  %348 = mul nsw i32 %347, 3
  %349 = load i32, ptr %43, align 4, !tbaa !9
  %350 = add nsw i32 %348, %349
  store i32 %350, ptr %32, align 4, !tbaa !9
  %351 = load i32, ptr %31, align 4, !tbaa !9
  %352 = load i32, ptr %32, align 4, !tbaa !9
  %353 = icmp sge i32 %351, %352
  br i1 %353, label %354, label %356

354:                                              ; preds = %343
  %355 = load i32, ptr %31, align 4, !tbaa !9
  br label %358

356:                                              ; preds = %343
  %357 = load i32, ptr %32, align 4, !tbaa !9
  br label %358

358:                                              ; preds = %356, %354
  %359 = phi i32 [ %355, %354 ], [ %357, %356 ]
  store i32 %359, ptr %65, align 4, !tbaa !9
  %360 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %360, ptr %31, align 4, !tbaa !9
  %361 = load ptr, ptr %15, align 8, !tbaa !5
  %362 = load i32, ptr %361, align 4, !tbaa !9
  %363 = mul nsw i32 %362, 3
  %364 = load i32, ptr %42, align 4, !tbaa !9
  %365 = add nsw i32 %363, %364
  store i32 %365, ptr %32, align 4, !tbaa !9
  %366 = load i32, ptr %31, align 4, !tbaa !9
  %367 = load i32, ptr %32, align 4, !tbaa !9
  %368 = icmp sge i32 %366, %367
  br i1 %368, label %369, label %371

369:                                              ; preds = %358
  %370 = load i32, ptr %31, align 4, !tbaa !9
  br label %373

371:                                              ; preds = %358
  %372 = load i32, ptr %32, align 4, !tbaa !9
  br label %373

373:                                              ; preds = %371, %369
  %374 = phi i32 [ %370, %369 ], [ %372, %371 ]
  store i32 %374, ptr %65, align 4, !tbaa !9
  %375 = load i32, ptr %65, align 4, !tbaa !9
  %376 = load i32, ptr %61, align 4, !tbaa !9
  %377 = icmp sge i32 %375, %376
  br i1 %377, label %378, label %380

378:                                              ; preds = %373
  %379 = load i32, ptr %65, align 4, !tbaa !9
  br label %382

380:                                              ; preds = %373
  %381 = load i32, ptr %61, align 4, !tbaa !9
  br label %382

382:                                              ; preds = %380, %378
  %383 = phi i32 [ %379, %378 ], [ %381, %380 ]
  store i32 %383, ptr %65, align 4, !tbaa !9
  %384 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %384, ptr %31, align 4, !tbaa !9
  %385 = load ptr, ptr %15, align 8, !tbaa !5
  %386 = load i32, ptr %385, align 4, !tbaa !9
  %387 = load ptr, ptr %16, align 8, !tbaa !5
  %388 = load i32, ptr %387, align 4, !tbaa !9
  %389 = mul nsw i32 %386, %388
  store i32 %389, ptr %32, align 4, !tbaa !9
  %390 = load i32, ptr %31, align 4, !tbaa !9
  %391 = load i32, ptr %32, align 4, !tbaa !9
  %392 = icmp sge i32 %390, %391
  br i1 %392, label %393, label %395

393:                                              ; preds = %382
  %394 = load i32, ptr %31, align 4, !tbaa !9
  br label %397

395:                                              ; preds = %382
  %396 = load i32, ptr %32, align 4, !tbaa !9
  br label %397

397:                                              ; preds = %395, %393
  %398 = phi i32 [ %394, %393 ], [ %396, %395 ]
  store i32 %398, ptr %65, align 4, !tbaa !9
  %399 = load ptr, ptr %15, align 8, !tbaa !5
  %400 = load i32, ptr %399, align 4, !tbaa !9
  %401 = mul nsw i32 %400, 3
  %402 = load i32, ptr %60, align 4, !tbaa !9
  %403 = add nsw i32 %401, %402
  store i32 %403, ptr %31, align 4, !tbaa !9
  %404 = load ptr, ptr %15, align 8, !tbaa !5
  %405 = load i32, ptr %404, align 4, !tbaa !9
  %406 = mul nsw i32 %405, 3
  %407 = load ptr, ptr %16, align 8, !tbaa !5
  %408 = load i32, ptr %407, align 4, !tbaa !9
  %409 = add nsw i32 %406, %408
  store i32 %409, ptr %32, align 4, !tbaa !9
  %410 = load i32, ptr %31, align 4, !tbaa !9
  %411 = load i32, ptr %32, align 4, !tbaa !9
  %412 = icmp sge i32 %410, %411
  br i1 %412, label %413, label %415

413:                                              ; preds = %397
  %414 = load i32, ptr %31, align 4, !tbaa !9
  br label %417

415:                                              ; preds = %397
  %416 = load i32, ptr %32, align 4, !tbaa !9
  br label %417

417:                                              ; preds = %415, %413
  %418 = phi i32 [ %414, %413 ], [ %416, %415 ]
  store i32 %418, ptr %31, align 4, !tbaa !9
  %419 = load i32, ptr %31, align 4, !tbaa !9
  %420 = load i32, ptr %61, align 4, !tbaa !9
  %421 = icmp sge i32 %419, %420
  br i1 %421, label %422, label %424

422:                                              ; preds = %417
  %423 = load i32, ptr %31, align 4, !tbaa !9
  br label %426

424:                                              ; preds = %417
  %425 = load i32, ptr %61, align 4, !tbaa !9
  br label %426

426:                                              ; preds = %424, %422
  %427 = phi i32 [ %423, %422 ], [ %425, %424 ]
  store i32 %427, ptr %64, align 4, !tbaa !9
  %428 = load i32, ptr %64, align 4, !tbaa !9
  %429 = load i32, ptr %65, align 4, !tbaa !9
  %430 = icmp sge i32 %428, %429
  br i1 %430, label %431, label %433

431:                                              ; preds = %426
  %432 = load i32, ptr %64, align 4, !tbaa !9
  br label %435

433:                                              ; preds = %426
  %434 = load i32, ptr %65, align 4, !tbaa !9
  br label %435

435:                                              ; preds = %433, %431
  %436 = phi i32 [ %432, %431 ], [ %434, %433 ]
  store i32 %436, ptr %65, align 4, !tbaa !9
  br label %437

437:                                              ; preds = %435, %263
  %438 = load ptr, ptr %15, align 8, !tbaa !5
  %439 = load i32, ptr %438, align 4, !tbaa !9
  %440 = load ptr, ptr %14, align 8, !tbaa !5
  %441 = load i32, ptr %440, align 4, !tbaa !9
  %442 = icmp sgt i32 %439, %441
  br i1 %442, label %443, label %834

443:                                              ; preds = %437
  store i32 1, ptr %31, align 4, !tbaa !9
  %444 = load ptr, ptr %14, align 8, !tbaa !5
  %445 = load i32, ptr %444, align 4, !tbaa !9
  %446 = mul nsw i32 %445, 5
  store i32 %446, ptr %32, align 4, !tbaa !9
  %447 = load i32, ptr %31, align 4, !tbaa !9
  %448 = load i32, ptr %32, align 4, !tbaa !9
  %449 = icmp sge i32 %447, %448
  br i1 %449, label %450, label %452

450:                                              ; preds = %443
  %451 = load i32, ptr %31, align 4, !tbaa !9
  br label %454

452:                                              ; preds = %443
  %453 = load i32, ptr %32, align 4, !tbaa !9
  br label %454

454:                                              ; preds = %452, %450
  %455 = phi i32 [ %451, %450 ], [ %453, %452 ]
  store i32 %455, ptr %61, align 4, !tbaa !9
  %456 = load ptr, ptr %14, align 8, !tbaa !5
  %457 = load i32, ptr %456, align 4, !tbaa !9
  %458 = mul nsw i32 %457, 3
  %459 = load ptr, ptr %16, align 8, !tbaa !5
  %460 = load i32, ptr %459, align 4, !tbaa !9
  %461 = add nsw i32 %458, %460
  store i32 %461, ptr %31, align 4, !tbaa !9
  %462 = load ptr, ptr %14, align 8, !tbaa !5
  %463 = load i32, ptr %462, align 4, !tbaa !9
  %464 = mul nsw i32 %463, 3
  %465 = load ptr, ptr %15, align 8, !tbaa !5
  %466 = load i32, ptr %465, align 4, !tbaa !9
  %467 = add nsw i32 %464, %466
  store i32 %467, ptr %32, align 4, !tbaa !9
  %468 = load i32, ptr %31, align 4, !tbaa !9
  %469 = load i32, ptr %32, align 4, !tbaa !9
  %470 = icmp sge i32 %468, %469
  br i1 %470, label %471, label %473

471:                                              ; preds = %454
  %472 = load i32, ptr %31, align 4, !tbaa !9
  br label %475

473:                                              ; preds = %454
  %474 = load i32, ptr %32, align 4, !tbaa !9
  br label %475

475:                                              ; preds = %473, %471
  %476 = phi i32 [ %472, %471 ], [ %474, %473 ]
  store i32 %476, ptr %31, align 4, !tbaa !9
  %477 = load i32, ptr %31, align 4, !tbaa !9
  %478 = load i32, ptr %61, align 4, !tbaa !9
  %479 = icmp sge i32 %477, %478
  br i1 %479, label %480, label %482

480:                                              ; preds = %475
  %481 = load i32, ptr %31, align 4, !tbaa !9
  br label %484

482:                                              ; preds = %475
  %483 = load i32, ptr %61, align 4, !tbaa !9
  br label %484

484:                                              ; preds = %482, %480
  %485 = phi i32 [ %481, %480 ], [ %483, %482 ]
  store i32 %485, ptr %64, align 4, !tbaa !9
  %486 = load ptr, ptr %15, align 8, !tbaa !5
  %487 = load i32, ptr %486, align 4, !tbaa !9
  %488 = load i32, ptr %55, align 4, !tbaa !9
  %489 = icmp sge i32 %487, %488
  br i1 %489, label %490, label %723

490:                                              ; preds = %484
  %491 = load ptr, ptr %14, align 8, !tbaa !5
  %492 = load ptr, ptr %15, align 8, !tbaa !5
  %493 = load ptr, ptr %17, align 8, !tbaa !5
  %494 = load i32, ptr %28, align 4, !tbaa !9
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds double, ptr %493, i64 %495
  %497 = load ptr, ptr %18, align 8, !tbaa !5
  %498 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %499 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %500 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dgelqf_(ptr noundef %491, ptr noundef %492, ptr noundef %496, ptr noundef %497, ptr noundef %498, ptr noundef %499, ptr noundef @c_n1, ptr noundef %500)
  %501 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %502 = load double, ptr %501, align 8, !tbaa !11
  %503 = fptosi double %502 to i32
  store i32 %503, ptr %40, align 4, !tbaa !9
  %504 = load ptr, ptr %14, align 8, !tbaa !5
  %505 = load ptr, ptr %14, align 8, !tbaa !5
  %506 = load ptr, ptr %17, align 8, !tbaa !5
  %507 = load i32, ptr %28, align 4, !tbaa !9
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds double, ptr %506, i64 %508
  %510 = load ptr, ptr %18, align 8, !tbaa !5
  %511 = load ptr, ptr %21, align 8, !tbaa !5
  %512 = getelementptr inbounds double, ptr %511, i64 1
  %513 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %514 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %515 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %516 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %517 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dgebrd_(ptr noundef %504, ptr noundef %505, ptr noundef %509, ptr noundef %510, ptr noundef %512, ptr noundef %513, ptr noundef %514, ptr noundef %515, ptr noundef %516, ptr noundef @c_n1, ptr noundef %517)
  %518 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %519 = load double, ptr %518, align 8, !tbaa !11
  %520 = fptosi double %519 to i32
  store i32 %520, ptr %39, align 4, !tbaa !9
  %521 = load ptr, ptr %14, align 8, !tbaa !5
  %522 = load ptr, ptr %16, align 8, !tbaa !5
  %523 = load ptr, ptr %15, align 8, !tbaa !5
  %524 = load ptr, ptr %17, align 8, !tbaa !5
  %525 = load i32, ptr %28, align 4, !tbaa !9
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds double, ptr %524, i64 %526
  %528 = load ptr, ptr %18, align 8, !tbaa !5
  %529 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %530 = load ptr, ptr %19, align 8, !tbaa !5
  %531 = load i32, ptr %30, align 4, !tbaa !9
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds double, ptr %530, i64 %532
  %534 = load ptr, ptr %20, align 8, !tbaa !5
  %535 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %536 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dormbr_(ptr noundef @.str.4, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %521, ptr noundef %522, ptr noundef %523, ptr noundef %527, ptr noundef %528, ptr noundef %529, ptr noundef %533, ptr noundef %534, ptr noundef %535, ptr noundef @c_n1, ptr noundef %536)
  %537 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %538 = load double, ptr %537, align 8, !tbaa !11
  %539 = fptosi double %538 to i32
  store i32 %539, ptr %43, align 4, !tbaa !9
  %540 = load ptr, ptr %14, align 8, !tbaa !5
  %541 = load ptr, ptr %14, align 8, !tbaa !5
  %542 = load ptr, ptr %14, align 8, !tbaa !5
  %543 = load ptr, ptr %17, align 8, !tbaa !5
  %544 = load i32, ptr %28, align 4, !tbaa !9
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds double, ptr %543, i64 %545
  %547 = load ptr, ptr %18, align 8, !tbaa !5
  %548 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %549 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %550 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dorgbr_(ptr noundef @.str.5, ptr noundef %540, ptr noundef %541, ptr noundef %542, ptr noundef %546, ptr noundef %547, ptr noundef %548, ptr noundef %549, ptr noundef @c_n1, ptr noundef %550)
  %551 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %552 = load double, ptr %551, align 8, !tbaa !11
  %553 = fptosi double %552 to i32
  store i32 %553, ptr %42, align 4, !tbaa !9
  %554 = load ptr, ptr %15, align 8, !tbaa !5
  %555 = load ptr, ptr %16, align 8, !tbaa !5
  %556 = load ptr, ptr %14, align 8, !tbaa !5
  %557 = load ptr, ptr %17, align 8, !tbaa !5
  %558 = load i32, ptr %28, align 4, !tbaa !9
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds double, ptr %557, i64 %559
  %561 = load ptr, ptr %18, align 8, !tbaa !5
  %562 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %563 = load ptr, ptr %19, align 8, !tbaa !5
  %564 = load i32, ptr %30, align 4, !tbaa !9
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds double, ptr %563, i64 %565
  %567 = load ptr, ptr %20, align 8, !tbaa !5
  %568 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %569 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dormlq_(ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %554, ptr noundef %555, ptr noundef %556, ptr noundef %560, ptr noundef %561, ptr noundef %562, ptr noundef %566, ptr noundef %567, ptr noundef %568, ptr noundef @c_n1, ptr noundef %569)
  %570 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %571 = load double, ptr %570, align 8, !tbaa !11
  %572 = fptosi double %571 to i32
  store i32 %572, ptr %45, align 4, !tbaa !9
  %573 = load ptr, ptr %14, align 8, !tbaa !5
  %574 = load i32, ptr %573, align 4, !tbaa !9
  %575 = load i32, ptr %40, align 4, !tbaa !9
  %576 = add nsw i32 %574, %575
  store i32 %576, ptr %65, align 4, !tbaa !9
  %577 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %577, ptr %31, align 4, !tbaa !9
  %578 = load ptr, ptr %14, align 8, !tbaa !5
  %579 = load i32, ptr %578, align 4, !tbaa !9
  %580 = load ptr, ptr %14, align 8, !tbaa !5
  %581 = load i32, ptr %580, align 4, !tbaa !9
  %582 = mul nsw i32 %579, %581
  %583 = load ptr, ptr %14, align 8, !tbaa !5
  %584 = load i32, ptr %583, align 4, !tbaa !9
  %585 = shl i32 %584, 2
  %586 = add nsw i32 %582, %585
  %587 = load i32, ptr %39, align 4, !tbaa !9
  %588 = add nsw i32 %586, %587
  store i32 %588, ptr %32, align 4, !tbaa !9
  %589 = load i32, ptr %31, align 4, !tbaa !9
  %590 = load i32, ptr %32, align 4, !tbaa !9
  %591 = icmp sge i32 %589, %590
  br i1 %591, label %592, label %594

592:                                              ; preds = %490
  %593 = load i32, ptr %31, align 4, !tbaa !9
  br label %596

594:                                              ; preds = %490
  %595 = load i32, ptr %32, align 4, !tbaa !9
  br label %596

596:                                              ; preds = %594, %592
  %597 = phi i32 [ %593, %592 ], [ %595, %594 ]
  store i32 %597, ptr %65, align 4, !tbaa !9
  %598 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %598, ptr %31, align 4, !tbaa !9
  %599 = load ptr, ptr %14, align 8, !tbaa !5
  %600 = load i32, ptr %599, align 4, !tbaa !9
  %601 = load ptr, ptr %14, align 8, !tbaa !5
  %602 = load i32, ptr %601, align 4, !tbaa !9
  %603 = mul nsw i32 %600, %602
  %604 = load ptr, ptr %14, align 8, !tbaa !5
  %605 = load i32, ptr %604, align 4, !tbaa !9
  %606 = shl i32 %605, 2
  %607 = add nsw i32 %603, %606
  %608 = load i32, ptr %43, align 4, !tbaa !9
  %609 = add nsw i32 %607, %608
  store i32 %609, ptr %32, align 4, !tbaa !9
  %610 = load i32, ptr %31, align 4, !tbaa !9
  %611 = load i32, ptr %32, align 4, !tbaa !9
  %612 = icmp sge i32 %610, %611
  br i1 %612, label %613, label %615

613:                                              ; preds = %596
  %614 = load i32, ptr %31, align 4, !tbaa !9
  br label %617

615:                                              ; preds = %596
  %616 = load i32, ptr %32, align 4, !tbaa !9
  br label %617

617:                                              ; preds = %615, %613
  %618 = phi i32 [ %614, %613 ], [ %616, %615 ]
  store i32 %618, ptr %65, align 4, !tbaa !9
  %619 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %619, ptr %31, align 4, !tbaa !9
  %620 = load ptr, ptr %14, align 8, !tbaa !5
  %621 = load i32, ptr %620, align 4, !tbaa !9
  %622 = load ptr, ptr %14, align 8, !tbaa !5
  %623 = load i32, ptr %622, align 4, !tbaa !9
  %624 = mul nsw i32 %621, %623
  %625 = load ptr, ptr %14, align 8, !tbaa !5
  %626 = load i32, ptr %625, align 4, !tbaa !9
  %627 = shl i32 %626, 2
  %628 = add nsw i32 %624, %627
  %629 = load i32, ptr %42, align 4, !tbaa !9
  %630 = add nsw i32 %628, %629
  store i32 %630, ptr %32, align 4, !tbaa !9
  %631 = load i32, ptr %31, align 4, !tbaa !9
  %632 = load i32, ptr %32, align 4, !tbaa !9
  %633 = icmp sge i32 %631, %632
  br i1 %633, label %634, label %636

634:                                              ; preds = %617
  %635 = load i32, ptr %31, align 4, !tbaa !9
  br label %638

636:                                              ; preds = %617
  %637 = load i32, ptr %32, align 4, !tbaa !9
  br label %638

638:                                              ; preds = %636, %634
  %639 = phi i32 [ %635, %634 ], [ %637, %636 ]
  store i32 %639, ptr %65, align 4, !tbaa !9
  %640 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %640, ptr %31, align 4, !tbaa !9
  %641 = load ptr, ptr %14, align 8, !tbaa !5
  %642 = load i32, ptr %641, align 4, !tbaa !9
  %643 = load ptr, ptr %14, align 8, !tbaa !5
  %644 = load i32, ptr %643, align 4, !tbaa !9
  %645 = mul nsw i32 %642, %644
  %646 = load ptr, ptr %14, align 8, !tbaa !5
  %647 = load i32, ptr %646, align 4, !tbaa !9
  %648 = add nsw i32 %645, %647
  %649 = load i32, ptr %61, align 4, !tbaa !9
  %650 = add nsw i32 %648, %649
  store i32 %650, ptr %32, align 4, !tbaa !9
  %651 = load i32, ptr %31, align 4, !tbaa !9
  %652 = load i32, ptr %32, align 4, !tbaa !9
  %653 = icmp sge i32 %651, %652
  br i1 %653, label %654, label %656

654:                                              ; preds = %638
  %655 = load i32, ptr %31, align 4, !tbaa !9
  br label %658

656:                                              ; preds = %638
  %657 = load i32, ptr %32, align 4, !tbaa !9
  br label %658

658:                                              ; preds = %656, %654
  %659 = phi i32 [ %655, %654 ], [ %657, %656 ]
  store i32 %659, ptr %65, align 4, !tbaa !9
  %660 = load ptr, ptr %16, align 8, !tbaa !5
  %661 = load i32, ptr %660, align 4, !tbaa !9
  %662 = icmp sgt i32 %661, 1
  br i1 %662, label %663, label %688

663:                                              ; preds = %658
  %664 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %664, ptr %31, align 4, !tbaa !9
  %665 = load ptr, ptr %14, align 8, !tbaa !5
  %666 = load i32, ptr %665, align 4, !tbaa !9
  %667 = load ptr, ptr %14, align 8, !tbaa !5
  %668 = load i32, ptr %667, align 4, !tbaa !9
  %669 = mul nsw i32 %666, %668
  %670 = load ptr, ptr %14, align 8, !tbaa !5
  %671 = load i32, ptr %670, align 4, !tbaa !9
  %672 = add nsw i32 %669, %671
  %673 = load ptr, ptr %14, align 8, !tbaa !5
  %674 = load i32, ptr %673, align 4, !tbaa !9
  %675 = load ptr, ptr %16, align 8, !tbaa !5
  %676 = load i32, ptr %675, align 4, !tbaa !9
  %677 = mul nsw i32 %674, %676
  %678 = add nsw i32 %672, %677
  store i32 %678, ptr %32, align 4, !tbaa !9
  %679 = load i32, ptr %31, align 4, !tbaa !9
  %680 = load i32, ptr %32, align 4, !tbaa !9
  %681 = icmp sge i32 %679, %680
  br i1 %681, label %682, label %684

682:                                              ; preds = %663
  %683 = load i32, ptr %31, align 4, !tbaa !9
  br label %686

684:                                              ; preds = %663
  %685 = load i32, ptr %32, align 4, !tbaa !9
  br label %686

686:                                              ; preds = %684, %682
  %687 = phi i32 [ %683, %682 ], [ %685, %684 ]
  store i32 %687, ptr %65, align 4, !tbaa !9
  br label %708

688:                                              ; preds = %658
  %689 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %689, ptr %31, align 4, !tbaa !9
  %690 = load ptr, ptr %14, align 8, !tbaa !5
  %691 = load i32, ptr %690, align 4, !tbaa !9
  %692 = load ptr, ptr %14, align 8, !tbaa !5
  %693 = load i32, ptr %692, align 4, !tbaa !9
  %694 = mul nsw i32 %691, %693
  %695 = load ptr, ptr %14, align 8, !tbaa !5
  %696 = load i32, ptr %695, align 4, !tbaa !9
  %697 = shl i32 %696, 1
  %698 = add nsw i32 %694, %697
  store i32 %698, ptr %32, align 4, !tbaa !9
  %699 = load i32, ptr %31, align 4, !tbaa !9
  %700 = load i32, ptr %32, align 4, !tbaa !9
  %701 = icmp sge i32 %699, %700
  br i1 %701, label %702, label %704

702:                                              ; preds = %688
  %703 = load i32, ptr %31, align 4, !tbaa !9
  br label %706

704:                                              ; preds = %688
  %705 = load i32, ptr %32, align 4, !tbaa !9
  br label %706

706:                                              ; preds = %704, %702
  %707 = phi i32 [ %703, %702 ], [ %705, %704 ]
  store i32 %707, ptr %65, align 4, !tbaa !9
  br label %708

708:                                              ; preds = %706, %686
  %709 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %709, ptr %31, align 4, !tbaa !9
  %710 = load ptr, ptr %14, align 8, !tbaa !5
  %711 = load i32, ptr %710, align 4, !tbaa !9
  %712 = load i32, ptr %45, align 4, !tbaa !9
  %713 = add nsw i32 %711, %712
  store i32 %713, ptr %32, align 4, !tbaa !9
  %714 = load i32, ptr %31, align 4, !tbaa !9
  %715 = load i32, ptr %32, align 4, !tbaa !9
  %716 = icmp sge i32 %714, %715
  br i1 %716, label %717, label %719

717:                                              ; preds = %708
  %718 = load i32, ptr %31, align 4, !tbaa !9
  br label %721

719:                                              ; preds = %708
  %720 = load i32, ptr %32, align 4, !tbaa !9
  br label %721

721:                                              ; preds = %719, %717
  %722 = phi i32 [ %718, %717 ], [ %720, %719 ]
  store i32 %722, ptr %65, align 4, !tbaa !9
  br label %833

723:                                              ; preds = %484
  %724 = load ptr, ptr %14, align 8, !tbaa !5
  %725 = load ptr, ptr %15, align 8, !tbaa !5
  %726 = load ptr, ptr %17, align 8, !tbaa !5
  %727 = load i32, ptr %28, align 4, !tbaa !9
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds double, ptr %726, i64 %728
  %730 = load ptr, ptr %18, align 8, !tbaa !5
  %731 = load ptr, ptr %21, align 8, !tbaa !5
  %732 = getelementptr inbounds double, ptr %731, i64 1
  %733 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %734 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %735 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %736 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %737 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dgebrd_(ptr noundef %724, ptr noundef %725, ptr noundef %729, ptr noundef %730, ptr noundef %732, ptr noundef %733, ptr noundef %734, ptr noundef %735, ptr noundef %736, ptr noundef @c_n1, ptr noundef %737)
  %738 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %739 = load double, ptr %738, align 8, !tbaa !11
  %740 = fptosi double %739 to i32
  store i32 %740, ptr %39, align 4, !tbaa !9
  %741 = load ptr, ptr %14, align 8, !tbaa !5
  %742 = load ptr, ptr %16, align 8, !tbaa !5
  %743 = load ptr, ptr %14, align 8, !tbaa !5
  %744 = load ptr, ptr %17, align 8, !tbaa !5
  %745 = load i32, ptr %28, align 4, !tbaa !9
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds double, ptr %744, i64 %746
  %748 = load ptr, ptr %18, align 8, !tbaa !5
  %749 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %750 = load ptr, ptr %19, align 8, !tbaa !5
  %751 = load i32, ptr %30, align 4, !tbaa !9
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds double, ptr %750, i64 %752
  %754 = load ptr, ptr %20, align 8, !tbaa !5
  %755 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %756 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dormbr_(ptr noundef @.str.4, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %741, ptr noundef %742, ptr noundef %743, ptr noundef %747, ptr noundef %748, ptr noundef %749, ptr noundef %753, ptr noundef %754, ptr noundef %755, ptr noundef @c_n1, ptr noundef %756)
  %757 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %758 = load double, ptr %757, align 8, !tbaa !11
  %759 = fptosi double %758 to i32
  store i32 %759, ptr %43, align 4, !tbaa !9
  %760 = load ptr, ptr %14, align 8, !tbaa !5
  %761 = load ptr, ptr %15, align 8, !tbaa !5
  %762 = load ptr, ptr %14, align 8, !tbaa !5
  %763 = load ptr, ptr %17, align 8, !tbaa !5
  %764 = load i32, ptr %28, align 4, !tbaa !9
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds double, ptr %763, i64 %765
  %767 = load ptr, ptr %18, align 8, !tbaa !5
  %768 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %769 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %770 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dorgbr_(ptr noundef @.str.5, ptr noundef %760, ptr noundef %761, ptr noundef %762, ptr noundef %766, ptr noundef %767, ptr noundef %768, ptr noundef %769, ptr noundef @c_n1, ptr noundef %770)
  %771 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %772 = load double, ptr %771, align 8, !tbaa !11
  %773 = fptosi double %772 to i32
  store i32 %773, ptr %42, align 4, !tbaa !9
  %774 = load ptr, ptr %14, align 8, !tbaa !5
  %775 = load i32, ptr %774, align 4, !tbaa !9
  %776 = mul nsw i32 %775, 3
  %777 = load i32, ptr %39, align 4, !tbaa !9
  %778 = add nsw i32 %776, %777
  store i32 %778, ptr %65, align 4, !tbaa !9
  %779 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %779, ptr %31, align 4, !tbaa !9
  %780 = load ptr, ptr %14, align 8, !tbaa !5
  %781 = load i32, ptr %780, align 4, !tbaa !9
  %782 = mul nsw i32 %781, 3
  %783 = load i32, ptr %43, align 4, !tbaa !9
  %784 = add nsw i32 %782, %783
  store i32 %784, ptr %32, align 4, !tbaa !9
  %785 = load i32, ptr %31, align 4, !tbaa !9
  %786 = load i32, ptr %32, align 4, !tbaa !9
  %787 = icmp sge i32 %785, %786
  br i1 %787, label %788, label %790

788:                                              ; preds = %723
  %789 = load i32, ptr %31, align 4, !tbaa !9
  br label %792

790:                                              ; preds = %723
  %791 = load i32, ptr %32, align 4, !tbaa !9
  br label %792

792:                                              ; preds = %790, %788
  %793 = phi i32 [ %789, %788 ], [ %791, %790 ]
  store i32 %793, ptr %65, align 4, !tbaa !9
  %794 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %794, ptr %31, align 4, !tbaa !9
  %795 = load ptr, ptr %14, align 8, !tbaa !5
  %796 = load i32, ptr %795, align 4, !tbaa !9
  %797 = mul nsw i32 %796, 3
  %798 = load i32, ptr %42, align 4, !tbaa !9
  %799 = add nsw i32 %797, %798
  store i32 %799, ptr %32, align 4, !tbaa !9
  %800 = load i32, ptr %31, align 4, !tbaa !9
  %801 = load i32, ptr %32, align 4, !tbaa !9
  %802 = icmp sge i32 %800, %801
  br i1 %802, label %803, label %805

803:                                              ; preds = %792
  %804 = load i32, ptr %31, align 4, !tbaa !9
  br label %807

805:                                              ; preds = %792
  %806 = load i32, ptr %32, align 4, !tbaa !9
  br label %807

807:                                              ; preds = %805, %803
  %808 = phi i32 [ %804, %803 ], [ %806, %805 ]
  store i32 %808, ptr %65, align 4, !tbaa !9
  %809 = load i32, ptr %65, align 4, !tbaa !9
  %810 = load i32, ptr %61, align 4, !tbaa !9
  %811 = icmp sge i32 %809, %810
  br i1 %811, label %812, label %814

812:                                              ; preds = %807
  %813 = load i32, ptr %65, align 4, !tbaa !9
  br label %816

814:                                              ; preds = %807
  %815 = load i32, ptr %61, align 4, !tbaa !9
  br label %816

816:                                              ; preds = %814, %812
  %817 = phi i32 [ %813, %812 ], [ %815, %814 ]
  store i32 %817, ptr %65, align 4, !tbaa !9
  %818 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %818, ptr %31, align 4, !tbaa !9
  %819 = load ptr, ptr %15, align 8, !tbaa !5
  %820 = load i32, ptr %819, align 4, !tbaa !9
  %821 = load ptr, ptr %16, align 8, !tbaa !5
  %822 = load i32, ptr %821, align 4, !tbaa !9
  %823 = mul nsw i32 %820, %822
  store i32 %823, ptr %32, align 4, !tbaa !9
  %824 = load i32, ptr %31, align 4, !tbaa !9
  %825 = load i32, ptr %32, align 4, !tbaa !9
  %826 = icmp sge i32 %824, %825
  br i1 %826, label %827, label %829

827:                                              ; preds = %816
  %828 = load i32, ptr %31, align 4, !tbaa !9
  br label %831

829:                                              ; preds = %816
  %830 = load i32, ptr %32, align 4, !tbaa !9
  br label %831

831:                                              ; preds = %829, %827
  %832 = phi i32 [ %828, %827 ], [ %830, %829 ]
  store i32 %832, ptr %65, align 4, !tbaa !9
  br label %833

833:                                              ; preds = %831, %721
  br label %834

834:                                              ; preds = %833, %437
  %835 = load i32, ptr %64, align 4, !tbaa !9
  %836 = load i32, ptr %65, align 4, !tbaa !9
  %837 = icmp sge i32 %835, %836
  br i1 %837, label %838, label %840

838:                                              ; preds = %834
  %839 = load i32, ptr %64, align 4, !tbaa !9
  br label %842

840:                                              ; preds = %834
  %841 = load i32, ptr %65, align 4, !tbaa !9
  br label %842

842:                                              ; preds = %840, %838
  %843 = phi i32 [ %839, %838 ], [ %841, %840 ]
  store i32 %843, ptr %65, align 4, !tbaa !9
  br label %844

844:                                              ; preds = %842, %180
  %845 = load i32, ptr %65, align 4, !tbaa !9
  %846 = sitofp i32 %845 to double
  %847 = load ptr, ptr %24, align 8, !tbaa !5
  %848 = getelementptr inbounds double, ptr %847, i64 1
  store double %846, ptr %848, align 8, !tbaa !11
  %849 = load ptr, ptr %25, align 8, !tbaa !5
  %850 = load i32, ptr %849, align 4, !tbaa !9
  %851 = load i32, ptr %64, align 4, !tbaa !9
  %852 = icmp slt i32 %850, %851
  br i1 %852, label %853, label %858

853:                                              ; preds = %844
  %854 = load i32, ptr %67, align 4, !tbaa !9
  %855 = icmp ne i32 %854, 0
  br i1 %855, label %858, label %856

856:                                              ; preds = %853
  %857 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 -12, ptr %857, align 4, !tbaa !9
  br label %858

858:                                              ; preds = %856, %853, %844
  br label %859

859:                                              ; preds = %858, %176
  %860 = load ptr, ptr %26, align 8, !tbaa !5
  %861 = load i32, ptr %860, align 4, !tbaa !9
  %862 = icmp ne i32 %861, 0
  br i1 %862, label %863, label %868

863:                                              ; preds = %859
  %864 = load ptr, ptr %26, align 8, !tbaa !5
  %865 = load i32, ptr %864, align 4, !tbaa !9
  %866 = sub nsw i32 0, %865
  store i32 %866, ptr %31, align 4, !tbaa !9
  %867 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %31, i32 noundef 6)
  store i32 1, ptr %71, align 4
  br label %2445

868:                                              ; preds = %859
  %869 = load i32, ptr %67, align 4, !tbaa !9
  %870 = icmp ne i32 %869, 0
  br i1 %870, label %871, label %872

871:                                              ; preds = %868
  store i32 1, ptr %71, align 4
  br label %2445

872:                                              ; preds = %868
  br label %873

873:                                              ; preds = %872
  %874 = load ptr, ptr %14, align 8, !tbaa !5
  %875 = load i32, ptr %874, align 4, !tbaa !9
  %876 = icmp eq i32 %875, 0
  br i1 %876, label %881, label %877

877:                                              ; preds = %873
  %878 = load ptr, ptr %15, align 8, !tbaa !5
  %879 = load i32, ptr %878, align 4, !tbaa !9
  %880 = icmp eq i32 %879, 0
  br i1 %880, label %881, label %883

881:                                              ; preds = %877, %873
  %882 = load ptr, ptr %23, align 8, !tbaa !5
  store i32 0, ptr %882, align 4, !tbaa !9
  store i32 1, ptr %71, align 4
  br label %2445

883:                                              ; preds = %877
  %884 = call double @dlamch_(ptr noundef @.str.5)
  store double %884, ptr %69, align 8, !tbaa !11
  %885 = call double @dlamch_(ptr noundef @.str.6)
  store double %885, ptr %50, align 8, !tbaa !11
  %886 = load double, ptr %50, align 8, !tbaa !11
  %887 = load double, ptr %69, align 8, !tbaa !11
  %888 = fdiv double %886, %887
  store double %888, ptr %66, align 8, !tbaa !11
  %889 = load double, ptr %66, align 8, !tbaa !11
  %890 = fdiv double 1.000000e+00, %889
  store double %890, ptr %62, align 8, !tbaa !11
  call void @dlabad_(ptr noundef %66, ptr noundef %62)
  %891 = load ptr, ptr %14, align 8, !tbaa !5
  %892 = load ptr, ptr %15, align 8, !tbaa !5
  %893 = load ptr, ptr %17, align 8, !tbaa !5
  %894 = load i32, ptr %28, align 4, !tbaa !9
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds double, ptr %893, i64 %895
  %897 = load ptr, ptr %18, align 8, !tbaa !5
  %898 = load ptr, ptr %24, align 8, !tbaa !5
  %899 = getelementptr inbounds double, ptr %898, i64 1
  %900 = call double @dlange_(ptr noundef @.str.7, ptr noundef %891, ptr noundef %892, ptr noundef %896, ptr noundef %897, ptr noundef %899)
  store double %900, ptr %36, align 8, !tbaa !11
  store i32 0, ptr %47, align 4, !tbaa !9
  %901 = load double, ptr %36, align 8, !tbaa !11
  %902 = fcmp ogt double %901, 0.000000e+00
  br i1 %902, label %903, label %916

903:                                              ; preds = %883
  %904 = load double, ptr %36, align 8, !tbaa !11
  %905 = load double, ptr %66, align 8, !tbaa !11
  %906 = fcmp olt double %904, %905
  br i1 %906, label %907, label %916

907:                                              ; preds = %903
  %908 = load ptr, ptr %14, align 8, !tbaa !5
  %909 = load ptr, ptr %15, align 8, !tbaa !5
  %910 = load ptr, ptr %17, align 8, !tbaa !5
  %911 = load i32, ptr %28, align 4, !tbaa !9
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds double, ptr %910, i64 %912
  %914 = load ptr, ptr %18, align 8, !tbaa !5
  %915 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.8, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %36, ptr noundef %66, ptr noundef %908, ptr noundef %909, ptr noundef %913, ptr noundef %914, ptr noundef %915)
  store i32 1, ptr %47, align 4, !tbaa !9
  br label %957

916:                                              ; preds = %903, %883
  %917 = load double, ptr %36, align 8, !tbaa !11
  %918 = load double, ptr %62, align 8, !tbaa !11
  %919 = fcmp ogt double %917, %918
  br i1 %919, label %920, label %929

920:                                              ; preds = %916
  %921 = load ptr, ptr %14, align 8, !tbaa !5
  %922 = load ptr, ptr %15, align 8, !tbaa !5
  %923 = load ptr, ptr %17, align 8, !tbaa !5
  %924 = load i32, ptr %28, align 4, !tbaa !9
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds double, ptr %923, i64 %925
  %927 = load ptr, ptr %18, align 8, !tbaa !5
  %928 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.8, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %36, ptr noundef %62, ptr noundef %921, ptr noundef %922, ptr noundef %926, ptr noundef %927, ptr noundef %928)
  store i32 2, ptr %47, align 4, !tbaa !9
  br label %956

929:                                              ; preds = %916
  %930 = load double, ptr %36, align 8, !tbaa !11
  %931 = fcmp oeq double %930, 0.000000e+00
  br i1 %931, label %932, label %955

932:                                              ; preds = %929
  %933 = load ptr, ptr %14, align 8, !tbaa !5
  %934 = load i32, ptr %933, align 4, !tbaa !9
  %935 = load ptr, ptr %15, align 8, !tbaa !5
  %936 = load i32, ptr %935, align 4, !tbaa !9
  %937 = icmp sge i32 %934, %936
  br i1 %937, label %938, label %941

938:                                              ; preds = %932
  %939 = load ptr, ptr %14, align 8, !tbaa !5
  %940 = load i32, ptr %939, align 4, !tbaa !9
  br label %944

941:                                              ; preds = %932
  %942 = load ptr, ptr %15, align 8, !tbaa !5
  %943 = load i32, ptr %942, align 4, !tbaa !9
  br label %944

944:                                              ; preds = %941, %938
  %945 = phi i32 [ %940, %938 ], [ %943, %941 ]
  store i32 %945, ptr %31, align 4, !tbaa !9
  %946 = load ptr, ptr %16, align 8, !tbaa !5
  %947 = load ptr, ptr %19, align 8, !tbaa !5
  %948 = load i32, ptr %30, align 4, !tbaa !9
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds double, ptr %947, i64 %949
  %951 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlaset_(ptr noundef @.str.9, ptr noundef %31, ptr noundef %946, ptr noundef @c_b46, ptr noundef @c_b46, ptr noundef %950, ptr noundef %951)
  %952 = load ptr, ptr %21, align 8, !tbaa !5
  %953 = getelementptr inbounds double, ptr %952, i64 1
  call void @dlaset_(ptr noundef @.str.9, ptr noundef %51, ptr noundef @c__1, ptr noundef @c_b46, ptr noundef @c_b46, ptr noundef %953, ptr noundef %51)
  %954 = load ptr, ptr %23, align 8, !tbaa !5
  store i32 0, ptr %954, align 4, !tbaa !9
  br label %2440

955:                                              ; preds = %929
  br label %956

956:                                              ; preds = %955, %920
  br label %957

957:                                              ; preds = %956, %907
  %958 = load ptr, ptr %14, align 8, !tbaa !5
  %959 = load ptr, ptr %16, align 8, !tbaa !5
  %960 = load ptr, ptr %19, align 8, !tbaa !5
  %961 = load i32, ptr %30, align 4, !tbaa !9
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds double, ptr %960, i64 %962
  %964 = load ptr, ptr %20, align 8, !tbaa !5
  %965 = load ptr, ptr %24, align 8, !tbaa !5
  %966 = getelementptr inbounds double, ptr %965, i64 1
  %967 = call double @dlange_(ptr noundef @.str.7, ptr noundef %958, ptr noundef %959, ptr noundef %963, ptr noundef %964, ptr noundef %966)
  store double %967, ptr %37, align 8, !tbaa !11
  store i32 0, ptr %48, align 4, !tbaa !9
  %968 = load double, ptr %37, align 8, !tbaa !11
  %969 = fcmp ogt double %968, 0.000000e+00
  br i1 %969, label %970, label %983

970:                                              ; preds = %957
  %971 = load double, ptr %37, align 8, !tbaa !11
  %972 = load double, ptr %66, align 8, !tbaa !11
  %973 = fcmp olt double %971, %972
  br i1 %973, label %974, label %983

974:                                              ; preds = %970
  %975 = load ptr, ptr %14, align 8, !tbaa !5
  %976 = load ptr, ptr %16, align 8, !tbaa !5
  %977 = load ptr, ptr %19, align 8, !tbaa !5
  %978 = load i32, ptr %30, align 4, !tbaa !9
  %979 = sext i32 %978 to i64
  %980 = getelementptr inbounds double, ptr %977, i64 %979
  %981 = load ptr, ptr %20, align 8, !tbaa !5
  %982 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.8, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %37, ptr noundef %66, ptr noundef %975, ptr noundef %976, ptr noundef %980, ptr noundef %981, ptr noundef %982)
  store i32 1, ptr %48, align 4, !tbaa !9
  br label %997

983:                                              ; preds = %970, %957
  %984 = load double, ptr %37, align 8, !tbaa !11
  %985 = load double, ptr %62, align 8, !tbaa !11
  %986 = fcmp ogt double %984, %985
  br i1 %986, label %987, label %996

987:                                              ; preds = %983
  %988 = load ptr, ptr %14, align 8, !tbaa !5
  %989 = load ptr, ptr %16, align 8, !tbaa !5
  %990 = load ptr, ptr %19, align 8, !tbaa !5
  %991 = load i32, ptr %30, align 4, !tbaa !9
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds double, ptr %990, i64 %992
  %994 = load ptr, ptr %20, align 8, !tbaa !5
  %995 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.8, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %37, ptr noundef %62, ptr noundef %988, ptr noundef %989, ptr noundef %993, ptr noundef %994, ptr noundef %995)
  store i32 2, ptr %48, align 4, !tbaa !9
  br label %996

996:                                              ; preds = %987, %983
  br label %997

997:                                              ; preds = %996, %974
  %998 = load ptr, ptr %14, align 8, !tbaa !5
  %999 = load i32, ptr %998, align 4, !tbaa !9
  %1000 = load ptr, ptr %15, align 8, !tbaa !5
  %1001 = load i32, ptr %1000, align 4, !tbaa !9
  %1002 = icmp sge i32 %999, %1001
  br i1 %1002, label %1003, label %1427

1003:                                             ; preds = %997
  %1004 = load ptr, ptr %14, align 8, !tbaa !5
  %1005 = load i32, ptr %1004, align 4, !tbaa !9
  store i32 %1005, ptr %60, align 4, !tbaa !9
  %1006 = load ptr, ptr %14, align 8, !tbaa !5
  %1007 = load i32, ptr %1006, align 4, !tbaa !9
  %1008 = load i32, ptr %55, align 4, !tbaa !9
  %1009 = icmp sge i32 %1007, %1008
  br i1 %1009, label %1010, label %1082

1010:                                             ; preds = %1003
  %1011 = load ptr, ptr %15, align 8, !tbaa !5
  %1012 = load i32, ptr %1011, align 4, !tbaa !9
  store i32 %1012, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %38, align 4, !tbaa !9
  %1013 = load i32, ptr %38, align 4, !tbaa !9
  %1014 = load ptr, ptr %15, align 8, !tbaa !5
  %1015 = load i32, ptr %1014, align 4, !tbaa !9
  %1016 = add nsw i32 %1013, %1015
  store i32 %1016, ptr %56, align 4, !tbaa !9
  %1017 = load ptr, ptr %25, align 8, !tbaa !5
  %1018 = load i32, ptr %1017, align 4, !tbaa !9
  %1019 = load i32, ptr %56, align 4, !tbaa !9
  %1020 = sub nsw i32 %1018, %1019
  %1021 = add nsw i32 %1020, 1
  store i32 %1021, ptr %31, align 4, !tbaa !9
  %1022 = load ptr, ptr %14, align 8, !tbaa !5
  %1023 = load ptr, ptr %15, align 8, !tbaa !5
  %1024 = load ptr, ptr %17, align 8, !tbaa !5
  %1025 = load i32, ptr %28, align 4, !tbaa !9
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds double, ptr %1024, i64 %1026
  %1028 = load ptr, ptr %18, align 8, !tbaa !5
  %1029 = load ptr, ptr %24, align 8, !tbaa !5
  %1030 = load i32, ptr %38, align 4, !tbaa !9
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds double, ptr %1029, i64 %1031
  %1033 = load ptr, ptr %24, align 8, !tbaa !5
  %1034 = load i32, ptr %56, align 4, !tbaa !9
  %1035 = sext i32 %1034 to i64
  %1036 = getelementptr inbounds double, ptr %1033, i64 %1035
  %1037 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dgeqrf_(ptr noundef %1022, ptr noundef %1023, ptr noundef %1027, ptr noundef %1028, ptr noundef %1032, ptr noundef %1036, ptr noundef %31, ptr noundef %1037)
  %1038 = load ptr, ptr %25, align 8, !tbaa !5
  %1039 = load i32, ptr %1038, align 4, !tbaa !9
  %1040 = load i32, ptr %56, align 4, !tbaa !9
  %1041 = sub nsw i32 %1039, %1040
  %1042 = add nsw i32 %1041, 1
  store i32 %1042, ptr %31, align 4, !tbaa !9
  %1043 = load ptr, ptr %14, align 8, !tbaa !5
  %1044 = load ptr, ptr %16, align 8, !tbaa !5
  %1045 = load ptr, ptr %15, align 8, !tbaa !5
  %1046 = load ptr, ptr %17, align 8, !tbaa !5
  %1047 = load i32, ptr %28, align 4, !tbaa !9
  %1048 = sext i32 %1047 to i64
  %1049 = getelementptr inbounds double, ptr %1046, i64 %1048
  %1050 = load ptr, ptr %18, align 8, !tbaa !5
  %1051 = load ptr, ptr %24, align 8, !tbaa !5
  %1052 = load i32, ptr %38, align 4, !tbaa !9
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds double, ptr %1051, i64 %1053
  %1055 = load ptr, ptr %19, align 8, !tbaa !5
  %1056 = load i32, ptr %30, align 4, !tbaa !9
  %1057 = sext i32 %1056 to i64
  %1058 = getelementptr inbounds double, ptr %1055, i64 %1057
  %1059 = load ptr, ptr %20, align 8, !tbaa !5
  %1060 = load ptr, ptr %24, align 8, !tbaa !5
  %1061 = load i32, ptr %56, align 4, !tbaa !9
  %1062 = sext i32 %1061 to i64
  %1063 = getelementptr inbounds double, ptr %1060, i64 %1062
  %1064 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dormqr_(ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %1043, ptr noundef %1044, ptr noundef %1045, ptr noundef %1049, ptr noundef %1050, ptr noundef %1054, ptr noundef %1058, ptr noundef %1059, ptr noundef %1063, ptr noundef %31, ptr noundef %1064)
  %1065 = load ptr, ptr %15, align 8, !tbaa !5
  %1066 = load i32, ptr %1065, align 4, !tbaa !9
  %1067 = icmp sgt i32 %1066, 1
  br i1 %1067, label %1068, label %1081

1068:                                             ; preds = %1010
  %1069 = load ptr, ptr %15, align 8, !tbaa !5
  %1070 = load i32, ptr %1069, align 4, !tbaa !9
  %1071 = sub nsw i32 %1070, 1
  store i32 %1071, ptr %31, align 4, !tbaa !9
  %1072 = load ptr, ptr %15, align 8, !tbaa !5
  %1073 = load i32, ptr %1072, align 4, !tbaa !9
  %1074 = sub nsw i32 %1073, 1
  store i32 %1074, ptr %32, align 4, !tbaa !9
  %1075 = load ptr, ptr %17, align 8, !tbaa !5
  %1076 = load i32, ptr %27, align 4, !tbaa !9
  %1077 = add nsw i32 %1076, 2
  %1078 = sext i32 %1077 to i64
  %1079 = getelementptr inbounds double, ptr %1075, i64 %1078
  %1080 = load ptr, ptr %18, align 8, !tbaa !5
  call void @dlaset_(ptr noundef @.str.2, ptr noundef %31, ptr noundef %32, ptr noundef @c_b46, ptr noundef @c_b46, ptr noundef %1079, ptr noundef %1080)
  br label %1081

1081:                                             ; preds = %1068, %1010
  br label %1082

1082:                                             ; preds = %1081, %1003
  store i32 1, ptr %58, align 4, !tbaa !9
  %1083 = load i32, ptr %58, align 4, !tbaa !9
  %1084 = load ptr, ptr %15, align 8, !tbaa !5
  %1085 = load i32, ptr %1084, align 4, !tbaa !9
  %1086 = add nsw i32 %1083, %1085
  store i32 %1086, ptr %54, align 4, !tbaa !9
  %1087 = load i32, ptr %54, align 4, !tbaa !9
  %1088 = load ptr, ptr %15, align 8, !tbaa !5
  %1089 = load i32, ptr %1088, align 4, !tbaa !9
  %1090 = add nsw i32 %1087, %1089
  store i32 %1090, ptr %53, align 4, !tbaa !9
  %1091 = load i32, ptr %53, align 4, !tbaa !9
  %1092 = load ptr, ptr %15, align 8, !tbaa !5
  %1093 = load i32, ptr %1092, align 4, !tbaa !9
  %1094 = add nsw i32 %1091, %1093
  store i32 %1094, ptr %56, align 4, !tbaa !9
  %1095 = load ptr, ptr %25, align 8, !tbaa !5
  %1096 = load i32, ptr %1095, align 4, !tbaa !9
  %1097 = load i32, ptr %56, align 4, !tbaa !9
  %1098 = sub nsw i32 %1096, %1097
  %1099 = add nsw i32 %1098, 1
  store i32 %1099, ptr %31, align 4, !tbaa !9
  %1100 = load ptr, ptr %15, align 8, !tbaa !5
  %1101 = load ptr, ptr %17, align 8, !tbaa !5
  %1102 = load i32, ptr %28, align 4, !tbaa !9
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds double, ptr %1101, i64 %1103
  %1105 = load ptr, ptr %18, align 8, !tbaa !5
  %1106 = load ptr, ptr %21, align 8, !tbaa !5
  %1107 = getelementptr inbounds double, ptr %1106, i64 1
  %1108 = load ptr, ptr %24, align 8, !tbaa !5
  %1109 = load i32, ptr %58, align 4, !tbaa !9
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds double, ptr %1108, i64 %1110
  %1112 = load ptr, ptr %24, align 8, !tbaa !5
  %1113 = load i32, ptr %54, align 4, !tbaa !9
  %1114 = sext i32 %1113 to i64
  %1115 = getelementptr inbounds double, ptr %1112, i64 %1114
  %1116 = load ptr, ptr %24, align 8, !tbaa !5
  %1117 = load i32, ptr %53, align 4, !tbaa !9
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds double, ptr %1116, i64 %1118
  %1120 = load ptr, ptr %24, align 8, !tbaa !5
  %1121 = load i32, ptr %56, align 4, !tbaa !9
  %1122 = sext i32 %1121 to i64
  %1123 = getelementptr inbounds double, ptr %1120, i64 %1122
  %1124 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dgebrd_(ptr noundef %60, ptr noundef %1100, ptr noundef %1104, ptr noundef %1105, ptr noundef %1107, ptr noundef %1111, ptr noundef %1115, ptr noundef %1119, ptr noundef %1123, ptr noundef %31, ptr noundef %1124)
  %1125 = load ptr, ptr %25, align 8, !tbaa !5
  %1126 = load i32, ptr %1125, align 4, !tbaa !9
  %1127 = load i32, ptr %56, align 4, !tbaa !9
  %1128 = sub nsw i32 %1126, %1127
  %1129 = add nsw i32 %1128, 1
  store i32 %1129, ptr %31, align 4, !tbaa !9
  %1130 = load ptr, ptr %16, align 8, !tbaa !5
  %1131 = load ptr, ptr %15, align 8, !tbaa !5
  %1132 = load ptr, ptr %17, align 8, !tbaa !5
  %1133 = load i32, ptr %28, align 4, !tbaa !9
  %1134 = sext i32 %1133 to i64
  %1135 = getelementptr inbounds double, ptr %1132, i64 %1134
  %1136 = load ptr, ptr %18, align 8, !tbaa !5
  %1137 = load ptr, ptr %24, align 8, !tbaa !5
  %1138 = load i32, ptr %54, align 4, !tbaa !9
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds double, ptr %1137, i64 %1139
  %1141 = load ptr, ptr %19, align 8, !tbaa !5
  %1142 = load i32, ptr %30, align 4, !tbaa !9
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds double, ptr %1141, i64 %1143
  %1145 = load ptr, ptr %20, align 8, !tbaa !5
  %1146 = load ptr, ptr %24, align 8, !tbaa !5
  %1147 = load i32, ptr %56, align 4, !tbaa !9
  %1148 = sext i32 %1147 to i64
  %1149 = getelementptr inbounds double, ptr %1146, i64 %1148
  %1150 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dormbr_(ptr noundef @.str.4, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %60, ptr noundef %1130, ptr noundef %1131, ptr noundef %1135, ptr noundef %1136, ptr noundef %1140, ptr noundef %1144, ptr noundef %1145, ptr noundef %1149, ptr noundef %31, ptr noundef %1150)
  %1151 = load ptr, ptr %25, align 8, !tbaa !5
  %1152 = load i32, ptr %1151, align 4, !tbaa !9
  %1153 = load i32, ptr %56, align 4, !tbaa !9
  %1154 = sub nsw i32 %1152, %1153
  %1155 = add nsw i32 %1154, 1
  store i32 %1155, ptr %31, align 4, !tbaa !9
  %1156 = load ptr, ptr %15, align 8, !tbaa !5
  %1157 = load ptr, ptr %15, align 8, !tbaa !5
  %1158 = load ptr, ptr %15, align 8, !tbaa !5
  %1159 = load ptr, ptr %17, align 8, !tbaa !5
  %1160 = load i32, ptr %28, align 4, !tbaa !9
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds double, ptr %1159, i64 %1161
  %1163 = load ptr, ptr %18, align 8, !tbaa !5
  %1164 = load ptr, ptr %24, align 8, !tbaa !5
  %1165 = load i32, ptr %53, align 4, !tbaa !9
  %1166 = sext i32 %1165 to i64
  %1167 = getelementptr inbounds double, ptr %1164, i64 %1166
  %1168 = load ptr, ptr %24, align 8, !tbaa !5
  %1169 = load i32, ptr %56, align 4, !tbaa !9
  %1170 = sext i32 %1169 to i64
  %1171 = getelementptr inbounds double, ptr %1168, i64 %1170
  %1172 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dorgbr_(ptr noundef @.str.5, ptr noundef %1156, ptr noundef %1157, ptr noundef %1158, ptr noundef %1162, ptr noundef %1163, ptr noundef %1167, ptr noundef %1171, ptr noundef %31, ptr noundef %1172)
  %1173 = load i32, ptr %58, align 4, !tbaa !9
  %1174 = load ptr, ptr %15, align 8, !tbaa !5
  %1175 = load i32, ptr %1174, align 4, !tbaa !9
  %1176 = add nsw i32 %1173, %1175
  store i32 %1176, ptr %56, align 4, !tbaa !9
  %1177 = load ptr, ptr %15, align 8, !tbaa !5
  %1178 = load ptr, ptr %15, align 8, !tbaa !5
  %1179 = load ptr, ptr %16, align 8, !tbaa !5
  %1180 = load ptr, ptr %21, align 8, !tbaa !5
  %1181 = getelementptr inbounds double, ptr %1180, i64 1
  %1182 = load ptr, ptr %24, align 8, !tbaa !5
  %1183 = load i32, ptr %58, align 4, !tbaa !9
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds double, ptr %1182, i64 %1184
  %1186 = load ptr, ptr %17, align 8, !tbaa !5
  %1187 = load i32, ptr %28, align 4, !tbaa !9
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds double, ptr %1186, i64 %1188
  %1190 = load ptr, ptr %18, align 8, !tbaa !5
  %1191 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %1192 = load ptr, ptr %19, align 8, !tbaa !5
  %1193 = load i32, ptr %30, align 4, !tbaa !9
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds double, ptr %1192, i64 %1194
  %1196 = load ptr, ptr %20, align 8, !tbaa !5
  %1197 = load ptr, ptr %24, align 8, !tbaa !5
  %1198 = load i32, ptr %56, align 4, !tbaa !9
  %1199 = sext i32 %1198 to i64
  %1200 = getelementptr inbounds double, ptr %1197, i64 %1199
  %1201 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dbdsqr_(ptr noundef @.str.10, ptr noundef %1177, ptr noundef %1178, ptr noundef @c__0, ptr noundef %1179, ptr noundef %1181, ptr noundef %1185, ptr noundef %1189, ptr noundef %1190, ptr noundef %1191, ptr noundef @c__1, ptr noundef %1195, ptr noundef %1196, ptr noundef %1200, ptr noundef %1201)
  %1202 = load ptr, ptr %26, align 8, !tbaa !5
  %1203 = load i32, ptr %1202, align 4, !tbaa !9
  %1204 = icmp ne i32 %1203, 0
  br i1 %1204, label %1205, label %1206

1205:                                             ; preds = %1082
  br label %2440

1206:                                             ; preds = %1082
  %1207 = load ptr, ptr %22, align 8, !tbaa !5
  %1208 = load double, ptr %1207, align 8, !tbaa !11
  %1209 = load ptr, ptr %21, align 8, !tbaa !5
  %1210 = getelementptr inbounds double, ptr %1209, i64 1
  %1211 = load double, ptr %1210, align 8, !tbaa !11
  %1212 = fmul double %1208, %1211
  store double %1212, ptr %35, align 8, !tbaa !11
  %1213 = load double, ptr %35, align 8, !tbaa !11
  %1214 = load double, ptr %50, align 8, !tbaa !11
  %1215 = fcmp oge double %1213, %1214
  br i1 %1215, label %1216, label %1218

1216:                                             ; preds = %1206
  %1217 = load double, ptr %35, align 8, !tbaa !11
  br label %1220

1218:                                             ; preds = %1206
  %1219 = load double, ptr %50, align 8, !tbaa !11
  br label %1220

1220:                                             ; preds = %1218, %1216
  %1221 = phi double [ %1217, %1216 ], [ %1219, %1218 ]
  store double %1221, ptr %70, align 8, !tbaa !11
  %1222 = load ptr, ptr %22, align 8, !tbaa !5
  %1223 = load double, ptr %1222, align 8, !tbaa !11
  %1224 = fcmp olt double %1223, 0.000000e+00
  br i1 %1224, label %1225, label %1240

1225:                                             ; preds = %1220
  %1226 = load double, ptr %69, align 8, !tbaa !11
  %1227 = load ptr, ptr %21, align 8, !tbaa !5
  %1228 = getelementptr inbounds double, ptr %1227, i64 1
  %1229 = load double, ptr %1228, align 8, !tbaa !11
  %1230 = fmul double %1226, %1229
  store double %1230, ptr %35, align 8, !tbaa !11
  %1231 = load double, ptr %35, align 8, !tbaa !11
  %1232 = load double, ptr %50, align 8, !tbaa !11
  %1233 = fcmp oge double %1231, %1232
  br i1 %1233, label %1234, label %1236

1234:                                             ; preds = %1225
  %1235 = load double, ptr %35, align 8, !tbaa !11
  br label %1238

1236:                                             ; preds = %1225
  %1237 = load double, ptr %50, align 8, !tbaa !11
  br label %1238

1238:                                             ; preds = %1236, %1234
  %1239 = phi double [ %1235, %1234 ], [ %1237, %1236 ]
  store double %1239, ptr %70, align 8, !tbaa !11
  br label %1240

1240:                                             ; preds = %1238, %1220
  %1241 = load ptr, ptr %23, align 8, !tbaa !5
  store i32 0, ptr %1241, align 4, !tbaa !9
  %1242 = load ptr, ptr %15, align 8, !tbaa !5
  %1243 = load i32, ptr %1242, align 4, !tbaa !9
  store i32 %1243, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %44, align 4, !tbaa !9
  br label %1244

1244:                                             ; preds = %1282, %1240
  %1245 = load i32, ptr %44, align 4, !tbaa !9
  %1246 = load i32, ptr %31, align 4, !tbaa !9
  %1247 = icmp sle i32 %1245, %1246
  br i1 %1247, label %1248, label %1285

1248:                                             ; preds = %1244
  %1249 = load ptr, ptr %21, align 8, !tbaa !5
  %1250 = load i32, ptr %44, align 4, !tbaa !9
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr inbounds double, ptr %1249, i64 %1251
  %1253 = load double, ptr %1252, align 8, !tbaa !11
  %1254 = load double, ptr %70, align 8, !tbaa !11
  %1255 = fcmp ogt double %1253, %1254
  br i1 %1255, label %1256, label %1272

1256:                                             ; preds = %1248
  %1257 = load ptr, ptr %16, align 8, !tbaa !5
  %1258 = load ptr, ptr %21, align 8, !tbaa !5
  %1259 = load i32, ptr %44, align 4, !tbaa !9
  %1260 = sext i32 %1259 to i64
  %1261 = getelementptr inbounds double, ptr %1258, i64 %1260
  %1262 = load ptr, ptr %19, align 8, !tbaa !5
  %1263 = load i32, ptr %44, align 4, !tbaa !9
  %1264 = load i32, ptr %29, align 4, !tbaa !9
  %1265 = add nsw i32 %1263, %1264
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds double, ptr %1262, i64 %1266
  %1268 = load ptr, ptr %20, align 8, !tbaa !5
  call void @drscl_(ptr noundef %1257, ptr noundef %1261, ptr noundef %1267, ptr noundef %1268)
  %1269 = load ptr, ptr %23, align 8, !tbaa !5
  %1270 = load i32, ptr %1269, align 4, !tbaa !9
  %1271 = add nsw i32 %1270, 1
  store i32 %1271, ptr %1269, align 4, !tbaa !9
  br label %1281

1272:                                             ; preds = %1248
  %1273 = load ptr, ptr %16, align 8, !tbaa !5
  %1274 = load ptr, ptr %19, align 8, !tbaa !5
  %1275 = load i32, ptr %44, align 4, !tbaa !9
  %1276 = load i32, ptr %29, align 4, !tbaa !9
  %1277 = add nsw i32 %1275, %1276
  %1278 = sext i32 %1277 to i64
  %1279 = getelementptr inbounds double, ptr %1274, i64 %1278
  %1280 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlaset_(ptr noundef @.str.9, ptr noundef @c__1, ptr noundef %1273, ptr noundef @c_b46, ptr noundef @c_b46, ptr noundef %1279, ptr noundef %1280)
  br label %1281

1281:                                             ; preds = %1272, %1256
  br label %1282

1282:                                             ; preds = %1281
  %1283 = load i32, ptr %44, align 4, !tbaa !9
  %1284 = add nsw i32 %1283, 1
  store i32 %1284, ptr %44, align 4, !tbaa !9
  br label %1244, !llvm.loop !13

1285:                                             ; preds = %1244
  %1286 = load ptr, ptr %25, align 8, !tbaa !5
  %1287 = load i32, ptr %1286, align 4, !tbaa !9
  %1288 = load ptr, ptr %20, align 8, !tbaa !5
  %1289 = load i32, ptr %1288, align 4, !tbaa !9
  %1290 = load ptr, ptr %16, align 8, !tbaa !5
  %1291 = load i32, ptr %1290, align 4, !tbaa !9
  %1292 = mul nsw i32 %1289, %1291
  %1293 = icmp sge i32 %1287, %1292
  br i1 %1293, label %1294, label %1325

1294:                                             ; preds = %1285
  %1295 = load ptr, ptr %16, align 8, !tbaa !5
  %1296 = load i32, ptr %1295, align 4, !tbaa !9
  %1297 = icmp sgt i32 %1296, 1
  br i1 %1297, label %1298, label %1325

1298:                                             ; preds = %1294
  %1299 = load ptr, ptr %15, align 8, !tbaa !5
  %1300 = load ptr, ptr %16, align 8, !tbaa !5
  %1301 = load ptr, ptr %15, align 8, !tbaa !5
  %1302 = load ptr, ptr %17, align 8, !tbaa !5
  %1303 = load i32, ptr %28, align 4, !tbaa !9
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds double, ptr %1302, i64 %1304
  %1306 = load ptr, ptr %18, align 8, !tbaa !5
  %1307 = load ptr, ptr %19, align 8, !tbaa !5
  %1308 = load i32, ptr %30, align 4, !tbaa !9
  %1309 = sext i32 %1308 to i64
  %1310 = getelementptr inbounds double, ptr %1307, i64 %1309
  %1311 = load ptr, ptr %20, align 8, !tbaa !5
  %1312 = load ptr, ptr %24, align 8, !tbaa !5
  %1313 = getelementptr inbounds double, ptr %1312, i64 1
  %1314 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.3, ptr noundef @.str.11, ptr noundef %1299, ptr noundef %1300, ptr noundef %1301, ptr noundef @c_b79, ptr noundef %1305, ptr noundef %1306, ptr noundef %1310, ptr noundef %1311, ptr noundef @c_b46, ptr noundef %1313, ptr noundef %1314)
  %1315 = load ptr, ptr %15, align 8, !tbaa !5
  %1316 = load ptr, ptr %16, align 8, !tbaa !5
  %1317 = load ptr, ptr %24, align 8, !tbaa !5
  %1318 = getelementptr inbounds double, ptr %1317, i64 1
  %1319 = load ptr, ptr %20, align 8, !tbaa !5
  %1320 = load ptr, ptr %19, align 8, !tbaa !5
  %1321 = load i32, ptr %30, align 4, !tbaa !9
  %1322 = sext i32 %1321 to i64
  %1323 = getelementptr inbounds double, ptr %1320, i64 %1322
  %1324 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlacpy_(ptr noundef @.str.8, ptr noundef %1315, ptr noundef %1316, ptr noundef %1318, ptr noundef %1319, ptr noundef %1323, ptr noundef %1324)
  br label %1426

1325:                                             ; preds = %1294, %1285
  %1326 = load ptr, ptr %16, align 8, !tbaa !5
  %1327 = load i32, ptr %1326, align 4, !tbaa !9
  %1328 = icmp sgt i32 %1327, 1
  br i1 %1328, label %1329, label %1404

1329:                                             ; preds = %1325
  %1330 = load ptr, ptr %25, align 8, !tbaa !5
  %1331 = load i32, ptr %1330, align 4, !tbaa !9
  %1332 = load ptr, ptr %15, align 8, !tbaa !5
  %1333 = load i32, ptr %1332, align 4, !tbaa !9
  %1334 = sdiv i32 %1331, %1333
  store i32 %1334, ptr %49, align 4, !tbaa !9
  %1335 = load ptr, ptr %16, align 8, !tbaa !5
  %1336 = load i32, ptr %1335, align 4, !tbaa !9
  store i32 %1336, ptr %31, align 4, !tbaa !9
  %1337 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %1337, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %44, align 4, !tbaa !9
  br label %1338

1338:                                             ; preds = %1399, %1329
  %1339 = load i32, ptr %32, align 4, !tbaa !9
  %1340 = icmp slt i32 %1339, 0
  br i1 %1340, label %1341, label %1346

1341:                                             ; preds = %1338
  %1342 = load i32, ptr %44, align 4, !tbaa !9
  %1343 = load i32, ptr %31, align 4, !tbaa !9
  %1344 = icmp sge i32 %1342, %1343
  %1345 = zext i1 %1344 to i32
  br label %1351

1346:                                             ; preds = %1338
  %1347 = load i32, ptr %44, align 4, !tbaa !9
  %1348 = load i32, ptr %31, align 4, !tbaa !9
  %1349 = icmp sle i32 %1347, %1348
  %1350 = zext i1 %1349 to i32
  br label %1351

1351:                                             ; preds = %1346, %1341
  %1352 = phi i32 [ %1345, %1341 ], [ %1350, %1346 ]
  %1353 = icmp ne i32 %1352, 0
  br i1 %1353, label %1354, label %1403

1354:                                             ; preds = %1351
  %1355 = load ptr, ptr %16, align 8, !tbaa !5
  %1356 = load i32, ptr %1355, align 4, !tbaa !9
  %1357 = load i32, ptr %44, align 4, !tbaa !9
  %1358 = sub nsw i32 %1356, %1357
  %1359 = add nsw i32 %1358, 1
  store i32 %1359, ptr %33, align 4, !tbaa !9
  %1360 = load i32, ptr %33, align 4, !tbaa !9
  %1361 = load i32, ptr %49, align 4, !tbaa !9
  %1362 = icmp sle i32 %1360, %1361
  br i1 %1362, label %1363, label %1365

1363:                                             ; preds = %1354
  %1364 = load i32, ptr %33, align 4, !tbaa !9
  br label %1367

1365:                                             ; preds = %1354
  %1366 = load i32, ptr %49, align 4, !tbaa !9
  br label %1367

1367:                                             ; preds = %1365, %1363
  %1368 = phi i32 [ %1364, %1363 ], [ %1366, %1365 ]
  store i32 %1368, ptr %57, align 4, !tbaa !9
  %1369 = load ptr, ptr %15, align 8, !tbaa !5
  %1370 = load ptr, ptr %15, align 8, !tbaa !5
  %1371 = load ptr, ptr %17, align 8, !tbaa !5
  %1372 = load i32, ptr %28, align 4, !tbaa !9
  %1373 = sext i32 %1372 to i64
  %1374 = getelementptr inbounds double, ptr %1371, i64 %1373
  %1375 = load ptr, ptr %18, align 8, !tbaa !5
  %1376 = load ptr, ptr %19, align 8, !tbaa !5
  %1377 = load i32, ptr %44, align 4, !tbaa !9
  %1378 = load i32, ptr %29, align 4, !tbaa !9
  %1379 = mul nsw i32 %1377, %1378
  %1380 = add nsw i32 %1379, 1
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds double, ptr %1376, i64 %1381
  %1383 = load ptr, ptr %20, align 8, !tbaa !5
  %1384 = load ptr, ptr %24, align 8, !tbaa !5
  %1385 = getelementptr inbounds double, ptr %1384, i64 1
  %1386 = load ptr, ptr %15, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.3, ptr noundef @.str.11, ptr noundef %1369, ptr noundef %57, ptr noundef %1370, ptr noundef @c_b79, ptr noundef %1374, ptr noundef %1375, ptr noundef %1382, ptr noundef %1383, ptr noundef @c_b46, ptr noundef %1385, ptr noundef %1386)
  %1387 = load ptr, ptr %15, align 8, !tbaa !5
  %1388 = load ptr, ptr %24, align 8, !tbaa !5
  %1389 = getelementptr inbounds double, ptr %1388, i64 1
  %1390 = load ptr, ptr %15, align 8, !tbaa !5
  %1391 = load ptr, ptr %19, align 8, !tbaa !5
  %1392 = load i32, ptr %44, align 4, !tbaa !9
  %1393 = load i32, ptr %29, align 4, !tbaa !9
  %1394 = mul nsw i32 %1392, %1393
  %1395 = add nsw i32 %1394, 1
  %1396 = sext i32 %1395 to i64
  %1397 = getelementptr inbounds double, ptr %1391, i64 %1396
  %1398 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlacpy_(ptr noundef @.str.8, ptr noundef %1387, ptr noundef %57, ptr noundef %1389, ptr noundef %1390, ptr noundef %1397, ptr noundef %1398)
  br label %1399

1399:                                             ; preds = %1367
  %1400 = load i32, ptr %32, align 4, !tbaa !9
  %1401 = load i32, ptr %44, align 4, !tbaa !9
  %1402 = add nsw i32 %1401, %1400
  store i32 %1402, ptr %44, align 4, !tbaa !9
  br label %1338, !llvm.loop !15

1403:                                             ; preds = %1351
  br label %1425

1404:                                             ; preds = %1325
  %1405 = load ptr, ptr %15, align 8, !tbaa !5
  %1406 = load ptr, ptr %15, align 8, !tbaa !5
  %1407 = load ptr, ptr %17, align 8, !tbaa !5
  %1408 = load i32, ptr %28, align 4, !tbaa !9
  %1409 = sext i32 %1408 to i64
  %1410 = getelementptr inbounds double, ptr %1407, i64 %1409
  %1411 = load ptr, ptr %18, align 8, !tbaa !5
  %1412 = load ptr, ptr %19, align 8, !tbaa !5
  %1413 = load i32, ptr %30, align 4, !tbaa !9
  %1414 = sext i32 %1413 to i64
  %1415 = getelementptr inbounds double, ptr %1412, i64 %1414
  %1416 = load ptr, ptr %24, align 8, !tbaa !5
  %1417 = getelementptr inbounds double, ptr %1416, i64 1
  call void @dgemv_(ptr noundef @.str.3, ptr noundef %1405, ptr noundef %1406, ptr noundef @c_b79, ptr noundef %1410, ptr noundef %1411, ptr noundef %1415, ptr noundef @c__1, ptr noundef @c_b46, ptr noundef %1417, ptr noundef @c__1)
  %1418 = load ptr, ptr %15, align 8, !tbaa !5
  %1419 = load ptr, ptr %24, align 8, !tbaa !5
  %1420 = getelementptr inbounds double, ptr %1419, i64 1
  %1421 = load ptr, ptr %19, align 8, !tbaa !5
  %1422 = load i32, ptr %30, align 4, !tbaa !9
  %1423 = sext i32 %1422 to i64
  %1424 = getelementptr inbounds double, ptr %1421, i64 %1423
  call void @dcopy_(ptr noundef %1418, ptr noundef %1420, ptr noundef @c__1, ptr noundef %1424, ptr noundef @c__1)
  br label %1425

1425:                                             ; preds = %1404, %1403
  br label %1426

1426:                                             ; preds = %1425, %1298
  br label %2383

1427:                                             ; preds = %997
  %1428 = load ptr, ptr %14, align 8, !tbaa !5
  %1429 = load i32, ptr %1428, align 4, !tbaa !9
  store i32 %1429, ptr %32, align 4, !tbaa !9
  %1430 = load ptr, ptr %14, align 8, !tbaa !5
  %1431 = load i32, ptr %1430, align 4, !tbaa !9
  %1432 = shl i32 %1431, 1
  %1433 = sub nsw i32 %1432, 4
  store i32 %1433, ptr %31, align 4, !tbaa !9
  %1434 = load i32, ptr %32, align 4, !tbaa !9
  %1435 = load i32, ptr %31, align 4, !tbaa !9
  %1436 = icmp sge i32 %1434, %1435
  br i1 %1436, label %1437, label %1439

1437:                                             ; preds = %1427
  %1438 = load i32, ptr %32, align 4, !tbaa !9
  br label %1441

1439:                                             ; preds = %1427
  %1440 = load i32, ptr %31, align 4, !tbaa !9
  br label %1441

1441:                                             ; preds = %1439, %1437
  %1442 = phi i32 [ %1438, %1437 ], [ %1440, %1439 ]
  store i32 %1442, ptr %32, align 4, !tbaa !9
  %1443 = load i32, ptr %32, align 4, !tbaa !9
  %1444 = load ptr, ptr %16, align 8, !tbaa !5
  %1445 = load i32, ptr %1444, align 4, !tbaa !9
  %1446 = icmp sge i32 %1443, %1445
  br i1 %1446, label %1447, label %1449

1447:                                             ; preds = %1441
  %1448 = load i32, ptr %32, align 4, !tbaa !9
  br label %1452

1449:                                             ; preds = %1441
  %1450 = load ptr, ptr %16, align 8, !tbaa !5
  %1451 = load i32, ptr %1450, align 4, !tbaa !9
  br label %1452

1452:                                             ; preds = %1449, %1447
  %1453 = phi i32 [ %1448, %1447 ], [ %1451, %1449 ]
  store i32 %1453, ptr %32, align 4, !tbaa !9
  %1454 = load ptr, ptr %15, align 8, !tbaa !5
  %1455 = load i32, ptr %1454, align 4, !tbaa !9
  %1456 = load ptr, ptr %14, align 8, !tbaa !5
  %1457 = load i32, ptr %1456, align 4, !tbaa !9
  %1458 = mul nsw i32 %1457, 3
  %1459 = sub nsw i32 %1455, %1458
  store i32 %1459, ptr %31, align 4, !tbaa !9
  %1460 = load ptr, ptr %15, align 8, !tbaa !5
  %1461 = load i32, ptr %1460, align 4, !tbaa !9
  %1462 = load i32, ptr %55, align 4, !tbaa !9
  %1463 = icmp sge i32 %1461, %1462
  br i1 %1463, label %1464, label %2035

1464:                                             ; preds = %1452
  %1465 = load ptr, ptr %25, align 8, !tbaa !5
  %1466 = load i32, ptr %1465, align 4, !tbaa !9
  %1467 = load ptr, ptr %14, align 8, !tbaa !5
  %1468 = load i32, ptr %1467, align 4, !tbaa !9
  %1469 = shl i32 %1468, 2
  %1470 = load ptr, ptr %14, align 8, !tbaa !5
  %1471 = load i32, ptr %1470, align 4, !tbaa !9
  %1472 = load ptr, ptr %14, align 8, !tbaa !5
  %1473 = load i32, ptr %1472, align 4, !tbaa !9
  %1474 = mul nsw i32 %1471, %1473
  %1475 = add nsw i32 %1469, %1474
  %1476 = load i32, ptr %32, align 4, !tbaa !9
  %1477 = load i32, ptr %31, align 4, !tbaa !9
  %1478 = icmp sge i32 %1476, %1477
  br i1 %1478, label %1479, label %1481

1479:                                             ; preds = %1464
  %1480 = load i32, ptr %32, align 4, !tbaa !9
  br label %1483

1481:                                             ; preds = %1464
  %1482 = load i32, ptr %31, align 4, !tbaa !9
  br label %1483

1483:                                             ; preds = %1481, %1479
  %1484 = phi i32 [ %1480, %1479 ], [ %1482, %1481 ]
  %1485 = add nsw i32 %1475, %1484
  %1486 = icmp sge i32 %1466, %1485
  br i1 %1486, label %1487, label %2035

1487:                                             ; preds = %1483
  %1488 = load ptr, ptr %14, align 8, !tbaa !5
  %1489 = load i32, ptr %1488, align 4, !tbaa !9
  store i32 %1489, ptr %63, align 4, !tbaa !9
  %1490 = load ptr, ptr %14, align 8, !tbaa !5
  %1491 = load i32, ptr %1490, align 4, !tbaa !9
  store i32 %1491, ptr %33, align 4, !tbaa !9
  %1492 = load ptr, ptr %14, align 8, !tbaa !5
  %1493 = load i32, ptr %1492, align 4, !tbaa !9
  %1494 = shl i32 %1493, 1
  %1495 = sub nsw i32 %1494, 4
  store i32 %1495, ptr %34, align 4, !tbaa !9
  %1496 = load i32, ptr %33, align 4, !tbaa !9
  %1497 = load i32, ptr %34, align 4, !tbaa !9
  %1498 = icmp sge i32 %1496, %1497
  br i1 %1498, label %1499, label %1501

1499:                                             ; preds = %1487
  %1500 = load i32, ptr %33, align 4, !tbaa !9
  br label %1503

1501:                                             ; preds = %1487
  %1502 = load i32, ptr %34, align 4, !tbaa !9
  br label %1503

1503:                                             ; preds = %1501, %1499
  %1504 = phi i32 [ %1500, %1499 ], [ %1502, %1501 ]
  store i32 %1504, ptr %33, align 4, !tbaa !9
  %1505 = load i32, ptr %33, align 4, !tbaa !9
  %1506 = load ptr, ptr %16, align 8, !tbaa !5
  %1507 = load i32, ptr %1506, align 4, !tbaa !9
  %1508 = icmp sge i32 %1505, %1507
  br i1 %1508, label %1509, label %1511

1509:                                             ; preds = %1503
  %1510 = load i32, ptr %33, align 4, !tbaa !9
  br label %1514

1511:                                             ; preds = %1503
  %1512 = load ptr, ptr %16, align 8, !tbaa !5
  %1513 = load i32, ptr %1512, align 4, !tbaa !9
  br label %1514

1514:                                             ; preds = %1511, %1509
  %1515 = phi i32 [ %1510, %1509 ], [ %1513, %1511 ]
  store i32 %1515, ptr %33, align 4, !tbaa !9
  %1516 = load ptr, ptr %15, align 8, !tbaa !5
  %1517 = load i32, ptr %1516, align 4, !tbaa !9
  %1518 = load ptr, ptr %14, align 8, !tbaa !5
  %1519 = load i32, ptr %1518, align 4, !tbaa !9
  %1520 = mul nsw i32 %1519, 3
  %1521 = sub nsw i32 %1517, %1520
  store i32 %1521, ptr %34, align 4, !tbaa !9
  %1522 = load ptr, ptr %14, align 8, !tbaa !5
  %1523 = load i32, ptr %1522, align 4, !tbaa !9
  %1524 = shl i32 %1523, 2
  %1525 = load ptr, ptr %14, align 8, !tbaa !5
  %1526 = load i32, ptr %1525, align 4, !tbaa !9
  %1527 = load ptr, ptr %18, align 8, !tbaa !5
  %1528 = load i32, ptr %1527, align 4, !tbaa !9
  %1529 = mul nsw i32 %1526, %1528
  %1530 = add nsw i32 %1524, %1529
  %1531 = load i32, ptr %33, align 4, !tbaa !9
  %1532 = load i32, ptr %34, align 4, !tbaa !9
  %1533 = icmp sge i32 %1531, %1532
  br i1 %1533, label %1534, label %1536

1534:                                             ; preds = %1514
  %1535 = load i32, ptr %33, align 4, !tbaa !9
  br label %1538

1536:                                             ; preds = %1514
  %1537 = load i32, ptr %34, align 4, !tbaa !9
  br label %1538

1538:                                             ; preds = %1536, %1534
  %1539 = phi i32 [ %1535, %1534 ], [ %1537, %1536 ]
  %1540 = add nsw i32 %1530, %1539
  store i32 %1540, ptr %32, align 4, !tbaa !9
  %1541 = load ptr, ptr %14, align 8, !tbaa !5
  %1542 = load i32, ptr %1541, align 4, !tbaa !9
  %1543 = load ptr, ptr %18, align 8, !tbaa !5
  %1544 = load i32, ptr %1543, align 4, !tbaa !9
  %1545 = mul nsw i32 %1542, %1544
  %1546 = load ptr, ptr %14, align 8, !tbaa !5
  %1547 = load i32, ptr %1546, align 4, !tbaa !9
  %1548 = add nsw i32 %1545, %1547
  %1549 = load ptr, ptr %14, align 8, !tbaa !5
  %1550 = load i32, ptr %1549, align 4, !tbaa !9
  %1551 = load ptr, ptr %16, align 8, !tbaa !5
  %1552 = load i32, ptr %1551, align 4, !tbaa !9
  %1553 = mul nsw i32 %1550, %1552
  %1554 = add nsw i32 %1548, %1553
  store i32 %1554, ptr %31, align 4, !tbaa !9
  %1555 = load ptr, ptr %25, align 8, !tbaa !5
  %1556 = load i32, ptr %1555, align 4, !tbaa !9
  %1557 = load i32, ptr %32, align 4, !tbaa !9
  %1558 = load i32, ptr %31, align 4, !tbaa !9
  %1559 = icmp sge i32 %1557, %1558
  br i1 %1559, label %1560, label %1562

1560:                                             ; preds = %1538
  %1561 = load i32, ptr %32, align 4, !tbaa !9
  br label %1564

1562:                                             ; preds = %1538
  %1563 = load i32, ptr %31, align 4, !tbaa !9
  br label %1564

1564:                                             ; preds = %1562, %1560
  %1565 = phi i32 [ %1561, %1560 ], [ %1563, %1562 ]
  %1566 = icmp sge i32 %1556, %1565
  br i1 %1566, label %1567, label %1570

1567:                                             ; preds = %1564
  %1568 = load ptr, ptr %18, align 8, !tbaa !5
  %1569 = load i32, ptr %1568, align 4, !tbaa !9
  store i32 %1569, ptr %63, align 4, !tbaa !9
  br label %1570

1570:                                             ; preds = %1567, %1564
  store i32 1, ptr %38, align 4, !tbaa !9
  %1571 = load ptr, ptr %14, align 8, !tbaa !5
  %1572 = load i32, ptr %1571, align 4, !tbaa !9
  %1573 = add nsw i32 %1572, 1
  store i32 %1573, ptr %56, align 4, !tbaa !9
  %1574 = load ptr, ptr %25, align 8, !tbaa !5
  %1575 = load i32, ptr %1574, align 4, !tbaa !9
  %1576 = load i32, ptr %56, align 4, !tbaa !9
  %1577 = sub nsw i32 %1575, %1576
  %1578 = add nsw i32 %1577, 1
  store i32 %1578, ptr %32, align 4, !tbaa !9
  %1579 = load ptr, ptr %14, align 8, !tbaa !5
  %1580 = load ptr, ptr %15, align 8, !tbaa !5
  %1581 = load ptr, ptr %17, align 8, !tbaa !5
  %1582 = load i32, ptr %28, align 4, !tbaa !9
  %1583 = sext i32 %1582 to i64
  %1584 = getelementptr inbounds double, ptr %1581, i64 %1583
  %1585 = load ptr, ptr %18, align 8, !tbaa !5
  %1586 = load ptr, ptr %24, align 8, !tbaa !5
  %1587 = load i32, ptr %38, align 4, !tbaa !9
  %1588 = sext i32 %1587 to i64
  %1589 = getelementptr inbounds double, ptr %1586, i64 %1588
  %1590 = load ptr, ptr %24, align 8, !tbaa !5
  %1591 = load i32, ptr %56, align 4, !tbaa !9
  %1592 = sext i32 %1591 to i64
  %1593 = getelementptr inbounds double, ptr %1590, i64 %1592
  %1594 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dgelqf_(ptr noundef %1579, ptr noundef %1580, ptr noundef %1584, ptr noundef %1585, ptr noundef %1589, ptr noundef %1593, ptr noundef %32, ptr noundef %1594)
  %1595 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %1595, ptr %59, align 4, !tbaa !9
  %1596 = load ptr, ptr %14, align 8, !tbaa !5
  %1597 = load ptr, ptr %14, align 8, !tbaa !5
  %1598 = load ptr, ptr %17, align 8, !tbaa !5
  %1599 = load i32, ptr %28, align 4, !tbaa !9
  %1600 = sext i32 %1599 to i64
  %1601 = getelementptr inbounds double, ptr %1598, i64 %1600
  %1602 = load ptr, ptr %18, align 8, !tbaa !5
  %1603 = load ptr, ptr %24, align 8, !tbaa !5
  %1604 = load i32, ptr %59, align 4, !tbaa !9
  %1605 = sext i32 %1604 to i64
  %1606 = getelementptr inbounds double, ptr %1603, i64 %1605
  call void @dlacpy_(ptr noundef @.str.2, ptr noundef %1596, ptr noundef %1597, ptr noundef %1601, ptr noundef %1602, ptr noundef %1606, ptr noundef %63)
  %1607 = load ptr, ptr %14, align 8, !tbaa !5
  %1608 = load i32, ptr %1607, align 4, !tbaa !9
  %1609 = sub nsw i32 %1608, 1
  store i32 %1609, ptr %32, align 4, !tbaa !9
  %1610 = load ptr, ptr %14, align 8, !tbaa !5
  %1611 = load i32, ptr %1610, align 4, !tbaa !9
  %1612 = sub nsw i32 %1611, 1
  store i32 %1612, ptr %31, align 4, !tbaa !9
  %1613 = load ptr, ptr %24, align 8, !tbaa !5
  %1614 = load i32, ptr %59, align 4, !tbaa !9
  %1615 = load i32, ptr %63, align 4, !tbaa !9
  %1616 = add nsw i32 %1614, %1615
  %1617 = sext i32 %1616 to i64
  %1618 = getelementptr inbounds double, ptr %1613, i64 %1617
  call void @dlaset_(ptr noundef @.str.10, ptr noundef %32, ptr noundef %31, ptr noundef @c_b46, ptr noundef @c_b46, ptr noundef %1618, ptr noundef %63)
  %1619 = load i32, ptr %59, align 4, !tbaa !9
  %1620 = load i32, ptr %63, align 4, !tbaa !9
  %1621 = load ptr, ptr %14, align 8, !tbaa !5
  %1622 = load i32, ptr %1621, align 4, !tbaa !9
  %1623 = mul nsw i32 %1620, %1622
  %1624 = add nsw i32 %1619, %1623
  store i32 %1624, ptr %58, align 4, !tbaa !9
  %1625 = load i32, ptr %58, align 4, !tbaa !9
  %1626 = load ptr, ptr %14, align 8, !tbaa !5
  %1627 = load i32, ptr %1626, align 4, !tbaa !9
  %1628 = add nsw i32 %1625, %1627
  store i32 %1628, ptr %54, align 4, !tbaa !9
  %1629 = load i32, ptr %54, align 4, !tbaa !9
  %1630 = load ptr, ptr %14, align 8, !tbaa !5
  %1631 = load i32, ptr %1630, align 4, !tbaa !9
  %1632 = add nsw i32 %1629, %1631
  store i32 %1632, ptr %53, align 4, !tbaa !9
  %1633 = load i32, ptr %53, align 4, !tbaa !9
  %1634 = load ptr, ptr %14, align 8, !tbaa !5
  %1635 = load i32, ptr %1634, align 4, !tbaa !9
  %1636 = add nsw i32 %1633, %1635
  store i32 %1636, ptr %56, align 4, !tbaa !9
  %1637 = load ptr, ptr %25, align 8, !tbaa !5
  %1638 = load i32, ptr %1637, align 4, !tbaa !9
  %1639 = load i32, ptr %56, align 4, !tbaa !9
  %1640 = sub nsw i32 %1638, %1639
  %1641 = add nsw i32 %1640, 1
  store i32 %1641, ptr %32, align 4, !tbaa !9
  %1642 = load ptr, ptr %14, align 8, !tbaa !5
  %1643 = load ptr, ptr %14, align 8, !tbaa !5
  %1644 = load ptr, ptr %24, align 8, !tbaa !5
  %1645 = load i32, ptr %59, align 4, !tbaa !9
  %1646 = sext i32 %1645 to i64
  %1647 = getelementptr inbounds double, ptr %1644, i64 %1646
  %1648 = load ptr, ptr %21, align 8, !tbaa !5
  %1649 = getelementptr inbounds double, ptr %1648, i64 1
  %1650 = load ptr, ptr %24, align 8, !tbaa !5
  %1651 = load i32, ptr %58, align 4, !tbaa !9
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds double, ptr %1650, i64 %1652
  %1654 = load ptr, ptr %24, align 8, !tbaa !5
  %1655 = load i32, ptr %54, align 4, !tbaa !9
  %1656 = sext i32 %1655 to i64
  %1657 = getelementptr inbounds double, ptr %1654, i64 %1656
  %1658 = load ptr, ptr %24, align 8, !tbaa !5
  %1659 = load i32, ptr %53, align 4, !tbaa !9
  %1660 = sext i32 %1659 to i64
  %1661 = getelementptr inbounds double, ptr %1658, i64 %1660
  %1662 = load ptr, ptr %24, align 8, !tbaa !5
  %1663 = load i32, ptr %56, align 4, !tbaa !9
  %1664 = sext i32 %1663 to i64
  %1665 = getelementptr inbounds double, ptr %1662, i64 %1664
  %1666 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dgebrd_(ptr noundef %1642, ptr noundef %1643, ptr noundef %1647, ptr noundef %63, ptr noundef %1649, ptr noundef %1653, ptr noundef %1657, ptr noundef %1661, ptr noundef %1665, ptr noundef %32, ptr noundef %1666)
  %1667 = load ptr, ptr %25, align 8, !tbaa !5
  %1668 = load i32, ptr %1667, align 4, !tbaa !9
  %1669 = load i32, ptr %56, align 4, !tbaa !9
  %1670 = sub nsw i32 %1668, %1669
  %1671 = add nsw i32 %1670, 1
  store i32 %1671, ptr %32, align 4, !tbaa !9
  %1672 = load ptr, ptr %14, align 8, !tbaa !5
  %1673 = load ptr, ptr %16, align 8, !tbaa !5
  %1674 = load ptr, ptr %14, align 8, !tbaa !5
  %1675 = load ptr, ptr %24, align 8, !tbaa !5
  %1676 = load i32, ptr %59, align 4, !tbaa !9
  %1677 = sext i32 %1676 to i64
  %1678 = getelementptr inbounds double, ptr %1675, i64 %1677
  %1679 = load ptr, ptr %24, align 8, !tbaa !5
  %1680 = load i32, ptr %54, align 4, !tbaa !9
  %1681 = sext i32 %1680 to i64
  %1682 = getelementptr inbounds double, ptr %1679, i64 %1681
  %1683 = load ptr, ptr %19, align 8, !tbaa !5
  %1684 = load i32, ptr %30, align 4, !tbaa !9
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds double, ptr %1683, i64 %1685
  %1687 = load ptr, ptr %20, align 8, !tbaa !5
  %1688 = load ptr, ptr %24, align 8, !tbaa !5
  %1689 = load i32, ptr %56, align 4, !tbaa !9
  %1690 = sext i32 %1689 to i64
  %1691 = getelementptr inbounds double, ptr %1688, i64 %1690
  %1692 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dormbr_(ptr noundef @.str.4, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %1672, ptr noundef %1673, ptr noundef %1674, ptr noundef %1678, ptr noundef %63, ptr noundef %1682, ptr noundef %1686, ptr noundef %1687, ptr noundef %1691, ptr noundef %32, ptr noundef %1692)
  %1693 = load ptr, ptr %25, align 8, !tbaa !5
  %1694 = load i32, ptr %1693, align 4, !tbaa !9
  %1695 = load i32, ptr %56, align 4, !tbaa !9
  %1696 = sub nsw i32 %1694, %1695
  %1697 = add nsw i32 %1696, 1
  store i32 %1697, ptr %32, align 4, !tbaa !9
  %1698 = load ptr, ptr %14, align 8, !tbaa !5
  %1699 = load ptr, ptr %14, align 8, !tbaa !5
  %1700 = load ptr, ptr %14, align 8, !tbaa !5
  %1701 = load ptr, ptr %24, align 8, !tbaa !5
  %1702 = load i32, ptr %59, align 4, !tbaa !9
  %1703 = sext i32 %1702 to i64
  %1704 = getelementptr inbounds double, ptr %1701, i64 %1703
  %1705 = load ptr, ptr %24, align 8, !tbaa !5
  %1706 = load i32, ptr %53, align 4, !tbaa !9
  %1707 = sext i32 %1706 to i64
  %1708 = getelementptr inbounds double, ptr %1705, i64 %1707
  %1709 = load ptr, ptr %24, align 8, !tbaa !5
  %1710 = load i32, ptr %56, align 4, !tbaa !9
  %1711 = sext i32 %1710 to i64
  %1712 = getelementptr inbounds double, ptr %1709, i64 %1711
  %1713 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dorgbr_(ptr noundef @.str.5, ptr noundef %1698, ptr noundef %1699, ptr noundef %1700, ptr noundef %1704, ptr noundef %63, ptr noundef %1708, ptr noundef %1712, ptr noundef %32, ptr noundef %1713)
  %1714 = load i32, ptr %58, align 4, !tbaa !9
  %1715 = load ptr, ptr %14, align 8, !tbaa !5
  %1716 = load i32, ptr %1715, align 4, !tbaa !9
  %1717 = add nsw i32 %1714, %1716
  store i32 %1717, ptr %56, align 4, !tbaa !9
  %1718 = load ptr, ptr %14, align 8, !tbaa !5
  %1719 = load ptr, ptr %14, align 8, !tbaa !5
  %1720 = load ptr, ptr %16, align 8, !tbaa !5
  %1721 = load ptr, ptr %21, align 8, !tbaa !5
  %1722 = getelementptr inbounds double, ptr %1721, i64 1
  %1723 = load ptr, ptr %24, align 8, !tbaa !5
  %1724 = load i32, ptr %58, align 4, !tbaa !9
  %1725 = sext i32 %1724 to i64
  %1726 = getelementptr inbounds double, ptr %1723, i64 %1725
  %1727 = load ptr, ptr %24, align 8, !tbaa !5
  %1728 = load i32, ptr %59, align 4, !tbaa !9
  %1729 = sext i32 %1728 to i64
  %1730 = getelementptr inbounds double, ptr %1727, i64 %1729
  %1731 = load ptr, ptr %17, align 8, !tbaa !5
  %1732 = load i32, ptr %28, align 4, !tbaa !9
  %1733 = sext i32 %1732 to i64
  %1734 = getelementptr inbounds double, ptr %1731, i64 %1733
  %1735 = load ptr, ptr %18, align 8, !tbaa !5
  %1736 = load ptr, ptr %19, align 8, !tbaa !5
  %1737 = load i32, ptr %30, align 4, !tbaa !9
  %1738 = sext i32 %1737 to i64
  %1739 = getelementptr inbounds double, ptr %1736, i64 %1738
  %1740 = load ptr, ptr %20, align 8, !tbaa !5
  %1741 = load ptr, ptr %24, align 8, !tbaa !5
  %1742 = load i32, ptr %56, align 4, !tbaa !9
  %1743 = sext i32 %1742 to i64
  %1744 = getelementptr inbounds double, ptr %1741, i64 %1743
  %1745 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dbdsqr_(ptr noundef @.str.10, ptr noundef %1718, ptr noundef %1719, ptr noundef @c__0, ptr noundef %1720, ptr noundef %1722, ptr noundef %1726, ptr noundef %1730, ptr noundef %63, ptr noundef %1734, ptr noundef %1735, ptr noundef %1739, ptr noundef %1740, ptr noundef %1744, ptr noundef %1745)
  %1746 = load ptr, ptr %26, align 8, !tbaa !5
  %1747 = load i32, ptr %1746, align 4, !tbaa !9
  %1748 = icmp ne i32 %1747, 0
  br i1 %1748, label %1749, label %1750

1749:                                             ; preds = %1570
  br label %2440

1750:                                             ; preds = %1570
  %1751 = load ptr, ptr %22, align 8, !tbaa !5
  %1752 = load double, ptr %1751, align 8, !tbaa !11
  %1753 = load ptr, ptr %21, align 8, !tbaa !5
  %1754 = getelementptr inbounds double, ptr %1753, i64 1
  %1755 = load double, ptr %1754, align 8, !tbaa !11
  %1756 = fmul double %1752, %1755
  store double %1756, ptr %35, align 8, !tbaa !11
  %1757 = load double, ptr %35, align 8, !tbaa !11
  %1758 = load double, ptr %50, align 8, !tbaa !11
  %1759 = fcmp oge double %1757, %1758
  br i1 %1759, label %1760, label %1762

1760:                                             ; preds = %1750
  %1761 = load double, ptr %35, align 8, !tbaa !11
  br label %1764

1762:                                             ; preds = %1750
  %1763 = load double, ptr %50, align 8, !tbaa !11
  br label %1764

1764:                                             ; preds = %1762, %1760
  %1765 = phi double [ %1761, %1760 ], [ %1763, %1762 ]
  store double %1765, ptr %70, align 8, !tbaa !11
  %1766 = load ptr, ptr %22, align 8, !tbaa !5
  %1767 = load double, ptr %1766, align 8, !tbaa !11
  %1768 = fcmp olt double %1767, 0.000000e+00
  br i1 %1768, label %1769, label %1784

1769:                                             ; preds = %1764
  %1770 = load double, ptr %69, align 8, !tbaa !11
  %1771 = load ptr, ptr %21, align 8, !tbaa !5
  %1772 = getelementptr inbounds double, ptr %1771, i64 1
  %1773 = load double, ptr %1772, align 8, !tbaa !11
  %1774 = fmul double %1770, %1773
  store double %1774, ptr %35, align 8, !tbaa !11
  %1775 = load double, ptr %35, align 8, !tbaa !11
  %1776 = load double, ptr %50, align 8, !tbaa !11
  %1777 = fcmp oge double %1775, %1776
  br i1 %1777, label %1778, label %1780

1778:                                             ; preds = %1769
  %1779 = load double, ptr %35, align 8, !tbaa !11
  br label %1782

1780:                                             ; preds = %1769
  %1781 = load double, ptr %50, align 8, !tbaa !11
  br label %1782

1782:                                             ; preds = %1780, %1778
  %1783 = phi double [ %1779, %1778 ], [ %1781, %1780 ]
  store double %1783, ptr %70, align 8, !tbaa !11
  br label %1784

1784:                                             ; preds = %1782, %1764
  %1785 = load ptr, ptr %23, align 8, !tbaa !5
  store i32 0, ptr %1785, align 4, !tbaa !9
  %1786 = load ptr, ptr %14, align 8, !tbaa !5
  %1787 = load i32, ptr %1786, align 4, !tbaa !9
  store i32 %1787, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %44, align 4, !tbaa !9
  br label %1788

1788:                                             ; preds = %1826, %1784
  %1789 = load i32, ptr %44, align 4, !tbaa !9
  %1790 = load i32, ptr %32, align 4, !tbaa !9
  %1791 = icmp sle i32 %1789, %1790
  br i1 %1791, label %1792, label %1829

1792:                                             ; preds = %1788
  %1793 = load ptr, ptr %21, align 8, !tbaa !5
  %1794 = load i32, ptr %44, align 4, !tbaa !9
  %1795 = sext i32 %1794 to i64
  %1796 = getelementptr inbounds double, ptr %1793, i64 %1795
  %1797 = load double, ptr %1796, align 8, !tbaa !11
  %1798 = load double, ptr %70, align 8, !tbaa !11
  %1799 = fcmp ogt double %1797, %1798
  br i1 %1799, label %1800, label %1816

1800:                                             ; preds = %1792
  %1801 = load ptr, ptr %16, align 8, !tbaa !5
  %1802 = load ptr, ptr %21, align 8, !tbaa !5
  %1803 = load i32, ptr %44, align 4, !tbaa !9
  %1804 = sext i32 %1803 to i64
  %1805 = getelementptr inbounds double, ptr %1802, i64 %1804
  %1806 = load ptr, ptr %19, align 8, !tbaa !5
  %1807 = load i32, ptr %44, align 4, !tbaa !9
  %1808 = load i32, ptr %29, align 4, !tbaa !9
  %1809 = add nsw i32 %1807, %1808
  %1810 = sext i32 %1809 to i64
  %1811 = getelementptr inbounds double, ptr %1806, i64 %1810
  %1812 = load ptr, ptr %20, align 8, !tbaa !5
  call void @drscl_(ptr noundef %1801, ptr noundef %1805, ptr noundef %1811, ptr noundef %1812)
  %1813 = load ptr, ptr %23, align 8, !tbaa !5
  %1814 = load i32, ptr %1813, align 4, !tbaa !9
  %1815 = add nsw i32 %1814, 1
  store i32 %1815, ptr %1813, align 4, !tbaa !9
  br label %1825

1816:                                             ; preds = %1792
  %1817 = load ptr, ptr %16, align 8, !tbaa !5
  %1818 = load ptr, ptr %19, align 8, !tbaa !5
  %1819 = load i32, ptr %44, align 4, !tbaa !9
  %1820 = load i32, ptr %29, align 4, !tbaa !9
  %1821 = add nsw i32 %1819, %1820
  %1822 = sext i32 %1821 to i64
  %1823 = getelementptr inbounds double, ptr %1818, i64 %1822
  %1824 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlaset_(ptr noundef @.str.9, ptr noundef @c__1, ptr noundef %1817, ptr noundef @c_b46, ptr noundef @c_b46, ptr noundef %1823, ptr noundef %1824)
  br label %1825

1825:                                             ; preds = %1816, %1800
  br label %1826

1826:                                             ; preds = %1825
  %1827 = load i32, ptr %44, align 4, !tbaa !9
  %1828 = add nsw i32 %1827, 1
  store i32 %1828, ptr %44, align 4, !tbaa !9
  br label %1788, !llvm.loop !16

1829:                                             ; preds = %1788
  %1830 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %1830, ptr %56, align 4, !tbaa !9
  %1831 = load ptr, ptr %25, align 8, !tbaa !5
  %1832 = load i32, ptr %1831, align 4, !tbaa !9
  %1833 = load ptr, ptr %20, align 8, !tbaa !5
  %1834 = load i32, ptr %1833, align 4, !tbaa !9
  %1835 = load ptr, ptr %16, align 8, !tbaa !5
  %1836 = load i32, ptr %1835, align 4, !tbaa !9
  %1837 = mul nsw i32 %1834, %1836
  %1838 = load i32, ptr %56, align 4, !tbaa !9
  %1839 = add nsw i32 %1837, %1838
  %1840 = sub nsw i32 %1839, 1
  %1841 = icmp sge i32 %1832, %1840
  br i1 %1841, label %1842, label %1876

1842:                                             ; preds = %1829
  %1843 = load ptr, ptr %16, align 8, !tbaa !5
  %1844 = load i32, ptr %1843, align 4, !tbaa !9
  %1845 = icmp sgt i32 %1844, 1
  br i1 %1845, label %1846, label %1876

1846:                                             ; preds = %1842
  %1847 = load ptr, ptr %14, align 8, !tbaa !5
  %1848 = load ptr, ptr %16, align 8, !tbaa !5
  %1849 = load ptr, ptr %14, align 8, !tbaa !5
  %1850 = load ptr, ptr %24, align 8, !tbaa !5
  %1851 = load i32, ptr %59, align 4, !tbaa !9
  %1852 = sext i32 %1851 to i64
  %1853 = getelementptr inbounds double, ptr %1850, i64 %1852
  %1854 = load ptr, ptr %19, align 8, !tbaa !5
  %1855 = load i32, ptr %30, align 4, !tbaa !9
  %1856 = sext i32 %1855 to i64
  %1857 = getelementptr inbounds double, ptr %1854, i64 %1856
  %1858 = load ptr, ptr %20, align 8, !tbaa !5
  %1859 = load ptr, ptr %24, align 8, !tbaa !5
  %1860 = load i32, ptr %56, align 4, !tbaa !9
  %1861 = sext i32 %1860 to i64
  %1862 = getelementptr inbounds double, ptr %1859, i64 %1861
  %1863 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.3, ptr noundef @.str.11, ptr noundef %1847, ptr noundef %1848, ptr noundef %1849, ptr noundef @c_b79, ptr noundef %1853, ptr noundef %63, ptr noundef %1857, ptr noundef %1858, ptr noundef @c_b46, ptr noundef %1862, ptr noundef %1863)
  %1864 = load ptr, ptr %14, align 8, !tbaa !5
  %1865 = load ptr, ptr %16, align 8, !tbaa !5
  %1866 = load ptr, ptr %24, align 8, !tbaa !5
  %1867 = load i32, ptr %56, align 4, !tbaa !9
  %1868 = sext i32 %1867 to i64
  %1869 = getelementptr inbounds double, ptr %1866, i64 %1868
  %1870 = load ptr, ptr %20, align 8, !tbaa !5
  %1871 = load ptr, ptr %19, align 8, !tbaa !5
  %1872 = load i32, ptr %30, align 4, !tbaa !9
  %1873 = sext i32 %1872 to i64
  %1874 = getelementptr inbounds double, ptr %1871, i64 %1873
  %1875 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlacpy_(ptr noundef @.str.8, ptr noundef %1864, ptr noundef %1865, ptr noundef %1869, ptr noundef %1870, ptr noundef %1874, ptr noundef %1875)
  br label %1988

1876:                                             ; preds = %1842, %1829
  %1877 = load ptr, ptr %16, align 8, !tbaa !5
  %1878 = load i32, ptr %1877, align 4, !tbaa !9
  %1879 = icmp sgt i32 %1878, 1
  br i1 %1879, label %1880, label %1961

1880:                                             ; preds = %1876
  %1881 = load ptr, ptr %25, align 8, !tbaa !5
  %1882 = load i32, ptr %1881, align 4, !tbaa !9
  %1883 = load i32, ptr %56, align 4, !tbaa !9
  %1884 = sub nsw i32 %1882, %1883
  %1885 = add nsw i32 %1884, 1
  %1886 = load ptr, ptr %14, align 8, !tbaa !5
  %1887 = load i32, ptr %1886, align 4, !tbaa !9
  %1888 = sdiv i32 %1885, %1887
  store i32 %1888, ptr %49, align 4, !tbaa !9
  %1889 = load ptr, ptr %16, align 8, !tbaa !5
  %1890 = load i32, ptr %1889, align 4, !tbaa !9
  store i32 %1890, ptr %32, align 4, !tbaa !9
  %1891 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %1891, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %44, align 4, !tbaa !9
  br label %1892

1892:                                             ; preds = %1956, %1880
  %1893 = load i32, ptr %31, align 4, !tbaa !9
  %1894 = icmp slt i32 %1893, 0
  br i1 %1894, label %1895, label %1900

1895:                                             ; preds = %1892
  %1896 = load i32, ptr %44, align 4, !tbaa !9
  %1897 = load i32, ptr %32, align 4, !tbaa !9
  %1898 = icmp sge i32 %1896, %1897
  %1899 = zext i1 %1898 to i32
  br label %1905

1900:                                             ; preds = %1892
  %1901 = load i32, ptr %44, align 4, !tbaa !9
  %1902 = load i32, ptr %32, align 4, !tbaa !9
  %1903 = icmp sle i32 %1901, %1902
  %1904 = zext i1 %1903 to i32
  br label %1905

1905:                                             ; preds = %1900, %1895
  %1906 = phi i32 [ %1899, %1895 ], [ %1904, %1900 ]
  %1907 = icmp ne i32 %1906, 0
  br i1 %1907, label %1908, label %1960

1908:                                             ; preds = %1905
  %1909 = load ptr, ptr %16, align 8, !tbaa !5
  %1910 = load i32, ptr %1909, align 4, !tbaa !9
  %1911 = load i32, ptr %44, align 4, !tbaa !9
  %1912 = sub nsw i32 %1910, %1911
  %1913 = add nsw i32 %1912, 1
  store i32 %1913, ptr %33, align 4, !tbaa !9
  %1914 = load i32, ptr %33, align 4, !tbaa !9
  %1915 = load i32, ptr %49, align 4, !tbaa !9
  %1916 = icmp sle i32 %1914, %1915
  br i1 %1916, label %1917, label %1919

1917:                                             ; preds = %1908
  %1918 = load i32, ptr %33, align 4, !tbaa !9
  br label %1921

1919:                                             ; preds = %1908
  %1920 = load i32, ptr %49, align 4, !tbaa !9
  br label %1921

1921:                                             ; preds = %1919, %1917
  %1922 = phi i32 [ %1918, %1917 ], [ %1920, %1919 ]
  store i32 %1922, ptr %57, align 4, !tbaa !9
  %1923 = load ptr, ptr %14, align 8, !tbaa !5
  %1924 = load ptr, ptr %14, align 8, !tbaa !5
  %1925 = load ptr, ptr %24, align 8, !tbaa !5
  %1926 = load i32, ptr %59, align 4, !tbaa !9
  %1927 = sext i32 %1926 to i64
  %1928 = getelementptr inbounds double, ptr %1925, i64 %1927
  %1929 = load ptr, ptr %19, align 8, !tbaa !5
  %1930 = load i32, ptr %44, align 4, !tbaa !9
  %1931 = load i32, ptr %29, align 4, !tbaa !9
  %1932 = mul nsw i32 %1930, %1931
  %1933 = add nsw i32 %1932, 1
  %1934 = sext i32 %1933 to i64
  %1935 = getelementptr inbounds double, ptr %1929, i64 %1934
  %1936 = load ptr, ptr %20, align 8, !tbaa !5
  %1937 = load ptr, ptr %24, align 8, !tbaa !5
  %1938 = load i32, ptr %56, align 4, !tbaa !9
  %1939 = sext i32 %1938 to i64
  %1940 = getelementptr inbounds double, ptr %1937, i64 %1939
  %1941 = load ptr, ptr %14, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.3, ptr noundef @.str.11, ptr noundef %1923, ptr noundef %57, ptr noundef %1924, ptr noundef @c_b79, ptr noundef %1928, ptr noundef %63, ptr noundef %1935, ptr noundef %1936, ptr noundef @c_b46, ptr noundef %1940, ptr noundef %1941)
  %1942 = load ptr, ptr %14, align 8, !tbaa !5
  %1943 = load ptr, ptr %24, align 8, !tbaa !5
  %1944 = load i32, ptr %56, align 4, !tbaa !9
  %1945 = sext i32 %1944 to i64
  %1946 = getelementptr inbounds double, ptr %1943, i64 %1945
  %1947 = load ptr, ptr %14, align 8, !tbaa !5
  %1948 = load ptr, ptr %19, align 8, !tbaa !5
  %1949 = load i32, ptr %44, align 4, !tbaa !9
  %1950 = load i32, ptr %29, align 4, !tbaa !9
  %1951 = mul nsw i32 %1949, %1950
  %1952 = add nsw i32 %1951, 1
  %1953 = sext i32 %1952 to i64
  %1954 = getelementptr inbounds double, ptr %1948, i64 %1953
  %1955 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlacpy_(ptr noundef @.str.8, ptr noundef %1942, ptr noundef %57, ptr noundef %1946, ptr noundef %1947, ptr noundef %1954, ptr noundef %1955)
  br label %1956

1956:                                             ; preds = %1921
  %1957 = load i32, ptr %31, align 4, !tbaa !9
  %1958 = load i32, ptr %44, align 4, !tbaa !9
  %1959 = add nsw i32 %1958, %1957
  store i32 %1959, ptr %44, align 4, !tbaa !9
  br label %1892, !llvm.loop !17

1960:                                             ; preds = %1905
  br label %1987

1961:                                             ; preds = %1876
  %1962 = load ptr, ptr %14, align 8, !tbaa !5
  %1963 = load ptr, ptr %14, align 8, !tbaa !5
  %1964 = load ptr, ptr %24, align 8, !tbaa !5
  %1965 = load i32, ptr %59, align 4, !tbaa !9
  %1966 = sext i32 %1965 to i64
  %1967 = getelementptr inbounds double, ptr %1964, i64 %1966
  %1968 = load ptr, ptr %19, align 8, !tbaa !5
  %1969 = load i32, ptr %29, align 4, !tbaa !9
  %1970 = add nsw i32 %1969, 1
  %1971 = sext i32 %1970 to i64
  %1972 = getelementptr inbounds double, ptr %1968, i64 %1971
  %1973 = load ptr, ptr %24, align 8, !tbaa !5
  %1974 = load i32, ptr %56, align 4, !tbaa !9
  %1975 = sext i32 %1974 to i64
  %1976 = getelementptr inbounds double, ptr %1973, i64 %1975
  call void @dgemv_(ptr noundef @.str.3, ptr noundef %1962, ptr noundef %1963, ptr noundef @c_b79, ptr noundef %1967, ptr noundef %63, ptr noundef %1972, ptr noundef @c__1, ptr noundef @c_b46, ptr noundef %1976, ptr noundef @c__1)
  %1977 = load ptr, ptr %14, align 8, !tbaa !5
  %1978 = load ptr, ptr %24, align 8, !tbaa !5
  %1979 = load i32, ptr %56, align 4, !tbaa !9
  %1980 = sext i32 %1979 to i64
  %1981 = getelementptr inbounds double, ptr %1978, i64 %1980
  %1982 = load ptr, ptr %19, align 8, !tbaa !5
  %1983 = load i32, ptr %29, align 4, !tbaa !9
  %1984 = add nsw i32 %1983, 1
  %1985 = sext i32 %1984 to i64
  %1986 = getelementptr inbounds double, ptr %1982, i64 %1985
  call void @dcopy_(ptr noundef %1977, ptr noundef %1981, ptr noundef @c__1, ptr noundef %1986, ptr noundef @c__1)
  br label %1987

1987:                                             ; preds = %1961, %1960
  br label %1988

1988:                                             ; preds = %1987, %1846
  %1989 = load ptr, ptr %15, align 8, !tbaa !5
  %1990 = load i32, ptr %1989, align 4, !tbaa !9
  %1991 = load ptr, ptr %14, align 8, !tbaa !5
  %1992 = load i32, ptr %1991, align 4, !tbaa !9
  %1993 = sub nsw i32 %1990, %1992
  store i32 %1993, ptr %31, align 4, !tbaa !9
  %1994 = load ptr, ptr %16, align 8, !tbaa !5
  %1995 = load ptr, ptr %19, align 8, !tbaa !5
  %1996 = load ptr, ptr %14, align 8, !tbaa !5
  %1997 = load i32, ptr %1996, align 4, !tbaa !9
  %1998 = add nsw i32 %1997, 1
  %1999 = load i32, ptr %29, align 4, !tbaa !9
  %2000 = add nsw i32 %1998, %1999
  %2001 = sext i32 %2000 to i64
  %2002 = getelementptr inbounds double, ptr %1995, i64 %2001
  %2003 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlaset_(ptr noundef @.str.9, ptr noundef %31, ptr noundef %1994, ptr noundef @c_b46, ptr noundef @c_b46, ptr noundef %2002, ptr noundef %2003)
  %2004 = load i32, ptr %38, align 4, !tbaa !9
  %2005 = load ptr, ptr %14, align 8, !tbaa !5
  %2006 = load i32, ptr %2005, align 4, !tbaa !9
  %2007 = add nsw i32 %2004, %2006
  store i32 %2007, ptr %56, align 4, !tbaa !9
  %2008 = load ptr, ptr %25, align 8, !tbaa !5
  %2009 = load i32, ptr %2008, align 4, !tbaa !9
  %2010 = load i32, ptr %56, align 4, !tbaa !9
  %2011 = sub nsw i32 %2009, %2010
  %2012 = add nsw i32 %2011, 1
  store i32 %2012, ptr %31, align 4, !tbaa !9
  %2013 = load ptr, ptr %15, align 8, !tbaa !5
  %2014 = load ptr, ptr %16, align 8, !tbaa !5
  %2015 = load ptr, ptr %14, align 8, !tbaa !5
  %2016 = load ptr, ptr %17, align 8, !tbaa !5
  %2017 = load i32, ptr %28, align 4, !tbaa !9
  %2018 = sext i32 %2017 to i64
  %2019 = getelementptr inbounds double, ptr %2016, i64 %2018
  %2020 = load ptr, ptr %18, align 8, !tbaa !5
  %2021 = load ptr, ptr %24, align 8, !tbaa !5
  %2022 = load i32, ptr %38, align 4, !tbaa !9
  %2023 = sext i32 %2022 to i64
  %2024 = getelementptr inbounds double, ptr %2021, i64 %2023
  %2025 = load ptr, ptr %19, align 8, !tbaa !5
  %2026 = load i32, ptr %30, align 4, !tbaa !9
  %2027 = sext i32 %2026 to i64
  %2028 = getelementptr inbounds double, ptr %2025, i64 %2027
  %2029 = load ptr, ptr %20, align 8, !tbaa !5
  %2030 = load ptr, ptr %24, align 8, !tbaa !5
  %2031 = load i32, ptr %56, align 4, !tbaa !9
  %2032 = sext i32 %2031 to i64
  %2033 = getelementptr inbounds double, ptr %2030, i64 %2032
  %2034 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dormlq_(ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %2013, ptr noundef %2014, ptr noundef %2015, ptr noundef %2019, ptr noundef %2020, ptr noundef %2024, ptr noundef %2028, ptr noundef %2029, ptr noundef %2033, ptr noundef %31, ptr noundef %2034)
  br label %2382

2035:                                             ; preds = %1483, %1452
  store i32 1, ptr %58, align 4, !tbaa !9
  %2036 = load i32, ptr %58, align 4, !tbaa !9
  %2037 = load ptr, ptr %14, align 8, !tbaa !5
  %2038 = load i32, ptr %2037, align 4, !tbaa !9
  %2039 = add nsw i32 %2036, %2038
  store i32 %2039, ptr %54, align 4, !tbaa !9
  %2040 = load i32, ptr %54, align 4, !tbaa !9
  %2041 = load ptr, ptr %14, align 8, !tbaa !5
  %2042 = load i32, ptr %2041, align 4, !tbaa !9
  %2043 = add nsw i32 %2040, %2042
  store i32 %2043, ptr %53, align 4, !tbaa !9
  %2044 = load i32, ptr %53, align 4, !tbaa !9
  %2045 = load ptr, ptr %14, align 8, !tbaa !5
  %2046 = load i32, ptr %2045, align 4, !tbaa !9
  %2047 = add nsw i32 %2044, %2046
  store i32 %2047, ptr %56, align 4, !tbaa !9
  %2048 = load ptr, ptr %25, align 8, !tbaa !5
  %2049 = load i32, ptr %2048, align 4, !tbaa !9
  %2050 = load i32, ptr %56, align 4, !tbaa !9
  %2051 = sub nsw i32 %2049, %2050
  %2052 = add nsw i32 %2051, 1
  store i32 %2052, ptr %31, align 4, !tbaa !9
  %2053 = load ptr, ptr %14, align 8, !tbaa !5
  %2054 = load ptr, ptr %15, align 8, !tbaa !5
  %2055 = load ptr, ptr %17, align 8, !tbaa !5
  %2056 = load i32, ptr %28, align 4, !tbaa !9
  %2057 = sext i32 %2056 to i64
  %2058 = getelementptr inbounds double, ptr %2055, i64 %2057
  %2059 = load ptr, ptr %18, align 8, !tbaa !5
  %2060 = load ptr, ptr %21, align 8, !tbaa !5
  %2061 = getelementptr inbounds double, ptr %2060, i64 1
  %2062 = load ptr, ptr %24, align 8, !tbaa !5
  %2063 = load i32, ptr %58, align 4, !tbaa !9
  %2064 = sext i32 %2063 to i64
  %2065 = getelementptr inbounds double, ptr %2062, i64 %2064
  %2066 = load ptr, ptr %24, align 8, !tbaa !5
  %2067 = load i32, ptr %54, align 4, !tbaa !9
  %2068 = sext i32 %2067 to i64
  %2069 = getelementptr inbounds double, ptr %2066, i64 %2068
  %2070 = load ptr, ptr %24, align 8, !tbaa !5
  %2071 = load i32, ptr %53, align 4, !tbaa !9
  %2072 = sext i32 %2071 to i64
  %2073 = getelementptr inbounds double, ptr %2070, i64 %2072
  %2074 = load ptr, ptr %24, align 8, !tbaa !5
  %2075 = load i32, ptr %56, align 4, !tbaa !9
  %2076 = sext i32 %2075 to i64
  %2077 = getelementptr inbounds double, ptr %2074, i64 %2076
  %2078 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dgebrd_(ptr noundef %2053, ptr noundef %2054, ptr noundef %2058, ptr noundef %2059, ptr noundef %2061, ptr noundef %2065, ptr noundef %2069, ptr noundef %2073, ptr noundef %2077, ptr noundef %31, ptr noundef %2078)
  %2079 = load ptr, ptr %25, align 8, !tbaa !5
  %2080 = load i32, ptr %2079, align 4, !tbaa !9
  %2081 = load i32, ptr %56, align 4, !tbaa !9
  %2082 = sub nsw i32 %2080, %2081
  %2083 = add nsw i32 %2082, 1
  store i32 %2083, ptr %31, align 4, !tbaa !9
  %2084 = load ptr, ptr %14, align 8, !tbaa !5
  %2085 = load ptr, ptr %16, align 8, !tbaa !5
  %2086 = load ptr, ptr %15, align 8, !tbaa !5
  %2087 = load ptr, ptr %17, align 8, !tbaa !5
  %2088 = load i32, ptr %28, align 4, !tbaa !9
  %2089 = sext i32 %2088 to i64
  %2090 = getelementptr inbounds double, ptr %2087, i64 %2089
  %2091 = load ptr, ptr %18, align 8, !tbaa !5
  %2092 = load ptr, ptr %24, align 8, !tbaa !5
  %2093 = load i32, ptr %54, align 4, !tbaa !9
  %2094 = sext i32 %2093 to i64
  %2095 = getelementptr inbounds double, ptr %2092, i64 %2094
  %2096 = load ptr, ptr %19, align 8, !tbaa !5
  %2097 = load i32, ptr %30, align 4, !tbaa !9
  %2098 = sext i32 %2097 to i64
  %2099 = getelementptr inbounds double, ptr %2096, i64 %2098
  %2100 = load ptr, ptr %20, align 8, !tbaa !5
  %2101 = load ptr, ptr %24, align 8, !tbaa !5
  %2102 = load i32, ptr %56, align 4, !tbaa !9
  %2103 = sext i32 %2102 to i64
  %2104 = getelementptr inbounds double, ptr %2101, i64 %2103
  %2105 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dormbr_(ptr noundef @.str.4, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %2084, ptr noundef %2085, ptr noundef %2086, ptr noundef %2090, ptr noundef %2091, ptr noundef %2095, ptr noundef %2099, ptr noundef %2100, ptr noundef %2104, ptr noundef %31, ptr noundef %2105)
  %2106 = load ptr, ptr %25, align 8, !tbaa !5
  %2107 = load i32, ptr %2106, align 4, !tbaa !9
  %2108 = load i32, ptr %56, align 4, !tbaa !9
  %2109 = sub nsw i32 %2107, %2108
  %2110 = add nsw i32 %2109, 1
  store i32 %2110, ptr %31, align 4, !tbaa !9
  %2111 = load ptr, ptr %14, align 8, !tbaa !5
  %2112 = load ptr, ptr %15, align 8, !tbaa !5
  %2113 = load ptr, ptr %14, align 8, !tbaa !5
  %2114 = load ptr, ptr %17, align 8, !tbaa !5
  %2115 = load i32, ptr %28, align 4, !tbaa !9
  %2116 = sext i32 %2115 to i64
  %2117 = getelementptr inbounds double, ptr %2114, i64 %2116
  %2118 = load ptr, ptr %18, align 8, !tbaa !5
  %2119 = load ptr, ptr %24, align 8, !tbaa !5
  %2120 = load i32, ptr %53, align 4, !tbaa !9
  %2121 = sext i32 %2120 to i64
  %2122 = getelementptr inbounds double, ptr %2119, i64 %2121
  %2123 = load ptr, ptr %24, align 8, !tbaa !5
  %2124 = load i32, ptr %56, align 4, !tbaa !9
  %2125 = sext i32 %2124 to i64
  %2126 = getelementptr inbounds double, ptr %2123, i64 %2125
  %2127 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dorgbr_(ptr noundef @.str.5, ptr noundef %2111, ptr noundef %2112, ptr noundef %2113, ptr noundef %2117, ptr noundef %2118, ptr noundef %2122, ptr noundef %2126, ptr noundef %31, ptr noundef %2127)
  %2128 = load i32, ptr %58, align 4, !tbaa !9
  %2129 = load ptr, ptr %14, align 8, !tbaa !5
  %2130 = load i32, ptr %2129, align 4, !tbaa !9
  %2131 = add nsw i32 %2128, %2130
  store i32 %2131, ptr %56, align 4, !tbaa !9
  %2132 = load ptr, ptr %14, align 8, !tbaa !5
  %2133 = load ptr, ptr %15, align 8, !tbaa !5
  %2134 = load ptr, ptr %16, align 8, !tbaa !5
  %2135 = load ptr, ptr %21, align 8, !tbaa !5
  %2136 = getelementptr inbounds double, ptr %2135, i64 1
  %2137 = load ptr, ptr %24, align 8, !tbaa !5
  %2138 = load i32, ptr %58, align 4, !tbaa !9
  %2139 = sext i32 %2138 to i64
  %2140 = getelementptr inbounds double, ptr %2137, i64 %2139
  %2141 = load ptr, ptr %17, align 8, !tbaa !5
  %2142 = load i32, ptr %28, align 4, !tbaa !9
  %2143 = sext i32 %2142 to i64
  %2144 = getelementptr inbounds double, ptr %2141, i64 %2143
  %2145 = load ptr, ptr %18, align 8, !tbaa !5
  %2146 = getelementptr inbounds [1 x double], ptr %68, i64 0, i64 0
  %2147 = load ptr, ptr %19, align 8, !tbaa !5
  %2148 = load i32, ptr %30, align 4, !tbaa !9
  %2149 = sext i32 %2148 to i64
  %2150 = getelementptr inbounds double, ptr %2147, i64 %2149
  %2151 = load ptr, ptr %20, align 8, !tbaa !5
  %2152 = load ptr, ptr %24, align 8, !tbaa !5
  %2153 = load i32, ptr %56, align 4, !tbaa !9
  %2154 = sext i32 %2153 to i64
  %2155 = getelementptr inbounds double, ptr %2152, i64 %2154
  %2156 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dbdsqr_(ptr noundef @.str.2, ptr noundef %2132, ptr noundef %2133, ptr noundef @c__0, ptr noundef %2134, ptr noundef %2136, ptr noundef %2140, ptr noundef %2144, ptr noundef %2145, ptr noundef %2146, ptr noundef @c__1, ptr noundef %2150, ptr noundef %2151, ptr noundef %2155, ptr noundef %2156)
  %2157 = load ptr, ptr %26, align 8, !tbaa !5
  %2158 = load i32, ptr %2157, align 4, !tbaa !9
  %2159 = icmp ne i32 %2158, 0
  br i1 %2159, label %2160, label %2161

2160:                                             ; preds = %2035
  br label %2440

2161:                                             ; preds = %2035
  %2162 = load ptr, ptr %22, align 8, !tbaa !5
  %2163 = load double, ptr %2162, align 8, !tbaa !11
  %2164 = load ptr, ptr %21, align 8, !tbaa !5
  %2165 = getelementptr inbounds double, ptr %2164, i64 1
  %2166 = load double, ptr %2165, align 8, !tbaa !11
  %2167 = fmul double %2163, %2166
  store double %2167, ptr %35, align 8, !tbaa !11
  %2168 = load double, ptr %35, align 8, !tbaa !11
  %2169 = load double, ptr %50, align 8, !tbaa !11
  %2170 = fcmp oge double %2168, %2169
  br i1 %2170, label %2171, label %2173

2171:                                             ; preds = %2161
  %2172 = load double, ptr %35, align 8, !tbaa !11
  br label %2175

2173:                                             ; preds = %2161
  %2174 = load double, ptr %50, align 8, !tbaa !11
  br label %2175

2175:                                             ; preds = %2173, %2171
  %2176 = phi double [ %2172, %2171 ], [ %2174, %2173 ]
  store double %2176, ptr %70, align 8, !tbaa !11
  %2177 = load ptr, ptr %22, align 8, !tbaa !5
  %2178 = load double, ptr %2177, align 8, !tbaa !11
  %2179 = fcmp olt double %2178, 0.000000e+00
  br i1 %2179, label %2180, label %2195

2180:                                             ; preds = %2175
  %2181 = load double, ptr %69, align 8, !tbaa !11
  %2182 = load ptr, ptr %21, align 8, !tbaa !5
  %2183 = getelementptr inbounds double, ptr %2182, i64 1
  %2184 = load double, ptr %2183, align 8, !tbaa !11
  %2185 = fmul double %2181, %2184
  store double %2185, ptr %35, align 8, !tbaa !11
  %2186 = load double, ptr %35, align 8, !tbaa !11
  %2187 = load double, ptr %50, align 8, !tbaa !11
  %2188 = fcmp oge double %2186, %2187
  br i1 %2188, label %2189, label %2191

2189:                                             ; preds = %2180
  %2190 = load double, ptr %35, align 8, !tbaa !11
  br label %2193

2191:                                             ; preds = %2180
  %2192 = load double, ptr %50, align 8, !tbaa !11
  br label %2193

2193:                                             ; preds = %2191, %2189
  %2194 = phi double [ %2190, %2189 ], [ %2192, %2191 ]
  store double %2194, ptr %70, align 8, !tbaa !11
  br label %2195

2195:                                             ; preds = %2193, %2175
  %2196 = load ptr, ptr %23, align 8, !tbaa !5
  store i32 0, ptr %2196, align 4, !tbaa !9
  %2197 = load ptr, ptr %14, align 8, !tbaa !5
  %2198 = load i32, ptr %2197, align 4, !tbaa !9
  store i32 %2198, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %44, align 4, !tbaa !9
  br label %2199

2199:                                             ; preds = %2237, %2195
  %2200 = load i32, ptr %44, align 4, !tbaa !9
  %2201 = load i32, ptr %31, align 4, !tbaa !9
  %2202 = icmp sle i32 %2200, %2201
  br i1 %2202, label %2203, label %2240

2203:                                             ; preds = %2199
  %2204 = load ptr, ptr %21, align 8, !tbaa !5
  %2205 = load i32, ptr %44, align 4, !tbaa !9
  %2206 = sext i32 %2205 to i64
  %2207 = getelementptr inbounds double, ptr %2204, i64 %2206
  %2208 = load double, ptr %2207, align 8, !tbaa !11
  %2209 = load double, ptr %70, align 8, !tbaa !11
  %2210 = fcmp ogt double %2208, %2209
  br i1 %2210, label %2211, label %2227

2211:                                             ; preds = %2203
  %2212 = load ptr, ptr %16, align 8, !tbaa !5
  %2213 = load ptr, ptr %21, align 8, !tbaa !5
  %2214 = load i32, ptr %44, align 4, !tbaa !9
  %2215 = sext i32 %2214 to i64
  %2216 = getelementptr inbounds double, ptr %2213, i64 %2215
  %2217 = load ptr, ptr %19, align 8, !tbaa !5
  %2218 = load i32, ptr %44, align 4, !tbaa !9
  %2219 = load i32, ptr %29, align 4, !tbaa !9
  %2220 = add nsw i32 %2218, %2219
  %2221 = sext i32 %2220 to i64
  %2222 = getelementptr inbounds double, ptr %2217, i64 %2221
  %2223 = load ptr, ptr %20, align 8, !tbaa !5
  call void @drscl_(ptr noundef %2212, ptr noundef %2216, ptr noundef %2222, ptr noundef %2223)
  %2224 = load ptr, ptr %23, align 8, !tbaa !5
  %2225 = load i32, ptr %2224, align 4, !tbaa !9
  %2226 = add nsw i32 %2225, 1
  store i32 %2226, ptr %2224, align 4, !tbaa !9
  br label %2236

2227:                                             ; preds = %2203
  %2228 = load ptr, ptr %16, align 8, !tbaa !5
  %2229 = load ptr, ptr %19, align 8, !tbaa !5
  %2230 = load i32, ptr %44, align 4, !tbaa !9
  %2231 = load i32, ptr %29, align 4, !tbaa !9
  %2232 = add nsw i32 %2230, %2231
  %2233 = sext i32 %2232 to i64
  %2234 = getelementptr inbounds double, ptr %2229, i64 %2233
  %2235 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlaset_(ptr noundef @.str.9, ptr noundef @c__1, ptr noundef %2228, ptr noundef @c_b46, ptr noundef @c_b46, ptr noundef %2234, ptr noundef %2235)
  br label %2236

2236:                                             ; preds = %2227, %2211
  br label %2237

2237:                                             ; preds = %2236
  %2238 = load i32, ptr %44, align 4, !tbaa !9
  %2239 = add nsw i32 %2238, 1
  store i32 %2239, ptr %44, align 4, !tbaa !9
  br label %2199, !llvm.loop !18

2240:                                             ; preds = %2199
  %2241 = load ptr, ptr %25, align 8, !tbaa !5
  %2242 = load i32, ptr %2241, align 4, !tbaa !9
  %2243 = load ptr, ptr %20, align 8, !tbaa !5
  %2244 = load i32, ptr %2243, align 4, !tbaa !9
  %2245 = load ptr, ptr %16, align 8, !tbaa !5
  %2246 = load i32, ptr %2245, align 4, !tbaa !9
  %2247 = mul nsw i32 %2244, %2246
  %2248 = icmp sge i32 %2242, %2247
  br i1 %2248, label %2249, label %2280

2249:                                             ; preds = %2240
  %2250 = load ptr, ptr %16, align 8, !tbaa !5
  %2251 = load i32, ptr %2250, align 4, !tbaa !9
  %2252 = icmp sgt i32 %2251, 1
  br i1 %2252, label %2253, label %2280

2253:                                             ; preds = %2249
  %2254 = load ptr, ptr %15, align 8, !tbaa !5
  %2255 = load ptr, ptr %16, align 8, !tbaa !5
  %2256 = load ptr, ptr %14, align 8, !tbaa !5
  %2257 = load ptr, ptr %17, align 8, !tbaa !5
  %2258 = load i32, ptr %28, align 4, !tbaa !9
  %2259 = sext i32 %2258 to i64
  %2260 = getelementptr inbounds double, ptr %2257, i64 %2259
  %2261 = load ptr, ptr %18, align 8, !tbaa !5
  %2262 = load ptr, ptr %19, align 8, !tbaa !5
  %2263 = load i32, ptr %30, align 4, !tbaa !9
  %2264 = sext i32 %2263 to i64
  %2265 = getelementptr inbounds double, ptr %2262, i64 %2264
  %2266 = load ptr, ptr %20, align 8, !tbaa !5
  %2267 = load ptr, ptr %24, align 8, !tbaa !5
  %2268 = getelementptr inbounds double, ptr %2267, i64 1
  %2269 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.3, ptr noundef @.str.11, ptr noundef %2254, ptr noundef %2255, ptr noundef %2256, ptr noundef @c_b79, ptr noundef %2260, ptr noundef %2261, ptr noundef %2265, ptr noundef %2266, ptr noundef @c_b46, ptr noundef %2268, ptr noundef %2269)
  %2270 = load ptr, ptr %15, align 8, !tbaa !5
  %2271 = load ptr, ptr %16, align 8, !tbaa !5
  %2272 = load ptr, ptr %24, align 8, !tbaa !5
  %2273 = getelementptr inbounds double, ptr %2272, i64 1
  %2274 = load ptr, ptr %20, align 8, !tbaa !5
  %2275 = load ptr, ptr %19, align 8, !tbaa !5
  %2276 = load i32, ptr %30, align 4, !tbaa !9
  %2277 = sext i32 %2276 to i64
  %2278 = getelementptr inbounds double, ptr %2275, i64 %2277
  %2279 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlacpy_(ptr noundef @.str.9, ptr noundef %2270, ptr noundef %2271, ptr noundef %2273, ptr noundef %2274, ptr noundef %2278, ptr noundef %2279)
  br label %2381

2280:                                             ; preds = %2249, %2240
  %2281 = load ptr, ptr %16, align 8, !tbaa !5
  %2282 = load i32, ptr %2281, align 4, !tbaa !9
  %2283 = icmp sgt i32 %2282, 1
  br i1 %2283, label %2284, label %2359

2284:                                             ; preds = %2280
  %2285 = load ptr, ptr %25, align 8, !tbaa !5
  %2286 = load i32, ptr %2285, align 4, !tbaa !9
  %2287 = load ptr, ptr %15, align 8, !tbaa !5
  %2288 = load i32, ptr %2287, align 4, !tbaa !9
  %2289 = sdiv i32 %2286, %2288
  store i32 %2289, ptr %49, align 4, !tbaa !9
  %2290 = load ptr, ptr %16, align 8, !tbaa !5
  %2291 = load i32, ptr %2290, align 4, !tbaa !9
  store i32 %2291, ptr %31, align 4, !tbaa !9
  %2292 = load i32, ptr %49, align 4, !tbaa !9
  store i32 %2292, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %44, align 4, !tbaa !9
  br label %2293

2293:                                             ; preds = %2354, %2284
  %2294 = load i32, ptr %32, align 4, !tbaa !9
  %2295 = icmp slt i32 %2294, 0
  br i1 %2295, label %2296, label %2301

2296:                                             ; preds = %2293
  %2297 = load i32, ptr %44, align 4, !tbaa !9
  %2298 = load i32, ptr %31, align 4, !tbaa !9
  %2299 = icmp sge i32 %2297, %2298
  %2300 = zext i1 %2299 to i32
  br label %2306

2301:                                             ; preds = %2293
  %2302 = load i32, ptr %44, align 4, !tbaa !9
  %2303 = load i32, ptr %31, align 4, !tbaa !9
  %2304 = icmp sle i32 %2302, %2303
  %2305 = zext i1 %2304 to i32
  br label %2306

2306:                                             ; preds = %2301, %2296
  %2307 = phi i32 [ %2300, %2296 ], [ %2305, %2301 ]
  %2308 = icmp ne i32 %2307, 0
  br i1 %2308, label %2309, label %2358

2309:                                             ; preds = %2306
  %2310 = load ptr, ptr %16, align 8, !tbaa !5
  %2311 = load i32, ptr %2310, align 4, !tbaa !9
  %2312 = load i32, ptr %44, align 4, !tbaa !9
  %2313 = sub nsw i32 %2311, %2312
  %2314 = add nsw i32 %2313, 1
  store i32 %2314, ptr %33, align 4, !tbaa !9
  %2315 = load i32, ptr %33, align 4, !tbaa !9
  %2316 = load i32, ptr %49, align 4, !tbaa !9
  %2317 = icmp sle i32 %2315, %2316
  br i1 %2317, label %2318, label %2320

2318:                                             ; preds = %2309
  %2319 = load i32, ptr %33, align 4, !tbaa !9
  br label %2322

2320:                                             ; preds = %2309
  %2321 = load i32, ptr %49, align 4, !tbaa !9
  br label %2322

2322:                                             ; preds = %2320, %2318
  %2323 = phi i32 [ %2319, %2318 ], [ %2321, %2320 ]
  store i32 %2323, ptr %57, align 4, !tbaa !9
  %2324 = load ptr, ptr %15, align 8, !tbaa !5
  %2325 = load ptr, ptr %14, align 8, !tbaa !5
  %2326 = load ptr, ptr %17, align 8, !tbaa !5
  %2327 = load i32, ptr %28, align 4, !tbaa !9
  %2328 = sext i32 %2327 to i64
  %2329 = getelementptr inbounds double, ptr %2326, i64 %2328
  %2330 = load ptr, ptr %18, align 8, !tbaa !5
  %2331 = load ptr, ptr %19, align 8, !tbaa !5
  %2332 = load i32, ptr %44, align 4, !tbaa !9
  %2333 = load i32, ptr %29, align 4, !tbaa !9
  %2334 = mul nsw i32 %2332, %2333
  %2335 = add nsw i32 %2334, 1
  %2336 = sext i32 %2335 to i64
  %2337 = getelementptr inbounds double, ptr %2331, i64 %2336
  %2338 = load ptr, ptr %20, align 8, !tbaa !5
  %2339 = load ptr, ptr %24, align 8, !tbaa !5
  %2340 = getelementptr inbounds double, ptr %2339, i64 1
  %2341 = load ptr, ptr %15, align 8, !tbaa !5
  call void @dgemm_(ptr noundef @.str.3, ptr noundef @.str.11, ptr noundef %2324, ptr noundef %57, ptr noundef %2325, ptr noundef @c_b79, ptr noundef %2329, ptr noundef %2330, ptr noundef %2337, ptr noundef %2338, ptr noundef @c_b46, ptr noundef %2340, ptr noundef %2341)
  %2342 = load ptr, ptr %15, align 8, !tbaa !5
  %2343 = load ptr, ptr %24, align 8, !tbaa !5
  %2344 = getelementptr inbounds double, ptr %2343, i64 1
  %2345 = load ptr, ptr %15, align 8, !tbaa !5
  %2346 = load ptr, ptr %19, align 8, !tbaa !5
  %2347 = load i32, ptr %44, align 4, !tbaa !9
  %2348 = load i32, ptr %29, align 4, !tbaa !9
  %2349 = mul nsw i32 %2347, %2348
  %2350 = add nsw i32 %2349, 1
  %2351 = sext i32 %2350 to i64
  %2352 = getelementptr inbounds double, ptr %2346, i64 %2351
  %2353 = load ptr, ptr %20, align 8, !tbaa !5
  call void @dlacpy_(ptr noundef @.str.9, ptr noundef %2342, ptr noundef %57, ptr noundef %2344, ptr noundef %2345, ptr noundef %2352, ptr noundef %2353)
  br label %2354

2354:                                             ; preds = %2322
  %2355 = load i32, ptr %32, align 4, !tbaa !9
  %2356 = load i32, ptr %44, align 4, !tbaa !9
  %2357 = add nsw i32 %2356, %2355
  store i32 %2357, ptr %44, align 4, !tbaa !9
  br label %2293, !llvm.loop !19

2358:                                             ; preds = %2306
  br label %2380

2359:                                             ; preds = %2280
  %2360 = load ptr, ptr %14, align 8, !tbaa !5
  %2361 = load ptr, ptr %15, align 8, !tbaa !5
  %2362 = load ptr, ptr %17, align 8, !tbaa !5
  %2363 = load i32, ptr %28, align 4, !tbaa !9
  %2364 = sext i32 %2363 to i64
  %2365 = getelementptr inbounds double, ptr %2362, i64 %2364
  %2366 = load ptr, ptr %18, align 8, !tbaa !5
  %2367 = load ptr, ptr %19, align 8, !tbaa !5
  %2368 = load i32, ptr %30, align 4, !tbaa !9
  %2369 = sext i32 %2368 to i64
  %2370 = getelementptr inbounds double, ptr %2367, i64 %2369
  %2371 = load ptr, ptr %24, align 8, !tbaa !5
  %2372 = getelementptr inbounds double, ptr %2371, i64 1
  call void @dgemv_(ptr noundef @.str.3, ptr noundef %2360, ptr noundef %2361, ptr noundef @c_b79, ptr noundef %2365, ptr noundef %2366, ptr noundef %2370, ptr noundef @c__1, ptr noundef @c_b46, ptr noundef %2372, ptr noundef @c__1)
  %2373 = load ptr, ptr %15, align 8, !tbaa !5
  %2374 = load ptr, ptr %24, align 8, !tbaa !5
  %2375 = getelementptr inbounds double, ptr %2374, i64 1
  %2376 = load ptr, ptr %19, align 8, !tbaa !5
  %2377 = load i32, ptr %30, align 4, !tbaa !9
  %2378 = sext i32 %2377 to i64
  %2379 = getelementptr inbounds double, ptr %2376, i64 %2378
  call void @dcopy_(ptr noundef %2373, ptr noundef %2375, ptr noundef @c__1, ptr noundef %2379, ptr noundef @c__1)
  br label %2380

2380:                                             ; preds = %2359, %2358
  br label %2381

2381:                                             ; preds = %2380, %2253
  br label %2382

2382:                                             ; preds = %2381, %1988
  br label %2383

2383:                                             ; preds = %2382, %1426
  %2384 = load i32, ptr %47, align 4, !tbaa !9
  %2385 = icmp eq i32 %2384, 1
  br i1 %2385, label %2386, label %2398

2386:                                             ; preds = %2383
  %2387 = load ptr, ptr %15, align 8, !tbaa !5
  %2388 = load ptr, ptr %16, align 8, !tbaa !5
  %2389 = load ptr, ptr %19, align 8, !tbaa !5
  %2390 = load i32, ptr %30, align 4, !tbaa !9
  %2391 = sext i32 %2390 to i64
  %2392 = getelementptr inbounds double, ptr %2389, i64 %2391
  %2393 = load ptr, ptr %20, align 8, !tbaa !5
  %2394 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.8, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %36, ptr noundef %66, ptr noundef %2387, ptr noundef %2388, ptr noundef %2392, ptr noundef %2393, ptr noundef %2394)
  %2395 = load ptr, ptr %21, align 8, !tbaa !5
  %2396 = getelementptr inbounds double, ptr %2395, i64 1
  %2397 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.8, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %66, ptr noundef %36, ptr noundef %51, ptr noundef @c__1, ptr noundef %2396, ptr noundef %51, ptr noundef %2397)
  br label %2414

2398:                                             ; preds = %2383
  %2399 = load i32, ptr %47, align 4, !tbaa !9
  %2400 = icmp eq i32 %2399, 2
  br i1 %2400, label %2401, label %2413

2401:                                             ; preds = %2398
  %2402 = load ptr, ptr %15, align 8, !tbaa !5
  %2403 = load ptr, ptr %16, align 8, !tbaa !5
  %2404 = load ptr, ptr %19, align 8, !tbaa !5
  %2405 = load i32, ptr %30, align 4, !tbaa !9
  %2406 = sext i32 %2405 to i64
  %2407 = getelementptr inbounds double, ptr %2404, i64 %2406
  %2408 = load ptr, ptr %20, align 8, !tbaa !5
  %2409 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.8, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %36, ptr noundef %62, ptr noundef %2402, ptr noundef %2403, ptr noundef %2407, ptr noundef %2408, ptr noundef %2409)
  %2410 = load ptr, ptr %21, align 8, !tbaa !5
  %2411 = getelementptr inbounds double, ptr %2410, i64 1
  %2412 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.8, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %62, ptr noundef %36, ptr noundef %51, ptr noundef @c__1, ptr noundef %2411, ptr noundef %51, ptr noundef %2412)
  br label %2413

2413:                                             ; preds = %2401, %2398
  br label %2414

2414:                                             ; preds = %2413, %2386
  %2415 = load i32, ptr %48, align 4, !tbaa !9
  %2416 = icmp eq i32 %2415, 1
  br i1 %2416, label %2417, label %2426

2417:                                             ; preds = %2414
  %2418 = load ptr, ptr %15, align 8, !tbaa !5
  %2419 = load ptr, ptr %16, align 8, !tbaa !5
  %2420 = load ptr, ptr %19, align 8, !tbaa !5
  %2421 = load i32, ptr %30, align 4, !tbaa !9
  %2422 = sext i32 %2421 to i64
  %2423 = getelementptr inbounds double, ptr %2420, i64 %2422
  %2424 = load ptr, ptr %20, align 8, !tbaa !5
  %2425 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.8, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %66, ptr noundef %37, ptr noundef %2418, ptr noundef %2419, ptr noundef %2423, ptr noundef %2424, ptr noundef %2425)
  br label %2439

2426:                                             ; preds = %2414
  %2427 = load i32, ptr %48, align 4, !tbaa !9
  %2428 = icmp eq i32 %2427, 2
  br i1 %2428, label %2429, label %2438

2429:                                             ; preds = %2426
  %2430 = load ptr, ptr %15, align 8, !tbaa !5
  %2431 = load ptr, ptr %16, align 8, !tbaa !5
  %2432 = load ptr, ptr %19, align 8, !tbaa !5
  %2433 = load i32, ptr %30, align 4, !tbaa !9
  %2434 = sext i32 %2433 to i64
  %2435 = getelementptr inbounds double, ptr %2432, i64 %2434
  %2436 = load ptr, ptr %20, align 8, !tbaa !5
  %2437 = load ptr, ptr %26, align 8, !tbaa !5
  call void @dlascl_(ptr noundef @.str.8, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %62, ptr noundef %37, ptr noundef %2430, ptr noundef %2431, ptr noundef %2435, ptr noundef %2436, ptr noundef %2437)
  br label %2438

2438:                                             ; preds = %2429, %2426
  br label %2439

2439:                                             ; preds = %2438, %2417
  br label %2440

2440:                                             ; preds = %2439, %2160, %1749, %1205, %944
  %2441 = load i32, ptr %65, align 4, !tbaa !9
  %2442 = sitofp i32 %2441 to double
  %2443 = load ptr, ptr %24, align 8, !tbaa !5
  %2444 = getelementptr inbounds double, ptr %2443, i64 1
  store double %2442, ptr %2444, align 8, !tbaa !11
  store i32 1, ptr %71, align 4
  br label %2445

2445:                                             ; preds = %2440, %881, %871, %863
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  ret void
}

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

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

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

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

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

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

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

declare double @dlamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

@c__6 = external hidden global i32, align 4
@.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 i32, align 4
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b46 = external hidden global double, align 8
@c__1 = external hidden global i32, align 4
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b79 = external hidden global double, align 8

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

39:                                               ; preds = %13
  %40 = icmp slt i32 %34, 0
  br i1 %40, label %.thread1095.sink.split, label %41

41:                                               ; preds = %39
  %42 = load i32, ptr %2, align 4, !tbaa !5
  %43 = icmp slt i32 %42, 0
  br i1 %43, label %.thread1095.sink.split, label %44

44:                                               ; preds = %41
  %45 = load i32, ptr %4, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %33, i32 1)
  %46 = icmp slt i32 %45, %spec.select
  br i1 %46, label %.thread1095.sink.split, label %47

47:                                               ; preds = %44
  %48 = load i32, ptr %6, align 4, !tbaa !5
  %49 = tail call i32 @llvm.smax.i32(i32 %35, i32 1)
  %50 = icmp slt i32 %48, %49
  br i1 %50, label %.thread1095.sink.split, label %51

51:                                               ; preds = %47
  %52 = icmp sgt i32 %., 0
  br i1 %52, label %53, label %167

53:                                               ; preds = %51
  store i32 %33, ptr %20, align 4, !tbaa !5
  %54 = tail call i32 @ilaenv_(ptr noundef nonnull @c__6, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #4
  %55 = load i32, ptr %0, align 4, !tbaa !5
  %56 = load i32, ptr %1, align 4, !tbaa !5
  %.not1022 = icmp slt i32 %55, %56
  %.not1023 = icmp slt i32 %55, %54
  %or.cond1079 = select i1 %.not1022, i1 true, i1 %.not1023
  br i1 %or.cond1079, label %67, label %57

57:                                               ; preds = %53
  call void @dgeqrf_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %58 = load double, ptr %24, align 8, !tbaa !9
  %59 = fptosi double %58 to i32
  call void @dormqr_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %60 = load double, ptr %24, align 8, !tbaa !9
  %61 = fptosi double %60 to i32
  %62 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %62, ptr %20, align 4, !tbaa !5
  %63 = add nsw i32 %62, %59
  %64 = call i32 @llvm.smax.i32(i32 %63, i32 1)
  store i32 %64, ptr %14, align 4, !tbaa !5
  %65 = add nsw i32 %62, %61
  store i32 %65, ptr %15, align 4, !tbaa !5
  %66 = call i32 @llvm.smax.i32(i32 %64, i32 %65)
  %.pre = load i32, ptr %0, align 4, !tbaa !5
  br label %67

67:                                               ; preds = %57, %53
  %68 = phi i32 [ %62, %57 ], [ %56, %53 ]
  %69 = phi i32 [ %.pre, %57 ], [ %55, %53 ]
  %.0983 = phi i32 [ %66, %57 ], [ 1, %53 ]
  %.not1025 = icmp slt i32 %69, %68
  br i1 %.not1025, label %98, label %70

70:                                               ; preds = %67
  store i32 1, ptr %14, align 4, !tbaa !5
  %71 = mul nsw i32 %68, 5
  store i32 %71, ptr %15, align 4, !tbaa !5
  %72 = icmp slt i32 %68, 1
  %73 = select i1 %72, i32 1, i32 %71
  call void @dgebrd_(ptr noundef nonnull %20, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %74 = load double, ptr %24, align 8, !tbaa !9
  %75 = fptosi double %74 to i32
  call void @dormbr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %20, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %76 = load double, ptr %24, align 8, !tbaa !9
  %77 = fptosi double %76 to i32
  call void @dorgbr_(ptr noundef nonnull @.str.5, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %78 = load double, ptr %24, align 8, !tbaa !9
  %79 = fptosi double %78 to i32
  %80 = load i32, ptr %1, align 4, !tbaa !5
  %81 = mul nsw i32 %80, 3
  %82 = add nsw i32 %81, %75
  %83 = call i32 @llvm.smax.i32(i32 %.0983, i32 %82)
  %84 = add nsw i32 %81, %77
  %85 = call i32 @llvm.smax.i32(i32 %83, i32 %84)
  %86 = add nsw i32 %81, %79
  %87 = call i32 @llvm.smax.i32(i32 %85, i32 %86)
  %88 = call i32 @llvm.smax.i32(i32 %87, i32 %73)
  %89 = load i32, ptr %2, align 4, !tbaa !5
  %90 = mul nsw i32 %89, %80
  %91 = call i32 @llvm.smax.i32(i32 %88, i32 %90)
  %92 = load i32, ptr %20, align 4, !tbaa !5
  %93 = add nsw i32 %92, %81
  %94 = add nsw i32 %89, %81
  store i32 %94, ptr %15, align 4, !tbaa !5
  %95 = call i32 @llvm.smax.i32(i32 %93, i32 %94)
  store i32 %95, ptr %14, align 4, !tbaa !5
  %96 = call i32 @llvm.smax.i32(i32 %95, i32 %73)
  %97 = call i32 @llvm.smax.i32(i32 %96, i32 %91)
  %.pre1157 = load i32, ptr %0, align 4, !tbaa !5
  br label %98

98:                                               ; preds = %70, %67
  %99 = phi i32 [ %.pre1157, %70 ], [ %69, %67 ]
  %100 = phi i32 [ %80, %70 ], [ %68, %67 ]
  %.0986 = phi i32 [ %96, %70 ], [ 1, %67 ]
  %.1984 = phi i32 [ %97, %70 ], [ %.0983, %67 ]
  %101 = icmp sgt i32 %100, %99
  br i1 %101, label %102, label %164

102:                                              ; preds = %98
  %103 = mul nsw i32 %99, 5
  %104 = icmp slt i32 %99, 1
  %105 = select i1 %104, i32 1, i32 %103
  %106 = mul nsw i32 %99, 3
  %107 = load i32, ptr %2, align 4, !tbaa !5
  %108 = add nsw i32 %107, %106
  %109 = add nsw i32 %106, %100
  store i32 %109, ptr %15, align 4, !tbaa !5
  %110 = call i32 @llvm.smax.i32(i32 %108, i32 %109)
  store i32 %110, ptr %14, align 4, !tbaa !5
  %111 = call i32 @llvm.smax.i32(i32 %110, i32 %105)
  %.not1036 = icmp slt i32 %100, %54
  br i1 %.not1036, label %145, label %112

112:                                              ; preds = %102
  call void @dgelqf_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %113 = load double, ptr %24, align 8, !tbaa !9
  %114 = fptosi double %113 to i32
  call void @dgebrd_(ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %115 = load double, ptr %24, align 8, !tbaa !9
  %116 = fptosi double %115 to i32
  call void @dormbr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %117 = load double, ptr %24, align 8, !tbaa !9
  %118 = fptosi double %117 to i32
  call void @dorgbr_(ptr noundef nonnull @.str.5, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %119 = load double, ptr %24, align 8, !tbaa !9
  %120 = fptosi double %119 to i32
  call void @dormlq_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %121 = load double, ptr %24, align 8, !tbaa !9
  %122 = fptosi double %121 to i32
  %123 = load i32, ptr %0, align 4, !tbaa !5
  %124 = add nsw i32 %123, %114
  %125 = add i32 %123, 4
  %126 = mul i32 %125, %123
  %127 = add nsw i32 %126, %116
  %128 = call i32 @llvm.smax.i32(i32 %124, i32 %127)
  %129 = add nsw i32 %126, %118
  %130 = call i32 @llvm.smax.i32(i32 %128, i32 %129)
  %131 = add nsw i32 %126, %120
  %132 = call i32 @llvm.smax.i32(i32 %130, i32 %131)
  %133 = add i32 %123, 1
  %134 = mul i32 %133, %123
  %135 = add nsw i32 %134, %105
  %136 = call i32 @llvm.smax.i32(i32 %132, i32 %135)
  %137 = load i32, ptr %2, align 4, !tbaa !5
  %138 = icmp sgt i32 %137, 1
  %139 = add i32 %123, 2
  %140 = add i32 %137, %133
  %.sink1174 = select i1 %138, i32 %140, i32 %139
  %141 = mul i32 %.sink1174, %123
  %142 = call i32 @llvm.smax.i32(i32 %136, i32 %141)
  store i32 %142, ptr %14, align 4, !tbaa !5
  %143 = add nsw i32 %123, %122
  store i32 %143, ptr %15, align 4, !tbaa !5
  %144 = call i32 @llvm.smax.i32(i32 %142, i32 %143)
  br label %164

145:                                              ; preds = %102
  call void @dgebrd_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %146 = load double, ptr %24, align 8, !tbaa !9
  %147 = fptosi double %146 to i32
  call void @dormbr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %148 = load double, ptr %24, align 8, !tbaa !9
  %149 = fptosi double %148 to i32
  call void @dorgbr_(ptr noundef nonnull @.str.5, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull @c_n1, ptr noundef nonnull %12) #4
  %150 = load double, ptr %24, align 8, !tbaa !9
  %151 = fptosi double %150 to i32
  %152 = load i32, ptr %0, align 4, !tbaa !5
  %153 = mul nsw i32 %152, 3
  %154 = add nsw i32 %153, %147
  %155 = add nsw i32 %153, %149
  %156 = call i32 @llvm.smax.i32(i32 %154, i32 %155)
  %157 = add nsw i32 %153, %151
  %158 = call i32 @llvm.smax.i32(i32 %156, i32 %157)
  %159 = call i32 @llvm.smax.i32(i32 %158, i32 %105)
  store i32 %159, ptr %14, align 4, !tbaa !5
  %160 = load i32, ptr %1, align 4, !tbaa !5
  %161 = load i32, ptr %2, align 4, !tbaa !5
  %162 = mul nsw i32 %161, %160
  store i32 %162, ptr %15, align 4, !tbaa !5
  %163 = call i32 @llvm.smax.i32(i32 %159, i32 %162)
  br label %164

164:                                              ; preds = %112, %145, %98
  %165 = phi i32 [ %123, %112 ], [ %152, %145 ], [ %99, %98 ]
  %.1987 = phi i32 [ %111, %112 ], [ %111, %145 ], [ %.0986, %98 ]
  %.3 = phi i32 [ %144, %112 ], [ %163, %145 ], [ %.1984, %98 ]
  %166 = call i32 @llvm.smax.i32(i32 %.1987, i32 %.3)
  %.pre1158 = load i32, ptr %11, align 4, !tbaa !5
  br label %167

167:                                              ; preds = %164, %51
  %168 = phi i32 [ %165, %164 ], [ %33, %51 ]
  %169 = phi i32 [ %.pre1158, %164 ], [ %36, %51 ]
  %.0989 = phi i32 [ %54, %164 ], [ undef, %51 ]
  %.2988 = phi i32 [ %.1987, %164 ], [ 1, %51 ]
  %.4 = phi i32 [ %166, %164 ], [ 1, %51 ]
  %170 = sitofp i32 %.4 to double
  store double %170, ptr %10, align 8, !tbaa !9
  %171 = icmp sge i32 %169, %.2988
  %or.cond = select i1 %171, i1 true, i1 %37
  br i1 %or.cond, label %.thread, label %.thread1095.sink.split

.thread:                                          ; preds = %167
  %.pr1091.pr = load i32, ptr %12, align 4, !tbaa !5
  %.not1049 = icmp eq i32 %.pr1091.pr, 0
  br i1 %.not1049, label %175, label %.thread1095

.thread1095.sink.split:                           ; preds = %167, %47, %44, %41, %39, %13
  %.sink = phi i32 [ -1, %13 ], [ -2, %39 ], [ -3, %41 ], [ -5, %44 ], [ -7, %47 ], [ -12, %167 ]
  store i32 %.sink, ptr %12, align 4, !tbaa !5
  br label %.thread1095

.thread1095:                                      ; preds = %.thread1095.sink.split, %.thread
  %172 = phi i32 [ %.pr1091.pr, %.thread ], [ %.sink, %.thread1095.sink.split ]
  %173 = sub nsw i32 0, %172
  store i32 %173, ptr %14, align 4, !tbaa !5
  %174 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %14, i32 noundef 6) #4
  br label %493

175:                                              ; preds = %.thread
  br i1 %37, label %493, label %176

176:                                              ; preds = %175
  %177 = icmp eq i32 %168, 0
  br i1 %177, label %181, label %178

178:                                              ; preds = %176
  %179 = load i32, ptr %1, align 4, !tbaa !5
  %180 = icmp eq i32 %179, 0
  br i1 %180, label %181, label %182

181:                                              ; preds = %178, %176
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %493

182:                                              ; preds = %178
  %183 = call double @dlamch_(ptr noundef nonnull @.str.5) #4
  %184 = call double @dlamch_(ptr noundef nonnull @.str.6) #4
  %185 = fdiv double %184, %183
  store double %185, ptr %23, align 8, !tbaa !9
  %186 = fdiv double 1.000000e+00, %185
  store double %186, ptr %21, align 8, !tbaa !9
  call void @dlabad_(ptr noundef nonnull %23, ptr noundef nonnull %21) #4
  %187 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10) #4
  store double %187, ptr %16, align 8, !tbaa !9
  %188 = fcmp ogt double %187, 0.000000e+00
  %189 = load double, ptr %23, align 8
  %190 = fcmp olt double %187, %189
  %or.cond1081 = select i1 %188, i1 %190, i1 false
  br i1 %or.cond1081, label %.sink.split, label %191

191:                                              ; preds = %182
  %192 = load double, ptr %21, align 8, !tbaa !9
  %193 = fcmp ogt double %187, %192
  br i1 %193, label %.sink.split, label %194

194:                                              ; preds = %191
  %195 = fcmp oeq double %187, 0.000000e+00
  br i1 %195, label %196, label %199

196:                                              ; preds = %194
  %197 = load i32, ptr %0, align 4, !tbaa !5
  %198 = load i32, ptr %1, align 4, !tbaa !5
  %.1082 = call i32 @llvm.smax.i32(i32 %197, i32 %198)
  store i32 %.1082, ptr %14, align 4, !tbaa !5
  call void @dlaset_(ptr noundef nonnull @.str.9, ptr noundef nonnull %14, ptr noundef nonnull %2, ptr noundef nonnull @c_b46, ptr noundef nonnull @c_b46, ptr noundef %5, ptr noundef nonnull %6) #4
  call void @dlaset_(ptr noundef nonnull @.str.9, ptr noundef nonnull %18, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b46, ptr noundef nonnull @c_b46, ptr noundef %7, ptr noundef nonnull %18) #4
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %492

.sink.split:                                      ; preds = %191, %182
  %.sink1176 = phi ptr [ %23, %182 ], [ %21, %191 ]
  %.ph1175 = xor i1 %or.cond1081, true
  call void @dlascl_(ptr noundef nonnull @.str.8, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %16, ptr noundef nonnull %.sink1176, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %12) #4
  br label %199

199:                                              ; preds = %.sink.split, %194
  %200 = phi i1 [ false, %194 ], [ %.ph1175, %.sink.split ]
  %201 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %10) #4
  store double %201, ptr %17, align 8, !tbaa !9
  %202 = fcmp ule double %201, 0.000000e+00
  %203 = load double, ptr %23, align 8
  %204 = fcmp uge double %201, %203
  %or.cond1084.not = select i1 %202, i1 true, i1 %204
  br i1 %or.cond1084.not, label %205, label %.sink.split1177

205:                                              ; preds = %199
  %206 = load double, ptr %21, align 8, !tbaa !9
  %207 = fcmp ogt double %201, %206
  br i1 %207, label %.sink.split1177, label %208

.sink.split1177:                                  ; preds = %205, %199
  %.sink1179 = phi ptr [ %23, %199 ], [ %21, %205 ]
  call void @dlascl_(ptr noundef nonnull @.str.8, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %17, ptr noundef nonnull %.sink1179, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %12) #4
  br label %208

208:                                              ; preds = %.sink.split1177, %205
  %209 = phi i1 [ false, %205 ], [ %or.cond1084.not, %.sink.split1177 ]
  %210 = load i32, ptr %0, align 4, !tbaa !5
  %211 = load i32, ptr %1, align 4, !tbaa !5
  %.not1052 = icmp slt i32 %210, %211
  br i1 %.not1052, label %298, label %212

212:                                              ; preds = %208
  store i32 %210, ptr %20, align 4, !tbaa !5
  %.not1073 = icmp slt i32 %210, %.0989
  br i1 %.not1073, label %228, label %213

213:                                              ; preds = %212
  store i32 %211, ptr %20, align 4, !tbaa !5
  %214 = load i32, ptr %11, align 4, !tbaa !5
  %215 = sub i32 %214, %211
  store i32 %215, ptr %14, align 4, !tbaa !5
  %216 = sext i32 %211 to i64
  %217 = getelementptr double, ptr %32, i64 %216
  %218 = getelementptr i8, ptr %217, i64 8
  call void @dgeqrf_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10, ptr noundef nonnull %218, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %219 = load i32, ptr %11, align 4, !tbaa !5
  %220 = sub i32 %219, %211
  store i32 %220, ptr %14, align 4, !tbaa !5
  call void @dormqr_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %218, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %221 = load i32, ptr %1, align 4, !tbaa !5
  %222 = icmp sgt i32 %221, 1
  br i1 %222, label %223, label %228

223:                                              ; preds = %213
  %224 = add nsw i32 %221, -1
  store i32 %224, ptr %14, align 4, !tbaa !5
  store i32 %224, ptr %15, align 4, !tbaa !5
  %225 = sext i32 %25 to i64
  %226 = getelementptr double, ptr %27, i64 %225
  %227 = getelementptr i8, ptr %226, i64 16
  call void @dlaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull @c_b46, ptr noundef nonnull @c_b46, ptr noundef %227, ptr noundef nonnull %4) #4
  %.pre1159 = load i32, ptr %1, align 4, !tbaa !5
  br label %228

228:                                              ; preds = %213, %223, %212
  %229 = phi i32 [ %221, %213 ], [ %.pre1159, %223 ], [ %211, %212 ]
  %230 = add nsw i32 %229, 1
  %231 = add nsw i32 %230, %229
  %232 = add nsw i32 %231, %229
  %233 = load i32, ptr %11, align 4, !tbaa !5
  %234 = add i32 %233, 1
  %235 = sub i32 %234, %232
  store i32 %235, ptr %14, align 4, !tbaa !5
  %236 = sext i32 %230 to i64
  %237 = getelementptr inbounds double, ptr %32, i64 %236
  %238 = sext i32 %231 to i64
  %239 = getelementptr inbounds double, ptr %32, i64 %238
  %240 = sext i32 %232 to i64
  %241 = getelementptr inbounds double, ptr %32, i64 %240
  call void @dgebrd_(ptr noundef nonnull %20, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %10, ptr noundef nonnull %237, ptr noundef nonnull %239, ptr noundef nonnull %241, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %242 = load i32, ptr %11, align 4, !tbaa !5
  %reass.sub = sub i32 %242, %232
  %243 = add i32 %reass.sub, 1
  store i32 %243, ptr %14, align 4, !tbaa !5
  call void @dormbr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %20, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %237, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %241, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %244 = load i32, ptr %11, align 4, !tbaa !5
  %reass.sub1140 = sub i32 %244, %232
  %245 = add i32 %reass.sub1140, 1
  store i32 %245, ptr %14, align 4, !tbaa !5
  call void @dorgbr_(ptr noundef nonnull @.str.5, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %239, ptr noundef nonnull %241, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %246 = load i32, ptr %1, align 4, !tbaa !5
  %247 = sext i32 %246 to i64
  %248 = getelementptr double, ptr %32, i64 %247
  %249 = getelementptr i8, ptr %248, i64 8
  call void @dbdsqr_(ptr noundef nonnull @.str.10, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull %10, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %249, ptr noundef nonnull %12) #4
  %250 = load i32, ptr %12, align 4, !tbaa !5
  %.not1074 = icmp eq i32 %250, 0
  br i1 %.not1074, label %251, label %492

251:                                              ; preds = %228
  %252 = load double, ptr %8, align 8, !tbaa !9
  %253 = load double, ptr %7, align 8, !tbaa !9
  %254 = fmul double %252, %253
  %255 = fcmp oge double %254, %184
  %256 = select i1 %255, double %254, double %184
  %257 = fcmp olt double %252, 0.000000e+00
  br i1 %257, label %258, label %262

258:                                              ; preds = %251
  %259 = fmul double %183, %253
  %260 = fcmp oge double %259, %184
  %261 = select i1 %260, double %259, double %184
  br label %262

262:                                              ; preds = %258, %251
  %.0 = phi double [ %261, %258 ], [ %256, %251 ]
  store i32 0, ptr %9, align 4, !tbaa !5
  %263 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %263, ptr %14, align 4, !tbaa !5
  %.not10751112 = icmp slt i32 %263, 1
  br i1 %.not10751112, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %262
  %264 = sext i32 %28 to i64
  %invariant.gep1162 = getelementptr double, ptr %30, i64 %264
  %invariant.gep1164 = getelementptr double, ptr %30, i64 %264
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %272
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %272 ]
  %265 = getelementptr inbounds double, ptr %31, i64 %indvars.iv
  %266 = load double, ptr %265, align 8, !tbaa !9
  %267 = fcmp ogt double %266, %.0
  br i1 %267, label %268, label %271

268:                                              ; preds = %.lr.ph
  %gep1165 = getelementptr double, ptr %invariant.gep1164, i64 %indvars.iv
  call void @drscl_(ptr noundef nonnull %2, ptr noundef nonnull %265, ptr noundef %gep1165, ptr noundef nonnull %6) #4
  %269 = load i32, ptr %9, align 4, !tbaa !5
  %270 = add nsw i32 %269, 1
  store i32 %270, ptr %9, align 4, !tbaa !5
  br label %272

271:                                              ; preds = %.lr.ph
  %gep1163 = getelementptr double, ptr %invariant.gep1162, i64 %indvars.iv
  call void @dlaset_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_b46, ptr noundef nonnull @c_b46, ptr noundef %gep1163, ptr noundef nonnull %6) #4
  br label %272

272:                                              ; preds = %268, %271
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %273 = load i32, ptr %14, align 4, !tbaa !5
  %274 = sext i32 %273 to i64
  %.not1075.not = icmp slt i64 %indvars.iv, %274
  br i1 %.not1075.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %272, %262
  %275 = load i32, ptr %11, align 4, !tbaa !5
  %276 = load i32, ptr %6, align 4, !tbaa !5
  %277 = load i32, ptr %2, align 4, !tbaa !5
  %278 = mul nsw i32 %277, %276
  %.not1076 = icmp sge i32 %275, %278
  %279 = icmp sgt i32 %277, 1
  %or.cond1085 = and i1 %279, %.not1076
  br i1 %or.cond1085, label %280, label %281

280:                                              ; preds = %._crit_edge
  call void @dgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.11, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef nonnull @c_b79, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull @c_b46, ptr noundef %10, ptr noundef nonnull %6) #4
  call void @dlacpy_(ptr noundef nonnull @.str.8, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6) #4
  br label %.loopexit

281:                                              ; preds = %._crit_edge
  br i1 %279, label %282, label %297

282:                                              ; preds = %281
  %283 = load i32, ptr %1, align 4, !tbaa !5
  %284 = sdiv i32 %275, %283
  store i32 %277, ptr %14, align 4, !tbaa !5
  store i32 %284, ptr %15, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %30, i64 8
  %285 = icmp sgt i32 %284, -1
  br i1 %285, label %.lr.ph1117, label %.loopexit

.lr.ph1117:                                       ; preds = %282, %.lr.ph1117
  %.19941115 = phi i32 [ %292, %.lr.ph1117 ], [ 1, %282 ]
  %286 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub1141 = sub i32 %286, %.19941115
  %287 = add i32 %reass.sub1141, 1
  %288 = call i32 @llvm.smin.i32(i32 %287, i32 %284)
  store i32 %288, ptr %19, align 4, !tbaa !5
  %289 = mul nsw i32 %.19941115, %28
  %290 = sext i32 %289 to i64
  %gep = getelementptr double, ptr %invariant.gep, i64 %290
  call void @dgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.11, ptr noundef nonnull %1, ptr noundef nonnull %19, ptr noundef nonnull %1, ptr noundef nonnull @c_b79, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %gep, ptr noundef nonnull %6, ptr noundef nonnull @c_b46, ptr noundef %10, ptr noundef nonnull %1) #4
  call void @dlacpy_(ptr noundef nonnull @.str.8, ptr noundef nonnull %1, ptr noundef nonnull %19, ptr noundef %10, ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull %6) #4
  %291 = load i32, ptr %15, align 4, !tbaa !5
  %292 = add nsw i32 %291, %.19941115
  %293 = icmp slt i32 %291, 0
  %294 = load i32, ptr %14, align 4
  %295 = icmp sge i32 %292, %294
  %296 = icmp sle i32 %292, %294
  %.in1077 = select i1 %293, i1 %295, i1 %296
  br i1 %.in1077, label %.lr.ph1117, label %.loopexit, !llvm.loop !13

297:                                              ; preds = %281
  call void @dgemv_(ptr noundef nonnull @.str.3, ptr noundef nonnull %1, ptr noundef nonnull %1, ptr noundef nonnull @c_b79, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b46, ptr noundef %10, ptr noundef nonnull @c__1) #4
  call void @dcopy_(ptr noundef nonnull %1, ptr noundef %10, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull @c__1) #4
  br label %.loopexit

298:                                              ; preds = %208
  %299 = shl i32 %210, 1
  %300 = add nsw i32 %299, -4
  %301 = call i32 @llvm.smax.i32(i32 %210, i32 %300)
  %302 = load i32, ptr %2, align 4, !tbaa !5
  %.1086 = call i32 @llvm.smax.i32(i32 %301, i32 %302)
  store i32 %.1086, ptr %15, align 4, !tbaa !5
  %.not1055 = icmp slt i32 %211, %.0989
  %.pre1160 = load i32, ptr %11, align 4, !tbaa !5
  br i1 %.not1055, label %421, label %303

303:                                              ; preds = %298
  %.neg = mul i32 %210, -3
  %304 = add i32 %.neg, %211
  %305 = add i32 %210, 4
  %306 = mul i32 %305, %210
  %307 = call i32 @llvm.smax.i32(i32 %.1086, i32 %304)
  %308 = add nsw i32 %307, %306
  %.not1057 = icmp slt i32 %.pre1160, %308
  br i1 %.not1057, label %421, label %309

309:                                              ; preds = %303
  store i32 %210, ptr %22, align 4, !tbaa !5
  %310 = load i32, ptr %4, align 4, !tbaa !5
  %311 = add i32 %310, 4
  %312 = mul i32 %311, %210
  %313 = add nsw i32 %312, %307
  %314 = add i32 %302, 1
  %315 = add i32 %314, %310
  %316 = mul i32 %315, %210
  store i32 %316, ptr %14, align 4, !tbaa !5
  %317 = call i32 @llvm.smax.i32(i32 %313, i32 %316)
  %.not1067 = icmp slt i32 %.pre1160, %317
  br i1 %.not1067, label %319, label %318

318:                                              ; preds = %309
  store i32 %310, ptr %22, align 4, !tbaa !5
  br label %319

319:                                              ; preds = %318, %309
  %320 = add nsw i32 %210, 1
  %321 = sub i32 %.pre1160, %210
  store i32 %321, ptr %15, align 4, !tbaa !5
  %322 = sext i32 %320 to i64
  %323 = getelementptr inbounds double, ptr %32, i64 %322
  call void @dgelqf_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %10, ptr noundef nonnull %323, ptr noundef nonnull %15, ptr noundef nonnull %12) #4
  call void @dlacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %323, ptr noundef nonnull %22) #4
  %324 = load i32, ptr %0, align 4, !tbaa !5
  %325 = add nsw i32 %324, -1
  store i32 %325, ptr %15, align 4, !tbaa !5
  store i32 %325, ptr %14, align 4, !tbaa !5
  %326 = load i32, ptr %22, align 4, !tbaa !5
  %327 = add nsw i32 %326, %320
  %328 = sext i32 %327 to i64
  %329 = getelementptr inbounds double, ptr %32, i64 %328
  call void @dlaset_(ptr noundef nonnull @.str.10, ptr noundef nonnull %15, ptr noundef nonnull %14, ptr noundef nonnull @c_b46, ptr noundef nonnull @c_b46, ptr noundef nonnull %329, ptr noundef nonnull %22) #4
  %330 = load i32, ptr %22, align 4, !tbaa !5
  %331 = load i32, ptr %0, align 4, !tbaa !5
  %332 = mul nsw i32 %331, %330
  %333 = add nsw i32 %332, %320
  %334 = add nsw i32 %333, %331
  %335 = add nsw i32 %334, %331
  %336 = add nsw i32 %335, %331
  %337 = load i32, ptr %11, align 4, !tbaa !5
  %338 = add i32 %337, 1
  %339 = sub i32 %338, %336
  store i32 %339, ptr %15, align 4, !tbaa !5
  %340 = sext i32 %333 to i64
  %341 = getelementptr inbounds double, ptr %32, i64 %340
  %342 = sext i32 %334 to i64
  %343 = getelementptr inbounds double, ptr %32, i64 %342
  %344 = sext i32 %335 to i64
  %345 = getelementptr inbounds double, ptr %32, i64 %344
  %346 = sext i32 %336 to i64
  %347 = getelementptr inbounds double, ptr %32, i64 %346
  call void @dgebrd_(ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull %323, ptr noundef nonnull %22, ptr noundef %7, ptr noundef nonnull %341, ptr noundef nonnull %343, ptr noundef nonnull %345, ptr noundef nonnull %347, ptr noundef nonnull %15, ptr noundef nonnull %12) #4
  %348 = load i32, ptr %11, align 4, !tbaa !5
  %349 = add i32 %348, 1
  %350 = sub i32 %349, %336
  store i32 %350, ptr %15, align 4, !tbaa !5
  call void @dormbr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull %323, ptr noundef nonnull %22, ptr noundef nonnull %343, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %347, ptr noundef nonnull %15, ptr noundef nonnull %12) #4
  %351 = load i32, ptr %11, align 4, !tbaa !5
  %reass.sub1142 = sub i32 %351, %336
  %352 = add i32 %reass.sub1142, 1
  store i32 %352, ptr %15, align 4, !tbaa !5
  call void @dorgbr_(ptr noundef nonnull @.str.5, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull %323, ptr noundef nonnull %22, ptr noundef nonnull %345, ptr noundef nonnull %347, ptr noundef nonnull %15, ptr noundef nonnull %12) #4
  %353 = load i32, ptr %0, align 4, !tbaa !5
  %354 = add nsw i32 %353, %333
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds double, ptr %32, i64 %355
  call void @dbdsqr_(ptr noundef nonnull @.str.10, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull %341, ptr noundef nonnull %323, ptr noundef nonnull %22, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %356, ptr noundef nonnull %12) #4
  %357 = load i32, ptr %12, align 4, !tbaa !5
  %.not1068 = icmp eq i32 %357, 0
  br i1 %.not1068, label %358, label %492

358:                                              ; preds = %319
  %359 = load double, ptr %8, align 8, !tbaa !9
  %360 = load double, ptr %7, align 8, !tbaa !9
  %361 = fmul double %359, %360
  %362 = fcmp oge double %361, %184
  %363 = select i1 %362, double %361, double %184
  %364 = fcmp olt double %359, 0.000000e+00
  br i1 %364, label %365, label %369

365:                                              ; preds = %358
  %366 = fmul double %183, %360
  %367 = fcmp oge double %366, %184
  %368 = select i1 %367, double %366, double %184
  br label %369

369:                                              ; preds = %365, %358
  %.1 = phi double [ %368, %365 ], [ %363, %358 ]
  store i32 0, ptr %9, align 4, !tbaa !5
  %370 = load i32, ptr %0, align 4, !tbaa !5
  store i32 %370, ptr %15, align 4, !tbaa !5
  %.not10691118 = icmp slt i32 %370, 1
  br i1 %.not10691118, label %._crit_edge1122, label %.lr.ph1121.preheader

.lr.ph1121.preheader:                             ; preds = %369
  %371 = sext i32 %28 to i64
  %invariant.gep1166 = getelementptr double, ptr %30, i64 %371
  %invariant.gep1168 = getelementptr double, ptr %30, i64 %371
  br label %.lr.ph1121

.lr.ph1121:                                       ; preds = %.lr.ph1121.preheader, %379
  %indvars.iv1151 = phi i64 [ 1, %.lr.ph1121.preheader ], [ %indvars.iv.next1152, %379 ]
  %372 = getelementptr inbounds double, ptr %31, i64 %indvars.iv1151
  %373 = load double, ptr %372, align 8, !tbaa !9
  %374 = fcmp ogt double %373, %.1
  br i1 %374, label %375, label %378

375:                                              ; preds = %.lr.ph1121
  %gep1169 = getelementptr double, ptr %invariant.gep1168, i64 %indvars.iv1151
  call void @drscl_(ptr noundef nonnull %2, ptr noundef nonnull %372, ptr noundef %gep1169, ptr noundef nonnull %6) #4
  %376 = load i32, ptr %9, align 4, !tbaa !5
  %377 = add nsw i32 %376, 1
  store i32 %377, ptr %9, align 4, !tbaa !5
  br label %379

378:                                              ; preds = %.lr.ph1121
  %gep1167 = getelementptr double, ptr %invariant.gep1166, i64 %indvars.iv1151
  call void @dlaset_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_b46, ptr noundef nonnull @c_b46, ptr noundef %gep1167, ptr noundef nonnull %6) #4
  br label %379

379:                                              ; preds = %375, %378
  %indvars.iv.next1152 = add nuw nsw i64 %indvars.iv1151, 1
  %380 = load i32, ptr %15, align 4, !tbaa !5
  %381 = sext i32 %380 to i64
  %.not1069.not = icmp slt i64 %indvars.iv1151, %381
  br i1 %.not1069.not, label %.lr.ph1121, label %._crit_edge1122, !llvm.loop !14

._crit_edge1122:                                  ; preds = %379, %369
  %382 = load i32, ptr %11, align 4, !tbaa !5
  %383 = load i32, ptr %6, align 4, !tbaa !5
  %384 = load i32, ptr %2, align 4, !tbaa !5
  %385 = mul nsw i32 %384, %383
  %386 = add i32 %332, %210
  %387 = add i32 %386, %385
  %.not1070 = icmp sge i32 %382, %387
  %388 = icmp sgt i32 %384, 1
  %or.cond1088 = and i1 %388, %.not1070
  br i1 %or.cond1088, label %389, label %390

389:                                              ; preds = %._crit_edge1122
  call void @dgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.11, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull @c_b79, ptr noundef nonnull %323, ptr noundef nonnull %22, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull @c_b46, ptr noundef nonnull %341, ptr noundef nonnull %6) #4
  call void @dlacpy_(ptr noundef nonnull @.str.8, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %341, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6) #4
  br label %.loopexit1110

390:                                              ; preds = %._crit_edge1122
  br i1 %388, label %391, label %407

391:                                              ; preds = %390
  %reass.sub1143 = sub i32 %382, %333
  %392 = add i32 %reass.sub1143, 1
  %393 = load i32, ptr %0, align 4, !tbaa !5
  %394 = sdiv i32 %392, %393
  store i32 %384, ptr %15, align 4, !tbaa !5
  store i32 %394, ptr %14, align 4, !tbaa !5
  %invariant.gep1123 = getelementptr i8, ptr %30, i64 8
  %395 = icmp sgt i32 %394, -1
  br i1 %395, label %.lr.ph1128, label %.loopexit1110

.lr.ph1128:                                       ; preds = %391, %.lr.ph1128
  %.39961126 = phi i32 [ %402, %.lr.ph1128 ], [ 1, %391 ]
  %396 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub1144 = sub i32 %396, %.39961126
  %397 = add i32 %reass.sub1144, 1
  %398 = call i32 @llvm.smin.i32(i32 %397, i32 %394)
  store i32 %398, ptr %19, align 4, !tbaa !5
  %399 = mul nsw i32 %.39961126, %28
  %400 = sext i32 %399 to i64
  %gep1124 = getelementptr double, ptr %invariant.gep1123, i64 %400
  call void @dgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.11, ptr noundef nonnull %0, ptr noundef nonnull %19, ptr noundef nonnull %0, ptr noundef nonnull @c_b79, ptr noundef nonnull %323, ptr noundef nonnull %22, ptr noundef %gep1124, ptr noundef nonnull %6, ptr noundef nonnull @c_b46, ptr noundef nonnull %341, ptr noundef nonnull %0) #4
  call void @dlacpy_(ptr noundef nonnull @.str.8, ptr noundef nonnull %0, ptr noundef nonnull %19, ptr noundef nonnull %341, ptr noundef nonnull %0, ptr noundef %gep1124, ptr noundef nonnull %6) #4
  %401 = load i32, ptr %14, align 4, !tbaa !5
  %402 = add nsw i32 %401, %.39961126
  %403 = icmp slt i32 %401, 0
  %404 = load i32, ptr %15, align 4
  %405 = icmp sge i32 %402, %404
  %406 = icmp sle i32 %402, %404
  %.in1071 = select i1 %403, i1 %405, i1 %406
  br i1 %.in1071, label %.lr.ph1128, label %.loopexit1110, !llvm.loop !15

407:                                              ; preds = %390
  call void @dgemv_(ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %0, ptr noundef nonnull @c_b79, ptr noundef nonnull %323, ptr noundef nonnull %22, ptr noundef %5, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b46, ptr noundef nonnull %341, ptr noundef nonnull @c__1) #4
  call void @dcopy_(ptr noundef nonnull %0, ptr noundef nonnull %341, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull @c__1) #4
  br label %.loopexit1110

.loopexit1110:                                    ; preds = %.lr.ph1128, %391, %407, %389
  %408 = load i32, ptr %1, align 4, !tbaa !5
  %409 = load i32, ptr %0, align 4, !tbaa !5
  %410 = sub nsw i32 %408, %409
  store i32 %410, ptr %14, align 4, !tbaa !5
  %411 = add i32 %28, 1
  %412 = add i32 %411, %409
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds double, ptr %30, i64 %413
  call void @dlaset_(ptr noundef nonnull @.str.9, ptr noundef nonnull %14, ptr noundef nonnull %2, ptr noundef nonnull @c_b46, ptr noundef nonnull @c_b46, ptr noundef %414, ptr noundef nonnull %6) #4
  %415 = load i32, ptr %0, align 4, !tbaa !5
  %416 = load i32, ptr %11, align 4, !tbaa !5
  %417 = sub i32 %416, %415
  store i32 %417, ptr %14, align 4, !tbaa !5
  %418 = sext i32 %415 to i64
  %419 = getelementptr double, ptr %32, i64 %418
  %420 = getelementptr i8, ptr %419, i64 8
  call void @dormlq_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %10, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %420, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  br label %.loopexit

421:                                              ; preds = %303, %298
  %422 = add nsw i32 %210, 1
  %423 = add nsw i32 %422, %210
  %424 = add nsw i32 %423, %210
  %reass.sub1145 = sub i32 %.pre1160, %424
  %425 = add i32 %reass.sub1145, 1
  store i32 %425, ptr %14, align 4, !tbaa !5
  %426 = sext i32 %422 to i64
  %427 = getelementptr inbounds double, ptr %32, i64 %426
  %428 = sext i32 %423 to i64
  %429 = getelementptr inbounds double, ptr %32, i64 %428
  %430 = sext i32 %424 to i64
  %431 = getelementptr inbounds double, ptr %32, i64 %430
  call void @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 nonnull %427, ptr noundef nonnull %429, ptr noundef nonnull %431, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %432 = load i32, ptr %11, align 4, !tbaa !5
  %reass.sub1146 = sub i32 %432, %424
  %433 = add i32 %reass.sub1146, 1
  store i32 %433, ptr %14, align 4, !tbaa !5
  call void @dormbr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %2, ptr noundef nonnull %1, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %427, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %431, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %434 = load i32, ptr %11, align 4, !tbaa !5
  %reass.sub1147 = sub i32 %434, %424
  %435 = add i32 %reass.sub1147, 1
  store i32 %435, ptr %14, align 4, !tbaa !5
  call void @dorgbr_(ptr noundef nonnull @.str.5, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %0, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %429, ptr noundef nonnull %431, ptr noundef nonnull %14, ptr noundef nonnull %12) #4
  %436 = load i32, ptr %0, align 4, !tbaa !5
  %437 = sext i32 %436 to i64
  %438 = getelementptr double, ptr %32, i64 %437
  %439 = getelementptr i8, ptr %438, i64 8
  call void @dbdsqr_(ptr noundef nonnull @.str.2, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef %7, ptr noundef nonnull %10, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %439, ptr noundef nonnull %12) #4
  %440 = load i32, ptr %12, align 4, !tbaa !5
  %.not1058 = icmp eq i32 %440, 0
  br i1 %.not1058, label %441, label %492

441:                                              ; preds = %421
  %442 = load double, ptr %8, align 8, !tbaa !9
  %443 = load double, ptr %7, align 8, !tbaa !9
  %444 = fmul double %442, %443
  %445 = fcmp oge double %444, %184
  %446 = select i1 %445, double %444, double %184
  %447 = fcmp olt double %442, 0.000000e+00
  br i1 %447, label %448, label %452

448:                                              ; preds = %441
  %449 = fmul double %183, %443
  %450 = fcmp oge double %449, %184
  %451 = select i1 %450, double %449, double %184
  br label %452

452:                                              ; preds = %448, %441
  %.2 = phi double [ %451, %448 ], [ %446, %441 ]
  store i32 0, ptr %9, align 4, !tbaa !5
  %453 = load i32, ptr %0, align 4, !tbaa !5
  store i32 %453, ptr %14, align 4, !tbaa !5
  %.not10591129 = icmp slt i32 %453, 1
  br i1 %.not10591129, label %._crit_edge1133, label %.lr.ph1132.preheader

.lr.ph1132.preheader:                             ; preds = %452
  %454 = sext i32 %28 to i64
  %invariant.gep1170 = getelementptr double, ptr %30, i64 %454
  %invariant.gep1172 = getelementptr double, ptr %30, i64 %454
  br label %.lr.ph1132

.lr.ph1132:                                       ; preds = %.lr.ph1132.preheader, %462
  %indvars.iv1154 = phi i64 [ 1, %.lr.ph1132.preheader ], [ %indvars.iv.next1155, %462 ]
  %455 = getelementptr inbounds double, ptr %31, i64 %indvars.iv1154
  %456 = load double, ptr %455, align 8, !tbaa !9
  %457 = fcmp ogt double %456, %.2
  br i1 %457, label %458, label %461

458:                                              ; preds = %.lr.ph1132
  %gep1173 = getelementptr double, ptr %invariant.gep1172, i64 %indvars.iv1154
  call void @drscl_(ptr noundef nonnull %2, ptr noundef nonnull %455, ptr noundef %gep1173, ptr noundef nonnull %6) #4
  %459 = load i32, ptr %9, align 4, !tbaa !5
  %460 = add nsw i32 %459, 1
  store i32 %460, ptr %9, align 4, !tbaa !5
  br label %462

461:                                              ; preds = %.lr.ph1132
  %gep1171 = getelementptr double, ptr %invariant.gep1170, i64 %indvars.iv1154
  call void @dlaset_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull @c_b46, ptr noundef nonnull @c_b46, ptr noundef %gep1171, ptr noundef nonnull %6) #4
  br label %462

462:                                              ; preds = %458, %461
  %indvars.iv.next1155 = add nuw nsw i64 %indvars.iv1154, 1
  %463 = load i32, ptr %14, align 4, !tbaa !5
  %464 = sext i32 %463 to i64
  %.not1059.not = icmp slt i64 %indvars.iv1154, %464
  br i1 %.not1059.not, label %.lr.ph1132, label %._crit_edge1133, !llvm.loop !16

._crit_edge1133:                                  ; preds = %462, %452
  %465 = load i32, ptr %11, align 4, !tbaa !5
  %466 = load i32, ptr %6, align 4, !tbaa !5
  %467 = load i32, ptr %2, align 4, !tbaa !5
  %468 = mul nsw i32 %467, %466
  %.not1060 = icmp sge i32 %465, %468
  %469 = icmp sgt i32 %467, 1
  %or.cond1089 = and i1 %469, %.not1060
  br i1 %or.cond1089, label %470, label %471

470:                                              ; preds = %._crit_edge1133
  call void @dgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.11, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %0, ptr noundef nonnull @c_b79, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull @c_b46, ptr noundef %10, ptr noundef nonnull %6) #4
  call void @dlacpy_(ptr noundef nonnull @.str.9, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6) #4
  br label %.loopexit

471:                                              ; preds = %._crit_edge1133
  br i1 %469, label %472, label %487

472:                                              ; preds = %471
  %473 = load i32, ptr %1, align 4, !tbaa !5
  %474 = sdiv i32 %465, %473
  store i32 %467, ptr %14, align 4, !tbaa !5
  store i32 %474, ptr %15, align 4, !tbaa !5
  %invariant.gep1134 = getelementptr i8, ptr %30, i64 8
  %475 = icmp sgt i32 %474, -1
  br i1 %475, label %.lr.ph1139, label %.loopexit

.lr.ph1139:                                       ; preds = %472, %.lr.ph1139
  %.59981137 = phi i32 [ %482, %.lr.ph1139 ], [ 1, %472 ]
  %476 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub1148 = sub i32 %476, %.59981137
  %477 = add i32 %reass.sub1148, 1
  %478 = call i32 @llvm.smin.i32(i32 %477, i32 %474)
  store i32 %478, ptr %19, align 4, !tbaa !5
  %479 = mul nsw i32 %.59981137, %28
  %480 = sext i32 %479 to i64
  %gep1135 = getelementptr double, ptr %invariant.gep1134, i64 %480
  call void @dgemm_(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.11, ptr noundef nonnull %1, ptr noundef nonnull %19, ptr noundef nonnull %0, ptr noundef nonnull @c_b79, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %gep1135, ptr noundef nonnull %6, ptr noundef nonnull @c_b46, ptr noundef %10, ptr noundef nonnull %1) #4
  call void @dlacpy_(ptr noundef nonnull @.str.9, ptr noundef nonnull %1, ptr noundef nonnull %19, ptr noundef %10, ptr noundef nonnull %1, ptr noundef %gep1135, ptr noundef nonnull %6) #4
  %481 = load i32, ptr %15, align 4, !tbaa !5
  %482 = add nsw i32 %481, %.59981137
  %483 = icmp slt i32 %481, 0
  %484 = load i32, ptr %14, align 4
  %485 = icmp sge i32 %482, %484
  %486 = icmp sle i32 %482, %484
  %.in = select i1 %483, i1 %485, i1 %486
  br i1 %.in, label %.lr.ph1139, label %.loopexit, !llvm.loop !17

487:                                              ; preds = %471
  call void @dgemv_(ptr noundef nonnull @.str.3, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull @c_b79, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b46, ptr noundef %10, ptr noundef nonnull @c__1) #4
  call void @dcopy_(ptr noundef nonnull %1, ptr noundef %10, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull @c__1) #4
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph1117, %.lr.ph1139, %282, %472, %.loopexit1110, %487, %470, %280, %297
  %brmerge = or i1 %or.cond1081, %200
  br i1 %brmerge, label %.sink.split1180, label %488

.sink.split1180:                                  ; preds = %.loopexit
  %.mux = select i1 %or.cond1081, ptr %23, ptr %21
  call void @dlascl_(ptr noundef nonnull @.str.8, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %16, ptr noundef nonnull %.mux, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %12) #4
  call void @dlascl_(ptr noundef nonnull @.str.8, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %.mux, ptr noundef nonnull %16, ptr noundef nonnull %18, ptr noundef nonnull @c__1, ptr noundef %7, ptr noundef nonnull %18, ptr noundef nonnull %12) #4
  br label %488

488:                                              ; preds = %.loopexit, %.sink.split1180
  br i1 %or.cond1084.not, label %490, label %489

489:                                              ; preds = %488
  call void @dlascl_(ptr noundef nonnull @.str.8, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull %17, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %12) #4
  br label %492

490:                                              ; preds = %488
  br i1 %209, label %491, label %492

491:                                              ; preds = %490
  call void @dlascl_(ptr noundef nonnull @.str.8, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %21, ptr noundef nonnull %17, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %12) #4
  br label %492

492:                                              ; preds = %489, %491, %490, %421, %319, %228, %196
  store double %170, ptr %10, align 8, !tbaa !9
  br label %493

493:                                              ; preds = %175, %492, %181, %.thread1095
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #4
  ret void
}

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

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

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

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

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

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

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

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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