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

152:                                              ; preds = %26
  %153 = load i64, ptr %74, align 8, !tbaa !9
  %154 = icmp ne i64 %153, 0
  br i1 %154, label %155, label %157

155:                                              ; preds = %152, %26
  %156 = load ptr, ptr %37, align 8, !tbaa !5
  store i8 78, ptr %156, align 1, !tbaa !13
  store i64 0, ptr %75, align 8, !tbaa !9
  br label %160

157:                                              ; preds = %152
  %158 = load ptr, ptr %37, align 8, !tbaa !5
  %159 = call i64 @lsame_(ptr noundef %158, ptr noundef @.str.3)
  store i64 %159, ptr %75, align 8, !tbaa !9
  br label %160

160:                                              ; preds = %157, %155
  %161 = load ptr, ptr %44, align 8, !tbaa !5
  store float 0.000000e+00, ptr %161, align 4, !tbaa !11
  %162 = load i64, ptr %76, align 8, !tbaa !9
  %163 = icmp ne i64 %162, 0
  br i1 %163, label %173, label %164

164:                                              ; preds = %160
  %165 = load i64, ptr %74, align 8, !tbaa !9
  %166 = icmp ne i64 %165, 0
  br i1 %166, label %173, label %167

167:                                              ; preds = %164
  %168 = load ptr, ptr %28, align 8, !tbaa !5
  %169 = call i64 @lsame_(ptr noundef %168, ptr noundef @.str.4)
  %170 = icmp ne i64 %169, 0
  br i1 %170, label %173, label %171

171:                                              ; preds = %167
  %172 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -1, ptr %172, align 8, !tbaa !9
  br label %363

173:                                              ; preds = %167, %164, %160
  %174 = load ptr, ptr %29, align 8, !tbaa !5
  %175 = call i64 @lsame_(ptr noundef %174, ptr noundef @.str.5)
  %176 = icmp ne i64 %175, 0
  br i1 %176, label %183, label %177

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

181:                                              ; preds = %177
  %182 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -2, ptr %182, align 8, !tbaa !9
  br label %362

183:                                              ; preds = %177, %173
  %184 = load ptr, ptr %30, align 8, !tbaa !5
  %185 = load i64, ptr %184, align 8, !tbaa !9
  %186 = icmp slt i64 %185, 0
  br i1 %186, label %187, label %189

187:                                              ; preds = %183
  %188 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -3, ptr %188, align 8, !tbaa !9
  br label %361

189:                                              ; preds = %183
  %190 = load ptr, ptr %31, align 8, !tbaa !5
  %191 = load i64, ptr %190, align 8, !tbaa !9
  %192 = icmp slt i64 %191, 0
  br i1 %192, label %193, label %195

193:                                              ; preds = %189
  %194 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -4, ptr %194, align 8, !tbaa !9
  br label %360

195:                                              ; preds = %189
  %196 = load ptr, ptr %33, align 8, !tbaa !5
  %197 = load i64, ptr %196, align 8, !tbaa !9
  %198 = load ptr, ptr %30, align 8, !tbaa !5
  %199 = load i64, ptr %198, align 8, !tbaa !9
  %200 = icmp sge i64 1, %199
  br i1 %200, label %201, label %202

201:                                              ; preds = %195
  br label %205

202:                                              ; preds = %195
  %203 = load ptr, ptr %30, align 8, !tbaa !5
  %204 = load i64, ptr %203, align 8, !tbaa !9
  br label %205

205:                                              ; preds = %202, %201
  %206 = phi i64 [ 1, %201 ], [ %204, %202 ]
  %207 = icmp slt i64 %197, %206
  br i1 %207, label %208, label %210

208:                                              ; preds = %205
  %209 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -6, ptr %209, align 8, !tbaa !9
  br label %359

210:                                              ; preds = %205
  %211 = load ptr, ptr %35, align 8, !tbaa !5
  %212 = load i64, ptr %211, align 8, !tbaa !9
  %213 = load ptr, ptr %30, align 8, !tbaa !5
  %214 = load i64, ptr %213, align 8, !tbaa !9
  %215 = icmp sge i64 1, %214
  br i1 %215, label %216, label %217

216:                                              ; preds = %210
  br label %220

217:                                              ; preds = %210
  %218 = load ptr, ptr %30, align 8, !tbaa !5
  %219 = load i64, ptr %218, align 8, !tbaa !9
  br label %220

220:                                              ; preds = %217, %216
  %221 = phi i64 [ 1, %216 ], [ %219, %217 ]
  %222 = icmp slt i64 %212, %221
  br i1 %222, label %223, label %225

223:                                              ; preds = %220
  %224 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -8, ptr %224, align 8, !tbaa !9
  br label %358

225:                                              ; preds = %220
  %226 = load ptr, ptr %28, align 8, !tbaa !5
  %227 = call i64 @lsame_(ptr noundef %226, ptr noundef @.str.4)
  %228 = icmp ne i64 %227, 0
  br i1 %228, label %229, label %238

229:                                              ; preds = %225
  %230 = load i64, ptr %75, align 8, !tbaa !9
  %231 = icmp ne i64 %230, 0
  br i1 %231, label %238, label %232

