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

; 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 @sgedmd_(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 float, align 4
  %77 = alloca float, align 4
  %78 = alloca float, align 4
  %79 = alloca float, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca float, align 4
  %83 = alloca float, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca float, align 4
  %87 = alloca i32, align 4
  %88 = alloca float, align 4
  %89 = alloca [1 x i8], align 1
  %90 = alloca i32, align 4
  %91 = alloca [4 x float], 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 float, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca [2 x float], align 4
  %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 float], align 4
  %116 = alloca float, align 4
  %117 = alloca float, align 4
  %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 4, ptr %76) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr %82) #4
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr %86) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.start.p0(i64 4, 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 16, 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 4, 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 8, 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 8, ptr %115) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #4
  call void @llvm.lifetime.start.p0(i64 4, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float, 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 float 1.000000e+00, ptr %117, align 4, !tbaa !11
  store float 0.000000e+00, ptr %78, align 4, !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 float, ptr %344, align 4, !tbaa !11
  %346 = load float, ptr %78, align 4, !tbaa !11
  %347 = fcmp olt float %345, %346
  br i1 %347, label %353, label %348

348:                                              ; preds = %343
  %349 = load ptr, ptr %44, align 8, !tbaa !5
  %350 = load float, ptr %349, align 4, !tbaa !11
  %351 = load float, ptr %117, align 4, !tbaa !11
  %352 = fcmp oge float %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 %1078

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 float, ptr %421, i64 1
  store float 2.000000e+00, ptr %422, align 4, !tbaa !11
  %423 = load ptr, ptr %57, align 8, !tbaa !5
  %424 = getelementptr inbounds float, ptr %423, i64 2
  store float 2.000000e+00, ptr %424, align 4, !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 %2527

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 float, 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 float, 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 float, 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 float, ptr %543, i64 %545
  %547 = load ptr, ptr %54, align 8, !tbaa !5
  %548 = getelementptr inbounds [2 x float], ptr %106, i64 0, i64 0
  %549 = call i32 @sgesvd_(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 float], ptr %106, i64 0, i64 0
  %552 = load float, ptr %551, align 4, !tbaa !11
  %553 = fptosi float %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 %945

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 float, 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 float, 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 float, 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 float, ptr %722, i64 %724
  %726 = load ptr, ptr %54, align 8, !tbaa !5
  %727 = getelementptr inbounds [2 x float], 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 @sgesdd_(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 float], ptr %106, i64 0, i64 0
  %733 = load float, ptr %732, align 4, !tbaa !11
  %734 = fptosi float %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 %944

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 %837

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 float, 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 float, 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 float, 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 float, 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 = getelementptr inbounds [2 x float], ptr %106, i64 0, i64 0
  %786 = getelementptr inbounds [2 x float], ptr %115, i64 0, i64 0
  %787 = call i32 @sgesvdq_(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 @c_n1, ptr noundef %785, ptr noundef @c_n1, ptr noundef %786, ptr noundef @c_n1, ptr noundef %80)
  %788 = load ptr, ptr %59, align 8, !tbaa !5
  %789 = getelementptr inbounds i32, ptr %788, i64 1
  %790 = load i32, ptr %789, align 4, !tbaa !9
  store i32 %790, ptr %97, align 4, !tbaa !9
  %791 = getelementptr inbounds [2 x float], ptr %106, i64 0, i64 1
  %792 = load float, ptr %791, align 4, !tbaa !11
  %793 = fptosi float %792 to i32
  store i32 %793, ptr %114, align 4, !tbaa !9
  %794 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %794, ptr %74, align 4, !tbaa !9
  %795 = load ptr, ptr %38, align 8, !tbaa !5
  %796 = load i32, ptr %795, align 4, !tbaa !9
  %797 = load i32, ptr %114, align 4, !tbaa !9
  %798 = add nsw i32 %796, %797
  %799 = getelementptr inbounds [2 x float], ptr %115, i64 0, i64 0
  %800 = load float, ptr %799, align 4, !tbaa !11
  %801 = fptosi float %800 to i32
  %802 = add nsw i32 %798, %801
  store i32 %802, ptr %75, align 4, !tbaa !9
  %803 = load i32, ptr %74, align 4, !tbaa !9
  %804 = load i32, ptr %75, align 4, !tbaa !9
  %805 = icmp sge i32 %803, %804
  br i1 %805, label %806, label %808

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

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

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

814:                                              ; preds = %810
  %815 = getelementptr inbounds [2 x float], ptr %106, i64 0, i64 0
  %816 = load float, ptr %815, align 4, !tbaa !11
  %817 = fptosi float %816 to i32
  store i32 %817, ptr %113, align 4, !tbaa !9
  %818 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %818, ptr %74, align 4, !tbaa !9
  %819 = load ptr, ptr %38, align 8, !tbaa !5
  %820 = load i32, ptr %819, align 4, !tbaa !9
  %821 = load i32, ptr %113, align 4, !tbaa !9
  %822 = add nsw i32 %820, %821
  %823 = getelementptr inbounds [2 x float], ptr %115, i64 0, i64 0
  %824 = load float, ptr %823, align 4, !tbaa !11
  %825 = fptosi float %824 to i32
  %826 = add nsw i32 %822, %825
  store i32 %826, ptr %75, align 4, !tbaa !9
  %827 = load i32, ptr %74, align 4, !tbaa !9
  %828 = load i32, ptr %75, align 4, !tbaa !9
  %829 = icmp sge i32 %827, %828
  br i1 %829, label %830, label %832

830:                                              ; preds = %814
  %831 = load i32, ptr %74, align 4, !tbaa !9
  br label %834

832:                                              ; preds = %814
  %833 = load i32, ptr %75, align 4, !tbaa !9
  br label %834

834:                                              ; preds = %832, %830
  %835 = phi i32 [ %831, %830 ], [ %833, %832 ]
  store i32 %835, ptr %105, align 4, !tbaa !9
  br label %836

836:                                              ; preds = %834, %810
  br label %943

837:                                              ; preds = %759
  %838 = load ptr, ptr %36, align 8, !tbaa !5
  %839 = load i32, ptr %838, align 4, !tbaa !9
  %840 = icmp eq i32 %839, 4
  br i1 %840, label %841, label %942

841:                                              ; preds = %837
  %842 = getelementptr inbounds [1 x i8], ptr %111, i64 0, i64 0
  store i8 74, ptr %842, align 1, !tbaa !13
  store i32 7, ptr %74, align 4, !tbaa !9
  %843 = load ptr, ptr %37, align 8, !tbaa !5
  %844 = load i32, ptr %843, align 4, !tbaa !9
  %845 = shl i32 %844, 1
  %846 = load ptr, ptr %38, align 8, !tbaa !5
  %847 = load i32, ptr %846, align 4, !tbaa !9
  %848 = add nsw i32 %845, %847
  store i32 %848, ptr %75, align 4, !tbaa !9
  %849 = load i32, ptr %74, align 4, !tbaa !9
  %850 = load i32, ptr %75, align 4, !tbaa !9
  %851 = icmp sge i32 %849, %850
  br i1 %851, label %852, label %854

852:                                              ; preds = %841
  %853 = load i32, ptr %74, align 4, !tbaa !9
  br label %856

854:                                              ; preds = %841
  %855 = load i32, ptr %75, align 4, !tbaa !9
  br label %856

856:                                              ; preds = %854, %852
  %857 = phi i32 [ %853, %852 ], [ %855, %854 ]
  store i32 %857, ptr %74, align 4, !tbaa !9
  %858 = load ptr, ptr %38, align 8, !tbaa !5
  %859 = load i32, ptr %858, align 4, !tbaa !9
  %860 = shl i32 %859, 2
  %861 = load ptr, ptr %38, align 8, !tbaa !5
  %862 = load i32, ptr %861, align 4, !tbaa !9
  %863 = load ptr, ptr %38, align 8, !tbaa !5
  %864 = load i32, ptr %863, align 4, !tbaa !9
  %865 = mul nsw i32 %862, %864
  %866 = add nsw i32 %860, %865
  store i32 %866, ptr %75, align 4, !tbaa !9
  %867 = load i32, ptr %74, align 4, !tbaa !9
  %868 = load i32, ptr %75, align 4, !tbaa !9
  %869 = icmp sge i32 %867, %868
  br i1 %869, label %870, label %872

870:                                              ; preds = %856
  %871 = load i32, ptr %74, align 4, !tbaa !9
  br label %874

872:                                              ; preds = %856
  %873 = load i32, ptr %75, align 4, !tbaa !9
  br label %874

874:                                              ; preds = %872, %870
  %875 = phi i32 [ %871, %870 ], [ %873, %872 ]
  store i32 %875, ptr %74, align 4, !tbaa !9
  %876 = load ptr, ptr %38, align 8, !tbaa !5
  %877 = load i32, ptr %876, align 4, !tbaa !9
  %878 = shl i32 %877, 1
  %879 = load ptr, ptr %38, align 8, !tbaa !5
  %880 = load i32, ptr %879, align 4, !tbaa !9
  %881 = load ptr, ptr %38, align 8, !tbaa !5
  %882 = load i32, ptr %881, align 4, !tbaa !9
  %883 = mul nsw i32 %880, %882
  %884 = add nsw i32 %878, %883
  %885 = add nsw i32 %884, 6
  store i32 %885, ptr %75, align 4, !tbaa !9
  %886 = load i32, ptr %74, align 4, !tbaa !9
  %887 = load i32, ptr %75, align 4, !tbaa !9
  %888 = icmp sge i32 %886, %887
  br i1 %888, label %889, label %891

889:                                              ; preds = %874
  %890 = load i32, ptr %74, align 4, !tbaa !9
  br label %893

891:                                              ; preds = %874
  %892 = load i32, ptr %75, align 4, !tbaa !9
  br label %893

893:                                              ; preds = %891, %889
  %894 = phi i32 [ %890, %889 ], [ %892, %891 ]
  store i32 %894, ptr %112, align 4, !tbaa !9
  %895 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %895, ptr %74, align 4, !tbaa !9
  %896 = load ptr, ptr %38, align 8, !tbaa !5
  %897 = load i32, ptr %896, align 4, !tbaa !9
  %898 = load i32, ptr %112, align 4, !tbaa !9
  %899 = add nsw i32 %897, %898
  store i32 %899, ptr %75, align 4, !tbaa !9
  %900 = load i32, ptr %74, align 4, !tbaa !9
  %901 = load i32, ptr %75, align 4, !tbaa !9
  %902 = icmp sge i32 %900, %901
  br i1 %902, label %903, label %905

903:                                              ; preds = %893
  %904 = load i32, ptr %74, align 4, !tbaa !9
  br label %907

905:                                              ; preds = %893
  %906 = load i32, ptr %75, align 4, !tbaa !9
  br label %907

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

918:                                              ; preds = %907
  %919 = load i32, ptr %74, align 4, !tbaa !9
  br label %922

920:                                              ; preds = %907
  %921 = load i32, ptr %75, align 4, !tbaa !9
  br label %922

922:                                              ; preds = %920, %918
  %923 = phi i32 [ %919, %918 ], [ %921, %920 ]
  store i32 %923, ptr %97, align 4, !tbaa !9
  %924 = load i32, ptr %109, align 4, !tbaa !9
  %925 = icmp ne i32 %924, 0
  br i1 %925, label %926, label %941

926:                                              ; preds = %922
  %927 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %927, ptr %74, align 4, !tbaa !9
  %928 = load ptr, ptr %38, align 8, !tbaa !5
  %929 = load i32, ptr %928, align 4, !tbaa !9
  %930 = load i32, ptr %112, align 4, !tbaa !9
  %931 = add nsw i32 %929, %930
  store i32 %931, ptr %75, align 4, !tbaa !9
  %932 = load i32, ptr %74, align 4, !tbaa !9
  %933 = load i32, ptr %75, align 4, !tbaa !9
  %934 = icmp sge i32 %932, %933
  br i1 %934, label %935, label %937

935:                                              ; preds = %926
  %936 = load i32, ptr %74, align 4, !tbaa !9
  br label %939

937:                                              ; preds = %926
  %938 = load i32, ptr %75, align 4, !tbaa !9
  br label %939

939:                                              ; preds = %937, %935
  %940 = phi i32 [ %936, %935 ], [ %938, %937 ]
  store i32 %940, ptr %105, align 4, !tbaa !9
  br label %941

941:                                              ; preds = %939, %922
  br label %942

942:                                              ; preds = %941, %837
  br label %943

943:                                              ; preds = %942, %836
  br label %944

944:                                              ; preds = %943, %758
  br label %945

945:                                              ; preds = %944, %577
  %946 = load i32, ptr %99, align 4, !tbaa !9
  %947 = icmp ne i32 %946, 0
  br i1 %947, label %955, label %948

948:                                              ; preds = %945
  %949 = load i32, ptr %90, align 4, !tbaa !9
  %950 = icmp ne i32 %949, 0
  br i1 %950, label %955, label %951

951:                                              ; preds = %948
  %952 = load ptr, ptr %33, align 8, !tbaa !5
  %953 = call i32 @lsame_(ptr noundef %952, ptr noundef @.str.7)
  %954 = icmp ne i32 %953, 0
  br i1 %954, label %955, label %957

955:                                              ; preds = %951, %948, %945
  %956 = getelementptr inbounds [1 x i8], ptr %89, i64 0, i64 0
  store i8 86, ptr %956, align 1, !tbaa !13
  br label %959

957:                                              ; preds = %951
  %958 = getelementptr inbounds [1 x i8], ptr %89, i64 0, i64 0
  store i8 78, ptr %958, align 1, !tbaa !13
  br label %959

959:                                              ; preds = %957, %955
  %960 = getelementptr inbounds [1 x i8], ptr %89, i64 0, i64 0
  %961 = call i32 @lsame_(ptr noundef %960, ptr noundef @.str.4)
  %962 = icmp ne i32 %961, 0
  br i1 %962, label %963, label %976

963:                                              ; preds = %959
  store i32 1, ptr %74, align 4, !tbaa !9
  %964 = load ptr, ptr %38, align 8, !tbaa !5
  %965 = load i32, ptr %964, align 4, !tbaa !9
  %966 = shl i32 %965, 2
  store i32 %966, ptr %75, align 4, !tbaa !9
  %967 = load i32, ptr %74, align 4, !tbaa !9
  %968 = load i32, ptr %75, align 4, !tbaa !9
  %969 = icmp sge i32 %967, %968
  br i1 %969, label %970, label %972

970:                                              ; preds = %963
  %971 = load i32, ptr %74, align 4, !tbaa !9
  br label %974

972:                                              ; preds = %963
  %973 = load i32, ptr %75, align 4, !tbaa !9
  br label %974

974:                                              ; preds = %972, %970
  %975 = phi i32 [ %971, %970 ], [ %973, %972 ]
  store i32 %975, ptr %103, align 4, !tbaa !9
  br label %989

976:                                              ; preds = %959
  store i32 1, ptr %74, align 4, !tbaa !9
  %977 = load ptr, ptr %38, align 8, !tbaa !5
  %978 = load i32, ptr %977, align 4, !tbaa !9
  %979 = mul nsw i32 %978, 3
  store i32 %979, ptr %75, align 4, !tbaa !9
  %980 = load i32, ptr %74, align 4, !tbaa !9
  %981 = load i32, ptr %75, align 4, !tbaa !9
  %982 = icmp sge i32 %980, %981
  br i1 %982, label %983, label %985

983:                                              ; preds = %976
  %984 = load i32, ptr %74, align 4, !tbaa !9
  br label %987

985:                                              ; preds = %976
  %986 = load i32, ptr %75, align 4, !tbaa !9
  br label %987

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

989:                                              ; preds = %987, %974
  %990 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %990, ptr %74, align 4, !tbaa !9
  %991 = load ptr, ptr %38, align 8, !tbaa !5
  %992 = load i32, ptr %991, align 4, !tbaa !9
  %993 = load i32, ptr %103, align 4, !tbaa !9
  %994 = add nsw i32 %992, %993
  store i32 %994, ptr %75, align 4, !tbaa !9
  %995 = load i32, ptr %74, align 4, !tbaa !9
  %996 = load i32, ptr %75, align 4, !tbaa !9
  %997 = icmp sge i32 %995, %996
  br i1 %997, label %998, label %1000

998:                                              ; preds = %989
  %999 = load i32, ptr %74, align 4, !tbaa !9
  br label %1002

1000:                                             ; preds = %989
  %1001 = load i32, ptr %75, align 4, !tbaa !9
  br label %1002

1002:                                             ; preds = %1000, %998
  %1003 = phi i32 [ %999, %998 ], [ %1001, %1000 ]
  store i32 %1003, ptr %102, align 4, !tbaa !9
  %1004 = load i32, ptr %109, align 4, !tbaa !9
  %1005 = icmp ne i32 %1004, 0
  br i1 %1005, label %1006, label %1057

1006:                                             ; preds = %1002
  %1007 = getelementptr inbounds [1 x i8], ptr %89, i64 0, i64 0
  %1008 = load ptr, ptr %38, align 8, !tbaa !5
  %1009 = load ptr, ptr %55, align 8, !tbaa !5
  %1010 = load i32, ptr %73, align 4, !tbaa !9
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds float, ptr %1009, i64 %1011
  %1013 = load ptr, ptr %56, align 8, !tbaa !5
  %1014 = load ptr, ptr %46, align 8, !tbaa !5
  %1015 = getelementptr inbounds float, ptr %1014, i64 1
  %1016 = load ptr, ptr %47, align 8, !tbaa !5
  %1017 = getelementptr inbounds float, ptr %1016, i64 1
  %1018 = load ptr, ptr %53, align 8, !tbaa !5
  %1019 = load i32, ptr %71, align 4, !tbaa !9
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds float, ptr %1018, i64 %1020
  %1022 = load ptr, ptr %54, align 8, !tbaa !5
  %1023 = load ptr, ptr %53, align 8, !tbaa !5
  %1024 = load i32, ptr %71, align 4, !tbaa !9
  %1025 = sext i32 %1024 to i64
  %1026 = getelementptr inbounds float, ptr %1023, i64 %1025
  %1027 = load ptr, ptr %54, align 8, !tbaa !5
  %1028 = getelementptr inbounds [2 x float], ptr %106, i64 0, i64 0
  %1029 = call i32 @sgeev_(ptr noundef @.str.6, ptr noundef %1007, ptr noundef %1008, ptr noundef %1012, ptr noundef %1013, ptr noundef %1015, ptr noundef %1017, ptr noundef %1021, ptr noundef %1022, ptr noundef %1026, ptr noundef %1027, ptr noundef %1028, ptr noundef @c_n1, ptr noundef %80)
  %1030 = load i32, ptr %103, align 4, !tbaa !9
  store i32 %1030, ptr %74, align 4, !tbaa !9
  %1031 = getelementptr inbounds [2 x float], ptr %106, i64 0, i64 0
  %1032 = load float, ptr %1031, align 4, !tbaa !11
  %1033 = fptosi float %1032 to i32
  store i32 %1033, ptr %75, align 4, !tbaa !9
  %1034 = load i32, ptr %74, align 4, !tbaa !9
  %1035 = load i32, ptr %75, align 4, !tbaa !9
  %1036 = icmp sge i32 %1034, %1035
  br i1 %1036, label %1037, label %1039

1037:                                             ; preds = %1006
  %1038 = load i32, ptr %74, align 4, !tbaa !9
  br label %1041

1039:                                             ; preds = %1006
  %1040 = load i32, ptr %75, align 4, !tbaa !9
  br label %1041

1041:                                             ; preds = %1039, %1037
  %1042 = phi i32 [ %1038, %1037 ], [ %1040, %1039 ]
  store i32 %1042, ptr %101, align 4, !tbaa !9
  %1043 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %1043, ptr %74, align 4, !tbaa !9
  %1044 = load ptr, ptr %38, align 8, !tbaa !5
  %1045 = load i32, ptr %1044, align 4, !tbaa !9
  %1046 = load i32, ptr %101, align 4, !tbaa !9
  %1047 = add nsw i32 %1045, %1046
  store i32 %1047, ptr %75, align 4, !tbaa !9
  %1048 = load i32, ptr %74, align 4, !tbaa !9
  %1049 = load i32, ptr %75, align 4, !tbaa !9
  %1050 = icmp sge i32 %1048, %1049
  br i1 %1050, label %1051, label %1053

1051:                                             ; preds = %1041
  %1052 = load i32, ptr %74, align 4, !tbaa !9
  br label %1055

1053:                                             ; preds = %1041
  %1054 = load i32, ptr %75, align 4, !tbaa !9
  br label %1055

1055:                                             ; preds = %1053, %1051
  %1056 = phi i32 [ %1052, %1051 ], [ %1054, %1053 ]
  store i32 %1056, ptr %105, align 4, !tbaa !9
  br label %1057

1057:                                             ; preds = %1055, %1002
  %1058 = load ptr, ptr %60, align 8, !tbaa !5
  %1059 = load i32, ptr %1058, align 4, !tbaa !9
  %1060 = load i32, ptr %97, align 4, !tbaa !9
  %1061 = icmp slt i32 %1059, %1060
  br i1 %1061, label %1062, label %1067

1062:                                             ; preds = %1057
  %1063 = load i32, ptr %109, align 4, !tbaa !9
  %1064 = icmp ne i32 %1063, 0
  br i1 %1064, label %1067, label %1065

1065:                                             ; preds = %1062
  %1066 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -29, ptr %1066, align 4, !tbaa !9
  br label %1067

1067:                                             ; preds = %1065, %1062, %1057
  %1068 = load ptr, ptr %58, align 8, !tbaa !5
  %1069 = load i32, ptr %1068, align 4, !tbaa !9
  %1070 = load i32, ptr %102, align 4, !tbaa !9
  %1071 = icmp slt i32 %1069, %1070
  br i1 %1071, label %1072, label %1077

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

1075:                                             ; preds = %1072
  %1076 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -27, ptr %1076, align 4, !tbaa !9
  br label %1077

1077:                                             ; preds = %1075, %1072, %1067
  br label %1078

1078:                                             ; preds = %1077, %407
  %1079 = load ptr, ptr %61, align 8, !tbaa !5
  %1080 = load i32, ptr %1079, align 4, !tbaa !9
  %1081 = icmp ne i32 %1080, 0
  br i1 %1081, label %1082, label %1087

1082:                                             ; preds = %1078
  %1083 = load ptr, ptr %61, align 8, !tbaa !5
  %1084 = load i32, ptr %1083, align 4, !tbaa !9
  %1085 = sub nsw i32 0, %1084
  store i32 %1085, ptr %74, align 4, !tbaa !9
  %1086 = 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 %2527

1087:                                             ; preds = %1078
  %1088 = load i32, ptr %109, align 4, !tbaa !9
  %1089 = icmp ne i32 %1088, 0
  br i1 %1089, label %1090, label %1102

1090:                                             ; preds = %1087
  %1091 = load i32, ptr %97, align 4, !tbaa !9
  %1092 = load ptr, ptr %59, align 8, !tbaa !5
  %1093 = getelementptr inbounds i32, ptr %1092, i64 1
  store i32 %1091, ptr %1093, align 4, !tbaa !9
  %1094 = load i32, ptr %102, align 4, !tbaa !9
  %1095 = sitofp i32 %1094 to float
  %1096 = load ptr, ptr %57, align 8, !tbaa !5
  %1097 = getelementptr inbounds float, ptr %1096, i64 1
  store float %1095, ptr %1097, align 4, !tbaa !11
  %1098 = load i32, ptr %105, align 4, !tbaa !9
  %1099 = sitofp i32 %1098 to float
  %1100 = load ptr, ptr %57, align 8, !tbaa !5
  %1101 = getelementptr inbounds float, ptr %1100, i64 2
  store float %1099, ptr %1101, align 4, !tbaa !11
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2527

1102:                                             ; preds = %1087
  br label %1103

1103:                                             ; preds = %1102
  %1104 = call float @slamch_(ptr noundef @.str.8)
  store float %1104, ptr %116, align 4, !tbaa !11
  %1105 = call float @slamch_(ptr noundef @.str.1)
  store float %1105, ptr %88, align 4, !tbaa !11
  store i32 0, ptr %87, align 4, !tbaa !9
  %1106 = load i32, ptr %93, align 4, !tbaa !9
  %1107 = icmp ne i32 %1106, 0
  br i1 %1107, label %1108, label %1336

1108:                                             ; preds = %1103
  %1109 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %1109, align 4, !tbaa !9
  %1110 = load ptr, ptr %38, align 8, !tbaa !5
  %1111 = load i32, ptr %1110, align 4, !tbaa !9
  store i32 %1111, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1112

1112:                                             ; preds = %1216, %1108
  %1113 = load i32, ptr %84, align 4, !tbaa !9
  %1114 = load i32, ptr %74, align 4, !tbaa !9
  %1115 = icmp sle i32 %1113, %1114
  br i1 %1115, label %1116, label %1219

1116:                                             ; preds = %1112
  %1117 = load float, ptr %78, align 4, !tbaa !11
  store float %1117, ptr %86, align 4, !tbaa !11
  %1118 = load ptr, ptr %37, align 8, !tbaa !5
  %1119 = load ptr, ptr %39, align 8, !tbaa !5
  %1120 = load i32, ptr %84, align 4, !tbaa !9
  %1121 = load i32, ptr %62, align 4, !tbaa !9
  %1122 = mul nsw i32 %1120, %1121
  %1123 = add nsw i32 %1122, 1
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds float, ptr %1119, i64 %1124
  %1126 = call i32 @slassq_(ptr noundef %1118, ptr noundef %1125, ptr noundef @c__1, ptr noundef %86, ptr noundef %79)
  %1127 = call i32 @sisnan_(ptr noundef %86)
  %1128 = icmp ne i32 %1127, 0
  br i1 %1128, label %1132, label %1129

1129:                                             ; preds = %1116
  %1130 = call i32 @sisnan_(ptr noundef %79)
  %1131 = icmp ne i32 %1130, 0
  br i1 %1131, label %1132, label %1139

1132:                                             ; preds = %1129, %1116
  %1133 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %1133, align 4, !tbaa !9
  %1134 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -8, ptr %1134, align 4, !tbaa !9
  %1135 = load ptr, ptr %61, align 8, !tbaa !5
  %1136 = load i32, ptr %1135, align 4, !tbaa !9
  %1137 = sub nsw i32 0, %1136
  store i32 %1137, ptr %75, align 4, !tbaa !9
  %1138 = call i32 @xerbla_(ptr noundef @.str.11, ptr noundef %75)
  br label %1139

1139:                                             ; preds = %1132, %1129
  %1140 = load float, ptr %86, align 4, !tbaa !11
  %1141 = load float, ptr %78, align 4, !tbaa !11
  %1142 = fcmp une float %1140, %1141
  br i1 %1142, label %1143, label %1206

1143:                                             ; preds = %1139
  %1144 = load float, ptr %79, align 4, !tbaa !11
  %1145 = load float, ptr %78, align 4, !tbaa !11
  %1146 = fcmp une float %1144, %1145
  br i1 %1146, label %1147, label %1206

1147:                                             ; preds = %1143
  %1148 = load float, ptr %79, align 4, !tbaa !11
  %1149 = fpext float %1148 to double
  %1150 = call double @sqrt(double noundef %1149) #4
  %1151 = fptrunc double %1150 to float
  store float %1151, ptr %100, align 4, !tbaa !11
  %1152 = load float, ptr %86, align 4, !tbaa !11
  %1153 = load float, ptr %116, align 4, !tbaa !11
  %1154 = load float, ptr %100, align 4, !tbaa !11
  %1155 = fdiv float %1153, %1154
  %1156 = fcmp oge float %1152, %1155
  br i1 %1156, label %1157, label %1183

1157:                                             ; preds = %1147
  %1158 = load float, ptr %117, align 4, !tbaa !11
  %1159 = load float, ptr %100, align 4, !tbaa !11
  %1160 = fdiv float %1158, %1159
  store float %1160, ptr %76, align 4, !tbaa !11
  %1161 = load ptr, ptr %37, align 8, !tbaa !5
  %1162 = load ptr, ptr %39, align 8, !tbaa !5
  %1163 = load i32, ptr %84, align 4, !tbaa !9
  %1164 = load i32, ptr %62, align 4, !tbaa !9
  %1165 = mul nsw i32 %1163, %1164
  %1166 = add nsw i32 %1165, 1
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds float, ptr %1162, i64 %1167
  %1169 = load ptr, ptr %37, align 8, !tbaa !5
  %1170 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %86, ptr noundef %76, ptr noundef %1161, ptr noundef @c__1, ptr noundef %1168, ptr noundef %1169, ptr noundef %81)
  %1171 = load float, ptr %86, align 4, !tbaa !11
  %1172 = fneg float %1171
  %1173 = load float, ptr %100, align 4, !tbaa !11
  %1174 = load ptr, ptr %37, align 8, !tbaa !5
  %1175 = load i32, ptr %1174, align 4, !tbaa !9
  %1176 = sitofp i32 %1175 to float
  %1177 = fdiv float %1173, %1176
  %1178 = fmul float %1172, %1177
  %1179 = load ptr, ptr %57, align 8, !tbaa !5
  %1180 = load i32, ptr %84, align 4, !tbaa !9
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds float, ptr %1179, i64 %1181
  store float %1178, ptr %1182, align 4, !tbaa !11
  br label %1205

