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

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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1

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

162:                                              ; preds = %26
  %163 = load i32, ptr %73, align 4, !tbaa !9
  %164 = icmp ne i32 %163, 0
  br i1 %164, label %165, label %167

165:                                              ; preds = %162, %26
  %166 = load ptr, ptr %36, align 8, !tbaa !5
  store i8 78, ptr %166, align 1, !tbaa !13
  store i32 0, ptr %74, align 4, !tbaa !9
  br label %170

167:                                              ; preds = %162
  %168 = load ptr, ptr %36, align 8, !tbaa !5
  %169 = call i32 @lsame_(ptr noundef %168, ptr noundef @.str.3)
  store i32 %169, ptr %74, align 4, !tbaa !9
  br label %170

170:                                              ; preds = %167, %165
  %171 = load ptr, ptr %43, align 8, !tbaa !5
  store float 0.000000e+00, ptr %171, align 4, !tbaa !11
  %172 = load i32, ptr %75, align 4, !tbaa !9
  %173 = icmp ne i32 %172, 0
  br i1 %173, label %183, label %174

174:                                              ; preds = %170
  %175 = load i32, ptr %73, align 4, !tbaa !9
  %176 = icmp ne i32 %175, 0
  br i1 %176, label %183, label %177

177:                                              ; preds = %174
  %178 = load ptr, ptr %27, align 8, !tbaa !5
  %179 = call i32 @lsame_(ptr noundef %178, ptr noundef @.str.4)
  %180 = icmp ne i32 %179, 0
  br i1 %180, label %183, label %181

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

183:                                              ; preds = %177, %174, %170
  %184 = load ptr, ptr %28, align 8, !tbaa !5
  %185 = call i32 @lsame_(ptr noundef %184, ptr noundef @.str.5)
  %186 = icmp ne i32 %185, 0
  br i1 %186, label %193, label %187

187:                                              ; preds = %183
  %188 = load ptr, ptr %28, align 8, !tbaa !5
  %189 = call i32 @lsame_(ptr noundef %188, ptr noundef @.str.6)
  %190 = icmp ne i32 %189, 0
  br i1 %190, label %193, label %191

191:                                              ; preds = %187
  %192 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -2, ptr %192, align 4, !tbaa !9
  br label %367

193:                                              ; preds = %187, %183
  %194 = load ptr, ptr %29, align 8, !tbaa !5
  %195 = load i32, ptr %194, align 4, !tbaa !9
  %196 = icmp slt i32 %195, 0
  br i1 %196, label %197, label %199

197:                                              ; preds = %193
  %198 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -3, ptr %198, align 4, !tbaa !9
  br label %366

199:                                              ; preds = %193
  %200 = load ptr, ptr %30, align 8, !tbaa !5
  %201 = load i32, ptr %200, align 4, !tbaa !9
  %202 = icmp slt i32 %201, 0
  br i1 %202, label %203, label %205

203:                                              ; preds = %199
  %204 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -4, ptr %204, align 4, !tbaa !9
  br label %365

205:                                              ; preds = %199
  %206 = load ptr, ptr %32, align 8, !tbaa !5
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = load ptr, ptr %29, align 8, !tbaa !5
  %209 = load i32, ptr %208, align 4, !tbaa !9
  %210 = icmp sge i32 1, %209
  br i1 %210, label %211, label %212

211:                                              ; preds = %205
  br label %215

212:                                              ; preds = %205
  %213 = load ptr, ptr %29, align 8, !tbaa !5
  %214 = load i32, ptr %213, align 4, !tbaa !9
  br label %215

215:                                              ; preds = %212, %211
  %216 = phi i32 [ 1, %211 ], [ %214, %212 ]
  %217 = icmp slt i32 %207, %216
  br i1 %217, label %218, label %220

218:                                              ; preds = %215
  %219 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -6, ptr %219, align 4, !tbaa !9
  br label %364

220:                                              ; preds = %215
  %221 = load ptr, ptr %34, align 8, !tbaa !5
  %222 = load i32, ptr %221, align 4, !tbaa !9
  %223 = load ptr, ptr %29, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !9
  %225 = icmp sge i32 1, %224
  br i1 %225, label %226, label %227

226:                                              ; preds = %220
  br label %230

227:                                              ; preds = %220
  %228 = load ptr, ptr %29, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  br label %230

230:                                              ; preds = %227, %226
  %231 = phi i32 [ 1, %226 ], [ %229, %227 ]
  %232 = icmp slt i32 %222, %231
  br i1 %232, label %233, label %235

233:                                              ; preds = %230
  %234 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -8, ptr %234, align 4, !tbaa !9
  br label %363

235:                                              ; preds = %230
  %236 = load ptr, ptr %27, align 8, !tbaa !5
  %237 = call i32 @lsame_(ptr noundef %236, ptr noundef @.str.4)
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %239, label %248

239:                                              ; preds = %235
  %240 = load i32, ptr %74, align 4, !tbaa !9
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %248, label %242

242:                                              ; preds = %239
  %243 = load ptr, ptr %36, align 8, !tbaa !5
  %244 = call i32 @lsame_(ptr noundef %243, ptr noundef @.str)
  %245 = icmp ne i32 %244, 0
  br i1 %245, label %248, label %246

