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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @spbsvx_(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) #0 {
  %22 = alloca i32, align 4
  %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 i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca i64, align 8
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca float, align 4
  %55 = alloca float, align 4
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca float, align 4
  %61 = alloca float, align 4
  %62 = alloca float, align 4
  %63 = alloca float, align 4
  %64 = alloca float, align 4
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca float, align 4
  %70 = alloca i64, align 8
  %71 = alloca float, align 4
  %72 = 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
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #3
  %73 = load ptr, ptr %29, align 8, !tbaa !5
  %74 = load i64, ptr %73, align 8, !tbaa !9
  store i64 %74, ptr %44, align 8, !tbaa !9
  %75 = load i64, ptr %44, align 8, !tbaa !9
  %76 = add nsw i64 1, %75
  store i64 %76, ptr %45, align 8, !tbaa !9
  %77 = load i64, ptr %45, align 8, !tbaa !9
  %78 = load ptr, ptr %28, align 8, !tbaa !5
  %79 = sub i64 0, %77
  %80 = getelementptr inbounds float, ptr %78, i64 %79
  store ptr %80, ptr %28, align 8, !tbaa !5
  %81 = load ptr, ptr %31, align 8, !tbaa !5
  %82 = load i64, ptr %81, align 8, !tbaa !9
  store i64 %82, ptr %46, align 8, !tbaa !9
  %83 = load i64, ptr %46, align 8, !tbaa !9
  %84 = add nsw i64 1, %83
  store i64 %84, ptr %47, align 8, !tbaa !9
  %85 = load i64, ptr %47, align 8, !tbaa !9
  %86 = load ptr, ptr %30, align 8, !tbaa !5
  %87 = sub i64 0, %85
  %88 = getelementptr inbounds float, ptr %86, i64 %87
  store ptr %88, ptr %30, align 8, !tbaa !5
  %89 = load ptr, ptr %33, align 8, !tbaa !5
  %90 = getelementptr inbounds float, ptr %89, i32 -1
  store ptr %90, ptr %33, align 8, !tbaa !5
  %91 = load ptr, ptr %35, align 8, !tbaa !5
  %92 = load i64, ptr %91, align 8, !tbaa !9
  store i64 %92, ptr %48, align 8, !tbaa !9
  %93 = load i64, ptr %48, align 8, !tbaa !9
  %94 = add nsw i64 1, %93
  store i64 %94, ptr %49, align 8, !tbaa !9
  %95 = load i64, ptr %49, align 8, !tbaa !9
  %96 = load ptr, ptr %34, align 8, !tbaa !5
  %97 = sub i64 0, %95
  %98 = getelementptr inbounds float, ptr %96, i64 %97
  store ptr %98, ptr %34, align 8, !tbaa !5
  %99 = load ptr, ptr %37, align 8, !tbaa !5
  %100 = load i64, ptr %99, align 8, !tbaa !9
  store i64 %100, ptr %50, align 8, !tbaa !9
  %101 = load i64, ptr %50, align 8, !tbaa !9
  %102 = add nsw i64 1, %101
  store i64 %102, ptr %51, align 8, !tbaa !9
  %103 = load i64, ptr %51, align 8, !tbaa !9
  %104 = load ptr, ptr %36, align 8, !tbaa !5
  %105 = sub i64 0, %103
  %106 = getelementptr inbounds float, ptr %104, i64 %105
  store ptr %106, ptr %36, align 8, !tbaa !5
  %107 = load ptr, ptr %39, align 8, !tbaa !5
  %108 = getelementptr inbounds float, ptr %107, i32 -1
  store ptr %108, ptr %39, align 8, !tbaa !5
  %109 = load ptr, ptr %40, align 8, !tbaa !5
  %110 = getelementptr inbounds float, ptr %109, i32 -1
  store ptr %110, ptr %40, align 8, !tbaa !5
  %111 = load ptr, ptr %41, align 8, !tbaa !5
  %112 = getelementptr inbounds float, ptr %111, i32 -1
  store ptr %112, ptr %41, align 8, !tbaa !5
  %113 = load ptr, ptr %42, align 8, !tbaa !5
  %114 = getelementptr inbounds i64, ptr %113, i32 -1
  store ptr %114, ptr %42, align 8, !tbaa !5
  %115 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 0, ptr %115, align 8, !tbaa !9
  %116 = load ptr, ptr %23, align 8, !tbaa !5
  %117 = call i64 @lsame_(ptr noundef %116, ptr noundef @.str)
  store i64 %117, ptr %68, align 8, !tbaa !9
  %118 = load ptr, ptr %23, align 8, !tbaa !5
  %119 = call i64 @lsame_(ptr noundef %118, ptr noundef @.str.1)
  store i64 %119, ptr %65, align 8, !tbaa !9
  %120 = load ptr, ptr %24, align 8, !tbaa !5
  %121 = call i64 @lsame_(ptr noundef %120, ptr noundef @.str.2)
  store i64 %121, ptr %67, align 8, !tbaa !9
  %122 = load i64, ptr %68, align 8, !tbaa !9
  %123 = icmp ne i64 %122, 0
  br i1 %123, label %127, label %124

124:                                              ; preds = %21
  %125 = load i64, ptr %65, align 8, !tbaa !9
  %126 = icmp ne i64 %125, 0
  br i1 %126, label %127, label %129

127:                                              ; preds = %124, %21
  %128 = load ptr, ptr %32, align 8, !tbaa !5
  store i8 78, ptr %128, align 1, !tbaa !11
  store i64 0, ptr %66, align 8, !tbaa !9
  br label %136

129:                                              ; preds = %124
  %130 = load ptr, ptr %32, align 8, !tbaa !5
  %131 = call i64 @lsame_(ptr noundef %130, ptr noundef @.str.3)
  store i64 %131, ptr %66, align 8, !tbaa !9
  %132 = call double @slamch_(ptr noundef @.str.4)
  %133 = fptrunc double %132 to float
  store float %133, ptr %71, align 4, !tbaa !12
  %134 = load float, ptr %71, align 4, !tbaa !12
  %135 = fdiv float 1.000000e+00, %134
  store float %135, ptr %69, align 4, !tbaa !12
  br label %136

136:                                              ; preds = %129, %127
  %137 = load i64, ptr %68, align 8, !tbaa !9
  %138 = icmp ne i64 %137, 0
  br i1 %138, label %148, label %139

139:                                              ; preds = %136
  %140 = load i64, ptr %65, align 8, !tbaa !9
  %141 = icmp ne i64 %140, 0
  br i1 %141, label %148, label %142

142:                                              ; preds = %139
  %143 = load ptr, ptr %23, align 8, !tbaa !5
  %144 = call i64 @lsame_(ptr noundef %143, ptr noundef @.str.5)
  %145 = icmp ne i64 %144, 0
  br i1 %145, label %148, label %146

146:                                              ; preds = %142
  %147 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -1, ptr %147, align 8, !tbaa !9
  br label %332

148:                                              ; preds = %142, %139, %136
  %149 = load i64, ptr %67, align 8, !tbaa !9
  %150 = icmp ne i64 %149, 0
  br i1 %150, label %157, label %151

151:                                              ; preds = %148
  %152 = load ptr, ptr %24, align 8, !tbaa !5
  %153 = call i64 @lsame_(ptr noundef %152, ptr noundef @.str.6)
  %154 = icmp ne i64 %153, 0
  br i1 %154, label %157, label %155

155:                                              ; preds = %151
  %156 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -2, ptr %156, align 8, !tbaa !9
  br label %331

157:                                              ; preds = %151, %148
  %158 = load ptr, ptr %25, align 8, !tbaa !5
  %159 = load i64, ptr %158, align 8, !tbaa !9
  %160 = icmp slt i64 %159, 0
  br i1 %160, label %161, label %163

161:                                              ; preds = %157
  %162 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -3, ptr %162, align 8, !tbaa !9
  br label %330

163:                                              ; preds = %157
  %164 = load ptr, ptr %26, align 8, !tbaa !5
  %165 = load i64, ptr %164, align 8, !tbaa !9
  %166 = icmp slt i64 %165, 0
  br i1 %166, label %167, label %169

167:                                              ; preds = %163
  %168 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -4, ptr %168, align 8, !tbaa !9
  br label %329

169:                                              ; preds = %163
  %170 = load ptr, ptr %27, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = icmp slt i64 %171, 0
  br i1 %172, label %173, label %175

173:                                              ; preds = %169
  %174 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -5, ptr %174, align 8, !tbaa !9
  br label %328

175:                                              ; preds = %169
  %176 = load ptr, ptr %29, align 8, !tbaa !5
  %177 = load i64, ptr %176, align 8, !tbaa !9
  %178 = load ptr, ptr %26, align 8, !tbaa !5
  %179 = load i64, ptr %178, align 8, !tbaa !9
  %180 = add nsw i64 %179, 1
  %181 = icmp slt i64 %177, %180
  br i1 %181, label %182, label %184

182:                                              ; preds = %175
  %183 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -7, ptr %183, align 8, !tbaa !9
  br label %327

184:                                              ; preds = %175
  %185 = load ptr, ptr %31, align 8, !tbaa !5
  %186 = load i64, ptr %185, align 8, !tbaa !9
  %187 = load ptr, ptr %26, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  %189 = add nsw i64 %188, 1
  %190 = icmp slt i64 %186, %189
  br i1 %190, label %191, label %193

191:                                              ; preds = %184
  %192 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -9, ptr %192, align 8, !tbaa !9
  br label %326

193:                                              ; preds = %184
  %194 = load ptr, ptr %23, align 8, !tbaa !5
  %195 = call i64 @lsame_(ptr noundef %194, ptr noundef @.str.5)
  %196 = icmp ne i64 %195, 0
  br i1 %196, label %197, label %206

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

200:                                              ; preds = %197
  %201 = load ptr, ptr %32, align 8, !tbaa !5
  %202 = call i64 @lsame_(ptr noundef %201, ptr noundef @.str)
  %203 = icmp ne i64 %202, 0
  br i1 %203, label %206, label %204

