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

; 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__2 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@c_n1 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__4 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b24 = external hidden global float, align 4
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b45 = external hidden global float, align 4

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

155:                                              ; preds = %23
  %156 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -1, ptr %156, align 4, !tbaa !9
  br label %289

157:                                              ; preds = %23
  %158 = load i32, ptr %78, align 4, !tbaa !9
  %159 = icmp ne i32 %158, 0
  br i1 %159, label %168, label %160

160:                                              ; preds = %157
  %161 = load i32, ptr %82, align 4, !tbaa !9
  %162 = icmp ne i32 %161, 0
  br i1 %162, label %168, label %163

163:                                              ; preds = %160
  %164 = load i32, ptr %79, align 4, !tbaa !9
  %165 = icmp ne i32 %164, 0
  br i1 %165, label %168, label %166

166:                                              ; preds = %163
  %167 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -2, ptr %167, align 4, !tbaa !9
  br label %288

168:                                              ; preds = %163, %160, %157
  %169 = load i32, ptr %73, align 4, !tbaa !9
  %170 = icmp ne i32 %169, 0
  br i1 %170, label %177, label %171

171:                                              ; preds = %168
  %172 = load ptr, ptr %26, align 8, !tbaa !5
  %173 = call i32 @lsame_(ptr noundef %172, ptr noundef @.str.5)
  %174 = icmp ne i32 %173, 0
  br i1 %174, label %177, label %175

175:                                              ; preds = %171
  %176 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -3, ptr %176, align 4, !tbaa !9
  br label %287

177:                                              ; preds = %171, %168
  %178 = load ptr, ptr %27, align 8, !tbaa !5
  %179 = load i32, ptr %178, align 4, !tbaa !9
  %180 = icmp slt i32 %179, 0
  br i1 %180, label %181, label %183

181:                                              ; preds = %177
  %182 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -4, ptr %182, align 4, !tbaa !9
  br label %286

183:                                              ; preds = %177
  %184 = load ptr, ptr %28, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = icmp slt i32 %185, 0
  br i1 %186, label %187, label %189

187:                                              ; preds = %183
  %188 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -5, ptr %188, align 4, !tbaa !9
  br label %285

189:                                              ; preds = %183
  %190 = load ptr, ptr %30, align 8, !tbaa !5
  %191 = load i32, ptr %190, align 4, !tbaa !9
  %192 = load ptr, ptr %28, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  %194 = add nsw i32 %193, 1
  %195 = icmp slt i32 %191, %194
  br i1 %195, label %196, label %198

196:                                              ; preds = %189
  %197 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -7, ptr %197, align 4, !tbaa !9
  br label %284

198:                                              ; preds = %189
  %199 = load i32, ptr %75, align 4, !tbaa !9
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %201, label %216

201:                                              ; preds = %198
  %202 = load ptr, ptr %32, align 8, !tbaa !5
  %203 = load i32, ptr %202, align 4, !tbaa !9
  %204 = load ptr, ptr %27, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  %206 = icmp sge i32 1, %205
  br i1 %206, label %207, label %208

207:                                              ; preds = %201
  br label %211

208:                                              ; preds = %201
  %209 = load ptr, ptr %27, align 8, !tbaa !5
  %210 = load i32, ptr %209, align 4, !tbaa !9
  br label %211

211:                                              ; preds = %208, %207
  %212 = phi i32 [ 1, %207 ], [ %210, %208 ]
  %213 = icmp slt i32 %203, %212
  br i1 %213, label %214, label %216

214:                                              ; preds = %211
  %215 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -9, ptr %215, align 4, !tbaa !9
  br label %283

216:                                              ; preds = %211, %198
  %217 = load i32, ptr %82, align 4, !tbaa !9
  %218 = icmp ne i32 %217, 0
  br i1 %218, label %219, label %232

219:                                              ; preds = %216
  %220 = load ptr, ptr %27, align 8, !tbaa !5
  %221 = load i32, ptr %220, align 4, !tbaa !9
  %222 = icmp sgt i32 %221, 0
  br i1 %222, label %223, label %231

223:                                              ; preds = %219
  %224 = load ptr, ptr %34, align 8, !tbaa !5
  %225 = load float, ptr %224, align 4, !tbaa !11
  %226 = load ptr, ptr %33, align 8, !tbaa !5
  %227 = load float, ptr %226, align 4, !tbaa !11
  %228 = fcmp ole float %225, %227
  br i1 %228, label %229, label %231

229:                                              ; preds = %223
  %230 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -11, ptr %230, align 4, !tbaa !9
  br label %231

231:                                              ; preds = %229, %223, %219
  br label %282

232:                                              ; preds = %216
  %233 = load i32, ptr %79, align 4, !tbaa !9
  %234 = icmp ne i32 %233, 0
  br i1 %234, label %235, label %281

235:                                              ; preds = %232
  %236 = load ptr, ptr %35, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = icmp slt i32 %237, 1
  br i1 %238, label %252, label %239

239:                                              ; preds = %235
  %240 = load ptr, ptr %35, align 8, !tbaa !5
  %241 = load i32, ptr %240, align 4, !tbaa !9
  %242 = load ptr, ptr %27, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = icmp sge i32 1, %243
  br i1 %244, label %245, label %246

245:                                              ; preds = %239
  br label %249

246:                                              ; preds = %239
  %247 = load ptr, ptr %27, align 8, !tbaa !5
  %248 = load i32, ptr %247, align 4, !tbaa !9
  br label %249

249:                                              ; preds = %246, %245
  %250 = phi i32 [ 1, %245 ], [ %248, %246 ]
  %251 = icmp sgt i32 %241, %250
  br i1 %251, label %252, label %254

252:                                              ; preds = %249, %235
  %253 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -12, ptr %253, align 4, !tbaa !9
  br label %280

254:                                              ; preds = %249
  %255 = load ptr, ptr %36, align 8, !tbaa !5
  %256 = load i32, ptr %255, align 4, !tbaa !9
  %257 = load ptr, ptr %27, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = load ptr, ptr %35, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp sle i32 %258, %260
  br i1 %261, label %262, label %265

262:                                              ; preds = %254
  %263 = load ptr, ptr %27, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  br label %268

265:                                              ; preds = %254
  %266 = load ptr, ptr %35, align 8, !tbaa !5
  %267 = load i32, ptr %266, align 4, !tbaa !9
  br label %268

268:                                              ; preds = %265, %262
  %269 = phi i32 [ %264, %262 ], [ %267, %265 ]
  %270 = icmp slt i32 %256, %269
  br i1 %270, label %277, label %271

271:                                              ; preds = %268
  %272 = load ptr, ptr %36, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = load ptr, ptr %27, align 8, !tbaa !5
  %275 = load i32, ptr %274, align 4, !tbaa !9
  %276 = icmp sgt i32 %273, %275
  br i1 %276, label %277, label %279

277:                                              ; preds = %271, %268
  %278 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -13, ptr %278, align 4, !tbaa !9
  br label %279

279:                                              ; preds = %277, %271
  br label %280

280:                                              ; preds = %279, %252
  br label %281

281:                                              ; preds = %280, %232
  br label %282

282:                                              ; preds = %281, %231
  br label %283

283:                                              ; preds = %282, %214
  br label %284

284:                                              ; preds = %283, %196
  br label %285

285:                                              ; preds = %284, %187
  br label %286

286:                                              ; preds = %285, %181
  br label %287

287:                                              ; preds = %286, %175
  br label %288

288:                                              ; preds = %287, %166
  br label %289

289:                                              ; preds = %288, %155
  %290 = load ptr, ptr %46, align 8, !tbaa !5
  %291 = load i32, ptr %290, align 4, !tbaa !9
  %292 = icmp eq i32 %291, 0
  br i1 %292, label %293, label %309

293:                                              ; preds = %289
  %294 = load ptr, ptr %41, align 8, !tbaa !5
  %295 = load i32, ptr %294, align 4, !tbaa !9
  %296 = icmp slt i32 %295, 1
  br i1 %296, label %306, label %297

297:                                              ; preds = %293
  %298 = load i32, ptr %75, align 4, !tbaa !9
  %299 = icmp ne i32 %298, 0
  br i1 %299, label %300, label %308

300:                                              ; preds = %297
  %301 = load ptr, ptr %41, align 8, !tbaa !5
  %302 = load i32, ptr %301, align 4, !tbaa !9
  %303 = load ptr, ptr %27, align 8, !tbaa !5
  %304 = load i32, ptr %303, align 4, !tbaa !9
  %305 = icmp slt i32 %302, %304
  br i1 %305, label %306, label %308

306:                                              ; preds = %300, %293
  %307 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -18, ptr %307, align 4, !tbaa !9
  br label %308

308:                                              ; preds = %306, %300, %297
  br label %309

309:                                              ; preds = %308, %289
  %310 = load ptr, ptr %46, align 8, !tbaa !5
  %311 = load i32, ptr %310, align 4, !tbaa !9
  %312 = icmp eq i32 %311, 0
  br i1 %312, label %313, label %357

313:                                              ; preds = %309
  %314 = load ptr, ptr %27, align 8, !tbaa !5
  %315 = load i32, ptr %314, align 4, !tbaa !9
  %316 = icmp sle i32 %315, 1
  br i1 %316, label %317, label %322

317:                                              ; preds = %313
  store i32 1, ptr %72, align 4, !tbaa !9
  %318 = load i32, ptr %72, align 4, !tbaa !9
  %319 = sitofp i32 %318 to float
  %320 = load ptr, ptr %42, align 8, !tbaa !5
  %321 = getelementptr inbounds float, ptr %320, i64 1
  store float %319, ptr %321, align 4, !tbaa !11
  br label %346

322:                                              ; preds = %313
  %323 = load ptr, ptr %24, align 8, !tbaa !5
  %324 = load ptr, ptr %27, align 8, !tbaa !5
  %325 = load ptr, ptr %28, align 8, !tbaa !5
  %326 = call i32 @ilaenv2stage_(ptr noundef @c__2, ptr noundef @.str.6, ptr noundef %323, ptr noundef %324, ptr noundef %325, ptr noundef @c_n1, ptr noundef @c_n1)
  store i32 %326, ptr %76, align 4, !tbaa !9
  %327 = load ptr, ptr %24, align 8, !tbaa !5
  %328 = load ptr, ptr %27, align 8, !tbaa !5
  %329 = load ptr, ptr %28, align 8, !tbaa !5
  %330 = call i32 @ilaenv2stage_(ptr noundef @c__3, ptr noundef @.str.6, ptr noundef %327, ptr noundef %328, ptr noundef %329, ptr noundef %76, ptr noundef @c_n1)
  store i32 %330, ptr %71, align 4, !tbaa !9
  %331 = load ptr, ptr %24, align 8, !tbaa !5
  %332 = load ptr, ptr %27, align 8, !tbaa !5
  %333 = load ptr, ptr %28, align 8, !tbaa !5
  %334 = call i32 @ilaenv2stage_(ptr noundef @c__4, ptr noundef @.str.6, ptr noundef %331, ptr noundef %332, ptr noundef %333, ptr noundef %76, ptr noundef @c_n1)
  store i32 %334, ptr %74, align 4, !tbaa !9
  %335 = load ptr, ptr %27, align 8, !tbaa !5
  %336 = load i32, ptr %335, align 4, !tbaa !9
  %337 = shl i32 %336, 1
  %338 = load i32, ptr %71, align 4, !tbaa !9
  %339 = add nsw i32 %337, %338
  %340 = load i32, ptr %74, align 4, !tbaa !9
  %341 = add nsw i32 %339, %340
  store i32 %341, ptr %72, align 4, !tbaa !9
  %342 = load i32, ptr %72, align 4, !tbaa !9
  %343 = sitofp i32 %342 to float
  %344 = load ptr, ptr %42, align 8, !tbaa !5
  %345 = getelementptr inbounds float, ptr %344, i64 1
  store float %343, ptr %345, align 4, !tbaa !11
  br label %346