246:                                              ; preds = %242
  %247 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -9, ptr %247, align 4, !tbaa !9
  br label %362

248:                                              ; preds = %242, %239, %235
  %249 = load i32, ptr %74, align 4, !tbaa !9
  %250 = icmp ne i32 %249, 0
  br i1 %250, label %251, label %325

251:                                              ; preds = %248
  %252 = load float, ptr %76, align 4, !tbaa !11
  store float %252, ptr %69, align 4, !tbaa !11
  store float 0.000000e+00, ptr %70, align 4, !tbaa !11
  %253 = load ptr, ptr %29, align 8, !tbaa !5
  %254 = load i32, ptr %253, align 4, !tbaa !9
  store i32 %254, ptr %65, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %255

255:                                              ; preds = %290, %251
  %256 = load i32, ptr %71, align 4, !tbaa !9
  %257 = load i32, ptr %65, align 4, !tbaa !9
  %258 = icmp sle i32 %256, %257
  br i1 %258, label %259, label %293

259:                                              ; preds = %255
  %260 = load float, ptr %69, align 4, !tbaa !11
  store float %260, ptr %66, align 4, !tbaa !11
  %261 = load ptr, ptr %37, align 8, !tbaa !5
  %262 = load i32, ptr %71, align 4, !tbaa !9
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds float, ptr %261, i64 %263
  %265 = load float, ptr %264, align 4, !tbaa !11
  store float %265, ptr %67, align 4, !tbaa !11
  %266 = load float, ptr %66, align 4, !tbaa !11
  %267 = load float, ptr %67, align 4, !tbaa !11
  %268 = fcmp ole float %266, %267
  br i1 %268, label %269, label %271

269:                                              ; preds = %259
  %270 = load float, ptr %66, align 4, !tbaa !11
  br label %273

271:                                              ; preds = %259
  %272 = load float, ptr %67, align 4, !tbaa !11
  br label %273

273:                                              ; preds = %271, %269
  %274 = phi float [ %270, %269 ], [ %272, %271 ]
  store float %274, ptr %69, align 4, !tbaa !11
  %275 = load float, ptr %70, align 4, !tbaa !11
  store float %275, ptr %66, align 4, !tbaa !11
  %276 = load ptr, ptr %37, align 8, !tbaa !5
  %277 = load i32, ptr %71, align 4, !tbaa !9
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds float, ptr %276, i64 %278
  %280 = load float, ptr %279, align 4, !tbaa !11
  store float %280, ptr %67, align 4, !tbaa !11
  %281 = load float, ptr %66, align 4, !tbaa !11
  %282 = load float, ptr %67, align 4, !tbaa !11
  %283 = fcmp oge float %281, %282
  br i1 %283, label %284, label %286

284:                                              ; preds = %273
  %285 = load float, ptr %66, align 4, !tbaa !11
  br label %288

286:                                              ; preds = %273
  %287 = load float, ptr %67, align 4, !tbaa !11
  br label %288

288:                                              ; preds = %286, %284
  %289 = phi float [ %285, %284 ], [ %287, %286 ]
  store float %289, ptr %70, align 4, !tbaa !11
  br label %290

290:                                              ; preds = %288
  %291 = load i32, ptr %71, align 4, !tbaa !9
  %292 = add nsw i32 %291, 1
  store i32 %292, ptr %71, align 4, !tbaa !9
  br label %255, !llvm.loop !14

293:                                              ; preds = %255
  %294 = load float, ptr %69, align 4, !tbaa !11
  %295 = fcmp ole float %294, 0.000000e+00
  br i1 %295, label %296, label %298

296:                                              ; preds = %293
  %297 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -10, ptr %297, align 4, !tbaa !9
  br label %324

298:                                              ; preds = %293
  %299 = load ptr, ptr %29, align 8, !tbaa !5
  %300 = load i32, ptr %299, align 4, !tbaa !9
  %301 = icmp sgt i32 %300, 0
  br i1 %301, label %302, label %322

302:                                              ; preds = %298
  %303 = load float, ptr %69, align 4, !tbaa !11
  %304 = load float, ptr %78, align 4, !tbaa !11
  %305 = fcmp oge float %303, %304
  br i1 %305, label %306, label %308

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

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

310:                                              ; preds = %308, %306
  %311 = phi float [ %307, %306 ], [ %309, %308 ]
  %312 = load float, ptr %70, align 4, !tbaa !11
  %313 = load float, ptr %76, align 4, !tbaa !11
  %314 = fcmp ole float %312, %313
  br i1 %314, label %315, label %317

315:                                              ; preds = %310
  %316 = load float, ptr %70, align 4, !tbaa !11
  br label %319

317:                                              ; preds = %310
  %318 = load float, ptr %76, align 4, !tbaa !11
  br label %319

319:                                              ; preds = %317, %315
  %320 = phi float [ %316, %315 ], [ %318, %317 ]
  %321 = fdiv float %311, %320
  store float %321, ptr %72, align 4, !tbaa !11
  br label %323

322:                                              ; preds = %298
  store float 1.000000e+00, ptr %72, align 4, !tbaa !11
  br label %323

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

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

