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

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

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

167:                                              ; preds = %29
  %168 = load i64, ptr %81, align 8, !tbaa !9
  %169 = icmp ne i64 %168, 0
  br i1 %169, label %170, label %172

170:                                              ; preds = %167, %29
  %171 = load ptr, ptr %42, align 8, !tbaa !5
  store i8 78, ptr %171, align 1, !tbaa !13
  store i64 0, ptr %90, align 8, !tbaa !9
  store i64 0, ptr %86, align 8, !tbaa !9
  br label %195

172:                                              ; preds = %167
  %173 = load ptr, ptr %42, align 8, !tbaa !5
  %174 = call i64 @lsame_(ptr noundef %173, ptr noundef @.str.3)
  %175 = icmp ne i64 %174, 0
  br i1 %175, label %180, label %176

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

180:                                              ; preds = %176, %172
  %181 = phi i1 [ true, %172 ], [ %179, %176 ]
  %182 = zext i1 %181 to i32
  %183 = sext i32 %182 to i64
  store i64 %183, ptr %90, align 8, !tbaa !9
  %184 = load ptr, ptr %42, align 8, !tbaa !5
  %185 = call i64 @lsame_(ptr noundef %184, ptr noundef @.str.5)
  %186 = icmp ne i64 %185, 0
  br i1 %186, label %191, label %187

187:                                              ; preds = %180
  %188 = load ptr, ptr %42, align 8, !tbaa !5
  %189 = call i64 @lsame_(ptr noundef %188, ptr noundef @.str.4)
  %190 = icmp ne i64 %189, 0
  br label %191

191:                                              ; preds = %187, %180
  %192 = phi i1 [ true, %180 ], [ %190, %187 ]
  %193 = zext i1 %192 to i32
  %194 = sext i32 %193 to i64
  store i64 %194, ptr %86, align 8, !tbaa !9
  br label %195

195:                                              ; preds = %191, %170
  %196 = load ptr, ptr %50, align 8, !tbaa !5
  store float 0.000000e+00, ptr %196, align 4, !tbaa !11
  %197 = load i64, ptr %83, align 8, !tbaa !9
  %198 = icmp ne i64 %197, 0
  br i1 %198, label %208, label %199

199:                                              ; preds = %195
  %200 = load i64, ptr %81, align 8, !tbaa !9
  %201 = icmp ne i64 %200, 0
  br i1 %201, label %208, label %202

202:                                              ; preds = %199
  %203 = load ptr, ptr %31, align 8, !tbaa !5
  %204 = call i64 @lsame_(ptr noundef %203, ptr noundef @.str.6)
  %205 = icmp ne i64 %204, 0
  br i1 %205, label %208, label %206

206:                                              ; preds = %202
  %207 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -1, ptr %207, align 8, !tbaa !9
  br label %499

208:                                              ; preds = %202, %199, %195
  %209 = load i64, ptr %88, align 8, !tbaa !9
  %210 = icmp ne i64 %209, 0
  br i1 %210, label %221, label %211

211:                                              ; preds = %208
  %212 = load ptr, ptr %32, align 8, !tbaa !5
  %213 = call i64 @lsame_(ptr noundef %212, ptr noundef @.str.7)
  %214 = icmp ne i64 %213, 0
  br i1 %214, label %221, label %215

215:                                              ; preds = %211
  %216 = load ptr, ptr %32, align 8, !tbaa !5
  %217 = call i64 @lsame_(ptr noundef %216, ptr noundef @.str.5)
  %218 = icmp ne i64 %217, 0
  br i1 %218, label %221, label %219

219:                                              ; preds = %215
  %220 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -2, ptr %220, align 8, !tbaa !9
  br label %498

221:                                              ; preds = %215, %211, %208
  %222 = load ptr, ptr %33, align 8, !tbaa !5
  %223 = load i64, ptr %222, align 8, !tbaa !9
  %224 = icmp slt i64 %223, 0
  br i1 %224, label %225, label %227

225:                                              ; preds = %221
  %226 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -3, ptr %226, align 8, !tbaa !9
  br label %497

227:                                              ; preds = %221
  %228 = load ptr, ptr %34, align 8, !tbaa !5
  %229 = load i64, ptr %228, align 8, !tbaa !9
  %230 = icmp slt i64 %229, 0
  br i1 %230, label %231, label %233

231:                                              ; preds = %227
  %232 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -4, ptr %232, align 8, !tbaa !9
  br label %496

233:                                              ; preds = %227
  %234 = load ptr, ptr %35, align 8, !tbaa !5
  %235 = load i64, ptr %234, align 8, !tbaa !9
  %236 = icmp slt i64 %235, 0
  br i1 %236, label %237, label %239

237:                                              ; preds = %233
  %238 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -5, ptr %238, align 8, !tbaa !9
  br label %495

239:                                              ; preds = %233
  %240 = load ptr, ptr %36, align 8, !tbaa !5
  %241 = load i64, ptr %240, align 8, !tbaa !9
  %242 = icmp slt i64 %241, 0
  br i1 %242, label %243, label %245

243:                                              ; preds = %239
  %244 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -6, ptr %244, align 8, !tbaa !9
  br label %494

245:                                              ; preds = %239
  %246 = load ptr, ptr %38, align 8, !tbaa !5
  %247 = load i64, ptr %246, align 8, !tbaa !9
  %248 = load ptr, ptr %34, align 8, !tbaa !5
  %249 = load i64, ptr %248, align 8, !tbaa !9
  %250 = load ptr, ptr %35, align 8, !tbaa !5
  %251 = load i64, ptr %250, align 8, !tbaa !9
  %252 = add nsw i64 %249, %251
  %253 = add nsw i64 %252, 1
  %254 = icmp slt i64 %247, %253
  br i1 %254, label %255, label %257

255:                                              ; preds = %245
  %256 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -8, ptr %256, align 8, !tbaa !9
  br label %493

257:                                              ; preds = %245
  %258 = load ptr, ptr %40, align 8, !tbaa !5
  %259 = load i64, ptr %258, align 8, !tbaa !9
  %260 = load ptr, ptr %34, align 8, !tbaa !5
  %261 = load i64, ptr %260, align 8, !tbaa !9
  %262 = shl i64 %261, 1
  %263 = load ptr, ptr %35, align 8, !tbaa !5
  %264 = load i64, ptr %263, align 8, !tbaa !9
  %265 = add nsw i64 %262, %264
  %266 = add nsw i64 %265, 1
  %267 = icmp slt i64 %259, %266
  br i1 %267, label %268, label %270

268:                                              ; preds = %257
  %269 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -10, ptr %269, align 8, !tbaa !9
  br label %492

270:                                              ; preds = %257
  %271 = load ptr, ptr %31, align 8, !tbaa !5
  %272 = call i64 @lsame_(ptr noundef %271, ptr noundef @.str.6)
  %273 = icmp ne i64 %272, 0
  br i1 %273, label %274, label %286

274:                                              ; preds = %270
  %275 = load i64, ptr %90, align 8, !tbaa !9
  %276 = icmp ne i64 %275, 0
  br i1 %276, label %286, label %277

277:                                              ; preds = %274
  %278 = load i64, ptr %86, align 8, !tbaa !9
  %279 = icmp ne i64 %278, 0
  br i1 %279, label %286, label %280

280:                                              ; preds = %277
  %281 = load ptr, ptr %42, align 8, !tbaa !5
  %282 = call i64 @lsame_(ptr noundef %281, ptr noundef @.str)
  %283 = icmp ne i64 %282, 0
  br i1 %283, label %286, label %284

284:                                              ; preds = %280
  %285 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -12, ptr %285, align 8, !tbaa !9
  br label %491

286:                                              ; preds = %280, %277, %274, %270
  %287 = load i64, ptr %90, align 8, !tbaa !9
  %288 = icmp ne i64 %287, 0
  br i1 %288, label %289, label %368

289:                                              ; preds = %286
  %290 = load float, ptr %84, align 4, !tbaa !11
  store float %290, ptr %79, align 4, !tbaa !11
  store float 0.000000e+00, ptr %80, align 4, !tbaa !11
  %291 = load ptr, ptr %33, align 8, !tbaa !5
  %292 = load i64, ptr %291, align 8, !tbaa !9
  store i64 %292, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %293

293:                                              ; preds = %330, %289
  %294 = load i64, ptr %77, align 8, !tbaa !9
  %295 = load i64, ptr %72, align 8, !tbaa !9
  %296 = icmp sle i64 %294, %295
  br i1 %296, label %297, label %333

297:                                              ; preds = %293
  %298 = load float, ptr %79, align 4, !tbaa !11
  store float %298, ptr %74, align 4, !tbaa !11
  %299 = load ptr, ptr %43, align 8, !tbaa !5
  %300 = load i64, ptr %77, align 8, !tbaa !9
  %301 = getelementptr inbounds float, ptr %299, i64 %300
  %302 = load float, ptr %301, align 4, !tbaa !11
  store float %302, ptr %75, align 4, !tbaa !11
  %303 = load float, ptr %74, align 4, !tbaa !11
  %304 = load float, ptr %75, align 4, !tbaa !11
  %305 = fcmp ole float %303, %304
  br i1 %305, label %306, label %308

306:                                              ; preds = %297
  %307 = load float, ptr %74, align 4, !tbaa !11
  br label %310

308:                                              ; preds = %297
  %309 = load float, ptr %75, align 4, !tbaa !11
  br label %310

310:                                              ; preds = %308, %306
  %311 = phi float [ %307, %306 ], [ %309, %308 ]
  %312 = fpext float %311 to double
  %313 = fptrunc double %312 to float
  store float %313, ptr %79, align 4, !tbaa !11
  %314 = load float, ptr %80, align 4, !tbaa !11
  store float %314, ptr %74, align 4, !tbaa !11
  %315 = load ptr, ptr %43, align 8, !tbaa !5
  %316 = load i64, ptr %77, align 8, !tbaa !9
  %317 = getelementptr inbounds float, ptr %315, i64 %316
  %318 = load float, ptr %317, align 4, !tbaa !11
  store float %318, ptr %75, align 4, !tbaa !11
  %319 = load float, ptr %74, align 4, !tbaa !11
  %320 = load float, ptr %75, align 4, !tbaa !11
  %321 = fcmp oge float %319, %320
  br i1 %321, label %322, label %324

