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

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

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

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

136:                                              ; preds = %22
  %137 = load ptr, ptr %24, align 8, !tbaa !5
  %138 = call i64 @lsame_(ptr noundef %137, ptr noundef @.str.4)
  %139 = icmp ne i64 %138, 0
  br i1 %139, label %142, label %140

140:                                              ; preds = %136
  %141 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -1, ptr %141, align 8, !tbaa !9
  br label %274

142:                                              ; preds = %136, %22
  %143 = load i64, ptr %77, align 8, !tbaa !9
  %144 = icmp ne i64 %143, 0
  br i1 %144, label %153, label %145

145:                                              ; preds = %142
  %146 = load i64, ptr %81, align 8, !tbaa !9
  %147 = icmp ne i64 %146, 0
  br i1 %147, label %153, label %148

148:                                              ; preds = %145
  %149 = load i64, ptr %78, align 8, !tbaa !9
  %150 = icmp ne i64 %149, 0
  br i1 %150, label %153, label %151

151:                                              ; preds = %148
  %152 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -2, ptr %152, align 8, !tbaa !9
  br label %273

153:                                              ; preds = %148, %145, %142
  %154 = load i64, ptr %75, align 8, !tbaa !9
  %155 = icmp ne i64 %154, 0
  br i1 %155, label %162, label %156

156:                                              ; preds = %153
  %157 = load ptr, ptr %26, align 8, !tbaa !5
  %158 = call i64 @lsame_(ptr noundef %157, ptr noundef @.str.5)
  %159 = icmp ne i64 %158, 0
  br i1 %159, label %162, label %160

160:                                              ; preds = %156
  %161 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -3, ptr %161, align 8, !tbaa !9
  br label %272

162:                                              ; preds = %156, %153
  %163 = load ptr, ptr %27, align 8, !tbaa !5
  %164 = load i64, ptr %163, align 8, !tbaa !9
  %165 = icmp slt i64 %164, 0
  br i1 %165, label %166, label %168

166:                                              ; preds = %162
  %167 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -4, ptr %167, align 8, !tbaa !9
  br label %271

168:                                              ; preds = %162
  %169 = load ptr, ptr %28, align 8, !tbaa !5
  %170 = load i64, ptr %169, align 8, !tbaa !9
  %171 = icmp slt i64 %170, 0
  br i1 %171, label %172, label %174

172:                                              ; preds = %168
  %173 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -5, ptr %173, align 8, !tbaa !9
  br label %270

174:                                              ; preds = %168
  %175 = load ptr, ptr %30, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = load ptr, ptr %28, align 8, !tbaa !5
  %178 = load i64, ptr %177, align 8, !tbaa !9
  %179 = add nsw i64 %178, 1
  %180 = icmp slt i64 %176, %179
  br i1 %180, label %181, label %183

181:                                              ; preds = %174
  %182 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -7, ptr %182, align 8, !tbaa !9
  br label %269

183:                                              ; preds = %174
  %184 = load i64, ptr %76, align 8, !tbaa !9
  %185 = icmp ne i64 %184, 0
  br i1 %185, label %186, label %201

186:                                              ; preds = %183
  %187 = load ptr, ptr %32, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  %189 = load ptr, ptr %27, align 8, !tbaa !5
  %190 = load i64, ptr %189, align 8, !tbaa !9
  %191 = icmp sge i64 1, %190
  br i1 %191, label %192, label %193

192:                                              ; preds = %186
  br label %196

193:                                              ; preds = %186
  %194 = load ptr, ptr %27, align 8, !tbaa !5
  %195 = load i64, ptr %194, align 8, !tbaa !9
  br label %196

196:                                              ; preds = %193, %192
  %197 = phi i64 [ 1, %192 ], [ %195, %193 ]
  %198 = icmp slt i64 %188, %197
  br i1 %198, label %199, label %201

199:                                              ; preds = %196
  %200 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -9, ptr %200, align 8, !tbaa !9
  br label %268

201:                                              ; preds = %196, %183
  %202 = load i64, ptr %81, align 8, !tbaa !9
  %203 = icmp ne i64 %202, 0
  br i1 %203, label %204, label %217

204:                                              ; preds = %201
  %205 = load ptr, ptr %27, align 8, !tbaa !5
  %206 = load i64, ptr %205, align 8, !tbaa !9
  %207 = icmp sgt i64 %206, 0
  br i1 %207, label %208, label %216

208:                                              ; preds = %204
  %209 = load ptr, ptr %34, align 8, !tbaa !5
  %210 = load float, ptr %209, align 4, !tbaa !11
  %211 = load ptr, ptr %33, align 8, !tbaa !5
  %212 = load float, ptr %211, align 4, !tbaa !11
  %213 = fcmp ole float %210, %212
  br i1 %213, label %214, label %216

214:                                              ; preds = %208
  %215 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -11, ptr %215, align 8, !tbaa !9
  br label %216

216:                                              ; preds = %214, %208, %204
  br label %267

217:                                              ; preds = %201
  %218 = load i64, ptr %78, align 8, !tbaa !9
  %219 = icmp ne i64 %218, 0
  br i1 %219, label %220, label %266

220:                                              ; preds = %217
  %221 = load ptr, ptr %35, align 8, !tbaa !5
  %222 = load i64, ptr %221, align 8, !tbaa !9
  %223 = icmp slt i64 %222, 1
  br i1 %223, label %237, label %224

224:                                              ; preds = %220
  %225 = load ptr, ptr %35, align 8, !tbaa !5
  %226 = load i64, ptr %225, align 8, !tbaa !9
  %227 = load ptr, ptr %27, align 8, !tbaa !5
  %228 = load i64, ptr %227, align 8, !tbaa !9
  %229 = icmp sge i64 1, %228
  br i1 %229, label %230, label %231

230:                                              ; preds = %224
  br label %234

231:                                              ; preds = %224
  %232 = load ptr, ptr %27, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  br label %234

234:                                              ; preds = %231, %230
  %235 = phi i64 [ 1, %230 ], [ %233, %231 ]
  %236 = icmp sgt i64 %226, %235
  br i1 %236, label %237, label %239

237:                                              ; preds = %234, %220
  %238 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -12, ptr %238, align 8, !tbaa !9
  br label %265

239:                                              ; preds = %234
  %240 = load ptr, ptr %36, align 8, !tbaa !5
  %241 = load i64, ptr %240, align 8, !tbaa !9
  %242 = load ptr, ptr %27, align 8, !tbaa !5
  %243 = load i64, ptr %242, align 8, !tbaa !9
  %244 = load ptr, ptr %35, align 8, !tbaa !5
  %245 = load i64, ptr %244, align 8, !tbaa !9
  %246 = icmp sle i64 %243, %245
  br i1 %246, label %247, label %250

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

250:                                              ; preds = %239
  %251 = load ptr, ptr %35, align 8, !tbaa !5
  %252 = load i64, ptr %251, align 8, !tbaa !9
  br label %253

253:                                              ; preds = %250, %247
  %254 = phi i64 [ %249, %247 ], [ %252, %250 ]
  %255 = icmp slt i64 %241, %254
  br i1 %255, label %262, label %256

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

262:                                              ; preds = %256, %253
  %263 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -13, ptr %263, align 8, !tbaa !9
  br label %264

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

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

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

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

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

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

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

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

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

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

274:                                              ; preds = %273, %140
  %275 = load ptr, ptr %45, align 8, !tbaa !5
  %276 = load i64, ptr %275, align 8, !tbaa !9
  %277 = icmp eq i64 %276, 0
  br i1 %277, label %278, label %294

278:                                              ; preds = %274
  %279 = load ptr, ptr %41, align 8, !tbaa !5
  %280 = load i64, ptr %279, align 8, !tbaa !9
  %281 = icmp slt i64 %280, 1
  br i1 %281, label %291, label %282

282:                                              ; preds = %278
  %283 = load i64, ptr %76, align 8, !tbaa !9
  %284 = icmp ne i64 %283, 0
  br i1 %284, label %285, label %293

285:                                              ; preds = %282
  %286 = load ptr, ptr %41, align 8, !tbaa !5
  %287 = load i64, ptr %286, align 8, !tbaa !9
  %288 = load ptr, ptr %27, align 8, !tbaa !5
  %289 = load i64, ptr %288, align 8, !tbaa !9
  %290 = icmp slt i64 %287, %289
  br i1 %290, label %291, label %293

291:                                              ; preds = %285, %278
  %292 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 -18, ptr %292, align 8, !tbaa !9
  br label %293

293:                                              ; preds = %291, %285, %282
  br label %294

294:                                              ; preds = %293, %274
  %295 = load ptr, ptr %45, align 8, !tbaa !5
  %296 = load i64, ptr %295, align 8, !tbaa !9
  %297 = icmp ne i64 %296, 0
  br i1 %297, label %298, label %303

298:                                              ; preds = %294
  %299 = load ptr, ptr %45, align 8, !tbaa !5
  %300 = load i64, ptr %299, align 8, !tbaa !9
  %301 = sub nsw i64 0, %300
  store i64 %301, ptr %52, align 8, !tbaa !9
  %302 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %52)
  store i32 0, ptr %23, align 4
  store i32 1, ptr %90, align 4
  br label %904

303:                                              ; preds = %294
  %304 = load ptr, ptr %38, align 8, !tbaa !5
  store i64 0, ptr %304, align 8, !tbaa !9
  %305 = load ptr, ptr %27, align 8, !tbaa !5
  %306 = load i64, ptr %305, align 8, !tbaa !9
  %307 = icmp eq i64 %306, 0
  br i1 %307, label %308, label %309

