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

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b14 = external hidden global float, align 4
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b34 = external hidden global float, align 4

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

141:                                              ; preds = %22
  %142 = load ptr, ptr %23, align 8, !tbaa !5
  %143 = call i32 @lsame_(ptr noundef %142, ptr noundef @.str.4)
  %144 = icmp ne i32 %143, 0
  br i1 %144, label %147, label %145

145:                                              ; preds = %141
  %146 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -1, ptr %146, align 4, !tbaa !9
  br label %279

147:                                              ; preds = %141, %22
  %148 = load i32, ptr %72, align 4, !tbaa !9
  %149 = icmp ne i32 %148, 0
  br i1 %149, label %158, label %150

150:                                              ; preds = %147
  %151 = load i32, ptr %76, align 4, !tbaa !9
  %152 = icmp ne i32 %151, 0
  br i1 %152, label %158, label %153

153:                                              ; preds = %150
  %154 = load i32, ptr %73, align 4, !tbaa !9
  %155 = icmp ne i32 %154, 0
  br i1 %155, label %158, label %156

156:                                              ; preds = %153
  %157 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -2, ptr %157, align 4, !tbaa !9
  br label %278

158:                                              ; preds = %153, %150, %147
  %159 = load i32, ptr %69, align 4, !tbaa !9
  %160 = icmp ne i32 %159, 0
  br i1 %160, label %167, label %161

161:                                              ; preds = %158
  %162 = load ptr, ptr %25, align 8, !tbaa !5
  %163 = call i32 @lsame_(ptr noundef %162, ptr noundef @.str.5)
  %164 = icmp ne i32 %163, 0
  br i1 %164, label %167, label %165

165:                                              ; preds = %161
  %166 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -3, ptr %166, align 4, !tbaa !9
  br label %277

167:                                              ; preds = %161, %158
  %168 = load ptr, ptr %26, align 8, !tbaa !5
  %169 = load i32, ptr %168, align 4, !tbaa !9
  %170 = icmp slt i32 %169, 0
  br i1 %170, label %171, label %173

171:                                              ; preds = %167
  %172 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -4, ptr %172, align 4, !tbaa !9
  br label %276

173:                                              ; preds = %167
  %174 = load ptr, ptr %27, align 8, !tbaa !5
  %175 = load i32, ptr %174, align 4, !tbaa !9
  %176 = icmp slt i32 %175, 0
  br i1 %176, label %177, label %179

177:                                              ; preds = %173
  %178 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -5, ptr %178, align 4, !tbaa !9
  br label %275

179:                                              ; preds = %173
  %180 = load ptr, ptr %29, align 8, !tbaa !5
  %181 = load i32, ptr %180, align 4, !tbaa !9
  %182 = load ptr, ptr %27, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !9
  %184 = add nsw i32 %183, 1
  %185 = icmp slt i32 %181, %184
  br i1 %185, label %186, label %188

186:                                              ; preds = %179
  %187 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -7, ptr %187, align 4, !tbaa !9
  br label %274

188:                                              ; preds = %179
  %189 = load i32, ptr %70, align 4, !tbaa !9
  %190 = icmp ne i32 %189, 0
  br i1 %190, label %191, label %206

191:                                              ; preds = %188
  %192 = load ptr, ptr %31, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  %194 = load ptr, ptr %26, align 8, !tbaa !5
  %195 = load i32, ptr %194, align 4, !tbaa !9
  %196 = icmp sge i32 1, %195
  br i1 %196, label %197, label %198

197:                                              ; preds = %191
  br label %201

198:                                              ; preds = %191
  %199 = load ptr, ptr %26, align 8, !tbaa !5
  %200 = load i32, ptr %199, align 4, !tbaa !9
  br label %201

201:                                              ; preds = %198, %197
  %202 = phi i32 [ 1, %197 ], [ %200, %198 ]
  %203 = icmp slt i32 %193, %202
  br i1 %203, label %204, label %206

204:                                              ; preds = %201
  %205 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -9, ptr %205, align 4, !tbaa !9
  br label %273

206:                                              ; preds = %201, %188
  %207 = load i32, ptr %76, align 4, !tbaa !9
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %209, label %222

209:                                              ; preds = %206
  %210 = load ptr, ptr %26, align 8, !tbaa !5
  %211 = load i32, ptr %210, align 4, !tbaa !9
  %212 = icmp sgt i32 %211, 0
  br i1 %212, label %213, label %221

213:                                              ; preds = %209
  %214 = load ptr, ptr %33, align 8, !tbaa !5
  %215 = load float, ptr %214, align 4, !tbaa !11
  %216 = load ptr, ptr %32, align 8, !tbaa !5
  %217 = load float, ptr %216, align 4, !tbaa !11
  %218 = fcmp ole float %215, %217
  br i1 %218, label %219, label %221

219:                                              ; preds = %213
  %220 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -11, ptr %220, align 4, !tbaa !9
  br label %221

221:                                              ; preds = %219, %213, %209
  br label %272

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

225:                                              ; preds = %222
  %226 = load ptr, ptr %34, align 8, !tbaa !5
  %227 = load i32, ptr %226, align 4, !tbaa !9
  %228 = icmp slt i32 %227, 1
  br i1 %228, label %242, label %229

229:                                              ; preds = %225
  %230 = load ptr, ptr %34, align 8, !tbaa !5
  %231 = load i32, ptr %230, align 4, !tbaa !9
  %232 = load ptr, ptr %26, align 8, !tbaa !5
  %233 = load i32, ptr %232, align 4, !tbaa !9
  %234 = icmp sge i32 1, %233
  br i1 %234, label %235, label %236

235:                                              ; preds = %229
  br label %239

236:                                              ; preds = %229
  %237 = load ptr, ptr %26, align 8, !tbaa !5
  %238 = load i32, ptr %237, align 4, !tbaa !9
  br label %239

239:                                              ; preds = %236, %235
  %240 = phi i32 [ 1, %235 ], [ %238, %236 ]
  %241 = icmp sgt i32 %231, %240
  br i1 %241, label %242, label %244

242:                                              ; preds = %239, %225
  %243 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -12, ptr %243, align 4, !tbaa !9
  br label %270

244:                                              ; preds = %239
  %245 = load ptr, ptr %35, align 8, !tbaa !5
  %246 = load i32, ptr %245, align 4, !tbaa !9
  %247 = load ptr, ptr %26, align 8, !tbaa !5
  %248 = load i32, ptr %247, align 4, !tbaa !9
  %249 = load ptr, ptr %34, align 8, !tbaa !5
  %250 = load i32, ptr %249, align 4, !tbaa !9
  %251 = icmp sle i32 %248, %250
  br i1 %251, label %252, label %255

252:                                              ; preds = %244
  %253 = load ptr, ptr %26, align 8, !tbaa !5
  %254 = load i32, ptr %253, align 4, !tbaa !9
  br label %258

255:                                              ; preds = %244
  %256 = load ptr, ptr %34, align 8, !tbaa !5
  %257 = load i32, ptr %256, align 4, !tbaa !9
  br label %258

258:                                              ; preds = %255, %252
  %259 = phi i32 [ %254, %252 ], [ %257, %255 ]
  %260 = icmp slt i32 %246, %259
  br i1 %260, label %267, label %261

261:                                              ; preds = %258
  %262 = load ptr, ptr %35, align 8, !tbaa !5
  %263 = load i32, ptr %262, align 4, !tbaa !9
  %264 = load ptr, ptr %26, align 8, !tbaa !5
  %265 = load i32, ptr %264, align 4, !tbaa !9
  %266 = icmp sgt i32 %263, %265
  br i1 %266, label %267, label %269

267:                                              ; preds = %261, %258
  %268 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -13, ptr %268, align 4, !tbaa !9
  br label %269

269:                                              ; preds = %267, %261
  br label %270

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

271:                                              ; preds = %270, %222
  br label %272

272:                                              ; preds = %271, %221
  br label %273

273:                                              ; preds = %272, %204
  br label %274

274:                                              ; preds = %273, %186
  br label %275

275:                                              ; preds = %274, %177
  br label %276

276:                                              ; preds = %275, %171
  br label %277

277:                                              ; preds = %276, %165
  br label %278

278:                                              ; preds = %277, %156
  br label %279

279:                                              ; preds = %278, %145
  %280 = load ptr, ptr %44, align 8, !tbaa !5
  %281 = load i32, ptr %280, align 4, !tbaa !9
  %282 = icmp eq i32 %281, 0
  br i1 %282, label %283, label %299

283:                                              ; preds = %279
  %284 = load ptr, ptr %40, align 8, !tbaa !5
  %285 = load i32, ptr %284, align 4, !tbaa !9
  %286 = icmp slt i32 %285, 1
  br i1 %286, label %296, label %287

287:                                              ; preds = %283
  %288 = load i32, ptr %70, align 4, !tbaa !9
  %289 = icmp ne i32 %288, 0
  br i1 %289, label %290, label %298

290:                                              ; preds = %287
  %291 = load ptr, ptr %40, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = load ptr, ptr %26, align 8, !tbaa !5
  %294 = load i32, ptr %293, align 4, !tbaa !9
  %295 = icmp slt i32 %292, %294
  br i1 %295, label %296, label %298

296:                                              ; preds = %290, %283
  %297 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 -18, ptr %297, align 4, !tbaa !9
  br label %298

298:                                              ; preds = %296, %290, %287
  br label %299

299:                                              ; preds = %298, %279
  %300 = load ptr, ptr %44, align 8, !tbaa !5
  %301 = load i32, ptr %300, align 4, !tbaa !9
  %302 = icmp ne i32 %301, 0
  br i1 %302, label %303, label %308

