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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @sgeevx_(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) #0 {
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %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 i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca i64, align 8
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca float, align 4
  %58 = alloca float, align 4
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca float, align 4
  %62 = alloca float, align 4
  %63 = alloca float, align 4
  %64 = alloca [1 x i8], align 1
  %65 = alloca float, align 4
  %66 = alloca [1 x float], align 4
  %67 = alloca float, align 4
  %68 = alloca [1 x i8], align 1
  %69 = alloca float, align 4
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca float, align 4
  %77 = alloca [1 x i64], align 8
  %78 = alloca float, align 4
  %79 = alloca i64, align 8
  %80 = alloca i64, align 8
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %84 = alloca i64, align 8
  %85 = alloca float, align 4
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca i64, align 8
  %89 = alloca i64, align 8
  %90 = alloca i32, align 4
  store ptr %0, ptr %25, align 8, !tbaa !5
  store ptr %1, ptr %26, align 8, !tbaa !5
  store ptr %2, ptr %27, align 8, !tbaa !5
  store ptr %3, ptr %28, align 8, !tbaa !5
  store ptr %4, ptr %29, align 8, !tbaa !5
  store ptr %5, ptr %30, align 8, !tbaa !5
  store ptr %6, ptr %31, align 8, !tbaa !5
  store ptr %7, ptr %32, align 8, !tbaa !5
  store ptr %8, ptr %33, align 8, !tbaa !5
  store ptr %9, ptr %34, align 8, !tbaa !5
  store ptr %10, ptr %35, align 8, !tbaa !5
  store ptr %11, ptr %36, align 8, !tbaa !5
  store ptr %12, ptr %37, align 8, !tbaa !5
  store ptr %13, ptr %38, align 8, !tbaa !5
  store ptr %14, ptr %39, align 8, !tbaa !5
  store ptr %15, ptr %40, align 8, !tbaa !5
  store ptr %16, ptr %41, align 8, !tbaa !5
  store ptr %17, ptr %42, align 8, !tbaa !5
  store ptr %18, ptr %43, align 8, !tbaa !5
  store ptr %19, ptr %44, align 8, !tbaa !5
  store ptr %20, ptr %45, align 8, !tbaa !5
  store ptr %21, ptr %46, align 8, !tbaa !5
  store ptr %22, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #5
  %91 = load ptr, ptr %31, align 8, !tbaa !5
  %92 = load i64, ptr %91, align 8, !tbaa !9
  store i64 %92, ptr %48, align 8, !tbaa !9
  %93 = load i64, ptr %48, align 8, !tbaa !9
  %94 = add nsw i64 1, %93
  store i64 %94, ptr %49, align 8, !tbaa !9
  %95 = load i64, ptr %49, align 8, !tbaa !9
  %96 = load ptr, ptr %30, align 8, !tbaa !5
  %97 = sub i64 0, %95
  %98 = getelementptr inbounds float, ptr %96, i64 %97
  store ptr %98, ptr %30, align 8, !tbaa !5
  %99 = load ptr, ptr %32, align 8, !tbaa !5
  %100 = getelementptr inbounds float, ptr %99, i32 -1
  store ptr %100, ptr %32, align 8, !tbaa !5
  %101 = load ptr, ptr %33, align 8, !tbaa !5
  %102 = getelementptr inbounds float, ptr %101, i32 -1
  store ptr %102, ptr %33, align 8, !tbaa !5
  %103 = load ptr, ptr %35, align 8, !tbaa !5
  %104 = load i64, ptr %103, align 8, !tbaa !9
  store i64 %104, ptr %50, align 8, !tbaa !9
  %105 = load i64, ptr %50, align 8, !tbaa !9
  %106 = add nsw i64 1, %105
  store i64 %106, ptr %51, align 8, !tbaa !9
  %107 = load i64, ptr %51, align 8, !tbaa !9
  %108 = load ptr, ptr %34, align 8, !tbaa !5
  %109 = sub i64 0, %107
  %110 = getelementptr inbounds float, ptr %108, i64 %109
  store ptr %110, ptr %34, align 8, !tbaa !5
  %111 = load ptr, ptr %37, align 8, !tbaa !5
  %112 = load i64, ptr %111, align 8, !tbaa !9
  store i64 %112, ptr %52, align 8, !tbaa !9
  %113 = load i64, ptr %52, align 8, !tbaa !9
  %114 = add nsw i64 1, %113
  store i64 %114, ptr %53, align 8, !tbaa !9
  %115 = load i64, ptr %53, align 8, !tbaa !9
  %116 = load ptr, ptr %36, align 8, !tbaa !5
  %117 = sub i64 0, %115
  %118 = getelementptr inbounds float, ptr %116, i64 %117
  store ptr %118, ptr %36, align 8, !tbaa !5
  %119 = load ptr, ptr %40, align 8, !tbaa !5
  %120 = getelementptr inbounds float, ptr %119, i32 -1
  store ptr %120, ptr %40, align 8, !tbaa !5
  %121 = load ptr, ptr %42, align 8, !tbaa !5
  %122 = getelementptr inbounds float, ptr %121, i32 -1
  store ptr %122, ptr %42, align 8, !tbaa !5
  %123 = load ptr, ptr %43, align 8, !tbaa !5
  %124 = getelementptr inbounds float, ptr %123, i32 -1
  store ptr %124, ptr %43, align 8, !tbaa !5
  %125 = load ptr, ptr %44, align 8, !tbaa !5
  %126 = getelementptr inbounds float, ptr %125, i32 -1
  store ptr %126, ptr %44, align 8, !tbaa !5
  %127 = load ptr, ptr %46, align 8, !tbaa !5
  %128 = getelementptr inbounds i64, ptr %127, i32 -1
  store ptr %128, ptr %46, align 8, !tbaa !5
  %129 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 0, ptr %129, align 8, !tbaa !9
  %130 = load ptr, ptr %45, align 8, !tbaa !5
  %131 = load i64, ptr %130, align 8, !tbaa !9
  %132 = icmp eq i64 %131, -1
  %133 = zext i1 %132 to i32
  %134 = sext i32 %133 to i64
  store i64 %134, ptr %86, align 8, !tbaa !9
  %135 = load ptr, ptr %26, align 8, !tbaa !5
  %136 = call i64 @lsame_(ptr noundef %135, ptr noundef @.str)
  store i64 %136, ptr %81, align 8, !tbaa !9
  %137 = load ptr, ptr %27, align 8, !tbaa !5
  %138 = call i64 @lsame_(ptr noundef %137, ptr noundef @.str)
  store i64 %138, ptr %87, align 8, !tbaa !9
  %139 = load ptr, ptr %28, align 8, !tbaa !5
  %140 = call i64 @lsame_(ptr noundef %139, ptr noundef @.str.1)
  store i64 %140, ptr %88, align 8, !tbaa !9
  %141 = load ptr, ptr %28, align 8, !tbaa !5
  %142 = call i64 @lsame_(ptr noundef %141, ptr noundef @.str.2)
  store i64 %142, ptr %84, align 8, !tbaa !9
  %143 = load ptr, ptr %28, align 8, !tbaa !5
  %144 = call i64 @lsame_(ptr noundef %143, ptr noundef @.str)
  store i64 %144, ptr %89, align 8, !tbaa !9
  %145 = load ptr, ptr %28, align 8, !tbaa !5
  %146 = call i64 @lsame_(ptr noundef %145, ptr noundef @.str.3)
  store i64 %146, ptr %82, align 8, !tbaa !9
  %147 = load ptr, ptr %25, align 8, !tbaa !5
  %148 = call i64 @lsame_(ptr noundef %147, ptr noundef @.str.1)
  %149 = icmp ne i64 %148, 0
  br i1 %149, label %164, label %150

150:                                              ; preds = %23
  %151 = load ptr, ptr %25, align 8, !tbaa !5
  %152 = call i64 @lsame_(ptr noundef %151, ptr noundef @.str.4)
  %153 = icmp ne i64 %152, 0
  br i1 %153, label %164, label %154

154:                                              ; preds = %150
  %155 = load ptr, ptr %25, align 8, !tbaa !5
  %156 = call i64 @lsame_(ptr noundef %155, ptr noundef @.str.5)
  %157 = icmp ne i64 %156, 0
  br i1 %157, label %164, label %158

158:                                              ; preds = %154
  %159 = load ptr, ptr %25, align 8, !tbaa !5
  %160 = call i64 @lsame_(ptr noundef %159, ptr noundef @.str.3)
  %161 = icmp ne i64 %160, 0
  br i1 %161, label %164, label %162

162:                                              ; preds = %158
  %163 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -1, ptr %163, align 8, !tbaa !9
  br label %266

164:                                              ; preds = %158, %154, %150, %23
  %165 = load i64, ptr %81, align 8, !tbaa !9
  %166 = icmp ne i64 %165, 0
  br i1 %166, label %173, label %167

167:                                              ; preds = %164
  %168 = load ptr, ptr %26, align 8, !tbaa !5
  %169 = call i64 @lsame_(ptr noundef %168, ptr noundef @.str.1)
  %170 = icmp ne i64 %169, 0
  br i1 %170, label %173, label %171

171:                                              ; preds = %167
  %172 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -2, ptr %172, align 8, !tbaa !9
  br label %265

173:                                              ; preds = %167, %164
  %174 = load i64, ptr %87, align 8, !tbaa !9
  %175 = icmp ne i64 %174, 0
  br i1 %175, label %182, label %176

176:                                              ; preds = %173
  %177 = load ptr, ptr %27, align 8, !tbaa !5
  %178 = call i64 @lsame_(ptr noundef %177, ptr noundef @.str.1)
  %179 = icmp ne i64 %178, 0
  br i1 %179, label %182, label %180

180:                                              ; preds = %176
  %181 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -3, ptr %181, align 8, !tbaa !9
  br label %264

182:                                              ; preds = %176, %173
  %183 = load i64, ptr %88, align 8, !tbaa !9
  %184 = icmp ne i64 %183, 0
  br i1 %184, label %194, label %185

185:                                              ; preds = %182
  %186 = load i64, ptr %84, align 8, !tbaa !9
  %187 = icmp ne i64 %186, 0
  br i1 %187, label %194, label %188

188:                                              ; preds = %185
  %189 = load i64, ptr %82, align 8, !tbaa !9
  %190 = icmp ne i64 %189, 0
  br i1 %190, label %194, label %191

191:                                              ; preds = %188
  %192 = load i64, ptr %89, align 8, !tbaa !9
  %193 = icmp ne i64 %192, 0
  br i1 %193, label %194, label %206

194:                                              ; preds = %191, %188, %185, %182
  %195 = load i64, ptr %84, align 8, !tbaa !9
  %196 = icmp ne i64 %195, 0
  br i1 %196, label %200, label %197

197:                                              ; preds = %194
  %198 = load i64, ptr %82, align 8, !tbaa !9
  %199 = icmp ne i64 %198, 0
  br i1 %199, label %200, label %208

200:                                              ; preds = %197, %194
  %201 = load i64, ptr %81, align 8, !tbaa !9
  %202 = icmp ne i64 %201, 0
  br i1 %202, label %203, label %206

203:                                              ; preds = %200
  %204 = load i64, ptr %87, align 8, !tbaa !9
  %205 = icmp ne i64 %204, 0
  br i1 %205, label %208, label %206

206:                                              ; preds = %203, %200, %191
  %207 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -4, ptr %207, align 8, !tbaa !9
  br label %263

208:                                              ; preds = %203, %197
  %209 = load ptr, ptr %29, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  %211 = icmp slt i64 %210, 0
  br i1 %211, label %212, label %214

212:                                              ; preds = %208
  %213 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -5, ptr %213, align 8, !tbaa !9
  br label %262

214:                                              ; preds = %208
  %215 = load ptr, ptr %31, align 8, !tbaa !5
  %216 = load i64, ptr %215, align 8, !tbaa !9
  %217 = load ptr, ptr %29, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = icmp sge i64 1, %218
  br i1 %219, label %220, label %221

220:                                              ; preds = %214
  br label %224

221:                                              ; preds = %214
  %222 = load ptr, ptr %29, align 8, !tbaa !5
  %223 = load i64, ptr %222, align 8, !tbaa !9
  br label %224

224:                                              ; preds = %221, %220
  %225 = phi i64 [ 1, %220 ], [ %223, %221 ]
  %226 = icmp slt i64 %216, %225
  br i1 %226, label %227, label %229

227:                                              ; preds = %224
  %228 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -7, ptr %228, align 8, !tbaa !9
  br label %261

229:                                              ; preds = %224
  %230 = load ptr, ptr %35, align 8, !tbaa !5
  %231 = load i64, ptr %230, align 8, !tbaa !9
  %232 = icmp slt i64 %231, 1
  br i1 %232, label %242, label %233

233:                                              ; preds = %229
  %234 = load i64, ptr %81, align 8, !tbaa !9
  %235 = icmp ne i64 %234, 0
  br i1 %235, label %236, label %244

236:                                              ; preds = %233
  %237 = load ptr, ptr %35, align 8, !tbaa !5
  %238 = load i64, ptr %237, align 8, !tbaa !9
  %239 = load ptr, ptr %29, align 8, !tbaa !5
  %240 = load i64, ptr %239, align 8, !tbaa !9
  %241 = icmp slt i64 %238, %240
  br i1 %241, label %242, label %244

242:                                              ; preds = %236, %229
  %243 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -11, ptr %243, align 8, !tbaa !9
  br label %260

244:                                              ; preds = %236, %233
  %245 = load ptr, ptr %37, align 8, !tbaa !5
  %246 = load i64, ptr %245, align 8, !tbaa !9
  %247 = icmp slt i64 %246, 1
  br i1 %247, label %257, label %248

248:                                              ; preds = %244
  %249 = load i64, ptr %87, align 8, !tbaa !9
  %250 = icmp ne i64 %249, 0
  br i1 %250, label %251, label %259

251:                                              ; preds = %248
  %252 = load ptr, ptr %37, align 8, !tbaa !5
  %253 = load i64, ptr %252, align 8, !tbaa !9
  %254 = load ptr, ptr %29, align 8, !tbaa !5
  %255 = load i64, ptr %254, align 8, !tbaa !9
  %256 = icmp slt i64 %253, %255
  br i1 %256, label %257, label %259

257:                                              ; preds = %251, %244
  %258 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -13, ptr %258, align 8, !tbaa !9
  br label %259

259:                                              ; preds = %257, %251, %248
  br label %260

260:                                              ; preds = %259, %242
  br label %261

261:                                              ; preds = %260, %227
  br label %262

262:                                              ; preds = %261, %212
  br label %263

263:                                              ; preds = %262, %206
  br label %264

264:                                              ; preds = %263, %180
  br label %265

265:                                              ; preds = %264, %171
  br label %266

266:                                              ; preds = %265, %162
  %267 = load ptr, ptr %47, align 8, !tbaa !5
  %268 = load i64, ptr %267, align 8, !tbaa !9
  %269 = icmp eq i64 %268, 0
  br i1 %269, label %270, label %563

270:                                              ; preds = %266
  %271 = load ptr, ptr %29, align 8, !tbaa !5
  %272 = load i64, ptr %271, align 8, !tbaa !9
  %273 = icmp eq i64 %272, 0
  br i1 %273, label %274, label %275

274:                                              ; preds = %270
  store i64 1, ptr %79, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %548

275:                                              ; preds = %270
  %276 = load ptr, ptr %29, align 8, !tbaa !5
  %277 = load i64, ptr %276, align 8, !tbaa !9
  %278 = load ptr, ptr %29, align 8, !tbaa !5
  %279 = load i64, ptr %278, align 8, !tbaa !9
  %280 = load ptr, ptr %29, align 8, !tbaa !5
  %281 = load ptr, ptr %29, align 8, !tbaa !5
  %282 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %280, ptr noundef @c__1, ptr noundef %281, ptr noundef @c__0)
  %283 = mul nsw i64 %279, %282
  %284 = add nsw i64 %277, %283
  store i64 %284, ptr %80, align 8, !tbaa !9
  %285 = load i64, ptr %81, align 8, !tbaa !9
  %286 = icmp ne i64 %285, 0
  br i1 %286, label %287, label %306

287:                                              ; preds = %275
  %288 = load ptr, ptr %29, align 8, !tbaa !5
  %289 = load ptr, ptr %29, align 8, !tbaa !5
  %290 = load ptr, ptr %30, align 8, !tbaa !5
  %291 = load i64, ptr %49, align 8, !tbaa !9
  %292 = getelementptr inbounds float, ptr %290, i64 %291
  %293 = load ptr, ptr %31, align 8, !tbaa !5
  %294 = load ptr, ptr %32, align 8, !tbaa !5
  %295 = getelementptr inbounds float, ptr %294, i64 1
  %296 = load ptr, ptr %33, align 8, !tbaa !5
  %297 = getelementptr inbounds float, ptr %296, i64 1
  %298 = load ptr, ptr %34, align 8, !tbaa !5
  %299 = load i64, ptr %51, align 8, !tbaa !9
  %300 = getelementptr inbounds float, ptr %298, i64 %299
  %301 = load ptr, ptr %35, align 8, !tbaa !5
  %302 = load ptr, ptr %44, align 8, !tbaa !5
  %303 = getelementptr inbounds float, ptr %302, i64 1
  %304 = load ptr, ptr %47, align 8, !tbaa !5
  %305 = call i32 @shseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %288, ptr noundef @c__1, ptr noundef %289, ptr noundef %292, ptr noundef %293, ptr noundef %295, ptr noundef %297, ptr noundef %300, ptr noundef %301, ptr noundef %303, ptr noundef @c_n1, ptr noundef %304)
  br label %371