232:                                              ; preds = %229
  %233 = load ptr, ptr %37, align 8, !tbaa !5
  %234 = call i64 @lsame_(ptr noundef %233, ptr noundef @.str)
  %235 = icmp ne i64 %234, 0
  br i1 %235, label %238, label %236

236:                                              ; preds = %232
  %237 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -9, ptr %237, align 8, !tbaa !9
  br label %357

238:                                              ; preds = %232, %229, %225
  %239 = load i64, ptr %75, align 8, !tbaa !9
  %240 = icmp ne i64 %239, 0
  br i1 %240, label %241, label %320

241:                                              ; preds = %238
  %242 = load float, ptr %77, align 4, !tbaa !11
  store float %242, ptr %71, align 4, !tbaa !11
  store float 0.000000e+00, ptr %72, align 4, !tbaa !11
  %243 = load ptr, ptr %30, align 8, !tbaa !5
  %244 = load i64, ptr %243, align 8, !tbaa !9
  store i64 %244, ptr %66, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %245

245:                                              ; preds = %282, %241
  %246 = load i64, ptr %69, align 8, !tbaa !9
  %247 = load i64, ptr %66, align 8, !tbaa !9
  %248 = icmp sle i64 %246, %247
  br i1 %248, label %249, label %285

249:                                              ; preds = %245
  %250 = load float, ptr %71, align 4, !tbaa !11
  store float %250, ptr %67, align 4, !tbaa !11
  %251 = load ptr, ptr %38, align 8, !tbaa !5
  %252 = load i64, ptr %69, align 8, !tbaa !9
  %253 = getelementptr inbounds float, ptr %251, i64 %252
  %254 = load float, ptr %253, align 4, !tbaa !11
  store float %254, ptr %68, align 4, !tbaa !11
  %255 = load float, ptr %67, align 4, !tbaa !11
  %256 = load float, ptr %68, align 4, !tbaa !11
  %257 = fcmp ole float %255, %256
  br i1 %257, label %258, label %260

258:                                              ; preds = %249
  %259 = load float, ptr %67, align 4, !tbaa !11
  br label %262

260:                                              ; preds = %249
  %261 = load float, ptr %68, align 4, !tbaa !11
  br label %262

262:                                              ; preds = %260, %258
  %263 = phi float [ %259, %258 ], [ %261, %260 ]
  %264 = fpext float %263 to double
  %265 = fptrunc double %264 to float
  store float %265, ptr %71, align 4, !tbaa !11
  %266 = load float, ptr %72, align 4, !tbaa !11
  store float %266, ptr %67, align 4, !tbaa !11
  %267 = load ptr, ptr %38, align 8, !tbaa !5
  %268 = load i64, ptr %69, align 8, !tbaa !9
  %269 = getelementptr inbounds float, ptr %267, i64 %268
  %270 = load float, ptr %269, align 4, !tbaa !11
  store float %270, ptr %68, align 4, !tbaa !11
  %271 = load float, ptr %67, align 4, !tbaa !11
  %272 = load float, ptr %68, align 4, !tbaa !11
  %273 = fcmp oge float %271, %272
  br i1 %273, label %274, label %276

274:                                              ; preds = %262
  %275 = load float, ptr %67, align 4, !tbaa !11
  br label %278

276:                                              ; preds = %262
  %277 = load float, ptr %68, align 4, !tbaa !11
  br label %278

278:                                              ; preds = %276, %274
  %279 = phi float [ %275, %274 ], [ %277, %276 ]
  %280 = fpext float %279 to double
  %281 = fptrunc double %280 to float
  store float %281, ptr %72, align 4, !tbaa !11
  br label %282

282:                                              ; preds = %278
  %283 = load i64, ptr %69, align 8, !tbaa !9
  %284 = add nsw i64 %283, 1
  store i64 %284, ptr %69, align 8, !tbaa !9
  br label %245, !llvm.loop !14

285:                                              ; preds = %245
  %286 = load float, ptr %71, align 4, !tbaa !11
  %287 = fcmp ole float %286, 0.000000e+00
  br i1 %287, label %288, label %290

288:                                              ; preds = %285
  %289 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -10, ptr %289, align 8, !tbaa !9
  br label %319

290:                                              ; preds = %285
  %291 = load ptr, ptr %30, align 8, !tbaa !5
  %292 = load i64, ptr %291, align 8, !tbaa !9
  %293 = icmp sgt i64 %292, 0
  br i1 %293, label %294, label %317

294:                                              ; preds = %290
  %295 = load float, ptr %71, align 4, !tbaa !11
  %296 = load float, ptr %79, align 4, !tbaa !11
  %297 = fcmp oge float %295, %296
  br i1 %297, label %298, label %300

298:                                              ; preds = %294
  %299 = load float, ptr %71, align 4, !tbaa !11
  br label %302

300:                                              ; preds = %294
  %301 = load float, ptr %79, align 4, !tbaa !11
  br label %302

302:                                              ; preds = %300, %298
  %303 = phi float [ %299, %298 ], [ %301, %300 ]
  %304 = fpext float %303 to double
  %305 = load float, ptr %72, align 4, !tbaa !11
  %306 = load float, ptr %77, align 4, !tbaa !11
  %307 = fcmp ole float %305, %306
  br i1 %307, label %308, label %310

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

310:                                              ; preds = %302
  %311 = load float, ptr %77, align 4, !tbaa !11
  br label %312