303:                                              ; preds = %299
  %304 = load ptr, ptr %44, align 8, !tbaa !5
  %305 = load i32, ptr %304, align 4, !tbaa !9
  %306 = sub nsw i32 0, %305
  store i32 %306, ptr %51, align 4, !tbaa !9
  %307 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %51, i32 noundef 6)
  store i32 1, ptr %89, align 4
  br label %944

308:                                              ; preds = %299
  %309 = load ptr, ptr %37, align 8, !tbaa !5
  store i32 0, ptr %309, align 4, !tbaa !9
  %310 = load ptr, ptr %26, 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 %314

313:                                              ; preds = %308
  store i32 1, ptr %89, align 4
  br label %944

314:                                              ; preds = %308
  %315 = load ptr, ptr %26, align 8, !tbaa !5
  %316 = load i32, ptr %315, align 4, !tbaa !9
  %317 = icmp eq i32 %316, 1
  br i1 %317, label %318, label %373

318:                                              ; preds = %314
  %319 = load ptr, ptr %37, align 8, !tbaa !5
  store i32 1, ptr %319, align 4, !tbaa !9
  %320 = load i32, ptr %69, align 4, !tbaa !9
  %321 = icmp ne i32 %320, 0
  br i1 %321, label %322, label %329

322:                                              ; preds = %318
  %323 = load ptr, ptr %28, align 8, !tbaa !5
  %324 = load i32, ptr %45, align 4, !tbaa !9
  %325 = add nsw i32 %324, 1
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds float, ptr %323, i64 %326
  %328 = load float, ptr %327, align 4, !tbaa !11
  store float %328, ptr %88, align 4, !tbaa !11
  br label %339

329:                                              ; preds = %318
  %330 = load ptr, ptr %28, align 8, !tbaa !5
  %331 = load ptr, ptr %27, align 8, !tbaa !5
  %332 = load i32, ptr %331, align 4, !tbaa !9
  %333 = add nsw i32 %332, 1
  %334 = load i32, ptr %45, align 4, !tbaa !9
  %335 = add nsw i32 %333, %334
  %336 = sext i32 %335 to i64
  %337 = getelementptr inbounds float, ptr %330, i64 %336
  %338 = load float, ptr %337, align 4, !tbaa !11
  store float %338, ptr %88, align 4, !tbaa !11
  br label %339

339:                                              ; preds = %329, %322
  %340 = load i32, ptr %76, align 4, !tbaa !9
  %341 = icmp ne i32 %340, 0
  br i1 %341, label %342, label %355

342:                                              ; preds = %339
  %343 = load ptr, ptr %32, align 8, !tbaa !5
  %344 = load float, ptr %343, align 4, !tbaa !11
  %345 = load float, ptr %88, align 4, !tbaa !11
  %346 = fcmp olt float %344, %345
  br i1 %346, label %347, label %352

347:                                              ; preds = %342
  %348 = load ptr, ptr %33, align 8, !tbaa !5
  %349 = load float, ptr %348, align 4, !tbaa !11
  %350 = load float, ptr %88, align 4, !tbaa !11
  %351 = fcmp oge float %349, %350
  br i1 %351, label %354, label %352

352:                                              ; preds = %347, %342
  %353 = load ptr, ptr %37, align 8, !tbaa !5
  store i32 0, ptr %353, align 4, !tbaa !9
  br label %354

354:                                              ; preds = %352, %347
  br label %355

355:                                              ; preds = %354, %339
  %356 = load ptr, ptr %37, align 8, !tbaa !5
  %357 = load i32, ptr %356, align 4, !tbaa !9
  %358 = icmp eq i32 %357, 1
  br i1 %358, label %359, label %372

359:                                              ; preds = %355
  %360 = load float, ptr %88, align 4, !tbaa !11
  %361 = load ptr, ptr %38, align 8, !tbaa !5
  %362 = getelementptr inbounds float, ptr %361, i64 1
  store float %360, ptr %362, align 4, !tbaa !11
  %363 = load i32, ptr %70, align 4, !tbaa !9
  %364 = icmp ne i32 %363, 0
  br i1 %364, label %365, label %371

365:                                              ; preds = %359
  %366 = load ptr, ptr %39, align 8, !tbaa !5
  %367 = load i32, ptr %49, align 4, !tbaa !9
  %368 = add nsw i32 %367, 1
  %369 = sext i32 %368 to i64
  %370 = getelementptr inbounds float, ptr %366, i64 %369
  store float 1.000000e+00, ptr %370, align 4, !tbaa !11
  br label %371

371:                                              ; preds = %365, %359
  br label %372

372:                                              ; preds = %371, %355
  store i32 1, ptr %89, align 4
  br label %944

373:                                              ; preds = %314
  %374 = call float @slamch_(ptr noundef @.str.7)
  store float %374, ptr %77, align 4, !tbaa !11
  %375 = call float @slamch_(ptr noundef @.str.8)
  store float %375, ptr %85, align 4, !tbaa !11
  %376 = load float, ptr %77, align 4, !tbaa !11
  %377 = load float, ptr %85, align 4, !tbaa !11
  %378 = fdiv float %376, %377
  store float %378, ptr %84, align 4, !tbaa !11
  %379 = load float, ptr %84, align 4, !tbaa !11
  %380 = fdiv float 1.000000e+00, %379
  store float %380, ptr %79, align 4, !tbaa !11
  %381 = load float, ptr %84, align 4, !tbaa !11
  %382 = fpext float %381 to double
  %383 = call double @sqrt(double noundef %382) #4
  %384 = fptrunc double %383 to float
  store float %384, ptr %59, align 4, !tbaa !11
  %385 = load float, ptr %79, align 4, !tbaa !11
  %386 = fpext float %385 to double
  %387 = call double @sqrt(double noundef %386) #4
  %388 = fptrunc double %387 to float
  store float %388, ptr %53, align 4, !tbaa !11
  %389 = load float, ptr %77, align 4, !tbaa !11
  %390 = fpext float %389 to double
  %391 = call double @sqrt(double noundef %390) #4
  %392 = call double @sqrt(double noundef %391) #4
  %393 = fdiv double 1.000000e+00, %392
  %394 = fptrunc double %393 to float
  store float %394, ptr %54, align 4, !tbaa !11
  %395 = load float, ptr %53, align 4, !tbaa !11
  %396 = load float, ptr %54, align 4, !tbaa !11
  %397 = fcmp ole float %395, %396
  br i1 %397, label %398, label %400

398:                                              ; preds = %373
  %399 = load float, ptr %53, align 4, !tbaa !11
  br label %402

400:                                              ; preds = %373
  %401 = load float, ptr %54, align 4, !tbaa !11
  br label %402

402:                                              ; preds = %400, %398
  %403 = phi float [ %399, %398 ], [ %401, %400 ]
  store float %403, ptr %60, align 4, !tbaa !11
  store i32 0, ptr %74, align 4, !tbaa !9
  %404 = load ptr, ptr %36, align 8, !tbaa !5
  %405 = load float, ptr %404, align 4, !tbaa !11
  store float %405, ptr %78, align 4, !tbaa !11
  %406 = load i32, ptr %76, align 4, !tbaa !9
  %407 = icmp ne i32 %406, 0
  br i1 %407, label %408, label %413

408:                                              ; preds = %402
  %409 = load ptr, ptr %32, align 8, !tbaa !5
  %410 = load float, ptr %409, align 4, !tbaa !11
  store float %410, ptr %86, align 4, !tbaa !11
  %411 = load ptr, ptr %33, align 8, !tbaa !5
  %412 = load float, ptr %411, align 4, !tbaa !11
  store float %412, ptr %87, align 4, !tbaa !11
  br label %414

413:                                              ; preds = %402
  store float 0.000000e+00, ptr %86, align 4, !tbaa !11
  store float 0.000000e+00, ptr %87, align 4, !tbaa !11
  br label %414

414:                                              ; preds = %413, %408
  %415 = load ptr, ptr %25, align 8, !tbaa !5
  %416 = load ptr, ptr %26, align 8, !tbaa !5
  %417 = load ptr, ptr %27, align 8, !tbaa !5
  %418 = load ptr, ptr %28, align 8, !tbaa !5
  %419 = load i32, ptr %46, align 4, !tbaa !9
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds float, ptr %418, i64 %420
  %422 = load ptr, ptr %29, align 8, !tbaa !5
  %423 = load ptr, ptr %41, align 8, !tbaa !5
  %424 = getelementptr inbounds float, ptr %423, i64 1
  %425 = call float @slansb_(ptr noundef @.str.9, ptr noundef %415, ptr noundef %416, ptr noundef %417, ptr noundef %421, ptr noundef %422, ptr noundef %424)
  store float %425, ptr %57, align 4, !tbaa !11
  %426 = load float, ptr %57, align 4, !tbaa !11
  %427 = fcmp ogt float %426, 0.000000e+00
  br i1 %427, label %428, label %436

428:                                              ; preds = %414
  %429 = load float, ptr %57, align 4, !tbaa !11
  %430 = load float, ptr %59, align 4, !tbaa !11
  %431 = fcmp olt float %429, %430
  br i1 %431, label %432, label %436

432:                                              ; preds = %428
  store i32 1, ptr %74, align 4, !tbaa !9
  %433 = load float, ptr %59, align 4, !tbaa !11
  %434 = load float, ptr %57, align 4, !tbaa !11
  %435 = fdiv float %433, %434
  store float %435, ptr %66, align 4, !tbaa !11
  br label %445

436:                                              ; preds = %428, %414
  %437 = load float, ptr %57, align 4, !tbaa !11
  %438 = load float, ptr %60, align 4, !tbaa !11
  %439 = fcmp ogt float %437, %438
  br i1 %439, label %440, label %444

440:                                              ; preds = %436
  store i32 1, ptr %74, align 4, !tbaa !9
  %441 = load float, ptr %60, align 4, !tbaa !11
  %442 = load float, ptr %57, align 4, !tbaa !11
  %443 = fdiv float %441, %442
  store float %443, ptr %66, align 4, !tbaa !11
  br label %444

