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

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

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

179:                                              ; preds = %29
  %180 = load i32, ptr %82, align 4, !tbaa !9
  %181 = icmp ne i32 %180, 0
  br i1 %181, label %182, label %184

182:                                              ; preds = %179, %29
  %183 = load ptr, ptr %41, align 8, !tbaa !5
  store i8 78, ptr %183, align 1, !tbaa !13
  store i32 0, ptr %91, align 4, !tbaa !9
  store i32 0, ptr %87, align 4, !tbaa !9
  br label %205

184:                                              ; preds = %179
  %185 = load ptr, ptr %41, align 8, !tbaa !5
  %186 = call i32 @lsame_(ptr noundef %185, ptr noundef @.str.3)
  %187 = icmp ne i32 %186, 0
  br i1 %187, label %192, label %188

188:                                              ; preds = %184
  %189 = load ptr, ptr %41, align 8, !tbaa !5
  %190 = call i32 @lsame_(ptr noundef %189, ptr noundef @.str.4)
  %191 = icmp ne i32 %190, 0
  br label %192

192:                                              ; preds = %188, %184
  %193 = phi i1 [ true, %184 ], [ %191, %188 ]
  %194 = zext i1 %193 to i32
  store i32 %194, ptr %91, align 4, !tbaa !9
  %195 = load ptr, ptr %41, align 8, !tbaa !5
  %196 = call i32 @lsame_(ptr noundef %195, ptr noundef @.str.5)
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %202, label %198

198:                                              ; preds = %192
  %199 = load ptr, ptr %41, align 8, !tbaa !5
  %200 = call i32 @lsame_(ptr noundef %199, ptr noundef @.str.4)
  %201 = icmp ne i32 %200, 0
  br label %202

202:                                              ; preds = %198, %192
  %203 = phi i1 [ true, %192 ], [ %201, %198 ]
  %204 = zext i1 %203 to i32
  store i32 %204, ptr %87, align 4, !tbaa !9
  br label %205

205:                                              ; preds = %202, %182
  %206 = load ptr, ptr %49, align 8, !tbaa !5
  store float 0.000000e+00, ptr %206, align 4, !tbaa !11
  %207 = load i32, ptr %84, align 4, !tbaa !9
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %218, label %209

209:                                              ; preds = %205
  %210 = load i32, ptr %82, align 4, !tbaa !9
  %211 = icmp ne i32 %210, 0
  br i1 %211, label %218, label %212

212:                                              ; preds = %209
  %213 = load ptr, ptr %30, align 8, !tbaa !5
  %214 = call i32 @lsame_(ptr noundef %213, ptr noundef @.str.6)
  %215 = icmp ne i32 %214, 0
  br i1 %215, label %218, label %216

216:                                              ; preds = %212
  %217 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -1, ptr %217, align 4, !tbaa !9
  br label %499

218:                                              ; preds = %212, %209, %205
  %219 = load i32, ptr %89, align 4, !tbaa !9
  %220 = icmp ne i32 %219, 0
  br i1 %220, label %231, label %221

221:                                              ; preds = %218
  %222 = load ptr, ptr %31, align 8, !tbaa !5
  %223 = call i32 @lsame_(ptr noundef %222, ptr noundef @.str.7)
  %224 = icmp ne i32 %223, 0
  br i1 %224, label %231, label %225

225:                                              ; preds = %221
  %226 = load ptr, ptr %31, align 8, !tbaa !5
  %227 = call i32 @lsame_(ptr noundef %226, ptr noundef @.str.5)
  %228 = icmp ne i32 %227, 0
  br i1 %228, label %231, label %229

229:                                              ; preds = %225
  %230 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -2, ptr %230, align 4, !tbaa !9
  br label %498

231:                                              ; preds = %225, %221, %218
  %232 = load ptr, ptr %32, align 8, !tbaa !5
  %233 = load i32, ptr %232, align 4, !tbaa !9
  %234 = icmp slt i32 %233, 0
  br i1 %234, label %235, label %237

235:                                              ; preds = %231
  %236 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -3, ptr %236, align 4, !tbaa !9
  br label %497

237:                                              ; preds = %231
  %238 = load ptr, ptr %33, align 8, !tbaa !5
  %239 = load i32, ptr %238, align 4, !tbaa !9
  %240 = icmp slt i32 %239, 0
  br i1 %240, label %241, label %243

241:                                              ; preds = %237
  %242 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -4, ptr %242, align 4, !tbaa !9
  br label %496

243:                                              ; preds = %237
  %244 = load ptr, ptr %34, align 8, !tbaa !5
  %245 = load i32, ptr %244, align 4, !tbaa !9
  %246 = icmp slt i32 %245, 0
  br i1 %246, label %247, label %249

247:                                              ; preds = %243
  %248 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -5, ptr %248, align 4, !tbaa !9
  br label %495

249:                                              ; preds = %243
  %250 = load ptr, ptr %35, align 8, !tbaa !5
  %251 = load i32, ptr %250, align 4, !tbaa !9
  %252 = icmp slt i32 %251, 0
  br i1 %252, label %253, label %255

253:                                              ; preds = %249
  %254 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -6, ptr %254, align 4, !tbaa !9
  br label %494

255:                                              ; preds = %249
  %256 = load ptr, ptr %37, align 8, !tbaa !5
  %257 = load i32, ptr %256, align 4, !tbaa !9
  %258 = load ptr, ptr %33, align 8, !tbaa !5
  %259 = load i32, ptr %258, align 4, !tbaa !9
  %260 = load ptr, ptr %34, align 8, !tbaa !5
  %261 = load i32, ptr %260, align 4, !tbaa !9
  %262 = add nsw i32 %259, %261
  %263 = add nsw i32 %262, 1
  %264 = icmp slt i32 %257, %263
  br i1 %264, label %265, label %267

265:                                              ; preds = %255
  %266 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -8, ptr %266, align 4, !tbaa !9
  br label %493

267:                                              ; preds = %255
  %268 = load ptr, ptr %39, align 8, !tbaa !5
  %269 = load i32, ptr %268, align 4, !tbaa !9
  %270 = load ptr, ptr %33, align 8, !tbaa !5
  %271 = load i32, ptr %270, align 4, !tbaa !9
  %272 = shl i32 %271, 1
  %273 = load ptr, ptr %34, align 8, !tbaa !5
  %274 = load i32, ptr %273, align 4, !tbaa !9
  %275 = add nsw i32 %272, %274
  %276 = add nsw i32 %275, 1
  %277 = icmp slt i32 %269, %276
  br i1 %277, label %278, label %280

278:                                              ; preds = %267
  %279 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -10, ptr %279, align 4, !tbaa !9
  br label %492

280:                                              ; preds = %267
  %281 = load ptr, ptr %30, align 8, !tbaa !5
  %282 = call i32 @lsame_(ptr noundef %281, ptr noundef @.str.6)
  %283 = icmp ne i32 %282, 0
  br i1 %283, label %284, label %296

284:                                              ; preds = %280
  %285 = load i32, ptr %91, align 4, !tbaa !9
  %286 = icmp ne i32 %285, 0
  br i1 %286, label %296, label %287

287:                                              ; preds = %284
  %288 = load i32, ptr %87, align 4, !tbaa !9
  %289 = icmp ne i32 %288, 0
  br i1 %289, label %296, label %290

290:                                              ; preds = %287
  %291 = load ptr, ptr %41, align 8, !tbaa !5
  %292 = call i32 @lsame_(ptr noundef %291, ptr noundef @.str)
  %293 = icmp ne i32 %292, 0
  br i1 %293, label %296, label %294

294:                                              ; preds = %290
  %295 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -12, ptr %295, align 4, !tbaa !9
  br label %491

296:                                              ; preds = %290, %287, %284, %280
  %297 = load i32, ptr %91, align 4, !tbaa !9
  %298 = icmp ne i32 %297, 0
  br i1 %298, label %299, label %373

299:                                              ; preds = %296
  %300 = load float, ptr %85, align 4, !tbaa !11
  store float %300, ptr %80, align 4, !tbaa !11
  store float 0.000000e+00, ptr %81, align 4, !tbaa !11
  %301 = load ptr, ptr %32, align 8, !tbaa !5
  %302 = load i32, ptr %301, align 4, !tbaa !9
  store i32 %302, ptr %71, align 4, !tbaa !9
  store i32 1, ptr %79, align 4, !tbaa !9
  br label %303

303:                                              ; preds = %338, %299
  %304 = load i32, ptr %79, align 4, !tbaa !9
  %305 = load i32, ptr %71, align 4, !tbaa !9
  %306 = icmp sle i32 %304, %305
  br i1 %306, label %307, label %341

307:                                              ; preds = %303
  %308 = load float, ptr %80, align 4, !tbaa !11
  store float %308, ptr %75, align 4, !tbaa !11
  %309 = load ptr, ptr %42, align 8, !tbaa !5
  %310 = load i32, ptr %79, align 4, !tbaa !9
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds float, ptr %309, i64 %311
  %313 = load float, ptr %312, align 4, !tbaa !11
  store float %313, ptr %76, align 4, !tbaa !11
  %314 = load float, ptr %75, align 4, !tbaa !11
  %315 = load float, ptr %76, align 4, !tbaa !11
  %316 = fcmp ole float %314, %315
  br i1 %316, label %317, label %319

317:                                              ; preds = %307
  %318 = load float, ptr %75, align 4, !tbaa !11
  br label %321

319:                                              ; preds = %307
  %320 = load float, ptr %76, align 4, !tbaa !11
  br label %321

321:                                              ; preds = %319, %317
  %322 = phi float [ %318, %317 ], [ %320, %319 ]
  store float %322, ptr %80, align 4, !tbaa !11
  %323 = load float, ptr %81, align 4, !tbaa !11
  store float %323, ptr %75, align 4, !tbaa !11
  %324 = load ptr, ptr %42, align 8, !tbaa !5
  %325 = load i32, ptr %79, align 4, !tbaa !9
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds float, ptr %324, i64 %326
  %328 = load float, ptr %327, align 4, !tbaa !11
  store float %328, ptr %76, align 4, !tbaa !11
  %329 = load float, ptr %75, align 4, !tbaa !11
  %330 = load float, ptr %76, align 4, !tbaa !11
  %331 = fcmp oge float %329, %330
  br i1 %331, label %332, label %334