322:                                              ; preds = %310
  %323 = load float, ptr %74, align 4, !tbaa !11
  br label %326

324:                                              ; preds = %310
  %325 = load float, ptr %75, align 4, !tbaa !11
  br label %326

326:                                              ; preds = %324, %322
  %327 = phi float [ %323, %322 ], [ %325, %324 ]
  %328 = fpext float %327 to double
  %329 = fptrunc double %328 to float
  store float %329, ptr %80, align 4, !tbaa !11
  br label %330

330:                                              ; preds = %326
  %331 = load i64, ptr %77, align 8, !tbaa !9
  %332 = add nsw i64 %331, 1
  store i64 %332, ptr %77, align 8, !tbaa !9
  br label %293, !llvm.loop !14

333:                                              ; preds = %293
  %334 = load float, ptr %79, align 4, !tbaa !11
  %335 = fcmp ole float %334, 0.000000e+00
  br i1 %335, label %336, label %338

336:                                              ; preds = %333
  %337 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -13, ptr %337, align 8, !tbaa !9
  br label %367

338:                                              ; preds = %333
  %339 = load ptr, ptr %33, align 8, !tbaa !5
  %340 = load i64, ptr %339, align 8, !tbaa !9
  %341 = icmp sgt i64 %340, 0
  br i1 %341, label %342, label %365

342:                                              ; preds = %338
  %343 = load float, ptr %79, align 4, !tbaa !11
  %344 = load float, ptr %89, align 4, !tbaa !11
  %345 = fcmp oge float %343, %344
  br i1 %345, label %346, label %348

346:                                              ; preds = %342
  %347 = load float, ptr %79, align 4, !tbaa !11
  br label %350

348:                                              ; preds = %342
  %349 = load float, ptr %89, align 4, !tbaa !11
  br label %350

350:                                              ; preds = %348, %346
  %351 = phi float [ %347, %346 ], [ %349, %348 ]
  %352 = fpext float %351 to double
  %353 = load float, ptr %80, align 4, !tbaa !11
  %354 = load float, ptr %84, align 4, !tbaa !11
  %355 = fcmp ole float %353, %354
  br i1 %355, label %356, label %358

356:                                              ; preds = %350
  %357 = load float, ptr %80, align 4, !tbaa !11
  br label %360

358:                                              ; preds = %350
  %359 = load float, ptr %84, align 4, !tbaa !11
  br label %360

360:                                              ; preds = %358, %356
  %361 = phi float [ %357, %356 ], [ %359, %358 ]
  %362 = fpext float %361 to double
  %363 = fdiv double %352, %362
  %364 = fptrunc double %363 to float
  store float %364, ptr %87, align 4, !tbaa !11
  br label %366

365:                                              ; preds = %338
  store float 1.000000e+00, ptr %87, align 4, !tbaa !11
  br label %366

366:                                              ; preds = %365, %360
  br label %367

367:                                              ; preds = %366, %336
  br label %368

368:                                              ; preds = %367, %286
  %369 = load i64, ptr %86, align 8, !tbaa !9
  %370 = icmp ne i64 %369, 0
  br i1 %370, label %371, label %454

371:                                              ; preds = %368
  %372 = load ptr, ptr %59, align 8, !tbaa !5
  %373 = load i64, ptr %372, align 8, !tbaa !9
  %374 = icmp eq i64 %373, 0
  br i1 %374, label %375, label %454

375:                                              ; preds = %371
  %376 = load float, ptr %84, align 4, !tbaa !11
  store float %376, ptr %79, align 4, !tbaa !11
  store float 0.000000e+00, ptr %80, align 4, !tbaa !11
  %377 = load ptr, ptr %33, align 8, !tbaa !5
  %378 = load i64, ptr %377, align 8, !tbaa !9
  store i64 %378, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %379

379:                                              ; preds = %416, %375
  %380 = load i64, ptr %77, align 8, !tbaa !9
  %381 = load i64, ptr %72, align 8, !tbaa !9
  %382 = icmp sle i64 %380, %381
  br i1 %382, label %383, label %419

383:                                              ; preds = %379
  %384 = load float, ptr %79, align 4, !tbaa !11
  store float %384, ptr %74, align 4, !tbaa !11
  %385 = load ptr, ptr %44, align 8, !tbaa !5
  %386 = load i64, ptr %77, align 8, !tbaa !9
  %387 = getelementptr inbounds float, ptr %385, i64 %386
  %388 = load float, ptr %387, align 4, !tbaa !11
  store float %388, ptr %75, align 4, !tbaa !11
  %389 = load float, ptr %74, align 4, !tbaa !11
  %390 = load float, ptr %75, align 4, !tbaa !11
  %391 = fcmp ole float %389, %390
  br i1 %391, label %392, label %394

392:                                              ; preds = %383
  %393 = load float, ptr %74, align 4, !tbaa !11
  br label %396

394:                                              ; preds = %383
  %395 = load float, ptr %75, align 4, !tbaa !11
  br label %396

396:                                              ; preds = %394, %392
  %397 = phi float [ %393, %392 ], [ %395, %394 ]
  %398 = fpext float %397 to double
  %399 = fptrunc double %398 to float
  store float %399, ptr %79, align 4, !tbaa !11
  %400 = load float, ptr %80, align 4, !tbaa !11
  store float %400, ptr %74, align 4, !tbaa !11
  %401 = load ptr, ptr %44, align 8, !tbaa !5
  %402 = load i64, ptr %77, align 8, !tbaa !9
  %403 = getelementptr inbounds float, ptr %401, i64 %402
  %404 = load float, ptr %403, align 4, !tbaa !11
  store float %404, ptr %75, align 4, !tbaa !11
  %405 = load float, ptr %74, align 4, !tbaa !11
  %406 = load float, ptr %75, align 4, !tbaa !11
  %407 = fcmp oge float %405, %406
  br i1 %407, label %408, label %410

408:                                              ; preds = %396
  %409 = load float, ptr %74, align 4, !tbaa !11
  br label %412

410:                                              ; preds = %396
  %411 = load float, ptr %75, align 4, !tbaa !11
  br label %412

412:                                              ; preds = %410, %408
  %413 = phi float [ %409, %408 ], [ %411, %410 ]
  %414 = fpext float %413 to double
  %415 = fptrunc double %414 to float
  store float %415, ptr %80, align 4, !tbaa !11
  br label %416

416:                                              ; preds = %412
  %417 = load i64, ptr %77, align 8, !tbaa !9
  %418 = add nsw i64 %417, 1
  store i64 %418, ptr %77, align 8, !tbaa !9
  br label %379, !llvm.loop !16

419:                                              ; preds = %379
  %420 = load float, ptr %79, align 4, !tbaa !11
  %421 = fcmp ole float %420, 0.000000e+00
  br i1 %421, label %422, label %424

422:                                              ; preds = %419
  %423 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -14, ptr %423, align 8, !tbaa !9
  br label %453

424:                                              ; preds = %419
  %425 = load ptr, ptr %33, align 8, !tbaa !5
  %426 = load i64, ptr %425, align 8, !tbaa !9
  %427 = icmp sgt i64 %426, 0
  br i1 %427, label %428, label %451

428:                                              ; preds = %424
  %429 = load float, ptr %79, align 4, !tbaa !11
  %430 = load float, ptr %89, align 4, !tbaa !11
  %431 = fcmp oge float %429, %430
  br i1 %431, label %432, label %434

432:                                              ; preds = %428
  %433 = load float, ptr %79, align 4, !tbaa !11
  br label %436

434:                                              ; preds = %428
  %435 = load float, ptr %89, align 4, !tbaa !11
  br label %436

436:                                              ; preds = %434, %432
  %437 = phi float [ %433, %432 ], [ %435, %434 ]
  %438 = fpext float %437 to double
  %439 = load float, ptr %80, align 4, !tbaa !11
  %440 = load float, ptr %84, align 4, !tbaa !11
  %441 = fcmp ole float %439, %440
  br i1 %441, label %442, label %444

442:                                              ; preds = %436
  %443 = load float, ptr %80, align 4, !tbaa !11
  br label %446

444:                                              ; preds = %436
  %445 = load float, ptr %84, align 4, !tbaa !11
  br label %446

446:                                              ; preds = %444, %442
  %447 = phi float [ %443, %442 ], [ %445, %444 ]
  %448 = fpext float %447 to double
  %449 = fdiv double %438, %448
  %450 = fptrunc double %449 to float
  store float %450, ptr %82, align 4, !tbaa !11
  br label %452

451:                                              ; preds = %424
  store float 1.000000e+00, ptr %82, align 4, !tbaa !11
  br label %452

452:                                              ; preds = %451, %446
  br label %453

453:                                              ; preds = %452, %422
  br label %454

454:                                              ; preds = %453, %371, %368
  %455 = load ptr, ptr %59, align 8, !tbaa !5
  %456 = load i64, ptr %455, align 8, !tbaa !9
  %457 = icmp eq i64 %456, 0
  br i1 %457, label %458, label %490

458:                                              ; preds = %454
  %459 = load ptr, ptr %46, align 8, !tbaa !5
  %460 = load i64, ptr %459, align 8, !tbaa !9
  %461 = load ptr, ptr %33, align 8, !tbaa !5
  %462 = load i64, ptr %461, align 8, !tbaa !9
  %463 = icmp sge i64 1, %462
  br i1 %463, label %464, label %465

464:                                              ; preds = %458
  br label %468

465:                                              ; preds = %458
  %466 = load ptr, ptr %33, align 8, !tbaa !5
  %467 = load i64, ptr %466, align 8, !tbaa !9
  br label %468

468:                                              ; preds = %465, %464
  %469 = phi i64 [ 1, %464 ], [ %467, %465 ]
  %470 = icmp slt i64 %460, %469
  br i1 %470, label %471, label %473