444:                                              ; preds = %440, %436
  br label %445

445:                                              ; preds = %444, %432
  %446 = load i32, ptr %74, align 4, !tbaa !9
  %447 = icmp eq i32 %446, 1
  br i1 %447, label %448, label %495

448:                                              ; preds = %445
  %449 = load i32, ptr %69, align 4, !tbaa !9
  %450 = icmp ne i32 %449, 0
  br i1 %450, label %451, label %462

451:                                              ; preds = %448
  %452 = load ptr, ptr %27, align 8, !tbaa !5
  %453 = load ptr, ptr %27, align 8, !tbaa !5
  %454 = load ptr, ptr %26, align 8, !tbaa !5
  %455 = load ptr, ptr %26, align 8, !tbaa !5
  %456 = load ptr, ptr %28, align 8, !tbaa !5
  %457 = load i32, ptr %46, align 4, !tbaa !9
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds float, ptr %456, i64 %458
  %460 = load ptr, ptr %29, align 8, !tbaa !5
  %461 = load ptr, ptr %44, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.10, ptr noundef %452, ptr noundef %453, ptr noundef @c_b14, ptr noundef %66, ptr noundef %454, ptr noundef %455, ptr noundef %459, ptr noundef %460, ptr noundef %461)
  br label %473

462:                                              ; preds = %448
  %463 = load ptr, ptr %27, align 8, !tbaa !5
  %464 = load ptr, ptr %27, align 8, !tbaa !5
  %465 = load ptr, ptr %26, align 8, !tbaa !5
  %466 = load ptr, ptr %26, align 8, !tbaa !5
  %467 = load ptr, ptr %28, align 8, !tbaa !5
  %468 = load i32, ptr %46, align 4, !tbaa !9
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds float, ptr %467, i64 %469
  %471 = load ptr, ptr %29, align 8, !tbaa !5
  %472 = load ptr, ptr %44, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.11, ptr noundef %463, ptr noundef %464, ptr noundef @c_b14, ptr noundef %66, ptr noundef %465, ptr noundef %466, ptr noundef %470, ptr noundef %471, ptr noundef %472)
  br label %473

473:                                              ; preds = %462, %451
  %474 = load ptr, ptr %36, align 8, !tbaa !5
  %475 = load float, ptr %474, align 4, !tbaa !11
  %476 = fcmp ogt float %475, 0.000000e+00
  br i1 %476, label %477, label %482

477:                                              ; preds = %473
  %478 = load ptr, ptr %36, align 8, !tbaa !5
  %479 = load float, ptr %478, align 4, !tbaa !11
  %480 = load float, ptr %66, align 4, !tbaa !11
  %481 = fmul float %479, %480
  store float %481, ptr %78, align 4, !tbaa !11
  br label %482

482:                                              ; preds = %477, %473
  %483 = load i32, ptr %76, align 4, !tbaa !9
  %484 = icmp ne i32 %483, 0
  br i1 %484, label %485, label %494

485:                                              ; preds = %482
  %486 = load ptr, ptr %32, align 8, !tbaa !5
  %487 = load float, ptr %486, align 4, !tbaa !11
  %488 = load float, ptr %66, align 4, !tbaa !11
  %489 = fmul float %487, %488
  store float %489, ptr %86, align 4, !tbaa !11
  %490 = load ptr, ptr %33, align 8, !tbaa !5
  %491 = load float, ptr %490, align 4, !tbaa !11
  %492 = load float, ptr %66, align 4, !tbaa !11
  %493 = fmul float %491, %492
  store float %493, ptr %87, align 4, !tbaa !11
  br label %494

494:                                              ; preds = %485, %482
  br label %495

495:                                              ; preds = %494, %445
  store i32 1, ptr %55, align 4, !tbaa !9
  %496 = load i32, ptr %55, align 4, !tbaa !9
  %497 = load ptr, ptr %26, align 8, !tbaa !5
  %498 = load i32, ptr %497, align 4, !tbaa !9
  %499 = add nsw i32 %496, %498
  store i32 %499, ptr %56, align 4, !tbaa !9
  %500 = load i32, ptr %56, align 4, !tbaa !9
  %501 = load ptr, ptr %26, align 8, !tbaa !5
  %502 = load i32, ptr %501, align 4, !tbaa !9
  %503 = add nsw i32 %500, %502
  store i32 %503, ptr %82, align 4, !tbaa !9
  %504 = load ptr, ptr %23, align 8, !tbaa !5
  %505 = load ptr, ptr %25, align 8, !tbaa !5
  %506 = load ptr, ptr %26, align 8, !tbaa !5
  %507 = load ptr, ptr %27, align 8, !tbaa !5
  %508 = load ptr, ptr %28, align 8, !tbaa !5
  %509 = load i32, ptr %46, align 4, !tbaa !9
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds float, ptr %508, i64 %510
  %512 = load ptr, ptr %29, align 8, !tbaa !5
  %513 = load ptr, ptr %41, align 8, !tbaa !5
  %514 = load i32, ptr %55, align 4, !tbaa !9
  %515 = sext i32 %514 to i64
  %516 = getelementptr inbounds float, ptr %513, i64 %515
  %517 = load ptr, ptr %41, align 8, !tbaa !5
  %518 = load i32, ptr %56, align 4, !tbaa !9
  %519 = sext i32 %518 to i64
  %520 = getelementptr inbounds float, ptr %517, i64 %519
  %521 = load ptr, ptr %30, align 8, !tbaa !5
  %522 = load i32, ptr %48, align 4, !tbaa !9
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds float, ptr %521, i64 %523
  %525 = load ptr, ptr %31, align 8, !tbaa !5
  %526 = load ptr, ptr %41, align 8, !tbaa !5
  %527 = load i32, ptr %82, align 4, !tbaa !9
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds float, ptr %526, i64 %528
  call void @ssbtrd_(ptr noundef %504, ptr noundef %505, ptr noundef %506, ptr noundef %507, ptr noundef %511, ptr noundef %512, ptr noundef %516, ptr noundef %520, ptr noundef %524, ptr noundef %525, ptr noundef %529, ptr noundef %67)
  store i32 0, ptr %61, align 4, !tbaa !9
  %530 = load i32, ptr %73, align 4, !tbaa !9
  %531 = icmp ne i32 %530, 0
  br i1 %531, label %532, label %544

532:                                              ; preds = %495
  %533 = load ptr, ptr %34, align 8, !tbaa !5
  %534 = load i32, ptr %533, align 4, !tbaa !9
  %535 = icmp eq i32 %534, 1
  br i1 %535, label %536, label %543

536:                                              ; preds = %532
  %537 = load ptr, ptr %35, align 8, !tbaa !5
  %538 = load i32, ptr %537, align 4, !tbaa !9
  %539 = load ptr, ptr %26, align 8, !tbaa !5
  %540 = load i32, ptr %539, align 4, !tbaa !9
  %541 = icmp eq i32 %538, %540
  br i1 %541, label %542, label %543

542:                                              ; preds = %536
  store i32 1, ptr %61, align 4, !tbaa !9
  br label %543

543:                                              ; preds = %542, %536, %532
  br label %544

544:                                              ; preds = %543, %495
  %545 = load i32, ptr %72, align 4, !tbaa !9
  %546 = icmp ne i32 %545, 0
  br i1 %546, label %550, label %547

547:                                              ; preds = %544
  %548 = load i32, ptr %61, align 4, !tbaa !9
  %549 = icmp ne i32 %548, 0
  br i1 %549, label %550, label %661

550:                                              ; preds = %547, %544
  %551 = load ptr, ptr %36, align 8, !tbaa !5
  %552 = load float, ptr %551, align 4, !tbaa !11
  %553 = fcmp ole float %552, 0.000000e+00
  br i1 %553, label %554, label %661

554:                                              ; preds = %550
  %555 = load ptr, ptr %26, align 8, !tbaa !5
  %556 = load ptr, ptr %41, align 8, !tbaa !5
  %557 = load i32, ptr %55, align 4, !tbaa !9
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds float, ptr %556, i64 %558
  %560 = load ptr, ptr %38, align 8, !tbaa !5
  %561 = getelementptr inbounds float, ptr %560, i64 1
  call void @scopy_(ptr noundef %555, ptr noundef %559, ptr noundef @c__1, ptr noundef %561, ptr noundef @c__1)
  %562 = load i32, ptr %82, align 4, !tbaa !9
  %563 = load ptr, ptr %26, align 8, !tbaa !5
  %564 = load i32, ptr %563, align 4, !tbaa !9
  %565 = shl i32 %564, 1
  %566 = add nsw i32 %562, %565
  store i32 %566, ptr %65, align 4, !tbaa !9
  %567 = load i32, ptr %70, align 4, !tbaa !9
  %568 = icmp ne i32 %567, 0
  br i1 %568, label %589, label %569

569:                                              ; preds = %554
  %570 = load ptr, ptr %26, align 8, !tbaa !5
  %571 = load i32, ptr %570, align 4, !tbaa !9
  %572 = sub nsw i32 %571, 1
  store i32 %572, ptr %51, align 4, !tbaa !9
  %573 = load ptr, ptr %41, align 8, !tbaa !5
  %574 = load i32, ptr %56, align 4, !tbaa !9
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds float, ptr %573, i64 %575
  %577 = load ptr, ptr %41, align 8, !tbaa !5
  %578 = load i32, ptr %65, align 4, !tbaa !9
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %577, i64 %579
  call void @scopy_(ptr noundef %51, ptr noundef %576, ptr noundef @c__1, ptr noundef %580, ptr noundef @c__1)
  %581 = load ptr, ptr %26, align 8, !tbaa !5
  %582 = load ptr, ptr %38, align 8, !tbaa !5
  %583 = getelementptr inbounds float, ptr %582, i64 1
  %584 = load ptr, ptr %41, align 8, !tbaa !5
  %585 = load i32, ptr %65, align 4, !tbaa !9
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds float, ptr %584, i64 %586
  %588 = load ptr, ptr %44, align 8, !tbaa !5
  call void @ssterf_(ptr noundef %581, ptr noundef %583, ptr noundef %587, ptr noundef %588)
  br label %651