346:                                              ; preds = %322, %317
  %347 = load ptr, ptr %43, align 8, !tbaa !5
  %348 = load i32, ptr %347, align 4, !tbaa !9
  %349 = load i32, ptr %72, align 4, !tbaa !9
  %350 = icmp slt i32 %348, %349
  br i1 %350, label %351, label %356

351:                                              ; preds = %346
  %352 = load i32, ptr %92, align 4, !tbaa !9
  %353 = icmp ne i32 %352, 0
  br i1 %353, label %356, label %354

354:                                              ; preds = %351
  %355 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 -20, ptr %355, align 4, !tbaa !9
  br label %356

356:                                              ; preds = %354, %351, %346
  br label %357

357:                                              ; preds = %356, %309
  %358 = load ptr, ptr %46, align 8, !tbaa !5
  %359 = load i32, ptr %358, align 4, !tbaa !9
  %360 = icmp ne i32 %359, 0
  br i1 %360, label %361, label %366

361:                                              ; preds = %357
  %362 = load ptr, ptr %46, align 8, !tbaa !5
  %363 = load i32, ptr %362, align 4, !tbaa !9
  %364 = sub nsw i32 0, %363
  store i32 %364, ptr %53, align 4, !tbaa !9
  %365 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %53, i32 noundef 13)
  store i32 1, ptr %98, align 4
  br label %1018

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

369:                                              ; preds = %366
  store i32 1, ptr %98, align 4
  br label %1018

370:                                              ; preds = %366
  br label %371

371:                                              ; preds = %370
  %372 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 0, ptr %372, align 4, !tbaa !9
  %373 = load ptr, ptr %27, align 8, !tbaa !5
  %374 = load i32, ptr %373, align 4, !tbaa !9
  %375 = icmp eq i32 %374, 0
  br i1 %375, label %376, label %377

376:                                              ; preds = %371
  store i32 1, ptr %98, align 4
  br label %1018

377:                                              ; preds = %371
  %378 = load ptr, ptr %27, align 8, !tbaa !5
  %379 = load i32, ptr %378, align 4, !tbaa !9
  %380 = icmp eq i32 %379, 1
  br i1 %380, label %381, label %436

381:                                              ; preds = %377
  %382 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 1, ptr %382, align 4, !tbaa !9
  %383 = load i32, ptr %73, align 4, !tbaa !9
  %384 = icmp ne i32 %383, 0
  br i1 %384, label %385, label %392

385:                                              ; preds = %381
  %386 = load ptr, ptr %29, align 8, !tbaa !5
  %387 = load i32, ptr %47, align 4, !tbaa !9
  %388 = add nsw i32 %387, 1
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds float, ptr %386, i64 %389
  %391 = load float, ptr %390, align 4, !tbaa !11
  store float %391, ptr %97, align 4, !tbaa !11
  br label %402

392:                                              ; preds = %381
  %393 = load ptr, ptr %29, align 8, !tbaa !5
  %394 = load ptr, ptr %28, align 8, !tbaa !5
  %395 = load i32, ptr %394, align 4, !tbaa !9
  %396 = add nsw i32 %395, 1
  %397 = load i32, ptr %47, align 4, !tbaa !9
  %398 = add nsw i32 %396, %397
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds float, ptr %393, i64 %399
  %401 = load float, ptr %400, align 4, !tbaa !11
  store float %401, ptr %97, align 4, !tbaa !11
  br label %402

402:                                              ; preds = %392, %385
  %403 = load i32, ptr %82, align 4, !tbaa !9
  %404 = icmp ne i32 %403, 0
  br i1 %404, label %405, label %418

405:                                              ; preds = %402
  %406 = load ptr, ptr %33, align 8, !tbaa !5
  %407 = load float, ptr %406, align 4, !tbaa !11
  %408 = load float, ptr %97, align 4, !tbaa !11
  %409 = fcmp olt float %407, %408
  br i1 %409, label %410, label %415

410:                                              ; preds = %405
  %411 = load ptr, ptr %34, align 8, !tbaa !5
  %412 = load float, ptr %411, align 4, !tbaa !11
  %413 = load float, ptr %97, align 4, !tbaa !11
  %414 = fcmp oge float %412, %413
  br i1 %414, label %417, label %415

415:                                              ; preds = %410, %405
  %416 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 0, ptr %416, align 4, !tbaa !9
  br label %417

417:                                              ; preds = %415, %410
  br label %418

418:                                              ; preds = %417, %402
  %419 = load ptr, ptr %38, align 8, !tbaa !5
  %420 = load i32, ptr %419, align 4, !tbaa !9
  %421 = icmp eq i32 %420, 1
  br i1 %421, label %422, label %435

422:                                              ; preds = %418
  %423 = load float, ptr %97, align 4, !tbaa !11
  %424 = load ptr, ptr %39, align 8, !tbaa !5
  %425 = getelementptr inbounds float, ptr %424, i64 1
  store float %423, ptr %425, align 4, !tbaa !11
  %426 = load i32, ptr %75, align 4, !tbaa !9
  %427 = icmp ne i32 %426, 0
  br i1 %427, label %428, label %434

428:                                              ; preds = %422
  %429 = load ptr, ptr %40, align 8, !tbaa !5
  %430 = load i32, ptr %51, align 4, !tbaa !9
  %431 = add nsw i32 %430, 1
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds float, ptr %429, i64 %432
  store float 1.000000e+00, ptr %433, align 4, !tbaa !11
  br label %434

434:                                              ; preds = %428, %422
  br label %435

435:                                              ; preds = %434, %418
  store i32 1, ptr %98, align 4
  br label %1018

436:                                              ; preds = %377
  %437 = call float @slamch_(ptr noundef @.str.8)
  store float %437, ptr %83, align 4, !tbaa !11
  %438 = call float @slamch_(ptr noundef @.str.9)
  store float %438, ptr %93, align 4, !tbaa !11
  %439 = load float, ptr %83, align 4, !tbaa !11
  %440 = load float, ptr %93, align 4, !tbaa !11
  %441 = fdiv float %439, %440
  store float %441, ptr %91, align 4, !tbaa !11
  %442 = load float, ptr %91, align 4, !tbaa !11
  %443 = fdiv float 1.000000e+00, %442
  store float %443, ptr %85, align 4, !tbaa !11
  %444 = load float, ptr %91, align 4, !tbaa !11
  %445 = fpext float %444 to double
  %446 = call double @sqrt(double noundef %445) #4
  %447 = fptrunc double %446 to float
  store float %447, ptr %61, align 4, !tbaa !11
  %448 = load float, ptr %85, align 4, !tbaa !11
  %449 = fpext float %448 to double
  %450 = call double @sqrt(double noundef %449) #4
  %451 = fptrunc double %450 to float
  store float %451, ptr %55, align 4, !tbaa !11
  %452 = load float, ptr %83, align 4, !tbaa !11
  %453 = fpext float %452 to double
  %454 = call double @sqrt(double noundef %453) #4
  %455 = call double @sqrt(double noundef %454) #4
  %456 = fdiv double 1.000000e+00, %455
  %457 = fptrunc double %456 to float
  store float %457, ptr %56, align 4, !tbaa !11
  %458 = load float, ptr %55, align 4, !tbaa !11
  %459 = load float, ptr %56, align 4, !tbaa !11
  %460 = fcmp ole float %458, %459
  br i1 %460, label %461, label %463

461:                                              ; preds = %436
  %462 = load float, ptr %55, align 4, !tbaa !11
  br label %465

463:                                              ; preds = %436
  %464 = load float, ptr %56, align 4, !tbaa !11
  br label %465

465:                                              ; preds = %463, %461
  %466 = phi float [ %462, %461 ], [ %464, %463 ]
  store float %466, ptr %62, align 4, !tbaa !11
  store i32 0, ptr %80, align 4, !tbaa !9
  %467 = load ptr, ptr %37, align 8, !tbaa !5
  %468 = load float, ptr %467, align 4, !tbaa !11
  store float %468, ptr %84, align 4, !tbaa !11
  %469 = load i32, ptr %82, align 4, !tbaa !9
  %470 = icmp ne i32 %469, 0
  br i1 %470, label %471, label %476

471:                                              ; preds = %465
  %472 = load ptr, ptr %33, align 8, !tbaa !5
  %473 = load float, ptr %472, align 4, !tbaa !11
  store float %473, ptr %94, align 4, !tbaa !11
  %474 = load ptr, ptr %34, align 8, !tbaa !5
  %475 = load float, ptr %474, align 4, !tbaa !11
  store float %475, ptr %95, align 4, !tbaa !11
  br label %477

476:                                              ; preds = %465
  store float 0.000000e+00, ptr %94, align 4, !tbaa !11
  store float 0.000000e+00, ptr %95, align 4, !tbaa !11
  br label %477

477:                                              ; preds = %476, %471
  %478 = load ptr, ptr %26, align 8, !tbaa !5
  %479 = load ptr, ptr %27, align 8, !tbaa !5
  %480 = load ptr, ptr %28, align 8, !tbaa !5
  %481 = load ptr, ptr %29, align 8, !tbaa !5
  %482 = load i32, ptr %48, align 4, !tbaa !9
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds float, ptr %481, i64 %483
  %485 = load ptr, ptr %30, align 8, !tbaa !5
  %486 = load ptr, ptr %42, align 8, !tbaa !5
  %487 = getelementptr inbounds float, ptr %486, i64 1
  %488 = call float @slansb_(ptr noundef @.str.10, ptr noundef %478, ptr noundef %479, ptr noundef %480, ptr noundef %484, ptr noundef %485, ptr noundef %487)
  store float %488, ptr %59, align 4, !tbaa !11
  %489 = load float, ptr %59, align 4, !tbaa !11
  %490 = fcmp ogt float %489, 0.000000e+00
  br i1 %490, label %491, label %499