306:                                              ; preds = %275
  %307 = load i64, ptr %87, align 8, !tbaa !9
  %308 = icmp ne i64 %307, 0
  br i1 %308, label %309, label %328

309:                                              ; preds = %306
  %310 = load ptr, ptr %29, align 8, !tbaa !5
  %311 = load ptr, ptr %29, align 8, !tbaa !5
  %312 = load ptr, ptr %30, align 8, !tbaa !5
  %313 = load i64, ptr %49, align 8, !tbaa !9
  %314 = getelementptr inbounds float, ptr %312, i64 %313
  %315 = load ptr, ptr %31, align 8, !tbaa !5
  %316 = load ptr, ptr %32, align 8, !tbaa !5
  %317 = getelementptr inbounds float, ptr %316, i64 1
  %318 = load ptr, ptr %33, align 8, !tbaa !5
  %319 = getelementptr inbounds float, ptr %318, i64 1
  %320 = load ptr, ptr %36, align 8, !tbaa !5
  %321 = load i64, ptr %53, align 8, !tbaa !9
  %322 = getelementptr inbounds float, ptr %320, i64 %321
  %323 = load ptr, ptr %37, align 8, !tbaa !5
  %324 = load ptr, ptr %44, align 8, !tbaa !5
  %325 = getelementptr inbounds float, ptr %324, i64 1
  %326 = load ptr, ptr %47, align 8, !tbaa !5
  %327 = call i32 @shseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %310, ptr noundef @c__1, ptr noundef %311, ptr noundef %314, ptr noundef %315, ptr noundef %317, ptr noundef %319, ptr noundef %322, ptr noundef %323, ptr noundef %325, ptr noundef @c_n1, ptr noundef %326)
  br label %370

328:                                              ; preds = %306
  %329 = load i64, ptr %88, align 8, !tbaa !9
  %330 = icmp ne i64 %329, 0
  br i1 %330, label %331, label %350

331:                                              ; preds = %328
  %332 = load ptr, ptr %29, align 8, !tbaa !5
  %333 = load ptr, ptr %29, align 8, !tbaa !5
  %334 = load ptr, ptr %30, align 8, !tbaa !5
  %335 = load i64, ptr %49, align 8, !tbaa !9
  %336 = getelementptr inbounds float, ptr %334, i64 %335
  %337 = load ptr, ptr %31, align 8, !tbaa !5
  %338 = load ptr, ptr %32, align 8, !tbaa !5
  %339 = getelementptr inbounds float, ptr %338, i64 1
  %340 = load ptr, ptr %33, align 8, !tbaa !5
  %341 = getelementptr inbounds float, ptr %340, i64 1
  %342 = load ptr, ptr %36, align 8, !tbaa !5
  %343 = load i64, ptr %53, align 8, !tbaa !9
  %344 = getelementptr inbounds float, ptr %342, i64 %343
  %345 = load ptr, ptr %37, align 8, !tbaa !5
  %346 = load ptr, ptr %44, align 8, !tbaa !5
  %347 = getelementptr inbounds float, ptr %346, i64 1
  %348 = load ptr, ptr %47, align 8, !tbaa !5
  %349 = call i32 @shseqr_(ptr noundef @.str.2, ptr noundef @.str.1, ptr noundef %332, ptr noundef @c__1, ptr noundef %333, ptr noundef %336, ptr noundef %337, ptr noundef %339, ptr noundef %341, ptr noundef %344, ptr noundef %345, ptr noundef %347, ptr noundef @c_n1, ptr noundef %348)
  br label %369

350:                                              ; preds = %328
  %351 = load ptr, ptr %29, align 8, !tbaa !5
  %352 = load ptr, ptr %29, align 8, !tbaa !5
  %353 = load ptr, ptr %30, align 8, !tbaa !5
  %354 = load i64, ptr %49, align 8, !tbaa !9
  %355 = getelementptr inbounds float, ptr %353, i64 %354
  %356 = load ptr, ptr %31, align 8, !tbaa !5
  %357 = load ptr, ptr %32, align 8, !tbaa !5
  %358 = getelementptr inbounds float, ptr %357, i64 1
  %359 = load ptr, ptr %33, align 8, !tbaa !5
  %360 = getelementptr inbounds float, ptr %359, i64 1
  %361 = load ptr, ptr %36, align 8, !tbaa !5
  %362 = load i64, ptr %53, align 8, !tbaa !9
  %363 = getelementptr inbounds float, ptr %361, i64 %362
  %364 = load ptr, ptr %37, align 8, !tbaa !5
  %365 = load ptr, ptr %44, align 8, !tbaa !5
  %366 = getelementptr inbounds float, ptr %365, i64 1
  %367 = load ptr, ptr %47, align 8, !tbaa !5
  %368 = call i32 @shseqr_(ptr noundef @.str.4, ptr noundef @.str.1, ptr noundef %351, ptr noundef @c__1, ptr noundef %352, ptr noundef %355, ptr noundef %356, ptr noundef %358, ptr noundef %360, ptr noundef %363, ptr noundef %364, ptr noundef %366, ptr noundef @c_n1, ptr noundef %367)
  br label %369

369:                                              ; preds = %350, %331
  br label %370

370:                                              ; preds = %369, %309
  br label %371

371:                                              ; preds = %370, %287
  %372 = load ptr, ptr %44, align 8, !tbaa !5
  %373 = getelementptr inbounds float, ptr %372, i64 1
  %374 = load float, ptr %373, align 4, !tbaa !11
  %375 = fptosi float %374 to i64
  store i64 %375, ptr %83, align 8, !tbaa !9
  %376 = load i64, ptr %81, align 8, !tbaa !9
  %377 = icmp ne i64 %376, 0
  br i1 %377, label %440, label %378

378:                                              ; preds = %371
  %379 = load i64, ptr %87, align 8, !tbaa !9
  %380 = icmp ne i64 %379, 0
  br i1 %380, label %440, label %381

381:                                              ; preds = %378
  %382 = load ptr, ptr %29, align 8, !tbaa !5
  %383 = load i64, ptr %382, align 8, !tbaa !9
  %384 = shl i64 %383, 1
  store i64 %384, ptr %79, align 8, !tbaa !9
  %385 = load i64, ptr %88, align 8, !tbaa !9
  %386 = icmp ne i64 %385, 0
  br i1 %386, label %407, label %387

387:                                              ; preds = %381
  %388 = load i64, ptr %79, align 8, !tbaa !9
  store i64 %388, ptr %54, align 8, !tbaa !9
  %389 = load ptr, ptr %29, align 8, !tbaa !5
  %390 = load i64, ptr %389, align 8, !tbaa !9
  %391 = load ptr, ptr %29, align 8, !tbaa !5
  %392 = load i64, ptr %391, align 8, !tbaa !9
  %393 = mul nsw i64 %390, %392
  %394 = load ptr, ptr %29, align 8, !tbaa !5
  %395 = load i64, ptr %394, align 8, !tbaa !9
  %396 = mul nsw i64 %395, 6
  %397 = add nsw i64 %393, %396
  store i64 %397, ptr %55, align 8, !tbaa !9
  %398 = load i64, ptr %54, align 8, !tbaa !9
  %399 = load i64, ptr %55, align 8, !tbaa !9
  %400 = icmp sge i64 %398, %399
  br i1 %400, label %401, label %403

401:                                              ; preds = %387
  %402 = load i64, ptr %54, align 8, !tbaa !9
  br label %405

403:                                              ; preds = %387
  %404 = load i64, ptr %55, align 8, !tbaa !9
  br label %405

405:                                              ; preds = %403, %401
  %406 = phi i64 [ %402, %401 ], [ %404, %403 ]
  store i64 %406, ptr %79, align 8, !tbaa !9
  br label %407

407:                                              ; preds = %405, %381
  %408 = load i64, ptr %80, align 8, !tbaa !9
  %409 = load i64, ptr %83, align 8, !tbaa !9
  %410 = icmp sge i64 %408, %409
  br i1 %410, label %411, label %413

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

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

415:                                              ; preds = %413, %411
  %416 = phi i64 [ %412, %411 ], [ %414, %413 ]
  store i64 %416, ptr %80, align 8, !tbaa !9
  %417 = load i64, ptr %88, align 8, !tbaa !9
  %418 = icmp ne i64 %417, 0
  br i1 %418, label %439, label %419

419:                                              ; preds = %415
  %420 = load i64, ptr %80, align 8, !tbaa !9
  store i64 %420, ptr %54, align 8, !tbaa !9
  %421 = load ptr, ptr %29, align 8, !tbaa !5
  %422 = load i64, ptr %421, align 8, !tbaa !9
  %423 = load ptr, ptr %29, align 8, !tbaa !5
  %424 = load i64, ptr %423, align 8, !tbaa !9
  %425 = mul nsw i64 %422, %424
  %426 = load ptr, ptr %29, align 8, !tbaa !5
  %427 = load i64, ptr %426, align 8, !tbaa !9
  %428 = mul nsw i64 %427, 6
  %429 = add nsw i64 %425, %428
  store i64 %429, ptr %55, align 8, !tbaa !9
  %430 = load i64, ptr %54, align 8, !tbaa !9
  %431 = load i64, ptr %55, align 8, !tbaa !9
  %432 = icmp sge i64 %430, %431
  br i1 %432, label %433, label %435

433:                                              ; preds = %419
  %434 = load i64, ptr %54, align 8, !tbaa !9
  br label %437

435:                                              ; preds = %419
  %436 = load i64, ptr %55, align 8, !tbaa !9
  br label %437

437:                                              ; preds = %435, %433
  %438 = phi i64 [ %434, %433 ], [ %436, %435 ]
  store i64 %438, ptr %80, align 8, !tbaa !9
  br label %439

439:                                              ; preds = %437, %415
  br label %538

440:                                              ; preds = %378, %371
  %441 = load ptr, ptr %29, align 8, !tbaa !5
  %442 = load i64, ptr %441, align 8, !tbaa !9
  %443 = mul nsw i64 %442, 3
  store i64 %443, ptr %79, align 8, !tbaa !9
  %444 = load i64, ptr %88, align 8, !tbaa !9
  %445 = icmp ne i64 %444, 0
  br i1 %445, label %469, label %446

446:                                              ; preds = %440
  %447 = load i64, ptr %84, align 8, !tbaa !9
  %448 = icmp ne i64 %447, 0
  br i1 %448, label %469, label %449

449:                                              ; preds = %446
  %450 = load i64, ptr %79, align 8, !tbaa !9
  store i64 %450, ptr %54, align 8, !tbaa !9
  %451 = load ptr, ptr %29, align 8, !tbaa !5
  %452 = load i64, ptr %451, align 8, !tbaa !9
  %453 = load ptr, ptr %29, align 8, !tbaa !5
  %454 = load i64, ptr %453, align 8, !tbaa !9
  %455 = mul nsw i64 %452, %454
  %456 = load ptr, ptr %29, align 8, !tbaa !5
  %457 = load i64, ptr %456, align 8, !tbaa !9
  %458 = mul nsw i64 %457, 6
  %459 = add nsw i64 %455, %458
  store i64 %459, ptr %55, align 8, !tbaa !9
  %460 = load i64, ptr %54, align 8, !tbaa !9
  %461 = load i64, ptr %55, align 8, !tbaa !9
  %462 = icmp sge i64 %460, %461
  br i1 %462, label %463, label %465

463:                                              ; preds = %449
  %464 = load i64, ptr %54, align 8, !tbaa !9
  br label %467

465:                                              ; preds = %449
  %466 = load i64, ptr %55, align 8, !tbaa !9
  br label %467

467:                                              ; preds = %465, %463
  %468 = phi i64 [ %464, %463 ], [ %466, %465 ]
  store i64 %468, ptr %79, align 8, !tbaa !9
  br label %469

469:                                              ; preds = %467, %446, %440
  %470 = load i64, ptr %80, align 8, !tbaa !9
  %471 = load i64, ptr %83, align 8, !tbaa !9
  %472 = icmp sge i64 %470, %471
  br i1 %472, label %473, label %475

473:                                              ; preds = %469
  %474 = load i64, ptr %80, align 8, !tbaa !9
  br label %477

475:                                              ; preds = %469
  %476 = load i64, ptr %83, align 8, !tbaa !9
  br label %477

477:                                              ; preds = %475, %473
  %478 = phi i64 [ %474, %473 ], [ %476, %475 ]
  store i64 %478, ptr %80, align 8, !tbaa !9
  %479 = load i64, ptr %80, align 8, !tbaa !9
  store i64 %479, ptr %54, align 8, !tbaa !9
  %480 = load ptr, ptr %29, align 8, !tbaa !5
  %481 = load i64, ptr %480, align 8, !tbaa !9
  %482 = load ptr, ptr %29, align 8, !tbaa !5
  %483 = load i64, ptr %482, align 8, !tbaa !9
  %484 = sub nsw i64 %483, 1
  %485 = load ptr, ptr %29, align 8, !tbaa !5
  %486 = load ptr, ptr %29, align 8, !tbaa !5
  %487 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef %485, ptr noundef @c__1, ptr noundef %486, ptr noundef @c_n1)
  %488 = mul nsw i64 %484, %487
  %489 = add nsw i64 %481, %488
  store i64 %489, ptr %55, align 8, !tbaa !9
  %490 = load i64, ptr %54, align 8, !tbaa !9
  %491 = load i64, ptr %55, align 8, !tbaa !9
  %492 = icmp sge i64 %490, %491
  br i1 %492, label %493, label %495

493:                                              ; preds = %477
  %494 = load i64, ptr %54, align 8, !tbaa !9
  br label %497

495:                                              ; preds = %477
  %496 = load i64, ptr %55, align 8, !tbaa !9
  br label %497

497:                                              ; preds = %495, %493
  %498 = phi i64 [ %494, %493 ], [ %496, %495 ]
  store i64 %498, ptr %80, align 8, !tbaa !9
  %499 = load i64, ptr %88, align 8, !tbaa !9
  %500 = icmp ne i64 %499, 0
  br i1 %500, label %524, label %501

501:                                              ; preds = %497
  %502 = load i64, ptr %84, align 8, !tbaa !9
  %503 = icmp ne i64 %502, 0
  br i1 %503, label %524, label %504

504:                                              ; preds = %501
  %505 = load i64, ptr %80, align 8, !tbaa !9
  store i64 %505, ptr %54, align 8, !tbaa !9
  %506 = load ptr, ptr %29, align 8, !tbaa !5
  %507 = load i64, ptr %506, align 8, !tbaa !9
  %508 = load ptr, ptr %29, align 8, !tbaa !5
  %509 = load i64, ptr %508, align 8, !tbaa !9
  %510 = mul nsw i64 %507, %509
  %511 = load ptr, ptr %29, align 8, !tbaa !5
  %512 = load i64, ptr %511, align 8, !tbaa !9
  %513 = mul nsw i64 %512, 6
  %514 = add nsw i64 %510, %513
  store i64 %514, ptr %55, align 8, !tbaa !9
  %515 = load i64, ptr %54, align 8, !tbaa !9
  %516 = load i64, ptr %55, align 8, !tbaa !9
  %517 = icmp sge i64 %515, %516
  br i1 %517, label %518, label %520

518:                                              ; preds = %504
  %519 = load i64, ptr %54, align 8, !tbaa !9
  br label %522

520:                                              ; preds = %504
  %521 = load i64, ptr %55, align 8, !tbaa !9
  br label %522

522:                                              ; preds = %520, %518
  %523 = phi i64 [ %519, %518 ], [ %521, %520 ]
  store i64 %523, ptr %80, align 8, !tbaa !9
  br label %524

524:                                              ; preds = %522, %501, %497
  %525 = load i64, ptr %80, align 8, !tbaa !9
  store i64 %525, ptr %54, align 8, !tbaa !9
  %526 = load ptr, ptr %29, align 8, !tbaa !5
  %527 = load i64, ptr %526, align 8, !tbaa !9
  %528 = mul nsw i64 %527, 3
  store i64 %528, ptr %55, align 8, !tbaa !9
  %529 = load i64, ptr %54, align 8, !tbaa !9
  %530 = load i64, ptr %55, align 8, !tbaa !9
  %531 = icmp sge i64 %529, %530
  br i1 %531, label %532, label %534

532:                                              ; preds = %524
  %533 = load i64, ptr %54, align 8, !tbaa !9
  br label %536

534:                                              ; preds = %524
  %535 = load i64, ptr %55, align 8, !tbaa !9
  br label %536

536:                                              ; preds = %534, %532
  %537 = phi i64 [ %533, %532 ], [ %535, %534 ]
  store i64 %537, ptr %80, align 8, !tbaa !9
  br label %538

538:                                              ; preds = %536, %439
  %539 = load i64, ptr %80, align 8, !tbaa !9
  %540 = load i64, ptr %79, align 8, !tbaa !9
  %541 = icmp sge i64 %539, %540
  br i1 %541, label %542, label %544

542:                                              ; preds = %538
  %543 = load i64, ptr %80, align 8, !tbaa !9
  br label %546

544:                                              ; preds = %538
  %545 = load i64, ptr %79, align 8, !tbaa !9
  br label %546

546:                                              ; preds = %544, %542
  %547 = phi i64 [ %543, %542 ], [ %545, %544 ]
  store i64 %547, ptr %80, align 8, !tbaa !9
  br label %548

