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

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i32, align 4

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

194:                                              ; preds = %30
  %195 = load ptr, ptr %32, align 8, !tbaa !5
  %196 = call i32 @lsame_(ptr noundef %195, ptr noundef @.str.2)
  %197 = icmp ne i32 %196, 0
  br label %198

198:                                              ; preds = %194, %30
  %199 = phi i1 [ true, %30 ], [ %197, %194 ]
  %200 = zext i1 %199 to i32
  store i32 %200, ptr %93, align 4, !tbaa !9
  %201 = load ptr, ptr %32, align 8, !tbaa !5
  %202 = call i32 @lsame_(ptr noundef %201, ptr noundef @.str.3)
  store i32 %202, ptr %94, align 4, !tbaa !9
  %203 = load ptr, ptr %33, align 8, !tbaa !5
  %204 = call i32 @lsame_(ptr noundef %203, ptr noundef @.str.4)
  store i32 %204, ptr %99, align 4, !tbaa !9
  %205 = load ptr, ptr %35, align 8, !tbaa !5
  %206 = call i32 @lsame_(ptr noundef %205, ptr noundef @.str)
  store i32 %206, ptr %98, align 4, !tbaa !9
  %207 = load ptr, ptr %35, align 8, !tbaa !5
  %208 = call i32 @lsame_(ptr noundef %207, ptr noundef @.str.5)
  store i32 %208, ptr %90, align 4, !tbaa !9
  %209 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 0, ptr %209, align 4, !tbaa !9
  %210 = load ptr, ptr %58, align 8, !tbaa !5
  %211 = load i32, ptr %210, align 4, !tbaa !9
  %212 = icmp eq i32 %211, -1
  br i1 %212, label %217, label %213

213:                                              ; preds = %198
  %214 = load ptr, ptr %60, align 8, !tbaa !5
  %215 = load i32, ptr %214, align 4, !tbaa !9
  %216 = icmp eq i32 %215, -1
  br label %217

217:                                              ; preds = %213, %198
  %218 = phi i1 [ true, %198 ], [ %216, %213 ]
  %219 = zext i1 %218 to i32
  store i32 %219, ptr %109, align 4, !tbaa !9
  %220 = load i32, ptr %93, align 4, !tbaa !9
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %231, label %222

222:                                              ; preds = %217
  %223 = load i32, ptr %94, align 4, !tbaa !9
  %224 = icmp ne i32 %223, 0
  br i1 %224, label %231, label %225

225:                                              ; preds = %222
  %226 = load ptr, ptr %32, align 8, !tbaa !5
  %227 = call i32 @lsame_(ptr noundef %226, ptr noundef @.str.6)
  %228 = icmp ne i32 %227, 0
  br i1 %228, label %231, label %229

229:                                              ; preds = %225
  %230 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -1, ptr %230, align 4, !tbaa !9
  br label %407

231:                                              ; preds = %225, %222, %217
  %232 = load i32, ptr %99, align 4, !tbaa !9
  %233 = icmp ne i32 %232, 0
  br i1 %233, label %244, label %234

234:                                              ; preds = %231
  %235 = load ptr, ptr %33, align 8, !tbaa !5
  %236 = call i32 @lsame_(ptr noundef %235, ptr noundef @.str.6)
  %237 = icmp ne i32 %236, 0
  br i1 %237, label %244, label %238

238:                                              ; preds = %234
  %239 = load ptr, ptr %33, align 8, !tbaa !5
  %240 = call i32 @lsame_(ptr noundef %239, ptr noundef @.str.7)
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %244, label %242

242:                                              ; preds = %238
  %243 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -2, ptr %243, align 4, !tbaa !9
  br label %406

244:                                              ; preds = %238, %234, %231
  %245 = load i32, ptr %110, align 4, !tbaa !9
  %246 = icmp ne i32 %245, 0
  br i1 %246, label %251, label %247

247:                                              ; preds = %244
  %248 = load ptr, ptr %34, align 8, !tbaa !5
  %249 = call i32 @lsame_(ptr noundef %248, ptr noundef @.str.6)
  %250 = icmp ne i32 %249, 0
  br i1 %250, label %251, label %257

251:                                              ; preds = %247, %244
  %252 = load i32, ptr %110, align 4, !tbaa !9
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %254, label %259

254:                                              ; preds = %251
  %255 = load i32, ptr %99, align 4, !tbaa !9
  %256 = icmp ne i32 %255, 0
  br i1 %256, label %259, label %257

257:                                              ; preds = %254, %247
  %258 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -3, ptr %258, align 4, !tbaa !9
  br label %405

259:                                              ; preds = %254, %251
  %260 = load i32, ptr %98, align 4, !tbaa !9
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %271, label %262

262:                                              ; preds = %259
  %263 = load i32, ptr %90, align 4, !tbaa !9
  %264 = icmp ne i32 %263, 0
  br i1 %264, label %271, label %265

265:                                              ; preds = %262
  %266 = load ptr, ptr %35, align 8, !tbaa !5
  %267 = call i32 @lsame_(ptr noundef %266, ptr noundef @.str.6)
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %271, label %269

269:                                              ; preds = %265
  %270 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -4, ptr %270, align 4, !tbaa !9
  br label %404

271:                                              ; preds = %265, %262, %259
  %272 = load ptr, ptr %36, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = icmp eq i32 %273, 1
  br i1 %274, label %289, label %275

275:                                              ; preds = %271
  %276 = load ptr, ptr %36, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  %278 = icmp eq i32 %277, 2
  br i1 %278, label %289, label %279

279:                                              ; preds = %275
  %280 = load ptr, ptr %36, align 8, !tbaa !5
  %281 = load i32, ptr %280, align 4, !tbaa !9
  %282 = icmp eq i32 %281, 3
  br i1 %282, label %289, label %283

283:                                              ; preds = %279
  %284 = load ptr, ptr %36, align 8, !tbaa !5
  %285 = load i32, ptr %284, align 4, !tbaa !9
  %286 = icmp eq i32 %285, 4
  br i1 %286, label %289, label %287

287:                                              ; preds = %283
  %288 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -5, ptr %288, align 4, !tbaa !9
  br label %403

289:                                              ; preds = %283, %279, %275, %271
  %290 = load ptr, ptr %37, align 8, !tbaa !5
  %291 = load i32, ptr %290, align 4, !tbaa !9
  %292 = icmp slt i32 %291, 0
  br i1 %292, label %293, label %295

293:                                              ; preds = %289
  %294 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -6, ptr %294, align 4, !tbaa !9
  br label %402

295:                                              ; preds = %289
  %296 = load ptr, ptr %38, align 8, !tbaa !5
  %297 = load i32, ptr %296, align 4, !tbaa !9
  %298 = icmp slt i32 %297, 0
  br i1 %298, label %305, label %299

299:                                              ; preds = %295
  %300 = load ptr, ptr %38, align 8, !tbaa !5
  %301 = load i32, ptr %300, align 4, !tbaa !9
  %302 = load ptr, ptr %37, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = icmp sgt i32 %301, %303
  br i1 %304, label %305, label %307

305:                                              ; preds = %299, %295
  %306 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -7, ptr %306, align 4, !tbaa !9
  br label %401

307:                                              ; preds = %299
  %308 = load ptr, ptr %40, align 8, !tbaa !5
  %309 = load i32, ptr %308, align 4, !tbaa !9
  %310 = load ptr, ptr %37, align 8, !tbaa !5
  %311 = load i32, ptr %310, align 4, !tbaa !9
  %312 = icmp slt i32 %309, %311
  br i1 %312, label %313, label %315

313:                                              ; preds = %307
  %314 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -9, ptr %314, align 4, !tbaa !9
  br label %400

315:                                              ; preds = %307
  %316 = load ptr, ptr %42, align 8, !tbaa !5
  %317 = load i32, ptr %316, align 4, !tbaa !9
  %318 = load ptr, ptr %37, align 8, !tbaa !5
  %319 = load i32, ptr %318, align 4, !tbaa !9
  %320 = icmp slt i32 %317, %319
  br i1 %320, label %321, label %323

321:                                              ; preds = %315
  %322 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -11, ptr %322, align 4, !tbaa !9
  br label %399

323:                                              ; preds = %315
  %324 = load ptr, ptr %43, align 8, !tbaa !5
  %325 = load i32, ptr %324, align 4, !tbaa !9
  %326 = icmp eq i32 %325, -2
  br i1 %326, label %343, label %327

327:                                              ; preds = %323
  %328 = load ptr, ptr %43, align 8, !tbaa !5
  %329 = load i32, ptr %328, align 4, !tbaa !9
  %330 = icmp eq i32 %329, -1
  br i1 %330, label %343, label %331

331:                                              ; preds = %327
  %332 = load ptr, ptr %43, align 8, !tbaa !5
  %333 = load i32, ptr %332, align 4, !tbaa !9
  %334 = icmp sge i32 %333, 1
  br i1 %334, label %335, label %341

335:                                              ; preds = %331
  %336 = load ptr, ptr %43, align 8, !tbaa !5
  %337 = load i32, ptr %336, align 4, !tbaa !9
  %338 = load ptr, ptr %38, align 8, !tbaa !5
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = icmp sle i32 %337, %339
  br i1 %340, label %343, label %341

341:                                              ; preds = %335, %331
  %342 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -12, ptr %342, align 4, !tbaa !9
  br label %398

343:                                              ; preds = %335, %327, %323
  %344 = load ptr, ptr %44, align 8, !tbaa !5
  %345 = load double, ptr %344, align 8, !tbaa !11
  %346 = load double, ptr %78, align 8, !tbaa !11
  %347 = fcmp olt double %345, %346
  br i1 %347, label %353, label %348

348:                                              ; preds = %343
  %349 = load ptr, ptr %44, align 8, !tbaa !5
  %350 = load double, ptr %349, align 8, !tbaa !11
  %351 = load double, ptr %117, align 8, !tbaa !11
  %352 = fcmp oge double %350, %351
  br i1 %352, label %353, label %355

353:                                              ; preds = %348, %343
  %354 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -13, ptr %354, align 4, !tbaa !9
  br label %397

355:                                              ; preds = %348
  %356 = load ptr, ptr %49, align 8, !tbaa !5
  %357 = load i32, ptr %356, align 4, !tbaa !9
  %358 = load ptr, ptr %37, align 8, !tbaa !5
  %359 = load i32, ptr %358, align 4, !tbaa !9
  %360 = icmp slt i32 %357, %359
  br i1 %360, label %361, label %363

361:                                              ; preds = %355
  %362 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -18, ptr %362, align 4, !tbaa !9
  br label %396

363:                                              ; preds = %355
  %364 = load i32, ptr %98, align 4, !tbaa !9
  %365 = icmp ne i32 %364, 0
  br i1 %365, label %369, label %366

366:                                              ; preds = %363
  %367 = load i32, ptr %90, align 4, !tbaa !9
  %368 = icmp ne i32 %367, 0
  br i1 %368, label %369, label %377

369:                                              ; preds = %366, %363
  %370 = load ptr, ptr %52, align 8, !tbaa !5
  %371 = load i32, ptr %370, align 4, !tbaa !9
  %372 = load ptr, ptr %37, align 8, !tbaa !5
  %373 = load i32, ptr %372, align 4, !tbaa !9
  %374 = icmp slt i32 %371, %373
  br i1 %374, label %375, label %377

375:                                              ; preds = %369
  %376 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -21, ptr %376, align 4, !tbaa !9
  br label %395

377:                                              ; preds = %369, %366
  %378 = load ptr, ptr %54, align 8, !tbaa !5
  %379 = load i32, ptr %378, align 4, !tbaa !9
  %380 = load ptr, ptr %38, align 8, !tbaa !5
  %381 = load i32, ptr %380, align 4, !tbaa !9
  %382 = icmp slt i32 %379, %381
  br i1 %382, label %383, label %385

383:                                              ; preds = %377
  %384 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -23, ptr %384, align 4, !tbaa !9
  br label %394

385:                                              ; preds = %377
  %386 = load ptr, ptr %56, align 8, !tbaa !5
  %387 = load i32, ptr %386, align 4, !tbaa !9
  %388 = load ptr, ptr %38, align 8, !tbaa !5
  %389 = load i32, ptr %388, align 4, !tbaa !9
  %390 = icmp slt i32 %387, %389
  br i1 %390, label %391, label %393

391:                                              ; preds = %385
  %392 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -25, ptr %392, align 4, !tbaa !9
  br label %393

393:                                              ; preds = %391, %385
  br label %394

394:                                              ; preds = %393, %383
  br label %395

395:                                              ; preds = %394, %375
  br label %396

396:                                              ; preds = %395, %361
  br label %397

397:                                              ; preds = %396, %353
  br label %398

398:                                              ; preds = %397, %341
  br label %399

399:                                              ; preds = %398, %321
  br label %400

400:                                              ; preds = %399, %313
  br label %401

401:                                              ; preds = %400, %305
  br label %402

402:                                              ; preds = %401, %293
  br label %403

403:                                              ; preds = %402, %287
  br label %404

404:                                              ; preds = %403, %269
  br label %405

405:                                              ; preds = %404, %257
  br label %406

406:                                              ; preds = %405, %242
  br label %407

407:                                              ; preds = %406, %229
  %408 = load ptr, ptr %61, align 8, !tbaa !5
  %409 = load i32, ptr %408, align 4, !tbaa !9
  %410 = icmp eq i32 %409, 0
  br i1 %410, label %411, label %1089

411:                                              ; preds = %407
  %412 = load ptr, ptr %38, align 8, !tbaa !5
  %413 = load i32, ptr %412, align 4, !tbaa !9
  %414 = icmp eq i32 %413, 0
  br i1 %414, label %415, label %429

415:                                              ; preds = %411
  %416 = load i32, ptr %109, align 4, !tbaa !9
  %417 = icmp ne i32 %416, 0
  br i1 %417, label %418, label %425

418:                                              ; preds = %415
  %419 = load ptr, ptr %59, align 8, !tbaa !5
  %420 = getelementptr inbounds i32, ptr %419, i64 1
  store i32 1, ptr %420, align 4, !tbaa !9
  %421 = load ptr, ptr %57, align 8, !tbaa !5
  %422 = getelementptr inbounds double, ptr %421, i64 1
  store double 2.000000e+00, ptr %422, align 8, !tbaa !11
  %423 = load ptr, ptr %57, align 8, !tbaa !5
  %424 = getelementptr inbounds double, ptr %423, i64 2
  store double 2.000000e+00, ptr %424, align 8, !tbaa !11
  br label %427

425:                                              ; preds = %415
  %426 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %426, align 4, !tbaa !9
  br label %427

427:                                              ; preds = %425, %418
  %428 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 1, ptr %428, align 4, !tbaa !9
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2534

429:                                              ; preds = %411
  %430 = load ptr, ptr %38, align 8, !tbaa !5
  %431 = load i32, ptr %430, align 4, !tbaa !9
  %432 = icmp sge i32 2, %431
  br i1 %432, label %433, label %434

433:                                              ; preds = %429
  br label %437

434:                                              ; preds = %429
  %435 = load ptr, ptr %38, align 8, !tbaa !5
  %436 = load i32, ptr %435, align 4, !tbaa !9
  br label %437

437:                                              ; preds = %434, %433
  %438 = phi i32 [ 2, %433 ], [ %436, %434 ]
  store i32 %438, ptr %102, align 4, !tbaa !9
  %439 = load ptr, ptr %38, align 8, !tbaa !5
  %440 = load i32, ptr %439, align 4, !tbaa !9
  %441 = icmp sge i32 2, %440
  br i1 %441, label %442, label %443

442:                                              ; preds = %437
  br label %446

443:                                              ; preds = %437
  %444 = load ptr, ptr %38, align 8, !tbaa !5
  %445 = load i32, ptr %444, align 4, !tbaa !9
  br label %446

446:                                              ; preds = %443, %442
  %447 = phi i32 [ 2, %442 ], [ %445, %443 ]
  store i32 %447, ptr %105, align 4, !tbaa !9
  store i32 1, ptr %97, align 4, !tbaa !9
  %448 = load ptr, ptr %36, align 8, !tbaa !5
  %449 = load i32, ptr %448, align 4, !tbaa !9
  %450 = icmp eq i32 %449, 1
  br i1 %450, label %451, label %578

451:                                              ; preds = %446
  store i32 1, ptr %74, align 4, !tbaa !9
  %452 = load ptr, ptr %37, align 8, !tbaa !5
  %453 = load i32, ptr %452, align 4, !tbaa !9
  %454 = load ptr, ptr %38, align 8, !tbaa !5
  %455 = load i32, ptr %454, align 4, !tbaa !9
  %456 = icmp sle i32 %453, %455
  br i1 %456, label %457, label %460

457:                                              ; preds = %451
  %458 = load ptr, ptr %37, align 8, !tbaa !5
  %459 = load i32, ptr %458, align 4, !tbaa !9
  br label %463

460:                                              ; preds = %451
  %461 = load ptr, ptr %38, align 8, !tbaa !5
  %462 = load i32, ptr %461, align 4, !tbaa !9
  br label %463

463:                                              ; preds = %460, %457
  %464 = phi i32 [ %459, %457 ], [ %462, %460 ]
  %465 = mul nsw i32 %464, 3
  %466 = load ptr, ptr %37, align 8, !tbaa !5
  %467 = load i32, ptr %466, align 4, !tbaa !9
  %468 = load ptr, ptr %38, align 8, !tbaa !5
  %469 = load i32, ptr %468, align 4, !tbaa !9
  %470 = icmp sge i32 %467, %469
  br i1 %470, label %471, label %474

471:                                              ; preds = %463
  %472 = load ptr, ptr %37, align 8, !tbaa !5
  %473 = load i32, ptr %472, align 4, !tbaa !9
  br label %477

474:                                              ; preds = %463
  %475 = load ptr, ptr %38, align 8, !tbaa !5
  %476 = load i32, ptr %475, align 4, !tbaa !9
  br label %477

477:                                              ; preds = %474, %471
  %478 = phi i32 [ %473, %471 ], [ %476, %474 ]
  %479 = add nsw i32 %465, %478
  store i32 %479, ptr %75, align 4, !tbaa !9
  %480 = load i32, ptr %74, align 4, !tbaa !9
  %481 = load i32, ptr %75, align 4, !tbaa !9
  %482 = icmp sge i32 %480, %481
  br i1 %482, label %483, label %485

483:                                              ; preds = %477
  %484 = load i32, ptr %74, align 4, !tbaa !9
  br label %487

485:                                              ; preds = %477
  %486 = load i32, ptr %75, align 4, !tbaa !9
  br label %487

487:                                              ; preds = %485, %483
  %488 = phi i32 [ %484, %483 ], [ %486, %485 ]
  store i32 %488, ptr %74, align 4, !tbaa !9
  %489 = load ptr, ptr %37, align 8, !tbaa !5
  %490 = load i32, ptr %489, align 4, !tbaa !9
  %491 = load ptr, ptr %38, align 8, !tbaa !5
  %492 = load i32, ptr %491, align 4, !tbaa !9
  %493 = icmp sle i32 %490, %492
  br i1 %493, label %494, label %497

494:                                              ; preds = %487
  %495 = load ptr, ptr %37, align 8, !tbaa !5
  %496 = load i32, ptr %495, align 4, !tbaa !9
  br label %500

497:                                              ; preds = %487
  %498 = load ptr, ptr %38, align 8, !tbaa !5
  %499 = load i32, ptr %498, align 4, !tbaa !9
  br label %500

500:                                              ; preds = %497, %494
  %501 = phi i32 [ %496, %494 ], [ %499, %497 ]
  %502 = mul nsw i32 %501, 5
  store i32 %502, ptr %75, align 4, !tbaa !9
  %503 = load i32, ptr %74, align 4, !tbaa !9
  %504 = load i32, ptr %75, align 4, !tbaa !9
  %505 = icmp sge i32 %503, %504
  br i1 %505, label %506, label %508

506:                                              ; preds = %500
  %507 = load i32, ptr %74, align 4, !tbaa !9
  br label %510

508:                                              ; preds = %500
  %509 = load i32, ptr %75, align 4, !tbaa !9
  br label %510

510:                                              ; preds = %508, %506
  %511 = phi i32 [ %507, %506 ], [ %509, %508 ]
  store i32 %511, ptr %108, align 4, !tbaa !9
  %512 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %512, ptr %74, align 4, !tbaa !9
  %513 = load ptr, ptr %38, align 8, !tbaa !5
  %514 = load i32, ptr %513, align 4, !tbaa !9
  %515 = load i32, ptr %108, align 4, !tbaa !9
  %516 = add nsw i32 %514, %515
  store i32 %516, ptr %75, align 4, !tbaa !9
  %517 = load i32, ptr %74, align 4, !tbaa !9
  %518 = load i32, ptr %75, align 4, !tbaa !9
  %519 = icmp sge i32 %517, %518
  br i1 %519, label %520, label %522

520:                                              ; preds = %510
  %521 = load i32, ptr %74, align 4, !tbaa !9
  br label %524

522:                                              ; preds = %510
  %523 = load i32, ptr %75, align 4, !tbaa !9
  br label %524

524:                                              ; preds = %522, %520
  %525 = phi i32 [ %521, %520 ], [ %523, %522 ]
  store i32 %525, ptr %102, align 4, !tbaa !9
  %526 = load i32, ptr %109, align 4, !tbaa !9
  %527 = icmp ne i32 %526, 0
  br i1 %527, label %528, label %577

528:                                              ; preds = %524
  %529 = load ptr, ptr %37, align 8, !tbaa !5
  %530 = load ptr, ptr %38, align 8, !tbaa !5
  %531 = load ptr, ptr %39, align 8, !tbaa !5
  %532 = load i32, ptr %63, align 4, !tbaa !9
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds double, ptr %531, i64 %533
  %535 = load ptr, ptr %40, align 8, !tbaa !5
  %536 = load ptr, ptr %57, align 8, !tbaa !5
  %537 = getelementptr inbounds double, ptr %536, i64 1
  %538 = load ptr, ptr %51, align 8, !tbaa !5
  %539 = load i32, ptr %69, align 4, !tbaa !9
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds double, ptr %538, i64 %540
  %542 = load ptr, ptr %52, align 8, !tbaa !5
  %543 = load ptr, ptr %53, align 8, !tbaa !5
  %544 = load i32, ptr %71, align 4, !tbaa !9
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds double, ptr %543, i64 %545
  %547 = load ptr, ptr %54, align 8, !tbaa !5
  %548 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 0
  %549 = call i32 @dgesvd_(ptr noundef @.str.8, ptr noundef @.str.1, ptr noundef %529, ptr noundef %530, ptr noundef %534, ptr noundef %535, ptr noundef %537, ptr noundef %541, ptr noundef %542, ptr noundef %546, ptr noundef %547, ptr noundef %548, ptr noundef @c_n1, ptr noundef %80)
  %550 = load i32, ptr %108, align 4, !tbaa !9
  store i32 %550, ptr %74, align 4, !tbaa !9
  %551 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 0
  %552 = load double, ptr %551, align 16, !tbaa !11
  %553 = fptosi double %552 to i32
  store i32 %553, ptr %75, align 4, !tbaa !9
  %554 = load i32, ptr %74, align 4, !tbaa !9
  %555 = load i32, ptr %75, align 4, !tbaa !9
  %556 = icmp sge i32 %554, %555
  br i1 %556, label %557, label %559

557:                                              ; preds = %528
  %558 = load i32, ptr %74, align 4, !tbaa !9
  br label %561

559:                                              ; preds = %528
  %560 = load i32, ptr %75, align 4, !tbaa !9
  br label %561

561:                                              ; preds = %559, %557
  %562 = phi i32 [ %558, %557 ], [ %560, %559 ]
  store i32 %562, ptr %107, align 4, !tbaa !9
  %563 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %563, ptr %74, align 4, !tbaa !9
  %564 = load ptr, ptr %38, align 8, !tbaa !5
  %565 = load i32, ptr %564, align 4, !tbaa !9
  %566 = load i32, ptr %107, align 4, !tbaa !9
  %567 = add nsw i32 %565, %566
  store i32 %567, ptr %75, align 4, !tbaa !9
  %568 = load i32, ptr %74, align 4, !tbaa !9
  %569 = load i32, ptr %75, align 4, !tbaa !9
  %570 = icmp sge i32 %568, %569
  br i1 %570, label %571, label %573

571:                                              ; preds = %561
  %572 = load i32, ptr %74, align 4, !tbaa !9
  br label %575

573:                                              ; preds = %561
  %574 = load i32, ptr %75, align 4, !tbaa !9
  br label %575

575:                                              ; preds = %573, %571
  %576 = phi i32 [ %572, %571 ], [ %574, %573 ]
  store i32 %576, ptr %105, align 4, !tbaa !9
  br label %577

577:                                              ; preds = %575, %524
  br label %956

578:                                              ; preds = %446
  %579 = load ptr, ptr %36, align 8, !tbaa !5
  %580 = load i32, ptr %579, align 4, !tbaa !9
  %581 = icmp eq i32 %580, 2
  br i1 %581, label %582, label %759

582:                                              ; preds = %578
  %583 = load ptr, ptr %37, align 8, !tbaa !5
  %584 = load i32, ptr %583, align 4, !tbaa !9
  %585 = load ptr, ptr %38, align 8, !tbaa !5
  %586 = load i32, ptr %585, align 4, !tbaa !9
  %587 = icmp sge i32 %584, %586
  br i1 %587, label %588, label %591

588:                                              ; preds = %582
  %589 = load ptr, ptr %37, align 8, !tbaa !5
  %590 = load i32, ptr %589, align 4, !tbaa !9
  br label %594

591:                                              ; preds = %582
  %592 = load ptr, ptr %38, align 8, !tbaa !5
  %593 = load i32, ptr %592, align 4, !tbaa !9
  br label %594

594:                                              ; preds = %591, %588
  %595 = phi i32 [ %590, %588 ], [ %593, %591 ]
  store i32 %595, ptr %74, align 4, !tbaa !9
  %596 = load ptr, ptr %37, align 8, !tbaa !5
  %597 = load i32, ptr %596, align 4, !tbaa !9
  %598 = load ptr, ptr %38, align 8, !tbaa !5
  %599 = load i32, ptr %598, align 4, !tbaa !9
  %600 = icmp sle i32 %597, %599
  br i1 %600, label %601, label %604

601:                                              ; preds = %594
  %602 = load ptr, ptr %37, align 8, !tbaa !5
  %603 = load i32, ptr %602, align 4, !tbaa !9
  br label %607

604:                                              ; preds = %594
  %605 = load ptr, ptr %38, align 8, !tbaa !5
  %606 = load i32, ptr %605, align 4, !tbaa !9
  br label %607

607:                                              ; preds = %604, %601
  %608 = phi i32 [ %603, %601 ], [ %606, %604 ]
  %609 = mul nsw i32 %608, 5
  %610 = load ptr, ptr %37, align 8, !tbaa !5
  %611 = load i32, ptr %610, align 4, !tbaa !9
  %612 = load ptr, ptr %38, align 8, !tbaa !5
  %613 = load i32, ptr %612, align 4, !tbaa !9
  %614 = icmp sle i32 %611, %613
  br i1 %614, label %615, label %618

615:                                              ; preds = %607
  %616 = load ptr, ptr %37, align 8, !tbaa !5
  %617 = load i32, ptr %616, align 4, !tbaa !9
  br label %621

618:                                              ; preds = %607
  %619 = load ptr, ptr %38, align 8, !tbaa !5
  %620 = load i32, ptr %619, align 4, !tbaa !9
  br label %621

621:                                              ; preds = %618, %615
  %622 = phi i32 [ %617, %615 ], [ %620, %618 ]
  %623 = mul nsw i32 %609, %622
  %624 = load ptr, ptr %37, align 8, !tbaa !5
  %625 = load i32, ptr %624, align 4, !tbaa !9
  %626 = load ptr, ptr %38, align 8, !tbaa !5
  %627 = load i32, ptr %626, align 4, !tbaa !9
  %628 = icmp sle i32 %625, %627
  br i1 %628, label %629, label %632

629:                                              ; preds = %621
  %630 = load ptr, ptr %37, align 8, !tbaa !5
  %631 = load i32, ptr %630, align 4, !tbaa !9
  br label %635

632:                                              ; preds = %621
  %633 = load ptr, ptr %38, align 8, !tbaa !5
  %634 = load i32, ptr %633, align 4, !tbaa !9
  br label %635

635:                                              ; preds = %632, %629
  %636 = phi i32 [ %631, %629 ], [ %634, %632 ]
  %637 = shl i32 %636, 2
  %638 = add nsw i32 %623, %637
  store i32 %638, ptr %75, align 4, !tbaa !9
  %639 = load ptr, ptr %37, align 8, !tbaa !5
  %640 = load i32, ptr %639, align 4, !tbaa !9
  %641 = load ptr, ptr %38, align 8, !tbaa !5
  %642 = load i32, ptr %641, align 4, !tbaa !9
  %643 = icmp sle i32 %640, %642
  br i1 %643, label %644, label %647

644:                                              ; preds = %635
  %645 = load ptr, ptr %37, align 8, !tbaa !5
  %646 = load i32, ptr %645, align 4, !tbaa !9
  br label %650

647:                                              ; preds = %635
  %648 = load ptr, ptr %38, align 8, !tbaa !5
  %649 = load i32, ptr %648, align 4, !tbaa !9
  br label %650

650:                                              ; preds = %647, %644
  %651 = phi i32 [ %646, %644 ], [ %649, %647 ]
  %652 = mul nsw i32 %651, 3
  %653 = load ptr, ptr %37, align 8, !tbaa !5
  %654 = load i32, ptr %653, align 4, !tbaa !9
  %655 = load ptr, ptr %38, align 8, !tbaa !5
  %656 = load i32, ptr %655, align 4, !tbaa !9
  %657 = icmp sle i32 %654, %656
  br i1 %657, label %658, label %661

658:                                              ; preds = %650
  %659 = load ptr, ptr %37, align 8, !tbaa !5
  %660 = load i32, ptr %659, align 4, !tbaa !9
  br label %664

661:                                              ; preds = %650
  %662 = load ptr, ptr %38, align 8, !tbaa !5
  %663 = load i32, ptr %662, align 4, !tbaa !9
  br label %664

664:                                              ; preds = %661, %658
  %665 = phi i32 [ %660, %658 ], [ %663, %661 ]
  %666 = mul nsw i32 %652, %665
  %667 = load i32, ptr %74, align 4, !tbaa !9
  %668 = load i32, ptr %75, align 4, !tbaa !9
  %669 = icmp sge i32 %667, %668
  br i1 %669, label %670, label %672

670:                                              ; preds = %664
  %671 = load i32, ptr %74, align 4, !tbaa !9
  br label %674