325:                                              ; preds = %324, %248
  %326 = load ptr, ptr %52, align 8, !tbaa !5
  %327 = load i32, ptr %326, align 4, !tbaa !9
  %328 = icmp eq i32 %327, 0
  br i1 %328, label %329, label %361

329:                                              ; preds = %325
  %330 = load ptr, ptr %39, align 8, !tbaa !5
  %331 = load i32, ptr %330, align 4, !tbaa !9
  %332 = load ptr, ptr %29, align 8, !tbaa !5
  %333 = load i32, ptr %332, align 4, !tbaa !9
  %334 = icmp sge i32 1, %333
  br i1 %334, label %335, label %336

335:                                              ; preds = %329
  br label %339

336:                                              ; preds = %329
  %337 = load ptr, ptr %29, align 8, !tbaa !5
  %338 = load i32, ptr %337, align 4, !tbaa !9
  br label %339

339:                                              ; preds = %336, %335
  %340 = phi i32 [ 1, %335 ], [ %338, %336 ]
  %341 = icmp slt i32 %331, %340
  br i1 %341, label %342, label %344

342:                                              ; preds = %339
  %343 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -12, ptr %343, align 4, !tbaa !9
  br label %360

344:                                              ; preds = %339
  %345 = load ptr, ptr %41, align 8, !tbaa !5
  %346 = load i32, ptr %345, align 4, !tbaa !9
  %347 = load ptr, ptr %29, align 8, !tbaa !5
  %348 = load i32, ptr %347, align 4, !tbaa !9
  %349 = icmp sge i32 1, %348
  br i1 %349, label %350, label %351

350:                                              ; preds = %344
  br label %354

351:                                              ; preds = %344
  %352 = load ptr, ptr %29, align 8, !tbaa !5
  %353 = load i32, ptr %352, align 4, !tbaa !9
  br label %354

354:                                              ; preds = %351, %350
  %355 = phi i32 [ 1, %350 ], [ %353, %351 ]
  %356 = icmp slt i32 %346, %355
  br i1 %356, label %357, label %359

357:                                              ; preds = %354
  %358 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -14, ptr %358, align 4, !tbaa !9
  br label %359

359:                                              ; preds = %357, %354
  br label %360

360:                                              ; preds = %359, %342
  br label %361

361:                                              ; preds = %360, %325
  br label %362

362:                                              ; preds = %361, %246
  br label %363

363:                                              ; preds = %362, %233
  br label %364

364:                                              ; preds = %363, %218
  br label %365

365:                                              ; preds = %364, %203
  br label %366

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

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

368:                                              ; preds = %367, %181
  %369 = load ptr, ptr %52, align 8, !tbaa !5
  %370 = load i32, ptr %369, align 4, !tbaa !9
  %371 = icmp ne i32 %370, 0
  br i1 %371, label %372, label %377

372:                                              ; preds = %368
  %373 = load ptr, ptr %52, align 8, !tbaa !5
  %374 = load i32, ptr %373, align 4, !tbaa !9
  %375 = sub nsw i32 0, %374
  store i32 %375, ptr %65, align 4, !tbaa !9
  %376 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %65, i32 noundef 7)
  store i32 1, ptr %79, align 4
  br label %606

377:                                              ; preds = %368
  %378 = load i32, ptr %73, align 4, !tbaa !9
  %379 = icmp ne i32 %378, 0
  br i1 %379, label %380, label %408

380:                                              ; preds = %377
  %381 = load ptr, ptr %28, align 8, !tbaa !5
  %382 = load ptr, ptr %29, align 8, !tbaa !5
  %383 = load ptr, ptr %31, align 8, !tbaa !5
  %384 = load i32, ptr %54, align 4, !tbaa !9
  %385 = sext i32 %384 to i64
  %386 = getelementptr inbounds %struct.complex, ptr %383, i64 %385
  %387 = load ptr, ptr %32, align 8, !tbaa !5
  %388 = load ptr, ptr %37, align 8, !tbaa !5
  %389 = getelementptr inbounds float, ptr %388, i64 1
  %390 = load ptr, ptr %50, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.complex, ptr %390, i64 1
  call void @cheequb_(ptr noundef %381, ptr noundef %382, ptr noundef %386, ptr noundef %387, ptr noundef %389, ptr noundef %72, ptr noundef %68, ptr noundef %391, ptr noundef %77)
  %392 = load i32, ptr %77, align 4, !tbaa !9
  %393 = icmp eq i32 %392, 0
  br i1 %393, label %394, label %407

394:                                              ; preds = %380
  %395 = load ptr, ptr %28, align 8, !tbaa !5
  %396 = load ptr, ptr %29, align 8, !tbaa !5
  %397 = load ptr, ptr %31, align 8, !tbaa !5
  %398 = load i32, ptr %54, align 4, !tbaa !9
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds %struct.complex, ptr %397, i64 %399
  %401 = load ptr, ptr %32, align 8, !tbaa !5
  %402 = load ptr, ptr %37, align 8, !tbaa !5
  %403 = getelementptr inbounds float, ptr %402, i64 1
  %404 = load ptr, ptr %36, align 8, !tbaa !5
  call void @claqhe_(ptr noundef %395, ptr noundef %396, ptr noundef %400, ptr noundef %401, ptr noundef %403, ptr noundef %72, ptr noundef %68, ptr noundef %404)
  %405 = load ptr, ptr %36, align 8, !tbaa !5
  %406 = call i32 @lsame_(ptr noundef %405, ptr noundef @.str.3)
  store i32 %406, ptr %74, align 4, !tbaa !9
  br label %407