548:                                              ; preds = %546, %274
  %549 = load i64, ptr %80, align 8, !tbaa !9
  %550 = sitofp i64 %549 to float
  %551 = load ptr, ptr %44, align 8, !tbaa !5
  %552 = getelementptr inbounds float, ptr %551, i64 1
  store float %550, ptr %552, align 4, !tbaa !11
  %553 = load ptr, ptr %45, align 8, !tbaa !5
  %554 = load i64, ptr %553, align 8, !tbaa !9
  %555 = load i64, ptr %79, align 8, !tbaa !9
  %556 = icmp slt i64 %554, %555
  br i1 %556, label %557, label %562

557:                                              ; preds = %548
  %558 = load i64, ptr %86, align 8, !tbaa !9
  %559 = icmp ne i64 %558, 0
  br i1 %559, label %562, label %560

560:                                              ; preds = %557
  %561 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -21, ptr %561, align 8, !tbaa !9
  br label %562

562:                                              ; preds = %560, %557, %548
  br label %563

563:                                              ; preds = %562, %266
  %564 = load ptr, ptr %47, align 8, !tbaa !5
  %565 = load i64, ptr %564, align 8, !tbaa !9
  %566 = icmp ne i64 %565, 0
  br i1 %566, label %567, label %572

567:                                              ; preds = %563
  %568 = load ptr, ptr %47, align 8, !tbaa !5
  %569 = load i64, ptr %568, align 8, !tbaa !9
  %570 = sub nsw i64 0, %569
  store i64 %570, ptr %54, align 8, !tbaa !9
  %571 = call i32 @xerbla_(ptr noundef @.str.9, ptr noundef %54)
  store i32 0, ptr %24, align 4
  store i32 1, ptr %90, align 4
  br label %1376

572:                                              ; preds = %563
  %573 = load i64, ptr %86, align 8, !tbaa !9
  %574 = icmp ne i64 %573, 0
  br i1 %574, label %575, label %576

575:                                              ; preds = %572
  store i32 0, ptr %24, align 4
  store i32 1, ptr %90, align 4
  br label %1376

576:                                              ; preds = %572
  br label %577

577:                                              ; preds = %576
  %578 = load ptr, ptr %29, align 8, !tbaa !5
  %579 = load i64, ptr %578, align 8, !tbaa !9
  %580 = icmp eq i64 %579, 0
  br i1 %580, label %581, label %582

581:                                              ; preds = %577
  store i32 0, ptr %24, align 4
  store i32 1, ptr %90, align 4
  br label %1376

582:                                              ; preds = %577
  %583 = call double @slamch_(ptr noundef @.str.5)
  %584 = fptrunc double %583 to float
  store float %584, ptr %67, align 4, !tbaa !11
  %585 = call double @slamch_(ptr noundef @.str.4)
  %586 = fptrunc double %585 to float
  store float %586, ptr %85, align 4, !tbaa !11
  %587 = load float, ptr %85, align 4, !tbaa !11
  %588 = fdiv float 1.000000e+00, %587
  store float %588, ptr %78, align 4, !tbaa !11
  %589 = call i32 @slabad_(ptr noundef %85, ptr noundef %78)
  %590 = load float, ptr %85, align 4, !tbaa !11
  %591 = fpext float %590 to double
  %592 = call double @sqrt(double noundef %591) #5
  %593 = load float, ptr %67, align 4, !tbaa !11
  %594 = fpext float %593 to double
  %595 = fdiv double %592, %594
  %596 = fptrunc double %595 to float
  store float %596, ptr %85, align 4, !tbaa !11
  %597 = load float, ptr %85, align 4, !tbaa !11
  %598 = fdiv float 1.000000e+00, %597
  store float %598, ptr %78, align 4, !tbaa !11
  store i64 0, ptr %74, align 8, !tbaa !9
  %599 = load ptr, ptr %29, align 8, !tbaa !5
  %600 = load ptr, ptr %29, align 8, !tbaa !5
  %601 = load ptr, ptr %30, align 8, !tbaa !5
  %602 = load i64, ptr %49, align 8, !tbaa !9
  %603 = getelementptr inbounds float, ptr %601, i64 %602
  %604 = load ptr, ptr %31, align 8, !tbaa !5
  %605 = getelementptr inbounds [1 x float], ptr %66, i64 0, i64 0
  %606 = call double @slange_(ptr noundef @.str.10, ptr noundef %599, ptr noundef %600, ptr noundef %603, ptr noundef %604, ptr noundef %605)
  %607 = fptrunc double %606 to float
  store float %607, ptr %69, align 4, !tbaa !11
  store i64 0, ptr %75, align 8, !tbaa !9
  %608 = load float, ptr %69, align 4, !tbaa !11
  %609 = fcmp ogt float %608, 0.000000e+00
  br i1 %609, label %610, label %616

610:                                              ; preds = %582
  %611 = load float, ptr %69, align 4, !tbaa !11
  %612 = load float, ptr %85, align 4, !tbaa !11
  %613 = fcmp olt float %611, %612
  br i1 %613, label %614, label %616

614:                                              ; preds = %610
  store i64 1, ptr %75, align 8, !tbaa !9
  %615 = load float, ptr %85, align 4, !tbaa !11
  store float %615, ptr %76, align 4, !tbaa !11
  br label %623

616:                                              ; preds = %610, %582
  %617 = load float, ptr %69, align 4, !tbaa !11
  %618 = load float, ptr %78, align 4, !tbaa !11
  %619 = fcmp ogt float %617, %618
  br i1 %619, label %620, label %622

620:                                              ; preds = %616
  store i64 1, ptr %75, align 8, !tbaa !9
  %621 = load float, ptr %78, align 4, !tbaa !11
  store float %621, ptr %76, align 4, !tbaa !11
  br label %622

622:                                              ; preds = %620, %616
  br label %623

623:                                              ; preds = %622, %614
  %624 = load i64, ptr %75, align 8, !tbaa !9
  %625 = icmp ne i64 %624, 0
  br i1 %625, label %626, label %634

626:                                              ; preds = %623
  %627 = load ptr, ptr %29, align 8, !tbaa !5
  %628 = load ptr, ptr %29, align 8, !tbaa !5
  %629 = load ptr, ptr %30, align 8, !tbaa !5
  %630 = load i64, ptr %49, align 8, !tbaa !9
  %631 = getelementptr inbounds float, ptr %629, i64 %630
  %632 = load ptr, ptr %31, align 8, !tbaa !5
  %633 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %69, ptr noundef %76, ptr noundef %627, ptr noundef %628, ptr noundef %631, ptr noundef %632, ptr noundef %70)
  br label %634

634:                                              ; preds = %626, %623
  %635 = load ptr, ptr %25, align 8, !tbaa !5
  %636 = load ptr, ptr %29, align 8, !tbaa !5
  %637 = load ptr, ptr %30, align 8, !tbaa !5
  %638 = load i64, ptr %49, align 8, !tbaa !9
  %639 = getelementptr inbounds float, ptr %637, i64 %638
  %640 = load ptr, ptr %31, align 8, !tbaa !5
  %641 = load ptr, ptr %38, align 8, !tbaa !5
  %642 = load ptr, ptr %39, align 8, !tbaa !5
  %643 = load ptr, ptr %40, align 8, !tbaa !5
  %644 = getelementptr inbounds float, ptr %643, i64 1
  %645 = call i32 @sgebal_(ptr noundef %635, ptr noundef %636, ptr noundef %639, ptr noundef %640, ptr noundef %641, ptr noundef %642, ptr noundef %644, ptr noundef %70)
  %646 = load ptr, ptr %29, align 8, !tbaa !5
  %647 = load ptr, ptr %29, align 8, !tbaa !5
  %648 = load ptr, ptr %30, align 8, !tbaa !5
  %649 = load i64, ptr %49, align 8, !tbaa !9
  %650 = getelementptr inbounds float, ptr %648, i64 %649
  %651 = load ptr, ptr %31, align 8, !tbaa !5
  %652 = getelementptr inbounds [1 x float], ptr %66, i64 0, i64 0
  %653 = call double @slange_(ptr noundef @.str.12, ptr noundef %646, ptr noundef %647, ptr noundef %650, ptr noundef %651, ptr noundef %652)
  %654 = fptrunc double %653 to float
  %655 = load ptr, ptr %41, align 8, !tbaa !5
  store float %654, ptr %655, align 4, !tbaa !11
  %656 = load i64, ptr %75, align 8, !tbaa !9
  %657 = icmp ne i64 %656, 0
  br i1 %657, label %658, label %667

658:                                              ; preds = %634
  %659 = load ptr, ptr %41, align 8, !tbaa !5
  %660 = load float, ptr %659, align 4, !tbaa !11
  %661 = getelementptr inbounds [1 x float], ptr %66, i64 0, i64 0
  store float %660, ptr %661, align 4, !tbaa !11
  %662 = getelementptr inbounds [1 x float], ptr %66, i64 0, i64 0
  %663 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %69, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %662, ptr noundef @c__1, ptr noundef %70)
  %664 = getelementptr inbounds [1 x float], ptr %66, i64 0, i64 0
  %665 = load float, ptr %664, align 4, !tbaa !11
  %666 = load ptr, ptr %41, align 8, !tbaa !5
  store float %665, ptr %666, align 4, !tbaa !11
  br label %667

667:                                              ; preds = %658, %634
  store i64 1, ptr %71, align 8, !tbaa !9
  %668 = load i64, ptr %71, align 8, !tbaa !9
  %669 = load ptr, ptr %29, align 8, !tbaa !5
  %670 = load i64, ptr %669, align 8, !tbaa !9
  %671 = add nsw i64 %668, %670
  store i64 %671, ptr %72, align 8, !tbaa !9
  %672 = load ptr, ptr %45, align 8, !tbaa !5
  %673 = load i64, ptr %672, align 8, !tbaa !9
  %674 = load i64, ptr %72, align 8, !tbaa !9
  %675 = sub nsw i64 %673, %674
  %676 = add nsw i64 %675, 1
  store i64 %676, ptr %54, align 8, !tbaa !9
  %677 = load ptr, ptr %29, align 8, !tbaa !5
  %678 = load ptr, ptr %38, align 8, !tbaa !5
  %679 = load ptr, ptr %39, align 8, !tbaa !5
  %680 = load ptr, ptr %30, align 8, !tbaa !5
  %681 = load i64, ptr %49, align 8, !tbaa !9
  %682 = getelementptr inbounds float, ptr %680, i64 %681
  %683 = load ptr, ptr %31, align 8, !tbaa !5
  %684 = load ptr, ptr %44, align 8, !tbaa !5
  %685 = load i64, ptr %71, align 8, !tbaa !9
  %686 = getelementptr inbounds float, ptr %684, i64 %685
  %687 = load ptr, ptr %44, align 8, !tbaa !5
  %688 = load i64, ptr %72, align 8, !tbaa !9
  %689 = getelementptr inbounds float, ptr %687, i64 %688
  %690 = call i32 @sgehrd_(ptr noundef %677, ptr noundef %678, ptr noundef %679, ptr noundef %682, ptr noundef %683, ptr noundef %686, ptr noundef %689, ptr noundef %54, ptr noundef %70)
  %691 = load i64, ptr %81, align 8, !tbaa !9
  %692 = icmp ne i64 %691, 0
  br i1 %692, label %693, label %767

693:                                              ; preds = %667
  %694 = getelementptr inbounds [1 x i8], ptr %68, i64 0, i64 0
  store i8 76, ptr %694, align 1, !tbaa !13
  %695 = load ptr, ptr %29, align 8, !tbaa !5
  %696 = load ptr, ptr %29, align 8, !tbaa !5
  %697 = load ptr, ptr %30, align 8, !tbaa !5
  %698 = load i64, ptr %49, align 8, !tbaa !9
  %699 = getelementptr inbounds float, ptr %697, i64 %698
  %700 = load ptr, ptr %31, align 8, !tbaa !5
  %701 = load ptr, ptr %34, align 8, !tbaa !5
  %702 = load i64, ptr %51, align 8, !tbaa !9
  %703 = getelementptr inbounds float, ptr %701, i64 %702
  %704 = load ptr, ptr %35, align 8, !tbaa !5
  %705 = call i32 @slacpy_(ptr noundef @.str.13, ptr noundef %695, ptr noundef %696, ptr noundef %699, ptr noundef %700, ptr noundef %703, ptr noundef %704)
  %706 = load ptr, ptr %45, align 8, !tbaa !5
  %707 = load i64, ptr %706, align 8, !tbaa !9
  %708 = load i64, ptr %72, align 8, !tbaa !9
  %709 = sub nsw i64 %707, %708
  %710 = add nsw i64 %709, 1
  store i64 %710, ptr %54, align 8, !tbaa !9
  %711 = load ptr, ptr %29, align 8, !tbaa !5
  %712 = load ptr, ptr %38, align 8, !tbaa !5
  %713 = load ptr, ptr %39, align 8, !tbaa !5
  %714 = load ptr, ptr %34, align 8, !tbaa !5
  %715 = load i64, ptr %51, align 8, !tbaa !9
  %716 = getelementptr inbounds float, ptr %714, i64 %715
  %717 = load ptr, ptr %35, align 8, !tbaa !5
  %718 = load ptr, ptr %44, align 8, !tbaa !5
  %719 = load i64, ptr %71, align 8, !tbaa !9
  %720 = getelementptr inbounds float, ptr %718, i64 %719
  %721 = load ptr, ptr %44, align 8, !tbaa !5
  %722 = load i64, ptr %72, align 8, !tbaa !9
  %723 = getelementptr inbounds float, ptr %721, i64 %722
  %724 = call i32 @sorghr_(ptr noundef %711, ptr noundef %712, ptr noundef %713, ptr noundef %716, ptr noundef %717, ptr noundef %720, ptr noundef %723, ptr noundef %54, ptr noundef %70)
  %725 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %725, ptr %72, align 8, !tbaa !9
  %726 = load ptr, ptr %45, align 8, !tbaa !5
  %727 = load i64, ptr %726, align 8, !tbaa !9
  %728 = load i64, ptr %72, align 8, !tbaa !9
  %729 = sub nsw i64 %727, %728
  %730 = add nsw i64 %729, 1
  store i64 %730, ptr %54, align 8, !tbaa !9
  %731 = load ptr, ptr %29, align 8, !tbaa !5
  %732 = load ptr, ptr %38, align 8, !tbaa !5
  %733 = load ptr, ptr %39, align 8, !tbaa !5
  %734 = load ptr, ptr %30, align 8, !tbaa !5
  %735 = load i64, ptr %49, align 8, !tbaa !9
  %736 = getelementptr inbounds float, ptr %734, i64 %735
  %737 = load ptr, ptr %31, align 8, !tbaa !5
  %738 = load ptr, ptr %32, align 8, !tbaa !5
  %739 = getelementptr inbounds float, ptr %738, i64 1
  %740 = load ptr, ptr %33, align 8, !tbaa !5
  %741 = getelementptr inbounds float, ptr %740, i64 1
  %742 = load ptr, ptr %34, align 8, !tbaa !5
  %743 = load i64, ptr %51, align 8, !tbaa !9
  %744 = getelementptr inbounds float, ptr %742, i64 %743
  %745 = load ptr, ptr %35, align 8, !tbaa !5
  %746 = load ptr, ptr %44, align 8, !tbaa !5
  %747 = load i64, ptr %72, align 8, !tbaa !9
  %748 = getelementptr inbounds float, ptr %746, i64 %747
  %749 = load ptr, ptr %47, align 8, !tbaa !5
  %750 = call i32 @shseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %731, ptr noundef %732, ptr noundef %733, ptr noundef %736, ptr noundef %737, ptr noundef %739, ptr noundef %741, ptr noundef %744, ptr noundef %745, ptr noundef %748, ptr noundef %54, ptr noundef %749)
  %751 = load i64, ptr %87, align 8, !tbaa !9
  %752 = icmp ne i64 %751, 0
  br i1 %752, label %753, label %766

753:                                              ; preds = %693
  %754 = getelementptr inbounds [1 x i8], ptr %68, i64 0, i64 0
  store i8 66, ptr %754, align 1, !tbaa !13
  %755 = load ptr, ptr %29, align 8, !tbaa !5
  %756 = load ptr, ptr %29, align 8, !tbaa !5
  %757 = load ptr, ptr %34, align 8, !tbaa !5
  %758 = load i64, ptr %51, align 8, !tbaa !9
  %759 = getelementptr inbounds float, ptr %757, i64 %758
  %760 = load ptr, ptr %35, align 8, !tbaa !5
  %761 = load ptr, ptr %36, align 8, !tbaa !5
  %762 = load i64, ptr %53, align 8, !tbaa !9
  %763 = getelementptr inbounds float, ptr %761, i64 %762
  %764 = load ptr, ptr %37, align 8, !tbaa !5
  %765 = call i32 @slacpy_(ptr noundef @.str.14, ptr noundef %755, ptr noundef %756, ptr noundef %759, ptr noundef %760, ptr noundef %763, ptr noundef %764)
  br label %766

766:                                              ; preds = %753, %693
  br label %864

767:                                              ; preds = %667
  %768 = load i64, ptr %87, align 8, !tbaa !9
  %769 = icmp ne i64 %768, 0
  br i1 %769, label %770, label %828