589:                                              ; preds = %554
  %590 = load ptr, ptr %26, align 8, !tbaa !5
  %591 = load ptr, ptr %26, align 8, !tbaa !5
  %592 = load ptr, ptr %30, align 8, !tbaa !5
  %593 = load i32, ptr %48, align 4, !tbaa !9
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %592, i64 %594
  %596 = load ptr, ptr %31, align 8, !tbaa !5
  %597 = load ptr, ptr %39, align 8, !tbaa !5
  %598 = load i32, ptr %50, align 4, !tbaa !9
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds float, ptr %597, i64 %599
  %601 = load ptr, ptr %40, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.1, ptr noundef %590, ptr noundef %591, ptr noundef %595, ptr noundef %596, ptr noundef %600, ptr noundef %601)
  %602 = load ptr, ptr %26, align 8, !tbaa !5
  %603 = load i32, ptr %602, align 4, !tbaa !9
  %604 = sub nsw i32 %603, 1
  store i32 %604, ptr %51, align 4, !tbaa !9
  %605 = load ptr, ptr %41, align 8, !tbaa !5
  %606 = load i32, ptr %56, align 4, !tbaa !9
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds float, ptr %605, i64 %607
  %609 = load ptr, ptr %41, align 8, !tbaa !5
  %610 = load i32, ptr %65, align 4, !tbaa !9
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds float, ptr %609, i64 %611
  call void @scopy_(ptr noundef %51, ptr noundef %608, ptr noundef @c__1, ptr noundef %612, ptr noundef @c__1)
  %613 = load ptr, ptr %23, align 8, !tbaa !5
  %614 = load ptr, ptr %26, align 8, !tbaa !5
  %615 = load ptr, ptr %38, align 8, !tbaa !5
  %616 = getelementptr inbounds float, ptr %615, i64 1
  %617 = load ptr, ptr %41, align 8, !tbaa !5
  %618 = load i32, ptr %65, align 4, !tbaa !9
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds float, ptr %617, i64 %619
  %621 = load ptr, ptr %39, align 8, !tbaa !5
  %622 = load i32, ptr %50, align 4, !tbaa !9
  %623 = sext i32 %622 to i64
  %624 = getelementptr inbounds float, ptr %621, i64 %623
  %625 = load ptr, ptr %40, align 8, !tbaa !5
  %626 = load ptr, ptr %41, align 8, !tbaa !5
  %627 = load i32, ptr %82, align 4, !tbaa !9
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds float, ptr %626, i64 %628
  %630 = load ptr, ptr %44, align 8, !tbaa !5
  call void @ssteqr_(ptr noundef %613, ptr noundef %614, ptr noundef %616, ptr noundef %620, ptr noundef %624, ptr noundef %625, ptr noundef %629, ptr noundef %630)
  %631 = load ptr, ptr %44, align 8, !tbaa !5
  %632 = load i32, ptr %631, align 4, !tbaa !9
  %633 = icmp eq i32 %632, 0
  br i1 %633, label %634, label %650

634:                                              ; preds = %589
  %635 = load ptr, ptr %26, align 8, !tbaa !5
  %636 = load i32, ptr %635, align 4, !tbaa !9
  store i32 %636, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %637

637:                                              ; preds = %646, %634
  %638 = load i32, ptr %63, align 4, !tbaa !9
  %639 = load i32, ptr %51, align 4, !tbaa !9
  %640 = icmp sle i32 %638, %639
  br i1 %640, label %641, label %649

641:                                              ; preds = %637
  %642 = load ptr, ptr %43, align 8, !tbaa !5
  %643 = load i32, ptr %63, align 4, !tbaa !9
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds i32, ptr %642, i64 %644
  store i32 0, ptr %645, align 4, !tbaa !9
  br label %646

646:                                              ; preds = %641
  %647 = load i32, ptr %63, align 4, !tbaa !9
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr %63, align 4, !tbaa !9
  br label %637, !llvm.loop !13

649:                                              ; preds = %637
  br label %650

650:                                              ; preds = %649, %589
  br label %651

651:                                              ; preds = %650, %569
  %652 = load ptr, ptr %44, align 8, !tbaa !5
  %653 = load i32, ptr %652, align 4, !tbaa !9
  %654 = icmp eq i32 %653, 0
  br i1 %654, label %655, label %659

655:                                              ; preds = %651
  %656 = load ptr, ptr %26, align 8, !tbaa !5
  %657 = load i32, ptr %656, align 4, !tbaa !9
  %658 = load ptr, ptr %37, align 8, !tbaa !5
  store i32 %657, ptr %658, align 4, !tbaa !9
  br label %787

659:                                              ; preds = %651
  %660 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 0, ptr %660, align 4, !tbaa !9
  br label %661

661:                                              ; preds = %659, %550, %547
  %662 = load i32, ptr %70, align 4, !tbaa !9
  %663 = icmp ne i32 %662, 0
  br i1 %663, label %664, label %666

664:                                              ; preds = %661
  %665 = getelementptr inbounds [1 x i8], ptr %68, i64 0, i64 0
  store i8 66, ptr %665, align 1, !tbaa !15
  br label %668

666:                                              ; preds = %661
  %667 = getelementptr inbounds [1 x i8], ptr %68, i64 0, i64 0
  store i8 69, ptr %667, align 1, !tbaa !15
  br label %668

668:                                              ; preds = %666, %664
  store i32 1, ptr %75, align 4, !tbaa !9
  %669 = load i32, ptr %75, align 4, !tbaa !9
  %670 = load ptr, ptr %26, align 8, !tbaa !5
  %671 = load i32, ptr %670, align 4, !tbaa !9
  %672 = add nsw i32 %669, %671
  store i32 %672, ptr %80, align 4, !tbaa !9
  %673 = load i32, ptr %80, align 4, !tbaa !9
  %674 = load ptr, ptr %26, align 8, !tbaa !5
  %675 = load i32, ptr %674, align 4, !tbaa !9
  %676 = add nsw i32 %673, %675
  store i32 %676, ptr %81, align 4, !tbaa !9
  %677 = load ptr, ptr %24, align 8, !tbaa !5
  %678 = getelementptr inbounds [1 x i8], ptr %68, i64 0, i64 0
  %679 = load ptr, ptr %26, align 8, !tbaa !5
  %680 = load ptr, ptr %34, align 8, !tbaa !5
  %681 = load ptr, ptr %35, align 8, !tbaa !5
  %682 = load ptr, ptr %41, align 8, !tbaa !5
  %683 = load i32, ptr %55, align 4, !tbaa !9
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds float, ptr %682, i64 %684
  %686 = load ptr, ptr %41, align 8, !tbaa !5
  %687 = load i32, ptr %56, align 4, !tbaa !9
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds float, ptr %686, i64 %688
  %690 = load ptr, ptr %37, align 8, !tbaa !5
  %691 = load ptr, ptr %38, align 8, !tbaa !5
  %692 = getelementptr inbounds float, ptr %691, i64 1
  %693 = load ptr, ptr %42, align 8, !tbaa !5
  %694 = load i32, ptr %75, align 4, !tbaa !9
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds i32, ptr %693, i64 %695
  %697 = load ptr, ptr %42, align 8, !tbaa !5
  %698 = load i32, ptr %80, align 4, !tbaa !9
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds i32, ptr %697, i64 %699
  %701 = load ptr, ptr %41, align 8, !tbaa !5
  %702 = load i32, ptr %82, align 4, !tbaa !9
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds float, ptr %701, i64 %703
  %705 = load ptr, ptr %42, align 8, !tbaa !5
  %706 = load i32, ptr %81, align 4, !tbaa !9
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds i32, ptr %705, i64 %707
  %709 = load ptr, ptr %44, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %677, ptr noundef %678, ptr noundef %679, ptr noundef %86, ptr noundef %87, ptr noundef %680, ptr noundef %681, ptr noundef %78, ptr noundef %685, ptr noundef %689, ptr noundef %690, ptr noundef %83, ptr noundef %692, ptr noundef %696, ptr noundef %700, ptr noundef %704, ptr noundef %708, ptr noundef %709)
  %710 = load i32, ptr %70, align 4, !tbaa !9
  %711 = icmp ne i32 %710, 0
  br i1 %711, label %712, label %786

712:                                              ; preds = %668
  %713 = load ptr, ptr %26, align 8, !tbaa !5
  %714 = load ptr, ptr %41, align 8, !tbaa !5
  %715 = load i32, ptr %55, align 4, !tbaa !9
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds float, ptr %714, i64 %716
  %718 = load ptr, ptr %41, align 8, !tbaa !5
  %719 = load i32, ptr %56, align 4, !tbaa !9
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds float, ptr %718, i64 %720
  %722 = load ptr, ptr %37, align 8, !tbaa !5
  %723 = load ptr, ptr %38, align 8, !tbaa !5
  %724 = getelementptr inbounds float, ptr %723, i64 1
  %725 = load ptr, ptr %42, align 8, !tbaa !5
  %726 = load i32, ptr %75, align 4, !tbaa !9
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds i32, ptr %725, i64 %727
  %729 = load ptr, ptr %42, align 8, !tbaa !5
  %730 = load i32, ptr %80, align 4, !tbaa !9
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds i32, ptr %729, i64 %731
  %733 = load ptr, ptr %39, align 8, !tbaa !5
  %734 = load i32, ptr %50, align 4, !tbaa !9
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds float, ptr %733, i64 %735
  %737 = load ptr, ptr %40, align 8, !tbaa !5
  %738 = load ptr, ptr %41, align 8, !tbaa !5
  %739 = load i32, ptr %82, align 4, !tbaa !9
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds float, ptr %738, i64 %740
  %742 = load ptr, ptr %42, align 8, !tbaa !5
  %743 = load i32, ptr %81, align 4, !tbaa !9
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds i32, ptr %742, i64 %744
  %746 = load ptr, ptr %43, align 8, !tbaa !5
  %747 = getelementptr inbounds i32, ptr %746, i64 1
  %748 = load ptr, ptr %44, align 8, !tbaa !5
  call void @sstein_(ptr noundef %713, ptr noundef %717, ptr noundef %721, ptr noundef %722, ptr noundef %724, ptr noundef %728, ptr noundef %732, ptr noundef %736, ptr noundef %737, ptr noundef %741, ptr noundef %745, ptr noundef %747, ptr noundef %748)
  %749 = load ptr, ptr %37, align 8, !tbaa !5
  %750 = load i32, ptr %749, align 4, !tbaa !9
  store i32 %750, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %751