491:                                              ; preds = %477
  %492 = load float, ptr %59, align 4, !tbaa !11
  %493 = load float, ptr %61, align 4, !tbaa !11
  %494 = fcmp olt float %492, %493
  br i1 %494, label %495, label %499

495:                                              ; preds = %491
  store i32 1, ptr %80, align 4, !tbaa !9
  %496 = load float, ptr %61, align 4, !tbaa !11
  %497 = load float, ptr %59, align 4, !tbaa !11
  %498 = fdiv float %496, %497
  store float %498, ptr %68, align 4, !tbaa !11
  br label %508

499:                                              ; preds = %491, %477
  %500 = load float, ptr %59, align 4, !tbaa !11
  %501 = load float, ptr %62, align 4, !tbaa !11
  %502 = fcmp ogt float %500, %501
  br i1 %502, label %503, label %507

503:                                              ; preds = %499
  store i32 1, ptr %80, align 4, !tbaa !9
  %504 = load float, ptr %62, align 4, !tbaa !11
  %505 = load float, ptr %59, align 4, !tbaa !11
  %506 = fdiv float %504, %505
  store float %506, ptr %68, align 4, !tbaa !11
  br label %507

507:                                              ; preds = %503, %499
  br label %508

508:                                              ; preds = %507, %495
  %509 = load i32, ptr %80, align 4, !tbaa !9
  %510 = icmp eq i32 %509, 1
  br i1 %510, label %511, label %558

511:                                              ; preds = %508
  %512 = load i32, ptr %73, align 4, !tbaa !9
  %513 = icmp ne i32 %512, 0
  br i1 %513, label %514, label %525

514:                                              ; preds = %511
  %515 = load ptr, ptr %28, align 8, !tbaa !5
  %516 = load ptr, ptr %28, align 8, !tbaa !5
  %517 = load ptr, ptr %27, align 8, !tbaa !5
  %518 = load ptr, ptr %27, align 8, !tbaa !5
  %519 = load ptr, ptr %29, align 8, !tbaa !5
  %520 = load i32, ptr %48, align 4, !tbaa !9
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds float, ptr %519, i64 %521
  %523 = load ptr, ptr %30, align 8, !tbaa !5
  %524 = load ptr, ptr %46, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.11, ptr noundef %515, ptr noundef %516, ptr noundef @c_b24, ptr noundef %68, ptr noundef %517, ptr noundef %518, ptr noundef %522, ptr noundef %523, ptr noundef %524)
  br label %536

525:                                              ; preds = %511
  %526 = load ptr, ptr %28, align 8, !tbaa !5
  %527 = load ptr, ptr %28, align 8, !tbaa !5
  %528 = load ptr, ptr %27, align 8, !tbaa !5
  %529 = load ptr, ptr %27, align 8, !tbaa !5
  %530 = load ptr, ptr %29, align 8, !tbaa !5
  %531 = load i32, ptr %48, align 4, !tbaa !9
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds float, ptr %530, i64 %532
  %534 = load ptr, ptr %30, align 8, !tbaa !5
  %535 = load ptr, ptr %46, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.12, ptr noundef %526, ptr noundef %527, ptr noundef @c_b24, ptr noundef %68, ptr noundef %528, ptr noundef %529, ptr noundef %533, ptr noundef %534, ptr noundef %535)
  br label %536

536:                                              ; preds = %525, %514
  %537 = load ptr, ptr %37, align 8, !tbaa !5
  %538 = load float, ptr %537, align 4, !tbaa !11
  %539 = fcmp ogt float %538, 0.000000e+00
  br i1 %539, label %540, label %545

540:                                              ; preds = %536
  %541 = load ptr, ptr %37, align 8, !tbaa !5
  %542 = load float, ptr %541, align 4, !tbaa !11
  %543 = load float, ptr %68, align 4, !tbaa !11
  %544 = fmul float %542, %543
  store float %544, ptr %84, align 4, !tbaa !11
  br label %545

545:                                              ; preds = %540, %536
  %546 = load i32, ptr %82, align 4, !tbaa !9
  %547 = icmp ne i32 %546, 0
  br i1 %547, label %548, label %557

548:                                              ; preds = %545
  %549 = load ptr, ptr %33, align 8, !tbaa !5
  %550 = load float, ptr %549, align 4, !tbaa !11
  %551 = load float, ptr %68, align 4, !tbaa !11
  %552 = fmul float %550, %551
  store float %552, ptr %94, align 4, !tbaa !11
  %553 = load ptr, ptr %34, align 8, !tbaa !5
  %554 = load float, ptr %553, align 4, !tbaa !11
  %555 = load float, ptr %68, align 4, !tbaa !11
  %556 = fmul float %554, %555
  store float %556, ptr %95, align 4, !tbaa !11
  br label %557

557:                                              ; preds = %548, %545
  br label %558

558:                                              ; preds = %557, %508
  store i32 1, ptr %57, align 4, !tbaa !9
  %559 = load i32, ptr %57, align 4, !tbaa !9
  %560 = load ptr, ptr %27, align 8, !tbaa !5
  %561 = load i32, ptr %560, align 4, !tbaa !9
  %562 = add nsw i32 %559, %561
  store i32 %562, ptr %58, align 4, !tbaa !9
  %563 = load i32, ptr %58, align 4, !tbaa !9
  %564 = load ptr, ptr %27, align 8, !tbaa !5
  %565 = load i32, ptr %564, align 4, !tbaa !9
  %566 = add nsw i32 %563, %565
  store i32 %566, ptr %96, align 4, !tbaa !9
  %567 = load i32, ptr %96, align 4, !tbaa !9
  %568 = load i32, ptr %71, align 4, !tbaa !9
  %569 = add nsw i32 %567, %568
  store i32 %569, ptr %88, align 4, !tbaa !9
  %570 = load ptr, ptr %43, align 8, !tbaa !5
  %571 = load i32, ptr %570, align 4, !tbaa !9
  %572 = load i32, ptr %88, align 4, !tbaa !9
  %573 = sub nsw i32 %571, %572
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr %90, align 4, !tbaa !9
  %575 = load ptr, ptr %24, align 8, !tbaa !5
  %576 = load ptr, ptr %26, align 8, !tbaa !5
  %577 = load ptr, ptr %27, align 8, !tbaa !5
  %578 = load ptr, ptr %28, align 8, !tbaa !5
  %579 = load ptr, ptr %29, align 8, !tbaa !5
  %580 = load i32, ptr %48, align 4, !tbaa !9
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds float, ptr %579, i64 %581
  %583 = load ptr, ptr %30, align 8, !tbaa !5
  %584 = load ptr, ptr %42, align 8, !tbaa !5
  %585 = load i32, ptr %57, align 4, !tbaa !9
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds float, ptr %584, i64 %586
  %588 = load ptr, ptr %42, align 8, !tbaa !5
  %589 = load i32, ptr %58, align 4, !tbaa !9
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds float, ptr %588, i64 %590
  %592 = load ptr, ptr %42, align 8, !tbaa !5
  %593 = load i32, ptr %96, align 4, !tbaa !9
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %592, i64 %594
  %596 = load ptr, ptr %42, align 8, !tbaa !5
  %597 = load i32, ptr %88, align 4, !tbaa !9
  %598 = sext i32 %597 to i64
  %599 = getelementptr inbounds float, ptr %596, i64 %598
  call void @ssytrd_sb2st_(ptr noundef @.str.4, ptr noundef %575, ptr noundef %576, ptr noundef %577, ptr noundef %578, ptr noundef %582, ptr noundef %583, ptr noundef %587, ptr noundef %591, ptr noundef %595, ptr noundef %71, ptr noundef %599, ptr noundef %90, ptr noundef %69)
  store i32 0, ptr %63, align 4, !tbaa !9
  %600 = load i32, ptr %79, align 4, !tbaa !9
  %601 = icmp ne i32 %600, 0
  br i1 %601, label %602, label %614

602:                                              ; preds = %558
  %603 = load ptr, ptr %35, align 8, !tbaa !5
  %604 = load i32, ptr %603, align 4, !tbaa !9
  %605 = icmp eq i32 %604, 1
  br i1 %605, label %606, label %613

606:                                              ; preds = %602
  %607 = load ptr, ptr %36, align 8, !tbaa !5
  %608 = load i32, ptr %607, align 4, !tbaa !9
  %609 = load ptr, ptr %27, align 8, !tbaa !5
  %610 = load i32, ptr %609, align 4, !tbaa !9
  %611 = icmp eq i32 %608, %610
  br i1 %611, label %612, label %613

612:                                              ; preds = %606
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %613

613:                                              ; preds = %612, %606, %602
  br label %614

614:                                              ; preds = %613, %558
  %615 = load i32, ptr %78, align 4, !tbaa !9
  %616 = icmp ne i32 %615, 0
  br i1 %616, label %620, label %617

617:                                              ; preds = %614
  %618 = load i32, ptr %63, align 4, !tbaa !9
  %619 = icmp ne i32 %618, 0
  br i1 %619, label %620, label %731

620:                                              ; preds = %617, %614
  %621 = load ptr, ptr %37, align 8, !tbaa !5
  %622 = load float, ptr %621, align 4, !tbaa !11
  %623 = fcmp ole float %622, 0.000000e+00
  br i1 %623, label %624, label %731

624:                                              ; preds = %620
  %625 = load ptr, ptr %27, align 8, !tbaa !5
  %626 = load ptr, ptr %42, align 8, !tbaa !5
  %627 = load i32, ptr %57, align 4, !tbaa !9
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds float, ptr %626, i64 %628
  %630 = load ptr, ptr %39, align 8, !tbaa !5
  %631 = getelementptr inbounds float, ptr %630, i64 1
  call void @scopy_(ptr noundef %625, ptr noundef %629, ptr noundef @c__1, ptr noundef %631, ptr noundef @c__1)
  %632 = load i32, ptr %88, align 4, !tbaa !9
  %633 = load ptr, ptr %27, align 8, !tbaa !5
  %634 = load i32, ptr %633, align 4, !tbaa !9
  %635 = shl i32 %634, 1
  %636 = add nsw i32 %632, %635
  store i32 %636, ptr %67, align 4, !tbaa !9
  %637 = load i32, ptr %75, align 4, !tbaa !9
  %638 = icmp ne i32 %637, 0
  br i1 %638, label %659, label %639