770:                                              ; preds = %767
  %771 = getelementptr inbounds [1 x i8], ptr %68, i64 0, i64 0
  store i8 82, ptr %771, align 1, !tbaa !13
  %772 = load ptr, ptr %29, align 8, !tbaa !5
  %773 = load ptr, ptr %29, align 8, !tbaa !5
  %774 = load ptr, ptr %30, align 8, !tbaa !5
  %775 = load i64, ptr %49, align 8, !tbaa !9
  %776 = getelementptr inbounds float, ptr %774, i64 %775
  %777 = load ptr, ptr %31, align 8, !tbaa !5
  %778 = load ptr, ptr %36, align 8, !tbaa !5
  %779 = load i64, ptr %53, align 8, !tbaa !9
  %780 = getelementptr inbounds float, ptr %778, i64 %779
  %781 = load ptr, ptr %37, align 8, !tbaa !5
  %782 = call i32 @slacpy_(ptr noundef @.str.13, ptr noundef %772, ptr noundef %773, ptr noundef %776, ptr noundef %777, ptr noundef %780, ptr noundef %781)
  %783 = load ptr, ptr %45, align 8, !tbaa !5
  %784 = load i64, ptr %783, align 8, !tbaa !9
  %785 = load i64, ptr %72, align 8, !tbaa !9
  %786 = sub nsw i64 %784, %785
  %787 = add nsw i64 %786, 1
  store i64 %787, ptr %54, align 8, !tbaa !9
  %788 = load ptr, ptr %29, align 8, !tbaa !5
  %789 = load ptr, ptr %38, align 8, !tbaa !5
  %790 = load ptr, ptr %39, align 8, !tbaa !5
  %791 = load ptr, ptr %36, align 8, !tbaa !5
  %792 = load i64, ptr %53, align 8, !tbaa !9
  %793 = getelementptr inbounds float, ptr %791, i64 %792
  %794 = load ptr, ptr %37, align 8, !tbaa !5
  %795 = load ptr, ptr %44, align 8, !tbaa !5
  %796 = load i64, ptr %71, align 8, !tbaa !9
  %797 = getelementptr inbounds float, ptr %795, i64 %796
  %798 = load ptr, ptr %44, align 8, !tbaa !5
  %799 = load i64, ptr %72, align 8, !tbaa !9
  %800 = getelementptr inbounds float, ptr %798, i64 %799
  %801 = call i32 @sorghr_(ptr noundef %788, ptr noundef %789, ptr noundef %790, ptr noundef %793, ptr noundef %794, ptr noundef %797, ptr noundef %800, ptr noundef %54, ptr noundef %70)
  %802 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %802, ptr %72, align 8, !tbaa !9
  %803 = load ptr, ptr %45, align 8, !tbaa !5
  %804 = load i64, ptr %803, align 8, !tbaa !9
  %805 = load i64, ptr %72, align 8, !tbaa !9
  %806 = sub nsw i64 %804, %805
  %807 = add nsw i64 %806, 1
  store i64 %807, ptr %54, align 8, !tbaa !9
  %808 = load ptr, ptr %29, align 8, !tbaa !5
  %809 = load ptr, ptr %38, align 8, !tbaa !5
  %810 = load ptr, ptr %39, align 8, !tbaa !5
  %811 = load ptr, ptr %30, align 8, !tbaa !5
  %812 = load i64, ptr %49, align 8, !tbaa !9
  %813 = getelementptr inbounds float, ptr %811, i64 %812
  %814 = load ptr, ptr %31, align 8, !tbaa !5
  %815 = load ptr, ptr %32, align 8, !tbaa !5
  %816 = getelementptr inbounds float, ptr %815, i64 1
  %817 = load ptr, ptr %33, align 8, !tbaa !5
  %818 = getelementptr inbounds float, ptr %817, i64 1
  %819 = load ptr, ptr %36, align 8, !tbaa !5
  %820 = load i64, ptr %53, align 8, !tbaa !9
  %821 = getelementptr inbounds float, ptr %819, i64 %820
  %822 = load ptr, ptr %37, align 8, !tbaa !5
  %823 = load ptr, ptr %44, align 8, !tbaa !5
  %824 = load i64, ptr %72, align 8, !tbaa !9
  %825 = getelementptr inbounds float, ptr %823, i64 %824
  %826 = load ptr, ptr %47, align 8, !tbaa !5
  %827 = call i32 @shseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %808, ptr noundef %809, ptr noundef %810, ptr noundef %813, ptr noundef %814, ptr noundef %816, ptr noundef %818, ptr noundef %821, ptr noundef %822, ptr noundef %825, ptr noundef %54, ptr noundef %826)
  br label %863

828:                                              ; preds = %767
  %829 = load i64, ptr %88, align 8, !tbaa !9
  %830 = icmp ne i64 %829, 0
  br i1 %830, label %831, label %833

831:                                              ; preds = %828
  %832 = getelementptr inbounds [1 x i8], ptr %64, i64 0, i64 0
  store i8 69, ptr %832, align 1, !tbaa !13
  br label %835

833:                                              ; preds = %828
  %834 = getelementptr inbounds [1 x i8], ptr %64, i64 0, i64 0
  store i8 83, ptr %834, align 1, !tbaa !13
  br label %835

835:                                              ; preds = %833, %831
  %836 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %836, ptr %72, align 8, !tbaa !9
  %837 = load ptr, ptr %45, align 8, !tbaa !5
  %838 = load i64, ptr %837, align 8, !tbaa !9
  %839 = load i64, ptr %72, align 8, !tbaa !9
  %840 = sub nsw i64 %838, %839
  %841 = add nsw i64 %840, 1
  store i64 %841, ptr %54, align 8, !tbaa !9
  %842 = getelementptr inbounds [1 x i8], ptr %64, i64 0, i64 0
  %843 = load ptr, ptr %29, align 8, !tbaa !5
  %844 = load ptr, ptr %38, align 8, !tbaa !5
  %845 = load ptr, ptr %39, align 8, !tbaa !5
  %846 = load ptr, ptr %30, align 8, !tbaa !5
  %847 = load i64, ptr %49, align 8, !tbaa !9
  %848 = getelementptr inbounds float, ptr %846, i64 %847
  %849 = load ptr, ptr %31, align 8, !tbaa !5
  %850 = load ptr, ptr %32, align 8, !tbaa !5
  %851 = getelementptr inbounds float, ptr %850, i64 1
  %852 = load ptr, ptr %33, align 8, !tbaa !5
  %853 = getelementptr inbounds float, ptr %852, i64 1
  %854 = load ptr, ptr %36, align 8, !tbaa !5
  %855 = load i64, ptr %53, align 8, !tbaa !9
  %856 = getelementptr inbounds float, ptr %854, i64 %855
  %857 = load ptr, ptr %37, align 8, !tbaa !5
  %858 = load ptr, ptr %44, align 8, !tbaa !5
  %859 = load i64, ptr %72, align 8, !tbaa !9
  %860 = getelementptr inbounds float, ptr %858, i64 %859
  %861 = load ptr, ptr %47, align 8, !tbaa !5
  %862 = call i32 @shseqr_(ptr noundef %842, ptr noundef @.str.1, ptr noundef %843, ptr noundef %844, ptr noundef %845, ptr noundef %848, ptr noundef %849, ptr noundef %851, ptr noundef %853, ptr noundef %856, ptr noundef %857, ptr noundef %860, ptr noundef %54, ptr noundef %861)
  br label %863

863:                                              ; preds = %835, %770
  br label %864

864:                                              ; preds = %863, %766
  %865 = load ptr, ptr %47, align 8, !tbaa !5
  %866 = load i64, ptr %865, align 8, !tbaa !9
  %867 = icmp sgt i64 %866, 0
  br i1 %867, label %868, label %869

868:                                              ; preds = %864
  br label %1286

869:                                              ; preds = %864
  %870 = load i64, ptr %81, align 8, !tbaa !9
  %871 = icmp ne i64 %870, 0
  br i1 %871, label %875, label %872

872:                                              ; preds = %869
  %873 = load i64, ptr %87, align 8, !tbaa !9
  %874 = icmp ne i64 %873, 0
  br i1 %874, label %875, label %896

875:                                              ; preds = %872, %869
  %876 = getelementptr inbounds [1 x i8], ptr %68, i64 0, i64 0
  %877 = getelementptr inbounds [1 x i64], ptr %77, i64 0, i64 0
  %878 = load ptr, ptr %29, align 8, !tbaa !5
  %879 = load ptr, ptr %30, align 8, !tbaa !5
  %880 = load i64, ptr %49, align 8, !tbaa !9
  %881 = getelementptr inbounds float, ptr %879, i64 %880
  %882 = load ptr, ptr %31, align 8, !tbaa !5
  %883 = load ptr, ptr %34, align 8, !tbaa !5
  %884 = load i64, ptr %51, align 8, !tbaa !9
  %885 = getelementptr inbounds float, ptr %883, i64 %884
  %886 = load ptr, ptr %35, align 8, !tbaa !5
  %887 = load ptr, ptr %36, align 8, !tbaa !5
  %888 = load i64, ptr %53, align 8, !tbaa !9
  %889 = getelementptr inbounds float, ptr %887, i64 %888
  %890 = load ptr, ptr %37, align 8, !tbaa !5
  %891 = load ptr, ptr %29, align 8, !tbaa !5
  %892 = load ptr, ptr %44, align 8, !tbaa !5
  %893 = load i64, ptr %72, align 8, !tbaa !9
  %894 = getelementptr inbounds float, ptr %892, i64 %893
  %895 = call i32 @strevc_(ptr noundef %876, ptr noundef @.str.3, ptr noundef %877, ptr noundef %878, ptr noundef %881, ptr noundef %882, ptr noundef %885, ptr noundef %886, ptr noundef %889, ptr noundef %890, ptr noundef %891, ptr noundef %73, ptr noundef %894, ptr noundef %70)
  br label %896

896:                                              ; preds = %875, %872
  %897 = load i64, ptr %88, align 8, !tbaa !9
  %898 = icmp ne i64 %897, 0
  br i1 %898, label %927, label %899

899:                                              ; preds = %896
  %900 = load ptr, ptr %28, align 8, !tbaa !5
  %901 = getelementptr inbounds [1 x i64], ptr %77, i64 0, i64 0
  %902 = load ptr, ptr %29, align 8, !tbaa !5
  %903 = load ptr, ptr %30, align 8, !tbaa !5
  %904 = load i64, ptr %49, align 8, !tbaa !9
  %905 = getelementptr inbounds float, ptr %903, i64 %904
  %906 = load ptr, ptr %31, align 8, !tbaa !5
  %907 = load ptr, ptr %34, align 8, !tbaa !5
  %908 = load i64, ptr %51, align 8, !tbaa !9
  %909 = getelementptr inbounds float, ptr %907, i64 %908
  %910 = load ptr, ptr %35, align 8, !tbaa !5
  %911 = load ptr, ptr %36, align 8, !tbaa !5
  %912 = load i64, ptr %53, align 8, !tbaa !9
  %913 = getelementptr inbounds float, ptr %911, i64 %912
  %914 = load ptr, ptr %37, align 8, !tbaa !5
  %915 = load ptr, ptr %42, align 8, !tbaa !5
  %916 = getelementptr inbounds float, ptr %915, i64 1
  %917 = load ptr, ptr %43, align 8, !tbaa !5
  %918 = getelementptr inbounds float, ptr %917, i64 1
  %919 = load ptr, ptr %29, align 8, !tbaa !5
  %920 = load ptr, ptr %44, align 8, !tbaa !5
  %921 = load i64, ptr %72, align 8, !tbaa !9
  %922 = getelementptr inbounds float, ptr %920, i64 %921
  %923 = load ptr, ptr %29, align 8, !tbaa !5
  %924 = load ptr, ptr %46, align 8, !tbaa !5
  %925 = getelementptr inbounds i64, ptr %924, i64 1
  %926 = call i32 @strsna_(ptr noundef %900, ptr noundef @.str.15, ptr noundef %901, ptr noundef %902, ptr noundef %905, ptr noundef %906, ptr noundef %909, ptr noundef %910, ptr noundef %913, ptr noundef %914, ptr noundef %916, ptr noundef %918, ptr noundef %919, ptr noundef %73, ptr noundef %922, ptr noundef %923, ptr noundef %925, ptr noundef %74)
  br label %927

927:                                              ; preds = %899, %896
  %928 = load i64, ptr %81, align 8, !tbaa !9
  %929 = icmp ne i64 %928, 0
  br i1 %929, label %930, label %1106

930:                                              ; preds = %927
  %931 = load ptr, ptr %25, align 8, !tbaa !5
  %932 = load ptr, ptr %29, align 8, !tbaa !5
  %933 = load ptr, ptr %38, align 8, !tbaa !5
  %934 = load ptr, ptr %39, align 8, !tbaa !5
  %935 = load ptr, ptr %40, align 8, !tbaa !5
  %936 = getelementptr inbounds float, ptr %935, i64 1
  %937 = load ptr, ptr %29, align 8, !tbaa !5
  %938 = load ptr, ptr %34, align 8, !tbaa !5
  %939 = load i64, ptr %51, align 8, !tbaa !9
  %940 = getelementptr inbounds float, ptr %938, i64 %939
  %941 = load ptr, ptr %35, align 8, !tbaa !5
  %942 = call i32 @sgebak_(ptr noundef %931, ptr noundef @.str.13, ptr noundef %932, ptr noundef %933, ptr noundef %934, ptr noundef %936, ptr noundef %937, ptr noundef %940, ptr noundef %941, ptr noundef %70)
  %943 = load ptr, ptr %29, align 8, !tbaa !5
  %944 = load i64, ptr %943, align 8, !tbaa !9
  store i64 %944, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %59, align 8, !tbaa !9
  br label %945

945:                                              ; preds = %1102, %930
  %946 = load i64, ptr %59, align 8, !tbaa !9
  %947 = load i64, ptr %54, align 8, !tbaa !9
  %948 = icmp sle i64 %946, %947
  br i1 %948, label %949, label %1105

949:                                              ; preds = %945
  %950 = load ptr, ptr %33, align 8, !tbaa !5
  %951 = load i64, ptr %59, align 8, !tbaa !9
  %952 = getelementptr inbounds float, ptr %950, i64 %951
  %953 = load float, ptr %952, align 4, !tbaa !11
  %954 = fcmp oeq float %953, 0.000000e+00
  br i1 %954, label %955, label %974

955:                                              ; preds = %949
  %956 = load ptr, ptr %29, align 8, !tbaa !5
  %957 = load ptr, ptr %34, align 8, !tbaa !5
  %958 = load i64, ptr %59, align 8, !tbaa !9
  %959 = load i64, ptr %50, align 8, !tbaa !9
  %960 = mul nsw i64 %958, %959
  %961 = add nsw i64 %960, 1
  %962 = getelementptr inbounds float, ptr %957, i64 %961
  %963 = call double @f2c_snrm2(ptr noundef %956, ptr noundef %962, ptr noundef @c__1)
  %964 = fdiv double 1.000000e+00, %963
  %965 = fptrunc double %964 to float
  store float %965, ptr %65, align 4, !tbaa !11
  %966 = load ptr, ptr %29, align 8, !tbaa !5
  %967 = load ptr, ptr %34, align 8, !tbaa !5
  %968 = load i64, ptr %59, align 8, !tbaa !9
  %969 = load i64, ptr %50, align 8, !tbaa !9
  %970 = mul nsw i64 %968, %969
  %971 = add nsw i64 %970, 1
  %972 = getelementptr inbounds float, ptr %967, i64 %971
  %973 = call i32 @f2c_sscal(ptr noundef %966, ptr noundef %65, ptr noundef %972, ptr noundef @c__1)
  br label %1101

974:                                              ; preds = %949
  %975 = load ptr, ptr %33, align 8, !tbaa !5
  %976 = load i64, ptr %59, align 8, !tbaa !9
  %977 = getelementptr inbounds float, ptr %975, i64 %976
  %978 = load float, ptr %977, align 4, !tbaa !11
  %979 = fcmp ogt float %978, 0.000000e+00
  br i1 %979, label %980, label %1100

980:                                              ; preds = %974
  %981 = load ptr, ptr %29, align 8, !tbaa !5
  %982 = load ptr, ptr %34, align 8, !tbaa !5
  %983 = load i64, ptr %59, align 8, !tbaa !9
  %984 = load i64, ptr %50, align 8, !tbaa !9
  %985 = mul nsw i64 %983, %984
  %986 = add nsw i64 %985, 1
  %987 = getelementptr inbounds float, ptr %982, i64 %986
  %988 = call double @f2c_snrm2(ptr noundef %981, ptr noundef %987, ptr noundef @c__1)
  %989 = fptrunc double %988 to float
  store float %989, ptr %57, align 4, !tbaa !11
  %990 = load ptr, ptr %29, align 8, !tbaa !5
  %991 = load ptr, ptr %34, align 8, !tbaa !5
  %992 = load i64, ptr %59, align 8, !tbaa !9
  %993 = add nsw i64 %992, 1
  %994 = load i64, ptr %50, align 8, !tbaa !9
  %995 = mul nsw i64 %993, %994
  %996 = add nsw i64 %995, 1
  %997 = getelementptr inbounds float, ptr %991, i64 %996
  %998 = call double @f2c_snrm2(ptr noundef %990, ptr noundef %997, ptr noundef @c__1)
  %999 = fptrunc double %998 to float
  store float %999, ptr %58, align 4, !tbaa !11
  %1000 = call double @slapy2_(ptr noundef %57, ptr noundef %58)
  %1001 = fdiv double 1.000000e+00, %1000
  %1002 = fptrunc double %1001 to float
  store float %1002, ptr %65, align 4, !tbaa !11
  %1003 = load ptr, ptr %29, align 8, !tbaa !5
  %1004 = load ptr, ptr %34, align 8, !tbaa !5
  %1005 = load i64, ptr %59, align 8, !tbaa !9
  %1006 = load i64, ptr %50, align 8, !tbaa !9
  %1007 = mul nsw i64 %1005, %1006
  %1008 = add nsw i64 %1007, 1
  %1009 = getelementptr inbounds float, ptr %1004, i64 %1008
  %1010 = call i32 @f2c_sscal(ptr noundef %1003, ptr noundef %65, ptr noundef %1009, ptr noundef @c__1)
  %1011 = load ptr, ptr %29, align 8, !tbaa !5
  %1012 = load ptr, ptr %34, align 8, !tbaa !5
  %1013 = load i64, ptr %59, align 8, !tbaa !9
  %1014 = add nsw i64 %1013, 1
  %1015 = load i64, ptr %50, align 8, !tbaa !9
  %1016 = mul nsw i64 %1014, %1015
  %1017 = add nsw i64 %1016, 1
  %1018 = getelementptr inbounds float, ptr %1012, i64 %1017
  %1019 = call i32 @f2c_sscal(ptr noundef %1011, ptr noundef %65, ptr noundef %1018, ptr noundef @c__1)
  %1020 = load ptr, ptr %29, align 8, !tbaa !5
  %1021 = load i64, ptr %1020, align 8, !tbaa !9
  store i64 %1021, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %1022

