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

; 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 [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b2 = external hidden global %struct.complex, align 4
@c_b1 = external hidden global %struct.complex, align 4

; Function Attrs: nounwind uwtable
define dso_local void @chbgvx_(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 [1 x i8], align 1
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca [1 x i8], align 1
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca float, align 4
  %86 = 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 1, 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 1, 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
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #3
  %87 = load ptr, ptr %34, align 8, !tbaa !5
  %88 = load i32, ptr %87, align 4, !tbaa !9
  store i32 %88, ptr %53, align 4, !tbaa !9
  %89 = load i32, ptr %53, align 4, !tbaa !9
  %90 = mul nsw i32 %89, 1
  %91 = add nsw i32 1, %90
  store i32 %91, ptr %54, align 4, !tbaa !9
  %92 = load i32, ptr %54, align 4, !tbaa !9
  %93 = load ptr, ptr %33, align 8, !tbaa !5
  %94 = sext i32 %92 to i64
  %95 = sub i64 0, %94
  %96 = getelementptr inbounds %struct.complex, ptr %93, i64 %95
  store ptr %96, ptr %33, align 8, !tbaa !5
  %97 = load ptr, ptr %36, align 8, !tbaa !5
  %98 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %98, ptr %55, align 4, !tbaa !9
  %99 = load i32, ptr %55, align 4, !tbaa !9
  %100 = mul nsw i32 %99, 1
  %101 = add nsw i32 1, %100
  store i32 %101, ptr %56, align 4, !tbaa !9
  %102 = load i32, ptr %56, align 4, !tbaa !9
  %103 = load ptr, ptr %35, align 8, !tbaa !5
  %104 = sext i32 %102 to i64
  %105 = sub i64 0, %104
  %106 = getelementptr inbounds %struct.complex, ptr %103, i64 %105
  store ptr %106, ptr %35, align 8, !tbaa !5
  %107 = load ptr, ptr %38, align 8, !tbaa !5
  %108 = load i32, ptr %107, align 4, !tbaa !9
  store i32 %108, ptr %57, align 4, !tbaa !9
  %109 = load i32, ptr %57, align 4, !tbaa !9
  %110 = mul nsw i32 %109, 1
  %111 = add nsw i32 1, %110
  store i32 %111, ptr %58, align 4, !tbaa !9
  %112 = load i32, ptr %58, align 4, !tbaa !9
  %113 = load ptr, ptr %37, align 8, !tbaa !5
  %114 = sext i32 %112 to i64
  %115 = sub i64 0, %114
  %116 = getelementptr inbounds %struct.complex, ptr %113, i64 %115
  store ptr %116, ptr %37, align 8, !tbaa !5
  %117 = load ptr, ptr %45, align 8, !tbaa !5
  %118 = getelementptr inbounds float, ptr %117, i32 -1
  store ptr %118, ptr %45, align 8, !tbaa !5
  %119 = load ptr, ptr %47, align 8, !tbaa !5
  %120 = load i32, ptr %119, align 4, !tbaa !9
  store i32 %120, ptr %59, align 4, !tbaa !9
  %121 = load i32, ptr %59, align 4, !tbaa !9
  %122 = mul nsw i32 %121, 1
  %123 = add nsw i32 1, %122
  store i32 %123, ptr %60, align 4, !tbaa !9
  %124 = load i32, ptr %60, align 4, !tbaa !9
  %125 = load ptr, ptr %46, align 8, !tbaa !5
  %126 = sext i32 %124 to i64
  %127 = sub i64 0, %126
  %128 = getelementptr inbounds %struct.complex, ptr %125, i64 %127
  store ptr %128, ptr %46, align 8, !tbaa !5
  %129 = load ptr, ptr %48, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.complex, ptr %129, i32 -1
  store ptr %130, ptr %48, align 8, !tbaa !5
  %131 = load ptr, ptr %49, align 8, !tbaa !5
  %132 = getelementptr inbounds float, ptr %131, i32 -1
  store ptr %132, ptr %49, align 8, !tbaa !5
  %133 = load ptr, ptr %50, align 8, !tbaa !5
  %134 = getelementptr inbounds i32, ptr %133, i32 -1
  store ptr %134, ptr %50, align 8, !tbaa !5
  %135 = load ptr, ptr %51, align 8, !tbaa !5
  %136 = getelementptr inbounds i32, ptr %135, i32 -1
  store ptr %136, ptr %51, align 8, !tbaa !5
  %137 = load ptr, ptr %27, align 8, !tbaa !5
  %138 = call i32 @lsame_(ptr noundef %137, ptr noundef @.str)
  store i32 %138, ptr %74, align 4, !tbaa !9
  %139 = load ptr, ptr %29, align 8, !tbaa !5
  %140 = call i32 @lsame_(ptr noundef %139, ptr noundef @.str.1)
  store i32 %140, ptr %73, align 4, !tbaa !9
  %141 = load ptr, ptr %28, align 8, !tbaa !5
  %142 = call i32 @lsame_(ptr noundef %141, ptr noundef @.str.2)
  store i32 %142, ptr %76, align 4, !tbaa !9
  %143 = load ptr, ptr %28, align 8, !tbaa !5
  %144 = call i32 @lsame_(ptr noundef %143, ptr noundef @.str)
  store i32 %144, ptr %79, align 4, !tbaa !9
  %145 = load ptr, ptr %28, align 8, !tbaa !5
  %146 = call i32 @lsame_(ptr noundef %145, ptr noundef @.str.3)
  store i32 %146, ptr %77, align 4, !tbaa !9
  %147 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 0, ptr %147, align 4, !tbaa !9
  %148 = load i32, ptr %74, align 4, !tbaa !9
  %149 = icmp ne i32 %148, 0
  br i1 %149, label %156, label %150

150:                                              ; preds = %26
  %151 = load ptr, ptr %27, align 8, !tbaa !5
  %152 = call i32 @lsame_(ptr noundef %151, ptr noundef @.str.4)
  %153 = icmp ne i32 %152, 0
  br i1 %153, label %156, label %154

154:                                              ; preds = %150
  %155 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -1, ptr %155, align 4, !tbaa !9
  br label %308

156:                                              ; preds = %150, %26
  %157 = load i32, ptr %76, align 4, !tbaa !9
  %158 = icmp ne i32 %157, 0
  br i1 %158, label %167, label %159

159:                                              ; preds = %156
  %160 = load i32, ptr %79, align 4, !tbaa !9
  %161 = icmp ne i32 %160, 0
  br i1 %161, label %167, label %162

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

165:                                              ; preds = %162
  %166 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -2, ptr %166, align 4, !tbaa !9
  br label %307

167:                                              ; preds = %162, %159, %156
  %168 = load i32, ptr %73, align 4, !tbaa !9
  %169 = icmp ne i32 %168, 0
  br i1 %169, label %176, label %170

170:                                              ; preds = %167
  %171 = load ptr, ptr %29, align 8, !tbaa !5
  %172 = call i32 @lsame_(ptr noundef %171, ptr noundef @.str.5)
  %173 = icmp ne i32 %172, 0
  br i1 %173, label %176, label %174

174:                                              ; preds = %170
  %175 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -3, ptr %175, align 4, !tbaa !9
  br label %306

176:                                              ; preds = %170, %167
  %177 = load ptr, ptr %30, align 8, !tbaa !5
  %178 = load i32, ptr %177, align 4, !tbaa !9
  %179 = icmp slt i32 %178, 0
  br i1 %179, label %180, label %182

180:                                              ; preds = %176
  %181 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -4, ptr %181, align 4, !tbaa !9
  br label %305

182:                                              ; preds = %176
  %183 = load ptr, ptr %31, align 8, !tbaa !5
  %184 = load i32, ptr %183, align 4, !tbaa !9
  %185 = icmp slt i32 %184, 0
  br i1 %185, label %186, label %188

186:                                              ; preds = %182
  %187 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -5, ptr %187, align 4, !tbaa !9
  br label %304

188:                                              ; preds = %182
  %189 = load ptr, ptr %32, align 8, !tbaa !5
  %190 = load i32, ptr %189, align 4, !tbaa !9
  %191 = icmp slt i32 %190, 0
  br i1 %191, label %198, label %192

192:                                              ; preds = %188
  %193 = load ptr, ptr %32, align 8, !tbaa !5
  %194 = load i32, ptr %193, align 4, !tbaa !9
  %195 = load ptr, ptr %31, align 8, !tbaa !5
  %196 = load i32, ptr %195, align 4, !tbaa !9
  %197 = icmp sgt i32 %194, %196
  br i1 %197, label %198, label %200

198:                                              ; preds = %192, %188
  %199 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -6, ptr %199, align 4, !tbaa !9
  br label %303

200:                                              ; preds = %192
  %201 = load ptr, ptr %34, align 8, !tbaa !5
  %202 = load i32, ptr %201, align 4, !tbaa !9
  %203 = load ptr, ptr %31, align 8, !tbaa !5
  %204 = load i32, ptr %203, align 4, !tbaa !9
  %205 = add nsw i32 %204, 1
  %206 = icmp slt i32 %202, %205
  br i1 %206, label %207, label %209

207:                                              ; preds = %200
  %208 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -8, ptr %208, align 4, !tbaa !9
  br label %302

209:                                              ; preds = %200
  %210 = load ptr, ptr %36, align 8, !tbaa !5
  %211 = load i32, ptr %210, align 4, !tbaa !9
  %212 = load ptr, ptr %32, align 8, !tbaa !5
  %213 = load i32, ptr %212, align 4, !tbaa !9
  %214 = add nsw i32 %213, 1
  %215 = icmp slt i32 %211, %214
  br i1 %215, label %216, label %218

216:                                              ; preds = %209
  %217 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -10, ptr %217, align 4, !tbaa !9
  br label %301

218:                                              ; preds = %209
  %219 = load ptr, ptr %38, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = icmp slt i32 %220, 1
  br i1 %221, label %231, label %222

222:                                              ; preds = %218
  %223 = load i32, ptr %74, align 4, !tbaa !9
  %224 = icmp ne i32 %223, 0
  br i1 %224, label %225, label %233

225:                                              ; preds = %222
  %226 = load ptr, ptr %38, align 8, !tbaa !5
  %227 = load i32, ptr %226, align 4, !tbaa !9
  %228 = load ptr, ptr %30, align 8, !tbaa !5
  %229 = load i32, ptr %228, align 4, !tbaa !9
  %230 = icmp slt i32 %227, %229
  br i1 %230, label %231, label %233

231:                                              ; preds = %225, %218
  %232 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -12, ptr %232, align 4, !tbaa !9
  br label %300

233:                                              ; preds = %225, %222
  %234 = load i32, ptr %79, align 4, !tbaa !9
  %235 = icmp ne i32 %234, 0
  br i1 %235, label %236, label %249

236:                                              ; preds = %233
  %237 = load ptr, ptr %30, align 8, !tbaa !5
  %238 = load i32, ptr %237, align 4, !tbaa !9
  %239 = icmp sgt i32 %238, 0
  br i1 %239, label %240, label %248

240:                                              ; preds = %236
  %241 = load ptr, ptr %40, align 8, !tbaa !5
  %242 = load float, ptr %241, align 4, !tbaa !11
  %243 = load ptr, ptr %39, align 8, !tbaa !5
  %244 = load float, ptr %243, align 4, !tbaa !11
  %245 = fcmp ole float %242, %244
  br i1 %245, label %246, label %248

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

248:                                              ; preds = %246, %240, %236
  br label %299

249:                                              ; preds = %233
  %250 = load i32, ptr %77, align 4, !tbaa !9
  %251 = icmp ne i32 %250, 0
  br i1 %251, label %252, label %298

252:                                              ; preds = %249
  %253 = load ptr, ptr %41, align 8, !tbaa !5
  %254 = load i32, ptr %253, align 4, !tbaa !9
  %255 = icmp slt i32 %254, 1
  br i1 %255, label %269, label %256

256:                                              ; preds = %252
  %257 = load ptr, ptr %41, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = load ptr, ptr %30, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp sge i32 1, %260
  br i1 %261, label %262, label %263

262:                                              ; preds = %256
  br label %266

263:                                              ; preds = %256
  %264 = load ptr, ptr %30, align 8, !tbaa !5
  %265 = load i32, ptr %264, align 4, !tbaa !9
  br label %266

266:                                              ; preds = %263, %262
  %267 = phi i32 [ 1, %262 ], [ %265, %263 ]
  %268 = icmp sgt i32 %258, %267
  br i1 %268, label %269, label %271

269:                                              ; preds = %266, %252
  %270 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -15, ptr %270, align 4, !tbaa !9
  br label %297

271:                                              ; preds = %266
  %272 = load ptr, ptr %42, align 8, !tbaa !5
  %273 = load i32, ptr %272, align 4, !tbaa !9
  %274 = load ptr, ptr %30, align 8, !tbaa !5
  %275 = load i32, ptr %274, align 4, !tbaa !9
  %276 = load ptr, ptr %41, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  %278 = icmp sle i32 %275, %277
  br i1 %278, label %279, label %282

279:                                              ; preds = %271
  %280 = load ptr, ptr %30, align 8, !tbaa !5
  %281 = load i32, ptr %280, align 4, !tbaa !9
  br label %285

282:                                              ; preds = %271
  %283 = load ptr, ptr %41, align 8, !tbaa !5
  %284 = load i32, ptr %283, align 4, !tbaa !9
  br label %285

285:                                              ; preds = %282, %279
  %286 = phi i32 [ %281, %279 ], [ %284, %282 ]
  %287 = icmp slt i32 %273, %286
  br i1 %287, label %294, label %288

288:                                              ; preds = %285
  %289 = load ptr, ptr %42, align 8, !tbaa !5
  %290 = load i32, ptr %289, align 4, !tbaa !9
  %291 = load ptr, ptr %30, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = icmp sgt i32 %290, %292
  br i1 %293, label %294, label %296

294:                                              ; preds = %288, %285
  %295 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -16, ptr %295, align 4, !tbaa !9
  br label %296

296:                                              ; preds = %294, %288
  br label %297

297:                                              ; preds = %296, %269
  br label %298

298:                                              ; preds = %297, %249
  br label %299

299:                                              ; preds = %298, %248
  br label %300

300:                                              ; preds = %299, %231
  br label %301

301:                                              ; preds = %300, %216
  br label %302

302:                                              ; preds = %301, %207
  br label %303

303:                                              ; preds = %302, %198
  br label %304

304:                                              ; preds = %303, %186
  br label %305

305:                                              ; preds = %304, %180
  br label %306

306:                                              ; preds = %305, %174
  br label %307

307:                                              ; preds = %306, %165
  br label %308

308:                                              ; preds = %307, %154
  %309 = load ptr, ptr %52, align 8, !tbaa !5
  %310 = load i32, ptr %309, align 4, !tbaa !9
  %311 = icmp eq i32 %310, 0
  br i1 %311, label %312, label %328

312:                                              ; preds = %308
  %313 = load ptr, ptr %47, align 8, !tbaa !5
  %314 = load i32, ptr %313, align 4, !tbaa !9
  %315 = icmp slt i32 %314, 1
  br i1 %315, label %325, label %316

316:                                              ; preds = %312
  %317 = load i32, ptr %74, align 4, !tbaa !9
  %318 = icmp ne i32 %317, 0
  br i1 %318, label %319, label %327

319:                                              ; preds = %316
  %320 = load ptr, ptr %47, align 8, !tbaa !5
  %321 = load i32, ptr %320, align 4, !tbaa !9
  %322 = load ptr, ptr %30, align 8, !tbaa !5
  %323 = load i32, ptr %322, align 4, !tbaa !9
  %324 = icmp slt i32 %321, %323
  br i1 %324, label %325, label %327

325:                                              ; preds = %319, %312
  %326 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -21, ptr %326, align 4, !tbaa !9
  br label %327

327:                                              ; preds = %325, %319, %316
  br label %328

328:                                              ; preds = %327, %308
  %329 = load ptr, ptr %52, align 8, !tbaa !5
  %330 = load i32, ptr %329, align 4, !tbaa !9
  %331 = icmp ne i32 %330, 0
  br i1 %331, label %332, label %337

332:                                              ; preds = %328
  %333 = load ptr, ptr %52, align 8, !tbaa !5
  %334 = load i32, ptr %333, align 4, !tbaa !9
  %335 = sub nsw i32 0, %334
  store i32 %335, ptr %61, align 4, !tbaa !9
  %336 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %61, i32 noundef 6)
  store i32 1, ptr %86, align 4
  br label %816

337:                                              ; preds = %328
  %338 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 0, ptr %338, align 4, !tbaa !9
  %339 = load ptr, ptr %30, align 8, !tbaa !5
  %340 = load i32, ptr %339, align 4, !tbaa !9
  %341 = icmp eq i32 %340, 0
  br i1 %341, label %342, label %343

342:                                              ; preds = %337
  store i32 1, ptr %86, align 4
  br label %816

343:                                              ; preds = %337
  %344 = load ptr, ptr %29, align 8, !tbaa !5
  %345 = load ptr, ptr %30, align 8, !tbaa !5
  %346 = load ptr, ptr %32, align 8, !tbaa !5
  %347 = load ptr, ptr %35, align 8, !tbaa !5
  %348 = load i32, ptr %56, align 4, !tbaa !9
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds %struct.complex, ptr %347, i64 %349
  %351 = load ptr, ptr %36, align 8, !tbaa !5
  %352 = load ptr, ptr %52, align 8, !tbaa !5
  call void @cpbstf_(ptr noundef %344, ptr noundef %345, ptr noundef %346, ptr noundef %350, ptr noundef %351, ptr noundef %352)
  %353 = load ptr, ptr %52, align 8, !tbaa !5
  %354 = load i32, ptr %353, align 4, !tbaa !9
  %355 = icmp ne i32 %354, 0
  br i1 %355, label %356, label %363

356:                                              ; preds = %343
  %357 = load ptr, ptr %30, align 8, !tbaa !5
  %358 = load i32, ptr %357, align 4, !tbaa !9
  %359 = load ptr, ptr %52, align 8, !tbaa !5
  %360 = load i32, ptr %359, align 4, !tbaa !9
  %361 = add nsw i32 %358, %360
  %362 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 %361, ptr %362, align 4, !tbaa !9
  store i32 1, ptr %86, align 4
  br label %816

363:                                              ; preds = %343
  %364 = load ptr, ptr %27, align 8, !tbaa !5
  %365 = load ptr, ptr %29, align 8, !tbaa !5
  %366 = load ptr, ptr %30, align 8, !tbaa !5
  %367 = load ptr, ptr %31, align 8, !tbaa !5
  %368 = load ptr, ptr %32, align 8, !tbaa !5
  %369 = load ptr, ptr %33, align 8, !tbaa !5
  %370 = load i32, ptr %54, align 4, !tbaa !9
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds %struct.complex, ptr %369, i64 %371
  %373 = load ptr, ptr %34, align 8, !tbaa !5
  %374 = load ptr, ptr %35, align 8, !tbaa !5
  %375 = load i32, ptr %56, align 4, !tbaa !9
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds %struct.complex, ptr %374, i64 %376
  %378 = load ptr, ptr %36, align 8, !tbaa !5
  %379 = load ptr, ptr %37, align 8, !tbaa !5
  %380 = load i32, ptr %58, align 4, !tbaa !9
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds %struct.complex, ptr %379, i64 %381
  %383 = load ptr, ptr %38, align 8, !tbaa !5
  %384 = load ptr, ptr %48, align 8, !tbaa !5
  %385 = getelementptr inbounds %struct.complex, ptr %384, i64 1
  %386 = load ptr, ptr %49, align 8, !tbaa !5
  %387 = getelementptr inbounds float, ptr %386, i64 1
  call void @chbgst_(ptr noundef %364, ptr noundef %365, ptr noundef %366, ptr noundef %367, ptr noundef %368, ptr noundef %372, ptr noundef %373, ptr noundef %377, ptr noundef %378, ptr noundef %382, ptr noundef %383, ptr noundef %385, ptr noundef %387, ptr noundef %71)
  store i32 1, ptr %63, align 4, !tbaa !9
  %388 = load i32, ptr %63, align 4, !tbaa !9
  %389 = load ptr, ptr %30, align 8, !tbaa !5
  %390 = load i32, ptr %389, align 4, !tbaa !9
  %391 = add nsw i32 %388, %390
  store i32 %391, ptr %64, align 4, !tbaa !9
  %392 = load i32, ptr %64, align 4, !tbaa !9
  %393 = load ptr, ptr %30, align 8, !tbaa !5
  %394 = load i32, ptr %393, align 4, !tbaa !9
  %395 = add nsw i32 %392, %394
  store i32 %395, ptr %82, align 4, !tbaa !9
  store i32 1, ptr %83, align 4, !tbaa !9
  %396 = load i32, ptr %74, align 4, !tbaa !9
  %397 = icmp ne i32 %396, 0
  br i1 %397, label %398, label %400

398:                                              ; preds = %363
  %399 = getelementptr inbounds [1 x i8], ptr %65, i64 0, i64 0
  store i8 85, ptr %399, align 1, !tbaa !13
  br label %402

400:                                              ; preds = %363
  %401 = getelementptr inbounds [1 x i8], ptr %65, i64 0, i64 0
  store i8 78, ptr %401, align 1, !tbaa !13
  br label %402

402:                                              ; preds = %400, %398
  %403 = getelementptr inbounds [1 x i8], ptr %65, i64 0, i64 0
  %404 = load ptr, ptr %29, align 8, !tbaa !5
  %405 = load ptr, ptr %30, align 8, !tbaa !5
  %406 = load ptr, ptr %31, align 8, !tbaa !5
  %407 = load ptr, ptr %33, align 8, !tbaa !5
  %408 = load i32, ptr %54, align 4, !tbaa !9
  %409 = sext i32 %408 to i64
  %410 = getelementptr inbounds %struct.complex, ptr %407, i64 %409
  %411 = load ptr, ptr %34, align 8, !tbaa !5
  %412 = load ptr, ptr %49, align 8, !tbaa !5
  %413 = load i32, ptr %63, align 4, !tbaa !9
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds float, ptr %412, i64 %414
  %416 = load ptr, ptr %49, align 8, !tbaa !5
  %417 = load i32, ptr %64, align 4, !tbaa !9
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds float, ptr %416, i64 %418
  %420 = load ptr, ptr %37, align 8, !tbaa !5
  %421 = load i32, ptr %58, align 4, !tbaa !9
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds %struct.complex, ptr %420, i64 %422
  %424 = load ptr, ptr %38, align 8, !tbaa !5
  %425 = load ptr, ptr %48, align 8, !tbaa !5
  %426 = load i32, ptr %83, align 4, !tbaa !9
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds %struct.complex, ptr %425, i64 %427
  call void @chbtrd_(ptr noundef %403, ptr noundef %404, ptr noundef %405, ptr noundef %406, ptr noundef %410, ptr noundef %411, ptr noundef %415, ptr noundef %419, ptr noundef %423, ptr noundef %424, ptr noundef %428, ptr noundef %71)
  store i32 0, ptr %66, align 4, !tbaa !9
  %429 = load i32, ptr %77, align 4, !tbaa !9
  %430 = icmp ne i32 %429, 0
  br i1 %430, label %431, label %443

431:                                              ; preds = %402
  %432 = load ptr, ptr %41, align 8, !tbaa !5
  %433 = load i32, ptr %432, align 4, !tbaa !9
  %434 = icmp eq i32 %433, 1
  br i1 %434, label %435, label %442

435:                                              ; preds = %431
  %436 = load ptr, ptr %42, align 8, !tbaa !5
  %437 = load i32, ptr %436, align 4, !tbaa !9
  %438 = load ptr, ptr %30, align 8, !tbaa !5
  %439 = load i32, ptr %438, align 4, !tbaa !9
  %440 = icmp eq i32 %437, %439
  br i1 %440, label %441, label %442

441:                                              ; preds = %435
  store i32 1, ptr %66, align 4, !tbaa !9
  br label %442

442:                                              ; preds = %441, %435, %431
  br label %443

443:                                              ; preds = %442, %402
  %444 = load i32, ptr %76, align 4, !tbaa !9
  %445 = icmp ne i32 %444, 0
  br i1 %445, label %449, label %446

446:                                              ; preds = %443
  %447 = load i32, ptr %66, align 4, !tbaa !9
  %448 = icmp ne i32 %447, 0
  br i1 %448, label %449, label %549

449:                                              ; preds = %446, %443
  %450 = load ptr, ptr %43, align 8, !tbaa !5
  %451 = load float, ptr %450, align 4, !tbaa !11
  %452 = fcmp ole float %451, 0.000000e+00
  br i1 %452, label %453, label %549

453:                                              ; preds = %449
  %454 = load ptr, ptr %30, align 8, !tbaa !5
  %455 = load ptr, ptr %49, align 8, !tbaa !5
  %456 = load i32, ptr %63, align 4, !tbaa !9
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds float, ptr %455, i64 %457
  %459 = load ptr, ptr %45, align 8, !tbaa !5
  %460 = getelementptr inbounds float, ptr %459, i64 1
  call void @scopy_(ptr noundef %454, ptr noundef %458, ptr noundef @c__1, ptr noundef %460, ptr noundef @c__1)
  %461 = load i32, ptr %82, align 4, !tbaa !9
  %462 = load ptr, ptr %30, align 8, !tbaa !5
  %463 = load i32, ptr %462, align 4, !tbaa !9
  %464 = shl i32 %463, 1
  %465 = add nsw i32 %461, %464
  store i32 %465, ptr %70, align 4, !tbaa !9
  %466 = load ptr, ptr %30, align 8, !tbaa !5
  %467 = load i32, ptr %466, align 4, !tbaa !9
  %468 = sub nsw i32 %467, 1
  store i32 %468, ptr %61, align 4, !tbaa !9
  %469 = load ptr, ptr %49, align 8, !tbaa !5
  %470 = load i32, ptr %64, align 4, !tbaa !9
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds float, ptr %469, i64 %471
  %473 = load ptr, ptr %49, align 8, !tbaa !5
  %474 = load i32, ptr %70, align 4, !tbaa !9
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds float, ptr %473, i64 %475
  call void @scopy_(ptr noundef %61, ptr noundef %472, ptr noundef @c__1, ptr noundef %476, ptr noundef @c__1)
  %477 = load i32, ptr %74, align 4, !tbaa !9
  %478 = icmp ne i32 %477, 0
  br i1 %478, label %488, label %479

479:                                              ; preds = %453
  %480 = load ptr, ptr %30, align 8, !tbaa !5
  %481 = load ptr, ptr %45, align 8, !tbaa !5
  %482 = getelementptr inbounds float, ptr %481, i64 1
  %483 = load ptr, ptr %49, align 8, !tbaa !5
  %484 = load i32, ptr %70, align 4, !tbaa !9
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds float, ptr %483, i64 %485
  %487 = load ptr, ptr %52, align 8, !tbaa !5
  call void @ssterf_(ptr noundef %480, ptr noundef %482, ptr noundef %486, ptr noundef %487)
  br label %539

488:                                              ; preds = %453
  %489 = load ptr, ptr %30, align 8, !tbaa !5
  %490 = load ptr, ptr %30, align 8, !tbaa !5
  %491 = load ptr, ptr %37, align 8, !tbaa !5
  %492 = load i32, ptr %58, align 4, !tbaa !9
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds %struct.complex, ptr %491, i64 %493
  %495 = load ptr, ptr %38, align 8, !tbaa !5
  %496 = load ptr, ptr %46, align 8, !tbaa !5
  %497 = load i32, ptr %60, align 4, !tbaa !9
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds %struct.complex, ptr %496, i64 %498
  %500 = load ptr, ptr %47, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.2, ptr noundef %489, ptr noundef %490, ptr noundef %494, ptr noundef %495, ptr noundef %499, ptr noundef %500)
  %501 = load ptr, ptr %27, align 8, !tbaa !5
  %502 = load ptr, ptr %30, align 8, !tbaa !5
  %503 = load ptr, ptr %45, align 8, !tbaa !5
  %504 = getelementptr inbounds float, ptr %503, i64 1
  %505 = load ptr, ptr %49, align 8, !tbaa !5
  %506 = load i32, ptr %70, align 4, !tbaa !9
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds float, ptr %505, i64 %507
  %509 = load ptr, ptr %46, align 8, !tbaa !5
  %510 = load i32, ptr %60, align 4, !tbaa !9
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds %struct.complex, ptr %509, i64 %511
  %513 = load ptr, ptr %47, align 8, !tbaa !5
  %514 = load ptr, ptr %49, align 8, !tbaa !5
  %515 = load i32, ptr %82, align 4, !tbaa !9
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds float, ptr %514, i64 %516
  %518 = load ptr, ptr %52, align 8, !tbaa !5
  call void @csteqr_(ptr noundef %501, ptr noundef %502, ptr noundef %504, ptr noundef %508, ptr noundef %512, ptr noundef %513, ptr noundef %517, ptr noundef %518)
  %519 = load ptr, ptr %52, align 8, !tbaa !5
  %520 = load i32, ptr %519, align 4, !tbaa !9
  %521 = icmp eq i32 %520, 0
  br i1 %521, label %522, label %538