1183:                                             ; preds = %1147
  %1184 = load float, ptr %86, align 4, !tbaa !11
  %1185 = load float, ptr %100, align 4, !tbaa !11
  %1186 = fmul float %1184, %1185
  %1187 = load ptr, ptr %57, align 8, !tbaa !5
  %1188 = load i32, ptr %84, align 4, !tbaa !9
  %1189 = sext i32 %1188 to i64
  %1190 = getelementptr inbounds float, ptr %1187, i64 %1189
  store float %1186, ptr %1190, align 4, !tbaa !11
  %1191 = load ptr, ptr %57, align 8, !tbaa !5
  %1192 = load i32, ptr %84, align 4, !tbaa !9
  %1193 = sext i32 %1192 to i64
  %1194 = getelementptr inbounds float, ptr %1191, i64 %1193
  %1195 = load ptr, ptr %37, align 8, !tbaa !5
  %1196 = load ptr, ptr %39, align 8, !tbaa !5
  %1197 = load i32, ptr %84, align 4, !tbaa !9
  %1198 = load i32, ptr %62, align 4, !tbaa !9
  %1199 = mul nsw i32 %1197, %1198
  %1200 = add nsw i32 %1199, 1
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds float, ptr %1196, i64 %1201
  %1203 = load ptr, ptr %37, align 8, !tbaa !5
  %1204 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %1194, ptr noundef %117, ptr noundef %1195, ptr noundef @c__1, ptr noundef %1202, ptr noundef %1203, ptr noundef %81)
  br label %1205

1205:                                             ; preds = %1183, %1157
  br label %1215

1206:                                             ; preds = %1143, %1139
  %1207 = load float, ptr %78, align 4, !tbaa !11
  %1208 = load ptr, ptr %57, align 8, !tbaa !5
  %1209 = load i32, ptr %84, align 4, !tbaa !9
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds float, ptr %1208, i64 %1210
  store float %1207, ptr %1211, align 4, !tbaa !11
  %1212 = load ptr, ptr %45, align 8, !tbaa !5
  %1213 = load i32, ptr %1212, align 4, !tbaa !9
  %1214 = add nsw i32 %1213, 1
  store i32 %1214, ptr %1212, align 4, !tbaa !9
  br label %1215

1215:                                             ; preds = %1206, %1205
  br label %1216

1216:                                             ; preds = %1215
  %1217 = load i32, ptr %84, align 4, !tbaa !9
  %1218 = add nsw i32 %1217, 1
  store i32 %1218, ptr %84, align 4, !tbaa !9
  br label %1112, !llvm.loop !14

1219:                                             ; preds = %1112
  %1220 = load ptr, ptr %45, align 8, !tbaa !5
  %1221 = load i32, ptr %1220, align 4, !tbaa !9
  %1222 = load ptr, ptr %38, align 8, !tbaa !5
  %1223 = load i32, ptr %1222, align 4, !tbaa !9
  %1224 = icmp eq i32 %1221, %1223
  br i1 %1224, label %1225, label %1232

1225:                                             ; preds = %1219
  %1226 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %1226, align 4, !tbaa !9
  %1227 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -8, ptr %1227, align 4, !tbaa !9
  %1228 = load ptr, ptr %61, align 8, !tbaa !5
  %1229 = load i32, ptr %1228, align 4, !tbaa !9
  %1230 = sub nsw i32 0, %1229
  store i32 %1230, ptr %74, align 4, !tbaa !9
  %1231 = 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 %2527

1232:                                             ; preds = %1219
  %1233 = load ptr, ptr %38, align 8, !tbaa !5
  %1234 = load i32, ptr %1233, align 4, !tbaa !9
  store i32 %1234, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1235

1235:                                             ; preds = %1332, %1232
  %1236 = load i32, ptr %84, align 4, !tbaa !9
  %1237 = load i32, ptr %74, align 4, !tbaa !9
  %1238 = icmp sle i32 %1236, %1237
  br i1 %1238, label %1239, label %1335

1239:                                             ; preds = %1235
  %1240 = load ptr, ptr %57, align 8, !tbaa !5
  %1241 = load i32, ptr %84, align 4, !tbaa !9
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds float, ptr %1240, i64 %1242
  %1244 = load float, ptr %1243, align 4, !tbaa !11
  %1245 = load float, ptr %78, align 4, !tbaa !11
  %1246 = fcmp ogt float %1244, %1245
  br i1 %1246, label %1247, label %1264

1247:                                             ; preds = %1239
  %1248 = load float, ptr %117, align 4, !tbaa !11
  %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 float, ptr %1249, i64 %1251
  %1253 = load float, ptr %1252, align 4, !tbaa !11
  %1254 = fdiv float %1248, %1253
  store float %1254, ptr %76, align 4, !tbaa !11
  %1255 = load ptr, ptr %37, align 8, !tbaa !5
  %1256 = load ptr, ptr %41, align 8, !tbaa !5
  %1257 = load i32, ptr %84, align 4, !tbaa !9
  %1258 = load i32, ptr %64, align 4, !tbaa !9
  %1259 = mul nsw i32 %1257, %1258
  %1260 = add nsw i32 %1259, 1
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds float, ptr %1256, i64 %1261
  %1263 = call i32 @sscal_(ptr noundef %1255, ptr noundef %76, ptr noundef %1262, ptr noundef @c__1)
  br label %1331

1264:                                             ; preds = %1239
  %1265 = load ptr, ptr %57, align 8, !tbaa !5
  %1266 = load i32, ptr %84, align 4, !tbaa !9
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds float, ptr %1265, i64 %1267
  %1269 = load float, ptr %1268, align 4, !tbaa !11
  %1270 = load float, ptr %78, align 4, !tbaa !11
  %1271 = fcmp olt float %1269, %1270
  br i1 %1271, label %1272, label %1294

1272:                                             ; preds = %1264
  %1273 = load ptr, ptr %57, align 8, !tbaa !5
  %1274 = load i32, ptr %84, align 4, !tbaa !9
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr inbounds float, ptr %1273, i64 %1275
  %1277 = load float, ptr %1276, align 4, !tbaa !11
  %1278 = fneg float %1277
  store float %1278, ptr %76, align 4, !tbaa !11
  %1279 = load float, ptr %117, align 4, !tbaa !11
  %1280 = load ptr, ptr %37, align 8, !tbaa !5
  %1281 = load i32, ptr %1280, align 4, !tbaa !9
  %1282 = sitofp i32 %1281 to float
  %1283 = fdiv float %1279, %1282
  store float %1283, ptr %77, align 4, !tbaa !11
  %1284 = load ptr, ptr %37, align 8, !tbaa !5
  %1285 = load ptr, ptr %41, align 8, !tbaa !5
  %1286 = load i32, ptr %84, align 4, !tbaa !9
  %1287 = load i32, ptr %64, align 4, !tbaa !9
  %1288 = mul nsw i32 %1286, %1287
  %1289 = add nsw i32 %1288, 1
  %1290 = sext i32 %1289 to i64
  %1291 = getelementptr inbounds float, ptr %1285, i64 %1290
  %1292 = load ptr, ptr %37, align 8, !tbaa !5
  %1293 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %77, ptr noundef %1284, ptr noundef @c__1, ptr noundef %1291, ptr noundef %1292, ptr noundef %81)
  br label %1330

1294:                                             ; preds = %1264
  %1295 = load ptr, ptr %41, align 8, !tbaa !5
  %1296 = load ptr, ptr %37, align 8, !tbaa !5
  %1297 = load ptr, ptr %41, align 8, !tbaa !5
  %1298 = load i32, ptr %84, align 4, !tbaa !9
  %1299 = load i32, ptr %64, align 4, !tbaa !9
  %1300 = mul nsw i32 %1298, %1299
  %1301 = add nsw i32 %1300, 1
  %1302 = sext i32 %1301 to i64
  %1303 = getelementptr inbounds float, ptr %1297, i64 %1302
  %1304 = call i32 @isamax_(ptr noundef %1296, ptr noundef %1303, ptr noundef @c__1)
  %1305 = load i32, ptr %84, align 4, !tbaa !9
  %1306 = load i32, ptr %64, align 4, !tbaa !9
  %1307 = mul nsw i32 %1305, %1306
  %1308 = add nsw i32 %1304, %1307
  %1309 = sext i32 %1308 to i64
  %1310 = getelementptr inbounds float, ptr %1295, i64 %1309
  %1311 = load float, ptr %1310, align 4, !tbaa !11
  %1312 = load float, ptr %78, align 4, !tbaa !11
  %1313 = fcmp une float %1311, %1312
  br i1 %1313, label %1314, label %1329

1314:                                             ; preds = %1294
  store i32 1, ptr %87, align 4, !tbaa !9
  %1315 = load ptr, ptr %32, align 8, !tbaa !5
  %1316 = call i32 @lsame_(ptr noundef %1315, ptr noundef @.str.2)
  %1317 = icmp ne i32 %1316, 0
  br i1 %1317, label %1318, label %1328