751:                                              ; preds = %782, %712
  %752 = load i32, ptr %64, align 4, !tbaa !9
  %753 = load i32, ptr %51, align 4, !tbaa !9
  %754 = icmp sle i32 %752, %753
  br i1 %754, label %755, label %785

755:                                              ; preds = %751
  %756 = load ptr, ptr %26, align 8, !tbaa !5
  %757 = load ptr, ptr %39, align 8, !tbaa !5
  %758 = load i32, ptr %64, align 4, !tbaa !9
  %759 = load i32, ptr %49, align 4, !tbaa !9
  %760 = mul nsw i32 %758, %759
  %761 = add nsw i32 %760, 1
  %762 = sext i32 %761 to i64
  %763 = getelementptr inbounds float, ptr %757, i64 %762
  %764 = load ptr, ptr %41, align 8, !tbaa !5
  %765 = getelementptr inbounds float, ptr %764, i64 1
  call void @scopy_(ptr noundef %756, ptr noundef %763, ptr noundef @c__1, ptr noundef %765, ptr noundef @c__1)
  %766 = load ptr, ptr %26, align 8, !tbaa !5
  %767 = load ptr, ptr %26, align 8, !tbaa !5
  %768 = load ptr, ptr %30, align 8, !tbaa !5
  %769 = load i32, ptr %48, align 4, !tbaa !9
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds float, ptr %768, i64 %770
  %772 = load ptr, ptr %31, align 8, !tbaa !5
  %773 = load ptr, ptr %41, align 8, !tbaa !5
  %774 = getelementptr inbounds float, ptr %773, i64 1
  %775 = load ptr, ptr %39, align 8, !tbaa !5
  %776 = load i32, ptr %64, align 4, !tbaa !9
  %777 = load i32, ptr %49, align 4, !tbaa !9
  %778 = mul nsw i32 %776, %777
  %779 = add nsw i32 %778, 1
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds float, ptr %775, i64 %780
  call void @sgemv_(ptr noundef @.str.4, ptr noundef %766, ptr noundef %767, ptr noundef @c_b14, ptr noundef %771, ptr noundef %772, ptr noundef %774, ptr noundef @c__1, ptr noundef @c_b34, ptr noundef %781, ptr noundef @c__1)
  br label %782

782:                                              ; preds = %755
  %783 = load i32, ptr %64, align 4, !tbaa !9
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr %64, align 4, !tbaa !9
  br label %751, !llvm.loop !16

785:                                              ; preds = %751
  br label %786

786:                                              ; preds = %785, %668
  br label %787

787:                                              ; preds = %786, %655
  %788 = load i32, ptr %74, align 4, !tbaa !9
  %789 = icmp eq i32 %788, 1
  br i1 %789, label %790, label %806

790:                                              ; preds = %787
  %791 = load ptr, ptr %44, align 8, !tbaa !5
  %792 = load i32, ptr %791, align 4, !tbaa !9
  %793 = icmp eq i32 %792, 0
  br i1 %793, label %794, label %797

794:                                              ; preds = %790
  %795 = load ptr, ptr %37, align 8, !tbaa !5
  %796 = load i32, ptr %795, align 4, !tbaa !9
  store i32 %796, ptr %58, align 4, !tbaa !9
  br label %801

797:                                              ; preds = %790
  %798 = load ptr, ptr %44, align 8, !tbaa !5
  %799 = load i32, ptr %798, align 4, !tbaa !9
  %800 = sub nsw i32 %799, 1
  store i32 %800, ptr %58, align 4, !tbaa !9
  br label %801

801:                                              ; preds = %797, %794
  %802 = load float, ptr %66, align 4, !tbaa !11
  %803 = fdiv float 1.000000e+00, %802
  store float %803, ptr %53, align 4, !tbaa !11
  %804 = load ptr, ptr %38, align 8, !tbaa !5
  %805 = getelementptr inbounds float, ptr %804, i64 1
  call void @sscal_(ptr noundef %58, ptr noundef %53, ptr noundef %805, ptr noundef @c__1)
  br label %806

806:                                              ; preds = %801, %787
  %807 = load i32, ptr %70, align 4, !tbaa !9
  %808 = icmp ne i32 %807, 0
  br i1 %808, label %809, label %943

809:                                              ; preds = %806
  %810 = load ptr, ptr %37, align 8, !tbaa !5
  %811 = load i32, ptr %810, align 4, !tbaa !9
  %812 = sub nsw i32 %811, 1
  store i32 %812, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %813

813:                                              ; preds = %939, %809
  %814 = load i32, ptr %64, align 4, !tbaa !9
  %815 = load i32, ptr %51, align 4, !tbaa !9
  %816 = icmp sle i32 %814, %815
  br i1 %816, label %817, label %942

817:                                              ; preds = %813
  store i32 0, ptr %63, align 4, !tbaa !9
  %818 = load ptr, ptr %38, align 8, !tbaa !5
  %819 = load i32, ptr %64, align 4, !tbaa !9
  %820 = sext i32 %819 to i64
  %821 = getelementptr inbounds float, ptr %818, i64 %820
  %822 = load float, ptr %821, align 4, !tbaa !11
  store float %822, ptr %88, align 4, !tbaa !11
  %823 = load ptr, ptr %37, align 8, !tbaa !5
  %824 = load i32, ptr %823, align 4, !tbaa !9
  store i32 %824, ptr %52, align 4, !tbaa !9
  %825 = load i32, ptr %64, align 4, !tbaa !9
  %826 = add nsw i32 %825, 1
  store i32 %826, ptr %71, align 4, !tbaa !9
  br label %827

827:                                              ; preds = %847, %817
  %828 = load i32, ptr %71, align 4, !tbaa !9
  %829 = load i32, ptr %52, align 4, !tbaa !9
  %830 = icmp sle i32 %828, %829
  br i1 %830, label %831, label %850

831:                                              ; preds = %827
  %832 = load ptr, ptr %38, align 8, !tbaa !5
  %833 = load i32, ptr %71, align 4, !tbaa !9
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds float, ptr %832, i64 %834
  %836 = load float, ptr %835, align 4, !tbaa !11
  %837 = load float, ptr %88, align 4, !tbaa !11
  %838 = fcmp olt float %836, %837
  br i1 %838, label %839, label %846

839:                                              ; preds = %831
  %840 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %840, ptr %63, align 4, !tbaa !9
  %841 = load ptr, ptr %38, align 8, !tbaa !5
  %842 = load i32, ptr %71, align 4, !tbaa !9
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds float, ptr %841, i64 %843
  %845 = load float, ptr %844, align 4, !tbaa !11
  store float %845, ptr %88, align 4, !tbaa !11
  br label %846

846:                                              ; preds = %839, %831
  br label %847

847:                                              ; preds = %846
  %848 = load i32, ptr %71, align 4, !tbaa !9
  %849 = add nsw i32 %848, 1
  store i32 %849, ptr %71, align 4, !tbaa !9
  br label %827, !llvm.loop !17

850:                                              ; preds = %827
  %851 = load i32, ptr %63, align 4, !tbaa !9
  %852 = icmp ne i32 %851, 0
  br i1 %852, label %853, label %938