522:                                              ; preds = %488
  %523 = load ptr, ptr %30, align 8, !tbaa !5
  %524 = load i32, ptr %523, align 4, !tbaa !9
  store i32 %524, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %525

525:                                              ; preds = %534, %522
  %526 = load i32, ptr %68, align 4, !tbaa !9
  %527 = load i32, ptr %61, align 4, !tbaa !9
  %528 = icmp sle i32 %526, %527
  br i1 %528, label %529, label %537

529:                                              ; preds = %525
  %530 = load ptr, ptr %51, align 8, !tbaa !5
  %531 = load i32, ptr %68, align 4, !tbaa !9
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds i32, ptr %530, i64 %532
  store i32 0, ptr %533, align 4, !tbaa !9
  br label %534

534:                                              ; preds = %529
  %535 = load i32, ptr %68, align 4, !tbaa !9
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr %68, align 4, !tbaa !9
  br label %525, !llvm.loop !14

537:                                              ; preds = %525
  br label %538

538:                                              ; preds = %537, %488
  br label %539

539:                                              ; preds = %538, %479
  %540 = load ptr, ptr %52, align 8, !tbaa !5
  %541 = load i32, ptr %540, align 4, !tbaa !9
  %542 = icmp eq i32 %541, 0
  br i1 %542, label %543, label %547