204:                                              ; preds = %200
  %205 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -10, ptr %205, align 8, !tbaa !9
  br label %325

206:                                              ; preds = %200, %197, %193
  %207 = load i64, ptr %66, align 8, !tbaa !9
  %208 = icmp ne i64 %207, 0
  br i1 %208, label %209, label %288

209:                                              ; preds = %206
  %210 = load float, ptr %69, align 4, !tbaa !12
  store float %210, ptr %61, align 4, !tbaa !12
  store float 0.000000e+00, ptr %62, align 4, !tbaa !12
  %211 = load ptr, ptr %25, align 8, !tbaa !5
  %212 = load i64, ptr %211, align 8, !tbaa !9
  store i64 %212, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %213

213:                                              ; preds = %250, %209
  %214 = load i64, ptr %57, align 8, !tbaa !9
  %215 = load i64, ptr %52, align 8, !tbaa !9
  %216 = icmp sle i64 %214, %215
  br i1 %216, label %217, label %253

217:                                              ; preds = %213
  %218 = load float, ptr %61, align 4, !tbaa !12
  store float %218, ptr %54, align 4, !tbaa !12
  %219 = load ptr, ptr %33, align 8, !tbaa !5
  %220 = load i64, ptr %57, align 8, !tbaa !9
  %221 = getelementptr inbounds float, ptr %219, i64 %220
  %222 = load float, ptr %221, align 4, !tbaa !12
  store float %222, ptr %55, align 4, !tbaa !12
  %223 = load float, ptr %54, align 4, !tbaa !12
  %224 = load float, ptr %55, align 4, !tbaa !12
  %225 = fcmp ole float %223, %224
  br i1 %225, label %226, label %228

226:                                              ; preds = %217
  %227 = load float, ptr %54, align 4, !tbaa !12
  br label %230

228:                                              ; preds = %217
  %229 = load float, ptr %55, align 4, !tbaa !12
  br label %230

230:                                              ; preds = %228, %226
  %231 = phi float [ %227, %226 ], [ %229, %228 ]
  %232 = fpext float %231 to double
  %233 = fptrunc double %232 to float
  store float %233, ptr %61, align 4, !tbaa !12
  %234 = load float, ptr %62, align 4, !tbaa !12
  store float %234, ptr %54, align 4, !tbaa !12
  %235 = load ptr, ptr %33, align 8, !tbaa !5
  %236 = load i64, ptr %57, align 8, !tbaa !9
  %237 = getelementptr inbounds float, ptr %235, i64 %236
  %238 = load float, ptr %237, align 4, !tbaa !12
  store float %238, ptr %55, align 4, !tbaa !12
  %239 = load float, ptr %54, align 4, !tbaa !12
  %240 = load float, ptr %55, align 4, !tbaa !12
  %241 = fcmp oge float %239, %240
  br i1 %241, label %242, label %244

242:                                              ; preds = %230
  %243 = load float, ptr %54, align 4, !tbaa !12
  br label %246

244:                                              ; preds = %230
  %245 = load float, ptr %55, align 4, !tbaa !12
  br label %246

246:                                              ; preds = %244, %242
  %247 = phi float [ %243, %242 ], [ %245, %244 ]
  %248 = fpext float %247 to double
  %249 = fptrunc double %248 to float
  store float %249, ptr %62, align 4, !tbaa !12
  br label %250

250:                                              ; preds = %246
  %251 = load i64, ptr %57, align 8, !tbaa !9
  %252 = add nsw i64 %251, 1
  store i64 %252, ptr %57, align 8, !tbaa !9
  br label %213, !llvm.loop !14

253:                                              ; preds = %213
  %254 = load float, ptr %61, align 4, !tbaa !12
  %255 = fcmp ole float %254, 0.000000e+00
  br i1 %255, label %256, label %258

256:                                              ; preds = %253
  %257 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -11, ptr %257, align 8, !tbaa !9
  br label %287

258:                                              ; preds = %253
  %259 = load ptr, ptr %25, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = icmp sgt i64 %260, 0
  br i1 %261, label %262, label %285

262:                                              ; preds = %258
  %263 = load float, ptr %61, align 4, !tbaa !12
  %264 = load float, ptr %71, align 4, !tbaa !12
  %265 = fcmp oge float %263, %264
  br i1 %265, label %266, label %268

266:                                              ; preds = %262
  %267 = load float, ptr %61, align 4, !tbaa !12
  br label %270

268:                                              ; preds = %262
  %269 = load float, ptr %71, align 4, !tbaa !12
  br label %270

270:                                              ; preds = %268, %266
  %271 = phi float [ %267, %266 ], [ %269, %268 ]
  %272 = fpext float %271 to double
  %273 = load float, ptr %62, align 4, !tbaa !12
  %274 = load float, ptr %69, align 4, !tbaa !12
  %275 = fcmp ole float %273, %274
  br i1 %275, label %276, label %278

276:                                              ; preds = %270
  %277 = load float, ptr %62, align 4, !tbaa !12
  br label %280

278:                                              ; preds = %270
  %279 = load float, ptr %69, align 4, !tbaa !12
  br label %280

280:                                              ; preds = %278, %276
  %281 = phi float [ %277, %276 ], [ %279, %278 ]
  %282 = fpext float %281 to double
  %283 = fdiv double %272, %282
  %284 = fptrunc double %283 to float
  store float %284, ptr %63, align 4, !tbaa !12
  br label %286

285:                                              ; preds = %258
  store float 1.000000e+00, ptr %63, align 4, !tbaa !12
  br label %286

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

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

288:                                              ; preds = %287, %206
  %289 = load ptr, ptr %43, align 8, !tbaa !5
  %290 = load i64, ptr %289, align 8, !tbaa !9
  %291 = icmp eq i64 %290, 0
  br i1 %291, label %292, label %324

292:                                              ; preds = %288
  %293 = load ptr, ptr %35, align 8, !tbaa !5
  %294 = load i64, ptr %293, align 8, !tbaa !9
  %295 = load ptr, ptr %25, align 8, !tbaa !5
  %296 = load i64, ptr %295, align 8, !tbaa !9
  %297 = icmp sge i64 1, %296
  br i1 %297, label %298, label %299

298:                                              ; preds = %292
  br label %302

299:                                              ; preds = %292
  %300 = load ptr, ptr %25, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  br label %302

302:                                              ; preds = %299, %298
  %303 = phi i64 [ 1, %298 ], [ %301, %299 ]
  %304 = icmp slt i64 %294, %303
  br i1 %304, label %305, label %307

305:                                              ; preds = %302
  %306 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -13, ptr %306, align 8, !tbaa !9
  br label %323

307:                                              ; preds = %302
  %308 = load ptr, ptr %37, align 8, !tbaa !5
  %309 = load i64, ptr %308, align 8, !tbaa !9
  %310 = load ptr, ptr %25, align 8, !tbaa !5
  %311 = load i64, ptr %310, align 8, !tbaa !9
  %312 = icmp sge i64 1, %311
  br i1 %312, label %313, label %314

313:                                              ; preds = %307
  br label %317

314:                                              ; preds = %307
  %315 = load ptr, ptr %25, align 8, !tbaa !5
  %316 = load i64, ptr %315, align 8, !tbaa !9
  br label %317

317:                                              ; preds = %314, %313
  %318 = phi i64 [ 1, %313 ], [ %316, %314 ]
  %319 = icmp slt i64 %309, %318
  br i1 %319, label %320, label %322

320:                                              ; preds = %317
  %321 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -15, ptr %321, align 8, !tbaa !9
  br label %322

322:                                              ; preds = %320, %317
  br label %323

323:                                              ; preds = %322, %305
  br label %324

324:                                              ; preds = %323, %288
  br label %325

325:                                              ; preds = %324, %204
  br label %326

326:                                              ; preds = %325, %191
  br label %327

327:                                              ; preds = %326, %182
  br label %328

328:                                              ; preds = %327, %173
  br label %329

329:                                              ; preds = %328, %167
  br label %330

330:                                              ; preds = %329, %161
  br label %331

331:                                              ; preds = %330, %155
  br label %332

332:                                              ; preds = %331, %146
  %333 = load ptr, ptr %43, align 8, !tbaa !5
  %334 = load i64, ptr %333, align 8, !tbaa !9
  %335 = icmp ne i64 %334, 0
  br i1 %335, label %336, label %341

336:                                              ; preds = %332
  %337 = load ptr, ptr %43, align 8, !tbaa !5
  %338 = load i64, ptr %337, align 8, !tbaa !9
  %339 = sub nsw i64 0, %338
  store i64 %339, ptr %52, align 8, !tbaa !9
  %340 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %52)
  store i32 0, ptr %22, align 4
  store i32 1, ptr %72, align 4
  br label %696

341:                                              ; preds = %332
  %342 = load i64, ptr %65, align 8, !tbaa !9
  %343 = icmp ne i64 %342, 0
  br i1 %343, label %344, label %372

344:                                              ; preds = %341
  %345 = load ptr, ptr %24, align 8, !tbaa !5
  %346 = load ptr, ptr %25, align 8, !tbaa !5
  %347 = load ptr, ptr %26, align 8, !tbaa !5
  %348 = load ptr, ptr %28, align 8, !tbaa !5
  %349 = load i64, ptr %45, align 8, !tbaa !9
  %350 = getelementptr inbounds float, ptr %348, i64 %349
  %351 = load ptr, ptr %29, align 8, !tbaa !5
  %352 = load ptr, ptr %33, align 8, !tbaa !5
  %353 = getelementptr inbounds float, ptr %352, i64 1
  %354 = call i32 @spbequ_(ptr noundef %345, ptr noundef %346, ptr noundef %347, ptr noundef %350, ptr noundef %351, ptr noundef %353, ptr noundef %63, ptr noundef %60, ptr noundef %70)
  %355 = load i64, ptr %70, align 8, !tbaa !9
  %356 = icmp eq i64 %355, 0
  br i1 %356, label %357, label %371