1318:                                             ; preds = %1314
  %1319 = load ptr, ptr %37, align 8, !tbaa !5
  %1320 = load ptr, ptr %41, align 8, !tbaa !5
  %1321 = load i32, ptr %84, align 4, !tbaa !9
  %1322 = load i32, ptr %64, align 4, !tbaa !9
  %1323 = mul nsw i32 %1321, %1322
  %1324 = add nsw i32 %1323, 1
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds float, ptr %1320, i64 %1325
  %1327 = call i32 @sscal_(ptr noundef %1319, ptr noundef %78, ptr noundef %1326, ptr noundef @c__1)
  br label %1328

1328:                                             ; preds = %1318, %1314
  br label %1329

1329:                                             ; preds = %1328, %1294
  br label %1330

1330:                                             ; preds = %1329, %1272
  br label %1331

1331:                                             ; preds = %1330, %1247
  br label %1332

1332:                                             ; preds = %1331
  %1333 = load i32, ptr %84, align 4, !tbaa !9
  %1334 = add nsw i32 %1333, 1
  store i32 %1334, ptr %84, align 4, !tbaa !9
  br label %1235, !llvm.loop !16

1335:                                             ; preds = %1235
  br label %1336

1336:                                             ; preds = %1335, %1103
  %1337 = load i32, ptr %94, align 4, !tbaa !9
  %1338 = icmp ne i32 %1337, 0
  br i1 %1338, label %1339, label %1536

1339:                                             ; preds = %1336
  %1340 = load ptr, ptr %38, align 8, !tbaa !5
  %1341 = load i32, ptr %1340, align 4, !tbaa !9
  store i32 %1341, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1342

1342:                                             ; preds = %1443, %1339
  %1343 = load i32, ptr %84, align 4, !tbaa !9
  %1344 = load i32, ptr %74, align 4, !tbaa !9
  %1345 = icmp sle i32 %1343, %1344
  br i1 %1345, label %1346, label %1446

1346:                                             ; preds = %1342
  %1347 = load float, ptr %78, align 4, !tbaa !11
  store float %1347, ptr %86, align 4, !tbaa !11
  %1348 = load ptr, ptr %37, align 8, !tbaa !5
  %1349 = load ptr, ptr %41, align 8, !tbaa !5
  %1350 = load i32, ptr %84, align 4, !tbaa !9
  %1351 = load i32, ptr %64, align 4, !tbaa !9
  %1352 = mul nsw i32 %1350, %1351
  %1353 = add nsw i32 %1352, 1
  %1354 = sext i32 %1353 to i64
  %1355 = getelementptr inbounds float, ptr %1349, i64 %1354
  %1356 = call i32 @slassq_(ptr noundef %1348, ptr noundef %1355, ptr noundef @c__1, ptr noundef %86, ptr noundef %79)
  %1357 = call i32 @sisnan_(ptr noundef %86)
  %1358 = icmp ne i32 %1357, 0
  br i1 %1358, label %1362, label %1359

1359:                                             ; preds = %1346
  %1360 = call i32 @sisnan_(ptr noundef %79)
  %1361 = icmp ne i32 %1360, 0
  br i1 %1361, label %1362, label %1369

1362:                                             ; preds = %1359, %1346
  %1363 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %1363, align 4, !tbaa !9
  %1364 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -10, ptr %1364, align 4, !tbaa !9
  %1365 = load ptr, ptr %61, align 8, !tbaa !5
  %1366 = load i32, ptr %1365, align 4, !tbaa !9
  %1367 = sub nsw i32 0, %1366
  store i32 %1367, ptr %75, align 4, !tbaa !9
  %1368 = call i32 @xerbla_(ptr noundef @.str.11, ptr noundef %75)
  br label %1369

1369:                                             ; preds = %1362, %1359
  %1370 = load float, ptr %86, align 4, !tbaa !11
  %1371 = load float, ptr %78, align 4, !tbaa !11
  %1372 = fcmp une float %1370, %1371
  br i1 %1372, label %1373, label %1436

1373:                                             ; preds = %1369
  %1374 = load float, ptr %79, align 4, !tbaa !11
  %1375 = load float, ptr %78, align 4, !tbaa !11
  %1376 = fcmp une float %1374, %1375
  br i1 %1376, label %1377, label %1436

1377:                                             ; preds = %1373
  %1378 = load float, ptr %79, align 4, !tbaa !11
  %1379 = fpext float %1378 to double
  %1380 = call double @sqrt(double noundef %1379) #4
  %1381 = fptrunc double %1380 to float
  store float %1381, ptr %100, align 4, !tbaa !11
  %1382 = load float, ptr %86, align 4, !tbaa !11
  %1383 = load float, ptr %116, align 4, !tbaa !11
  %1384 = load float, ptr %100, align 4, !tbaa !11
  %1385 = fdiv float %1383, %1384
  %1386 = fcmp oge float %1382, %1385
  br i1 %1386, label %1387, label %1413

1387:                                             ; preds = %1377
  %1388 = load float, ptr %117, align 4, !tbaa !11
  %1389 = load float, ptr %100, align 4, !tbaa !11
  %1390 = fdiv float %1388, %1389
  store float %1390, ptr %76, align 4, !tbaa !11
  %1391 = load ptr, ptr %37, align 8, !tbaa !5
  %1392 = load ptr, ptr %41, align 8, !tbaa !5
  %1393 = load i32, ptr %84, align 4, !tbaa !9
  %1394 = load i32, ptr %64, align 4, !tbaa !9
  %1395 = mul nsw i32 %1393, %1394
  %1396 = add nsw i32 %1395, 1
  %1397 = sext i32 %1396 to i64
  %1398 = getelementptr inbounds float, ptr %1392, i64 %1397
  %1399 = load ptr, ptr %37, align 8, !tbaa !5
  %1400 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %86, ptr noundef %76, ptr noundef %1391, ptr noundef @c__1, ptr noundef %1398, ptr noundef %1399, ptr noundef %81)
  %1401 = load float, ptr %86, align 4, !tbaa !11
  %1402 = fneg float %1401
  %1403 = load float, ptr %100, align 4, !tbaa !11
  %1404 = load ptr, ptr %37, align 8, !tbaa !5
  %1405 = load i32, ptr %1404, align 4, !tbaa !9
  %1406 = sitofp i32 %1405 to float
  %1407 = fdiv float %1403, %1406
  %1408 = fmul float %1402, %1407
  %1409 = load ptr, ptr %57, align 8, !tbaa !5
  %1410 = load i32, ptr %84, align 4, !tbaa !9
  %1411 = sext i32 %1410 to i64
  %1412 = getelementptr inbounds float, ptr %1409, i64 %1411
  store float %1408, ptr %1412, align 4, !tbaa !11
  br label %1435

1413:                                             ; preds = %1377
  %1414 = load float, ptr %86, align 4, !tbaa !11
  %1415 = load float, ptr %100, align 4, !tbaa !11
  %1416 = fmul float %1414, %1415
  %1417 = load ptr, ptr %57, align 8, !tbaa !5
  %1418 = load i32, ptr %84, align 4, !tbaa !9
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds float, ptr %1417, i64 %1419
  store float %1416, ptr %1420, align 4, !tbaa !11
  %1421 = load ptr, ptr %57, align 8, !tbaa !5
  %1422 = load i32, ptr %84, align 4, !tbaa !9
  %1423 = sext i32 %1422 to i64
  %1424 = getelementptr inbounds float, ptr %1421, i64 %1423
  %1425 = load ptr, ptr %37, align 8, !tbaa !5
  %1426 = load ptr, ptr %41, align 8, !tbaa !5
  %1427 = load i32, ptr %84, align 4, !tbaa !9
  %1428 = load i32, ptr %64, align 4, !tbaa !9
  %1429 = mul nsw i32 %1427, %1428
  %1430 = add nsw i32 %1429, 1
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds float, ptr %1426, i64 %1431
  %1433 = load ptr, ptr %37, align 8, !tbaa !5
  %1434 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %1424, ptr noundef %117, ptr noundef %1425, ptr noundef @c__1, ptr noundef %1432, ptr noundef %1433, ptr noundef %81)
  br label %1435

1435:                                             ; preds = %1413, %1387
  br label %1442

1436:                                             ; preds = %1373, %1369
  %1437 = load float, ptr %78, align 4, !tbaa !11
  %1438 = load ptr, ptr %57, align 8, !tbaa !5
  %1439 = load i32, ptr %84, align 4, !tbaa !9
  %1440 = sext i32 %1439 to i64
  %1441 = getelementptr inbounds float, ptr %1438, i64 %1440
  store float %1437, ptr %1441, align 4, !tbaa !11
  br label %1442

1442:                                             ; preds = %1436, %1435
  br label %1443

1443:                                             ; preds = %1442
  %1444 = load i32, ptr %84, align 4, !tbaa !9
  %1445 = add nsw i32 %1444, 1
  store i32 %1445, ptr %84, align 4, !tbaa !9
  br label %1342, !llvm.loop !17

1446:                                             ; preds = %1342
  %1447 = load ptr, ptr %38, align 8, !tbaa !5
  %1448 = load i32, ptr %1447, align 4, !tbaa !9
  store i32 %1448, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1449

1449:                                             ; preds = %1532, %1446
  %1450 = load i32, ptr %84, align 4, !tbaa !9
  %1451 = load i32, ptr %74, align 4, !tbaa !9
  %1452 = icmp sle i32 %1450, %1451
  br i1 %1452, label %1453, label %1535

1453:                                             ; preds = %1449
  %1454 = load ptr, ptr %57, align 8, !tbaa !5
  %1455 = load i32, ptr %84, align 4, !tbaa !9
  %1456 = sext i32 %1455 to i64
  %1457 = getelementptr inbounds float, ptr %1454, i64 %1456
  %1458 = load float, ptr %1457, align 4, !tbaa !11
  %1459 = load float, ptr %78, align 4, !tbaa !11
  %1460 = fcmp ogt float %1458, %1459
  br i1 %1460, label %1461, label %1478

1461:                                             ; preds = %1453
  %1462 = load float, ptr %117, align 4, !tbaa !11
  %1463 = load ptr, ptr %57, align 8, !tbaa !5
  %1464 = load i32, ptr %84, align 4, !tbaa !9
  %1465 = sext i32 %1464 to i64
  %1466 = getelementptr inbounds float, ptr %1463, i64 %1465
  %1467 = load float, ptr %1466, align 4, !tbaa !11
  %1468 = fdiv float %1462, %1467
  store float %1468, ptr %76, align 4, !tbaa !11
  %1469 = load ptr, ptr %37, align 8, !tbaa !5
  %1470 = load ptr, ptr %39, align 8, !tbaa !5
  %1471 = load i32, ptr %84, align 4, !tbaa !9
  %1472 = load i32, ptr %62, align 4, !tbaa !9
  %1473 = mul nsw i32 %1471, %1472
  %1474 = add nsw i32 %1473, 1
  %1475 = sext i32 %1474 to i64
  %1476 = getelementptr inbounds float, ptr %1470, i64 %1475
  %1477 = call i32 @sscal_(ptr noundef %1469, ptr noundef %76, ptr noundef %1476, ptr noundef @c__1)
  br label %1531

1478:                                             ; preds = %1453
  %1479 = load ptr, ptr %57, align 8, !tbaa !5
  %1480 = load i32, ptr %84, align 4, !tbaa !9
  %1481 = sext i32 %1480 to i64
  %1482 = getelementptr inbounds float, ptr %1479, i64 %1481
  %1483 = load float, ptr %1482, align 4, !tbaa !11
  %1484 = load float, ptr %78, align 4, !tbaa !11
  %1485 = fcmp olt float %1483, %1484
  br i1 %1485, label %1486, label %1508

1486:                                             ; preds = %1478
  %1487 = load ptr, ptr %57, align 8, !tbaa !5
  %1488 = load i32, ptr %84, align 4, !tbaa !9
  %1489 = sext i32 %1488 to i64
  %1490 = getelementptr inbounds float, ptr %1487, i64 %1489
  %1491 = load float, ptr %1490, align 4, !tbaa !11
  %1492 = fneg float %1491
  store float %1492, ptr %76, align 4, !tbaa !11
  %1493 = load float, ptr %117, align 4, !tbaa !11
  %1494 = load ptr, ptr %37, align 8, !tbaa !5
  %1495 = load i32, ptr %1494, align 4, !tbaa !9
  %1496 = sitofp i32 %1495 to float
  %1497 = fdiv float %1493, %1496
  store float %1497, ptr %77, align 4, !tbaa !11
  %1498 = load ptr, ptr %37, align 8, !tbaa !5
  %1499 = load ptr, ptr %39, align 8, !tbaa !5
  %1500 = load i32, ptr %84, align 4, !tbaa !9
  %1501 = load i32, ptr %62, align 4, !tbaa !9
  %1502 = mul nsw i32 %1500, %1501
  %1503 = add nsw i32 %1502, 1
  %1504 = sext i32 %1503 to i64
  %1505 = getelementptr inbounds float, ptr %1499, i64 %1504
  %1506 = load ptr, ptr %37, align 8, !tbaa !5
  %1507 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %77, ptr noundef %1498, ptr noundef @c__1, ptr noundef %1505, ptr noundef %1506, ptr noundef %81)
  br label %1530

1508:                                             ; preds = %1478
  %1509 = load ptr, ptr %39, align 8, !tbaa !5
  %1510 = load ptr, ptr %37, align 8, !tbaa !5
  %1511 = load ptr, ptr %39, align 8, !tbaa !5
  %1512 = load i32, ptr %84, align 4, !tbaa !9
  %1513 = load i32, ptr %62, align 4, !tbaa !9
  %1514 = mul nsw i32 %1512, %1513
  %1515 = add nsw i32 %1514, 1
  %1516 = sext i32 %1515 to i64
  %1517 = getelementptr inbounds float, ptr %1511, i64 %1516
  %1518 = call i32 @isamax_(ptr noundef %1510, ptr noundef %1517, ptr noundef @c__1)
  %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 %1518, %1521
  %1523 = sext i32 %1522 to i64
  %1524 = getelementptr inbounds float, ptr %1509, i64 %1523
  %1525 = load float, ptr %1524, align 4, !tbaa !11
  %1526 = load float, ptr %78, align 4, !tbaa !11
  %1527 = fcmp une float %1525, %1526
  br i1 %1527, label %1528, label %1529

1528:                                             ; preds = %1508
  store i32 1, ptr %87, align 4, !tbaa !9
  br label %1529

1529:                                             ; preds = %1528, %1508
  br label %1530

1530:                                             ; preds = %1529, %1486
  br label %1531

1531:                                             ; preds = %1530, %1461
  br label %1532

1532:                                             ; preds = %1531
  %1533 = load i32, ptr %84, align 4, !tbaa !9
  %1534 = add nsw i32 %1533, 1
  store i32 %1534, ptr %84, align 4, !tbaa !9
  br label %1449, !llvm.loop !18

1535:                                             ; preds = %1449
  br label %1536

1536:                                             ; preds = %1535, %1336
  %1537 = load ptr, ptr %38, align 8, !tbaa !5
  %1538 = load i32, ptr %1537, align 4, !tbaa !9
  store i32 %1538, ptr %104, align 4, !tbaa !9
  %1539 = load ptr, ptr %36, align 8, !tbaa !5
  %1540 = load i32, ptr %1539, align 4, !tbaa !9
  %1541 = icmp eq i32 %1540, 1
  br i1 %1541, label %1542, label %1575

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

1575:                                             ; preds = %1536
  %1576 = load ptr, ptr %36, align 8, !tbaa !5
  %1577 = load i32, ptr %1576, align 4, !tbaa !9
  %1578 = icmp eq i32 %1577, 2
  br i1 %1578, label %1579, label %1614

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

1614:                                             ; preds = %1575
  %1615 = load ptr, ptr %36, align 8, !tbaa !5
  %1616 = load i32, ptr %1615, align 4, !tbaa !9
  %1617 = icmp eq i32 %1616, 3
  br i1 %1617, label %1618, label %1701

1618:                                             ; preds = %1614
  %1619 = load ptr, ptr %58, align 8, !tbaa !5
  %1620 = load i32, ptr %1619, align 4, !tbaa !9
  %1621 = load ptr, ptr %38, align 8, !tbaa !5
  %1622 = load i32, ptr %1621, align 4, !tbaa !9
  %1623 = sub nsw i32 %1620, %1622
  %1624 = load ptr, ptr %37, align 8, !tbaa !5
  %1625 = load i32, ptr %1624, align 4, !tbaa !9
  %1626 = icmp sge i32 2, %1625
  br i1 %1626, label %1627, label %1628

1627:                                             ; preds = %1618
  br label %1631

1628:                                             ; preds = %1618
  %1629 = load ptr, ptr %37, align 8, !tbaa !5
  %1630 = load i32, ptr %1629, align 4, !tbaa !9
  br label %1631

1631:                                             ; preds = %1628, %1627
  %1632 = phi i32 [ 2, %1627 ], [ %1630, %1628 ]
  %1633 = sub nsw i32 %1623, %1632
  store i32 %1633, ptr %74, align 4, !tbaa !9
  %1634 = load ptr, ptr %37, align 8, !tbaa !5
  %1635 = load i32, ptr %1634, align 4, !tbaa !9
  %1636 = icmp sge i32 2, %1635
  br i1 %1636, label %1637, label %1638

1637:                                             ; preds = %1631
  br label %1641

1638:                                             ; preds = %1631
  %1639 = load ptr, ptr %37, align 8, !tbaa !5
  %1640 = load i32, ptr %1639, align 4, !tbaa !9
  br label %1641

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

1671:                                             ; preds = %1641
  br label %1675

1672:                                             ; preds = %1641
  %1673 = load ptr, ptr %37, align 8, !tbaa !5
  %1674 = load i32, ptr %1673, align 4, !tbaa !9
  br label %1675

1675:                                             ; preds = %1672, %1671
  %1676 = phi i32 [ 2, %1671 ], [ %1674, %1672 ]
  %1677 = add nsw i32 %1667, %1676
  %1678 = add nsw i32 %1677, 1
  %1679 = sext i32 %1678 to i64
  %1680 = getelementptr inbounds float, ptr %1665, i64 %1679
  %1681 = load ptr, ptr %57, align 8, !tbaa !5
  %1682 = load ptr, ptr %38, align 8, !tbaa !5
  %1683 = load i32, ptr %1682, align 4, !tbaa !9
  %1684 = add nsw i32 %1683, 1
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds float, ptr %1681, i64 %1685
  %1687 = call i32 @sgesvdq_(ptr noundef @.str.9, ptr noundef @.str.10, ptr noundef @.str.6, ptr noundef @.str, ptr noundef @.str, ptr noundef %1643, ptr noundef %1644, ptr noundef %1648, ptr noundef %1649, ptr noundef %1651, ptr noundef %1655, ptr noundef %1656, ptr noundef %1660, ptr noundef %1661, ptr noundef %104, ptr noundef %1663, ptr noundef %1664, ptr noundef %1680, ptr noundef %74, ptr noundef %1686, ptr noundef %75, ptr noundef %80)
  %1688 = load ptr, ptr %37, align 8, !tbaa !5
  %1689 = load ptr, ptr %48, align 8, !tbaa !5
  %1690 = load i32, ptr %67, align 4, !tbaa !9
  %1691 = sext i32 %1690 to i64
  %1692 = getelementptr inbounds float, ptr %1689, i64 %1691
  %1693 = load ptr, ptr %49, align 8, !tbaa !5
  %1694 = load ptr, ptr %39, align 8, !tbaa !5
  %1695 = load i32, ptr %63, align 4, !tbaa !9
  %1696 = sext i32 %1695 to i64
  %1697 = getelementptr inbounds float, ptr %1694, i64 %1696
  %1698 = load ptr, ptr %40, align 8, !tbaa !5
  %1699 = call i32 @slacpy_(ptr noundef @.str.13, ptr noundef %1688, ptr noundef %104, ptr noundef %1692, ptr noundef %1693, ptr noundef %1697, ptr noundef %1698)
  %1700 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  store i8 84, ptr %1700, align 1, !tbaa !13
  br label %1782