471:                                              ; preds = %468
  %472 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -15, ptr %472, align 8, !tbaa !9
  br label %489

473:                                              ; preds = %468
  %474 = load ptr, ptr %48, align 8, !tbaa !5
  %475 = load i64, ptr %474, align 8, !tbaa !9
  %476 = load ptr, ptr %33, align 8, !tbaa !5
  %477 = load i64, ptr %476, align 8, !tbaa !9
  %478 = icmp sge i64 1, %477
  br i1 %478, label %479, label %480

479:                                              ; preds = %473
  br label %483

480:                                              ; preds = %473
  %481 = load ptr, ptr %33, align 8, !tbaa !5
  %482 = load i64, ptr %481, align 8, !tbaa !9
  br label %483

483:                                              ; preds = %480, %479
  %484 = phi i64 [ 1, %479 ], [ %482, %480 ]
  %485 = icmp slt i64 %475, %484
  br i1 %485, label %486, label %488

486:                                              ; preds = %483
  %487 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -16, ptr %487, align 8, !tbaa !9
  br label %488

488:                                              ; preds = %486, %483
  br label %489

489:                                              ; preds = %488, %471
  br label %490

490:                                              ; preds = %489, %454
  br label %491

491:                                              ; preds = %490, %284
  br label %492

492:                                              ; preds = %491, %268
  br label %493

493:                                              ; preds = %492, %255
  br label %494

494:                                              ; preds = %493, %243
  br label %495

495:                                              ; preds = %494, %237
  br label %496

496:                                              ; preds = %495, %231
  br label %497

497:                                              ; preds = %496, %225
  br label %498

498:                                              ; preds = %497, %219
  br label %499

499:                                              ; preds = %498, %206
  %500 = load ptr, ptr %59, align 8, !tbaa !5
  %501 = load i64, ptr %500, align 8, !tbaa !9
  %502 = icmp ne i64 %501, 0
  br i1 %502, label %503, label %508

503:                                              ; preds = %499
  %504 = load ptr, ptr %59, align 8, !tbaa !5
  %505 = load i64, ptr %504, align 8, !tbaa !9
  %506 = sub nsw i64 0, %505
  store i64 %506, ptr %72, align 8, !tbaa !9
  %507 = call i32 @xerbla_(ptr noundef @.str.8, ptr noundef %72)
  store i32 0, ptr %30, align 4
  store i32 1, ptr %91, align 4
  br label %843

508:                                              ; preds = %499
  %509 = load i64, ptr %81, align 8, !tbaa !9
  %510 = icmp ne i64 %509, 0
  br i1 %510, label %511, label %601

511:                                              ; preds = %508
  %512 = load ptr, ptr %33, align 8, !tbaa !5
  %513 = load ptr, ptr %33, align 8, !tbaa !5
  %514 = load ptr, ptr %34, align 8, !tbaa !5
  %515 = load ptr, ptr %35, align 8, !tbaa !5
  %516 = load ptr, ptr %37, align 8, !tbaa !5
  %517 = load i64, ptr %61, align 8, !tbaa !9
  %518 = getelementptr inbounds float, ptr %516, i64 %517
  %519 = load ptr, ptr %38, align 8, !tbaa !5
  %520 = load ptr, ptr %43, align 8, !tbaa !5
  %521 = getelementptr inbounds float, ptr %520, i64 1
  %522 = load ptr, ptr %44, align 8, !tbaa !5
  %523 = getelementptr inbounds float, ptr %522, i64 1
  %524 = call i32 @sgbequb_(ptr noundef %512, ptr noundef %513, ptr noundef %514, ptr noundef %515, ptr noundef %518, ptr noundef %519, ptr noundef %521, ptr noundef %523, ptr noundef %87, ptr noundef %82, ptr noundef %78, ptr noundef %85)
  %525 = load i64, ptr %85, align 8, !tbaa !9
  %526 = icmp eq i64 %525, 0
  br i1 %526, label %527, label %564

527:                                              ; preds = %511
  %528 = load ptr, ptr %33, align 8, !tbaa !5
  %529 = load ptr, ptr %33, align 8, !tbaa !5
  %530 = load ptr, ptr %34, align 8, !tbaa !5
  %531 = load ptr, ptr %35, align 8, !tbaa !5
  %532 = load ptr, ptr %37, align 8, !tbaa !5
  %533 = load i64, ptr %61, align 8, !tbaa !9
  %534 = getelementptr inbounds float, ptr %532, i64 %533
  %535 = load ptr, ptr %38, align 8, !tbaa !5
  %536 = load ptr, ptr %43, align 8, !tbaa !5
  %537 = getelementptr inbounds float, ptr %536, i64 1
  %538 = load ptr, ptr %44, align 8, !tbaa !5
  %539 = getelementptr inbounds float, ptr %538, i64 1
  %540 = load ptr, ptr %42, align 8, !tbaa !5
  %541 = call i32 @slaqgb_(ptr noundef %528, ptr noundef %529, ptr noundef %530, ptr noundef %531, ptr noundef %534, ptr noundef %535, ptr noundef %537, ptr noundef %539, ptr noundef %87, ptr noundef %82, ptr noundef %78, ptr noundef %540)
  %542 = load ptr, ptr %42, align 8, !tbaa !5
  %543 = call i64 @lsame_(ptr noundef %542, ptr noundef @.str.3)
  %544 = icmp ne i64 %543, 0
  br i1 %544, label %549, label %545

545:                                              ; preds = %527
  %546 = load ptr, ptr %42, align 8, !tbaa !5
  %547 = call i64 @lsame_(ptr noundef %546, ptr noundef @.str.4)
  %548 = icmp ne i64 %547, 0
  br label %549

549:                                              ; preds = %545, %527
  %550 = phi i1 [ true, %527 ], [ %548, %545 ]
  %551 = zext i1 %550 to i32
  %552 = sext i32 %551 to i64
  store i64 %552, ptr %90, align 8, !tbaa !9
  %553 = load ptr, ptr %42, align 8, !tbaa !5
  %554 = call i64 @lsame_(ptr noundef %553, ptr noundef @.str.5)
  %555 = icmp ne i64 %554, 0
  br i1 %555, label %560, label %556

556:                                              ; preds = %549
  %557 = load ptr, ptr %42, align 8, !tbaa !5
  %558 = call i64 @lsame_(ptr noundef %557, ptr noundef @.str.4)
  %559 = icmp ne i64 %558, 0
  br label %560

560:                                              ; preds = %556, %549
  %561 = phi i1 [ true, %549 ], [ %559, %556 ]
  %562 = zext i1 %561 to i32
  %563 = sext i32 %562 to i64
  store i64 %563, ptr %86, align 8, !tbaa !9
  br label %564

564:                                              ; preds = %560, %511
  %565 = load i64, ptr %90, align 8, !tbaa !9
  %566 = icmp ne i64 %565, 0
  br i1 %566, label %582, label %567

567:                                              ; preds = %564
  %568 = load ptr, ptr %33, align 8, !tbaa !5
  %569 = load i64, ptr %568, align 8, !tbaa !9
  store i64 %569, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %570

570:                                              ; preds = %578, %567
  %571 = load i64, ptr %77, align 8, !tbaa !9
  %572 = load i64, ptr %72, align 8, !tbaa !9
  %573 = icmp sle i64 %571, %572
  br i1 %573, label %574, label %581

574:                                              ; preds = %570
  %575 = load ptr, ptr %43, align 8, !tbaa !5
  %576 = load i64, ptr %77, align 8, !tbaa !9
  %577 = getelementptr inbounds float, ptr %575, i64 %576
  store float 1.000000e+00, ptr %577, align 4, !tbaa !11
  br label %578

578:                                              ; preds = %574
  %579 = load i64, ptr %77, align 8, !tbaa !9
  %580 = add nsw i64 %579, 1
  store i64 %580, ptr %77, align 8, !tbaa !9
  br label %570, !llvm.loop !17

581:                                              ; preds = %570
  br label %582

582:                                              ; preds = %581, %564
  %583 = load i64, ptr %86, align 8, !tbaa !9
  %584 = icmp ne i64 %583, 0
  br i1 %584, label %600, label %585

585:                                              ; preds = %582
  %586 = load ptr, ptr %33, align 8, !tbaa !5
  %587 = load i64, ptr %586, align 8, !tbaa !9
  store i64 %587, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %588

588:                                              ; preds = %596, %585
  %589 = load i64, ptr %77, align 8, !tbaa !9
  %590 = load i64, ptr %72, align 8, !tbaa !9
  %591 = icmp sle i64 %589, %590
  br i1 %591, label %592, label %599

592:                                              ; preds = %588
  %593 = load ptr, ptr %44, align 8, !tbaa !5
  %594 = load i64, ptr %77, align 8, !tbaa !9
  %595 = getelementptr inbounds float, ptr %593, i64 %594
  store float 1.000000e+00, ptr %595, align 4, !tbaa !11
  br label %596

596:                                              ; preds = %592
  %597 = load i64, ptr %77, align 8, !tbaa !9
  %598 = add nsw i64 %597, 1
  store i64 %598, ptr %77, align 8, !tbaa !9
  br label %588, !llvm.loop !18

599:                                              ; preds = %588
  br label %600

600:                                              ; preds = %599, %582
  br label %601

601:                                              ; preds = %600, %508
  %602 = load i64, ptr %88, align 8, !tbaa !9
  %603 = icmp ne i64 %602, 0
  br i1 %603, label %604, label %618

604:                                              ; preds = %601
  %605 = load i64, ptr %90, align 8, !tbaa !9
  %606 = icmp ne i64 %605, 0
  br i1 %606, label %607, label %617