357:                                              ; preds = %344
  %358 = load ptr, ptr %24, align 8, !tbaa !5
  %359 = load ptr, ptr %25, align 8, !tbaa !5
  %360 = load ptr, ptr %26, align 8, !tbaa !5
  %361 = load ptr, ptr %28, align 8, !tbaa !5
  %362 = load i64, ptr %45, align 8, !tbaa !9
  %363 = getelementptr inbounds float, ptr %361, i64 %362
  %364 = load ptr, ptr %29, align 8, !tbaa !5
  %365 = load ptr, ptr %33, align 8, !tbaa !5
  %366 = getelementptr inbounds float, ptr %365, i64 1
  %367 = load ptr, ptr %32, align 8, !tbaa !5
  %368 = call i32 @slaqsb_(ptr noundef %358, ptr noundef %359, ptr noundef %360, ptr noundef %363, ptr noundef %364, ptr noundef %366, ptr noundef %63, ptr noundef %60, ptr noundef %367)
  %369 = load ptr, ptr %32, align 8, !tbaa !5
  %370 = call i64 @lsame_(ptr noundef %369, ptr noundef @.str.3)
  store i64 %370, ptr %66, align 8, !tbaa !9
  br label %371

371:                                              ; preds = %357, %344
  br label %372

372:                                              ; preds = %371, %341
  %373 = load i64, ptr %66, align 8, !tbaa !9
  %374 = icmp ne i64 %373, 0
  br i1 %374, label %375, label %418

375:                                              ; preds = %372
  %376 = load ptr, ptr %27, align 8, !tbaa !5
  %377 = load i64, ptr %376, align 8, !tbaa !9
  store i64 %377, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %378

378:                                              ; preds = %414, %375
  %379 = load i64, ptr %57, align 8, !tbaa !9
  %380 = load i64, ptr %52, align 8, !tbaa !9
  %381 = icmp sle i64 %379, %380
  br i1 %381, label %382, label %417

382:                                              ; preds = %378
  %383 = load ptr, ptr %25, align 8, !tbaa !5
  %384 = load i64, ptr %383, align 8, !tbaa !9
  store i64 %384, ptr %53, align 8, !tbaa !9
  store i64 1, ptr %56, align 8, !tbaa !9
  br label %385

385:                                              ; preds = %410, %382
  %386 = load i64, ptr %56, align 8, !tbaa !9
  %387 = load i64, ptr %53, align 8, !tbaa !9
  %388 = icmp sle i64 %386, %387
  br i1 %388, label %389, label %413

389:                                              ; preds = %385
  %390 = load ptr, ptr %33, align 8, !tbaa !5
  %391 = load i64, ptr %56, align 8, !tbaa !9
  %392 = getelementptr inbounds float, ptr %390, i64 %391
  %393 = load float, ptr %392, align 4, !tbaa !12
  %394 = load ptr, ptr %34, align 8, !tbaa !5
  %395 = load i64, ptr %56, align 8, !tbaa !9
  %396 = load i64, ptr %57, align 8, !tbaa !9
  %397 = load i64, ptr %48, align 8, !tbaa !9
  %398 = mul nsw i64 %396, %397
  %399 = add nsw i64 %395, %398
  %400 = getelementptr inbounds float, ptr %394, i64 %399
  %401 = load float, ptr %400, align 4, !tbaa !12
  %402 = fmul float %393, %401
  %403 = load ptr, ptr %34, align 8, !tbaa !5
  %404 = load i64, ptr %56, align 8, !tbaa !9
  %405 = load i64, ptr %57, align 8, !tbaa !9
  %406 = load i64, ptr %48, align 8, !tbaa !9
  %407 = mul nsw i64 %405, %406
  %408 = add nsw i64 %404, %407
  %409 = getelementptr inbounds float, ptr %403, i64 %408
  store float %402, ptr %409, align 4, !tbaa !12
  br label %410

410:                                              ; preds = %389
  %411 = load i64, ptr %56, align 8, !tbaa !9
  %412 = add nsw i64 %411, 1
  store i64 %412, ptr %56, align 8, !tbaa !9
  br label %385, !llvm.loop !16

413:                                              ; preds = %385
  br label %414

414:                                              ; preds = %413
  %415 = load i64, ptr %57, align 8, !tbaa !9
  %416 = add nsw i64 %415, 1
  store i64 %416, ptr %57, align 8, !tbaa !9
  br label %378, !llvm.loop !17

417:                                              ; preds = %378
  br label %418

418:                                              ; preds = %417, %372
  %419 = load i64, ptr %68, align 8, !tbaa !9
  %420 = icmp ne i64 %419, 0
  br i1 %420, label %424, label %421

421:                                              ; preds = %418
  %422 = load i64, ptr %65, align 8, !tbaa !9
  %423 = icmp ne i64 %422, 0
  br i1 %423, label %424, label %541

424:                                              ; preds = %421, %418
  %425 = load i64, ptr %67, align 8, !tbaa !9
  %426 = icmp ne i64 %425, 0
  br i1 %426, label %427, label %481

427:                                              ; preds = %424
  %428 = load ptr, ptr %25, align 8, !tbaa !5
  %429 = load i64, ptr %428, align 8, !tbaa !9
  store i64 %429, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %430

430:                                              ; preds = %477, %427
  %431 = load i64, ptr %57, align 8, !tbaa !9
  %432 = load i64, ptr %52, align 8, !tbaa !9
  %433 = icmp sle i64 %431, %432
  br i1 %433, label %434, label %480

434:                                              ; preds = %430
  %435 = load i64, ptr %57, align 8, !tbaa !9
  %436 = load ptr, ptr %26, align 8, !tbaa !5
  %437 = load i64, ptr %436, align 8, !tbaa !9
  %438 = sub nsw i64 %435, %437
  store i64 %438, ptr %53, align 8, !tbaa !9
  %439 = load i64, ptr %53, align 8, !tbaa !9
  %440 = icmp sge i64 %439, 1
  br i1 %440, label %441, label %443

441:                                              ; preds = %434
  %442 = load i64, ptr %53, align 8, !tbaa !9
  br label %444

443:                                              ; preds = %434
  br label %444

444:                                              ; preds = %443, %441
  %445 = phi i64 [ %442, %441 ], [ 1, %443 ]
  store i64 %445, ptr %58, align 8, !tbaa !9
  %446 = load i64, ptr %57, align 8, !tbaa !9
  %447 = load i64, ptr %58, align 8, !tbaa !9
  %448 = sub nsw i64 %446, %447
  %449 = add nsw i64 %448, 1
  store i64 %449, ptr %53, align 8, !tbaa !9
  %450 = load ptr, ptr %28, align 8, !tbaa !5
  %451 = load ptr, ptr %26, align 8, !tbaa !5
  %452 = load i64, ptr %451, align 8, !tbaa !9
  %453 = add nsw i64 %452, 1
  %454 = load i64, ptr %57, align 8, !tbaa !9
  %455 = sub nsw i64 %453, %454
  %456 = load i64, ptr %58, align 8, !tbaa !9
  %457 = add nsw i64 %455, %456
  %458 = load i64, ptr %57, align 8, !tbaa !9
  %459 = load i64, ptr %44, align 8, !tbaa !9
  %460 = mul nsw i64 %458, %459
  %461 = add nsw i64 %457, %460
  %462 = getelementptr inbounds float, ptr %450, i64 %461
  %463 = load ptr, ptr %30, align 8, !tbaa !5
  %464 = load ptr, ptr %26, align 8, !tbaa !5
  %465 = load i64, ptr %464, align 8, !tbaa !9
  %466 = add nsw i64 %465, 1
  %467 = load i64, ptr %57, align 8, !tbaa !9
  %468 = sub nsw i64 %466, %467
  %469 = load i64, ptr %58, align 8, !tbaa !9
  %470 = add nsw i64 %468, %469
  %471 = load i64, ptr %57, align 8, !tbaa !9
  %472 = load i64, ptr %46, align 8, !tbaa !9
  %473 = mul nsw i64 %471, %472
  %474 = add nsw i64 %470, %473
  %475 = getelementptr inbounds float, ptr %463, i64 %474
  %476 = call i32 @f2c_scopy(ptr noundef %53, ptr noundef %462, ptr noundef @c__1, ptr noundef %475, ptr noundef @c__1)
  br label %477

477:                                              ; preds = %444
  %478 = load i64, ptr %57, align 8, !tbaa !9
  %479 = add nsw i64 %478, 1
  store i64 %479, ptr %57, align 8, !tbaa !9
  br label %430, !llvm.loop !18

480:                                              ; preds = %430
  br label %525

481:                                              ; preds = %424
  %482 = load ptr, ptr %25, align 8, !tbaa !5
  %483 = load i64, ptr %482, align 8, !tbaa !9
  store i64 %483, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %484

484:                                              ; preds = %521, %481
  %485 = load i64, ptr %57, align 8, !tbaa !9
  %486 = load i64, ptr %52, align 8, !tbaa !9
  %487 = icmp sle i64 %485, %486
  br i1 %487, label %488, label %524

488:                                              ; preds = %484
  %489 = load i64, ptr %57, align 8, !tbaa !9
  %490 = load ptr, ptr %26, align 8, !tbaa !5
  %491 = load i64, ptr %490, align 8, !tbaa !9
  %492 = add nsw i64 %489, %491
  store i64 %492, ptr %53, align 8, !tbaa !9
  %493 = load i64, ptr %53, align 8, !tbaa !9
  %494 = load ptr, ptr %25, align 8, !tbaa !5
  %495 = load i64, ptr %494, align 8, !tbaa !9
  %496 = icmp sle i64 %493, %495
  br i1 %496, label %497, label %499

497:                                              ; preds = %488
  %498 = load i64, ptr %53, align 8, !tbaa !9
  br label %502

499:                                              ; preds = %488
  %500 = load ptr, ptr %25, align 8, !tbaa !5
  %501 = load i64, ptr %500, align 8, !tbaa !9
  br label %502