312:                                              ; preds = %310, %308
  %313 = phi float [ %309, %308 ], [ %311, %310 ]
  %314 = fpext float %313 to double
  %315 = fdiv double %304, %314
  %316 = fptrunc double %315 to float
  store float %316, ptr %73, align 4, !tbaa !11
  br label %318

317:                                              ; preds = %290
  store float 1.000000e+00, ptr %73, align 4, !tbaa !11
  br label %318

318:                                              ; preds = %317, %312
  br label %319

319:                                              ; preds = %318, %288
  br label %320

320:                                              ; preds = %319, %238
  %321 = load ptr, ptr %53, align 8, !tbaa !5
  %322 = load i64, ptr %321, align 8, !tbaa !9
  %323 = icmp eq i64 %322, 0
  br i1 %323, label %324, label %356

324:                                              ; preds = %320
  %325 = load ptr, ptr %40, align 8, !tbaa !5
  %326 = load i64, ptr %325, align 8, !tbaa !9
  %327 = load ptr, ptr %30, align 8, !tbaa !5
  %328 = load i64, ptr %327, align 8, !tbaa !9
  %329 = icmp sge i64 1, %328
  br i1 %329, label %330, label %331

330:                                              ; preds = %324
  br label %334

331:                                              ; preds = %324
  %332 = load ptr, ptr %30, align 8, !tbaa !5
  %333 = load i64, ptr %332, align 8, !tbaa !9
  br label %334

334:                                              ; preds = %331, %330
  %335 = phi i64 [ 1, %330 ], [ %333, %331 ]
  %336 = icmp slt i64 %326, %335
  br i1 %336, label %337, label %339

337:                                              ; preds = %334
  %338 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -12, ptr %338, align 8, !tbaa !9
  br label %355

339:                                              ; preds = %334
  %340 = load ptr, ptr %42, align 8, !tbaa !5
  %341 = load i64, ptr %340, align 8, !tbaa !9
  %342 = load ptr, ptr %30, align 8, !tbaa !5
  %343 = load i64, ptr %342, align 8, !tbaa !9
  %344 = icmp sge i64 1, %343
  br i1 %344, label %345, label %346

345:                                              ; preds = %339
  br label %349

346:                                              ; preds = %339
  %347 = load ptr, ptr %30, align 8, !tbaa !5
  %348 = load i64, ptr %347, align 8, !tbaa !9
  br label %349

349:                                              ; preds = %346, %345
  %350 = phi i64 [ 1, %345 ], [ %348, %346 ]
  %351 = icmp slt i64 %341, %350
  br i1 %351, label %352, label %354

352:                                              ; preds = %349
  %353 = load ptr, ptr %53, align 8, !tbaa !5
  store i64 -14, ptr %353, align 8, !tbaa !9
  br label %354

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

355:                                              ; preds = %354, %337
  br label %356

356:                                              ; preds = %355, %320
  br label %357

357:                                              ; preds = %356, %236
  br label %358

358:                                              ; preds = %357, %223
  br label %359

359:                                              ; preds = %358, %208
  br label %360

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

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

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

363:                                              ; preds = %362, %171
  %364 = load ptr, ptr %53, align 8, !tbaa !5
  %365 = load i64, ptr %364, align 8, !tbaa !9
  %366 = icmp ne i64 %365, 0
  br i1 %366, label %367, label %372

367:                                              ; preds = %363
  %368 = load ptr, ptr %53, align 8, !tbaa !5
  %369 = load i64, ptr %368, align 8, !tbaa !9
  %370 = sub nsw i64 0, %369
  store i64 %370, ptr %66, align 8, !tbaa !9
  %371 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %66)
  store i32 0, ptr %27, align 4
  store i32 1, ptr %80, align 4
  br label %591

372:                                              ; preds = %363
  %373 = load i64, ptr %74, align 8, !tbaa !9
  %374 = icmp ne i64 %373, 0
  br i1 %374, label %375, label %403

375:                                              ; preds = %372
  %376 = load ptr, ptr %29, align 8, !tbaa !5
  %377 = load ptr, ptr %30, align 8, !tbaa !5
  %378 = load ptr, ptr %32, align 8, !tbaa !5
  %379 = load i64, ptr %55, align 8, !tbaa !9
  %380 = getelementptr inbounds %struct.complex, ptr %378, i64 %379
  %381 = load ptr, ptr %33, align 8, !tbaa !5
  %382 = load ptr, ptr %38, align 8, !tbaa !5
  %383 = getelementptr inbounds float, ptr %382, i64 1
  %384 = load ptr, ptr %51, align 8, !tbaa !5
  %385 = getelementptr inbounds %struct.complex, ptr %384, i64 1
  %386 = call i32 @cheequb_(ptr noundef %376, ptr noundef %377, ptr noundef %380, ptr noundef %381, ptr noundef %383, ptr noundef %73, ptr noundef %70, ptr noundef %385, ptr noundef %78)
  %387 = load i64, ptr %78, align 8, !tbaa !9
  %388 = icmp eq i64 %387, 0
  br i1 %388, label %389, label %402