407:                                              ; preds = %394, %380
  br label %408

408:                                              ; preds = %407, %377
  %409 = load i32, ptr %74, align 4, !tbaa !9
  %410 = icmp ne i32 %409, 0
  br i1 %410, label %411, label %421

411:                                              ; preds = %408
  %412 = load ptr, ptr %29, align 8, !tbaa !5
  %413 = load ptr, ptr %30, align 8, !tbaa !5
  %414 = load ptr, ptr %37, align 8, !tbaa !5
  %415 = getelementptr inbounds float, ptr %414, i64 1
  %416 = load ptr, ptr %38, align 8, !tbaa !5
  %417 = load i32, ptr %58, align 4, !tbaa !9
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds %struct.complex, ptr %416, i64 %418
  %420 = load ptr, ptr %39, align 8, !tbaa !5
  call void @clascl2_(ptr noundef %412, ptr noundef %413, ptr noundef %415, ptr noundef %419, ptr noundef %420)
  br label %421

421:                                              ; preds = %411, %408
  %422 = load i32, ptr %75, align 4, !tbaa !9
  %423 = icmp ne i32 %422, 0
  br i1 %423, label %427, label %424

424:                                              ; preds = %421
  %425 = load i32, ptr %73, align 4, !tbaa !9
  %426 = icmp ne i32 %425, 0
  br i1 %426, label %427, label %492

427:                                              ; preds = %424, %421
  %428 = load ptr, ptr %28, align 8, !tbaa !5
  %429 = load ptr, ptr %29, align 8, !tbaa !5
  %430 = load ptr, ptr %29, align 8, !tbaa !5
  %431 = load ptr, ptr %31, align 8, !tbaa !5
  %432 = load i32, ptr %54, align 4, !tbaa !9
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds %struct.complex, ptr %431, i64 %433
  %435 = load ptr, ptr %32, align 8, !tbaa !5
  %436 = load ptr, ptr %33, align 8, !tbaa !5
  %437 = load i32, ptr %56, align 4, !tbaa !9
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds %struct.complex, ptr %436, i64 %438
  %440 = load ptr, ptr %34, align 8, !tbaa !5
  call void @clacpy_(ptr noundef %428, ptr noundef %429, ptr noundef %430, ptr noundef %434, ptr noundef %435, ptr noundef %439, ptr noundef %440)
  %441 = load ptr, ptr %29, align 8, !tbaa !5
  %442 = load i32, ptr %441, align 4, !tbaa !9
  %443 = icmp sge i32 1, %442
  br i1 %443, label %444, label %445

444:                                              ; preds = %427
  br label %448

445:                                              ; preds = %427
  %446 = load ptr, ptr %29, align 8, !tbaa !5
  %447 = load i32, ptr %446, align 4, !tbaa !9
  br label %448

448:                                              ; preds = %445, %444
  %449 = phi i32 [ 1, %444 ], [ %447, %445 ]
  %450 = mul nsw i32 %449, 5
  store i32 %450, ptr %65, align 4, !tbaa !9
  %451 = load ptr, ptr %28, align 8, !tbaa !5
  %452 = load ptr, ptr %29, align 8, !tbaa !5
  %453 = load ptr, ptr %33, align 8, !tbaa !5
  %454 = load i32, ptr %56, align 4, !tbaa !9
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds %struct.complex, ptr %453, i64 %455
  %457 = load ptr, ptr %34, align 8, !tbaa !5
  %458 = load ptr, ptr %35, align 8, !tbaa !5
  %459 = getelementptr inbounds i32, ptr %458, i64 1
  %460 = load ptr, ptr %50, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.complex, ptr %460, i64 1
  %462 = load ptr, ptr %52, align 8, !tbaa !5
  call void @chetrf_(ptr noundef %451, ptr noundef %452, ptr noundef %456, ptr noundef %457, ptr noundef %459, ptr noundef %461, ptr noundef %65, ptr noundef %462)
  %463 = load ptr, ptr %52, align 8, !tbaa !5
  %464 = load i32, ptr %463, align 4, !tbaa !9
  %465 = icmp sgt i32 %464, 0
  br i1 %465, label %466, label %491

466:                                              ; preds = %448
  %467 = load ptr, ptr %29, align 8, !tbaa !5
  %468 = load i32, ptr %467, align 4, !tbaa !9
  %469 = icmp sgt i32 %468, 0
  br i1 %469, label %470, label %490