502:                                              ; preds = %499, %497
  %503 = phi i64 [ %498, %497 ], [ %501, %499 ]
  store i64 %503, ptr %59, align 8, !tbaa !9
  %504 = load i64, ptr %59, align 8, !tbaa !9
  %505 = load i64, ptr %57, align 8, !tbaa !9
  %506 = sub nsw i64 %504, %505
  %507 = add nsw i64 %506, 1
  store i64 %507, ptr %53, align 8, !tbaa !9
  %508 = load ptr, ptr %28, align 8, !tbaa !5
  %509 = load i64, ptr %57, align 8, !tbaa !9
  %510 = load i64, ptr %44, align 8, !tbaa !9
  %511 = mul nsw i64 %509, %510
  %512 = add nsw i64 %511, 1
  %513 = getelementptr inbounds float, ptr %508, i64 %512
  %514 = load ptr, ptr %30, align 8, !tbaa !5
  %515 = load i64, ptr %57, align 8, !tbaa !9
  %516 = load i64, ptr %46, align 8, !tbaa !9
  %517 = mul nsw i64 %515, %516
  %518 = add nsw i64 %517, 1
  %519 = getelementptr inbounds float, ptr %514, i64 %518
  %520 = call i32 @f2c_scopy(ptr noundef %53, ptr noundef %513, ptr noundef @c__1, ptr noundef %519, ptr noundef @c__1)
  br label %521

521:                                              ; preds = %502
  %522 = load i64, ptr %57, align 8, !tbaa !9
  %523 = add nsw i64 %522, 1
  store i64 %523, ptr %57, align 8, !tbaa !9
  br label %484, !llvm.loop !19

524:                                              ; preds = %484
  br label %525

525:                                              ; preds = %524, %480
  %526 = load ptr, ptr %24, align 8, !tbaa !5
  %527 = load ptr, ptr %25, align 8, !tbaa !5
  %528 = load ptr, ptr %26, align 8, !tbaa !5
  %529 = load ptr, ptr %30, align 8, !tbaa !5
  %530 = load i64, ptr %47, align 8, !tbaa !9
  %531 = getelementptr inbounds float, ptr %529, i64 %530
  %532 = load ptr, ptr %31, align 8, !tbaa !5
  %533 = load ptr, ptr %43, align 8, !tbaa !5
  %534 = call i32 @spbtrf_(ptr noundef %526, ptr noundef %527, ptr noundef %528, ptr noundef %531, ptr noundef %532, ptr noundef %533)
  %535 = load ptr, ptr %43, align 8, !tbaa !5
  %536 = load i64, ptr %535, align 8, !tbaa !9
  %537 = icmp sgt i64 %536, 0
  br i1 %537, label %538, label %540

538:                                              ; preds = %525
  %539 = load ptr, ptr %38, align 8, !tbaa !5
  store float 0.000000e+00, ptr %539, align 4, !tbaa !12
  store i32 0, ptr %22, align 4
  store i32 1, ptr %72, align 4
  br label %696

540:                                              ; preds = %525
  br label %541

541:                                              ; preds = %540, %421
  %542 = load ptr, ptr %24, align 8, !tbaa !5
  %543 = load ptr, ptr %25, align 8, !tbaa !5
  %544 = load ptr, ptr %26, align 8, !tbaa !5
  %545 = load ptr, ptr %28, align 8, !tbaa !5
  %546 = load i64, ptr %45, align 8, !tbaa !9
  %547 = getelementptr inbounds float, ptr %545, i64 %546
  %548 = load ptr, ptr %29, align 8, !tbaa !5
  %549 = load ptr, ptr %41, align 8, !tbaa !5
  %550 = getelementptr inbounds float, ptr %549, i64 1
  %551 = call double @slansb_(ptr noundef @.str.8, ptr noundef %542, ptr noundef %543, ptr noundef %544, ptr noundef %547, ptr noundef %548, ptr noundef %550)
  %552 = fptrunc double %551 to float
  store float %552, ptr %64, align 4, !tbaa !12
  %553 = load ptr, ptr %24, align 8, !tbaa !5
  %554 = load ptr, ptr %25, align 8, !tbaa !5
  %555 = load ptr, ptr %26, align 8, !tbaa !5
  %556 = load ptr, ptr %30, align 8, !tbaa !5
  %557 = load i64, ptr %47, align 8, !tbaa !9
  %558 = getelementptr inbounds float, ptr %556, i64 %557
  %559 = load ptr, ptr %31, align 8, !tbaa !5
  %560 = load ptr, ptr %38, align 8, !tbaa !5
  %561 = load ptr, ptr %41, align 8, !tbaa !5
  %562 = getelementptr inbounds float, ptr %561, i64 1
  %563 = load ptr, ptr %42, align 8, !tbaa !5
  %564 = getelementptr inbounds i64, ptr %563, i64 1
  %565 = load ptr, ptr %43, align 8, !tbaa !5
  %566 = call i32 @spbcon_(ptr noundef %553, ptr noundef %554, ptr noundef %555, ptr noundef %558, ptr noundef %559, ptr noundef %64, ptr noundef %560, ptr noundef %562, ptr noundef %564, ptr noundef %565)
  %567 = load ptr, ptr %25, align 8, !tbaa !5
  %568 = load ptr, ptr %27, align 8, !tbaa !5
  %569 = load ptr, ptr %34, align 8, !tbaa !5
  %570 = load i64, ptr %49, align 8, !tbaa !9
  %571 = getelementptr inbounds float, ptr %569, i64 %570
  %572 = load ptr, ptr %35, align 8, !tbaa !5
  %573 = load ptr, ptr %36, align 8, !tbaa !5
  %574 = load i64, ptr %51, align 8, !tbaa !9
  %575 = getelementptr inbounds float, ptr %573, i64 %574
  %576 = load ptr, ptr %37, align 8, !tbaa !5
  %577 = call i32 @slacpy_(ptr noundef @.str.9, ptr noundef %567, ptr noundef %568, ptr noundef %571, ptr noundef %572, ptr noundef %575, ptr noundef %576)
  %578 = load ptr, ptr %24, align 8, !tbaa !5
  %579 = load ptr, ptr %25, align 8, !tbaa !5
  %580 = load ptr, ptr %26, align 8, !tbaa !5
  %581 = load ptr, ptr %27, align 8, !tbaa !5
  %582 = load ptr, ptr %30, align 8, !tbaa !5
  %583 = load i64, ptr %47, align 8, !tbaa !9
  %584 = getelementptr inbounds float, ptr %582, i64 %583
  %585 = load ptr, ptr %31, align 8, !tbaa !5
  %586 = load ptr, ptr %36, align 8, !tbaa !5
  %587 = load i64, ptr %51, align 8, !tbaa !9
  %588 = getelementptr inbounds float, ptr %586, i64 %587
  %589 = load ptr, ptr %37, align 8, !tbaa !5
  %590 = load ptr, ptr %43, align 8, !tbaa !5
  %591 = call i32 @spbtrs_(ptr noundef %578, ptr noundef %579, ptr noundef %580, ptr noundef %581, ptr noundef %584, ptr noundef %585, ptr noundef %588, ptr noundef %589, ptr noundef %590)
  %592 = load ptr, ptr %24, align 8, !tbaa !5
  %593 = load ptr, ptr %25, align 8, !tbaa !5
  %594 = load ptr, ptr %26, align 8, !tbaa !5
  %595 = load ptr, ptr %27, align 8, !tbaa !5
  %596 = load ptr, ptr %28, align 8, !tbaa !5
  %597 = load i64, ptr %45, align 8, !tbaa !9
  %598 = getelementptr inbounds float, ptr %596, i64 %597
  %599 = load ptr, ptr %29, align 8, !tbaa !5
  %600 = load ptr, ptr %30, align 8, !tbaa !5
  %601 = load i64, ptr %47, align 8, !tbaa !9
  %602 = getelementptr inbounds float, ptr %600, i64 %601
  %603 = load ptr, ptr %31, align 8, !tbaa !5
  %604 = load ptr, ptr %34, align 8, !tbaa !5
  %605 = load i64, ptr %49, align 8, !tbaa !9
  %606 = getelementptr inbounds float, ptr %604, i64 %605
  %607 = load ptr, ptr %35, align 8, !tbaa !5
  %608 = load ptr, ptr %36, align 8, !tbaa !5
  %609 = load i64, ptr %51, align 8, !tbaa !9
  %610 = getelementptr inbounds float, ptr %608, i64 %609
  %611 = load ptr, ptr %37, align 8, !tbaa !5
  %612 = load ptr, ptr %39, align 8, !tbaa !5
  %613 = getelementptr inbounds float, ptr %612, i64 1
  %614 = load ptr, ptr %40, align 8, !tbaa !5
  %615 = getelementptr inbounds float, ptr %614, i64 1
  %616 = load ptr, ptr %41, align 8, !tbaa !5
  %617 = getelementptr inbounds float, ptr %616, i64 1
  %618 = load ptr, ptr %42, align 8, !tbaa !5
  %619 = getelementptr inbounds i64, ptr %618, i64 1
  %620 = load ptr, ptr %43, align 8, !tbaa !5
  %621 = call i32 @spbrfs_(ptr noundef %592, ptr noundef %593, ptr noundef %594, ptr noundef %595, ptr noundef %598, ptr noundef %599, ptr noundef %602, ptr noundef %603, ptr noundef %606, ptr noundef %607, ptr noundef %610, ptr noundef %611, ptr noundef %613, ptr noundef %615, ptr noundef %617, ptr noundef %619, ptr noundef %620)
  %622 = load i64, ptr %66, align 8, !tbaa !9
  %623 = icmp ne i64 %622, 0
  br i1 %623, label %624, label %684

624:                                              ; preds = %541
  %625 = load ptr, ptr %27, align 8, !tbaa !5
  %626 = load i64, ptr %625, align 8, !tbaa !9
  store i64 %626, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %627

627:                                              ; preds = %663, %624
  %628 = load i64, ptr %57, align 8, !tbaa !9
  %629 = load i64, ptr %52, align 8, !tbaa !9
  %630 = icmp sle i64 %628, %629
  br i1 %630, label %631, label %666