389:                                              ; preds = %375
  %390 = load ptr, ptr %29, align 8, !tbaa !5
  %391 = load ptr, ptr %30, align 8, !tbaa !5
  %392 = load ptr, ptr %32, align 8, !tbaa !5
  %393 = load i64, ptr %55, align 8, !tbaa !9
  %394 = getelementptr inbounds %struct.complex, ptr %392, i64 %393
  %395 = load ptr, ptr %33, align 8, !tbaa !5
  %396 = load ptr, ptr %38, align 8, !tbaa !5
  %397 = getelementptr inbounds float, ptr %396, i64 1
  %398 = load ptr, ptr %37, align 8, !tbaa !5
  %399 = call i32 @claqhe_(ptr noundef %390, ptr noundef %391, ptr noundef %394, ptr noundef %395, ptr noundef %397, ptr noundef %73, ptr noundef %70, ptr noundef %398)
  %400 = load ptr, ptr %37, align 8, !tbaa !5
  %401 = call i64 @lsame_(ptr noundef %400, ptr noundef @.str.3)
  store i64 %401, ptr %75, align 8, !tbaa !9
  br label %402

402:                                              ; preds = %389, %375
  br label %403

403:                                              ; preds = %402, %372
  %404 = load i64, ptr %75, align 8, !tbaa !9
  %405 = icmp ne i64 %404, 0
  br i1 %405, label %406, label %416

406:                                              ; preds = %403
  %407 = load ptr, ptr %30, align 8, !tbaa !5
  %408 = load ptr, ptr %31, align 8, !tbaa !5
  %409 = load ptr, ptr %38, align 8, !tbaa !5
  %410 = getelementptr inbounds float, ptr %409, i64 1
  %411 = load ptr, ptr %39, align 8, !tbaa !5
  %412 = load i64, ptr %59, align 8, !tbaa !9
  %413 = getelementptr inbounds %struct.complex, ptr %411, i64 %412
  %414 = load ptr, ptr %40, align 8, !tbaa !5
  %415 = call i32 @clascl2_(ptr noundef %407, ptr noundef %408, ptr noundef %410, ptr noundef %413, ptr noundef %414)
  br label %416

416:                                              ; preds = %406, %403
  %417 = load i64, ptr %76, align 8, !tbaa !9
  %418 = icmp ne i64 %417, 0
  br i1 %418, label %422, label %419

419:                                              ; preds = %416
  %420 = load i64, ptr %74, align 8, !tbaa !9
  %421 = icmp ne i64 %420, 0
  br i1 %421, label %422, label %485

422:                                              ; preds = %419, %416
  %423 = load ptr, ptr %29, align 8, !tbaa !5
  %424 = load ptr, ptr %30, align 8, !tbaa !5
  %425 = load ptr, ptr %30, align 8, !tbaa !5
  %426 = load ptr, ptr %32, align 8, !tbaa !5
  %427 = load i64, ptr %55, align 8, !tbaa !9
  %428 = getelementptr inbounds %struct.complex, ptr %426, i64 %427
  %429 = load ptr, ptr %33, align 8, !tbaa !5
  %430 = load ptr, ptr %34, align 8, !tbaa !5
  %431 = load i64, ptr %57, align 8, !tbaa !9
  %432 = getelementptr inbounds %struct.complex, ptr %430, i64 %431
  %433 = load ptr, ptr %35, align 8, !tbaa !5
  %434 = call i32 @clacpy_(ptr noundef %423, ptr noundef %424, ptr noundef %425, ptr noundef %428, ptr noundef %429, ptr noundef %432, ptr noundef %433)
  %435 = load ptr, ptr %30, align 8, !tbaa !5
  %436 = load i64, ptr %435, align 8, !tbaa !9
  %437 = icmp sge i64 1, %436
  br i1 %437, label %438, label %439

438:                                              ; preds = %422
  br label %442

439:                                              ; preds = %422
  %440 = load ptr, ptr %30, align 8, !tbaa !5
  %441 = load i64, ptr %440, align 8, !tbaa !9
  br label %442

442:                                              ; preds = %439, %438
  %443 = phi i64 [ 1, %438 ], [ %441, %439 ]
  %444 = mul nsw i64 %443, 5
  store i64 %444, ptr %66, align 8, !tbaa !9
  %445 = load ptr, ptr %29, align 8, !tbaa !5
  %446 = load ptr, ptr %30, align 8, !tbaa !5
  %447 = load ptr, ptr %34, align 8, !tbaa !5
  %448 = load i64, ptr %57, align 8, !tbaa !9
  %449 = getelementptr inbounds %struct.complex, ptr %447, i64 %448
  %450 = load ptr, ptr %35, align 8, !tbaa !5
  %451 = load ptr, ptr %36, align 8, !tbaa !5
  %452 = getelementptr inbounds i64, ptr %451, i64 1
  %453 = load ptr, ptr %51, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.complex, ptr %453, i64 1
  %455 = load ptr, ptr %53, align 8, !tbaa !5
  %456 = call i32 @chetrf_(ptr noundef %445, ptr noundef %446, ptr noundef %449, ptr noundef %450, ptr noundef %452, ptr noundef %454, ptr noundef %66, ptr noundef %455)
  %457 = load ptr, ptr %53, align 8, !tbaa !5
  %458 = load i64, ptr %457, align 8, !tbaa !9
  %459 = icmp sgt i64 %458, 0
  br i1 %459, label %460, label %484

460:                                              ; preds = %442
  %461 = load ptr, ptr %30, align 8, !tbaa !5
  %462 = load i64, ptr %461, align 8, !tbaa !9
  %463 = icmp sgt i64 %462, 0
  br i1 %463, label %464, label %483

464:                                              ; preds = %460
  %465 = load ptr, ptr %29, align 8, !tbaa !5
  %466 = load ptr, ptr %30, align 8, !tbaa !5
  %467 = load ptr, ptr %53, align 8, !tbaa !5
  %468 = load ptr, ptr %32, align 8, !tbaa !5
  %469 = load i64, ptr %55, align 8, !tbaa !9
  %470 = getelementptr inbounds %struct.complex, ptr %468, i64 %469
  %471 = load ptr, ptr %33, align 8, !tbaa !5
  %472 = load ptr, ptr %34, align 8, !tbaa !5
  %473 = load i64, ptr %57, align 8, !tbaa !9
  %474 = getelementptr inbounds %struct.complex, ptr %472, i64 %473
  %475 = load ptr, ptr %35, align 8, !tbaa !5
  %476 = load ptr, ptr %36, align 8, !tbaa !5
  %477 = getelementptr inbounds i64, ptr %476, i64 1
  %478 = load ptr, ptr %52, align 8, !tbaa !5
  %479 = getelementptr inbounds float, ptr %478, i64 1
  %480 = call double @cla_herpvgrw__(ptr noundef %465, ptr noundef %466, ptr noundef %467, ptr noundef %470, ptr noundef %471, ptr noundef %474, ptr noundef %475, ptr noundef %477, ptr noundef %479, i64 noundef 1)
  %481 = fptrunc double %480 to float
  %482 = load ptr, ptr %44, align 8, !tbaa !5
  store float %481, ptr %482, align 4, !tbaa !11
  br label %483

483:                                              ; preds = %464, %460
  store i32 0, ptr %27, align 4
  store i32 1, ptr %80, align 4
  br label %591

484:                                              ; preds = %442
  br label %485

485:                                              ; preds = %484, %419
  %486 = load ptr, ptr %30, align 8, !tbaa !5
  %487 = load i64, ptr %486, align 8, !tbaa !9
  %488 = icmp sgt i64 %487, 0
  br i1 %488, label %489, label %508

489:                                              ; preds = %485
  %490 = load ptr, ptr %29, align 8, !tbaa !5
  %491 = load ptr, ptr %30, align 8, !tbaa !5
  %492 = load ptr, ptr %53, align 8, !tbaa !5
  %493 = load ptr, ptr %32, align 8, !tbaa !5
  %494 = load i64, ptr %55, align 8, !tbaa !9
  %495 = getelementptr inbounds %struct.complex, ptr %493, i64 %494
  %496 = load ptr, ptr %33, align 8, !tbaa !5
  %497 = load ptr, ptr %34, align 8, !tbaa !5
  %498 = load i64, ptr %57, align 8, !tbaa !9
  %499 = getelementptr inbounds %struct.complex, ptr %497, i64 %498
  %500 = load ptr, ptr %35, align 8, !tbaa !5
  %501 = load ptr, ptr %36, align 8, !tbaa !5
  %502 = getelementptr inbounds i64, ptr %501, i64 1
  %503 = load ptr, ptr %52, align 8, !tbaa !5
  %504 = getelementptr inbounds float, ptr %503, i64 1
  %505 = call double @cla_herpvgrw__(ptr noundef %490, ptr noundef %491, ptr noundef %492, ptr noundef %495, ptr noundef %496, ptr noundef %499, ptr noundef %500, ptr noundef %502, ptr noundef %504, i64 noundef 1)
  %506 = fptrunc double %505 to float
  %507 = load ptr, ptr %44, align 8, !tbaa !5
  store float %506, ptr %507, align 4, !tbaa !11
  br label %508

508:                                              ; preds = %489, %485
  %509 = load ptr, ptr %30, align 8, !tbaa !5
  %510 = load ptr, ptr %31, align 8, !tbaa !5
  %511 = load ptr, ptr %39, align 8, !tbaa !5
  %512 = load i64, ptr %59, align 8, !tbaa !9
  %513 = getelementptr inbounds %struct.complex, ptr %511, i64 %512
  %514 = load ptr, ptr %40, align 8, !tbaa !5
  %515 = load ptr, ptr %41, align 8, !tbaa !5
  %516 = load i64, ptr %61, align 8, !tbaa !9
  %517 = getelementptr inbounds %struct.complex, ptr %515, i64 %516
  %518 = load ptr, ptr %42, align 8, !tbaa !5
  %519 = call i32 @clacpy_(ptr noundef @.str.8, ptr noundef %509, ptr noundef %510, ptr noundef %513, ptr noundef %514, ptr noundef %517, ptr noundef %518)
  %520 = load ptr, ptr %29, align 8, !tbaa !5
  %521 = load ptr, ptr %30, align 8, !tbaa !5
  %522 = load ptr, ptr %31, align 8, !tbaa !5
  %523 = load ptr, ptr %34, align 8, !tbaa !5
  %524 = load i64, ptr %57, align 8, !tbaa !9
  %525 = getelementptr inbounds %struct.complex, ptr %523, i64 %524
  %526 = load ptr, ptr %35, align 8, !tbaa !5
  %527 = load ptr, ptr %36, align 8, !tbaa !5
  %528 = getelementptr inbounds i64, ptr %527, i64 1
  %529 = load ptr, ptr %41, align 8, !tbaa !5
  %530 = load i64, ptr %61, align 8, !tbaa !9
  %531 = getelementptr inbounds %struct.complex, ptr %529, i64 %530
  %532 = load ptr, ptr %42, align 8, !tbaa !5
  %533 = load ptr, ptr %53, align 8, !tbaa !5
  %534 = call i32 @chetrs_(ptr noundef %520, ptr noundef %521, ptr noundef %522, ptr noundef %525, ptr noundef %526, ptr noundef %528, ptr noundef %531, ptr noundef %532, ptr noundef %533)
  %535 = load ptr, ptr %29, align 8, !tbaa !5
  %536 = load ptr, ptr %37, align 8, !tbaa !5
  %537 = load ptr, ptr %30, align 8, !tbaa !5
  %538 = load ptr, ptr %31, align 8, !tbaa !5
  %539 = load ptr, ptr %32, align 8, !tbaa !5
  %540 = load i64, ptr %55, align 8, !tbaa !9
  %541 = getelementptr inbounds %struct.complex, ptr %539, i64 %540
  %542 = load ptr, ptr %33, align 8, !tbaa !5
  %543 = load ptr, ptr %34, align 8, !tbaa !5
  %544 = load i64, ptr %57, align 8, !tbaa !9
  %545 = getelementptr inbounds %struct.complex, ptr %543, i64 %544
  %546 = load ptr, ptr %35, align 8, !tbaa !5
  %547 = load ptr, ptr %36, align 8, !tbaa !5
  %548 = getelementptr inbounds i64, ptr %547, i64 1
  %549 = load ptr, ptr %38, align 8, !tbaa !5
  %550 = getelementptr inbounds float, ptr %549, i64 1
  %551 = load ptr, ptr %39, align 8, !tbaa !5
  %552 = load i64, ptr %59, align 8, !tbaa !9
  %553 = getelementptr inbounds %struct.complex, ptr %551, i64 %552
  %554 = load ptr, ptr %40, align 8, !tbaa !5
  %555 = load ptr, ptr %41, align 8, !tbaa !5
  %556 = load i64, ptr %61, align 8, !tbaa !9
  %557 = getelementptr inbounds %struct.complex, ptr %555, i64 %556
  %558 = load ptr, ptr %42, align 8, !tbaa !5
  %559 = load ptr, ptr %43, align 8, !tbaa !5
  %560 = load ptr, ptr %45, align 8, !tbaa !5
  %561 = getelementptr inbounds float, ptr %560, i64 1
  %562 = load ptr, ptr %46, align 8, !tbaa !5
  %563 = load ptr, ptr %47, align 8, !tbaa !5
  %564 = load i64, ptr %63, align 8, !tbaa !9
  %565 = getelementptr inbounds float, ptr %563, i64 %564
  %566 = load ptr, ptr %48, align 8, !tbaa !5
  %567 = load i64, ptr %65, align 8, !tbaa !9
  %568 = getelementptr inbounds float, ptr %566, i64 %567
  %569 = load ptr, ptr %49, align 8, !tbaa !5
  %570 = load ptr, ptr %50, align 8, !tbaa !5
  %571 = getelementptr inbounds float, ptr %570, i64 1
  %572 = load ptr, ptr %51, align 8, !tbaa !5
  %573 = getelementptr inbounds %struct.complex, ptr %572, i64 1
  %574 = load ptr, ptr %52, align 8, !tbaa !5
  %575 = getelementptr inbounds float, ptr %574, i64 1
  %576 = load ptr, ptr %53, align 8, !tbaa !5
  %577 = call i32 @cherfsx_(ptr noundef %535, ptr noundef %536, ptr noundef %537, ptr noundef %538, ptr noundef %541, ptr noundef %542, ptr noundef %545, ptr noundef %546, ptr noundef %548, ptr noundef %550, ptr noundef %553, ptr noundef %554, ptr noundef %557, ptr noundef %558, ptr noundef %559, ptr noundef %561, ptr noundef %562, ptr noundef %565, ptr noundef %568, ptr noundef %569, ptr noundef %571, ptr noundef %573, ptr noundef %575, ptr noundef %576)
  %578 = load i64, ptr %75, align 8, !tbaa !9
  %579 = icmp ne i64 %578, 0
  br i1 %579, label %580, label %590

580:                                              ; preds = %508
  %581 = load ptr, ptr %30, align 8, !tbaa !5
  %582 = load ptr, ptr %31, align 8, !tbaa !5
  %583 = load ptr, ptr %38, align 8, !tbaa !5
  %584 = getelementptr inbounds float, ptr %583, i64 1
  %585 = load ptr, ptr %41, align 8, !tbaa !5
  %586 = load i64, ptr %61, align 8, !tbaa !9
  %587 = getelementptr inbounds %struct.complex, ptr %585, i64 %586
  %588 = load ptr, ptr %42, align 8, !tbaa !5
  %589 = call i32 @clascl2_(ptr noundef %581, ptr noundef %582, ptr noundef %584, ptr noundef %587, ptr noundef %588)
  br label %590

590:                                              ; preds = %580, %508
  store i32 0, ptr %27, align 4
  store i32 1, ptr %80, align 4
  br label %591

591:                                              ; preds = %590, %483, %367
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 8, 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 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #3
  %592 = load i32, ptr %27, align 4
  ret i32 %592
}

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

declare double @cla_herpvgrw__(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

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

declare i32 @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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}


; 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 noundef i32 @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 i64, align 8
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr nonnull %30) #4
  %31 = getelementptr inbounds i8, ptr %10, i64 -4
  store i64 0, ptr %25, align 8, !tbaa !5
  %32 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %33 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %34 = tail call double @slamch_(ptr noundef nonnull @.str.2) #4
  %35 = fptrunc double %34 to float
  %36 = fdiv float 1.000000e+00, %35
  %37 = icmp ne i64 %32, 0
  %38 = icmp ne i64 %33, 0
  %or.cond = select i1 %37, i1 true, i1 %38
  br i1 %or.cond, label %.thread, label %39

.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 %42

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

42:                                               ; preds = %.thread, %39
  %.0237258 = phi i64 [ 0, %.thread ], [ %40, %39 ]
  %43 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.5) #4
  %.not246 = icmp eq i64 %43, 0
  br i1 %.not246, label %44, label %46

44:                                               ; preds = %42
  %45 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.6) #4
  %.not247 = icmp eq i64 %45, 0
  br i1 %.not247, label %.thread263.sink.split, label %46

46:                                               ; preds = %44, %42
  %47 = load i64, ptr %2, align 8, !tbaa !5
  %48 = icmp slt i64 %47, 0
  br i1 %48, label %.thread263.sink.split, label %49

49:                                               ; preds = %46
  %50 = load i64, ptr %3, align 8, !tbaa !5
  %51 = icmp slt i64 %50, 0
  br i1 %51, label %.thread263.sink.split, label %52

52:                                               ; preds = %49
  %53 = load i64, ptr %5, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %47, i64 1)
  %54 = icmp slt i64 %53, %spec.select
  br i1 %54, label %.thread263.sink.split, label %55

55:                                               ; preds = %52
  %56 = load i64, ptr %7, align 8, !tbaa !5
  %57 = icmp slt i64 %56, %spec.select
  br i1 %57, label %.thread263.sink.split, label %58

58:                                               ; preds = %55
  %59 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #4
  %60 = icmp eq i64 %59, 0
  %61 = icmp ne i64 %.0237258, 0
  %or.cond5 = select i1 %60, i1 true, i1 %61
  br i1 %or.cond5, label %64, label %62

62:                                               ; preds = %58
  %63 = tail call i64 @lsame_(ptr noundef %9, ptr noundef nonnull @.str) #4
  %.not248 = icmp eq i64 %63, 0
  br i1 %.not248, label %.thread263.sink.split, label %.thread259

64:                                               ; preds = %58
  br i1 %61, label %65, label %.thread259

65:                                               ; preds = %64
  %66 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %66, ptr %27, align 8, !tbaa !5
  %.not249266 = icmp slt i64 %66, 1
  br i1 %.not249266, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %65
  %xtraiter = and i64 %66, 1
  %67 = icmp eq i64 %66, 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, 9223372036854775806
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %.0238269 = phi float [ 0.000000e+00, %.lr.ph.preheader.new ], [ %79, %.lr.ph ]
  %.0239268 = phi float [ %36, %.lr.ph.preheader.new ], [ %77, %.lr.ph ]
  %.0240267 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %80, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %68 = getelementptr inbounds float, ptr %31, i64 %.0240267
  %69 = load float, ptr %68, align 4, !tbaa !10
  %70 = fcmp ole float %.0239268, %69
  %71 = select i1 %70, float %.0239268, float %69
  %72 = fcmp oge float %.0238269, %69
  %73 = select i1 %72, float %.0238269, float %69
  %74 = getelementptr float, ptr %10, i64 %.0240267
  %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
  %80 = add nuw i64 %.0240267, 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 ]
  %.0238269.unr = phi float [ 0.000000e+00, %.lr.ph.preheader ], [ %79, %.lr.ph ]
  %.0239268.unr = phi float [ %36, %.lr.ph.preheader ], [ %77, %.lr.ph ]
  %.0240267.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %80, %.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
  %81 = getelementptr inbounds float, ptr %31, i64 %.0240267.unr
  %82 = load float, ptr %81, align 4, !tbaa !10
  %83 = fcmp ole float %.0239268.unr, %82
  %84 = select i1 %83, float %.0239268.unr, float %82
  %85 = fcmp oge float %.0238269.unr, %82
  %86 = select i1 %85, float %.0238269.unr, float %82
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.loopexit.unr-lcssa, %65
  %.0239.lcssa = phi float [ %36, %65 ], [ %.lcssa276.ph, %._crit_edge.loopexit.unr-lcssa ], [ %84, %.lr.ph.epil ]
  %.0238.lcssa = phi float [ 0.000000e+00, %65 ], [ %.lcssa.ph, %._crit_edge.loopexit.unr-lcssa ], [ %86, %.lr.ph.epil ]
  %87 = fcmp ugt float %.0239.lcssa, 0.000000e+00
  br i1 %87, label %88, label %.thread263.sink.split

88:                                               ; preds = %._crit_edge
  %89 = icmp sgt i64 %66, 0
  br i1 %89, label %90, label %96

90:                                               ; preds = %88
  %91 = fcmp oge float %.0239.lcssa, %35
  %92 = select i1 %91, float %.0239.lcssa, float %35
  %93 = fcmp ole float %.0238.lcssa, %36
  %94 = select i1 %93, float %.0238.lcssa, float %36
  %95 = fdiv float %92, %94
  store float %95, ptr %29, align 4, !tbaa !10
  br label %.thread259

96:                                               ; preds = %88
  store float 1.000000e+00, ptr %29, align 4, !tbaa !10
  br label %.thread259

.thread259:                                       ; preds = %62, %96, %90, %64
  %.pr = load i64, ptr %25, align 8, !tbaa !5
  %97 = icmp eq i64 %.pr, 0
  br i1 %97, label %98, label %.thread263

98:                                               ; preds = %.thread259
  %99 = load i64, ptr %12, align 8, !tbaa !5
  %100 = load i64, ptr %2, align 8, !tbaa !5
  %spec.select253 = tail call i64 @llvm.smax.i64(i64 %100, i64 1)
  %101 = icmp slt i64 %99, %spec.select253
  br i1 %101, label %.thread263.sink.split, label %102

102:                                              ; preds = %98
  %103 = load i64, ptr %14, align 8, !tbaa !5
  %104 = icmp slt i64 %103, %spec.select253
  br i1 %104, label %.thread263.sink.split, label %108

.thread263.sink.split:                            ; preds = %102, %98, %._crit_edge, %62, %55, %52, %49, %46, %44, %39
  %.sink = phi i64 [ -1, %39 ], [ -2, %44 ], [ -3, %46 ], [ -4, %49 ], [ -6, %52 ], [ -8, %55 ], [ -9, %62 ], [ -10, %._crit_edge ], [ -12, %98 ], [ -14, %102 ]
  store i64 %.sink, ptr %25, align 8, !tbaa !5
  br label %.thread263

.thread263:                                       ; preds = %.thread263.sink.split, %.thread259
  %105 = phi i64 [ %.pr, %.thread259 ], [ %.sink, %.thread263.sink.split ]
  %106 = sub nsw i64 0, %105
  store i64 %106, ptr %27, align 8, !tbaa !5
  %107 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %27) #4
  br label %145

108:                                              ; preds = %102
  br i1 %38, label %109, label %116

109:                                              ; preds = %108
  %110 = call i32 @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
  %111 = load i64, ptr %30, align 8, !tbaa !5
  %112 = icmp eq i64 %111, 0
  br i1 %112, label %113, label %116

113:                                              ; preds = %109
  %114 = call i32 @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
  %115 = call i64 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.3) #4
  br label %116

116:                                              ; preds = %109, %113, %108
  %.1 = phi i64 [ %115, %113 ], [ %.0237258, %109 ], [ %.0237258, %108 ]
  %.not251 = icmp eq i64 %.1, 0
  br i1 %.not251, label %119, label %117

117:                                              ; preds = %116
  %118 = call i32 @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12) #4
  br label %119

119:                                              ; preds = %117, %116
  br i1 %or.cond, label %120, label %._crit_edge272

._crit_edge272:                                   ; preds = %119
  %.pre = load i64, ptr %2, align 8, !tbaa !5
  br label %133

120:                                              ; preds = %119
  %121 = call i32 @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
  %122 = load i64, ptr %2, align 8, !tbaa !5
  %123 = icmp slt i64 %122, 2
  %124 = mul nuw nsw i64 %122, 5
  %spec.select255 = select i1 %123, i64 5, i64 %124
  store i64 %spec.select255, ptr %27, align 8, !tbaa !5
  %125 = call i32 @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
  %126 = load i64, ptr %25, align 8, !tbaa !5
  %127 = icmp sgt i64 %126, 0
  %.pre273 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %127, label %128, label %133

128:                                              ; preds = %120
  %129 = icmp sgt i64 %.pre273, 0
  br i1 %129, label %130, label %145

130:                                              ; preds = %128
  %131 = call double @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, i64 noundef 1) #4
  %132 = fptrunc double %131 to float
  store float %132, ptr %16, align 4, !tbaa !10
  br label %145

133:                                              ; preds = %._crit_edge272, %120
  %134 = phi i64 [ %.pre, %._crit_edge272 ], [ %.pre273, %120 ]
  %135 = icmp sgt i64 %134, 0
  br i1 %135, label %136, label %139

136:                                              ; preds = %133
  %137 = call double @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, i64 noundef 1) #4
  %138 = fptrunc double %137 to float
  store float %138, ptr %16, align 4, !tbaa !10
  br label %139

139:                                              ; preds = %136, %133
  %140 = call i32 @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
  %141 = call i32 @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
  %142 = call i32 @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 %.not251, label %145, label %143

143:                                              ; preds = %139
  %144 = call i32 @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %10, ptr noundef %13, ptr noundef nonnull %14) #4
  br label %145

145:                                              ; preds = %139, %143, %128, %130, %.thread263
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr nonnull %27) #4
  ret i32 0
}

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

declare double @cla_herpvgrw__(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

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

declare i32 @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 i64 @llvm.umax.i64(i64, i64) #3

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

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

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

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


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