639:                                              ; preds = %624
  %640 = load ptr, ptr %27, align 8, !tbaa !5
  %641 = load i32, ptr %640, align 4, !tbaa !9
  %642 = sub nsw i32 %641, 1
  store i32 %642, ptr %53, align 4, !tbaa !9
  %643 = load ptr, ptr %42, align 8, !tbaa !5
  %644 = load i32, ptr %58, align 4, !tbaa !9
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds float, ptr %643, i64 %645
  %647 = load ptr, ptr %42, align 8, !tbaa !5
  %648 = load i32, ptr %67, align 4, !tbaa !9
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds float, ptr %647, i64 %649
  call void @scopy_(ptr noundef %53, ptr noundef %646, ptr noundef @c__1, ptr noundef %650, ptr noundef @c__1)
  %651 = load ptr, ptr %27, align 8, !tbaa !5
  %652 = load ptr, ptr %39, align 8, !tbaa !5
  %653 = getelementptr inbounds float, ptr %652, i64 1
  %654 = load ptr, ptr %42, align 8, !tbaa !5
  %655 = load i32, ptr %67, align 4, !tbaa !9
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds float, ptr %654, i64 %656
  %658 = load ptr, ptr %46, align 8, !tbaa !5
  call void @ssterf_(ptr noundef %651, ptr noundef %653, ptr noundef %657, ptr noundef %658)
  br label %721

659:                                              ; preds = %624
  %660 = load ptr, ptr %27, align 8, !tbaa !5
  %661 = load ptr, ptr %27, align 8, !tbaa !5
  %662 = load ptr, ptr %31, align 8, !tbaa !5
  %663 = load i32, ptr %50, align 4, !tbaa !9
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds float, ptr %662, i64 %664
  %666 = load ptr, ptr %32, align 8, !tbaa !5
  %667 = load ptr, ptr %40, align 8, !tbaa !5
  %668 = load i32, ptr %52, align 4, !tbaa !9
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds float, ptr %667, i64 %669
  %671 = load ptr, ptr %41, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.1, ptr noundef %660, ptr noundef %661, ptr noundef %665, ptr noundef %666, ptr noundef %670, ptr noundef %671)
  %672 = load ptr, ptr %27, align 8, !tbaa !5
  %673 = load i32, ptr %672, align 4, !tbaa !9
  %674 = sub nsw i32 %673, 1
  store i32 %674, ptr %53, align 4, !tbaa !9
  %675 = load ptr, ptr %42, align 8, !tbaa !5
  %676 = load i32, ptr %58, align 4, !tbaa !9
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds float, ptr %675, i64 %677
  %679 = load ptr, ptr %42, align 8, !tbaa !5
  %680 = load i32, ptr %67, align 4, !tbaa !9
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds float, ptr %679, i64 %681
  call void @scopy_(ptr noundef %53, ptr noundef %678, ptr noundef @c__1, ptr noundef %682, ptr noundef @c__1)
  %683 = load ptr, ptr %24, align 8, !tbaa !5
  %684 = load ptr, ptr %27, align 8, !tbaa !5
  %685 = load ptr, ptr %39, align 8, !tbaa !5
  %686 = getelementptr inbounds float, ptr %685, i64 1
  %687 = load ptr, ptr %42, align 8, !tbaa !5
  %688 = load i32, ptr %67, align 4, !tbaa !9
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds float, ptr %687, i64 %689
  %691 = load ptr, ptr %40, align 8, !tbaa !5
  %692 = load i32, ptr %52, align 4, !tbaa !9
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds float, ptr %691, i64 %693
  %695 = load ptr, ptr %41, align 8, !tbaa !5
  %696 = load ptr, ptr %42, align 8, !tbaa !5
  %697 = load i32, ptr %88, align 4, !tbaa !9
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds float, ptr %696, i64 %698
  %700 = load ptr, ptr %46, align 8, !tbaa !5
  call void @ssteqr_(ptr noundef %683, ptr noundef %684, ptr noundef %686, ptr noundef %690, ptr noundef %694, ptr noundef %695, ptr noundef %699, ptr noundef %700)
  %701 = load ptr, ptr %46, align 8, !tbaa !5
  %702 = load i32, ptr %701, align 4, !tbaa !9
  %703 = icmp eq i32 %702, 0
  br i1 %703, label %704, label %720

704:                                              ; preds = %659
  %705 = load ptr, ptr %27, align 8, !tbaa !5
  %706 = load i32, ptr %705, align 4, !tbaa !9
  store i32 %706, ptr %53, align 4, !tbaa !9
  store i32 1, ptr %65, align 4, !tbaa !9
  br label %707

707:                                              ; preds = %716, %704
  %708 = load i32, ptr %65, align 4, !tbaa !9
  %709 = load i32, ptr %53, align 4, !tbaa !9
  %710 = icmp sle i32 %708, %709
  br i1 %710, label %711, label %719

711:                                              ; preds = %707
  %712 = load ptr, ptr %45, align 8, !tbaa !5
  %713 = load i32, ptr %65, align 4, !tbaa !9
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds i32, ptr %712, i64 %714
  store i32 0, ptr %715, align 4, !tbaa !9
  br label %716

716:                                              ; preds = %711
  %717 = load i32, ptr %65, align 4, !tbaa !9
  %718 = add nsw i32 %717, 1
  store i32 %718, ptr %65, align 4, !tbaa !9
  br label %707, !llvm.loop !13

719:                                              ; preds = %707
  br label %720

720:                                              ; preds = %719, %659
  br label %721

721:                                              ; preds = %720, %639
  %722 = load ptr, ptr %46, align 8, !tbaa !5
  %723 = load i32, ptr %722, align 4, !tbaa !9
  %724 = icmp eq i32 %723, 0
  br i1 %724, label %725, label %729

725:                                              ; preds = %721
  %726 = load ptr, ptr %27, align 8, !tbaa !5
  %727 = load i32, ptr %726, align 4, !tbaa !9
  %728 = load ptr, ptr %38, align 8, !tbaa !5
  store i32 %727, ptr %728, align 4, !tbaa !9
  br label %857

729:                                              ; preds = %721
  %730 = load ptr, ptr %46, align 8, !tbaa !5
  store i32 0, ptr %730, align 4, !tbaa !9
  br label %731

731:                                              ; preds = %729, %620, %617
  %732 = load i32, ptr %75, align 4, !tbaa !9
  %733 = icmp ne i32 %732, 0
  br i1 %733, label %734, label %736

734:                                              ; preds = %731
  %735 = getelementptr inbounds [1 x i8], ptr %70, i64 0, i64 0
  store i8 66, ptr %735, align 1, !tbaa !15
  br label %738

736:                                              ; preds = %731
  %737 = getelementptr inbounds [1 x i8], ptr %70, i64 0, i64 0
  store i8 69, ptr %737, align 1, !tbaa !15
  br label %738

738:                                              ; preds = %736, %734
  store i32 1, ptr %81, align 4, !tbaa !9
  %739 = load i32, ptr %81, align 4, !tbaa !9
  %740 = load ptr, ptr %27, align 8, !tbaa !5
  %741 = load i32, ptr %740, align 4, !tbaa !9
  %742 = add nsw i32 %739, %741
  store i32 %742, ptr %86, align 4, !tbaa !9
  %743 = load i32, ptr %86, align 4, !tbaa !9
  %744 = load ptr, ptr %27, align 8, !tbaa !5
  %745 = load i32, ptr %744, align 4, !tbaa !9
  %746 = add nsw i32 %743, %745
  store i32 %746, ptr %87, align 4, !tbaa !9
  %747 = load ptr, ptr %25, align 8, !tbaa !5
  %748 = getelementptr inbounds [1 x i8], ptr %70, i64 0, i64 0
  %749 = load ptr, ptr %27, align 8, !tbaa !5
  %750 = load ptr, ptr %35, align 8, !tbaa !5
  %751 = load ptr, ptr %36, align 8, !tbaa !5
  %752 = load ptr, ptr %42, align 8, !tbaa !5
  %753 = load i32, ptr %57, align 4, !tbaa !9
  %754 = sext i32 %753 to i64
  %755 = getelementptr inbounds float, ptr %752, i64 %754
  %756 = load ptr, ptr %42, align 8, !tbaa !5
  %757 = load i32, ptr %58, align 4, !tbaa !9
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds float, ptr %756, i64 %758
  %760 = load ptr, ptr %38, align 8, !tbaa !5
  %761 = load ptr, ptr %39, align 8, !tbaa !5
  %762 = getelementptr inbounds float, ptr %761, i64 1
  %763 = load ptr, ptr %44, align 8, !tbaa !5
  %764 = load i32, ptr %81, align 4, !tbaa !9
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds i32, ptr %763, i64 %765
  %767 = load ptr, ptr %44, align 8, !tbaa !5
  %768 = load i32, ptr %86, align 4, !tbaa !9
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds i32, ptr %767, i64 %769
  %771 = load ptr, ptr %42, align 8, !tbaa !5
  %772 = load i32, ptr %88, align 4, !tbaa !9
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds float, ptr %771, i64 %773
  %775 = load ptr, ptr %44, align 8, !tbaa !5
  %776 = load i32, ptr %87, align 4, !tbaa !9
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds i32, ptr %775, i64 %777
  %779 = load ptr, ptr %46, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %747, ptr noundef %748, ptr noundef %749, ptr noundef %94, ptr noundef %95, ptr noundef %750, ptr noundef %751, ptr noundef %84, ptr noundef %755, ptr noundef %759, ptr noundef %760, ptr noundef %89, ptr noundef %762, ptr noundef %766, ptr noundef %770, ptr noundef %774, ptr noundef %778, ptr noundef %779)
  %780 = load i32, ptr %75, align 4, !tbaa !9
  %781 = icmp ne i32 %780, 0
  br i1 %781, label %782, label %856

782:                                              ; preds = %738
  %783 = load ptr, ptr %27, align 8, !tbaa !5
  %784 = load ptr, ptr %42, align 8, !tbaa !5
  %785 = load i32, ptr %57, align 4, !tbaa !9
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds float, ptr %784, i64 %786
  %788 = load ptr, ptr %42, align 8, !tbaa !5
  %789 = load i32, ptr %58, align 4, !tbaa !9
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds float, ptr %788, i64 %790
  %792 = load ptr, ptr %38, align 8, !tbaa !5
  %793 = load ptr, ptr %39, align 8, !tbaa !5
  %794 = getelementptr inbounds float, ptr %793, i64 1
  %795 = load ptr, ptr %44, align 8, !tbaa !5
  %796 = load i32, ptr %81, align 4, !tbaa !9
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds i32, ptr %795, i64 %797
  %799 = load ptr, ptr %44, align 8, !tbaa !5
  %800 = load i32, ptr %86, align 4, !tbaa !9
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds i32, ptr %799, i64 %801
  %803 = load ptr, ptr %40, align 8, !tbaa !5
  %804 = load i32, ptr %52, align 4, !tbaa !9
  %805 = sext i32 %804 to i64
  %806 = getelementptr inbounds float, ptr %803, i64 %805
  %807 = load ptr, ptr %41, align 8, !tbaa !5
  %808 = load ptr, ptr %42, align 8, !tbaa !5
  %809 = load i32, ptr %88, align 4, !tbaa !9
  %810 = sext i32 %809 to i64
  %811 = getelementptr inbounds float, ptr %808, i64 %810
  %812 = load ptr, ptr %44, align 8, !tbaa !5
  %813 = load i32, ptr %87, align 4, !tbaa !9
  %814 = sext i32 %813 to i64
  %815 = getelementptr inbounds i32, ptr %812, i64 %814
  %816 = load ptr, ptr %45, align 8, !tbaa !5
  %817 = getelementptr inbounds i32, ptr %816, i64 1
  %818 = load ptr, ptr %46, align 8, !tbaa !5
  call void @sstein_(ptr noundef %783, ptr noundef %787, ptr noundef %791, ptr noundef %792, ptr noundef %794, ptr noundef %798, ptr noundef %802, ptr noundef %806, ptr noundef %807, ptr noundef %811, ptr noundef %815, ptr noundef %817, ptr noundef %818)
  %819 = load ptr, ptr %38, align 8, !tbaa !5
  %820 = load i32, ptr %819, align 4, !tbaa !9
  store i32 %820, ptr %53, align 4, !tbaa !9
  store i32 1, ptr %66, align 4, !tbaa !9
  br label %821