631:                                              ; preds = %627
  %632 = load ptr, ptr %25, align 8, !tbaa !5
  %633 = load i64, ptr %632, align 8, !tbaa !9
  store i64 %633, ptr %53, align 8, !tbaa !9
  store i64 1, ptr %56, align 8, !tbaa !9
  br label %634

634:                                              ; preds = %659, %631
  %635 = load i64, ptr %56, align 8, !tbaa !9
  %636 = load i64, ptr %53, align 8, !tbaa !9
  %637 = icmp sle i64 %635, %636
  br i1 %637, label %638, label %662

638:                                              ; preds = %634
  %639 = load ptr, ptr %33, align 8, !tbaa !5
  %640 = load i64, ptr %56, align 8, !tbaa !9
  %641 = getelementptr inbounds float, ptr %639, i64 %640
  %642 = load float, ptr %641, align 4, !tbaa !12
  %643 = load ptr, ptr %36, align 8, !tbaa !5
  %644 = load i64, ptr %56, align 8, !tbaa !9
  %645 = load i64, ptr %57, align 8, !tbaa !9
  %646 = load i64, ptr %50, align 8, !tbaa !9
  %647 = mul nsw i64 %645, %646
  %648 = add nsw i64 %644, %647
  %649 = getelementptr inbounds float, ptr %643, i64 %648
  %650 = load float, ptr %649, align 4, !tbaa !12
  %651 = fmul float %642, %650
  %652 = load ptr, ptr %36, align 8, !tbaa !5
  %653 = load i64, ptr %56, align 8, !tbaa !9
  %654 = load i64, ptr %57, align 8, !tbaa !9
  %655 = load i64, ptr %50, align 8, !tbaa !9
  %656 = mul nsw i64 %654, %655
  %657 = add nsw i64 %653, %656
  %658 = getelementptr inbounds float, ptr %652, i64 %657
  store float %651, ptr %658, align 4, !tbaa !12
  br label %659

659:                                              ; preds = %638
  %660 = load i64, ptr %56, align 8, !tbaa !9
  %661 = add nsw i64 %660, 1
  store i64 %661, ptr %56, align 8, !tbaa !9
  br label %634, !llvm.loop !20

662:                                              ; preds = %634
  br label %663

663:                                              ; preds = %662
  %664 = load i64, ptr %57, align 8, !tbaa !9
  %665 = add nsw i64 %664, 1
  store i64 %665, ptr %57, align 8, !tbaa !9
  br label %627, !llvm.loop !21

666:                                              ; preds = %627
  %667 = load ptr, ptr %27, align 8, !tbaa !5
  %668 = load i64, ptr %667, align 8, !tbaa !9
  store i64 %668, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %669

669:                                              ; preds = %680, %666
  %670 = load i64, ptr %57, align 8, !tbaa !9
  %671 = load i64, ptr %52, align 8, !tbaa !9
  %672 = icmp sle i64 %670, %671
  br i1 %672, label %673, label %683

673:                                              ; preds = %669
  %674 = load float, ptr %63, align 4, !tbaa !12
  %675 = load ptr, ptr %39, align 8, !tbaa !5
  %676 = load i64, ptr %57, align 8, !tbaa !9
  %677 = getelementptr inbounds float, ptr %675, i64 %676
  %678 = load float, ptr %677, align 4, !tbaa !12
  %679 = fdiv float %678, %674
  store float %679, ptr %677, align 4, !tbaa !12
  br label %680

680:                                              ; preds = %673
  %681 = load i64, ptr %57, align 8, !tbaa !9
  %682 = add nsw i64 %681, 1
  store i64 %682, ptr %57, align 8, !tbaa !9
  br label %669, !llvm.loop !22

683:                                              ; preds = %669
  br label %684

684:                                              ; preds = %683, %541
  %685 = load ptr, ptr %38, align 8, !tbaa !5
  %686 = load float, ptr %685, align 4, !tbaa !12
  %687 = fpext float %686 to double
  %688 = call double @slamch_(ptr noundef @.str.10)
  %689 = fcmp olt double %687, %688
  br i1 %689, label %690, label %695

690:                                              ; preds = %684
  %691 = load ptr, ptr %25, align 8, !tbaa !5
  %692 = load i64, ptr %691, align 8, !tbaa !9
  %693 = add nsw i64 %692, 1
  %694 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %693, ptr %694, align 8, !tbaa !9
  br label %695

695:                                              ; preds = %690, %684
  store i32 0, ptr %22, align 4
  store i32 1, ptr %72, align 4
  br label %696

696:                                              ; preds = %695, %538, %336
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #3
  %697 = load i32, ptr %22, align 4
  ret i32 %697
}

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

declare i32 @spbrfs_(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

; 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 }

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

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


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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @spbsvx_(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) local_unnamed_addr #0 {
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #4
  %28 = load i64, ptr %6, align 8, !tbaa !5
  %29 = xor i64 %28, -1
  %30 = getelementptr inbounds float, ptr %5, i64 %29
  %31 = load i64, ptr %8, align 8, !tbaa !5
  %32 = xor i64 %31, -1
  %33 = getelementptr inbounds float, ptr %7, i64 %32
  %34 = getelementptr inbounds i8, ptr %10, i64 -4
  %35 = load i64, ptr %12, align 8, !tbaa !5
  %36 = xor i64 %35, -1
  %37 = getelementptr inbounds float, ptr %11, i64 %36
  %38 = load i64, ptr %14, align 8, !tbaa !5
  %39 = xor i64 %38, -1
  %40 = getelementptr inbounds float, ptr %13, i64 %39
  %41 = getelementptr inbounds i8, ptr %16, i64 -4
  store i64 0, ptr %20, align 8, !tbaa !5
  %42 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %43 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %44 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #4
  %45 = icmp ne i64 %42, 0
  %46 = icmp ne i64 %43, 0
  %or.cond = select i1 %45, i1 true, i1 %46
  br i1 %or.cond, label %.thread, label %47

.thread:                                          ; preds = %21
  store i8 78, ptr %9, align 1, !tbaa !9
  br label %53

47:                                               ; preds = %21
  %48 = tail call i64 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.3) #4
  %49 = tail call double @slamch_(ptr noundef nonnull @.str.4) #4
  %50 = fptrunc double %49 to float
  %51 = fdiv float 1.000000e+00, %50
  %52 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #4
  %.not = icmp eq i64 %52, 0
  br i1 %.not, label %.thread308.sink.split, label %53

53:                                               ; preds = %.thread, %47
  %.0303 = phi float [ undef, %.thread ], [ %50, %47 ]
  %.0263302 = phi float [ undef, %.thread ], [ %51, %47 ]
  %.0265301 = phi i64 [ 0, %.thread ], [ %48, %47 ]
  %.not279 = icmp eq i64 %44, 0
  br i1 %.not279, label %54, label %56

54:                                               ; preds = %53
  %55 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.6) #4
  %.not280 = icmp eq i64 %55, 0
  br i1 %.not280, label %.thread308.sink.split, label %56

56:                                               ; preds = %54, %53
  %57 = load i64, ptr %2, align 8, !tbaa !5
  %58 = icmp slt i64 %57, 0
  br i1 %58, label %.thread308.sink.split, label %59

59:                                               ; preds = %56
  %60 = load i64, ptr %3, align 8, !tbaa !5
  %61 = icmp slt i64 %60, 0
  br i1 %61, label %.thread308.sink.split, label %62

62:                                               ; preds = %59
  %63 = load i64, ptr %4, align 8, !tbaa !5
  %64 = icmp slt i64 %63, 0
  br i1 %64, label %.thread308.sink.split, label %65

65:                                               ; preds = %62
  %66 = load i64, ptr %6, align 8, !tbaa !5
  %.not281 = icmp sgt i64 %66, %60
  br i1 %.not281, label %67, label %.thread308.sink.split

67:                                               ; preds = %65
  %68 = load i64, ptr %8, align 8, !tbaa !5
  %.not282 = icmp sgt i64 %68, %60
  br i1 %.not282, label %69, label %.thread308.sink.split

69:                                               ; preds = %67
  %70 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #4
  %71 = icmp eq i64 %70, 0
  %72 = icmp ne i64 %.0265301, 0
  %or.cond5 = select i1 %71, i1 true, i1 %72
  br i1 %or.cond5, label %75, label %73

73:                                               ; preds = %69
  %74 = tail call i64 @lsame_(ptr noundef %9, ptr noundef nonnull @.str) #4
  %.not283 = icmp eq i64 %74, 0
  br i1 %.not283, label %.thread308.sink.split, label %.thread304

75:                                               ; preds = %69
  br i1 %72, label %76, label %.thread304