1701:                                             ; preds = %1614
  %1702 = load ptr, ptr %36, align 8, !tbaa !5
  %1703 = load i32, ptr %1702, align 4, !tbaa !9
  %1704 = icmp eq i32 %1703, 4
  br i1 %1704, label %1705, label %1781

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

1771:                                             ; preds = %1705
  %1772 = load ptr, ptr %37, align 8, !tbaa !5
  %1773 = load ptr, ptr %38, align 8, !tbaa !5
  %1774 = load ptr, ptr %41, align 8, !tbaa !5
  %1775 = load i32, ptr %65, align 4, !tbaa !9
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds float, ptr %1774, i64 %1776
  %1778 = load ptr, ptr %42, align 8, !tbaa !5
  %1779 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %82, ptr noundef %83, ptr noundef %1772, ptr noundef %1773, ptr noundef %1777, ptr noundef %1778, ptr noundef %81)
  br label %1780

1780:                                             ; preds = %1771, %1705
  br label %1781

1781:                                             ; preds = %1780, %1701
  br label %1782

1782:                                             ; preds = %1781, %1675
  br label %1783

1783:                                             ; preds = %1782, %1579
  br label %1784

1784:                                             ; preds = %1783, %1542
  %1785 = load i32, ptr %80, align 4, !tbaa !9
  %1786 = icmp sgt i32 %1785, 0
  br i1 %1786, label %1787, label %1789

1787:                                             ; preds = %1784
  %1788 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 2, ptr %1788, align 4, !tbaa !9
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2527

1789:                                             ; preds = %1784
  %1790 = load ptr, ptr %57, align 8, !tbaa !5
  %1791 = getelementptr inbounds float, ptr %1790, i64 1
  %1792 = load float, ptr %1791, align 4, !tbaa !11
  %1793 = load float, ptr %78, align 4, !tbaa !11
  %1794 = fcmp oeq float %1792, %1793
  br i1 %1794, label %1795, label %1802

1795:                                             ; preds = %1789
  %1796 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %1796, align 4, !tbaa !9
  %1797 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 -8, ptr %1797, align 4, !tbaa !9
  %1798 = load ptr, ptr %61, align 8, !tbaa !5
  %1799 = load i32, ptr %1798, align 4, !tbaa !9
  %1800 = sub nsw i32 0, %1799
  store i32 %1800, ptr %74, align 4, !tbaa !9
  %1801 = 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 %2527

1802:                                             ; preds = %1789
  %1803 = load ptr, ptr %43, align 8, !tbaa !5
  %1804 = load i32, ptr %1803, align 4, !tbaa !9
  %1805 = icmp eq i32 %1804, -1
  br i1 %1805, label %1806, label %1843

1806:                                             ; preds = %1802
  %1807 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 1, ptr %1807, align 4, !tbaa !9
  %1808 = load i32, ptr %104, align 4, !tbaa !9
  store i32 %1808, ptr %74, align 4, !tbaa !9
  store i32 2, ptr %84, align 4, !tbaa !9
  br label %1809

1809:                                             ; preds = %1839, %1806
  %1810 = load i32, ptr %84, align 4, !tbaa !9
  %1811 = load i32, ptr %74, align 4, !tbaa !9
  %1812 = icmp sle i32 %1810, %1811
  br i1 %1812, label %1813, label %1842

1813:                                             ; preds = %1809
  %1814 = load ptr, ptr %57, align 8, !tbaa !5
  %1815 = load i32, ptr %84, align 4, !tbaa !9
  %1816 = sext i32 %1815 to i64
  %1817 = getelementptr inbounds float, ptr %1814, i64 %1816
  %1818 = load float, ptr %1817, align 4, !tbaa !11
  %1819 = load ptr, ptr %57, align 8, !tbaa !5
  %1820 = getelementptr inbounds float, ptr %1819, i64 1
  %1821 = load float, ptr %1820, align 4, !tbaa !11
  %1822 = load ptr, ptr %44, align 8, !tbaa !5
  %1823 = load float, ptr %1822, align 4, !tbaa !11
  %1824 = fmul float %1821, %1823
  %1825 = fcmp ole float %1818, %1824
  br i1 %1825, label %1834, label %1826

1826:                                             ; preds = %1813
  %1827 = load ptr, ptr %57, align 8, !tbaa !5
  %1828 = load i32, ptr %84, align 4, !tbaa !9
  %1829 = sext i32 %1828 to i64
  %1830 = getelementptr inbounds float, ptr %1827, i64 %1829
  %1831 = load float, ptr %1830, align 4, !tbaa !11
  %1832 = load float, ptr %88, align 4, !tbaa !11
  %1833 = fcmp ole float %1831, %1832
  br i1 %1833, label %1834, label %1835

1834:                                             ; preds = %1826, %1813
  br label %1842

1835:                                             ; preds = %1826
  %1836 = load ptr, ptr %45, align 8, !tbaa !5
  %1837 = load i32, ptr %1836, align 4, !tbaa !9
  %1838 = add nsw i32 %1837, 1
  store i32 %1838, ptr %1836, align 4, !tbaa !9
  br label %1839

1839:                                             ; preds = %1835
  %1840 = load i32, ptr %84, align 4, !tbaa !9
  %1841 = add nsw i32 %1840, 1
  store i32 %1841, ptr %84, align 4, !tbaa !9
  br label %1809, !llvm.loop !19

1842:                                             ; preds = %1834, %1809
  br label %1914

1843:                                             ; preds = %1802
  %1844 = load ptr, ptr %43, align 8, !tbaa !5
  %1845 = load i32, ptr %1844, align 4, !tbaa !9
  %1846 = icmp eq i32 %1845, -2
  br i1 %1846, label %1847, label %1888

1847:                                             ; preds = %1843
  %1848 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 1, ptr %1848, align 4, !tbaa !9
  %1849 = load i32, ptr %104, align 4, !tbaa !9
  %1850 = sub nsw i32 %1849, 1
  store i32 %1850, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1851

1851:                                             ; preds = %1884, %1847
  %1852 = load i32, ptr %84, align 4, !tbaa !9
  %1853 = load i32, ptr %74, align 4, !tbaa !9
  %1854 = icmp sle i32 %1852, %1853
  br i1 %1854, label %1855, label %1887

1855:                                             ; preds = %1851
  %1856 = load ptr, ptr %57, align 8, !tbaa !5
  %1857 = load i32, ptr %84, align 4, !tbaa !9
  %1858 = add nsw i32 %1857, 1
  %1859 = sext i32 %1858 to i64
  %1860 = getelementptr inbounds float, ptr %1856, i64 %1859
  %1861 = load float, ptr %1860, align 4, !tbaa !11
  %1862 = load ptr, ptr %57, align 8, !tbaa !5
  %1863 = load i32, ptr %84, align 4, !tbaa !9
  %1864 = sext i32 %1863 to i64
  %1865 = getelementptr inbounds float, ptr %1862, i64 %1864
  %1866 = load float, ptr %1865, align 4, !tbaa !11
  %1867 = load ptr, ptr %44, align 8, !tbaa !5
  %1868 = load float, ptr %1867, align 4, !tbaa !11
  %1869 = fmul float %1866, %1868
  %1870 = fcmp ole float %1861, %1869
  br i1 %1870, label %1879, label %1871

1871:                                             ; preds = %1855
  %1872 = load ptr, ptr %57, align 8, !tbaa !5
  %1873 = load i32, ptr %84, align 4, !tbaa !9
  %1874 = sext i32 %1873 to i64
  %1875 = getelementptr inbounds float, ptr %1872, i64 %1874
  %1876 = load float, ptr %1875, align 4, !tbaa !11
  %1877 = load float, ptr %88, align 4, !tbaa !11
  %1878 = fcmp ole float %1876, %1877
  br i1 %1878, label %1879, label %1880

1879:                                             ; preds = %1871, %1855
  br label %1887

1880:                                             ; preds = %1871
  %1881 = load ptr, ptr %45, align 8, !tbaa !5
  %1882 = load i32, ptr %1881, align 4, !tbaa !9
  %1883 = add nsw i32 %1882, 1
  store i32 %1883, ptr %1881, align 4, !tbaa !9
  br label %1884

1884:                                             ; preds = %1880
  %1885 = load i32, ptr %84, align 4, !tbaa !9
  %1886 = add nsw i32 %1885, 1
  store i32 %1886, ptr %84, align 4, !tbaa !9
  br label %1851, !llvm.loop !20

1887:                                             ; preds = %1879, %1851
  br label %1913

1888:                                             ; preds = %1843
  %1889 = load ptr, ptr %45, align 8, !tbaa !5
  store i32 1, ptr %1889, align 4, !tbaa !9
  %1890 = load ptr, ptr %43, align 8, !tbaa !5
  %1891 = load i32, ptr %1890, align 4, !tbaa !9
  store i32 %1891, ptr %74, align 4, !tbaa !9
  store i32 2, ptr %84, align 4, !tbaa !9
  br label %1892

1892:                                             ; preds = %1909, %1888
  %1893 = load i32, ptr %84, align 4, !tbaa !9
  %1894 = load i32, ptr %74, align 4, !tbaa !9
  %1895 = icmp sle i32 %1893, %1894
  br i1 %1895, label %1896, label %1912

1896:                                             ; preds = %1892
  %1897 = load ptr, ptr %57, align 8, !tbaa !5
  %1898 = load i32, ptr %84, align 4, !tbaa !9
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds float, ptr %1897, i64 %1899
  %1901 = load float, ptr %1900, align 4, !tbaa !11
  %1902 = load float, ptr %88, align 4, !tbaa !11
  %1903 = fcmp ole float %1901, %1902
  br i1 %1903, label %1904, label %1905

1904:                                             ; preds = %1896
  br label %1912

1905:                                             ; preds = %1896
  %1906 = load ptr, ptr %45, align 8, !tbaa !5
  %1907 = load i32, ptr %1906, align 4, !tbaa !9
  %1908 = add nsw i32 %1907, 1
  store i32 %1908, ptr %1906, align 4, !tbaa !9
  br label %1909

1909:                                             ; preds = %1905
  %1910 = load i32, ptr %84, align 4, !tbaa !9
  %1911 = add nsw i32 %1910, 1
  store i32 %1911, ptr %84, align 4, !tbaa !9
  br label %1892, !llvm.loop !21

1912:                                             ; preds = %1904, %1892
  br label %1913

1913:                                             ; preds = %1912, %1887
  br label %1914

1914:                                             ; preds = %1913, %1842
  %1915 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  %1916 = call i32 @lsame_(ptr noundef %1915, ptr noundef @.str.6)
  %1917 = icmp ne i32 %1916, 0
  br i1 %1917, label %1918, label %1946

1918:                                             ; preds = %1914
  %1919 = load ptr, ptr %45, align 8, !tbaa !5
  %1920 = load i32, ptr %1919, align 4, !tbaa !9
  store i32 %1920, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1921

1921:                                             ; preds = %1942, %1918
  %1922 = load i32, ptr %84, align 4, !tbaa !9
  %1923 = load i32, ptr %74, align 4, !tbaa !9
  %1924 = icmp sle i32 %1922, %1923
  br i1 %1924, label %1925, label %1945

1925:                                             ; preds = %1921
  %1926 = load float, ptr %117, align 4, !tbaa !11
  %1927 = load ptr, ptr %57, align 8, !tbaa !5
  %1928 = load i32, ptr %84, align 4, !tbaa !9
  %1929 = sext i32 %1928 to i64
  %1930 = getelementptr inbounds float, ptr %1927, i64 %1929
  %1931 = load float, ptr %1930, align 4, !tbaa !11
  %1932 = fdiv float %1926, %1931
  store float %1932, ptr %76, align 4, !tbaa !11
  %1933 = load ptr, ptr %38, align 8, !tbaa !5
  %1934 = load ptr, ptr %53, align 8, !tbaa !5
  %1935 = load i32, ptr %84, align 4, !tbaa !9
  %1936 = load i32, ptr %70, align 4, !tbaa !9
  %1937 = mul nsw i32 %1935, %1936
  %1938 = add nsw i32 %1937, 1
  %1939 = sext i32 %1938 to i64
  %1940 = getelementptr inbounds float, ptr %1934, i64 %1939
  %1941 = call i32 @sscal_(ptr noundef %1933, ptr noundef %76, ptr noundef %1940, ptr noundef @c__1)
  br label %1942

1942:                                             ; preds = %1925
  %1943 = load i32, ptr %84, align 4, !tbaa !9
  %1944 = add nsw i32 %1943, 1
  store i32 %1944, ptr %84, align 4, !tbaa !9
  br label %1921, !llvm.loop !22

1945:                                             ; preds = %1921
  br label %2020

1946:                                             ; preds = %1914
  %1947 = load ptr, ptr %45, align 8, !tbaa !5
  %1948 = load i32, ptr %1947, align 4, !tbaa !9
  store i32 %1948, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1949

1949:                                             ; preds = %1968, %1946
  %1950 = load i32, ptr %84, align 4, !tbaa !9
  %1951 = load i32, ptr %74, align 4, !tbaa !9
  %1952 = icmp sle i32 %1950, %1951
  br i1 %1952, label %1953, label %1971

1953:                                             ; preds = %1949
  %1954 = load float, ptr %117, align 4, !tbaa !11
  %1955 = load ptr, ptr %57, align 8, !tbaa !5
  %1956 = load i32, ptr %84, align 4, !tbaa !9
  %1957 = sext i32 %1956 to i64
  %1958 = getelementptr inbounds float, ptr %1955, i64 %1957
  %1959 = load float, ptr %1958, align 4, !tbaa !11
  %1960 = fdiv float %1954, %1959
  %1961 = load ptr, ptr %57, align 8, !tbaa !5
  %1962 = load ptr, ptr %38, align 8, !tbaa !5
  %1963 = load i32, ptr %1962, align 4, !tbaa !9
  %1964 = load i32, ptr %84, align 4, !tbaa !9
  %1965 = add nsw i32 %1963, %1964
  %1966 = sext i32 %1965 to i64
  %1967 = getelementptr inbounds float, ptr %1961, i64 %1966
  store float %1960, ptr %1967, align 4, !tbaa !11
  br label %1968

1968:                                             ; preds = %1953
  %1969 = load i32, ptr %84, align 4, !tbaa !9
  %1970 = add nsw i32 %1969, 1
  store i32 %1970, ptr %84, align 4, !tbaa !9
  br label %1949, !llvm.loop !23

1971:                                             ; preds = %1949
  %1972 = load ptr, ptr %38, align 8, !tbaa !5
  %1973 = load i32, ptr %1972, align 4, !tbaa !9
  store i32 %1973, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %85, align 4, !tbaa !9
  br label %1974

1974:                                             ; preds = %2016, %1971
  %1975 = load i32, ptr %85, align 4, !tbaa !9
  %1976 = load i32, ptr %74, align 4, !tbaa !9
  %1977 = icmp sle i32 %1975, %1976
  br i1 %1977, label %1978, label %2019

1978:                                             ; preds = %1974
  %1979 = load ptr, ptr %45, align 8, !tbaa !5
  %1980 = load i32, ptr %1979, align 4, !tbaa !9
  store i32 %1980, ptr %75, align 4, !tbaa !9
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1981

1981:                                             ; preds = %2012, %1978
  %1982 = load i32, ptr %84, align 4, !tbaa !9
  %1983 = load i32, ptr %75, align 4, !tbaa !9
  %1984 = icmp sle i32 %1982, %1983
  br i1 %1984, label %1985, label %2015

1985:                                             ; preds = %1981
  %1986 = load ptr, ptr %57, align 8, !tbaa !5
  %1987 = load ptr, ptr %38, align 8, !tbaa !5
  %1988 = load i32, ptr %1987, align 4, !tbaa !9
  %1989 = load i32, ptr %84, align 4, !tbaa !9
  %1990 = add nsw i32 %1988, %1989
  %1991 = sext i32 %1990 to i64
  %1992 = getelementptr inbounds float, ptr %1986, i64 %1991
  %1993 = load float, ptr %1992, align 4, !tbaa !11
  %1994 = load ptr, ptr %53, align 8, !tbaa !5
  %1995 = load i32, ptr %84, align 4, !tbaa !9
  %1996 = load i32, ptr %85, align 4, !tbaa !9
  %1997 = load i32, ptr %70, align 4, !tbaa !9
  %1998 = mul nsw i32 %1996, %1997
  %1999 = add nsw i32 %1995, %1998
  %2000 = sext i32 %1999 to i64
  %2001 = getelementptr inbounds float, ptr %1994, i64 %2000
  %2002 = load float, ptr %2001, align 4, !tbaa !11
  %2003 = fmul float %1993, %2002
  %2004 = load ptr, ptr %53, align 8, !tbaa !5
  %2005 = load i32, ptr %84, align 4, !tbaa !9
  %2006 = load i32, ptr %85, align 4, !tbaa !9
  %2007 = load i32, ptr %70, align 4, !tbaa !9
  %2008 = mul nsw i32 %2006, %2007
  %2009 = add nsw i32 %2005, %2008
  %2010 = sext i32 %2009 to i64
  %2011 = getelementptr inbounds float, ptr %2004, i64 %2010
  store float %2003, ptr %2011, align 4, !tbaa !11
  br label %2012

2012:                                             ; preds = %1985
  %2013 = load i32, ptr %84, align 4, !tbaa !9
  %2014 = add nsw i32 %2013, 1
  store i32 %2014, ptr %84, align 4, !tbaa !9
  br label %1981, !llvm.loop !24

2015:                                             ; preds = %1981
  br label %2016

2016:                                             ; preds = %2015
  %2017 = load i32, ptr %85, align 4, !tbaa !9
  %2018 = add nsw i32 %2017, 1
  store i32 %2018, ptr %85, align 4, !tbaa !9
  br label %1974, !llvm.loop !25

2019:                                             ; preds = %1974
  br label %2020

2020:                                             ; preds = %2019, %1945
  %2021 = load i32, ptr %98, align 4, !tbaa !9
  %2022 = icmp ne i32 %2021, 0
  br i1 %2022, label %2023, label %2076

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

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

2118:                                             ; preds = %2076
  %2119 = load i32, ptr %90, align 4, !tbaa !9
  %2120 = icmp ne i32 %2119, 0
  br i1 %2120, label %2121, label %2154

2121:                                             ; preds = %2118, %2076
  %2122 = getelementptr inbounds [1 x i8], ptr %92, i64 0, i64 0
  %2123 = call i32 @lsame_(ptr noundef %2122, ptr noundef @.str.6)
  %2124 = icmp ne i32 %2123, 0
  br i1 %2124, label %2125, label %2139