672:                                              ; preds = %664
  %673 = load i32, ptr %75, align 4, !tbaa !9
  br label %674

674:                                              ; preds = %672, %670
  %675 = phi i32 [ %671, %670 ], [ %673, %672 ]
  %676 = add nsw i32 %666, %675
  store i32 %676, ptr %96, align 4, !tbaa !9
  %677 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %677, ptr %74, align 4, !tbaa !9
  %678 = load ptr, ptr %38, align 8, !tbaa !5
  %679 = load i32, ptr %678, align 4, !tbaa !9
  %680 = load i32, ptr %96, align 4, !tbaa !9
  %681 = add nsw i32 %679, %680
  store i32 %681, ptr %75, align 4, !tbaa !9
  %682 = load i32, ptr %74, align 4, !tbaa !9
  %683 = load i32, ptr %75, align 4, !tbaa !9
  %684 = icmp sge i32 %682, %683
  br i1 %684, label %685, label %687

685:                                              ; preds = %674
  %686 = load i32, ptr %74, align 4, !tbaa !9
  br label %689

687:                                              ; preds = %674
  %688 = load i32, ptr %75, align 4, !tbaa !9
  br label %689

689:                                              ; preds = %687, %685
  %690 = phi i32 [ %686, %685 ], [ %688, %687 ]
  store i32 %690, ptr %102, align 4, !tbaa !9
  %691 = load ptr, ptr %37, align 8, !tbaa !5
  %692 = load i32, ptr %691, align 4, !tbaa !9
  %693 = load ptr, ptr %38, align 8, !tbaa !5
  %694 = load i32, ptr %693, align 4, !tbaa !9
  %695 = icmp sle i32 %692, %694
  br i1 %695, label %696, label %699

696:                                              ; preds = %689
  %697 = load ptr, ptr %37, align 8, !tbaa !5
  %698 = load i32, ptr %697, align 4, !tbaa !9
  br label %702

699:                                              ; preds = %689
  %700 = load ptr, ptr %38, align 8, !tbaa !5
  %701 = load i32, ptr %700, align 4, !tbaa !9
  br label %702

702:                                              ; preds = %699, %696
  %703 = phi i32 [ %698, %696 ], [ %701, %699 ]
  %704 = shl i32 %703, 3
  store i32 %704, ptr %97, align 4, !tbaa !9
  %705 = load i32, ptr %109, align 4, !tbaa !9
  %706 = icmp ne i32 %705, 0
  br i1 %706, label %707, label %758

707:                                              ; preds = %702
  %708 = load ptr, ptr %37, align 8, !tbaa !5
  %709 = load ptr, ptr %38, align 8, !tbaa !5
  %710 = load ptr, ptr %39, align 8, !tbaa !5
  %711 = load i32, ptr %63, align 4, !tbaa !9
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds double, ptr %710, i64 %712
  %714 = load ptr, ptr %40, align 8, !tbaa !5
  %715 = load ptr, ptr %57, align 8, !tbaa !5
  %716 = getelementptr inbounds double, ptr %715, i64 1
  %717 = load ptr, ptr %51, align 8, !tbaa !5
  %718 = load i32, ptr %69, align 4, !tbaa !9
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds double, ptr %717, i64 %719
  %721 = load ptr, ptr %52, align 8, !tbaa !5
  %722 = load ptr, ptr %53, align 8, !tbaa !5
  %723 = load i32, ptr %71, align 4, !tbaa !9
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds double, ptr %722, i64 %724
  %726 = load ptr, ptr %54, align 8, !tbaa !5
  %727 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 0
  %728 = load ptr, ptr %59, align 8, !tbaa !5
  %729 = getelementptr inbounds i32, ptr %728, i64 1
  %730 = call i32 @dgesdd_(ptr noundef @.str.8, ptr noundef %708, ptr noundef %709, ptr noundef %713, ptr noundef %714, ptr noundef %716, ptr noundef %720, ptr noundef %721, ptr noundef %725, ptr noundef %726, ptr noundef %727, ptr noundef @c_n1, ptr noundef %729, ptr noundef %80)
  %731 = load i32, ptr %96, align 4, !tbaa !9
  store i32 %731, ptr %74, align 4, !tbaa !9
  %732 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 0
  %733 = load double, ptr %732, align 16, !tbaa !11
  %734 = fptosi double %733 to i32
  store i32 %734, ptr %75, align 4, !tbaa !9
  %735 = load i32, ptr %74, align 4, !tbaa !9
  %736 = load i32, ptr %75, align 4, !tbaa !9
  %737 = icmp sge i32 %735, %736
  br i1 %737, label %738, label %740

738:                                              ; preds = %707
  %739 = load i32, ptr %74, align 4, !tbaa !9
  br label %742

740:                                              ; preds = %707
  %741 = load i32, ptr %75, align 4, !tbaa !9
  br label %742

742:                                              ; preds = %740, %738
  %743 = phi i32 [ %739, %738 ], [ %741, %740 ]
  store i32 %743, ptr %95, align 4, !tbaa !9
  %744 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %744, ptr %74, align 4, !tbaa !9
  %745 = load ptr, ptr %38, align 8, !tbaa !5
  %746 = load i32, ptr %745, align 4, !tbaa !9
  %747 = load i32, ptr %95, align 4, !tbaa !9
  %748 = add nsw i32 %746, %747
  store i32 %748, ptr %75, align 4, !tbaa !9
  %749 = load i32, ptr %74, align 4, !tbaa !9
  %750 = load i32, ptr %75, align 4, !tbaa !9
  %751 = icmp sge i32 %749, %750
  br i1 %751, label %752, label %754

752:                                              ; preds = %742
  %753 = load i32, ptr %74, align 4, !tbaa !9
  br label %756

754:                                              ; preds = %742
  %755 = load i32, ptr %75, align 4, !tbaa !9
  br label %756

756:                                              ; preds = %754, %752
  %757 = phi i32 [ %753, %752 ], [ %755, %754 ]
  store i32 %757, ptr %105, align 4, !tbaa !9
  br label %758

758:                                              ; preds = %756, %702
  br label %955

759:                                              ; preds = %578
  %760 = load ptr, ptr %36, align 8, !tbaa !5
  %761 = load i32, ptr %760, align 4, !tbaa !9
  %762 = icmp eq i32 %761, 3
  br i1 %762, label %763, label %848

763:                                              ; preds = %759
  %764 = load ptr, ptr %37, align 8, !tbaa !5
  %765 = load ptr, ptr %38, align 8, !tbaa !5
  %766 = load ptr, ptr %39, align 8, !tbaa !5
  %767 = load i32, ptr %63, align 4, !tbaa !9
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds double, ptr %766, i64 %768
  %770 = load ptr, ptr %40, align 8, !tbaa !5
  %771 = load ptr, ptr %57, align 8, !tbaa !5
  %772 = getelementptr inbounds double, ptr %771, i64 1
  %773 = load ptr, ptr %48, align 8, !tbaa !5
  %774 = load i32, ptr %67, align 4, !tbaa !9
  %775 = sext i32 %774 to i64
  %776 = getelementptr inbounds double, ptr %773, i64 %775
  %777 = load ptr, ptr %49, align 8, !tbaa !5
  %778 = load ptr, ptr %53, align 8, !tbaa !5
  %779 = load i32, ptr %71, align 4, !tbaa !9
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds double, ptr %778, i64 %780
  %782 = load ptr, ptr %54, align 8, !tbaa !5
  %783 = load ptr, ptr %59, align 8, !tbaa !5
  %784 = getelementptr inbounds i32, ptr %783, i64 1
  %785 = load ptr, ptr %60, align 8, !tbaa !5
  %786 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 0
  %787 = getelementptr inbounds [2 x double], ptr %115, i64 0, i64 0
  %788 = call i32 @dgesvdq_(ptr noundef @.str.9, ptr noundef @.str.10, ptr noundef @.str.6, ptr noundef @.str, ptr noundef @.str, ptr noundef %764, ptr noundef %765, ptr noundef %769, ptr noundef %770, ptr noundef %772, ptr noundef %776, ptr noundef %777, ptr noundef %781, ptr noundef %782, ptr noundef %104, ptr noundef %784, ptr noundef %785, ptr noundef %786, ptr noundef @c_n1, ptr noundef %787, ptr noundef @c_n1, ptr noundef %80)
  %789 = load ptr, ptr %59, align 8, !tbaa !5
  %790 = getelementptr inbounds i32, ptr %789, i64 1
  %791 = load i32, ptr %790, align 4, !tbaa !9
  store i32 %791, ptr %97, align 4, !tbaa !9
  %792 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 1
  %793 = load double, ptr %792, align 8, !tbaa !11
  %794 = fptosi double %793 to i32
  store i32 %794, ptr %114, align 4, !tbaa !9
  %795 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %795, ptr %74, align 4, !tbaa !9
  %796 = load ptr, ptr %38, align 8, !tbaa !5
  %797 = load i32, ptr %796, align 4, !tbaa !9
  %798 = load i32, ptr %114, align 4, !tbaa !9
  %799 = add nsw i32 %797, %798
  %800 = getelementptr inbounds [2 x double], ptr %115, i64 0, i64 0
  %801 = load double, ptr %800, align 16, !tbaa !11
  %802 = fptosi double %801 to i32
  %803 = add nsw i32 %799, %802
  store i32 %803, ptr %75, align 4, !tbaa !9
  %804 = load i32, ptr %74, align 4, !tbaa !9
  %805 = load i32, ptr %75, align 4, !tbaa !9
  %806 = icmp sge i32 %804, %805
  br i1 %806, label %807, label %809

807:                                              ; preds = %763
  %808 = load i32, ptr %74, align 4, !tbaa !9
  br label %811

809:                                              ; preds = %763
  %810 = load i32, ptr %75, align 4, !tbaa !9
  br label %811

811:                                              ; preds = %809, %807
  %812 = phi i32 [ %808, %807 ], [ %810, %809 ]
  store i32 %812, ptr %102, align 4, !tbaa !9
  %813 = load i32, ptr %109, align 4, !tbaa !9
  %814 = icmp ne i32 %813, 0
  br i1 %814, label %815, label %847

815:                                              ; preds = %811
  %816 = load i32, ptr %114, align 4, !tbaa !9
  store i32 %816, ptr %74, align 4, !tbaa !9
  %817 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 0
  %818 = load double, ptr %817, align 16, !tbaa !11
  %819 = fptosi double %818 to i32
  store i32 %819, ptr %75, align 4, !tbaa !9
  %820 = load i32, ptr %74, align 4, !tbaa !9
  %821 = load i32, ptr %75, align 4, !tbaa !9
  %822 = icmp sge i32 %820, %821
  br i1 %822, label %823, label %825

823:                                              ; preds = %815
  %824 = load i32, ptr %74, align 4, !tbaa !9
  br label %827

825:                                              ; preds = %815
  %826 = load i32, ptr %75, align 4, !tbaa !9
  br label %827

827:                                              ; preds = %825, %823
  %828 = phi i32 [ %824, %823 ], [ %826, %825 ]
  store i32 %828, ptr %113, align 4, !tbaa !9
  %829 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %829, ptr %74, align 4, !tbaa !9
  %830 = load ptr, ptr %38, align 8, !tbaa !5
  %831 = load i32, ptr %830, align 4, !tbaa !9
  %832 = load i32, ptr %113, align 4, !tbaa !9
  %833 = add nsw i32 %831, %832
  %834 = getelementptr inbounds [2 x double], ptr %115, i64 0, i64 0
  %835 = load double, ptr %834, align 16, !tbaa !11
  %836 = fptosi double %835 to i32
  %837 = add nsw i32 %833, %836
  store i32 %837, ptr %75, align 4, !tbaa !9
  %838 = load i32, ptr %74, align 4, !tbaa !9
  %839 = load i32, ptr %75, align 4, !tbaa !9
  %840 = icmp sge i32 %838, %839
  br i1 %840, label %841, label %843

841:                                              ; preds = %827
  %842 = load i32, ptr %74, align 4, !tbaa !9
  br label %845

843:                                              ; preds = %827
  %844 = load i32, ptr %75, align 4, !tbaa !9
  br label %845

845:                                              ; preds = %843, %841
  %846 = phi i32 [ %842, %841 ], [ %844, %843 ]
  store i32 %846, ptr %105, align 4, !tbaa !9
  br label %847

847:                                              ; preds = %845, %811
  br label %954

848:                                              ; preds = %759
  %849 = load ptr, ptr %36, align 8, !tbaa !5
  %850 = load i32, ptr %849, align 4, !tbaa !9
  %851 = icmp eq i32 %850, 4
  br i1 %851, label %852, label %953

852:                                              ; preds = %848
  %853 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  store i8 74, ptr %853, align 1, !tbaa !13
  store i32 7, ptr %74, align 4, !tbaa !9
  %854 = load ptr, ptr %37, align 8, !tbaa !5
  %855 = load i32, ptr %854, align 4, !tbaa !9
  %856 = shl i32 %855, 1
  %857 = load ptr, ptr %38, align 8, !tbaa !5
  %858 = load i32, ptr %857, align 4, !tbaa !9
  %859 = add nsw i32 %856, %858
  store i32 %859, ptr %75, align 4, !tbaa !9
  %860 = load i32, ptr %74, align 4, !tbaa !9
  %861 = load i32, ptr %75, align 4, !tbaa !9
  %862 = icmp sge i32 %860, %861
  br i1 %862, label %863, label %865

863:                                              ; preds = %852
  %864 = load i32, ptr %74, align 4, !tbaa !9
  br label %867

865:                                              ; preds = %852
  %866 = load i32, ptr %75, align 4, !tbaa !9
  br label %867

867:                                              ; preds = %865, %863
  %868 = phi i32 [ %864, %863 ], [ %866, %865 ]
  store i32 %868, ptr %74, align 4, !tbaa !9
  %869 = load ptr, ptr %38, align 8, !tbaa !5
  %870 = load i32, ptr %869, align 4, !tbaa !9
  %871 = shl i32 %870, 2
  %872 = load ptr, ptr %38, align 8, !tbaa !5
  %873 = load i32, ptr %872, align 4, !tbaa !9
  %874 = load ptr, ptr %38, align 8, !tbaa !5
  %875 = load i32, ptr %874, align 4, !tbaa !9
  %876 = mul nsw i32 %873, %875
  %877 = add nsw i32 %871, %876
  store i32 %877, ptr %75, align 4, !tbaa !9
  %878 = load i32, ptr %74, align 4, !tbaa !9
  %879 = load i32, ptr %75, align 4, !tbaa !9
  %880 = icmp sge i32 %878, %879
  br i1 %880, label %881, label %883

881:                                              ; preds = %867
  %882 = load i32, ptr %74, align 4, !tbaa !9
  br label %885

883:                                              ; preds = %867
  %884 = load i32, ptr %75, align 4, !tbaa !9
  br label %885

885:                                              ; preds = %883, %881
  %886 = phi i32 [ %882, %881 ], [ %884, %883 ]
  store i32 %886, ptr %74, align 4, !tbaa !9
  %887 = load ptr, ptr %38, align 8, !tbaa !5
  %888 = load i32, ptr %887, align 4, !tbaa !9
  %889 = shl i32 %888, 1
  %890 = load ptr, ptr %38, align 8, !tbaa !5
  %891 = load i32, ptr %890, align 4, !tbaa !9
  %892 = load ptr, ptr %38, align 8, !tbaa !5
  %893 = load i32, ptr %892, align 4, !tbaa !9
  %894 = mul nsw i32 %891, %893
  %895 = add nsw i32 %889, %894
  %896 = add nsw i32 %895, 6
  store i32 %896, ptr %75, align 4, !tbaa !9
  %897 = load i32, ptr %74, align 4, !tbaa !9
  %898 = load i32, ptr %75, align 4, !tbaa !9
  %899 = icmp sge i32 %897, %898
  br i1 %899, label %900, label %902

900:                                              ; preds = %885
  %901 = load i32, ptr %74, align 4, !tbaa !9
  br label %904

902:                                              ; preds = %885
  %903 = load i32, ptr %75, align 4, !tbaa !9
  br label %904

904:                                              ; preds = %902, %900
  %905 = phi i32 [ %901, %900 ], [ %903, %902 ]
  store i32 %905, ptr %112, align 4, !tbaa !9
  %906 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %906, ptr %74, align 4, !tbaa !9
  %907 = load ptr, ptr %38, align 8, !tbaa !5
  %908 = load i32, ptr %907, align 4, !tbaa !9
  %909 = load i32, ptr %112, align 4, !tbaa !9
  %910 = add nsw i32 %908, %909
  store i32 %910, ptr %75, align 4, !tbaa !9
  %911 = load i32, ptr %74, align 4, !tbaa !9
  %912 = load i32, ptr %75, align 4, !tbaa !9
  %913 = icmp sge i32 %911, %912
  br i1 %913, label %914, label %916

914:                                              ; preds = %904
  %915 = load i32, ptr %74, align 4, !tbaa !9
  br label %918

916:                                              ; preds = %904
  %917 = load i32, ptr %75, align 4, !tbaa !9
  br label %918

918:                                              ; preds = %916, %914
  %919 = phi i32 [ %915, %914 ], [ %917, %916 ]
  store i32 %919, ptr %102, align 4, !tbaa !9
  store i32 3, ptr %74, align 4, !tbaa !9
  %920 = load ptr, ptr %37, align 8, !tbaa !5
  %921 = load i32, ptr %920, align 4, !tbaa !9
  %922 = load ptr, ptr %38, align 8, !tbaa !5
  %923 = load i32, ptr %922, align 4, !tbaa !9
  %924 = mul nsw i32 %923, 3
  %925 = add nsw i32 %921, %924
  store i32 %925, ptr %75, align 4, !tbaa !9
  %926 = load i32, ptr %74, align 4, !tbaa !9
  %927 = load i32, ptr %75, align 4, !tbaa !9
  %928 = icmp sge i32 %926, %927
  br i1 %928, label %929, label %931

929:                                              ; preds = %918
  %930 = load i32, ptr %74, align 4, !tbaa !9
  br label %933

931:                                              ; preds = %918
  %932 = load i32, ptr %75, align 4, !tbaa !9
  br label %933

933:                                              ; preds = %931, %929
  %934 = phi i32 [ %930, %929 ], [ %932, %931 ]
  store i32 %934, ptr %97, align 4, !tbaa !9
  %935 = load i32, ptr %109, align 4, !tbaa !9
  %936 = icmp ne i32 %935, 0
  br i1 %936, label %937, label %952

937:                                              ; preds = %933
  %938 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %938, ptr %74, align 4, !tbaa !9
  %939 = load ptr, ptr %38, align 8, !tbaa !5
  %940 = load i32, ptr %939, align 4, !tbaa !9
  %941 = load i32, ptr %112, align 4, !tbaa !9
  %942 = add nsw i32 %940, %941
  store i32 %942, ptr %75, align 4, !tbaa !9
  %943 = load i32, ptr %74, align 4, !tbaa !9
  %944 = load i32, ptr %75, align 4, !tbaa !9
  %945 = icmp sge i32 %943, %944
  br i1 %945, label %946, label %948

946:                                              ; preds = %937
  %947 = load i32, ptr %74, align 4, !tbaa !9
  br label %950

948:                                              ; preds = %937
  %949 = load i32, ptr %75, align 4, !tbaa !9
  br label %950

950:                                              ; preds = %948, %946
  %951 = phi i32 [ %947, %946 ], [ %949, %948 ]
  store i32 %951, ptr %105, align 4, !tbaa !9
  br label %952

952:                                              ; preds = %950, %933
  br label %953

953:                                              ; preds = %952, %848
  br label %954

954:                                              ; preds = %953, %847
  br label %955

955:                                              ; preds = %954, %758
  br label %956

956:                                              ; preds = %955, %577
  %957 = load i32, ptr %99, align 4, !tbaa !9
  %958 = icmp ne i32 %957, 0
  br i1 %958, label %966, label %959

959:                                              ; preds = %956
  %960 = load i32, ptr %90, align 4, !tbaa !9
  %961 = icmp ne i32 %960, 0
  br i1 %961, label %966, label %962

962:                                              ; preds = %959
  %963 = load ptr, ptr %33, align 8, !tbaa !5
  %964 = call i32 @lsame_(ptr noundef %963, ptr noundef @.str.7)
  %965 = icmp ne i32 %964, 0
  br i1 %965, label %966, label %968

966:                                              ; preds = %962, %959, %956
  %967 = getelementptr inbounds [1 x i8], ptr %89, i64 0, i64 0
  store i8 86, ptr %967, align 1, !tbaa !13
  br label %970

968:                                              ; preds = %962
  %969 = getelementptr inbounds [1 x i8], ptr %89, i64 0, i64 0
  store i8 78, ptr %969, align 1, !tbaa !13
  br label %970

970:                                              ; preds = %968, %966
  %971 = getelementptr inbounds [1 x i8], ptr %89, i64 0, i64 0
  %972 = call i32 @lsame_(ptr noundef %971, ptr noundef @.str.4)
  %973 = icmp ne i32 %972, 0
  br i1 %973, label %974, label %987

974:                                              ; preds = %970
  store i32 1, ptr %74, align 4, !tbaa !9
  %975 = load ptr, ptr %38, align 8, !tbaa !5
  %976 = load i32, ptr %975, align 4, !tbaa !9
  %977 = shl i32 %976, 2
  store i32 %977, ptr %75, align 4, !tbaa !9
  %978 = load i32, ptr %74, align 4, !tbaa !9
  %979 = load i32, ptr %75, align 4, !tbaa !9
  %980 = icmp sge i32 %978, %979
  br i1 %980, label %981, label %983

981:                                              ; preds = %974
  %982 = load i32, ptr %74, align 4, !tbaa !9
  br label %985

983:                                              ; preds = %974
  %984 = load i32, ptr %75, align 4, !tbaa !9
  br label %985

985:                                              ; preds = %983, %981
  %986 = phi i32 [ %982, %981 ], [ %984, %983 ]
  store i32 %986, ptr %103, align 4, !tbaa !9
  br label %1000

987:                                              ; preds = %970
  store i32 1, ptr %74, align 4, !tbaa !9
  %988 = load ptr, ptr %38, align 8, !tbaa !5
  %989 = load i32, ptr %988, align 4, !tbaa !9
  %990 = mul nsw i32 %989, 3
  store i32 %990, ptr %75, align 4, !tbaa !9
  %991 = load i32, ptr %74, align 4, !tbaa !9
  %992 = load i32, ptr %75, align 4, !tbaa !9
  %993 = icmp sge i32 %991, %992
  br i1 %993, label %994, label %996

994:                                              ; preds = %987
  %995 = load i32, ptr %74, align 4, !tbaa !9
  br label %998

996:                                              ; preds = %987
  %997 = load i32, ptr %75, align 4, !tbaa !9
  br label %998

998:                                              ; preds = %996, %994
  %999 = phi i32 [ %995, %994 ], [ %997, %996 ]
  store i32 %999, ptr %103, align 4, !tbaa !9
  br label %1000

1000:                                             ; preds = %998, %985
  %1001 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %1001, ptr %74, align 4, !tbaa !9
  %1002 = load ptr, ptr %38, align 8, !tbaa !5
  %1003 = load i32, ptr %1002, align 4, !tbaa !9
  %1004 = load i32, ptr %103, align 4, !tbaa !9
  %1005 = add nsw i32 %1003, %1004
  store i32 %1005, ptr %75, align 4, !tbaa !9
  %1006 = load i32, ptr %74, align 4, !tbaa !9
  %1007 = load i32, ptr %75, align 4, !tbaa !9
  %1008 = icmp sge i32 %1006, %1007
  br i1 %1008, label %1009, label %1011

1009:                                             ; preds = %1000
  %1010 = load i32, ptr %74, align 4, !tbaa !9
  br label %1013

1011:                                             ; preds = %1000
  %1012 = load i32, ptr %75, align 4, !tbaa !9
  br label %1013

1013:                                             ; preds = %1011, %1009
  %1014 = phi i32 [ %1010, %1009 ], [ %1012, %1011 ]
  store i32 %1014, ptr %102, align 4, !tbaa !9
  %1015 = load i32, ptr %109, align 4, !tbaa !9
  %1016 = icmp ne i32 %1015, 0
  br i1 %1016, label %1017, label %1068

1017:                                             ; preds = %1013
  %1018 = getelementptr inbounds [1 x i8], ptr %89, i64 0, i64 0
  %1019 = load ptr, ptr %38, align 8, !tbaa !5
  %1020 = load ptr, ptr %55, align 8, !tbaa !5
  %1021 = load i32, ptr %73, align 4, !tbaa !9
  %1022 = sext i32 %1021 to i64
  %1023 = getelementptr inbounds double, ptr %1020, i64 %1022
  %1024 = load ptr, ptr %56, align 8, !tbaa !5
  %1025 = load ptr, ptr %46, align 8, !tbaa !5
  %1026 = getelementptr inbounds double, ptr %1025, i64 1
  %1027 = load ptr, ptr %47, align 8, !tbaa !5
  %1028 = getelementptr inbounds double, ptr %1027, i64 1
  %1029 = load ptr, ptr %53, align 8, !tbaa !5
  %1030 = load i32, ptr %71, align 4, !tbaa !9
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds double, ptr %1029, i64 %1031
  %1033 = load ptr, ptr %54, align 8, !tbaa !5
  %1034 = load ptr, ptr %53, align 8, !tbaa !5
  %1035 = load i32, ptr %71, align 4, !tbaa !9
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds double, ptr %1034, i64 %1036
  %1038 = load ptr, ptr %54, align 8, !tbaa !5
  %1039 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 0
  %1040 = call i32 @dgeev_(ptr noundef @.str.6, ptr noundef %1018, ptr noundef %1019, ptr noundef %1023, ptr noundef %1024, ptr noundef %1026, ptr noundef %1028, ptr noundef %1032, ptr noundef %1033, ptr noundef %1037, ptr noundef %1038, ptr noundef %1039, ptr noundef @c_n1, ptr noundef %80)
  %1041 = load i32, ptr %103, align 4, !tbaa !9
  store i32 %1041, ptr %74, align 4, !tbaa !9
  %1042 = getelementptr inbounds [2 x double], ptr %106, i64 0, i64 0
  %1043 = load double, ptr %1042, align 16, !tbaa !11
  %1044 = fptosi double %1043 to i32
  store i32 %1044, ptr %75, align 4, !tbaa !9
  %1045 = load i32, ptr %74, align 4, !tbaa !9
  %1046 = load i32, ptr %75, align 4, !tbaa !9
  %1047 = icmp sge i32 %1045, %1046
  br i1 %1047, label %1048, label %1050

1048:                                             ; preds = %1017
  %1049 = load i32, ptr %74, align 4, !tbaa !9
  br label %1052

1050:                                             ; preds = %1017
  %1051 = load i32, ptr %75, align 4, !tbaa !9
  br label %1052

1052:                                             ; preds = %1050, %1048
  %1053 = phi i32 [ %1049, %1048 ], [ %1051, %1050 ]
  store i32 %1053, ptr %101, align 4, !tbaa !9
  %1054 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %1054, ptr %74, align 4, !tbaa !9
  %1055 = load ptr, ptr %38, align 8, !tbaa !5
  %1056 = load i32, ptr %1055, align 4, !tbaa !9
  %1057 = load i32, ptr %101, align 4, !tbaa !9
  %1058 = add nsw i32 %1056, %1057
  store i32 %1058, ptr %75, align 4, !tbaa !9
  %1059 = load i32, ptr %74, align 4, !tbaa !9
  %1060 = load i32, ptr %75, align 4, !tbaa !9
  %1061 = icmp sge i32 %1059, %1060
  br i1 %1061, label %1062, label %1064

1062:                                             ; preds = %1052
  %1063 = load i32, ptr %74, align 4, !tbaa !9
  br label %1066

1064:                                             ; preds = %1052
  %1065 = load i32, ptr %75, align 4, !tbaa !9
  br label %1066

1066:                                             ; preds = %1064, %1062
  %1067 = phi i32 [ %1063, %1062 ], [ %1065, %1064 ]
  store i32 %1067, ptr %105, align 4, !tbaa !9
  br label %1068

1068:                                             ; preds = %1066, %1013
  %1069 = load ptr, ptr %60, align 8, !tbaa !5
  %1070 = load i32, ptr %1069, align 4, !tbaa !9
  %1071 = load i32, ptr %97, align 4, !tbaa !9
  %1072 = icmp slt i32 %1070, %1071
  br i1 %1072, label %1073, label %1078

1073:                                             ; preds = %1068
  %1074 = load i32, ptr %109, align 4, !tbaa !9
  %1075 = icmp ne i32 %1074, 0
  br i1 %1075, label %1078, label %1076

1076:                                             ; preds = %1073
  %1077 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -29, ptr %1077, align 4, !tbaa !9
  br label %1078

1078:                                             ; preds = %1076, %1073, %1068
  %1079 = load ptr, ptr %58, align 8, !tbaa !5
  %1080 = load i32, ptr %1079, align 4, !tbaa !9
  %1081 = load i32, ptr %102, align 4, !tbaa !9
  %1082 = icmp slt i32 %1080, %1081
  br i1 %1082, label %1083, label %1088

1083:                                             ; preds = %1078
  %1084 = load i32, ptr %109, align 4, !tbaa !9
  %1085 = icmp ne i32 %1084, 0
  br i1 %1085, label %1088, label %1086

1086:                                             ; preds = %1083
  %1087 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -27, ptr %1087, align 4, !tbaa !9
  br label %1088

1088:                                             ; preds = %1086, %1083, %1078
  br label %1089

1089:                                             ; preds = %1088, %407
  %1090 = load ptr, ptr %61, align 8, !tbaa !5
  %1091 = load i32, ptr %1090, align 4, !tbaa !9
  %1092 = icmp ne i32 %1091, 0
  br i1 %1092, label %1093, label %1098

1093:                                             ; preds = %1089
  %1094 = load ptr, ptr %61, align 8, !tbaa !5
  %1095 = load i32, ptr %1094, align 4, !tbaa !9
  %1096 = sub nsw i32 0, %1095
  store i32 %1096, ptr %74, align 4, !tbaa !9
  %1097 = call i32 @xerbla_(ptr noundef @.str.11, ptr noundef %74)
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2534

1098:                                             ; preds = %1089
  %1099 = load i32, ptr %109, align 4, !tbaa !9
  %1100 = icmp ne i32 %1099, 0
  br i1 %1100, label %1101, label %1113