607:                                              ; preds = %604
  %608 = load ptr, ptr %33, align 8, !tbaa !5
  %609 = load ptr, ptr %36, align 8, !tbaa !5
  %610 = load ptr, ptr %43, align 8, !tbaa !5
  %611 = getelementptr inbounds float, ptr %610, i64 1
  %612 = load ptr, ptr %45, align 8, !tbaa !5
  %613 = load i64, ptr %65, align 8, !tbaa !9
  %614 = getelementptr inbounds float, ptr %612, i64 %613
  %615 = load ptr, ptr %46, align 8, !tbaa !5
  %616 = call i32 @slascl2_(ptr noundef %608, ptr noundef %609, ptr noundef %611, ptr noundef %614, ptr noundef %615)
  br label %617

617:                                              ; preds = %607, %604
  br label %632

618:                                              ; preds = %601
  %619 = load i64, ptr %86, align 8, !tbaa !9
  %620 = icmp ne i64 %619, 0
  br i1 %620, label %621, label %631

621:                                              ; preds = %618
  %622 = load ptr, ptr %33, align 8, !tbaa !5
  %623 = load ptr, ptr %36, align 8, !tbaa !5
  %624 = load ptr, ptr %44, align 8, !tbaa !5
  %625 = getelementptr inbounds float, ptr %624, i64 1
  %626 = load ptr, ptr %45, align 8, !tbaa !5
  %627 = load i64, ptr %65, align 8, !tbaa !9
  %628 = getelementptr inbounds float, ptr %626, i64 %627
  %629 = load ptr, ptr %46, align 8, !tbaa !5
  %630 = call i32 @slascl2_(ptr noundef %622, ptr noundef %623, ptr noundef %625, ptr noundef %628, ptr noundef %629)
  br label %631

631:                                              ; preds = %621, %618
  br label %632

632:                                              ; preds = %631, %617
  %633 = load i64, ptr %83, align 8, !tbaa !9
  %634 = icmp ne i64 %633, 0
  br i1 %634, label %638, label %635

635:                                              ; preds = %632
  %636 = load i64, ptr %81, align 8, !tbaa !9
  %637 = icmp ne i64 %636, 0
  br i1 %637, label %638, label %719

638:                                              ; preds = %635, %632
  %639 = load ptr, ptr %33, align 8, !tbaa !5
  %640 = load i64, ptr %639, align 8, !tbaa !9
  store i64 %640, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %641

641:                                              ; preds = %683, %638
  %642 = load i64, ptr %77, align 8, !tbaa !9
  %643 = load i64, ptr %72, align 8, !tbaa !9
  %644 = icmp sle i64 %642, %643
  br i1 %644, label %645, label %686

645:                                              ; preds = %641
  %646 = load ptr, ptr %34, align 8, !tbaa !5
  %647 = load i64, ptr %646, align 8, !tbaa !9
  %648 = shl i64 %647, 1
  %649 = load ptr, ptr %35, align 8, !tbaa !5
  %650 = load i64, ptr %649, align 8, !tbaa !9
  %651 = add nsw i64 %648, %650
  %652 = add nsw i64 %651, 1
  store i64 %652, ptr %73, align 8, !tbaa !9
  %653 = load ptr, ptr %34, align 8, !tbaa !5
  %654 = load i64, ptr %653, align 8, !tbaa !9
  %655 = add nsw i64 %654, 1
  store i64 %655, ptr %76, align 8, !tbaa !9
  br label %656

656:                                              ; preds = %679, %645
  %657 = load i64, ptr %76, align 8, !tbaa !9
  %658 = load i64, ptr %73, align 8, !tbaa !9
  %659 = icmp sle i64 %657, %658
  br i1 %659, label %660, label %682

660:                                              ; preds = %656
  %661 = load ptr, ptr %37, align 8, !tbaa !5
  %662 = load i64, ptr %76, align 8, !tbaa !9
  %663 = load ptr, ptr %34, align 8, !tbaa !5
  %664 = load i64, ptr %663, align 8, !tbaa !9
  %665 = sub nsw i64 %662, %664
  %666 = load i64, ptr %77, align 8, !tbaa !9
  %667 = load i64, ptr %60, align 8, !tbaa !9
  %668 = mul nsw i64 %666, %667
  %669 = add nsw i64 %665, %668
  %670 = getelementptr inbounds float, ptr %661, i64 %669
  %671 = load float, ptr %670, align 4, !tbaa !11
  %672 = load ptr, ptr %39, align 8, !tbaa !5
  %673 = load i64, ptr %76, align 8, !tbaa !9
  %674 = load i64, ptr %77, align 8, !tbaa !9
  %675 = load i64, ptr %62, align 8, !tbaa !9
  %676 = mul nsw i64 %674, %675
  %677 = add nsw i64 %673, %676
  %678 = getelementptr inbounds float, ptr %672, i64 %677
  store float %671, ptr %678, align 4, !tbaa !11
  br label %679

679:                                              ; preds = %660
  %680 = load i64, ptr %76, align 8, !tbaa !9
  %681 = add nsw i64 %680, 1
  store i64 %681, ptr %76, align 8, !tbaa !9
  br label %656, !llvm.loop !19

682:                                              ; preds = %656
  br label %683

683:                                              ; preds = %682
  %684 = load i64, ptr %77, align 8, !tbaa !9
  %685 = add nsw i64 %684, 1
  store i64 %685, ptr %77, align 8, !tbaa !9
  br label %641, !llvm.loop !20

686:                                              ; preds = %641
  %687 = load ptr, ptr %33, align 8, !tbaa !5
  %688 = load ptr, ptr %33, align 8, !tbaa !5
  %689 = load ptr, ptr %34, align 8, !tbaa !5
  %690 = load ptr, ptr %35, align 8, !tbaa !5
  %691 = load ptr, ptr %39, align 8, !tbaa !5
  %692 = load i64, ptr %63, align 8, !tbaa !9
  %693 = getelementptr inbounds float, ptr %691, i64 %692
  %694 = load ptr, ptr %40, align 8, !tbaa !5
  %695 = load ptr, ptr %41, align 8, !tbaa !5
  %696 = getelementptr inbounds i64, ptr %695, i64 1
  %697 = load ptr, ptr %59, align 8, !tbaa !5
  %698 = call i32 @sgbtrf_(ptr noundef %687, ptr noundef %688, ptr noundef %689, ptr noundef %690, ptr noundef %693, ptr noundef %694, ptr noundef %696, ptr noundef %697)
  %699 = load ptr, ptr %59, align 8, !tbaa !5
  %700 = load i64, ptr %699, align 8, !tbaa !9
  %701 = icmp sgt i64 %700, 0
  br i1 %701, label %702, label %718

702:                                              ; preds = %686
  %703 = load ptr, ptr %33, align 8, !tbaa !5
  %704 = load ptr, ptr %34, align 8, !tbaa !5
  %705 = load ptr, ptr %35, align 8, !tbaa !5
  %706 = load ptr, ptr %59, align 8, !tbaa !5
  %707 = load ptr, ptr %37, align 8, !tbaa !5
  %708 = load i64, ptr %61, align 8, !tbaa !9
  %709 = getelementptr inbounds float, ptr %707, i64 %708
  %710 = load ptr, ptr %38, align 8, !tbaa !5
  %711 = load ptr, ptr %39, align 8, !tbaa !5
  %712 = load i64, ptr %63, align 8, !tbaa !9
  %713 = getelementptr inbounds float, ptr %711, i64 %712
  %714 = load ptr, ptr %40, align 8, !tbaa !5
  %715 = call double @sla_gbrpvgrw__(ptr noundef %703, ptr noundef %704, ptr noundef %705, ptr noundef %706, ptr noundef %709, ptr noundef %710, ptr noundef %713, ptr noundef %714)
  %716 = fptrunc double %715 to float
  %717 = load ptr, ptr %50, align 8, !tbaa !5
  store float %716, ptr %717, align 4, !tbaa !11
  store i32 0, ptr %30, align 4
  store i32 1, ptr %91, align 4
  br label %843

718:                                              ; preds = %686
  br label %719