332:                                              ; preds = %321
  %333 = load float, ptr %75, align 4, !tbaa !11
  br label %336

334:                                              ; preds = %321
  %335 = load float, ptr %76, align 4, !tbaa !11
  br label %336

336:                                              ; preds = %334, %332
  %337 = phi float [ %333, %332 ], [ %335, %334 ]
  store float %337, ptr %81, align 4, !tbaa !11
  br label %338

338:                                              ; preds = %336
  %339 = load i32, ptr %79, align 4, !tbaa !9
  %340 = add nsw i32 %339, 1
  store i32 %340, ptr %79, align 4, !tbaa !9
  br label %303, !llvm.loop !14

341:                                              ; preds = %303
  %342 = load float, ptr %80, align 4, !tbaa !11
  %343 = fcmp ole float %342, 0.000000e+00
  br i1 %343, label %344, label %346

344:                                              ; preds = %341
  %345 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -13, ptr %345, align 4, !tbaa !9
  br label %372

346:                                              ; preds = %341
  %347 = load ptr, ptr %32, align 8, !tbaa !5
  %348 = load i32, ptr %347, align 4, !tbaa !9
  %349 = icmp sgt i32 %348, 0
  br i1 %349, label %350, label %370

350:                                              ; preds = %346
  %351 = load float, ptr %80, align 4, !tbaa !11
  %352 = load float, ptr %90, align 4, !tbaa !11
  %353 = fcmp oge float %351, %352
  br i1 %353, label %354, label %356

354:                                              ; preds = %350
  %355 = load float, ptr %80, align 4, !tbaa !11
  br label %358

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

358:                                              ; preds = %356, %354
  %359 = phi float [ %355, %354 ], [ %357, %356 ]
  %360 = load float, ptr %81, align 4, !tbaa !11
  %361 = load float, ptr %85, align 4, !tbaa !11
  %362 = fcmp ole float %360, %361
  br i1 %362, label %363, label %365

363:                                              ; preds = %358
  %364 = load float, ptr %81, align 4, !tbaa !11
  br label %367

365:                                              ; preds = %358
  %366 = load float, ptr %85, align 4, !tbaa !11
  br label %367

367:                                              ; preds = %365, %363
  %368 = phi float [ %364, %363 ], [ %366, %365 ]
  %369 = fdiv float %359, %368
  store float %369, ptr %88, align 4, !tbaa !11
  br label %371

370:                                              ; preds = %346
  store float 1.000000e+00, ptr %88, align 4, !tbaa !11
  br label %371

371:                                              ; preds = %370, %367
  br label %372

372:                                              ; preds = %371, %344
  br label %373

373:                                              ; preds = %372, %296
  %374 = load i32, ptr %87, align 4, !tbaa !9
  %375 = icmp ne i32 %374, 0
  br i1 %375, label %376, label %454

376:                                              ; preds = %373
  %377 = load ptr, ptr %58, align 8, !tbaa !5
  %378 = load i32, ptr %377, align 4, !tbaa !9
  %379 = icmp eq i32 %378, 0
  br i1 %379, label %380, label %454

380:                                              ; preds = %376
  %381 = load float, ptr %85, align 4, !tbaa !11
  store float %381, ptr %80, align 4, !tbaa !11
  store float 0.000000e+00, ptr %81, align 4, !tbaa !11
  %382 = load ptr, ptr %32, align 8, !tbaa !5
  %383 = load i32, ptr %382, align 4, !tbaa !9
  store i32 %383, ptr %71, align 4, !tbaa !9
  store i32 1, ptr %79, align 4, !tbaa !9
  br label %384

384:                                              ; preds = %419, %380
  %385 = load i32, ptr %79, align 4, !tbaa !9
  %386 = load i32, ptr %71, align 4, !tbaa !9
  %387 = icmp sle i32 %385, %386
  br i1 %387, label %388, label %422

388:                                              ; preds = %384
  %389 = load float, ptr %80, align 4, !tbaa !11
  store float %389, ptr %75, align 4, !tbaa !11
  %390 = load ptr, ptr %43, align 8, !tbaa !5
  %391 = load i32, ptr %79, align 4, !tbaa !9
  %392 = sext i32 %391 to i64
  %393 = getelementptr inbounds float, ptr %390, i64 %392
  %394 = load float, ptr %393, align 4, !tbaa !11
  store float %394, ptr %76, align 4, !tbaa !11
  %395 = load float, ptr %75, align 4, !tbaa !11
  %396 = load float, ptr %76, align 4, !tbaa !11
  %397 = fcmp ole float %395, %396
  br i1 %397, label %398, label %400

398:                                              ; preds = %388
  %399 = load float, ptr %75, align 4, !tbaa !11
  br label %402

400:                                              ; preds = %388
  %401 = load float, ptr %76, align 4, !tbaa !11
  br label %402

402:                                              ; preds = %400, %398
  %403 = phi float [ %399, %398 ], [ %401, %400 ]
  store float %403, ptr %80, align 4, !tbaa !11
  %404 = load float, ptr %81, align 4, !tbaa !11
  store float %404, ptr %75, align 4, !tbaa !11
  %405 = load ptr, ptr %43, align 8, !tbaa !5
  %406 = load i32, ptr %79, align 4, !tbaa !9
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds float, ptr %405, i64 %407
  %409 = load float, ptr %408, align 4, !tbaa !11
  store float %409, ptr %76, align 4, !tbaa !11
  %410 = load float, ptr %75, align 4, !tbaa !11
  %411 = load float, ptr %76, align 4, !tbaa !11
  %412 = fcmp oge float %410, %411
  br i1 %412, label %413, label %415

413:                                              ; preds = %402
  %414 = load float, ptr %75, align 4, !tbaa !11
  br label %417

415:                                              ; preds = %402
  %416 = load float, ptr %76, align 4, !tbaa !11
  br label %417

417:                                              ; preds = %415, %413
  %418 = phi float [ %414, %413 ], [ %416, %415 ]
  store float %418, ptr %81, align 4, !tbaa !11
  br label %419

419:                                              ; preds = %417
  %420 = load i32, ptr %79, align 4, !tbaa !9
  %421 = add nsw i32 %420, 1
  store i32 %421, ptr %79, align 4, !tbaa !9
  br label %384, !llvm.loop !16

422:                                              ; preds = %384
  %423 = load float, ptr %80, align 4, !tbaa !11
  %424 = fcmp ole float %423, 0.000000e+00
  br i1 %424, label %425, label %427

425:                                              ; preds = %422
  %426 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -14, ptr %426, align 4, !tbaa !9
  br label %453

427:                                              ; preds = %422
  %428 = load ptr, ptr %32, align 8, !tbaa !5
  %429 = load i32, ptr %428, align 4, !tbaa !9
  %430 = icmp sgt i32 %429, 0
  br i1 %430, label %431, label %451

431:                                              ; preds = %427
  %432 = load float, ptr %80, align 4, !tbaa !11
  %433 = load float, ptr %90, align 4, !tbaa !11
  %434 = fcmp oge float %432, %433
  br i1 %434, label %435, label %437

435:                                              ; preds = %431
  %436 = load float, ptr %80, align 4, !tbaa !11
  br label %439

437:                                              ; preds = %431
  %438 = load float, ptr %90, align 4, !tbaa !11
  br label %439

439:                                              ; preds = %437, %435
  %440 = phi float [ %436, %435 ], [ %438, %437 ]
  %441 = load float, ptr %81, align 4, !tbaa !11
  %442 = load float, ptr %85, align 4, !tbaa !11
  %443 = fcmp ole float %441, %442
  br i1 %443, label %444, label %446

444:                                              ; preds = %439
  %445 = load float, ptr %81, align 4, !tbaa !11
  br label %448

446:                                              ; preds = %439
  %447 = load float, ptr %85, align 4, !tbaa !11
  br label %448

448:                                              ; preds = %446, %444
  %449 = phi float [ %445, %444 ], [ %447, %446 ]
  %450 = fdiv float %440, %449
  store float %450, ptr %83, align 4, !tbaa !11
  br label %452

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

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

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

454:                                              ; preds = %453, %376, %373
  %455 = load ptr, ptr %58, align 8, !tbaa !5
  %456 = load i32, ptr %455, align 4, !tbaa !9
  %457 = icmp eq i32 %456, 0
  br i1 %457, label %458, label %490

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

464:                                              ; preds = %458
  br label %468

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

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

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

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

479:                                              ; preds = %473
  br label %483

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

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

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

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

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

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

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

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

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

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

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

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

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

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

499:                                              ; preds = %498, %216
  %500 = load ptr, ptr %58, align 8, !tbaa !5
  %501 = load i32, ptr %500, align 4, !tbaa !9
  %502 = icmp ne i32 %501, 0
  br i1 %502, label %503, label %508

503:                                              ; preds = %499
  %504 = load ptr, ptr %58, align 8, !tbaa !5
  %505 = load i32, ptr %504, align 4, !tbaa !9
  %506 = sub nsw i32 0, %505
  store i32 %506, ptr %71, align 4, !tbaa !9
  %507 = call i32 @xerbla_(ptr noundef @.str.8, ptr noundef %71, i32 noundef 7)
  store i32 1, ptr %92, align 4
  br label %869

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