2125:                                             ; preds = %2121
  %2126 = load ptr, ptr %38, align 8, !tbaa !5
  %2127 = load ptr, ptr %45, align 8, !tbaa !5
  %2128 = load ptr, ptr %53, align 8, !tbaa !5
  %2129 = load i32, ptr %71, align 4, !tbaa !9
  %2130 = sext i32 %2129 to i64
  %2131 = getelementptr inbounds float, ptr %2128, i64 %2130
  %2132 = load ptr, ptr %54, align 8, !tbaa !5
  %2133 = load ptr, ptr %48, align 8, !tbaa !5
  %2134 = load i32, ptr %67, align 4, !tbaa !9
  %2135 = sext i32 %2134 to i64
  %2136 = getelementptr inbounds float, ptr %2133, i64 %2135
  %2137 = load ptr, ptr %49, align 8, !tbaa !5
  %2138 = call i32 @slacpy_(ptr noundef @.str.13, ptr noundef %2126, ptr noundef %2127, ptr noundef %2131, ptr noundef %2132, ptr noundef %2136, ptr noundef %2137)
  br label %2153

2139:                                             ; preds = %2121
  %2140 = load ptr, ptr %45, align 8, !tbaa !5
  %2141 = load ptr, ptr %38, align 8, !tbaa !5
  %2142 = load ptr, ptr %53, align 8, !tbaa !5
  %2143 = load i32, ptr %71, align 4, !tbaa !9
  %2144 = sext i32 %2143 to i64
  %2145 = getelementptr inbounds float, ptr %2142, i64 %2144
  %2146 = load ptr, ptr %54, align 8, !tbaa !5
  %2147 = load ptr, ptr %48, align 8, !tbaa !5
  %2148 = load i32, ptr %67, align 4, !tbaa !9
  %2149 = sext i32 %2148 to i64
  %2150 = getelementptr inbounds float, ptr %2147, i64 %2149
  %2151 = load ptr, ptr %49, align 8, !tbaa !5
  %2152 = call i32 @slacpy_(ptr noundef @.str.13, ptr noundef %2140, ptr noundef %2141, ptr noundef %2145, ptr noundef %2146, ptr noundef %2150, ptr noundef %2151)
  br label %2153

2153:                                             ; preds = %2139, %2125
  br label %2154

2154:                                             ; preds = %2153, %2118
  br label %2155

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

2191:                                             ; preds = %2155
  %2192 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 3, ptr %2192, align 4, !tbaa !9
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2527

2193:                                             ; preds = %2155
  %2194 = load i32, ptr %99, align 4, !tbaa !9
  %2195 = icmp ne i32 %2194, 0
  br i1 %2195, label %2199, label %2196

2196:                                             ; preds = %2193
  %2197 = load i32, ptr %90, align 4, !tbaa !9
  %2198 = icmp ne i32 %2197, 0
  br i1 %2198, label %2199, label %2500

2199:                                             ; preds = %2196, %2193
  %2200 = load i32, ptr %110, align 4, !tbaa !9
  %2201 = icmp ne i32 %2200, 0
  br i1 %2201, label %2202, label %2296

2202:                                             ; preds = %2199
  %2203 = load i32, ptr %98, align 4, !tbaa !9
  %2204 = icmp ne i32 %2203, 0
  br i1 %2204, label %2205, label %2225

2205:                                             ; preds = %2202
  %2206 = load ptr, ptr %37, align 8, !tbaa !5
  %2207 = load ptr, ptr %45, align 8, !tbaa !5
  %2208 = load ptr, ptr %45, align 8, !tbaa !5
  %2209 = load ptr, ptr %48, align 8, !tbaa !5
  %2210 = load i32, ptr %67, align 4, !tbaa !9
  %2211 = sext i32 %2210 to i64
  %2212 = getelementptr inbounds float, ptr %2209, i64 %2211
  %2213 = load ptr, ptr %49, align 8, !tbaa !5
  %2214 = load ptr, ptr %53, align 8, !tbaa !5
  %2215 = load i32, ptr %71, align 4, !tbaa !9
  %2216 = sext i32 %2215 to i64
  %2217 = getelementptr inbounds float, ptr %2214, i64 %2216
  %2218 = load ptr, ptr %54, align 8, !tbaa !5
  %2219 = load ptr, ptr %41, align 8, !tbaa !5
  %2220 = load i32, ptr %65, align 4, !tbaa !9
  %2221 = sext i32 %2220 to i64
  %2222 = getelementptr inbounds float, ptr %2219, i64 %2221
  %2223 = load ptr, ptr %42, align 8, !tbaa !5
  %2224 = call i32 @sgemm_(ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %2206, ptr noundef %2207, ptr noundef %2208, ptr noundef %117, ptr noundef %2212, ptr noundef %2213, ptr noundef %2217, ptr noundef %2218, ptr noundef %78, ptr noundef %2222, ptr noundef %2223)
  br label %2295

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

2280:                                             ; preds = %2225
  %2281 = load ptr, ptr %37, align 8, !tbaa !5
  %2282 = load ptr, ptr %45, align 8, !tbaa !5
  %2283 = load ptr, ptr %48, align 8, !tbaa !5
  %2284 = load i32, ptr %67, align 4, !tbaa !9
  %2285 = sext i32 %2284 to i64
  %2286 = getelementptr inbounds float, ptr %2283, i64 %2285
  %2287 = load ptr, ptr %49, align 8, !tbaa !5
  %2288 = load ptr, ptr %51, align 8, !tbaa !5
  %2289 = load i32, ptr %69, align 4, !tbaa !9
  %2290 = sext i32 %2289 to i64
  %2291 = getelementptr inbounds float, ptr %2288, i64 %2290
  %2292 = load ptr, ptr %52, align 8, !tbaa !5
  %2293 = call i32 @slacpy_(ptr noundef @.str.13, ptr noundef %2281, ptr noundef %2282, ptr noundef %2286, ptr noundef %2287, ptr noundef %2291, ptr noundef %2292)
  br label %2294

2294:                                             ; preds = %2280, %2225
  br label %2295

2295:                                             ; preds = %2294, %2205
  br label %2340

2296:                                             ; preds = %2199
  %2297 = load i32, ptr %90, align 4, !tbaa !9
  %2298 = icmp ne i32 %2297, 0
  br i1 %2298, label %2299, label %2339

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

2339:                                             ; preds = %2299, %2296
  br label %2340

2340:                                             ; preds = %2339, %2295
  %2341 = load i32, ptr %99, align 4, !tbaa !9
  %2342 = icmp ne i32 %2341, 0
  br i1 %2342, label %2343, label %2363

2343:                                             ; preds = %2340
  %2344 = load ptr, ptr %37, align 8, !tbaa !5
  %2345 = load ptr, ptr %45, align 8, !tbaa !5
  %2346 = load ptr, ptr %45, align 8, !tbaa !5
  %2347 = load ptr, ptr %39, align 8, !tbaa !5
  %2348 = load i32, ptr %63, align 4, !tbaa !9
  %2349 = sext i32 %2348 to i64
  %2350 = getelementptr inbounds float, ptr %2347, i64 %2349
  %2351 = load ptr, ptr %40, align 8, !tbaa !5
  %2352 = load ptr, ptr %53, align 8, !tbaa !5
  %2353 = load i32, ptr %71, align 4, !tbaa !9
  %2354 = sext i32 %2353 to i64
  %2355 = getelementptr inbounds float, ptr %2352, i64 %2354
  %2356 = load ptr, ptr %54, align 8, !tbaa !5
  %2357 = load ptr, ptr %48, align 8, !tbaa !5
  %2358 = load i32, ptr %67, align 4, !tbaa !9
  %2359 = sext i32 %2358 to i64
  %2360 = getelementptr inbounds float, ptr %2357, i64 %2359
  %2361 = load ptr, ptr %49, align 8, !tbaa !5
  %2362 = call i32 @sgemm_(ptr noundef @.str.6, ptr noundef @.str.6, ptr noundef %2344, ptr noundef %2345, ptr noundef %2346, ptr noundef %117, ptr noundef %2350, ptr noundef %2351, ptr noundef %2355, ptr noundef %2356, ptr noundef %78, ptr noundef %2360, ptr noundef %2361)
  br label %2363

2363:                                             ; preds = %2343, %2340
  %2364 = load i32, ptr %110, align 4, !tbaa !9
  %2365 = icmp ne i32 %2364, 0
  br i1 %2365, label %2366, label %2499

2366:                                             ; preds = %2363
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %2367

2367:                                             ; preds = %2497, %2366
  %2368 = load i32, ptr %84, align 4, !tbaa !9
  %2369 = load ptr, ptr %45, align 8, !tbaa !5
  %2370 = load i32, ptr %2369, align 4, !tbaa !9
  %2371 = icmp sle i32 %2368, %2370
  br i1 %2371, label %2372, label %2498

2372:                                             ; preds = %2367
  %2373 = load ptr, ptr %47, align 8, !tbaa !5
  %2374 = load i32, ptr %84, align 4, !tbaa !9
  %2375 = sext i32 %2374 to i64
  %2376 = getelementptr inbounds float, ptr %2373, i64 %2375
  %2377 = load float, ptr %2376, align 4, !tbaa !11
  %2378 = load float, ptr %78, align 4, !tbaa !11
  %2379 = fcmp oeq float %2377, %2378
  br i1 %2379, label %2380, label %2418

2380:                                             ; preds = %2372
  %2381 = load ptr, ptr %46, align 8, !tbaa !5
  %2382 = load i32, ptr %84, align 4, !tbaa !9
  %2383 = sext i32 %2382 to i64
  %2384 = getelementptr inbounds float, ptr %2381, i64 %2383
  %2385 = load float, ptr %2384, align 4, !tbaa !11
  %2386 = fneg float %2385
  store float %2386, ptr %76, align 4, !tbaa !11
  %2387 = load ptr, ptr %37, align 8, !tbaa !5
  %2388 = load ptr, ptr %48, align 8, !tbaa !5
  %2389 = load i32, ptr %84, align 4, !tbaa !9
  %2390 = load i32, ptr %66, align 4, !tbaa !9
  %2391 = mul nsw i32 %2389, %2390
  %2392 = add nsw i32 %2391, 1
  %2393 = sext i32 %2392 to i64
  %2394 = getelementptr inbounds float, ptr %2388, i64 %2393
  %2395 = load ptr, ptr %41, align 8, !tbaa !5
  %2396 = load i32, ptr %84, align 4, !tbaa !9
  %2397 = load i32, ptr %64, 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 float, ptr %2395, i64 %2400
  %2402 = call i32 @saxpy_(ptr noundef %2387, ptr noundef %76, ptr noundef %2394, ptr noundef @c__1, ptr noundef %2401, ptr noundef @c__1)
  %2403 = load ptr, ptr %37, align 8, !tbaa !5
  %2404 = load ptr, ptr %41, align 8, !tbaa !5
  %2405 = load i32, ptr %84, align 4, !tbaa !9
  %2406 = load i32, ptr %64, align 4, !tbaa !9
  %2407 = mul nsw i32 %2405, %2406
  %2408 = add nsw i32 %2407, 1
  %2409 = sext i32 %2408 to i64
  %2410 = getelementptr inbounds float, ptr %2404, i64 %2409
  %2411 = call float @snrm2_(ptr noundef %2403, ptr noundef %2410, ptr noundef @c__1)
  %2412 = load ptr, ptr %50, align 8, !tbaa !5
  %2413 = load i32, ptr %84, align 4, !tbaa !9
  %2414 = sext i32 %2413 to i64
  %2415 = getelementptr inbounds float, ptr %2412, i64 %2414
  store float %2411, ptr %2415, align 4, !tbaa !11
  %2416 = load i32, ptr %84, align 4, !tbaa !9
  %2417 = add nsw i32 %2416, 1
  store i32 %2417, ptr %84, align 4, !tbaa !9
  br label %2497

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

2497:                                             ; preds = %2418, %2380
  br label %2367, !llvm.loop !26

2498:                                             ; preds = %2367
  br label %2499

2499:                                             ; preds = %2498, %2363
  br label %2500

2500:                                             ; preds = %2499, %2196
  %2501 = load ptr, ptr %36, align 8, !tbaa !5
  %2502 = load i32, ptr %2501, align 4, !tbaa !9
  %2503 = icmp eq i32 %2502, 4
  br i1 %2503, label %2504, label %2519

2504:                                             ; preds = %2500
  %2505 = load float, ptr %82, align 4, !tbaa !11
  %2506 = load ptr, ptr %57, align 8, !tbaa !5
  %2507 = load ptr, ptr %38, align 8, !tbaa !5
  %2508 = load i32, ptr %2507, align 4, !tbaa !9
  %2509 = add nsw i32 %2508, 1
  %2510 = sext i32 %2509 to i64
  %2511 = getelementptr inbounds float, ptr %2506, i64 %2510
  store float %2505, ptr %2511, align 4, !tbaa !11
  %2512 = load float, ptr %83, align 4, !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, 2
  %2517 = sext i32 %2516 to i64
  %2518 = getelementptr inbounds float, ptr %2513, i64 %2517
  store float %2512, ptr %2518, align 4, !tbaa !11
  br label %2519

2519:                                             ; preds = %2504, %2500
  %2520 = load i32, ptr %87, align 4, !tbaa !9
  %2521 = icmp ne i32 %2520, 0
  br i1 %2521, label %2524, label %2522

2522:                                             ; preds = %2519
  %2523 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 0, ptr %2523, align 4, !tbaa !9
  br label %2526

2524:                                             ; preds = %2519
  %2525 = load ptr, ptr %61, align 8, !tbaa !5
  store i32 4, ptr %2525, align 4, !tbaa !9
  br label %2526

2526:                                             ; preds = %2524, %2522
  store i32 0, ptr %31, align 4
  store i32 1, ptr %118, align 4
  br label %2527

2527:                                             ; preds = %2526, %2191, %1795, %1787, %1225, %1090, %1082, %427
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, 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 4, 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 16, 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 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, 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
  %2528 = load i32, ptr %31, align 4
  ret i32 %2528
}

; 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 @sgesvd_(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 @sgesdd_(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 @sgesvdq_(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 @sgeev_(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 float @slamch_(ptr noundef) #2

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

declare i32 @sisnan_(ptr noundef) #2

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

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

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

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

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

declare i32 @sgejsv_(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 @sgemm_(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 @saxpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare float @snrm2_(ptr noundef, ptr noundef, ptr noundef) #2

declare float @slange_(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 = !{!"float", !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 @sgedmd_(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 float, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca [1 x i8], align 1
  %43 = alloca [4 x float], align 16
  %44 = alloca [1 x i8], align 1
  %45 = alloca i32, align 4
  %46 = alloca [2 x float], align 4
  %47 = alloca [1 x i8], align 1
  %48 = alloca [2 x float], align 4
  %49 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %43) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #4
  %50 = load i32, ptr %8, align 4, !tbaa !5
  %narrow972 = xor i32 %50, -1
  %51 = sext i32 %narrow972 to i64
  %52 = getelementptr inbounds float, ptr %7, i64 %51
  %53 = load i32, ptr %10, align 4, !tbaa !5
  %narrow971 = xor i32 %53, -1
  %54 = sext i32 %narrow971 to i64
  %55 = getelementptr inbounds float, ptr %9, i64 %54
  %56 = getelementptr inbounds i8, ptr %14, i64 -4
  %57 = getelementptr inbounds i8, ptr %15, i64 -4
  %58 = load i32, ptr %17, align 4, !tbaa !5
  %narrow973 = xor i32 %58, -1
  %59 = sext i32 %narrow973 to i64
  %60 = getelementptr inbounds float, ptr %16, i64 %59
  %61 = getelementptr inbounds i8, ptr %18, i64 -4
  %62 = load i32, ptr %22, align 4, !tbaa !5
  %narrow = xor i32 %62, -1
  %63 = sext i32 %narrow to i64
  %64 = getelementptr inbounds float, ptr %21, i64 %63
  %65 = getelementptr inbounds i8, ptr %25, i64 -4
  store float 1.000000e+00, ptr %49, align 4, !tbaa !9
  store float 0.000000e+00, ptr %35, align 4, !tbaa !9
  %66 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #4
  %67 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %.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) #4
  %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) #4
  %74 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #4
  %75 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str) #4
  %76 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.5) #4
  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) #4
  %.not918 = icmp eq i32 %86, 0
  br i1 %.not918, label %.thread1016.sink.split, label %87

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

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

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

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

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

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

.thread1001:                                      ; 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 = %.thread1001
  %98 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.6) #4
  %.not923 = icmp eq i32 %98, 0
  br i1 %.not923, label %.thread1016.sink.split, label %99

99:                                               ; preds = %97, %.thread1001
  %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 %.thread1016.sink.split

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

104:                                              ; preds = %101
  %105 = load i32, ptr %6, align 4, !tbaa !5
  %or.cond985 = icmp ugt i32 %105, %102
  br i1 %or.cond985, label %.thread1016.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 %.thread1016.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 %.thread1016.sink.split, label %112

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

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

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

120:                                              ; preds = %116
  %121 = load i32, ptr %17, align 4, !tbaa !5
  %122 = icmp slt i32 %121, %102
  br i1 %122, label %.thread1016.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 %.thread1016.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 %.thread1016.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 %.thread1016.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 %.thread1016

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 float> <float 2.000000e+00, float 2.000000e+00>, ptr %25, align 4, !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 %686

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 %198
  ]

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 %214

152:                                              ; preds = %143
  %153 = call i32 @sgesvd_(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) #4
  %154 = load float, ptr %46, align 4, !tbaa !9
  %155 = fptosi float %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 %214

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 %214

173:                                              ; preds = %160
  %174 = call i32 @sgesdd_(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) #4
  %175 = load float, ptr %46, align 4, !tbaa !9
  %176 = fptosi float %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 %214

181:                                              ; preds = %141
  %182 = call i32 @sgesvdq_(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 @c_n1, ptr noundef nonnull %46, ptr noundef nonnull @c_n1, ptr noundef nonnull %48, ptr noundef nonnull @c_n1, ptr noundef nonnull %37) #4
  %183 = load i32, ptr %27, align 4, !tbaa !5
  %184 = getelementptr inbounds i8, ptr %46, i64 4
  %185 = load float, ptr %184, align 4, !tbaa !9
  %186 = fptosi float %185 to i32
  store i32 %142, ptr %31, align 4, !tbaa !5
  %187 = load i32, ptr %6, align 4, !tbaa !5
  %188 = load float, ptr %48, align 4, !tbaa !9
  %189 = fptosi float %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 %214

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

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

213:                                              ; preds = %198
  store i32 %142, ptr %31, align 4, !tbaa !5
  store i32 %209, ptr %32, align 4, !tbaa !5
  br label %214

default.unreachable:                              ; preds = %141
  unreachable

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

216:                                              ; preds = %214
  %217 = call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.7) #4
  %.not950 = icmp eq i32 %217, 0
  %spec.select999 = select i1 %.not950, i8 78, i8 86
  br label %218