719:                                              ; preds = %718, %635
  %720 = load ptr, ptr %33, align 8, !tbaa !5
  %721 = load ptr, ptr %34, align 8, !tbaa !5
  %722 = load ptr, ptr %35, align 8, !tbaa !5
  %723 = load ptr, ptr %33, align 8, !tbaa !5
  %724 = load ptr, ptr %37, align 8, !tbaa !5
  %725 = load i64, ptr %61, align 8, !tbaa !9
  %726 = getelementptr inbounds float, ptr %724, i64 %725
  %727 = load ptr, ptr %38, align 8, !tbaa !5
  %728 = load ptr, ptr %39, align 8, !tbaa !5
  %729 = load i64, ptr %63, align 8, !tbaa !9
  %730 = getelementptr inbounds float, ptr %728, i64 %729
  %731 = load ptr, ptr %40, align 8, !tbaa !5
  %732 = call double @sla_gbrpvgrw__(ptr noundef %720, ptr noundef %721, ptr noundef %722, ptr noundef %723, ptr noundef %726, ptr noundef %727, ptr noundef %730, ptr noundef %731)
  %733 = fptrunc double %732 to float
  %734 = load ptr, ptr %50, align 8, !tbaa !5
  store float %733, ptr %734, align 4, !tbaa !11
  %735 = load ptr, ptr %33, align 8, !tbaa !5
  %736 = load ptr, ptr %36, align 8, !tbaa !5
  %737 = load ptr, ptr %45, align 8, !tbaa !5
  %738 = load i64, ptr %65, align 8, !tbaa !9
  %739 = getelementptr inbounds float, ptr %737, i64 %738
  %740 = load ptr, ptr %46, align 8, !tbaa !5
  %741 = load ptr, ptr %47, align 8, !tbaa !5
  %742 = load i64, ptr %67, align 8, !tbaa !9
  %743 = getelementptr inbounds float, ptr %741, i64 %742
  %744 = load ptr, ptr %48, align 8, !tbaa !5
  %745 = call i32 @slacpy_(ptr noundef @.str.9, ptr noundef %735, ptr noundef %736, ptr noundef %739, ptr noundef %740, ptr noundef %743, ptr noundef %744)
  %746 = load ptr, ptr %32, align 8, !tbaa !5
  %747 = load ptr, ptr %33, align 8, !tbaa !5
  %748 = load ptr, ptr %34, align 8, !tbaa !5
  %749 = load ptr, ptr %35, align 8, !tbaa !5
  %750 = load ptr, ptr %36, align 8, !tbaa !5
  %751 = load ptr, ptr %39, align 8, !tbaa !5
  %752 = load i64, ptr %63, align 8, !tbaa !9
  %753 = getelementptr inbounds float, ptr %751, i64 %752
  %754 = load ptr, ptr %40, align 8, !tbaa !5
  %755 = load ptr, ptr %41, align 8, !tbaa !5
  %756 = getelementptr inbounds i64, ptr %755, i64 1
  %757 = load ptr, ptr %47, align 8, !tbaa !5
  %758 = load i64, ptr %67, align 8, !tbaa !9
  %759 = getelementptr inbounds float, ptr %757, i64 %758
  %760 = load ptr, ptr %48, align 8, !tbaa !5
  %761 = load ptr, ptr %59, align 8, !tbaa !5
  %762 = call i32 @sgbtrs_(ptr noundef %746, ptr noundef %747, ptr noundef %748, ptr noundef %749, ptr noundef %750, ptr noundef %753, ptr noundef %754, ptr noundef %756, ptr noundef %759, ptr noundef %760, ptr noundef %761)
  %763 = load ptr, ptr %32, align 8, !tbaa !5
  %764 = load ptr, ptr %42, align 8, !tbaa !5
  %765 = load ptr, ptr %33, align 8, !tbaa !5
  %766 = load ptr, ptr %34, align 8, !tbaa !5
  %767 = load ptr, ptr %35, align 8, !tbaa !5
  %768 = load ptr, ptr %36, align 8, !tbaa !5
  %769 = load ptr, ptr %37, align 8, !tbaa !5
  %770 = load i64, ptr %61, align 8, !tbaa !9
  %771 = getelementptr inbounds float, ptr %769, i64 %770
  %772 = load ptr, ptr %38, align 8, !tbaa !5
  %773 = load ptr, ptr %39, align 8, !tbaa !5
  %774 = load i64, ptr %63, align 8, !tbaa !9
  %775 = getelementptr inbounds float, ptr %773, i64 %774
  %776 = load ptr, ptr %40, align 8, !tbaa !5
  %777 = load ptr, ptr %41, align 8, !tbaa !5
  %778 = getelementptr inbounds i64, ptr %777, i64 1
  %779 = load ptr, ptr %43, align 8, !tbaa !5
  %780 = getelementptr inbounds float, ptr %779, i64 1
  %781 = load ptr, ptr %44, align 8, !tbaa !5
  %782 = getelementptr inbounds float, ptr %781, i64 1
  %783 = load ptr, ptr %45, align 8, !tbaa !5
  %784 = load i64, ptr %65, align 8, !tbaa !9
  %785 = getelementptr inbounds float, ptr %783, i64 %784
  %786 = load ptr, ptr %46, align 8, !tbaa !5
  %787 = load ptr, ptr %47, align 8, !tbaa !5
  %788 = load i64, ptr %67, align 8, !tbaa !9
  %789 = getelementptr inbounds float, ptr %787, i64 %788
  %790 = load ptr, ptr %48, align 8, !tbaa !5
  %791 = load ptr, ptr %49, align 8, !tbaa !5
  %792 = load ptr, ptr %51, align 8, !tbaa !5
  %793 = getelementptr inbounds float, ptr %792, i64 1
  %794 = load ptr, ptr %52, align 8, !tbaa !5
  %795 = load ptr, ptr %53, align 8, !tbaa !5
  %796 = load i64, ptr %69, align 8, !tbaa !9
  %797 = getelementptr inbounds float, ptr %795, i64 %796
  %798 = load ptr, ptr %54, align 8, !tbaa !5
  %799 = load i64, ptr %71, align 8, !tbaa !9
  %800 = getelementptr inbounds float, ptr %798, i64 %799
  %801 = load ptr, ptr %55, align 8, !tbaa !5
  %802 = load ptr, ptr %56, align 8, !tbaa !5
  %803 = getelementptr inbounds float, ptr %802, i64 1
  %804 = load ptr, ptr %57, align 8, !tbaa !5
  %805 = getelementptr inbounds float, ptr %804, i64 1
  %806 = load ptr, ptr %58, align 8, !tbaa !5
  %807 = getelementptr inbounds i64, ptr %806, i64 1
  %808 = load ptr, ptr %59, align 8, !tbaa !5
  %809 = call i32 @sgbrfsx_(ptr noundef %763, ptr noundef %764, ptr noundef %765, ptr noundef %766, ptr noundef %767, ptr noundef %768, ptr noundef %771, ptr noundef %772, ptr noundef %775, ptr noundef %776, ptr noundef %778, ptr noundef %780, ptr noundef %782, ptr noundef %785, ptr noundef %786, ptr noundef %789, ptr noundef %790, ptr noundef %791, ptr noundef %793, ptr noundef %794, ptr noundef %797, ptr noundef %800, ptr noundef %801, ptr noundef %803, ptr noundef %805, ptr noundef %807, ptr noundef %808)
  %810 = load i64, ptr %86, align 8, !tbaa !9
  %811 = icmp ne i64 %810, 0
  br i1 %811, label %812, label %825

812:                                              ; preds = %719
  %813 = load i64, ptr %88, align 8, !tbaa !9
  %814 = icmp ne i64 %813, 0
  br i1 %814, label %815, label %825

815:                                              ; preds = %812
  %816 = load ptr, ptr %33, align 8, !tbaa !5
  %817 = load ptr, ptr %36, align 8, !tbaa !5
  %818 = load ptr, ptr %44, align 8, !tbaa !5
  %819 = getelementptr inbounds float, ptr %818, i64 1
  %820 = load ptr, ptr %47, align 8, !tbaa !5
  %821 = load i64, ptr %67, align 8, !tbaa !9
  %822 = getelementptr inbounds float, ptr %820, i64 %821
  %823 = load ptr, ptr %48, align 8, !tbaa !5
  %824 = call i32 @slascl2_(ptr noundef %816, ptr noundef %817, ptr noundef %819, ptr noundef %822, ptr noundef %823)
  br label %842

825:                                              ; preds = %812, %719
  %826 = load i64, ptr %90, align 8, !tbaa !9
  %827 = icmp ne i64 %826, 0
  br i1 %827, label %828, label %841

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

831:                                              ; preds = %828
  %832 = load ptr, ptr %33, align 8, !tbaa !5
  %833 = load ptr, ptr %36, align 8, !tbaa !5
  %834 = load ptr, ptr %43, align 8, !tbaa !5
  %835 = getelementptr inbounds float, ptr %834, i64 1
  %836 = load ptr, ptr %47, align 8, !tbaa !5
  %837 = load i64, ptr %67, align 8, !tbaa !9
  %838 = getelementptr inbounds float, ptr %836, i64 %837
  %839 = load ptr, ptr %48, align 8, !tbaa !5
  %840 = call i32 @slascl2_(ptr noundef %832, ptr noundef %833, ptr noundef %835, ptr noundef %838, ptr noundef %839)
  br label %841

841:                                              ; preds = %831, %828, %825
  br label %842

842:                                              ; preds = %841, %815
  store i32 0, ptr %30, align 4
  store i32 1, ptr %91, align 4
  br label %843

843:                                              ; preds = %842, %702, %503
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  %844 = load i32, ptr %30, align 4
  ret i32 %844
}

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

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

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

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

declare double @sla_gbrpvgrw__(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 @sgbtrs_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @sgbrfsx_(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, 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 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !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 [13 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 [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [5 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @sgbsvxx_(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 nocapture noundef writeonly %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, ptr noundef %28) local_unnamed_addr #0 {
  %30 = alloca i64, align 8
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca i64, align 8
  %34 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #4
  %35 = load i64, ptr %7, align 8, !tbaa !5
  %36 = xor i64 %35, -1
  %37 = getelementptr inbounds float, ptr %6, i64 %36
  %38 = load i64, ptr %9, align 8, !tbaa !5
  %39 = xor i64 %38, -1
  %40 = getelementptr inbounds float, ptr %8, i64 %39
  %41 = getelementptr inbounds i8, ptr %12, i64 -4
  %42 = getelementptr inbounds i8, ptr %13, i64 -4
  store i64 0, ptr %28, align 8, !tbaa !5
  %43 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %44 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %45 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #4
  %46 = tail call double @slamch_(ptr noundef nonnull @.str.2) #4
  %47 = fptrunc double %46 to float
  %48 = fdiv float 1.000000e+00, %47
  %49 = icmp ne i64 %43, 0
  %50 = icmp ne i64 %44, 0
  %or.cond = select i1 %49, i1 true, i1 %50
  br i1 %or.cond, label %.thread, label %51

.thread:                                          ; preds = %29
  store i8 78, ptr %11, align 1, !tbaa !9
  store float 0.000000e+00, ptr %19, align 4, !tbaa !10
  br label %67

51:                                               ; preds = %29
  %52 = tail call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.3) #4
  %.not = icmp eq i64 %52, 0
  br i1 %.not, label %53, label %56

53:                                               ; preds = %51
  %54 = tail call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.4) #4
  %55 = icmp ne i64 %54, 0
  br label %56

56:                                               ; preds = %53, %51
  %57 = phi i1 [ true, %51 ], [ %55, %53 ]
  %58 = zext i1 %57 to i64
  %59 = tail call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.5) #4
  %.not348 = icmp eq i64 %59, 0
  br i1 %.not348, label %60, label %63

60:                                               ; preds = %56
  %61 = tail call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.4) #4
  %62 = icmp ne i64 %61, 0
  br label %63

63:                                               ; preds = %60, %56
  %64 = phi i1 [ true, %56 ], [ %62, %60 ]
  %65 = zext i1 %64 to i64
  store float 0.000000e+00, ptr %19, align 4, !tbaa !10
  %66 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.6) #4
  %.not349 = icmp eq i64 %66, 0
  br i1 %.not349, label %.thread382.sink.split, label %67