1101:                                             ; preds = %1098
  %1102 = load i32, ptr %97, align 4, !tbaa !9
  %1103 = load ptr, ptr %59, align 8, !tbaa !5
  %1104 = getelementptr inbounds i32, ptr %1103, i64 1
  store i32 %1102, ptr %1104, align 4, !tbaa !9
  %1105 = load i32, ptr %102, align 4, !tbaa !9
  %1106 = sitofp i32 %1105 to double
  %1107 = load ptr, ptr %57, align 8, !tbaa !5
  %1108 = getelementptr inbounds double, ptr %1107, i64 1
  store double %1106, ptr %1108, align 8, !tbaa !11
  %1109 = load i32, ptr %105, align 4, !tbaa !9
  %1110 = sitofp i32 %1109 to double
  %1111 = load ptr, ptr %57, align 8, !tbaa !5
  %1112 = getelementptr inbounds double, ptr %1111, i64 2
  store double %1110, ptr %1112, align 8, !tbaa !11
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2534

1113:                                             ; preds = %1098
  br label %1114

1114:                                             ; preds = %1113
  %1115 = call double @dlamch_(ptr noundef @.str.8)
  store double %1115, ptr %116, align 8, !tbaa !11
  %1116 = call double @dlamch_(ptr noundef @.str.1)
  store double %1116, ptr %88, align 8, !tbaa !11
  store i32 0, ptr %87, align 4, !tbaa !9
  %1117 = load i32, ptr %93, align 4, !tbaa !9
  %1118 = icmp ne i32 %1117, 0
  br i1 %1118, label %1119, label %1345

1119:                                             ; preds = %1114
  %1120 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %1120, align 4, !tbaa !9
  %1121 = load ptr, ptr %38, align 8, !tbaa !5
  %1122 = load i32, ptr %1121, align 4, !tbaa !9
  store i32 %1122, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1123

1123:                                             ; preds = %1225, %1119
  %1124 = load i32, ptr %84, align 4, !tbaa !9
  %1125 = load i32, ptr %74, align 4, !tbaa !9
  %1126 = icmp sle i32 %1124, %1125
  br i1 %1126, label %1127, label %1228

1127:                                             ; preds = %1123
  %1128 = load double, ptr %78, align 8, !tbaa !11
  store double %1128, ptr %86, align 8, !tbaa !11
  %1129 = load ptr, ptr %37, align 8, !tbaa !5
  %1130 = load ptr, ptr %39, align 8, !tbaa !5
  %1131 = load i32, ptr %84, align 4, !tbaa !9
  %1132 = load i32, ptr %62, align 4, !tbaa !9
  %1133 = mul nsw i32 %1131, %1132
  %1134 = add nsw i32 %1133, 1
  %1135 = sext i32 %1134 to i64
  %1136 = getelementptr inbounds double, ptr %1130, i64 %1135
  %1137 = call i32 @dlassq_(ptr noundef %1129, ptr noundef %1136, ptr noundef @c__1, ptr noundef %86, ptr noundef %79)
  %1138 = call i32 @disnan_(ptr noundef %86)
  %1139 = icmp ne i32 %1138, 0
  br i1 %1139, label %1143, label %1140

1140:                                             ; preds = %1127
  %1141 = call i32 @disnan_(ptr noundef %79)
  %1142 = icmp ne i32 %1141, 0
  br i1 %1142, label %1143, label %1150

1143:                                             ; preds = %1140, %1127
  %1144 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %1144, align 4, !tbaa !9
  %1145 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -8, ptr %1145, align 4, !tbaa !9
  %1146 = load ptr, ptr %61, align 8, !tbaa !5
  %1147 = load i32, ptr %1146, align 4, !tbaa !9
  %1148 = sub nsw i32 0, %1147
  store i32 %1148, ptr %75, align 4, !tbaa !9
  %1149 = call i32 @xerbla_(ptr noundef @.str.11, ptr noundef %75)
  br label %1150

1150:                                             ; preds = %1143, %1140
  %1151 = load double, ptr %86, align 8, !tbaa !11
  %1152 = load double, ptr %78, align 8, !tbaa !11
  %1153 = fcmp une double %1151, %1152
  br i1 %1153, label %1154, label %1215

1154:                                             ; preds = %1150
  %1155 = load double, ptr %79, align 8, !tbaa !11
  %1156 = load double, ptr %78, align 8, !tbaa !11
  %1157 = fcmp une double %1155, %1156
  br i1 %1157, label %1158, label %1215

1158:                                             ; preds = %1154
  %1159 = load double, ptr %79, align 8, !tbaa !11
  %1160 = call double @sqrt(double noundef %1159) #4
  store double %1160, ptr %100, align 8, !tbaa !11
  %1161 = load double, ptr %86, align 8, !tbaa !11
  %1162 = load double, ptr %116, align 8, !tbaa !11
  %1163 = load double, ptr %100, align 8, !tbaa !11
  %1164 = fdiv double %1162, %1163
  %1165 = fcmp oge double %1161, %1164
  br i1 %1165, label %1166, label %1192

1166:                                             ; preds = %1158
  %1167 = load double, ptr %117, align 8, !tbaa !11
  %1168 = load double, ptr %100, align 8, !tbaa !11
  %1169 = fdiv double %1167, %1168
  store double %1169, ptr %76, align 8, !tbaa !11
  %1170 = load ptr, ptr %37, align 8, !tbaa !5
  %1171 = load ptr, ptr %39, align 8, !tbaa !5
  %1172 = load i32, ptr %84, align 4, !tbaa !9
  %1173 = load i32, ptr %62, align 4, !tbaa !9
  %1174 = mul nsw i32 %1172, %1173
  %1175 = add nsw i32 %1174, 1
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds double, ptr %1171, i64 %1176
  %1178 = load ptr, ptr %37, align 8, !tbaa !5
  %1179 = call i32 @dlascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %86, ptr noundef %76, ptr noundef %1170, ptr noundef @c__1, ptr noundef %1177, ptr noundef %1178, ptr noundef %81)
  %1180 = load double, ptr %86, align 8, !tbaa !11
  %1181 = fneg double %1180
  %1182 = load double, ptr %100, align 8, !tbaa !11
  %1183 = load ptr, ptr %37, align 8, !tbaa !5
  %1184 = load i32, ptr %1183, align 4, !tbaa !9
  %1185 = sitofp i32 %1184 to double
  %1186 = fdiv double %1182, %1185
  %1187 = fmul double %1181, %1186
  %1188 = load ptr, ptr %57, align 8, !tbaa !5
  %1189 = load i32, ptr %84, align 4, !tbaa !9
  %1190 = sext i32 %1189 to i64
  %1191 = getelementptr inbounds double, ptr %1188, i64 %1190
  store double %1187, ptr %1191, align 8, !tbaa !11
  br label %1214

1192:                                             ; preds = %1158
  %1193 = load double, ptr %86, align 8, !tbaa !11
  %1194 = load double, ptr %100, align 8, !tbaa !11
  %1195 = fmul double %1193, %1194
  %1196 = load ptr, ptr %57, align 8, !tbaa !5
  %1197 = load i32, ptr %84, align 4, !tbaa !9
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds double, ptr %1196, i64 %1198
  store double %1195, ptr %1199, align 8, !tbaa !11
  %1200 = load ptr, ptr %57, align 8, !tbaa !5
  %1201 = load i32, ptr %84, align 4, !tbaa !9
  %1202 = sext i32 %1201 to i64
  %1203 = getelementptr inbounds double, ptr %1200, i64 %1202
  %1204 = load ptr, ptr %37, align 8, !tbaa !5
  %1205 = load ptr, ptr %39, align 8, !tbaa !5
  %1206 = load i32, ptr %84, align 4, !tbaa !9
  %1207 = load i32, ptr %62, align 4, !tbaa !9
  %1208 = mul nsw i32 %1206, %1207
  %1209 = add nsw i32 %1208, 1
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds double, ptr %1205, i64 %1210
  %1212 = load ptr, ptr %37, align 8, !tbaa !5
  %1213 = call i32 @dlascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %1203, ptr noundef %117, ptr noundef %1204, ptr noundef @c__1, ptr noundef %1211, ptr noundef %1212, ptr noundef %81)
  br label %1214

1214:                                             ; preds = %1192, %1166
  br label %1224

1215:                                             ; preds = %1154, %1150
  %1216 = load double, ptr %78, align 8, !tbaa !11
  %1217 = load ptr, ptr %57, align 8, !tbaa !5
  %1218 = load i32, ptr %84, align 4, !tbaa !9
  %1219 = sext i32 %1218 to i64
  %1220 = getelementptr inbounds double, ptr %1217, i64 %1219
  store double %1216, ptr %1220, align 8, !tbaa !11
  %1221 = load ptr, ptr %45, align 8, !tbaa !5
  %1222 = load i32, ptr %1221, align 4, !tbaa !9
  %1223 = add nsw i32 %1222, 1
  store i32 %1223, ptr %1221, align 4, !tbaa !9
  br label %1224

1224:                                             ; preds = %1215, %1214
  br label %1225

1225:                                             ; preds = %1224
  %1226 = load i32, ptr %84, align 4, !tbaa !9
  %1227 = add nsw i32 %1226, 1
  store i32 %1227, ptr %84, align 4, !tbaa !9
  br label %1123, !llvm.loop !14

1228:                                             ; preds = %1123
  %1229 = load ptr, ptr %45, align 8, !tbaa !5
  %1230 = load i32, ptr %1229, align 4, !tbaa !9
  %1231 = load ptr, ptr %38, align 8, !tbaa !5
  %1232 = load i32, ptr %1231, align 4, !tbaa !9
  %1233 = icmp eq i32 %1230, %1232
  br i1 %1233, label %1234, label %1241

1234:                                             ; preds = %1228
  %1235 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %1235, align 4, !tbaa !9
  %1236 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -8, ptr %1236, align 4, !tbaa !9
  %1237 = load ptr, ptr %61, align 8, !tbaa !5
  %1238 = load i32, ptr %1237, align 4, !tbaa !9
  %1239 = sub nsw i32 0, %1238
  store i32 %1239, ptr %74, align 4, !tbaa !9
  %1240 = call i32 @xerbla_(ptr noundef @.str.11, ptr noundef %74)
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2534

1241:                                             ; preds = %1228
  %1242 = load ptr, ptr %38, align 8, !tbaa !5
  %1243 = load i32, ptr %1242, align 4, !tbaa !9
  store i32 %1243, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1244

1244:                                             ; preds = %1341, %1241
  %1245 = load i32, ptr %84, align 4, !tbaa !9
  %1246 = load i32, ptr %74, align 4, !tbaa !9
  %1247 = icmp sle i32 %1245, %1246
  br i1 %1247, label %1248, label %1344

1248:                                             ; preds = %1244
  %1249 = load ptr, ptr %57, align 8, !tbaa !5
  %1250 = load i32, ptr %84, 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 %78, align 8, !tbaa !11
  %1255 = fcmp ogt double %1253, %1254
  br i1 %1255, label %1256, label %1273

1256:                                             ; preds = %1248
  %1257 = load double, ptr %117, align 8, !tbaa !11
  %1258 = load ptr, ptr %57, align 8, !tbaa !5
  %1259 = load i32, ptr %84, align 4, !tbaa !9
  %1260 = sext i32 %1259 to i64
  %1261 = getelementptr inbounds double, ptr %1258, i64 %1260
  %1262 = load double, ptr %1261, align 8, !tbaa !11
  %1263 = fdiv double %1257, %1262
  store double %1263, ptr %76, align 8, !tbaa !11
  %1264 = load ptr, ptr %37, align 8, !tbaa !5
  %1265 = load ptr, ptr %41, align 8, !tbaa !5
  %1266 = load i32, ptr %84, align 4, !tbaa !9
  %1267 = load i32, ptr %64, align 4, !tbaa !9
  %1268 = mul nsw i32 %1266, %1267
  %1269 = add nsw i32 %1268, 1
  %1270 = sext i32 %1269 to i64
  %1271 = getelementptr inbounds double, ptr %1265, i64 %1270
  %1272 = call i32 @dscal_(ptr noundef %1264, ptr noundef %76, ptr noundef %1271, ptr noundef @c__1)
  br label %1340

1273:                                             ; preds = %1248
  %1274 = load ptr, ptr %57, align 8, !tbaa !5
  %1275 = load i32, ptr %84, align 4, !tbaa !9
  %1276 = sext i32 %1275 to i64
  %1277 = getelementptr inbounds double, ptr %1274, i64 %1276
  %1278 = load double, ptr %1277, align 8, !tbaa !11
  %1279 = load double, ptr %78, align 8, !tbaa !11
  %1280 = fcmp olt double %1278, %1279
  br i1 %1280, label %1281, label %1303

1281:                                             ; preds = %1273
  %1282 = load ptr, ptr %57, align 8, !tbaa !5
  %1283 = load i32, ptr %84, align 4, !tbaa !9
  %1284 = sext i32 %1283 to i64
  %1285 = getelementptr inbounds double, ptr %1282, i64 %1284
  %1286 = load double, ptr %1285, align 8, !tbaa !11
  %1287 = fneg double %1286
  store double %1287, ptr %76, align 8, !tbaa !11
  %1288 = load double, ptr %117, align 8, !tbaa !11
  %1289 = load ptr, ptr %37, align 8, !tbaa !5
  %1290 = load i32, ptr %1289, align 4, !tbaa !9
  %1291 = sitofp i32 %1290 to double
  %1292 = fdiv double %1288, %1291
  store double %1292, ptr %77, align 8, !tbaa !11
  %1293 = load ptr, ptr %37, align 8, !tbaa !5
  %1294 = load ptr, ptr %41, align 8, !tbaa !5
  %1295 = load i32, ptr %84, align 4, !tbaa !9
  %1296 = load i32, ptr %64, align 4, !tbaa !9
  %1297 = mul nsw i32 %1295, %1296
  %1298 = add nsw i32 %1297, 1
  %1299 = sext i32 %1298 to i64
  %1300 = getelementptr inbounds double, ptr %1294, i64 %1299
  %1301 = load ptr, ptr %37, align 8, !tbaa !5
  %1302 = call i32 @dlascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %77, ptr noundef %1293, ptr noundef @c__1, ptr noundef %1300, ptr noundef %1301, ptr noundef %81)
  br label %1339

1303:                                             ; preds = %1273
  %1304 = load ptr, ptr %41, align 8, !tbaa !5
  %1305 = load ptr, ptr %37, align 8, !tbaa !5
  %1306 = load ptr, ptr %41, align 8, !tbaa !5
  %1307 = load i32, ptr %84, align 4, !tbaa !9
  %1308 = load i32, ptr %64, align 4, !tbaa !9
  %1309 = mul nsw i32 %1307, %1308
  %1310 = add nsw i32 %1309, 1
  %1311 = sext i32 %1310 to i64
  %1312 = getelementptr inbounds double, ptr %1306, i64 %1311
  %1313 = call i32 @idamax_(ptr noundef %1305, ptr noundef %1312, ptr noundef @c__1)
  %1314 = load i32, ptr %84, align 4, !tbaa !9
  %1315 = load i32, ptr %64, align 4, !tbaa !9
  %1316 = mul nsw i32 %1314, %1315
  %1317 = add nsw i32 %1313, %1316
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds double, ptr %1304, i64 %1318
  %1320 = load double, ptr %1319, align 8, !tbaa !11
  %1321 = load double, ptr %78, align 8, !tbaa !11
  %1322 = fcmp une double %1320, %1321
  br i1 %1322, label %1323, label %1338

1323:                                             ; preds = %1303
  store i32 1, ptr %87, align 4, !tbaa !9
  %1324 = load ptr, ptr %32, align 8, !tbaa !5
  %1325 = call i32 @lsame_(ptr noundef %1324, ptr noundef @.str.2)
  %1326 = icmp ne i32 %1325, 0
  br i1 %1326, label %1327, label %1337

1327:                                             ; preds = %1323
  %1328 = load ptr, ptr %37, align 8, !tbaa !5
  %1329 = load ptr, ptr %41, align 8, !tbaa !5
  %1330 = load i32, ptr %84, align 4, !tbaa !9
  %1331 = load i32, ptr %64, align 4, !tbaa !9
  %1332 = mul nsw i32 %1330, %1331
  %1333 = add nsw i32 %1332, 1
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds double, ptr %1329, i64 %1334
  %1336 = call i32 @dscal_(ptr noundef %1328, ptr noundef %78, ptr noundef %1335, ptr noundef @c__1)
  br label %1337

1337:                                             ; preds = %1327, %1323
  br label %1338

1338:                                             ; preds = %1337, %1303
  br label %1339

1339:                                             ; preds = %1338, %1281
  br label %1340

1340:                                             ; preds = %1339, %1256
  br label %1341

1341:                                             ; preds = %1340
  %1342 = load i32, ptr %84, align 4, !tbaa !9
  %1343 = add nsw i32 %1342, 1
  store i32 %1343, ptr %84, align 4, !tbaa !9
  br label %1244, !llvm.loop !16

1344:                                             ; preds = %1244
  br label %1345

1345:                                             ; preds = %1344, %1114
  %1346 = load i32, ptr %94, align 4, !tbaa !9
  %1347 = icmp ne i32 %1346, 0
  br i1 %1347, label %1348, label %1543

1348:                                             ; preds = %1345
  %1349 = load ptr, ptr %38, align 8, !tbaa !5
  %1350 = load i32, ptr %1349, align 4, !tbaa !9
  store i32 %1350, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1351

1351:                                             ; preds = %1450, %1348
  %1352 = load i32, ptr %84, align 4, !tbaa !9
  %1353 = load i32, ptr %74, align 4, !tbaa !9
  %1354 = icmp sle i32 %1352, %1353
  br i1 %1354, label %1355, label %1453

1355:                                             ; preds = %1351
  %1356 = load double, ptr %78, align 8, !tbaa !11
  store double %1356, ptr %86, align 8, !tbaa !11
  %1357 = load ptr, ptr %37, align 8, !tbaa !5
  %1358 = load ptr, ptr %41, align 8, !tbaa !5
  %1359 = load i32, ptr %84, align 4, !tbaa !9
  %1360 = load i32, ptr %64, align 4, !tbaa !9
  %1361 = mul nsw i32 %1359, %1360
  %1362 = add nsw i32 %1361, 1
  %1363 = sext i32 %1362 to i64
  %1364 = getelementptr inbounds double, ptr %1358, i64 %1363
  %1365 = call i32 @dlassq_(ptr noundef %1357, ptr noundef %1364, ptr noundef @c__1, ptr noundef %86, ptr noundef %79)
  %1366 = call i32 @disnan_(ptr noundef %86)
  %1367 = icmp ne i32 %1366, 0
  br i1 %1367, label %1371, label %1368

1368:                                             ; preds = %1355
  %1369 = call i32 @disnan_(ptr noundef %79)
  %1370 = icmp ne i32 %1369, 0
  br i1 %1370, label %1371, label %1378

1371:                                             ; preds = %1368, %1355
  %1372 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %1372, align 4, !tbaa !9
  %1373 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -10, ptr %1373, align 4, !tbaa !9
  %1374 = load ptr, ptr %61, align 8, !tbaa !5
  %1375 = load i32, ptr %1374, align 4, !tbaa !9
  %1376 = sub nsw i32 0, %1375
  store i32 %1376, ptr %75, align 4, !tbaa !9
  %1377 = call i32 @xerbla_(ptr noundef @.str.11, ptr noundef %75)
  br label %1378

1378:                                             ; preds = %1371, %1368
  %1379 = load double, ptr %86, align 8, !tbaa !11
  %1380 = load double, ptr %78, align 8, !tbaa !11
  %1381 = fcmp une double %1379, %1380
  br i1 %1381, label %1382, label %1443

1382:                                             ; preds = %1378
  %1383 = load double, ptr %79, align 8, !tbaa !11
  %1384 = load double, ptr %78, align 8, !tbaa !11
  %1385 = fcmp une double %1383, %1384
  br i1 %1385, label %1386, label %1443

1386:                                             ; preds = %1382
  %1387 = load double, ptr %79, align 8, !tbaa !11
  %1388 = call double @sqrt(double noundef %1387) #4
  store double %1388, ptr %100, align 8, !tbaa !11
  %1389 = load double, ptr %86, align 8, !tbaa !11
  %1390 = load double, ptr %116, align 8, !tbaa !11
  %1391 = load double, ptr %100, align 8, !tbaa !11
  %1392 = fdiv double %1390, %1391
  %1393 = fcmp oge double %1389, %1392
  br i1 %1393, label %1394, label %1420

1394:                                             ; preds = %1386
  %1395 = load double, ptr %117, align 8, !tbaa !11
  %1396 = load double, ptr %100, align 8, !tbaa !11
  %1397 = fdiv double %1395, %1396
  store double %1397, ptr %76, align 8, !tbaa !11
  %1398 = load ptr, ptr %37, align 8, !tbaa !5
  %1399 = load ptr, ptr %41, align 8, !tbaa !5
  %1400 = load i32, ptr %84, align 4, !tbaa !9
  %1401 = load i32, ptr %64, align 4, !tbaa !9
  %1402 = mul nsw i32 %1400, %1401
  %1403 = add nsw i32 %1402, 1
  %1404 = sext i32 %1403 to i64
  %1405 = getelementptr inbounds double, ptr %1399, i64 %1404
  %1406 = load ptr, ptr %37, align 8, !tbaa !5
  %1407 = call i32 @dlascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %86, ptr noundef %76, ptr noundef %1398, ptr noundef @c__1, ptr noundef %1405, ptr noundef %1406, ptr noundef %81)
  %1408 = load double, ptr %86, align 8, !tbaa !11
  %1409 = fneg double %1408
  %1410 = load double, ptr %100, align 8, !tbaa !11
  %1411 = load ptr, ptr %37, align 8, !tbaa !5
  %1412 = load i32, ptr %1411, align 4, !tbaa !9
  %1413 = sitofp i32 %1412 to double
  %1414 = fdiv double %1410, %1413
  %1415 = fmul double %1409, %1414
  %1416 = load ptr, ptr %57, align 8, !tbaa !5
  %1417 = load i32, ptr %84, align 4, !tbaa !9
  %1418 = sext i32 %1417 to i64
  %1419 = getelementptr inbounds double, ptr %1416, i64 %1418
  store double %1415, ptr %1419, align 8, !tbaa !11
  br label %1442

1420:                                             ; preds = %1386
  %1421 = load double, ptr %86, align 8, !tbaa !11
  %1422 = load double, ptr %100, align 8, !tbaa !11
  %1423 = fmul double %1421, %1422
  %1424 = load ptr, ptr %57, align 8, !tbaa !5
  %1425 = load i32, ptr %84, align 4, !tbaa !9
  %1426 = sext i32 %1425 to i64
  %1427 = getelementptr inbounds double, ptr %1424, i64 %1426
  store double %1423, ptr %1427, align 8, !tbaa !11
  %1428 = load ptr, ptr %57, align 8, !tbaa !5
  %1429 = load i32, ptr %84, align 4, !tbaa !9
  %1430 = sext i32 %1429 to i64
  %1431 = getelementptr inbounds double, ptr %1428, i64 %1430
  %1432 = load ptr, ptr %37, align 8, !tbaa !5
  %1433 = load ptr, ptr %41, align 8, !tbaa !5
  %1434 = load i32, ptr %84, align 4, !tbaa !9
  %1435 = load i32, ptr %64, align 4, !tbaa !9
  %1436 = mul nsw i32 %1434, %1435
  %1437 = add nsw i32 %1436, 1
  %1438 = sext i32 %1437 to i64
  %1439 = getelementptr inbounds double, ptr %1433, i64 %1438
  %1440 = load ptr, ptr %37, align 8, !tbaa !5
  %1441 = call i32 @dlascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %1431, ptr noundef %117, ptr noundef %1432, ptr noundef @c__1, ptr noundef %1439, ptr noundef %1440, ptr noundef %81)
  br label %1442

1442:                                             ; preds = %1420, %1394
  br label %1449

1443:                                             ; preds = %1382, %1378
  %1444 = load double, ptr %78, align 8, !tbaa !11
  %1445 = load ptr, ptr %57, align 8, !tbaa !5
  %1446 = load i32, ptr %84, align 4, !tbaa !9
  %1447 = sext i32 %1446 to i64
  %1448 = getelementptr inbounds double, ptr %1445, i64 %1447
  store double %1444, ptr %1448, align 8, !tbaa !11
  br label %1449

1449:                                             ; preds = %1443, %1442
  br label %1450

1450:                                             ; preds = %1449
  %1451 = load i32, ptr %84, align 4, !tbaa !9
  %1452 = add nsw i32 %1451, 1
  store i32 %1452, ptr %84, align 4, !tbaa !9
  br label %1351, !llvm.loop !17

1453:                                             ; preds = %1351
  %1454 = load ptr, ptr %38, align 8, !tbaa !5
  %1455 = load i32, ptr %1454, align 4, !tbaa !9
  store i32 %1455, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1456

1456:                                             ; preds = %1539, %1453
  %1457 = load i32, ptr %84, align 4, !tbaa !9
  %1458 = load i32, ptr %74, align 4, !tbaa !9
  %1459 = icmp sle i32 %1457, %1458
  br i1 %1459, label %1460, label %1542

1460:                                             ; preds = %1456
  %1461 = load ptr, ptr %57, align 8, !tbaa !5
  %1462 = load i32, ptr %84, align 4, !tbaa !9
  %1463 = sext i32 %1462 to i64
  %1464 = getelementptr inbounds double, ptr %1461, i64 %1463
  %1465 = load double, ptr %1464, align 8, !tbaa !11
  %1466 = load double, ptr %78, align 8, !tbaa !11
  %1467 = fcmp ogt double %1465, %1466
  br i1 %1467, label %1468, label %1485

1468:                                             ; preds = %1460
  %1469 = load double, ptr %117, align 8, !tbaa !11
  %1470 = load ptr, ptr %57, align 8, !tbaa !5
  %1471 = load i32, ptr %84, align 4, !tbaa !9
  %1472 = sext i32 %1471 to i64
  %1473 = getelementptr inbounds double, ptr %1470, i64 %1472
  %1474 = load double, ptr %1473, align 8, !tbaa !11
  %1475 = fdiv double %1469, %1474
  store double %1475, ptr %76, align 8, !tbaa !11
  %1476 = load ptr, ptr %37, align 8, !tbaa !5
  %1477 = load ptr, ptr %39, align 8, !tbaa !5
  %1478 = load i32, ptr %84, align 4, !tbaa !9
  %1479 = load i32, ptr %62, align 4, !tbaa !9
  %1480 = mul nsw i32 %1478, %1479
  %1481 = add nsw i32 %1480, 1
  %1482 = sext i32 %1481 to i64
  %1483 = getelementptr inbounds double, ptr %1477, i64 %1482
  %1484 = call i32 @dscal_(ptr noundef %1476, ptr noundef %76, ptr noundef %1483, ptr noundef @c__1)
  br label %1538

1485:                                             ; preds = %1460
  %1486 = load ptr, ptr %57, align 8, !tbaa !5
  %1487 = load i32, ptr %84, align 4, !tbaa !9
  %1488 = sext i32 %1487 to i64
  %1489 = getelementptr inbounds double, ptr %1486, i64 %1488
  %1490 = load double, ptr %1489, align 8, !tbaa !11
  %1491 = load double, ptr %78, align 8, !tbaa !11
  %1492 = fcmp olt double %1490, %1491
  br i1 %1492, label %1493, label %1515

1493:                                             ; preds = %1485
  %1494 = load ptr, ptr %57, align 8, !tbaa !5
  %1495 = load i32, ptr %84, align 4, !tbaa !9
  %1496 = sext i32 %1495 to i64
  %1497 = getelementptr inbounds double, ptr %1494, i64 %1496
  %1498 = load double, ptr %1497, align 8, !tbaa !11
  %1499 = fneg double %1498
  store double %1499, ptr %76, align 8, !tbaa !11
  %1500 = load double, ptr %117, align 8, !tbaa !11
  %1501 = load ptr, ptr %37, align 8, !tbaa !5
  %1502 = load i32, ptr %1501, align 4, !tbaa !9
  %1503 = sitofp i32 %1502 to double
  %1504 = fdiv double %1500, %1503
  store double %1504, ptr %77, align 8, !tbaa !11
  %1505 = load ptr, ptr %37, align 8, !tbaa !5
  %1506 = load ptr, ptr %39, align 8, !tbaa !5
  %1507 = load i32, ptr %84, align 4, !tbaa !9
  %1508 = load i32, ptr %62, align 4, !tbaa !9
  %1509 = mul nsw i32 %1507, %1508
  %1510 = add nsw i32 %1509, 1
  %1511 = sext i32 %1510 to i64
  %1512 = getelementptr inbounds double, ptr %1506, i64 %1511
  %1513 = load ptr, ptr %37, align 8, !tbaa !5
  %1514 = call i32 @dlascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %77, ptr noundef %1505, ptr noundef @c__1, ptr noundef %1512, ptr noundef %1513, ptr noundef %81)
  br label %1537

1515:                                             ; preds = %1485
  %1516 = load ptr, ptr %39, align 8, !tbaa !5
  %1517 = load ptr, ptr %37, align 8, !tbaa !5
  %1518 = load ptr, ptr %39, align 8, !tbaa !5
  %1519 = load i32, ptr %84, align 4, !tbaa !9
  %1520 = load i32, ptr %62, align 4, !tbaa !9
  %1521 = mul nsw i32 %1519, %1520
  %1522 = add nsw i32 %1521, 1
  %1523 = sext i32 %1522 to i64
  %1524 = getelementptr inbounds double, ptr %1518, i64 %1523
  %1525 = call i32 @idamax_(ptr noundef %1517, ptr noundef %1524, ptr noundef @c__1)
  %1526 = load i32, ptr %84, align 4, !tbaa !9
  %1527 = load i32, ptr %62, align 4, !tbaa !9
  %1528 = mul nsw i32 %1526, %1527
  %1529 = add nsw i32 %1525, %1528
  %1530 = sext i32 %1529 to i64
  %1531 = getelementptr inbounds double, ptr %1516, i64 %1530
  %1532 = load double, ptr %1531, align 8, !tbaa !11
  %1533 = load double, ptr %78, align 8, !tbaa !11
  %1534 = fcmp une double %1532, %1533
  br i1 %1534, label %1535, label %1536

1535:                                             ; preds = %1515
  store i32 1, ptr %87, align 4, !tbaa !9
  br label %1536

1536:                                             ; preds = %1535, %1515
  br label %1537

1537:                                             ; preds = %1536, %1493
  br label %1538

1538:                                             ; preds = %1537, %1468
  br label %1539

1539:                                             ; preds = %1538
  %1540 = load i32, ptr %84, align 4, !tbaa !9
  %1541 = add nsw i32 %1540, 1
  store i32 %1541, ptr %84, align 4, !tbaa !9
  br label %1456, !llvm.loop !18