853:                                              ; preds = %850
  %854 = load ptr, ptr %42, align 8, !tbaa !5
  %855 = load i32, ptr %75, align 4, !tbaa !9
  %856 = load i32, ptr %63, align 4, !tbaa !9
  %857 = add nsw i32 %855, %856
  %858 = sub nsw i32 %857, 1
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds i32, ptr %854, i64 %859
  %861 = load i32, ptr %860, align 4, !tbaa !9
  store i32 %861, ptr %62, align 4, !tbaa !9
  %862 = load ptr, ptr %38, align 8, !tbaa !5
  %863 = load i32, ptr %64, align 4, !tbaa !9
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds float, ptr %862, i64 %864
  %866 = load float, ptr %865, align 4, !tbaa !11
  %867 = load ptr, ptr %38, align 8, !tbaa !5
  %868 = load i32, ptr %63, align 4, !tbaa !9
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds float, ptr %867, i64 %869
  store float %866, ptr %870, align 4, !tbaa !11
  %871 = load ptr, ptr %42, align 8, !tbaa !5
  %872 = load i32, ptr %75, align 4, !tbaa !9
  %873 = load i32, ptr %64, align 4, !tbaa !9
  %874 = add nsw i32 %872, %873
  %875 = sub nsw i32 %874, 1
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds i32, ptr %871, i64 %876
  %878 = load i32, ptr %877, align 4, !tbaa !9
  %879 = load ptr, ptr %42, align 8, !tbaa !5
  %880 = load i32, ptr %75, align 4, !tbaa !9
  %881 = load i32, ptr %63, align 4, !tbaa !9
  %882 = add nsw i32 %880, %881
  %883 = sub nsw i32 %882, 1
  %884 = sext i32 %883 to i64
  %885 = getelementptr inbounds i32, ptr %879, i64 %884
  store i32 %878, ptr %885, align 4, !tbaa !9
  %886 = load float, ptr %88, align 4, !tbaa !11
  %887 = load ptr, ptr %38, align 8, !tbaa !5
  %888 = load i32, ptr %64, align 4, !tbaa !9
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds float, ptr %887, i64 %889
  store float %886, ptr %890, align 4, !tbaa !11
  %891 = load i32, ptr %62, align 4, !tbaa !9
  %892 = load ptr, ptr %42, align 8, !tbaa !5
  %893 = load i32, ptr %75, align 4, !tbaa !9
  %894 = load i32, ptr %64, align 4, !tbaa !9
  %895 = add nsw i32 %893, %894
  %896 = sub nsw i32 %895, 1
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds i32, ptr %892, i64 %897
  store i32 %891, ptr %898, align 4, !tbaa !9
  %899 = load ptr, ptr %26, align 8, !tbaa !5
  %900 = load ptr, ptr %39, align 8, !tbaa !5
  %901 = load i32, ptr %63, align 4, !tbaa !9
  %902 = load i32, ptr %49, align 4, !tbaa !9
  %903 = mul nsw i32 %901, %902
  %904 = add nsw i32 %903, 1
  %905 = sext i32 %904 to i64
  %906 = getelementptr inbounds float, ptr %900, i64 %905
  %907 = load ptr, ptr %39, align 8, !tbaa !5
  %908 = load i32, ptr %64, align 4, !tbaa !9
  %909 = load i32, ptr %49, align 4, !tbaa !9
  %910 = mul nsw i32 %908, %909
  %911 = add nsw i32 %910, 1
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds float, ptr %907, i64 %912
  call void @sswap_(ptr noundef %899, ptr noundef %906, ptr noundef @c__1, ptr noundef %913, ptr noundef @c__1)
  %914 = load ptr, ptr %44, align 8, !tbaa !5
  %915 = load i32, ptr %914, align 4, !tbaa !9
  %916 = icmp ne i32 %915, 0
  br i1 %916, label %917, label %937

917:                                              ; preds = %853
  %918 = load ptr, ptr %43, align 8, !tbaa !5
  %919 = load i32, ptr %63, align 4, !tbaa !9
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds i32, ptr %918, i64 %920
  %922 = load i32, ptr %921, align 4, !tbaa !9
  store i32 %922, ptr %62, align 4, !tbaa !9
  %923 = load ptr, ptr %43, align 8, !tbaa !5
  %924 = load i32, ptr %64, align 4, !tbaa !9
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds i32, ptr %923, i64 %925
  %927 = load i32, ptr %926, align 4, !tbaa !9
  %928 = load ptr, ptr %43, align 8, !tbaa !5
  %929 = load i32, ptr %63, align 4, !tbaa !9
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds i32, ptr %928, i64 %930
  store i32 %927, ptr %931, align 4, !tbaa !9
  %932 = load i32, ptr %62, align 4, !tbaa !9
  %933 = load ptr, ptr %43, align 8, !tbaa !5
  %934 = load i32, ptr %64, align 4, !tbaa !9
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds i32, ptr %933, i64 %935
  store i32 %932, ptr %936, align 4, !tbaa !9
  br label %937

937:                                              ; preds = %917, %853
  br label %938

938:                                              ; preds = %937, %850
  br label %939

939:                                              ; preds = %938
  %940 = load i32, ptr %64, align 4, !tbaa !9
  %941 = add nsw i32 %940, 1
  store i32 %941, ptr %64, align 4, !tbaa !9
  br label %813, !llvm.loop !18

942:                                              ; preds = %813
  br label %943

943:                                              ; preds = %942, %806
  store i32 1, ptr %89, align 4
  br label %944

944:                                              ; preds = %943, %372, %313, %303
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 1, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #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 @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 @ssbtrd_(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
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b14 = external hidden global float, align 4
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b34 = external hidden global float, align 4

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

48:                                               ; preds = %22
  %49 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not372 = icmp eq i32 %49, 0
  br i1 %.not372, label %.thread400.sink.split, label %50

50:                                               ; preds = %48, %22
  %51 = icmp ne i32 %44, 0
  %52 = icmp ne i32 %45, 0
  %or.cond = select i1 %51, i1 true, i1 %52
  %53 = icmp ne i32 %46, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %53
  br i1 %or.cond3, label %54, label %.thread400.sink.split

54:                                               ; preds = %50
  %.not373 = icmp eq i32 %47, 0
  br i1 %.not373, label %55, label %57

55:                                               ; preds = %54
  %56 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #6
  %.not374 = icmp eq i32 %56, 0
  br i1 %.not374, label %.thread400.sink.split, label %57

57:                                               ; preds = %55, %54
  %58 = load i32, ptr %3, align 4, !tbaa !5
  %59 = icmp slt i32 %58, 0
  br i1 %59, label %.thread400.sink.split, label %60

60:                                               ; preds = %57
  %61 = load i32, ptr %4, align 4, !tbaa !5
  %62 = icmp slt i32 %61, 0
  br i1 %62, label %.thread400.sink.split, label %63

63:                                               ; preds = %60
  %64 = load i32, ptr %6, align 4, !tbaa !5
  %.not375 = icmp sgt i32 %64, %61
  br i1 %.not375, label %65, label %.thread400.sink.split

65:                                               ; preds = %63
  br i1 %.not, label %66, label %69

66:                                               ; preds = %65
  %67 = load i32, ptr %8, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %58, i32 1)
  %68 = icmp slt i32 %67, %spec.select
  br i1 %68, label %.thread400.sink.split, label %69

69:                                               ; preds = %66, %65
  br i1 %52, label %70, label %75

70:                                               ; preds = %69
  %.not413 = icmp eq i32 %58, 0
  br i1 %.not413, label %84, label %71

71:                                               ; preds = %70
  %72 = load float, ptr %10, align 4, !tbaa !9
  %73 = load float, ptr %9, align 4, !tbaa !9
  %74 = fcmp ugt float %72, %73
  br i1 %74, label %84, label %.thread400.sink.split

75:                                               ; preds = %69
  br i1 %53, label %76, label %84

76:                                               ; preds = %75
  %77 = load i32, ptr %11, align 4, !tbaa !5
  %78 = icmp slt i32 %77, 1
  %spec.select393 = tail call i32 @llvm.umax.i32(i32 %58, i32 1)
  %79 = icmp ugt i32 %77, %spec.select393
  %or.cond415 = or i1 %78, %79
  br i1 %or.cond415, label %.thread400.sink.split, label %80

80:                                               ; preds = %76
  %81 = load i32, ptr %12, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %58, i32 %77)
  %82 = icmp slt i32 %81, %.
  %83 = icmp ugt i32 %81, %58
  %or.cond412 = or i1 %82, %83
  br i1 %or.cond412, label %.thread400.sink.split, label %84

84:                                               ; preds = %80, %71, %70, %75
  %.pr = load i32, ptr %21, align 4, !tbaa !5
  %85 = icmp eq i32 %.pr, 0
  br i1 %85, label %86, label %.thread400

86:                                               ; preds = %84
  %87 = load i32, ptr %17, align 4, !tbaa !5
  %88 = icmp slt i32 %87, 1
  %89 = icmp ult i32 %87, %58
  %or.cond450 = and i1 %.not, %89
  %or.cond452 = or i1 %88, %or.cond450
  br i1 %or.cond452, label %.thread400.sink.split, label %.thread

.thread400.sink.split:                            ; preds = %86, %80, %76, %71, %66, %63, %60, %57, %55, %50, %48
  %.sink451 = phi i32 [ -1, %48 ], [ -2, %50 ], [ -3, %55 ], [ -4, %57 ], [ -5, %60 ], [ -7, %63 ], [ -9, %66 ], [ -11, %71 ], [ -12, %76 ], [ -13, %80 ], [ -18, %86 ]
  store i32 %.sink451, ptr %21, align 4, !tbaa !5
  br label %.thread400

.thread400:                                       ; preds = %.thread400.sink.split, %84
  %90 = phi i32 [ %.pr, %84 ], [ %.sink451, %.thread400.sink.split ]
  %91 = sub nsw i32 0, %90
  store i32 %91, ptr %23, align 4, !tbaa !5
  %92 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %23, i32 noundef 6) #6
  br label %.loopexit

.thread:                                          ; preds = %86
  store i32 0, ptr %14, align 4, !tbaa !5
  %93 = load i32, ptr %3, align 4, !tbaa !5
  switch i32 %93, label %110 [
    i32 0, label %.loopexit
    i32 1, label %94
  ]

94:                                               ; preds = %.thread
  store i32 1, ptr %14, align 4, !tbaa !5
  br i1 %.not373, label %95, label %101

95:                                               ; preds = %94
  %96 = load i32, ptr %4, align 4, !tbaa !5
  %97 = add i32 %33, 1
  %98 = add i32 %97, %96
  %99 = sext i32 %98 to i64
  %100 = getelementptr inbounds float, ptr %35, i64 %99
  br label %101

101:                                              ; preds = %94, %95
  %.0.in = phi ptr [ %100, %95 ], [ %5, %94 ]
  %.0 = load float, ptr %.0.in, align 4, !tbaa !9
  %.not391 = icmp eq i32 %45, 0
  br i1 %.not391, label %108, label %102

102:                                              ; preds = %101
  %103 = load float, ptr %9, align 4, !tbaa !9
  %104 = fcmp olt float %103, %.0
  br i1 %104, label %105, label %.thread404