67:                                               ; preds = %.thread, %63
  %.0375 = phi i64 [ 0, %.thread ], [ %58, %63 ]
  %.0332373 = phi i64 [ 0, %.thread ], [ %65, %63 ]
  %.not350 = icmp eq i64 %45, 0
  br i1 %.not350, label %68, label %72

68:                                               ; preds = %67
  %69 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.7) #4
  %.not351 = icmp eq i64 %69, 0
  br i1 %.not351, label %70, label %72

70:                                               ; preds = %68
  %71 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.5) #4
  %.not352 = icmp eq i64 %71, 0
  br i1 %.not352, label %.thread382.sink.split, label %72

72:                                               ; preds = %70, %68, %67
  %73 = load i64, ptr %2, align 8, !tbaa !5
  %74 = icmp slt i64 %73, 0
  br i1 %74, label %.thread382.sink.split, label %75

75:                                               ; preds = %72
  %76 = load i64, ptr %3, align 8, !tbaa !5
  %77 = icmp slt i64 %76, 0
  br i1 %77, label %.thread382.sink.split, label %78

78:                                               ; preds = %75
  %79 = load i64, ptr %4, align 8, !tbaa !5
  %80 = icmp slt i64 %79, 0
  br i1 %80, label %.thread382.sink.split, label %81

81:                                               ; preds = %78
  %82 = load i64, ptr %5, align 8, !tbaa !5
  %83 = icmp slt i64 %82, 0
  br i1 %83, label %.thread382.sink.split, label %84

84:                                               ; preds = %81
  %85 = load i64, ptr %7, align 8, !tbaa !5
  %86 = add nuw nsw i64 %79, %76
  %.not353 = icmp sgt i64 %85, %86
  br i1 %.not353, label %87, label %.thread382.sink.split

87:                                               ; preds = %84
  %88 = load i64, ptr %9, align 8, !tbaa !5
  %89 = shl nuw i64 %76, 1
  %90 = add nsw i64 %79, %89
  %.not354 = icmp sgt i64 %88, %90
  br i1 %.not354, label %91, label %.thread382.sink.split

91:                                               ; preds = %87
  %92 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.6) #4
  %93 = icmp eq i64 %92, 0
  %94 = icmp ne i64 %.0375, 0
  %or.cond5 = select i1 %93, i1 true, i1 %94
  %95 = icmp ne i64 %.0332373, 0
  %or.cond7 = select i1 %or.cond5, i1 true, i1 %95
  br i1 %or.cond7, label %98, label %96

96:                                               ; preds = %91
  %97 = tail call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str) #4
  %.not355 = icmp eq i64 %97, 0
  br i1 %.not355, label %.thread382.sink.split, label %..thread377_crit_edge

..thread377_crit_edge:                            ; preds = %96
  %.pr.pre = load i64, ptr %28, align 8, !tbaa !5
  br label %.thread377

98:                                               ; preds = %91
  br i1 %94, label %99, label %131

99:                                               ; preds = %98
  %100 = load i64, ptr %2, align 8, !tbaa !5
  %.not356406 = icmp slt i64 %100, 1
  br i1 %.not356406, label %._crit_edge, label %.lr.ph.preheader

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

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

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %.0335409 = phi float [ 0.000000e+00, %.lr.ph.preheader.new ], [ %113, %.lr.ph ]
  %.0337408 = phi float [ %48, %.lr.ph.preheader.new ], [ %111, %.lr.ph ]
  %.0339407 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %114, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %102 = getelementptr inbounds float, ptr %41, i64 %.0339407
  %103 = load float, ptr %102, align 4, !tbaa !10
  %104 = fcmp ole float %.0337408, %103
  %105 = select i1 %104, float %.0337408, float %103
  %106 = fcmp oge float %.0335409, %103
  %107 = select i1 %106, float %.0335409, float %103
  %108 = getelementptr float, ptr %12, i64 %.0339407
  %109 = load float, ptr %108, align 4, !tbaa !10
  %110 = fcmp ole float %105, %109
  %111 = select i1 %110, float %105, float %109
  %112 = fcmp oge float %107, %109
  %113 = select i1 %112, float %107, float %109
  %114 = add nuw i64 %.0339407, 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
  %.lcssa503.ph = phi float [ poison, %.lr.ph.preheader ], [ %111, %.lr.ph ]
  %.lcssa502.ph = phi float [ poison, %.lr.ph.preheader ], [ %113, %.lr.ph ]
  %.0335409.unr = phi float [ 0.000000e+00, %.lr.ph.preheader ], [ %113, %.lr.ph ]
  %.0337408.unr = phi float [ %48, %.lr.ph.preheader ], [ %111, %.lr.ph ]
  %.0339407.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %114, %.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
  %115 = getelementptr inbounds float, ptr %41, i64 %.0339407.unr
  %116 = load float, ptr %115, align 4, !tbaa !10
  %117 = fcmp ole float %.0337408.unr, %116
  %118 = select i1 %117, float %.0337408.unr, float %116
  %119 = fcmp oge float %.0335409.unr, %116
  %120 = select i1 %119, float %.0335409.unr, float %116
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.loopexit.unr-lcssa, %99
  %.0337.lcssa = phi float [ %48, %99 ], [ %.lcssa503.ph, %._crit_edge.loopexit.unr-lcssa ], [ %118, %.lr.ph.epil ]
  %.0335.lcssa = phi float [ 0.000000e+00, %99 ], [ %.lcssa502.ph, %._crit_edge.loopexit.unr-lcssa ], [ %120, %.lr.ph.epil ]
  %121 = fcmp ugt float %.0337.lcssa, 0.000000e+00
  br i1 %121, label %122, label %.thread382.sink.split

122:                                              ; preds = %._crit_edge
  %123 = icmp sgt i64 %100, 0
  br i1 %123, label %124, label %130

124:                                              ; preds = %122
  %125 = fcmp oge float %.0337.lcssa, %47
  %126 = select i1 %125, float %.0337.lcssa, float %47
  %127 = fcmp ole float %.0335.lcssa, %48
  %128 = select i1 %127, float %.0335.lcssa, float %48
  %129 = fdiv float %126, %128
  store float %129, ptr %34, align 4, !tbaa !10
  br label %131

130:                                              ; preds = %122
  store float 1.000000e+00, ptr %34, align 4, !tbaa !10
  br label %131

131:                                              ; preds = %130, %124, %98
  %.pr.pre450.pr = load i64, ptr %28, align 8, !tbaa !5
  br i1 %95, label %132, label %.thread377

132:                                              ; preds = %131
  %133 = icmp eq i64 %.pr.pre450.pr, 0
  br i1 %133, label %134, label %.thread382

134:                                              ; preds = %132
  %135 = load i64, ptr %2, align 8, !tbaa !5
  %.not357411 = icmp slt i64 %135, 1
  br i1 %.not357411, label %._crit_edge417, label %.lr.ph416.preheader

.lr.ph416.preheader:                              ; preds = %134
  %xtraiter506 = and i64 %135, 1
  %136 = icmp eq i64 %135, 1
  br i1 %136, label %._crit_edge417.loopexit.unr-lcssa, label %.lr.ph416.preheader.new

.lr.ph416.preheader.new:                          ; preds = %.lr.ph416.preheader
  %unroll_iter510 = and i64 %135, 9223372036854775806
  br label %.lr.ph416

.lr.ph416:                                        ; preds = %.lr.ph416, %.lr.ph416.preheader.new
  %.1336414 = phi float [ 0.000000e+00, %.lr.ph416.preheader.new ], [ %148, %.lr.ph416 ]
  %.1338413 = phi float [ %48, %.lr.ph416.preheader.new ], [ %146, %.lr.ph416 ]
  %.1340412 = phi i64 [ 1, %.lr.ph416.preheader.new ], [ %149, %.lr.ph416 ]
  %niter511 = phi i64 [ 0, %.lr.ph416.preheader.new ], [ %niter511.next.1, %.lr.ph416 ]
  %137 = getelementptr inbounds float, ptr %42, i64 %.1340412
  %138 = load float, ptr %137, align 4, !tbaa !10
  %139 = fcmp ole float %.1338413, %138
  %140 = select i1 %139, float %.1338413, float %138
  %141 = fcmp oge float %.1336414, %138
  %142 = select i1 %141, float %.1336414, float %138
  %143 = getelementptr float, ptr %13, i64 %.1340412
  %144 = load float, ptr %143, align 4, !tbaa !10
  %145 = fcmp ole float %140, %144
  %146 = select i1 %145, float %140, float %144
  %147 = fcmp oge float %142, %144
  %148 = select i1 %147, float %142, float %144
  %149 = add nuw i64 %.1340412, 2
  %niter511.next.1 = add i64 %niter511, 2
  %niter511.ncmp.1 = icmp eq i64 %niter511.next.1, %unroll_iter510
  br i1 %niter511.ncmp.1, label %._crit_edge417.loopexit.unr-lcssa, label %.lr.ph416, !llvm.loop !14

._crit_edge417.loopexit.unr-lcssa:                ; preds = %.lr.ph416, %.lr.ph416.preheader
  %.lcssa501.ph = phi float [ poison, %.lr.ph416.preheader ], [ %146, %.lr.ph416 ]
  %.lcssa.ph = phi float [ poison, %.lr.ph416.preheader ], [ %148, %.lr.ph416 ]
  %.1336414.unr = phi float [ 0.000000e+00, %.lr.ph416.preheader ], [ %148, %.lr.ph416 ]
  %.1338413.unr = phi float [ %48, %.lr.ph416.preheader ], [ %146, %.lr.ph416 ]
  %.1340412.unr = phi i64 [ 1, %.lr.ph416.preheader ], [ %149, %.lr.ph416 ]
  %lcmp.mod507.not = icmp eq i64 %xtraiter506, 0
  br i1 %lcmp.mod507.not, label %._crit_edge417, label %.lr.ph416.epil