1542:                                             ; preds = %1456
  br label %1543

1543:                                             ; preds = %1542, %1345
  %1544 = load ptr, ptr %38, align 8, !tbaa !5
  %1545 = load i32, ptr %1544, align 4, !tbaa !9
  store i32 %1545, ptr %104, align 4, !tbaa !9
  %1546 = load ptr, ptr %36, align 8, !tbaa !5
  %1547 = load i32, ptr %1546, align 4, !tbaa !9
  %1548 = icmp eq i32 %1547, 1
  br i1 %1548, label %1549, label %1582

1549:                                             ; preds = %1543
  %1550 = load ptr, ptr %58, align 8, !tbaa !5
  %1551 = load i32, ptr %1550, align 4, !tbaa !9
  %1552 = load ptr, ptr %38, align 8, !tbaa !5
  %1553 = load i32, ptr %1552, align 4, !tbaa !9
  %1554 = sub nsw i32 %1551, %1553
  store i32 %1554, ptr %74, align 4, !tbaa !9
  %1555 = load ptr, ptr %37, align 8, !tbaa !5
  %1556 = load ptr, ptr %38, align 8, !tbaa !5
  %1557 = load ptr, ptr %39, align 8, !tbaa !5
  %1558 = load i32, ptr %63, align 4, !tbaa !9
  %1559 = sext i32 %1558 to i64
  %1560 = getelementptr inbounds double, ptr %1557, i64 %1559
  %1561 = load ptr, ptr %40, align 8, !tbaa !5
  %1562 = load ptr, ptr %57, align 8, !tbaa !5
  %1563 = getelementptr inbounds double, ptr %1562, i64 1
  %1564 = load ptr, ptr %51, align 8, !tbaa !5
  %1565 = load i32, ptr %69, align 4, !tbaa !9
  %1566 = sext i32 %1565 to i64
  %1567 = getelementptr inbounds double, ptr %1564, i64 %1566
  %1568 = load ptr, ptr %52, align 8, !tbaa !5
  %1569 = load ptr, ptr %53, align 8, !tbaa !5
  %1570 = load i32, ptr %71, align 4, !tbaa !9
  %1571 = sext i32 %1570 to i64
  %1572 = getelementptr inbounds double, ptr %1569, i64 %1571
  %1573 = load ptr, ptr %54, align 8, !tbaa !5
  %1574 = load ptr, ptr %57, align 8, !tbaa !5
  %1575 = load ptr, ptr %38, align 8, !tbaa !5
  %1576 = load i32, ptr %1575, align 4, !tbaa !9
  %1577 = add nsw i32 %1576, 1
  %1578 = sext i32 %1577 to i64
  %1579 = getelementptr inbounds double, ptr %1574, i64 %1578
  %1580 = call i32 @dgesvd_(ptr noundef @.str.8, ptr noundef @.str.1, ptr noundef %1555, ptr noundef %1556, ptr noundef %1560, ptr noundef %1561, ptr noundef %1563, ptr noundef %1567, ptr noundef %1568, ptr noundef %1572, ptr noundef %1573, ptr noundef %1579, ptr noundef %74, ptr noundef %80)
  %1581 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  store i8 84, ptr %1581, align 1, !tbaa !13
  br label %1791

1582:                                             ; preds = %1543
  %1583 = load ptr, ptr %36, align 8, !tbaa !5
  %1584 = load i32, ptr %1583, align 4, !tbaa !9
  %1585 = icmp eq i32 %1584, 2
  br i1 %1585, label %1586, label %1621

1586:                                             ; preds = %1582
  %1587 = load ptr, ptr %58, align 8, !tbaa !5
  %1588 = load i32, ptr %1587, align 4, !tbaa !9
  %1589 = load ptr, ptr %38, align 8, !tbaa !5
  %1590 = load i32, ptr %1589, align 4, !tbaa !9
  %1591 = sub nsw i32 %1588, %1590
  store i32 %1591, ptr %74, align 4, !tbaa !9
  %1592 = load ptr, ptr %37, align 8, !tbaa !5
  %1593 = load ptr, ptr %38, align 8, !tbaa !5
  %1594 = load ptr, ptr %39, align 8, !tbaa !5
  %1595 = load i32, ptr %63, align 4, !tbaa !9
  %1596 = sext i32 %1595 to i64
  %1597 = getelementptr inbounds double, ptr %1594, i64 %1596
  %1598 = load ptr, ptr %40, align 8, !tbaa !5
  %1599 = load ptr, ptr %57, align 8, !tbaa !5
  %1600 = getelementptr inbounds double, ptr %1599, i64 1
  %1601 = load ptr, ptr %51, align 8, !tbaa !5
  %1602 = load i32, ptr %69, align 4, !tbaa !9
  %1603 = sext i32 %1602 to i64
  %1604 = getelementptr inbounds double, ptr %1601, i64 %1603
  %1605 = load ptr, ptr %52, align 8, !tbaa !5
  %1606 = load ptr, ptr %53, align 8, !tbaa !5
  %1607 = load i32, ptr %71, align 4, !tbaa !9
  %1608 = sext i32 %1607 to i64
  %1609 = getelementptr inbounds double, ptr %1606, i64 %1608
  %1610 = load ptr, ptr %54, align 8, !tbaa !5
  %1611 = load ptr, ptr %57, align 8, !tbaa !5
  %1612 = load ptr, ptr %38, align 8, !tbaa !5
  %1613 = load i32, ptr %1612, align 4, !tbaa !9
  %1614 = add nsw i32 %1613, 1
  %1615 = sext i32 %1614 to i64
  %1616 = getelementptr inbounds double, ptr %1611, i64 %1615
  %1617 = load ptr, ptr %59, align 8, !tbaa !5
  %1618 = getelementptr inbounds i32, ptr %1617, i64 1
  %1619 = call i32 @dgesdd_(ptr noundef @.str.8, ptr noundef %1592, ptr noundef %1593, ptr noundef %1597, ptr noundef %1598, ptr noundef %1600, ptr noundef %1604, ptr noundef %1605, ptr noundef %1609, ptr noundef %1610, ptr noundef %1616, ptr noundef %74, ptr noundef %1618, ptr noundef %80)
  %1620 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  store i8 84, ptr %1620, align 1, !tbaa !13
  br label %1790

1621:                                             ; preds = %1582
  %1622 = load ptr, ptr %36, align 8, !tbaa !5
  %1623 = load i32, ptr %1622, align 4, !tbaa !9
  %1624 = icmp eq i32 %1623, 3
  br i1 %1624, label %1625, label %1708

1625:                                             ; preds = %1621
  %1626 = load ptr, ptr %58, align 8, !tbaa !5
  %1627 = load i32, ptr %1626, align 4, !tbaa !9
  %1628 = load ptr, ptr %38, align 8, !tbaa !5
  %1629 = load i32, ptr %1628, align 4, !tbaa !9
  %1630 = sub nsw i32 %1627, %1629
  %1631 = load ptr, ptr %37, align 8, !tbaa !5
  %1632 = load i32, ptr %1631, align 4, !tbaa !9
  %1633 = icmp sge i32 2, %1632
  br i1 %1633, label %1634, label %1635

1634:                                             ; preds = %1625
  br label %1638

1635:                                             ; preds = %1625
  %1636 = load ptr, ptr %37, align 8, !tbaa !5
  %1637 = load i32, ptr %1636, align 4, !tbaa !9
  br label %1638

1638:                                             ; preds = %1635, %1634
  %1639 = phi i32 [ 2, %1634 ], [ %1637, %1635 ]
  %1640 = sub nsw i32 %1630, %1639
  store i32 %1640, ptr %74, align 4, !tbaa !9
  %1641 = load ptr, ptr %37, align 8, !tbaa !5
  %1642 = load i32, ptr %1641, align 4, !tbaa !9
  %1643 = icmp sge i32 2, %1642
  br i1 %1643, label %1644, label %1645

1644:                                             ; preds = %1638
  br label %1648

1645:                                             ; preds = %1638
  %1646 = load ptr, ptr %37, align 8, !tbaa !5
  %1647 = load i32, ptr %1646, align 4, !tbaa !9
  br label %1648

1648:                                             ; preds = %1645, %1644
  %1649 = phi i32 [ 2, %1644 ], [ %1647, %1645 ]
  store i32 %1649, ptr %75, align 4, !tbaa !9
  %1650 = load ptr, ptr %37, align 8, !tbaa !5
  %1651 = load ptr, ptr %38, align 8, !tbaa !5
  %1652 = load ptr, ptr %39, align 8, !tbaa !5
  %1653 = load i32, ptr %63, align 4, !tbaa !9
  %1654 = sext i32 %1653 to i64
  %1655 = getelementptr inbounds double, ptr %1652, i64 %1654
  %1656 = load ptr, ptr %40, align 8, !tbaa !5
  %1657 = load ptr, ptr %57, align 8, !tbaa !5
  %1658 = getelementptr inbounds double, ptr %1657, i64 1
  %1659 = load ptr, ptr %48, align 8, !tbaa !5
  %1660 = load i32, ptr %67, align 4, !tbaa !9
  %1661 = sext i32 %1660 to i64
  %1662 = getelementptr inbounds double, ptr %1659, i64 %1661
  %1663 = load ptr, ptr %49, align 8, !tbaa !5
  %1664 = load ptr, ptr %53, align 8, !tbaa !5
  %1665 = load i32, ptr %71, align 4, !tbaa !9
  %1666 = sext i32 %1665 to i64
  %1667 = getelementptr inbounds double, ptr %1664, i64 %1666
  %1668 = load ptr, ptr %54, align 8, !tbaa !5
  %1669 = load ptr, ptr %59, align 8, !tbaa !5
  %1670 = getelementptr inbounds i32, ptr %1669, i64 1
  %1671 = load ptr, ptr %60, align 8, !tbaa !5
  %1672 = load ptr, ptr %57, align 8, !tbaa !5
  %1673 = load ptr, ptr %38, align 8, !tbaa !5
  %1674 = load i32, ptr %1673, align 4, !tbaa !9
  %1675 = load ptr, ptr %37, align 8, !tbaa !5
  %1676 = load i32, ptr %1675, align 4, !tbaa !9
  %1677 = icmp sge i32 2, %1676
  br i1 %1677, label %1678, label %1679

1678:                                             ; preds = %1648
  br label %1682

1679:                                             ; preds = %1648
  %1680 = load ptr, ptr %37, align 8, !tbaa !5
  %1681 = load i32, ptr %1680, align 4, !tbaa !9
  br label %1682

1682:                                             ; preds = %1679, %1678
  %1683 = phi i32 [ 2, %1678 ], [ %1681, %1679 ]
  %1684 = add nsw i32 %1674, %1683
  %1685 = add nsw i32 %1684, 1
  %1686 = sext i32 %1685 to i64
  %1687 = getelementptr inbounds double, ptr %1672, i64 %1686
  %1688 = load ptr, ptr %57, align 8, !tbaa !5
  %1689 = load ptr, ptr %38, align 8, !tbaa !5
  %1690 = load i32, ptr %1689, align 4, !tbaa !9
  %1691 = add nsw i32 %1690, 1
  %1692 = sext i32 %1691 to i64
  %1693 = getelementptr inbounds double, ptr %1688, i64 %1692
  %1694 = call i32 @dgesvdq_(ptr noundef @.str.9, ptr noundef @.str.10, ptr noundef @.str.6, ptr noundef @.str, ptr noundef @.str, ptr noundef %1650, ptr noundef %1651, ptr noundef %1655, ptr noundef %1656, ptr noundef %1658, ptr noundef %1662, ptr noundef %1663, ptr noundef %1667, ptr noundef %1668, ptr noundef %104, ptr noundef %1670, ptr noundef %1671, ptr noundef %1687, ptr noundef %74, ptr noundef %1693, ptr noundef %75, ptr noundef %80)
  %1695 = load ptr, ptr %37, align 8, !tbaa !5
  %1696 = load ptr, ptr %48, align 8, !tbaa !5
  %1697 = load i32, ptr %67, align 4, !tbaa !9
  %1698 = sext i32 %1697 to i64
  %1699 = getelementptr inbounds double, ptr %1696, i64 %1698
  %1700 = load ptr, ptr %49, align 8, !tbaa !5
  %1701 = load ptr, ptr %39, align 8, !tbaa !5
  %1702 = load i32, ptr %63, align 4, !tbaa !9
  %1703 = sext i32 %1702 to i64
  %1704 = getelementptr inbounds double, ptr %1701, i64 %1703
  %1705 = load ptr, ptr %40, align 8, !tbaa !5
  %1706 = call i32 @dlacpy_(ptr noundef @.str.13, ptr noundef %1695, ptr noundef %104, ptr noundef %1699, ptr noundef %1700, ptr noundef %1704, ptr noundef %1705)
  %1707 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  store i8 84, ptr %1707, align 1, !tbaa !13
  br label %1789

1708:                                             ; preds = %1621
  %1709 = load ptr, ptr %36, align 8, !tbaa !5
  %1710 = load i32, ptr %1709, align 4, !tbaa !9
  %1711 = icmp eq i32 %1710, 4
  br i1 %1711, label %1712, label %1788

1712:                                             ; preds = %1708
  %1713 = load ptr, ptr %58, align 8, !tbaa !5
  %1714 = load i32, ptr %1713, align 4, !tbaa !9
  %1715 = load ptr, ptr %38, align 8, !tbaa !5
  %1716 = load i32, ptr %1715, align 4, !tbaa !9
  %1717 = sub nsw i32 %1714, %1716
  store i32 %1717, ptr %74, align 4, !tbaa !9
  %1718 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  %1719 = load ptr, ptr %37, align 8, !tbaa !5
  %1720 = load ptr, ptr %38, align 8, !tbaa !5
  %1721 = load ptr, ptr %39, align 8, !tbaa !5
  %1722 = load i32, ptr %63, align 4, !tbaa !9
  %1723 = sext i32 %1722 to i64
  %1724 = getelementptr inbounds double, ptr %1721, i64 %1723
  %1725 = load ptr, ptr %40, align 8, !tbaa !5
  %1726 = load ptr, ptr %57, align 8, !tbaa !5
  %1727 = getelementptr inbounds double, ptr %1726, i64 1
  %1728 = load ptr, ptr %48, align 8, !tbaa !5
  %1729 = load i32, ptr %67, align 4, !tbaa !9
  %1730 = sext i32 %1729 to i64
  %1731 = getelementptr inbounds double, ptr %1728, i64 %1730
  %1732 = load ptr, ptr %49, align 8, !tbaa !5
  %1733 = load ptr, ptr %53, align 8, !tbaa !5
  %1734 = load i32, ptr %71, align 4, !tbaa !9
  %1735 = sext i32 %1734 to i64
  %1736 = getelementptr inbounds double, ptr %1733, i64 %1735
  %1737 = load ptr, ptr %54, align 8, !tbaa !5
  %1738 = load ptr, ptr %57, align 8, !tbaa !5
  %1739 = load ptr, ptr %38, align 8, !tbaa !5
  %1740 = load i32, ptr %1739, align 4, !tbaa !9
  %1741 = add nsw i32 %1740, 1
  %1742 = sext i32 %1741 to i64
  %1743 = getelementptr inbounds double, ptr %1738, i64 %1742
  %1744 = load ptr, ptr %59, align 8, !tbaa !5
  %1745 = getelementptr inbounds i32, ptr %1744, i64 1
  %1746 = call i32 @dgejsv_(ptr noundef @.str.7, ptr noundef @.str.14, ptr noundef %1718, ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef @.str.10, ptr noundef %1719, ptr noundef %1720, ptr noundef %1724, ptr noundef %1725, ptr noundef %1727, ptr noundef %1731, ptr noundef %1732, ptr noundef %1736, ptr noundef %1737, ptr noundef %1743, ptr noundef %74, ptr noundef %1745, ptr noundef %80)
  %1747 = load ptr, ptr %37, align 8, !tbaa !5
  %1748 = load ptr, ptr %38, align 8, !tbaa !5
  %1749 = load ptr, ptr %48, align 8, !tbaa !5
  %1750 = load i32, ptr %67, align 4, !tbaa !9
  %1751 = sext i32 %1750 to i64
  %1752 = getelementptr inbounds double, ptr %1749, i64 %1751
  %1753 = load ptr, ptr %49, align 8, !tbaa !5
  %1754 = load ptr, ptr %39, align 8, !tbaa !5
  %1755 = load i32, ptr %63, align 4, !tbaa !9
  %1756 = sext i32 %1755 to i64
  %1757 = getelementptr inbounds double, ptr %1754, i64 %1756
  %1758 = load ptr, ptr %40, align 8, !tbaa !5
  %1759 = call i32 @dlacpy_(ptr noundef @.str.13, ptr noundef %1747, ptr noundef %1748, ptr noundef %1752, ptr noundef %1753, ptr noundef %1757, ptr noundef %1758)
  %1760 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  store i8 78, ptr %1760, align 1, !tbaa !13
  %1761 = load ptr, ptr %57, align 8, !tbaa !5
  %1762 = load ptr, ptr %38, align 8, !tbaa !5
  %1763 = load i32, ptr %1762, align 4, !tbaa !9
  %1764 = add nsw i32 %1763, 1
  %1765 = sext i32 %1764 to i64
  %1766 = getelementptr inbounds double, ptr %1761, i64 %1765
  %1767 = load double, ptr %1766, align 8, !tbaa !11
  store double %1767, ptr %82, align 8, !tbaa !11
  %1768 = load ptr, ptr %57, align 8, !tbaa !5
  %1769 = load ptr, ptr %38, align 8, !tbaa !5
  %1770 = load i32, ptr %1769, align 4, !tbaa !9
  %1771 = add nsw i32 %1770, 2
  %1772 = sext i32 %1771 to i64
  %1773 = getelementptr inbounds double, ptr %1768, i64 %1772
  %1774 = load double, ptr %1773, align 8, !tbaa !11
  store double %1774, ptr %83, align 8, !tbaa !11
  %1775 = load double, ptr %82, align 8, !tbaa !11
  %1776 = load double, ptr %83, align 8, !tbaa !11
  %1777 = fcmp une double %1775, %1776
  br i1 %1777, label %1778, label %1787

1778:                                             ; preds = %1712
  %1779 = load ptr, ptr %37, align 8, !tbaa !5
  %1780 = load ptr, ptr %38, align 8, !tbaa !5
  %1781 = load ptr, ptr %41, align 8, !tbaa !5
  %1782 = load i32, ptr %65, align 4, !tbaa !9
  %1783 = sext i32 %1782 to i64
  %1784 = getelementptr inbounds double, ptr %1781, i64 %1783
  %1785 = load ptr, ptr %42, align 8, !tbaa !5
  %1786 = call i32 @dlascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %82, ptr noundef %83, ptr noundef %1779, ptr noundef %1780, ptr noundef %1784, ptr noundef %1785, ptr noundef %81)
  br label %1787

1787:                                             ; preds = %1778, %1712
  br label %1788

1788:                                             ; preds = %1787, %1708
  br label %1789

1789:                                             ; preds = %1788, %1682
  br label %1790

1790:                                             ; preds = %1789, %1586
  br label %1791

1791:                                             ; preds = %1790, %1549
  %1792 = load i32, ptr %80, align 4, !tbaa !9
  %1793 = icmp sgt i32 %1792, 0
  br i1 %1793, label %1794, label %1796

1794:                                             ; preds = %1791
  %1795 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 2, ptr %1795, align 4, !tbaa !9
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2534

1796:                                             ; preds = %1791
  %1797 = load ptr, ptr %57, align 8, !tbaa !5
  %1798 = getelementptr inbounds double, ptr %1797, i64 1
  %1799 = load double, ptr %1798, align 8, !tbaa !11
  %1800 = load double, ptr %78, align 8, !tbaa !11
  %1801 = fcmp oeq double %1799, %1800
  br i1 %1801, label %1802, label %1809

1802:                                             ; preds = %1796
  %1803 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %1803, align 4, !tbaa !9
  %1804 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -8, ptr %1804, align 4, !tbaa !9
  %1805 = load ptr, ptr %61, align 8, !tbaa !5
  %1806 = load i32, ptr %1805, align 4, !tbaa !9
  %1807 = sub nsw i32 0, %1806
  store i32 %1807, ptr %74, align 4, !tbaa !9
  %1808 = call i32 @xerbla_(ptr noundef @.str.11, ptr noundef %74)
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2534

1809:                                             ; preds = %1796
  %1810 = load ptr, ptr %43, align 8, !tbaa !5
  %1811 = load i32, ptr %1810, align 4, !tbaa !9
  %1812 = icmp eq i32 %1811, -1
  br i1 %1812, label %1813, label %1850

1813:                                             ; preds = %1809
  %1814 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 1, ptr %1814, align 4, !tbaa !9
  %1815 = load i32, ptr %104, align 4, !tbaa !9
  store i32 %1815, ptr %74, align 4, !tbaa !9
  store i32 2, ptr %84, align 4, !tbaa !9
  br label %1816

1816:                                             ; preds = %1846, %1813
  %1817 = load i32, ptr %84, align 4, !tbaa !9
  %1818 = load i32, ptr %74, align 4, !tbaa !9
  %1819 = icmp sle i32 %1817, %1818
  br i1 %1819, label %1820, label %1849

1820:                                             ; preds = %1816
  %1821 = load ptr, ptr %57, align 8, !tbaa !5
  %1822 = load i32, ptr %84, align 4, !tbaa !9
  %1823 = sext i32 %1822 to i64
  %1824 = getelementptr inbounds double, ptr %1821, i64 %1823
  %1825 = load double, ptr %1824, align 8, !tbaa !11
  %1826 = load ptr, ptr %57, align 8, !tbaa !5
  %1827 = getelementptr inbounds double, ptr %1826, i64 1
  %1828 = load double, ptr %1827, align 8, !tbaa !11
  %1829 = load ptr, ptr %44, align 8, !tbaa !5
  %1830 = load double, ptr %1829, align 8, !tbaa !11
  %1831 = fmul double %1828, %1830
  %1832 = fcmp ole double %1825, %1831
  br i1 %1832, label %1841, label %1833

1833:                                             ; preds = %1820
  %1834 = load ptr, ptr %57, align 8, !tbaa !5
  %1835 = load i32, ptr %84, align 4, !tbaa !9
  %1836 = sext i32 %1835 to i64
  %1837 = getelementptr inbounds double, ptr %1834, i64 %1836
  %1838 = load double, ptr %1837, align 8, !tbaa !11
  %1839 = load double, ptr %88, align 8, !tbaa !11
  %1840 = fcmp ole double %1838, %1839
  br i1 %1840, label %1841, label %1842

1841:                                             ; preds = %1833, %1820
  br label %1849

1842:                                             ; preds = %1833
  %1843 = load ptr, ptr %45, align 8, !tbaa !5
  %1844 = load i32, ptr %1843, align 4, !tbaa !9
  %1845 = add nsw i32 %1844, 1
  store i32 %1845, ptr %1843, align 4, !tbaa !9
  br label %1846

1846:                                             ; preds = %1842
  %1847 = load i32, ptr %84, align 4, !tbaa !9
  %1848 = add nsw i32 %1847, 1
  store i32 %1848, ptr %84, align 4, !tbaa !9
  br label %1816, !llvm.loop !19

1849:                                             ; preds = %1841, %1816
  br label %1921

1850:                                             ; preds = %1809
  %1851 = load ptr, ptr %43, align 8, !tbaa !5
  %1852 = load i32, ptr %1851, align 4, !tbaa !9
  %1853 = icmp eq i32 %1852, -2
  br i1 %1853, label %1854, label %1895

1854:                                             ; preds = %1850
  %1855 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 1, ptr %1855, align 4, !tbaa !9
  %1856 = load i32, ptr %104, align 4, !tbaa !9
  %1857 = sub nsw i32 %1856, 1
  store i32 %1857, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1858

1858:                                             ; preds = %1891, %1854
  %1859 = load i32, ptr %84, align 4, !tbaa !9
  %1860 = load i32, ptr %74, align 4, !tbaa !9
  %1861 = icmp sle i32 %1859, %1860
  br i1 %1861, label %1862, label %1894

1862:                                             ; preds = %1858
  %1863 = load ptr, ptr %57, align 8, !tbaa !5
  %1864 = load i32, ptr %84, align 4, !tbaa !9
  %1865 = add nsw i32 %1864, 1
  %1866 = sext i32 %1865 to i64
  %1867 = getelementptr inbounds double, ptr %1863, i64 %1866
  %1868 = load double, ptr %1867, align 8, !tbaa !11
  %1869 = load ptr, ptr %57, align 8, !tbaa !5
  %1870 = load i32, ptr %84, align 4, !tbaa !9
  %1871 = sext i32 %1870 to i64
  %1872 = getelementptr inbounds double, ptr %1869, i64 %1871
  %1873 = load double, ptr %1872, align 8, !tbaa !11
  %1874 = load ptr, ptr %44, align 8, !tbaa !5
  %1875 = load double, ptr %1874, align 8, !tbaa !11
  %1876 = fmul double %1873, %1875
  %1877 = fcmp ole double %1868, %1876
  br i1 %1877, label %1886, label %1878

1878:                                             ; preds = %1862
  %1879 = load ptr, ptr %57, align 8, !tbaa !5
  %1880 = load i32, ptr %84, align 4, !tbaa !9
  %1881 = sext i32 %1880 to i64
  %1882 = getelementptr inbounds double, ptr %1879, i64 %1881
  %1883 = load double, ptr %1882, align 8, !tbaa !11
  %1884 = load double, ptr %88, align 8, !tbaa !11
  %1885 = fcmp ole double %1883, %1884
  br i1 %1885, label %1886, label %1887

1886:                                             ; preds = %1878, %1862
  br label %1894

1887:                                             ; preds = %1878
  %1888 = load ptr, ptr %45, align 8, !tbaa !5
  %1889 = load i32, ptr %1888, align 4, !tbaa !9
  %1890 = add nsw i32 %1889, 1
  store i32 %1890, ptr %1888, align 4, !tbaa !9
  br label %1891

1891:                                             ; preds = %1887
  %1892 = load i32, ptr %84, align 4, !tbaa !9
  %1893 = add nsw i32 %1892, 1
  store i32 %1893, ptr %84, align 4, !tbaa !9
  br label %1858, !llvm.loop !20

1894:                                             ; preds = %1886, %1858
  br label %1920

1895:                                             ; preds = %1850
  %1896 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 1, ptr %1896, align 4, !tbaa !9
  %1897 = load ptr, ptr %43, align 8, !tbaa !5
  %1898 = load i32, ptr %1897, align 4, !tbaa !9
  store i32 %1898, ptr %74, align 4, !tbaa !9
  store i32 2, ptr %84, align 4, !tbaa !9
  br label %1899

1899:                                             ; preds = %1916, %1895
  %1900 = load i32, ptr %84, align 4, !tbaa !9
  %1901 = load i32, ptr %74, align 4, !tbaa !9
  %1902 = icmp sle i32 %1900, %1901
  br i1 %1902, label %1903, label %1919

1903:                                             ; preds = %1899
  %1904 = load ptr, ptr %57, align 8, !tbaa !5
  %1905 = load i32, ptr %84, align 4, !tbaa !9
  %1906 = sext i32 %1905 to i64
  %1907 = getelementptr inbounds double, ptr %1904, i64 %1906
  %1908 = load double, ptr %1907, align 8, !tbaa !11
  %1909 = load double, ptr %88, align 8, !tbaa !11
  %1910 = fcmp ole double %1908, %1909
  br i1 %1910, label %1911, label %1912

1911:                                             ; preds = %1903
  br label %1919

1912:                                             ; preds = %1903
  %1913 = load ptr, ptr %45, align 8, !tbaa !5
  %1914 = load i32, ptr %1913, align 4, !tbaa !9
  %1915 = add nsw i32 %1914, 1
  store i32 %1915, ptr %1913, align 4, !tbaa !9
  br label %1916

1916:                                             ; preds = %1912
  %1917 = load i32, ptr %84, align 4, !tbaa !9
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr %84, align 4, !tbaa !9
  br label %1899, !llvm.loop !21

1919:                                             ; preds = %1911, %1899
  br label %1920

1920:                                             ; preds = %1919, %1894
  br label %1921

1921:                                             ; preds = %1920, %1849
  %1922 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  %1923 = call i32 @lsame_(ptr noundef %1922, ptr noundef @.str.6)
  %1924 = icmp ne i32 %1923, 0
  br i1 %1924, label %1925, label %1953

1925:                                             ; preds = %1921
  %1926 = load ptr, ptr %45, align 8, !tbaa !5
  %1927 = load i32, ptr %1926, align 4, !tbaa !9
  store i32 %1927, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1928

1928:                                             ; preds = %1949, %1925
  %1929 = load i32, ptr %84, align 4, !tbaa !9
  %1930 = load i32, ptr %74, align 4, !tbaa !9
  %1931 = icmp sle i32 %1929, %1930
  br i1 %1931, label %1932, label %1952

1932:                                             ; preds = %1928
  %1933 = load double, ptr %117, align 8, !tbaa !11
  %1934 = load ptr, ptr %57, align 8, !tbaa !5
  %1935 = load i32, ptr %84, align 4, !tbaa !9
  %1936 = sext i32 %1935 to i64
  %1937 = getelementptr inbounds double, ptr %1934, i64 %1936
  %1938 = load double, ptr %1937, align 8, !tbaa !11
  %1939 = fdiv double %1933, %1938
  store double %1939, ptr %76, align 8, !tbaa !11
  %1940 = load ptr, ptr %38, align 8, !tbaa !5
  %1941 = load ptr, ptr %53, align 8, !tbaa !5
  %1942 = load i32, ptr %84, align 4, !tbaa !9
  %1943 = load i32, ptr %70, align 4, !tbaa !9
  %1944 = mul nsw i32 %1942, %1943
  %1945 = add nsw i32 %1944, 1
  %1946 = sext i32 %1945 to i64
  %1947 = getelementptr inbounds double, ptr %1941, i64 %1946
  %1948 = call i32 @dscal_(ptr noundef %1940, ptr noundef %76, ptr noundef %1947, ptr noundef @c__1)
  br label %1949

1949:                                             ; preds = %1932
  %1950 = load i32, ptr %84, align 4, !tbaa !9
  %1951 = add nsw i32 %1950, 1
  store i32 %1951, ptr %84, align 4, !tbaa !9
  br label %1928, !llvm.loop !22

1952:                                             ; preds = %1928
  br label %2027

1953:                                             ; preds = %1921
  %1954 = load ptr, ptr %45, align 8, !tbaa !5
  %1955 = load i32, ptr %1954, align 4, !tbaa !9
  store i32 %1955, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1956