308:                                              ; preds = %303
  store i32 0, ptr %23, align 4
  store i32 1, ptr %90, align 4
  br label %904

309:                                              ; preds = %303
  %310 = load ptr, ptr %27, align 8, !tbaa !5
  %311 = load i64, ptr %310, align 8, !tbaa !9
  %312 = icmp eq i64 %311, 1
  br i1 %312, label %313, label %365

313:                                              ; preds = %309
  %314 = load ptr, ptr %38, align 8, !tbaa !5
  store i64 1, ptr %314, align 8, !tbaa !9
  %315 = load i64, ptr %75, align 8, !tbaa !9
  %316 = icmp ne i64 %315, 0
  br i1 %316, label %317, label %323

317:                                              ; preds = %313
  %318 = load ptr, ptr %29, align 8, !tbaa !5
  %319 = load i64, ptr %46, align 8, !tbaa !9
  %320 = add nsw i64 %319, 1
  %321 = getelementptr inbounds float, ptr %318, i64 %320
  %322 = load float, ptr %321, align 4, !tbaa !11
  store float %322, ptr %62, align 4, !tbaa !11
  br label %332

323:                                              ; preds = %313
  %324 = load ptr, ptr %29, align 8, !tbaa !5
  %325 = load ptr, ptr %28, align 8, !tbaa !5
  %326 = load i64, ptr %325, align 8, !tbaa !9
  %327 = add nsw i64 %326, 1
  %328 = load i64, ptr %46, align 8, !tbaa !9
  %329 = add nsw i64 %327, %328
  %330 = getelementptr inbounds float, ptr %324, i64 %329
  %331 = load float, ptr %330, align 4, !tbaa !11
  store float %331, ptr %62, align 4, !tbaa !11
  br label %332

332:                                              ; preds = %323, %317
  %333 = load i64, ptr %81, align 8, !tbaa !9
  %334 = icmp ne i64 %333, 0
  br i1 %334, label %335, label %348

335:                                              ; preds = %332
  %336 = load ptr, ptr %33, align 8, !tbaa !5
  %337 = load float, ptr %336, align 4, !tbaa !11
  %338 = load float, ptr %62, align 4, !tbaa !11
  %339 = fcmp olt float %337, %338
  br i1 %339, label %340, label %345

340:                                              ; preds = %335
  %341 = load ptr, ptr %34, align 8, !tbaa !5
  %342 = load float, ptr %341, align 4, !tbaa !11
  %343 = load float, ptr %62, align 4, !tbaa !11
  %344 = fcmp oge float %342, %343
  br i1 %344, label %347, label %345

345:                                              ; preds = %340, %335
  %346 = load ptr, ptr %38, align 8, !tbaa !5
  store i64 0, ptr %346, align 8, !tbaa !9
  br label %347

347:                                              ; preds = %345, %340
  br label %348

348:                                              ; preds = %347, %332
  %349 = load ptr, ptr %38, align 8, !tbaa !5
  %350 = load i64, ptr %349, align 8, !tbaa !9
  %351 = icmp eq i64 %350, 1
  br i1 %351, label %352, label %364

352:                                              ; preds = %348
  %353 = load float, ptr %62, align 4, !tbaa !11
  %354 = load ptr, ptr %39, align 8, !tbaa !5
  %355 = getelementptr inbounds float, ptr %354, i64 1
  store float %353, ptr %355, align 4, !tbaa !11
  %356 = load i64, ptr %76, align 8, !tbaa !9
  %357 = icmp ne i64 %356, 0
  br i1 %357, label %358, label %363

358:                                              ; preds = %352
  %359 = load ptr, ptr %40, align 8, !tbaa !5
  %360 = load i64, ptr %50, align 8, !tbaa !9
  %361 = add nsw i64 %360, 1
  %362 = getelementptr inbounds float, ptr %359, i64 %361
  store float 1.000000e+00, ptr %362, align 4, !tbaa !11
  br label %363

363:                                              ; preds = %358, %352
  br label %364

364:                                              ; preds = %363, %348
  store i32 0, ptr %23, align 4
  store i32 1, ptr %90, align 4
  br label %904

365:                                              ; preds = %309
  %366 = call double @slamch_(ptr noundef @.str.7)
  %367 = fptrunc double %366 to float
  store float %367, ptr %82, align 4, !tbaa !11
  %368 = call double @slamch_(ptr noundef @.str.8)
  %369 = fptrunc double %368 to float
  store float %369, ptr %59, align 4, !tbaa !11
  %370 = load float, ptr %82, align 4, !tbaa !11
  %371 = load float, ptr %59, align 4, !tbaa !11
  %372 = fdiv float %370, %371
  store float %372, ptr %89, align 4, !tbaa !11
  %373 = load float, ptr %89, align 4, !tbaa !11
  %374 = fdiv float 1.000000e+00, %373
  store float %374, ptr %84, align 4, !tbaa !11
  %375 = load float, ptr %89, align 4, !tbaa !11
  %376 = fpext float %375 to double
  %377 = call double @sqrt(double noundef %376) #4
  %378 = fptrunc double %377 to float
  store float %378, ptr %67, align 4, !tbaa !11
  %379 = load float, ptr %84, align 4, !tbaa !11
  %380 = fpext float %379 to double
  %381 = call double @sqrt(double noundef %380) #4
  %382 = fptrunc double %381 to float
  store float %382, ptr %54, align 4, !tbaa !11
  %383 = load float, ptr %82, align 4, !tbaa !11
  %384 = fpext float %383 to double
  %385 = call double @sqrt(double noundef %384) #4
  %386 = call double @sqrt(double noundef %385) #4
  %387 = fdiv double 1.000000e+00, %386
  %388 = fptrunc double %387 to float
  store float %388, ptr %55, align 4, !tbaa !11
  %389 = load float, ptr %54, align 4, !tbaa !11
  %390 = load float, ptr %55, align 4, !tbaa !11
  %391 = fcmp ole float %389, %390
  br i1 %391, label %392, label %394

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

394:                                              ; preds = %365
  %395 = load float, ptr %55, 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 %68, align 4, !tbaa !11
  store i64 0, ptr %79, align 8, !tbaa !9
  %400 = load ptr, ptr %37, align 8, !tbaa !5
  %401 = load float, ptr %400, align 4, !tbaa !11
  store float %401, ptr %83, align 4, !tbaa !11
  %402 = load i64, ptr %81, align 8, !tbaa !9
  %403 = icmp ne i64 %402, 0
  br i1 %403, label %404, label %409

404:                                              ; preds = %396
  %405 = load ptr, ptr %33, align 8, !tbaa !5
  %406 = load float, ptr %405, align 4, !tbaa !11
  store float %406, ptr %60, align 4, !tbaa !11
  %407 = load ptr, ptr %34, align 8, !tbaa !5
  %408 = load float, ptr %407, align 4, !tbaa !11
  store float %408, ptr %61, align 4, !tbaa !11
  br label %410

409:                                              ; preds = %396
  store float 0.000000e+00, ptr %60, align 4, !tbaa !11
  store float 0.000000e+00, ptr %61, align 4, !tbaa !11
  br label %410

410:                                              ; preds = %409, %404
  %411 = load ptr, ptr %26, align 8, !tbaa !5
  %412 = load ptr, ptr %27, align 8, !tbaa !5
  %413 = load ptr, ptr %28, align 8, !tbaa !5
  %414 = load ptr, ptr %29, align 8, !tbaa !5
  %415 = load i64, ptr %47, align 8, !tbaa !9
  %416 = getelementptr inbounds float, ptr %414, i64 %415
  %417 = load ptr, ptr %30, align 8, !tbaa !5
  %418 = load ptr, ptr %42, align 8, !tbaa !5
  %419 = getelementptr inbounds float, ptr %418, i64 1
  %420 = call double @slansb_(ptr noundef @.str.9, ptr noundef %411, ptr noundef %412, ptr noundef %413, ptr noundef %416, ptr noundef %417, ptr noundef %419)
  %421 = fptrunc double %420 to float
  store float %421, ptr %65, align 4, !tbaa !11
  %422 = load float, ptr %65, align 4, !tbaa !11
  %423 = fcmp ogt float %422, 0.000000e+00
  br i1 %423, label %424, label %432

424:                                              ; preds = %410
  %425 = load float, ptr %65, align 4, !tbaa !11
  %426 = load float, ptr %67, align 4, !tbaa !11
  %427 = fcmp olt float %425, %426
  br i1 %427, label %428, label %432

428:                                              ; preds = %424
  store i64 1, ptr %79, align 8, !tbaa !9
  %429 = load float, ptr %67, align 4, !tbaa !11
  %430 = load float, ptr %65, align 4, !tbaa !11
  %431 = fdiv float %429, %430
  store float %431, ptr %72, align 4, !tbaa !11
  br label %441

432:                                              ; preds = %424, %410
  %433 = load float, ptr %65, align 4, !tbaa !11
  %434 = load float, ptr %68, align 4, !tbaa !11
  %435 = fcmp ogt float %433, %434
  br i1 %435, label %436, label %440

436:                                              ; preds = %432
  store i64 1, ptr %79, align 8, !tbaa !9
  %437 = load float, ptr %68, align 4, !tbaa !11
  %438 = load float, ptr %65, align 4, !tbaa !11
  %439 = fdiv float %437, %438
  store float %439, ptr %72, align 4, !tbaa !11
  br label %440

440:                                              ; preds = %436, %432
  br label %441