105:                                              ; preds = %102
  %106 = load float, ptr %10, align 4, !tbaa !9
  %107 = fcmp ult float %106, %.0
  br i1 %107, label %.thread404, label %108

.thread404:                                       ; preds = %102, %105
  store i32 0, ptr %14, align 4, !tbaa !5
  br label %.loopexit

108:                                              ; preds = %101, %105
  store float %.0, ptr %15, align 4, !tbaa !9
  br i1 %.not, label %109, label %.loopexit

109:                                              ; preds = %108
  store float 1.000000e+00, ptr %16, align 4, !tbaa !9
  br label %.loopexit

110:                                              ; preds = %.thread
  %111 = tail call float @slamch_(ptr noundef nonnull @.str.7) #6
  %112 = tail call float @slamch_(ptr noundef nonnull @.str.8) #6
  %113 = fdiv float %111, %112
  %114 = fdiv float 1.000000e+00, %113
  %sqrtf = tail call float @sqrtf(float noundef %113) #3
  %sqrtf378 = tail call float @sqrtf(float noundef %114) #3
  store float %sqrtf378, ptr %24, align 4, !tbaa !9
  %115 = fpext float %111 to double
  %116 = tail call double @sqrt(double noundef %115) #6
  %117 = tail call double @sqrt(double noundef %116) #6
  %118 = fdiv double 1.000000e+00, %117
  %119 = fptrunc double %118 to float
  %120 = fcmp ole float %sqrtf378, %119
  %121 = select i1 %120, float %sqrtf378, float %119
  %122 = load float, ptr %13, align 4, !tbaa !9
  store float %122, ptr %29, align 4, !tbaa !9
  %.not379 = icmp eq i32 %45, 0
  br i1 %.not379, label %126, label %123

123:                                              ; preds = %110
  %124 = load float, ptr %9, align 4, !tbaa !9
  %125 = load float, ptr %10, align 4, !tbaa !9
  br label %126

126:                                              ; preds = %110, %123
  %.sink = phi float [ %124, %123 ], [ 0.000000e+00, %110 ]
  %storemerge = phi float [ %125, %123 ], [ 0.000000e+00, %110 ]
  store float %.sink, ptr %31, align 4
  store float %storemerge, ptr %32, align 4, !tbaa !9
  %127 = tail call float @slansb_(ptr noundef nonnull @.str.9, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %18) #6
  %128 = fcmp ogt float %127, 0.000000e+00
  %129 = fcmp olt float %127, %sqrtf
  %or.cond394 = select i1 %128, i1 %129, i1 false
  br i1 %or.cond394, label %132, label %130

130:                                              ; preds = %126
  %131 = fcmp ogt float %127, %121
  br i1 %131, label %132, label %145

132:                                              ; preds = %130, %126
  %.pn = phi float [ %sqrtf, %126 ], [ %121, %130 ]
  %storemerge414 = fdiv float %.pn, %127
  store float %storemerge414, ptr %26, align 4, !tbaa !9
  %.str.11..str.10 = select i1 %.not373, ptr @.str.11, ptr @.str.10
  call void @slascl_(ptr noundef nonnull %.str.11..str.10, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef nonnull @c_b14, ptr noundef nonnull %26, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %21) #6
  %133 = load float, ptr %13, align 4, !tbaa !9
  %134 = fcmp ogt float %133, 0.000000e+00
  br i1 %134, label %135, label %138

135:                                              ; preds = %132
  %136 = load float, ptr %26, align 4, !tbaa !9
  %137 = fmul float %133, %136
  store float %137, ptr %29, align 4, !tbaa !9
  br label %138

138:                                              ; preds = %135, %132
  br i1 %.not379, label %145, label %139

139:                                              ; preds = %138
  %140 = load float, ptr %9, align 4, !tbaa !9
  %141 = load float, ptr %26, align 4, !tbaa !9
  %142 = fmul float %140, %141
  store float %142, ptr %31, align 4, !tbaa !9
  %143 = load float, ptr %10, align 4, !tbaa !9
  %144 = fmul float %141, %143
  store float %144, ptr %32, align 4, !tbaa !9
  br label %145

145:                                              ; preds = %130, %138, %139
  %146 = phi i1 [ true, %138 ], [ true, %139 ], [ false, %130 ]
  %147 = load i32, ptr %3, align 4, !tbaa !5
  %148 = add nsw i32 %147, 1
  %149 = add nsw i32 %148, %147
  %150 = sext i32 %148 to i64
  %151 = getelementptr inbounds float, ptr %40, i64 %150
  %152 = sext i32 %149 to i64
  %153 = getelementptr inbounds float, ptr %40, i64 %152
  call void @ssbtrd_(ptr noundef %0, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %18, ptr noundef nonnull %151, ptr noundef %7, ptr noundef %8, ptr noundef nonnull %153, ptr noundef nonnull %27) #6
  %.not381 = icmp eq i32 %46, 0
  br i1 %.not381, label %161, label %154

154:                                              ; preds = %145
  %155 = load i32, ptr %11, align 4, !tbaa !5
  %156 = icmp eq i32 %155, 1
  br i1 %156, label %157, label %161

157:                                              ; preds = %154
  %158 = load i32, ptr %12, align 4, !tbaa !5
  %159 = load i32, ptr %3, align 4, !tbaa !5
  %160 = icmp eq i32 %158, %159
  br label %161

161:                                              ; preds = %157, %154, %145
  %162 = phi i1 [ false, %154 ], [ false, %145 ], [ %160, %157 ]
  %or.cond5 = or i1 %51, %162
  br i1 %or.cond5, label %163, label %188

163:                                              ; preds = %161
  %164 = load float, ptr %13, align 4, !tbaa !9
  %165 = fcmp ugt float %164, 0.000000e+00
  br i1 %165, label %188, label %166

166:                                              ; preds = %163
  call void @scopy_(ptr noundef nonnull %3, ptr noundef %18, ptr noundef nonnull @c__1, ptr noundef %15, ptr noundef nonnull @c__1) #6
  %167 = load i32, ptr %3, align 4, !tbaa !5
  %168 = shl i32 %167, 1
  %169 = add nsw i32 %168, %149
  br i1 %.not, label %174, label %170

170:                                              ; preds = %166
  %171 = add nsw i32 %167, -1
  store i32 %171, ptr %23, align 4, !tbaa !5
  %172 = sext i32 %169 to i64
  %173 = getelementptr inbounds float, ptr %40, i64 %172
  call void @scopy_(ptr noundef nonnull %23, ptr noundef nonnull %151, ptr noundef nonnull @c__1, ptr noundef nonnull %173, ptr noundef nonnull @c__1) #6
  call void @ssterf_(ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %173, ptr noundef nonnull %21) #6
  br label %.loopexit417

174:                                              ; preds = %166
  call void @slacpy_(ptr noundef nonnull @.str.1, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %7, ptr noundef %8, ptr noundef %16, ptr noundef nonnull %17) #6
  %175 = load i32, ptr %3, align 4, !tbaa !5
  %176 = add nsw i32 %175, -1
  store i32 %176, ptr %23, align 4, !tbaa !5
  %177 = sext i32 %169 to i64
  %178 = getelementptr inbounds float, ptr %40, i64 %177
  call void @scopy_(ptr noundef nonnull %23, ptr noundef nonnull %151, ptr noundef nonnull @c__1, ptr noundef nonnull %178, ptr noundef nonnull @c__1) #6
  call void @ssteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %178, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %153, ptr noundef nonnull %21) #6
  %179 = load i32, ptr %21, align 4, !tbaa !5
  %180 = icmp eq i32 %179, 0
  br i1 %180, label %181, label %.thread409

181:                                              ; preds = %174
  %182 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %182, ptr %23, align 4, !tbaa !5
  %.not382418 = icmp slt i32 %182, 1
  br i1 %.not382418, label %.loopexit417, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %181
  %183 = zext nneg i32 %182 to i64
  %184 = shl nuw nsw i64 %183, 2
  call void @llvm.memset.p0.i64(ptr align 4 %20, i8 0, i64 %184, i1 false), !tbaa !5
  br label %.loopexit417

.loopexit417:                                     ; preds = %.lr.ph.preheader, %181, %170
  %.pr408 = load i32, ptr %21, align 4, !tbaa !5
  %185 = icmp eq i32 %.pr408, 0
  br i1 %185, label %186, label %.thread409

186:                                              ; preds = %.loopexit417
  %187 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %187, ptr %14, align 4, !tbaa !5
  br label %.loopexit416

.thread409:                                       ; preds = %174, %.loopexit417
  store i32 0, ptr %21, align 4, !tbaa !5
  br label %188

188:                                              ; preds = %161, %.thread409, %163
  %.396 = select i1 %.not, i8 66, i8 69
  store i8 %.396, ptr %28, align 1, !tbaa !11
  %189 = load i32, ptr %3, align 4, !tbaa !5
  %190 = add nsw i32 %189, 1
  %191 = add nsw i32 %190, %189
  %192 = sext i32 %190 to i64
  %193 = getelementptr inbounds i32, ptr %41, i64 %192
  %194 = sext i32 %191 to i64
  %195 = getelementptr inbounds i32, ptr %41, i64 %194
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %28, ptr noundef nonnull %3, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %29, ptr noundef %18, ptr noundef nonnull %151, ptr noundef nonnull %14, ptr noundef nonnull %30, ptr noundef %15, ptr noundef %19, ptr noundef nonnull %193, ptr noundef nonnull %153, ptr noundef nonnull %195, ptr noundef nonnull %21) #6
  br i1 %.not, label %196, label %.loopexit416

196:                                              ; preds = %188
  call void @sstein_(ptr noundef nonnull %3, ptr noundef %18, ptr noundef nonnull %151, ptr noundef nonnull %14, ptr noundef %15, ptr noundef %19, ptr noundef nonnull %193, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %153, ptr noundef nonnull %195, ptr noundef %20, ptr noundef nonnull %21) #6
  %197 = load i32, ptr %14, align 4, !tbaa !5
  store i32 %197, ptr %23, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %39, i64 4
  %.not384420 = icmp slt i32 %197, 1
  br i1 %.not384420, label %.loopexit416, label %.lr.ph422.preheader