1956:                                             ; preds = %1975, %1953
  %1957 = load i32, ptr %84, align 4, !tbaa !9
  %1958 = load i32, ptr %74, align 4, !tbaa !9
  %1959 = icmp sle i32 %1957, %1958
  br i1 %1959, label %1960, label %1978

1960:                                             ; preds = %1956
  %1961 = load double, ptr %117, align 8, !tbaa !11
  %1962 = load ptr, ptr %57, align 8, !tbaa !5
  %1963 = load i32, ptr %84, align 4, !tbaa !9
  %1964 = sext i32 %1963 to i64
  %1965 = getelementptr inbounds double, ptr %1962, i64 %1964
  %1966 = load double, ptr %1965, align 8, !tbaa !11
  %1967 = fdiv double %1961, %1966
  %1968 = load ptr, ptr %57, align 8, !tbaa !5
  %1969 = load ptr, ptr %38, align 8, !tbaa !5
  %1970 = load i32, ptr %1969, align 4, !tbaa !9
  %1971 = load i32, ptr %84, align 4, !tbaa !9
  %1972 = add nsw i32 %1970, %1971
  %1973 = sext i32 %1972 to i64
  %1974 = getelementptr inbounds double, ptr %1968, i64 %1973
  store double %1967, ptr %1974, align 8, !tbaa !11
  br label %1975

1975:                                             ; preds = %1960
  %1976 = load i32, ptr %84, align 4, !tbaa !9
  %1977 = add nsw i32 %1976, 1
  store i32 %1977, ptr %84, align 4, !tbaa !9
  br label %1956, !llvm.loop !23

1978:                                             ; preds = %1956
  %1979 = load ptr, ptr %38, align 8, !tbaa !5
  %1980 = load i32, ptr %1979, align 4, !tbaa !9
  store i32 %1980, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %85, align 4, !tbaa !9
  br label %1981

1981:                                             ; preds = %2023, %1978
  %1982 = load i32, ptr %85, align 4, !tbaa !9
  %1983 = load i32, ptr %74, align 4, !tbaa !9
  %1984 = icmp sle i32 %1982, %1983
  br i1 %1984, label %1985, label %2026

1985:                                             ; preds = %1981
  %1986 = load ptr, ptr %45, align 8, !tbaa !5
  %1987 = load i32, ptr %1986, align 4, !tbaa !9
  store i32 %1987, ptr %75, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1988

1988:                                             ; preds = %2019, %1985
  %1989 = load i32, ptr %84, align 4, !tbaa !9
  %1990 = load i32, ptr %75, align 4, !tbaa !9
  %1991 = icmp sle i32 %1989, %1990
  br i1 %1991, label %1992, label %2022

1992:                                             ; preds = %1988
  %1993 = load ptr, ptr %57, align 8, !tbaa !5
  %1994 = load ptr, ptr %38, align 8, !tbaa !5
  %1995 = load i32, ptr %1994, align 4, !tbaa !9
  %1996 = load i32, ptr %84, align 4, !tbaa !9
  %1997 = add nsw i32 %1995, %1996
  %1998 = sext i32 %1997 to i64
  %1999 = getelementptr inbounds double, ptr %1993, i64 %1998
  %2000 = load double, ptr %1999, align 8, !tbaa !11
  %2001 = load ptr, ptr %53, align 8, !tbaa !5
  %2002 = load i32, ptr %84, align 4, !tbaa !9
  %2003 = load i32, ptr %85, align 4, !tbaa !9
  %2004 = load i32, ptr %70, align 4, !tbaa !9
  %2005 = mul nsw i32 %2003, %2004
  %2006 = add nsw i32 %2002, %2005
  %2007 = sext i32 %2006 to i64
  %2008 = getelementptr inbounds double, ptr %2001, i64 %2007
  %2009 = load double, ptr %2008, align 8, !tbaa !11
  %2010 = fmul double %2000, %2009
  %2011 = load ptr, ptr %53, align 8, !tbaa !5
  %2012 = load i32, ptr %84, align 4, !tbaa !9
  %2013 = load i32, ptr %85, align 4, !tbaa !9
  %2014 = load i32, ptr %70, align 4, !tbaa !9
  %2015 = mul nsw i32 %2013, %2014
  %2016 = add nsw i32 %2012, %2015
  %2017 = sext i32 %2016 to i64
  %2018 = getelementptr inbounds double, ptr %2011, i64 %2017
  store double %2010, ptr %2018, align 8, !tbaa !11
  br label %2019

2019:                                             ; preds = %1992
  %2020 = load i32, ptr %84, align 4, !tbaa !9
  %2021 = add nsw i32 %2020, 1
  store i32 %2021, ptr %84, align 4, !tbaa !9
  br label %1988, !llvm.loop !24

2022:                                             ; preds = %1988
  br label %2023

2023:                                             ; preds = %2022
  %2024 = load i32, ptr %85, align 4, !tbaa !9
  %2025 = add nsw i32 %2024, 1
  store i32 %2025, ptr %85, align 4, !tbaa !9
  br label %1981, !llvm.loop !25

2026:                                             ; preds = %1981
  br label %2027

2027:                                             ; preds = %2026, %1952
  %2028 = load i32, ptr %98, align 4, !tbaa !9
  %2029 = icmp ne i32 %2028, 0
  br i1 %2029, label %2030, label %2083

2030:                                             ; preds = %2027
  %2031 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  %2032 = load ptr, ptr %37, align 8, !tbaa !5
  %2033 = load ptr, ptr %45, align 8, !tbaa !5
  %2034 = load ptr, ptr %38, align 8, !tbaa !5
  %2035 = load ptr, ptr %41, align 8, !tbaa !5
  %2036 = load i32, ptr %65, align 4, !tbaa !9
  %2037 = sext i32 %2036 to i64
  %2038 = getelementptr inbounds double, ptr %2035, i64 %2037
  %2039 = load ptr, ptr %42, align 8, !tbaa !5
  %2040 = load ptr, ptr %53, align 8, !tbaa !5
  %2041 = load i32, ptr %71, align 4, !tbaa !9
  %2042 = sext i32 %2041 to i64
  %2043 = getelementptr inbounds double, ptr %2040, i64 %2042
  %2044 = load ptr, ptr %54, align 8, !tbaa !5
  %2045 = load ptr, ptr %48, align 8, !tbaa !5
  %2046 = load i32, ptr %67, align 4, !tbaa !9
  %2047 = sext i32 %2046 to i64
  %2048 = getelementptr inbounds double, ptr %2045, i64 %2047
  %2049 = load ptr, ptr %49, align 8, !tbaa !5
  %2050 = call i32 @dgemm_(ptr noundef @.str.6, ptr noundef %2031, ptr noundef %2032, ptr noundef %2033, ptr noundef %2034, ptr noundef %117, ptr noundef %2038, ptr noundef %2039, ptr noundef %2043, ptr noundef %2044, ptr noundef %78, ptr noundef %2048, ptr noundef %2049)
  %2051 = load ptr, ptr %37, align 8, !tbaa !5
  %2052 = load ptr, ptr %45, align 8, !tbaa !5
  %2053 = load ptr, ptr %48, align 8, !tbaa !5
  %2054 = load i32, ptr %67, align 4, !tbaa !9
  %2055 = sext i32 %2054 to i64
  %2056 = getelementptr inbounds double, ptr %2053, i64 %2055
  %2057 = load ptr, ptr %49, align 8, !tbaa !5
  %2058 = load ptr, ptr %51, align 8, !tbaa !5
  %2059 = load i32, ptr %69, align 4, !tbaa !9
  %2060 = sext i32 %2059 to i64
  %2061 = getelementptr inbounds double, ptr %2058, i64 %2060
  %2062 = load ptr, ptr %52, align 8, !tbaa !5
  %2063 = call i32 @dlacpy_(ptr noundef @.str.13, ptr noundef %2051, ptr noundef %2052, ptr noundef %2056, ptr noundef %2057, ptr noundef %2061, ptr noundef %2062)
  %2064 = load ptr, ptr %45, align 8, !tbaa !5
  %2065 = load ptr, ptr %45, align 8, !tbaa !5
  %2066 = load ptr, ptr %37, align 8, !tbaa !5
  %2067 = load ptr, ptr %39, align 8, !tbaa !5
  %2068 = load i32, ptr %63, align 4, !tbaa !9
  %2069 = sext i32 %2068 to i64
  %2070 = getelementptr inbounds double, ptr %2067, i64 %2069
  %2071 = load ptr, ptr %40, align 8, !tbaa !5
  %2072 = load ptr, ptr %48, align 8, !tbaa !5
  %2073 = load i32, ptr %67, align 4, !tbaa !9
  %2074 = sext i32 %2073 to i64
  %2075 = getelementptr inbounds double, ptr %2072, i64 %2074
  %2076 = load ptr, ptr %49, align 8, !tbaa !5
  %2077 = load ptr, ptr %55, align 8, !tbaa !5
  %2078 = load i32, ptr %73, align 4, !tbaa !9
  %2079 = sext i32 %2078 to i64
  %2080 = getelementptr inbounds double, ptr %2077, i64 %2079
  %2081 = load ptr, ptr %56, align 8, !tbaa !5
  %2082 = call i32 @dgemm_(ptr noundef @.str.15, ptr noundef @.str.6, ptr noundef %2064, ptr noundef %2065, ptr noundef %2066, ptr noundef %117, ptr noundef %2070, ptr noundef %2071, ptr noundef %2075, ptr noundef %2076, ptr noundef %78, ptr noundef %2080, ptr noundef %2081)
  br label %2162

2083:                                             ; preds = %2027
  %2084 = load ptr, ptr %45, align 8, !tbaa !5
  %2085 = load ptr, ptr %38, align 8, !tbaa !5
  %2086 = load ptr, ptr %37, align 8, !tbaa !5
  %2087 = load ptr, ptr %39, align 8, !tbaa !5
  %2088 = load i32, ptr %63, align 4, !tbaa !9
  %2089 = sext i32 %2088 to i64
  %2090 = getelementptr inbounds double, ptr %2087, i64 %2089
  %2091 = load ptr, ptr %40, align 8, !tbaa !5
  %2092 = load ptr, ptr %41, align 8, !tbaa !5
  %2093 = load i32, ptr %65, align 4, !tbaa !9
  %2094 = sext i32 %2093 to i64
  %2095 = getelementptr inbounds double, ptr %2092, i64 %2094
  %2096 = load ptr, ptr %42, align 8, !tbaa !5
  %2097 = load ptr, ptr %48, align 8, !tbaa !5
  %2098 = load i32, ptr %67, align 4, !tbaa !9
  %2099 = sext i32 %2098 to i64
  %2100 = getelementptr inbounds double, ptr %2097, i64 %2099
  %2101 = load ptr, ptr %49, align 8, !tbaa !5
  %2102 = call i32 @dgemm_(ptr noundef @.str.15, ptr noundef @.str.6, ptr noundef %2084, ptr noundef %2085, ptr noundef %2086, ptr noundef %117, ptr noundef %2090, ptr noundef %2091, ptr noundef %2095, ptr noundef %2096, ptr noundef %78, ptr noundef %2100, ptr noundef %2101)
  %2103 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  %2104 = load ptr, ptr %45, align 8, !tbaa !5
  %2105 = load ptr, ptr %45, align 8, !tbaa !5
  %2106 = load ptr, ptr %38, align 8, !tbaa !5
  %2107 = load ptr, ptr %48, align 8, !tbaa !5
  %2108 = load i32, ptr %67, align 4, !tbaa !9
  %2109 = sext i32 %2108 to i64
  %2110 = getelementptr inbounds double, ptr %2107, i64 %2109
  %2111 = load ptr, ptr %49, align 8, !tbaa !5
  %2112 = load ptr, ptr %53, align 8, !tbaa !5
  %2113 = load i32, ptr %71, align 4, !tbaa !9
  %2114 = sext i32 %2113 to i64
  %2115 = getelementptr inbounds double, ptr %2112, i64 %2114
  %2116 = load ptr, ptr %54, align 8, !tbaa !5
  %2117 = load ptr, ptr %55, align 8, !tbaa !5
  %2118 = load i32, ptr %73, align 4, !tbaa !9
  %2119 = sext i32 %2118 to i64
  %2120 = getelementptr inbounds double, ptr %2117, i64 %2119
  %2121 = load ptr, ptr %56, align 8, !tbaa !5
  %2122 = call i32 @dgemm_(ptr noundef @.str.6, ptr noundef %2103, ptr noundef %2104, ptr noundef %2105, ptr noundef %2106, ptr noundef %117, ptr noundef %2110, ptr noundef %2111, ptr noundef %2115, ptr noundef %2116, ptr noundef %78, ptr noundef %2120, ptr noundef %2121)
  %2123 = load i32, ptr %110, align 4, !tbaa !9
  %2124 = icmp ne i32 %2123, 0
  br i1 %2124, label %2128, label %2125

2125:                                             ; preds = %2083
  %2126 = load i32, ptr %90, align 4, !tbaa !9
  %2127 = icmp ne i32 %2126, 0
  br i1 %2127, label %2128, label %2161

2128:                                             ; preds = %2125, %2083
  %2129 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  %2130 = call i32 @lsame_(ptr noundef %2129, ptr noundef @.str.6)
  %2131 = icmp ne i32 %2130, 0
  br i1 %2131, label %2132, label %2146

2132:                                             ; preds = %2128
  %2133 = load ptr, ptr %38, align 8, !tbaa !5
  %2134 = load ptr, ptr %45, align 8, !tbaa !5
  %2135 = load ptr, ptr %53, align 8, !tbaa !5
  %2136 = load i32, ptr %71, align 4, !tbaa !9
  %2137 = sext i32 %2136 to i64
  %2138 = getelementptr inbounds double, ptr %2135, i64 %2137
  %2139 = load ptr, ptr %54, align 8, !tbaa !5
  %2140 = load ptr, ptr %48, align 8, !tbaa !5
  %2141 = load i32, ptr %67, align 4, !tbaa !9
  %2142 = sext i32 %2141 to i64
  %2143 = getelementptr inbounds double, ptr %2140, i64 %2142
  %2144 = load ptr, ptr %49, align 8, !tbaa !5
  %2145 = call i32 @dlacpy_(ptr noundef @.str.13, ptr noundef %2133, ptr noundef %2134, ptr noundef %2138, ptr noundef %2139, ptr noundef %2143, ptr noundef %2144)
  br label %2160

2146:                                             ; preds = %2128
  %2147 = load ptr, ptr %45, align 8, !tbaa !5
  %2148 = load ptr, ptr %38, align 8, !tbaa !5
  %2149 = load ptr, ptr %53, align 8, !tbaa !5
  %2150 = load i32, ptr %71, align 4, !tbaa !9
  %2151 = sext i32 %2150 to i64
  %2152 = getelementptr inbounds double, ptr %2149, i64 %2151
  %2153 = load ptr, ptr %54, align 8, !tbaa !5
  %2154 = load ptr, ptr %48, align 8, !tbaa !5
  %2155 = load i32, ptr %67, align 4, !tbaa !9
  %2156 = sext i32 %2155 to i64
  %2157 = getelementptr inbounds double, ptr %2154, i64 %2156
  %2158 = load ptr, ptr %49, align 8, !tbaa !5
  %2159 = call i32 @dlacpy_(ptr noundef @.str.13, ptr noundef %2147, ptr noundef %2148, ptr noundef %2152, ptr noundef %2153, ptr noundef %2157, ptr noundef %2158)
  br label %2160

2160:                                             ; preds = %2146, %2132
  br label %2161

2161:                                             ; preds = %2160, %2125
  br label %2162

2162:                                             ; preds = %2161, %2030
  %2163 = load ptr, ptr %58, align 8, !tbaa !5
  %2164 = load i32, ptr %2163, align 4, !tbaa !9
  %2165 = load ptr, ptr %38, align 8, !tbaa !5
  %2166 = load i32, ptr %2165, align 4, !tbaa !9
  %2167 = sub nsw i32 %2164, %2166
  store i32 %2167, ptr %74, align 4, !tbaa !9
  %2168 = getelementptr inbounds [1 x i8], ptr %89, i64 0, i64 0
  %2169 = load ptr, ptr %45, align 8, !tbaa !5
  %2170 = load ptr, ptr %55, align 8, !tbaa !5
  %2171 = load i32, ptr %73, align 4, !tbaa !9
  %2172 = sext i32 %2171 to i64
  %2173 = getelementptr inbounds double, ptr %2170, i64 %2172
  %2174 = load ptr, ptr %56, align 8, !tbaa !5
  %2175 = load ptr, ptr %46, align 8, !tbaa !5
  %2176 = getelementptr inbounds double, ptr %2175, i64 1
  %2177 = load ptr, ptr %47, align 8, !tbaa !5
  %2178 = getelementptr inbounds double, ptr %2177, i64 1
  %2179 = load ptr, ptr %53, align 8, !tbaa !5
  %2180 = load i32, ptr %71, align 4, !tbaa !9
  %2181 = sext i32 %2180 to i64
  %2182 = getelementptr inbounds double, ptr %2179, i64 %2181
  %2183 = load ptr, ptr %54, align 8, !tbaa !5
  %2184 = load ptr, ptr %53, align 8, !tbaa !5
  %2185 = load i32, ptr %71, align 4, !tbaa !9
  %2186 = sext i32 %2185 to i64
  %2187 = getelementptr inbounds double, ptr %2184, i64 %2186
  %2188 = load ptr, ptr %54, align 8, !tbaa !5
  %2189 = load ptr, ptr %57, align 8, !tbaa !5
  %2190 = load ptr, ptr %38, align 8, !tbaa !5
  %2191 = load i32, ptr %2190, align 4, !tbaa !9
  %2192 = add nsw i32 %2191, 1
  %2193 = sext i32 %2192 to i64
  %2194 = getelementptr inbounds double, ptr %2189, i64 %2193
  %2195 = call i32 @dgeev_(ptr noundef @.str.6, ptr noundef %2168, ptr noundef %2169, ptr noundef %2173, ptr noundef %2174, ptr noundef %2176, ptr noundef %2178, ptr noundef %2182, ptr noundef %2183, ptr noundef %2187, ptr noundef %2188, ptr noundef %2194, ptr noundef %74, ptr noundef %80)
  %2196 = load i32, ptr %80, align 4, !tbaa !9
  %2197 = icmp sgt i32 %2196, 0
  br i1 %2197, label %2198, label %2200

2198:                                             ; preds = %2162
  %2199 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 3, ptr %2199, align 4, !tbaa !9
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2534

2200:                                             ; preds = %2162
  %2201 = load i32, ptr %99, align 4, !tbaa !9
  %2202 = icmp ne i32 %2201, 0
  br i1 %2202, label %2206, label %2203

2203:                                             ; preds = %2200
  %2204 = load i32, ptr %90, align 4, !tbaa !9
  %2205 = icmp ne i32 %2204, 0
  br i1 %2205, label %2206, label %2507

2206:                                             ; preds = %2203, %2200
  %2207 = load i32, ptr %110, align 4, !tbaa !9
  %2208 = icmp ne i32 %2207, 0
  br i1 %2208, label %2209, label %2303

2209:                                             ; preds = %2206
  %2210 = load i32, ptr %98, align 4, !tbaa !9
  %2211 = icmp ne i32 %2210, 0
  br i1 %2211, label %2212, label %2232

2212:                                             ; preds = %2209
  %2213 = load ptr, ptr %37, align 8, !tbaa !5
  %2214 = load ptr, ptr %45, align 8, !tbaa !5
  %2215 = load ptr, ptr %45, align 8, !tbaa !5
  %2216 = load ptr, ptr %48, align 8, !tbaa !5
  %2217 = load i32, ptr %67, align 4, !tbaa !9
  %2218 = sext i32 %2217 to i64
  %2219 = getelementptr inbounds double, ptr %2216, i64 %2218
  %2220 = load ptr, ptr %49, align 8, !tbaa !5
  %2221 = load ptr, ptr %53, align 8, !tbaa !5
  %2222 = load i32, ptr %71, align 4, !tbaa !9
  %2223 = sext i32 %2222 to i64
  %2224 = getelementptr inbounds double, ptr %2221, i64 %2223
  %2225 = load ptr, ptr %54, align 8, !tbaa !5
  %2226 = load ptr, ptr %41, align 8, !tbaa !5
  %2227 = load i32, ptr %65, align 4, !tbaa !9
  %2228 = sext i32 %2227 to i64
  %2229 = getelementptr inbounds double, ptr %2226, i64 %2228
  %2230 = load ptr, ptr %42, align 8, !tbaa !5
  %2231 = call i32 @dgemm_(ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %2213, ptr noundef %2214, ptr noundef %2215, ptr noundef %117, ptr noundef %2219, ptr noundef %2220, ptr noundef %2224, ptr noundef %2225, ptr noundef %78, ptr noundef %2229, ptr noundef %2230)
  br label %2302

2232:                                             ; preds = %2209
  %2233 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  %2234 = load ptr, ptr %38, align 8, !tbaa !5
  %2235 = load ptr, ptr %45, align 8, !tbaa !5
  %2236 = load ptr, ptr %45, align 8, !tbaa !5
  %2237 = load ptr, ptr %48, align 8, !tbaa !5
  %2238 = load i32, ptr %67, align 4, !tbaa !9
  %2239 = sext i32 %2238 to i64
  %2240 = getelementptr inbounds double, ptr %2237, i64 %2239
  %2241 = load ptr, ptr %49, align 8, !tbaa !5
  %2242 = load ptr, ptr %53, align 8, !tbaa !5
  %2243 = load i32, ptr %71, align 4, !tbaa !9
  %2244 = sext i32 %2243 to i64
  %2245 = getelementptr inbounds double, ptr %2242, i64 %2244
  %2246 = load ptr, ptr %54, align 8, !tbaa !5
  %2247 = load ptr, ptr %55, align 8, !tbaa !5
  %2248 = load i32, ptr %73, align 4, !tbaa !9
  %2249 = sext i32 %2248 to i64
  %2250 = getelementptr inbounds double, ptr %2247, i64 %2249
  %2251 = load ptr, ptr %56, align 8, !tbaa !5
  %2252 = call i32 @dgemm_(ptr noundef %2233, ptr noundef @.str.6, ptr noundef %2234, ptr noundef %2235, ptr noundef %2236, ptr noundef %117, ptr noundef %2240, ptr noundef %2241, ptr noundef %2245, ptr noundef %2246, ptr noundef %78, ptr noundef %2250, ptr noundef %2251)
  %2253 = load ptr, ptr %37, align 8, !tbaa !5
  %2254 = load ptr, ptr %45, align 8, !tbaa !5
  %2255 = load ptr, ptr %38, align 8, !tbaa !5
  %2256 = load ptr, ptr %41, align 8, !tbaa !5
  %2257 = load i32, ptr %65, align 4, !tbaa !9
  %2258 = sext i32 %2257 to i64
  %2259 = getelementptr inbounds double, ptr %2256, i64 %2258
  %2260 = load ptr, ptr %42, align 8, !tbaa !5
  %2261 = load ptr, ptr %55, align 8, !tbaa !5
  %2262 = load i32, ptr %73, align 4, !tbaa !9
  %2263 = sext i32 %2262 to i64
  %2264 = getelementptr inbounds double, ptr %2261, i64 %2263
  %2265 = load ptr, ptr %56, align 8, !tbaa !5
  %2266 = load ptr, ptr %48, align 8, !tbaa !5
  %2267 = load i32, ptr %67, align 4, !tbaa !9
  %2268 = sext i32 %2267 to i64
  %2269 = getelementptr inbounds double, ptr %2266, i64 %2268
  %2270 = load ptr, ptr %49, align 8, !tbaa !5
  %2271 = call i32 @dgemm_(ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %2253, ptr noundef %2254, ptr noundef %2255, ptr noundef %117, ptr noundef %2259, ptr noundef %2260, ptr noundef %2264, ptr noundef %2265, ptr noundef %78, ptr noundef %2269, ptr noundef %2270)
  %2272 = load ptr, ptr %37, align 8, !tbaa !5
  %2273 = load ptr, ptr %45, align 8, !tbaa !5
  %2274 = load ptr, ptr %48, align 8, !tbaa !5
  %2275 = load i32, ptr %67, align 4, !tbaa !9
  %2276 = sext i32 %2275 to i64
  %2277 = getelementptr inbounds double, ptr %2274, i64 %2276
  %2278 = load ptr, ptr %49, align 8, !tbaa !5
  %2279 = load ptr, ptr %41, align 8, !tbaa !5
  %2280 = load i32, ptr %65, align 4, !tbaa !9
  %2281 = sext i32 %2280 to i64
  %2282 = getelementptr inbounds double, ptr %2279, i64 %2281
  %2283 = load ptr, ptr %42, align 8, !tbaa !5
  %2284 = call i32 @dlacpy_(ptr noundef @.str.13, ptr noundef %2272, ptr noundef %2273, ptr noundef %2277, ptr noundef %2278, ptr noundef %2282, ptr noundef %2283)
  %2285 = load i32, ptr %90, align 4, !tbaa !9
  %2286 = icmp ne i32 %2285, 0
  br i1 %2286, label %2287, label %2301

2287:                                             ; preds = %2232
  %2288 = load ptr, ptr %37, align 8, !tbaa !5
  %2289 = load ptr, ptr %45, align 8, !tbaa !5
  %2290 = load ptr, ptr %48, align 8, !tbaa !5
  %2291 = load i32, ptr %67, align 4, !tbaa !9
  %2292 = sext i32 %2291 to i64
  %2293 = getelementptr inbounds double, ptr %2290, i64 %2292
  %2294 = load ptr, ptr %49, align 8, !tbaa !5
  %2295 = load ptr, ptr %51, align 8, !tbaa !5
  %2296 = load i32, ptr %69, align 4, !tbaa !9
  %2297 = sext i32 %2296 to i64
  %2298 = getelementptr inbounds double, ptr %2295, i64 %2297
  %2299 = load ptr, ptr %52, align 8, !tbaa !5
  %2300 = call i32 @dlacpy_(ptr noundef @.str.13, ptr noundef %2288, ptr noundef %2289, ptr noundef %2293, ptr noundef %2294, ptr noundef %2298, ptr noundef %2299)
  br label %2301

2301:                                             ; preds = %2287, %2232
  br label %2302

2302:                                             ; preds = %2301, %2212
  br label %2347

2303:                                             ; preds = %2206
  %2304 = load i32, ptr %90, align 4, !tbaa !9
  %2305 = icmp ne i32 %2304, 0
  br i1 %2305, label %2306, label %2346

2306:                                             ; preds = %2303
  %2307 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  %2308 = load ptr, ptr %38, align 8, !tbaa !5
  %2309 = load ptr, ptr %45, align 8, !tbaa !5
  %2310 = load ptr, ptr %45, align 8, !tbaa !5
  %2311 = load ptr, ptr %48, align 8, !tbaa !5
  %2312 = load i32, ptr %67, align 4, !tbaa !9
  %2313 = sext i32 %2312 to i64
  %2314 = getelementptr inbounds double, ptr %2311, i64 %2313
  %2315 = load ptr, ptr %49, align 8, !tbaa !5
  %2316 = load ptr, ptr %53, align 8, !tbaa !5
  %2317 = load i32, ptr %71, align 4, !tbaa !9
  %2318 = sext i32 %2317 to i64
  %2319 = getelementptr inbounds double, ptr %2316, i64 %2318
  %2320 = load ptr, ptr %54, align 8, !tbaa !5
  %2321 = load ptr, ptr %55, align 8, !tbaa !5
  %2322 = load i32, ptr %73, align 4, !tbaa !9
  %2323 = sext i32 %2322 to i64
  %2324 = getelementptr inbounds double, ptr %2321, i64 %2323
  %2325 = load ptr, ptr %56, align 8, !tbaa !5
  %2326 = call i32 @dgemm_(ptr noundef %2307, ptr noundef @.str.6, ptr noundef %2308, ptr noundef %2309, ptr noundef %2310, ptr noundef %117, ptr noundef %2314, ptr noundef %2315, ptr noundef %2319, ptr noundef %2320, ptr noundef %78, ptr noundef %2324, ptr noundef %2325)
  %2327 = load ptr, ptr %37, align 8, !tbaa !5
  %2328 = load ptr, ptr %45, align 8, !tbaa !5
  %2329 = load ptr, ptr %38, align 8, !tbaa !5
  %2330 = load ptr, ptr %41, align 8, !tbaa !5
  %2331 = load i32, ptr %65, align 4, !tbaa !9
  %2332 = sext i32 %2331 to i64
  %2333 = getelementptr inbounds double, ptr %2330, i64 %2332
  %2334 = load ptr, ptr %42, align 8, !tbaa !5
  %2335 = load ptr, ptr %55, align 8, !tbaa !5
  %2336 = load i32, ptr %73, align 4, !tbaa !9
  %2337 = sext i32 %2336 to i64
  %2338 = getelementptr inbounds double, ptr %2335, i64 %2337
  %2339 = load ptr, ptr %56, align 8, !tbaa !5
  %2340 = load ptr, ptr %51, align 8, !tbaa !5
  %2341 = load i32, ptr %69, align 4, !tbaa !9
  %2342 = sext i32 %2341 to i64
  %2343 = getelementptr inbounds double, ptr %2340, i64 %2342
  %2344 = load ptr, ptr %52, align 8, !tbaa !5
  %2345 = call i32 @dgemm_(ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %2327, ptr noundef %2328, ptr noundef %2329, ptr noundef %117, ptr noundef %2333, ptr noundef %2334, ptr noundef %2338, ptr noundef %2339, ptr noundef %78, ptr noundef %2343, ptr noundef %2344)
  br label %2346

2346:                                             ; preds = %2306, %2303
  br label %2347

2347:                                             ; preds = %2346, %2302
  %2348 = load i32, ptr %99, align 4, !tbaa !9
  %2349 = icmp ne i32 %2348, 0
  br i1 %2349, label %2350, label %2370

2350:                                             ; preds = %2347
  %2351 = load ptr, ptr %37, align 8, !tbaa !5
  %2352 = load ptr, ptr %45, align 8, !tbaa !5
  %2353 = load ptr, ptr %45, align 8, !tbaa !5
  %2354 = load ptr, ptr %39, align 8, !tbaa !5
  %2355 = load i32, ptr %63, align 4, !tbaa !9
  %2356 = sext i32 %2355 to i64
  %2357 = getelementptr inbounds double, ptr %2354, i64 %2356
  %2358 = load ptr, ptr %40, align 8, !tbaa !5
  %2359 = load ptr, ptr %53, align 8, !tbaa !5
  %2360 = load i32, ptr %71, align 4, !tbaa !9
  %2361 = sext i32 %2360 to i64
  %2362 = getelementptr inbounds double, ptr %2359, i64 %2361
  %2363 = load ptr, ptr %54, align 8, !tbaa !5
  %2364 = load ptr, ptr %48, align 8, !tbaa !5
  %2365 = load i32, ptr %67, align 4, !tbaa !9
  %2366 = sext i32 %2365 to i64
  %2367 = getelementptr inbounds double, ptr %2364, i64 %2366
  %2368 = load ptr, ptr %49, align 8, !tbaa !5
  %2369 = call i32 @dgemm_(ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %2351, ptr noundef %2352, ptr noundef %2353, ptr noundef %117, ptr noundef %2357, ptr noundef %2358, ptr noundef %2362, ptr noundef %2363, ptr noundef %78, ptr noundef %2367, ptr noundef %2368)
  br label %2370