441:                                              ; preds = %440, %428
  %442 = load i64, ptr %79, align 8, !tbaa !9
  %443 = icmp eq i64 %442, 1
  br i1 %443, label %444, label %491

444:                                              ; preds = %441
  %445 = load i64, ptr %75, align 8, !tbaa !9
  %446 = icmp ne i64 %445, 0
  br i1 %446, label %447, label %458

447:                                              ; preds = %444
  %448 = load ptr, ptr %28, align 8, !tbaa !5
  %449 = load ptr, ptr %28, align 8, !tbaa !5
  %450 = load ptr, ptr %27, align 8, !tbaa !5
  %451 = load ptr, ptr %27, align 8, !tbaa !5
  %452 = load ptr, ptr %29, align 8, !tbaa !5
  %453 = load i64, ptr %47, align 8, !tbaa !9
  %454 = getelementptr inbounds float, ptr %452, i64 %453
  %455 = load ptr, ptr %30, align 8, !tbaa !5
  %456 = load ptr, ptr %45, align 8, !tbaa !5
  %457 = call i32 @slascl_(ptr noundef @.str.10, ptr noundef %448, ptr noundef %449, ptr noundef @c_b14, ptr noundef %72, ptr noundef %450, ptr noundef %451, ptr noundef %454, ptr noundef %455, ptr noundef %456)
  br label %469

458:                                              ; preds = %444
  %459 = load ptr, ptr %28, align 8, !tbaa !5
  %460 = load ptr, ptr %28, align 8, !tbaa !5
  %461 = load ptr, ptr %27, align 8, !tbaa !5
  %462 = load ptr, ptr %27, align 8, !tbaa !5
  %463 = load ptr, ptr %29, align 8, !tbaa !5
  %464 = load i64, ptr %47, align 8, !tbaa !9
  %465 = getelementptr inbounds float, ptr %463, i64 %464
  %466 = load ptr, ptr %30, align 8, !tbaa !5
  %467 = load ptr, ptr %45, align 8, !tbaa !5
  %468 = call i32 @slascl_(ptr noundef @.str.11, ptr noundef %459, ptr noundef %460, ptr noundef @c_b14, ptr noundef %72, ptr noundef %461, ptr noundef %462, ptr noundef %465, ptr noundef %466, ptr noundef %467)
  br label %469

469:                                              ; preds = %458, %447
  %470 = load ptr, ptr %37, align 8, !tbaa !5
  %471 = load float, ptr %470, align 4, !tbaa !11
  %472 = fcmp ogt float %471, 0.000000e+00
  br i1 %472, label %473, label %478

473:                                              ; preds = %469
  %474 = load ptr, ptr %37, align 8, !tbaa !5
  %475 = load float, ptr %474, align 4, !tbaa !11
  %476 = load float, ptr %72, align 4, !tbaa !11
  %477 = fmul float %475, %476
  store float %477, ptr %83, align 4, !tbaa !11
  br label %478

478:                                              ; preds = %473, %469
  %479 = load i64, ptr %81, align 8, !tbaa !9
  %480 = icmp ne i64 %479, 0
  br i1 %480, label %481, label %490

481:                                              ; preds = %478
  %482 = load ptr, ptr %33, align 8, !tbaa !5
  %483 = load float, ptr %482, align 4, !tbaa !11
  %484 = load float, ptr %72, align 4, !tbaa !11
  %485 = fmul float %483, %484
  store float %485, ptr %60, align 4, !tbaa !11
  %486 = load ptr, ptr %34, align 8, !tbaa !5
  %487 = load float, ptr %486, align 4, !tbaa !11
  %488 = load float, ptr %72, align 4, !tbaa !11
  %489 = fmul float %487, %488
  store float %489, ptr %61, align 4, !tbaa !11
  br label %490

490:                                              ; preds = %481, %478
  br label %491

491:                                              ; preds = %490, %441
  store i64 1, ptr %63, align 8, !tbaa !9
  %492 = load i64, ptr %63, align 8, !tbaa !9
  %493 = load ptr, ptr %27, align 8, !tbaa !5
  %494 = load i64, ptr %493, align 8, !tbaa !9
  %495 = add nsw i64 %492, %494
  store i64 %495, ptr %64, align 8, !tbaa !9
  %496 = load i64, ptr %64, align 8, !tbaa !9
  %497 = load ptr, ptr %27, align 8, !tbaa !5
  %498 = load i64, ptr %497, align 8, !tbaa !9
  %499 = add nsw i64 %496, %498
  store i64 %499, ptr %87, align 8, !tbaa !9
  %500 = load ptr, ptr %24, align 8, !tbaa !5
  %501 = load ptr, ptr %26, align 8, !tbaa !5
  %502 = load ptr, ptr %27, align 8, !tbaa !5
  %503 = load ptr, ptr %28, align 8, !tbaa !5
  %504 = load ptr, ptr %29, align 8, !tbaa !5
  %505 = load i64, ptr %47, align 8, !tbaa !9
  %506 = getelementptr inbounds float, ptr %504, i64 %505
  %507 = load ptr, ptr %30, align 8, !tbaa !5
  %508 = load ptr, ptr %42, align 8, !tbaa !5
  %509 = load i64, ptr %63, align 8, !tbaa !9
  %510 = getelementptr inbounds float, ptr %508, i64 %509
  %511 = load ptr, ptr %42, align 8, !tbaa !5
  %512 = load i64, ptr %64, align 8, !tbaa !9
  %513 = getelementptr inbounds float, ptr %511, i64 %512
  %514 = load ptr, ptr %31, align 8, !tbaa !5
  %515 = load i64, ptr %49, align 8, !tbaa !9
  %516 = getelementptr inbounds float, ptr %514, i64 %515
  %517 = load ptr, ptr %32, align 8, !tbaa !5
  %518 = load ptr, ptr %42, align 8, !tbaa !5
  %519 = load i64, ptr %87, align 8, !tbaa !9
  %520 = getelementptr inbounds float, ptr %518, i64 %519
  %521 = call i32 @ssbtrd_(ptr noundef %500, ptr noundef %501, ptr noundef %502, ptr noundef %503, ptr noundef %506, ptr noundef %507, ptr noundef %510, ptr noundef %513, ptr noundef %516, ptr noundef %517, ptr noundef %520, ptr noundef %73)
  store i64 0, ptr %69, align 8, !tbaa !9
  %522 = load i64, ptr %78, align 8, !tbaa !9
  %523 = icmp ne i64 %522, 0
  br i1 %523, label %524, label %536

524:                                              ; preds = %491
  %525 = load ptr, ptr %35, align 8, !tbaa !5
  %526 = load i64, ptr %525, align 8, !tbaa !9
  %527 = icmp eq i64 %526, 1
  br i1 %527, label %528, label %535

528:                                              ; preds = %524
  %529 = load ptr, ptr %36, align 8, !tbaa !5
  %530 = load i64, ptr %529, align 8, !tbaa !9
  %531 = load ptr, ptr %27, align 8, !tbaa !5
  %532 = load i64, ptr %531, align 8, !tbaa !9
  %533 = icmp eq i64 %530, %532
  br i1 %533, label %534, label %535

534:                                              ; preds = %528
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %535

535:                                              ; preds = %534, %528, %524
  br label %536

536:                                              ; preds = %535, %491
  %537 = load i64, ptr %77, align 8, !tbaa !9
  %538 = icmp ne i64 %537, 0
  br i1 %538, label %542, label %539

539:                                              ; preds = %536
  %540 = load i64, ptr %69, align 8, !tbaa !9
  %541 = icmp ne i64 %540, 0
  br i1 %541, label %542, label %647

542:                                              ; preds = %539, %536
  %543 = load ptr, ptr %37, align 8, !tbaa !5
  %544 = load float, ptr %543, align 4, !tbaa !11
  %545 = fcmp ole float %544, 0.000000e+00
  br i1 %545, label %546, label %647

546:                                              ; preds = %542
  %547 = load ptr, ptr %27, align 8, !tbaa !5
  %548 = load ptr, ptr %42, align 8, !tbaa !5
  %549 = load i64, ptr %63, align 8, !tbaa !9
  %550 = getelementptr inbounds float, ptr %548, i64 %549
  %551 = load ptr, ptr %39, align 8, !tbaa !5
  %552 = getelementptr inbounds float, ptr %551, i64 1
  %553 = call i32 @f2c_scopy(ptr noundef %547, ptr noundef %550, ptr noundef @c__1, ptr noundef %552, ptr noundef @c__1)
  %554 = load i64, ptr %87, align 8, !tbaa !9
  %555 = load ptr, ptr %27, align 8, !tbaa !5
  %556 = load i64, ptr %555, align 8, !tbaa !9
  %557 = shl i64 %556, 1
  %558 = add nsw i64 %554, %557
  store i64 %558, ptr %71, align 8, !tbaa !9
  %559 = load i64, ptr %76, align 8, !tbaa !9
  %560 = icmp ne i64 %559, 0
  br i1 %560, label %580, label %561