511:                                              ; preds = %508
  %512 = load ptr, ptr %32, align 8, !tbaa !5
  %513 = load ptr, ptr %32, align 8, !tbaa !5
  %514 = load ptr, ptr %33, align 8, !tbaa !5
  %515 = load ptr, ptr %34, align 8, !tbaa !5
  %516 = load ptr, ptr %36, align 8, !tbaa !5
  %517 = load i32, ptr %60, align 4, !tbaa !9
  %518 = sext i32 %517 to i64
  %519 = getelementptr inbounds %struct.complex, ptr %516, i64 %518
  %520 = load ptr, ptr %37, align 8, !tbaa !5
  %521 = load ptr, ptr %42, align 8, !tbaa !5
  %522 = getelementptr inbounds float, ptr %521, i64 1
  %523 = load ptr, ptr %43, align 8, !tbaa !5
  %524 = getelementptr inbounds float, ptr %523, i64 1
  call void @cgbequb_(ptr noundef %512, ptr noundef %513, ptr noundef %514, ptr noundef %515, ptr noundef %519, ptr noundef %520, ptr noundef %522, ptr noundef %524, ptr noundef %88, ptr noundef %83, ptr noundef %77, ptr noundef %86)
  %525 = load i32, ptr %86, align 4, !tbaa !9
  %526 = icmp eq i32 %525, 0
  br i1 %526, label %527, label %562

527:                                              ; preds = %511
  %528 = load ptr, ptr %32, align 8, !tbaa !5
  %529 = load ptr, ptr %32, align 8, !tbaa !5
  %530 = load ptr, ptr %33, align 8, !tbaa !5
  %531 = load ptr, ptr %34, align 8, !tbaa !5
  %532 = load ptr, ptr %36, align 8, !tbaa !5
  %533 = load i32, ptr %60, align 4, !tbaa !9
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds %struct.complex, ptr %532, i64 %534
  %536 = load ptr, ptr %37, align 8, !tbaa !5
  %537 = load ptr, ptr %42, align 8, !tbaa !5
  %538 = getelementptr inbounds float, ptr %537, i64 1
  %539 = load ptr, ptr %43, align 8, !tbaa !5
  %540 = getelementptr inbounds float, ptr %539, i64 1
  %541 = load ptr, ptr %41, align 8, !tbaa !5
  call void @claqgb_(ptr noundef %528, ptr noundef %529, ptr noundef %530, ptr noundef %531, ptr noundef %535, ptr noundef %536, ptr noundef %538, ptr noundef %540, ptr noundef %88, ptr noundef %83, ptr noundef %77, ptr noundef %541)
  %542 = load ptr, ptr %41, align 8, !tbaa !5
  %543 = call i32 @lsame_(ptr noundef %542, ptr noundef @.str.3)
  %544 = icmp ne i32 %543, 0
  br i1 %544, label %549, label %545

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

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

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

559:                                              ; preds = %555, %549
  %560 = phi i1 [ true, %549 ], [ %558, %555 ]
  %561 = zext i1 %560 to i32
  store i32 %561, ptr %87, align 4, !tbaa !9
  br label %562

562:                                              ; preds = %559, %511
  %563 = load i32, ptr %91, align 4, !tbaa !9
  %564 = icmp ne i32 %563, 0
  br i1 %564, label %581, label %565

565:                                              ; preds = %562
  %566 = load ptr, ptr %32, align 8, !tbaa !5
  %567 = load i32, ptr %566, align 4, !tbaa !9
  store i32 %567, ptr %71, align 4, !tbaa !9
  store i32 1, ptr %79, align 4, !tbaa !9
  br label %568

568:                                              ; preds = %577, %565
  %569 = load i32, ptr %79, align 4, !tbaa !9
  %570 = load i32, ptr %71, align 4, !tbaa !9
  %571 = icmp sle i32 %569, %570
  br i1 %571, label %572, label %580

572:                                              ; preds = %568
  %573 = load ptr, ptr %42, align 8, !tbaa !5
  %574 = load i32, ptr %79, align 4, !tbaa !9
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds float, ptr %573, i64 %575
  store float 1.000000e+00, ptr %576, align 4, !tbaa !11
  br label %577

577:                                              ; preds = %572
  %578 = load i32, ptr %79, align 4, !tbaa !9
  %579 = add nsw i32 %578, 1
  store i32 %579, ptr %79, align 4, !tbaa !9
  br label %568, !llvm.loop !17

580:                                              ; preds = %568
  br label %581

581:                                              ; preds = %580, %562
  %582 = load i32, ptr %87, align 4, !tbaa !9
  %583 = icmp ne i32 %582, 0
  br i1 %583, label %600, label %584

584:                                              ; preds = %581
  %585 = load ptr, ptr %32, align 8, !tbaa !5
  %586 = load i32, ptr %585, align 4, !tbaa !9
  store i32 %586, ptr %71, align 4, !tbaa !9
  store i32 1, ptr %79, align 4, !tbaa !9
  br label %587

587:                                              ; preds = %596, %584
  %588 = load i32, ptr %79, align 4, !tbaa !9
  %589 = load i32, ptr %71, align 4, !tbaa !9
  %590 = icmp sle i32 %588, %589
  br i1 %590, label %591, label %599

591:                                              ; preds = %587
  %592 = load ptr, ptr %43, align 8, !tbaa !5
  %593 = load i32, ptr %79, align 4, !tbaa !9
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %592, i64 %594
  store float 1.000000e+00, ptr %595, align 4, !tbaa !11
  br label %596

596:                                              ; preds = %591
  %597 = load i32, ptr %79, align 4, !tbaa !9
  %598 = add nsw i32 %597, 1
  store i32 %598, ptr %79, align 4, !tbaa !9
  br label %587, !llvm.loop !18

599:                                              ; preds = %587
  br label %600

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

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

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

607:                                              ; preds = %604
  %608 = load ptr, ptr %32, align 8, !tbaa !5
  %609 = load ptr, ptr %35, align 8, !tbaa !5
  %610 = load ptr, ptr %42, align 8, !tbaa !5
  %611 = getelementptr inbounds float, ptr %610, i64 1
  %612 = load ptr, ptr %44, align 8, !tbaa !5
  %613 = load i32, ptr %64, align 4, !tbaa !9
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds %struct.complex, ptr %612, i64 %614
  %616 = load ptr, ptr %45, align 8, !tbaa !5
  call void @clascl2_(ptr noundef %608, ptr noundef %609, ptr noundef %611, ptr noundef %615, ptr noundef %616)
  br label %617

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

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

621:                                              ; preds = %618
  %622 = load ptr, ptr %32, align 8, !tbaa !5
  %623 = load ptr, ptr %35, align 8, !tbaa !5
  %624 = load ptr, ptr %43, align 8, !tbaa !5
  %625 = getelementptr inbounds float, ptr %624, i64 1
  %626 = load ptr, ptr %44, align 8, !tbaa !5
  %627 = load i32, ptr %64, align 4, !tbaa !9
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds %struct.complex, ptr %626, i64 %628
  %630 = load ptr, ptr %45, align 8, !tbaa !5
  call void @clascl2_(ptr noundef %622, ptr noundef %623, ptr noundef %625, ptr noundef %629, ptr noundef %630)
  br label %631

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

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

635:                                              ; preds = %632
  %636 = load i32, ptr %82, align 4, !tbaa !9
  %637 = icmp ne i32 %636, 0
  br i1 %637, label %638, label %737

638:                                              ; preds = %635, %632
  %639 = load ptr, ptr %32, align 8, !tbaa !5
  %640 = load i32, ptr %639, align 4, !tbaa !9
  store i32 %640, ptr %71, align 4, !tbaa !9
  store i32 1, ptr %79, align 4, !tbaa !9
  br label %641

641:                                              ; preds = %700, %638
  %642 = load i32, ptr %79, align 4, !tbaa !9
  %643 = load i32, ptr %71, align 4, !tbaa !9
  %644 = icmp sle i32 %642, %643
  br i1 %644, label %645, label %703

645:                                              ; preds = %641
  %646 = load ptr, ptr %33, align 8, !tbaa !5
  %647 = load i32, ptr %646, align 4, !tbaa !9
  %648 = shl i32 %647, 1
  %649 = load ptr, ptr %34, align 8, !tbaa !5
  %650 = load i32, ptr %649, align 4, !tbaa !9
  %651 = add nsw i32 %648, %650
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr %72, align 4, !tbaa !9
  %653 = load ptr, ptr %33, align 8, !tbaa !5
  %654 = load i32, ptr %653, align 4, !tbaa !9
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr %78, align 4, !tbaa !9
  br label %656

656:                                              ; preds = %696, %645
  %657 = load i32, ptr %78, align 4, !tbaa !9
  %658 = load i32, ptr %72, align 4, !tbaa !9
  %659 = icmp sle i32 %657, %658
  br i1 %659, label %660, label %699

660:                                              ; preds = %656
  %661 = load i32, ptr %78, align 4, !tbaa !9
  %662 = load i32, ptr %79, align 4, !tbaa !9
  %663 = load i32, ptr %61, align 4, !tbaa !9
  %664 = mul nsw i32 %662, %663
  %665 = add nsw i32 %661, %664
  store i32 %665, ptr %73, align 4, !tbaa !9
  %666 = load i32, ptr %78, align 4, !tbaa !9
  %667 = load ptr, ptr %33, align 8, !tbaa !5
  %668 = load i32, ptr %667, align 4, !tbaa !9
  %669 = sub nsw i32 %666, %668
  %670 = load i32, ptr %79, align 4, !tbaa !9
  %671 = load i32, ptr %59, align 4, !tbaa !9
  %672 = mul nsw i32 %670, %671
  %673 = add nsw i32 %669, %672
  store i32 %673, ptr %74, align 4, !tbaa !9
  %674 = load ptr, ptr %36, align 8, !tbaa !5
  %675 = load i32, ptr %74, align 4, !tbaa !9
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds %struct.complex, ptr %674, i64 %676
  %678 = getelementptr inbounds %struct.complex, ptr %677, i32 0, i32 0
  %679 = load float, ptr %678, align 4, !tbaa !19
  %680 = load ptr, ptr %38, align 8, !tbaa !5
  %681 = load i32, ptr %73, align 4, !tbaa !9
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds %struct.complex, ptr %680, i64 %682
  %684 = getelementptr inbounds %struct.complex, ptr %683, i32 0, i32 0
  store float %679, ptr %684, align 4, !tbaa !19
  %685 = load ptr, ptr %36, align 8, !tbaa !5
  %686 = load i32, ptr %74, align 4, !tbaa !9
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds %struct.complex, ptr %685, i64 %687
  %689 = getelementptr inbounds %struct.complex, ptr %688, i32 0, i32 1
  %690 = load float, ptr %689, align 4, !tbaa !21
  %691 = load ptr, ptr %38, align 8, !tbaa !5
  %692 = load i32, ptr %73, align 4, !tbaa !9
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds %struct.complex, ptr %691, i64 %693
  %695 = getelementptr inbounds %struct.complex, ptr %694, i32 0, i32 1
  store float %690, ptr %695, align 4, !tbaa !21
  br label %696