2370:                                             ; preds = %2350, %2347
  %2371 = load i32, ptr %110, align 4, !tbaa !9
  %2372 = icmp ne i32 %2371, 0
  br i1 %2372, label %2373, label %2506

2373:                                             ; preds = %2370
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %2374

2374:                                             ; preds = %2504, %2373
  %2375 = load i32, ptr %84, align 4, !tbaa !9
  %2376 = load ptr, ptr %45, align 8, !tbaa !5
  %2377 = load i32, ptr %2376, align 4, !tbaa !9
  %2378 = icmp sle i32 %2375, %2377
  br i1 %2378, label %2379, label %2505

2379:                                             ; preds = %2374
  %2380 = load ptr, ptr %47, align 8, !tbaa !5
  %2381 = load i32, ptr %84, align 4, !tbaa !9
  %2382 = sext i32 %2381 to i64
  %2383 = getelementptr inbounds double, ptr %2380, i64 %2382
  %2384 = load double, ptr %2383, align 8, !tbaa !11
  %2385 = load double, ptr %78, align 8, !tbaa !11
  %2386 = fcmp oeq double %2384, %2385
  br i1 %2386, label %2387, label %2425

2387:                                             ; preds = %2379
  %2388 = load ptr, ptr %46, align 8, !tbaa !5
  %2389 = load i32, ptr %84, align 4, !tbaa !9
  %2390 = sext i32 %2389 to i64
  %2391 = getelementptr inbounds double, ptr %2388, i64 %2390
  %2392 = load double, ptr %2391, align 8, !tbaa !11
  %2393 = fneg double %2392
  store double %2393, ptr %76, align 8, !tbaa !11
  %2394 = load ptr, ptr %37, align 8, !tbaa !5
  %2395 = load ptr, ptr %48, align 8, !tbaa !5
  %2396 = load i32, ptr %84, align 4, !tbaa !9
  %2397 = load i32, ptr %66, align 4, !tbaa !9
  %2398 = mul nsw i32 %2396, %2397
  %2399 = add nsw i32 %2398, 1
  %2400 = sext i32 %2399 to i64
  %2401 = getelementptr inbounds double, ptr %2395, i64 %2400
  %2402 = load ptr, ptr %41, align 8, !tbaa !5
  %2403 = load i32, ptr %84, align 4, !tbaa !9
  %2404 = load i32, ptr %64, align 4, !tbaa !9
  %2405 = mul nsw i32 %2403, %2404
  %2406 = add nsw i32 %2405, 1
  %2407 = sext i32 %2406 to i64
  %2408 = getelementptr inbounds double, ptr %2402, i64 %2407
  %2409 = call i32 @daxpy_(ptr noundef %2394, ptr noundef %76, ptr noundef %2401, ptr noundef @c__1, ptr noundef %2408, ptr noundef @c__1)
  %2410 = load ptr, ptr %37, align 8, !tbaa !5
  %2411 = load ptr, ptr %41, align 8, !tbaa !5
  %2412 = load i32, ptr %84, align 4, !tbaa !9
  %2413 = load i32, ptr %64, align 4, !tbaa !9
  %2414 = mul nsw i32 %2412, %2413
  %2415 = add nsw i32 %2414, 1
  %2416 = sext i32 %2415 to i64
  %2417 = getelementptr inbounds double, ptr %2411, i64 %2416
  %2418 = call double @dnrm2_(ptr noundef %2410, ptr noundef %2417, ptr noundef @c__1)
  %2419 = load ptr, ptr %50, align 8, !tbaa !5
  %2420 = load i32, ptr %84, align 4, !tbaa !9
  %2421 = sext i32 %2420 to i64
  %2422 = getelementptr inbounds double, ptr %2419, i64 %2421
  store double %2418, ptr %2422, align 8, !tbaa !11
  %2423 = load i32, ptr %84, align 4, !tbaa !9
  %2424 = add nsw i32 %2423, 1
  store i32 %2424, ptr %84, align 4, !tbaa !9
  br label %2504

2425:                                             ; preds = %2379
  %2426 = load ptr, ptr %46, align 8, !tbaa !5
  %2427 = load i32, ptr %84, align 4, !tbaa !9
  %2428 = sext i32 %2427 to i64
  %2429 = getelementptr inbounds double, ptr %2426, i64 %2428
  %2430 = load double, ptr %2429, align 8, !tbaa !11
  %2431 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 0
  store double %2430, ptr %2431, align 16, !tbaa !11
  %2432 = load ptr, ptr %47, align 8, !tbaa !5
  %2433 = load i32, ptr %84, align 4, !tbaa !9
  %2434 = sext i32 %2433 to i64
  %2435 = getelementptr inbounds double, ptr %2432, i64 %2434
  %2436 = load double, ptr %2435, align 8, !tbaa !11
  %2437 = fneg double %2436
  %2438 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 1
  store double %2437, ptr %2438, align 8, !tbaa !11
  %2439 = load ptr, ptr %47, align 8, !tbaa !5
  %2440 = load i32, ptr %84, align 4, !tbaa !9
  %2441 = sext i32 %2440 to i64
  %2442 = getelementptr inbounds double, ptr %2439, i64 %2441
  %2443 = load double, ptr %2442, align 8, !tbaa !11
  %2444 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 2
  store double %2443, ptr %2444, align 16, !tbaa !11
  %2445 = load ptr, ptr %46, align 8, !tbaa !5
  %2446 = load i32, ptr %84, align 4, !tbaa !9
  %2447 = sext i32 %2446 to i64
  %2448 = getelementptr inbounds double, ptr %2445, i64 %2447
  %2449 = load double, ptr %2448, align 8, !tbaa !11
  %2450 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 3
  store double %2449, ptr %2450, align 8, !tbaa !11
  %2451 = load double, ptr %117, align 8, !tbaa !11
  %2452 = fneg double %2451
  store double %2452, ptr %76, align 8, !tbaa !11
  %2453 = load ptr, ptr %37, align 8, !tbaa !5
  %2454 = load ptr, ptr %48, align 8, !tbaa !5
  %2455 = load i32, ptr %84, align 4, !tbaa !9
  %2456 = load i32, ptr %66, align 4, !tbaa !9
  %2457 = mul nsw i32 %2455, %2456
  %2458 = add nsw i32 %2457, 1
  %2459 = sext i32 %2458 to i64
  %2460 = getelementptr inbounds double, ptr %2454, i64 %2459
  %2461 = load ptr, ptr %49, align 8, !tbaa !5
  %2462 = getelementptr inbounds [4 x double], ptr %91, i64 0, i64 0
  %2463 = load ptr, ptr %41, align 8, !tbaa !5
  %2464 = load i32, ptr %84, align 4, !tbaa !9
  %2465 = load i32, ptr %64, align 4, !tbaa !9
  %2466 = mul nsw i32 %2464, %2465
  %2467 = add nsw i32 %2466, 1
  %2468 = sext i32 %2467 to i64
  %2469 = getelementptr inbounds double, ptr %2463, i64 %2468
  %2470 = load ptr, ptr %42, align 8, !tbaa !5
  %2471 = call i32 @dgemm_(ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %2453, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %76, ptr noundef %2460, ptr noundef %2461, ptr noundef %2462, ptr noundef @c__2, ptr noundef %117, ptr noundef %2469, ptr noundef %2470)
  %2472 = load ptr, ptr %37, align 8, !tbaa !5
  %2473 = load ptr, ptr %41, align 8, !tbaa !5
  %2474 = load i32, ptr %84, align 4, !tbaa !9
  %2475 = load i32, ptr %64, align 4, !tbaa !9
  %2476 = mul nsw i32 %2474, %2475
  %2477 = add nsw i32 %2476, 1
  %2478 = sext i32 %2477 to i64
  %2479 = getelementptr inbounds double, ptr %2473, i64 %2478
  %2480 = load ptr, ptr %42, align 8, !tbaa !5
  %2481 = load ptr, ptr %57, align 8, !tbaa !5
  %2482 = load ptr, ptr %38, align 8, !tbaa !5
  %2483 = load i32, ptr %2482, align 4, !tbaa !9
  %2484 = add nsw i32 %2483, 1
  %2485 = sext i32 %2484 to i64
  %2486 = getelementptr inbounds double, ptr %2481, i64 %2485
  %2487 = call double @dlange_(ptr noundef @.str.7, ptr noundef %2472, ptr noundef @c__2, ptr noundef %2479, ptr noundef %2480, ptr noundef %2486)
  %2488 = load ptr, ptr %50, align 8, !tbaa !5
  %2489 = load i32, ptr %84, align 4, !tbaa !9
  %2490 = sext i32 %2489 to i64
  %2491 = getelementptr inbounds double, ptr %2488, i64 %2490
  store double %2487, ptr %2491, align 8, !tbaa !11
  %2492 = load ptr, ptr %50, align 8, !tbaa !5
  %2493 = load i32, ptr %84, align 4, !tbaa !9
  %2494 = sext i32 %2493 to i64
  %2495 = getelementptr inbounds double, ptr %2492, i64 %2494
  %2496 = load double, ptr %2495, align 8, !tbaa !11
  %2497 = load ptr, ptr %50, align 8, !tbaa !5
  %2498 = load i32, ptr %84, align 4, !tbaa !9
  %2499 = add nsw i32 %2498, 1
  %2500 = sext i32 %2499 to i64
  %2501 = getelementptr inbounds double, ptr %2497, i64 %2500
  store double %2496, ptr %2501, align 8, !tbaa !11
  %2502 = load i32, ptr %84, align 4, !tbaa !9
  %2503 = add nsw i32 %2502, 2
  store i32 %2503, ptr %84, align 4, !tbaa !9
  br label %2504

2504:                                             ; preds = %2425, %2387
  br label %2374, !llvm.loop !26

2505:                                             ; preds = %2374
  br label %2506

2506:                                             ; preds = %2505, %2370
  br label %2507

2507:                                             ; preds = %2506, %2203
  %2508 = load ptr, ptr %36, align 8, !tbaa !5
  %2509 = load i32, ptr %2508, align 4, !tbaa !9
  %2510 = icmp eq i32 %2509, 4
  br i1 %2510, label %2511, label %2526

2511:                                             ; preds = %2507
  %2512 = load double, ptr %82, align 8, !tbaa !11
  %2513 = load ptr, ptr %57, align 8, !tbaa !5
  %2514 = load ptr, ptr %38, align 8, !tbaa !5
  %2515 = load i32, ptr %2514, align 4, !tbaa !9
  %2516 = add nsw i32 %2515, 1
  %2517 = sext i32 %2516 to i64
  %2518 = getelementptr inbounds double, ptr %2513, i64 %2517
  store double %2512, ptr %2518, align 8, !tbaa !11
  %2519 = load double, ptr %83, align 8, !tbaa !11
  %2520 = load ptr, ptr %57, align 8, !tbaa !5
  %2521 = load ptr, ptr %38, align 8, !tbaa !5
  %2522 = load i32, ptr %2521, align 4, !tbaa !9
  %2523 = add nsw i32 %2522, 2
  %2524 = sext i32 %2523 to i64
  %2525 = getelementptr inbounds double, ptr %2520, i64 %2524
  store double %2519, ptr %2525, align 8, !tbaa !11
  br label %2526

2526:                                             ; preds = %2511, %2507
  %2527 = load i32, ptr %87, align 4, !tbaa !9
  %2528 = icmp ne i32 %2527, 0
  br i1 %2528, label %2531, label %2529

2529:                                             ; preds = %2526
  %2530 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 0, ptr %2530, align 4, !tbaa !9
  br label %2533

2531:                                             ; preds = %2526
  %2532 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 4, ptr %2532, align 4, !tbaa !9
  br label %2533

2533:                                             ; preds = %2531, %2529
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2534

2534:                                             ; preds = %2533, %2198, %1802, %1794, %1234, %1101, %1093, %427
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %115) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  %2535 = load i32, ptr %31, align 4
  ret i32 %2535
}

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

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

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

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

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

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

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

declare double @dlamch_(ptr noundef) #2

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

declare i32 @disnan_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @dgedmd_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr nocapture noundef readonly %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr nocapture noundef readonly %11, ptr nocapture noundef readonly %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr nocapture noundef writeonly %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr nocapture noundef readonly %26, ptr noundef %27, ptr noundef %28, ptr nocapture noundef %29) local_unnamed_addr #0 {
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca [1 x i8], align 1
  %43 = alloca [4 x double], align 16
  %44 = alloca [1 x i8], align 1
  %45 = alloca i32, align 4
  %46 = alloca [2 x double], align 16
  %47 = alloca [1 x i8], align 1
  %48 = alloca [2 x double], align 16
  %49 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %46) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #5
  %50 = load i32, ptr %8, align 4, !tbaa !5
  %narrow975 = xor i32 %50, -1
  %51 = sext i32 %narrow975 to i64
  %52 = getelementptr inbounds double, ptr %7, i64 %51
  %53 = load i32, ptr %10, align 4, !tbaa !5
  %narrow974 = xor i32 %53, -1
  %54 = sext i32 %narrow974 to i64
  %55 = getelementptr inbounds double, ptr %9, i64 %54
  %56 = getelementptr inbounds i8, ptr %14, i64 -8
  %57 = getelementptr inbounds i8, ptr %15, i64 -8
  %58 = load i32, ptr %17, align 4, !tbaa !5
  %narrow976 = xor i32 %58, -1
  %59 = sext i32 %narrow976 to i64
  %60 = getelementptr inbounds double, ptr %16, i64 %59
  %61 = getelementptr inbounds i8, ptr %18, i64 -8
  %62 = load i32, ptr %22, align 4, !tbaa !5
  %narrow = xor i32 %62, -1
  %63 = sext i32 %narrow to i64
  %64 = getelementptr inbounds double, ptr %21, i64 %63
  %65 = getelementptr inbounds i8, ptr %25, i64 -8
  store double 1.000000e+00, ptr %49, align 8, !tbaa !9
  store double 0.000000e+00, ptr %35, align 8, !tbaa !9
  %66 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #5
  %67 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not = icmp eq i32 %67, 0
  br i1 %.not, label %68, label %71

68:                                               ; preds = %30
  %69 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #5
  %70 = icmp ne i32 %69, 0
  br label %71

71:                                               ; preds = %68, %30
  %72 = phi i1 [ true, %30 ], [ %70, %68 ]
  %73 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #5
  %74 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #5
  %75 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str) #5
  %76 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.5) #5
  store i32 0, ptr %29, align 4, !tbaa !5
  %77 = load i32, ptr %26, align 4, !tbaa !5
  %78 = icmp eq i32 %77, -1
  br i1 %78, label %82, label %79

79:                                               ; preds = %71
  %80 = load i32, ptr %28, align 4, !tbaa !5
  %81 = icmp eq i32 %80, -1
  br label %82

82:                                               ; preds = %79, %71
  %83 = phi i1 [ true, %71 ], [ %81, %79 ]
  %84 = icmp ne i32 %73, 0
  %or.cond = select i1 %72, i1 true, i1 %84
  br i1 %or.cond, label %87, label %85

85:                                               ; preds = %82
  %86 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.6) #5
  %.not920 = icmp eq i32 %86, 0
  br i1 %.not920, label %.thread1018.sink.split, label %87

87:                                               ; preds = %85, %82
  %.not1049 = icmp eq i32 %74, 0
  br i1 %.not1049, label %88, label %.thread

88:                                               ; preds = %87
  %89 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.6) #5
  %.not921 = icmp eq i32 %89, 0
  br i1 %.not921, label %90, label %92

90:                                               ; preds = %88
  %91 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.7) #5
  %.not922 = icmp eq i32 %91, 0
  br i1 %.not922, label %.thread1018.sink.split, label %92

92:                                               ; preds = %90, %88
  %.not923 = icmp eq i32 %66, 0
  br i1 %.not923, label %93, label %.thread1018.sink.split

.thread:                                          ; preds = %87
  %.not9231002 = icmp eq i32 %66, 0
  br i1 %.not9231002, label %93, label %.thread1003

93:                                               ; preds = %.thread, %92
  %94 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.6) #5
  %.not924.not = icmp eq i32 %94, 0
  br i1 %.not924.not, label %.thread1018.sink.split, label %.thread1003

.thread1003:                                      ; preds = %.thread, %93
  %95 = icmp ne i32 %75, 0
  %96 = icmp ne i32 %76, 0
  %or.cond5 = select i1 %95, i1 true, i1 %96
  br i1 %or.cond5, label %99, label %97

97:                                               ; preds = %.thread1003
  %98 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.6) #5
  %.not925 = icmp eq i32 %98, 0
  br i1 %.not925, label %.thread1018.sink.split, label %99

99:                                               ; preds = %97, %.thread1003
  %100 = load i32, ptr %4, align 4, !tbaa !5
  %.off = add i32 %100, -1
  %switch = icmp ult i32 %.off, 4
  br i1 %switch, label %101, label %.thread1018.sink.split

101:                                              ; preds = %99
  %102 = load i32, ptr %5, align 4, !tbaa !5
  %103 = icmp slt i32 %102, 0
  br i1 %103, label %.thread1018.sink.split, label %104

104:                                              ; preds = %101
  %105 = load i32, ptr %6, align 4, !tbaa !5
  %or.cond987 = icmp ugt i32 %105, %102
  br i1 %or.cond987, label %.thread1018.sink.split, label %106

106:                                              ; preds = %104
  %107 = load i32, ptr %8, align 4, !tbaa !5
  %108 = icmp slt i32 %107, %102
  br i1 %108, label %.thread1018.sink.split, label %109

109:                                              ; preds = %106
  %110 = load i32, ptr %10, align 4, !tbaa !5
  %111 = icmp slt i32 %110, %102
  br i1 %111, label %.thread1018.sink.split, label %112

112:                                              ; preds = %109
  %113 = load i32, ptr %11, align 4, !tbaa !5
  %switch1000 = icmp ugt i32 %113, -3
  br i1 %switch1000, label %116, label %114

114:                                              ; preds = %112
  %115 = icmp slt i32 %113, 1
  %.not926 = icmp sgt i32 %113, %105
  %or.cond988 = or i1 %115, %.not926
  br i1 %or.cond988, label %.thread1018.sink.split, label %116

116:                                              ; preds = %112, %114
  %117 = load double, ptr %12, align 8, !tbaa !9
  %118 = fcmp uge double %117, 0.000000e+00
  %119 = fcmp ult double %117, 1.000000e+00
  %or.cond991 = and i1 %118, %119
  br i1 %or.cond991, label %120, label %.thread1018.sink.split

120:                                              ; preds = %116
  %121 = load i32, ptr %17, align 4, !tbaa !5
  %122 = icmp slt i32 %121, %102
  br i1 %122, label %.thread1018.sink.split, label %123

123:                                              ; preds = %120
  br i1 %or.cond5, label %124, label %127

124:                                              ; preds = %123
  %125 = load i32, ptr %20, align 4, !tbaa !5
  %126 = icmp slt i32 %125, %102
  br i1 %126, label %.thread1018.sink.split, label %127

127:                                              ; preds = %123, %124
  %128 = load i32, ptr %22, align 4, !tbaa !5
  %129 = icmp slt i32 %128, %105
  br i1 %129, label %.thread1018.sink.split, label %130

130:                                              ; preds = %127
  %131 = load i32, ptr %24, align 4, !tbaa !5
  %132 = icmp slt i32 %131, %105
  br i1 %132, label %.thread1018.sink.split, label %133

133:                                              ; preds = %130
  %.pr = load i32, ptr %29, align 4, !tbaa !5
  %134 = icmp eq i32 %.pr, 0
  br i1 %134, label %135, label %.thread1018

135:                                              ; preds = %133
  %136 = icmp eq i32 %105, 0
  br i1 %136, label %137, label %141

137:                                              ; preds = %135
  br i1 %83, label %138, label %139

138:                                              ; preds = %137
  store i32 1, ptr %27, align 4, !tbaa !5
  store <2 x double> <double 2.000000e+00, double 2.000000e+00>, ptr %25, align 8, !tbaa !9
  br label %140

139:                                              ; preds = %137
  store i32 0, ptr %13, align 4, !tbaa !5
  br label %140

140:                                              ; preds = %139, %138
  store i32 1, ptr %29, align 4, !tbaa !5
  br label %689

141:                                              ; preds = %135
  %142 = tail call i32 @llvm.umax.i32(i32 %105, i32 2)
  switch i32 %100, label %default.unreachable [
    i32 1, label %143
    i32 2, label %160
    i32 3, label %181
    i32 4, label %199
  ]

143:                                              ; preds = %141
  %144 = tail call i32 @llvm.umin.i32(i32 %102, i32 %105)
  %145 = mul nuw nsw i32 %144, 3
  %146 = tail call i32 @llvm.umax.i32(i32 %102, i32 %105)
  %147 = add nuw nsw i32 %145, %146
  %148 = mul nuw nsw i32 %144, 5
  %149 = tail call i32 @llvm.umax.i32(i32 %147, i32 %148)
  store i32 %142, ptr %31, align 4, !tbaa !5
  %150 = add nuw nsw i32 %149, %105
  store i32 %150, ptr %32, align 4, !tbaa !5
  %151 = tail call i32 @llvm.umax.i32(i32 %142, i32 %150)
  br i1 %83, label %152, label %215

152:                                              ; preds = %143
  %153 = call i32 @dgesvd_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %46, ptr noundef nonnull @c_n1, ptr noundef nonnull %37) #5
  %154 = load double, ptr %46, align 16, !tbaa !9
  %155 = fptosi double %154 to i32
  %156 = call i32 @llvm.smax.i32(i32 %149, i32 %155)
  store i32 %142, ptr %31, align 4, !tbaa !5
  %157 = load i32, ptr %6, align 4, !tbaa !5
  %158 = add nsw i32 %157, %156
  store i32 %158, ptr %32, align 4, !tbaa !5
  %159 = call i32 @llvm.smax.i32(i32 %142, i32 %158)
  br label %215

160:                                              ; preds = %141
  %161 = tail call i32 @llvm.umax.i32(i32 %102, i32 %105)
  %162 = tail call i32 @llvm.umin.i32(i32 %102, i32 %105)
  %163 = mul nuw nsw i32 %162, 5
  %164 = add nuw i32 %163, 4
  %165 = mul i32 %164, %162
  %166 = mul nuw nsw i32 %162, 3
  %167 = mul nuw nsw i32 %166, %162
  %168 = tail call i32 @llvm.smax.i32(i32 %161, i32 %165)
  %169 = add nuw nsw i32 %168, %167
  store i32 %142, ptr %31, align 4, !tbaa !5
  %170 = add nuw nsw i32 %169, %105
  store i32 %170, ptr %32, align 4, !tbaa !5
  %171 = tail call i32 @llvm.umax.i32(i32 %142, i32 %170)
  %172 = shl i32 %162, 3
  br i1 %83, label %173, label %215

173:                                              ; preds = %160
  %174 = call i32 @dgesdd_(ptr noundef nonnull @.str.8, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %46, ptr noundef nonnull @c_n1, ptr noundef %27, ptr noundef nonnull %37) #5
  %175 = load double, ptr %46, align 16, !tbaa !9
  %176 = fptosi double %175 to i32
  %177 = call i32 @llvm.smax.i32(i32 %169, i32 %176)
  store i32 %142, ptr %31, align 4, !tbaa !5
  %178 = load i32, ptr %6, align 4, !tbaa !5
  %179 = add nsw i32 %178, %177
  store i32 %179, ptr %32, align 4, !tbaa !5
  %180 = call i32 @llvm.smax.i32(i32 %142, i32 %179)
  br label %215

181:                                              ; preds = %141
  %182 = call i32 @dgesvdq_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %45, ptr noundef %27, ptr noundef %28, ptr noundef nonnull %46, ptr noundef nonnull @c_n1, ptr noundef nonnull %48, ptr noundef nonnull @c_n1, ptr noundef nonnull %37) #5
  %183 = load i32, ptr %27, align 4, !tbaa !5
  %184 = getelementptr inbounds i8, ptr %46, i64 8
  %185 = load double, ptr %184, align 8, !tbaa !9
  %186 = fptosi double %185 to i32
  store i32 %142, ptr %31, align 4, !tbaa !5
  %187 = load i32, ptr %6, align 4, !tbaa !5
  %188 = load double, ptr %48, align 16, !tbaa !9
  %189 = fptosi double %188 to i32
  %190 = add i32 %187, %189
  %191 = add i32 %190, %186
  store i32 %191, ptr %32, align 4, !tbaa !5
  %192 = call i32 @llvm.smax.i32(i32 %142, i32 %191)
  br i1 %83, label %193, label %215

193:                                              ; preds = %181
  %194 = load double, ptr %46, align 16, !tbaa !9
  %195 = fptosi double %194 to i32
  %196 = call i32 @llvm.smax.i32(i32 %186, i32 %195)
  store i32 %142, ptr %31, align 4, !tbaa !5
  %197 = add i32 %190, %196
  store i32 %197, ptr %32, align 4, !tbaa !5
  %198 = call i32 @llvm.smax.i32(i32 %142, i32 %197)
  br label %215

199:                                              ; preds = %141
  store i8 74, ptr %47, align 1, !tbaa !11
  %200 = shl nuw i32 %102, 1
  %201 = add nsw i32 %200, %105
  %202 = add nuw i32 %105, 4
  %203 = mul i32 %202, %105
  %204 = tail call i32 @llvm.smax.i32(i32 %201, i32 %203)
  %205 = add nuw i32 %105, 2
  %206 = mul i32 %205, %105
  %207 = add nsw i32 %206, 6
  %208 = tail call i32 @llvm.smax.i32(i32 %204, i32 %207)
  %209 = tail call i32 @llvm.smax.i32(i32 %208, i32 7)
  %210 = add nuw nsw i32 %209, %105
  %211 = tail call i32 @llvm.umax.i32(i32 %142, i32 %210)
  store i32 3, ptr %31, align 4, !tbaa !5
  %212 = mul nsw i32 %105, 3
  %213 = add nuw nsw i32 %102, %212
  store i32 %213, ptr %32, align 4, !tbaa !5
  br i1 %83, label %214, label %215

214:                                              ; preds = %199
  store i32 %142, ptr %31, align 4, !tbaa !5
  store i32 %210, ptr %32, align 4, !tbaa !5
  br label %215

default.unreachable:                              ; preds = %141
  unreachable

215:                                              ; preds = %173, %160, %214, %199, %181, %193, %143, %152
  %.0858 = phi i32 [ 1, %152 ], [ 1, %143 ], [ %172, %173 ], [ %172, %160 ], [ %183, %193 ], [ %183, %181 ], [ %213, %214 ], [ %213, %199 ]
  %.0856 = phi i32 [ %151, %152 ], [ %151, %143 ], [ %171, %173 ], [ %171, %160 ], [ %192, %193 ], [ %192, %181 ], [ %211, %214 ], [ %211, %199 ]
  %.0854 = phi i32 [ %159, %152 ], [ %142, %143 ], [ %180, %173 ], [ %142, %160 ], [ %198, %193 ], [ %142, %181 ], [ %211, %214 ], [ %142, %199 ]
  %216 = icmp ne i32 %74, 0
  %or.cond9 = select i1 %216, i1 true, i1 %96
  br i1 %or.cond9, label %219, label %217

217:                                              ; preds = %215
  %218 = call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.7) #5
  %.not953 = icmp eq i32 %218, 0
  %spec.select1001 = select i1 %.not953, i8 78, i8 86
  br label %219

219:                                              ; preds = %217, %215
  %storemerge = phi i8 [ 86, %215 ], [ %spec.select1001, %217 ]
  store i8 %storemerge, ptr %42, align 1, !tbaa !11
  %220 = call i32 @lsame_(ptr noundef nonnull %42, ptr noundef nonnull @.str.4) #5
  %.not954 = icmp eq i32 %220, 0
  %221 = load i32, ptr %6, align 4, !tbaa !5
  br i1 %.not954, label %225, label %222

222:                                              ; preds = %219
  %223 = shl i32 %221, 2
  %224 = call i32 @llvm.smax.i32(i32 %223, i32 1)
  br label %229

225:                                              ; preds = %219
  %226 = mul nsw i32 %221, 3
  %227 = icmp slt i32 %221, 1
  %228 = select i1 %227, i32 1, i32 %226
  br label %229

229:                                              ; preds = %225, %222
  %.0855 = phi i32 [ %228, %225 ], [ %224, %222 ]
  store i32 %.0856, ptr %31, align 4, !tbaa !5
  %230 = add nsw i32 %221, %.0855
  store i32 %230, ptr %32, align 4, !tbaa !5
  %231 = call i32 @llvm.smax.i32(i32 %.0856, i32 %230)
  br i1 %83, label %.thread1036, label %232

232:                                              ; preds = %229
  %233 = load i32, ptr %28, align 4, !tbaa !5
  %.not1187 = icmp slt i32 %233, %.0858
  br i1 %.not1187, label %234, label %235

234:                                              ; preds = %232
  store i32 -29, ptr %29, align 4, !tbaa !5
  br label %235

235:                                              ; preds = %234, %232
  %236 = load i32, ptr %26, align 4, !tbaa !5
  %.not1188 = icmp slt i32 %236, %231
  br i1 %.not1188, label %.thread1018.sink.split, label %.thread1023

.thread1036:                                      ; preds = %229
  %237 = call i32 @dgeev_(ptr noundef nonnull @.str.6, ptr noundef nonnull %42, ptr noundef nonnull %6, ptr noundef %23, ptr noundef nonnull %24, ptr noundef %14, ptr noundef %15, ptr noundef %21, ptr noundef nonnull %22, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %46, ptr noundef nonnull @c_n1, ptr noundef nonnull %37) #5
  store i32 %.0855, ptr %31, align 4, !tbaa !5
  %238 = load double, ptr %46, align 16, !tbaa !9
  %239 = fptosi double %238 to i32
  %240 = call i32 @llvm.smax.i32(i32 %.0855, i32 %239)
  %241 = load i32, ptr %6, align 4, !tbaa !5
  %242 = add nsw i32 %241, %240
  store i32 %242, ptr %32, align 4, !tbaa !5
  %.pr10131040 = load i32, ptr %29, align 4, !tbaa !5
  %.not9581041 = icmp eq i32 %.pr10131040, 0
  br i1 %.not9581041, label %.thread1042, label %.thread1018