470:                                              ; preds = %466
  %471 = load ptr, ptr %28, align 8, !tbaa !5
  %472 = load ptr, ptr %29, align 8, !tbaa !5
  %473 = load ptr, ptr %52, align 8, !tbaa !5
  %474 = load ptr, ptr %31, align 8, !tbaa !5
  %475 = load i32, ptr %54, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds %struct.complex, ptr %474, i64 %476
  %478 = load ptr, ptr %32, align 8, !tbaa !5
  %479 = load ptr, ptr %33, align 8, !tbaa !5
  %480 = load i32, ptr %56, align 4, !tbaa !9
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds %struct.complex, ptr %479, i64 %481
  %483 = load ptr, ptr %34, align 8, !tbaa !5
  %484 = load ptr, ptr %35, align 8, !tbaa !5
  %485 = getelementptr inbounds i32, ptr %484, i64 1
  %486 = load ptr, ptr %51, align 8, !tbaa !5
  %487 = getelementptr inbounds float, ptr %486, i64 1
  %488 = call float @cla_herpvgrw_(ptr noundef %471, ptr noundef %472, ptr noundef %473, ptr noundef %477, ptr noundef %478, ptr noundef %482, ptr noundef %483, ptr noundef %485, ptr noundef %487)
  %489 = load ptr, ptr %43, align 8, !tbaa !5
  store float %488, ptr %489, align 4, !tbaa !11
  br label %490

490:                                              ; preds = %470, %466
  store i32 1, ptr %79, align 4
  br label %606

491:                                              ; preds = %448
  br label %492

492:                                              ; preds = %491, %424
  %493 = load ptr, ptr %29, align 8, !tbaa !5
  %494 = load i32, ptr %493, align 4, !tbaa !9
  %495 = icmp sgt i32 %494, 0
  br i1 %495, label %496, label %516

496:                                              ; preds = %492
  %497 = load ptr, ptr %28, align 8, !tbaa !5
  %498 = load ptr, ptr %29, align 8, !tbaa !5
  %499 = load ptr, ptr %52, align 8, !tbaa !5
  %500 = load ptr, ptr %31, align 8, !tbaa !5
  %501 = load i32, ptr %54, align 4, !tbaa !9
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds %struct.complex, ptr %500, i64 %502
  %504 = load ptr, ptr %32, align 8, !tbaa !5
  %505 = load ptr, ptr %33, align 8, !tbaa !5
  %506 = load i32, ptr %56, align 4, !tbaa !9
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds %struct.complex, ptr %505, i64 %507
  %509 = load ptr, ptr %34, align 8, !tbaa !5
  %510 = load ptr, ptr %35, align 8, !tbaa !5
  %511 = getelementptr inbounds i32, ptr %510, i64 1
  %512 = load ptr, ptr %51, align 8, !tbaa !5
  %513 = getelementptr inbounds float, ptr %512, i64 1
  %514 = call float @cla_herpvgrw_(ptr noundef %497, ptr noundef %498, ptr noundef %499, ptr noundef %503, ptr noundef %504, ptr noundef %508, ptr noundef %509, ptr noundef %511, ptr noundef %513)
  %515 = load ptr, ptr %43, align 8, !tbaa !5
  store float %514, ptr %515, align 4, !tbaa !11
  br label %516