1022:                                             ; preds = %1053, %980
  %1023 = load i64, ptr %60, align 8, !tbaa !9
  %1024 = load i64, ptr %55, align 8, !tbaa !9
  %1025 = icmp sle i64 %1023, %1024
  br i1 %1025, label %1026, label %1056

1026:                                             ; preds = %1022
  %1027 = load ptr, ptr %34, align 8, !tbaa !5
  %1028 = load i64, ptr %60, align 8, !tbaa !9
  %1029 = load i64, ptr %59, align 8, !tbaa !9
  %1030 = load i64, ptr %50, align 8, !tbaa !9
  %1031 = mul nsw i64 %1029, %1030
  %1032 = add nsw i64 %1028, %1031
  %1033 = getelementptr inbounds float, ptr %1027, i64 %1032
  %1034 = load float, ptr %1033, align 4, !tbaa !11
  store float %1034, ptr %57, align 4, !tbaa !11
  %1035 = load ptr, ptr %34, align 8, !tbaa !5
  %1036 = load i64, ptr %60, align 8, !tbaa !9
  %1037 = load i64, ptr %59, align 8, !tbaa !9
  %1038 = add nsw i64 %1037, 1
  %1039 = load i64, ptr %50, align 8, !tbaa !9
  %1040 = mul nsw i64 %1038, %1039
  %1041 = add nsw i64 %1036, %1040
  %1042 = getelementptr inbounds float, ptr %1035, i64 %1041
  %1043 = load float, ptr %1042, align 4, !tbaa !11
  store float %1043, ptr %58, align 4, !tbaa !11
  %1044 = load float, ptr %57, align 4, !tbaa !11
  %1045 = load float, ptr %57, align 4, !tbaa !11
  %1046 = load float, ptr %58, align 4, !tbaa !11
  %1047 = load float, ptr %58, align 4, !tbaa !11
  %1048 = fmul float %1046, %1047
  %1049 = call float @llvm.fmuladd.f32(float %1044, float %1045, float %1048)
  %1050 = load ptr, ptr %44, align 8, !tbaa !5
  %1051 = load i64, ptr %60, align 8, !tbaa !9
  %1052 = getelementptr inbounds float, ptr %1050, i64 %1051
  store float %1049, ptr %1052, align 4, !tbaa !11
  br label %1053

1053:                                             ; preds = %1026
  %1054 = load i64, ptr %60, align 8, !tbaa !9
  %1055 = add nsw i64 %1054, 1
  store i64 %1055, ptr %60, align 8, !tbaa !9
  br label %1022, !llvm.loop !14

1056:                                             ; preds = %1022
  %1057 = load ptr, ptr %29, align 8, !tbaa !5
  %1058 = load ptr, ptr %44, align 8, !tbaa !5
  %1059 = getelementptr inbounds float, ptr %1058, i64 1
  %1060 = call i64 @f2c_isamax(ptr noundef %1057, ptr noundef %1059, ptr noundef @c__1)
  store i64 %1060, ptr %60, align 8, !tbaa !9
  %1061 = load ptr, ptr %34, align 8, !tbaa !5
  %1062 = load i64, ptr %60, align 8, !tbaa !9
  %1063 = load i64, ptr %59, align 8, !tbaa !9
  %1064 = load i64, ptr %50, align 8, !tbaa !9
  %1065 = mul nsw i64 %1063, %1064
  %1066 = add nsw i64 %1062, %1065
  %1067 = getelementptr inbounds float, ptr %1061, i64 %1066
  %1068 = load ptr, ptr %34, align 8, !tbaa !5
  %1069 = load i64, ptr %60, align 8, !tbaa !9
  %1070 = load i64, ptr %59, align 8, !tbaa !9
  %1071 = add nsw i64 %1070, 1
  %1072 = load i64, ptr %50, align 8, !tbaa !9
  %1073 = mul nsw i64 %1071, %1072
  %1074 = add nsw i64 %1069, %1073
  %1075 = getelementptr inbounds float, ptr %1068, i64 %1074
  %1076 = call i32 @slartg_(ptr noundef %1067, ptr noundef %1075, ptr noundef %62, ptr noundef %63, ptr noundef %61)
  %1077 = load ptr, ptr %29, align 8, !tbaa !5
  %1078 = load ptr, ptr %34, align 8, !tbaa !5
  %1079 = load i64, ptr %59, align 8, !tbaa !9
  %1080 = load i64, ptr %50, align 8, !tbaa !9
  %1081 = mul nsw i64 %1079, %1080
  %1082 = add nsw i64 %1081, 1
  %1083 = getelementptr inbounds float, ptr %1078, i64 %1082
  %1084 = load ptr, ptr %34, align 8, !tbaa !5
  %1085 = load i64, ptr %59, align 8, !tbaa !9
  %1086 = add nsw i64 %1085, 1
  %1087 = load i64, ptr %50, align 8, !tbaa !9
  %1088 = mul nsw i64 %1086, %1087
  %1089 = add nsw i64 %1088, 1
  %1090 = getelementptr inbounds float, ptr %1084, i64 %1089
  %1091 = call i32 @f2c_srot(ptr noundef %1077, ptr noundef %1083, ptr noundef @c__1, ptr noundef %1090, ptr noundef @c__1, ptr noundef %62, ptr noundef %63)
  %1092 = load ptr, ptr %34, align 8, !tbaa !5
  %1093 = load i64, ptr %60, align 8, !tbaa !9
  %1094 = load i64, ptr %59, align 8, !tbaa !9
  %1095 = add nsw i64 %1094, 1
  %1096 = load i64, ptr %50, align 8, !tbaa !9
  %1097 = mul nsw i64 %1095, %1096
  %1098 = add nsw i64 %1093, %1097
  %1099 = getelementptr inbounds float, ptr %1092, i64 %1098
  store float 0.000000e+00, ptr %1099, align 4, !tbaa !11
  br label %1100

1100:                                             ; preds = %1056, %974
  br label %1101

1101:                                             ; preds = %1100, %955
  br label %1102

1102:                                             ; preds = %1101
  %1103 = load i64, ptr %59, align 8, !tbaa !9
  %1104 = add nsw i64 %1103, 1
  store i64 %1104, ptr %59, align 8, !tbaa !9
  br label %945, !llvm.loop !16

1105:                                             ; preds = %945
  br label %1106

1106:                                             ; preds = %1105, %927
  %1107 = load i64, ptr %87, align 8, !tbaa !9
  %1108 = icmp ne i64 %1107, 0
  br i1 %1108, label %1109, label %1285

1109:                                             ; preds = %1106
  %1110 = load ptr, ptr %25, align 8, !tbaa !5
  %1111 = load ptr, ptr %29, align 8, !tbaa !5
  %1112 = load ptr, ptr %38, align 8, !tbaa !5
  %1113 = load ptr, ptr %39, align 8, !tbaa !5
  %1114 = load ptr, ptr %40, align 8, !tbaa !5
  %1115 = getelementptr inbounds float, ptr %1114, i64 1
  %1116 = load ptr, ptr %29, align 8, !tbaa !5
  %1117 = load ptr, ptr %36, align 8, !tbaa !5
  %1118 = load i64, ptr %53, align 8, !tbaa !9
  %1119 = getelementptr inbounds float, ptr %1117, i64 %1118
  %1120 = load ptr, ptr %37, align 8, !tbaa !5
  %1121 = call i32 @sgebak_(ptr noundef %1110, ptr noundef @.str.16, ptr noundef %1111, ptr noundef %1112, ptr noundef %1113, ptr noundef %1115, ptr noundef %1116, ptr noundef %1119, ptr noundef %1120, ptr noundef %70)
  %1122 = load ptr, ptr %29, align 8, !tbaa !5
  %1123 = load i64, ptr %1122, align 8, !tbaa !9
  store i64 %1123, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %59, align 8, !tbaa !9
  br label %1124

1124:                                             ; preds = %1281, %1109
  %1125 = load i64, ptr %59, align 8, !tbaa !9
  %1126 = load i64, ptr %54, align 8, !tbaa !9
  %1127 = icmp sle i64 %1125, %1126
  br i1 %1127, label %1128, label %1284

1128:                                             ; preds = %1124
  %1129 = load ptr, ptr %33, align 8, !tbaa !5
  %1130 = load i64, ptr %59, align 8, !tbaa !9
  %1131 = getelementptr inbounds float, ptr %1129, i64 %1130
  %1132 = load float, ptr %1131, align 4, !tbaa !11
  %1133 = fcmp oeq float %1132, 0.000000e+00
  br i1 %1133, label %1134, label %1153

1134:                                             ; preds = %1128
  %1135 = load ptr, ptr %29, align 8, !tbaa !5
  %1136 = load ptr, ptr %36, align 8, !tbaa !5
  %1137 = load i64, ptr %59, align 8, !tbaa !9
  %1138 = load i64, ptr %52, align 8, !tbaa !9
  %1139 = mul nsw i64 %1137, %1138
  %1140 = add nsw i64 %1139, 1
  %1141 = getelementptr inbounds float, ptr %1136, i64 %1140
  %1142 = call double @f2c_snrm2(ptr noundef %1135, ptr noundef %1141, ptr noundef @c__1)
  %1143 = fdiv double 1.000000e+00, %1142
  %1144 = fptrunc double %1143 to float
  store float %1144, ptr %65, align 4, !tbaa !11
  %1145 = load ptr, ptr %29, align 8, !tbaa !5
  %1146 = load ptr, ptr %36, align 8, !tbaa !5
  %1147 = load i64, ptr %59, align 8, !tbaa !9
  %1148 = load i64, ptr %52, align 8, !tbaa !9
  %1149 = mul nsw i64 %1147, %1148
  %1150 = add nsw i64 %1149, 1
  %1151 = getelementptr inbounds float, ptr %1146, i64 %1150
  %1152 = call i32 @f2c_sscal(ptr noundef %1145, ptr noundef %65, ptr noundef %1151, ptr noundef @c__1)
  br label %1280

1153:                                             ; preds = %1128
  %1154 = load ptr, ptr %33, align 8, !tbaa !5
  %1155 = load i64, ptr %59, align 8, !tbaa !9
  %1156 = getelementptr inbounds float, ptr %1154, i64 %1155
  %1157 = load float, ptr %1156, align 4, !tbaa !11
  %1158 = fcmp ogt float %1157, 0.000000e+00
  br i1 %1158, label %1159, label %1279

1159:                                             ; preds = %1153
  %1160 = load ptr, ptr %29, align 8, !tbaa !5
  %1161 = load ptr, ptr %36, align 8, !tbaa !5
  %1162 = load i64, ptr %59, align 8, !tbaa !9
  %1163 = load i64, ptr %52, align 8, !tbaa !9
  %1164 = mul nsw i64 %1162, %1163
  %1165 = add nsw i64 %1164, 1
  %1166 = getelementptr inbounds float, ptr %1161, i64 %1165
  %1167 = call double @f2c_snrm2(ptr noundef %1160, ptr noundef %1166, ptr noundef @c__1)
  %1168 = fptrunc double %1167 to float
  store float %1168, ptr %57, align 4, !tbaa !11
  %1169 = load ptr, ptr %29, align 8, !tbaa !5
  %1170 = load ptr, ptr %36, align 8, !tbaa !5
  %1171 = load i64, ptr %59, align 8, !tbaa !9
  %1172 = add nsw i64 %1171, 1
  %1173 = load i64, ptr %52, align 8, !tbaa !9
  %1174 = mul nsw i64 %1172, %1173
  %1175 = add nsw i64 %1174, 1
  %1176 = getelementptr inbounds float, ptr %1170, i64 %1175
  %1177 = call double @f2c_snrm2(ptr noundef %1169, ptr noundef %1176, ptr noundef @c__1)
  %1178 = fptrunc double %1177 to float
  store float %1178, ptr %58, align 4, !tbaa !11
  %1179 = call double @slapy2_(ptr noundef %57, ptr noundef %58)
  %1180 = fdiv double 1.000000e+00, %1179
  %1181 = fptrunc double %1180 to float
  store float %1181, ptr %65, align 4, !tbaa !11
  %1182 = load ptr, ptr %29, align 8, !tbaa !5
  %1183 = load ptr, ptr %36, align 8, !tbaa !5
  %1184 = load i64, ptr %59, align 8, !tbaa !9
  %1185 = load i64, ptr %52, align 8, !tbaa !9
  %1186 = mul nsw i64 %1184, %1185
  %1187 = add nsw i64 %1186, 1
  %1188 = getelementptr inbounds float, ptr %1183, i64 %1187
  %1189 = call i32 @f2c_sscal(ptr noundef %1182, ptr noundef %65, ptr noundef %1188, ptr noundef @c__1)
  %1190 = load ptr, ptr %29, align 8, !tbaa !5
  %1191 = load ptr, ptr %36, align 8, !tbaa !5
  %1192 = load i64, ptr %59, align 8, !tbaa !9
  %1193 = add nsw i64 %1192, 1
  %1194 = load i64, ptr %52, align 8, !tbaa !9
  %1195 = mul nsw i64 %1193, %1194
  %1196 = add nsw i64 %1195, 1
  %1197 = getelementptr inbounds float, ptr %1191, i64 %1196
  %1198 = call i32 @f2c_sscal(ptr noundef %1190, ptr noundef %65, ptr noundef %1197, ptr noundef @c__1)
  %1199 = load ptr, ptr %29, align 8, !tbaa !5
  %1200 = load i64, ptr %1199, align 8, !tbaa !9
  store i64 %1200, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %1201

1201:                                             ; preds = %1232, %1159
  %1202 = load i64, ptr %60, align 8, !tbaa !9
  %1203 = load i64, ptr %55, align 8, !tbaa !9
  %1204 = icmp sle i64 %1202, %1203
  br i1 %1204, label %1205, label %1235

1205:                                             ; preds = %1201
  %1206 = load ptr, ptr %36, align 8, !tbaa !5
  %1207 = load i64, ptr %60, align 8, !tbaa !9
  %1208 = load i64, ptr %59, align 8, !tbaa !9
  %1209 = load i64, ptr %52, align 8, !tbaa !9
  %1210 = mul nsw i64 %1208, %1209
  %1211 = add nsw i64 %1207, %1210
  %1212 = getelementptr inbounds float, ptr %1206, i64 %1211
  %1213 = load float, ptr %1212, align 4, !tbaa !11
  store float %1213, ptr %57, align 4, !tbaa !11
  %1214 = load ptr, ptr %36, align 8, !tbaa !5
  %1215 = load i64, ptr %60, align 8, !tbaa !9
  %1216 = load i64, ptr %59, align 8, !tbaa !9
  %1217 = add nsw i64 %1216, 1
  %1218 = load i64, ptr %52, align 8, !tbaa !9
  %1219 = mul nsw i64 %1217, %1218
  %1220 = add nsw i64 %1215, %1219
  %1221 = getelementptr inbounds float, ptr %1214, i64 %1220
  %1222 = load float, ptr %1221, align 4, !tbaa !11
  store float %1222, ptr %58, align 4, !tbaa !11
  %1223 = load float, ptr %57, align 4, !tbaa !11
  %1224 = load float, ptr %57, align 4, !tbaa !11
  %1225 = load float, ptr %58, align 4, !tbaa !11
  %1226 = load float, ptr %58, align 4, !tbaa !11
  %1227 = fmul float %1225, %1226
  %1228 = call float @llvm.fmuladd.f32(float %1223, float %1224, float %1227)
  %1229 = load ptr, ptr %44, align 8, !tbaa !5
  %1230 = load i64, ptr %60, align 8, !tbaa !9
  %1231 = getelementptr inbounds float, ptr %1229, i64 %1230
  store float %1228, ptr %1231, align 4, !tbaa !11
  br label %1232

1232:                                             ; preds = %1205
  %1233 = load i64, ptr %60, align 8, !tbaa !9
  %1234 = add nsw i64 %1233, 1
  store i64 %1234, ptr %60, align 8, !tbaa !9
  br label %1201, !llvm.loop !17

1235:                                             ; preds = %1201
  %1236 = load ptr, ptr %29, align 8, !tbaa !5
  %1237 = load ptr, ptr %44, align 8, !tbaa !5
  %1238 = getelementptr inbounds float, ptr %1237, i64 1
  %1239 = call i64 @f2c_isamax(ptr noundef %1236, ptr noundef %1238, ptr noundef @c__1)
  store i64 %1239, ptr %60, align 8, !tbaa !9
  %1240 = load ptr, ptr %36, align 8, !tbaa !5
  %1241 = load i64, ptr %60, align 8, !tbaa !9
  %1242 = load i64, ptr %59, align 8, !tbaa !9
  %1243 = load i64, ptr %52, align 8, !tbaa !9
  %1244 = mul nsw i64 %1242, %1243
  %1245 = add nsw i64 %1241, %1244
  %1246 = getelementptr inbounds float, ptr %1240, i64 %1245
  %1247 = load ptr, ptr %36, align 8, !tbaa !5
  %1248 = load i64, ptr %60, align 8, !tbaa !9
  %1249 = load i64, ptr %59, align 8, !tbaa !9
  %1250 = add nsw i64 %1249, 1
  %1251 = load i64, ptr %52, align 8, !tbaa !9
  %1252 = mul nsw i64 %1250, %1251
  %1253 = add nsw i64 %1248, %1252
  %1254 = getelementptr inbounds float, ptr %1247, i64 %1253
  %1255 = call i32 @slartg_(ptr noundef %1246, ptr noundef %1254, ptr noundef %62, ptr noundef %63, ptr noundef %61)
  %1256 = load ptr, ptr %29, align 8, !tbaa !5
  %1257 = load ptr, ptr %36, align 8, !tbaa !5
  %1258 = load i64, ptr %59, align 8, !tbaa !9
  %1259 = load i64, ptr %52, align 8, !tbaa !9
  %1260 = mul nsw i64 %1258, %1259
  %1261 = add nsw i64 %1260, 1
  %1262 = getelementptr inbounds float, ptr %1257, i64 %1261
  %1263 = load ptr, ptr %36, align 8, !tbaa !5
  %1264 = load i64, ptr %59, align 8, !tbaa !9
  %1265 = add nsw i64 %1264, 1
  %1266 = load i64, ptr %52, align 8, !tbaa !9
  %1267 = mul nsw i64 %1265, %1266
  %1268 = add nsw i64 %1267, 1
  %1269 = getelementptr inbounds float, ptr %1263, i64 %1268
  %1270 = call i32 @f2c_srot(ptr noundef %1256, ptr noundef %1262, ptr noundef @c__1, ptr noundef %1269, ptr noundef @c__1, ptr noundef %62, ptr noundef %63)
  %1271 = load ptr, ptr %36, align 8, !tbaa !5
  %1272 = load i64, ptr %60, align 8, !tbaa !9
  %1273 = load i64, ptr %59, align 8, !tbaa !9
  %1274 = add nsw i64 %1273, 1
  %1275 = load i64, ptr %52, align 8, !tbaa !9
  %1276 = mul nsw i64 %1274, %1275
  %1277 = add nsw i64 %1272, %1276
  %1278 = getelementptr inbounds float, ptr %1271, i64 %1277
  store float 0.000000e+00, ptr %1278, align 4, !tbaa !11
  br label %1279

1279:                                             ; preds = %1235, %1153
  br label %1280

1280:                                             ; preds = %1279, %1134
  br label %1281

1281:                                             ; preds = %1280
  %1282 = load i64, ptr %59, align 8, !tbaa !9
  %1283 = add nsw i64 %1282, 1
  store i64 %1283, ptr %59, align 8, !tbaa !9
  br label %1124, !llvm.loop !18

1284:                                             ; preds = %1124
  br label %1285

1285:                                             ; preds = %1284, %1106
  br label %1286

1286:                                             ; preds = %1285, %868
  %1287 = load i64, ptr %75, align 8, !tbaa !9
  %1288 = icmp ne i64 %1287, 0
  br i1 %1288, label %1289, label %1371

1289:                                             ; preds = %1286
  %1290 = load ptr, ptr %29, align 8, !tbaa !5
  %1291 = load i64, ptr %1290, align 8, !tbaa !9
  %1292 = load ptr, ptr %47, align 8, !tbaa !5
  %1293 = load i64, ptr %1292, align 8, !tbaa !9
  %1294 = sub nsw i64 %1291, %1293
  store i64 %1294, ptr %54, align 8, !tbaa !9
  %1295 = load ptr, ptr %29, align 8, !tbaa !5
  %1296 = load i64, ptr %1295, align 8, !tbaa !9
  %1297 = load ptr, ptr %47, align 8, !tbaa !5
  %1298 = load i64, ptr %1297, align 8, !tbaa !9
  %1299 = sub nsw i64 %1296, %1298
  store i64 %1299, ptr %56, align 8, !tbaa !9
  %1300 = load i64, ptr %56, align 8, !tbaa !9
  %1301 = icmp sge i64 %1300, 1
  br i1 %1301, label %1302, label %1304

1302:                                             ; preds = %1289
  %1303 = load i64, ptr %56, align 8, !tbaa !9
  br label %1305

1304:                                             ; preds = %1289
  br label %1305

1305:                                             ; preds = %1304, %1302
  %1306 = phi i64 [ %1303, %1302 ], [ 1, %1304 ]
  store i64 %1306, ptr %55, align 8, !tbaa !9
  %1307 = load ptr, ptr %32, align 8, !tbaa !5
  %1308 = load ptr, ptr %47, align 8, !tbaa !5
  %1309 = load i64, ptr %1308, align 8, !tbaa !9
  %1310 = add nsw i64 %1309, 1
  %1311 = getelementptr inbounds float, ptr %1307, i64 %1310
  %1312 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %69, ptr noundef %54, ptr noundef @c__1, ptr noundef %1311, ptr noundef %55, ptr noundef %70)
  %1313 = load ptr, ptr %29, align 8, !tbaa !5
  %1314 = load i64, ptr %1313, align 8, !tbaa !9
  %1315 = load ptr, ptr %47, align 8, !tbaa !5
  %1316 = load i64, ptr %1315, align 8, !tbaa !9
  %1317 = sub nsw i64 %1314, %1316
  store i64 %1317, ptr %54, align 8, !tbaa !9
  %1318 = load ptr, ptr %29, align 8, !tbaa !5
  %1319 = load i64, ptr %1318, align 8, !tbaa !9
  %1320 = load ptr, ptr %47, align 8, !tbaa !5
  %1321 = load i64, ptr %1320, align 8, !tbaa !9
  %1322 = sub nsw i64 %1319, %1321
  store i64 %1322, ptr %56, align 8, !tbaa !9
  %1323 = load i64, ptr %56, align 8, !tbaa !9
  %1324 = icmp sge i64 %1323, 1
  br i1 %1324, label %1325, label %1327

1325:                                             ; preds = %1305
  %1326 = load i64, ptr %56, align 8, !tbaa !9
  br label %1328

1327:                                             ; preds = %1305
  br label %1328

1328:                                             ; preds = %1327, %1325
  %1329 = phi i64 [ %1326, %1325 ], [ 1, %1327 ]
  store i64 %1329, ptr %55, align 8, !tbaa !9
  %1330 = load ptr, ptr %33, align 8, !tbaa !5
  %1331 = load ptr, ptr %47, align 8, !tbaa !5
  %1332 = load i64, ptr %1331, align 8, !tbaa !9
  %1333 = add nsw i64 %1332, 1
  %1334 = getelementptr inbounds float, ptr %1330, i64 %1333
  %1335 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %69, ptr noundef %54, ptr noundef @c__1, ptr noundef %1334, ptr noundef %55, ptr noundef %70)
  %1336 = load ptr, ptr %47, align 8, !tbaa !5
  %1337 = load i64, ptr %1336, align 8, !tbaa !9
  %1338 = icmp eq i64 %1337, 0
  br i1 %1338, label %1339, label %1355

1339:                                             ; preds = %1328
  %1340 = load i64, ptr %89, align 8, !tbaa !9
  %1341 = icmp ne i64 %1340, 0
  br i1 %1341, label %1345, label %1342

1342:                                             ; preds = %1339
  %1343 = load i64, ptr %82, align 8, !tbaa !9
  %1344 = icmp ne i64 %1343, 0
  br i1 %1344, label %1345, label %1354

1345:                                             ; preds = %1342, %1339
  %1346 = load i64, ptr %74, align 8, !tbaa !9
  %1347 = icmp eq i64 %1346, 0
  br i1 %1347, label %1348, label %1354

1348:                                             ; preds = %1345
  %1349 = load ptr, ptr %29, align 8, !tbaa !5
  %1350 = load ptr, ptr %43, align 8, !tbaa !5
  %1351 = getelementptr inbounds float, ptr %1350, i64 1
  %1352 = load ptr, ptr %29, align 8, !tbaa !5
  %1353 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %69, ptr noundef %1349, ptr noundef @c__1, ptr noundef %1351, ptr noundef %1352, ptr noundef %70)
  br label %1354

1354:                                             ; preds = %1348, %1345, %1342
  br label %1370

1355:                                             ; preds = %1328
  %1356 = load ptr, ptr %38, align 8, !tbaa !5
  %1357 = load i64, ptr %1356, align 8, !tbaa !9
  %1358 = sub nsw i64 %1357, 1
  store i64 %1358, ptr %54, align 8, !tbaa !9
  %1359 = load ptr, ptr %32, align 8, !tbaa !5
  %1360 = getelementptr inbounds float, ptr %1359, i64 1
  %1361 = load ptr, ptr %29, align 8, !tbaa !5
  %1362 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %69, ptr noundef %54, ptr noundef @c__1, ptr noundef %1360, ptr noundef %1361, ptr noundef %70)
  %1363 = load ptr, ptr %38, align 8, !tbaa !5
  %1364 = load i64, ptr %1363, align 8, !tbaa !9
  %1365 = sub nsw i64 %1364, 1
  store i64 %1365, ptr %54, align 8, !tbaa !9
  %1366 = load ptr, ptr %33, align 8, !tbaa !5
  %1367 = getelementptr inbounds float, ptr %1366, i64 1
  %1368 = load ptr, ptr %29, align 8, !tbaa !5
  %1369 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %69, ptr noundef %54, ptr noundef @c__1, ptr noundef %1367, ptr noundef %1368, ptr noundef %70)
  br label %1370

1370:                                             ; preds = %1355, %1354
  br label %1371

1371:                                             ; preds = %1370, %1286
  %1372 = load i64, ptr %80, align 8, !tbaa !9
  %1373 = sitofp i64 %1372 to float
  %1374 = load ptr, ptr %44, align 8, !tbaa !5
  %1375 = getelementptr inbounds float, ptr %1374, i64 1
  store float %1373, ptr %1375, align 4, !tbaa !11
  store i32 0, ptr %24, align 4
  store i32 1, ptr %90, align 4
  br label %1376

1376:                                             ; preds = %1371, %581, %575, %567
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  %1377 = load i32, ptr %24, align 4
  ret i32 %1377
}

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

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

declare i32 @strevc_(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 @strsna_(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 @sgebak_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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


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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @sgeevx_(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 nocapture noundef writeonly %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr nocapture noundef readonly %20, ptr noundef %21, ptr noundef %22) local_unnamed_addr #0 {
  %24 = ptrtoint ptr %11 to i64
  %25 = ptrtoint ptr %19 to i64
  %26 = ptrtoint ptr %9 to i64
  %27 = ptrtoint ptr %19 to i64
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca [1 x i8], align 1
  %36 = alloca float, align 4
  %37 = alloca [1 x float], align 4
  %38 = alloca [1 x i8], align 1
  %39 = alloca float, align 4
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca float, align 4
  %44 = alloca [1 x i64], align 8
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #6
  %47 = getelementptr inbounds i8, ptr %8, i64 -4
  %48 = load i64, ptr %10, align 8, !tbaa !5
  %49 = xor i64 %48, -1
  %50 = getelementptr inbounds float, ptr %9, i64 %49
  %51 = load i64, ptr %12, align 8, !tbaa !5
  %52 = xor i64 %51, -1
  %53 = getelementptr inbounds float, ptr %11, i64 %52
  %54 = getelementptr inbounds i8, ptr %19, i64 -4
  store i64 0, ptr %22, align 8, !tbaa !5
  %55 = load i64, ptr %20, align 8, !tbaa !5
  %56 = icmp eq i64 %55, -1
  %57 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #6
  %58 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #6
  %59 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #6
  %60 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.2) #6
  %61 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str) #6
  %62 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.3) #6
  %63 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %.not = icmp eq i64 %63, 0
  br i1 %.not, label %64, label %70

64:                                               ; preds = %23
  %65 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not581 = icmp eq i64 %65, 0
  br i1 %.not581, label %66, label %70

66:                                               ; preds = %64
  %67 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #6
  %.not582 = icmp eq i64 %67, 0
  br i1 %.not582, label %68, label %70

68:                                               ; preds = %66
  %69 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #6
  %.not583 = icmp eq i64 %69, 0
  br i1 %.not583, label %.thread619.sink.split, label %70

70:                                               ; preds = %68, %66, %64, %23
  %71 = icmp ne i64 %57, 0
  br i1 %71, label %74, label %72

72:                                               ; preds = %70
  %73 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %.not584 = icmp eq i64 %73, 0
  br i1 %.not584, label %.thread619.sink.split, label %74

74:                                               ; preds = %72, %70
  %75 = icmp ne i64 %58, 0
  br i1 %75, label %78, label %76

76:                                               ; preds = %74
  %77 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #6
  %.not585 = icmp eq i64 %77, 0
  br i1 %.not585, label %.thread619.sink.split, label %78

78:                                               ; preds = %76, %74
  %79 = icmp ne i64 %59, 0
  %80 = icmp ne i64 %60, 0
  %or.cond = select i1 %79, i1 true, i1 %80
  %81 = icmp ne i64 %62, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %81
  %82 = icmp ne i64 %61, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %82
  br i1 %or.cond5, label %83, label %.thread619.sink.split

83:                                               ; preds = %78
  %or.cond7 = select i1 %80, i1 true, i1 %81
  %or.cond7.not = xor i1 %or.cond7, true
  %or.cond9 = and i1 %71, %75
  %or.cond608 = or i1 %or.cond9, %or.cond7.not
  br i1 %or.cond608, label %84, label %.thread619.sink.split

84:                                               ; preds = %83
  %85 = load i64, ptr %4, align 8, !tbaa !5
  %86 = icmp slt i64 %85, 0
  br i1 %86, label %.thread619.sink.split, label %87

87:                                               ; preds = %84
  %88 = load i64, ptr %6, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %85, i64 1)
  %89 = icmp slt i64 %88, %spec.select
  br i1 %89, label %.thread619.sink.split, label %90

90:                                               ; preds = %87
  %91 = load i64, ptr %10, align 8, !tbaa !5
  %92 = icmp slt i64 %91, 1
  %93 = icmp ult i64 %91, %85
  %or.cond630 = and i1 %71, %93
  %or.cond632 = or i1 %92, %or.cond630
  br i1 %or.cond632, label %.thread619.sink.split, label %94

94:                                               ; preds = %90
  %95 = load i64, ptr %12, align 8, !tbaa !5
  %96 = icmp slt i64 %95, 1
  %97 = icmp ult i64 %95, %85
  %or.cond631 = and i1 %75, %97
  %or.cond633 = or i1 %96, %or.cond631
  br i1 %or.cond633, label %.thread619.sink.split, label %98

98:                                               ; preds = %94
  %.pr = load i64, ptr %22, align 8, !tbaa !5
  %99 = icmp eq i64 %.pr, 0
  br i1 %99, label %100, label %.thread619

100:                                              ; preds = %98
  %101 = icmp eq i64 %85, 0
  br i1 %101, label %155, label %102

102:                                              ; preds = %100
  %103 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c__0) #6
  %104 = add i64 %103, 1
  %105 = mul i64 %104, %85
  %.not634 = icmp eq i64 %57, 0
  br i1 %.not634, label %108, label %106

106:                                              ; preds = %102
  %107 = tail call i32 @shseqr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %19, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #6
  br label %.thread610

108:                                              ; preds = %102
  %.not586 = icmp eq i64 %58, 0
  br i1 %.not586, label %111, label %109

109:                                              ; preds = %108
  %110 = tail call i32 @shseqr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %19, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #6
  br label %.thread610

111:                                              ; preds = %108
  %.not587 = icmp eq i64 %59, 0
  br i1 %.not587, label %123, label %116

.thread610:                                       ; preds = %106, %109
  %112 = load float, ptr %19, align 4, !tbaa !9
  %113 = fptosi float %112 to i64
  %114 = load i64, ptr %4, align 8, !tbaa !5
  %115 = mul nsw i64 %114, 3
  br i1 %or.cond, label %138, label %134

116:                                              ; preds = %111
  %117 = tail call i32 @shseqr_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.1, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %19, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #6
  %118 = load float, ptr %19, align 4, !tbaa !9
  %119 = fptosi float %118 to i64
  %120 = load i64, ptr %4, align 8, !tbaa !5
  %121 = shl i64 %120, 1
  %122 = tail call i64 @llvm.smax.i64(i64 %105, i64 %119)
  br label %152

123:                                              ; preds = %111
  %124 = tail call i32 @shseqr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.1, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %19, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #6
  %125 = load float, ptr %19, align 4, !tbaa !9
  %126 = fptosi float %125 to i64
  %127 = load i64, ptr %4, align 8, !tbaa !5
  %128 = shl i64 %127, 1
  %129 = add i64 %127, 6
  %130 = mul i64 %129, %127
  %131 = tail call i64 @llvm.smax.i64(i64 %128, i64 %130)
  %132 = tail call i64 @llvm.smax.i64(i64 %105, i64 %126)
  store i64 %132, ptr %28, align 8, !tbaa !5
  store i64 %130, ptr %29, align 8, !tbaa !5
  %133 = tail call i64 @llvm.smax.i64(i64 %132, i64 %130)
  br label %152

134:                                              ; preds = %.thread610
  %135 = add i64 %114, 6
  %136 = mul i64 %135, %114
  %137 = tail call i64 @llvm.smax.i64(i64 %115, i64 %136)
  br label %138

138:                                              ; preds = %134, %.thread610
  %.1563 = phi i64 [ %115, %.thread610 ], [ %137, %134 ]
  %139 = tail call i64 @llvm.smax.i64(i64 %105, i64 %113)
  %140 = add nsw i64 %114, -1
  %141 = tail call i64 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c_n1) #6
  %142 = mul nsw i64 %141, %140
  %143 = add nsw i64 %142, %114
  %144 = tail call i64 @llvm.smax.i64(i64 %139, i64 %143)
  %.pre = load i64, ptr %4, align 8, !tbaa !5
  br i1 %or.cond, label %149, label %145

145:                                              ; preds = %138
  %146 = add i64 %.pre, 6
  %147 = mul i64 %146, %.pre
  %148 = tail call i64 @llvm.smax.i64(i64 %144, i64 %147)
  br label %149

149:                                              ; preds = %145, %138
  %.0561 = phi i64 [ %144, %138 ], [ %148, %145 ]
  store i64 %.0561, ptr %28, align 8, !tbaa !5
  %150 = mul nsw i64 %.pre, 3
  store i64 %150, ptr %29, align 8, !tbaa !5
  %151 = tail call i64 @llvm.smax.i64(i64 %.0561, i64 %150)
  br label %152

152:                                              ; preds = %116, %123, %149
  %153 = phi i64 [ %.pre, %149 ], [ %120, %116 ], [ %127, %123 ]
  %.2564 = phi i64 [ %.1563, %149 ], [ %121, %116 ], [ %131, %123 ]
  %.1 = phi i64 [ %151, %149 ], [ %122, %116 ], [ %133, %123 ]
  %154 = tail call i64 @llvm.smax.i64(i64 %.1, i64 %.2564)
  br label %155

155:                                              ; preds = %100, %152
  %156 = phi i64 [ %153, %152 ], [ 0, %100 ]
  %.3565 = phi i64 [ %.2564, %152 ], [ 1, %100 ]
  %.2 = phi i64 [ %154, %152 ], [ 1, %100 ]
  %157 = sitofp i64 %.2 to float
  store float %157, ptr %19, align 4, !tbaa !9
  %158 = load i64, ptr %20, align 8, !tbaa !5
  %159 = icmp sge i64 %158, %.3565
  %or.cond17 = select i1 %159, i1 true, i1 %56
  br i1 %or.cond17, label %.thread, label %.thread619.sink.split

.thread:                                          ; preds = %155
  %.pr616.pr = load i64, ptr %22, align 8, !tbaa !5
  %.not598 = icmp eq i64 %.pr616.pr, 0
  br i1 %.not598, label %163, label %.thread619

.thread619.sink.split:                            ; preds = %155, %94, %90, %87, %84, %78, %83, %76, %72, %68
  %.sink = phi i64 [ -1, %68 ], [ -2, %72 ], [ -3, %76 ], [ -4, %83 ], [ -4, %78 ], [ -5, %84 ], [ -7, %87 ], [ -11, %90 ], [ -13, %94 ], [ -21, %155 ]
  store i64 %.sink, ptr %22, align 8, !tbaa !5
  br label %.thread619

.thread619:                                       ; preds = %.thread619.sink.split, %98, %.thread
  %160 = phi i64 [ %.pr616.pr, %.thread ], [ %.pr, %98 ], [ %.sink, %.thread619.sink.split ]
  %161 = sub nsw i64 0, %160
  store i64 %161, ptr %28, align 8, !tbaa !5
  %162 = call i32 @xerbla_(ptr noundef nonnull @.str.9, ptr noundef nonnull %28) #6
  br label %435

163:                                              ; preds = %.thread
  %164 = icmp eq i64 %156, 0
  %or.cond674 = select i1 %56, i1 true, i1 %164
  br i1 %or.cond674, label %435, label %165

165:                                              ; preds = %163
  %166 = tail call double @slamch_(ptr noundef nonnull @.str.5) #6
  %167 = fptrunc double %166 to float
  %168 = tail call double @slamch_(ptr noundef nonnull @.str.4) #6
  %169 = fptrunc double %168 to float
  store float %169, ptr %46, align 4, !tbaa !9
  %170 = fdiv float 1.000000e+00, %169
  store float %170, ptr %45, align 4, !tbaa !9
  %171 = call i32 @slabad_(ptr noundef nonnull %46, ptr noundef nonnull %45) #6
  %172 = load float, ptr %46, align 4, !tbaa !9
  %173 = fpext float %172 to double
  %174 = call double @sqrt(double noundef %173) #6
  %175 = fpext float %167 to double
  %176 = fdiv double %174, %175
  %177 = fptrunc double %176 to float
  store float %177, ptr %46, align 4, !tbaa !9
  %178 = fdiv float 1.000000e+00, %177
  store float %178, ptr %45, align 4, !tbaa !9
  store i64 0, ptr %42, align 8, !tbaa !5
  %179 = call double @slange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %37) #6
  %180 = fptrunc double %179 to float
  store float %180, ptr %39, align 4, !tbaa !9
  %181 = fcmp ogt float %180, 0.000000e+00
  %182 = load float, ptr %46, align 4
  %183 = fcmp ogt float %182, %180
  %or.cond636 = select i1 %181, i1 %183, i1 false
  br i1 %or.cond636, label %187, label %184

184:                                              ; preds = %165
  %185 = load float, ptr %45, align 4, !tbaa !9
  %186 = fcmp olt float %185, %180
  br i1 %186, label %187, label %189

187:                                              ; preds = %165, %184
  %storemerge = phi float [ %185, %184 ], [ %182, %165 ]
  store float %storemerge, ptr %43, align 4, !tbaa !9
  %188 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %43, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %40) #6
  br label %189

189:                                              ; preds = %184, %187
  %.not599626 = phi i1 [ false, %187 ], [ true, %184 ]
  %190 = call i32 @sgebal_(ptr noundef %0, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef nonnull %40) #6
  %191 = call double @slange_(ptr noundef nonnull @.str.12, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %37) #6
  %192 = fptrunc double %191 to float
  store float %192, ptr %16, align 4, !tbaa !9
  br i1 %.not599626, label %196, label %193

193:                                              ; preds = %189
  store float %192, ptr %37, align 4, !tbaa !9
  %194 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %39, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %40) #6
  %195 = load float, ptr %37, align 4, !tbaa !9
  store float %195, ptr %16, align 4, !tbaa !9
  br label %196

196:                                              ; preds = %193, %189
  %197 = load i64, ptr %4, align 8, !tbaa !5
  %198 = load i64, ptr %20, align 8, !tbaa !5
  %199 = sub i64 %198, %197
  store i64 %199, ptr %28, align 8, !tbaa !5
  %200 = getelementptr float, ptr %19, i64 %197
  %201 = call i32 @sgehrd_(ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef %200, ptr noundef nonnull %28, ptr noundef nonnull %40) #6
  br i1 %71, label %202, label %211

202:                                              ; preds = %196
  store i8 76, ptr %38, align 1, !tbaa !11
  %203 = call i32 @slacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10) #6
  %204 = load i64, ptr %20, align 8, !tbaa !5
  %205 = sub i64 %204, %197
  store i64 %205, ptr %28, align 8, !tbaa !5
  %206 = call i32 @sorghr_(ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %19, ptr noundef %200, ptr noundef nonnull %28, ptr noundef nonnull %40) #6
  %207 = load i64, ptr %20, align 8, !tbaa !5
  store i64 %207, ptr %28, align 8, !tbaa !5
  %208 = call i32 @shseqr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str, ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %19, ptr noundef nonnull %28, ptr noundef nonnull %22) #6
  %.not602 = icmp eq i64 %58, 0
  br i1 %.not602, label %222, label %209

209:                                              ; preds = %202
  store i8 66, ptr %38, align 1, !tbaa !11
  %210 = call i32 @slacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12) #6
  br label %222

211:                                              ; preds = %196
  %.not600 = icmp eq i64 %58, 0
  br i1 %.not600, label %219, label %212

212:                                              ; preds = %211
  store i8 82, ptr %38, align 1, !tbaa !11
  %213 = call i32 @slacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef nonnull %12) #6
  %214 = load i64, ptr %20, align 8, !tbaa !5
  %215 = sub i64 %214, %197
  store i64 %215, ptr %28, align 8, !tbaa !5
  %216 = call i32 @sorghr_(ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %19, ptr noundef %200, ptr noundef nonnull %28, ptr noundef nonnull %40) #6
  %217 = load i64, ptr %20, align 8, !tbaa !5
  store i64 %217, ptr %28, align 8, !tbaa !5
  %218 = call i32 @shseqr_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str, ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %19, ptr noundef nonnull %28, ptr noundef nonnull %22) #6
  br label %222

219:                                              ; preds = %211
  %.not601 = icmp eq i64 %59, 0
  %. = select i1 %.not601, i8 83, i8 69
  store i8 %., ptr %35, align 1, !tbaa !11
  %220 = load i64, ptr %20, align 8, !tbaa !5
  store i64 %220, ptr %28, align 8, !tbaa !5
  %221 = call i32 @shseqr_(ptr noundef nonnull %35, ptr noundef nonnull @.str.1, ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %19, ptr noundef nonnull %28, ptr noundef nonnull %22) #6
  br label %222

222:                                              ; preds = %212, %219, %202, %209
  %223 = load i64, ptr %22, align 8, !tbaa !5
  %224 = icmp sgt i64 %223, 0
  br i1 %224, label %.loopexit, label %225

225:                                              ; preds = %222
  %226 = or i64 %57, %58
  %or.cond19.not = icmp eq i64 %226, 0
  br i1 %or.cond19.not, label %229, label %227

227:                                              ; preds = %225
  %228 = call i32 @strevc_(ptr noundef nonnull %38, ptr noundef nonnull @.str.3, ptr noundef nonnull %44, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %41, ptr noundef nonnull %19, ptr noundef nonnull %40) #6
  br label %229

229:                                              ; preds = %225, %227
  %.not603 = icmp eq i64 %59, 0
  br i1 %.not603, label %230, label %232

230:                                              ; preds = %229
  %231 = call i32 @strsna_(ptr noundef %3, ptr noundef nonnull @.str.15, ptr noundef nonnull %44, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %17, ptr noundef %18, ptr noundef nonnull %4, ptr noundef nonnull %41, ptr noundef nonnull %19, ptr noundef nonnull %4, ptr noundef %21, ptr noundef nonnull %42) #6
  br label %232

232:                                              ; preds = %230, %229
  br i1 %71, label %233, label %.loopexit637

233:                                              ; preds = %232
  %234 = call i32 @sgebak_(ptr noundef %0, ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %40) #6
  %235 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %235, ptr %28, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %50, i64 4
  %.not604645 = icmp slt i64 %235, 1
  br i1 %.not604645, label %.loopexit637, label %.lr.ph648.preheader

.lr.ph648.preheader:                              ; preds = %233
  %236 = sub i64 %27, %26
  %237 = shl i64 %48, 2
  %238 = sub i64 %236, %237
  %239 = mul i64 %48, -4
  br label %.lr.ph648

.lr.ph648:                                        ; preds = %.lr.ph648.preheader, %317
  %indvar = phi i64 [ 0, %.lr.ph648.preheader ], [ %indvar.next, %317 ]
  %.0570646 = phi i64 [ 1, %.lr.ph648.preheader ], [ %318, %317 ]
  %240 = mul i64 %239, %indvar
  %241 = add i64 %238, %240
  %242 = add i64 %236, %240
  %243 = getelementptr inbounds float, ptr %47, i64 %.0570646
  %244 = load float, ptr %243, align 4, !tbaa !9
  %245 = fcmp oeq float %244, 0.000000e+00
  br i1 %245, label %246, label %252

246:                                              ; preds = %.lr.ph648
  %247 = mul nsw i64 %.0570646, %48
  %gep644 = getelementptr float, ptr %invariant.gep, i64 %247
  %248 = call double @f2c_snrm2(ptr noundef nonnull %4, ptr noundef %gep644, ptr noundef nonnull @c__1) #6
  %249 = fdiv double 1.000000e+00, %248
  %250 = fptrunc double %249 to float
  store float %250, ptr %36, align 4, !tbaa !9
  %251 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %36, ptr noundef %gep644, ptr noundef nonnull @c__1) #6
  br label %317

252:                                              ; preds = %.lr.ph648
  %253 = fcmp ogt float %244, 0.000000e+00
  br i1 %253, label %254, label %317

254:                                              ; preds = %252
  %255 = mul nsw i64 %.0570646, %48
  %gep = getelementptr float, ptr %invariant.gep, i64 %255
  %256 = call double @f2c_snrm2(ptr noundef nonnull %4, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %257 = fptrunc double %256 to float
  store float %257, ptr %30, align 4, !tbaa !9
  %258 = add nuw nsw i64 %.0570646, 1
  %259 = mul nsw i64 %258, %48
  %gep642 = getelementptr float, ptr %invariant.gep, i64 %259
  %260 = call double @f2c_snrm2(ptr noundef nonnull %4, ptr noundef %gep642, ptr noundef nonnull @c__1) #6
  %261 = fptrunc double %260 to float
  store float %261, ptr %31, align 4, !tbaa !9
  %262 = call double @slapy2_(ptr noundef nonnull %30, ptr noundef nonnull %31) #6
  %263 = fdiv double 1.000000e+00, %262
  %264 = fptrunc double %263 to float
  store float %264, ptr %36, align 4, !tbaa !9
  %265 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %36, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %266 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %36, ptr noundef %gep642, ptr noundef nonnull @c__1) #6
  %267 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %267, ptr %29, align 8, !tbaa !5
  %.not607638 = icmp slt i64 %267, 1
  br i1 %.not607638, label %310, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %254
  %min.iters.check = icmp ult i64 %267, 8
  br i1 %min.iters.check, label %.lr.ph.preheader708, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph.preheader
  %diff.check = icmp ult i64 %241, 32
  %diff.check678 = icmp ult i64 %242, 32
  %conflict.rdx = or i1 %diff.check, %diff.check678
  br i1 %conflict.rdx, label %.lr.ph.preheader708, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %267, 9223372036854775800
  %ind.end = or disjoint i64 %n.vec, 1
  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
  %268 = getelementptr float, ptr %50, i64 %offset.idx
  %269 = getelementptr float, ptr %268, i64 %255
  %270 = getelementptr i8, ptr %269, i64 16
  %wide.load = load <4 x float>, ptr %269, align 4, !tbaa !9
  %wide.load679 = load <4 x float>, ptr %270, align 4, !tbaa !9
  %271 = getelementptr float, ptr %268, i64 %259
  %272 = getelementptr i8, ptr %271, i64 16
  %wide.load680 = load <4 x float>, ptr %271, align 4, !tbaa !9
  %wide.load681 = load <4 x float>, ptr %272, align 4, !tbaa !9
  %273 = fmul <4 x float> %wide.load680, %wide.load680
  %274 = fmul <4 x float> %wide.load681, %wide.load681
  %275 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load, <4 x float> %wide.load, <4 x float> %273)
  %276 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load679, <4 x float> %wide.load679, <4 x float> %274)
  %277 = getelementptr float, ptr %19, i64 %index
  %278 = getelementptr inbounds i8, ptr %277, i64 16
  store <4 x float> %275, ptr %277, align 4, !tbaa !9
  store <4 x float> %276, ptr %278, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %279 = icmp eq i64 %index.next, %n.vec
  br i1 %279, label %middle.block, label %vector.body, !llvm.loop !12

middle.block:                                     ; preds = %vector.body
  %280 = extractelement <4 x float> %wide.load681, i64 3
  %281 = extractelement <4 x float> %wide.load679, i64 3
  %cmp.n = icmp eq i64 %267, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.preheader708

.lr.ph.preheader708:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph.preheader
  %.0568639.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %xtraiter = and i64 %267, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader708
  %282 = getelementptr float, ptr %50, i64 %.0568639.ph
  %283 = getelementptr float, ptr %282, i64 %255
  %284 = load float, ptr %283, align 4, !tbaa !9
  %285 = getelementptr float, ptr %282, i64 %259
  %286 = load float, ptr %285, align 4, !tbaa !9
  %287 = fmul float %286, %286
  %288 = call float @llvm.fmuladd.f32(float %284, float %284, float %287)
  %289 = getelementptr inbounds float, ptr %54, i64 %.0568639.ph
  store float %288, ptr %289, align 4, !tbaa !9
  %290 = add nuw i64 %.0568639.ph, 1
  br label %.lr.ph.prol.loopexit

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader708
  %.lcssa710.unr = phi float [ poison, %.lr.ph.preheader708 ], [ %284, %.lr.ph.prol ]
  %.lcssa709.unr = phi float [ poison, %.lr.ph.preheader708 ], [ %286, %.lr.ph.prol ]
  %.0568639.unr = phi i64 [ %.0568639.ph, %.lr.ph.preheader708 ], [ %290, %.lr.ph.prol ]
  %291 = icmp eq i64 %267, %.0568639.ph
  br i1 %291, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %.0568639 = phi i64 [ %309, %.lr.ph ], [ %.0568639.unr, %.lr.ph.prol.loopexit ]
  %292 = getelementptr float, ptr %50, i64 %.0568639
  %293 = getelementptr float, ptr %292, i64 %255
  %294 = load float, ptr %293, align 4, !tbaa !9
  %295 = getelementptr float, ptr %292, i64 %259
  %296 = load float, ptr %295, align 4, !tbaa !9
  %297 = fmul float %296, %296
  %298 = call float @llvm.fmuladd.f32(float %294, float %294, float %297)
  %299 = getelementptr inbounds float, ptr %54, i64 %.0568639
  store float %298, ptr %299, align 4, !tbaa !9
  %300 = add nuw i64 %.0568639, 1
  %301 = getelementptr float, ptr %50, i64 %300
  %302 = getelementptr float, ptr %301, i64 %255
  %303 = load float, ptr %302, align 4, !tbaa !9
  %304 = getelementptr float, ptr %301, i64 %259
  %305 = load float, ptr %304, align 4, !tbaa !9
  %306 = fmul float %305, %305
  %307 = call float @llvm.fmuladd.f32(float %303, float %303, float %306)
  %308 = getelementptr float, ptr %19, i64 %.0568639
  store float %307, ptr %308, align 4, !tbaa !9
  %309 = add nuw i64 %.0568639, 2
  %exitcond.not.1 = icmp eq i64 %300, %267
  br i1 %exitcond.not.1, label %._crit_edge, label %.lr.ph, !llvm.loop !16

._crit_edge:                                      ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %middle.block
  %.lcssa677 = phi float [ %281, %middle.block ], [ %.lcssa710.unr, %.lr.ph.prol.loopexit ], [ %303, %.lr.ph ]
  %.lcssa676 = phi float [ %280, %middle.block ], [ %.lcssa709.unr, %.lr.ph.prol.loopexit ], [ %305, %.lr.ph ]
  store float %.lcssa677, ptr %30, align 4, !tbaa !9
  store float %.lcssa676, ptr %31, align 4, !tbaa !9
  br label %310

310:                                              ; preds = %._crit_edge, %254
  %311 = call i64 @f2c_isamax(ptr noundef nonnull %4, ptr noundef nonnull %19, ptr noundef nonnull @c__1) #6
  %312 = getelementptr float, ptr %50, i64 %311
  %313 = getelementptr float, ptr %312, i64 %255
  %314 = getelementptr float, ptr %312, i64 %259
  %315 = call i32 @slartg_(ptr noundef %313, ptr noundef %314, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %32) #6
  %316 = call i32 @f2c_srot(ptr noundef nonnull %4, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep642, ptr noundef nonnull @c__1, ptr noundef nonnull %33, ptr noundef nonnull %34) #6
  store float 0.000000e+00, ptr %314, align 4, !tbaa !9
  br label %317

317:                                              ; preds = %246, %310, %252
  %318 = add nuw nsw i64 %.0570646, 1
  %319 = load i64, ptr %28, align 8, !tbaa !5
  %.not604.not = icmp slt i64 %.0570646, %319
  %indvar.next = add i64 %indvar, 1
  br i1 %.not604.not, label %.lr.ph648, label %.loopexit637, !llvm.loop !17

.loopexit637:                                     ; preds = %317, %233, %232
  br i1 %75, label %320, label %.loopexit

320:                                              ; preds = %.loopexit637
  %321 = call i32 @sgebak_(ptr noundef %0, ptr noundef nonnull @.str.16, ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef nonnull %4, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %40) #6
  %322 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %322, ptr %28, align 8, !tbaa !5
  %invariant.gep656 = getelementptr i8, ptr %53, i64 4
  %.not605662 = icmp slt i64 %322, 1
  br i1 %.not605662, label %.loopexit, label %.lr.ph665.preheader

.lr.ph665.preheader:                              ; preds = %320
  %323 = sub i64 %25, %24
  %324 = shl i64 %51, 2
  %325 = sub i64 %323, %324
  %326 = mul i64 %51, -4
  br label %.lr.ph665

.lr.ph665:                                        ; preds = %.lr.ph665.preheader, %404
  %indvar683 = phi i64 [ 0, %.lr.ph665.preheader ], [ %indvar.next684, %404 ]
  %.1571663 = phi i64 [ 1, %.lr.ph665.preheader ], [ %405, %404 ]
  %327 = mul i64 %326, %indvar683
  %328 = add i64 %325, %327
  %329 = add i64 %323, %327
  %330 = getelementptr inbounds float, ptr %47, i64 %.1571663
  %331 = load float, ptr %330, align 4, !tbaa !9
  %332 = fcmp oeq float %331, 0.000000e+00
  br i1 %332, label %333, label %339

333:                                              ; preds = %.lr.ph665
  %334 = mul nsw i64 %.1571663, %51
  %gep661 = getelementptr float, ptr %invariant.gep656, i64 %334
  %335 = call double @f2c_snrm2(ptr noundef nonnull %4, ptr noundef %gep661, ptr noundef nonnull @c__1) #6
  %336 = fdiv double 1.000000e+00, %335
  %337 = fptrunc double %336 to float
  store float %337, ptr %36, align 4, !tbaa !9
  %338 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %36, ptr noundef %gep661, ptr noundef nonnull @c__1) #6
  br label %404

339:                                              ; preds = %.lr.ph665
  %340 = fcmp ogt float %331, 0.000000e+00
  br i1 %340, label %341, label %404

341:                                              ; preds = %339
  %342 = mul nsw i64 %.1571663, %51
  %gep657 = getelementptr float, ptr %invariant.gep656, i64 %342
  %343 = call double @f2c_snrm2(ptr noundef nonnull %4, ptr noundef %gep657, ptr noundef nonnull @c__1) #6
  %344 = fptrunc double %343 to float
  store float %344, ptr %30, align 4, !tbaa !9
  %345 = add nuw nsw i64 %.1571663, 1
  %346 = mul nsw i64 %345, %51
  %gep659 = getelementptr float, ptr %invariant.gep656, i64 %346
  %347 = call double @f2c_snrm2(ptr noundef nonnull %4, ptr noundef %gep659, ptr noundef nonnull @c__1) #6
  %348 = fptrunc double %347 to float
  store float %348, ptr %31, align 4, !tbaa !9
  %349 = call double @slapy2_(ptr noundef nonnull %30, ptr noundef nonnull %31) #6
  %350 = fdiv double 1.000000e+00, %349
  %351 = fptrunc double %350 to float
  store float %351, ptr %36, align 4, !tbaa !9
  %352 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %36, ptr noundef %gep657, ptr noundef nonnull @c__1) #6
  %353 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %36, ptr noundef %gep659, ptr noundef nonnull @c__1) #6
  %354 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %354, ptr %29, align 8, !tbaa !5
  %.not606649 = icmp slt i64 %354, 1
  br i1 %.not606649, label %397, label %.lr.ph652.preheader

.lr.ph652.preheader:                              ; preds = %341
  %min.iters.check690 = icmp ult i64 %354, 8
  br i1 %min.iters.check690, label %.lr.ph652.preheader705, label %vector.memcheck682

vector.memcheck682:                               ; preds = %.lr.ph652.preheader
  %diff.check685 = icmp ult i64 %328, 32
  %diff.check686 = icmp ult i64 %329, 32
  %conflict.rdx687 = or i1 %diff.check685, %diff.check686
  br i1 %conflict.rdx687, label %.lr.ph652.preheader705, label %vector.ph691

vector.ph691:                                     ; preds = %vector.memcheck682
  %n.vec693 = and i64 %354, 9223372036854775800
  %ind.end694 = or disjoint i64 %n.vec693, 1
  br label %vector.body696

vector.body696:                                   ; preds = %vector.body696, %vector.ph691
  %index697 = phi i64 [ 0, %vector.ph691 ], [ %index.next703, %vector.body696 ]
  %offset.idx698 = or disjoint i64 %index697, 1
  %355 = getelementptr float, ptr %53, i64 %offset.idx698
  %356 = getelementptr float, ptr %355, i64 %342
  %357 = getelementptr i8, ptr %356, i64 16
  %wide.load699 = load <4 x float>, ptr %356, align 4, !tbaa !9
  %wide.load700 = load <4 x float>, ptr %357, align 4, !tbaa !9
  %358 = getelementptr float, ptr %355, i64 %346
  %359 = getelementptr i8, ptr %358, i64 16
  %wide.load701 = load <4 x float>, ptr %358, align 4, !tbaa !9
  %wide.load702 = load <4 x float>, ptr %359, align 4, !tbaa !9
  %360 = fmul <4 x float> %wide.load701, %wide.load701
  %361 = fmul <4 x float> %wide.load702, %wide.load702
  %362 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load699, <4 x float> %wide.load699, <4 x float> %360)
  %363 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load700, <4 x float> %wide.load700, <4 x float> %361)
  %364 = getelementptr float, ptr %19, i64 %index697
  %365 = getelementptr inbounds i8, ptr %364, i64 16
  store <4 x float> %362, ptr %364, align 4, !tbaa !9
  store <4 x float> %363, ptr %365, align 4, !tbaa !9
  %index.next703 = add nuw i64 %index697, 8
  %366 = icmp eq i64 %index.next703, %n.vec693
  br i1 %366, label %middle.block688, label %vector.body696, !llvm.loop !18

middle.block688:                                  ; preds = %vector.body696
  %367 = extractelement <4 x float> %wide.load702, i64 3
  %368 = extractelement <4 x float> %wide.load700, i64 3
  %cmp.n704 = icmp eq i64 %354, %n.vec693
  br i1 %cmp.n704, label %._crit_edge653, label %.lr.ph652.preheader705

.lr.ph652.preheader705:                           ; preds = %middle.block688, %vector.memcheck682, %.lr.ph652.preheader
  %.1569650.ph = phi i64 [ 1, %vector.memcheck682 ], [ 1, %.lr.ph652.preheader ], [ %ind.end694, %middle.block688 ]
  %xtraiter711 = and i64 %354, 1
  %lcmp.mod712.not = icmp eq i64 %xtraiter711, 0
  br i1 %lcmp.mod712.not, label %.lr.ph652.prol.loopexit, label %.lr.ph652.prol

.lr.ph652.prol:                                   ; preds = %.lr.ph652.preheader705
  %369 = getelementptr float, ptr %53, i64 %.1569650.ph
  %370 = getelementptr float, ptr %369, i64 %342
  %371 = load float, ptr %370, align 4, !tbaa !9
  %372 = getelementptr float, ptr %369, i64 %346
  %373 = load float, ptr %372, align 4, !tbaa !9
  %374 = fmul float %373, %373
  %375 = call float @llvm.fmuladd.f32(float %371, float %371, float %374)
  %376 = getelementptr inbounds float, ptr %54, i64 %.1569650.ph
  store float %375, ptr %376, align 4, !tbaa !9
  %377 = add nuw i64 %.1569650.ph, 1
  br label %.lr.ph652.prol.loopexit

.lr.ph652.prol.loopexit:                          ; preds = %.lr.ph652.prol, %.lr.ph652.preheader705
  %.lcssa707.unr = phi float [ poison, %.lr.ph652.preheader705 ], [ %371, %.lr.ph652.prol ]
  %.lcssa706.unr = phi float [ poison, %.lr.ph652.preheader705 ], [ %373, %.lr.ph652.prol ]
  %.1569650.unr = phi i64 [ %.1569650.ph, %.lr.ph652.preheader705 ], [ %377, %.lr.ph652.prol ]
  %378 = icmp eq i64 %354, %.1569650.ph
  br i1 %378, label %._crit_edge653, label %.lr.ph652

.lr.ph652:                                        ; preds = %.lr.ph652.prol.loopexit, %.lr.ph652
  %.1569650 = phi i64 [ %396, %.lr.ph652 ], [ %.1569650.unr, %.lr.ph652.prol.loopexit ]
  %379 = getelementptr float, ptr %53, i64 %.1569650
  %380 = getelementptr float, ptr %379, i64 %342
  %381 = load float, ptr %380, align 4, !tbaa !9
  %382 = getelementptr float, ptr %379, i64 %346
  %383 = load float, ptr %382, align 4, !tbaa !9
  %384 = fmul float %383, %383
  %385 = call float @llvm.fmuladd.f32(float %381, float %381, float %384)
  %386 = getelementptr inbounds float, ptr %54, i64 %.1569650
  store float %385, ptr %386, align 4, !tbaa !9
  %387 = add nuw i64 %.1569650, 1
  %388 = getelementptr float, ptr %53, i64 %387
  %389 = getelementptr float, ptr %388, i64 %342
  %390 = load float, ptr %389, align 4, !tbaa !9
  %391 = getelementptr float, ptr %388, i64 %346
  %392 = load float, ptr %391, align 4, !tbaa !9
  %393 = fmul float %392, %392
  %394 = call float @llvm.fmuladd.f32(float %390, float %390, float %393)
  %395 = getelementptr float, ptr %19, i64 %.1569650
  store float %394, ptr %395, align 4, !tbaa !9
  %396 = add nuw i64 %.1569650, 2
  %exitcond669.not.1 = icmp eq i64 %387, %354
  br i1 %exitcond669.not.1, label %._crit_edge653, label %.lr.ph652, !llvm.loop !19

._crit_edge653:                                   ; preds = %.lr.ph652.prol.loopexit, %.lr.ph652, %middle.block688
  %.lcssa675 = phi float [ %368, %middle.block688 ], [ %.lcssa707.unr, %.lr.ph652.prol.loopexit ], [ %390, %.lr.ph652 ]
  %.lcssa = phi float [ %367, %middle.block688 ], [ %.lcssa706.unr, %.lr.ph652.prol.loopexit ], [ %392, %.lr.ph652 ]
  store float %.lcssa675, ptr %30, align 4, !tbaa !9
  store float %.lcssa, ptr %31, align 4, !tbaa !9
  br label %397

397:                                              ; preds = %._crit_edge653, %341
  %398 = call i64 @f2c_isamax(ptr noundef nonnull %4, ptr noundef nonnull %19, ptr noundef nonnull @c__1) #6
  %399 = getelementptr float, ptr %53, i64 %398
  %400 = getelementptr float, ptr %399, i64 %342
  %401 = getelementptr float, ptr %399, i64 %346
  %402 = call i32 @slartg_(ptr noundef %400, ptr noundef %401, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %32) #6
  %403 = call i32 @f2c_srot(ptr noundef nonnull %4, ptr noundef %gep657, ptr noundef nonnull @c__1, ptr noundef %gep659, ptr noundef nonnull @c__1, ptr noundef nonnull %33, ptr noundef nonnull %34) #6
  store float 0.000000e+00, ptr %401, align 4, !tbaa !9
  br label %404

404:                                              ; preds = %333, %397, %339
  %405 = add nuw nsw i64 %.1571663, 1
  %406 = load i64, ptr %28, align 8, !tbaa !5
  %.not605.not = icmp slt i64 %.1571663, %406
  %indvar.next684 = add i64 %indvar683, 1
  br i1 %.not605.not, label %.lr.ph665, label %.loopexit, !llvm.loop !20

.loopexit:                                        ; preds = %404, %320, %.loopexit637, %222
  br i1 %.not599626, label %434, label %407

407:                                              ; preds = %.loopexit
  %408 = load i64, ptr %4, align 8, !tbaa !5
  %409 = load i64, ptr %22, align 8, !tbaa !5
  %410 = sub nsw i64 %408, %409
  store i64 %410, ptr %28, align 8, !tbaa !5
  %411 = call i64 @llvm.smax.i64(i64 %410, i64 1)
  store i64 %411, ptr %29, align 8, !tbaa !5
  %412 = getelementptr float, ptr %7, i64 %409
  %413 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c__1, ptr noundef %412, ptr noundef nonnull %29, ptr noundef nonnull %40) #6
  %414 = load i64, ptr %4, align 8, !tbaa !5
  %415 = load i64, ptr %22, align 8, !tbaa !5
  %416 = sub nsw i64 %414, %415
  store i64 %416, ptr %28, align 8, !tbaa !5
  %417 = call i64 @llvm.smax.i64(i64 %416, i64 1)
  store i64 %417, ptr %29, align 8, !tbaa !5
  %418 = getelementptr float, ptr %8, i64 %415
  %419 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c__1, ptr noundef %418, ptr noundef nonnull %29, ptr noundef nonnull %40) #6
  %420 = load i64, ptr %22, align 8, !tbaa !5
  %421 = icmp eq i64 %420, 0
  br i1 %421, label %422, label %427

422:                                              ; preds = %407
  %or.cond21 = select i1 %82, i1 true, i1 %81
  %423 = load i64, ptr %42, align 8
  %424 = icmp eq i64 %423, 0
  %or.cond23 = select i1 %or.cond21, i1 %424, i1 false
  br i1 %or.cond23, label %425, label %434

425:                                              ; preds = %422
  %426 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %39, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %18, ptr noundef nonnull %4, ptr noundef nonnull %40) #6
  br label %434

427:                                              ; preds = %407
  %428 = load i64, ptr %13, align 8, !tbaa !5
  %429 = add nsw i64 %428, -1
  store i64 %429, ptr %28, align 8, !tbaa !5
  %430 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c__1, ptr noundef %7, ptr noundef nonnull %4, ptr noundef nonnull %40) #6
  %431 = load i64, ptr %13, align 8, !tbaa !5
  %432 = add nsw i64 %431, -1
  store i64 %432, ptr %28, align 8, !tbaa !5
  %433 = call i32 @slascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %39, ptr noundef nonnull %28, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef nonnull %4, ptr noundef nonnull %40) #6
  br label %434

434:                                              ; preds = %427, %422, %425, %.loopexit
  store float %157, ptr %19, align 4, !tbaa !9
  br label %435

435:                                              ; preds = %163, %434, %.thread619
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  ret i32 0
}

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

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

declare double @slange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, 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 @sgebal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @strevc_(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 @strsna_(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 @sgebak_(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 double @f2c_snrm2(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #4

declare i64 @f2c_isamax(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 x float>) #5

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

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

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


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