821:                                              ; preds = %852, %782
  %822 = load i32, ptr %66, align 4, !tbaa !9
  %823 = load i32, ptr %53, align 4, !tbaa !9
  %824 = icmp sle i32 %822, %823
  br i1 %824, label %825, label %855

825:                                              ; preds = %821
  %826 = load ptr, ptr %27, align 8, !tbaa !5
  %827 = load ptr, ptr %40, align 8, !tbaa !5
  %828 = load i32, ptr %66, align 4, !tbaa !9
  %829 = load i32, ptr %51, align 4, !tbaa !9
  %830 = mul nsw i32 %828, %829
  %831 = add nsw i32 %830, 1
  %832 = sext i32 %831 to i64
  %833 = getelementptr inbounds float, ptr %827, i64 %832
  %834 = load ptr, ptr %42, align 8, !tbaa !5
  %835 = getelementptr inbounds float, ptr %834, i64 1
  call void @scopy_(ptr noundef %826, ptr noundef %833, ptr noundef @c__1, ptr noundef %835, ptr noundef @c__1)
  %836 = load ptr, ptr %27, align 8, !tbaa !5
  %837 = load ptr, ptr %27, align 8, !tbaa !5
  %838 = load ptr, ptr %31, align 8, !tbaa !5
  %839 = load i32, ptr %50, align 4, !tbaa !9
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds float, ptr %838, i64 %840
  %842 = load ptr, ptr %32, align 8, !tbaa !5
  %843 = load ptr, ptr %42, align 8, !tbaa !5
  %844 = getelementptr inbounds float, ptr %843, i64 1
  %845 = load ptr, ptr %40, align 8, !tbaa !5
  %846 = load i32, ptr %66, align 4, !tbaa !9
  %847 = load i32, ptr %51, align 4, !tbaa !9
  %848 = mul nsw i32 %846, %847
  %849 = add nsw i32 %848, 1
  %850 = sext i32 %849 to i64
  %851 = getelementptr inbounds float, ptr %845, i64 %850
  call void @sgemv_(ptr noundef @.str.4, ptr noundef %836, ptr noundef %837, ptr noundef @c_b24, ptr noundef %841, ptr noundef %842, ptr noundef %844, ptr noundef @c__1, ptr noundef @c_b45, ptr noundef %851, ptr noundef @c__1)
  br label %852

852:                                              ; preds = %825
  %853 = load i32, ptr %66, align 4, !tbaa !9
  %854 = add nsw i32 %853, 1
  store i32 %854, ptr %66, align 4, !tbaa !9
  br label %821, !llvm.loop !16

855:                                              ; preds = %821
  br label %856

856:                                              ; preds = %855, %738
  br label %857

857:                                              ; preds = %856, %725
  %858 = load i32, ptr %80, align 4, !tbaa !9
  %859 = icmp eq i32 %858, 1
  br i1 %859, label %860, label %876

860:                                              ; preds = %857
  %861 = load ptr, ptr %46, align 8, !tbaa !5
  %862 = load i32, ptr %861, align 4, !tbaa !9
  %863 = icmp eq i32 %862, 0
  br i1 %863, label %864, label %867

864:                                              ; preds = %860
  %865 = load ptr, ptr %38, align 8, !tbaa !5
  %866 = load i32, ptr %865, align 4, !tbaa !9
  store i32 %866, ptr %60, align 4, !tbaa !9
  br label %871

867:                                              ; preds = %860
  %868 = load ptr, ptr %46, align 8, !tbaa !5
  %869 = load i32, ptr %868, align 4, !tbaa !9
  %870 = sub nsw i32 %869, 1
  store i32 %870, ptr %60, align 4, !tbaa !9
  br label %871

871:                                              ; preds = %867, %864
  %872 = load float, ptr %68, align 4, !tbaa !11
  %873 = fdiv float 1.000000e+00, %872
  store float %873, ptr %55, align 4, !tbaa !11
  %874 = load ptr, ptr %39, align 8, !tbaa !5
  %875 = getelementptr inbounds float, ptr %874, i64 1
  call void @sscal_(ptr noundef %60, ptr noundef %55, ptr noundef %875, ptr noundef @c__1)
  br label %876

876:                                              ; preds = %871, %857
  %877 = load i32, ptr %75, align 4, !tbaa !9
  %878 = icmp ne i32 %877, 0
  br i1 %878, label %879, label %1013

879:                                              ; preds = %876
  %880 = load ptr, ptr %38, align 8, !tbaa !5
  %881 = load i32, ptr %880, align 4, !tbaa !9
  %882 = sub nsw i32 %881, 1
  store i32 %882, ptr %53, align 4, !tbaa !9
  store i32 1, ptr %66, align 4, !tbaa !9
  br label %883

883:                                              ; preds = %1009, %879
  %884 = load i32, ptr %66, align 4, !tbaa !9
  %885 = load i32, ptr %53, align 4, !tbaa !9
  %886 = icmp sle i32 %884, %885
  br i1 %886, label %887, label %1012

887:                                              ; preds = %883
  store i32 0, ptr %65, align 4, !tbaa !9
  %888 = load ptr, ptr %39, align 8, !tbaa !5
  %889 = load i32, ptr %66, align 4, !tbaa !9
  %890 = sext i32 %889 to i64
  %891 = getelementptr inbounds float, ptr %888, i64 %890
  %892 = load float, ptr %891, align 4, !tbaa !11
  store float %892, ptr %97, align 4, !tbaa !11
  %893 = load ptr, ptr %38, align 8, !tbaa !5
  %894 = load i32, ptr %893, align 4, !tbaa !9
  store i32 %894, ptr %54, align 4, !tbaa !9
  %895 = load i32, ptr %66, align 4, !tbaa !9
  %896 = add nsw i32 %895, 1
  store i32 %896, ptr %77, align 4, !tbaa !9
  br label %897

897:                                              ; preds = %917, %887
  %898 = load i32, ptr %77, align 4, !tbaa !9
  %899 = load i32, ptr %54, align 4, !tbaa !9
  %900 = icmp sle i32 %898, %899
  br i1 %900, label %901, label %920

901:                                              ; preds = %897
  %902 = load ptr, ptr %39, align 8, !tbaa !5
  %903 = load i32, ptr %77, align 4, !tbaa !9
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds float, ptr %902, i64 %904
  %906 = load float, ptr %905, align 4, !tbaa !11
  %907 = load float, ptr %97, align 4, !tbaa !11
  %908 = fcmp olt float %906, %907
  br i1 %908, label %909, label %916

909:                                              ; preds = %901
  %910 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %910, ptr %65, align 4, !tbaa !9
  %911 = load ptr, ptr %39, align 8, !tbaa !5
  %912 = load i32, ptr %77, align 4, !tbaa !9
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds float, ptr %911, i64 %913
  %915 = load float, ptr %914, align 4, !tbaa !11
  store float %915, ptr %97, align 4, !tbaa !11
  br label %916

916:                                              ; preds = %909, %901
  br label %917

917:                                              ; preds = %916
  %918 = load i32, ptr %77, align 4, !tbaa !9
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr %77, align 4, !tbaa !9
  br label %897, !llvm.loop !17

920:                                              ; preds = %897
  %921 = load i32, ptr %65, align 4, !tbaa !9
  %922 = icmp ne i32 %921, 0
  br i1 %922, label %923, label %1008

923:                                              ; preds = %920
  %924 = load ptr, ptr %44, align 8, !tbaa !5
  %925 = load i32, ptr %81, align 4, !tbaa !9
  %926 = load i32, ptr %65, align 4, !tbaa !9
  %927 = add nsw i32 %925, %926
  %928 = sub nsw i32 %927, 1
  %929 = sext i32 %928 to i64
  %930 = getelementptr inbounds i32, ptr %924, i64 %929
  %931 = load i32, ptr %930, align 4, !tbaa !9
  store i32 %931, ptr %64, align 4, !tbaa !9
  %932 = load ptr, ptr %39, align 8, !tbaa !5
  %933 = load i32, ptr %66, align 4, !tbaa !9
  %934 = sext i32 %933 to i64
  %935 = getelementptr inbounds float, ptr %932, i64 %934
  %936 = load float, ptr %935, align 4, !tbaa !11
  %937 = load ptr, ptr %39, align 8, !tbaa !5
  %938 = load i32, ptr %65, align 4, !tbaa !9
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds float, ptr %937, i64 %939
  store float %936, ptr %940, align 4, !tbaa !11
  %941 = load ptr, ptr %44, align 8, !tbaa !5
  %942 = load i32, ptr %81, align 4, !tbaa !9
  %943 = load i32, ptr %66, align 4, !tbaa !9
  %944 = add nsw i32 %942, %943
  %945 = sub nsw i32 %944, 1
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds i32, ptr %941, i64 %946
  %948 = load i32, ptr %947, align 4, !tbaa !9
  %949 = load ptr, ptr %44, align 8, !tbaa !5
  %950 = load i32, ptr %81, align 4, !tbaa !9
  %951 = load i32, ptr %65, align 4, !tbaa !9
  %952 = add nsw i32 %950, %951
  %953 = sub nsw i32 %952, 1
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds i32, ptr %949, i64 %954
  store i32 %948, ptr %955, align 4, !tbaa !9
  %956 = load float, ptr %97, align 4, !tbaa !11
  %957 = load ptr, ptr %39, align 8, !tbaa !5
  %958 = load i32, ptr %66, align 4, !tbaa !9
  %959 = sext i32 %958 to i64
  %960 = getelementptr inbounds float, ptr %957, i64 %959
  store float %956, ptr %960, align 4, !tbaa !11
  %961 = load i32, ptr %64, align 4, !tbaa !9
  %962 = load ptr, ptr %44, align 8, !tbaa !5
  %963 = load i32, ptr %81, align 4, !tbaa !9
  %964 = load i32, ptr %66, align 4, !tbaa !9
  %965 = add nsw i32 %963, %964
  %966 = sub nsw i32 %965, 1
  %967 = sext i32 %966 to i64
  %968 = getelementptr inbounds i32, ptr %962, i64 %967
  store i32 %961, ptr %968, align 4, !tbaa !9
  %969 = load ptr, ptr %27, align 8, !tbaa !5
  %970 = load ptr, ptr %40, align 8, !tbaa !5
  %971 = load i32, ptr %65, align 4, !tbaa !9
  %972 = load i32, ptr %51, align 4, !tbaa !9
  %973 = mul nsw i32 %971, %972
  %974 = add nsw i32 %973, 1
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds float, ptr %970, i64 %975
  %977 = load ptr, ptr %40, align 8, !tbaa !5
  %978 = load i32, ptr %66, align 4, !tbaa !9
  %979 = load i32, ptr %51, align 4, !tbaa !9
  %980 = mul nsw i32 %978, %979
  %981 = add nsw i32 %980, 1
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds float, ptr %977, i64 %982
  call void @sswap_(ptr noundef %969, ptr noundef %976, ptr noundef @c__1, ptr noundef %983, ptr noundef @c__1)
  %984 = load ptr, ptr %46, align 8, !tbaa !5
  %985 = load i32, ptr %984, align 4, !tbaa !9
  %986 = icmp ne i32 %985, 0
  br i1 %986, label %987, label %1007