.lr.ph416.epil:                                   ; preds = %._crit_edge417.loopexit.unr-lcssa
  %150 = getelementptr inbounds float, ptr %42, i64 %.1340412.unr
  %151 = load float, ptr %150, align 4, !tbaa !10
  %152 = fcmp ole float %.1338413.unr, %151
  %153 = select i1 %152, float %.1338413.unr, float %151
  %154 = fcmp oge float %.1336414.unr, %151
  %155 = select i1 %154, float %.1336414.unr, float %151
  br label %._crit_edge417

._crit_edge417:                                   ; preds = %.lr.ph416.epil, %._crit_edge417.loopexit.unr-lcssa, %134
  %.1338.lcssa = phi float [ %48, %134 ], [ %.lcssa501.ph, %._crit_edge417.loopexit.unr-lcssa ], [ %153, %.lr.ph416.epil ]
  %.1336.lcssa = phi float [ 0.000000e+00, %134 ], [ %.lcssa.ph, %._crit_edge417.loopexit.unr-lcssa ], [ %155, %.lr.ph416.epil ]
  %156 = fcmp ugt float %.1338.lcssa, 0.000000e+00
  br i1 %156, label %157, label %.thread382.sink.split

157:                                              ; preds = %._crit_edge417
  %158 = icmp sgt i64 %135, 0
  br i1 %158, label %159, label %165

159:                                              ; preds = %157
  %160 = fcmp oge float %.1338.lcssa, %47
  %161 = select i1 %160, float %.1338.lcssa, float %47
  %162 = fcmp ole float %.1336.lcssa, %48
  %163 = select i1 %162, float %.1336.lcssa, float %48
  %164 = fdiv float %161, %163
  store float %164, ptr %32, align 4, !tbaa !10
  br label %.thread377.thread

165:                                              ; preds = %157
  store float 1.000000e+00, ptr %32, align 4, !tbaa !10
  br label %.thread377.thread

.thread377:                                       ; preds = %..thread377_crit_edge, %131
  %.pr380.pr = phi i64 [ %.pr.pre, %..thread377_crit_edge ], [ %.pr.pre450.pr, %131 ]
  %166 = icmp eq i64 %.pr380.pr, 0
  br i1 %166, label %.thread377.thread, label %.thread382

.thread377.thread:                                ; preds = %159, %165, %.thread377
  %167 = load i64, ptr %15, align 8, !tbaa !5
  %168 = load i64, ptr %2, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.smax.i64(i64 %168, i64 1)
  %169 = icmp slt i64 %167, %spec.select
  br i1 %169, label %.thread382.sink.split, label %170

170:                                              ; preds = %.thread377.thread
  %171 = load i64, ptr %17, align 8, !tbaa !5
  %172 = icmp slt i64 %171, %spec.select
  br i1 %172, label %.thread382.sink.split, label %.thread378

.thread382.sink.split:                            ; preds = %170, %.thread377.thread, %._crit_edge417, %._crit_edge, %96, %87, %84, %81, %78, %75, %72, %70, %63
  %.sink = phi i64 [ -1, %63 ], [ -2, %70 ], [ -3, %72 ], [ -4, %75 ], [ -5, %78 ], [ -6, %81 ], [ -8, %84 ], [ -10, %87 ], [ -12, %96 ], [ -13, %._crit_edge ], [ -14, %._crit_edge417 ], [ -15, %.thread377.thread ], [ -16, %170 ]
  store i64 %.sink, ptr %28, align 8, !tbaa !5
  br label %.thread382

.thread382:                                       ; preds = %.thread382.sink.split, %132, %.thread377
  %173 = phi i64 [ %.pr380.pr, %.thread377 ], [ %.pr.pre450.pr, %132 ], [ %.sink, %.thread382.sink.split ]
  %174 = sub nsw i64 0, %173
  store i64 %174, ptr %30, align 8, !tbaa !5
  %175 = call i32 @xerbla_(ptr noundef nonnull @.str.8, ptr noundef nonnull %30) #4
  br label %269

.thread378:                                       ; preds = %170
  br i1 %50, label %176, label %.loopexit

176:                                              ; preds = %.thread378
  %177 = call i32 @sgbequb_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull %33) #4
  %178 = load i64, ptr %33, align 8, !tbaa !5
  %179 = icmp eq i64 %178, 0
  br i1 %179, label %180, label %194

180:                                              ; preds = %176
  %181 = call i32 @slaqgb_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef %11) #4
  %182 = call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.3) #4
  %.not359 = icmp eq i64 %182, 0
  br i1 %.not359, label %183, label %187

183:                                              ; preds = %180
  %184 = call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.4) #4
  %185 = icmp ne i64 %184, 0
  %186 = zext i1 %185 to i64
  br label %187

187:                                              ; preds = %183, %180
  %188 = phi i64 [ 1, %180 ], [ %186, %183 ]
  %189 = call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.5) #4
  %.not360 = icmp eq i64 %189, 0
  br i1 %.not360, label %190, label %194

190:                                              ; preds = %187
  %191 = call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.4) #4
  %192 = icmp ne i64 %191, 0
  %193 = zext i1 %192 to i64
  br label %194

194:                                              ; preds = %187, %190, %176
  %.1333 = phi i64 [ %.0332373, %176 ], [ 1, %187 ], [ %193, %190 ]
  %.1 = phi i64 [ %.0375, %176 ], [ %188, %187 ], [ %188, %190 ]
  %.not361 = icmp eq i64 %.1, 0
  br i1 %.not361, label %195, label %.loopexit405

195:                                              ; preds = %194
  %196 = load i64, ptr %2, align 8, !tbaa !5
  %.not362420 = icmp slt i64 %196, 1
  br i1 %.not362420, label %.loopexit405, label %.lr.ph423.preheader

.lr.ph423.preheader:                              ; preds = %195
  %min.iters.check = icmp ult i64 %196, 8
  br i1 %min.iters.check, label %.lr.ph423.preheader500, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph423.preheader
  %n.vec = and i64 %196, 9223372036854775800
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %197 = getelementptr float, ptr %12, i64 %index
  %198 = getelementptr inbounds i8, ptr %197, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %197, align 4, !tbaa !10
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %198, align 4, !tbaa !10
  %index.next = add nuw i64 %index, 8
  %199 = icmp eq i64 %index.next, %n.vec
  br i1 %199, label %middle.block, label %vector.body, !llvm.loop !15

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %196, %n.vec
  br i1 %cmp.n, label %.loopexit405, label %.lr.ph423.preheader500