76:                                               ; preds = %75
  %77 = load i64, ptr %2, align 8, !tbaa !5
  %.not284314 = icmp slt i64 %77, 1
  br i1 %.not284314, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %76
  %xtraiter = and i64 %77, 1
  %78 = icmp eq i64 %77, 1
  br i1 %78, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %77, 9223372036854775806
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %.0266317 = phi float [ 0.000000e+00, %.lr.ph.preheader.new ], [ %90, %.lr.ph ]
  %.0267316 = phi float [ %.0263302, %.lr.ph.preheader.new ], [ %88, %.lr.ph ]
  %.0268315 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %91, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %79 = getelementptr inbounds float, ptr %34, i64 %.0268315
  %80 = load float, ptr %79, align 4, !tbaa !10
  %81 = fcmp ole float %.0267316, %80
  %82 = select i1 %81, float %.0267316, float %80
  %83 = fcmp oge float %.0266317, %80
  %84 = select i1 %83, float %.0266317, float %80
  %85 = getelementptr float, ptr %10, i64 %.0268315
  %86 = load float, ptr %85, align 4, !tbaa !10
  %87 = fcmp ole float %82, %86
  %88 = select i1 %87, float %82, float %86
  %89 = fcmp oge float %84, %86
  %90 = select i1 %89, float %84, float %86
  %91 = add nuw i64 %.0268315, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !12

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph, %.lr.ph.preheader
  %.lcssa421.ph = phi float [ poison, %.lr.ph.preheader ], [ %88, %.lr.ph ]
  %.lcssa420.ph = phi float [ poison, %.lr.ph.preheader ], [ %90, %.lr.ph ]
  %.0266317.unr = phi float [ 0.000000e+00, %.lr.ph.preheader ], [ %90, %.lr.ph ]
  %.0267316.unr = phi float [ %.0263302, %.lr.ph.preheader ], [ %88, %.lr.ph ]
  %.0268315.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %91, %.lr.ph ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %._crit_edge.loopexit.unr-lcssa
  %92 = getelementptr inbounds float, ptr %34, i64 %.0268315.unr
  %93 = load float, ptr %92, align 4, !tbaa !10
  %94 = fcmp ole float %.0267316.unr, %93
  %95 = select i1 %94, float %.0267316.unr, float %93
  %96 = fcmp oge float %.0266317.unr, %93
  %97 = select i1 %96, float %.0266317.unr, float %93
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.loopexit.unr-lcssa, %76
  %.0267.lcssa = phi float [ %.0263302, %76 ], [ %.lcssa421.ph, %._crit_edge.loopexit.unr-lcssa ], [ %95, %.lr.ph.epil ]
  %.0266.lcssa = phi float [ 0.000000e+00, %76 ], [ %.lcssa420.ph, %._crit_edge.loopexit.unr-lcssa ], [ %97, %.lr.ph.epil ]
  %98 = fcmp ugt float %.0267.lcssa, 0.000000e+00
  br i1 %98, label %99, label %.thread308.sink.split

99:                                               ; preds = %._crit_edge
  %100 = icmp sgt i64 %77, 0
  br i1 %100, label %101, label %107

101:                                              ; preds = %99
  %102 = fcmp oge float %.0267.lcssa, %.0303
  %103 = select i1 %102, float %.0267.lcssa, float %.0303
  %104 = fcmp ole float %.0266.lcssa, %.0263302
  %105 = select i1 %104, float %.0266.lcssa, float %.0263302
  %106 = fdiv float %103, %105
  store float %106, ptr %25, align 4, !tbaa !10
  br label %.thread304

107:                                              ; preds = %99
  store float 1.000000e+00, ptr %25, align 4, !tbaa !10
  br label %.thread304

.thread304:                                       ; preds = %73, %107, %101, %75
  %.pr = load i64, ptr %20, align 8, !tbaa !5
  %108 = icmp eq i64 %.pr, 0
  br i1 %108, label %109, label %.thread308

109:                                              ; preds = %.thread304
  %110 = load i64, ptr %12, align 8, !tbaa !5
  %111 = load i64, ptr %2, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.smax.i64(i64 %111, i64 1)
  %112 = icmp slt i64 %110, %spec.select
  br i1 %112, label %.thread308.sink.split, label %113

113:                                              ; preds = %109
  %114 = load i64, ptr %14, align 8, !tbaa !5
  %115 = icmp slt i64 %114, %spec.select
  br i1 %115, label %.thread308.sink.split, label %119

.thread308.sink.split:                            ; preds = %113, %109, %._crit_edge, %73, %67, %65, %62, %59, %56, %54, %47
  %.sink = phi i64 [ -1, %47 ], [ -2, %54 ], [ -3, %56 ], [ -4, %59 ], [ -5, %62 ], [ -7, %65 ], [ -9, %67 ], [ -10, %73 ], [ -11, %._crit_edge ], [ -13, %109 ], [ -15, %113 ]
  store i64 %.sink, ptr %20, align 8, !tbaa !5
  br label %.thread308

.thread308:                                       ; preds = %.thread308.sink.split, %.thread304
  %116 = phi i64 [ %.pr, %.thread304 ], [ %.sink, %.thread308.sink.split ]
  %117 = sub nsw i64 0, %116
  store i64 %117, ptr %22, align 8, !tbaa !5
  %118 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %22) #4
  br label %274

119:                                              ; preds = %113
  br i1 %46, label %120, label %127

120:                                              ; preds = %119
  %121 = call i32 @spbequ_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %25, ptr noundef nonnull %24, ptr noundef nonnull %27) #4
  %122 = load i64, ptr %27, align 8, !tbaa !5
  %123 = icmp eq i64 %122, 0
  br i1 %123, label %124, label %127

124:                                              ; preds = %120
  %125 = call i32 @slaqsb_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %10, ptr noundef nonnull %25, ptr noundef nonnull %24, ptr noundef %9) #4
  %126 = call i64 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.3) #4
  br label %127

127:                                              ; preds = %120, %124, %119
  %.1 = phi i64 [ %126, %124 ], [ %.0265301, %120 ], [ %.0265301, %119 ]
  %.not286 = icmp eq i64 %.1, 0
  br i1 %.not286, label %174, label %128

128:                                              ; preds = %127
  %129 = load i64, ptr %4, align 8, !tbaa !5
  %.not287324 = icmp slt i64 %129, 1
  br i1 %.not287324, label %.loopexit313, label %.lr.ph327

.lr.ph327:                                        ; preds = %128
  %130 = load i64, ptr %2, align 8, !tbaa !5
  %.not295319 = icmp slt i64 %130, 1
  br i1 %.not295319, label %.loopexit313, label %.lr.ph322.preheader

.lr.ph322.preheader:                              ; preds = %.lr.ph327
  %131 = add nuw i64 %129, 4611686018427387903
  %132 = mul i64 %35, %131
  %133 = shl i64 %130, 2
  %134 = add i64 %132, %130
  %135 = shl i64 %134, 2
  %scevgep = getelementptr i8, ptr %11, i64 %135
  %scevgep376 = getelementptr i8, ptr %10, i64 %133
  %136 = add nuw i64 %130, 1
  %min.iters.check = icmp ult i64 %130, 8
  %bound0 = icmp ugt ptr %scevgep376, %11
  %bound1 = icmp ugt ptr %scevgep, %10
  %found.conflict = and i1 %bound0, %bound1
  %.mask = and i64 %35, 2305843009213693952
  %stride.check = icmp ne i64 %.mask, 0
  %137 = or i1 %found.conflict, %stride.check
  %n.vec = and i64 %130, 9223372036854775800
  %ind.end = or disjoint i64 %n.vec, 1
  %cmp.n = icmp eq i64 %130, %n.vec
  br label %.lr.ph322

.lr.ph322:                                        ; preds = %.lr.ph322.preheader, %._crit_edge323
  %.1269325 = phi i64 [ %173, %._crit_edge323 ], [ 1, %.lr.ph322.preheader ]
  %138 = mul nsw i64 %.1269325, %35
  %invariant.gep = getelementptr float, ptr %37, i64 %138
  %brmerge = select i1 %min.iters.check, i1 true, i1 %137
  br i1 %brmerge, label %scalar.ph.preheader, label %vector.body

vector.body:                                      ; preds = %.lr.ph322, %vector.body
  %index = phi i64 [ %index.next, %vector.body ], [ 0, %.lr.ph322 ]
  %offset.idx = or disjoint i64 %index, 1
  %139 = getelementptr float, ptr %10, i64 %index
  %140 = getelementptr inbounds i8, ptr %139, i64 16
  %wide.load = load <4 x float>, ptr %139, align 4, !tbaa !10, !alias.scope !14
  %wide.load377 = load <4 x float>, ptr %140, align 4, !tbaa !10, !alias.scope !14
  %141 = getelementptr float, ptr %invariant.gep, i64 %offset.idx
  %142 = getelementptr i8, ptr %141, i64 16
  %wide.load378 = load <4 x float>, ptr %141, align 4, !tbaa !10, !alias.scope !17, !noalias !14
  %wide.load379 = load <4 x float>, ptr %142, align 4, !tbaa !10, !alias.scope !17, !noalias !14
  %143 = fmul <4 x float> %wide.load, %wide.load378
  %144 = fmul <4 x float> %wide.load377, %wide.load379
  store <4 x float> %143, ptr %141, align 4, !tbaa !10, !alias.scope !17, !noalias !14
  store <4 x float> %144, ptr %142, align 4, !tbaa !10, !alias.scope !17, !noalias !14
  %index.next = add nuw i64 %index, 8
  %145 = icmp eq i64 %index.next, %n.vec
  br i1 %145, label %middle.block, label %vector.body, !llvm.loop !19

middle.block:                                     ; preds = %vector.body
  br i1 %cmp.n, label %._crit_edge323, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %.lr.ph322, %middle.block
  %.0270320.ph = phi i64 [ 1, %.lr.ph322 ], [ %ind.end, %middle.block ]
  %146 = sub i64 %136, %.0270320.ph
  %147 = sub i64 %130, %.0270320.ph
  %xtraiter424 = and i64 %146, 3
  %lcmp.mod425.not = icmp eq i64 %xtraiter424, 0
  br i1 %lcmp.mod425.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader, %scalar.ph.prol
  %.0270320.prol = phi i64 [ %152, %scalar.ph.prol ], [ %.0270320.ph, %scalar.ph.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph.prol ], [ 0, %scalar.ph.preheader ]
  %148 = getelementptr inbounds float, ptr %34, i64 %.0270320.prol
  %149 = load float, ptr %148, align 4, !tbaa !10
  %gep.prol = getelementptr float, ptr %invariant.gep, i64 %.0270320.prol
  %150 = load float, ptr %gep.prol, align 4, !tbaa !10
  %151 = fmul float %149, %150
  store float %151, ptr %gep.prol, align 4, !tbaa !10
  %152 = add nuw i64 %.0270320.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter424
  br i1 %prol.iter.cmp.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol, !llvm.loop !22

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %.0270320.unr = phi i64 [ %.0270320.ph, %scalar.ph.preheader ], [ %152, %scalar.ph.prol ]
  %153 = icmp ult i64 %147, 3
  br i1 %153, label %._crit_edge323, label %scalar.ph.preheader.new

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