561:                                              ; preds = %546
  %562 = load ptr, ptr %27, align 8, !tbaa !5
  %563 = load i64, ptr %562, align 8, !tbaa !9
  %564 = sub nsw i64 %563, 1
  store i64 %564, ptr %52, align 8, !tbaa !9
  %565 = load ptr, ptr %42, align 8, !tbaa !5
  %566 = load i64, ptr %64, align 8, !tbaa !9
  %567 = getelementptr inbounds float, ptr %565, i64 %566
  %568 = load ptr, ptr %42, align 8, !tbaa !5
  %569 = load i64, ptr %71, align 8, !tbaa !9
  %570 = getelementptr inbounds float, ptr %568, i64 %569
  %571 = call i32 @f2c_scopy(ptr noundef %52, ptr noundef %567, ptr noundef @c__1, ptr noundef %570, ptr noundef @c__1)
  %572 = load ptr, ptr %27, align 8, !tbaa !5
  %573 = load ptr, ptr %39, align 8, !tbaa !5
  %574 = getelementptr inbounds float, ptr %573, i64 1
  %575 = load ptr, ptr %42, align 8, !tbaa !5
  %576 = load i64, ptr %71, align 8, !tbaa !9
  %577 = getelementptr inbounds float, ptr %575, i64 %576
  %578 = load ptr, ptr %45, align 8, !tbaa !5
  %579 = call i32 @ssterf_(ptr noundef %572, ptr noundef %574, ptr noundef %577, ptr noundef %578)
  br label %637

580:                                              ; preds = %546
  %581 = load ptr, ptr %27, align 8, !tbaa !5
  %582 = load ptr, ptr %27, align 8, !tbaa !5
  %583 = load ptr, ptr %31, align 8, !tbaa !5
  %584 = load i64, ptr %49, align 8, !tbaa !9
  %585 = getelementptr inbounds float, ptr %583, i64 %584
  %586 = load ptr, ptr %32, align 8, !tbaa !5
  %587 = load ptr, ptr %40, align 8, !tbaa !5
  %588 = load i64, ptr %51, align 8, !tbaa !9
  %589 = getelementptr inbounds float, ptr %587, i64 %588
  %590 = load ptr, ptr %41, align 8, !tbaa !5
  %591 = call i32 @slacpy_(ptr noundef @.str.1, ptr noundef %581, ptr noundef %582, ptr noundef %585, ptr noundef %586, ptr noundef %589, ptr noundef %590)
  %592 = load ptr, ptr %27, align 8, !tbaa !5
  %593 = load i64, ptr %592, align 8, !tbaa !9
  %594 = sub nsw i64 %593, 1
  store i64 %594, ptr %52, align 8, !tbaa !9
  %595 = load ptr, ptr %42, align 8, !tbaa !5
  %596 = load i64, ptr %64, align 8, !tbaa !9
  %597 = getelementptr inbounds float, ptr %595, i64 %596
  %598 = load ptr, ptr %42, align 8, !tbaa !5
  %599 = load i64, ptr %71, align 8, !tbaa !9
  %600 = getelementptr inbounds float, ptr %598, i64 %599
  %601 = call i32 @f2c_scopy(ptr noundef %52, ptr noundef %597, ptr noundef @c__1, ptr noundef %600, ptr noundef @c__1)
  %602 = load ptr, ptr %24, align 8, !tbaa !5
  %603 = load ptr, ptr %27, align 8, !tbaa !5
  %604 = load ptr, ptr %39, align 8, !tbaa !5
  %605 = getelementptr inbounds float, ptr %604, i64 1
  %606 = load ptr, ptr %42, align 8, !tbaa !5
  %607 = load i64, ptr %71, align 8, !tbaa !9
  %608 = getelementptr inbounds float, ptr %606, i64 %607
  %609 = load ptr, ptr %40, align 8, !tbaa !5
  %610 = load i64, ptr %51, align 8, !tbaa !9
  %611 = getelementptr inbounds float, ptr %609, i64 %610
  %612 = load ptr, ptr %41, align 8, !tbaa !5
  %613 = load ptr, ptr %42, align 8, !tbaa !5
  %614 = load i64, ptr %87, align 8, !tbaa !9
  %615 = getelementptr inbounds float, ptr %613, i64 %614
  %616 = load ptr, ptr %45, align 8, !tbaa !5
  %617 = call i32 @ssteqr_(ptr noundef %602, ptr noundef %603, ptr noundef %605, ptr noundef %608, ptr noundef %611, ptr noundef %612, ptr noundef %615, ptr noundef %616)
  %618 = load ptr, ptr %45, align 8, !tbaa !5
  %619 = load i64, ptr %618, align 8, !tbaa !9
  %620 = icmp eq i64 %619, 0
  br i1 %620, label %621, label %636

621:                                              ; preds = %580
  %622 = load ptr, ptr %27, align 8, !tbaa !5
  %623 = load i64, ptr %622, align 8, !tbaa !9
  store i64 %623, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %56, align 8, !tbaa !9
  br label %624

624:                                              ; preds = %632, %621
  %625 = load i64, ptr %56, align 8, !tbaa !9
  %626 = load i64, ptr %52, align 8, !tbaa !9
  %627 = icmp sle i64 %625, %626
  br i1 %627, label %628, label %635

628:                                              ; preds = %624
  %629 = load ptr, ptr %44, align 8, !tbaa !5
  %630 = load i64, ptr %56, align 8, !tbaa !9
  %631 = getelementptr inbounds i64, ptr %629, i64 %630
  store i64 0, ptr %631, align 8, !tbaa !9
  br label %632

632:                                              ; preds = %628
  %633 = load i64, ptr %56, align 8, !tbaa !9
  %634 = add nsw i64 %633, 1
  store i64 %634, ptr %56, align 8, !tbaa !9
  br label %624, !llvm.loop !13

635:                                              ; preds = %624
  br label %636

636:                                              ; preds = %635, %580
  br label %637

637:                                              ; preds = %636, %561
  %638 = load ptr, ptr %45, align 8, !tbaa !5
  %639 = load i64, ptr %638, align 8, !tbaa !9
  %640 = icmp eq i64 %639, 0
  br i1 %640, label %641, label %645

641:                                              ; preds = %637
  %642 = load ptr, ptr %27, align 8, !tbaa !5
  %643 = load i64, ptr %642, align 8, !tbaa !9
  %644 = load ptr, ptr %38, align 8, !tbaa !5
  store i64 %643, ptr %644, align 8, !tbaa !9
  br label %761

645:                                              ; preds = %637
  %646 = load ptr, ptr %45, align 8, !tbaa !5
  store i64 0, ptr %646, align 8, !tbaa !9
  br label %647

647:                                              ; preds = %645, %542, %539
  %648 = load i64, ptr %76, align 8, !tbaa !9
  %649 = icmp ne i64 %648, 0
  br i1 %649, label %650, label %652

650:                                              ; preds = %647
  %651 = getelementptr inbounds [1 x i8], ptr %74, i64 0, i64 0
  store i8 66, ptr %651, align 1, !tbaa !15
  br label %654

652:                                              ; preds = %647
  %653 = getelementptr inbounds [1 x i8], ptr %74, i64 0, i64 0
  store i8 69, ptr %653, align 1, !tbaa !15
  br label %654

654:                                              ; preds = %652, %650
  store i64 1, ptr %80, align 8, !tbaa !9
  %655 = load i64, ptr %80, align 8, !tbaa !9
  %656 = load ptr, ptr %27, align 8, !tbaa !5
  %657 = load i64, ptr %656, align 8, !tbaa !9
  %658 = add nsw i64 %655, %657
  store i64 %658, ptr %85, align 8, !tbaa !9
  %659 = load i64, ptr %85, align 8, !tbaa !9
  %660 = load ptr, ptr %27, align 8, !tbaa !5
  %661 = load i64, ptr %660, align 8, !tbaa !9
  %662 = add nsw i64 %659, %661
  store i64 %662, ptr %86, align 8, !tbaa !9
  %663 = load ptr, ptr %25, align 8, !tbaa !5
  %664 = getelementptr inbounds [1 x i8], ptr %74, i64 0, i64 0
  %665 = load ptr, ptr %27, align 8, !tbaa !5
  %666 = load ptr, ptr %35, align 8, !tbaa !5
  %667 = load ptr, ptr %36, align 8, !tbaa !5
  %668 = load ptr, ptr %42, align 8, !tbaa !5
  %669 = load i64, ptr %63, align 8, !tbaa !9
  %670 = getelementptr inbounds float, ptr %668, i64 %669
  %671 = load ptr, ptr %42, align 8, !tbaa !5
  %672 = load i64, ptr %64, align 8, !tbaa !9
  %673 = getelementptr inbounds float, ptr %671, i64 %672
  %674 = load ptr, ptr %38, align 8, !tbaa !5
  %675 = load ptr, ptr %39, align 8, !tbaa !5
  %676 = getelementptr inbounds float, ptr %675, i64 1
  %677 = load ptr, ptr %43, align 8, !tbaa !5
  %678 = load i64, ptr %80, align 8, !tbaa !9
  %679 = getelementptr inbounds i64, ptr %677, i64 %678
  %680 = load ptr, ptr %43, align 8, !tbaa !5
  %681 = load i64, ptr %85, align 8, !tbaa !9
  %682 = getelementptr inbounds i64, ptr %680, i64 %681
  %683 = load ptr, ptr %42, align 8, !tbaa !5
  %684 = load i64, ptr %87, align 8, !tbaa !9
  %685 = getelementptr inbounds float, ptr %683, i64 %684
  %686 = load ptr, ptr %43, align 8, !tbaa !5
  %687 = load i64, ptr %86, align 8, !tbaa !9
  %688 = getelementptr inbounds i64, ptr %686, i64 %687
  %689 = load ptr, ptr %45, align 8, !tbaa !5
  %690 = call i32 @sstebz_(ptr noundef %663, ptr noundef %664, ptr noundef %665, ptr noundef %60, ptr noundef %61, ptr noundef %666, ptr noundef %667, ptr noundef %83, ptr noundef %670, ptr noundef %673, ptr noundef %674, ptr noundef %88, ptr noundef %676, ptr noundef %679, ptr noundef %682, ptr noundef %685, ptr noundef %688, ptr noundef %689)
  %691 = load i64, ptr %76, align 8, !tbaa !9
  %692 = icmp ne i64 %691, 0
  br i1 %692, label %693, label %760