218:                                              ; preds = %216, %214
  %storemerge = phi i8 [ 86, %214 ], [ %spec.select999, %216 ]
  store i8 %storemerge, ptr %42, align 1, !tbaa !11
  %219 = call i32 @lsame_(ptr noundef nonnull %42, ptr noundef nonnull @.str.4) #4
  %.not951 = icmp eq i32 %219, 0
  %220 = load i32, ptr %6, align 4, !tbaa !5
  br i1 %.not951, label %224, label %221

221:                                              ; preds = %218
  %222 = shl i32 %220, 2
  %223 = call i32 @llvm.smax.i32(i32 %222, i32 1)
  br label %228

224:                                              ; preds = %218
  %225 = mul nsw i32 %220, 3
  %226 = icmp slt i32 %220, 1
  %227 = select i1 %226, i32 1, i32 %225
  br label %228

228:                                              ; preds = %224, %221
  %.0853 = phi i32 [ %227, %224 ], [ %223, %221 ]
  store i32 %.0854, ptr %31, align 4, !tbaa !5
  %229 = add nsw i32 %220, %.0853
  store i32 %229, ptr %32, align 4, !tbaa !5
  %230 = call i32 @llvm.smax.i32(i32 %.0854, i32 %229)
  br i1 %83, label %.thread1034, label %231

231:                                              ; preds = %228
  %232 = load i32, ptr %28, align 4, !tbaa !5
  %.not1185 = icmp slt i32 %232, %.0856
  br i1 %.not1185, label %233, label %234

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

234:                                              ; preds = %233, %231
  %235 = load i32, ptr %26, align 4, !tbaa !5
  %.not1186 = icmp slt i32 %235, %230
  br i1 %.not1186, label %.thread1016.sink.split, label %.thread1021

.thread1034:                                      ; preds = %228
  %236 = call i32 @sgeev_(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) #4
  store i32 %.0853, ptr %31, align 4, !tbaa !5
  %237 = load float, ptr %46, align 4, !tbaa !9
  %238 = fptosi float %237 to i32
  %239 = call i32 @llvm.smax.i32(i32 %.0853, i32 %238)
  %240 = load i32, ptr %6, align 4, !tbaa !5
  %241 = add nsw i32 %240, %239
  store i32 %241, ptr %32, align 4, !tbaa !5
  %.pr10111038 = load i32, ptr %29, align 4, !tbaa !5
  %.not9551039 = icmp eq i32 %.pr10111038, 0
  br i1 %.not9551039, label %.thread1040, label %.thread1016

.thread1021:                                      ; preds = %234
  %.pr10111025 = load i32, ptr %29, align 4, !tbaa !5
  %.not9551026 = icmp eq i32 %.pr10111025, 0
  br i1 %.not9551026, label %.thread1030, label %.thread1016

.thread1016.sink.split:                           ; preds = %234, %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, %234 ]
  store i32 %.sink, ptr %29, align 4, !tbaa !5
  br label %.thread1016

.thread1016:                                      ; preds = %.thread1016.sink.split, %133, %.thread1034, %.thread1021
  %242 = phi i32 [ %.pr10111025, %.thread1021 ], [ %.pr10111038, %.thread1034 ], [ %.pr, %133 ], [ %.sink, %.thread1016.sink.split ]
  %243 = sub nsw i32 0, %242
  store i32 %243, ptr %31, align 4, !tbaa !5
  %244 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %31) #4
  br label %686

.thread1040:                                      ; preds = %.thread1034
  %245 = call i32 @llvm.smax.i32(i32 %.0852, i32 %241)
  store i32 %.0856, ptr %27, align 4, !tbaa !5
  %246 = uitofp nneg i32 %230 to float
  store float %246, ptr %25, align 4, !tbaa !9
  %247 = uitofp nneg i32 %245 to float
  %248 = getelementptr inbounds i8, ptr %25, i64 4
  store float %247, ptr %248, align 4, !tbaa !9
  br label %686

.thread1030:                                      ; preds = %.thread1021
  %249 = call float @slamch_(ptr noundef nonnull @.str.8) #4
  %250 = call float @slamch_(ptr noundef nonnull @.str.1) #4
  br i1 %72, label %251, label %.loopexit1054

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

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

.lr.ph:                                           ; preds = %.lr.ph.preheader, %292
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %292 ]
  %254 = load float, ptr %35, align 4, !tbaa !9
  store float %254, ptr %41, align 4, !tbaa !9
  %255 = mul nsw i64 %indvars.iv, %253
  %gep = getelementptr float, ptr %invariant.gep, i64 %255
  %256 = call i32 @slassq_(ptr noundef nonnull %5, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef nonnull %36) #4
  %257 = call i32 @sisnan_(ptr noundef nonnull %41) #4
  %.not980 = icmp eq i32 %257, 0
  br i1 %.not980, label %258, label %260

258:                                              ; preds = %.lr.ph
  %259 = call i32 @sisnan_(ptr noundef nonnull %36) #4
  %.not981 = icmp eq i32 %259, 0
  br i1 %.not981, label %262, label %260

260:                                              ; preds = %258, %.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
  %261 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %32) #4
  br label %262

262:                                              ; preds = %260, %258
  %263 = load float, ptr %41, align 4, !tbaa !9
  %264 = load float, ptr %35, align 4, !tbaa !9
  %265 = fcmp une float %263, %264
  br i1 %265, label %266, label %288

266:                                              ; preds = %262
  %267 = load float, ptr %36, align 4, !tbaa !9
  %268 = fcmp une float %267, %264
  br i1 %268, label %269, label %288

269:                                              ; preds = %266
  %sqrtf982 = call float @sqrtf(float noundef %267) #5
  %270 = load float, ptr %41, align 4, !tbaa !9
  %271 = fdiv float %249, %sqrtf982
  %272 = fcmp ult float %270, %271
  br i1 %272, label %284, label %273

273:                                              ; preds = %269
  %274 = load float, ptr %49, align 4, !tbaa !9
  %275 = fdiv float %274, %sqrtf982
  store float %275, ptr %33, align 4, !tbaa !9
  %276 = call i32 @slascl_(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) #4
  %277 = load float, ptr %41, align 4, !tbaa !9
  %278 = fneg float %277
  %279 = load i32, ptr %5, align 4, !tbaa !5
  %280 = sitofp i32 %279 to float
  %281 = fdiv float %sqrtf982, %280
  %282 = fmul float %281, %278
  %283 = getelementptr inbounds float, ptr %65, i64 %indvars.iv
  store float %282, ptr %283, align 4, !tbaa !9
  br label %292

284:                                              ; preds = %269
  %285 = fmul float %sqrtf982, %270
  %286 = getelementptr inbounds float, ptr %65, i64 %indvars.iv
  store float %285, ptr %286, align 4, !tbaa !9
  %287 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %286, ptr noundef nonnull %49, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull %5, ptr noundef nonnull %38) #4
  br label %292

288:                                              ; preds = %266, %262
  %289 = getelementptr inbounds float, ptr %65, i64 %indvars.iv
  store float %264, ptr %289, align 4, !tbaa !9
  %290 = load i32, ptr %13, align 4, !tbaa !5
  %291 = add nsw i32 %290, 1
  store i32 %291, ptr %13, align 4, !tbaa !5
  br label %292

292:                                              ; preds = %288, %284, %273
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %293 = load i32, ptr %31, align 4, !tbaa !5
  %294 = sext i32 %293 to i64
  %.not956.not = icmp slt i64 %indvars.iv, %294
  br i1 %.not956.not, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !12

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

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %251
  %295 = phi i32 [ %.pre1179, %._crit_edge.loopexit ], [ %252, %251 ]
  %296 = phi i32 [ %.pre, %._crit_edge.loopexit ], [ 0, %251 ]
  %297 = icmp eq i32 %296, %295
  br i1 %297, label %298, label %300

298:                                              ; 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
  %299 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %31) #4
  br label %686

300:                                              ; preds = %._crit_edge
  store i32 %295, ptr %31, align 4, !tbaa !5
  %invariant.gep1057 = getelementptr i8, ptr %55, i64 4
  %.not9571063 = icmp slt i32 %295, 1
  br i1 %.not9571063, label %.loopexit1054, label %.lr.ph1067.preheader

.lr.ph1067.preheader:                             ; preds = %300
  %301 = sext i32 %53 to i64
  br label %.lr.ph1067

.lr.ph1067:                                       ; preds = %.lr.ph1067.preheader, %334
  %indvars.iv1139 = phi i64 [ 1, %.lr.ph1067.preheader ], [ %indvars.iv.next1140, %334 ]
  %.08621064 = phi i32 [ 0, %.lr.ph1067.preheader ], [ %.1863, %334 ]
  %302 = getelementptr inbounds float, ptr %65, i64 %indvars.iv1139
  %303 = load float, ptr %302, align 4, !tbaa !9
  %304 = load float, ptr %35, align 4, !tbaa !9
  %305 = fcmp ogt float %303, %304
  br i1 %305, label %306, label %311

306:                                              ; preds = %.lr.ph1067
  %307 = load float, ptr %49, align 4, !tbaa !9
  %308 = fdiv float %307, %303
  store float %308, ptr %33, align 4, !tbaa !9
  %309 = mul nsw i64 %indvars.iv1139, %301
  %gep1062 = getelementptr float, ptr %invariant.gep1057, i64 %309
  %310 = call i32 @sscal_(ptr noundef nonnull %5, ptr noundef nonnull %33, ptr noundef %gep1062, ptr noundef nonnull @c__1) #4
  br label %334

311:                                              ; preds = %.lr.ph1067
  %312 = fcmp olt float %303, %304
  br i1 %312, label %313, label %321

313:                                              ; preds = %311
  %314 = fneg float %303
  store float %314, ptr %33, align 4, !tbaa !9
  %315 = load float, ptr %49, align 4, !tbaa !9
  %316 = load i32, ptr %5, align 4, !tbaa !5
  %317 = sitofp i32 %316 to float
  %318 = fdiv float %315, %317
  store float %318, ptr %34, align 4, !tbaa !9
  %319 = mul nsw i64 %indvars.iv1139, %301
  %gep1060 = getelementptr float, ptr %invariant.gep1057, i64 %319
  %320 = call i32 @slascl_(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 %gep1060, ptr noundef nonnull %5, ptr noundef nonnull %38) #4
  br label %334

321:                                              ; preds = %311
  %322 = mul nsw i64 %indvars.iv1139, %301
  %gep1058 = getelementptr float, ptr %invariant.gep1057, i64 %322
  %323 = call i32 @isamax_(ptr noundef nonnull %5, ptr noundef %gep1058, ptr noundef nonnull @c__1) #4
  %324 = sext i32 %323 to i64
  %325 = getelementptr float, ptr %55, i64 %322
  %326 = getelementptr float, ptr %325, i64 %324
  %327 = load float, ptr %326, align 4, !tbaa !9
  %328 = load float, ptr %35, align 4, !tbaa !9
  %329 = fcmp une float %327, %328
  br i1 %329, label %330, label %334

330:                                              ; preds = %321
  %331 = call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #4
  %.not979 = icmp eq i32 %331, 0
  br i1 %.not979, label %334, label %332

332:                                              ; preds = %330
  %333 = call i32 @sscal_(ptr noundef nonnull %5, ptr noundef nonnull %35, ptr noundef %gep1058, ptr noundef nonnull @c__1) #4
  br label %334

334:                                              ; preds = %306, %321, %332, %330, %313
  %.1863 = phi i32 [ %.08621064, %306 ], [ %.08621064, %313 ], [ 1, %332 ], [ 1, %330 ], [ %.08621064, %321 ]
  %indvars.iv.next1140 = add nuw nsw i64 %indvars.iv1139, 1
  %335 = load i32, ptr %31, align 4, !tbaa !5
  %336 = sext i32 %335 to i64
  %.not957.not = icmp slt i64 %indvars.iv1139, %336
  br i1 %.not957.not, label %.lr.ph1067, label %.loopexit1054, !llvm.loop !14

.loopexit1054:                                    ; preds = %334, %300, %.thread1030
  %.2864 = phi i32 [ 0, %.thread1030 ], [ 0, %300 ], [ %.1863, %334 ]
  %.pre1182 = load i32, ptr %6, align 4, !tbaa !5
  br i1 %84, label %337, label %.loopexit1053

337:                                              ; preds = %.loopexit1054
  store i32 %.pre1182, ptr %31, align 4, !tbaa !5
  %invariant.gep1068 = getelementptr i8, ptr %55, i64 4
  %.not9581070 = icmp slt i32 %.pre1182, 1
  br i1 %.not9581070, label %.loopexit1053, label %.lr.ph1073.preheader

.lr.ph1073.preheader:                             ; preds = %337
  %338 = sext i32 %53 to i64
  br label %.lr.ph1073

.lr.ph1073:                                       ; preds = %.lr.ph1073.preheader, %375
  %indvars.iv1142 = phi i64 [ 1, %.lr.ph1073.preheader ], [ %indvars.iv.next1143, %375 ]
  %339 = load float, ptr %35, align 4, !tbaa !9
  store float %339, ptr %41, align 4, !tbaa !9
  %340 = mul nsw i64 %indvars.iv1142, %338
  %gep1069 = getelementptr float, ptr %invariant.gep1068, i64 %340
  %341 = call i32 @slassq_(ptr noundef nonnull %5, ptr noundef %gep1069, ptr noundef nonnull @c__1, ptr noundef nonnull %41, ptr noundef nonnull %36) #4
  %342 = call i32 @sisnan_(ptr noundef nonnull %41) #4
  %.not977 = icmp eq i32 %342, 0
  br i1 %.not977, label %343, label %345

343:                                              ; preds = %.lr.ph1073
  %344 = call i32 @sisnan_(ptr noundef nonnull %36) #4
  %.not978 = icmp eq i32 %344, 0
  br i1 %.not978, label %347, label %345

345:                                              ; preds = %343, %.lr.ph1073
  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
  %346 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %32) #4
  br label %347

347:                                              ; preds = %345, %343
  %348 = load float, ptr %41, align 4, !tbaa !9
  %349 = load float, ptr %35, align 4, !tbaa !9
  %350 = fcmp une float %348, %349
  br i1 %350, label %351, label %373

351:                                              ; preds = %347
  %352 = load float, ptr %36, align 4, !tbaa !9
  %353 = fcmp une float %352, %349
  br i1 %353, label %354, label %373

354:                                              ; preds = %351
  %sqrtf = call float @sqrtf(float noundef %352) #5
  %355 = load float, ptr %41, align 4, !tbaa !9
  %356 = fdiv float %249, %sqrtf
  %357 = fcmp ult float %355, %356
  br i1 %357, label %369, label %358

358:                                              ; preds = %354
  %359 = load float, ptr %49, align 4, !tbaa !9
  %360 = fdiv float %359, %sqrtf
  store float %360, ptr %33, align 4, !tbaa !9
  %361 = call i32 @slascl_(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 %gep1069, ptr noundef nonnull %5, ptr noundef nonnull %38) #4
  %362 = load float, ptr %41, align 4, !tbaa !9
  %363 = fneg float %362
  %364 = load i32, ptr %5, align 4, !tbaa !5
  %365 = sitofp i32 %364 to float
  %366 = fdiv float %sqrtf, %365
  %367 = fmul float %366, %363
  %368 = getelementptr inbounds float, ptr %65, i64 %indvars.iv1142
  store float %367, ptr %368, align 4, !tbaa !9
  br label %375

369:                                              ; preds = %354
  %370 = fmul float %sqrtf, %355
  %371 = getelementptr inbounds float, ptr %65, i64 %indvars.iv1142
  store float %370, ptr %371, align 4, !tbaa !9
  %372 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %371, ptr noundef nonnull %49, ptr noundef nonnull %5, ptr noundef nonnull @c__1, ptr noundef %gep1069, ptr noundef nonnull %5, ptr noundef nonnull %38) #4
  br label %375

373:                                              ; preds = %351, %347
  %374 = getelementptr inbounds float, ptr %65, i64 %indvars.iv1142
  store float %349, ptr %374, align 4, !tbaa !9
  br label %375

375:                                              ; preds = %373, %369, %358
  %indvars.iv.next1143 = add nuw nsw i64 %indvars.iv1142, 1
  %376 = load i32, ptr %31, align 4, !tbaa !5
  %377 = sext i32 %376 to i64
  %.not958.not = icmp slt i64 %indvars.iv1142, %377
  br i1 %.not958.not, label %.lr.ph1073, label %._crit_edge1074, !llvm.loop !15

._crit_edge1074:                                  ; preds = %375
  %.pre1180 = load i32, ptr %6, align 4, !tbaa !5
  store i32 %.pre1180, ptr %31, align 4, !tbaa !5
  %invariant.gep1075 = getelementptr i8, ptr %52, i64 4
  %.not9591081 = icmp slt i32 %.pre1180, 1
  br i1 %.not9591081, label %.loopexit1053, label %.lr.ph1085.preheader

.lr.ph1085.preheader:                             ; preds = %._crit_edge1074
  %378 = sext i32 %50 to i64
  br label %.lr.ph1085

.lr.ph1085:                                       ; preds = %.lr.ph1085.preheader, %408
  %indvars.iv1145 = phi i64 [ 1, %.lr.ph1085.preheader ], [ %indvars.iv.next1146, %408 ]
  %.38651082 = phi i32 [ %.2864, %.lr.ph1085.preheader ], [ %.4866, %408 ]
  %379 = getelementptr inbounds float, ptr %65, i64 %indvars.iv1145
  %380 = load float, ptr %379, align 4, !tbaa !9
  %381 = load float, ptr %35, align 4, !tbaa !9
  %382 = fcmp ogt float %380, %381
  br i1 %382, label %383, label %388

383:                                              ; preds = %.lr.ph1085
  %384 = load float, ptr %49, align 4, !tbaa !9
  %385 = fdiv float %384, %380
  store float %385, ptr %33, align 4, !tbaa !9
  %386 = mul nsw i64 %indvars.iv1145, %378
  %gep1080 = getelementptr float, ptr %invariant.gep1075, i64 %386
  %387 = call i32 @sscal_(ptr noundef nonnull %5, ptr noundef nonnull %33, ptr noundef %gep1080, ptr noundef nonnull @c__1) #4
  br label %408

388:                                              ; preds = %.lr.ph1085
  %389 = fcmp olt float %380, %381
  br i1 %389, label %390, label %398

390:                                              ; preds = %388
  %391 = fneg float %380
  store float %391, ptr %33, align 4, !tbaa !9
  %392 = load float, ptr %49, align 4, !tbaa !9
  %393 = load i32, ptr %5, align 4, !tbaa !5
  %394 = sitofp i32 %393 to float
  %395 = fdiv float %392, %394
  store float %395, ptr %34, align 4, !tbaa !9
  %396 = mul nsw i64 %indvars.iv1145, %378
  %gep1078 = getelementptr float, ptr %invariant.gep1075, i64 %396
  %397 = call i32 @slascl_(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 %gep1078, ptr noundef nonnull %5, ptr noundef nonnull %38) #4
  br label %408

398:                                              ; preds = %388
  %399 = mul nsw i64 %indvars.iv1145, %378
  %gep1076 = getelementptr float, ptr %invariant.gep1075, i64 %399
  %400 = call i32 @isamax_(ptr noundef nonnull %5, ptr noundef %gep1076, ptr noundef nonnull @c__1) #4
  %401 = sext i32 %400 to i64
  %402 = getelementptr float, ptr %52, i64 %399
  %403 = getelementptr float, ptr %402, i64 %401
  %404 = load float, ptr %403, align 4, !tbaa !9
  %405 = load float, ptr %35, align 4, !tbaa !9
  %406 = fcmp une float %404, %405
  br i1 %406, label %407, label %408