scalar.ph:                                        ; preds = %scalar.ph, %scalar.ph.preheader.new
  %.0270320 = phi i64 [ %.0270320.unr, %scalar.ph.preheader.new ], [ %172, %scalar.ph ]
  %154 = getelementptr inbounds float, ptr %34, i64 %.0270320
  %155 = load float, ptr %154, align 4, !tbaa !10
  %gep = getelementptr float, ptr %invariant.gep, i64 %.0270320
  %156 = load float, ptr %gep, align 4, !tbaa !10
  %157 = fmul float %155, %156
  store float %157, ptr %gep, align 4, !tbaa !10
  %158 = getelementptr float, ptr %10, i64 %.0270320
  %159 = load float, ptr %158, align 4, !tbaa !10
  %gep435 = getelementptr float, ptr %invariant.gep434, i64 %.0270320
  %160 = load float, ptr %gep435, align 4, !tbaa !10
  %161 = fmul float %159, %160
  store float %161, ptr %gep435, align 4, !tbaa !10
  %162 = add nuw i64 %.0270320, 2
  %163 = getelementptr inbounds float, ptr %34, i64 %162
  %164 = load float, ptr %163, align 4, !tbaa !10
  %gep.2 = getelementptr float, ptr %invariant.gep, i64 %162
  %165 = load float, ptr %gep.2, align 4, !tbaa !10
  %166 = fmul float %164, %165
  store float %166, ptr %gep.2, align 4, !tbaa !10
  %167 = add nuw i64 %.0270320, 3
  %168 = getelementptr inbounds float, ptr %34, i64 %167
  %169 = load float, ptr %168, align 4, !tbaa !10
  %gep.3 = getelementptr float, ptr %invariant.gep, i64 %167
  %170 = load float, ptr %gep.3, align 4, !tbaa !10
  %171 = fmul float %169, %170
  store float %171, ptr %gep.3, align 4, !tbaa !10
  %172 = add nuw i64 %.0270320, 4
  %exitcond363.not.3 = icmp eq i64 %167, %130
  br i1 %exitcond363.not.3, label %._crit_edge323, label %scalar.ph, !llvm.loop !24

._crit_edge323:                                   ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block
  %173 = add nuw i64 %.1269325, 1
  %exitcond364.not = icmp eq i64 %.1269325, %129
  br i1 %exitcond364.not, label %.loopexit313, label %.lr.ph322, !llvm.loop !25

.loopexit313:                                     ; preds = %._crit_edge323, %.lr.ph327, %128
  %.lcssa = phi i64 [ undef, %128 ], [ %130, %.lr.ph327 ], [ %130, %._crit_edge323 ]
  store i64 %.lcssa, ptr %23, align 8, !tbaa !5
  br label %174

174:                                              ; preds = %.loopexit313, %127
  br i1 %or.cond, label %175, label %205

175:                                              ; preds = %174
  %176 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %.not279, label %192, label %177

177:                                              ; preds = %175
  %.not291329 = icmp slt i64 %176, 1
  br i1 %.not291329, label %.loopexit311, label %.lr.ph332

.lr.ph332:                                        ; preds = %177, %.lr.ph332
  %.2330 = phi i64 [ %181, %.lr.ph332 ], [ 1, %177 ]
  %178 = load i64, ptr %3, align 8, !tbaa !5
  %179 = sub nsw i64 %.2330, %178
  %180 = call i64 @llvm.smax.i64(i64 %179, i64 1)
  %181 = add nuw i64 %.2330, 1
  %182 = sub i64 %181, %180
  store i64 %182, ptr %23, align 8, !tbaa !5
  %reass.sub = sub i64 %178, %.2330
  %183 = add i64 %reass.sub, 1
  %184 = add nsw i64 %183, %180
  %185 = mul nsw i64 %.2330, %28
  %186 = getelementptr float, ptr %30, i64 %184
  %187 = getelementptr float, ptr %186, i64 %185
  %188 = mul nsw i64 %.2330, %31
  %189 = getelementptr float, ptr %33, i64 %184
  %190 = getelementptr float, ptr %189, i64 %188
  %191 = call i32 @f2c_scopy(ptr noundef nonnull %23, ptr noundef %187, ptr noundef nonnull @c__1, ptr noundef %190, ptr noundef nonnull @c__1) #4
  %.not291.not = icmp slt i64 %.2330, %176
  br i1 %.not291.not, label %.lr.ph332, label %.loopexit311, !llvm.loop !26

192:                                              ; preds = %175
  %invariant.gep333 = getelementptr i8, ptr %30, i64 4
  %invariant.gep335 = getelementptr i8, ptr %33, i64 4
  %.not289337 = icmp slt i64 %176, 1
  br i1 %.not289337, label %.loopexit311, label %.lr.ph340

.lr.ph340:                                        ; preds = %192, %.lr.ph340
  %.3338 = phi i64 [ %200, %.lr.ph340 ], [ 1, %192 ]
  %193 = load i64, ptr %3, align 8, !tbaa !5
  %194 = add nsw i64 %193, %.3338
  %195 = load i64, ptr %2, align 8, !tbaa !5
  %. = call i64 @llvm.smin.i64(i64 %194, i64 %195)
  %reass.sub357 = sub i64 %., %.3338
  %196 = add i64 %reass.sub357, 1
  store i64 %196, ptr %23, align 8, !tbaa !5
  %197 = mul nsw i64 %.3338, %28
  %gep334 = getelementptr float, ptr %invariant.gep333, i64 %197
  %198 = mul nsw i64 %.3338, %31
  %gep336 = getelementptr float, ptr %invariant.gep335, i64 %198
  %199 = call i32 @f2c_scopy(ptr noundef nonnull %23, ptr noundef %gep334, ptr noundef nonnull @c__1, ptr noundef %gep336, ptr noundef nonnull @c__1) #4
  %200 = add nuw nsw i64 %.3338, 1
  %.not289.not = icmp slt i64 %.3338, %176
  br i1 %.not289.not, label %.lr.ph340, label %.loopexit311, !llvm.loop !27

.loopexit311:                                     ; preds = %.lr.ph332, %.lr.ph340, %177, %192
  %201 = call i32 @spbtrf_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %20) #4
  %202 = load i64, ptr %20, align 8, !tbaa !5
  %203 = icmp sgt i64 %202, 0
  br i1 %203, label %204, label %205

204:                                              ; preds = %.loopexit311
  store float 0.000000e+00, ptr %15, align 4, !tbaa !10
  br label %274

205:                                              ; preds = %.loopexit311, %174
  %206 = call double @slansb_(ptr noundef nonnull @.str.8, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %18) #4
  %207 = fptrunc double %206 to float
  store float %207, ptr %26, align 4, !tbaa !10
  %208 = call i32 @spbcon_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %26, ptr noundef %15, ptr noundef %18, ptr noundef %19, ptr noundef nonnull %20) #4
  %209 = call i32 @slacpy_(ptr noundef nonnull @.str.9, ptr noundef nonnull %2, ptr noundef nonnull %4, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14) #4
  %210 = call i32 @spbtrs_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %20) #4
  %211 = call i32 @spbrfs_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef nonnull %20) #4
  br i1 %.not286, label %.loopexit, label %212

212:                                              ; preds = %205
  %213 = load i64, ptr %4, align 8, !tbaa !5
  %.not292348 = icmp slt i64 %213, 1
  br i1 %.not292348, label %.loopexit, label %.lr.ph351

.lr.ph351:                                        ; preds = %212
  %214 = load i64, ptr %2, align 8, !tbaa !5
  %.not294341 = icmp slt i64 %214, 1
  br i1 %.not294341, label %.thread369, label %.lr.ph344.preheader

.lr.ph344.preheader:                              ; preds = %.lr.ph351
  %215 = add nuw i64 %213, 4611686018427387903
  %216 = mul i64 %38, %215
  %217 = shl i64 %214, 2
  %218 = add i64 %216, %214
  %219 = shl i64 %218, 2
  %scevgep381 = getelementptr i8, ptr %13, i64 %219
  %scevgep382 = getelementptr i8, ptr %10, i64 %217
  %220 = add nuw i64 %214, 1
  %min.iters.check389 = icmp ult i64 %214, 8
  %bound0383 = icmp ugt ptr %scevgep382, %13
  %bound1384 = icmp ugt ptr %scevgep381, %10
  %found.conflict385 = and i1 %bound0383, %bound1384
  %.mask418 = and i64 %38, 2305843009213693952
  %stride.check386 = icmp ne i64 %.mask418, 0
  %221 = or i1 %found.conflict385, %stride.check386
  %n.vec392 = and i64 %214, 9223372036854775800
  %ind.end393 = or disjoint i64 %n.vec392, 1
  %cmp.n403 = icmp eq i64 %214, %n.vec392
  br label %.lr.ph344

.thread369:                                       ; preds = %.lr.ph351
  store i64 %214, ptr %23, align 8, !tbaa !5
  br label %.lr.ph356

.lr.ph344:                                        ; preds = %.lr.ph344.preheader, %._crit_edge345
  %.4349 = phi i64 [ %257, %._crit_edge345 ], [ 1, %.lr.ph344.preheader ]
  %222 = mul nsw i64 %.4349, %38
  %invariant.gep346 = getelementptr float, ptr %40, i64 %222
  %brmerge438 = select i1 %min.iters.check389, i1 true, i1 %221
  br i1 %brmerge438, label %scalar.ph388.preheader, label %vector.body395