693:                                              ; preds = %654
  %694 = load ptr, ptr %27, align 8, !tbaa !5
  %695 = load ptr, ptr %42, align 8, !tbaa !5
  %696 = load i64, ptr %63, align 8, !tbaa !9
  %697 = getelementptr inbounds float, ptr %695, i64 %696
  %698 = load ptr, ptr %42, align 8, !tbaa !5
  %699 = load i64, ptr %64, align 8, !tbaa !9
  %700 = getelementptr inbounds float, ptr %698, i64 %699
  %701 = load ptr, ptr %38, align 8, !tbaa !5
  %702 = load ptr, ptr %39, align 8, !tbaa !5
  %703 = getelementptr inbounds float, ptr %702, i64 1
  %704 = load ptr, ptr %43, align 8, !tbaa !5
  %705 = load i64, ptr %80, align 8, !tbaa !9
  %706 = getelementptr inbounds i64, ptr %704, i64 %705
  %707 = load ptr, ptr %43, align 8, !tbaa !5
  %708 = load i64, ptr %85, align 8, !tbaa !9
  %709 = getelementptr inbounds i64, ptr %707, i64 %708
  %710 = load ptr, ptr %40, align 8, !tbaa !5
  %711 = load i64, ptr %51, align 8, !tbaa !9
  %712 = getelementptr inbounds float, ptr %710, i64 %711
  %713 = load ptr, ptr %41, align 8, !tbaa !5
  %714 = load ptr, ptr %42, align 8, !tbaa !5
  %715 = load i64, ptr %87, align 8, !tbaa !9
  %716 = getelementptr inbounds float, ptr %714, i64 %715
  %717 = load ptr, ptr %43, align 8, !tbaa !5
  %718 = load i64, ptr %86, align 8, !tbaa !9
  %719 = getelementptr inbounds i64, ptr %717, i64 %718
  %720 = load ptr, ptr %44, align 8, !tbaa !5
  %721 = getelementptr inbounds i64, ptr %720, i64 1
  %722 = load ptr, ptr %45, align 8, !tbaa !5
  %723 = call i32 @sstein_(ptr noundef %694, ptr noundef %697, ptr noundef %700, ptr noundef %701, ptr noundef %703, ptr noundef %706, ptr noundef %709, ptr noundef %712, ptr noundef %713, ptr noundef %716, ptr noundef %719, ptr noundef %721, ptr noundef %722)
  %724 = load ptr, ptr %38, align 8, !tbaa !5
  %725 = load i64, ptr %724, align 8, !tbaa !9
  store i64 %725, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %726

726:                                              ; preds = %756, %693
  %727 = load i64, ptr %57, align 8, !tbaa !9
  %728 = load i64, ptr %52, align 8, !tbaa !9
  %729 = icmp sle i64 %727, %728
  br i1 %729, label %730, label %759

730:                                              ; preds = %726
  %731 = load ptr, ptr %27, align 8, !tbaa !5
  %732 = load ptr, ptr %40, align 8, !tbaa !5
  %733 = load i64, ptr %57, align 8, !tbaa !9
  %734 = load i64, ptr %50, align 8, !tbaa !9
  %735 = mul nsw i64 %733, %734
  %736 = add nsw i64 %735, 1
  %737 = getelementptr inbounds float, ptr %732, i64 %736
  %738 = load ptr, ptr %42, align 8, !tbaa !5
  %739 = getelementptr inbounds float, ptr %738, i64 1
  %740 = call i32 @f2c_scopy(ptr noundef %731, ptr noundef %737, ptr noundef @c__1, ptr noundef %739, ptr noundef @c__1)
  %741 = load ptr, ptr %27, align 8, !tbaa !5
  %742 = load ptr, ptr %27, align 8, !tbaa !5
  %743 = load ptr, ptr %31, align 8, !tbaa !5
  %744 = load i64, ptr %49, align 8, !tbaa !9
  %745 = getelementptr inbounds float, ptr %743, i64 %744
  %746 = load ptr, ptr %32, align 8, !tbaa !5
  %747 = load ptr, ptr %42, align 8, !tbaa !5
  %748 = getelementptr inbounds float, ptr %747, i64 1
  %749 = load ptr, ptr %40, align 8, !tbaa !5
  %750 = load i64, ptr %57, align 8, !tbaa !9
  %751 = load i64, ptr %50, align 8, !tbaa !9
  %752 = mul nsw i64 %750, %751
  %753 = add nsw i64 %752, 1
  %754 = getelementptr inbounds float, ptr %749, i64 %753
  %755 = call i32 @f2c_sgemv(ptr noundef @.str.4, ptr noundef %741, ptr noundef %742, ptr noundef @c_b14, ptr noundef %745, ptr noundef %746, ptr noundef %748, ptr noundef @c__1, ptr noundef @c_b34, ptr noundef %754, ptr noundef @c__1)
  br label %756

756:                                              ; preds = %730
  %757 = load i64, ptr %57, align 8, !tbaa !9
  %758 = add nsw i64 %757, 1
  store i64 %758, ptr %57, align 8, !tbaa !9
  br label %726, !llvm.loop !16

759:                                              ; preds = %726
  br label %760

760:                                              ; preds = %759, %654
  br label %761

761:                                              ; preds = %760, %641
  %762 = load i64, ptr %79, align 8, !tbaa !9
  %763 = icmp eq i64 %762, 1
  br i1 %763, label %764, label %781

764:                                              ; preds = %761
  %765 = load ptr, ptr %45, align 8, !tbaa !5
  %766 = load i64, ptr %765, align 8, !tbaa !9
  %767 = icmp eq i64 %766, 0
  br i1 %767, label %768, label %771

768:                                              ; preds = %764
  %769 = load ptr, ptr %38, align 8, !tbaa !5
  %770 = load i64, ptr %769, align 8, !tbaa !9
  store i64 %770, ptr %66, align 8, !tbaa !9
  br label %775

771:                                              ; preds = %764
  %772 = load ptr, ptr %45, align 8, !tbaa !5
  %773 = load i64, ptr %772, align 8, !tbaa !9
  %774 = sub nsw i64 %773, 1
  store i64 %774, ptr %66, align 8, !tbaa !9
  br label %775

775:                                              ; preds = %771, %768
  %776 = load float, ptr %72, align 4, !tbaa !11
  %777 = fdiv float 1.000000e+00, %776
  store float %777, ptr %54, align 4, !tbaa !11
  %778 = load ptr, ptr %39, align 8, !tbaa !5
  %779 = getelementptr inbounds float, ptr %778, i64 1
  %780 = call i32 @f2c_sscal(ptr noundef %66, ptr noundef %54, ptr noundef %779, ptr noundef @c__1)
  br label %781

781:                                              ; preds = %775, %761
  %782 = load i64, ptr %76, align 8, !tbaa !9
  %783 = icmp ne i64 %782, 0
  br i1 %783, label %784, label %903

784:                                              ; preds = %781
  %785 = load ptr, ptr %38, align 8, !tbaa !5
  %786 = load i64, ptr %785, align 8, !tbaa !9
  %787 = sub nsw i64 %786, 1
  store i64 %787, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %788

788:                                              ; preds = %899, %784
  %789 = load i64, ptr %57, align 8, !tbaa !9
  %790 = load i64, ptr %52, align 8, !tbaa !9
  %791 = icmp sle i64 %789, %790
  br i1 %791, label %792, label %902

792:                                              ; preds = %788
  store i64 0, ptr %56, align 8, !tbaa !9
  %793 = load ptr, ptr %39, align 8, !tbaa !5
  %794 = load i64, ptr %57, align 8, !tbaa !9
  %795 = getelementptr inbounds float, ptr %793, i64 %794
  %796 = load float, ptr %795, align 4, !tbaa !11
  store float %796, ptr %62, align 4, !tbaa !11
  %797 = load ptr, ptr %38, align 8, !tbaa !5
  %798 = load i64, ptr %797, align 8, !tbaa !9
  store i64 %798, ptr %53, align 8, !tbaa !9
  %799 = load i64, ptr %57, align 8, !tbaa !9
  %800 = add nsw i64 %799, 1
  store i64 %800, ptr %58, align 8, !tbaa !9
  br label %801

801:                                              ; preds = %819, %792
  %802 = load i64, ptr %58, align 8, !tbaa !9
  %803 = load i64, ptr %53, align 8, !tbaa !9
  %804 = icmp sle i64 %802, %803
  br i1 %804, label %805, label %822

805:                                              ; preds = %801
  %806 = load ptr, ptr %39, align 8, !tbaa !5
  %807 = load i64, ptr %58, align 8, !tbaa !9
  %808 = getelementptr inbounds float, ptr %806, i64 %807
  %809 = load float, ptr %808, align 4, !tbaa !11
  %810 = load float, ptr %62, align 4, !tbaa !11
  %811 = fcmp olt float %809, %810
  br i1 %811, label %812, label %818

812:                                              ; preds = %805
  %813 = load i64, ptr %58, align 8, !tbaa !9
  store i64 %813, ptr %56, align 8, !tbaa !9
  %814 = load ptr, ptr %39, align 8, !tbaa !5
  %815 = load i64, ptr %58, align 8, !tbaa !9
  %816 = getelementptr inbounds float, ptr %814, i64 %815
  %817 = load float, ptr %816, align 4, !tbaa !11
  store float %817, ptr %62, align 4, !tbaa !11
  br label %818