696:                                              ; preds = %660
  %697 = load i32, ptr %78, align 4, !tbaa !9
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr %78, align 4, !tbaa !9
  br label %656, !llvm.loop !22

699:                                              ; preds = %656
  br label %700

700:                                              ; preds = %699
  %701 = load i32, ptr %79, align 4, !tbaa !9
  %702 = add nsw i32 %701, 1
  store i32 %702, ptr %79, align 4, !tbaa !9
  br label %641, !llvm.loop !23

703:                                              ; preds = %641
  %704 = load ptr, ptr %32, align 8, !tbaa !5
  %705 = load ptr, ptr %32, align 8, !tbaa !5
  %706 = load ptr, ptr %33, align 8, !tbaa !5
  %707 = load ptr, ptr %34, align 8, !tbaa !5
  %708 = load ptr, ptr %38, align 8, !tbaa !5
  %709 = load i32, ptr %62, align 4, !tbaa !9
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds %struct.complex, ptr %708, i64 %710
  %712 = load ptr, ptr %39, align 8, !tbaa !5
  %713 = load ptr, ptr %40, align 8, !tbaa !5
  %714 = getelementptr inbounds i32, ptr %713, i64 1
  %715 = load ptr, ptr %58, align 8, !tbaa !5
  call void @cgbtrf_(ptr noundef %704, ptr noundef %705, ptr noundef %706, ptr noundef %707, ptr noundef %711, ptr noundef %712, ptr noundef %714, ptr noundef %715)
  %716 = load ptr, ptr %58, align 8, !tbaa !5
  %717 = load i32, ptr %716, align 4, !tbaa !9
  %718 = icmp sgt i32 %717, 0
  br i1 %718, label %719, label %736

719:                                              ; preds = %703
  %720 = load ptr, ptr %32, align 8, !tbaa !5
  %721 = load ptr, ptr %33, align 8, !tbaa !5
  %722 = load ptr, ptr %34, align 8, !tbaa !5
  %723 = load ptr, ptr %58, align 8, !tbaa !5
  %724 = load ptr, ptr %36, align 8, !tbaa !5
  %725 = load i32, ptr %60, align 4, !tbaa !9
  %726 = sext i32 %725 to i64
  %727 = getelementptr inbounds %struct.complex, ptr %724, i64 %726
  %728 = load ptr, ptr %37, align 8, !tbaa !5
  %729 = load ptr, ptr %38, align 8, !tbaa !5
  %730 = load i32, ptr %62, align 4, !tbaa !9
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds %struct.complex, ptr %729, i64 %731
  %733 = load ptr, ptr %39, align 8, !tbaa !5
  %734 = call float @cla_gbrpvgrw_(ptr noundef %720, ptr noundef %721, ptr noundef %722, ptr noundef %723, ptr noundef %727, ptr noundef %728, ptr noundef %732, ptr noundef %733)
  %735 = load ptr, ptr %49, align 8, !tbaa !5
  store float %734, ptr %735, align 4, !tbaa !11
  store i32 1, ptr %92, align 4
  br label %869

736:                                              ; preds = %703
  br label %737

737:                                              ; preds = %736, %635
  %738 = load ptr, ptr %32, align 8, !tbaa !5
  %739 = load ptr, ptr %33, align 8, !tbaa !5
  %740 = load ptr, ptr %34, align 8, !tbaa !5
  %741 = load ptr, ptr %32, align 8, !tbaa !5
  %742 = load ptr, ptr %36, align 8, !tbaa !5
  %743 = load i32, ptr %60, align 4, !tbaa !9
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds %struct.complex, ptr %742, i64 %744
  %746 = load ptr, ptr %37, align 8, !tbaa !5
  %747 = load ptr, ptr %38, align 8, !tbaa !5
  %748 = load i32, ptr %62, align 4, !tbaa !9
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds %struct.complex, ptr %747, i64 %749
  %751 = load ptr, ptr %39, align 8, !tbaa !5
  %752 = call float @cla_gbrpvgrw_(ptr noundef %738, ptr noundef %739, ptr noundef %740, ptr noundef %741, ptr noundef %745, ptr noundef %746, ptr noundef %750, ptr noundef %751)
  %753 = load ptr, ptr %49, align 8, !tbaa !5
  store float %752, ptr %753, align 4, !tbaa !11
  %754 = load ptr, ptr %32, align 8, !tbaa !5
  %755 = load ptr, ptr %35, align 8, !tbaa !5
  %756 = load ptr, ptr %44, align 8, !tbaa !5
  %757 = load i32, ptr %64, align 4, !tbaa !9
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds %struct.complex, ptr %756, i64 %758
  %760 = load ptr, ptr %45, align 8, !tbaa !5
  %761 = load ptr, ptr %46, align 8, !tbaa !5
  %762 = load i32, ptr %66, align 4, !tbaa !9
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds %struct.complex, ptr %761, i64 %763
  %765 = load ptr, ptr %47, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.9, ptr noundef %754, ptr noundef %755, ptr noundef %759, ptr noundef %760, ptr noundef %764, ptr noundef %765)
  %766 = load ptr, ptr %31, align 8, !tbaa !5
  %767 = load ptr, ptr %32, align 8, !tbaa !5
  %768 = load ptr, ptr %33, align 8, !tbaa !5
  %769 = load ptr, ptr %34, align 8, !tbaa !5
  %770 = load ptr, ptr %35, align 8, !tbaa !5
  %771 = load ptr, ptr %38, align 8, !tbaa !5
  %772 = load i32, ptr %62, align 4, !tbaa !9
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds %struct.complex, ptr %771, i64 %773
  %775 = load ptr, ptr %39, align 8, !tbaa !5
  %776 = load ptr, ptr %40, align 8, !tbaa !5
  %777 = getelementptr inbounds i32, ptr %776, i64 1
  %778 = load ptr, ptr %46, align 8, !tbaa !5
  %779 = load i32, ptr %66, align 4, !tbaa !9
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds %struct.complex, ptr %778, i64 %780
  %782 = load ptr, ptr %47, align 8, !tbaa !5
  %783 = load ptr, ptr %58, align 8, !tbaa !5
  call void @cgbtrs_(ptr noundef %766, ptr noundef %767, ptr noundef %768, ptr noundef %769, ptr noundef %770, ptr noundef %774, ptr noundef %775, ptr noundef %777, ptr noundef %781, ptr noundef %782, ptr noundef %783)
  %784 = load ptr, ptr %31, align 8, !tbaa !5
  %785 = load ptr, ptr %41, align 8, !tbaa !5
  %786 = load ptr, ptr %32, align 8, !tbaa !5
  %787 = load ptr, ptr %33, align 8, !tbaa !5
  %788 = load ptr, ptr %34, align 8, !tbaa !5
  %789 = load ptr, ptr %35, align 8, !tbaa !5
  %790 = load ptr, ptr %36, align 8, !tbaa !5
  %791 = load i32, ptr %60, align 4, !tbaa !9
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds %struct.complex, ptr %790, i64 %792
  %794 = load ptr, ptr %37, align 8, !tbaa !5
  %795 = load ptr, ptr %38, align 8, !tbaa !5
  %796 = load i32, ptr %62, align 4, !tbaa !9
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds %struct.complex, ptr %795, i64 %797
  %799 = load ptr, ptr %39, align 8, !tbaa !5
  %800 = load ptr, ptr %40, align 8, !tbaa !5
  %801 = getelementptr inbounds i32, ptr %800, i64 1
  %802 = load ptr, ptr %42, align 8, !tbaa !5
  %803 = getelementptr inbounds float, ptr %802, i64 1
  %804 = load ptr, ptr %43, align 8, !tbaa !5
  %805 = getelementptr inbounds float, ptr %804, i64 1
  %806 = load ptr, ptr %44, align 8, !tbaa !5
  %807 = load i32, ptr %64, align 4, !tbaa !9
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds %struct.complex, ptr %806, i64 %808
  %810 = load ptr, ptr %45, align 8, !tbaa !5
  %811 = load ptr, ptr %46, align 8, !tbaa !5
  %812 = load i32, ptr %66, align 4, !tbaa !9
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds %struct.complex, ptr %811, i64 %813
  %815 = load ptr, ptr %47, align 8, !tbaa !5
  %816 = load ptr, ptr %48, align 8, !tbaa !5
  %817 = load ptr, ptr %50, align 8, !tbaa !5
  %818 = getelementptr inbounds float, ptr %817, i64 1
  %819 = load ptr, ptr %51, align 8, !tbaa !5
  %820 = load ptr, ptr %52, align 8, !tbaa !5
  %821 = load i32, ptr %68, align 4, !tbaa !9
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds float, ptr %820, i64 %822
  %824 = load ptr, ptr %53, align 8, !tbaa !5
  %825 = load i32, ptr %70, align 4, !tbaa !9
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds float, ptr %824, i64 %826
  %828 = load ptr, ptr %54, align 8, !tbaa !5
  %829 = load ptr, ptr %55, align 8, !tbaa !5
  %830 = getelementptr inbounds float, ptr %829, i64 1
  %831 = load ptr, ptr %56, align 8, !tbaa !5
  %832 = getelementptr inbounds %struct.complex, ptr %831, i64 1
  %833 = load ptr, ptr %57, align 8, !tbaa !5
  %834 = getelementptr inbounds float, ptr %833, i64 1
  %835 = load ptr, ptr %58, align 8, !tbaa !5
  call void @cgbrfsx_(ptr noundef %784, ptr noundef %785, ptr noundef %786, ptr noundef %787, ptr noundef %788, ptr noundef %789, ptr noundef %793, ptr noundef %794, ptr noundef %798, ptr noundef %799, ptr noundef %801, ptr noundef %803, ptr noundef %805, ptr noundef %809, ptr noundef %810, ptr noundef %814, ptr noundef %815, ptr noundef %816, ptr noundef %818, ptr noundef %819, ptr noundef %823, ptr noundef %827, ptr noundef %828, ptr noundef %830, ptr noundef %832, ptr noundef %834, ptr noundef %835)
  %836 = load i32, ptr %87, align 4, !tbaa !9
  %837 = icmp ne i32 %836, 0
  br i1 %837, label %838, label %851