987:                                              ; preds = %923
  %988 = load ptr, ptr %45, align 8, !tbaa !5
  %989 = load i32, ptr %65, align 4, !tbaa !9
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds i32, ptr %988, i64 %990
  %992 = load i32, ptr %991, align 4, !tbaa !9
  store i32 %992, ptr %64, align 4, !tbaa !9
  %993 = load ptr, ptr %45, align 8, !tbaa !5
  %994 = load i32, ptr %66, align 4, !tbaa !9
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds i32, ptr %993, i64 %995
  %997 = load i32, ptr %996, align 4, !tbaa !9
  %998 = load ptr, ptr %45, align 8, !tbaa !5
  %999 = load i32, ptr %65, align 4, !tbaa !9
  %1000 = sext i32 %999 to i64
  %1001 = getelementptr inbounds i32, ptr %998, i64 %1000
  store i32 %997, ptr %1001, align 4, !tbaa !9
  %1002 = load i32, ptr %64, align 4, !tbaa !9
  %1003 = load ptr, ptr %45, align 8, !tbaa !5
  %1004 = load i32, ptr %66, align 4, !tbaa !9
  %1005 = sext i32 %1004 to i64
  %1006 = getelementptr inbounds i32, ptr %1003, i64 %1005
  store i32 %1002, ptr %1006, align 4, !tbaa !9
  br label %1007

1007:                                             ; preds = %987, %923
  br label %1008

1008:                                             ; preds = %1007, %920
  br label %1009

1009:                                             ; preds = %1008
  %1010 = load i32, ptr %66, align 4, !tbaa !9
  %1011 = add nsw i32 %1010, 1
  store i32 %1011, ptr %66, align 4, !tbaa !9
  br label %883, !llvm.loop !18

1012:                                             ; preds = %883
  br label %1013

1013:                                             ; preds = %1012, %876
  %1014 = load i32, ptr %72, align 4, !tbaa !9
  %1015 = sitofp i32 %1014 to float
  %1016 = load ptr, ptr %42, align 8, !tbaa !5
  %1017 = getelementptr inbounds float, ptr %1016, i64 1
  store float %1015, ptr %1017, align 4, !tbaa !11
  store i32 1, ptr %98, align 4
  br label %1018