407:                                              ; preds = %398
  br label %408

408:                                              ; preds = %383, %398, %407, %390
  %.4866 = phi i32 [ %.38651082, %383 ], [ %.38651082, %390 ], [ 1, %407 ], [ %.38651082, %398 ]
  %indvars.iv.next1146 = add nuw nsw i64 %indvars.iv1145, 1
  %409 = load i32, ptr %31, align 4, !tbaa !5
  %410 = sext i32 %409 to i64
  %.not959.not = icmp slt i64 %indvars.iv1145, %410
  br i1 %.not959.not, label %.lr.ph1085, label %.loopexit1053.loopexit, !llvm.loop !16

.loopexit1053.loopexit:                           ; preds = %408
  %.pre1181 = load i32, ptr %6, align 4, !tbaa !5
  br label %.loopexit1053

.loopexit1053:                                    ; preds = %337, %.loopexit1053.loopexit, %._crit_edge1074, %.loopexit1054
  %411 = phi i32 [ %.pre1182, %.loopexit1054 ], [ %.pre1180, %._crit_edge1074 ], [ %.pre1181, %.loopexit1053.loopexit ], [ %.pre1182, %337 ]
  %.5867 = phi i32 [ %.2864, %.loopexit1054 ], [ %.2864, %._crit_edge1074 ], [ %.4866, %.loopexit1053.loopexit ], [ %.2864, %337 ]
  store i32 %411, ptr %45, align 4, !tbaa !5
  %412 = load i32, ptr %4, align 4, !tbaa !5
  switch i32 %412, label %458 [
    i32 1, label %413
    i32 2, label %420
    i32 3, label %427
    i32 4, label %440
  ]

413:                                              ; preds = %.loopexit1053
  %414 = load i32, ptr %26, align 4, !tbaa !5
  %415 = sub nsw i32 %414, %411
  store i32 %415, ptr %31, align 4, !tbaa !5
  %416 = sext i32 %411 to i64
  %417 = getelementptr float, ptr %65, i64 %416
  %418 = getelementptr i8, ptr %417, i64 4
  %419 = call i32 @sgesvd_(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 %418, ptr noundef nonnull %31, ptr noundef nonnull %37) #4
  store i8 84, ptr %44, align 1, !tbaa !11
  br label %458

420:                                              ; preds = %.loopexit1053
  %421 = load i32, ptr %26, align 4, !tbaa !5
  %422 = sub nsw i32 %421, %411
  store i32 %422, ptr %31, align 4, !tbaa !5
  %423 = sext i32 %411 to i64
  %424 = getelementptr float, ptr %65, i64 %423
  %425 = getelementptr i8, ptr %424, i64 4
  %426 = call i32 @sgesdd_(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 %425, ptr noundef nonnull %31, ptr noundef %27, ptr noundef nonnull %37) #4
  store i8 84, ptr %44, align 1, !tbaa !11
  br label %458

427:                                              ; preds = %.loopexit1053
  %428 = load i32, ptr %26, align 4, !tbaa !5
  %429 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select991 = call i32 @llvm.smax.i32(i32 %429, i32 2)
  %430 = add i32 %spec.select991, %411
  %431 = sub i32 %428, %430
  store i32 %431, ptr %31, align 4, !tbaa !5
  store i32 %spec.select991, ptr %32, align 4, !tbaa !5
  %432 = sext i32 %430 to i64
  %433 = getelementptr float, ptr %65, i64 %432
  %434 = getelementptr i8, ptr %433, i64 4
  %435 = sext i32 %411 to i64
  %436 = getelementptr float, ptr %65, i64 %435
  %437 = getelementptr i8, ptr %436, i64 4
  %438 = call i32 @sgesvdq_(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 %434, ptr noundef nonnull %31, ptr noundef %437, ptr noundef nonnull %32, ptr noundef nonnull %37) #4
  %439 = call i32 @slacpy_(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) #4
  store i8 84, ptr %44, align 1, !tbaa !11
  br label %458

440:                                              ; preds = %.loopexit1053
  %441 = load i32, ptr %26, align 4, !tbaa !5
  %442 = sub nsw i32 %441, %411
  store i32 %442, ptr %31, align 4, !tbaa !5
  %443 = sext i32 %411 to i64
  %444 = getelementptr float, ptr %65, i64 %443
  %445 = getelementptr i8, ptr %444, i64 4
  %446 = call i32 @sgejsv_(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 %445, ptr noundef nonnull %31, ptr noundef %27, ptr noundef nonnull %37) #4
  %447 = call i32 @slacpy_(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) #4
  store i8 78, ptr %44, align 1, !tbaa !11
  %448 = load i32, ptr %6, align 4, !tbaa !5
  %449 = sext i32 %448 to i64
  %450 = getelementptr float, ptr %65, i64 %449
  %451 = getelementptr i8, ptr %450, i64 4
  %452 = load float, ptr %451, align 4, !tbaa !9
  store float %452, ptr %39, align 4, !tbaa !9
  %453 = getelementptr i8, ptr %450, i64 8
  %454 = load float, ptr %453, align 4, !tbaa !9
  store float %454, ptr %40, align 4, !tbaa !9
  %455 = fcmp une float %452, %454
  br i1 %455, label %456, label %458

456:                                              ; preds = %440
  %457 = call i32 @slascl_(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) #4
  br label %458

458:                                              ; preds = %.loopexit1053, %420, %456, %440, %427, %413
  %459 = load i32, ptr %37, align 4, !tbaa !5
  %460 = icmp sgt i32 %459, 0
  br i1 %460, label %461, label %462

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

462:                                              ; preds = %458
  %463 = load float, ptr %25, align 4, !tbaa !9
  %464 = load float, ptr %35, align 4, !tbaa !9
  %465 = fcmp oeq float %463, %464
  br i1 %465, label %466, label %468

466:                                              ; preds = %462
  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
  %467 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %31) #4
  br label %686

468:                                              ; preds = %462
  %469 = load i32, ptr %11, align 4, !tbaa !5
  store i32 1, ptr %13, align 4, !tbaa !5
  switch i32 %469, label %497 [
    i32 -1, label %470
    i32 -2, label %483
  ]

470:                                              ; preds = %468
  %471 = load i32, ptr %45, align 4, !tbaa !5
  store i32 %471, ptr %31, align 4, !tbaa !5
  %.not9621092 = icmp slt i32 %471, 2
  br i1 %.not9621092, label %.loopexit1050, label %.lr.ph1095

.lr.ph1095:                                       ; preds = %470
  %472 = load float, ptr %12, align 4, !tbaa !9
  %473 = fmul float %463, %472
  %474 = add nuw i32 %471, 1
  %wide.trip.count1154 = zext i32 %474 to i64
  br label %475

475:                                              ; preds = %.lr.ph1095, %481
  %476 = phi i32 [ 1, %.lr.ph1095 ], [ %482, %481 ]
  %indvars.iv1151 = phi i64 [ 2, %.lr.ph1095 ], [ %indvars.iv.next1152, %481 ]
  %477 = getelementptr inbounds float, ptr %65, i64 %indvars.iv1151
  %478 = load float, ptr %477, align 4, !tbaa !9
  %479 = fcmp ugt float %478, %473
  %480 = fcmp ugt float %478, %250
  %or.cond993 = select i1 %479, i1 %480, i1 false
  br i1 %or.cond993, label %481, label %.loopexit1050

481:                                              ; preds = %475
  %482 = add nuw nsw i32 %476, 1
  store i32 %482, ptr %13, align 4, !tbaa !5
  %indvars.iv.next1152 = add nuw nsw i64 %indvars.iv1151, 1
  %exitcond1155.not = icmp eq i64 %indvars.iv.next1152, %wide.trip.count1154
  br i1 %exitcond1155.not, label %.loopexit1050, label %475, !llvm.loop !17

483:                                              ; preds = %468
  %484 = load i32, ptr %45, align 4, !tbaa !5
  %485 = add nsw i32 %484, -1
  store i32 %485, ptr %31, align 4, !tbaa !5
  %.not961.not1087 = icmp sgt i32 %484, 1
  br i1 %.not961.not1087, label %.lr.ph1090, label %.loopexit1050

.lr.ph1090:                                       ; preds = %483
  %486 = load float, ptr %12, align 4, !tbaa !9
  %wide.trip.count = zext nneg i32 %484 to i64
  br label %487

487:                                              ; preds = %.lr.ph1090, %495
  %488 = phi i32 [ 1, %.lr.ph1090 ], [ %496, %495 ]
  %489 = phi float [ %463, %.lr.ph1090 ], [ %491, %495 ]
  %indvars.iv1148 = phi i64 [ 1, %.lr.ph1090 ], [ %indvars.iv.next1149, %495 ]
  %490 = getelementptr float, ptr %25, i64 %indvars.iv1148
  %491 = load float, ptr %490, align 4, !tbaa !9
  %492 = fmul float %489, %486
  %493 = fcmp ugt float %491, %492
  %494 = fcmp ugt float %489, %250
  %or.cond995 = select i1 %493, i1 %494, i1 false
  br i1 %or.cond995, label %495, label %.loopexit1050

495:                                              ; preds = %487
  %indvars.iv.next1149 = add nuw nsw i64 %indvars.iv1148, 1
  %496 = add nuw nsw i32 %488, 1
  store i32 %496, ptr %13, align 4, !tbaa !5
  %exitcond.not = icmp eq i64 %indvars.iv.next1149, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit1050, label %487, !llvm.loop !18

497:                                              ; preds = %468
  %498 = load i32, ptr %11, align 4, !tbaa !5
  store i32 %498, ptr %31, align 4, !tbaa !5
  %.not9601097 = icmp slt i32 %498, 2
  br i1 %.not9601097, label %.loopexit1050, label %.lr.ph1100.preheader

.lr.ph1100.preheader:                             ; preds = %497
  %499 = add nuw i32 %498, 1
  %wide.trip.count1159 = zext i32 %499 to i64
  br label %.lr.ph1100

.lr.ph1100:                                       ; preds = %.lr.ph1100.preheader, %504
  %500 = phi i32 [ 1, %.lr.ph1100.preheader ], [ %505, %504 ]
  %indvars.iv1156 = phi i64 [ 2, %.lr.ph1100.preheader ], [ %indvars.iv.next1157, %504 ]
  %501 = getelementptr inbounds float, ptr %65, i64 %indvars.iv1156
  %502 = load float, ptr %501, align 4, !tbaa !9
  %503 = fcmp ugt float %502, %250
  br i1 %503, label %504, label %.loopexit1050

504:                                              ; preds = %.lr.ph1100
  %505 = add nuw nsw i32 %500, 1
  store i32 %505, ptr %13, align 4, !tbaa !5
  %indvars.iv.next1157 = add nuw nsw i64 %indvars.iv1156, 1
  %exitcond1160.not = icmp eq i64 %indvars.iv.next1157, %wide.trip.count1159
  br i1 %exitcond1160.not, label %.loopexit1050, label %.lr.ph1100, !llvm.loop !19

.loopexit1050:                                    ; preds = %495, %487, %475, %481, %504, %.lr.ph1100, %483, %470, %497
  %506 = call i32 @lsame_(ptr noundef nonnull %44, ptr noundef nonnull @.str.6) #4
  %.not963 = icmp eq i32 %506, 0
  %507 = load i32, ptr %13, align 4, !tbaa !5
  br i1 %.not963, label %518, label %508

508:                                              ; preds = %.loopexit1050
  store i32 %507, ptr %31, align 4, !tbaa !5
  %invariant.gep1102 = getelementptr i8, ptr %64, i64 4
  %.not9671104 = icmp slt i32 %507, 1
  br i1 %.not9671104, label %.loopexit1048, label %.lr.ph1107.preheader

.lr.ph1107.preheader:                             ; preds = %508
  %509 = sext i32 %62 to i64
  br label %.lr.ph1107

.lr.ph1107:                                       ; preds = %.lr.ph1107.preheader, %.lr.ph1107
  %indvars.iv1161 = phi i64 [ 1, %.lr.ph1107.preheader ], [ %indvars.iv.next1162, %.lr.ph1107 ]
  %510 = load float, ptr %49, align 4, !tbaa !9
  %511 = getelementptr inbounds float, ptr %65, i64 %indvars.iv1161
  %512 = load float, ptr %511, align 4, !tbaa !9
  %513 = fdiv float %510, %512
  store float %513, ptr %33, align 4, !tbaa !9
  %514 = mul nsw i64 %indvars.iv1161, %509
  %gep1103 = getelementptr float, ptr %invariant.gep1102, i64 %514
  %515 = call i32 @sscal_(ptr noundef nonnull %6, ptr noundef nonnull %33, ptr noundef %gep1103, ptr noundef nonnull @c__1) #4
  %indvars.iv.next1162 = add nuw nsw i64 %indvars.iv1161, 1
  %516 = load i32, ptr %31, align 4, !tbaa !5
  %517 = sext i32 %516 to i64
  %.not967.not = icmp slt i64 %indvars.iv1161, %517
  br i1 %.not967.not, label %.lr.ph1107, label %.loopexit1048, !llvm.loop !20

518:                                              ; preds = %.loopexit1050
  %.not9641108 = icmp slt i32 %507, 1
  %.pre1184 = load i32, ptr %6, align 4, !tbaa !5
  br i1 %.not9641108, label %._crit_edge1112.thread, label %.lr.ph1111

.lr.ph1111:                                       ; preds = %518
  %519 = load float, ptr %49, align 4, !tbaa !9
  %520 = sext i32 %.pre1184 to i64
  %521 = add nuw i32 %507, 1
  %wide.trip.count1167 = zext i32 %521 to i64
  %invariant.gep1192 = getelementptr float, ptr %65, i64 %520
  %522 = zext nneg i32 %507 to i64
  %min.iters.check = icmp ult i32 %507, 4
  %523 = and i64 %520, 4611686018427387900
  %diff.check = icmp eq i64 %523, 0
  %or.cond1222 = select i1 %min.iters.check, i1 true, i1 %diff.check
  br i1 %or.cond1222, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph1111
  %n.vec = and i64 %522, 2147483644
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %519, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 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
  %524 = getelementptr float, ptr %25, i64 %index
  %wide.load = load <4 x float>, ptr %524, align 4, !tbaa !9
  %525 = fdiv <4 x float> %broadcast.splat, %wide.load
  %526 = getelementptr float, ptr %invariant.gep1192, i64 %offset.idx
  store <4 x float> %525, ptr %526, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %527 = icmp eq i64 %index.next, %n.vec
  br i1 %527, label %middle.block, label %vector.body, !llvm.loop !21

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

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph1111
  %indvars.iv1164.ph = phi i64 [ 1, %.lr.ph1111 ], [ %ind.end, %middle.block ]
  %528 = sub nsw i64 %wide.trip.count1167, %indvars.iv1164.ph
  %529 = zext nneg i32 %507 to i64
  %530 = sub nsw i64 %529, %indvars.iv1164.ph
  %xtraiter = and i64 %528, 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.iv1164.prol = phi i64 [ %indvars.iv.next1165.prol, %scalar.ph.prol ], [ %indvars.iv1164.ph, %scalar.ph.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph.prol ], [ 0, %scalar.ph.preheader ]
  %531 = getelementptr inbounds float, ptr %65, i64 %indvars.iv1164.prol
  %532 = load float, ptr %531, align 4, !tbaa !9
  %533 = fdiv float %519, %532
  %gep1193.prol = getelementptr float, ptr %invariant.gep1192, i64 %indvars.iv1164.prol
  store float %533, ptr %gep1193.prol, align 4, !tbaa !9
  %indvars.iv.next1165.prol = add nuw nsw i64 %indvars.iv1164.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.iv1164.unr = phi i64 [ %indvars.iv1164.ph, %scalar.ph.preheader ], [ %indvars.iv.next1165.prol, %scalar.ph.prol ]
  %534 = icmp ult i64 %530, 3
  br i1 %534, label %._crit_edge1112, label %scalar.ph.preheader.new

scalar.ph.preheader.new:                          ; preds = %scalar.ph.prol.loopexit
  %invariant.gep1228 = getelementptr i8, ptr %invariant.gep1192, i64 4
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph, %scalar.ph.preheader.new
  %indvars.iv1164 = phi i64 [ %indvars.iv1164.unr, %scalar.ph.preheader.new ], [ %indvars.iv.next1165.3, %scalar.ph ]
  %535 = getelementptr inbounds float, ptr %65, i64 %indvars.iv1164
  %536 = load float, ptr %535, align 4, !tbaa !9
  %537 = fdiv float %519, %536
  %gep1193 = getelementptr float, ptr %invariant.gep1192, i64 %indvars.iv1164
  store float %537, ptr %gep1193, align 4, !tbaa !9
  %538 = getelementptr float, ptr %25, i64 %indvars.iv1164
  %539 = load float, ptr %538, align 4, !tbaa !9
  %540 = fdiv float %519, %539
  %gep1229 = getelementptr float, ptr %invariant.gep1228, i64 %indvars.iv1164
  store float %540, ptr %gep1229, align 4, !tbaa !9
  %indvars.iv.next1165.1 = add nuw nsw i64 %indvars.iv1164, 2
  %541 = getelementptr inbounds float, ptr %65, i64 %indvars.iv.next1165.1
  %542 = load float, ptr %541, align 4, !tbaa !9
  %543 = fdiv float %519, %542
  %gep1193.2 = getelementptr float, ptr %invariant.gep1192, i64 %indvars.iv.next1165.1
  store float %543, ptr %gep1193.2, align 4, !tbaa !9
  %indvars.iv.next1165.2 = add nuw nsw i64 %indvars.iv1164, 3
  %544 = getelementptr inbounds float, ptr %65, i64 %indvars.iv.next1165.2
  %545 = load float, ptr %544, align 4, !tbaa !9
  %546 = fdiv float %519, %545
  %gep1193.3 = getelementptr float, ptr %invariant.gep1192, i64 %indvars.iv.next1165.2
  store float %546, ptr %gep1193.3, align 4, !tbaa !9
  %indvars.iv.next1165.3 = add nuw nsw i64 %indvars.iv1164, 4
  %exitcond1168.not.3 = icmp eq i64 %indvars.iv.next1165.3, %wide.trip.count1167
  br i1 %exitcond1168.not.3, label %._crit_edge1112, label %scalar.ph, !llvm.loop !26

._crit_edge1112:                                  ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block
  store i32 %.pre1184, ptr %31, align 4, !tbaa !5
  %.not9651118 = icmp slt i32 %.pre1184, 1
  br i1 %.not9651118, label %.loopexit1048, label %.lr.ph1121

._crit_edge1112.thread:                           ; preds = %518
  store i32 %.pre1184, ptr %31, align 4, !tbaa !5
  %.not96511181189 = icmp slt i32 %.pre1184, 1
  br i1 %.not96511181189, label %.loopexit1048, label %..loopexit1048_crit_edge