838:                                              ; preds = %737
  %839 = load i32, ptr %89, align 4, !tbaa !9
  %840 = icmp ne i32 %839, 0
  br i1 %840, label %841, label %851

841:                                              ; preds = %838
  %842 = load ptr, ptr %32, align 8, !tbaa !5
  %843 = load ptr, ptr %35, align 8, !tbaa !5
  %844 = load ptr, ptr %43, align 8, !tbaa !5
  %845 = getelementptr inbounds float, ptr %844, i64 1
  %846 = load ptr, ptr %46, align 8, !tbaa !5
  %847 = load i32, ptr %66, align 4, !tbaa !9
  %848 = sext i32 %847 to i64
  %849 = getelementptr inbounds %struct.complex, ptr %846, i64 %848
  %850 = load ptr, ptr %47, align 8, !tbaa !5
  call void @clascl2_(ptr noundef %842, ptr noundef %843, ptr noundef %845, ptr noundef %849, ptr noundef %850)
  br label %868

851:                                              ; preds = %838, %737
  %852 = load i32, ptr %91, align 4, !tbaa !9
  %853 = icmp ne i32 %852, 0
  br i1 %853, label %854, label %867

854:                                              ; preds = %851
  %855 = load i32, ptr %89, align 4, !tbaa !9
  %856 = icmp ne i32 %855, 0
  br i1 %856, label %867, label %857

857:                                              ; preds = %854
  %858 = load ptr, ptr %32, align 8, !tbaa !5
  %859 = load ptr, ptr %35, align 8, !tbaa !5
  %860 = load ptr, ptr %42, align 8, !tbaa !5
  %861 = getelementptr inbounds float, ptr %860, i64 1
  %862 = load ptr, ptr %46, align 8, !tbaa !5
  %863 = load i32, ptr %66, align 4, !tbaa !9
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds %struct.complex, ptr %862, i64 %864
  %866 = load ptr, ptr %47, align 8, !tbaa !5
  call void @clascl2_(ptr noundef %858, ptr noundef %859, ptr noundef %861, ptr noundef %865, ptr noundef %866)
  br label %867

867:                                              ; preds = %857, %854, %851
  br label %868

868:                                              ; preds = %867, %841
  store i32 1, ptr %92, align 4
  br label %869

869:                                              ; preds = %868, %719, %503
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #3
  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 4, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #3
  ret void
}

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

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

declare float @slamch_(ptr noundef) #2

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

declare void @cgbequb_(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 @claqgb_(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 @clascl2_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"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}
!19 = !{!20, !12, i64 0}
!20 = !{!"", !12, i64 0, !12, i64 4}
!21 = !{!20, !12, i64 4}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !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 [13 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [5 x i8], align 1

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

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

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

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

55:                                               ; preds = %52, %50
  %56 = phi i1 [ true, %50 ], [ %54, %52 ]
  %57 = zext i1 %56 to i32
  %58 = tail call i32 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.5) #4
  %.not352 = icmp eq i32 %58, 0
  br i1 %.not352, label %59, label %62

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

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

66:                                               ; preds = %.thread, %62
  %.0380 = phi i32 [ 0, %.thread ], [ %57, %62 ]
  %.0336378 = phi i32 [ 0, %.thread ], [ %64, %62 ]
  %.not354 = icmp eq i32 %45, 0
  br i1 %.not354, label %67, label %71

67:                                               ; preds = %66
  %68 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.7) #4
  %.not355 = icmp eq i32 %68, 0
  br i1 %.not355, label %69, label %71

69:                                               ; preds = %67
  %70 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.5) #4
  %.not356 = icmp eq i32 %70, 0
  br i1 %.not356, label %.thread387.sink.split, label %71

71:                                               ; preds = %69, %67, %66
  %72 = load i32, ptr %2, align 4, !tbaa !5
  %73 = icmp slt i32 %72, 0
  br i1 %73, label %.thread387.sink.split, label %74

74:                                               ; preds = %71
  %75 = load i32, ptr %3, align 4, !tbaa !5
  %76 = icmp slt i32 %75, 0
  br i1 %76, label %.thread387.sink.split, label %77

77:                                               ; preds = %74
  %78 = load i32, ptr %4, align 4, !tbaa !5
  %79 = icmp slt i32 %78, 0
  br i1 %79, label %.thread387.sink.split, label %80

80:                                               ; preds = %77
  %81 = load i32, ptr %5, align 4, !tbaa !5
  %82 = icmp slt i32 %81, 0
  br i1 %82, label %.thread387.sink.split, label %83

83:                                               ; preds = %80
  %84 = load i32, ptr %7, align 4, !tbaa !5
  %85 = add nuw nsw i32 %78, %75
  %.not357 = icmp sgt i32 %84, %85
  br i1 %.not357, label %86, label %.thread387.sink.split

86:                                               ; preds = %83
  %87 = load i32, ptr %9, align 4, !tbaa !5
  %88 = shl nuw i32 %75, 1
  %89 = add nsw i32 %78, %88
  %.not358 = icmp sgt i32 %87, %89
  br i1 %.not358, label %90, label %.thread387.sink.split

90:                                               ; preds = %86
  %91 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.6) #4
  %92 = icmp eq i32 %91, 0
  %93 = icmp ne i32 %.0380, 0
  %or.cond5 = select i1 %92, i1 true, i1 %93
  %94 = icmp ne i32 %.0336378, 0
  %or.cond7 = select i1 %or.cond5, i1 true, i1 %94
  br i1 %or.cond7, label %97, label %95

95:                                               ; preds = %90
  %96 = tail call i32 @lsame_(ptr noundef %11, ptr noundef nonnull @.str) #4
  %.not359 = icmp eq i32 %96, 0
  br i1 %.not359, label %.thread387.sink.split, label %..thread382_crit_edge

..thread382_crit_edge:                            ; preds = %95
  %.pr.pre = load i32, ptr %28, align 4, !tbaa !5
  br label %.thread382

97:                                               ; preds = %90
  br i1 %93, label %98, label %130