818:                                              ; preds = %812, %805
  br label %819

819:                                              ; preds = %818
  %820 = load i64, ptr %58, align 8, !tbaa !9
  %821 = add nsw i64 %820, 1
  store i64 %821, ptr %58, align 8, !tbaa !9
  br label %801, !llvm.loop !17

822:                                              ; preds = %801
  %823 = load i64, ptr %56, align 8, !tbaa !9
  %824 = icmp ne i64 %823, 0
  br i1 %824, label %825, label %898

825:                                              ; preds = %822
  %826 = load ptr, ptr %43, align 8, !tbaa !5
  %827 = load i64, ptr %80, align 8, !tbaa !9
  %828 = load i64, ptr %56, align 8, !tbaa !9
  %829 = add nsw i64 %827, %828
  %830 = sub nsw i64 %829, 1
  %831 = getelementptr inbounds i64, ptr %826, i64 %830
  %832 = load i64, ptr %831, align 8, !tbaa !9
  store i64 %832, ptr %70, align 8, !tbaa !9
  %833 = load ptr, ptr %39, align 8, !tbaa !5
  %834 = load i64, ptr %57, align 8, !tbaa !9
  %835 = getelementptr inbounds float, ptr %833, i64 %834
  %836 = load float, ptr %835, align 4, !tbaa !11
  %837 = load ptr, ptr %39, align 8, !tbaa !5
  %838 = load i64, ptr %56, align 8, !tbaa !9
  %839 = getelementptr inbounds float, ptr %837, i64 %838
  store float %836, ptr %839, align 4, !tbaa !11
  %840 = load ptr, ptr %43, align 8, !tbaa !5
  %841 = load i64, ptr %80, align 8, !tbaa !9
  %842 = load i64, ptr %57, align 8, !tbaa !9
  %843 = add nsw i64 %841, %842
  %844 = sub nsw i64 %843, 1
  %845 = getelementptr inbounds i64, ptr %840, i64 %844
  %846 = load i64, ptr %845, align 8, !tbaa !9
  %847 = load ptr, ptr %43, align 8, !tbaa !5
  %848 = load i64, ptr %80, align 8, !tbaa !9
  %849 = load i64, ptr %56, align 8, !tbaa !9
  %850 = add nsw i64 %848, %849
  %851 = sub nsw i64 %850, 1
  %852 = getelementptr inbounds i64, ptr %847, i64 %851
  store i64 %846, ptr %852, align 8, !tbaa !9
  %853 = load float, ptr %62, align 4, !tbaa !11
  %854 = load ptr, ptr %39, align 8, !tbaa !5
  %855 = load i64, ptr %57, align 8, !tbaa !9
  %856 = getelementptr inbounds float, ptr %854, i64 %855
  store float %853, ptr %856, align 4, !tbaa !11
  %857 = load i64, ptr %70, align 8, !tbaa !9
  %858 = load ptr, ptr %43, align 8, !tbaa !5
  %859 = load i64, ptr %80, align 8, !tbaa !9
  %860 = load i64, ptr %57, align 8, !tbaa !9
  %861 = add nsw i64 %859, %860
  %862 = sub nsw i64 %861, 1
  %863 = getelementptr inbounds i64, ptr %858, i64 %862
  store i64 %857, ptr %863, align 8, !tbaa !9
  %864 = load ptr, ptr %27, align 8, !tbaa !5
  %865 = load ptr, ptr %40, align 8, !tbaa !5
  %866 = load i64, ptr %56, align 8, !tbaa !9
  %867 = load i64, ptr %50, align 8, !tbaa !9
  %868 = mul nsw i64 %866, %867
  %869 = add nsw i64 %868, 1
  %870 = getelementptr inbounds float, ptr %865, i64 %869
  %871 = load ptr, ptr %40, align 8, !tbaa !5
  %872 = load i64, ptr %57, align 8, !tbaa !9
  %873 = load i64, ptr %50, align 8, !tbaa !9
  %874 = mul nsw i64 %872, %873
  %875 = add nsw i64 %874, 1
  %876 = getelementptr inbounds float, ptr %871, i64 %875
  %877 = call i32 @f2c_sswap(ptr noundef %864, ptr noundef %870, ptr noundef @c__1, ptr noundef %876, ptr noundef @c__1)
  %878 = load ptr, ptr %45, align 8, !tbaa !5
  %879 = load i64, ptr %878, align 8, !tbaa !9
  %880 = icmp ne i64 %879, 0
  br i1 %880, label %881, label %897

881:                                              ; preds = %825
  %882 = load ptr, ptr %44, align 8, !tbaa !5
  %883 = load i64, ptr %56, align 8, !tbaa !9
  %884 = getelementptr inbounds i64, ptr %882, i64 %883
  %885 = load i64, ptr %884, align 8, !tbaa !9
  store i64 %885, ptr %70, align 8, !tbaa !9
  %886 = load ptr, ptr %44, align 8, !tbaa !5
  %887 = load i64, ptr %57, align 8, !tbaa !9
  %888 = getelementptr inbounds i64, ptr %886, i64 %887
  %889 = load i64, ptr %888, align 8, !tbaa !9
  %890 = load ptr, ptr %44, align 8, !tbaa !5
  %891 = load i64, ptr %56, align 8, !tbaa !9
  %892 = getelementptr inbounds i64, ptr %890, i64 %891
  store i64 %889, ptr %892, align 8, !tbaa !9
  %893 = load i64, ptr %70, align 8, !tbaa !9
  %894 = load ptr, ptr %44, align 8, !tbaa !5
  %895 = load i64, ptr %57, align 8, !tbaa !9
  %896 = getelementptr inbounds i64, ptr %894, i64 %895
  store i64 %893, ptr %896, align 8, !tbaa !9
  br label %897

897:                                              ; preds = %881, %825
  br label %898

898:                                              ; preds = %897, %822
  br label %899

899:                                              ; preds = %898
  %900 = load i64, ptr %57, align 8, !tbaa !9
  %901 = add nsw i64 %900, 1
  store i64 %901, ptr %57, align 8, !tbaa !9
  br label %788, !llvm.loop !18

902:                                              ; preds = %788
  br label %903

903:                                              ; preds = %902, %781
  store i32 0, ptr %23, align 4
  store i32 1, ptr %90, align 4
  br label %904

904:                                              ; preds = %903, %364, %308, %298
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  %905 = load i32, ptr %23, align 4
  ret i32 %905
}

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

45:                                               ; preds = %22
  %46 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not373 = icmp eq i64 %46, 0
  br i1 %.not373, label %.thread401.sink.split, label %47

47:                                               ; preds = %45, %22
  %48 = icmp ne i64 %41, 0
  %49 = icmp ne i64 %42, 0
  %or.cond = select i1 %48, i1 true, i1 %49
  %50 = icmp ne i64 %43, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %50
  br i1 %or.cond3, label %51, label %.thread401.sink.split

51:                                               ; preds = %47
  %.not374 = icmp eq i64 %44, 0
  br i1 %.not374, label %52, label %54

52:                                               ; preds = %51
  %53 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #6
  %.not375 = icmp eq i64 %53, 0
  br i1 %.not375, label %.thread401.sink.split, label %54

54:                                               ; preds = %52, %51
  %55 = load i64, ptr %3, align 8, !tbaa !5
  %56 = icmp slt i64 %55, 0
  br i1 %56, label %.thread401.sink.split, label %57

57:                                               ; preds = %54
  %58 = load i64, ptr %4, align 8, !tbaa !5
  %59 = icmp slt i64 %58, 0
  br i1 %59, label %.thread401.sink.split, label %60

60:                                               ; preds = %57
  %61 = load i64, ptr %6, align 8, !tbaa !5
  %.not376 = icmp sgt i64 %61, %58
  br i1 %.not376, label %62, label %.thread401.sink.split

62:                                               ; preds = %60
  br i1 %.not, label %63, label %66

63:                                               ; preds = %62
  %64 = load i64, ptr %8, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %55, i64 1)
  %65 = icmp slt i64 %64, %spec.select
  br i1 %65, label %.thread401.sink.split, label %66

66:                                               ; preds = %63, %62
  br i1 %49, label %67, label %72

67:                                               ; preds = %66
  %.not414 = icmp eq i64 %55, 0
  br i1 %.not414, label %81, label %68

68:                                               ; preds = %67
  %69 = load float, ptr %10, align 4, !tbaa !9
  %70 = load float, ptr %9, align 4, !tbaa !9
  %71 = fcmp ugt float %69, %70
  br i1 %71, label %81, label %.thread401.sink.split

72:                                               ; preds = %66
  br i1 %50, label %73, label %81

73:                                               ; preds = %72
  %74 = load i64, ptr %11, align 8, !tbaa !5
  %75 = icmp slt i64 %74, 1
  %spec.select394 = tail call i64 @llvm.umax.i64(i64 %55, i64 1)
  %76 = icmp ugt i64 %74, %spec.select394
  %or.cond416 = or i1 %75, %76
  br i1 %or.cond416, label %.thread401.sink.split, label %77

77:                                               ; preds = %73
  %78 = load i64, ptr %12, align 8, !tbaa !5
  %. = tail call i64 @llvm.umin.i64(i64 %55, i64 %74)
  %79 = icmp slt i64 %78, %.
  %80 = icmp ugt i64 %78, %55
  %or.cond413 = or i1 %79, %80
  br i1 %or.cond413, label %.thread401.sink.split, label %81