.lr.ph423.preheader500:                           ; preds = %middle.block, %.lr.ph423.preheader
  %.2341421.ph = phi i64 [ 1, %.lr.ph423.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph423

.lr.ph423:                                        ; preds = %.lr.ph423.preheader500, %.lr.ph423
  %.2341421 = phi i64 [ %201, %.lr.ph423 ], [ %.2341421.ph, %.lr.ph423.preheader500 ]
  %200 = getelementptr inbounds float, ptr %41, i64 %.2341421
  store float 1.000000e+00, ptr %200, align 4, !tbaa !10
  %201 = add nuw i64 %.2341421, 1
  %exitcond445.not = icmp eq i64 %.2341421, %196
  br i1 %exitcond445.not, label %.loopexit405, label %.lr.ph423, !llvm.loop !18

.loopexit405:                                     ; preds = %.lr.ph423, %middle.block, %195, %194
  %.not363 = icmp eq i64 %.1333, 0
  br i1 %.not363, label %202, label %.thread386

202:                                              ; preds = %.loopexit405
  %203 = load i64, ptr %2, align 8, !tbaa !5
  %.not364424 = icmp slt i64 %203, 1
  br i1 %.not364424, label %.loopexit, label %.lr.ph427.preheader

.lr.ph427.preheader:                              ; preds = %202
  %min.iters.check470 = icmp ult i64 %203, 8
  br i1 %min.iters.check470, label %.lr.ph427.preheader499, label %vector.ph471

vector.ph471:                                     ; preds = %.lr.ph427.preheader
  %n.vec473 = and i64 %203, 9223372036854775800
  %ind.end474 = or disjoint i64 %n.vec473, 1
  br label %vector.body476

vector.body476:                                   ; preds = %vector.body476, %vector.ph471
  %index477 = phi i64 [ 0, %vector.ph471 ], [ %index.next479, %vector.body476 ]
  %204 = getelementptr float, ptr %13, i64 %index477
  %205 = getelementptr inbounds i8, ptr %204, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %204, align 4, !tbaa !10
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %205, align 4, !tbaa !10
  %index.next479 = add nuw i64 %index477, 8
  %206 = icmp eq i64 %index.next479, %n.vec473
  br i1 %206, label %middle.block468, label %vector.body476, !llvm.loop !19

middle.block468:                                  ; preds = %vector.body476
  %cmp.n480 = icmp eq i64 %203, %n.vec473
  br i1 %cmp.n480, label %.loopexit, label %.lr.ph427.preheader499

.lr.ph427.preheader499:                           ; preds = %middle.block468, %.lr.ph427.preheader
  %.3425.ph = phi i64 [ 1, %.lr.ph427.preheader ], [ %ind.end474, %middle.block468 ]
  br label %.lr.ph427

.lr.ph427:                                        ; preds = %.lr.ph427.preheader499, %.lr.ph427
  %.3425 = phi i64 [ %208, %.lr.ph427 ], [ %.3425.ph, %.lr.ph427.preheader499 ]
  %207 = getelementptr inbounds float, ptr %42, i64 %.3425
  store float 1.000000e+00, ptr %207, align 4, !tbaa !10
  %208 = add nuw i64 %.3425, 1
  %exitcond446.not = icmp eq i64 %.3425, %203
  br i1 %exitcond446.not, label %.loopexit, label %.lr.ph427, !llvm.loop !20

.loopexit:                                        ; preds = %.lr.ph427, %middle.block468, %202, %.thread378
  %.2334 = phi i64 [ %.0332373, %.thread378 ], [ 0, %202 ], [ 0, %middle.block468 ], [ 0, %.lr.ph427 ]
  %.2 = phi i64 [ %.0375, %.thread378 ], [ %.1, %202 ], [ %.1, %middle.block468 ], [ %.1, %.lr.ph427 ]
  br i1 %.not350, label %210, label %209

.thread386:                                       ; preds = %.loopexit405
  br i1 %.not350, label %.sink.split, label %209

209:                                              ; preds = %.thread386, %.loopexit
  %.2392 = phi i64 [ %.1, %.thread386 ], [ %.2, %.loopexit ]
  %.2334391 = phi i64 [ 1, %.thread386 ], [ %.2334, %.loopexit ]
  %.not366 = icmp eq i64 %.2392, 0
  br i1 %.not366, label %212, label %.sink.split

210:                                              ; preds = %.loopexit
  %.not365 = icmp eq i64 %.2334, 0
  br i1 %.not365, label %212, label %.sink.split

.sink.split:                                      ; preds = %210, %.thread386, %209
  %.sink464 = phi ptr [ %12, %209 ], [ %13, %.thread386 ], [ %13, %210 ]
  %.ph463 = phi i1 [ true, %209 ], [ false, %.thread386 ], [ false, %210 ]
  %.2393.ph = phi i64 [ 1, %209 ], [ %.1, %.thread386 ], [ %.2, %210 ]
  %.2334389.ph = phi i64 [ %.2334391, %209 ], [ 1, %.thread386 ], [ 1, %210 ]
  %211 = call i32 @slascl2_(ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %.sink464, ptr noundef %14, ptr noundef nonnull %15) #4
  br label %212

212:                                              ; preds = %.sink.split, %210, %209
  %213 = phi i1 [ false, %210 ], [ true, %209 ], [ %.ph463, %.sink.split ]
  %.2393 = phi i64 [ %.2, %210 ], [ 0, %209 ], [ %.2393.ph, %.sink.split ]
  %.2334389 = phi i64 [ 0, %210 ], [ %.2334391, %209 ], [ %.2334389.ph, %.sink.split ]
  br i1 %or.cond, label %214, label %256

214:                                              ; preds = %212
  %215 = load i64, ptr %2, align 8, !tbaa !5
  %.not367435 = icmp slt i64 %215, 1
  br i1 %.not367435, label %._crit_edge439, label %.lr.ph438

.lr.ph438:                                        ; preds = %214
  %216 = load i64, ptr %3, align 8, !tbaa !5
  %217 = shl i64 %216, 1
  %218 = load i64, ptr %4, align 8, !tbaa !5
  %219 = add i64 %217, %218
  %.not368428 = icmp sgt i64 %216, %219
  br i1 %.not368428, label %._crit_edge439, label %.lr.ph431.preheader

.lr.ph431.preheader:                              ; preds = %.lr.ph438
  %220 = shl i64 %216, 2
  %scevgep = getelementptr i8, ptr %8, i64 %220
  %221 = add nsw i64 %215, -1
  %222 = mul i64 %38, %221
  %223 = shl i64 %216, 3
  %224 = add i64 %222, %218
  %225 = shl i64 %224, 2
  %226 = getelementptr i8, ptr %8, i64 %225
  %227 = getelementptr i8, ptr %226, i64 %223
  %scevgep481 = getelementptr i8, ptr %227, i64 4
  %228 = mul i64 %35, %221
  %229 = add i64 %218, %216
  %230 = add i64 %228, %229
  %231 = shl i64 %230, 2
  %232 = getelementptr i8, ptr %6, i64 %231
  %scevgep482 = getelementptr i8, ptr %232, i64 4
  %233 = add i64 %229, 1
  %min.iters.check486 = icmp ult i64 %233, 8
  %bound0 = icmp ult ptr %scevgep, %scevgep482
  %bound1 = icmp ugt ptr %scevgep481, %6
  %found.conflict = and i1 %bound0, %bound1
  %234 = or i64 %38, %35
  %235 = and i64 %234, 2305843009213693952
  %236 = icmp ne i64 %235, 0
  %237 = or i1 %found.conflict, %236
  %n.vec489 = and i64 %233, -8
  %ind.end490 = add i64 %216, %n.vec489
  %cmp.n497 = icmp eq i64 %233, %n.vec489
  br label %.lr.ph431

.lr.ph431:                                        ; preds = %.lr.ph431.preheader, %._crit_edge432
  %.4436 = phi i64 [ %249, %._crit_edge432 ], [ 1, %.lr.ph431.preheader ]
  %238 = mul nsw i64 %.4436, %35
  %invariant.gep = getelementptr float, ptr %37, i64 %238
  %239 = mul nsw i64 %.4436, %38
  %invariant.gep433 = getelementptr float, ptr %40, i64 %239
  %brmerge = select i1 %min.iters.check486, i1 true, i1 %237
  br i1 %brmerge, label %scalar.ph485.preheader, label %vector.body492

vector.body492:                                   ; preds = %.lr.ph431, %vector.body492
  %index493 = phi i64 [ %index.next496, %vector.body492 ], [ 0, %.lr.ph431 ]
  %offset.idx494 = add i64 %216, %index493
  %240 = add nsw i64 %offset.idx494, 1
  %241 = sub nsw i64 %240, %216
  %242 = getelementptr float, ptr %invariant.gep, i64 %241
  %243 = getelementptr i8, ptr %242, i64 16
  %wide.load = load <4 x float>, ptr %242, align 4, !tbaa !10, !alias.scope !21
  %wide.load495 = load <4 x float>, ptr %243, align 4, !tbaa !10, !alias.scope !21
  %244 = getelementptr float, ptr %invariant.gep433, i64 %240
  %245 = getelementptr i8, ptr %244, i64 16
  store <4 x float> %wide.load, ptr %244, align 4, !tbaa !10, !alias.scope !24, !noalias !21
  store <4 x float> %wide.load495, ptr %245, align 4, !tbaa !10, !alias.scope !24, !noalias !21
  %index.next496 = add nuw i64 %index493, 8
  %246 = icmp eq i64 %index.next496, %n.vec489
  br i1 %246, label %middle.block484, label %vector.body492, !llvm.loop !26

middle.block484:                                  ; preds = %vector.body492
  br i1 %cmp.n497, label %._crit_edge432, label %scalar.ph485.preheader

scalar.ph485.preheader:                           ; preds = %.lr.ph431, %middle.block484
  %.0342.in429.ph = phi i64 [ %216, %.lr.ph431 ], [ %ind.end490, %middle.block484 ]
  br label %scalar.ph485

scalar.ph485:                                     ; preds = %scalar.ph485.preheader, %scalar.ph485
  %.0342.in429 = phi i64 [ %.0342, %scalar.ph485 ], [ %.0342.in429.ph, %scalar.ph485.preheader ]
  %.0342 = add nsw i64 %.0342.in429, 1
  %247 = sub nsw i64 %.0342, %216
  %gep = getelementptr float, ptr %invariant.gep, i64 %247
  %248 = load float, ptr %gep, align 4, !tbaa !10
  %gep434 = getelementptr float, ptr %invariant.gep433, i64 %.0342
  store float %248, ptr %gep434, align 4, !tbaa !10
  %exitcond448.not = icmp eq i64 %.0342.in429, %219
  br i1 %exitcond448.not, label %._crit_edge432, label %scalar.ph485, !llvm.loop !27

._crit_edge432:                                   ; preds = %scalar.ph485, %middle.block484
  %249 = add nuw i64 %.4436, 1
  %exitcond449.not = icmp eq i64 %.4436, %215
  br i1 %exitcond449.not, label %._crit_edge439, label %.lr.ph431, !llvm.loop !28

._crit_edge439:                                   ; preds = %._crit_edge432, %.lr.ph438, %214
  %250 = call i32 @sgbtrf_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %28) #4
  %251 = load i64, ptr %28, align 8, !tbaa !5
  %252 = icmp sgt i64 %251, 0
  br i1 %252, label %253, label %256

253:                                              ; preds = %._crit_edge439
  %254 = call double @sla_gbrpvgrw__(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %28, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9) #4
  %255 = fptrunc double %254 to float
  store float %255, ptr %19, align 4, !tbaa !10
  br label %269

256:                                              ; preds = %._crit_edge439, %212
  %257 = call double @sla_gbrpvgrw__(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9) #4
  %258 = fptrunc double %257 to float
  store float %258, ptr %19, align 4, !tbaa !10
  %259 = call i32 @slacpy_(ptr noundef nonnull @.str.9, ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %16, ptr noundef nonnull %17) #4
  %260 = call i32 @sgbtrs_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %28) #4
  %261 = call i32 @sgbrfsx_(ptr noundef %1, ptr noundef %11, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %18, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, ptr noundef nonnull %28) #4
  %262 = icmp ne i64 %.2334389, 0
  %or.cond11 = and i1 %213, %262
  br i1 %or.cond11, label %263, label %265

263:                                              ; preds = %256
  %264 = call i32 @slascl2_(ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %13, ptr noundef %16, ptr noundef nonnull %17) #4
  br label %269

265:                                              ; preds = %256
  %266 = icmp eq i64 %.2393, 0
  %or.cond13 = or i1 %213, %266
  br i1 %or.cond13, label %269, label %267

267:                                              ; preds = %265
  %268 = call i32 @slascl2_(ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %12, ptr noundef %16, ptr noundef nonnull %17) #4
  br label %269

269:                                              ; preds = %263, %267, %265, %253, %.thread382
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #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 @sgbequb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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 = distinct !{!14, !13}
!15 = distinct !{!15, !13, !16, !17}
!16 = !{!"llvm.loop.isvectorized", i32 1}
!17 = !{!"llvm.loop.unroll.runtime.disable"}
!18 = distinct !{!18, !13, !17, !16}
!19 = distinct !{!19, !13, !16, !17}
!20 = distinct !{!20, !13, !17, !16}
!21 = !{!22}
!22 = distinct !{!22, !23}
!23 = distinct !{!23, !"LVerDomain"}
!24 = !{!25}
!25 = distinct !{!25, !23}
!26 = distinct !{!26, !13, !16, !17}
!27 = distinct !{!27, !13, !16}
!28 = distinct !{!28, !13}


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