98:                                               ; preds = %97
  %99 = load i32, ptr %2, align 4, !tbaa !5
  %.not360411 = icmp slt i32 %99, 1
  br i1 %.not360411, label %._crit_edge, label %.lr.ph.preheader

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

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

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader.new ], [ %indvars.iv.next.1, %.lr.ph ]
  %.0339414 = phi float [ 0.000000e+00, %.lr.ph.preheader.new ], [ %113, %.lr.ph ]
  %.0341413 = phi float [ %47, %.lr.ph.preheader.new ], [ %111, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %102 = getelementptr inbounds float, ptr %41, i64 %indvars.iv
  %103 = load float, ptr %102, align 4, !tbaa !10
  %104 = fcmp ole float %.0341413, %103
  %105 = select i1 %104, float %.0341413, float %103
  %106 = fcmp oge float %.0339414, %103
  %107 = select i1 %106, float %.0339414, float %103
  %108 = getelementptr float, ptr %12, i64 %indvars.iv
  %109 = load float, ptr %108, align 4, !tbaa !10
  %110 = fcmp ole float %105, %109
  %111 = select i1 %110, float %105, float %109
  %112 = fcmp oge float %107, %109
  %113 = select i1 %112, float %107, float %109
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !12

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph, %.lr.ph.preheader
  %.lcssa540.ph = phi float [ poison, %.lr.ph.preheader ], [ %111, %.lr.ph ]
  %.lcssa539.ph = phi float [ poison, %.lr.ph.preheader ], [ %113, %.lr.ph ]
  %indvars.iv.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next.1, %.lr.ph ]
  %.0339414.unr = phi float [ 0.000000e+00, %.lr.ph.preheader ], [ %113, %.lr.ph ]
  %.0341413.unr = phi float [ %47, %.lr.ph.preheader ], [ %111, %.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
  %114 = getelementptr inbounds float, ptr %41, i64 %indvars.iv.unr
  %115 = load float, ptr %114, align 4, !tbaa !10
  %116 = fcmp ole float %.0341413.unr, %115
  %117 = select i1 %116, float %.0341413.unr, float %115
  %118 = fcmp oge float %.0339414.unr, %115
  %119 = select i1 %118, float %.0339414.unr, float %115
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.loopexit.unr-lcssa, %98
  %.0341.lcssa = phi float [ %47, %98 ], [ %.lcssa540.ph, %._crit_edge.loopexit.unr-lcssa ], [ %117, %.lr.ph.epil ]
  %.0339.lcssa = phi float [ 0.000000e+00, %98 ], [ %.lcssa539.ph, %._crit_edge.loopexit.unr-lcssa ], [ %119, %.lr.ph.epil ]
  %120 = fcmp ugt float %.0341.lcssa, 0.000000e+00
  br i1 %120, label %121, label %.thread387.sink.split

121:                                              ; preds = %._crit_edge
  %122 = icmp sgt i32 %99, 0
  br i1 %122, label %123, label %129

123:                                              ; preds = %121
  %124 = fcmp oge float %.0341.lcssa, %46
  %125 = select i1 %124, float %.0341.lcssa, float %46
  %126 = fcmp ole float %.0339.lcssa, %47
  %127 = select i1 %126, float %.0339.lcssa, float %47
  %128 = fdiv float %125, %127
  store float %128, ptr %34, align 4, !tbaa !10
  br label %130

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

130:                                              ; preds = %129, %123, %97
  %.pr.pre472.pr = load i32, ptr %28, align 4, !tbaa !5
  br i1 %94, label %131, label %.thread382

131:                                              ; preds = %130
  %132 = icmp eq i32 %.pr.pre472.pr, 0
  br i1 %132, label %133, label %.thread387

133:                                              ; preds = %131
  %134 = load i32, ptr %2, align 4, !tbaa !5
  %.not361416 = icmp slt i32 %134, 1
  br i1 %.not361416, label %._crit_edge422, label %.lr.ph421.preheader

.lr.ph421.preheader:                              ; preds = %133
  %135 = zext nneg i32 %134 to i64
  %xtraiter543 = and i64 %135, 1
  %136 = icmp eq i32 %134, 1
  br i1 %136, label %._crit_edge422.loopexit.unr-lcssa, label %.lr.ph421.preheader.new

.lr.ph421.preheader.new:                          ; preds = %.lr.ph421.preheader
  %unroll_iter547 = and i64 %135, 2147483646
  br label %.lr.ph421

.lr.ph421:                                        ; preds = %.lr.ph421, %.lr.ph421.preheader.new
  %indvars.iv448 = phi i64 [ 1, %.lr.ph421.preheader.new ], [ %indvars.iv.next449.1, %.lr.ph421 ]
  %.1340419 = phi float [ 0.000000e+00, %.lr.ph421.preheader.new ], [ %148, %.lr.ph421 ]
  %.1342418 = phi float [ %47, %.lr.ph421.preheader.new ], [ %146, %.lr.ph421 ]
  %niter548 = phi i64 [ 0, %.lr.ph421.preheader.new ], [ %niter548.next.1, %.lr.ph421 ]
  %137 = getelementptr inbounds float, ptr %42, i64 %indvars.iv448
  %138 = load float, ptr %137, align 4, !tbaa !10
  %139 = fcmp ole float %.1342418, %138
  %140 = select i1 %139, float %.1342418, float %138
  %141 = fcmp oge float %.1340419, %138
  %142 = select i1 %141, float %.1340419, float %138
  %143 = getelementptr float, ptr %13, i64 %indvars.iv448
  %144 = load float, ptr %143, align 4, !tbaa !10
  %145 = fcmp ole float %140, %144
  %146 = select i1 %145, float %140, float %144
  %147 = fcmp oge float %142, %144
  %148 = select i1 %147, float %142, float %144
  %indvars.iv.next449.1 = add nuw nsw i64 %indvars.iv448, 2
  %niter548.next.1 = add i64 %niter548, 2
  %niter548.ncmp.1 = icmp eq i64 %niter548.next.1, %unroll_iter547
  br i1 %niter548.ncmp.1, label %._crit_edge422.loopexit.unr-lcssa, label %.lr.ph421, !llvm.loop !14

._crit_edge422.loopexit.unr-lcssa:                ; preds = %.lr.ph421, %.lr.ph421.preheader
  %.lcssa538.ph = phi float [ poison, %.lr.ph421.preheader ], [ %146, %.lr.ph421 ]
  %.lcssa.ph = phi float [ poison, %.lr.ph421.preheader ], [ %148, %.lr.ph421 ]
  %indvars.iv448.unr = phi i64 [ 1, %.lr.ph421.preheader ], [ %indvars.iv.next449.1, %.lr.ph421 ]
  %.1340419.unr = phi float [ 0.000000e+00, %.lr.ph421.preheader ], [ %148, %.lr.ph421 ]
  %.1342418.unr = phi float [ %47, %.lr.ph421.preheader ], [ %146, %.lr.ph421 ]
  %lcmp.mod544.not = icmp eq i64 %xtraiter543, 0
  br i1 %lcmp.mod544.not, label %._crit_edge422, label %.lr.ph421.epil

.lr.ph421.epil:                                   ; preds = %._crit_edge422.loopexit.unr-lcssa
  %149 = getelementptr inbounds float, ptr %42, i64 %indvars.iv448.unr
  %150 = load float, ptr %149, align 4, !tbaa !10
  %151 = fcmp ole float %.1342418.unr, %150
  %152 = select i1 %151, float %.1342418.unr, float %150
  %153 = fcmp oge float %.1340419.unr, %150
  %154 = select i1 %153, float %.1340419.unr, float %150
  br label %._crit_edge422

._crit_edge422:                                   ; preds = %.lr.ph421.epil, %._crit_edge422.loopexit.unr-lcssa, %133
  %.1342.lcssa = phi float [ %47, %133 ], [ %.lcssa538.ph, %._crit_edge422.loopexit.unr-lcssa ], [ %152, %.lr.ph421.epil ]
  %.1340.lcssa = phi float [ 0.000000e+00, %133 ], [ %.lcssa.ph, %._crit_edge422.loopexit.unr-lcssa ], [ %154, %.lr.ph421.epil ]
  %155 = fcmp ugt float %.1342.lcssa, 0.000000e+00
  br i1 %155, label %156, label %.thread387.sink.split

156:                                              ; preds = %._crit_edge422
  %157 = icmp sgt i32 %134, 0
  br i1 %157, label %158, label %164

158:                                              ; preds = %156
  %159 = fcmp oge float %.1342.lcssa, %46
  %160 = select i1 %159, float %.1342.lcssa, float %46
  %161 = fcmp ole float %.1340.lcssa, %47
  %162 = select i1 %161, float %.1340.lcssa, float %47
  %163 = fdiv float %160, %162
  store float %163, ptr %32, align 4, !tbaa !10
  br label %.thread382.thread

164:                                              ; preds = %156
  store float 1.000000e+00, ptr %32, align 4, !tbaa !10
  br label %.thread382.thread

.thread382:                                       ; preds = %..thread382_crit_edge, %130
  %.pr385.pr = phi i32 [ %.pr.pre, %..thread382_crit_edge ], [ %.pr.pre472.pr, %130 ]
  %165 = icmp eq i32 %.pr385.pr, 0
  br i1 %165, label %.thread382.thread, label %.thread387

.thread382.thread:                                ; preds = %158, %164, %.thread382
  %166 = load i32, ptr %15, align 4, !tbaa !5
  %167 = load i32, ptr %2, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.smax.i32(i32 %167, i32 1)
  %168 = icmp slt i32 %166, %spec.select
  br i1 %168, label %.thread387.sink.split, label %169

169:                                              ; preds = %.thread382.thread
  %170 = load i32, ptr %17, align 4, !tbaa !5
  %171 = icmp slt i32 %170, %spec.select
  br i1 %171, label %.thread387.sink.split, label %.thread383

.thread387.sink.split:                            ; preds = %169, %.thread382.thread, %._crit_edge422, %._crit_edge, %95, %86, %83, %80, %77, %74, %71, %69, %62
  %.sink = phi i32 [ -1, %62 ], [ -2, %69 ], [ -3, %71 ], [ -4, %74 ], [ -5, %77 ], [ -6, %80 ], [ -8, %83 ], [ -10, %86 ], [ -12, %95 ], [ -13, %._crit_edge ], [ -14, %._crit_edge422 ], [ -15, %.thread382.thread ], [ -16, %169 ]
  store i32 %.sink, ptr %28, align 4, !tbaa !5
  br label %.thread387

.thread387:                                       ; preds = %.thread387.sink.split, %131, %.thread382
  %172 = phi i32 [ %.pr385.pr, %.thread382 ], [ %.pr.pre472.pr, %131 ], [ %.sink, %.thread387.sink.split ]
  %173 = sub nsw i32 0, %172
  store i32 %173, ptr %30, align 4, !tbaa !5
  %174 = call i32 @xerbla_(ptr noundef nonnull @.str.8, ptr noundef nonnull %30, i32 noundef 7) #4
  br label %326

.thread383:                                       ; preds = %169
  br i1 %49, label %175, label %.loopexit

175:                                              ; preds = %.thread383
  call void @cgbequb_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull %33) #4
  %176 = load i32, ptr %33, align 4, !tbaa !5
  %177 = icmp eq i32 %176, 0
  br i1 %177, label %178, label %191

178:                                              ; preds = %175
  call void @claqgb_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %34, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef %11) #4
  %179 = call i32 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.3) #4
  %.not363 = icmp eq i32 %179, 0
  br i1 %.not363, label %180, label %184

180:                                              ; preds = %178
  %181 = call i32 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.4) #4
  %182 = icmp ne i32 %181, 0
  %183 = zext i1 %182 to i32
  br label %184

184:                                              ; preds = %180, %178
  %185 = phi i32 [ 1, %178 ], [ %183, %180 ]
  %186 = call i32 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.5) #4
  %.not364 = icmp eq i32 %186, 0
  br i1 %.not364, label %187, label %191

187:                                              ; preds = %184
  %188 = call i32 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.4) #4
  %189 = icmp ne i32 %188, 0
  %190 = zext i1 %189 to i32
  br label %191

191:                                              ; preds = %184, %187, %175
  %.1337 = phi i32 [ %.0336378, %175 ], [ 1, %184 ], [ %190, %187 ]
  %.1 = phi i32 [ %.0380, %175 ], [ %185, %184 ], [ %185, %187 ]
  %.not365 = icmp eq i32 %.1, 0
  br i1 %.not365, label %192, label %.loopexit410

192:                                              ; preds = %191
  %193 = load i32, ptr %2, align 4, !tbaa !5
  %.not366425 = icmp slt i32 %193, 1
  br i1 %.not366425, label %.loopexit410, label %.lr.ph428.preheader

.lr.ph428.preheader:                              ; preds = %192
  %194 = add nuw i32 %193, 1
  %wide.trip.count456 = zext i32 %194 to i64
  %195 = zext nneg i32 %193 to i64
  %min.iters.check = icmp ult i32 %193, 8
  br i1 %min.iters.check, label %.lr.ph428.preheader537, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph428.preheader
  %n.vec = and i64 %195, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

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

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %195
  br i1 %cmp.n, label %.loopexit410, label %.lr.ph428.preheader537