.lr.ph422.preheader:                              ; preds = %196
  %198 = sext i32 %37 to i64
  br label %.lr.ph422

.lr.ph422:                                        ; preds = %.lr.ph422.preheader, %.lr.ph422
  %indvars.iv = phi i64 [ 1, %.lr.ph422.preheader ], [ %indvars.iv.next, %.lr.ph422 ]
  %199 = mul nsw i64 %indvars.iv, %198
  %gep = getelementptr float, ptr %invariant.gep, i64 %199
  call void @scopy_(ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %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_b14, ptr noundef %7, ptr noundef %8, ptr noundef %18, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b34, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %200 = load i32, ptr %23, align 4, !tbaa !5
  %201 = sext i32 %200 to i64
  %.not384.not = icmp slt i64 %indvars.iv, %201
  br i1 %.not384.not, label %.lr.ph422, label %.loopexit416, !llvm.loop !12

.loopexit416:                                     ; preds = %.lr.ph422, %196, %188, %186
  br i1 %146, label %202, label %212

202:                                              ; preds = %.loopexit416
  %203 = load i32, ptr %21, align 4, !tbaa !5
  %204 = icmp eq i32 %203, 0
  br i1 %204, label %205, label %207

205:                                              ; preds = %202
  %206 = load i32, ptr %14, align 4, !tbaa !5
  br label %209

207:                                              ; preds = %202
  %208 = add nsw i32 %203, -1
  br label %209

209:                                              ; preds = %207, %205
  %storemerge385 = phi i32 [ %208, %207 ], [ %206, %205 ]
  store i32 %storemerge385, ptr %25, align 4, !tbaa !5
  %210 = load float, ptr %26, align 4, !tbaa !9
  %211 = fdiv float 1.000000e+00, %210
  store float %211, ptr %24, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %25, ptr noundef nonnull %24, ptr noundef %15, ptr noundef nonnull @c__1) #6
  br label %212

212:                                              ; preds = %209, %.loopexit416
  br i1 %.not, label %213, label %.loopexit

213:                                              ; preds = %212
  %214 = load i32, ptr %14, align 4, !tbaa !5
  %215 = add nsw i32 %214, -1
  store i32 %215, ptr %23, align 4, !tbaa !5
  %invariant.gep429 = getelementptr i8, ptr %39, i64 4
  %.not386433 = icmp slt i32 %214, 2
  br i1 %.not386433, label %.loopexit, label %.lr.ph436.preheader

.lr.ph436.preheader:                              ; preds = %213
  %216 = sext i32 %37 to i64
  br label %.lr.ph436

.lr.ph436:                                        ; preds = %.lr.ph436.preheader, %._crit_edge.thread
  %indvar = phi i32 [ 0, %.lr.ph436.preheader ], [ %indvar.next, %._crit_edge.thread ]
  %indvars.iv444 = phi i64 [ 1, %.lr.ph436.preheader ], [ %indvars.iv.next445, %._crit_edge.thread ]
  %indvars.iv439 = phi i64 [ 2, %.lr.ph436.preheader ], [ %indvars.iv.next440, %._crit_edge.thread ]
  %217 = getelementptr inbounds float, ptr %36, i64 %indvars.iv444
  %218 = load float, ptr %217, align 4, !tbaa !9
  %219 = load i32, ptr %14, align 4, !tbaa !5
  %indvars.iv.next445 = add nuw nsw i64 %indvars.iv444, 1
  %220 = sext i32 %219 to i64
  %.not387423.not = icmp slt i64 %indvars.iv444, %220
  br i1 %.not387423.not, label %.lr.ph427.preheader, label %._crit_edge.thread

.lr.ph427.preheader:                              ; preds = %.lr.ph436
  %221 = xor i32 %indvar, -1
  %222 = add i32 %219, %221
  %reass.sub = sub i32 %219, %indvar
  %xtraiter = and i32 %222, 1
  %223 = icmp eq i32 %reass.sub, 2
  br i1 %223, label %._crit_edge.unr-lcssa, label %.lr.ph427.preheader.new

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

.lr.ph427:                                        ; preds = %.lr.ph427, %.lr.ph427.preheader.new
  %indvars.iv441 = phi i64 [ %indvars.iv439, %.lr.ph427.preheader.new ], [ %indvars.iv.next442.1, %.lr.ph427 ]
  %.1426 = phi float [ %218, %.lr.ph427.preheader.new ], [ %.2.1, %.lr.ph427 ]
  %.1351425 = phi i32 [ 0, %.lr.ph427.preheader.new ], [ %.2352.1, %.lr.ph427 ]
  %niter = phi i32 [ 0, %.lr.ph427.preheader.new ], [ %niter.next.1, %.lr.ph427 ]
  %224 = getelementptr inbounds float, ptr %36, i64 %indvars.iv441
  %225 = load float, ptr %224, align 4, !tbaa !9
  %226 = fcmp olt float %225, %.1426
  %227 = trunc nuw i64 %indvars.iv441 to i32
  %.2352 = select i1 %226, i32 %227, i32 %.1351425
  %.2 = select i1 %226, float %225, float %.1426
  %228 = getelementptr float, ptr %15, i64 %indvars.iv441
  %229 = load float, ptr %228, align 4, !tbaa !9
  %230 = fcmp olt float %229, %.2
  %231 = trunc i64 %indvars.iv441 to i32
  %232 = add i32 %231, 1
  %.2352.1 = select i1 %230, i32 %232, i32 %.2352
  %.2.1 = select i1 %230, float %229, float %.2
  %indvars.iv.next442.1 = add nuw nsw i64 %indvars.iv441, 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.ph427, !llvm.loop !14

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph427, %.lr.ph427.preheader
  %.2352.lcssa.ph = phi i32 [ poison, %.lr.ph427.preheader ], [ %.2352.1, %.lr.ph427 ]
  %.2.lcssa.ph = phi float [ poison, %.lr.ph427.preheader ], [ %.2.1, %.lr.ph427 ]
  %indvars.iv441.unr = phi i64 [ %indvars.iv439, %.lr.ph427.preheader ], [ %indvars.iv.next442.1, %.lr.ph427 ]
  %.1426.unr = phi float [ %218, %.lr.ph427.preheader ], [ %.2.1, %.lr.ph427 ]
  %.1351425.unr = phi i32 [ 0, %.lr.ph427.preheader ], [ %.2352.1, %.lr.ph427 ]
  %lcmp.mod.not = icmp eq i32 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph427.epil

.lr.ph427.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %233 = getelementptr inbounds float, ptr %36, i64 %indvars.iv441.unr
  %234 = load float, ptr %233, align 4, !tbaa !9
  %235 = fcmp olt float %234, %.1426.unr
  %236 = trunc nuw i64 %indvars.iv441.unr to i32
  %.2352.epil = select i1 %235, i32 %236, i32 %.1351425.unr
  %.2.epil = select i1 %235, float %234, float %.1426.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph427.epil
  %.2352.lcssa = phi i32 [ %.2352.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.2352.epil, %.lr.ph427.epil ]
  %.2.lcssa = phi float [ %.2.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.2.epil, %.lr.ph427.epil ]
  %.not388 = icmp eq i32 %.2352.lcssa, 0
  br i1 %.not388, label %._crit_edge.thread, label %237

237:                                              ; preds = %._crit_edge
  %238 = sext i32 %.2352.lcssa to i64
  %239 = getelementptr inbounds i32, ptr %41, i64 %238
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = getelementptr inbounds float, ptr %36, i64 %238
  store float %218, ptr %241, align 4, !tbaa !9
  %242 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv444
  %243 = load i32, ptr %242, align 4, !tbaa !5
  store i32 %243, ptr %239, align 4, !tbaa !5
  store float %.2.lcssa, ptr %217, align 4, !tbaa !9
  store i32 %240, ptr %242, align 4, !tbaa !5
  %244 = mul nsw i32 %.2352.lcssa, %37
  %245 = sext i32 %244 to i64
  %gep430 = getelementptr float, ptr %invariant.gep429, i64 %245
  %246 = mul nsw i64 %indvars.iv444, %216
  %gep432 = getelementptr float, ptr %invariant.gep429, i64 %246
  call void @sswap_(ptr noundef nonnull %3, ptr noundef %gep430, ptr noundef nonnull @c__1, ptr noundef %gep432, ptr noundef nonnull @c__1) #6
  %247 = load i32, ptr %21, align 4, !tbaa !5
  %.not389 = icmp eq i32 %247, 0
  br i1 %.not389, label %._crit_edge.thread, label %248

248:                                              ; preds = %237
  %249 = getelementptr inbounds i32, ptr %42, i64 %238
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = getelementptr inbounds i32, ptr %42, i64 %indvars.iv444
  %252 = load i32, ptr %251, align 4, !tbaa !5
  store i32 %252, ptr %249, align 4, !tbaa !5
  store i32 %250, ptr %251, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph436, %._crit_edge, %248, %237
  %253 = load i32, ptr %23, align 4, !tbaa !5
  %254 = sext i32 %253 to i64
  %.not386.not = icmp slt i64 %indvars.iv444, %254
  %indvars.iv.next440 = add nuw nsw i64 %indvars.iv439, 1
  %indvar.next = add i32 %indvar, 1
  br i1 %.not386.not, label %.lr.ph436, label %.loopexit, !llvm.loop !15

.loopexit:                                        ; preds = %._crit_edge.thread, %213, %.thread404, %212, %109, %108, %.thread, %.thread400
  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 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 1, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #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 @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 @ssbtrd_(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