.thread1023:                                      ; preds = %235
  %.pr10131027 = load i32, ptr %29, align 4, !tbaa !5
  %.not9581028 = icmp eq i32 %.pr10131027, 0
  br i1 %.not9581028, label %.thread1032, label %.thread1018

.thread1018.sink.split:                           ; preds = %235, %130, %127, %124, %120, %116, %114, %109, %106, %104, %101, %99, %97, %93, %92, %90, %85
  %.sink = phi i32 [ -1, %85 ], [ -2, %90 ], [ -3, %92 ], [ -3, %93 ], [ -4, %97 ], [ -5, %99 ], [ -6, %101 ], [ -7, %104 ], [ -9, %106 ], [ -11, %109 ], [ -12, %114 ], [ -13, %116 ], [ -18, %120 ], [ -21, %124 ], [ -23, %127 ], [ -25, %130 ], [ -27, %235 ]
  store i32 %.sink, ptr %29, align 4, !tbaa !5
  br label %.thread1018

.thread1018:                                      ; preds = %.thread1018.sink.split, %133, %.thread1036, %.thread1023
  %243 = phi i32 [ %.pr10131027, %.thread1023 ], [ %.pr10131040, %.thread1036 ], [ %.pr, %133 ], [ %.sink, %.thread1018.sink.split ]
  %244 = sub nsw i32 0, %243
  store i32 %244, ptr %31, align 4, !tbaa !5
  %245 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %31) #5
  br label %689

.thread1042:                                      ; preds = %.thread1036
  %246 = call i32 @llvm.smax.i32(i32 %.0854, i32 %242)
  store i32 %.0858, ptr %27, align 4, !tbaa !5
  %247 = uitofp nneg i32 %231 to double
  store double %247, ptr %25, align 8, !tbaa !9
  %248 = uitofp nneg i32 %246 to double
  %249 = getelementptr inbounds i8, ptr %25, i64 8
  store double %248, ptr %249, align 8, !tbaa !9
  br label %689

.thread1032:                                      ; preds = %.thread1023
  %250 = call double @dlamch_(ptr noundef nonnull @.str.8) #5
  %251 = call double @dlamch_(ptr noundef nonnull @.str.1) #5
  br i1 %72, label %252, label %.loopexit1056

252:                                              ; preds = %.thread1032
  store i32 0, ptr %13, align 4, !tbaa !5
  %253 = load i32, ptr %6, align 4, !tbaa !5
  store i32 %253, ptr %31, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %52, i64 8
  %.not9591057 = icmp slt i32 %253, 1
  br i1 %.not9591057, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %252
  %254 = sext i32 %50 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %294
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %294 ]
  %255 = load double, ptr %35, align 8, !tbaa !9
  store double %255, ptr %41, align 8, !tbaa !9
  %256 = mul nsw i64 %indvars.iv, %254
  %gep = getelementptr double, ptr %invariant.gep, i64 %256
  %257 = call i32 @dlassq_(ptr noundef nonnull %5, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef nonnull %36) #5
  %258 = call i32 @disnan_(ptr noundef nonnull %41) #5
  %.not983 = icmp eq i32 %258, 0
  br i1 %.not983, label %259, label %261

259:                                              ; preds = %.lr.ph
  %260 = call i32 @disnan_(ptr noundef nonnull %36) #5
  %.not984 = icmp eq i32 %260, 0
  br i1 %.not984, label %263, label %261

261:                                              ; preds = %259, %.lr.ph
  store i32 0, ptr %13, align 4, !tbaa !5
  store i32 -8, ptr %29, align 4, !tbaa !5
  store i32 8, ptr %32, align 4, !tbaa !5
  %262 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %32) #5
  br label %263

263:                                              ; preds = %261, %259
  %264 = load double, ptr %41, align 8, !tbaa !9
  %265 = load double, ptr %35, align 8, !tbaa !9
  %266 = fcmp une double %264, %265
  br i1 %266, label %267, label %290

267:                                              ; preds = %263
  %268 = load double, ptr %36, align 8, !tbaa !9
  %269 = fcmp une double %268, %265
  br i1 %269, label %270, label %290

270:                                              ; preds = %267
  %271 = call double @sqrt(double noundef %268) #5
  %272 = load double, ptr %41, align 8, !tbaa !9
  %273 = fdiv double %250, %271
  %274 = fcmp ult double %272, %273
  br i1 %274, label %286, label %275

275:                                              ; preds = %270
  %276 = load double, ptr %49, align 8, !tbaa !9
  %277 = fdiv double %276, %271
  store double %277, ptr %33, align 8, !tbaa !9
  %278 = call i32 @dlascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %41, ptr noundef nonnull %33, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull %5, ptr noundef nonnull %38) #5
  %279 = load double, ptr %41, align 8, !tbaa !9
  %280 = fneg double %279
  %281 = load i32, ptr %5, align 4, !tbaa !5
  %282 = sitofp i32 %281 to double
  %283 = fdiv double %271, %282
  %284 = fmul double %283, %280
  %285 = getelementptr inbounds double, ptr %65, i64 %indvars.iv
  store double %284, ptr %285, align 8, !tbaa !9
  br label %294

286:                                              ; preds = %270
  %287 = fmul double %271, %272
  %288 = getelementptr inbounds double, ptr %65, i64 %indvars.iv
  store double %287, ptr %288, align 8, !tbaa !9
  %289 = call i32 @dlascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %288, ptr noundef nonnull %49, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull %5, ptr noundef nonnull %38) #5
  br label %294

290:                                              ; preds = %267, %263
  %291 = getelementptr inbounds double, ptr %65, i64 %indvars.iv
  store double %265, ptr %291, align 8, !tbaa !9
  %292 = load i32, ptr %13, align 4, !tbaa !5
  %293 = add nsw i32 %292, 1
  store i32 %293, ptr %13, align 4, !tbaa !5
  br label %294

294:                                              ; preds = %290, %286, %275
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %295 = load i32, ptr %31, align 4, !tbaa !5
  %296 = sext i32 %295 to i64
  %.not959.not = icmp slt i64 %indvars.iv, %296
  br i1 %.not959.not, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !12

._crit_edge.loopexit:                             ; preds = %294
  %.pre = load i32, ptr %13, align 4, !tbaa !5
  %.pre1181 = load i32, ptr %6, align 4, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %252
  %297 = phi i32 [ %.pre1181, %._crit_edge.loopexit ], [ %253, %252 ]
  %298 = phi i32 [ %.pre, %._crit_edge.loopexit ], [ 0, %252 ]
  %299 = icmp eq i32 %298, %297
  br i1 %299, label %300, label %302

300:                                              ; preds = %._crit_edge
  store i32 0, ptr %13, align 4, !tbaa !5
  store i32 -8, ptr %29, align 4, !tbaa !5
  store i32 8, ptr %31, align 4, !tbaa !5
  %301 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %31) #5
  br label %689

302:                                              ; preds = %._crit_edge
  store i32 %297, ptr %31, align 4, !tbaa !5
  %invariant.gep1059 = getelementptr i8, ptr %55, i64 8
  %.not9601065 = icmp slt i32 %297, 1
  br i1 %.not9601065, label %.loopexit1056, label %.lr.ph1069.preheader

.lr.ph1069.preheader:                             ; preds = %302
  %303 = sext i32 %53 to i64
  br label %.lr.ph1069

.lr.ph1069:                                       ; preds = %.lr.ph1069.preheader, %336
  %indvars.iv1141 = phi i64 [ 1, %.lr.ph1069.preheader ], [ %indvars.iv.next1142, %336 ]
  %.08641066 = phi i32 [ 0, %.lr.ph1069.preheader ], [ %.1865, %336 ]
  %304 = getelementptr inbounds double, ptr %65, i64 %indvars.iv1141
  %305 = load double, ptr %304, align 8, !tbaa !9
  %306 = load double, ptr %35, align 8, !tbaa !9
  %307 = fcmp ogt double %305, %306
  br i1 %307, label %308, label %313

308:                                              ; preds = %.lr.ph1069
  %309 = load double, ptr %49, align 8, !tbaa !9
  %310 = fdiv double %309, %305
  store double %310, ptr %33, align 8, !tbaa !9
  %311 = mul nsw i64 %indvars.iv1141, %303
  %gep1064 = getelementptr double, ptr %invariant.gep1059, i64 %311
  %312 = call i32 @dscal_(ptr noundef nonnull %5, ptr noundef nonnull %33, ptr noundef %gep1064, ptr noundef nonnull @c__1) #5
  br label %336

313:                                              ; preds = %.lr.ph1069
  %314 = fcmp olt double %305, %306
  br i1 %314, label %315, label %323

315:                                              ; preds = %313
  %316 = fneg double %305
  store double %316, ptr %33, align 8, !tbaa !9
  %317 = load double, ptr %49, align 8, !tbaa !9
  %318 = load i32, ptr %5, align 4, !tbaa !5
  %319 = sitofp i32 %318 to double
  %320 = fdiv double %317, %319
  store double %320, ptr %34, align 8, !tbaa !9
  %321 = mul nsw i64 %indvars.iv1141, %303
  %gep1062 = getelementptr double, ptr %invariant.gep1059, i64 %321
  %322 = call i32 @dlascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %gep1062, ptr noundef nonnull %5, ptr noundef nonnull %38) #5
  br label %336

323:                                              ; preds = %313
  %324 = mul nsw i64 %indvars.iv1141, %303
  %gep1060 = getelementptr double, ptr %invariant.gep1059, i64 %324
  %325 = call i32 @idamax_(ptr noundef nonnull %5, ptr noundef %gep1060, ptr noundef nonnull @c__1) #5
  %326 = sext i32 %325 to i64
  %327 = getelementptr double, ptr %55, i64 %324
  %328 = getelementptr double, ptr %327, i64 %326
  %329 = load double, ptr %328, align 8, !tbaa !9
  %330 = load double, ptr %35, align 8, !tbaa !9
  %331 = fcmp une double %329, %330
  br i1 %331, label %332, label %336

332:                                              ; preds = %323
  %333 = call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #5
  %.not982 = icmp eq i32 %333, 0
  br i1 %.not982, label %336, label %334

334:                                              ; preds = %332
  %335 = call i32 @dscal_(ptr noundef nonnull %5, ptr noundef nonnull %35, ptr noundef %gep1060, ptr noundef nonnull @c__1) #5
  br label %336

336:                                              ; preds = %308, %323, %334, %332, %315
  %.1865 = phi i32 [ %.08641066, %308 ], [ %.08641066, %315 ], [ 1, %334 ], [ 1, %332 ], [ %.08641066, %323 ]
  %indvars.iv.next1142 = add nuw nsw i64 %indvars.iv1141, 1
  %337 = load i32, ptr %31, align 4, !tbaa !5
  %338 = sext i32 %337 to i64
  %.not960.not = icmp slt i64 %indvars.iv1141, %338
  br i1 %.not960.not, label %.lr.ph1069, label %.loopexit1056, !llvm.loop !14

.loopexit1056:                                    ; preds = %336, %302, %.thread1032
  %.2866 = phi i32 [ 0, %.thread1032 ], [ 0, %302 ], [ %.1865, %336 ]
  %.pre1184 = load i32, ptr %6, align 4, !tbaa !5
  br i1 %84, label %339, label %.loopexit1055

339:                                              ; preds = %.loopexit1056
  store i32 %.pre1184, ptr %31, align 4, !tbaa !5
  %invariant.gep1070 = getelementptr i8, ptr %55, i64 8
  %.not9611072 = icmp slt i32 %.pre1184, 1
  br i1 %.not9611072, label %.loopexit1055, label %.lr.ph1075.preheader

.lr.ph1075.preheader:                             ; preds = %339
  %340 = sext i32 %53 to i64
  br label %.lr.ph1075

.lr.ph1075:                                       ; preds = %.lr.ph1075.preheader, %378
  %indvars.iv1144 = phi i64 [ 1, %.lr.ph1075.preheader ], [ %indvars.iv.next1145, %378 ]
  %341 = load double, ptr %35, align 8, !tbaa !9
  store double %341, ptr %41, align 8, !tbaa !9
  %342 = mul nsw i64 %indvars.iv1144, %340
  %gep1071 = getelementptr double, ptr %invariant.gep1070, i64 %342
  %343 = call i32 @dlassq_(ptr noundef nonnull %5, ptr noundef %gep1071, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef nonnull %36) #5
  %344 = call i32 @disnan_(ptr noundef nonnull %41) #5
  %.not980 = icmp eq i32 %344, 0
  br i1 %.not980, label %345, label %347

345:                                              ; preds = %.lr.ph1075
  %346 = call i32 @disnan_(ptr noundef nonnull %36) #5
  %.not981 = icmp eq i32 %346, 0
  br i1 %.not981, label %349, label %347

347:                                              ; preds = %345, %.lr.ph1075
  store i32 0, ptr %13, align 4, !tbaa !5
  store i32 -10, ptr %29, align 4, !tbaa !5
  store i32 10, ptr %32, align 4, !tbaa !5
  %348 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %32) #5
  br label %349

349:                                              ; preds = %347, %345
  %350 = load double, ptr %41, align 8, !tbaa !9
  %351 = load double, ptr %35, align 8, !tbaa !9
  %352 = fcmp une double %350, %351
  br i1 %352, label %353, label %376

353:                                              ; preds = %349
  %354 = load double, ptr %36, align 8, !tbaa !9
  %355 = fcmp une double %354, %351
  br i1 %355, label %356, label %376

356:                                              ; preds = %353
  %357 = call double @sqrt(double noundef %354) #5
  %358 = load double, ptr %41, align 8, !tbaa !9
  %359 = fdiv double %250, %357
  %360 = fcmp ult double %358, %359
  br i1 %360, label %372, label %361

361:                                              ; preds = %356
  %362 = load double, ptr %49, align 8, !tbaa !9
  %363 = fdiv double %362, %357
  store double %363, ptr %33, align 8, !tbaa !9
  %364 = call i32 @dlascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %41, ptr noundef nonnull %33, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %gep1071, ptr noundef nonnull %5, ptr noundef nonnull %38) #5
  %365 = load double, ptr %41, align 8, !tbaa !9
  %366 = fneg double %365
  %367 = load i32, ptr %5, align 4, !tbaa !5
  %368 = sitofp i32 %367 to double
  %369 = fdiv double %357, %368
  %370 = fmul double %369, %366
  %371 = getelementptr inbounds double, ptr %65, i64 %indvars.iv1144
  store double %370, ptr %371, align 8, !tbaa !9
  br label %378

372:                                              ; preds = %356
  %373 = fmul double %357, %358
  %374 = getelementptr inbounds double, ptr %65, i64 %indvars.iv1144
  store double %373, ptr %374, align 8, !tbaa !9
  %375 = call i32 @dlascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %374, ptr noundef nonnull %49, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %gep1071, ptr noundef nonnull %5, ptr noundef nonnull %38) #5
  br label %378

376:                                              ; preds = %353, %349
  %377 = getelementptr inbounds double, ptr %65, i64 %indvars.iv1144
  store double %351, ptr %377, align 8, !tbaa !9
  br label %378

378:                                              ; preds = %376, %372, %361
  %indvars.iv.next1145 = add nuw nsw i64 %indvars.iv1144, 1
  %379 = load i32, ptr %31, align 4, !tbaa !5
  %380 = sext i32 %379 to i64
  %.not961.not = icmp slt i64 %indvars.iv1144, %380
  br i1 %.not961.not, label %.lr.ph1075, label %._crit_edge1076, !llvm.loop !15

._crit_edge1076:                                  ; preds = %378
  %.pre1182 = load i32, ptr %6, align 4, !tbaa !5
  store i32 %.pre1182, ptr %31, align 4, !tbaa !5
  %invariant.gep1077 = getelementptr i8, ptr %52, i64 8
  %.not9621083 = icmp slt i32 %.pre1182, 1
  br i1 %.not9621083, label %.loopexit1055, label %.lr.ph1087.preheader

.lr.ph1087.preheader:                             ; preds = %._crit_edge1076
  %381 = sext i32 %50 to i64
  br label %.lr.ph1087

.lr.ph1087:                                       ; preds = %.lr.ph1087.preheader, %411
  %indvars.iv1147 = phi i64 [ 1, %.lr.ph1087.preheader ], [ %indvars.iv.next1148, %411 ]
  %.38671084 = phi i32 [ %.2866, %.lr.ph1087.preheader ], [ %.4868, %411 ]
  %382 = getelementptr inbounds double, ptr %65, i64 %indvars.iv1147
  %383 = load double, ptr %382, align 8, !tbaa !9
  %384 = load double, ptr %35, align 8, !tbaa !9
  %385 = fcmp ogt double %383, %384
  br i1 %385, label %386, label %391

386:                                              ; preds = %.lr.ph1087
  %387 = load double, ptr %49, align 8, !tbaa !9
  %388 = fdiv double %387, %383
  store double %388, ptr %33, align 8, !tbaa !9
  %389 = mul nsw i64 %indvars.iv1147, %381
  %gep1082 = getelementptr double, ptr %invariant.gep1077, i64 %389
  %390 = call i32 @dscal_(ptr noundef nonnull %5, ptr noundef nonnull %33, ptr noundef %gep1082, ptr noundef nonnull @c__1) #5
  br label %411

391:                                              ; preds = %.lr.ph1087
  %392 = fcmp olt double %383, %384
  br i1 %392, label %393, label %401

393:                                              ; preds = %391
  %394 = fneg double %383
  store double %394, ptr %33, align 8, !tbaa !9
  %395 = load double, ptr %49, align 8, !tbaa !9
  %396 = load i32, ptr %5, align 4, !tbaa !5
  %397 = sitofp i32 %396 to double
  %398 = fdiv double %395, %397
  store double %398, ptr %34, align 8, !tbaa !9
  %399 = mul nsw i64 %indvars.iv1147, %381
  %gep1080 = getelementptr double, ptr %invariant.gep1077, i64 %399
  %400 = call i32 @dlascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %gep1080, ptr noundef nonnull %5, ptr noundef nonnull %38) #5
  br label %411

401:                                              ; preds = %391
  %402 = mul nsw i64 %indvars.iv1147, %381
  %gep1078 = getelementptr double, ptr %invariant.gep1077, i64 %402
  %403 = call i32 @idamax_(ptr noundef nonnull %5, ptr noundef %gep1078, ptr noundef nonnull @c__1) #5
  %404 = sext i32 %403 to i64
  %405 = getelementptr double, ptr %52, i64 %402
  %406 = getelementptr double, ptr %405, i64 %404
  %407 = load double, ptr %406, align 8, !tbaa !9
  %408 = load double, ptr %35, align 8, !tbaa !9
  %409 = fcmp une double %407, %408
  br i1 %409, label %410, label %411

410:                                              ; preds = %401
  br label %411

411:                                              ; preds = %386, %401, %410, %393
  %.4868 = phi i32 [ %.38671084, %386 ], [ %.38671084, %393 ], [ 1, %410 ], [ %.38671084, %401 ]
  %indvars.iv.next1148 = add nuw nsw i64 %indvars.iv1147, 1
  %412 = load i32, ptr %31, align 4, !tbaa !5
  %413 = sext i32 %412 to i64
  %.not962.not = icmp slt i64 %indvars.iv1147, %413
  br i1 %.not962.not, label %.lr.ph1087, label %.loopexit1055.loopexit, !llvm.loop !16

.loopexit1055.loopexit:                           ; preds = %411
  %.pre1183 = load i32, ptr %6, align 4, !tbaa !5
  br label %.loopexit1055

.loopexit1055:                                    ; preds = %339, %.loopexit1055.loopexit, %._crit_edge1076, %.loopexit1056
  %414 = phi i32 [ %.pre1184, %.loopexit1056 ], [ %.pre1182, %._crit_edge1076 ], [ %.pre1183, %.loopexit1055.loopexit ], [ %.pre1184, %339 ]
  %.5869 = phi i32 [ %.2866, %.loopexit1056 ], [ %.2866, %._crit_edge1076 ], [ %.4868, %.loopexit1055.loopexit ], [ %.2866, %339 ]
  store i32 %414, ptr %45, align 4, !tbaa !5
  %415 = load i32, ptr %4, align 4, !tbaa !5
  switch i32 %415, label %461 [
    i32 1, label %416
    i32 2, label %423
    i32 3, label %430
    i32 4, label %443
  ]

416:                                              ; preds = %.loopexit1055
  %417 = load i32, ptr %26, align 4, !tbaa !5
  %418 = sub nsw i32 %417, %414
  store i32 %418, ptr %31, align 4, !tbaa !5
  %419 = sext i32 %414 to i64
  %420 = getelementptr double, ptr %65, i64 %419
  %421 = getelementptr i8, ptr %420, i64 8
  %422 = call i32 @dgesvd_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %21, ptr noundef nonnull %22, ptr noundef %421, ptr noundef nonnull %31, ptr noundef nonnull %37) #5
  store i8 84, ptr %44, align 1, !tbaa !11
  br label %461

423:                                              ; preds = %.loopexit1055
  %424 = load i32, ptr %26, align 4, !tbaa !5
  %425 = sub nsw i32 %424, %414
  store i32 %425, ptr %31, align 4, !tbaa !5
  %426 = sext i32 %414 to i64
  %427 = getelementptr double, ptr %65, i64 %426
  %428 = getelementptr i8, ptr %427, i64 8
  %429 = call i32 @dgesdd_(ptr noundef nonnull @.str.8, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25, ptr noundef %19, ptr noundef nonnull %20, ptr noundef %21, ptr noundef nonnull %22, ptr noundef %428, ptr noundef nonnull %31, ptr noundef %27, ptr noundef nonnull %37) #5
  store i8 84, ptr %44, align 1, !tbaa !11
  br label %461

430:                                              ; preds = %.loopexit1055
  %431 = load i32, ptr %26, align 4, !tbaa !5
  %432 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select993 = call i32 @llvm.smax.i32(i32 %432, i32 2)
  %433 = add i32 %spec.select993, %414
  %434 = sub i32 %431, %433
  store i32 %434, ptr %31, align 4, !tbaa !5
  store i32 %spec.select993, ptr %32, align 4, !tbaa !5
  %435 = sext i32 %433 to i64
  %436 = getelementptr double, ptr %65, i64 %435
  %437 = getelementptr i8, ptr %436, i64 8
  %438 = sext i32 %414 to i64
  %439 = getelementptr double, ptr %65, i64 %438
  %440 = getelementptr i8, ptr %439, i64 8
  %441 = call i32 @dgesvdq_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %45, ptr noundef %27, ptr noundef nonnull %28, ptr noundef %437, ptr noundef nonnull %31, ptr noundef %440, ptr noundef nonnull %32, ptr noundef nonnull %37) #5
  %442 = call i32 @dlacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %5, ptr noundef nonnull %45, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %7, ptr noundef nonnull %8) #5
  store i8 84, ptr %44, align 1, !tbaa !11
  br label %461

443:                                              ; preds = %.loopexit1055
  %444 = load i32, ptr %26, align 4, !tbaa !5
  %445 = sub nsw i32 %444, %414
  store i32 %445, ptr %31, align 4, !tbaa !5
  %446 = sext i32 %414 to i64
  %447 = getelementptr double, ptr %65, i64 %446
  %448 = getelementptr i8, ptr %447, i64 8
  %449 = call i32 @dgejsv_(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.14, ptr noundef nonnull %47, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.10, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %21, ptr noundef nonnull %22, ptr noundef %448, ptr noundef nonnull %31, ptr noundef %27, ptr noundef nonnull %37) #5
  %450 = call i32 @dlacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %7, ptr noundef nonnull %8) #5
  store i8 78, ptr %44, align 1, !tbaa !11
  %451 = load i32, ptr %6, align 4, !tbaa !5
  %452 = sext i32 %451 to i64
  %453 = getelementptr double, ptr %65, i64 %452
  %454 = getelementptr i8, ptr %453, i64 8
  %455 = load double, ptr %454, align 8, !tbaa !9
  store double %455, ptr %39, align 8, !tbaa !9
  %456 = getelementptr i8, ptr %453, i64 16
  %457 = load double, ptr %456, align 8, !tbaa !9
  store double %457, ptr %40, align 8, !tbaa !9
  %458 = fcmp une double %455, %457
  br i1 %458, label %459, label %461

459:                                              ; preds = %443
  %460 = call i32 @dlascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %40, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %38) #5
  br label %461

461:                                              ; preds = %.loopexit1055, %423, %459, %443, %430, %416
  %462 = load i32, ptr %37, align 4, !tbaa !5
  %463 = icmp sgt i32 %462, 0
  br i1 %463, label %464, label %465

464:                                              ; preds = %461
  store i32 2, ptr %29, align 4, !tbaa !5
  br label %689

465:                                              ; preds = %461
  %466 = load double, ptr %25, align 8, !tbaa !9
  %467 = load double, ptr %35, align 8, !tbaa !9
  %468 = fcmp oeq double %466, %467
  br i1 %468, label %469, label %471

469:                                              ; preds = %465
  store i32 0, ptr %13, align 4, !tbaa !5
  store i32 -8, ptr %29, align 4, !tbaa !5
  store i32 8, ptr %31, align 4, !tbaa !5
  %470 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %31) #5
  br label %689

471:                                              ; preds = %465
  %472 = load i32, ptr %11, align 4, !tbaa !5
  store i32 1, ptr %13, align 4, !tbaa !5
  switch i32 %472, label %500 [
    i32 -1, label %473
    i32 -2, label %486
  ]

473:                                              ; preds = %471
  %474 = load i32, ptr %45, align 4, !tbaa !5
  store i32 %474, ptr %31, align 4, !tbaa !5
  %.not9651094 = icmp slt i32 %474, 2
  br i1 %.not9651094, label %.loopexit1052, label %.lr.ph1097

.lr.ph1097:                                       ; preds = %473
  %475 = load double, ptr %12, align 8, !tbaa !9
  %476 = fmul double %466, %475
  %477 = add nuw i32 %474, 1
  %wide.trip.count1156 = zext i32 %477 to i64
  br label %478

478:                                              ; preds = %.lr.ph1097, %484
  %479 = phi i32 [ 1, %.lr.ph1097 ], [ %485, %484 ]
  %indvars.iv1153 = phi i64 [ 2, %.lr.ph1097 ], [ %indvars.iv.next1154, %484 ]
  %480 = getelementptr inbounds double, ptr %65, i64 %indvars.iv1153
  %481 = load double, ptr %480, align 8, !tbaa !9
  %482 = fcmp ugt double %481, %476
  %483 = fcmp ugt double %481, %251
  %or.cond995 = select i1 %482, i1 %483, i1 false
  br i1 %or.cond995, label %484, label %.loopexit1052

484:                                              ; preds = %478
  %485 = add nuw nsw i32 %479, 1
  store i32 %485, ptr %13, align 4, !tbaa !5
  %indvars.iv.next1154 = add nuw nsw i64 %indvars.iv1153, 1
  %exitcond1157.not = icmp eq i64 %indvars.iv.next1154, %wide.trip.count1156
  br i1 %exitcond1157.not, label %.loopexit1052, label %478, !llvm.loop !17

486:                                              ; preds = %471
  %487 = load i32, ptr %45, align 4, !tbaa !5
  %488 = add nsw i32 %487, -1
  store i32 %488, ptr %31, align 4, !tbaa !5
  %.not964.not1089 = icmp sgt i32 %487, 1
  br i1 %.not964.not1089, label %.lr.ph1092, label %.loopexit1052

.lr.ph1092:                                       ; preds = %486
  %489 = load double, ptr %12, align 8, !tbaa !9
  %wide.trip.count = zext nneg i32 %487 to i64
  br label %490

490:                                              ; preds = %.lr.ph1092, %498
  %491 = phi i32 [ 1, %.lr.ph1092 ], [ %499, %498 ]
  %492 = phi double [ %466, %.lr.ph1092 ], [ %494, %498 ]
  %indvars.iv1150 = phi i64 [ 1, %.lr.ph1092 ], [ %indvars.iv.next1151, %498 ]
  %493 = getelementptr double, ptr %25, i64 %indvars.iv1150
  %494 = load double, ptr %493, align 8, !tbaa !9
  %495 = fmul double %492, %489
  %496 = fcmp ugt double %494, %495
  %497 = fcmp ugt double %492, %251
  %or.cond997 = select i1 %496, i1 %497, i1 false
  br i1 %or.cond997, label %498, label %.loopexit1052

498:                                              ; preds = %490
  %indvars.iv.next1151 = add nuw nsw i64 %indvars.iv1150, 1
  %499 = add nuw nsw i32 %491, 1
  store i32 %499, ptr %13, align 4, !tbaa !5
  %exitcond.not = icmp eq i64 %indvars.iv.next1151, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit1052, label %490, !llvm.loop !18

500:                                              ; preds = %471
  %501 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %501, ptr %31, align 4, !tbaa !5
  %.not9631099 = icmp slt i32 %501, 2
  br i1 %.not9631099, label %.loopexit1052, label %.lr.ph1102.preheader

.lr.ph1102.preheader:                             ; preds = %500
  %502 = add nuw i32 %501, 1
  %wide.trip.count1161 = zext i32 %502 to i64
  br label %.lr.ph1102

.lr.ph1102:                                       ; preds = %.lr.ph1102.preheader, %507
  %503 = phi i32 [ 1, %.lr.ph1102.preheader ], [ %508, %507 ]
  %indvars.iv1158 = phi i64 [ 2, %.lr.ph1102.preheader ], [ %indvars.iv.next1159, %507 ]
  %504 = getelementptr inbounds double, ptr %65, i64 %indvars.iv1158
  %505 = load double, ptr %504, align 8, !tbaa !9
  %506 = fcmp ugt double %505, %251
  br i1 %506, label %507, label %.loopexit1052

507:                                              ; preds = %.lr.ph1102
  %508 = add nuw nsw i32 %503, 1
  store i32 %508, ptr %13, align 4, !tbaa !5
  %indvars.iv.next1159 = add nuw nsw i64 %indvars.iv1158, 1
  %exitcond1162.not = icmp eq i64 %indvars.iv.next1159, %wide.trip.count1161
  br i1 %exitcond1162.not, label %.loopexit1052, label %.lr.ph1102, !llvm.loop !19

.loopexit1052:                                    ; preds = %498, %490, %478, %484, %507, %.lr.ph1102, %486, %473, %500
  %509 = call i32 @lsame_(ptr noundef nonnull %44, ptr noundef nonnull @.str.6) #5
  %.not966 = icmp eq i32 %509, 0
  %510 = load i32, ptr %13, align 4, !tbaa !5
  br i1 %.not966, label %521, label %511