.lr.ph428.preheader537:                           ; preds = %middle.block, %.lr.ph428.preheader
  %indvars.iv453.ph = phi i64 [ 1, %.lr.ph428.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph428

.lr.ph428:                                        ; preds = %.lr.ph428.preheader537, %.lr.ph428
  %indvars.iv453 = phi i64 [ %indvars.iv.next454, %.lr.ph428 ], [ %indvars.iv453.ph, %.lr.ph428.preheader537 ]
  %199 = getelementptr inbounds float, ptr %41, i64 %indvars.iv453
  store float 1.000000e+00, ptr %199, align 4, !tbaa !10
  %indvars.iv.next454 = add nuw nsw i64 %indvars.iv453, 1
  %exitcond457.not = icmp eq i64 %indvars.iv.next454, %wide.trip.count456
  br i1 %exitcond457.not, label %.loopexit410, label %.lr.ph428, !llvm.loop !18

.loopexit410:                                     ; preds = %.lr.ph428, %middle.block, %192, %191
  %.not367 = icmp eq i32 %.1337, 0
  br i1 %.not367, label %200, label %.thread391

200:                                              ; preds = %.loopexit410
  %201 = load i32, ptr %2, align 4, !tbaa !5
  %.not368429 = icmp slt i32 %201, 1
  br i1 %.not368429, label %.loopexit, label %.lr.ph432.preheader

.lr.ph432.preheader:                              ; preds = %200
  %202 = add nuw i32 %201, 1
  %wide.trip.count461 = zext i32 %202 to i64
  %203 = zext nneg i32 %201 to i64
  %min.iters.check492 = icmp ult i32 %201, 8
  br i1 %min.iters.check492, label %.lr.ph432.preheader536, label %vector.ph493

vector.ph493:                                     ; preds = %.lr.ph432.preheader
  %n.vec495 = and i64 %203, 2147483640
  %ind.end496 = or disjoint i64 %n.vec495, 1
  br label %vector.body498

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

middle.block490:                                  ; preds = %vector.body498
  %cmp.n502 = icmp eq i64 %n.vec495, %203
  br i1 %cmp.n502, label %.loopexit, label %.lr.ph432.preheader536

.lr.ph432.preheader536:                           ; preds = %middle.block490, %.lr.ph432.preheader
  %indvars.iv458.ph = phi i64 [ 1, %.lr.ph432.preheader ], [ %ind.end496, %middle.block490 ]
  br label %.lr.ph432

.lr.ph432:                                        ; preds = %.lr.ph432.preheader536, %.lr.ph432
  %indvars.iv458 = phi i64 [ %indvars.iv.next459, %.lr.ph432 ], [ %indvars.iv458.ph, %.lr.ph432.preheader536 ]
  %207 = getelementptr inbounds float, ptr %42, i64 %indvars.iv458
  store float 1.000000e+00, ptr %207, align 4, !tbaa !10
  %indvars.iv.next459 = add nuw nsw i64 %indvars.iv458, 1
  %exitcond462.not = icmp eq i64 %indvars.iv.next459, %wide.trip.count461
  br i1 %exitcond462.not, label %.loopexit, label %.lr.ph432, !llvm.loop !20

.loopexit:                                        ; preds = %.lr.ph432, %middle.block490, %200, %.thread383
  %.2338 = phi i32 [ %.0336378, %.thread383 ], [ 0, %200 ], [ 0, %middle.block490 ], [ 0, %.lr.ph432 ]
  %.2 = phi i32 [ %.0380, %.thread383 ], [ %.1, %200 ], [ %.1, %middle.block490 ], [ %.1, %.lr.ph432 ]
  br i1 %.not354, label %209, label %208

.thread391:                                       ; preds = %.loopexit410
  br i1 %.not354, label %.sink.split, label %208

208:                                              ; preds = %.thread391, %.loopexit
  %.2397 = phi i32 [ %.1, %.thread391 ], [ %.2, %.loopexit ]
  %.2338396 = phi i32 [ 1, %.thread391 ], [ %.2338, %.loopexit ]
  %.not370 = icmp eq i32 %.2397, 0
  br i1 %.not370, label %210, label %.sink.split

209:                                              ; preds = %.loopexit
  %.not369 = icmp eq i32 %.2338, 0
  br i1 %.not369, label %210, label %.sink.split

.sink.split:                                      ; preds = %209, %.thread391, %208
  %.sink486 = phi ptr [ %12, %208 ], [ %13, %.thread391 ], [ %13, %209 ]
  %.ph485 = phi i1 [ true, %208 ], [ false, %.thread391 ], [ false, %209 ]
  %.2398.ph = phi i32 [ 1, %208 ], [ %.1, %.thread391 ], [ %.2, %209 ]
  %.2338394.ph = phi i32 [ %.2338396, %208 ], [ 1, %.thread391 ], [ 1, %209 ]
  call void @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %.sink486, ptr noundef %14, ptr noundef nonnull %15) #4
  br label %210

210:                                              ; preds = %.sink.split, %209, %208
  %211 = phi i1 [ false, %209 ], [ true, %208 ], [ %.ph485, %.sink.split ]
  %.2398 = phi i32 [ %.2, %209 ], [ 0, %208 ], [ %.2398.ph, %.sink.split ]
  %.2338394 = phi i32 [ 0, %209 ], [ %.2338396, %208 ], [ %.2338394.ph, %.sink.split ]
  br i1 %or.cond, label %212, label %319

212:                                              ; preds = %210
  %213 = load i32, ptr %2, align 4, !tbaa !5
  %.not371438 = icmp slt i32 %213, 1
  br i1 %.not371438, label %._crit_edge442, label %.lr.ph441

.lr.ph441:                                        ; preds = %212
  %214 = load i32, ptr %3, align 4, !tbaa !5
  %215 = shl i32 %214, 1
  %216 = load i32, ptr %4, align 4, !tbaa !5
  %217 = add i32 %215, %216
  %.not373433 = icmp sgt i32 %214, %217
  br i1 %.not373433, label %._crit_edge442, label %.lr.ph436.preheader

.lr.ph436.preheader:                              ; preds = %.lr.ph441
  %218 = sext i32 %214 to i64
  %219 = add i32 %217, 1
  %220 = sext i32 %38 to i64
  %221 = add nuw i32 %213, 1
  %wide.trip.count470 = zext i32 %221 to i64
  %222 = add i32 %216, %214
  %223 = add i32 %35, 1
  %224 = shl nsw i64 %218, 3
  %225 = shl nsw i64 %220, 3
  %226 = shl nsw i64 %39, 3
  %227 = getelementptr i8, ptr %8, i64 %224
  %228 = getelementptr i8, ptr %227, i64 %225
  %229 = getelementptr i8, ptr %228, i64 %226
  %scevgep = getelementptr i8, ptr %229, i64 8
  %230 = shl nuw nsw i64 %wide.trip.count470, 3
  %231 = add nsw i64 %230, -8
  %232 = mul i64 %231, %220
  %233 = add i32 %216, %214
  %234 = zext i32 %233 to i64
  %235 = shl nuw nsw i64 %234, 3
  %236 = getelementptr i8, ptr %8, i64 %232
  %237 = getelementptr i8, ptr %236, i64 %224
  %238 = getelementptr i8, ptr %237, i64 %226
  %239 = getelementptr i8, ptr %238, i64 %235
  %scevgep503 = getelementptr i8, ptr %239, i64 12
  %240 = shl nsw i64 %36, 3
  %scevgep504 = getelementptr i8, ptr %6, i64 %240
  %241 = add i32 %35, 1
  %242 = add nsw i64 %240, %235
  %243 = or disjoint i64 %242, 4
  %scevgep506 = getelementptr i8, ptr %6, i64 %243
  %244 = getelementptr i8, ptr %8, i64 %224
  %245 = getelementptr i8, ptr %244, i64 %225
  %246 = getelementptr i8, ptr %245, i64 %226
  %scevgep508 = getelementptr i8, ptr %246, i64 12
  %247 = getelementptr i8, ptr %8, i64 %232
  %248 = getelementptr i8, ptr %247, i64 %224
  %249 = getelementptr i8, ptr %248, i64 %226
  %250 = getelementptr i8, ptr %249, i64 %235
  %scevgep509 = getelementptr i8, ptr %250, i64 16
  %251 = or disjoint i64 %240, 4
  %scevgep510 = getelementptr i8, ptr %6, i64 %251
  %252 = getelementptr i8, ptr %6, i64 %240
  %253 = getelementptr i8, ptr %252, i64 %235
  %scevgep512 = getelementptr i8, ptr %253, i64 8
  %254 = add i32 %216, %214
  %255 = zext i32 %254 to i64
  %256 = add nuw nsw i64 %255, 1
  %257 = add i32 %216, %215
  %258 = add i32 %257, 1
  %259 = add i32 %216, %215
  %min.iters.check520 = icmp ult i32 %254, 9
  %stride.check517 = icmp slt i32 %38, 0
  %n.vec523 = and i64 %256, 8589934588
  %ind.end524 = add nsw i64 %n.vec523, %218
  %cmp.n535 = icmp eq i64 %256, %n.vec523
  br label %.lr.ph436

.lr.ph436:                                        ; preds = %.lr.ph436.preheader, %._crit_edge437
  %indvar = phi i32 [ 0, %.lr.ph436.preheader ], [ %indvar.next, %._crit_edge437 ]
  %indvars.iv467 = phi i64 [ 1, %.lr.ph436.preheader ], [ %indvars.iv.next468, %._crit_edge437 ]
  %260 = mul i32 %35, %indvar
  %261 = add i32 %241, %260
  %262 = sext i32 %261 to i64
  %263 = shl nsw i64 %262, 3
  %scevgep505 = getelementptr i8, ptr %scevgep504, i64 %263
  %scevgep507 = getelementptr i8, ptr %scevgep506, i64 %263
  %scevgep511 = getelementptr i8, ptr %scevgep510, i64 %263
  %scevgep513 = getelementptr i8, ptr %scevgep512, i64 %263
  %264 = mul nsw i64 %indvars.iv467, %220
  %265 = trunc i64 %indvars.iv467 to i32
  %266 = mul i32 %35, %265
  %267 = sub i32 %266, %214
  %invariant.gep = getelementptr %struct.complex, ptr %40, i64 %264
  br i1 %min.iters.check520, label %scalar.ph519.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph436
  %268 = mul i32 %35, %indvar
  %269 = add i32 %223, %268
  %270 = add i32 %269, %222
  %271 = icmp slt i32 %270, %269
  br i1 %271, label %scalar.ph519.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %bound0 = icmp ult ptr %scevgep, %scevgep507
  %bound1 = icmp ult ptr %scevgep505, %scevgep503
  %found.conflict = and i1 %bound0, %bound1
  %bound0514 = icmp ult ptr %scevgep508, %scevgep513
  %bound1515 = icmp ult ptr %scevgep511, %scevgep509
  %found.conflict516 = and i1 %bound0514, %bound1515
  %272 = or i1 %found.conflict516, %stride.check517
  %conflict.rdx = or i1 %found.conflict, %272
  br i1 %conflict.rdx, label %scalar.ph519.preheader, label %vector.body526

vector.body526:                                   ; preds = %vector.memcheck, %vector.body526
  %index527 = phi i64 [ %index.next534, %vector.body526 ], [ 0, %vector.memcheck ]
  %offset.idx528 = add i64 %index527, %218
  %273 = add nsw i64 %offset.idx528, 1
  %274 = add i64 %offset.idx528, 3
  %275 = trunc i64 %273 to i32
  %276 = trunc i64 %274 to i32
  %277 = add i32 %267, %275
  %278 = add i32 %267, %276
  %279 = sext i32 %277 to i64
  %280 = sext i32 %278 to i64
  %281 = getelementptr inbounds %struct.complex, ptr %37, i64 %279
  %282 = getelementptr inbounds %struct.complex, ptr %37, i64 %280
  %wide.vec = load <4 x float>, ptr %281, align 4, !tbaa !10
  %wide.vec529 = load <4 x float>, ptr %282, align 4, !tbaa !10
  %283 = getelementptr %struct.complex, ptr %invariant.gep, i64 %273
  %284 = getelementptr %struct.complex, ptr %invariant.gep, i64 %274
  store <4 x float> %wide.vec, ptr %283, align 4, !tbaa !10
  store <4 x float> %wide.vec529, ptr %284, align 4, !tbaa !10
  %index.next534 = add nuw i64 %index527, 4
  %285 = icmp eq i64 %index.next534, %n.vec523
  br i1 %285, label %middle.block518, label %vector.body526, !llvm.loop !21

middle.block518:                                  ; preds = %vector.body526
  br i1 %cmp.n535, label %._crit_edge437, label %scalar.ph519.preheader

scalar.ph519.preheader:                           ; preds = %middle.block518, %vector.memcheck, %vector.scevcheck, %.lr.ph436
  %indvars.iv463.ph = phi i64 [ %218, %vector.memcheck ], [ %218, %vector.scevcheck ], [ %218, %.lr.ph436 ], [ %ind.end524, %middle.block518 ]
  %286 = trunc i64 %indvars.iv463.ph to i32
  %287 = sub i32 %258, %286
  %288 = sub i32 %259, %286
  %xtraiter549 = and i32 %287, 3
  %lcmp.mod550.not = icmp eq i32 %xtraiter549, 0
  br i1 %lcmp.mod550.not, label %scalar.ph519.prol.loopexit, label %scalar.ph519.prol

scalar.ph519.prol:                                ; preds = %scalar.ph519.preheader, %scalar.ph519.prol
  %indvars.iv463.prol = phi i64 [ %indvars.iv.next464.prol, %scalar.ph519.prol ], [ %indvars.iv463.ph, %scalar.ph519.preheader ]
  %prol.iter = phi i32 [ %prol.iter.next, %scalar.ph519.prol ], [ 0, %scalar.ph519.preheader ]
  %indvars.iv.next464.prol = add nsw i64 %indvars.iv463.prol, 1
  %289 = trunc i64 %indvars.iv.next464.prol to i32
  %290 = add i32 %267, %289
  %291 = sext i32 %290 to i64
  %292 = getelementptr inbounds %struct.complex, ptr %37, i64 %291
  %gep.prol = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv.next464.prol
  %293 = load <2 x float>, ptr %292, align 4, !tbaa !10
  store <2 x float> %293, ptr %gep.prol, align 4, !tbaa !10
  %prol.iter.next = add i32 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i32 %prol.iter.next, %xtraiter549
  br i1 %prol.iter.cmp.not, label %scalar.ph519.prol.loopexit, label %scalar.ph519.prol, !llvm.loop !22

scalar.ph519.prol.loopexit:                       ; preds = %scalar.ph519.prol, %scalar.ph519.preheader
  %indvars.iv463.unr = phi i64 [ %indvars.iv463.ph, %scalar.ph519.preheader ], [ %indvars.iv.next464.prol, %scalar.ph519.prol ]
  %294 = icmp ult i32 %288, 3
  br i1 %294, label %._crit_edge437, label %scalar.ph519

scalar.ph519:                                     ; preds = %scalar.ph519.prol.loopexit, %scalar.ph519
  %indvars.iv463 = phi i64 [ %indvars.iv.next464.3, %scalar.ph519 ], [ %indvars.iv463.unr, %scalar.ph519.prol.loopexit ]
  %indvars.iv.next464 = add nsw i64 %indvars.iv463, 1
  %295 = trunc i64 %indvars.iv.next464 to i32
  %296 = add i32 %267, %295
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds %struct.complex, ptr %37, i64 %297
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv.next464
  %299 = load <2 x float>, ptr %298, align 4, !tbaa !10
  store <2 x float> %299, ptr %gep, align 4, !tbaa !10
  %indvars.iv.next464.1 = add nsw i64 %indvars.iv463, 2
  %300 = trunc i64 %indvars.iv.next464.1 to i32
  %301 = add i32 %267, %300
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds %struct.complex, ptr %37, i64 %302
  %gep.1 = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv.next464.1
  %304 = load <2 x float>, ptr %303, align 4, !tbaa !10
  store <2 x float> %304, ptr %gep.1, align 4, !tbaa !10
  %indvars.iv.next464.2 = add nsw i64 %indvars.iv463, 3
  %305 = trunc i64 %indvars.iv.next464.2 to i32
  %306 = add i32 %267, %305
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds %struct.complex, ptr %37, i64 %307
  %gep.2 = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv.next464.2
  %309 = load <2 x float>, ptr %308, align 4, !tbaa !10
  store <2 x float> %309, ptr %gep.2, align 4, !tbaa !10
  %indvars.iv.next464.3 = add nsw i64 %indvars.iv463, 4
  %310 = trunc i64 %indvars.iv.next464.3 to i32
  %311 = add i32 %267, %310
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds %struct.complex, ptr %37, i64 %312
  %gep.3 = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv.next464.3
  %314 = load <2 x float>, ptr %313, align 4, !tbaa !10
  store <2 x float> %314, ptr %gep.3, align 4, !tbaa !10
  %exitcond466.not.3 = icmp eq i32 %219, %310
  br i1 %exitcond466.not.3, label %._crit_edge437, label %scalar.ph519, !llvm.loop !24

._crit_edge437:                                   ; preds = %scalar.ph519.prol.loopexit, %scalar.ph519, %middle.block518
  %indvars.iv.next468 = add nuw nsw i64 %indvars.iv467, 1
  %exitcond471.not = icmp eq i64 %indvars.iv.next468, %wide.trip.count470
  %indvar.next = add i32 %indvar, 1
  br i1 %exitcond471.not, label %._crit_edge442, label %.lr.ph436, !llvm.loop !25

._crit_edge442:                                   ; preds = %._crit_edge437, %.lr.ph441, %212
  call void @cgbtrf_(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %28) #4
  %315 = load i32, ptr %28, align 4, !tbaa !5
  %316 = icmp sgt i32 %315, 0
  br i1 %316, label %317, label %319

317:                                              ; preds = %._crit_edge442
  %318 = call float @cla_gbrpvgrw_(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %28, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9) #4
  store float %318, ptr %19, align 4, !tbaa !10
  br label %326

319:                                              ; preds = %._crit_edge442, %210
  %320 = call float @cla_gbrpvgrw_(ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9) #4
  store float %320, ptr %19, align 4, !tbaa !10
  call void @clacpy_(ptr noundef nonnull @.str.9, ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %16, ptr noundef nonnull %17) #4
  call void @cgbtrs_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %16, ptr noundef nonnull %17, ptr noundef nonnull %28) #4
  call void @cgbrfsx_(ptr noundef %1, ptr noundef %11, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef %16, ptr noundef nonnull %17, ptr noundef %18, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, ptr noundef nonnull %28) #4
  %321 = icmp ne i32 %.2338394, 0
  %or.cond11 = and i1 %211, %321
  br i1 %or.cond11, label %322, label %323

322:                                              ; preds = %319
  call void @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %13, ptr noundef %16, ptr noundef nonnull %17) #4
  br label %326

323:                                              ; preds = %319
  %324 = icmp eq i32 %.2398, 0
  %or.cond13 = or i1 %211, %324
  br i1 %or.cond13, label %326, label %325

325:                                              ; preds = %323
  call void @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %12, ptr noundef %16, ptr noundef nonnull %17) #4
  br label %326

326:                                              ; preds = %322, %325, %323, %317, %.thread387
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #4
  ret void
}

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

declare void @cgbequb_(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 @claqgb_(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 @clascl2_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"float", !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13, !16, !17}
!16 = !{!"llvm.loop.isvectorized", i32 1}
!17 = !{!"llvm.loop.unroll.runtime.disable"}
!18 = distinct !{!18, !13, !17, !16}
!19 = distinct !{!19, !13, !16, !17}
!20 = distinct !{!20, !13, !17, !16}
!21 = distinct !{!21, !13, !16, !17}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.unroll.disable"}
!24 = distinct !{!24, !13, !16}
!25 = distinct !{!25, !13}


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