1018:                                             ; preds = %1013, %435, %376, %369, %361
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  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 @ilaenv2stage_(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

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

declare float @slansb_(ptr noundef, 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 @ssytrd_sb2st_(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 @scopy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare void @sstebz_(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 @sstein_(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 @sgemv_(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 @sscal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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


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

@.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__2 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@c_n1 = external hidden global i32, align 4
@c__3 = external hidden global i32, align 4
@c__4 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b24 = external hidden global float, align 4
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b45 = external hidden global float, align 4

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

55:                                               ; preds = %23
  %56 = icmp ne i32 %48, 0
  %57 = icmp ne i32 %49, 0
  %or.cond = select i1 %56, i1 true, i1 %57
  %58 = icmp ne i32 %50, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %58
  br i1 %or.cond3, label %59, label %.thread441.sink.split

59:                                               ; preds = %55
  %.not402 = icmp eq i32 %51, 0
  br i1 %.not402, label %60, label %62

60:                                               ; preds = %59
  %61 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #6
  %.not403 = icmp eq i32 %61, 0
  br i1 %.not403, label %.thread441.sink.split, label %62

62:                                               ; preds = %60, %59
  %63 = load i32, ptr %3, align 4, !tbaa !5
  %64 = icmp slt i32 %63, 0
  br i1 %64, label %.thread441.sink.split, label %65

65:                                               ; preds = %62
  %66 = load i32, ptr %4, align 4, !tbaa !5
  %67 = icmp slt i32 %66, 0
  br i1 %67, label %.thread441.sink.split, label %68

68:                                               ; preds = %65
  %69 = load i32, ptr %6, align 4, !tbaa !5
  %.not404 = icmp sgt i32 %69, %66
  br i1 %.not404, label %70, label %.thread441.sink.split

70:                                               ; preds = %68
  %.not405 = icmp ne i32 %47, 0
  br i1 %.not405, label %71, label %74

71:                                               ; preds = %70
  %72 = load i32, ptr %8, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %63, i32 1)
  %73 = icmp slt i32 %72, %spec.select
  br i1 %73, label %.thread441.sink.split, label %74

74:                                               ; preds = %71, %70
  br i1 %57, label %75, label %80

75:                                               ; preds = %74
  %.not457 = icmp eq i32 %63, 0
  br i1 %.not457, label %89, label %76

76:                                               ; preds = %75
  %77 = load float, ptr %10, align 4, !tbaa !9
  %78 = load float, ptr %9, align 4, !tbaa !9
  %79 = fcmp ugt float %77, %78
  br i1 %79, label %89, label %.thread441.sink.split

80:                                               ; preds = %74
  br i1 %58, label %81, label %89

81:                                               ; preds = %80
  %82 = load i32, ptr %11, align 4, !tbaa !5
  %83 = icmp slt i32 %82, 1
  %spec.select429 = tail call i32 @llvm.umax.i32(i32 %63, i32 1)
  %84 = icmp ugt i32 %82, %spec.select429
  %or.cond459 = or i1 %83, %84
  br i1 %or.cond459, label %.thread441.sink.split, label %85

85:                                               ; preds = %81
  %86 = load i32, ptr %12, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %63, i32 %82)
  %87 = icmp slt i32 %86, %.
  %88 = icmp ugt i32 %86, %63
  %or.cond456 = or i1 %87, %88
  br i1 %or.cond456, label %.thread441.sink.split, label %89

89:                                               ; preds = %85, %76, %75, %80
  %.pr = load i32, ptr %22, align 4, !tbaa !5
  %90 = icmp eq i32 %.pr, 0
  br i1 %90, label %91, label %.thread441

91:                                               ; preds = %89
  %92 = load i32, ptr %17, align 4, !tbaa !5
  %93 = icmp slt i32 %92, 1
  %94 = icmp ult i32 %92, %63
  %or.cond495 = and i1 %.not405, %94
  %or.cond497 = or i1 %93, %or.cond495
  br i1 %or.cond497, label %.thread441.sink.split, label %.thread

.thread:                                          ; preds = %91
  %95 = icmp ult i32 %63, 2
  br i1 %95, label %106, label %96

96:                                               ; preds = %.thread
  %97 = tail call i32 @ilaenv2stage_(ptr noundef nonnull @c__2, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1) #6
  store i32 %97, ptr %31, align 4, !tbaa !5
  %98 = call i32 @ilaenv2stage_(ptr noundef nonnull @c__3, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %31, ptr noundef nonnull @c_n1) #6
  store i32 %98, ptr %30, align 4, !tbaa !5
  %99 = call i32 @ilaenv2stage_(ptr noundef nonnull @c__4, ptr noundef nonnull @.str.6, ptr noundef %0, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %31, ptr noundef nonnull @c_n1) #6
  %100 = load i32, ptr %3, align 4, !tbaa !5
  %101 = shl i32 %100, 1
  %102 = load i32, ptr %30, align 4, !tbaa !5
  %103 = add i32 %102, %99
  %104 = add i32 %103, %101
  %105 = sitofp i32 %104 to float
  br label %106

106:                                              ; preds = %.thread, %96
  %storemerge = phi float [ %105, %96 ], [ 1.000000e+00, %.thread ]
  %.0383 = phi i32 [ %104, %96 ], [ 1, %.thread ]
  store float %storemerge, ptr %18, align 4, !tbaa !9
  %107 = load i32, ptr %19, align 4, !tbaa !5
  %108 = icmp sge i32 %107, %.0383
  %or.cond5 = select i1 %108, i1 true, i1 %53
  br i1 %or.cond5, label %.thread436, label %.thread441.sink.split

.thread436:                                       ; preds = %106
  %.pr438.pr = load i32, ptr %22, align 4, !tbaa !5
  %.not408 = icmp eq i32 %.pr438.pr, 0
  br i1 %.not408, label %112, label %.thread441

.thread441.sink.split:                            ; preds = %106, %91, %85, %81, %76, %71, %68, %65, %62, %60, %55, %23
  %.sink496 = phi i32 [ -1, %23 ], [ -2, %55 ], [ -3, %60 ], [ -4, %62 ], [ -5, %65 ], [ -7, %68 ], [ -9, %71 ], [ -11, %76 ], [ -12, %81 ], [ -13, %85 ], [ -18, %91 ], [ -20, %106 ]
  store i32 %.sink496, ptr %22, align 4, !tbaa !5
  br label %.thread441

.thread441:                                       ; preds = %.thread441.sink.split, %89, %.thread436
  %109 = phi i32 [ %.pr438.pr, %.thread436 ], [ %.pr, %89 ], [ %.sink496, %.thread441.sink.split ]
  %110 = sub nsw i32 0, %109
  store i32 %110, ptr %24, align 4, !tbaa !5
  %111 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %24, i32 noundef 13) #6
  br label %284

112:                                              ; preds = %.thread436
  br i1 %53, label %284, label %113

113:                                              ; preds = %112
  store i32 0, ptr %14, align 4, !tbaa !5
  %114 = load i32, ptr %3, align 4, !tbaa !5
  switch i32 %114, label %131 [
    i32 0, label %284
    i32 1, label %115
  ]

115:                                              ; preds = %113
  store i32 1, ptr %14, align 4, !tbaa !5
  br i1 %.not402, label %116, label %122

116:                                              ; preds = %115
  %117 = load i32, ptr %4, align 4, !tbaa !5
  %118 = add i32 %37, 1
  %119 = add i32 %118, %117
  %120 = sext i32 %119 to i64
  %121 = getelementptr inbounds float, ptr %39, i64 %120
  br label %122

122:                                              ; preds = %115, %116
  %.0.in = phi ptr [ %121, %116 ], [ %5, %115 ]
  %.0 = load float, ptr %.0.in, align 4, !tbaa !9
  %.not426 = icmp eq i32 %49, 0
  br i1 %.not426, label %129, label %123

123:                                              ; preds = %122
  %124 = load float, ptr %9, align 4, !tbaa !9
  %125 = fcmp olt float %124, %.0
  br i1 %125, label %126, label %.thread446

126:                                              ; preds = %123
  %127 = load float, ptr %10, align 4, !tbaa !9
  %128 = fcmp ult float %127, %.0
  br i1 %128, label %.thread446, label %129

.thread446:                                       ; preds = %123, %126
  store i32 0, ptr %14, align 4, !tbaa !5
  br label %284

129:                                              ; preds = %122, %126
  store float %.0, ptr %15, align 4, !tbaa !9
  br i1 %.not405, label %130, label %284

130:                                              ; preds = %129
  store float 1.000000e+00, ptr %16, align 4, !tbaa !9
  br label %284

131:                                              ; preds = %113
  %132 = call float @slamch_(ptr noundef nonnull @.str.8) #6
  %133 = call float @slamch_(ptr noundef nonnull @.str.9) #6
  %134 = fdiv float %132, %133
  %135 = fdiv float 1.000000e+00, %134
  %sqrtf = call float @sqrtf(float noundef %134) #3
  %sqrtf409 = call float @sqrtf(float noundef %135) #3
  store float %sqrtf409, ptr %25, align 4, !tbaa !9
  %136 = fpext float %132 to double
  %137 = call double @sqrt(double noundef %136) #6
  %138 = call double @sqrt(double noundef %137) #6
  %139 = fdiv double 1.000000e+00, %138
  %140 = fptrunc double %139 to float
  %141 = fcmp ole float %sqrtf409, %140
  %142 = select i1 %141, float %sqrtf409, float %140
  %143 = load float, ptr %13, align 4, !tbaa !9
  store float %143, ptr %32, align 4, !tbaa !9
  %.not410 = icmp eq i32 %49, 0
  br i1 %.not410, label %147, label %144

144:                                              ; preds = %131
  %145 = load float, ptr %9, align 4, !tbaa !9
  %146 = load float, ptr %10, align 4, !tbaa !9
  br label %147

147:                                              ; preds = %131, %144
  %.sink = phi float [ %145, %144 ], [ 0.000000e+00, %131 ]
  %storemerge411 = phi float [ %146, %144 ], [ 0.000000e+00, %131 ]
  store float %.sink, ptr %35, align 4
  store float %storemerge411, ptr %36, align 4, !tbaa !9
  %148 = call float @slansb_(ptr noundef nonnull @.str.10, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %18) #6
  %149 = fcmp ogt float %148, 0.000000e+00
  %150 = fcmp olt float %148, %sqrtf
  %or.cond430 = select i1 %149, i1 %150, i1 false
  br i1 %or.cond430, label %153, label %151

151:                                              ; preds = %147
  %152 = fcmp ogt float %148, %142
  br i1 %152, label %153, label %166

153:                                              ; preds = %151, %147
  %.pn = phi float [ %sqrtf, %147 ], [ %142, %151 ]
  %storemerge458 = fdiv float %.pn, %148
  store float %storemerge458, ptr %27, align 4, !tbaa !9
  %.str.12..str.11 = select i1 %.not402, ptr @.str.12, ptr @.str.11
  call void @slascl_(ptr noundef nonnull %.str.12..str.11, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef nonnull @c_b24, ptr noundef nonnull %27, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %22) #6
  %154 = load float, ptr %13, align 4, !tbaa !9
  %155 = fcmp ogt float %154, 0.000000e+00
  br i1 %155, label %156, label %159

156:                                              ; preds = %153
  %157 = load float, ptr %27, align 4, !tbaa !9
  %158 = fmul float %154, %157
  store float %158, ptr %32, align 4, !tbaa !9
  br label %159

159:                                              ; preds = %156, %153
  br i1 %.not410, label %166, label %160

160:                                              ; preds = %159
  %161 = load float, ptr %9, align 4, !tbaa !9
  %162 = load float, ptr %27, align 4, !tbaa !9
  %163 = fmul float %161, %162
  store float %163, ptr %35, align 4, !tbaa !9
  %164 = load float, ptr %10, align 4, !tbaa !9
  %165 = fmul float %162, %164
  store float %165, ptr %36, align 4, !tbaa !9
  br label %166

166:                                              ; preds = %151, %159, %160
  %167 = phi i1 [ true, %159 ], [ true, %160 ], [ false, %151 ]
  %168 = load i32, ptr %3, align 4, !tbaa !5
  %169 = add nsw i32 %168, 1
  %170 = add nsw i32 %169, %168
  %171 = load i32, ptr %30, align 4, !tbaa !5
  %172 = add nsw i32 %170, %171
  %173 = load i32, ptr %19, align 4, !tbaa !5
  %174 = add i32 %173, 1
  %175 = sub i32 %174, %172
  store i32 %175, ptr %34, align 4, !tbaa !5
  %176 = sext i32 %169 to i64
  %177 = getelementptr inbounds float, ptr %44, i64 %176
  %178 = sext i32 %170 to i64
  %179 = getelementptr inbounds float, ptr %44, i64 %178
  %180 = sext i32 %172 to i64
  %181 = getelementptr inbounds float, ptr %44, i64 %180
  call void @ssytrd_sb2st_(ptr noundef nonnull @.str.4, ptr noundef %0, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %18, ptr noundef nonnull %177, ptr noundef nonnull %179, ptr noundef nonnull %30, ptr noundef nonnull %181, ptr noundef nonnull %34, ptr noundef nonnull %28) #6
  %.not413 = icmp eq i32 %50, 0
  br i1 %.not413, label %189, label %182

182:                                              ; preds = %166
  %183 = load i32, ptr %11, align 4, !tbaa !5
  %184 = icmp eq i32 %183, 1
  br i1 %184, label %185, label %189

185:                                              ; preds = %182
  %186 = load i32, ptr %12, align 4, !tbaa !5
  %187 = load i32, ptr %3, align 4, !tbaa !5
  %188 = icmp eq i32 %186, %187
  br label %189

189:                                              ; preds = %185, %182, %166
  %190 = phi i1 [ false, %182 ], [ false, %166 ], [ %188, %185 ]
  %or.cond7 = or i1 %56, %190
  br i1 %or.cond7, label %191, label %216

191:                                              ; preds = %189
  %192 = load float, ptr %13, align 4, !tbaa !9
  %193 = fcmp ugt float %192, 0.000000e+00
  br i1 %193, label %216, label %194

194:                                              ; preds = %191
  call void @scopy_(ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull @c__1, ptr noundef %15, ptr noundef nonnull @c__1) #6
  %195 = load i32, ptr %3, align 4, !tbaa !5
  %196 = shl i32 %195, 1
  %197 = add nsw i32 %196, %172
  br i1 %.not405, label %202, label %198

198:                                              ; preds = %194
  %199 = add nsw i32 %195, -1
  store i32 %199, ptr %24, align 4, !tbaa !5
  %200 = sext i32 %197 to i64
  %201 = getelementptr inbounds float, ptr %44, i64 %200
  call void @scopy_(ptr noundef nonnull %24, ptr noundef nonnull %177, ptr noundef nonnull @c__1, ptr noundef nonnull %201, ptr noundef nonnull @c__1) #6
  call void @ssterf_(ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %201, ptr noundef nonnull %22) #6
  br label %.loopexit461

202:                                              ; preds = %194
  call void @slacpy_(ptr noundef nonnull @.str.1, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %16, ptr noundef nonnull %17) #6
  %203 = load i32, ptr %3, align 4, !tbaa !5
  %204 = add nsw i32 %203, -1
  store i32 %204, ptr %24, align 4, !tbaa !5
  %205 = sext i32 %197 to i64
  %206 = getelementptr inbounds float, ptr %44, i64 %205
  call void @scopy_(ptr noundef nonnull %24, ptr noundef nonnull %177, ptr noundef nonnull @c__1, ptr noundef nonnull %206, ptr noundef nonnull @c__1) #6
  call void @ssteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %206, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %181, ptr noundef nonnull %22) #6
  %207 = load i32, ptr %22, align 4, !tbaa !5
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %.thread451

209:                                              ; preds = %202
  %210 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %210, ptr %24, align 4, !tbaa !5
  %.not415462 = icmp slt i32 %210, 1
  br i1 %.not415462, label %.loopexit461, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %209
  %211 = zext nneg i32 %210 to i64
  %212 = shl nuw nsw i64 %211, 2
  call void @llvm.memset.p0.i64(ptr align 4 %21, i8 0, i64 %212, i1 false), !tbaa !5
  br label %.loopexit461

.loopexit461:                                     ; preds = %.lr.ph.preheader, %209, %198
  %.pr450 = load i32, ptr %22, align 4, !tbaa !5
  %213 = icmp eq i32 %.pr450, 0
  br i1 %213, label %214, label %.thread451

214:                                              ; preds = %.loopexit461
  %215 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %215, ptr %14, align 4, !tbaa !5
  br label %.loopexit460

.thread451:                                       ; preds = %202, %.loopexit461
  store i32 0, ptr %22, align 4, !tbaa !5
  br label %216

216:                                              ; preds = %189, %.thread451, %191
  %.432 = select i1 %.not405, i8 66, i8 69
  store i8 %.432, ptr %29, align 1, !tbaa !11
  %217 = load i32, ptr %3, align 4, !tbaa !5
  %218 = add nsw i32 %217, 1
  %219 = add nsw i32 %218, %217
  %220 = sext i32 %218 to i64
  %221 = getelementptr inbounds i32, ptr %45, i64 %220
  %222 = sext i32 %219 to i64
  %223 = getelementptr inbounds i32, ptr %45, i64 %222
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %29, ptr noundef nonnull %3, ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %32, ptr noundef nonnull %18, ptr noundef nonnull %177, ptr noundef nonnull %14, ptr noundef nonnull %33, ptr noundef %15, ptr noundef %20, ptr noundef nonnull %221, ptr noundef nonnull %181, ptr noundef nonnull %223, ptr noundef nonnull %22) #6
  br i1 %.not405, label %224, label %.loopexit460

224:                                              ; preds = %216
  call void @sstein_(ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull %177, ptr noundef nonnull %14, ptr noundef %15, ptr noundef %20, ptr noundef nonnull %221, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %181, ptr noundef nonnull %223, ptr noundef %21, ptr noundef nonnull %22) #6
  %225 = load i32, ptr %14, align 4, !tbaa !5
  store i32 %225, ptr %24, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %43, i64 4
  %.not418464 = icmp slt i32 %225, 1
  br i1 %.not418464, label %.loopexit460, label %.lr.ph466.preheader

.lr.ph466.preheader:                              ; preds = %224
  %226 = sext i32 %41 to i64
  br label %.lr.ph466

.lr.ph466:                                        ; preds = %.lr.ph466.preheader, %.lr.ph466
  %indvars.iv = phi i64 [ 1, %.lr.ph466.preheader ], [ %indvars.iv.next, %.lr.ph466 ]
  %227 = mul nsw i64 %indvars.iv, %226
  %gep = getelementptr float, ptr %invariant.gep, i64 %227
  call void @scopy_(ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %18, ptr noundef nonnull @c__1) #6
  call void @sgemv_(ptr noundef nonnull @.str.4, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef nonnull @c_b24, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %18, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b45, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %228 = load i32, ptr %24, align 4, !tbaa !5
  %229 = sext i32 %228 to i64
  %.not418.not = icmp slt i64 %indvars.iv, %229
  br i1 %.not418.not, label %.lr.ph466, label %.loopexit460, !llvm.loop !12

.loopexit460:                                     ; preds = %.lr.ph466, %224, %216, %214
  br i1 %167, label %230, label %240

230:                                              ; preds = %.loopexit460
  %231 = load i32, ptr %22, align 4, !tbaa !5
  %232 = icmp eq i32 %231, 0
  br i1 %232, label %233, label %235

233:                                              ; preds = %230
  %234 = load i32, ptr %14, align 4, !tbaa !5
  br label %237

235:                                              ; preds = %230
  %236 = add nsw i32 %231, -1
  br label %237

237:                                              ; preds = %235, %233
  %storemerge419 = phi i32 [ %236, %235 ], [ %234, %233 ]
  store i32 %storemerge419, ptr %26, align 4, !tbaa !5
  %238 = load float, ptr %27, align 4, !tbaa !9
  %239 = fdiv float 1.000000e+00, %238
  store float %239, ptr %25, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %26, ptr noundef nonnull %25, ptr noundef %15, ptr noundef nonnull @c__1) #6
  br label %240

240:                                              ; preds = %237, %.loopexit460
  br i1 %.not405, label %241, label %.loopexit

241:                                              ; preds = %240
  %242 = load i32, ptr %14, align 4, !tbaa !5
  %243 = add nsw i32 %242, -1
  store i32 %243, ptr %24, align 4, !tbaa !5
  %invariant.gep473 = getelementptr i8, ptr %43, i64 4
  %.not421477 = icmp slt i32 %242, 2
  br i1 %.not421477, label %.loopexit, label %.lr.ph480.preheader

.lr.ph480.preheader:                              ; preds = %241
  %244 = sext i32 %41 to i64
  br label %.lr.ph480

.lr.ph480:                                        ; preds = %.lr.ph480.preheader, %._crit_edge.thread
  %indvar = phi i32 [ 0, %.lr.ph480.preheader ], [ %indvar.next, %._crit_edge.thread ]
  %indvars.iv488 = phi i64 [ 1, %.lr.ph480.preheader ], [ %indvars.iv.next489, %._crit_edge.thread ]
  %indvars.iv483 = phi i64 [ 2, %.lr.ph480.preheader ], [ %indvars.iv.next484, %._crit_edge.thread ]
  %245 = getelementptr inbounds float, ptr %40, i64 %indvars.iv488
  %246 = load float, ptr %245, align 4, !tbaa !9
  %247 = load i32, ptr %14, align 4, !tbaa !5
  %indvars.iv.next489 = add nuw nsw i64 %indvars.iv488, 1
  %248 = sext i32 %247 to i64
  %.not422467.not = icmp slt i64 %indvars.iv488, %248
  br i1 %.not422467.not, label %.lr.ph471.preheader, label %._crit_edge.thread

.lr.ph471.preheader:                              ; preds = %.lr.ph480
  %249 = xor i32 %indvar, -1
  %250 = add i32 %247, %249
  %reass.sub = sub i32 %247, %indvar
  %xtraiter = and i32 %250, 1
  %251 = icmp eq i32 %reass.sub, 2
  br i1 %251, label %._crit_edge.unr-lcssa, label %.lr.ph471.preheader.new

.lr.ph471.preheader.new:                          ; preds = %.lr.ph471.preheader
  %unroll_iter = and i32 %250, -2
  br label %.lr.ph471

.lr.ph471:                                        ; preds = %.lr.ph471, %.lr.ph471.preheader.new
  %indvars.iv485 = phi i64 [ %indvars.iv483, %.lr.ph471.preheader.new ], [ %indvars.iv.next486.1, %.lr.ph471 ]
  %.1470 = phi float [ %246, %.lr.ph471.preheader.new ], [ %.2.1, %.lr.ph471 ]
  %.1378469 = phi i32 [ 0, %.lr.ph471.preheader.new ], [ %.2379.1, %.lr.ph471 ]
  %niter = phi i32 [ 0, %.lr.ph471.preheader.new ], [ %niter.next.1, %.lr.ph471 ]
  %252 = getelementptr inbounds float, ptr %40, i64 %indvars.iv485
  %253 = load float, ptr %252, align 4, !tbaa !9
  %254 = fcmp olt float %253, %.1470
  %255 = trunc nuw i64 %indvars.iv485 to i32
  %.2379 = select i1 %254, i32 %255, i32 %.1378469
  %.2 = select i1 %254, float %253, float %.1470
  %256 = getelementptr float, ptr %15, i64 %indvars.iv485
  %257 = load float, ptr %256, align 4, !tbaa !9
  %258 = fcmp olt float %257, %.2
  %259 = trunc i64 %indvars.iv485 to i32
  %260 = add i32 %259, 1
  %.2379.1 = select i1 %258, i32 %260, i32 %.2379
  %.2.1 = select i1 %258, float %257, float %.2
  %indvars.iv.next486.1 = add nuw nsw i64 %indvars.iv485, 2
  %niter.next.1 = add i32 %niter, 2
  %niter.ncmp.1 = icmp eq i32 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.unr-lcssa, label %.lr.ph471, !llvm.loop !14

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph471, %.lr.ph471.preheader
  %.2379.lcssa.ph = phi i32 [ poison, %.lr.ph471.preheader ], [ %.2379.1, %.lr.ph471 ]
  %.2.lcssa.ph = phi float [ poison, %.lr.ph471.preheader ], [ %.2.1, %.lr.ph471 ]
  %indvars.iv485.unr = phi i64 [ %indvars.iv483, %.lr.ph471.preheader ], [ %indvars.iv.next486.1, %.lr.ph471 ]
  %.1470.unr = phi float [ %246, %.lr.ph471.preheader ], [ %.2.1, %.lr.ph471 ]
  %.1378469.unr = phi i32 [ 0, %.lr.ph471.preheader ], [ %.2379.1, %.lr.ph471 ]
  %lcmp.mod.not = icmp eq i32 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph471.epil

.lr.ph471.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %261 = getelementptr inbounds float, ptr %40, i64 %indvars.iv485.unr
  %262 = load float, ptr %261, align 4, !tbaa !9
  %263 = fcmp olt float %262, %.1470.unr
  %264 = trunc nuw i64 %indvars.iv485.unr to i32
  %.2379.epil = select i1 %263, i32 %264, i32 %.1378469.unr
  %.2.epil = select i1 %263, float %262, float %.1470.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph471.epil
  %.2379.lcssa = phi i32 [ %.2379.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.2379.epil, %.lr.ph471.epil ]
  %.2.lcssa = phi float [ %.2.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.2.epil, %.lr.ph471.epil ]
  %.not423 = icmp eq i32 %.2379.lcssa, 0
  br i1 %.not423, label %._crit_edge.thread, label %265

265:                                              ; preds = %._crit_edge
  %266 = sext i32 %.2379.lcssa to i64
  %267 = getelementptr inbounds i32, ptr %45, i64 %266
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = getelementptr inbounds float, ptr %40, i64 %266
  store float %246, ptr %269, align 4, !tbaa !9
  %270 = getelementptr inbounds i32, ptr %45, i64 %indvars.iv488
  %271 = load i32, ptr %270, align 4, !tbaa !5
  store i32 %271, ptr %267, align 4, !tbaa !5
  store float %.2.lcssa, ptr %245, align 4, !tbaa !9
  store i32 %268, ptr %270, align 4, !tbaa !5
  %272 = mul nsw i32 %.2379.lcssa, %41
  %273 = sext i32 %272 to i64
  %gep474 = getelementptr float, ptr %invariant.gep473, i64 %273
  %274 = mul nsw i64 %indvars.iv488, %244
  %gep476 = getelementptr float, ptr %invariant.gep473, i64 %274
  call void @sswap_(ptr noundef nonnull %3, ptr noundef %gep474, ptr noundef nonnull @c__1, ptr noundef %gep476, ptr noundef nonnull @c__1) #6
  %275 = load i32, ptr %22, align 4, !tbaa !5
  %.not424 = icmp eq i32 %275, 0
  br i1 %.not424, label %._crit_edge.thread, label %276

276:                                              ; preds = %265
  %277 = getelementptr inbounds i32, ptr %46, i64 %266
  %278 = load i32, ptr %277, align 4, !tbaa !5
  %279 = getelementptr inbounds i32, ptr %46, i64 %indvars.iv488
  %280 = load i32, ptr %279, align 4, !tbaa !5
  store i32 %280, ptr %277, align 4, !tbaa !5
  store i32 %278, ptr %279, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph480, %._crit_edge, %276, %265
  %281 = load i32, ptr %24, align 4, !tbaa !5
  %282 = sext i32 %281 to i64
  %.not421.not = icmp slt i64 %indvars.iv488, %282
  %indvars.iv.next484 = add nuw nsw i64 %indvars.iv483, 1
  %indvar.next = add i32 %indvar, 1
  br i1 %.not421.not, label %.lr.ph480, label %.loopexit, !llvm.loop !15

.loopexit:                                        ; preds = %._crit_edge.thread, %241, %240
  %283 = sitofp i32 %.0383 to float
  store float %283, ptr %18, align 4, !tbaa !9
  br label %284

284:                                              ; preds = %.thread446, %130, %129, %113, %112, %.loopexit, %.thread441
  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 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #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 @ilaenv2stage_(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

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

declare float @slansb_(ptr noundef, 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 @ssytrd_sb2st_(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 @scopy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare void @sstebz_(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 @sstein_(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 @sgemv_(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 @sscal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare float @sqrtf(float) local_unnamed_addr

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}


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