81:                                               ; preds = %77, %68, %67, %72
  %.pr = load i64, ptr %21, align 8, !tbaa !5
  %82 = icmp eq i64 %.pr, 0
  br i1 %82, label %83, label %.thread401

83:                                               ; preds = %81
  %84 = load i64, ptr %17, align 8, !tbaa !5
  %85 = icmp slt i64 %84, 1
  %86 = icmp ult i64 %84, %55
  %or.cond441 = and i1 %.not, %86
  %or.cond443 = or i1 %85, %or.cond441
  br i1 %or.cond443, label %.thread401.sink.split, label %.thread

.thread401.sink.split:                            ; preds = %83, %77, %73, %68, %63, %60, %57, %54, %52, %47, %45
  %.sink442 = phi i64 [ -1, %45 ], [ -2, %47 ], [ -3, %52 ], [ -4, %54 ], [ -5, %57 ], [ -7, %60 ], [ -9, %63 ], [ -11, %68 ], [ -12, %73 ], [ -13, %77 ], [ -18, %83 ]
  store i64 %.sink442, ptr %21, align 8, !tbaa !5
  br label %.thread401

.thread401:                                       ; preds = %.thread401.sink.split, %81
  %87 = phi i64 [ %.pr, %81 ], [ %.sink442, %.thread401.sink.split ]
  %88 = sub nsw i64 0, %87
  store i64 %88, ptr %23, align 8, !tbaa !5
  %89 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %23) #6
  br label %.loopexit

.thread:                                          ; preds = %83
  store i64 0, ptr %14, align 8, !tbaa !5
  %90 = load i64, ptr %3, align 8, !tbaa !5
  switch i64 %90, label %104 [
    i64 0, label %.loopexit
    i64 1, label %91
  ]

91:                                               ; preds = %.thread
  store i64 1, ptr %14, align 8, !tbaa !5
  br i1 %.not374, label %92, label %95

92:                                               ; preds = %91
  %93 = load i64, ptr %4, align 8, !tbaa !5
  %94 = getelementptr inbounds float, ptr %5, i64 %93
  br label %95

95:                                               ; preds = %91, %92
  %.0354.in = phi ptr [ %94, %92 ], [ %5, %91 ]
  %.0354 = load float, ptr %.0354.in, align 4, !tbaa !9
  %.not393 = icmp eq i64 %42, 0
  br i1 %.not393, label %102, label %96

96:                                               ; preds = %95
  %97 = load float, ptr %9, align 4, !tbaa !9
  %98 = fcmp olt float %97, %.0354
  br i1 %98, label %99, label %.thread405

99:                                               ; preds = %96
  %100 = load float, ptr %10, align 4, !tbaa !9
  %101 = fcmp ult float %100, %.0354
  br i1 %101, label %.thread405, label %102

.thread405:                                       ; preds = %96, %99
  store i64 0, ptr %14, align 8, !tbaa !5
  br label %.loopexit

102:                                              ; preds = %95, %99
  store float %.0354, ptr %15, align 4, !tbaa !9
  br i1 %.not, label %103, label %.loopexit

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

104:                                              ; preds = %.thread
  %105 = tail call double @slamch_(ptr noundef nonnull @.str.7) #6
  %106 = fptrunc double %105 to float
  %107 = tail call double @slamch_(ptr noundef nonnull @.str.8) #6
  %108 = fptrunc double %107 to float
  %109 = fdiv float %106, %108
  %110 = fdiv float 1.000000e+00, %109
  %sqrtf = tail call float @sqrtf(float noundef %109) #3
  %sqrtf379 = tail call float @sqrtf(float noundef %110) #3
  store float %sqrtf379, ptr %24, align 4, !tbaa !9
  %111 = fpext float %106 to double
  %112 = tail call double @sqrt(double noundef %111) #6
  %113 = tail call double @sqrt(double noundef %112) #6
  %114 = fdiv double 1.000000e+00, %113
  %115 = fptrunc double %114 to float
  %116 = fcmp ole float %sqrtf379, %115
  %117 = select i1 %116, float %sqrtf379, float %115
  %118 = load float, ptr %13, align 4, !tbaa !9
  store float %118, ptr %31, align 4, !tbaa !9
  %.not380 = icmp eq i64 %42, 0
  br i1 %.not380, label %122, label %119

119:                                              ; preds = %104
  %120 = load float, ptr %9, align 4, !tbaa !9
  %121 = load float, ptr %10, align 4, !tbaa !9
  br label %122

122:                                              ; preds = %104, %119
  %.sink = phi float [ %120, %119 ], [ 0.000000e+00, %104 ]
  %storemerge = phi float [ %121, %119 ], [ 0.000000e+00, %104 ]
  store float %.sink, ptr %25, align 4
  store float %storemerge, ptr %26, align 4, !tbaa !9
  %123 = tail call double @slansb_(ptr noundef nonnull @.str.9, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %18) #6
  %124 = fptrunc double %123 to float
  %125 = fcmp ogt float %124, 0.000000e+00
  %126 = fcmp ogt float %sqrtf, %124
  %or.cond395 = select i1 %125, i1 %126, i1 false
  br i1 %or.cond395, label %129, label %127

127:                                              ; preds = %122
  %128 = fcmp olt float %117, %124
  br i1 %128, label %129, label %143

129:                                              ; preds = %127, %122
  %.pn = phi float [ %sqrtf, %122 ], [ %117, %127 ]
  %storemerge415 = fdiv float %.pn, %124
  store float %storemerge415, ptr %28, align 4, !tbaa !9
  %.str.11..str.10 = select i1 %.not374, ptr @.str.11, ptr @.str.10
  %130 = call i32 @slascl_(ptr noundef nonnull %.str.11..str.10, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef nonnull @c_b14, ptr noundef nonnull %28, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %21) #6
  %131 = load float, ptr %13, align 4, !tbaa !9
  %132 = fcmp ogt float %131, 0.000000e+00
  br i1 %132, label %133, label %136

133:                                              ; preds = %129
  %134 = load float, ptr %28, align 4, !tbaa !9
  %135 = fmul float %131, %134
  store float %135, ptr %31, align 4, !tbaa !9
  br label %136

136:                                              ; preds = %133, %129
  br i1 %.not380, label %143, label %137

137:                                              ; preds = %136
  %138 = load float, ptr %9, align 4, !tbaa !9
  %139 = load float, ptr %28, align 4, !tbaa !9
  %140 = fmul float %138, %139
  store float %140, ptr %25, align 4, !tbaa !9
  %141 = load float, ptr %10, align 4, !tbaa !9
  %142 = fmul float %139, %141
  store float %142, ptr %26, align 4, !tbaa !9
  br label %143

143:                                              ; preds = %127, %136, %137
  %144 = phi i1 [ true, %136 ], [ true, %137 ], [ false, %127 ]
  %145 = load i64, ptr %3, align 8, !tbaa !5
  %reass.add = shl i64 %145, 1
  %146 = or disjoint i64 %reass.add, 1
  %147 = getelementptr float, ptr %18, i64 %145
  %148 = getelementptr float, ptr %18, i64 %reass.add
  %149 = call i32 @ssbtrd_(ptr noundef %0, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %18, ptr noundef %147, ptr noundef %7, ptr noundef %8, ptr noundef %148, ptr noundef nonnull %29) #6
  %.not382 = icmp eq i64 %43, 0
  br i1 %.not382, label %157, label %150

150:                                              ; preds = %143
  %151 = load i64, ptr %11, align 8, !tbaa !5
  %152 = icmp eq i64 %151, 1
  br i1 %152, label %153, label %157

153:                                              ; preds = %150
  %154 = load i64, ptr %12, align 8, !tbaa !5
  %155 = load i64, ptr %3, align 8, !tbaa !5
  %156 = icmp eq i64 %154, %155
  br label %157

157:                                              ; preds = %153, %150, %143
  %158 = phi i1 [ false, %150 ], [ false, %143 ], [ %156, %153 ]
  %or.cond5 = or i1 %48, %158
  br i1 %or.cond5, label %159, label %187

159:                                              ; preds = %157
  %160 = load float, ptr %13, align 4, !tbaa !9
  %161 = fcmp ugt float %160, 0.000000e+00
  br i1 %161, label %187, label %162

162:                                              ; preds = %159
  %163 = call i32 @f2c_scopy(ptr noundef nonnull %3, ptr noundef %18, ptr noundef nonnull @c__1, ptr noundef %15, ptr noundef nonnull @c__1) #6
  %164 = load i64, ptr %3, align 8, !tbaa !5
  %165 = shl i64 %164, 1
  %166 = add nsw i64 %165, %146
  br i1 %.not, label %172, label %167

167:                                              ; preds = %162
  %168 = add nsw i64 %164, -1
  store i64 %168, ptr %23, align 8, !tbaa !5
  %169 = getelementptr inbounds float, ptr %37, i64 %166
  %170 = call i32 @f2c_scopy(ptr noundef nonnull %23, ptr noundef %147, ptr noundef nonnull @c__1, ptr noundef nonnull %169, ptr noundef nonnull @c__1) #6
  %171 = call i32 @ssterf_(ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %169, ptr noundef nonnull %21) #6
  br label %.loopexit418