511:                                              ; preds = %.loopexit1052
  store i32 %510, ptr %31, align 4, !tbaa !5
  %invariant.gep1104 = getelementptr i8, ptr %64, i64 8
  %.not9701106 = icmp slt i32 %510, 1
  br i1 %.not9701106, label %.loopexit1050, label %.lr.ph1109.preheader

.lr.ph1109.preheader:                             ; preds = %511
  %512 = sext i32 %62 to i64
  br label %.lr.ph1109

.lr.ph1109:                                       ; preds = %.lr.ph1109.preheader, %.lr.ph1109
  %indvars.iv1163 = phi i64 [ 1, %.lr.ph1109.preheader ], [ %indvars.iv.next1164, %.lr.ph1109 ]
  %513 = load double, ptr %49, align 8, !tbaa !9
  %514 = getelementptr inbounds double, ptr %65, i64 %indvars.iv1163
  %515 = load double, ptr %514, align 8, !tbaa !9
  %516 = fdiv double %513, %515
  store double %516, ptr %33, align 8, !tbaa !9
  %517 = mul nsw i64 %indvars.iv1163, %512
  %gep1105 = getelementptr double, ptr %invariant.gep1104, i64 %517
  %518 = call i32 @dscal_(ptr noundef nonnull %6, ptr noundef nonnull %33, ptr noundef %gep1105, ptr noundef nonnull @c__1) #5
  %indvars.iv.next1164 = add nuw nsw i64 %indvars.iv1163, 1
  %519 = load i32, ptr %31, align 4, !tbaa !5
  %520 = sext i32 %519 to i64
  %.not970.not = icmp slt i64 %indvars.iv1163, %520
  br i1 %.not970.not, label %.lr.ph1109, label %.loopexit1050, !llvm.loop !20

521:                                              ; preds = %.loopexit1052
  %.not9671110 = icmp slt i32 %510, 1
  %.pre1186 = load i32, ptr %6, align 4, !tbaa !5
  br i1 %.not9671110, label %._crit_edge1114.thread, label %.lr.ph1113

.lr.ph1113:                                       ; preds = %521
  %522 = load double, ptr %49, align 8, !tbaa !9
  %523 = sext i32 %.pre1186 to i64
  %524 = add nuw i32 %510, 1
  %wide.trip.count1169 = zext i32 %524 to i64
  %invariant.gep1194 = getelementptr double, ptr %65, i64 %523
  %525 = zext nneg i32 %510 to i64
  %min.iters.check = icmp eq i32 %510, 1
  %526 = and i64 %523, 2305843009213693950
  %diff.check = icmp eq i64 %526, 0
  %or.cond1224 = select i1 %min.iters.check, i1 true, i1 %diff.check
  br i1 %or.cond1224, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph1113
  %n.vec = and i64 %525, 2147483646
  %ind.end = or i64 %525, 1
  %broadcast.splatinsert = insertelement <2 x double> poison, double %522, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %527 = getelementptr double, ptr %25, i64 %index
  %wide.load = load <2 x double>, ptr %527, align 8, !tbaa !9
  %528 = fdiv <2 x double> %broadcast.splat, %wide.load
  %529 = getelementptr double, ptr %invariant.gep1194, i64 %offset.idx
  store <2 x double> %528, ptr %529, align 8, !tbaa !9
  %index.next = add nuw i64 %index, 2
  %530 = icmp eq i64 %index.next, %n.vec
  br i1 %530, label %middle.block, label %vector.body, !llvm.loop !21

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %525
  br i1 %cmp.n, label %._crit_edge1114, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph1113
  %indvars.iv1166.ph = phi i64 [ 1, %.lr.ph1113 ], [ %ind.end, %middle.block ]
  %531 = sub nsw i64 %wide.trip.count1169, %indvars.iv1166.ph
  %532 = zext nneg i32 %510 to i64
  %533 = sub nsw i64 %532, %indvars.iv1166.ph
  %xtraiter = and i64 %531, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader, %scalar.ph.prol
  %indvars.iv1166.prol = phi i64 [ %indvars.iv.next1167.prol, %scalar.ph.prol ], [ %indvars.iv1166.ph, %scalar.ph.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph.prol ], [ 0, %scalar.ph.preheader ]
  %534 = getelementptr inbounds double, ptr %65, i64 %indvars.iv1166.prol
  %535 = load double, ptr %534, align 8, !tbaa !9
  %536 = fdiv double %522, %535
  %gep1195.prol = getelementptr double, ptr %invariant.gep1194, i64 %indvars.iv1166.prol
  store double %536, ptr %gep1195.prol, align 8, !tbaa !9
  %indvars.iv.next1167.prol = add nuw nsw i64 %indvars.iv1166.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol, !llvm.loop !24

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %indvars.iv1166.unr = phi i64 [ %indvars.iv1166.ph, %scalar.ph.preheader ], [ %indvars.iv.next1167.prol, %scalar.ph.prol ]
  %537 = icmp ult i64 %533, 3
  br i1 %537, label %._crit_edge1114, label %scalar.ph.preheader.new

scalar.ph.preheader.new:                          ; preds = %scalar.ph.prol.loopexit
  %invariant.gep1230 = getelementptr i8, ptr %invariant.gep1194, i64 8
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph, %scalar.ph.preheader.new
  %indvars.iv1166 = phi i64 [ %indvars.iv1166.unr, %scalar.ph.preheader.new ], [ %indvars.iv.next1167.3, %scalar.ph ]
  %538 = getelementptr inbounds double, ptr %65, i64 %indvars.iv1166
  %539 = load double, ptr %538, align 8, !tbaa !9
  %540 = fdiv double %522, %539
  %gep1195 = getelementptr double, ptr %invariant.gep1194, i64 %indvars.iv1166
  store double %540, ptr %gep1195, align 8, !tbaa !9
  %541 = getelementptr double, ptr %25, i64 %indvars.iv1166
  %542 = load double, ptr %541, align 8, !tbaa !9
  %543 = fdiv double %522, %542
  %gep1231 = getelementptr double, ptr %invariant.gep1230, i64 %indvars.iv1166
  store double %543, ptr %gep1231, align 8, !tbaa !9
  %indvars.iv.next1167.1 = add nuw nsw i64 %indvars.iv1166, 2
  %544 = getelementptr inbounds double, ptr %65, i64 %indvars.iv.next1167.1
  %545 = load double, ptr %544, align 8, !tbaa !9
  %546 = fdiv double %522, %545
  %gep1195.2 = getelementptr double, ptr %invariant.gep1194, i64 %indvars.iv.next1167.1
  store double %546, ptr %gep1195.2, align 8, !tbaa !9
  %indvars.iv.next1167.2 = add nuw nsw i64 %indvars.iv1166, 3
  %547 = getelementptr inbounds double, ptr %65, i64 %indvars.iv.next1167.2
  %548 = load double, ptr %547, align 8, !tbaa !9
  %549 = fdiv double %522, %548
  %gep1195.3 = getelementptr double, ptr %invariant.gep1194, i64 %indvars.iv.next1167.2
  store double %549, ptr %gep1195.3, align 8, !tbaa !9
  %indvars.iv.next1167.3 = add nuw nsw i64 %indvars.iv1166, 4
  %exitcond1170.not.3 = icmp eq i64 %indvars.iv.next1167.3, %wide.trip.count1169
  br i1 %exitcond1170.not.3, label %._crit_edge1114, label %scalar.ph, !llvm.loop !26

._crit_edge1114:                                  ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block
  store i32 %.pre1186, ptr %31, align 4, !tbaa !5
  %.not9681120 = icmp slt i32 %.pre1186, 1
  br i1 %.not9681120, label %.loopexit1050, label %.lr.ph1123

._crit_edge1114.thread:                           ; preds = %521
  store i32 %.pre1186, ptr %31, align 4, !tbaa !5
  %.not96811201191 = icmp slt i32 %.pre1186, 1
  br i1 %.not96811201191, label %.loopexit1050, label %..loopexit1050_crit_edge

.lr.ph1123:                                       ; preds = %._crit_edge1114
  br i1 %.not9671110, label %..loopexit1050_crit_edge, label %.lr.ph1118.preheader

.lr.ph1118.preheader:                             ; preds = %.lr.ph1123
  %550 = zext nneg i32 %.pre1186 to i64
  %551 = add nuw i32 %510, 1
  %552 = sext i32 %62 to i64
  %553 = add nuw i32 %.pre1186, 1
  %wide.trip.count1179 = zext i32 %553 to i64
  %wide.trip.count1174 = zext i32 %551 to i64
  %invariant.gep1196 = getelementptr inbounds double, ptr %65, i64 %550
  %554 = shl nsw i64 %552, 3
  %555 = shl nsw i64 %63, 3
  %556 = getelementptr i8, ptr %21, i64 %554
  %557 = getelementptr i8, ptr %556, i64 %555
  %scevgep = getelementptr i8, ptr %557, i64 8
  %558 = shl nuw nsw i64 %wide.trip.count1179, 3
  %559 = add nsw i64 %558, -8
  %560 = mul i64 %559, %552
  %561 = shl nuw nsw i64 %wide.trip.count1169, 3
  %562 = getelementptr i8, ptr %21, i64 %560
  %563 = getelementptr i8, ptr %562, i64 %555
  %scevgep1204 = getelementptr i8, ptr %563, i64 %561
  %564 = shl nuw nsw i64 %550, 3
  %scevgep1205 = getelementptr i8, ptr %25, i64 %564
  %565 = getelementptr i8, ptr %25, i64 %564
  %566 = getelementptr i8, ptr %565, i64 %561
  %scevgep1206 = getelementptr i8, ptr %566, i64 -8
  %567 = zext nneg i32 %510 to i64
  %568 = zext nneg i32 %510 to i64
  %min.iters.check1209 = icmp ult i32 %510, 4
  %bound0 = icmp ult ptr %scevgep, %scevgep1206
  %bound1 = icmp ult ptr %scevgep1205, %scevgep1204
  %found.conflict = and i1 %bound0, %bound1
  %stride.check = icmp slt i32 %62, 0
  %569 = or i1 %found.conflict, %stride.check
  %n.vec1212 = and i64 %567, 2147483644
  %ind.end1213 = or disjoint i64 %n.vec1212, 1
  %cmp.n1223 = icmp eq i64 %n.vec1212, %567
  br label %.lr.ph1118

.lr.ph1118:                                       ; preds = %.lr.ph1118.preheader, %._crit_edge1119
  %indvars.iv1176 = phi i64 [ 1, %.lr.ph1118.preheader ], [ %indvars.iv.next1177, %._crit_edge1119 ]
  %570 = mul nsw i64 %indvars.iv1176, %552
  %invariant.gep1198 = getelementptr double, ptr %64, i64 %570
  %brmerge = select i1 %min.iters.check1209, i1 true, i1 %569
  br i1 %brmerge, label %scalar.ph1208.preheader, label %vector.body1215

vector.body1215:                                  ; preds = %.lr.ph1118, %vector.body1215
  %index1216 = phi i64 [ %index.next1222, %vector.body1215 ], [ 0, %.lr.ph1118 ]
  %offset.idx1217 = or disjoint i64 %index1216, 1
  %571 = getelementptr inbounds double, ptr %invariant.gep1196, i64 %offset.idx1217
  %572 = getelementptr inbounds i8, ptr %571, i64 16
  %wide.load1218 = load <2 x double>, ptr %571, align 8, !tbaa !9, !alias.scope !27
  %wide.load1219 = load <2 x double>, ptr %572, align 8, !tbaa !9, !alias.scope !27
  %573 = getelementptr double, ptr %invariant.gep1198, i64 %offset.idx1217
  %574 = getelementptr i8, ptr %573, i64 16
  %wide.load1220 = load <2 x double>, ptr %573, align 8, !tbaa !9, !alias.scope !30, !noalias !27
  %wide.load1221 = load <2 x double>, ptr %574, align 8, !tbaa !9, !alias.scope !30, !noalias !27
  %575 = fmul <2 x double> %wide.load1218, %wide.load1220
  %576 = fmul <2 x double> %wide.load1219, %wide.load1221
  store <2 x double> %575, ptr %573, align 8, !tbaa !9, !alias.scope !30, !noalias !27
  store <2 x double> %576, ptr %574, align 8, !tbaa !9, !alias.scope !30, !noalias !27
  %index.next1222 = add nuw i64 %index1216, 4
  %577 = icmp eq i64 %index.next1222, %n.vec1212
  br i1 %577, label %middle.block1207, label %vector.body1215, !llvm.loop !32

middle.block1207:                                 ; preds = %vector.body1215
  br i1 %cmp.n1223, label %._crit_edge1119, label %scalar.ph1208.preheader

scalar.ph1208.preheader:                          ; preds = %.lr.ph1118, %middle.block1207
  %indvars.iv1171.ph = phi i64 [ 1, %.lr.ph1118 ], [ %ind.end1213, %middle.block1207 ]
  %578 = sub nsw i64 %wide.trip.count1169, %indvars.iv1171.ph
  %579 = sub nsw i64 %568, %indvars.iv1171.ph
  %xtraiter1227 = and i64 %578, 3
  %lcmp.mod1228.not = icmp eq i64 %xtraiter1227, 0
  br i1 %lcmp.mod1228.not, label %scalar.ph1208.prol.loopexit, label %scalar.ph1208.prol

scalar.ph1208.prol:                               ; preds = %scalar.ph1208.preheader, %scalar.ph1208.prol
  %indvars.iv1171.prol = phi i64 [ %indvars.iv.next1172.prol, %scalar.ph1208.prol ], [ %indvars.iv1171.ph, %scalar.ph1208.preheader ]
  %prol.iter1229 = phi i64 [ %prol.iter1229.next, %scalar.ph1208.prol ], [ 0, %scalar.ph1208.preheader ]
  %gep1197.prol = getelementptr inbounds double, ptr %invariant.gep1196, i64 %indvars.iv1171.prol
  %580 = load double, ptr %gep1197.prol, align 8, !tbaa !9
  %gep1199.prol = getelementptr double, ptr %invariant.gep1198, i64 %indvars.iv1171.prol
  %581 = load double, ptr %gep1199.prol, align 8, !tbaa !9
  %582 = fmul double %580, %581
  store double %582, ptr %gep1199.prol, align 8, !tbaa !9
  %indvars.iv.next1172.prol = add nuw nsw i64 %indvars.iv1171.prol, 1
  %prol.iter1229.next = add i64 %prol.iter1229, 1
  %prol.iter1229.cmp.not = icmp eq i64 %prol.iter1229.next, %xtraiter1227
  br i1 %prol.iter1229.cmp.not, label %scalar.ph1208.prol.loopexit, label %scalar.ph1208.prol, !llvm.loop !33

scalar.ph1208.prol.loopexit:                      ; preds = %scalar.ph1208.prol, %scalar.ph1208.preheader
  %indvars.iv1171.unr = phi i64 [ %indvars.iv1171.ph, %scalar.ph1208.preheader ], [ %indvars.iv.next1172.prol, %scalar.ph1208.prol ]
  %583 = icmp ult i64 %579, 3
  br i1 %583, label %._crit_edge1119, label %scalar.ph1208

scalar.ph1208:                                    ; preds = %scalar.ph1208.prol.loopexit, %scalar.ph1208
  %indvars.iv1171 = phi i64 [ %indvars.iv.next1172.3, %scalar.ph1208 ], [ %indvars.iv1171.unr, %scalar.ph1208.prol.loopexit ]
  %gep1197 = getelementptr inbounds double, ptr %invariant.gep1196, i64 %indvars.iv1171
  %584 = load double, ptr %gep1197, align 8, !tbaa !9
  %gep1199 = getelementptr double, ptr %invariant.gep1198, i64 %indvars.iv1171
  %585 = load double, ptr %gep1199, align 8, !tbaa !9
  %586 = fmul double %584, %585
  store double %586, ptr %gep1199, align 8, !tbaa !9
  %indvars.iv.next1172 = add nuw nsw i64 %indvars.iv1171, 1
  %gep1197.1 = getelementptr inbounds double, ptr %invariant.gep1196, i64 %indvars.iv.next1172
  %587 = load double, ptr %gep1197.1, align 8, !tbaa !9
  %gep1199.1 = getelementptr double, ptr %invariant.gep1198, i64 %indvars.iv.next1172
  %588 = load double, ptr %gep1199.1, align 8, !tbaa !9
  %589 = fmul double %587, %588
  store double %589, ptr %gep1199.1, align 8, !tbaa !9
  %indvars.iv.next1172.1 = add nuw nsw i64 %indvars.iv1171, 2
  %gep1197.2 = getelementptr inbounds double, ptr %invariant.gep1196, i64 %indvars.iv.next1172.1
  %590 = load double, ptr %gep1197.2, align 8, !tbaa !9
  %gep1199.2 = getelementptr double, ptr %invariant.gep1198, i64 %indvars.iv.next1172.1
  %591 = load double, ptr %gep1199.2, align 8, !tbaa !9
  %592 = fmul double %590, %591
  store double %592, ptr %gep1199.2, align 8, !tbaa !9
  %indvars.iv.next1172.2 = add nuw nsw i64 %indvars.iv1171, 3
  %gep1197.3 = getelementptr inbounds double, ptr %invariant.gep1196, i64 %indvars.iv.next1172.2
  %593 = load double, ptr %gep1197.3, align 8, !tbaa !9
  %gep1199.3 = getelementptr double, ptr %invariant.gep1198, i64 %indvars.iv.next1172.2
  %594 = load double, ptr %gep1199.3, align 8, !tbaa !9
  %595 = fmul double %593, %594
  store double %595, ptr %gep1199.3, align 8, !tbaa !9
  %indvars.iv.next1172.3 = add nuw nsw i64 %indvars.iv1171, 4
  %exitcond1175.not.3 = icmp eq i64 %indvars.iv.next1172.3, %wide.trip.count1174
  br i1 %exitcond1175.not.3, label %._crit_edge1119, label %scalar.ph1208, !llvm.loop !34

._crit_edge1119:                                  ; preds = %scalar.ph1208.prol.loopexit, %scalar.ph1208, %middle.block1207
  %indvars.iv.next1177 = add nuw nsw i64 %indvars.iv1176, 1
  %exitcond1180.not = icmp eq i64 %indvars.iv.next1177, %wide.trip.count1179
  br i1 %exitcond1180.not, label %..loopexit1050_crit_edge, label %.lr.ph1118, !llvm.loop !35

..loopexit1050_crit_edge:                         ; preds = %._crit_edge1119, %._crit_edge1114.thread, %.lr.ph1123
  store i32 %510, ptr %32, align 4, !tbaa !5
  br label %.loopexit1050

.loopexit1050:                                    ; preds = %.lr.ph1109, %._crit_edge1114.thread, %511, %._crit_edge1114, %..loopexit1050_crit_edge
  %.not971 = icmp eq i32 %75, 0
  br i1 %.not971, label %600, label %596

596:                                              ; preds = %.loopexit1050
  %597 = call i32 @dgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull %44, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef nonnull %6, ptr noundef nonnull %49, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %35, ptr noundef %16, ptr noundef nonnull %17) #5
  %598 = call i32 @dlacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %19, ptr noundef nonnull %20) #5
  %599 = call i32 @dgemm_(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.6, ptr noundef nonnull %13, ptr noundef nonnull %13, ptr noundef nonnull %5, ptr noundef nonnull %49, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %35, ptr noundef %23, ptr noundef nonnull %24) #5
  br label %610

600:                                              ; preds = %.loopexit1050
  %601 = call i32 @dgemm_(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.6, ptr noundef nonnull %13, ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef nonnull %49, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %35, ptr noundef %16, ptr noundef nonnull %17) #5
  %602 = call i32 @dgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull %44, ptr noundef nonnull %13, ptr noundef nonnull %13, ptr noundef nonnull %6, ptr noundef nonnull %49, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %35, ptr noundef %23, ptr noundef nonnull %24) #5
  %603 = icmp ne i32 %66, 0
  %or.cond15 = select i1 %603, i1 true, i1 %96
  br i1 %or.cond15, label %604, label %610

604:                                              ; preds = %600
  %605 = call i32 @lsame_(ptr noundef nonnull %44, ptr noundef nonnull @.str.6) #5
  %.not972 = icmp eq i32 %605, 0
  br i1 %.not972, label %608, label %606

606:                                              ; preds = %604
  %607 = call i32 @dlacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %6, ptr noundef nonnull %13, ptr noundef %21, ptr noundef nonnull %22, ptr noundef %16, ptr noundef nonnull %17) #5
  br label %610

608:                                              ; preds = %604
  %609 = call i32 @dlacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %13, ptr noundef nonnull %6, ptr noundef %21, ptr noundef nonnull %22, ptr noundef %16, ptr noundef nonnull %17) #5
  br label %610

610:                                              ; preds = %600, %608, %606, %596
  %611 = load i32, ptr %26, align 4, !tbaa !5
  %612 = load i32, ptr %6, align 4, !tbaa !5
  %613 = sub nsw i32 %611, %612
  store i32 %613, ptr %31, align 4, !tbaa !5
  %614 = sext i32 %612 to i64
  %615 = getelementptr double, ptr %65, i64 %614
  %616 = getelementptr i8, ptr %615, i64 8
  %617 = call i32 @dgeev_(ptr noundef nonnull @.str.6, ptr noundef nonnull %42, ptr noundef nonnull %13, ptr noundef %23, ptr noundef nonnull %24, ptr noundef %14, ptr noundef %15, ptr noundef %21, ptr noundef nonnull %22, ptr noundef %21, ptr noundef nonnull %22, ptr noundef %616, ptr noundef nonnull %31, ptr noundef nonnull %37) #5
  %618 = load i32, ptr %37, align 4, !tbaa !5
  %619 = icmp sgt i32 %618, 0
  br i1 %619, label %620, label %621

620:                                              ; preds = %610
  store i32 3, ptr %29, align 4, !tbaa !5
  br label %689

621:                                              ; preds = %610
  br i1 %or.cond9, label %622, label %.loopexit

622:                                              ; preds = %621
  %.not973 = icmp eq i32 %66, 0
  br i1 %.not973, label %632, label %623

623:                                              ; preds = %622
  br i1 %.not971, label %626, label %624

624:                                              ; preds = %623
  %625 = call i32 @dgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef nonnull %13, ptr noundef nonnull %49, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %35, ptr noundef %9, ptr noundef nonnull %10) #5
  br label %636

626:                                              ; preds = %623
  %627 = call i32 @dgemm_(ptr noundef nonnull %44, ptr noundef nonnull @.str.6, ptr noundef nonnull %6, ptr noundef nonnull %13, ptr noundef nonnull %13, ptr noundef nonnull %49, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %35, ptr noundef %23, ptr noundef nonnull %24) #5
  %628 = call i32 @dgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef nonnull %6, ptr noundef nonnull %49, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %23, ptr noundef nonnull %24, ptr noundef nonnull %35, ptr noundef %16, ptr noundef nonnull %17) #5
  %629 = call i32 @dlacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %9, ptr noundef nonnull %10) #5
  br i1 %96, label %630, label %636

630:                                              ; preds = %626
  %631 = call i32 @dlacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %19, ptr noundef %20) #5
  br label %636

632:                                              ; preds = %622
  br i1 %96, label %633, label %636

633:                                              ; preds = %632
  %634 = call i32 @dgemm_(ptr noundef nonnull %44, ptr noundef nonnull @.str.6, ptr noundef nonnull %6, ptr noundef nonnull %13, ptr noundef nonnull %13, ptr noundef nonnull %49, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %35, ptr noundef %23, ptr noundef nonnull %24) #5
  %635 = call i32 @dgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef nonnull %6, ptr noundef nonnull %49, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %23, ptr noundef nonnull %24, ptr noundef nonnull %35, ptr noundef %19, ptr noundef nonnull %20) #5
  br label %636

636:                                              ; preds = %632, %633, %624, %630, %626
  br i1 %216, label %637, label %639

637:                                              ; preds = %636
  %638 = call i32 @dgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %5, ptr noundef nonnull %13, ptr noundef nonnull %13, ptr noundef nonnull %49, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %21, ptr noundef nonnull %22, ptr noundef nonnull %35, ptr noundef %16, ptr noundef nonnull %17) #5
  br label %639

639:                                              ; preds = %637, %636
  br i1 %.not973, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %639
  %invariant.gep1124 = getelementptr i8, ptr %60, i64 8
  %invariant.gep1126 = getelementptr i8, ptr %55, i64 8
  %640 = load i32, ptr %13, align 4, !tbaa !5
  %.not9771134 = icmp slt i32 %640, 1
  br i1 %.not9771134, label %.loopexit, label %.lr.ph1136

.lr.ph1136:                                       ; preds = %.preheader
  %641 = getelementptr inbounds i8, ptr %43, i64 8
  %642 = getelementptr inbounds i8, ptr %43, i64 16
  %643 = getelementptr inbounds i8, ptr %43, i64 24
  br label %644

644:                                              ; preds = %.lr.ph1136, %675
  %.101135 = phi i32 [ 1, %.lr.ph1136 ], [ %676, %675 ]
  %645 = zext nneg i32 %.101135 to i64
  %646 = getelementptr inbounds double, ptr %57, i64 %645
  %647 = load double, ptr %646, align 8, !tbaa !9
  %648 = load double, ptr %35, align 8, !tbaa !9
  %649 = fcmp oeq double %647, %648
  %650 = getelementptr inbounds double, ptr %56, i64 %645
  %651 = load double, ptr %650, align 8, !tbaa !9
  br i1 %649, label %652, label %661

652:                                              ; preds = %644
  %653 = fneg double %651
  store double %653, ptr %33, align 8, !tbaa !9
  %654 = mul nsw i32 %.101135, %58
  %655 = sext i32 %654 to i64
  %gep1131 = getelementptr double, ptr %invariant.gep1124, i64 %655
  %656 = mul nsw i32 %.101135, %53
  %657 = sext i32 %656 to i64
  %gep1133 = getelementptr double, ptr %invariant.gep1126, i64 %657
  %658 = call i32 @daxpy_(ptr noundef nonnull %5, ptr noundef nonnull %33, ptr noundef %gep1131, ptr noundef nonnull @c__1, ptr noundef %gep1133, ptr noundef nonnull @c__1) #5
  %659 = call double @dnrm2_(ptr noundef nonnull %5, ptr noundef %gep1133, ptr noundef nonnull @c__1) #5
  %660 = getelementptr inbounds double, ptr %61, i64 %645
  store double %659, ptr %660, align 8, !tbaa !9
  br label %675

661:                                              ; preds = %644
  store double %651, ptr %43, align 16, !tbaa !9
  %662 = fneg double %647
  store double %662, ptr %641, align 8, !tbaa !9
  store double %647, ptr %642, align 16, !tbaa !9
  store double %651, ptr %643, align 8, !tbaa !9
  %663 = load double, ptr %49, align 8, !tbaa !9
  %664 = fneg double %663
  store double %664, ptr %33, align 8, !tbaa !9
  %665 = mul nsw i32 %.101135, %58
  %666 = sext i32 %665 to i64
  %gep1125 = getelementptr double, ptr %invariant.gep1124, i64 %666
  %667 = mul nsw i32 %.101135, %53
  %668 = sext i32 %667 to i64
  %gep1127 = getelementptr double, ptr %invariant.gep1126, i64 %668
  %669 = call i32 @dgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.6, ptr noundef nonnull %5, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %33, ptr noundef %gep1125, ptr noundef nonnull %17, ptr noundef nonnull %43, ptr noundef nonnull @c__2, ptr noundef nonnull %49, ptr noundef %gep1127, ptr noundef nonnull %10) #5
  %670 = load i32, ptr %6, align 4, !tbaa !5
  %671 = sext i32 %670 to i64
  %gep1129 = getelementptr double, ptr %25, i64 %671
  %672 = call double @dlange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %5, ptr noundef nonnull @c__2, ptr noundef %gep1127, ptr noundef nonnull %10, ptr noundef %gep1129) #5
  %673 = getelementptr inbounds double, ptr %61, i64 %645
  store double %672, ptr %673, align 8, !tbaa !9
  %674 = getelementptr i8, ptr %673, i64 8
  store double %672, ptr %674, align 8, !tbaa !9
  br label %675

675:                                              ; preds = %661, %652
  %.sink1200 = phi i32 [ 2, %661 ], [ 1, %652 ]
  %676 = add nuw nsw i32 %.101135, %.sink1200
  %677 = load i32, ptr %13, align 4, !tbaa !5
  %.not977 = icmp sgt i32 %676, %677
  br i1 %.not977, label %.loopexit, label %644, !llvm.loop !36

.loopexit:                                        ; preds = %675, %.preheader, %639, %621
  %678 = load i32, ptr %4, align 4, !tbaa !5
  %679 = icmp eq i32 %678, 4
  br i1 %679, label %680, label %688

680:                                              ; preds = %.loopexit
  %681 = load double, ptr %39, align 8, !tbaa !9
  %682 = load i32, ptr %6, align 4, !tbaa !5
  %683 = sext i32 %682 to i64
  %684 = getelementptr double, ptr %65, i64 %683
  %685 = getelementptr i8, ptr %684, i64 8
  store double %681, ptr %685, align 8, !tbaa !9
  %686 = load double, ptr %40, align 8, !tbaa !9
  %687 = getelementptr i8, ptr %684, i64 16
  store double %686, ptr %687, align 8, !tbaa !9
  br label %688

688:                                              ; preds = %680, %.loopexit
  %.not978 = icmp eq i32 %.5869, 0
  %.998 = select i1 %.not978, i32 0, i32 4
  store i32 %.998, ptr %29, align 4, !tbaa !5
  br label %689

689:                                              ; preds = %688, %620, %469, %464, %300, %.thread1042, %.thread1018, %140
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  ret i32 0
}

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

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

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

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

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

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

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

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

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

declare i32 @disnan_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare double @dnrm2_(ptr noundef, 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

; 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) #4

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = distinct !{!16, !13}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13, !22, !23}
!22 = !{!"llvm.loop.isvectorized", i32 1}
!23 = !{!"llvm.loop.unroll.runtime.disable"}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.unroll.disable"}
!26 = distinct !{!26, !13, !22}
!27 = !{!28}
!28 = distinct !{!28, !29}
!29 = distinct !{!29, !"LVerDomain"}
!30 = !{!31}
!31 = distinct !{!31, !29}
!32 = distinct !{!32, !13, !22, !23}
!33 = distinct !{!33, !25}
!34 = distinct !{!34, !13, !22}
!35 = distinct !{!35, !13}
!36 = distinct !{!36, !13}


; Effective O3 passes: BDCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass