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

155:                                              ; preds = %23
  %156 = load ptr, ptr %24, align 8, !tbaa !5
  %157 = call i32 @lsame_(ptr noundef %156, ptr noundef @.str.4)
  %158 = icmp ne i32 %157, 0
  br i1 %158, label %169, label %159

159:                                              ; preds = %155
  %160 = load ptr, ptr %24, align 8, !tbaa !5
  %161 = call i32 @lsame_(ptr noundef %160, ptr noundef @.str.5)
  %162 = icmp ne i32 %161, 0
  br i1 %162, label %169, label %163

163:                                              ; preds = %159
  %164 = load ptr, ptr %24, align 8, !tbaa !5
  %165 = call i32 @lsame_(ptr noundef %164, ptr noundef @.str.3)
  %166 = icmp ne i32 %165, 0
  br i1 %166, label %169, label %167

167:                                              ; preds = %163
  %168 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -1, ptr %168, align 4, !tbaa !9
  br label %271

169:                                              ; preds = %163, %159, %155, %23
  %170 = load i32, ptr %76, align 4, !tbaa !9
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %178, label %172

172:                                              ; preds = %169
  %173 = load ptr, ptr %25, align 8, !tbaa !5
  %174 = call i32 @lsame_(ptr noundef %173, ptr noundef @.str.1)
  %175 = icmp ne i32 %174, 0
  br i1 %175, label %178, label %176

176:                                              ; preds = %172
  %177 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -2, ptr %177, align 4, !tbaa !9
  br label %270

178:                                              ; preds = %172, %169
  %179 = load i32, ptr %82, align 4, !tbaa !9
  %180 = icmp ne i32 %179, 0
  br i1 %180, label %187, label %181

181:                                              ; preds = %178
  %182 = load ptr, ptr %26, align 8, !tbaa !5
  %183 = call i32 @lsame_(ptr noundef %182, ptr noundef @.str.1)
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %187, label %185

185:                                              ; preds = %181
  %186 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -3, ptr %186, align 4, !tbaa !9
  br label %269

187:                                              ; preds = %181, %178
  %188 = load i32, ptr %83, align 4, !tbaa !9
  %189 = icmp ne i32 %188, 0
  br i1 %189, label %199, label %190

190:                                              ; preds = %187
  %191 = load i32, ptr %79, align 4, !tbaa !9
  %192 = icmp ne i32 %191, 0
  br i1 %192, label %199, label %193

193:                                              ; preds = %190
  %194 = load i32, ptr %77, align 4, !tbaa !9
  %195 = icmp ne i32 %194, 0
  br i1 %195, label %199, label %196

196:                                              ; preds = %193
  %197 = load i32, ptr %84, align 4, !tbaa !9
  %198 = icmp ne i32 %197, 0
  br i1 %198, label %199, label %211

199:                                              ; preds = %196, %193, %190, %187
  %200 = load i32, ptr %79, align 4, !tbaa !9
  %201 = icmp ne i32 %200, 0
  br i1 %201, label %205, label %202

202:                                              ; preds = %199
  %203 = load i32, ptr %77, align 4, !tbaa !9
  %204 = icmp ne i32 %203, 0
  br i1 %204, label %205, label %213

205:                                              ; preds = %202, %199
  %206 = load i32, ptr %76, align 4, !tbaa !9
  %207 = icmp ne i32 %206, 0
  br i1 %207, label %208, label %211

208:                                              ; preds = %205
  %209 = load i32, ptr %82, align 4, !tbaa !9
  %210 = icmp ne i32 %209, 0
  br i1 %210, label %213, label %211

211:                                              ; preds = %208, %205, %196
  %212 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -4, ptr %212, align 4, !tbaa !9
  br label %268

213:                                              ; preds = %208, %202
  %214 = load ptr, ptr %28, align 8, !tbaa !5
  %215 = load i32, ptr %214, align 4, !tbaa !9
  %216 = icmp slt i32 %215, 0
  br i1 %216, label %217, label %219

217:                                              ; preds = %213
  %218 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -5, ptr %218, align 4, !tbaa !9
  br label %267

219:                                              ; preds = %213
  %220 = load ptr, ptr %30, align 8, !tbaa !5
  %221 = load i32, ptr %220, align 4, !tbaa !9
  %222 = load ptr, ptr %28, align 8, !tbaa !5
  %223 = load i32, ptr %222, align 4, !tbaa !9
  %224 = icmp sge i32 1, %223
  br i1 %224, label %225, label %226

225:                                              ; preds = %219
  br label %229

226:                                              ; preds = %219
  %227 = load ptr, ptr %28, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  br label %229

229:                                              ; preds = %226, %225
  %230 = phi i32 [ 1, %225 ], [ %228, %226 ]
  %231 = icmp slt i32 %221, %230
  br i1 %231, label %232, label %234

232:                                              ; preds = %229
  %233 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -7, ptr %233, align 4, !tbaa !9
  br label %266

234:                                              ; preds = %229
  %235 = load ptr, ptr %34, align 8, !tbaa !5
  %236 = load i32, ptr %235, align 4, !tbaa !9
  %237 = icmp slt i32 %236, 1
  br i1 %237, label %247, label %238

238:                                              ; preds = %234
  %239 = load i32, ptr %76, align 4, !tbaa !9
  %240 = icmp ne i32 %239, 0
  br i1 %240, label %241, label %249

241:                                              ; preds = %238
  %242 = load ptr, ptr %34, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = load ptr, ptr %28, align 8, !tbaa !5
  %245 = load i32, ptr %244, align 4, !tbaa !9
  %246 = icmp slt i32 %243, %245
  br i1 %246, label %247, label %249

247:                                              ; preds = %241, %234
  %248 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -11, ptr %248, align 4, !tbaa !9
  br label %265

249:                                              ; preds = %241, %238
  %250 = load ptr, ptr %36, align 8, !tbaa !5
  %251 = load i32, ptr %250, align 4, !tbaa !9
  %252 = icmp slt i32 %251, 1
  br i1 %252, label %262, label %253

253:                                              ; preds = %249
  %254 = load i32, ptr %82, align 4, !tbaa !9
  %255 = icmp ne i32 %254, 0
  br i1 %255, label %256, label %264

256:                                              ; preds = %253
  %257 = load ptr, ptr %36, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = load ptr, ptr %28, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp slt i32 %258, %260
  br i1 %261, label %262, label %264

262:                                              ; preds = %256, %249
  %263 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -13, ptr %263, align 4, !tbaa !9
  br label %264

264:                                              ; preds = %262, %256, %253
  br label %265

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

266:                                              ; preds = %265, %232
  br label %267

267:                                              ; preds = %266, %217
  br label %268

268:                                              ; preds = %267, %211
  br label %269

269:                                              ; preds = %268, %185
  br label %270

270:                                              ; preds = %269, %176
  br label %271

271:                                              ; preds = %270, %167
  %272 = load ptr, ptr %46, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = icmp eq i32 %273, 0
  br i1 %274, label %275, label %648

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

279:                                              ; preds = %275
  store i32 1, ptr %74, align 4, !tbaa !9
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %633

280:                                              ; preds = %275
  %281 = load ptr, ptr %28, align 8, !tbaa !5
  %282 = load i32, ptr %281, align 4, !tbaa !9
  %283 = load ptr, ptr %28, align 8, !tbaa !5
  %284 = load i32, ptr %283, align 4, !tbaa !9
  %285 = load ptr, ptr %28, align 8, !tbaa !5
  %286 = load ptr, ptr %28, align 8, !tbaa !5
  %287 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %285, ptr noundef @c__1, ptr noundef %286, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %288 = mul nsw i32 %284, %287
  %289 = add nsw i32 %282, %288
  store i32 %289, ptr %75, align 4, !tbaa !9
  %290 = load i32, ptr %76, align 4, !tbaa !9
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %292, label %350

292:                                              ; preds = %280
  %293 = getelementptr inbounds [1 x i32], ptr %72, i64 0, i64 0
  %294 = load ptr, ptr %28, align 8, !tbaa !5
  %295 = load ptr, ptr %29, align 8, !tbaa !5
  %296 = load i32, ptr %48, align 4, !tbaa !9
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds float, ptr %295, i64 %297
  %299 = load ptr, ptr %30, align 8, !tbaa !5
  %300 = load ptr, ptr %33, align 8, !tbaa !5
  %301 = load i32, ptr %50, align 4, !tbaa !9
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds float, ptr %300, i64 %302
  %304 = load ptr, ptr %34, align 8, !tbaa !5
  %305 = load ptr, ptr %35, align 8, !tbaa !5
  %306 = load i32, ptr %52, align 4, !tbaa !9
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds float, ptr %305, i64 %307
  %309 = load ptr, ptr %36, align 8, !tbaa !5
  %310 = load ptr, ptr %28, align 8, !tbaa !5
  %311 = load ptr, ptr %43, align 8, !tbaa !5
  %312 = getelementptr inbounds float, ptr %311, i64 1
  call void @strevc3_(ptr noundef @.str.8, ptr noundef @.str.3, ptr noundef %293, ptr noundef %294, ptr noundef %298, ptr noundef %299, ptr noundef %303, ptr noundef %304, ptr noundef %308, ptr noundef %309, ptr noundef %310, ptr noundef %63, ptr noundef %312, ptr noundef @c_n1, ptr noundef %60)
  %313 = load ptr, ptr %43, align 8, !tbaa !5
  %314 = getelementptr inbounds float, ptr %313, i64 1
  %315 = load float, ptr %314, align 4, !tbaa !11
  %316 = fptosi float %315 to i32
  store i32 %316, ptr %89, align 4, !tbaa !9
  %317 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %317, ptr %53, align 4, !tbaa !9
  %318 = load ptr, ptr %28, align 8, !tbaa !5
  %319 = load i32, ptr %318, align 4, !tbaa !9
  %320 = load i32, ptr %89, align 4, !tbaa !9
  %321 = add nsw i32 %319, %320
  store i32 %321, ptr %54, align 4, !tbaa !9
  %322 = load i32, ptr %53, align 4, !tbaa !9
  %323 = load i32, ptr %54, align 4, !tbaa !9
  %324 = icmp sge i32 %322, %323
  br i1 %324, label %325, label %327

325:                                              ; preds = %292
  %326 = load i32, ptr %53, align 4, !tbaa !9
  br label %329

327:                                              ; preds = %292
  %328 = load i32, ptr %54, align 4, !tbaa !9
  br label %329

329:                                              ; preds = %327, %325
  %330 = phi i32 [ %326, %325 ], [ %328, %327 ]
  store i32 %330, ptr %75, align 4, !tbaa !9
  %331 = load ptr, ptr %28, align 8, !tbaa !5
  %332 = load ptr, ptr %28, align 8, !tbaa !5
  %333 = load ptr, ptr %29, align 8, !tbaa !5
  %334 = load i32, ptr %48, align 4, !tbaa !9
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds float, ptr %333, i64 %335
  %337 = load ptr, ptr %30, align 8, !tbaa !5
  %338 = load ptr, ptr %31, align 8, !tbaa !5
  %339 = getelementptr inbounds float, ptr %338, i64 1
  %340 = load ptr, ptr %32, align 8, !tbaa !5
  %341 = getelementptr inbounds float, ptr %340, i64 1
  %342 = load ptr, ptr %33, align 8, !tbaa !5
  %343 = load i32, ptr %50, align 4, !tbaa !9
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds float, ptr %342, i64 %344
  %346 = load ptr, ptr %34, align 8, !tbaa !5
  %347 = load ptr, ptr %43, align 8, !tbaa !5
  %348 = getelementptr inbounds float, ptr %347, i64 1
  %349 = load ptr, ptr %46, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %331, ptr noundef @c__1, ptr noundef %332, ptr noundef %336, ptr noundef %337, ptr noundef %339, ptr noundef %341, ptr noundef %345, ptr noundef %346, ptr noundef %348, ptr noundef @c_n1, ptr noundef %349)
  br label %456

350:                                              ; preds = %280
  %351 = load i32, ptr %82, align 4, !tbaa !9
  %352 = icmp ne i32 %351, 0
  br i1 %352, label %353, label %411

353:                                              ; preds = %350
  %354 = getelementptr inbounds [1 x i32], ptr %72, i64 0, i64 0
  %355 = load ptr, ptr %28, align 8, !tbaa !5
  %356 = load ptr, ptr %29, align 8, !tbaa !5
  %357 = load i32, ptr %48, align 4, !tbaa !9
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds float, ptr %356, i64 %358
  %360 = load ptr, ptr %30, align 8, !tbaa !5
  %361 = load ptr, ptr %33, align 8, !tbaa !5
  %362 = load i32, ptr %50, align 4, !tbaa !9
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds float, ptr %361, i64 %363
  %365 = load ptr, ptr %34, align 8, !tbaa !5
  %366 = load ptr, ptr %35, align 8, !tbaa !5
  %367 = load i32, ptr %52, align 4, !tbaa !9
  %368 = sext i32 %367 to i64
  %369 = getelementptr inbounds float, ptr %366, i64 %368
  %370 = load ptr, ptr %36, align 8, !tbaa !5
  %371 = load ptr, ptr %28, align 8, !tbaa !5
  %372 = load ptr, ptr %43, align 8, !tbaa !5
  %373 = getelementptr inbounds float, ptr %372, i64 1
  call void @strevc3_(ptr noundef @.str.9, ptr noundef @.str.3, ptr noundef %354, ptr noundef %355, ptr noundef %359, ptr noundef %360, ptr noundef %364, ptr noundef %365, ptr noundef %369, ptr noundef %370, ptr noundef %371, ptr noundef %63, ptr noundef %373, ptr noundef @c_n1, ptr noundef %60)
  %374 = load ptr, ptr %43, align 8, !tbaa !5
  %375 = getelementptr inbounds float, ptr %374, i64 1
  %376 = load float, ptr %375, align 4, !tbaa !11
  %377 = fptosi float %376 to i32
  store i32 %377, ptr %89, align 4, !tbaa !9
  %378 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %378, ptr %53, align 4, !tbaa !9
  %379 = load ptr, ptr %28, align 8, !tbaa !5
  %380 = load i32, ptr %379, align 4, !tbaa !9
  %381 = load i32, ptr %89, align 4, !tbaa !9
  %382 = add nsw i32 %380, %381
  store i32 %382, ptr %54, align 4, !tbaa !9
  %383 = load i32, ptr %53, align 4, !tbaa !9
  %384 = load i32, ptr %54, align 4, !tbaa !9
  %385 = icmp sge i32 %383, %384
  br i1 %385, label %386, label %388

386:                                              ; preds = %353
  %387 = load i32, ptr %53, align 4, !tbaa !9
  br label %390

388:                                              ; preds = %353
  %389 = load i32, ptr %54, align 4, !tbaa !9
  br label %390

390:                                              ; preds = %388, %386
  %391 = phi i32 [ %387, %386 ], [ %389, %388 ]
  store i32 %391, ptr %75, align 4, !tbaa !9
  %392 = load ptr, ptr %28, align 8, !tbaa !5
  %393 = load ptr, ptr %28, align 8, !tbaa !5
  %394 = load ptr, ptr %29, align 8, !tbaa !5
  %395 = load i32, ptr %48, align 4, !tbaa !9
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds float, ptr %394, i64 %396
  %398 = load ptr, ptr %30, align 8, !tbaa !5
  %399 = load ptr, ptr %31, align 8, !tbaa !5
  %400 = getelementptr inbounds float, ptr %399, i64 1
  %401 = load ptr, ptr %32, align 8, !tbaa !5
  %402 = getelementptr inbounds float, ptr %401, i64 1
  %403 = load ptr, ptr %35, align 8, !tbaa !5
  %404 = load i32, ptr %52, align 4, !tbaa !9
  %405 = sext i32 %404 to i64
  %406 = getelementptr inbounds float, ptr %403, i64 %405
  %407 = load ptr, ptr %36, align 8, !tbaa !5
  %408 = load ptr, ptr %43, align 8, !tbaa !5
  %409 = getelementptr inbounds float, ptr %408, i64 1
  %410 = load ptr, ptr %46, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %392, ptr noundef @c__1, ptr noundef %393, ptr noundef %397, ptr noundef %398, ptr noundef %400, ptr noundef %402, ptr noundef %406, ptr noundef %407, ptr noundef %409, ptr noundef @c_n1, ptr noundef %410)
  br label %455

411:                                              ; preds = %350
  %412 = load i32, ptr %83, align 4, !tbaa !9
  %413 = icmp ne i32 %412, 0
  br i1 %413, label %414, label %434

414:                                              ; preds = %411
  %415 = load ptr, ptr %28, align 8, !tbaa !5
  %416 = load ptr, ptr %28, align 8, !tbaa !5
  %417 = load ptr, ptr %29, align 8, !tbaa !5
  %418 = load i32, ptr %48, align 4, !tbaa !9
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %417, i64 %419
  %421 = load ptr, ptr %30, align 8, !tbaa !5
  %422 = load ptr, ptr %31, align 8, !tbaa !5
  %423 = getelementptr inbounds float, ptr %422, i64 1
  %424 = load ptr, ptr %32, align 8, !tbaa !5
  %425 = getelementptr inbounds float, ptr %424, i64 1
  %426 = load ptr, ptr %35, align 8, !tbaa !5
  %427 = load i32, ptr %52, align 4, !tbaa !9
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds float, ptr %426, i64 %428
  %430 = load ptr, ptr %36, align 8, !tbaa !5
  %431 = load ptr, ptr %43, align 8, !tbaa !5
  %432 = getelementptr inbounds float, ptr %431, i64 1
  %433 = load ptr, ptr %46, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.2, ptr noundef @.str.1, ptr noundef %415, ptr noundef @c__1, ptr noundef %416, ptr noundef %420, ptr noundef %421, ptr noundef %423, ptr noundef %425, ptr noundef %429, ptr noundef %430, ptr noundef %432, ptr noundef @c_n1, ptr noundef %433)
  br label %454

434:                                              ; preds = %411
  %435 = load ptr, ptr %28, align 8, !tbaa !5
  %436 = load ptr, ptr %28, align 8, !tbaa !5
  %437 = load ptr, ptr %29, align 8, !tbaa !5
  %438 = load i32, ptr %48, align 4, !tbaa !9
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds float, ptr %437, i64 %439
  %441 = load ptr, ptr %30, align 8, !tbaa !5
  %442 = load ptr, ptr %31, align 8, !tbaa !5
  %443 = getelementptr inbounds float, ptr %442, i64 1
  %444 = load ptr, ptr %32, align 8, !tbaa !5
  %445 = getelementptr inbounds float, ptr %444, i64 1
  %446 = load ptr, ptr %35, align 8, !tbaa !5
  %447 = load i32, ptr %52, align 4, !tbaa !9
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds float, ptr %446, i64 %448
  %450 = load ptr, ptr %36, align 8, !tbaa !5
  %451 = load ptr, ptr %43, align 8, !tbaa !5
  %452 = getelementptr inbounds float, ptr %451, i64 1
  %453 = load ptr, ptr %46, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.4, ptr noundef @.str.1, ptr noundef %435, ptr noundef @c__1, ptr noundef %436, ptr noundef %440, ptr noundef %441, ptr noundef %443, ptr noundef %445, ptr noundef %449, ptr noundef %450, ptr noundef %452, ptr noundef @c_n1, ptr noundef %453)
  br label %454

454:                                              ; preds = %434, %414
  br label %455

455:                                              ; preds = %454, %390
  br label %456

456:                                              ; preds = %455, %329
  %457 = load ptr, ptr %43, align 8, !tbaa !5
  %458 = getelementptr inbounds float, ptr %457, i64 1
  %459 = load float, ptr %458, align 4, !tbaa !11
  %460 = fptosi float %459 to i32
  store i32 %460, ptr %78, align 4, !tbaa !9
  %461 = load i32, ptr %76, align 4, !tbaa !9
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %525, label %463

463:                                              ; preds = %456
  %464 = load i32, ptr %82, align 4, !tbaa !9
  %465 = icmp ne i32 %464, 0
  br i1 %465, label %525, label %466

466:                                              ; preds = %463
  %467 = load ptr, ptr %28, align 8, !tbaa !5
  %468 = load i32, ptr %467, align 4, !tbaa !9
  %469 = shl i32 %468, 1
  store i32 %469, ptr %74, align 4, !tbaa !9
  %470 = load i32, ptr %83, align 4, !tbaa !9
  %471 = icmp ne i32 %470, 0
  br i1 %471, label %492, label %472

472:                                              ; preds = %466
  %473 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %473, ptr %53, align 4, !tbaa !9
  %474 = load ptr, ptr %28, align 8, !tbaa !5
  %475 = load i32, ptr %474, align 4, !tbaa !9
  %476 = load ptr, ptr %28, align 8, !tbaa !5
  %477 = load i32, ptr %476, align 4, !tbaa !9
  %478 = mul nsw i32 %475, %477
  %479 = load ptr, ptr %28, align 8, !tbaa !5
  %480 = load i32, ptr %479, align 4, !tbaa !9
  %481 = mul nsw i32 %480, 6
  %482 = add nsw i32 %478, %481
  store i32 %482, ptr %54, align 4, !tbaa !9
  %483 = load i32, ptr %53, align 4, !tbaa !9
  %484 = load i32, ptr %54, align 4, !tbaa !9
  %485 = icmp sge i32 %483, %484
  br i1 %485, label %486, label %488

486:                                              ; preds = %472
  %487 = load i32, ptr %53, align 4, !tbaa !9
  br label %490

488:                                              ; preds = %472
  %489 = load i32, ptr %54, align 4, !tbaa !9
  br label %490

490:                                              ; preds = %488, %486
  %491 = phi i32 [ %487, %486 ], [ %489, %488 ]
  store i32 %491, ptr %74, align 4, !tbaa !9
  br label %492

492:                                              ; preds = %490, %466
  %493 = load i32, ptr %75, align 4, !tbaa !9
  %494 = load i32, ptr %78, align 4, !tbaa !9
  %495 = icmp sge i32 %493, %494
  br i1 %495, label %496, label %498

496:                                              ; preds = %492
  %497 = load i32, ptr %75, align 4, !tbaa !9
  br label %500

498:                                              ; preds = %492
  %499 = load i32, ptr %78, align 4, !tbaa !9
  br label %500

500:                                              ; preds = %498, %496
  %501 = phi i32 [ %497, %496 ], [ %499, %498 ]
  store i32 %501, ptr %75, align 4, !tbaa !9
  %502 = load i32, ptr %83, align 4, !tbaa !9
  %503 = icmp ne i32 %502, 0
  br i1 %503, label %524, label %504

504:                                              ; preds = %500
  %505 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %505, ptr %53, align 4, !tbaa !9
  %506 = load ptr, ptr %28, align 8, !tbaa !5
  %507 = load i32, ptr %506, align 4, !tbaa !9
  %508 = load ptr, ptr %28, align 8, !tbaa !5
  %509 = load i32, ptr %508, align 4, !tbaa !9
  %510 = mul nsw i32 %507, %509
  %511 = load ptr, ptr %28, align 8, !tbaa !5
  %512 = load i32, ptr %511, align 4, !tbaa !9
  %513 = mul nsw i32 %512, 6
  %514 = add nsw i32 %510, %513
  store i32 %514, ptr %54, align 4, !tbaa !9
  %515 = load i32, ptr %53, align 4, !tbaa !9
  %516 = load i32, ptr %54, align 4, !tbaa !9
  %517 = icmp sge i32 %515, %516
  br i1 %517, label %518, label %520

518:                                              ; preds = %504
  %519 = load i32, ptr %53, align 4, !tbaa !9
  br label %522

520:                                              ; preds = %504
  %521 = load i32, ptr %54, align 4, !tbaa !9
  br label %522

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

524:                                              ; preds = %522, %500
  br label %623

525:                                              ; preds = %463, %456
  %526 = load ptr, ptr %28, align 8, !tbaa !5
  %527 = load i32, ptr %526, align 4, !tbaa !9
  %528 = mul nsw i32 %527, 3
  store i32 %528, ptr %74, align 4, !tbaa !9
  %529 = load i32, ptr %83, align 4, !tbaa !9
  %530 = icmp ne i32 %529, 0
  br i1 %530, label %554, label %531

531:                                              ; preds = %525
  %532 = load i32, ptr %79, align 4, !tbaa !9
  %533 = icmp ne i32 %532, 0
  br i1 %533, label %554, label %534

534:                                              ; preds = %531
  %535 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %535, ptr %53, align 4, !tbaa !9
  %536 = load ptr, ptr %28, align 8, !tbaa !5
  %537 = load i32, ptr %536, align 4, !tbaa !9
  %538 = load ptr, ptr %28, align 8, !tbaa !5
  %539 = load i32, ptr %538, align 4, !tbaa !9
  %540 = mul nsw i32 %537, %539
  %541 = load ptr, ptr %28, align 8, !tbaa !5
  %542 = load i32, ptr %541, align 4, !tbaa !9
  %543 = mul nsw i32 %542, 6
  %544 = add nsw i32 %540, %543
  store i32 %544, ptr %54, align 4, !tbaa !9
  %545 = load i32, ptr %53, align 4, !tbaa !9
  %546 = load i32, ptr %54, align 4, !tbaa !9
  %547 = icmp sge i32 %545, %546
  br i1 %547, label %548, label %550

548:                                              ; preds = %534
  %549 = load i32, ptr %53, align 4, !tbaa !9
  br label %552

550:                                              ; preds = %534
  %551 = load i32, ptr %54, align 4, !tbaa !9
  br label %552

552:                                              ; preds = %550, %548
  %553 = phi i32 [ %549, %548 ], [ %551, %550 ]
  store i32 %553, ptr %74, align 4, !tbaa !9
  br label %554

554:                                              ; preds = %552, %531, %525
  %555 = load i32, ptr %75, align 4, !tbaa !9
  %556 = load i32, ptr %78, align 4, !tbaa !9
  %557 = icmp sge i32 %555, %556
  br i1 %557, label %558, label %560

558:                                              ; preds = %554
  %559 = load i32, ptr %75, align 4, !tbaa !9
  br label %562

560:                                              ; preds = %554
  %561 = load i32, ptr %78, align 4, !tbaa !9
  br label %562

562:                                              ; preds = %560, %558
  %563 = phi i32 [ %559, %558 ], [ %561, %560 ]
  store i32 %563, ptr %75, align 4, !tbaa !9
  %564 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %564, ptr %53, align 4, !tbaa !9
  %565 = load ptr, ptr %28, align 8, !tbaa !5
  %566 = load i32, ptr %565, align 4, !tbaa !9
  %567 = load ptr, ptr %28, align 8, !tbaa !5
  %568 = load i32, ptr %567, align 4, !tbaa !9
  %569 = sub nsw i32 %568, 1
  %570 = load ptr, ptr %28, align 8, !tbaa !5
  %571 = load ptr, ptr %28, align 8, !tbaa !5
  %572 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.10, ptr noundef @.str.7, ptr noundef %570, ptr noundef @c__1, ptr noundef %571, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  %573 = mul nsw i32 %569, %572
  %574 = add nsw i32 %566, %573
  store i32 %574, ptr %54, align 4, !tbaa !9
  %575 = load i32, ptr %53, align 4, !tbaa !9
  %576 = load i32, ptr %54, align 4, !tbaa !9
  %577 = icmp sge i32 %575, %576
  br i1 %577, label %578, label %580

578:                                              ; preds = %562
  %579 = load i32, ptr %53, align 4, !tbaa !9
  br label %582

580:                                              ; preds = %562
  %581 = load i32, ptr %54, align 4, !tbaa !9
  br label %582

582:                                              ; preds = %580, %578
  %583 = phi i32 [ %579, %578 ], [ %581, %580 ]
  store i32 %583, ptr %75, align 4, !tbaa !9
  %584 = load i32, ptr %83, align 4, !tbaa !9
  %585 = icmp ne i32 %584, 0
  br i1 %585, label %609, label %586

586:                                              ; preds = %582
  %587 = load i32, ptr %79, align 4, !tbaa !9
  %588 = icmp ne i32 %587, 0
  br i1 %588, label %609, label %589

589:                                              ; preds = %586
  %590 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %590, ptr %53, align 4, !tbaa !9
  %591 = load ptr, ptr %28, align 8, !tbaa !5
  %592 = load i32, ptr %591, align 4, !tbaa !9
  %593 = load ptr, ptr %28, align 8, !tbaa !5
  %594 = load i32, ptr %593, align 4, !tbaa !9
  %595 = mul nsw i32 %592, %594
  %596 = load ptr, ptr %28, align 8, !tbaa !5
  %597 = load i32, ptr %596, align 4, !tbaa !9
  %598 = mul nsw i32 %597, 6
  %599 = add nsw i32 %595, %598
  store i32 %599, ptr %54, align 4, !tbaa !9
  %600 = load i32, ptr %53, align 4, !tbaa !9
  %601 = load i32, ptr %54, align 4, !tbaa !9
  %602 = icmp sge i32 %600, %601
  br i1 %602, label %603, label %605

603:                                              ; preds = %589
  %604 = load i32, ptr %53, align 4, !tbaa !9
  br label %607

605:                                              ; preds = %589
  %606 = load i32, ptr %54, align 4, !tbaa !9
  br label %607

607:                                              ; preds = %605, %603
  %608 = phi i32 [ %604, %603 ], [ %606, %605 ]
  store i32 %608, ptr %75, align 4, !tbaa !9
  br label %609

609:                                              ; preds = %607, %586, %582
  %610 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %610, ptr %53, align 4, !tbaa !9
  %611 = load ptr, ptr %28, align 8, !tbaa !5
  %612 = load i32, ptr %611, align 4, !tbaa !9
  %613 = mul nsw i32 %612, 3
  store i32 %613, ptr %54, align 4, !tbaa !9
  %614 = load i32, ptr %53, align 4, !tbaa !9
  %615 = load i32, ptr %54, align 4, !tbaa !9
  %616 = icmp sge i32 %614, %615
  br i1 %616, label %617, label %619

617:                                              ; preds = %609
  %618 = load i32, ptr %53, align 4, !tbaa !9
  br label %621

619:                                              ; preds = %609
  %620 = load i32, ptr %54, align 4, !tbaa !9
  br label %621

621:                                              ; preds = %619, %617
  %622 = phi i32 [ %618, %617 ], [ %620, %619 ]
  store i32 %622, ptr %75, align 4, !tbaa !9
  br label %623

623:                                              ; preds = %621, %524
  %624 = load i32, ptr %75, align 4, !tbaa !9
  %625 = load i32, ptr %74, align 4, !tbaa !9
  %626 = icmp sge i32 %624, %625
  br i1 %626, label %627, label %629

627:                                              ; preds = %623
  %628 = load i32, ptr %75, align 4, !tbaa !9
  br label %631

629:                                              ; preds = %623
  %630 = load i32, ptr %74, align 4, !tbaa !9
  br label %631

631:                                              ; preds = %629, %627
  %632 = phi i32 [ %628, %627 ], [ %630, %629 ]
  store i32 %632, ptr %75, align 4, !tbaa !9
  br label %633

633:                                              ; preds = %631, %279
  %634 = load i32, ptr %75, align 4, !tbaa !9
  %635 = sitofp i32 %634 to float
  %636 = load ptr, ptr %43, align 8, !tbaa !5
  %637 = getelementptr inbounds float, ptr %636, i64 1
  store float %635, ptr %637, align 4, !tbaa !11
  %638 = load ptr, ptr %44, align 8, !tbaa !5
  %639 = load i32, ptr %638, align 4, !tbaa !9
  %640 = load i32, ptr %74, align 4, !tbaa !9
  %641 = icmp slt i32 %639, %640
  br i1 %641, label %642, label %647

642:                                              ; preds = %633
  %643 = load i32, ptr %81, align 4, !tbaa !9
  %644 = icmp ne i32 %643, 0
  br i1 %644, label %647, label %645

645:                                              ; preds = %642
  %646 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -21, ptr %646, align 4, !tbaa !9
  br label %647

647:                                              ; preds = %645, %642, %633
  br label %648

648:                                              ; preds = %647, %271
  %649 = load ptr, ptr %46, align 8, !tbaa !5
  %650 = load i32, ptr %649, align 4, !tbaa !9
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %652, label %657

652:                                              ; preds = %648
  %653 = load ptr, ptr %46, align 8, !tbaa !5
  %654 = load i32, ptr %653, align 4, !tbaa !9
  %655 = sub nsw i32 0, %654
  store i32 %655, ptr %53, align 4, !tbaa !9
  %656 = call i32 @xerbla_(ptr noundef @.str.11, ptr noundef %53, i32 noundef 6)
  store i32 1, ptr %90, align 4
  br label %1494

657:                                              ; preds = %648
  %658 = load i32, ptr %81, align 4, !tbaa !9
  %659 = icmp ne i32 %658, 0
  br i1 %659, label %660, label %661

660:                                              ; preds = %657
  store i32 1, ptr %90, align 4
  br label %1494

661:                                              ; preds = %657
  br label %662

662:                                              ; preds = %661
  %663 = load ptr, ptr %28, align 8, !tbaa !5
  %664 = load i32, ptr %663, align 4, !tbaa !9
  %665 = icmp eq i32 %664, 0
  br i1 %665, label %666, label %667

666:                                              ; preds = %662
  store i32 1, ptr %90, align 4
  br label %1494

667:                                              ; preds = %662
  %668 = call float @slamch_(ptr noundef @.str.5)
  store float %668, ptr %88, align 4, !tbaa !11
  %669 = call float @slamch_(ptr noundef @.str.4)
  store float %669, ptr %80, align 4, !tbaa !11
  %670 = load float, ptr %80, align 4, !tbaa !11
  %671 = fdiv float 1.000000e+00, %670
  store float %671, ptr %73, align 4, !tbaa !11
  call void @slabad_(ptr noundef %80, ptr noundef %73)
  %672 = load float, ptr %80, align 4, !tbaa !11
  %673 = fpext float %672 to double
  %674 = call double @sqrt(double noundef %673) #5
  %675 = load float, ptr %88, align 4, !tbaa !11
  %676 = fpext float %675 to double
  %677 = fdiv double %674, %676
  %678 = fptrunc double %677 to float
  store float %678, ptr %80, align 4, !tbaa !11
  %679 = load float, ptr %80, align 4, !tbaa !11
  %680 = fdiv float 1.000000e+00, %679
  store float %680, ptr %73, align 4, !tbaa !11
  store i32 0, ptr %67, align 4, !tbaa !9
  %681 = load ptr, ptr %28, align 8, !tbaa !5
  %682 = load ptr, ptr %28, align 8, !tbaa !5
  %683 = load ptr, ptr %29, align 8, !tbaa !5
  %684 = load i32, ptr %48, align 4, !tbaa !9
  %685 = sext i32 %684 to i64
  %686 = getelementptr inbounds float, ptr %683, i64 %685
  %687 = load ptr, ptr %30, align 8, !tbaa !5
  %688 = getelementptr inbounds [1 x float], ptr %87, i64 0, i64 0
  %689 = call float @slange_(ptr noundef @.str.12, ptr noundef %681, ptr noundef %682, ptr noundef %686, ptr noundef %687, ptr noundef %688)
  store float %689, ptr %59, align 4, !tbaa !11
  store i32 0, ptr %69, align 4, !tbaa !9
  %690 = load float, ptr %59, align 4, !tbaa !11
  %691 = fcmp ogt float %690, 0.000000e+00
  br i1 %691, label %692, label %698

692:                                              ; preds = %667
  %693 = load float, ptr %59, align 4, !tbaa !11
  %694 = load float, ptr %80, align 4, !tbaa !11
  %695 = fcmp olt float %693, %694
  br i1 %695, label %696, label %698

696:                                              ; preds = %692
  store i32 1, ptr %69, align 4, !tbaa !9
  %697 = load float, ptr %80, align 4, !tbaa !11
  store float %697, ptr %70, align 4, !tbaa !11
  br label %705

698:                                              ; preds = %692, %667
  %699 = load float, ptr %59, align 4, !tbaa !11
  %700 = load float, ptr %73, align 4, !tbaa !11
  %701 = fcmp ogt float %699, %700
  br i1 %701, label %702, label %704

702:                                              ; preds = %698
  store i32 1, ptr %69, align 4, !tbaa !9
  %703 = load float, ptr %73, align 4, !tbaa !11
  store float %703, ptr %70, align 4, !tbaa !11
  br label %704

704:                                              ; preds = %702, %698
  br label %705

705:                                              ; preds = %704, %696
  %706 = load i32, ptr %69, align 4, !tbaa !9
  %707 = icmp ne i32 %706, 0
  br i1 %707, label %708, label %716

708:                                              ; preds = %705
  %709 = load ptr, ptr %28, align 8, !tbaa !5
  %710 = load ptr, ptr %28, align 8, !tbaa !5
  %711 = load ptr, ptr %29, align 8, !tbaa !5
  %712 = load i32, ptr %48, align 4, !tbaa !9
  %713 = sext i32 %712 to i64
  %714 = getelementptr inbounds float, ptr %711, i64 %713
  %715 = load ptr, ptr %30, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %59, ptr noundef %70, ptr noundef %709, ptr noundef %710, ptr noundef %714, ptr noundef %715, ptr noundef %60)
  br label %716

716:                                              ; preds = %708, %705
  %717 = load ptr, ptr %24, align 8, !tbaa !5
  %718 = load ptr, ptr %28, align 8, !tbaa !5
  %719 = load ptr, ptr %29, align 8, !tbaa !5
  %720 = load i32, ptr %48, align 4, !tbaa !9
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds float, ptr %719, i64 %721
  %723 = load ptr, ptr %30, align 8, !tbaa !5
  %724 = load ptr, ptr %37, align 8, !tbaa !5
  %725 = load ptr, ptr %38, align 8, !tbaa !5
  %726 = load ptr, ptr %39, align 8, !tbaa !5
  %727 = getelementptr inbounds float, ptr %726, i64 1
  call void @sgebal_(ptr noundef %717, ptr noundef %718, ptr noundef %722, ptr noundef %723, ptr noundef %724, ptr noundef %725, ptr noundef %727, ptr noundef %60)
  %728 = load ptr, ptr %28, align 8, !tbaa !5
  %729 = load ptr, ptr %28, align 8, !tbaa !5
  %730 = load ptr, ptr %29, align 8, !tbaa !5
  %731 = load i32, ptr %48, align 4, !tbaa !9
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds float, ptr %730, i64 %732
  %734 = load ptr, ptr %30, align 8, !tbaa !5
  %735 = getelementptr inbounds [1 x float], ptr %87, i64 0, i64 0
  %736 = call float @slange_(ptr noundef @.str.14, ptr noundef %728, ptr noundef %729, ptr noundef %733, ptr noundef %734, ptr noundef %735)
  %737 = load ptr, ptr %40, align 8, !tbaa !5
  store float %736, ptr %737, align 4, !tbaa !11
  %738 = load i32, ptr %69, align 4, !tbaa !9
  %739 = icmp ne i32 %738, 0
  br i1 %739, label %740, label %748

740:                                              ; preds = %716
  %741 = load ptr, ptr %40, align 8, !tbaa !5
  %742 = load float, ptr %741, align 4, !tbaa !11
  %743 = getelementptr inbounds [1 x float], ptr %87, i64 0, i64 0
  store float %742, ptr %743, align 4, !tbaa !11
  %744 = getelementptr inbounds [1 x float], ptr %87, i64 0, i64 0
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %70, ptr noundef %59, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %744, ptr noundef @c__1, ptr noundef %60)
  %745 = getelementptr inbounds [1 x float], ptr %87, i64 0, i64 0
  %746 = load float, ptr %745, align 4, !tbaa !11
  %747 = load ptr, ptr %40, align 8, !tbaa !5
  store float %746, ptr %747, align 4, !tbaa !11
  br label %748

748:                                              ; preds = %740, %716
  store i32 1, ptr %61, align 4, !tbaa !9
  %749 = load i32, ptr %61, align 4, !tbaa !9
  %750 = load ptr, ptr %28, align 8, !tbaa !5
  %751 = load i32, ptr %750, align 4, !tbaa !9
  %752 = add nsw i32 %749, %751
  store i32 %752, ptr %62, align 4, !tbaa !9
  %753 = load ptr, ptr %44, align 8, !tbaa !5
  %754 = load i32, ptr %753, align 4, !tbaa !9
  %755 = load i32, ptr %62, align 4, !tbaa !9
  %756 = sub nsw i32 %754, %755
  %757 = add nsw i32 %756, 1
  store i32 %757, ptr %53, align 4, !tbaa !9
  %758 = load ptr, ptr %28, align 8, !tbaa !5
  %759 = load ptr, ptr %37, align 8, !tbaa !5
  %760 = load ptr, ptr %38, align 8, !tbaa !5
  %761 = load ptr, ptr %29, align 8, !tbaa !5
  %762 = load i32, ptr %48, align 4, !tbaa !9
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds float, ptr %761, i64 %763
  %765 = load ptr, ptr %30, align 8, !tbaa !5
  %766 = load ptr, ptr %43, align 8, !tbaa !5
  %767 = load i32, ptr %61, align 4, !tbaa !9
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds float, ptr %766, i64 %768
  %770 = load ptr, ptr %43, align 8, !tbaa !5
  %771 = load i32, ptr %62, align 4, !tbaa !9
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds float, ptr %770, i64 %772
  call void @sgehrd_(ptr noundef %758, ptr noundef %759, ptr noundef %760, ptr noundef %764, ptr noundef %765, ptr noundef %769, ptr noundef %773, ptr noundef %53, ptr noundef %60)
  %774 = load i32, ptr %76, align 4, !tbaa !9
  %775 = icmp ne i32 %774, 0
  br i1 %775, label %776, label %856

776:                                              ; preds = %748
  %777 = getelementptr inbounds [1 x i8], ptr %58, i64 0, i64 0
  store i8 76, ptr %777, align 1, !tbaa !13
  %778 = load ptr, ptr %28, align 8, !tbaa !5
  %779 = load ptr, ptr %28, align 8, !tbaa !5
  %780 = load ptr, ptr %29, align 8, !tbaa !5
  %781 = load i32, ptr %48, align 4, !tbaa !9
  %782 = sext i32 %781 to i64
  %783 = getelementptr inbounds float, ptr %780, i64 %782
  %784 = load ptr, ptr %30, align 8, !tbaa !5
  %785 = load ptr, ptr %33, align 8, !tbaa !5
  %786 = load i32, ptr %50, align 4, !tbaa !9
  %787 = sext i32 %786 to i64
  %788 = getelementptr inbounds float, ptr %785, i64 %787
  %789 = load ptr, ptr %34, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.8, ptr noundef %778, ptr noundef %779, ptr noundef %783, ptr noundef %784, ptr noundef %788, ptr noundef %789)
  %790 = load ptr, ptr %44, align 8, !tbaa !5
  %791 = load i32, ptr %790, align 4, !tbaa !9
  %792 = load i32, ptr %62, align 4, !tbaa !9
  %793 = sub nsw i32 %791, %792
  %794 = add nsw i32 %793, 1
  store i32 %794, ptr %53, align 4, !tbaa !9
  %795 = load ptr, ptr %28, align 8, !tbaa !5
  %796 = load ptr, ptr %37, align 8, !tbaa !5
  %797 = load ptr, ptr %38, align 8, !tbaa !5
  %798 = load ptr, ptr %33, align 8, !tbaa !5
  %799 = load i32, ptr %50, align 4, !tbaa !9
  %800 = sext i32 %799 to i64
  %801 = getelementptr inbounds float, ptr %798, i64 %800
  %802 = load ptr, ptr %34, align 8, !tbaa !5
  %803 = load ptr, ptr %43, align 8, !tbaa !5
  %804 = load i32, ptr %61, align 4, !tbaa !9
  %805 = sext i32 %804 to i64
  %806 = getelementptr inbounds float, ptr %803, i64 %805
  %807 = load ptr, ptr %43, align 8, !tbaa !5
  %808 = load i32, ptr %62, align 4, !tbaa !9
  %809 = sext i32 %808 to i64
  %810 = getelementptr inbounds float, ptr %807, i64 %809
  call void @sorghr_(ptr noundef %795, ptr noundef %796, ptr noundef %797, ptr noundef %801, ptr noundef %802, ptr noundef %806, ptr noundef %810, ptr noundef %53, ptr noundef %60)
  %811 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %811, ptr %62, align 4, !tbaa !9
  %812 = load ptr, ptr %44, align 8, !tbaa !5
  %813 = load i32, ptr %812, align 4, !tbaa !9
  %814 = load i32, ptr %62, align 4, !tbaa !9
  %815 = sub nsw i32 %813, %814
  %816 = add nsw i32 %815, 1
  store i32 %816, ptr %53, align 4, !tbaa !9
  %817 = load ptr, ptr %28, align 8, !tbaa !5
  %818 = load ptr, ptr %37, align 8, !tbaa !5
  %819 = load ptr, ptr %38, align 8, !tbaa !5
  %820 = load ptr, ptr %29, align 8, !tbaa !5
  %821 = load i32, ptr %48, align 4, !tbaa !9
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds float, ptr %820, i64 %822
  %824 = load ptr, ptr %30, align 8, !tbaa !5
  %825 = load ptr, ptr %31, align 8, !tbaa !5
  %826 = getelementptr inbounds float, ptr %825, i64 1
  %827 = load ptr, ptr %32, align 8, !tbaa !5
  %828 = getelementptr inbounds float, ptr %827, i64 1
  %829 = load ptr, ptr %33, align 8, !tbaa !5
  %830 = load i32, ptr %50, align 4, !tbaa !9
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds float, ptr %829, i64 %831
  %833 = load ptr, ptr %34, align 8, !tbaa !5
  %834 = load ptr, ptr %43, align 8, !tbaa !5
  %835 = load i32, ptr %62, align 4, !tbaa !9
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds float, ptr %834, i64 %836
  %838 = load ptr, ptr %46, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %817, ptr noundef %818, ptr noundef %819, ptr noundef %823, ptr noundef %824, ptr noundef %826, ptr noundef %828, ptr noundef %832, ptr noundef %833, ptr noundef %837, ptr noundef %53, ptr noundef %838)
  %839 = load i32, ptr %82, align 4, !tbaa !9
  %840 = icmp ne i32 %839, 0
  br i1 %840, label %841, label %855

841:                                              ; preds = %776
  %842 = getelementptr inbounds [1 x i8], ptr %58, i64 0, i64 0
  store i8 66, ptr %842, align 1, !tbaa !13
  %843 = load ptr, ptr %28, align 8, !tbaa !5
  %844 = load ptr, ptr %28, align 8, !tbaa !5
  %845 = load ptr, ptr %33, align 8, !tbaa !5
  %846 = load i32, ptr %50, align 4, !tbaa !9
  %847 = sext i32 %846 to i64
  %848 = getelementptr inbounds float, ptr %845, i64 %847
  %849 = load ptr, ptr %34, align 8, !tbaa !5
  %850 = load ptr, ptr %35, align 8, !tbaa !5
  %851 = load i32, ptr %52, align 4, !tbaa !9
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds float, ptr %850, i64 %852
  %854 = load ptr, ptr %36, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.15, ptr noundef %843, ptr noundef %844, ptr noundef %848, ptr noundef %849, ptr noundef %853, ptr noundef %854)
  br label %855

855:                                              ; preds = %841, %776
  br label %960

856:                                              ; preds = %748
  %857 = load i32, ptr %82, align 4, !tbaa !9
  %858 = icmp ne i32 %857, 0
  br i1 %858, label %859, label %922

859:                                              ; preds = %856
  %860 = getelementptr inbounds [1 x i8], ptr %58, i64 0, i64 0
  store i8 82, ptr %860, align 1, !tbaa !13
  %861 = load ptr, ptr %28, align 8, !tbaa !5
  %862 = load ptr, ptr %28, align 8, !tbaa !5
  %863 = load ptr, ptr %29, align 8, !tbaa !5
  %864 = load i32, ptr %48, align 4, !tbaa !9
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds float, ptr %863, i64 %865
  %867 = load ptr, ptr %30, align 8, !tbaa !5
  %868 = load ptr, ptr %35, align 8, !tbaa !5
  %869 = load i32, ptr %52, align 4, !tbaa !9
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds float, ptr %868, i64 %870
  %872 = load ptr, ptr %36, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.8, ptr noundef %861, ptr noundef %862, ptr noundef %866, ptr noundef %867, ptr noundef %871, ptr noundef %872)
  %873 = load ptr, ptr %44, align 8, !tbaa !5
  %874 = load i32, ptr %873, align 4, !tbaa !9
  %875 = load i32, ptr %62, align 4, !tbaa !9
  %876 = sub nsw i32 %874, %875
  %877 = add nsw i32 %876, 1
  store i32 %877, ptr %53, align 4, !tbaa !9
  %878 = load ptr, ptr %28, align 8, !tbaa !5
  %879 = load ptr, ptr %37, align 8, !tbaa !5
  %880 = load ptr, ptr %38, align 8, !tbaa !5
  %881 = load ptr, ptr %35, align 8, !tbaa !5
  %882 = load i32, ptr %52, align 4, !tbaa !9
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds float, ptr %881, i64 %883
  %885 = load ptr, ptr %36, align 8, !tbaa !5
  %886 = load ptr, ptr %43, align 8, !tbaa !5
  %887 = load i32, ptr %61, align 4, !tbaa !9
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds float, ptr %886, i64 %888
  %890 = load ptr, ptr %43, align 8, !tbaa !5
  %891 = load i32, ptr %62, align 4, !tbaa !9
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds float, ptr %890, i64 %892
  call void @sorghr_(ptr noundef %878, ptr noundef %879, ptr noundef %880, ptr noundef %884, ptr noundef %885, ptr noundef %889, ptr noundef %893, ptr noundef %53, ptr noundef %60)
  %894 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %894, ptr %62, align 4, !tbaa !9
  %895 = load ptr, ptr %44, align 8, !tbaa !5
  %896 = load i32, ptr %895, align 4, !tbaa !9
  %897 = load i32, ptr %62, align 4, !tbaa !9
  %898 = sub nsw i32 %896, %897
  %899 = add nsw i32 %898, 1
  store i32 %899, ptr %53, align 4, !tbaa !9
  %900 = load ptr, ptr %28, align 8, !tbaa !5
  %901 = load ptr, ptr %37, align 8, !tbaa !5
  %902 = load ptr, ptr %38, align 8, !tbaa !5
  %903 = load ptr, ptr %29, align 8, !tbaa !5
  %904 = load i32, ptr %48, align 4, !tbaa !9
  %905 = sext i32 %904 to i64
  %906 = getelementptr inbounds float, ptr %903, i64 %905
  %907 = load ptr, ptr %30, align 8, !tbaa !5
  %908 = load ptr, ptr %31, align 8, !tbaa !5
  %909 = getelementptr inbounds float, ptr %908, i64 1
  %910 = load ptr, ptr %32, align 8, !tbaa !5
  %911 = getelementptr inbounds float, ptr %910, i64 1
  %912 = load ptr, ptr %35, align 8, !tbaa !5
  %913 = load i32, ptr %52, align 4, !tbaa !9
  %914 = sext i32 %913 to i64
  %915 = getelementptr inbounds float, ptr %912, i64 %914
  %916 = load ptr, ptr %36, align 8, !tbaa !5
  %917 = load ptr, ptr %43, align 8, !tbaa !5
  %918 = load i32, ptr %62, align 4, !tbaa !9
  %919 = sext i32 %918 to i64
  %920 = getelementptr inbounds float, ptr %917, i64 %919
  %921 = load ptr, ptr %46, align 8, !tbaa !5
  call void @shseqr_(ptr noundef @.str.4, ptr noundef @.str, ptr noundef %900, ptr noundef %901, ptr noundef %902, ptr noundef %906, ptr noundef %907, ptr noundef %909, ptr noundef %911, ptr noundef %915, ptr noundef %916, ptr noundef %920, ptr noundef %53, ptr noundef %921)
  br label %959

922:                                              ; preds = %856
  %923 = load i32, ptr %83, align 4, !tbaa !9
  %924 = icmp ne i32 %923, 0
  br i1 %924, label %925, label %927

925:                                              ; preds = %922
  %926 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  store i8 69, ptr %926, align 1, !tbaa !13
  br label %929

927:                                              ; preds = %922
  %928 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  store i8 83, ptr %928, align 1, !tbaa !13
  br label %929

929:                                              ; preds = %927, %925
  %930 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %930, ptr %62, align 4, !tbaa !9
  %931 = load ptr, ptr %44, align 8, !tbaa !5
  %932 = load i32, ptr %931, align 4, !tbaa !9
  %933 = load i32, ptr %62, align 4, !tbaa !9
  %934 = sub nsw i32 %932, %933
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr %53, align 4, !tbaa !9
  %936 = getelementptr inbounds [1 x i8], ptr %85, i64 0, i64 0
  %937 = load ptr, ptr %28, align 8, !tbaa !5
  %938 = load ptr, ptr %37, align 8, !tbaa !5
  %939 = load ptr, ptr %38, align 8, !tbaa !5
  %940 = load ptr, ptr %29, align 8, !tbaa !5
  %941 = load i32, ptr %48, align 4, !tbaa !9
  %942 = sext i32 %941 to i64
  %943 = getelementptr inbounds float, ptr %940, i64 %942
  %944 = load ptr, ptr %30, align 8, !tbaa !5
  %945 = load ptr, ptr %31, align 8, !tbaa !5
  %946 = getelementptr inbounds float, ptr %945, i64 1
  %947 = load ptr, ptr %32, align 8, !tbaa !5
  %948 = getelementptr inbounds float, ptr %947, i64 1
  %949 = load ptr, ptr %35, align 8, !tbaa !5
  %950 = load i32, ptr %52, align 4, !tbaa !9
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds float, ptr %949, i64 %951
  %953 = load ptr, ptr %36, align 8, !tbaa !5
  %954 = load ptr, ptr %43, align 8, !tbaa !5
  %955 = load i32, ptr %62, align 4, !tbaa !9
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds float, ptr %954, i64 %956
  %958 = load ptr, ptr %46, align 8, !tbaa !5
  call void @shseqr_(ptr noundef %936, ptr noundef @.str.1, ptr noundef %937, ptr noundef %938, ptr noundef %939, ptr noundef %943, ptr noundef %944, ptr noundef %946, ptr noundef %948, ptr noundef %952, ptr noundef %953, ptr noundef %957, ptr noundef %53, ptr noundef %958)
  br label %959

959:                                              ; preds = %929, %859
  br label %960

960:                                              ; preds = %959, %855
  %961 = load ptr, ptr %46, align 8, !tbaa !5
  %962 = load i32, ptr %961, align 4, !tbaa !9
  %963 = icmp ne i32 %962, 0
  br i1 %963, label %964, label %965

964:                                              ; preds = %960
  br label %1407

965:                                              ; preds = %960
  %966 = load i32, ptr %76, align 4, !tbaa !9
  %967 = icmp ne i32 %966, 0
  br i1 %967, label %971, label %968

968:                                              ; preds = %965
  %969 = load i32, ptr %82, align 4, !tbaa !9
  %970 = icmp ne i32 %969, 0
  br i1 %970, label %971, label %1000

971:                                              ; preds = %968, %965
  %972 = load ptr, ptr %44, align 8, !tbaa !5
  %973 = load i32, ptr %972, align 4, !tbaa !9
  %974 = load i32, ptr %62, align 4, !tbaa !9
  %975 = sub nsw i32 %973, %974
  %976 = add nsw i32 %975, 1
  store i32 %976, ptr %53, align 4, !tbaa !9
  %977 = getelementptr inbounds [1 x i8], ptr %58, i64 0, i64 0
  %978 = getelementptr inbounds [1 x i32], ptr %72, i64 0, i64 0
  %979 = load ptr, ptr %28, align 8, !tbaa !5
  %980 = load ptr, ptr %29, align 8, !tbaa !5
  %981 = load i32, ptr %48, align 4, !tbaa !9
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds float, ptr %980, i64 %982
  %984 = load ptr, ptr %30, align 8, !tbaa !5
  %985 = load ptr, ptr %33, align 8, !tbaa !5
  %986 = load i32, ptr %50, align 4, !tbaa !9
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds float, ptr %985, i64 %987
  %989 = load ptr, ptr %34, align 8, !tbaa !5
  %990 = load ptr, ptr %35, align 8, !tbaa !5
  %991 = load i32, ptr %52, align 4, !tbaa !9
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds float, ptr %990, i64 %992
  %994 = load ptr, ptr %36, align 8, !tbaa !5
  %995 = load ptr, ptr %28, align 8, !tbaa !5
  %996 = load ptr, ptr %43, align 8, !tbaa !5
  %997 = load i32, ptr %62, align 4, !tbaa !9
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds float, ptr %996, i64 %998
  call void @strevc3_(ptr noundef %977, ptr noundef @.str.3, ptr noundef %978, ptr noundef %979, ptr noundef %983, ptr noundef %984, ptr noundef %988, ptr noundef %989, ptr noundef %993, ptr noundef %994, ptr noundef %995, ptr noundef %63, ptr noundef %999, ptr noundef %53, ptr noundef %60)
  br label %1000

1000:                                             ; preds = %971, %968
  %1001 = load i32, ptr %83, align 4, !tbaa !9
  %1002 = icmp ne i32 %1001, 0
  br i1 %1002, label %1034, label %1003

1003:                                             ; preds = %1000
  %1004 = load ptr, ptr %27, align 8, !tbaa !5
  %1005 = getelementptr inbounds [1 x i32], ptr %72, i64 0, i64 0
  %1006 = load ptr, ptr %28, align 8, !tbaa !5
  %1007 = load ptr, ptr %29, align 8, !tbaa !5
  %1008 = load i32, ptr %48, align 4, !tbaa !9
  %1009 = sext i32 %1008 to i64
  %1010 = getelementptr inbounds float, ptr %1007, i64 %1009
  %1011 = load ptr, ptr %30, align 8, !tbaa !5
  %1012 = load ptr, ptr %33, align 8, !tbaa !5
  %1013 = load i32, ptr %50, align 4, !tbaa !9
  %1014 = sext i32 %1013 to i64
  %1015 = getelementptr inbounds float, ptr %1012, i64 %1014
  %1016 = load ptr, ptr %34, align 8, !tbaa !5
  %1017 = load ptr, ptr %35, align 8, !tbaa !5
  %1018 = load i32, ptr %52, align 4, !tbaa !9
  %1019 = sext i32 %1018 to i64
  %1020 = getelementptr inbounds float, ptr %1017, i64 %1019
  %1021 = load ptr, ptr %36, align 8, !tbaa !5
  %1022 = load ptr, ptr %41, align 8, !tbaa !5
  %1023 = getelementptr inbounds float, ptr %1022, i64 1
  %1024 = load ptr, ptr %42, align 8, !tbaa !5
  %1025 = getelementptr inbounds float, ptr %1024, i64 1
  %1026 = load ptr, ptr %28, align 8, !tbaa !5
  %1027 = load ptr, ptr %43, align 8, !tbaa !5
  %1028 = load i32, ptr %62, align 4, !tbaa !9
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds float, ptr %1027, i64 %1029
  %1031 = load ptr, ptr %28, align 8, !tbaa !5
  %1032 = load ptr, ptr %45, align 8, !tbaa !5
  %1033 = getelementptr inbounds i32, ptr %1032, i64 1
  call void @strsna_(ptr noundef %1004, ptr noundef @.str.16, ptr noundef %1005, ptr noundef %1006, ptr noundef %1010, ptr noundef %1011, ptr noundef %1015, ptr noundef %1016, ptr noundef %1020, ptr noundef %1021, ptr noundef %1023, ptr noundef %1025, ptr noundef %1026, ptr noundef %63, ptr noundef %1030, ptr noundef %1031, ptr noundef %1033, ptr noundef %67)
  br label %1034

1034:                                             ; preds = %1003, %1000
  %1035 = load i32, ptr %76, align 4, !tbaa !9
  %1036 = icmp ne i32 %1035, 0
  br i1 %1036, label %1037, label %1220

1037:                                             ; preds = %1034
  %1038 = load ptr, ptr %24, align 8, !tbaa !5
  %1039 = load ptr, ptr %28, align 8, !tbaa !5
  %1040 = load ptr, ptr %37, align 8, !tbaa !5
  %1041 = load ptr, ptr %38, align 8, !tbaa !5
  %1042 = load ptr, ptr %39, align 8, !tbaa !5
  %1043 = getelementptr inbounds float, ptr %1042, i64 1
  %1044 = load ptr, ptr %28, align 8, !tbaa !5
  %1045 = load ptr, ptr %33, align 8, !tbaa !5
  %1046 = load i32, ptr %50, align 4, !tbaa !9
  %1047 = sext i32 %1046 to i64
  %1048 = getelementptr inbounds float, ptr %1045, i64 %1047
  %1049 = load ptr, ptr %34, align 8, !tbaa !5
  call void @sgebak_(ptr noundef %1038, ptr noundef @.str.8, ptr noundef %1039, ptr noundef %1040, ptr noundef %1041, ptr noundef %1043, ptr noundef %1044, ptr noundef %1048, ptr noundef %1049, ptr noundef %60)
  %1050 = load ptr, ptr %28, align 8, !tbaa !5
  %1051 = load i32, ptr %1050, align 4, !tbaa !9
  store i32 %1051, ptr %53, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %1052

1052:                                             ; preds = %1216, %1037
  %1053 = load i32, ptr %64, align 4, !tbaa !9
  %1054 = load i32, ptr %53, align 4, !tbaa !9
  %1055 = icmp sle i32 %1053, %1054
  br i1 %1055, label %1056, label %1219

1056:                                             ; preds = %1052
  %1057 = load ptr, ptr %32, align 8, !tbaa !5
  %1058 = load i32, ptr %64, align 4, !tbaa !9
  %1059 = sext i32 %1058 to i64
  %1060 = getelementptr inbounds float, ptr %1057, i64 %1059
  %1061 = load float, ptr %1060, align 4, !tbaa !11
  %1062 = fcmp oeq float %1061, 0.000000e+00
  br i1 %1062, label %1063, label %1082

1063:                                             ; preds = %1056
  %1064 = load ptr, ptr %28, align 8, !tbaa !5
  %1065 = load ptr, ptr %33, align 8, !tbaa !5
  %1066 = load i32, ptr %64, align 4, !tbaa !9
  %1067 = load i32, ptr %49, align 4, !tbaa !9
  %1068 = mul nsw i32 %1066, %1067
  %1069 = add nsw i32 %1068, 1
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds float, ptr %1065, i64 %1070
  %1072 = call float @snrm2_(ptr noundef %1064, ptr noundef %1071, ptr noundef @c__1)
  %1073 = fdiv float 1.000000e+00, %1072
  store float %1073, ptr %86, align 4, !tbaa !11
  %1074 = load ptr, ptr %28, align 8, !tbaa !5
  %1075 = load ptr, ptr %33, align 8, !tbaa !5
  %1076 = load i32, ptr %64, align 4, !tbaa !9
  %1077 = load i32, ptr %49, align 4, !tbaa !9
  %1078 = mul nsw i32 %1076, %1077
  %1079 = add nsw i32 %1078, 1
  %1080 = sext i32 %1079 to i64
  %1081 = getelementptr inbounds float, ptr %1075, i64 %1080
  call void @sscal_(ptr noundef %1074, ptr noundef %86, ptr noundef %1081, ptr noundef @c__1)
  br label %1215

1082:                                             ; preds = %1056
  %1083 = load ptr, ptr %32, align 8, !tbaa !5
  %1084 = load i32, ptr %64, align 4, !tbaa !9
  %1085 = sext i32 %1084 to i64
  %1086 = getelementptr inbounds float, ptr %1083, i64 %1085
  %1087 = load float, ptr %1086, align 4, !tbaa !11
  %1088 = fcmp ogt float %1087, 0.000000e+00
  br i1 %1088, label %1089, label %1214

1089:                                             ; preds = %1082
  %1090 = load ptr, ptr %28, align 8, !tbaa !5
  %1091 = load ptr, ptr %33, align 8, !tbaa !5
  %1092 = load i32, ptr %64, align 4, !tbaa !9
  %1093 = load i32, ptr %49, align 4, !tbaa !9
  %1094 = mul nsw i32 %1092, %1093
  %1095 = add nsw i32 %1094, 1
  %1096 = sext i32 %1095 to i64
  %1097 = getelementptr inbounds float, ptr %1091, i64 %1096
  %1098 = call float @snrm2_(ptr noundef %1090, ptr noundef %1097, ptr noundef @c__1)
  store float %1098, ptr %56, align 4, !tbaa !11
  %1099 = load ptr, ptr %28, align 8, !tbaa !5
  %1100 = load ptr, ptr %33, align 8, !tbaa !5
  %1101 = load i32, ptr %64, align 4, !tbaa !9
  %1102 = add nsw i32 %1101, 1
  %1103 = load i32, ptr %49, align 4, !tbaa !9
  %1104 = mul nsw i32 %1102, %1103
  %1105 = add nsw i32 %1104, 1
  %1106 = sext i32 %1105 to i64
  %1107 = getelementptr inbounds float, ptr %1100, i64 %1106
  %1108 = call float @snrm2_(ptr noundef %1099, ptr noundef %1107, ptr noundef @c__1)
  store float %1108, ptr %57, align 4, !tbaa !11
  %1109 = call float @slapy2_(ptr noundef %56, ptr noundef %57)
  %1110 = fdiv float 1.000000e+00, %1109
  store float %1110, ptr %86, align 4, !tbaa !11
  %1111 = load ptr, ptr %28, align 8, !tbaa !5
  %1112 = load ptr, ptr %33, align 8, !tbaa !5
  %1113 = load i32, ptr %64, align 4, !tbaa !9
  %1114 = load i32, ptr %49, align 4, !tbaa !9
  %1115 = mul nsw i32 %1113, %1114
  %1116 = add nsw i32 %1115, 1
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds float, ptr %1112, i64 %1117
  call void @sscal_(ptr noundef %1111, ptr noundef %86, ptr noundef %1118, ptr noundef @c__1)
  %1119 = load ptr, ptr %28, align 8, !tbaa !5
  %1120 = load ptr, ptr %33, align 8, !tbaa !5
  %1121 = load i32, ptr %64, align 4, !tbaa !9
  %1122 = add nsw i32 %1121, 1
  %1123 = load i32, ptr %49, align 4, !tbaa !9
  %1124 = mul nsw i32 %1122, %1123
  %1125 = add nsw i32 %1124, 1
  %1126 = sext i32 %1125 to i64
  %1127 = getelementptr inbounds float, ptr %1120, i64 %1126
  call void @sscal_(ptr noundef %1119, ptr noundef %86, ptr noundef %1127, ptr noundef @c__1)
  %1128 = load ptr, ptr %28, align 8, !tbaa !5
  %1129 = load i32, ptr %1128, align 4, !tbaa !9
  store i32 %1129, ptr %54, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %1130

1130:                                             ; preds = %1164, %1089
  %1131 = load i32, ptr %65, align 4, !tbaa !9
  %1132 = load i32, ptr %54, align 4, !tbaa !9
  %1133 = icmp sle i32 %1131, %1132
  br i1 %1133, label %1134, label %1167

1134:                                             ; preds = %1130
  %1135 = load ptr, ptr %33, align 8, !tbaa !5
  %1136 = load i32, ptr %65, align 4, !tbaa !9
  %1137 = load i32, ptr %64, align 4, !tbaa !9
  %1138 = load i32, ptr %49, align 4, !tbaa !9
  %1139 = mul nsw i32 %1137, %1138
  %1140 = add nsw i32 %1136, %1139
  %1141 = sext i32 %1140 to i64
  %1142 = getelementptr inbounds float, ptr %1135, i64 %1141
  %1143 = load float, ptr %1142, align 4, !tbaa !11
  store float %1143, ptr %56, align 4, !tbaa !11
  %1144 = load ptr, ptr %33, align 8, !tbaa !5
  %1145 = load i32, ptr %65, align 4, !tbaa !9
  %1146 = load i32, ptr %64, align 4, !tbaa !9
  %1147 = add nsw i32 %1146, 1
  %1148 = load i32, ptr %49, align 4, !tbaa !9
  %1149 = mul nsw i32 %1147, %1148
  %1150 = add nsw i32 %1145, %1149
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr inbounds float, ptr %1144, i64 %1151
  %1153 = load float, ptr %1152, align 4, !tbaa !11
  store float %1153, ptr %57, align 4, !tbaa !11
  %1154 = load float, ptr %56, align 4, !tbaa !11
  %1155 = load float, ptr %56, align 4, !tbaa !11
  %1156 = load float, ptr %57, align 4, !tbaa !11
  %1157 = load float, ptr %57, align 4, !tbaa !11
  %1158 = fmul float %1156, %1157
  %1159 = call float @llvm.fmuladd.f32(float %1154, float %1155, float %1158)
  %1160 = load ptr, ptr %43, align 8, !tbaa !5
  %1161 = load i32, ptr %65, align 4, !tbaa !9
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds float, ptr %1160, i64 %1162
  store float %1159, ptr %1163, align 4, !tbaa !11
  br label %1164

1164:                                             ; preds = %1134
  %1165 = load i32, ptr %65, align 4, !tbaa !9
  %1166 = add nsw i32 %1165, 1
  store i32 %1166, ptr %65, align 4, !tbaa !9
  br label %1130, !llvm.loop !14

1167:                                             ; preds = %1130
  %1168 = load ptr, ptr %28, align 8, !tbaa !5
  %1169 = load ptr, ptr %43, align 8, !tbaa !5
  %1170 = getelementptr inbounds float, ptr %1169, i64 1
  %1171 = call i32 @isamax_(ptr noundef %1168, ptr noundef %1170, ptr noundef @c__1)
  store i32 %1171, ptr %65, align 4, !tbaa !9
  %1172 = load ptr, ptr %33, align 8, !tbaa !5
  %1173 = load i32, ptr %65, align 4, !tbaa !9
  %1174 = load i32, ptr %64, align 4, !tbaa !9
  %1175 = load i32, ptr %49, align 4, !tbaa !9
  %1176 = mul nsw i32 %1174, %1175
  %1177 = add nsw i32 %1173, %1176
  %1178 = sext i32 %1177 to i64
  %1179 = getelementptr inbounds float, ptr %1172, i64 %1178
  %1180 = load ptr, ptr %33, align 8, !tbaa !5
  %1181 = load i32, ptr %65, align 4, !tbaa !9
  %1182 = load i32, ptr %64, align 4, !tbaa !9
  %1183 = add nsw i32 %1182, 1
  %1184 = load i32, ptr %49, align 4, !tbaa !9
  %1185 = mul nsw i32 %1183, %1184
  %1186 = add nsw i32 %1181, %1185
  %1187 = sext i32 %1186 to i64
  %1188 = getelementptr inbounds float, ptr %1180, i64 %1187
  call void @slartg_(ptr noundef %1179, ptr noundef %1188, ptr noundef %68, ptr noundef %71, ptr noundef %66)
  %1189 = load ptr, ptr %28, align 8, !tbaa !5
  %1190 = load ptr, ptr %33, align 8, !tbaa !5
  %1191 = load i32, ptr %64, align 4, !tbaa !9
  %1192 = load i32, ptr %49, align 4, !tbaa !9
  %1193 = mul nsw i32 %1191, %1192
  %1194 = add nsw i32 %1193, 1
  %1195 = sext i32 %1194 to i64
  %1196 = getelementptr inbounds float, ptr %1190, i64 %1195
  %1197 = load ptr, ptr %33, align 8, !tbaa !5
  %1198 = load i32, ptr %64, align 4, !tbaa !9
  %1199 = add nsw i32 %1198, 1
  %1200 = load i32, ptr %49, align 4, !tbaa !9
  %1201 = mul nsw i32 %1199, %1200
  %1202 = add nsw i32 %1201, 1
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds float, ptr %1197, i64 %1203
  call void @srot_(ptr noundef %1189, ptr noundef %1196, ptr noundef @c__1, ptr noundef %1204, ptr noundef @c__1, ptr noundef %68, ptr noundef %71)
  %1205 = load ptr, ptr %33, align 8, !tbaa !5
  %1206 = load i32, ptr %65, align 4, !tbaa !9
  %1207 = load i32, ptr %64, align 4, !tbaa !9
  %1208 = add nsw i32 %1207, 1
  %1209 = load i32, ptr %49, align 4, !tbaa !9
  %1210 = mul nsw i32 %1208, %1209
  %1211 = add nsw i32 %1206, %1210
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds float, ptr %1205, i64 %1212
  store float 0.000000e+00, ptr %1213, align 4, !tbaa !11
  br label %1214

1214:                                             ; preds = %1167, %1082
  br label %1215

1215:                                             ; preds = %1214, %1063
  br label %1216

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

1219:                                             ; preds = %1052
  br label %1220

1220:                                             ; preds = %1219, %1034
  %1221 = load i32, ptr %82, align 4, !tbaa !9
  %1222 = icmp ne i32 %1221, 0
  br i1 %1222, label %1223, label %1406

1223:                                             ; preds = %1220
  %1224 = load ptr, ptr %24, align 8, !tbaa !5
  %1225 = load ptr, ptr %28, align 8, !tbaa !5
  %1226 = load ptr, ptr %37, align 8, !tbaa !5
  %1227 = load ptr, ptr %38, align 8, !tbaa !5
  %1228 = load ptr, ptr %39, align 8, !tbaa !5
  %1229 = getelementptr inbounds float, ptr %1228, i64 1
  %1230 = load ptr, ptr %28, align 8, !tbaa !5
  %1231 = load ptr, ptr %35, align 8, !tbaa !5
  %1232 = load i32, ptr %52, align 4, !tbaa !9
  %1233 = sext i32 %1232 to i64
  %1234 = getelementptr inbounds float, ptr %1231, i64 %1233
  %1235 = load ptr, ptr %36, align 8, !tbaa !5
  call void @sgebak_(ptr noundef %1224, ptr noundef @.str.9, ptr noundef %1225, ptr noundef %1226, ptr noundef %1227, ptr noundef %1229, ptr noundef %1230, ptr noundef %1234, ptr noundef %1235, ptr noundef %60)
  %1236 = load ptr, ptr %28, align 8, !tbaa !5
  %1237 = load i32, ptr %1236, align 4, !tbaa !9
  store i32 %1237, ptr %53, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %1238

1238:                                             ; preds = %1402, %1223
  %1239 = load i32, ptr %64, align 4, !tbaa !9
  %1240 = load i32, ptr %53, align 4, !tbaa !9
  %1241 = icmp sle i32 %1239, %1240
  br i1 %1241, label %1242, label %1405

1242:                                             ; preds = %1238
  %1243 = load ptr, ptr %32, align 8, !tbaa !5
  %1244 = load i32, ptr %64, align 4, !tbaa !9
  %1245 = sext i32 %1244 to i64
  %1246 = getelementptr inbounds float, ptr %1243, i64 %1245
  %1247 = load float, ptr %1246, align 4, !tbaa !11
  %1248 = fcmp oeq float %1247, 0.000000e+00
  br i1 %1248, label %1249, label %1268

1249:                                             ; preds = %1242
  %1250 = load ptr, ptr %28, align 8, !tbaa !5
  %1251 = load ptr, ptr %35, align 8, !tbaa !5
  %1252 = load i32, ptr %64, align 4, !tbaa !9
  %1253 = load i32, ptr %51, align 4, !tbaa !9
  %1254 = mul nsw i32 %1252, %1253
  %1255 = add nsw i32 %1254, 1
  %1256 = sext i32 %1255 to i64
  %1257 = getelementptr inbounds float, ptr %1251, i64 %1256
  %1258 = call float @snrm2_(ptr noundef %1250, ptr noundef %1257, ptr noundef @c__1)
  %1259 = fdiv float 1.000000e+00, %1258
  store float %1259, ptr %86, align 4, !tbaa !11
  %1260 = load ptr, ptr %28, align 8, !tbaa !5
  %1261 = load ptr, ptr %35, align 8, !tbaa !5
  %1262 = load i32, ptr %64, align 4, !tbaa !9
  %1263 = load i32, ptr %51, align 4, !tbaa !9
  %1264 = mul nsw i32 %1262, %1263
  %1265 = add nsw i32 %1264, 1
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds float, ptr %1261, i64 %1266
  call void @sscal_(ptr noundef %1260, ptr noundef %86, ptr noundef %1267, ptr noundef @c__1)
  br label %1401

1268:                                             ; preds = %1242
  %1269 = load ptr, ptr %32, align 8, !tbaa !5
  %1270 = load i32, ptr %64, align 4, !tbaa !9
  %1271 = sext i32 %1270 to i64
  %1272 = getelementptr inbounds float, ptr %1269, i64 %1271
  %1273 = load float, ptr %1272, align 4, !tbaa !11
  %1274 = fcmp ogt float %1273, 0.000000e+00
  br i1 %1274, label %1275, label %1400

1275:                                             ; preds = %1268
  %1276 = load ptr, ptr %28, align 8, !tbaa !5
  %1277 = load ptr, ptr %35, align 8, !tbaa !5
  %1278 = load i32, ptr %64, align 4, !tbaa !9
  %1279 = load i32, ptr %51, align 4, !tbaa !9
  %1280 = mul nsw i32 %1278, %1279
  %1281 = add nsw i32 %1280, 1
  %1282 = sext i32 %1281 to i64
  %1283 = getelementptr inbounds float, ptr %1277, i64 %1282
  %1284 = call float @snrm2_(ptr noundef %1276, ptr noundef %1283, ptr noundef @c__1)
  store float %1284, ptr %56, align 4, !tbaa !11
  %1285 = load ptr, ptr %28, align 8, !tbaa !5
  %1286 = load ptr, ptr %35, align 8, !tbaa !5
  %1287 = load i32, ptr %64, align 4, !tbaa !9
  %1288 = add nsw i32 %1287, 1
  %1289 = load i32, ptr %51, align 4, !tbaa !9
  %1290 = mul nsw i32 %1288, %1289
  %1291 = add nsw i32 %1290, 1
  %1292 = sext i32 %1291 to i64
  %1293 = getelementptr inbounds float, ptr %1286, i64 %1292
  %1294 = call float @snrm2_(ptr noundef %1285, ptr noundef %1293, ptr noundef @c__1)
  store float %1294, ptr %57, align 4, !tbaa !11
  %1295 = call float @slapy2_(ptr noundef %56, ptr noundef %57)
  %1296 = fdiv float 1.000000e+00, %1295
  store float %1296, ptr %86, align 4, !tbaa !11
  %1297 = load ptr, ptr %28, align 8, !tbaa !5
  %1298 = load ptr, ptr %35, align 8, !tbaa !5
  %1299 = load i32, ptr %64, align 4, !tbaa !9
  %1300 = load i32, ptr %51, align 4, !tbaa !9
  %1301 = mul nsw i32 %1299, %1300
  %1302 = add nsw i32 %1301, 1
  %1303 = sext i32 %1302 to i64
  %1304 = getelementptr inbounds float, ptr %1298, i64 %1303
  call void @sscal_(ptr noundef %1297, ptr noundef %86, ptr noundef %1304, ptr noundef @c__1)
  %1305 = load ptr, ptr %28, align 8, !tbaa !5
  %1306 = load ptr, ptr %35, align 8, !tbaa !5
  %1307 = load i32, ptr %64, align 4, !tbaa !9
  %1308 = add nsw i32 %1307, 1
  %1309 = load i32, ptr %51, align 4, !tbaa !9
  %1310 = mul nsw i32 %1308, %1309
  %1311 = add nsw i32 %1310, 1
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds float, ptr %1306, i64 %1312
  call void @sscal_(ptr noundef %1305, ptr noundef %86, ptr noundef %1313, ptr noundef @c__1)
  %1314 = load ptr, ptr %28, align 8, !tbaa !5
  %1315 = load i32, ptr %1314, align 4, !tbaa !9
  store i32 %1315, ptr %54, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %1316

1316:                                             ; preds = %1350, %1275
  %1317 = load i32, ptr %65, align 4, !tbaa !9
  %1318 = load i32, ptr %54, align 4, !tbaa !9
  %1319 = icmp sle i32 %1317, %1318
  br i1 %1319, label %1320, label %1353

1320:                                             ; preds = %1316
  %1321 = load ptr, ptr %35, align 8, !tbaa !5
  %1322 = load i32, ptr %65, align 4, !tbaa !9
  %1323 = load i32, ptr %64, align 4, !tbaa !9
  %1324 = load i32, ptr %51, align 4, !tbaa !9
  %1325 = mul nsw i32 %1323, %1324
  %1326 = add nsw i32 %1322, %1325
  %1327 = sext i32 %1326 to i64
  %1328 = getelementptr inbounds float, ptr %1321, i64 %1327
  %1329 = load float, ptr %1328, align 4, !tbaa !11
  store float %1329, ptr %56, align 4, !tbaa !11
  %1330 = load ptr, ptr %35, align 8, !tbaa !5
  %1331 = load i32, ptr %65, align 4, !tbaa !9
  %1332 = load i32, ptr %64, align 4, !tbaa !9
  %1333 = add nsw i32 %1332, 1
  %1334 = load i32, ptr %51, align 4, !tbaa !9
  %1335 = mul nsw i32 %1333, %1334
  %1336 = add nsw i32 %1331, %1335
  %1337 = sext i32 %1336 to i64
  %1338 = getelementptr inbounds float, ptr %1330, i64 %1337
  %1339 = load float, ptr %1338, align 4, !tbaa !11
  store float %1339, ptr %57, align 4, !tbaa !11
  %1340 = load float, ptr %56, align 4, !tbaa !11
  %1341 = load float, ptr %56, align 4, !tbaa !11
  %1342 = load float, ptr %57, align 4, !tbaa !11
  %1343 = load float, ptr %57, align 4, !tbaa !11
  %1344 = fmul float %1342, %1343
  %1345 = call float @llvm.fmuladd.f32(float %1340, float %1341, float %1344)
  %1346 = load ptr, ptr %43, align 8, !tbaa !5
  %1347 = load i32, ptr %65, align 4, !tbaa !9
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds float, ptr %1346, i64 %1348
  store float %1345, ptr %1349, align 4, !tbaa !11
  br label %1350

1350:                                             ; preds = %1320
  %1351 = load i32, ptr %65, align 4, !tbaa !9
  %1352 = add nsw i32 %1351, 1
  store i32 %1352, ptr %65, align 4, !tbaa !9
  br label %1316, !llvm.loop !17

1353:                                             ; preds = %1316
  %1354 = load ptr, ptr %28, align 8, !tbaa !5
  %1355 = load ptr, ptr %43, align 8, !tbaa !5
  %1356 = getelementptr inbounds float, ptr %1355, i64 1
  %1357 = call i32 @isamax_(ptr noundef %1354, ptr noundef %1356, ptr noundef @c__1)
  store i32 %1357, ptr %65, align 4, !tbaa !9
  %1358 = load ptr, ptr %35, align 8, !tbaa !5
  %1359 = load i32, ptr %65, align 4, !tbaa !9
  %1360 = load i32, ptr %64, align 4, !tbaa !9
  %1361 = load i32, ptr %51, align 4, !tbaa !9
  %1362 = mul nsw i32 %1360, %1361
  %1363 = add nsw i32 %1359, %1362
  %1364 = sext i32 %1363 to i64
  %1365 = getelementptr inbounds float, ptr %1358, i64 %1364
  %1366 = load ptr, ptr %35, align 8, !tbaa !5
  %1367 = load i32, ptr %65, align 4, !tbaa !9
  %1368 = load i32, ptr %64, align 4, !tbaa !9
  %1369 = add nsw i32 %1368, 1
  %1370 = load i32, ptr %51, align 4, !tbaa !9
  %1371 = mul nsw i32 %1369, %1370
  %1372 = add nsw i32 %1367, %1371
  %1373 = sext i32 %1372 to i64
  %1374 = getelementptr inbounds float, ptr %1366, i64 %1373
  call void @slartg_(ptr noundef %1365, ptr noundef %1374, ptr noundef %68, ptr noundef %71, ptr noundef %66)
  %1375 = load ptr, ptr %28, align 8, !tbaa !5
  %1376 = load ptr, ptr %35, align 8, !tbaa !5
  %1377 = load i32, ptr %64, align 4, !tbaa !9
  %1378 = load i32, ptr %51, align 4, !tbaa !9
  %1379 = mul nsw i32 %1377, %1378
  %1380 = add nsw i32 %1379, 1
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds float, ptr %1376, i64 %1381
  %1383 = load ptr, ptr %35, align 8, !tbaa !5
  %1384 = load i32, ptr %64, align 4, !tbaa !9
  %1385 = add nsw i32 %1384, 1
  %1386 = load i32, ptr %51, align 4, !tbaa !9
  %1387 = mul nsw i32 %1385, %1386
  %1388 = add nsw i32 %1387, 1
  %1389 = sext i32 %1388 to i64
  %1390 = getelementptr inbounds float, ptr %1383, i64 %1389
  call void @srot_(ptr noundef %1375, ptr noundef %1382, ptr noundef @c__1, ptr noundef %1390, ptr noundef @c__1, ptr noundef %68, ptr noundef %71)
  %1391 = load ptr, ptr %35, align 8, !tbaa !5
  %1392 = load i32, ptr %65, align 4, !tbaa !9
  %1393 = load i32, ptr %64, align 4, !tbaa !9
  %1394 = add nsw i32 %1393, 1
  %1395 = load i32, ptr %51, align 4, !tbaa !9
  %1396 = mul nsw i32 %1394, %1395
  %1397 = add nsw i32 %1392, %1396
  %1398 = sext i32 %1397 to i64
  %1399 = getelementptr inbounds float, ptr %1391, i64 %1398
  store float 0.000000e+00, ptr %1399, align 4, !tbaa !11
  br label %1400

1400:                                             ; preds = %1353, %1268
  br label %1401

1401:                                             ; preds = %1400, %1249
  br label %1402

1402:                                             ; preds = %1401
  %1403 = load i32, ptr %64, align 4, !tbaa !9
  %1404 = add nsw i32 %1403, 1
  store i32 %1404, ptr %64, align 4, !tbaa !9
  br label %1238, !llvm.loop !18

1405:                                             ; preds = %1238
  br label %1406

1406:                                             ; preds = %1405, %1220
  br label %1407

1407:                                             ; preds = %1406, %964
  %1408 = load i32, ptr %69, align 4, !tbaa !9
  %1409 = icmp ne i32 %1408, 0
  br i1 %1409, label %1410, label %1489

1410:                                             ; preds = %1407
  %1411 = load ptr, ptr %28, align 8, !tbaa !5
  %1412 = load i32, ptr %1411, align 4, !tbaa !9
  %1413 = load ptr, ptr %46, align 8, !tbaa !5
  %1414 = load i32, ptr %1413, align 4, !tbaa !9
  %1415 = sub nsw i32 %1412, %1414
  store i32 %1415, ptr %53, align 4, !tbaa !9
  %1416 = load ptr, ptr %28, align 8, !tbaa !5
  %1417 = load i32, ptr %1416, align 4, !tbaa !9
  %1418 = load ptr, ptr %46, align 8, !tbaa !5
  %1419 = load i32, ptr %1418, align 4, !tbaa !9
  %1420 = sub nsw i32 %1417, %1419
  store i32 %1420, ptr %55, align 4, !tbaa !9
  %1421 = load i32, ptr %55, align 4, !tbaa !9
  %1422 = icmp sge i32 %1421, 1
  br i1 %1422, label %1423, label %1425

1423:                                             ; preds = %1410
  %1424 = load i32, ptr %55, align 4, !tbaa !9
  br label %1426

1425:                                             ; preds = %1410
  br label %1426

1426:                                             ; preds = %1425, %1423
  %1427 = phi i32 [ %1424, %1423 ], [ 1, %1425 ]
  store i32 %1427, ptr %54, align 4, !tbaa !9
  %1428 = load ptr, ptr %31, align 8, !tbaa !5
  %1429 = load ptr, ptr %46, align 8, !tbaa !5
  %1430 = load i32, ptr %1429, align 4, !tbaa !9
  %1431 = add nsw i32 %1430, 1
  %1432 = sext i32 %1431 to i64
  %1433 = getelementptr inbounds float, ptr %1428, i64 %1432
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %70, ptr noundef %59, ptr noundef %53, ptr noundef @c__1, ptr noundef %1433, ptr noundef %54, ptr noundef %60)
  %1434 = load ptr, ptr %28, align 8, !tbaa !5
  %1435 = load i32, ptr %1434, align 4, !tbaa !9
  %1436 = load ptr, ptr %46, align 8, !tbaa !5
  %1437 = load i32, ptr %1436, align 4, !tbaa !9
  %1438 = sub nsw i32 %1435, %1437
  store i32 %1438, ptr %53, align 4, !tbaa !9
  %1439 = load ptr, ptr %28, align 8, !tbaa !5
  %1440 = load i32, ptr %1439, align 4, !tbaa !9
  %1441 = load ptr, ptr %46, align 8, !tbaa !5
  %1442 = load i32, ptr %1441, align 4, !tbaa !9
  %1443 = sub nsw i32 %1440, %1442
  store i32 %1443, ptr %55, align 4, !tbaa !9
  %1444 = load i32, ptr %55, align 4, !tbaa !9
  %1445 = icmp sge i32 %1444, 1
  br i1 %1445, label %1446, label %1448

1446:                                             ; preds = %1426
  %1447 = load i32, ptr %55, align 4, !tbaa !9
  br label %1449

1448:                                             ; preds = %1426
  br label %1449

1449:                                             ; preds = %1448, %1446
  %1450 = phi i32 [ %1447, %1446 ], [ 1, %1448 ]
  store i32 %1450, ptr %54, align 4, !tbaa !9
  %1451 = load ptr, ptr %32, align 8, !tbaa !5
  %1452 = load ptr, ptr %46, align 8, !tbaa !5
  %1453 = load i32, ptr %1452, align 4, !tbaa !9
  %1454 = add nsw i32 %1453, 1
  %1455 = sext i32 %1454 to i64
  %1456 = getelementptr inbounds float, ptr %1451, i64 %1455
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %70, ptr noundef %59, ptr noundef %53, ptr noundef @c__1, ptr noundef %1456, ptr noundef %54, ptr noundef %60)
  %1457 = load ptr, ptr %46, align 8, !tbaa !5
  %1458 = load i32, ptr %1457, align 4, !tbaa !9
  %1459 = icmp eq i32 %1458, 0
  br i1 %1459, label %1460, label %1475

1460:                                             ; preds = %1449
  %1461 = load i32, ptr %84, align 4, !tbaa !9
  %1462 = icmp ne i32 %1461, 0
  br i1 %1462, label %1466, label %1463

1463:                                             ; preds = %1460
  %1464 = load i32, ptr %77, align 4, !tbaa !9
  %1465 = icmp ne i32 %1464, 0
  br i1 %1465, label %1466, label %1474

1466:                                             ; preds = %1463, %1460
  %1467 = load i32, ptr %67, align 4, !tbaa !9
  %1468 = icmp eq i32 %1467, 0
  br i1 %1468, label %1469, label %1474

1469:                                             ; preds = %1466
  %1470 = load ptr, ptr %28, align 8, !tbaa !5
  %1471 = load ptr, ptr %42, align 8, !tbaa !5
  %1472 = getelementptr inbounds float, ptr %1471, i64 1
  %1473 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %70, ptr noundef %59, ptr noundef %1470, ptr noundef @c__1, ptr noundef %1472, ptr noundef %1473, ptr noundef %60)
  br label %1474

1474:                                             ; preds = %1469, %1466, %1463
  br label %1488

1475:                                             ; preds = %1449
  %1476 = load ptr, ptr %37, align 8, !tbaa !5
  %1477 = load i32, ptr %1476, align 4, !tbaa !9
  %1478 = sub nsw i32 %1477, 1
  store i32 %1478, ptr %53, align 4, !tbaa !9
  %1479 = load ptr, ptr %31, align 8, !tbaa !5
  %1480 = getelementptr inbounds float, ptr %1479, i64 1
  %1481 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %70, ptr noundef %59, ptr noundef %53, ptr noundef @c__1, ptr noundef %1480, ptr noundef %1481, ptr noundef %60)
  %1482 = load ptr, ptr %37, align 8, !tbaa !5
  %1483 = load i32, ptr %1482, align 4, !tbaa !9
  %1484 = sub nsw i32 %1483, 1
  store i32 %1484, ptr %53, align 4, !tbaa !9
  %1485 = load ptr, ptr %32, align 8, !tbaa !5
  %1486 = getelementptr inbounds float, ptr %1485, i64 1
  %1487 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.13, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %70, ptr noundef %59, ptr noundef %53, ptr noundef @c__1, ptr noundef %1486, ptr noundef %1487, ptr noundef %60)
  br label %1488

1488:                                             ; preds = %1475, %1474
  br label %1489

1489:                                             ; preds = %1488, %1407
  %1490 = load i32, ptr %75, align 4, !tbaa !9
  %1491 = sitofp i32 %1490 to float
  %1492 = load ptr, ptr %43, align 8, !tbaa !5
  %1493 = getelementptr inbounds float, ptr %1492, i64 1
  store float %1491, ptr %1493, align 4, !tbaa !11
  store i32 1, ptr %90, align 4
  br label %1494

1494:                                             ; preds = %1489, %666, %660, %652
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 4, 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 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  ret void
}

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

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}


; 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 i32, align 4
@.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 i32, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 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 void @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 i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca [1 x i8], align 1
  %33 = alloca float, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca float, align 4
  %37 = alloca i32, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca [1 x i32], align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca [1 x i8], align 1
  %45 = alloca float, align 4
  %46 = alloca [1 x float], align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 4, 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 1, 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 4, 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 4, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 1, 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 %7, i64 -4
  %48 = getelementptr inbounds i8, ptr %8, i64 -4
  %49 = load i32, ptr %10, align 4, !tbaa !5
  %narrow = xor i32 %49, -1
  %50 = sext i32 %narrow to i64
  %51 = getelementptr inbounds float, ptr %9, i64 %50
  %52 = load i32, ptr %12, align 4, !tbaa !5
  %narrow641 = xor i32 %52, -1
  %53 = sext i32 %narrow641 to i64
  %54 = getelementptr inbounds float, ptr %11, i64 %53
  %55 = getelementptr inbounds i8, ptr %19, i64 -4
  store i32 0, ptr %22, align 4, !tbaa !5
  %56 = load i32, ptr %20, align 4, !tbaa !5
  %57 = icmp eq i32 %56, -1
  %58 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #6
  %59 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #6
  %60 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #6
  %61 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.2) #6
  %62 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str) #6
  %63 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.3) #6
  %64 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %.not = icmp eq i32 %64, 0
  br i1 %.not, label %65, label %71

65:                                               ; preds = %23
  %66 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not614 = icmp eq i32 %66, 0
  br i1 %.not614, label %67, label %71

67:                                               ; preds = %65
  %68 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #6
  %.not615 = icmp eq i32 %68, 0
  br i1 %.not615, label %69, label %71

69:                                               ; preds = %67
  %70 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #6
  %.not616 = icmp eq i32 %70, 0
  br i1 %.not616, label %.thread658.sink.split, label %71

71:                                               ; preds = %69, %67, %65, %23
  %72 = icmp ne i32 %58, 0
  br i1 %72, label %75, label %73

73:                                               ; preds = %71
  %74 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %.not617 = icmp eq i32 %74, 0
  br i1 %.not617, label %.thread658.sink.split, label %75

75:                                               ; preds = %73, %71
  %76 = icmp ne i32 %59, 0
  br i1 %76, label %79, label %77

77:                                               ; preds = %75
  %78 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #6
  %.not618 = icmp eq i32 %78, 0
  br i1 %.not618, label %.thread658.sink.split, label %79

79:                                               ; preds = %77, %75
  %80 = icmp ne i32 %60, 0
  %81 = icmp ne i32 %61, 0
  %or.cond = select i1 %80, i1 true, i1 %81
  %82 = icmp ne i32 %63, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %82
  %83 = icmp ne i32 %62, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %83
  br i1 %or.cond5, label %84, label %.thread658.sink.split

84:                                               ; preds = %79
  %or.cond7 = select i1 %81, i1 true, i1 %82
  %or.cond7.not = xor i1 %or.cond7, true
  %or.cond9 = and i1 %72, %76
  %or.cond645 = or i1 %or.cond9, %or.cond7.not
  br i1 %or.cond645, label %85, label %.thread658.sink.split

85:                                               ; preds = %84
  %86 = load i32, ptr %4, align 4, !tbaa !5
  %87 = icmp slt i32 %86, 0
  br i1 %87, label %.thread658.sink.split, label %88

88:                                               ; preds = %85
  %89 = load i32, ptr %6, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %86, i32 1)
  %90 = icmp slt i32 %89, %spec.select
  br i1 %90, label %.thread658.sink.split, label %91

91:                                               ; preds = %88
  %92 = load i32, ptr %10, align 4, !tbaa !5
  %93 = icmp slt i32 %92, 1
  %94 = icmp ult i32 %92, %86
  %or.cond669 = and i1 %72, %94
  %or.cond671 = or i1 %93, %or.cond669
  br i1 %or.cond671, label %.thread658.sink.split, label %95

95:                                               ; preds = %91
  %96 = load i32, ptr %12, align 4, !tbaa !5
  %97 = icmp slt i32 %96, 1
  %98 = icmp ult i32 %96, %86
  %or.cond670 = and i1 %76, %98
  %or.cond672 = or i1 %97, %or.cond670
  br i1 %or.cond672, label %.thread658.sink.split, label %99

99:                                               ; preds = %95
  %.pr = load i32, ptr %22, align 4, !tbaa !5
  %100 = icmp eq i32 %.pr, 0
  br i1 %100, label %101, label %.thread658

101:                                              ; preds = %99
  %102 = icmp eq i32 %86, 0
  br i1 %102, label %163, label %103

103:                                              ; preds = %101
  %104 = tail call i32 @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, i32 noundef 6, i32 noundef 1) #6
  %105 = add i32 %104, 1
  %106 = mul i32 %105, %86
  %.not673 = icmp eq i32 %58, 0
  br i1 %.not673, label %113, label %107

107:                                              ; preds = %103
  call void @strevc3_(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.3, ptr noundef nonnull %41, 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 %35, ptr noundef %19, ptr noundef nonnull @c_n1, ptr noundef nonnull %34) #6
  %108 = load float, ptr %19, align 4, !tbaa !9
  %109 = fptosi float %108 to i32
  store i32 %106, ptr %28, align 4, !tbaa !5
  %110 = load i32, ptr %4, align 4, !tbaa !5
  %111 = add nsw i32 %110, %109
  %112 = call i32 @llvm.smax.i32(i32 %106, i32 %111)
  call void @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 nonnull %19, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #6
  br label %.thread647

113:                                              ; preds = %103
  %.not619 = icmp eq i32 %59, 0
  br i1 %.not619, label %120, label %114

114:                                              ; preds = %113
  call void @strevc3_(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.3, ptr noundef nonnull %41, 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 %35, ptr noundef %19, ptr noundef nonnull @c_n1, ptr noundef nonnull %34) #6
  %115 = load float, ptr %19, align 4, !tbaa !9
  %116 = fptosi float %115 to i32
  store i32 %106, ptr %28, align 4, !tbaa !5
  %117 = load i32, ptr %4, align 4, !tbaa !5
  %118 = add nsw i32 %117, %116
  %119 = call i32 @llvm.smax.i32(i32 %106, i32 %118)
  call void @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 nonnull %19, ptr noundef nonnull @c_n1, ptr noundef nonnull %22) #6
  br label %.thread647

120:                                              ; preds = %113
  %.not620 = icmp eq i32 %60, 0
  br i1 %.not620, label %131, label %125

.thread647:                                       ; preds = %107, %114
  %.0.ph = phi i32 [ %119, %114 ], [ %112, %107 ]
  %121 = load float, ptr %19, align 4, !tbaa !9
  %122 = fptosi float %121 to i32
  %123 = load i32, ptr %4, align 4, !tbaa !5
  %124 = mul nsw i32 %123, 3
  br i1 %or.cond, label %145, label %141

125:                                              ; preds = %120
  tail call void @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
  %126 = load float, ptr %19, align 4, !tbaa !9
  %127 = fptosi float %126 to i32
  %128 = load i32, ptr %4, align 4, !tbaa !5
  %129 = shl i32 %128, 1
  %130 = tail call i32 @llvm.smax.i32(i32 %106, i32 %127)
  br label %160

131:                                              ; preds = %120
  tail call void @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
  %132 = load float, ptr %19, align 4, !tbaa !9
  %133 = fptosi float %132 to i32
  %134 = load i32, ptr %4, align 4, !tbaa !5
  %135 = shl i32 %134, 1
  %136 = add i32 %134, 6
  %137 = mul i32 %136, %134
  %138 = tail call i32 @llvm.smax.i32(i32 %135, i32 %137)
  %139 = tail call i32 @llvm.smax.i32(i32 %106, i32 %133)
  store i32 %139, ptr %28, align 4, !tbaa !5
  store i32 %137, ptr %29, align 4, !tbaa !5
  %140 = tail call i32 @llvm.smax.i32(i32 %139, i32 %137)
  br label %160

141:                                              ; preds = %.thread647
  %142 = add i32 %123, 6
  %143 = mul i32 %142, %123
  %144 = call i32 @llvm.smax.i32(i32 %124, i32 %143)
  br label %145

145:                                              ; preds = %141, %.thread647
  %.1595 = phi i32 [ %124, %.thread647 ], [ %144, %141 ]
  %146 = call i32 @llvm.smax.i32(i32 %.0.ph, i32 %122)
  store i32 %146, ptr %28, align 4, !tbaa !5
  %147 = add nsw i32 %123, -1
  %148 = call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #6
  %149 = mul nsw i32 %148, %147
  %150 = add nsw i32 %149, %123
  %151 = load i32, ptr %28, align 4
  %152 = call i32 @llvm.smax.i32(i32 %151, i32 %150)
  %.pre = load i32, ptr %4, align 4, !tbaa !5
  br i1 %or.cond, label %157, label %153

153:                                              ; preds = %145
  %154 = add i32 %.pre, 6
  %155 = mul i32 %154, %.pre
  %156 = call i32 @llvm.smax.i32(i32 %152, i32 %155)
  br label %157

157:                                              ; preds = %153, %145
  %.1 = phi i32 [ %152, %145 ], [ %156, %153 ]
  store i32 %.1, ptr %28, align 4, !tbaa !5
  %158 = mul nsw i32 %.pre, 3
  store i32 %158, ptr %29, align 4, !tbaa !5
  %159 = call i32 @llvm.smax.i32(i32 %.1, i32 %158)
  br label %160

160:                                              ; preds = %125, %131, %157
  %161 = phi i32 [ %.pre, %157 ], [ %128, %125 ], [ %134, %131 ]
  %.2596 = phi i32 [ %.1595, %157 ], [ %129, %125 ], [ %138, %131 ]
  %.2 = phi i32 [ %159, %157 ], [ %130, %125 ], [ %140, %131 ]
  %162 = call i32 @llvm.smax.i32(i32 %.2, i32 %.2596)
  br label %163

163:                                              ; preds = %101, %160
  %164 = phi i32 [ %161, %160 ], [ 0, %101 ]
  %.3597 = phi i32 [ %.2596, %160 ], [ 1, %101 ]
  %.3 = phi i32 [ %162, %160 ], [ 1, %101 ]
  %165 = sitofp i32 %.3 to float
  store float %165, ptr %19, align 4, !tbaa !9
  %166 = load i32, ptr %20, align 4, !tbaa !5
  %167 = icmp sge i32 %166, %.3597
  %or.cond17 = select i1 %167, i1 true, i1 %57
  br i1 %or.cond17, label %.thread, label %.thread658.sink.split

.thread:                                          ; preds = %163
  %.pr655.pr = load i32, ptr %22, align 4, !tbaa !5
  %.not633 = icmp eq i32 %.pr655.pr, 0
  br i1 %.not633, label %171, label %.thread658

.thread658.sink.split:                            ; preds = %163, %95, %91, %88, %85, %79, %84, %77, %73, %69
  %.sink = phi i32 [ -1, %69 ], [ -2, %73 ], [ -3, %77 ], [ -4, %84 ], [ -4, %79 ], [ -5, %85 ], [ -7, %88 ], [ -11, %91 ], [ -13, %95 ], [ -21, %163 ]
  store i32 %.sink, ptr %22, align 4, !tbaa !5
  br label %.thread658

.thread658:                                       ; preds = %.thread658.sink.split, %99, %.thread
  %168 = phi i32 [ %.pr655.pr, %.thread ], [ %.pr, %99 ], [ %.sink, %.thread658.sink.split ]
  %169 = sub nsw i32 0, %168
  store i32 %169, ptr %28, align 4, !tbaa !5
  %170 = call i32 @xerbla_(ptr noundef nonnull @.str.11, ptr noundef nonnull %28, i32 noundef 6) #6
  br label %409

171:                                              ; preds = %.thread
  %172 = icmp eq i32 %164, 0
  %or.cond732 = select i1 %57, i1 true, i1 %172
  br i1 %or.cond732, label %409, label %173

173:                                              ; preds = %171
  %174 = call float @slamch_(ptr noundef nonnull @.str.5) #6
  %175 = call float @slamch_(ptr noundef nonnull @.str.4) #6
  store float %175, ptr %43, align 4, !tbaa !9
  %176 = fdiv float 1.000000e+00, %175
  store float %176, ptr %42, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %43, ptr noundef nonnull %42) #6
  %177 = load float, ptr %43, align 4, !tbaa !9
  %178 = fpext float %177 to double
  %179 = call double @sqrt(double noundef %178) #6
  %180 = fpext float %174 to double
  %181 = fdiv double %179, %180
  %182 = fptrunc double %181 to float
  store float %182, ptr %43, align 4, !tbaa !9
  %183 = fdiv float 1.000000e+00, %182
  store float %183, ptr %42, align 4, !tbaa !9
  store i32 0, ptr %37, align 4, !tbaa !5
  %184 = call float @slange_(ptr noundef nonnull @.str.12, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %46) #6
  store float %184, ptr %33, align 4, !tbaa !9
  %185 = fcmp ogt float %184, 0.000000e+00
  %186 = load float, ptr %43, align 4
  %187 = fcmp olt float %184, %186
  %or.cond675 = select i1 %185, i1 %187, i1 false
  br i1 %or.cond675, label %191, label %188

188:                                              ; preds = %173
  %189 = load float, ptr %42, align 4, !tbaa !9
  %190 = fcmp ogt float %184, %189
  br i1 %190, label %191, label %192

191:                                              ; preds = %173, %188
  %storemerge = phi float [ %189, %188 ], [ %186, %173 ]
  store float %storemerge, ptr %39, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %33, ptr noundef nonnull %39, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %34) #6
  br label %192

192:                                              ; preds = %188, %191
  %.not634665 = phi i1 [ false, %191 ], [ true, %188 ]
  call void @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 %34) #6
  %193 = call float @slange_(ptr noundef nonnull @.str.14, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %46) #6
  store float %193, ptr %16, align 4, !tbaa !9
  br i1 %.not634665, label %196, label %194

194:                                              ; preds = %192
  store float %193, ptr %46, align 4, !tbaa !9
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %33, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %46, ptr noundef nonnull @c__1, ptr noundef nonnull %34) #6
  %195 = load float, ptr %46, align 4, !tbaa !9
  store float %195, ptr %16, align 4, !tbaa !9
  br label %196

196:                                              ; preds = %194, %192
  %197 = load i32, ptr %4, align 4, !tbaa !5
  %198 = load i32, ptr %20, align 4, !tbaa !5
  %199 = sub i32 %198, %197
  store i32 %199, ptr %28, align 4, !tbaa !5
  %200 = sext i32 %197 to i64
  %201 = getelementptr float, ptr %55, i64 %200
  %202 = getelementptr i8, ptr %201, i64 4
  call void @sgehrd_(ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %19, ptr noundef nonnull %202, ptr noundef nonnull %28, ptr noundef nonnull %34) #6
  br i1 %72, label %203, label %208

203:                                              ; preds = %196
  store i8 76, ptr %32, align 1, !tbaa !11
  call void @slacpy_(ptr noundef nonnull @.str.8, 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 i32, ptr %20, align 4, !tbaa !5
  %205 = sub i32 %204, %197
  store i32 %205, ptr %28, align 4, !tbaa !5
  call void @sorghr_(ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %19, ptr noundef nonnull %202, ptr noundef nonnull %28, ptr noundef nonnull %34) #6
  %206 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %206, ptr %28, align 4, !tbaa !5
  call void @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
  %.not637 = icmp eq i32 %59, 0
  br i1 %.not637, label %215, label %207

207:                                              ; preds = %203
  store i8 66, ptr %32, align 1, !tbaa !11
  call void @slacpy_(ptr noundef nonnull @.str.15, 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 %215

208:                                              ; preds = %196
  %.not635 = icmp eq i32 %59, 0
  br i1 %.not635, label %213, label %209

209:                                              ; preds = %208
  store i8 82, ptr %32, align 1, !tbaa !11
  call void @slacpy_(ptr noundef nonnull @.str.8, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef nonnull %12) #6
  %210 = load i32, ptr %20, align 4, !tbaa !5
  %211 = sub i32 %210, %197
  store i32 %211, ptr %28, align 4, !tbaa !5
  call void @sorghr_(ptr noundef nonnull %4, ptr noundef %13, ptr noundef %14, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %19, ptr noundef nonnull %202, ptr noundef nonnull %28, ptr noundef nonnull %34) #6
  %212 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %212, ptr %28, align 4, !tbaa !5
  call void @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 %215

213:                                              ; preds = %208
  %.not636 = icmp eq i32 %60, 0
  %. = select i1 %.not636, i8 83, i8 69
  store i8 %., ptr %44, align 1, !tbaa !11
  %214 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %214, ptr %28, align 4, !tbaa !5
  call void @shseqr_(ptr noundef nonnull %44, 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 %215

215:                                              ; preds = %209, %213, %203, %207
  %216 = load i32, ptr %22, align 4, !tbaa !5
  %.not638 = icmp eq i32 %216, 0
  br i1 %.not638, label %217, label %.loopexit

217:                                              ; preds = %215
  %218 = or i32 %58, %59
  %or.cond19.not = icmp eq i32 %218, 0
  br i1 %or.cond19.not, label %221, label %219

219:                                              ; preds = %217
  %220 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %220, ptr %28, align 4, !tbaa !5
  call void @strevc3_(ptr noundef nonnull %32, ptr noundef nonnull @.str.3, ptr noundef nonnull %41, 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 %35, ptr noundef nonnull %19, ptr noundef nonnull %28, ptr noundef nonnull %34) #6
  br label %221

221:                                              ; preds = %217, %219
  %.not639 = icmp eq i32 %60, 0
  br i1 %.not639, label %222, label %223

222:                                              ; preds = %221
  call void @strsna_(ptr noundef %3, ptr noundef nonnull @.str.16, ptr noundef nonnull %41, 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 %35, ptr noundef nonnull %19, ptr noundef nonnull %4, ptr noundef %21, ptr noundef nonnull %37) #6
  br label %223

223:                                              ; preds = %222, %221
  br i1 %72, label %224, label %.loopexit676

224:                                              ; preds = %223
  call void @sgebak_(ptr noundef %0, ptr noundef nonnull @.str.8, 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 %34) #6
  %225 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %225, ptr %28, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %51, i64 4
  %.not640684 = icmp slt i32 %225, 1
  br i1 %.not640684, label %.loopexit676, label %.lr.ph687.preheader

.lr.ph687.preheader:                              ; preds = %224
  %226 = sext i32 %49 to i64
  %227 = add i64 %27, -4
  %228 = shl nsw i64 %50, 2
  %229 = add i64 %228, %26
  %230 = shl nsw i64 %226, 3
  %231 = add i64 %229, %230
  %232 = sub i64 %227, %231
  %233 = mul nsw i64 %226, -4
  %234 = add i64 %27, -4
  %235 = shl nsw i64 %226, 2
  %236 = add i64 %235, %26
  %237 = add i64 %236, %228
  %238 = sub i64 %234, %237
  br label %.lr.ph687

.lr.ph687:                                        ; preds = %.lr.ph687.preheader, %300
  %indvar = phi i64 [ 0, %.lr.ph687.preheader ], [ %indvar.next, %300 ]
  %indvars.iv709 = phi i64 [ 1, %.lr.ph687.preheader ], [ %indvars.iv.next710, %300 ]
  %239 = mul i64 %233, %indvar
  %240 = add i64 %232, %239
  %241 = add i64 %238, %239
  %242 = getelementptr inbounds float, ptr %48, i64 %indvars.iv709
  %243 = load float, ptr %242, align 4, !tbaa !9
  %244 = fcmp oeq float %243, 0.000000e+00
  br i1 %244, label %245, label %249

245:                                              ; preds = %.lr.ph687
  %246 = mul nsw i64 %indvars.iv709, %226
  %gep683 = getelementptr float, ptr %invariant.gep, i64 %246
  %247 = call float @snrm2_(ptr noundef nonnull %4, ptr noundef %gep683, ptr noundef nonnull @c__1) #6
  %248 = fdiv float 1.000000e+00, %247
  store float %248, ptr %45, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %4, ptr noundef nonnull %45, ptr noundef %gep683, ptr noundef nonnull @c__1) #6
  br label %300

249:                                              ; preds = %.lr.ph687
  %250 = fcmp ogt float %243, 0.000000e+00
  br i1 %250, label %251, label %300

251:                                              ; preds = %249
  %252 = mul nsw i64 %indvars.iv709, %226
  %gep = getelementptr float, ptr %invariant.gep, i64 %252
  %253 = call float @snrm2_(ptr noundef nonnull %4, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  store float %253, ptr %30, align 4, !tbaa !9
  %254 = add nuw nsw i64 %indvars.iv709, 1
  %255 = mul nsw i64 %254, %226
  %gep681 = getelementptr float, ptr %invariant.gep, i64 %255
  %256 = call float @snrm2_(ptr noundef nonnull %4, ptr noundef %gep681, ptr noundef nonnull @c__1) #6
  store float %256, ptr %31, align 4, !tbaa !9
  %257 = call float @slapy2_(ptr noundef nonnull %30, ptr noundef nonnull %31) #6
  %258 = fdiv float 1.000000e+00, %257
  store float %258, ptr %45, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %4, ptr noundef nonnull %45, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %4, ptr noundef nonnull %45, ptr noundef %gep681, ptr noundef nonnull @c__1) #6
  %259 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %259, ptr %29, align 4, !tbaa !5
  %.not644677 = icmp slt i32 %259, 1
  br i1 %.not644677, label %293, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %251
  %260 = add nuw i32 %259, 1
  %wide.trip.count = zext i32 %260 to i64
  %invariant.gep724 = getelementptr float, ptr %51, i64 %252
  %invariant.gep726 = getelementptr float, ptr %51, i64 %255
  %261 = zext nneg i32 %259 to i64
  %min.iters.check = icmp ult i32 %259, 8
  br i1 %min.iters.check, label %.lr.ph.preheader766, label %vector.memcheck

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

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %261, 2147483640
  %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
  %262 = getelementptr float, ptr %invariant.gep724, i64 %offset.idx
  %263 = getelementptr i8, ptr %262, i64 16
  %wide.load = load <4 x float>, ptr %262, align 4, !tbaa !9
  %wide.load737 = load <4 x float>, ptr %263, align 4, !tbaa !9
  %264 = getelementptr float, ptr %invariant.gep726, i64 %offset.idx
  %265 = getelementptr i8, ptr %264, i64 16
  %wide.load738 = load <4 x float>, ptr %264, align 4, !tbaa !9
  %wide.load739 = load <4 x float>, ptr %265, align 4, !tbaa !9
  %266 = fmul <4 x float> %wide.load738, %wide.load738
  %267 = fmul <4 x float> %wide.load739, %wide.load739
  %268 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load, <4 x float> %wide.load, <4 x float> %266)
  %269 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load737, <4 x float> %wide.load737, <4 x float> %267)
  %270 = getelementptr float, ptr %19, i64 %index
  %271 = getelementptr inbounds i8, ptr %270, i64 16
  store <4 x float> %268, ptr %270, align 4, !tbaa !9
  store <4 x float> %269, ptr %271, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %272 = icmp eq i64 %index.next, %n.vec
  br i1 %272, label %middle.block, label %vector.body, !llvm.loop !12

middle.block:                                     ; preds = %vector.body
  %273 = extractelement <4 x float> %wide.load739, i64 3
  %274 = extractelement <4 x float> %wide.load737, i64 3
  %cmp.n = icmp eq i64 %n.vec, %261
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.preheader766

.lr.ph.preheader766:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %275 = zext nneg i32 %259 to i64
  %276 = and i32 %259, 1
  %lcmp.mod.not = icmp eq i32 %276, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader766
  %gep725.prol = getelementptr float, ptr %invariant.gep724, i64 %indvars.iv.ph
  %277 = load float, ptr %gep725.prol, align 4, !tbaa !9
  %gep727.prol = getelementptr float, ptr %invariant.gep726, i64 %indvars.iv.ph
  %278 = load float, ptr %gep727.prol, align 4, !tbaa !9
  %279 = fmul float %278, %278
  %280 = call float @llvm.fmuladd.f32(float %277, float %277, float %279)
  %281 = getelementptr inbounds float, ptr %55, i64 %indvars.iv.ph
  store float %280, ptr %281, align 4, !tbaa !9
  %indvars.iv.next.prol = add nuw nsw i64 %indvars.iv.ph, 1
  br label %.lr.ph.prol.loopexit

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader766
  %.lcssa768.unr = phi float [ poison, %.lr.ph.preheader766 ], [ %277, %.lr.ph.prol ]
  %.lcssa767.unr = phi float [ poison, %.lr.ph.preheader766 ], [ %278, %.lr.ph.prol ]
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %.lr.ph.preheader766 ], [ %indvars.iv.next.prol, %.lr.ph.prol ]
  %282 = icmp eq i64 %indvars.iv.ph, %275
  br i1 %282, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next.1, %.lr.ph ], [ %indvars.iv.unr, %.lr.ph.prol.loopexit ]
  %gep725 = getelementptr float, ptr %invariant.gep724, i64 %indvars.iv
  %283 = load float, ptr %gep725, align 4, !tbaa !9
  %gep727 = getelementptr float, ptr %invariant.gep726, i64 %indvars.iv
  %284 = load float, ptr %gep727, align 4, !tbaa !9
  %285 = fmul float %284, %284
  %286 = call float @llvm.fmuladd.f32(float %283, float %283, float %285)
  %287 = getelementptr inbounds float, ptr %55, i64 %indvars.iv
  store float %286, ptr %287, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %gep725.1 = getelementptr float, ptr %invariant.gep724, i64 %indvars.iv.next
  %288 = load float, ptr %gep725.1, align 4, !tbaa !9
  %gep727.1 = getelementptr float, ptr %invariant.gep726, i64 %indvars.iv.next
  %289 = load float, ptr %gep727.1, align 4, !tbaa !9
  %290 = fmul float %289, %289
  %291 = call float @llvm.fmuladd.f32(float %288, float %288, float %290)
  %292 = getelementptr float, ptr %19, i64 %indvars.iv
  store float %291, ptr %292, align 4, !tbaa !9
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %exitcond.not.1 = icmp eq i64 %indvars.iv.next.1, %wide.trip.count
  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
  %.lcssa735 = phi float [ %274, %middle.block ], [ %.lcssa768.unr, %.lr.ph.prol.loopexit ], [ %288, %.lr.ph ]
  %.lcssa734 = phi float [ %273, %middle.block ], [ %.lcssa767.unr, %.lr.ph.prol.loopexit ], [ %289, %.lr.ph ]
  store float %.lcssa735, ptr %30, align 4, !tbaa !9
  store float %.lcssa734, ptr %31, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %._crit_edge, %251
  %294 = call i32 @isamax_(ptr noundef nonnull %4, ptr noundef nonnull %19, ptr noundef nonnull @c__1) #6
  %295 = sext i32 %294 to i64
  %296 = getelementptr float, ptr %51, i64 %252
  %297 = getelementptr float, ptr %296, i64 %295
  %298 = getelementptr float, ptr %51, i64 %255
  %299 = getelementptr float, ptr %298, i64 %295
  call void @slartg_(ptr noundef %297, ptr noundef %299, ptr noundef nonnull %38, ptr noundef nonnull %40, ptr noundef nonnull %36) #6
  call void @srot_(ptr noundef nonnull %4, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep681, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef nonnull %40) #6
  store float 0.000000e+00, ptr %299, align 4, !tbaa !9
  br label %300

300:                                              ; preds = %245, %293, %249
  %indvars.iv.next710 = add nuw nsw i64 %indvars.iv709, 1
  %301 = load i32, ptr %28, align 4, !tbaa !5
  %302 = sext i32 %301 to i64
  %.not640.not = icmp slt i64 %indvars.iv709, %302
  %indvar.next = add i64 %indvar, 1
  br i1 %.not640.not, label %.lr.ph687, label %.loopexit676, !llvm.loop !17

.loopexit676:                                     ; preds = %300, %224, %223
  br i1 %76, label %303, label %.loopexit

303:                                              ; preds = %.loopexit676
  call void @sgebak_(ptr noundef %0, ptr noundef nonnull @.str.9, 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 %34) #6
  %304 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %304, ptr %28, align 4, !tbaa !5
  %invariant.gep695 = getelementptr i8, ptr %54, i64 4
  %.not642701 = icmp slt i32 %304, 1
  br i1 %.not642701, label %.loopexit, label %.lr.ph704.preheader

.lr.ph704.preheader:                              ; preds = %303
  %305 = sext i32 %52 to i64
  %306 = add i64 %25, -4
  %307 = shl nsw i64 %53, 2
  %308 = add i64 %307, %24
  %309 = shl nsw i64 %305, 3
  %310 = add i64 %308, %309
  %311 = sub i64 %306, %310
  %312 = mul nsw i64 %305, -4
  %313 = add i64 %25, -4
  %314 = shl nsw i64 %305, 2
  %315 = add i64 %314, %24
  %316 = add i64 %315, %307
  %317 = sub i64 %313, %316
  br label %.lr.ph704

.lr.ph704:                                        ; preds = %.lr.ph704.preheader, %379
  %indvar741 = phi i64 [ 0, %.lr.ph704.preheader ], [ %indvar.next742, %379 ]
  %indvars.iv717 = phi i64 [ 1, %.lr.ph704.preheader ], [ %indvars.iv.next718, %379 ]
  %318 = mul i64 %312, %indvar741
  %319 = add i64 %311, %318
  %320 = add i64 %317, %318
  %321 = getelementptr inbounds float, ptr %48, i64 %indvars.iv717
  %322 = load float, ptr %321, align 4, !tbaa !9
  %323 = fcmp oeq float %322, 0.000000e+00
  br i1 %323, label %324, label %328

324:                                              ; preds = %.lr.ph704
  %325 = mul nsw i64 %indvars.iv717, %305
  %gep700 = getelementptr float, ptr %invariant.gep695, i64 %325
  %326 = call float @snrm2_(ptr noundef nonnull %4, ptr noundef %gep700, ptr noundef nonnull @c__1) #6
  %327 = fdiv float 1.000000e+00, %326
  store float %327, ptr %45, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %4, ptr noundef nonnull %45, ptr noundef %gep700, ptr noundef nonnull @c__1) #6
  br label %379

328:                                              ; preds = %.lr.ph704
  %329 = fcmp ogt float %322, 0.000000e+00
  br i1 %329, label %330, label %379

330:                                              ; preds = %328
  %331 = mul nsw i64 %indvars.iv717, %305
  %gep696 = getelementptr float, ptr %invariant.gep695, i64 %331
  %332 = call float @snrm2_(ptr noundef nonnull %4, ptr noundef %gep696, ptr noundef nonnull @c__1) #6
  store float %332, ptr %30, align 4, !tbaa !9
  %333 = add nuw nsw i64 %indvars.iv717, 1
  %334 = mul nsw i64 %333, %305
  %gep698 = getelementptr float, ptr %invariant.gep695, i64 %334
  %335 = call float @snrm2_(ptr noundef nonnull %4, ptr noundef %gep698, ptr noundef nonnull @c__1) #6
  store float %335, ptr %31, align 4, !tbaa !9
  %336 = call float @slapy2_(ptr noundef nonnull %30, ptr noundef nonnull %31) #6
  %337 = fdiv float 1.000000e+00, %336
  store float %337, ptr %45, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %4, ptr noundef nonnull %45, ptr noundef %gep696, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %4, ptr noundef nonnull %45, ptr noundef %gep698, ptr noundef nonnull @c__1) #6
  %338 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %338, ptr %29, align 4, !tbaa !5
  %.not643688 = icmp slt i32 %338, 1
  br i1 %.not643688, label %372, label %.lr.ph691.preheader

.lr.ph691.preheader:                              ; preds = %330
  %339 = add nuw i32 %338, 1
  %wide.trip.count715 = zext i32 %339 to i64
  %invariant.gep728 = getelementptr float, ptr %54, i64 %331
  %invariant.gep730 = getelementptr float, ptr %54, i64 %334
  %340 = zext nneg i32 %338 to i64
  %min.iters.check748 = icmp ult i32 %338, 8
  br i1 %min.iters.check748, label %.lr.ph691.preheader763, label %vector.memcheck740

vector.memcheck740:                               ; preds = %.lr.ph691.preheader
  %diff.check743 = icmp ult i64 %319, 32
  %diff.check744 = icmp ult i64 %320, 32
  %conflict.rdx745 = or i1 %diff.check743, %diff.check744
  br i1 %conflict.rdx745, label %.lr.ph691.preheader763, label %vector.ph749

vector.ph749:                                     ; preds = %vector.memcheck740
  %n.vec751 = and i64 %340, 2147483640
  %ind.end752 = or disjoint i64 %n.vec751, 1
  br label %vector.body754

vector.body754:                                   ; preds = %vector.body754, %vector.ph749
  %index755 = phi i64 [ 0, %vector.ph749 ], [ %index.next761, %vector.body754 ]
  %offset.idx756 = or disjoint i64 %index755, 1
  %341 = getelementptr float, ptr %invariant.gep728, i64 %offset.idx756
  %342 = getelementptr i8, ptr %341, i64 16
  %wide.load757 = load <4 x float>, ptr %341, align 4, !tbaa !9
  %wide.load758 = load <4 x float>, ptr %342, align 4, !tbaa !9
  %343 = getelementptr float, ptr %invariant.gep730, i64 %offset.idx756
  %344 = getelementptr i8, ptr %343, i64 16
  %wide.load759 = load <4 x float>, ptr %343, align 4, !tbaa !9
  %wide.load760 = load <4 x float>, ptr %344, align 4, !tbaa !9
  %345 = fmul <4 x float> %wide.load759, %wide.load759
  %346 = fmul <4 x float> %wide.load760, %wide.load760
  %347 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load757, <4 x float> %wide.load757, <4 x float> %345)
  %348 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load758, <4 x float> %wide.load758, <4 x float> %346)
  %349 = getelementptr float, ptr %19, i64 %index755
  %350 = getelementptr inbounds i8, ptr %349, i64 16
  store <4 x float> %347, ptr %349, align 4, !tbaa !9
  store <4 x float> %348, ptr %350, align 4, !tbaa !9
  %index.next761 = add nuw i64 %index755, 8
  %351 = icmp eq i64 %index.next761, %n.vec751
  br i1 %351, label %middle.block746, label %vector.body754, !llvm.loop !18

middle.block746:                                  ; preds = %vector.body754
  %352 = extractelement <4 x float> %wide.load760, i64 3
  %353 = extractelement <4 x float> %wide.load758, i64 3
  %cmp.n762 = icmp eq i64 %n.vec751, %340
  br i1 %cmp.n762, label %._crit_edge692, label %.lr.ph691.preheader763

.lr.ph691.preheader763:                           ; preds = %middle.block746, %vector.memcheck740, %.lr.ph691.preheader
  %indvars.iv712.ph = phi i64 [ 1, %vector.memcheck740 ], [ 1, %.lr.ph691.preheader ], [ %ind.end752, %middle.block746 ]
  %354 = zext nneg i32 %338 to i64
  %355 = and i32 %338, 1
  %lcmp.mod770.not = icmp eq i32 %355, 0
  br i1 %lcmp.mod770.not, label %.lr.ph691.prol.loopexit, label %.lr.ph691.prol

.lr.ph691.prol:                                   ; preds = %.lr.ph691.preheader763
  %gep729.prol = getelementptr float, ptr %invariant.gep728, i64 %indvars.iv712.ph
  %356 = load float, ptr %gep729.prol, align 4, !tbaa !9
  %gep731.prol = getelementptr float, ptr %invariant.gep730, i64 %indvars.iv712.ph
  %357 = load float, ptr %gep731.prol, align 4, !tbaa !9
  %358 = fmul float %357, %357
  %359 = call float @llvm.fmuladd.f32(float %356, float %356, float %358)
  %360 = getelementptr inbounds float, ptr %55, i64 %indvars.iv712.ph
  store float %359, ptr %360, align 4, !tbaa !9
  %indvars.iv.next713.prol = add nuw nsw i64 %indvars.iv712.ph, 1
  br label %.lr.ph691.prol.loopexit

.lr.ph691.prol.loopexit:                          ; preds = %.lr.ph691.prol, %.lr.ph691.preheader763
  %.lcssa765.unr = phi float [ poison, %.lr.ph691.preheader763 ], [ %356, %.lr.ph691.prol ]
  %.lcssa764.unr = phi float [ poison, %.lr.ph691.preheader763 ], [ %357, %.lr.ph691.prol ]
  %indvars.iv712.unr = phi i64 [ %indvars.iv712.ph, %.lr.ph691.preheader763 ], [ %indvars.iv.next713.prol, %.lr.ph691.prol ]
  %361 = icmp eq i64 %indvars.iv712.ph, %354
  br i1 %361, label %._crit_edge692, label %.lr.ph691

.lr.ph691:                                        ; preds = %.lr.ph691.prol.loopexit, %.lr.ph691
  %indvars.iv712 = phi i64 [ %indvars.iv.next713.1, %.lr.ph691 ], [ %indvars.iv712.unr, %.lr.ph691.prol.loopexit ]
  %gep729 = getelementptr float, ptr %invariant.gep728, i64 %indvars.iv712
  %362 = load float, ptr %gep729, align 4, !tbaa !9
  %gep731 = getelementptr float, ptr %invariant.gep730, i64 %indvars.iv712
  %363 = load float, ptr %gep731, align 4, !tbaa !9
  %364 = fmul float %363, %363
  %365 = call float @llvm.fmuladd.f32(float %362, float %362, float %364)
  %366 = getelementptr inbounds float, ptr %55, i64 %indvars.iv712
  store float %365, ptr %366, align 4, !tbaa !9
  %indvars.iv.next713 = add nuw nsw i64 %indvars.iv712, 1
  %gep729.1 = getelementptr float, ptr %invariant.gep728, i64 %indvars.iv.next713
  %367 = load float, ptr %gep729.1, align 4, !tbaa !9
  %gep731.1 = getelementptr float, ptr %invariant.gep730, i64 %indvars.iv.next713
  %368 = load float, ptr %gep731.1, align 4, !tbaa !9
  %369 = fmul float %368, %368
  %370 = call float @llvm.fmuladd.f32(float %367, float %367, float %369)
  %371 = getelementptr float, ptr %19, i64 %indvars.iv712
  store float %370, ptr %371, align 4, !tbaa !9
  %indvars.iv.next713.1 = add nuw nsw i64 %indvars.iv712, 2
  %exitcond716.not.1 = icmp eq i64 %indvars.iv.next713.1, %wide.trip.count715
  br i1 %exitcond716.not.1, label %._crit_edge692, label %.lr.ph691, !llvm.loop !19

._crit_edge692:                                   ; preds = %.lr.ph691.prol.loopexit, %.lr.ph691, %middle.block746
  %.lcssa733 = phi float [ %353, %middle.block746 ], [ %.lcssa765.unr, %.lr.ph691.prol.loopexit ], [ %367, %.lr.ph691 ]
  %.lcssa = phi float [ %352, %middle.block746 ], [ %.lcssa764.unr, %.lr.ph691.prol.loopexit ], [ %368, %.lr.ph691 ]
  store float %.lcssa733, ptr %30, align 4, !tbaa !9
  store float %.lcssa, ptr %31, align 4, !tbaa !9
  br label %372

372:                                              ; preds = %._crit_edge692, %330
  %373 = call i32 @isamax_(ptr noundef nonnull %4, ptr noundef nonnull %19, ptr noundef nonnull @c__1) #6
  %374 = sext i32 %373 to i64
  %375 = getelementptr float, ptr %54, i64 %331
  %376 = getelementptr float, ptr %375, i64 %374
  %377 = getelementptr float, ptr %54, i64 %334
  %378 = getelementptr float, ptr %377, i64 %374
  call void @slartg_(ptr noundef %376, ptr noundef %378, ptr noundef nonnull %38, ptr noundef nonnull %40, ptr noundef nonnull %36) #6
  call void @srot_(ptr noundef nonnull %4, ptr noundef %gep696, ptr noundef nonnull @c__1, ptr noundef %gep698, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef nonnull %40) #6
  store float 0.000000e+00, ptr %378, align 4, !tbaa !9
  br label %379

379:                                              ; preds = %324, %372, %328
  %indvars.iv.next718 = add nuw nsw i64 %indvars.iv717, 1
  %380 = load i32, ptr %28, align 4, !tbaa !5
  %381 = sext i32 %380 to i64
  %.not642.not = icmp slt i64 %indvars.iv717, %381
  %indvar.next742 = add i64 %indvar741, 1
  br i1 %.not642.not, label %.lr.ph704, label %.loopexit, !llvm.loop !20

.loopexit:                                        ; preds = %379, %303, %.loopexit676, %215
  br i1 %.not634665, label %408, label %382

382:                                              ; preds = %.loopexit
  %383 = load i32, ptr %4, align 4, !tbaa !5
  %384 = load i32, ptr %22, align 4, !tbaa !5
  %385 = sub nsw i32 %383, %384
  store i32 %385, ptr %28, align 4, !tbaa !5
  %386 = call i32 @llvm.smax.i32(i32 %385, i32 1)
  store i32 %386, ptr %29, align 4, !tbaa !5
  %387 = sext i32 %384 to i64
  %388 = getelementptr float, ptr %47, i64 %387
  %389 = getelementptr i8, ptr %388, i64 4
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %33, ptr noundef nonnull %28, ptr noundef nonnull @c__1, ptr noundef %389, ptr noundef nonnull %29, ptr noundef nonnull %34) #6
  %390 = load i32, ptr %4, align 4, !tbaa !5
  %391 = load i32, ptr %22, align 4, !tbaa !5
  %392 = sub nsw i32 %390, %391
  store i32 %392, ptr %28, align 4, !tbaa !5
  %393 = call i32 @llvm.smax.i32(i32 %392, i32 1)
  store i32 %393, ptr %29, align 4, !tbaa !5
  %394 = sext i32 %391 to i64
  %395 = getelementptr float, ptr %48, i64 %394
  %396 = getelementptr i8, ptr %395, i64 4
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %33, ptr noundef nonnull %28, ptr noundef nonnull @c__1, ptr noundef %396, ptr noundef nonnull %29, ptr noundef nonnull %34) #6
  %397 = load i32, ptr %22, align 4, !tbaa !5
  %398 = icmp eq i32 %397, 0
  br i1 %398, label %399, label %403

399:                                              ; preds = %382
  %or.cond21 = select i1 %83, i1 true, i1 %82
  %400 = load i32, ptr %37, align 4
  %401 = icmp eq i32 %400, 0
  %or.cond23 = select i1 %or.cond21, i1 %401, i1 false
  br i1 %or.cond23, label %402, label %408

402:                                              ; preds = %399
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %33, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %18, ptr noundef nonnull %4, ptr noundef nonnull %34) #6
  br label %408

403:                                              ; preds = %382
  %404 = load i32, ptr %13, align 4, !tbaa !5
  %405 = add nsw i32 %404, -1
  store i32 %405, ptr %28, align 4, !tbaa !5
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %33, ptr noundef nonnull %28, ptr noundef nonnull @c__1, ptr noundef %7, ptr noundef nonnull %4, ptr noundef nonnull %34) #6
  %406 = load i32, ptr %13, align 4, !tbaa !5
  %407 = add nsw i32 %406, -1
  store i32 %407, ptr %28, align 4, !tbaa !5
  call void @slascl_(ptr noundef nonnull @.str.13, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %39, ptr noundef nonnull %33, ptr noundef nonnull %28, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef nonnull %4, ptr noundef nonnull %34) #6
  br label %408

408:                                              ; preds = %403, %399, %402, %.loopexit
  store float %165, ptr %19, align 4, !tbaa !9
  br label %409

409:                                              ; preds = %171, %408, %.thread658
  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 1, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 4, 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 4, 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 1, 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 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  ret void
}

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

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

declare void @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 i32 @llvm.smax.i32(i32, i32) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13, !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