543:                                              ; preds = %539
  %544 = load ptr, ptr %30, align 8, !tbaa !5
  %545 = load i32, ptr %544, align 4, !tbaa !9
  %546 = load ptr, ptr %44, align 8, !tbaa !5
  store i32 %545, ptr %546, align 4, !tbaa !9
  br label %678

547:                                              ; preds = %539
  %548 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 0, ptr %548, align 4, !tbaa !9
  br label %549

549:                                              ; preds = %547, %449, %446
  %550 = load i32, ptr %74, align 4, !tbaa !9
  %551 = icmp ne i32 %550, 0
  br i1 %551, label %552, label %554

552:                                              ; preds = %549
  %553 = getelementptr inbounds [1 x i8], ptr %72, i64 0, i64 0
  store i8 66, ptr %553, align 1, !tbaa !13
  br label %556

554:                                              ; preds = %549
  %555 = getelementptr inbounds [1 x i8], ptr %72, i64 0, i64 0
  store i8 69, ptr %555, align 1, !tbaa !13
  br label %556

556:                                              ; preds = %554, %552
  store i32 1, ptr %78, align 4, !tbaa !9
  %557 = load i32, ptr %78, align 4, !tbaa !9
  %558 = load ptr, ptr %30, align 8, !tbaa !5
  %559 = load i32, ptr %558, align 4, !tbaa !9
  %560 = add nsw i32 %557, %559
  store i32 %560, ptr %81, align 4, !tbaa !9
  %561 = load i32, ptr %81, align 4, !tbaa !9
  %562 = load ptr, ptr %30, align 8, !tbaa !5
  %563 = load i32, ptr %562, align 4, !tbaa !9
  %564 = add nsw i32 %561, %563
  store i32 %564, ptr %80, align 4, !tbaa !9
  %565 = load ptr, ptr %28, align 8, !tbaa !5
  %566 = getelementptr inbounds [1 x i8], ptr %72, i64 0, i64 0
  %567 = load ptr, ptr %30, align 8, !tbaa !5
  %568 = load ptr, ptr %39, align 8, !tbaa !5
  %569 = load ptr, ptr %40, align 8, !tbaa !5
  %570 = load ptr, ptr %41, align 8, !tbaa !5
  %571 = load ptr, ptr %42, align 8, !tbaa !5
  %572 = load ptr, ptr %43, align 8, !tbaa !5
  %573 = load ptr, ptr %49, align 8, !tbaa !5
  %574 = load i32, ptr %63, align 4, !tbaa !9
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds float, ptr %573, i64 %575
  %577 = load ptr, ptr %49, align 8, !tbaa !5
  %578 = load i32, ptr %64, align 4, !tbaa !9
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %577, i64 %579
  %581 = load ptr, ptr %44, align 8, !tbaa !5
  %582 = load ptr, ptr %45, align 8, !tbaa !5
  %583 = getelementptr inbounds float, ptr %582, i64 1
  %584 = load ptr, ptr %50, align 8, !tbaa !5
  %585 = load i32, ptr %78, align 4, !tbaa !9
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds i32, ptr %584, i64 %586
  %588 = load ptr, ptr %50, align 8, !tbaa !5
  %589 = load i32, ptr %81, align 4, !tbaa !9
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds i32, ptr %588, i64 %590
  %592 = load ptr, ptr %49, align 8, !tbaa !5
  %593 = load i32, ptr %82, align 4, !tbaa !9
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %592, i64 %594
  %596 = load ptr, ptr %50, align 8, !tbaa !5
  %597 = load i32, ptr %80, align 4, !tbaa !9
  %598 = sext i32 %597 to i64
  %599 = getelementptr inbounds i32, ptr %596, i64 %598
  %600 = load ptr, ptr %52, align 8, !tbaa !5
  call void @sstebz_(ptr noundef %565, ptr noundef %566, ptr noundef %567, ptr noundef %568, ptr noundef %569, ptr noundef %570, ptr noundef %571, ptr noundef %572, ptr noundef %576, ptr noundef %580, ptr noundef %581, ptr noundef %84, ptr noundef %583, ptr noundef %587, ptr noundef %591, ptr noundef %595, ptr noundef %599, ptr noundef %600)
  %601 = load i32, ptr %74, align 4, !tbaa !9
  %602 = icmp ne i32 %601, 0
  br i1 %602, label %603, label %677

603:                                              ; preds = %556
  %604 = load ptr, ptr %30, align 8, !tbaa !5
  %605 = load ptr, ptr %49, align 8, !tbaa !5
  %606 = load i32, ptr %63, align 4, !tbaa !9
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds float, ptr %605, i64 %607
  %609 = load ptr, ptr %49, align 8, !tbaa !5
  %610 = load i32, ptr %64, align 4, !tbaa !9
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds float, ptr %609, i64 %611
  %613 = load ptr, ptr %44, align 8, !tbaa !5
  %614 = load ptr, ptr %45, align 8, !tbaa !5
  %615 = getelementptr inbounds float, ptr %614, i64 1
  %616 = load ptr, ptr %50, align 8, !tbaa !5
  %617 = load i32, ptr %78, align 4, !tbaa !9
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds i32, ptr %616, i64 %618
  %620 = load ptr, ptr %50, align 8, !tbaa !5
  %621 = load i32, ptr %81, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds i32, ptr %620, i64 %622
  %624 = load ptr, ptr %46, align 8, !tbaa !5
  %625 = load i32, ptr %60, align 4, !tbaa !9
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds %struct.complex, ptr %624, i64 %626
  %628 = load ptr, ptr %47, align 8, !tbaa !5
  %629 = load ptr, ptr %49, align 8, !tbaa !5
  %630 = load i32, ptr %82, align 4, !tbaa !9
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds float, ptr %629, i64 %631
  %633 = load ptr, ptr %50, align 8, !tbaa !5
  %634 = load i32, ptr %80, align 4, !tbaa !9
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds i32, ptr %633, i64 %635
  %637 = load ptr, ptr %51, align 8, !tbaa !5
  %638 = getelementptr inbounds i32, ptr %637, i64 1
  %639 = load ptr, ptr %52, align 8, !tbaa !5
  call void @cstein_(ptr noundef %604, ptr noundef %608, ptr noundef %612, ptr noundef %613, ptr noundef %615, ptr noundef %619, ptr noundef %623, ptr noundef %627, ptr noundef %628, ptr noundef %632, ptr noundef %636, ptr noundef %638, ptr noundef %639)
  %640 = load ptr, ptr %44, align 8, !tbaa !5
  %641 = load i32, ptr %640, align 4, !tbaa !9
  store i32 %641, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %642

642:                                              ; preds = %673, %603
  %643 = load i32, ptr %69, align 4, !tbaa !9
  %644 = load i32, ptr %61, align 4, !tbaa !9
  %645 = icmp sle i32 %643, %644
  br i1 %645, label %646, label %676

646:                                              ; preds = %642
  %647 = load ptr, ptr %30, align 8, !tbaa !5
  %648 = load ptr, ptr %46, align 8, !tbaa !5
  %649 = load i32, ptr %69, align 4, !tbaa !9
  %650 = load i32, ptr %59, align 4, !tbaa !9
  %651 = mul nsw i32 %649, %650
  %652 = add nsw i32 %651, 1
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds %struct.complex, ptr %648, i64 %653
  %655 = load ptr, ptr %48, align 8, !tbaa !5
  %656 = getelementptr inbounds %struct.complex, ptr %655, i64 1
  call void @ccopy_(ptr noundef %647, ptr noundef %654, ptr noundef @c__1, ptr noundef %656, ptr noundef @c__1)
  %657 = load ptr, ptr %30, align 8, !tbaa !5
  %658 = load ptr, ptr %30, align 8, !tbaa !5
  %659 = load ptr, ptr %37, align 8, !tbaa !5
  %660 = load i32, ptr %58, align 4, !tbaa !9
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds %struct.complex, ptr %659, i64 %661
  %663 = load ptr, ptr %38, align 8, !tbaa !5
  %664 = load ptr, ptr %48, align 8, !tbaa !5
  %665 = getelementptr inbounds %struct.complex, ptr %664, i64 1
  %666 = load ptr, ptr %46, align 8, !tbaa !5
  %667 = load i32, ptr %69, align 4, !tbaa !9
  %668 = load i32, ptr %59, align 4, !tbaa !9
  %669 = mul nsw i32 %667, %668
  %670 = add nsw i32 %669, 1
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds %struct.complex, ptr %666, i64 %671
  call void @cgemv_(ptr noundef @.str.4, ptr noundef %657, ptr noundef %658, ptr noundef @c_b2, ptr noundef %662, ptr noundef %663, ptr noundef %665, ptr noundef @c__1, ptr noundef @c_b1, ptr noundef %672, ptr noundef @c__1)
  br label %673

673:                                              ; preds = %646
  %674 = load i32, ptr %69, align 4, !tbaa !9
  %675 = add nsw i32 %674, 1
  store i32 %675, ptr %69, align 4, !tbaa !9
  br label %642, !llvm.loop !16

676:                                              ; preds = %642
  br label %677

677:                                              ; preds = %676, %556
  br label %678

678:                                              ; preds = %677, %543
  %679 = load i32, ptr %74, align 4, !tbaa !9
  %680 = icmp ne i32 %679, 0
  br i1 %680, label %681, label %815

681:                                              ; preds = %678
  %682 = load ptr, ptr %44, align 8, !tbaa !5
  %683 = load i32, ptr %682, align 4, !tbaa !9
  %684 = sub nsw i32 %683, 1
  store i32 %684, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %685

685:                                              ; preds = %811, %681
  %686 = load i32, ptr %69, align 4, !tbaa !9
  %687 = load i32, ptr %61, align 4, !tbaa !9
  %688 = icmp sle i32 %686, %687
  br i1 %688, label %689, label %814

689:                                              ; preds = %685
  store i32 0, ptr %68, align 4, !tbaa !9
  %690 = load ptr, ptr %45, align 8, !tbaa !5
  %691 = load i32, ptr %69, align 4, !tbaa !9
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds float, ptr %690, i64 %692
  %694 = load float, ptr %693, align 4, !tbaa !11
  store float %694, ptr %85, align 4, !tbaa !11
  %695 = load ptr, ptr %44, align 8, !tbaa !5
  %696 = load i32, ptr %695, align 4, !tbaa !9
  store i32 %696, ptr %62, align 4, !tbaa !9
  %697 = load i32, ptr %69, align 4, !tbaa !9
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr %75, align 4, !tbaa !9
  br label %699

699:                                              ; preds = %719, %689
  %700 = load i32, ptr %75, align 4, !tbaa !9
  %701 = load i32, ptr %62, align 4, !tbaa !9
  %702 = icmp sle i32 %700, %701
  br i1 %702, label %703, label %722

703:                                              ; preds = %699
  %704 = load ptr, ptr %45, align 8, !tbaa !5
  %705 = load i32, ptr %75, align 4, !tbaa !9
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds float, ptr %704, i64 %706
  %708 = load float, ptr %707, align 4, !tbaa !11
  %709 = load float, ptr %85, align 4, !tbaa !11
  %710 = fcmp olt float %708, %709
  br i1 %710, label %711, label %718

711:                                              ; preds = %703
  %712 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %712, ptr %68, align 4, !tbaa !9
  %713 = load ptr, ptr %45, align 8, !tbaa !5
  %714 = load i32, ptr %75, align 4, !tbaa !9
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds float, ptr %713, i64 %715
  %717 = load float, ptr %716, align 4, !tbaa !11
  store float %717, ptr %85, align 4, !tbaa !11
  br label %718

718:                                              ; preds = %711, %703
  br label %719

719:                                              ; preds = %718
  %720 = load i32, ptr %75, align 4, !tbaa !9
  %721 = add nsw i32 %720, 1
  store i32 %721, ptr %75, align 4, !tbaa !9
  br label %699, !llvm.loop !17

722:                                              ; preds = %699
  %723 = load i32, ptr %68, align 4, !tbaa !9
  %724 = icmp ne i32 %723, 0
  br i1 %724, label %725, label %810

725:                                              ; preds = %722
  %726 = load ptr, ptr %50, align 8, !tbaa !5
  %727 = load i32, ptr %78, align 4, !tbaa !9
  %728 = load i32, ptr %68, align 4, !tbaa !9
  %729 = add nsw i32 %727, %728
  %730 = sub nsw i32 %729, 1
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds i32, ptr %726, i64 %731
  %733 = load i32, ptr %732, align 4, !tbaa !9
  store i32 %733, ptr %67, align 4, !tbaa !9
  %734 = load ptr, ptr %45, align 8, !tbaa !5
  %735 = load i32, ptr %69, align 4, !tbaa !9
  %736 = sext i32 %735 to i64
  %737 = getelementptr inbounds float, ptr %734, i64 %736
  %738 = load float, ptr %737, align 4, !tbaa !11
  %739 = load ptr, ptr %45, align 8, !tbaa !5
  %740 = load i32, ptr %68, align 4, !tbaa !9
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds float, ptr %739, i64 %741
  store float %738, ptr %742, align 4, !tbaa !11
  %743 = load ptr, ptr %50, align 8, !tbaa !5
  %744 = load i32, ptr %78, align 4, !tbaa !9
  %745 = load i32, ptr %69, align 4, !tbaa !9
  %746 = add nsw i32 %744, %745
  %747 = sub nsw i32 %746, 1
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds i32, ptr %743, i64 %748
  %750 = load i32, ptr %749, align 4, !tbaa !9
  %751 = load ptr, ptr %50, align 8, !tbaa !5
  %752 = load i32, ptr %78, align 4, !tbaa !9
  %753 = load i32, ptr %68, align 4, !tbaa !9
  %754 = add nsw i32 %752, %753
  %755 = sub nsw i32 %754, 1
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds i32, ptr %751, i64 %756
  store i32 %750, ptr %757, align 4, !tbaa !9
  %758 = load float, ptr %85, align 4, !tbaa !11
  %759 = load ptr, ptr %45, align 8, !tbaa !5
  %760 = load i32, ptr %69, align 4, !tbaa !9
  %761 = sext i32 %760 to i64
  %762 = getelementptr inbounds float, ptr %759, i64 %761
  store float %758, ptr %762, align 4, !tbaa !11
  %763 = load i32, ptr %67, align 4, !tbaa !9
  %764 = load ptr, ptr %50, align 8, !tbaa !5
  %765 = load i32, ptr %78, align 4, !tbaa !9
  %766 = load i32, ptr %69, align 4, !tbaa !9
  %767 = add nsw i32 %765, %766
  %768 = sub nsw i32 %767, 1
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds i32, ptr %764, i64 %769
  store i32 %763, ptr %770, align 4, !tbaa !9
  %771 = load ptr, ptr %30, align 8, !tbaa !5
  %772 = load ptr, ptr %46, align 8, !tbaa !5
  %773 = load i32, ptr %68, align 4, !tbaa !9
  %774 = load i32, ptr %59, align 4, !tbaa !9
  %775 = mul nsw i32 %773, %774
  %776 = add nsw i32 %775, 1
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds %struct.complex, ptr %772, i64 %777
  %779 = load ptr, ptr %46, align 8, !tbaa !5
  %780 = load i32, ptr %69, align 4, !tbaa !9
  %781 = load i32, ptr %59, align 4, !tbaa !9
  %782 = mul nsw i32 %780, %781
  %783 = add nsw i32 %782, 1
  %784 = sext i32 %783 to i64
  %785 = getelementptr inbounds %struct.complex, ptr %779, i64 %784
  call void @cswap_(ptr noundef %771, ptr noundef %778, ptr noundef @c__1, ptr noundef %785, ptr noundef @c__1)
  %786 = load ptr, ptr %52, align 8, !tbaa !5
  %787 = load i32, ptr %786, align 4, !tbaa !9
  %788 = icmp ne i32 %787, 0
  br i1 %788, label %789, label %809

789:                                              ; preds = %725
  %790 = load ptr, ptr %51, align 8, !tbaa !5
  %791 = load i32, ptr %68, align 4, !tbaa !9
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds i32, ptr %790, i64 %792
  %794 = load i32, ptr %793, align 4, !tbaa !9
  store i32 %794, ptr %67, align 4, !tbaa !9
  %795 = load ptr, ptr %51, align 8, !tbaa !5
  %796 = load i32, ptr %69, align 4, !tbaa !9
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds i32, ptr %795, i64 %797
  %799 = load i32, ptr %798, align 4, !tbaa !9
  %800 = load ptr, ptr %51, align 8, !tbaa !5
  %801 = load i32, ptr %68, align 4, !tbaa !9
  %802 = sext i32 %801 to i64
  %803 = getelementptr inbounds i32, ptr %800, i64 %802
  store i32 %799, ptr %803, align 4, !tbaa !9
  %804 = load i32, ptr %67, align 4, !tbaa !9
  %805 = load ptr, ptr %51, align 8, !tbaa !5
  %806 = load i32, ptr %69, align 4, !tbaa !9
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds i32, ptr %805, i64 %807
  store i32 %804, ptr %808, align 4, !tbaa !9
  br label %809

809:                                              ; preds = %789, %725
  br label %810

810:                                              ; preds = %809, %722
  br label %811

811:                                              ; preds = %810
  %812 = load i32, ptr %69, align 4, !tbaa !9
  %813 = add nsw i32 %812, 1
  store i32 %813, ptr %69, align 4, !tbaa !9
  br label %685, !llvm.loop !18

814:                                              ; preds = %685
  br label %815

815:                                              ; preds = %814, %678
  store i32 1, ptr %86, align 4
  br label %816

816:                                              ; preds = %815, %356, %342, %332
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 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 1, 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 1, 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 i32 @xerbla_(ptr noundef, ptr noundef, i32 noundef) #2

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

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

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

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

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

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

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

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

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

declare void @cswap_(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"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}


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

%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 [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b2 = external hidden global %struct.complex, align 4
@c_b1 = external hidden global %struct.complex, align 4

; Function Attrs: nounwind uwtable
define dso_local void @chbgvx_(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) local_unnamed_addr #0 {
  %27 = alloca i32, align 4
  %28 = alloca [1 x i8], align 1
  %29 = alloca i32, align 4
  %30 = alloca [1 x i8], align 1
  %31 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #5
  %32 = getelementptr inbounds i8, ptr %18, i64 -4
  %33 = load i32, ptr %20, align 4, !tbaa !5
  %narrow = xor i32 %33, -1
  %34 = sext i32 %narrow to i64
  %35 = getelementptr inbounds %struct.complex, ptr %19, i64 %34
  %36 = getelementptr inbounds i8, ptr %22, i64 -4
  %37 = getelementptr inbounds i8, ptr %23, i64 -4
  %38 = getelementptr inbounds i8, ptr %24, i64 -4
  %39 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %40 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #5
  %41 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #5
  %42 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #5
  %43 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #5
  store i32 0, ptr %25, align 4, !tbaa !5
  %.not = icmp ne i32 %39, 0
  br i1 %.not, label %46, label %44

44:                                               ; preds = %26
  %45 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #5
  %.not327 = icmp eq i32 %45, 0
  br i1 %.not327, label %.thread351.sink.split, label %46

46:                                               ; preds = %44, %26
  %47 = icmp ne i32 %41, 0
  %48 = icmp ne i32 %42, 0
  %or.cond = select i1 %47, i1 true, i1 %48
  %49 = icmp ne i32 %43, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %49
  br i1 %or.cond3, label %50, label %.thread351.sink.split

50:                                               ; preds = %46
  %.not328 = icmp eq i32 %40, 0
  br i1 %.not328, label %51, label %53

51:                                               ; preds = %50
  %52 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #5
  %.not329 = icmp eq i32 %52, 0
  br i1 %.not329, label %.thread351.sink.split, label %53

53:                                               ; preds = %51, %50
  %54 = load i32, ptr %3, align 4, !tbaa !5
  %55 = icmp slt i32 %54, 0
  br i1 %55, label %.thread351.sink.split, label %56

56:                                               ; preds = %53
  %57 = load i32, ptr %4, align 4, !tbaa !5
  %58 = icmp slt i32 %57, 0
  br i1 %58, label %.thread351.sink.split, label %59

59:                                               ; preds = %56
  %60 = load i32, ptr %5, align 4, !tbaa !5
  %or.cond343 = icmp ugt i32 %60, %57
  br i1 %or.cond343, label %.thread351.sink.split, label %61

61:                                               ; preds = %59
  %62 = load i32, ptr %7, align 4, !tbaa !5
  %.not330 = icmp sgt i32 %62, %57
  br i1 %.not330, label %63, label %.thread351.sink.split

63:                                               ; preds = %61
  %64 = load i32, ptr %9, align 4, !tbaa !5
  %.not331 = icmp sgt i32 %64, %60
  br i1 %.not331, label %65, label %.thread351.sink.split

65:                                               ; preds = %63
  %66 = load i32, ptr %11, align 4, !tbaa !5
  %67 = icmp slt i32 %66, 1
  %68 = icmp ult i32 %66, %54
  %or.cond344 = and i1 %.not, %68
  %or.cond360 = or i1 %67, %or.cond344
  br i1 %or.cond360, label %.thread351.sink.split, label %69

69:                                               ; preds = %65
  br i1 %48, label %70, label %75

70:                                               ; preds = %69
  %.not359 = icmp eq i32 %54, 0
  br i1 %.not359, label %84, label %71

71:                                               ; preds = %70
  %72 = load float, ptr %13, align 4, !tbaa !9
  %73 = load float, ptr %12, align 4, !tbaa !9
  %74 = fcmp ugt float %72, %73
  br i1 %74, label %84, label %.thread351.sink.split

75:                                               ; preds = %69
  br i1 %49, label %76, label %84

76:                                               ; preds = %75
  %77 = load i32, ptr %14, align 4, !tbaa !5
  %78 = icmp slt i32 %77, 1
  %spec.select = tail call i32 @llvm.umax.i32(i32 %54, i32 1)
  %79 = icmp ugt i32 %77, %spec.select
  %or.cond361 = or i1 %78, %79
  br i1 %or.cond361, label %.thread351.sink.split, label %80

80:                                               ; preds = %76
  %81 = load i32, ptr %15, align 4, !tbaa !5
  %. = tail call i32 @llvm.umin.i32(i32 %54, i32 %77)
  %82 = icmp slt i32 %81, %.
  %83 = icmp ugt i32 %81, %54
  %or.cond358 = or i1 %82, %83
  br i1 %or.cond358, label %.thread351.sink.split, label %84

84:                                               ; preds = %80, %71, %70, %75
  %.pr = load i32, ptr %25, align 4, !tbaa !5
  %85 = icmp eq i32 %.pr, 0
  br i1 %85, label %86, label %.thread351

86:                                               ; preds = %84
  %87 = load i32, ptr %20, align 4, !tbaa !5
  %88 = icmp slt i32 %87, 1
  %89 = icmp ult i32 %87, %54
  %or.cond399 = and i1 %.not, %89
  %or.cond400 = or i1 %88, %or.cond399
  br i1 %or.cond400, label %.thread351.sink.split, label %.thread

.thread351.sink.split:                            ; preds = %86, %80, %76, %71, %65, %63, %61, %59, %56, %53, %51, %46, %44
  %.sink = phi i32 [ -1, %44 ], [ -2, %46 ], [ -3, %51 ], [ -4, %53 ], [ -5, %56 ], [ -6, %59 ], [ -8, %61 ], [ -10, %63 ], [ -12, %65 ], [ -14, %71 ], [ -15, %76 ], [ -16, %80 ], [ -21, %86 ]
  store i32 %.sink, ptr %25, align 4, !tbaa !5
  br label %.thread351

.thread351:                                       ; preds = %.thread351.sink.split, %84
  %90 = phi i32 [ %.pr, %84 ], [ %.sink, %.thread351.sink.split ]
  %91 = sub nsw i32 0, %90
  store i32 %91, ptr %27, align 4, !tbaa !5
  %92 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %27, i32 noundef 6) #5
  br label %.critedge

.thread:                                          ; preds = %86
  store i32 0, ptr %17, align 4, !tbaa !5
  %93 = load i32, ptr %3, align 4, !tbaa !5
  %94 = icmp eq i32 %93, 0
  br i1 %94, label %.critedge, label %95

95:                                               ; preds = %.thread
  tail call void @cpbstf_(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %25) #5
  %96 = load i32, ptr %25, align 4, !tbaa !5
  %.not334 = icmp eq i32 %96, 0
  br i1 %.not334, label %100, label %97

97:                                               ; preds = %95
  %98 = load i32, ptr %3, align 4, !tbaa !5
  %99 = add nsw i32 %98, %96
  store i32 %99, ptr %25, align 4, !tbaa !5
  br label %.critedge

100:                                              ; preds = %95
  call void @chbgst_(ptr noundef %0, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %21, ptr noundef %22, ptr noundef nonnull %29) #5
  %101 = load i32, ptr %3, align 4, !tbaa !5
  %102 = add nsw i32 %101, 1
  %103 = add nsw i32 %102, %101
  %.345 = select i1 %.not, i8 85, i8 78
  store i8 %.345, ptr %28, align 1, !tbaa !11
  %104 = sext i32 %102 to i64
  %105 = getelementptr inbounds float, ptr %36, i64 %104
  call void @chbtrd_(ptr noundef nonnull %28, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %22, ptr noundef nonnull %105, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %21, ptr noundef nonnull %29) #5
  %.not335 = icmp eq i32 %43, 0
  br i1 %.not335, label %113, label %106

106:                                              ; preds = %100
  %107 = load i32, ptr %14, align 4, !tbaa !5
  %108 = icmp eq i32 %107, 1
  br i1 %108, label %109, label %113

109:                                              ; preds = %106
  %110 = load i32, ptr %15, align 4, !tbaa !5
  %111 = load i32, ptr %3, align 4, !tbaa !5
  %112 = icmp eq i32 %110, %111
  br label %113

113:                                              ; preds = %109, %106, %100
  %114 = phi i1 [ false, %106 ], [ false, %100 ], [ %112, %109 ]
  %or.cond5 = or i1 %47, %114
  br i1 %or.cond5, label %115, label %138

115:                                              ; preds = %113
  %116 = load float, ptr %16, align 4, !tbaa !9
  %117 = fcmp ugt float %116, 0.000000e+00
  br i1 %117, label %138, label %118

118:                                              ; preds = %115
  call void @scopy_(ptr noundef nonnull %3, ptr noundef %22, ptr noundef nonnull @c__1, ptr noundef %18, ptr noundef nonnull @c__1) #5
  %119 = load i32, ptr %3, align 4, !tbaa !5
  %120 = shl i32 %119, 1
  %121 = add nsw i32 %120, %103
  %122 = add nsw i32 %119, -1
  store i32 %122, ptr %27, align 4, !tbaa !5
  %123 = sext i32 %121 to i64
  %124 = getelementptr inbounds float, ptr %36, i64 %123
  call void @scopy_(ptr noundef nonnull %27, ptr noundef nonnull %105, ptr noundef nonnull @c__1, ptr noundef nonnull %124, ptr noundef nonnull @c__1) #5
  br i1 %.not, label %126, label %125

125:                                              ; preds = %118
  call void @ssterf_(ptr noundef nonnull %3, ptr noundef %18, ptr noundef nonnull %124, ptr noundef nonnull %25) #5
  br label %.loopexit362

126:                                              ; preds = %118
  call void @clacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %19, ptr noundef nonnull %20) #5
  %127 = sext i32 %103 to i64
  %128 = getelementptr inbounds float, ptr %36, i64 %127
  call void @csteqr_(ptr noundef %0, ptr noundef nonnull %3, ptr noundef %18, ptr noundef nonnull %124, ptr noundef %19, ptr noundef nonnull %20, ptr noundef nonnull %128, ptr noundef nonnull %25) #5
  %129 = load i32, ptr %25, align 4, !tbaa !5
  %130 = icmp eq i32 %129, 0
  br i1 %130, label %131, label %.thread355

131:                                              ; preds = %126
  %132 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %132, ptr %27, align 4, !tbaa !5
  %.not336363 = icmp slt i32 %132, 1
  br i1 %.not336363, label %.loopexit362, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %131
  %133 = zext nneg i32 %132 to i64
  %134 = shl nuw nsw i64 %133, 2
  call void @llvm.memset.p0.i64(ptr align 4 %24, i8 0, i64 %134, i1 false), !tbaa !5
  br label %.loopexit362

.loopexit362:                                     ; preds = %.lr.ph.preheader, %131, %125
  %.pr354 = load i32, ptr %25, align 4, !tbaa !5
  %135 = icmp eq i32 %.pr354, 0
  br i1 %135, label %136, label %.thread355

136:                                              ; preds = %.loopexit362
  %137 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %137, ptr %17, align 4, !tbaa !5
  br label %.loopexit

.thread355:                                       ; preds = %126, %.loopexit362
  store i32 0, ptr %25, align 4, !tbaa !5
  br label %138

138:                                              ; preds = %113, %.thread355, %115
  %.347 = select i1 %.not, i8 66, i8 69
  store i8 %.347, ptr %30, align 1, !tbaa !11
  %139 = load i32, ptr %3, align 4, !tbaa !5
  %140 = add nsw i32 %139, 1
  %141 = add nsw i32 %140, %139
  %142 = sext i32 %140 to i64
  %143 = getelementptr inbounds i32, ptr %37, i64 %142
  %144 = sext i32 %103 to i64
  %145 = getelementptr inbounds float, ptr %36, i64 %144
  %146 = sext i32 %141 to i64
  %147 = getelementptr inbounds i32, ptr %37, i64 %146
  call void @sstebz_(ptr noundef %1, ptr noundef nonnull %30, ptr noundef nonnull %3, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %22, ptr noundef nonnull %105, ptr noundef nonnull %17, ptr noundef nonnull %31, ptr noundef %18, ptr noundef %23, ptr noundef nonnull %143, ptr noundef nonnull %145, ptr noundef nonnull %147, ptr noundef nonnull %25) #5
  br i1 %.not, label %148, label %.critedge

148:                                              ; preds = %138
  call void @cstein_(ptr noundef nonnull %3, ptr noundef %22, ptr noundef nonnull %105, ptr noundef nonnull %17, ptr noundef %18, ptr noundef %23, ptr noundef nonnull %143, ptr noundef %19, ptr noundef nonnull %20, ptr noundef nonnull %145, ptr noundef nonnull %147, ptr noundef %24, ptr noundef nonnull %25) #5
  %149 = load i32, ptr %17, align 4, !tbaa !5
  store i32 %149, ptr %27, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %35, i64 8
  %.not338365 = icmp slt i32 %149, 1
  br i1 %.not338365, label %.critedge, label %.lr.ph367.preheader

.lr.ph367.preheader:                              ; preds = %148
  %150 = sext i32 %33 to i64
  br label %.lr.ph367

.lr.ph367:                                        ; preds = %.lr.ph367.preheader, %.lr.ph367
  %indvars.iv = phi i64 [ 1, %.lr.ph367.preheader ], [ %indvars.iv.next, %.lr.ph367 ]
  %151 = mul nsw i64 %indvars.iv, %150
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %151
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %21, ptr noundef nonnull @c__1) #5
  call void @cgemv_(ptr noundef nonnull @.str.4, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef nonnull @c_b2, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %21, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b1, ptr noundef %gep, ptr noundef nonnull @c__1) #5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %152 = load i32, ptr %27, align 4, !tbaa !5
  %153 = sext i32 %152 to i64
  %.not338.not = icmp slt i64 %indvars.iv, %153
  br i1 %.not338.not, label %.lr.ph367, label %.loopexit, !llvm.loop !12

.loopexit:                                        ; preds = %.lr.ph367, %136
  br i1 %.not, label %154, label %.critedge

154:                                              ; preds = %.loopexit
  %.pr392 = load i32, ptr %17, align 4, !tbaa !5
  %155 = add nsw i32 %.pr392, -1
  store i32 %155, ptr %27, align 4, !tbaa !5
  %invariant.gep374 = getelementptr i8, ptr %35, i64 8
  %.not339378 = icmp slt i32 %.pr392, 2
  br i1 %.not339378, label %.critedge, label %.lr.ph381.preheader

.lr.ph381.preheader:                              ; preds = %154
  %156 = sext i32 %33 to i64
  br label %.lr.ph381

.lr.ph381:                                        ; preds = %.lr.ph381.preheader, %._crit_edge.thread
  %indvar = phi i32 [ 0, %.lr.ph381.preheader ], [ %indvar.next, %._crit_edge.thread ]
  %indvars.iv389 = phi i64 [ 1, %.lr.ph381.preheader ], [ %indvars.iv.next390, %._crit_edge.thread ]
  %indvars.iv384 = phi i64 [ 2, %.lr.ph381.preheader ], [ %indvars.iv.next385, %._crit_edge.thread ]
  %157 = getelementptr inbounds float, ptr %32, i64 %indvars.iv389
  %158 = load float, ptr %157, align 4, !tbaa !9
  %159 = load i32, ptr %17, align 4, !tbaa !5
  %indvars.iv.next390 = add nuw nsw i64 %indvars.iv389, 1
  %160 = sext i32 %159 to i64
  %.not340368.not = icmp slt i64 %indvars.iv389, %160
  br i1 %.not340368.not, label %.lr.ph372.preheader, label %._crit_edge.thread

.lr.ph372.preheader:                              ; preds = %.lr.ph381
  %161 = xor i32 %indvar, -1
  %162 = add i32 %159, %161
  %reass.sub = sub i32 %159, %indvar
  %xtraiter = and i32 %162, 1
  %163 = icmp eq i32 %reass.sub, 2
  br i1 %163, label %._crit_edge.unr-lcssa, label %.lr.ph372.preheader.new

.lr.ph372.preheader.new:                          ; preds = %.lr.ph372.preheader
  %unroll_iter = and i32 %162, -2
  br label %.lr.ph372

.lr.ph372:                                        ; preds = %.lr.ph372, %.lr.ph372.preheader.new
  %indvars.iv386 = phi i64 [ %indvars.iv384, %.lr.ph372.preheader.new ], [ %indvars.iv.next387.1, %.lr.ph372 ]
  %.0371 = phi float [ %158, %.lr.ph372.preheader.new ], [ %.1.1, %.lr.ph372 ]
  %.1314369 = phi i32 [ 0, %.lr.ph372.preheader.new ], [ %.2.1, %.lr.ph372 ]
  %niter = phi i32 [ 0, %.lr.ph372.preheader.new ], [ %niter.next.1, %.lr.ph372 ]
  %164 = getelementptr inbounds float, ptr %32, i64 %indvars.iv386
  %165 = load float, ptr %164, align 4, !tbaa !9
  %166 = fcmp olt float %165, %.0371
  %167 = trunc nuw i64 %indvars.iv386 to i32
  %.2 = select i1 %166, i32 %167, i32 %.1314369
  %.1 = select i1 %166, float %165, float %.0371
  %168 = getelementptr float, ptr %18, i64 %indvars.iv386
  %169 = load float, ptr %168, align 4, !tbaa !9
  %170 = fcmp olt float %169, %.1
  %171 = trunc i64 %indvars.iv386 to i32
  %172 = add i32 %171, 1
  %.2.1 = select i1 %170, i32 %172, i32 %.2
  %.1.1 = select i1 %170, float %169, float %.1
  %indvars.iv.next387.1 = add nuw nsw i64 %indvars.iv386, 2
  %niter.next.1 = add i32 %niter, 2
  %niter.ncmp.1 = icmp eq i32 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.unr-lcssa, label %.lr.ph372, !llvm.loop !14

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph372, %.lr.ph372.preheader
  %.2.lcssa.ph = phi i32 [ poison, %.lr.ph372.preheader ], [ %.2.1, %.lr.ph372 ]
  %.1.lcssa.ph = phi float [ poison, %.lr.ph372.preheader ], [ %.1.1, %.lr.ph372 ]
  %indvars.iv386.unr = phi i64 [ %indvars.iv384, %.lr.ph372.preheader ], [ %indvars.iv.next387.1, %.lr.ph372 ]
  %.0371.unr = phi float [ %158, %.lr.ph372.preheader ], [ %.1.1, %.lr.ph372 ]
  %.1314369.unr = phi i32 [ 0, %.lr.ph372.preheader ], [ %.2.1, %.lr.ph372 ]
  %lcmp.mod.not = icmp eq i32 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph372.epil

.lr.ph372.epil:                                   ; preds = %._crit_edge.unr-lcssa
  %173 = getelementptr inbounds float, ptr %32, i64 %indvars.iv386.unr
  %174 = load float, ptr %173, align 4, !tbaa !9
  %175 = fcmp olt float %174, %.0371.unr
  %176 = trunc nuw i64 %indvars.iv386.unr to i32
  %.2.epil = select i1 %175, i32 %176, i32 %.1314369.unr
  %.1.epil = select i1 %175, float %174, float %.0371.unr
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %.lr.ph372.epil
  %.2.lcssa = phi i32 [ %.2.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.2.epil, %.lr.ph372.epil ]
  %.1.lcssa = phi float [ %.1.lcssa.ph, %._crit_edge.unr-lcssa ], [ %.1.epil, %.lr.ph372.epil ]
  %.not341 = icmp eq i32 %.2.lcssa, 0
  br i1 %.not341, label %._crit_edge.thread, label %177

177:                                              ; preds = %._crit_edge
  %178 = sext i32 %.2.lcssa to i64
  %179 = getelementptr inbounds i32, ptr %37, i64 %178
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = getelementptr inbounds float, ptr %32, i64 %178
  store float %158, ptr %181, align 4, !tbaa !9
  %182 = getelementptr inbounds i32, ptr %37, i64 %indvars.iv389
  %183 = load i32, ptr %182, align 4, !tbaa !5
  store i32 %183, ptr %179, align 4, !tbaa !5
  store float %.1.lcssa, ptr %157, align 4, !tbaa !9
  store i32 %180, ptr %182, align 4, !tbaa !5
  %184 = mul nsw i32 %.2.lcssa, %33
  %185 = sext i32 %184 to i64
  %gep375 = getelementptr %struct.complex, ptr %invariant.gep374, i64 %185
  %186 = mul nsw i64 %indvars.iv389, %156
  %gep377 = getelementptr %struct.complex, ptr %invariant.gep374, i64 %186
  call void @cswap_(ptr noundef nonnull %3, ptr noundef %gep375, ptr noundef nonnull @c__1, ptr noundef %gep377, ptr noundef nonnull @c__1) #5
  %187 = load i32, ptr %25, align 4, !tbaa !5
  %.not342 = icmp eq i32 %187, 0
  br i1 %.not342, label %._crit_edge.thread, label %188

188:                                              ; preds = %177
  %189 = getelementptr inbounds i32, ptr %38, i64 %178
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = getelementptr inbounds i32, ptr %38, i64 %indvars.iv389
  %192 = load i32, ptr %191, align 4, !tbaa !5
  store i32 %192, ptr %189, align 4, !tbaa !5
  store i32 %190, ptr %191, align 4, !tbaa !5
  br label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %.lr.ph381, %._crit_edge, %188, %177
  %193 = load i32, ptr %27, align 4, !tbaa !5
  %194 = sext i32 %193 to i64
  %.not339.not = icmp slt i64 %indvars.iv389, %194
  %indvars.iv.next385 = add nuw nsw i64 %indvars.iv384, 1
  %indvar.next = add i32 %indvar, 1
  br i1 %.not339.not, label %.lr.ph381, label %.critedge, !llvm.loop !15

.critedge:                                        ; preds = %._crit_edge.thread, %148, %154, %.loopexit, %138, %.thread, %97, %.thread351
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  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 i32 @xerbla_(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

declare void @cswap_(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.umin.i32(i32, i32) #3

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

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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { 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 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}


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