vector.body395:                                   ; preds = %.lr.ph344, %vector.body395
  %index396 = phi i64 [ %index.next402, %vector.body395 ], [ 0, %.lr.ph344 ]
  %offset.idx397 = or disjoint i64 %index396, 1
  %223 = getelementptr float, ptr %10, i64 %index396
  %224 = getelementptr inbounds i8, ptr %223, i64 16
  %wide.load398 = load <4 x float>, ptr %223, align 4, !tbaa !10, !alias.scope !28
  %wide.load399 = load <4 x float>, ptr %224, align 4, !tbaa !10, !alias.scope !28
  %225 = getelementptr float, ptr %invariant.gep346, i64 %offset.idx397
  %226 = getelementptr i8, ptr %225, i64 16
  %wide.load400 = load <4 x float>, ptr %225, align 4, !tbaa !10, !alias.scope !31, !noalias !28
  %wide.load401 = load <4 x float>, ptr %226, align 4, !tbaa !10, !alias.scope !31, !noalias !28
  %227 = fmul <4 x float> %wide.load398, %wide.load400
  %228 = fmul <4 x float> %wide.load399, %wide.load401
  store <4 x float> %227, ptr %225, align 4, !tbaa !10, !alias.scope !31, !noalias !28
  store <4 x float> %228, ptr %226, align 4, !tbaa !10, !alias.scope !31, !noalias !28
  %index.next402 = add nuw i64 %index396, 8
  %229 = icmp eq i64 %index.next402, %n.vec392
  br i1 %229, label %middle.block387, label %vector.body395, !llvm.loop !33

middle.block387:                                  ; preds = %vector.body395
  br i1 %cmp.n403, label %._crit_edge345, label %scalar.ph388.preheader

scalar.ph388.preheader:                           ; preds = %.lr.ph344, %middle.block387
  %.1271342.ph = phi i64 [ 1, %.lr.ph344 ], [ %ind.end393, %middle.block387 ]
  %230 = sub i64 %220, %.1271342.ph
  %231 = sub i64 %214, %.1271342.ph
  %xtraiter426 = and i64 %230, 3
  %lcmp.mod427.not = icmp eq i64 %xtraiter426, 0
  br i1 %lcmp.mod427.not, label %scalar.ph388.prol.loopexit, label %scalar.ph388.prol

scalar.ph388.prol:                                ; preds = %scalar.ph388.preheader, %scalar.ph388.prol
  %.1271342.prol = phi i64 [ %236, %scalar.ph388.prol ], [ %.1271342.ph, %scalar.ph388.preheader ]
  %prol.iter428 = phi i64 [ %prol.iter428.next, %scalar.ph388.prol ], [ 0, %scalar.ph388.preheader ]
  %232 = getelementptr inbounds float, ptr %34, i64 %.1271342.prol
  %233 = load float, ptr %232, align 4, !tbaa !10
  %gep347.prol = getelementptr float, ptr %invariant.gep346, i64 %.1271342.prol
  %234 = load float, ptr %gep347.prol, align 4, !tbaa !10
  %235 = fmul float %233, %234
  store float %235, ptr %gep347.prol, align 4, !tbaa !10
  %236 = add nuw i64 %.1271342.prol, 1
  %prol.iter428.next = add i64 %prol.iter428, 1
  %prol.iter428.cmp.not = icmp eq i64 %prol.iter428.next, %xtraiter426
  br i1 %prol.iter428.cmp.not, label %scalar.ph388.prol.loopexit, label %scalar.ph388.prol, !llvm.loop !34

scalar.ph388.prol.loopexit:                       ; preds = %scalar.ph388.prol, %scalar.ph388.preheader
  %.1271342.unr = phi i64 [ %.1271342.ph, %scalar.ph388.preheader ], [ %236, %scalar.ph388.prol ]
  %237 = icmp ult i64 %231, 3
  br i1 %237, label %._crit_edge345, label %scalar.ph388.preheader.new

scalar.ph388.preheader.new:                       ; preds = %scalar.ph388.prol.loopexit
  %invariant.gep436 = getelementptr i8, ptr %invariant.gep346, i64 4
  br label %scalar.ph388

scalar.ph388:                                     ; preds = %scalar.ph388, %scalar.ph388.preheader.new
  %.1271342 = phi i64 [ %.1271342.unr, %scalar.ph388.preheader.new ], [ %256, %scalar.ph388 ]
  %238 = getelementptr inbounds float, ptr %34, i64 %.1271342
  %239 = load float, ptr %238, align 4, !tbaa !10
  %gep347 = getelementptr float, ptr %invariant.gep346, i64 %.1271342
  %240 = load float, ptr %gep347, align 4, !tbaa !10
  %241 = fmul float %239, %240
  store float %241, ptr %gep347, align 4, !tbaa !10
  %242 = getelementptr float, ptr %10, i64 %.1271342
  %243 = load float, ptr %242, align 4, !tbaa !10
  %gep437 = getelementptr float, ptr %invariant.gep436, i64 %.1271342
  %244 = load float, ptr %gep437, align 4, !tbaa !10
  %245 = fmul float %243, %244
  store float %245, ptr %gep437, align 4, !tbaa !10
  %246 = add nuw i64 %.1271342, 2
  %247 = getelementptr inbounds float, ptr %34, i64 %246
  %248 = load float, ptr %247, align 4, !tbaa !10
  %gep347.2 = getelementptr float, ptr %invariant.gep346, i64 %246
  %249 = load float, ptr %gep347.2, align 4, !tbaa !10
  %250 = fmul float %248, %249
  store float %250, ptr %gep347.2, align 4, !tbaa !10
  %251 = add nuw i64 %.1271342, 3
  %252 = getelementptr inbounds float, ptr %34, i64 %251
  %253 = load float, ptr %252, align 4, !tbaa !10
  %gep347.3 = getelementptr float, ptr %invariant.gep346, i64 %251
  %254 = load float, ptr %gep347.3, align 4, !tbaa !10
  %255 = fmul float %253, %254
  store float %255, ptr %gep347.3, align 4, !tbaa !10
  %256 = add nuw i64 %.1271342, 4
  %exitcond365.not.3 = icmp eq i64 %251, %214
  br i1 %exitcond365.not.3, label %._crit_edge345, label %scalar.ph388, !llvm.loop !35

._crit_edge345:                                   ; preds = %scalar.ph388.prol.loopexit, %scalar.ph388, %middle.block387
  %257 = add nuw i64 %.4349, 1
  %exitcond366.not = icmp eq i64 %.4349, %213
  br i1 %exitcond366.not, label %258, label %.lr.ph344, !llvm.loop !36

258:                                              ; preds = %._crit_edge345
  store i64 %214, ptr %23, align 8, !tbaa !5
  br i1 %.not292348, label %.loopexit, label %.lr.ph356

.lr.ph356:                                        ; preds = %.thread369, %258
  %259 = load float, ptr %25, align 4, !tbaa !10
  %min.iters.check406 = icmp ult i64 %213, 4
  br i1 %min.iters.check406, label %scalar.ph405.preheader, label %vector.ph407

vector.ph407:                                     ; preds = %.lr.ph356
  %n.vec409 = and i64 %213, 9223372036854775804
  %ind.end410 = or disjoint i64 %n.vec409, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %259, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body412

vector.body412:                                   ; preds = %vector.body412, %vector.ph407
  %index413 = phi i64 [ 0, %vector.ph407 ], [ %index.next416, %vector.body412 ]
  %260 = getelementptr float, ptr %16, i64 %index413
  %wide.load415 = load <4 x float>, ptr %260, align 4, !tbaa !10
  %261 = fdiv <4 x float> %wide.load415, %broadcast.splat
  store <4 x float> %261, ptr %260, align 4, !tbaa !10
  %index.next416 = add nuw i64 %index413, 4
  %262 = icmp eq i64 %index.next416, %n.vec409
  br i1 %262, label %middle.block404, label %vector.body412, !llvm.loop !37

middle.block404:                                  ; preds = %vector.body412
  %cmp.n417 = icmp eq i64 %213, %n.vec409
  br i1 %cmp.n417, label %.loopexit, label %scalar.ph405.preheader

scalar.ph405.preheader:                           ; preds = %middle.block404, %.lr.ph356
  %.5354.ph = phi i64 [ 1, %.lr.ph356 ], [ %ind.end410, %middle.block404 ]
  br label %scalar.ph405

scalar.ph405:                                     ; preds = %scalar.ph405.preheader, %scalar.ph405
  %.5354 = phi i64 [ %266, %scalar.ph405 ], [ %.5354.ph, %scalar.ph405.preheader ]
  %263 = getelementptr inbounds float, ptr %41, i64 %.5354
  %264 = load float, ptr %263, align 4, !tbaa !10
  %265 = fdiv float %264, %259
  store float %265, ptr %263, align 4, !tbaa !10
  %266 = add nuw i64 %.5354, 1
  %exitcond367.not = icmp eq i64 %.5354, %213
  br i1 %exitcond367.not, label %.loopexit, label %scalar.ph405, !llvm.loop !38

.loopexit:                                        ; preds = %scalar.ph405, %middle.block404, %212, %258, %205
  %267 = load float, ptr %15, align 4, !tbaa !10
  %268 = fpext float %267 to double
  %269 = call double @slamch_(ptr noundef nonnull @.str.10) #4
  %270 = fcmp ogt double %269, %268
  br i1 %270, label %271, label %274

271:                                              ; preds = %.loopexit
  %272 = load i64, ptr %2, align 8, !tbaa !5
  %273 = add nsw i64 %272, 1
  store i64 %273, ptr %20, align 8, !tbaa !5
  br label %274

274:                                              ; preds = %.loopexit, %271, %204, %.thread308
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  ret i32 0
}

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

declare i32 @spbrfs_(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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"float", !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!15}
!15 = distinct !{!15, !16}
!16 = distinct !{!16, !"LVerDomain"}
!17 = !{!18}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !13, !20, !21}
!20 = !{!"llvm.loop.isvectorized", i32 1}
!21 = !{!"llvm.loop.unroll.runtime.disable"}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.unroll.disable"}
!24 = distinct !{!24, !13, !20}
!25 = distinct !{!25, !13}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}
!28 = !{!29}
!29 = distinct !{!29, !30}
!30 = distinct !{!30, !"LVerDomain"}
!31 = !{!32}
!32 = distinct !{!32, !30}
!33 = distinct !{!33, !13, !20, !21}
!34 = distinct !{!34, !23}
!35 = distinct !{!35, !13, !20}
!36 = distinct !{!36, !13}
!37 = distinct !{!37, !13, !20, !21}
!38 = distinct !{!38, !13, !21, !20}


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