516:                                              ; preds = %496, %492
  %517 = load ptr, ptr %29, align 8, !tbaa !5
  %518 = load ptr, ptr %30, align 8, !tbaa !5
  %519 = load ptr, ptr %38, align 8, !tbaa !5
  %520 = load i32, ptr %58, align 4, !tbaa !9
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds %struct.complex, ptr %519, i64 %521
  %523 = load ptr, ptr %39, align 8, !tbaa !5
  %524 = load ptr, ptr %40, align 8, !tbaa !5
  %525 = load i32, ptr %60, align 4, !tbaa !9
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds %struct.complex, ptr %524, i64 %526
  %528 = load ptr, ptr %41, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.8, ptr noundef %517, ptr noundef %518, ptr noundef %522, ptr noundef %523, ptr noundef %527, ptr noundef %528)
  %529 = load ptr, ptr %28, align 8, !tbaa !5
  %530 = load ptr, ptr %29, align 8, !tbaa !5
  %531 = load ptr, ptr %30, align 8, !tbaa !5
  %532 = load ptr, ptr %33, align 8, !tbaa !5
  %533 = load i32, ptr %56, align 4, !tbaa !9
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds %struct.complex, ptr %532, i64 %534
  %536 = load ptr, ptr %34, align 8, !tbaa !5
  %537 = load ptr, ptr %35, align 8, !tbaa !5
  %538 = getelementptr inbounds i32, ptr %537, i64 1
  %539 = load ptr, ptr %40, align 8, !tbaa !5
  %540 = load i32, ptr %60, align 4, !tbaa !9
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds %struct.complex, ptr %539, i64 %541
  %543 = load ptr, ptr %41, align 8, !tbaa !5
  %544 = load ptr, ptr %52, align 8, !tbaa !5
  call void @chetrs_(ptr noundef %529, ptr noundef %530, ptr noundef %531, ptr noundef %535, ptr noundef %536, ptr noundef %538, ptr noundef %542, ptr noundef %543, ptr noundef %544)
  %545 = load ptr, ptr %28, align 8, !tbaa !5
  %546 = load ptr, ptr %36, align 8, !tbaa !5
  %547 = load ptr, ptr %29, align 8, !tbaa !5
  %548 = load ptr, ptr %30, align 8, !tbaa !5
  %549 = load ptr, ptr %31, align 8, !tbaa !5
  %550 = load i32, ptr %54, align 4, !tbaa !9
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds %struct.complex, ptr %549, i64 %551
  %553 = load ptr, ptr %32, align 8, !tbaa !5
  %554 = load ptr, ptr %33, align 8, !tbaa !5
  %555 = load i32, ptr %56, align 4, !tbaa !9
  %556 = sext i32 %555 to i64
  %557 = getelementptr inbounds %struct.complex, ptr %554, i64 %556
  %558 = load ptr, ptr %34, align 8, !tbaa !5
  %559 = load ptr, ptr %35, align 8, !tbaa !5
  %560 = getelementptr inbounds i32, ptr %559, i64 1
  %561 = load ptr, ptr %37, align 8, !tbaa !5
  %562 = getelementptr inbounds float, ptr %561, i64 1
  %563 = load ptr, ptr %38, align 8, !tbaa !5
  %564 = load i32, ptr %58, align 4, !tbaa !9
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds %struct.complex, ptr %563, i64 %565
  %567 = load ptr, ptr %39, align 8, !tbaa !5
  %568 = load ptr, ptr %40, align 8, !tbaa !5
  %569 = load i32, ptr %60, align 4, !tbaa !9
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds %struct.complex, ptr %568, i64 %570
  %572 = load ptr, ptr %41, align 8, !tbaa !5
  %573 = load ptr, ptr %42, align 8, !tbaa !5
  %574 = load ptr, ptr %44, align 8, !tbaa !5
  %575 = getelementptr inbounds float, ptr %574, i64 1
  %576 = load ptr, ptr %45, align 8, !tbaa !5
  %577 = load ptr, ptr %46, align 8, !tbaa !5
  %578 = load i32, ptr %62, align 4, !tbaa !9
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %577, i64 %579
  %581 = load ptr, ptr %47, align 8, !tbaa !5
  %582 = load i32, ptr %64, align 4, !tbaa !9
  %583 = sext i32 %582 to i64
  %584 = getelementptr inbounds float, ptr %581, i64 %583
  %585 = load ptr, ptr %48, align 8, !tbaa !5
  %586 = load ptr, ptr %49, align 8, !tbaa !5
  %587 = getelementptr inbounds float, ptr %586, i64 1
  %588 = load ptr, ptr %50, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.complex, ptr %588, i64 1
  %590 = load ptr, ptr %51, align 8, !tbaa !5
  %591 = getelementptr inbounds float, ptr %590, i64 1
  %592 = load ptr, ptr %52, align 8, !tbaa !5
  call void @cherfsx_(ptr noundef %545, ptr noundef %546, ptr noundef %547, ptr noundef %548, ptr noundef %552, ptr noundef %553, ptr noundef %557, ptr noundef %558, ptr noundef %560, ptr noundef %562, ptr noundef %566, ptr noundef %567, ptr noundef %571, ptr noundef %572, ptr noundef %573, ptr noundef %575, ptr noundef %576, ptr noundef %580, ptr noundef %584, ptr noundef %585, ptr noundef %587, ptr noundef %589, ptr noundef %591, ptr noundef %592)
  %593 = load i32, ptr %74, align 4, !tbaa !9
  %594 = icmp ne i32 %593, 0
  br i1 %594, label %595, label %605

595:                                              ; preds = %516
  %596 = load ptr, ptr %29, align 8, !tbaa !5
  %597 = load ptr, ptr %30, align 8, !tbaa !5
  %598 = load ptr, ptr %37, align 8, !tbaa !5
  %599 = getelementptr inbounds float, ptr %598, i64 1
  %600 = load ptr, ptr %40, align 8, !tbaa !5
  %601 = load i32, ptr %60, align 4, !tbaa !9
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds %struct.complex, ptr %600, i64 %602
  %604 = load ptr, ptr %41, align 8, !tbaa !5
  call void @clascl2_(ptr noundef %596, ptr noundef %597, ptr noundef %599, ptr noundef %603, ptr noundef %604)
  br label %605

605:                                              ; preds = %595, %516
  store i32 1, ptr %79, align 4
  br label %606

606:                                              ; preds = %605, %490, %372
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #3
  ret void
}

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

declare float @cla_herpvgrw_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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

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


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @chesvxx_(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 nocapture noundef writeonly %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25) local_unnamed_addr #0 {
  %27 = alloca i32, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #4
  %31 = getelementptr inbounds i8, ptr %10, i64 -4
  store i32 0, ptr %25, align 4, !tbaa !5
  %32 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %33 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %34 = tail call float @slamch_(ptr noundef nonnull @.str.2) #4
  %35 = fdiv float 1.000000e+00, %34
  %36 = icmp ne i32 %32, 0
  %37 = icmp ne i32 %33, 0
  %or.cond = select i1 %36, i1 true, i1 %37
  br i1 %or.cond, label %.thread, label %38

.thread:                                          ; preds = %26
  store i8 78, ptr %9, align 1, !tbaa !9
  store float 0.000000e+00, ptr %16, align 4, !tbaa !10
  br label %41

38:                                               ; preds = %26
  %39 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.3) #4
  store float 0.000000e+00, ptr %16, align 4, !tbaa !10
  %40 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #4
  %.not = icmp eq i32 %40, 0
  br i1 %.not, label %.thread262.sink.split, label %41

41:                                               ; preds = %.thread, %38
  %.0257 = phi i32 [ 0, %.thread ], [ %39, %38 ]
  %42 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.5) #4
  %.not245 = icmp eq i32 %42, 0
  br i1 %.not245, label %43, label %45

43:                                               ; preds = %41
  %44 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.6) #4
  %.not246 = icmp eq i32 %44, 0
  br i1 %.not246, label %.thread262.sink.split, label %45

45:                                               ; preds = %43, %41
  %46 = load i32, ptr %2, align 4, !tbaa !5
  %47 = icmp slt i32 %46, 0
  br i1 %47, label %.thread262.sink.split, label %48

48:                                               ; preds = %45
  %49 = load i32, ptr %3, align 4, !tbaa !5
  %50 = icmp slt i32 %49, 0
  br i1 %50, label %.thread262.sink.split, label %51

51:                                               ; preds = %48
  %52 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %46, i32 1)
  %53 = icmp slt i32 %52, %spec.select
  br i1 %53, label %.thread262.sink.split, label %54

54:                                               ; preds = %51
  %55 = load i32, ptr %7, align 4, !tbaa !5
  %56 = icmp slt i32 %55, %spec.select
  br i1 %56, label %.thread262.sink.split, label %57

57:                                               ; preds = %54
  %58 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #4
  %59 = icmp eq i32 %58, 0
  %60 = icmp ne i32 %.0257, 0
  %or.cond5 = select i1 %59, i1 true, i1 %60
  br i1 %or.cond5, label %63, label %61

61:                                               ; preds = %57
  %62 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str) #4
  %.not247 = icmp eq i32 %62, 0
  br i1 %.not247, label %.thread262.sink.split, label %.thread258

63:                                               ; preds = %57
  br i1 %60, label %64, label %.thread258

64:                                               ; preds = %63
  %65 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %65, ptr %27, align 4, !tbaa !5
  %.not248265 = icmp slt i32 %65, 1
  br i1 %.not248265, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %64
  %66 = zext nneg i32 %65 to i64
  %xtraiter = and i64 %66, 1
  %67 = icmp eq i32 %65, 1
  br i1 %67, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.preheader.new

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

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader.new ], [ %indvars.iv.next.1, %.lr.ph ]
  %.0237267 = phi float [ 0.000000e+00, %.lr.ph.preheader.new ], [ %79, %.lr.ph ]
  %.0238266 = phi float [ %35, %.lr.ph.preheader.new ], [ %77, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %68 = getelementptr inbounds float, ptr %31, i64 %indvars.iv
  %69 = load float, ptr %68, align 4, !tbaa !10
  %70 = fcmp ole float %.0238266, %69
  %71 = select i1 %70, float %.0238266, float %69
  %72 = fcmp oge float %.0237267, %69
  %73 = select i1 %72, float %.0237267, float %69
  %74 = getelementptr float, ptr %10, i64 %indvars.iv
  %75 = load float, ptr %74, align 4, !tbaa !10
  %76 = fcmp ole float %71, %75
  %77 = select i1 %76, float %71, float %75
  %78 = fcmp oge float %73, %75
  %79 = select i1 %78, float %73, float %75
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !12

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph, %.lr.ph.preheader
  %.lcssa276.ph = phi float [ poison, %.lr.ph.preheader ], [ %77, %.lr.ph ]
  %.lcssa.ph = phi float [ poison, %.lr.ph.preheader ], [ %79, %.lr.ph ]
  %indvars.iv.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next.1, %.lr.ph ]
  %.0237267.unr = phi float [ 0.000000e+00, %.lr.ph.preheader ], [ %79, %.lr.ph ]
  %.0238266.unr = phi float [ %35, %.lr.ph.preheader ], [ %77, %.lr.ph ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %._crit_edge.loopexit.unr-lcssa
  %80 = getelementptr inbounds float, ptr %31, i64 %indvars.iv.unr
  %81 = load float, ptr %80, align 4, !tbaa !10
  %82 = fcmp ole float %.0238266.unr, %81
  %83 = select i1 %82, float %.0238266.unr, float %81
  %84 = fcmp oge float %.0237267.unr, %81
  %85 = select i1 %84, float %.0237267.unr, float %81
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.loopexit.unr-lcssa, %64
  %.0238.lcssa = phi float [ %35, %64 ], [ %.lcssa276.ph, %._crit_edge.loopexit.unr-lcssa ], [ %83, %.lr.ph.epil ]
  %.0237.lcssa = phi float [ 0.000000e+00, %64 ], [ %.lcssa.ph, %._crit_edge.loopexit.unr-lcssa ], [ %85, %.lr.ph.epil ]
  %86 = fcmp ugt float %.0238.lcssa, 0.000000e+00
  br i1 %86, label %87, label %.thread262.sink.split

87:                                               ; preds = %._crit_edge
  %88 = icmp sgt i32 %65, 0
  br i1 %88, label %89, label %95

89:                                               ; preds = %87
  %90 = fcmp oge float %.0238.lcssa, %34
  %91 = select i1 %90, float %.0238.lcssa, float %34
  %92 = fcmp ole float %.0237.lcssa, %35
  %93 = select i1 %92, float %.0237.lcssa, float %35
  %94 = fdiv float %91, %93
  store float %94, ptr %29, align 4, !tbaa !10
  br label %.thread258

95:                                               ; preds = %87
  store float 1.000000e+00, ptr %29, align 4, !tbaa !10
  br label %.thread258

.thread258:                                       ; preds = %61, %95, %89, %63
  %.pr = load i32, ptr %25, align 4, !tbaa !5
  %96 = icmp eq i32 %.pr, 0
  br i1 %96, label %97, label %.thread262

97:                                               ; preds = %.thread258
  %98 = load i32, ptr %12, align 4, !tbaa !5
  %99 = load i32, ptr %2, align 4, !tbaa !5
  %spec.select252 = tail call i32 @llvm.smax.i32(i32 %99, i32 1)
  %100 = icmp slt i32 %98, %spec.select252
  br i1 %100, label %.thread262.sink.split, label %101

101:                                              ; preds = %97
  %102 = load i32, ptr %14, align 4, !tbaa !5
  %103 = icmp slt i32 %102, %spec.select252
  br i1 %103, label %.thread262.sink.split, label %107

.thread262.sink.split:                            ; preds = %101, %97, %._crit_edge, %61, %54, %51, %48, %45, %43, %38
  %.sink = phi i32 [ -1, %38 ], [ -2, %43 ], [ -3, %45 ], [ -4, %48 ], [ -6, %51 ], [ -8, %54 ], [ -9, %61 ], [ -10, %._crit_edge ], [ -12, %97 ], [ -14, %101 ]
  store i32 %.sink, ptr %25, align 4, !tbaa !5
  br label %.thread262

.thread262:                                       ; preds = %.thread262.sink.split, %.thread258
  %104 = phi i32 [ %.pr, %.thread258 ], [ %.sink, %.thread262.sink.split ]
  %105 = sub nsw i32 0, %104
  store i32 %105, ptr %27, align 4, !tbaa !5
  %106 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %27, i32 noundef 7) #4
  br label %133