.lr.ph1121:                                       ; preds = %._crit_edge1112
  br i1 %.not9641108, label %..loopexit1048_crit_edge, label %.lr.ph1116.preheader

.lr.ph1116.preheader:                             ; preds = %.lr.ph1121
  %547 = zext nneg i32 %.pre1184 to i64
  %548 = add nuw i32 %507, 1
  %549 = sext i32 %62 to i64
  %550 = add nuw i32 %.pre1184, 1
  %wide.trip.count1177 = zext i32 %550 to i64
  %wide.trip.count1172 = zext i32 %548 to i64
  %invariant.gep1194 = getelementptr inbounds float, ptr %65, i64 %547
  %551 = shl nsw i64 %549, 2
  %552 = shl nsw i64 %63, 2
  %553 = getelementptr i8, ptr %21, i64 %551
  %554 = getelementptr i8, ptr %553, i64 %552
  %scevgep = getelementptr i8, ptr %554, i64 4
  %555 = shl nuw nsw i64 %wide.trip.count1177, 2
  %556 = add nsw i64 %555, -4
  %557 = mul i64 %556, %549
  %558 = shl nuw nsw i64 %wide.trip.count1167, 2
  %559 = getelementptr i8, ptr %21, i64 %557
  %560 = getelementptr i8, ptr %559, i64 %552
  %scevgep1202 = getelementptr i8, ptr %560, i64 %558
  %561 = shl nuw nsw i64 %547, 2
  %scevgep1203 = getelementptr i8, ptr %25, i64 %561
  %562 = getelementptr i8, ptr %25, i64 %561
  %563 = getelementptr i8, ptr %562, i64 %558
  %scevgep1204 = getelementptr i8, ptr %563, i64 -4
  %564 = zext nneg i32 %507 to i64
  %565 = zext nneg i32 %507 to i64
  %min.iters.check1207 = icmp ult i32 %507, 8
  %bound0 = icmp ult ptr %scevgep, %scevgep1204
  %bound1 = icmp ult ptr %scevgep1203, %scevgep1202
  %found.conflict = and i1 %bound0, %bound1
  %stride.check = icmp slt i32 %62, 0
  %566 = or i1 %found.conflict, %stride.check
  %n.vec1210 = and i64 %564, 2147483640
  %ind.end1211 = or disjoint i64 %n.vec1210, 1
  %cmp.n1221 = icmp eq i64 %n.vec1210, %564
  br label %.lr.ph1116

.lr.ph1116:                                       ; preds = %.lr.ph1116.preheader, %._crit_edge1117
  %indvars.iv1174 = phi i64 [ 1, %.lr.ph1116.preheader ], [ %indvars.iv.next1175, %._crit_edge1117 ]
  %567 = mul nsw i64 %indvars.iv1174, %549
  %invariant.gep1196 = getelementptr float, ptr %64, i64 %567
  %brmerge = select i1 %min.iters.check1207, i1 true, i1 %566
  br i1 %brmerge, label %scalar.ph1206.preheader, label %vector.body1213

vector.body1213:                                  ; preds = %.lr.ph1116, %vector.body1213
  %index1214 = phi i64 [ %index.next1220, %vector.body1213 ], [ 0, %.lr.ph1116 ]
  %offset.idx1215 = or disjoint i64 %index1214, 1
  %568 = getelementptr inbounds float, ptr %invariant.gep1194, i64 %offset.idx1215
  %569 = getelementptr inbounds i8, ptr %568, i64 16
  %wide.load1216 = load <4 x float>, ptr %568, align 4, !tbaa !9, !alias.scope !27
  %wide.load1217 = load <4 x float>, ptr %569, align 4, !tbaa !9, !alias.scope !27
  %570 = getelementptr float, ptr %invariant.gep1196, i64 %offset.idx1215
  %571 = getelementptr i8, ptr %570, i64 16
  %wide.load1218 = load <4 x float>, ptr %570, align 4, !tbaa !9, !alias.scope !30, !noalias !27
  %wide.load1219 = load <4 x float>, ptr %571, align 4, !tbaa !9, !alias.scope !30, !noalias !27
  %572 = fmul <4 x float> %wide.load1216, %wide.load1218
  %573 = fmul <4 x float> %wide.load1217, %wide.load1219
  store <4 x float> %572, ptr %570, align 4, !tbaa !9, !alias.scope !30, !noalias !27
  store <4 x float> %573, ptr %571, align 4, !tbaa !9, !alias.scope !30, !noalias !27
  %index.next1220 = add nuw i64 %index1214, 8
  %574 = icmp eq i64 %index.next1220, %n.vec1210
  br i1 %574, label %middle.block1205, label %vector.body1213, !llvm.loop !32

middle.block1205:                                 ; preds = %vector.body1213
  br i1 %cmp.n1221, label %._crit_edge1117, label %scalar.ph1206.preheader

scalar.ph1206.preheader:                          ; preds = %.lr.ph1116, %middle.block1205
  %indvars.iv1169.ph = phi i64 [ 1, %.lr.ph1116 ], [ %ind.end1211, %middle.block1205 ]
  %575 = sub nsw i64 %wide.trip.count1167, %indvars.iv1169.ph
  %576 = sub nsw i64 %565, %indvars.iv1169.ph
  %xtraiter1225 = and i64 %575, 3
  %lcmp.mod1226.not = icmp eq i64 %xtraiter1225, 0
  br i1 %lcmp.mod1226.not, label %scalar.ph1206.prol.loopexit, label %scalar.ph1206.prol

scalar.ph1206.prol:                               ; preds = %scalar.ph1206.preheader, %scalar.ph1206.prol
  %indvars.iv1169.prol = phi i64 [ %indvars.iv.next1170.prol, %scalar.ph1206.prol ], [ %indvars.iv1169.ph, %scalar.ph1206.preheader ]
  %prol.iter1227 = phi i64 [ %prol.iter1227.next, %scalar.ph1206.prol ], [ 0, %scalar.ph1206.preheader ]
  %gep1195.prol = getelementptr inbounds float, ptr %invariant.gep1194, i64 %indvars.iv1169.prol
  %577 = load float, ptr %gep1195.prol, align 4, !tbaa !9
  %gep1197.prol = getelementptr float, ptr %invariant.gep1196, i64 %indvars.iv1169.prol
  %578 = load float, ptr %gep1197.prol, align 4, !tbaa !9
  %579 = fmul float %577, %578
  store float %579, ptr %gep1197.prol, align 4, !tbaa !9
  %indvars.iv.next1170.prol = add nuw nsw i64 %indvars.iv1169.prol, 1
  %prol.iter1227.next = add i64 %prol.iter1227, 1
  %prol.iter1227.cmp.not = icmp eq i64 %prol.iter1227.next, %xtraiter1225
  br i1 %prol.iter1227.cmp.not, label %scalar.ph1206.prol.loopexit, label %scalar.ph1206.prol, !llvm.loop !33

scalar.ph1206.prol.loopexit:                      ; preds = %scalar.ph1206.prol, %scalar.ph1206.preheader
  %indvars.iv1169.unr = phi i64 [ %indvars.iv1169.ph, %scalar.ph1206.preheader ], [ %indvars.iv.next1170.prol, %scalar.ph1206.prol ]
  %580 = icmp ult i64 %576, 3
  br i1 %580, label %._crit_edge1117, label %scalar.ph1206

scalar.ph1206:                                    ; preds = %scalar.ph1206.prol.loopexit, %scalar.ph1206
  %indvars.iv1169 = phi i64 [ %indvars.iv.next1170.3, %scalar.ph1206 ], [ %indvars.iv1169.unr, %scalar.ph1206.prol.loopexit ]
  %gep1195 = getelementptr inbounds float, ptr %invariant.gep1194, i64 %indvars.iv1169
  %581 = load float, ptr %gep1195, align 4, !tbaa !9
  %gep1197 = getelementptr float, ptr %invariant.gep1196, i64 %indvars.iv1169
  %582 = load float, ptr %gep1197, align 4, !tbaa !9
  %583 = fmul float %581, %582
  store float %583, ptr %gep1197, align 4, !tbaa !9
  %indvars.iv.next1170 = add nuw nsw i64 %indvars.iv1169, 1
  %gep1195.1 = getelementptr inbounds float, ptr %invariant.gep1194, i64 %indvars.iv.next1170
  %584 = load float, ptr %gep1195.1, align 4, !tbaa !9
  %gep1197.1 = getelementptr float, ptr %invariant.gep1196, i64 %indvars.iv.next1170
  %585 = load float, ptr %gep1197.1, align 4, !tbaa !9
  %586 = fmul float %584, %585
  store float %586, ptr %gep1197.1, align 4, !tbaa !9
  %indvars.iv.next1170.1 = add nuw nsw i64 %indvars.iv1169, 2
  %gep1195.2 = getelementptr inbounds float, ptr %invariant.gep1194, i64 %indvars.iv.next1170.1
  %587 = load float, ptr %gep1195.2, align 4, !tbaa !9
  %gep1197.2 = getelementptr float, ptr %invariant.gep1196, i64 %indvars.iv.next1170.1
  %588 = load float, ptr %gep1197.2, align 4, !tbaa !9
  %589 = fmul float %587, %588
  store float %589, ptr %gep1197.2, align 4, !tbaa !9
  %indvars.iv.next1170.2 = add nuw nsw i64 %indvars.iv1169, 3
  %gep1195.3 = getelementptr inbounds float, ptr %invariant.gep1194, i64 %indvars.iv.next1170.2
  %590 = load float, ptr %gep1195.3, align 4, !tbaa !9
  %gep1197.3 = getelementptr float, ptr %invariant.gep1196, i64 %indvars.iv.next1170.2
  %591 = load float, ptr %gep1197.3, align 4, !tbaa !9
  %592 = fmul float %590, %591
  store float %592, ptr %gep1197.3, align 4, !tbaa !9
  %indvars.iv.next1170.3 = add nuw nsw i64 %indvars.iv1169, 4
  %exitcond1173.not.3 = icmp eq i64 %indvars.iv.next1170.3, %wide.trip.count1172
  br i1 %exitcond1173.not.3, label %._crit_edge1117, label %scalar.ph1206, !llvm.loop !34

._crit_edge1117:                                  ; preds = %scalar.ph1206.prol.loopexit, %scalar.ph1206, %middle.block1205
  %indvars.iv.next1175 = add nuw nsw i64 %indvars.iv1174, 1
  %exitcond1178.not = icmp eq i64 %indvars.iv.next1175, %wide.trip.count1177
  br i1 %exitcond1178.not, label %..loopexit1048_crit_edge, label %.lr.ph1116, !llvm.loop !35

..loopexit1048_crit_edge:                         ; preds = %._crit_edge1117, %._crit_edge1112.thread, %.lr.ph1121
  store i32 %507, ptr %32, align 4, !tbaa !5
  br label %.loopexit1048

.loopexit1048:                                    ; preds = %.lr.ph1107, %._crit_edge1112.thread, %508, %._crit_edge1112, %..loopexit1048_crit_edge
  %.not968 = icmp eq i32 %75, 0
  br i1 %.not968, label %597, label %593

593:                                              ; preds = %.loopexit1048
  %594 = call i32 @sgemm_(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) #4
  %595 = call i32 @slacpy_(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) #4
  %596 = call i32 @sgemm_(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) #4
  br label %607

597:                                              ; preds = %.loopexit1048
  %598 = call i32 @sgemm_(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) #4
  %599 = call i32 @sgemm_(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) #4
  %600 = icmp ne i32 %66, 0
  %or.cond15 = select i1 %600, i1 true, i1 %96
  br i1 %or.cond15, label %601, label %607

601:                                              ; preds = %597
  %602 = call i32 @lsame_(ptr noundef nonnull %44, ptr noundef nonnull @.str.6) #4
  %.not969 = icmp eq i32 %602, 0
  br i1 %.not969, label %605, label %603

603:                                              ; preds = %601
  %604 = call i32 @slacpy_(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) #4
  br label %607

605:                                              ; preds = %601
  %606 = call i32 @slacpy_(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) #4
  br label %607

607:                                              ; preds = %597, %605, %603, %593
  %608 = load i32, ptr %26, align 4, !tbaa !5
  %609 = load i32, ptr %6, align 4, !tbaa !5
  %610 = sub nsw i32 %608, %609
  store i32 %610, ptr %31, align 4, !tbaa !5
  %611 = sext i32 %609 to i64
  %612 = getelementptr float, ptr %65, i64 %611
  %613 = getelementptr i8, ptr %612, i64 4
  %614 = call i32 @sgeev_(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 %613, ptr noundef nonnull %31, ptr noundef nonnull %37) #4
  %615 = load i32, ptr %37, align 4, !tbaa !5
  %616 = icmp sgt i32 %615, 0
  br i1 %616, label %617, label %618

617:                                              ; preds = %607
  store i32 3, ptr %29, align 4, !tbaa !5
  br label %686

618:                                              ; preds = %607
  br i1 %or.cond9, label %619, label %.loopexit

619:                                              ; preds = %618
  %.not970 = icmp eq i32 %66, 0
  br i1 %.not970, label %629, label %620

620:                                              ; preds = %619
  br i1 %.not968, label %623, label %621

621:                                              ; preds = %620
  %622 = call i32 @sgemm_(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) #4
  br label %633

623:                                              ; preds = %620
  %624 = call i32 @sgemm_(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) #4
  %625 = call i32 @sgemm_(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) #4
  %626 = call i32 @slacpy_(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) #4
  br i1 %96, label %627, label %633

627:                                              ; preds = %623
  %628 = call i32 @slacpy_(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) #4
  br label %633

629:                                              ; preds = %619
  br i1 %96, label %630, label %633

630:                                              ; preds = %629
  %631 = call i32 @sgemm_(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) #4
  %632 = call i32 @sgemm_(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) #4
  br label %633

633:                                              ; preds = %629, %630, %621, %627, %623
  br i1 %215, label %634, label %636

634:                                              ; preds = %633
  %635 = call i32 @sgemm_(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) #4
  br label %636

636:                                              ; preds = %634, %633
  br i1 %.not970, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %636
  %invariant.gep1122 = getelementptr i8, ptr %60, i64 4
  %invariant.gep1124 = getelementptr i8, ptr %55, i64 4
  %637 = load i32, ptr %13, align 4, !tbaa !5
  %.not9741132 = icmp slt i32 %637, 1
  br i1 %.not9741132, label %.loopexit, label %.lr.ph1134

.lr.ph1134:                                       ; preds = %.preheader
  %638 = getelementptr inbounds i8, ptr %43, i64 4
  %639 = getelementptr inbounds i8, ptr %43, i64 8
  %640 = getelementptr inbounds i8, ptr %43, i64 12
  br label %641

641:                                              ; preds = %.lr.ph1134, %672
  %.101133 = phi i32 [ 1, %.lr.ph1134 ], [ %673, %672 ]
  %642 = zext nneg i32 %.101133 to i64
  %643 = getelementptr inbounds float, ptr %57, i64 %642
  %644 = load float, ptr %643, align 4, !tbaa !9
  %645 = load float, ptr %35, align 4, !tbaa !9
  %646 = fcmp oeq float %644, %645
  %647 = getelementptr inbounds float, ptr %56, i64 %642
  %648 = load float, ptr %647, align 4, !tbaa !9
  br i1 %646, label %649, label %658

649:                                              ; preds = %641
  %650 = fneg float %648
  store float %650, ptr %33, align 4, !tbaa !9
  %651 = mul nsw i32 %.101133, %58
  %652 = sext i32 %651 to i64
  %gep1129 = getelementptr float, ptr %invariant.gep1122, i64 %652
  %653 = mul nsw i32 %.101133, %53
  %654 = sext i32 %653 to i64
  %gep1131 = getelementptr float, ptr %invariant.gep1124, i64 %654
  %655 = call i32 @saxpy_(ptr noundef nonnull %5, ptr noundef nonnull %33, ptr noundef %gep1129, ptr noundef nonnull @c__1, ptr noundef %gep1131, ptr noundef nonnull @c__1) #4
  %656 = call float @snrm2_(ptr noundef nonnull %5, ptr noundef %gep1131, ptr noundef nonnull @c__1) #4
  %657 = getelementptr inbounds float, ptr %61, i64 %642
  store float %656, ptr %657, align 4, !tbaa !9
  br label %672

658:                                              ; preds = %641
  store float %648, ptr %43, align 16, !tbaa !9
  %659 = fneg float %644
  store float %659, ptr %638, align 4, !tbaa !9
  store float %644, ptr %639, align 8, !tbaa !9
  store float %648, ptr %640, align 4, !tbaa !9
  %660 = load float, ptr %49, align 4, !tbaa !9
  %661 = fneg float %660
  store float %661, ptr %33, align 4, !tbaa !9
  %662 = mul nsw i32 %.101133, %58
  %663 = sext i32 %662 to i64
  %gep1123 = getelementptr float, ptr %invariant.gep1122, i64 %663
  %664 = mul nsw i32 %.101133, %53
  %665 = sext i32 %664 to i64
  %gep1125 = getelementptr float, ptr %invariant.gep1124, i64 %665
  %666 = call i32 @sgemm_(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 %gep1123, ptr noundef nonnull %17, ptr noundef nonnull %43, ptr noundef nonnull @c__2, ptr noundef nonnull %49, ptr noundef %gep1125, ptr noundef nonnull %10) #4
  %667 = load i32, ptr %6, align 4, !tbaa !5
  %668 = sext i32 %667 to i64
  %gep1127 = getelementptr float, ptr %25, i64 %668
  %669 = call float @slange_(ptr noundef nonnull @.str.7, ptr noundef nonnull %5, ptr noundef nonnull @c__2, ptr noundef %gep1125, ptr noundef nonnull %10, ptr noundef %gep1127) #4
  %670 = getelementptr inbounds float, ptr %61, i64 %642
  store float %669, ptr %670, align 4, !tbaa !9
  %671 = getelementptr i8, ptr %670, i64 4
  store float %669, ptr %671, align 4, !tbaa !9
  br label %672

672:                                              ; preds = %658, %649
  %.sink1198 = phi i32 [ 2, %658 ], [ 1, %649 ]
  %673 = add nuw nsw i32 %.101133, %.sink1198
  %674 = load i32, ptr %13, align 4, !tbaa !5
  %.not974 = icmp sgt i32 %673, %674
  br i1 %.not974, label %.loopexit, label %641, !llvm.loop !36

.loopexit:                                        ; preds = %672, %.preheader, %636, %618
  %675 = load i32, ptr %4, align 4, !tbaa !5
  %676 = icmp eq i32 %675, 4
  br i1 %676, label %677, label %685

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

685:                                              ; preds = %677, %.loopexit
  %.not975 = icmp eq i32 %.5867, 0
  %.996 = select i1 %.not975, i32 0, i32 4
  store i32 %.996, ptr %29, align 4, !tbaa !5
  br label %686

686:                                              ; preds = %685, %617, %466, %461, %298, %.thread1040, %.thread1016, %140
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #4
  ret i32 0
}

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

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

declare i32 @sgesvd_(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 @sgesdd_(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 @sgesvdq_(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 @sgeev_(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 float @slamch_(ptr noundef) local_unnamed_addr #2

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

declare i32 @sisnan_(ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @sgejsv_(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 @sgemm_(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 @saxpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare float @snrm2_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare float @slange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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

!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 = !{!"float", !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