172:                                              ; preds = %162
  %173 = call i32 @slacpy_(ptr noundef nonnull @.str.1, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %7, ptr noundef %8, ptr noundef %16, ptr noundef nonnull %17) #6
  %174 = load i64, ptr %3, align 8, !tbaa !5
  %175 = add nsw i64 %174, -1
  store i64 %175, ptr %23, align 8, !tbaa !5
  %176 = getelementptr inbounds float, ptr %37, i64 %166
  %177 = call i32 @f2c_scopy(ptr noundef nonnull %23, ptr noundef %147, ptr noundef nonnull @c__1, ptr noundef nonnull %176, ptr noundef nonnull @c__1) #6
  %178 = call i32 @ssteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %15, ptr noundef nonnull %176, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %148, ptr noundef nonnull %21) #6
  %179 = load i64, ptr %21, align 8, !tbaa !5
  %180 = icmp eq i64 %179, 0
  br i1 %180, label %181, label %.thread410

181:                                              ; preds = %172
  %182 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %182, ptr %23, align 8, !tbaa !5
  %.not383419 = icmp slt i64 %182, 1
  br i1 %.not383419, label %.loopexit418, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %181
  %183 = shl nuw i64 %182, 3
  call void @llvm.memset.p0.i64(ptr align 8 %20, i8 0, i64 %183, i1 false), !tbaa !5
  br label %.loopexit418

.loopexit418:                                     ; preds = %.lr.ph.preheader, %181, %167
  %.pr409 = load i64, ptr %21, align 8, !tbaa !5
  %184 = icmp eq i64 %.pr409, 0
  br i1 %184, label %185, label %.thread410

185:                                              ; preds = %.loopexit418
  %186 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %186, ptr %14, align 8, !tbaa !5
  br label %.loopexit417

.thread410:                                       ; preds = %172, %.loopexit418
  store i64 0, ptr %21, align 8, !tbaa !5
  br label %187

187:                                              ; preds = %157, %.thread410, %159
  %.397 = select i1 %.not, i8 66, i8 69
  store i8 %.397, ptr %30, align 1, !tbaa !11
  %188 = load i64, ptr %3, align 8, !tbaa !5
  %189 = getelementptr i64, ptr %19, i64 %188
  %.idx = shl i64 %188, 4
  %190 = getelementptr i8, ptr %19, i64 %.idx
  %191 = call i32 @sstebz_(ptr noundef %1, ptr noundef nonnull %30, ptr noundef nonnull %3, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %31, ptr noundef %18, ptr noundef %147, ptr noundef nonnull %14, ptr noundef nonnull %32, ptr noundef %15, ptr noundef %19, ptr noundef %189, ptr noundef %148, ptr noundef %190, ptr noundef nonnull %21) #6
  br i1 %.not, label %192, label %.loopexit417

192:                                              ; preds = %187
  %193 = call i32 @sstein_(ptr noundef nonnull %3, ptr noundef %18, ptr noundef %147, ptr noundef nonnull %14, ptr noundef %15, ptr noundef %19, ptr noundef %189, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %148, ptr noundef %190, ptr noundef %20, ptr noundef nonnull %21) #6
  %194 = load i64, ptr %14, align 8, !tbaa !5
  store i64 %194, ptr %23, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %36, i64 4
  %.not386421 = icmp slt i64 %194, 1
  br i1 %.not386421, label %.loopexit417, label %.lr.ph423

.lr.ph423:                                        ; preds = %192, %.lr.ph423
  %.0351422 = phi i64 [ %198, %.lr.ph423 ], [ 1, %192 ]
  %195 = mul nsw i64 %.0351422, %34
  %gep = getelementptr float, ptr %invariant.gep, i64 %195
  %196 = call i32 @f2c_scopy(ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %18, ptr noundef nonnull @c__1) #6
  %197 = call i32 @f2c_sgemv(ptr noundef nonnull @.str.4, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef nonnull @c_b14, ptr noundef %7, ptr noundef %8, ptr noundef %18, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b34, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %198 = add nuw nsw i64 %.0351422, 1
  %199 = load i64, ptr %23, align 8, !tbaa !5
  %.not386.not = icmp slt i64 %.0351422, %199
  br i1 %.not386.not, label %.lr.ph423, label %.loopexit417, !llvm.loop !12

.loopexit417:                                     ; preds = %.lr.ph423, %192, %187, %185
  br i1 %144, label %200, label %211

200:                                              ; preds = %.loopexit417
  %201 = load i64, ptr %21, align 8, !tbaa !5
  %202 = icmp eq i64 %201, 0
  br i1 %202, label %203, label %205

203:                                              ; preds = %200
  %204 = load i64, ptr %14, align 8, !tbaa !5
  br label %207

205:                                              ; preds = %200
  %206 = add nsw i64 %201, -1
  br label %207

207:                                              ; preds = %205, %203
  %storemerge387 = phi i64 [ %206, %205 ], [ %204, %203 ]
  store i64 %storemerge387, ptr %27, align 8, !tbaa !5
  %208 = load float, ptr %28, align 4, !tbaa !9
  %209 = fdiv float 1.000000e+00, %208
  store float %209, ptr %24, align 4, !tbaa !9
  %210 = call i32 @f2c_sscal(ptr noundef nonnull %27, ptr noundef nonnull %24, ptr noundef %15, ptr noundef nonnull @c__1) #6
  br label %211

211:                                              ; preds = %207, %.loopexit417
  br i1 %.not, label %212, label %.loopexit

212:                                              ; preds = %211
  %213 = load i64, ptr %14, align 8, !tbaa !5
  %214 = add nsw i64 %213, -1
  store i64 %214, ptr %23, align 8, !tbaa !5
  %invariant.gep430 = getelementptr i8, ptr %36, i64 4
  %.not388434 = icmp slt i64 %213, 2
  br i1 %.not388434, label %.loopexit, label %.lr.ph437

.lr.ph437:                                        ; preds = %212, %._crit_edge.thread
  %.1352435 = phi i64 [ %218, %._crit_edge.thread ], [ 1, %212 ]
  %215 = getelementptr inbounds float, ptr %33, i64 %.1352435
  %216 = load float, ptr %215, align 4, !tbaa !9
  %217 = load i64, ptr %14, align 8, !tbaa !5
  %218 = add nuw nsw i64 %.1352435, 1
  %.not389424.not = icmp slt i64 %.1352435, %217
  br i1 %.not389424.not, label %.lr.ph428, label %._crit_edge.thread

.lr.ph428:                                        ; preds = %.lr.ph437, %.lr.ph428
  %.1427 = phi i64 [ %.2, %.lr.ph428 ], [ 0, %.lr.ph437 ]
  %.0353426 = phi i64 [ %222, %.lr.ph428 ], [ %218, %.lr.ph437 ]
  %.1355425 = phi float [ %.2356, %.lr.ph428 ], [ %216, %.lr.ph437 ]
  %219 = getelementptr inbounds float, ptr %33, i64 %.0353426
  %220 = load float, ptr %219, align 4, !tbaa !9
  %221 = fcmp olt float %220, %.1355425
  %.2356 = select i1 %221, float %220, float %.1355425
  %.2 = select i1 %221, i64 %.0353426, i64 %.1427
  %222 = add nuw nsw i64 %.0353426, 1
  %.not389.not = icmp slt i64 %.0353426, %217
  br i1 %.not389.not, label %.lr.ph428, label %._crit_edge, !llvm.loop !14

._crit_edge:                                      ; preds = %.lr.ph428
  %.not390 = icmp eq i64 %.2, 0
  br i1 %.not390, label %._crit_edge.thread, label %223

223:                                              ; preds = %._crit_edge
  %224 = getelementptr inbounds i64, ptr %38, i64 %.2
  %225 = load i64, ptr %224, align 8, !tbaa !5
  %226 = getelementptr inbounds float, ptr %33, i64 %.2
  store float %216, ptr %226, align 4, !tbaa !9
  %227 = getelementptr inbounds i64, ptr %38, i64 %.1352435
  %228 = load i64, ptr %227, align 8, !tbaa !5
  store i64 %228, ptr %224, align 8, !tbaa !5
  store float %.2356, ptr %215, align 4, !tbaa !9
  store i64 %225, ptr %227, align 8, !tbaa !5
  %229 = mul nsw i64 %.2, %34
  %gep431 = getelementptr float, ptr %invariant.gep430, i64 %229
  %230 = mul nsw i64 %.1352435, %34
  %gep433 = getelementptr float, ptr %invariant.gep430, i64 %230
  %231 = call i32 @f2c_sswap(ptr noundef nonnull %3, ptr noundef %gep431, ptr noundef nonnull @c__1, ptr noundef %gep433, ptr noundef nonnull @c__1) #6
  %232 = load i64, ptr %21, align 8, !tbaa !5
  %.not391 = icmp eq i64 %232, 0
  br i1 %.not391, label %._crit_edge.thread, label %233

233:                                              ; preds = %223
  %234 = getelementptr inbounds i64, ptr %39, i64 %.2
  %235 = load i64, ptr %234, align 8, !tbaa !5
  %236 = getelementptr inbounds i64, ptr %39, i64 %.1352435
  %237 = load i64, ptr %236, align 8, !tbaa !5
  store i64 %237, ptr %234, align 8, !tbaa !5
  store i64 %235, ptr %236, align 8, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph437, %._crit_edge, %233, %223
  %238 = load i64, ptr %23, align 8, !tbaa !5
  %.not388.not = icmp slt i64 %.1352435, %238
  br i1 %.not388.not, label %.lr.ph437, label %.loopexit, !llvm.loop !15

.loopexit:                                        ; preds = %._crit_edge.thread, %212, %.thread405, %211, %103, %102, %.thread, %.thread401
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  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 i32 @xerbla_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

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

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

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


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