107:                                              ; preds = %101
  br i1 %37, label %108, label %113

108:                                              ; preds = %107
  call void @cheequb_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %10, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %23, ptr noundef nonnull %30) #4
  %109 = load i32, ptr %30, align 4, !tbaa !5
  %110 = icmp eq i32 %109, 0
  br i1 %110, label %111, label %113

111:                                              ; preds = %108
  call void @claqhe_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %10, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %9) #4
  %112 = call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.3) #4
  br label %113

113:                                              ; preds = %108, %111, %107
  %.1 = phi i32 [ %112, %111 ], [ %.0257, %108 ], [ %.0257, %107 ]
  %.not250 = icmp eq i32 %.1, 0
  br i1 %.not250, label %115, label %114

114:                                              ; preds = %113
  call void @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12) #4
  br label %115

115:                                              ; preds = %114, %113
  br i1 %or.cond, label %116, label %._crit_edge272

._crit_edge272:                                   ; preds = %115
  %.pre = load i32, ptr %2, align 4, !tbaa !5
  br label %126

116:                                              ; preds = %115
  call void @clacpy_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7) #4
  %117 = load i32, ptr %2, align 4, !tbaa !5
  %118 = icmp slt i32 %117, 2
  %119 = mul nuw nsw i32 %117, 5
  %spec.select254 = select i1 %118, i32 5, i32 %119
  store i32 %spec.select254, ptr %27, align 4, !tbaa !5
  call void @chetrf_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef %23, ptr noundef nonnull %27, ptr noundef nonnull %25) #4
  %120 = load i32, ptr %25, align 4, !tbaa !5
  %121 = icmp sgt i32 %120, 0
  %.pre273 = load i32, ptr %2, align 4, !tbaa !5
  br i1 %121, label %122, label %126

122:                                              ; preds = %116
  %123 = icmp sgt i32 %.pre273, 0
  br i1 %123, label %124, label %133

124:                                              ; preds = %122
  %125 = call float @cla_herpvgrw_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef %24) #4
  store float %125, ptr %16, align 4, !tbaa !10
  br label %133

126:                                              ; preds = %._crit_edge272, %116
  %127 = phi i32 [ %.pre, %._crit_edge272 ], [ %.pre273, %116 ]
  %128 = icmp sgt i32 %127, 0
  br i1 %128, label %129, label %131

129:                                              ; preds = %126
  %130 = call float @cla_herpvgrw_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef %24) #4
  store float %130, ptr %16, align 4, !tbaa !10
  br label %131

131:                                              ; preds = %129, %126
  call void @clacpy_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14) #4
  call void @chetrs_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %25) #4
  call void @cherfsx_(ptr noundef %1, ptr noundef %9, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef nonnull %25) #4
  br i1 %.not250, label %133, label %132

132:                                              ; preds = %131
  call void @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %10, ptr noundef %13, ptr noundef nonnull %14) #4
  br label %133

133:                                              ; preds = %131, %132, %122, %124, %.thread262
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #4
  ret void
}

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

declare void @cheequb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @claqhe_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @clascl2_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @clacpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @chetrf_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare float @cla_herpvgrw_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @chetrs_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @cherfsx_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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


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