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

169:                                              ; preds = %29
  %170 = load i64, ptr %83, align 8, !tbaa !9
  %171 = icmp ne i64 %170, 0
  br i1 %171, label %172, label %174

172:                                              ; preds = %169, %29
  %173 = load ptr, ptr %42, align 8, !tbaa !5
  store i8 78, ptr %173, align 1, !tbaa !13
  store i64 0, ptr %92, align 8, !tbaa !9
  store i64 0, ptr %88, align 8, !tbaa !9
  br label %197

174:                                              ; preds = %169
  %175 = load ptr, ptr %42, align 8, !tbaa !5
  %176 = call i64 @lsame_(ptr noundef %175, ptr noundef @.str.3)
  %177 = icmp ne i64 %176, 0
  br i1 %177, label %182, label %178

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

182:                                              ; preds = %178, %174
  %183 = phi i1 [ true, %174 ], [ %181, %178 ]
  %184 = zext i1 %183 to i32
  %185 = sext i32 %184 to i64
  store i64 %185, ptr %92, align 8, !tbaa !9
  %186 = load ptr, ptr %42, align 8, !tbaa !5
  %187 = call i64 @lsame_(ptr noundef %186, ptr noundef @.str.5)
  %188 = icmp ne i64 %187, 0
  br i1 %188, label %193, label %189

189:                                              ; preds = %182
  %190 = load ptr, ptr %42, align 8, !tbaa !5
  %191 = call i64 @lsame_(ptr noundef %190, ptr noundef @.str.4)
  %192 = icmp ne i64 %191, 0
  br label %193

193:                                              ; preds = %189, %182
  %194 = phi i1 [ true, %182 ], [ %192, %189 ]
  %195 = zext i1 %194 to i32
  %196 = sext i32 %195 to i64
  store i64 %196, ptr %88, align 8, !tbaa !9
  br label %197

197:                                              ; preds = %193, %172
  %198 = load ptr, ptr %50, align 8, !tbaa !5
  store float 0.000000e+00, ptr %198, align 4, !tbaa !11
  %199 = load i64, ptr %85, align 8, !tbaa !9
  %200 = icmp ne i64 %199, 0
  br i1 %200, label %210, label %201

201:                                              ; preds = %197
  %202 = load i64, ptr %83, align 8, !tbaa !9
  %203 = icmp ne i64 %202, 0
  br i1 %203, label %210, label %204

204:                                              ; preds = %201
  %205 = load ptr, ptr %31, align 8, !tbaa !5
  %206 = call i64 @lsame_(ptr noundef %205, ptr noundef @.str.6)
  %207 = icmp ne i64 %206, 0
  br i1 %207, label %210, label %208

208:                                              ; preds = %204
  %209 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -1, ptr %209, align 8, !tbaa !9
  br label %501

210:                                              ; preds = %204, %201, %197
  %211 = load i64, ptr %90, align 8, !tbaa !9
  %212 = icmp ne i64 %211, 0
  br i1 %212, label %223, label %213

213:                                              ; preds = %210
  %214 = load ptr, ptr %32, align 8, !tbaa !5
  %215 = call i64 @lsame_(ptr noundef %214, ptr noundef @.str.7)
  %216 = icmp ne i64 %215, 0
  br i1 %216, label %223, label %217

217:                                              ; preds = %213
  %218 = load ptr, ptr %32, align 8, !tbaa !5
  %219 = call i64 @lsame_(ptr noundef %218, ptr noundef @.str.5)
  %220 = icmp ne i64 %219, 0
  br i1 %220, label %223, label %221

221:                                              ; preds = %217
  %222 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -2, ptr %222, align 8, !tbaa !9
  br label %500

223:                                              ; preds = %217, %213, %210
  %224 = load ptr, ptr %33, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  %226 = icmp slt i64 %225, 0
  br i1 %226, label %227, label %229

227:                                              ; preds = %223
  %228 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -3, ptr %228, align 8, !tbaa !9
  br label %499

229:                                              ; preds = %223
  %230 = load ptr, ptr %34, align 8, !tbaa !5
  %231 = load i64, ptr %230, align 8, !tbaa !9
  %232 = icmp slt i64 %231, 0
  br i1 %232, label %233, label %235

233:                                              ; preds = %229
  %234 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -4, ptr %234, align 8, !tbaa !9
  br label %498

235:                                              ; preds = %229
  %236 = load ptr, ptr %35, align 8, !tbaa !5
  %237 = load i64, ptr %236, align 8, !tbaa !9
  %238 = icmp slt i64 %237, 0
  br i1 %238, label %239, label %241

239:                                              ; preds = %235
  %240 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -5, ptr %240, align 8, !tbaa !9
  br label %497

241:                                              ; preds = %235
  %242 = load ptr, ptr %36, align 8, !tbaa !5
  %243 = load i64, ptr %242, align 8, !tbaa !9
  %244 = icmp slt i64 %243, 0
  br i1 %244, label %245, label %247

245:                                              ; preds = %241
  %246 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -6, ptr %246, align 8, !tbaa !9
  br label %496

247:                                              ; preds = %241
  %248 = load ptr, ptr %38, align 8, !tbaa !5
  %249 = load i64, ptr %248, align 8, !tbaa !9
  %250 = load ptr, ptr %34, align 8, !tbaa !5
  %251 = load i64, ptr %250, align 8, !tbaa !9
  %252 = load ptr, ptr %35, align 8, !tbaa !5
  %253 = load i64, ptr %252, align 8, !tbaa !9
  %254 = add nsw i64 %251, %253
  %255 = add nsw i64 %254, 1
  %256 = icmp slt i64 %249, %255
  br i1 %256, label %257, label %259

257:                                              ; preds = %247
  %258 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -8, ptr %258, align 8, !tbaa !9
  br label %495

259:                                              ; preds = %247
  %260 = load ptr, ptr %40, align 8, !tbaa !5
  %261 = load i64, ptr %260, align 8, !tbaa !9
  %262 = load ptr, ptr %34, align 8, !tbaa !5
  %263 = load i64, ptr %262, align 8, !tbaa !9
  %264 = shl i64 %263, 1
  %265 = load ptr, ptr %35, align 8, !tbaa !5
  %266 = load i64, ptr %265, align 8, !tbaa !9
  %267 = add nsw i64 %264, %266
  %268 = add nsw i64 %267, 1
  %269 = icmp slt i64 %261, %268
  br i1 %269, label %270, label %272

270:                                              ; preds = %259
  %271 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -10, ptr %271, align 8, !tbaa !9
  br label %494

272:                                              ; preds = %259
  %273 = load ptr, ptr %31, align 8, !tbaa !5
  %274 = call i64 @lsame_(ptr noundef %273, ptr noundef @.str.6)
  %275 = icmp ne i64 %274, 0
  br i1 %275, label %276, label %288

276:                                              ; preds = %272
  %277 = load i64, ptr %92, align 8, !tbaa !9
  %278 = icmp ne i64 %277, 0
  br i1 %278, label %288, label %279

279:                                              ; preds = %276
  %280 = load i64, ptr %88, align 8, !tbaa !9
  %281 = icmp ne i64 %280, 0
  br i1 %281, label %288, label %282

282:                                              ; preds = %279
  %283 = load ptr, ptr %42, align 8, !tbaa !5
  %284 = call i64 @lsame_(ptr noundef %283, ptr noundef @.str)
  %285 = icmp ne i64 %284, 0
  br i1 %285, label %288, label %286

286:                                              ; preds = %282
  %287 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -12, ptr %287, align 8, !tbaa !9
  br label %493

288:                                              ; preds = %282, %279, %276, %272
  %289 = load i64, ptr %92, align 8, !tbaa !9
  %290 = icmp ne i64 %289, 0
  br i1 %290, label %291, label %370

291:                                              ; preds = %288
  %292 = load float, ptr %86, align 4, !tbaa !11
  store float %292, ptr %81, align 4, !tbaa !11
  store float 0.000000e+00, ptr %82, align 4, !tbaa !11
  %293 = load ptr, ptr %33, align 8, !tbaa !5
  %294 = load i64, ptr %293, align 8, !tbaa !9
  store i64 %294, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %79, align 8, !tbaa !9
  br label %295

295:                                              ; preds = %332, %291
  %296 = load i64, ptr %79, align 8, !tbaa !9
  %297 = load i64, ptr %72, align 8, !tbaa !9
  %298 = icmp sle i64 %296, %297
  br i1 %298, label %299, label %335

299:                                              ; preds = %295
  %300 = load float, ptr %81, align 4, !tbaa !11
  store float %300, ptr %76, align 4, !tbaa !11
  %301 = load ptr, ptr %43, align 8, !tbaa !5
  %302 = load i64, ptr %79, align 8, !tbaa !9
  %303 = getelementptr inbounds float, ptr %301, i64 %302
  %304 = load float, ptr %303, align 4, !tbaa !11
  store float %304, ptr %77, align 4, !tbaa !11
  %305 = load float, ptr %76, align 4, !tbaa !11
  %306 = load float, ptr %77, align 4, !tbaa !11
  %307 = fcmp ole float %305, %306
  br i1 %307, label %308, label %310

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

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

312:                                              ; preds = %310, %308
  %313 = phi float [ %309, %308 ], [ %311, %310 ]
  %314 = fpext float %313 to double
  %315 = fptrunc double %314 to float
  store float %315, ptr %81, align 4, !tbaa !11
  %316 = load float, ptr %82, align 4, !tbaa !11
  store float %316, ptr %76, align 4, !tbaa !11
  %317 = load ptr, ptr %43, align 8, !tbaa !5
  %318 = load i64, ptr %79, align 8, !tbaa !9
  %319 = getelementptr inbounds float, ptr %317, i64 %318
  %320 = load float, ptr %319, align 4, !tbaa !11
  store float %320, ptr %77, align 4, !tbaa !11
  %321 = load float, ptr %76, align 4, !tbaa !11
  %322 = load float, ptr %77, align 4, !tbaa !11
  %323 = fcmp oge float %321, %322
  br i1 %323, label %324, label %326

324:                                              ; preds = %312
  %325 = load float, ptr %76, align 4, !tbaa !11
  br label %328

326:                                              ; preds = %312
  %327 = load float, ptr %77, align 4, !tbaa !11
  br label %328

328:                                              ; preds = %326, %324
  %329 = phi float [ %325, %324 ], [ %327, %326 ]
  %330 = fpext float %329 to double
  %331 = fptrunc double %330 to float
  store float %331, ptr %82, align 4, !tbaa !11
  br label %332

332:                                              ; preds = %328
  %333 = load i64, ptr %79, align 8, !tbaa !9
  %334 = add nsw i64 %333, 1
  store i64 %334, ptr %79, align 8, !tbaa !9
  br label %295, !llvm.loop !14

335:                                              ; preds = %295
  %336 = load float, ptr %81, align 4, !tbaa !11
  %337 = fcmp ole float %336, 0.000000e+00
  br i1 %337, label %338, label %340

338:                                              ; preds = %335
  %339 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -13, ptr %339, align 8, !tbaa !9
  br label %369

340:                                              ; preds = %335
  %341 = load ptr, ptr %33, align 8, !tbaa !5
  %342 = load i64, ptr %341, align 8, !tbaa !9
  %343 = icmp sgt i64 %342, 0
  br i1 %343, label %344, label %367

344:                                              ; preds = %340
  %345 = load float, ptr %81, align 4, !tbaa !11
  %346 = load float, ptr %91, align 4, !tbaa !11
  %347 = fcmp oge float %345, %346
  br i1 %347, label %348, label %350

348:                                              ; preds = %344
  %349 = load float, ptr %81, align 4, !tbaa !11
  br label %352

350:                                              ; preds = %344
  %351 = load float, ptr %91, align 4, !tbaa !11
  br label %352

352:                                              ; preds = %350, %348
  %353 = phi float [ %349, %348 ], [ %351, %350 ]
  %354 = fpext float %353 to double
  %355 = load float, ptr %82, align 4, !tbaa !11
  %356 = load float, ptr %86, align 4, !tbaa !11
  %357 = fcmp ole float %355, %356
  br i1 %357, label %358, label %360

358:                                              ; preds = %352
  %359 = load float, ptr %82, align 4, !tbaa !11
  br label %362

360:                                              ; preds = %352
  %361 = load float, ptr %86, align 4, !tbaa !11
  br label %362

362:                                              ; preds = %360, %358
  %363 = phi float [ %359, %358 ], [ %361, %360 ]
  %364 = fpext float %363 to double
  %365 = fdiv double %354, %364
  %366 = fptrunc double %365 to float
  store float %366, ptr %89, align 4, !tbaa !11
  br label %368

367:                                              ; preds = %340
  store float 1.000000e+00, ptr %89, align 4, !tbaa !11
  br label %368

368:                                              ; preds = %367, %362
  br label %369

369:                                              ; preds = %368, %338
  br label %370

370:                                              ; preds = %369, %288
  %371 = load i64, ptr %88, align 8, !tbaa !9
  %372 = icmp ne i64 %371, 0
  br i1 %372, label %373, label %456

373:                                              ; preds = %370
  %374 = load ptr, ptr %59, align 8, !tbaa !5
  %375 = load i64, ptr %374, align 8, !tbaa !9
  %376 = icmp eq i64 %375, 0
  br i1 %376, label %377, label %456

377:                                              ; preds = %373
  %378 = load float, ptr %86, align 4, !tbaa !11
  store float %378, ptr %81, align 4, !tbaa !11
  store float 0.000000e+00, ptr %82, align 4, !tbaa !11
  %379 = load ptr, ptr %33, align 8, !tbaa !5
  %380 = load i64, ptr %379, align 8, !tbaa !9
  store i64 %380, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %79, align 8, !tbaa !9
  br label %381

381:                                              ; preds = %418, %377
  %382 = load i64, ptr %79, align 8, !tbaa !9
  %383 = load i64, ptr %72, align 8, !tbaa !9
  %384 = icmp sle i64 %382, %383
  br i1 %384, label %385, label %421

385:                                              ; preds = %381
  %386 = load float, ptr %81, align 4, !tbaa !11
  store float %386, ptr %76, align 4, !tbaa !11
  %387 = load ptr, ptr %44, align 8, !tbaa !5
  %388 = load i64, ptr %79, align 8, !tbaa !9
  %389 = getelementptr inbounds float, ptr %387, i64 %388
  %390 = load float, ptr %389, align 4, !tbaa !11
  store float %390, ptr %77, align 4, !tbaa !11
  %391 = load float, ptr %76, align 4, !tbaa !11
  %392 = load float, ptr %77, align 4, !tbaa !11
  %393 = fcmp ole float %391, %392
  br i1 %393, label %394, label %396

394:                                              ; preds = %385
  %395 = load float, ptr %76, align 4, !tbaa !11
  br label %398

396:                                              ; preds = %385
  %397 = load float, ptr %77, align 4, !tbaa !11
  br label %398

398:                                              ; preds = %396, %394
  %399 = phi float [ %395, %394 ], [ %397, %396 ]
  %400 = fpext float %399 to double
  %401 = fptrunc double %400 to float
  store float %401, ptr %81, align 4, !tbaa !11
  %402 = load float, ptr %82, align 4, !tbaa !11
  store float %402, ptr %76, align 4, !tbaa !11
  %403 = load ptr, ptr %44, align 8, !tbaa !5
  %404 = load i64, ptr %79, align 8, !tbaa !9
  %405 = getelementptr inbounds float, ptr %403, i64 %404
  %406 = load float, ptr %405, align 4, !tbaa !11
  store float %406, ptr %77, align 4, !tbaa !11
  %407 = load float, ptr %76, align 4, !tbaa !11
  %408 = load float, ptr %77, align 4, !tbaa !11
  %409 = fcmp oge float %407, %408
  br i1 %409, label %410, label %412

410:                                              ; preds = %398
  %411 = load float, ptr %76, align 4, !tbaa !11
  br label %414

412:                                              ; preds = %398
  %413 = load float, ptr %77, align 4, !tbaa !11
  br label %414

414:                                              ; preds = %412, %410
  %415 = phi float [ %411, %410 ], [ %413, %412 ]
  %416 = fpext float %415 to double
  %417 = fptrunc double %416 to float
  store float %417, ptr %82, align 4, !tbaa !11
  br label %418

418:                                              ; preds = %414
  %419 = load i64, ptr %79, align 8, !tbaa !9
  %420 = add nsw i64 %419, 1
  store i64 %420, ptr %79, align 8, !tbaa !9
  br label %381, !llvm.loop !16

421:                                              ; preds = %381
  %422 = load float, ptr %81, align 4, !tbaa !11
  %423 = fcmp ole float %422, 0.000000e+00
  br i1 %423, label %424, label %426

424:                                              ; preds = %421
  %425 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -14, ptr %425, align 8, !tbaa !9
  br label %455

426:                                              ; preds = %421
  %427 = load ptr, ptr %33, align 8, !tbaa !5
  %428 = load i64, ptr %427, align 8, !tbaa !9
  %429 = icmp sgt i64 %428, 0
  br i1 %429, label %430, label %453

430:                                              ; preds = %426
  %431 = load float, ptr %81, align 4, !tbaa !11
  %432 = load float, ptr %91, align 4, !tbaa !11
  %433 = fcmp oge float %431, %432
  br i1 %433, label %434, label %436

434:                                              ; preds = %430
  %435 = load float, ptr %81, align 4, !tbaa !11
  br label %438

436:                                              ; preds = %430
  %437 = load float, ptr %91, align 4, !tbaa !11
  br label %438

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

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

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

448:                                              ; preds = %446, %444
  %449 = phi float [ %445, %444 ], [ %447, %446 ]
  %450 = fpext float %449 to double
  %451 = fdiv double %440, %450
  %452 = fptrunc double %451 to float
  store float %452, ptr %84, align 4, !tbaa !11
  br label %454

453:                                              ; preds = %426
  store float 1.000000e+00, ptr %84, align 4, !tbaa !11
  br label %454

454:                                              ; preds = %453, %448
  br label %455

455:                                              ; preds = %454, %424
  br label %456

456:                                              ; preds = %455, %373, %370
  %457 = load ptr, ptr %59, align 8, !tbaa !5
  %458 = load i64, ptr %457, align 8, !tbaa !9
  %459 = icmp eq i64 %458, 0
  br i1 %459, label %460, label %492

460:                                              ; preds = %456
  %461 = load ptr, ptr %46, align 8, !tbaa !5
  %462 = load i64, ptr %461, align 8, !tbaa !9
  %463 = load ptr, ptr %33, align 8, !tbaa !5
  %464 = load i64, ptr %463, align 8, !tbaa !9
  %465 = icmp sge i64 1, %464
  br i1 %465, label %466, label %467

466:                                              ; preds = %460
  br label %470

467:                                              ; preds = %460
  %468 = load ptr, ptr %33, align 8, !tbaa !5
  %469 = load i64, ptr %468, align 8, !tbaa !9
  br label %470

470:                                              ; preds = %467, %466
  %471 = phi i64 [ 1, %466 ], [ %469, %467 ]
  %472 = icmp slt i64 %462, %471
  br i1 %472, label %473, label %475

473:                                              ; preds = %470
  %474 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -15, ptr %474, align 8, !tbaa !9
  br label %491

475:                                              ; preds = %470
  %476 = load ptr, ptr %48, align 8, !tbaa !5
  %477 = load i64, ptr %476, align 8, !tbaa !9
  %478 = load ptr, ptr %33, align 8, !tbaa !5
  %479 = load i64, ptr %478, align 8, !tbaa !9
  %480 = icmp sge i64 1, %479
  br i1 %480, label %481, label %482

481:                                              ; preds = %475
  br label %485

482:                                              ; preds = %475
  %483 = load ptr, ptr %33, align 8, !tbaa !5
  %484 = load i64, ptr %483, align 8, !tbaa !9
  br label %485

485:                                              ; preds = %482, %481
  %486 = phi i64 [ 1, %481 ], [ %484, %482 ]
  %487 = icmp slt i64 %477, %486
  br i1 %487, label %488, label %490

488:                                              ; preds = %485
  %489 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -16, ptr %489, align 8, !tbaa !9
  br label %490

490:                                              ; preds = %488, %485
  br label %491

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

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

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

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

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

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

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

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

499:                                              ; preds = %498, %227
  br label %500

500:                                              ; preds = %499, %221
  br label %501

501:                                              ; preds = %500, %208
  %502 = load ptr, ptr %59, align 8, !tbaa !5
  %503 = load i64, ptr %502, align 8, !tbaa !9
  %504 = icmp ne i64 %503, 0
  br i1 %504, label %505, label %510

505:                                              ; preds = %501
  %506 = load ptr, ptr %59, align 8, !tbaa !5
  %507 = load i64, ptr %506, align 8, !tbaa !9
  %508 = sub nsw i64 0, %507
  store i64 %508, ptr %72, align 8, !tbaa !9
  %509 = call i32 @xerbla_(ptr noundef @.str.8, ptr noundef %72)
  store i32 0, ptr %30, align 4
  store i32 1, ptr %93, align 4
  br label %858

510:                                              ; preds = %501
  %511 = load i64, ptr %83, align 8, !tbaa !9
  %512 = icmp ne i64 %511, 0
  br i1 %512, label %513, label %603

513:                                              ; preds = %510
  %514 = load ptr, ptr %33, align 8, !tbaa !5
  %515 = load ptr, ptr %33, align 8, !tbaa !5
  %516 = load ptr, ptr %34, align 8, !tbaa !5
  %517 = load ptr, ptr %35, align 8, !tbaa !5
  %518 = load ptr, ptr %37, align 8, !tbaa !5
  %519 = load i64, ptr %61, align 8, !tbaa !9
  %520 = getelementptr inbounds %struct.complex, ptr %518, i64 %519
  %521 = load ptr, ptr %38, align 8, !tbaa !5
  %522 = load ptr, ptr %43, align 8, !tbaa !5
  %523 = getelementptr inbounds float, ptr %522, i64 1
  %524 = load ptr, ptr %44, align 8, !tbaa !5
  %525 = getelementptr inbounds float, ptr %524, i64 1
  %526 = call i32 @cgbequb_(ptr noundef %514, ptr noundef %515, ptr noundef %516, ptr noundef %517, ptr noundef %520, ptr noundef %521, ptr noundef %523, ptr noundef %525, ptr noundef %89, ptr noundef %84, ptr noundef %80, ptr noundef %87)
  %527 = load i64, ptr %87, align 8, !tbaa !9
  %528 = icmp eq i64 %527, 0
  br i1 %528, label %529, label %566

529:                                              ; preds = %513
  %530 = load ptr, ptr %33, align 8, !tbaa !5
  %531 = load ptr, ptr %33, align 8, !tbaa !5
  %532 = load ptr, ptr %34, align 8, !tbaa !5
  %533 = load ptr, ptr %35, align 8, !tbaa !5
  %534 = load ptr, ptr %37, align 8, !tbaa !5
  %535 = load i64, ptr %61, align 8, !tbaa !9
  %536 = getelementptr inbounds %struct.complex, ptr %534, i64 %535
  %537 = load ptr, ptr %38, align 8, !tbaa !5
  %538 = load ptr, ptr %43, align 8, !tbaa !5
  %539 = getelementptr inbounds float, ptr %538, i64 1
  %540 = load ptr, ptr %44, align 8, !tbaa !5
  %541 = getelementptr inbounds float, ptr %540, i64 1
  %542 = load ptr, ptr %42, align 8, !tbaa !5
  %543 = call i32 @claqgb_(ptr noundef %530, ptr noundef %531, ptr noundef %532, ptr noundef %533, ptr noundef %536, ptr noundef %537, ptr noundef %539, ptr noundef %541, ptr noundef %89, ptr noundef %84, ptr noundef %80, ptr noundef %542)
  %544 = load ptr, ptr %42, align 8, !tbaa !5
  %545 = call i64 @lsame_(ptr noundef %544, ptr noundef @.str.3)
  %546 = icmp ne i64 %545, 0
  br i1 %546, label %551, label %547

547:                                              ; preds = %529
  %548 = load ptr, ptr %42, align 8, !tbaa !5
  %549 = call i64 @lsame_(ptr noundef %548, ptr noundef @.str.4)
  %550 = icmp ne i64 %549, 0
  br label %551

551:                                              ; preds = %547, %529
  %552 = phi i1 [ true, %529 ], [ %550, %547 ]
  %553 = zext i1 %552 to i32
  %554 = sext i32 %553 to i64
  store i64 %554, ptr %92, align 8, !tbaa !9
  %555 = load ptr, ptr %42, align 8, !tbaa !5
  %556 = call i64 @lsame_(ptr noundef %555, ptr noundef @.str.5)
  %557 = icmp ne i64 %556, 0
  br i1 %557, label %562, label %558

558:                                              ; preds = %551
  %559 = load ptr, ptr %42, align 8, !tbaa !5
  %560 = call i64 @lsame_(ptr noundef %559, ptr noundef @.str.4)
  %561 = icmp ne i64 %560, 0
  br label %562

562:                                              ; preds = %558, %551
  %563 = phi i1 [ true, %551 ], [ %561, %558 ]
  %564 = zext i1 %563 to i32
  %565 = sext i32 %564 to i64
  store i64 %565, ptr %88, align 8, !tbaa !9
  br label %566

566:                                              ; preds = %562, %513
  %567 = load i64, ptr %92, align 8, !tbaa !9
  %568 = icmp ne i64 %567, 0
  br i1 %568, label %584, label %569

569:                                              ; preds = %566
  %570 = load ptr, ptr %33, align 8, !tbaa !5
  %571 = load i64, ptr %570, align 8, !tbaa !9
  store i64 %571, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %79, align 8, !tbaa !9
  br label %572

572:                                              ; preds = %580, %569
  %573 = load i64, ptr %79, align 8, !tbaa !9
  %574 = load i64, ptr %72, align 8, !tbaa !9
  %575 = icmp sle i64 %573, %574
  br i1 %575, label %576, label %583

576:                                              ; preds = %572
  %577 = load ptr, ptr %43, align 8, !tbaa !5
  %578 = load i64, ptr %79, align 8, !tbaa !9
  %579 = getelementptr inbounds float, ptr %577, i64 %578
  store float 1.000000e+00, ptr %579, align 4, !tbaa !11
  br label %580

580:                                              ; preds = %576
  %581 = load i64, ptr %79, align 8, !tbaa !9
  %582 = add nsw i64 %581, 1
  store i64 %582, ptr %79, align 8, !tbaa !9
  br label %572, !llvm.loop !17

583:                                              ; preds = %572
  br label %584

584:                                              ; preds = %583, %566
  %585 = load i64, ptr %88, align 8, !tbaa !9
  %586 = icmp ne i64 %585, 0
  br i1 %586, label %602, label %587

587:                                              ; preds = %584
  %588 = load ptr, ptr %33, align 8, !tbaa !5
  %589 = load i64, ptr %588, align 8, !tbaa !9
  store i64 %589, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %79, align 8, !tbaa !9
  br label %590

590:                                              ; preds = %598, %587
  %591 = load i64, ptr %79, align 8, !tbaa !9
  %592 = load i64, ptr %72, align 8, !tbaa !9
  %593 = icmp sle i64 %591, %592
  br i1 %593, label %594, label %601

594:                                              ; preds = %590
  %595 = load ptr, ptr %44, align 8, !tbaa !5
  %596 = load i64, ptr %79, align 8, !tbaa !9
  %597 = getelementptr inbounds float, ptr %595, i64 %596
  store float 1.000000e+00, ptr %597, align 4, !tbaa !11
  br label %598

598:                                              ; preds = %594
  %599 = load i64, ptr %79, align 8, !tbaa !9
  %600 = add nsw i64 %599, 1
  store i64 %600, ptr %79, align 8, !tbaa !9
  br label %590, !llvm.loop !18

601:                                              ; preds = %590
  br label %602

602:                                              ; preds = %601, %584
  br label %603

603:                                              ; preds = %602, %510
  %604 = load i64, ptr %90, align 8, !tbaa !9
  %605 = icmp ne i64 %604, 0
  br i1 %605, label %606, label %620

606:                                              ; preds = %603
  %607 = load i64, ptr %92, align 8, !tbaa !9
  %608 = icmp ne i64 %607, 0
  br i1 %608, label %609, label %619

609:                                              ; preds = %606
  %610 = load ptr, ptr %33, align 8, !tbaa !5
  %611 = load ptr, ptr %36, align 8, !tbaa !5
  %612 = load ptr, ptr %43, align 8, !tbaa !5
  %613 = getelementptr inbounds float, ptr %612, i64 1
  %614 = load ptr, ptr %45, align 8, !tbaa !5
  %615 = load i64, ptr %65, align 8, !tbaa !9
  %616 = getelementptr inbounds %struct.complex, ptr %614, i64 %615
  %617 = load ptr, ptr %46, align 8, !tbaa !5
  %618 = call i32 @clascl2_(ptr noundef %610, ptr noundef %611, ptr noundef %613, ptr noundef %616, ptr noundef %617)
  br label %619

619:                                              ; preds = %609, %606
  br label %634

620:                                              ; preds = %603
  %621 = load i64, ptr %88, align 8, !tbaa !9
  %622 = icmp ne i64 %621, 0
  br i1 %622, label %623, label %633

623:                                              ; preds = %620
  %624 = load ptr, ptr %33, align 8, !tbaa !5
  %625 = load ptr, ptr %36, align 8, !tbaa !5
  %626 = load ptr, ptr %44, align 8, !tbaa !5
  %627 = getelementptr inbounds float, ptr %626, i64 1
  %628 = load ptr, ptr %45, align 8, !tbaa !5
  %629 = load i64, ptr %65, align 8, !tbaa !9
  %630 = getelementptr inbounds %struct.complex, ptr %628, i64 %629
  %631 = load ptr, ptr %46, align 8, !tbaa !5
  %632 = call i32 @clascl2_(ptr noundef %624, ptr noundef %625, ptr noundef %627, ptr noundef %630, ptr noundef %631)
  br label %633

633:                                              ; preds = %623, %620
  br label %634

634:                                              ; preds = %633, %619
  %635 = load i64, ptr %85, align 8, !tbaa !9
  %636 = icmp ne i64 %635, 0
  br i1 %636, label %640, label %637

637:                                              ; preds = %634
  %638 = load i64, ptr %83, align 8, !tbaa !9
  %639 = icmp ne i64 %638, 0
  br i1 %639, label %640, label %734

640:                                              ; preds = %637, %634
  %641 = load ptr, ptr %33, align 8, !tbaa !5
  %642 = load i64, ptr %641, align 8, !tbaa !9
  store i64 %642, ptr %72, align 8, !tbaa !9
  store i64 1, ptr %79, align 8, !tbaa !9
  br label %643

643:                                              ; preds = %698, %640
  %644 = load i64, ptr %79, align 8, !tbaa !9
  %645 = load i64, ptr %72, align 8, !tbaa !9
  %646 = icmp sle i64 %644, %645
  br i1 %646, label %647, label %701

647:                                              ; preds = %643
  %648 = load ptr, ptr %34, align 8, !tbaa !5
  %649 = load i64, ptr %648, align 8, !tbaa !9
  %650 = shl i64 %649, 1
  %651 = load ptr, ptr %35, align 8, !tbaa !5
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = add nsw i64 %650, %652
  %654 = add nsw i64 %653, 1
  store i64 %654, ptr %73, align 8, !tbaa !9
  %655 = load ptr, ptr %34, align 8, !tbaa !5
  %656 = load i64, ptr %655, align 8, !tbaa !9
  %657 = add nsw i64 %656, 1
  store i64 %657, ptr %78, align 8, !tbaa !9
  br label %658

658:                                              ; preds = %694, %647
  %659 = load i64, ptr %78, align 8, !tbaa !9
  %660 = load i64, ptr %73, align 8, !tbaa !9
  %661 = icmp sle i64 %659, %660
  br i1 %661, label %662, label %697

662:                                              ; preds = %658
  %663 = load i64, ptr %78, align 8, !tbaa !9
  %664 = load i64, ptr %79, align 8, !tbaa !9
  %665 = load i64, ptr %62, align 8, !tbaa !9
  %666 = mul nsw i64 %664, %665
  %667 = add nsw i64 %663, %666
  store i64 %667, ptr %74, align 8, !tbaa !9
  %668 = load i64, ptr %78, align 8, !tbaa !9
  %669 = load ptr, ptr %34, align 8, !tbaa !5
  %670 = load i64, ptr %669, align 8, !tbaa !9
  %671 = sub nsw i64 %668, %670
  %672 = load i64, ptr %79, align 8, !tbaa !9
  %673 = load i64, ptr %60, align 8, !tbaa !9
  %674 = mul nsw i64 %672, %673
  %675 = add nsw i64 %671, %674
  store i64 %675, ptr %75, align 8, !tbaa !9
  %676 = load ptr, ptr %37, align 8, !tbaa !5
  %677 = load i64, ptr %75, align 8, !tbaa !9
  %678 = getelementptr inbounds %struct.complex, ptr %676, i64 %677
  %679 = getelementptr inbounds %struct.complex, ptr %678, i32 0, i32 0
  %680 = load float, ptr %679, align 4, !tbaa !19
  %681 = load ptr, ptr %39, align 8, !tbaa !5
  %682 = load i64, ptr %74, align 8, !tbaa !9
  %683 = getelementptr inbounds %struct.complex, ptr %681, i64 %682
  %684 = getelementptr inbounds %struct.complex, ptr %683, i32 0, i32 0
  store float %680, ptr %684, align 4, !tbaa !19
  %685 = load ptr, ptr %37, align 8, !tbaa !5
  %686 = load i64, ptr %75, align 8, !tbaa !9
  %687 = getelementptr inbounds %struct.complex, ptr %685, i64 %686
  %688 = getelementptr inbounds %struct.complex, ptr %687, i32 0, i32 1
  %689 = load float, ptr %688, align 4, !tbaa !21
  %690 = load ptr, ptr %39, align 8, !tbaa !5
  %691 = load i64, ptr %74, align 8, !tbaa !9
  %692 = getelementptr inbounds %struct.complex, ptr %690, i64 %691
  %693 = getelementptr inbounds %struct.complex, ptr %692, i32 0, i32 1
  store float %689, ptr %693, align 4, !tbaa !21
  br label %694

694:                                              ; preds = %662
  %695 = load i64, ptr %78, align 8, !tbaa !9
  %696 = add nsw i64 %695, 1
  store i64 %696, ptr %78, align 8, !tbaa !9
  br label %658, !llvm.loop !22

697:                                              ; preds = %658
  br label %698

698:                                              ; preds = %697
  %699 = load i64, ptr %79, align 8, !tbaa !9
  %700 = add nsw i64 %699, 1
  store i64 %700, ptr %79, align 8, !tbaa !9
  br label %643, !llvm.loop !23

701:                                              ; preds = %643
  %702 = load ptr, ptr %33, align 8, !tbaa !5
  %703 = load ptr, ptr %33, align 8, !tbaa !5
  %704 = load ptr, ptr %34, align 8, !tbaa !5
  %705 = load ptr, ptr %35, align 8, !tbaa !5
  %706 = load ptr, ptr %39, align 8, !tbaa !5
  %707 = load i64, ptr %63, align 8, !tbaa !9
  %708 = getelementptr inbounds %struct.complex, ptr %706, i64 %707
  %709 = load ptr, ptr %40, align 8, !tbaa !5
  %710 = load ptr, ptr %41, align 8, !tbaa !5
  %711 = getelementptr inbounds i64, ptr %710, i64 1
  %712 = load ptr, ptr %59, align 8, !tbaa !5
  %713 = call i32 @cgbtrf_(ptr noundef %702, ptr noundef %703, ptr noundef %704, ptr noundef %705, ptr noundef %708, ptr noundef %709, ptr noundef %711, ptr noundef %712)
  %714 = load ptr, ptr %59, align 8, !tbaa !5
  %715 = load i64, ptr %714, align 8, !tbaa !9
  %716 = icmp sgt i64 %715, 0
  br i1 %716, label %717, label %733

717:                                              ; preds = %701
  %718 = load ptr, ptr %33, align 8, !tbaa !5
  %719 = load ptr, ptr %34, align 8, !tbaa !5
  %720 = load ptr, ptr %35, align 8, !tbaa !5
  %721 = load ptr, ptr %59, align 8, !tbaa !5
  %722 = load ptr, ptr %37, align 8, !tbaa !5
  %723 = load i64, ptr %61, align 8, !tbaa !9
  %724 = getelementptr inbounds %struct.complex, ptr %722, i64 %723
  %725 = load ptr, ptr %38, align 8, !tbaa !5
  %726 = load ptr, ptr %39, align 8, !tbaa !5
  %727 = load i64, ptr %63, align 8, !tbaa !9
  %728 = getelementptr inbounds %struct.complex, ptr %726, i64 %727
  %729 = load ptr, ptr %40, align 8, !tbaa !5
  %730 = call double @cla_gbrpvgrw__(ptr noundef %718, ptr noundef %719, ptr noundef %720, ptr noundef %721, ptr noundef %724, ptr noundef %725, ptr noundef %728, ptr noundef %729)
  %731 = fptrunc double %730 to float
  %732 = load ptr, ptr %50, align 8, !tbaa !5
  store float %731, ptr %732, align 4, !tbaa !11
  store i32 0, ptr %30, align 4
  store i32 1, ptr %93, align 4
  br label %858

733:                                              ; preds = %701
  br label %734

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

827:                                              ; preds = %734
  %828 = load i64, ptr %90, align 8, !tbaa !9
  %829 = icmp ne i64 %828, 0
  br i1 %829, label %830, label %840

830:                                              ; preds = %827
  %831 = load ptr, ptr %33, align 8, !tbaa !5
  %832 = load ptr, ptr %36, align 8, !tbaa !5
  %833 = load ptr, ptr %44, align 8, !tbaa !5
  %834 = getelementptr inbounds float, ptr %833, i64 1
  %835 = load ptr, ptr %47, align 8, !tbaa !5
  %836 = load i64, ptr %67, align 8, !tbaa !9
  %837 = getelementptr inbounds %struct.complex, ptr %835, i64 %836
  %838 = load ptr, ptr %48, align 8, !tbaa !5
  %839 = call i32 @clascl2_(ptr noundef %831, ptr noundef %832, ptr noundef %834, ptr noundef %837, ptr noundef %838)
  br label %857

840:                                              ; preds = %827, %734
  %841 = load i64, ptr %92, align 8, !tbaa !9
  %842 = icmp ne i64 %841, 0
  br i1 %842, label %843, label %856

843:                                              ; preds = %840
  %844 = load i64, ptr %90, align 8, !tbaa !9
  %845 = icmp ne i64 %844, 0
  br i1 %845, label %856, label %846

846:                                              ; preds = %843
  %847 = load ptr, ptr %33, align 8, !tbaa !5
  %848 = load ptr, ptr %36, align 8, !tbaa !5
  %849 = load ptr, ptr %43, align 8, !tbaa !5
  %850 = getelementptr inbounds float, ptr %849, i64 1
  %851 = load ptr, ptr %47, align 8, !tbaa !5
  %852 = load i64, ptr %67, align 8, !tbaa !9
  %853 = getelementptr inbounds %struct.complex, ptr %851, i64 %852
  %854 = load ptr, ptr %48, align 8, !tbaa !5
  %855 = call i32 @clascl2_(ptr noundef %847, ptr noundef %848, ptr noundef %850, ptr noundef %853, ptr noundef %854)
  br label %856

856:                                              ; preds = %846, %843, %840
  br label %857

857:                                              ; preds = %856, %830
  store i32 0, ptr %30, align 4
  store i32 1, ptr %93, align 4
  br label %858

858:                                              ; preds = %857, %717, %505
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #3
  %859 = load i32, ptr %30, align 4
  ret i32 %859
}

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

declare i32 @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 i32 @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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!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 noundef i32 @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 i64, align 8
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca i64, align 8
  %34 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr nonnull %33) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #4
  %35 = load i64, ptr %7, align 8, !tbaa !5
  %36 = xor i64 %35, -1
  %37 = getelementptr inbounds %struct.complex, ptr %6, i64 %36
  %38 = load i64, ptr %9, align 8, !tbaa !5
  %39 = xor i64 %38, -1
  %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 i64 0, ptr %28, align 8, !tbaa !5
  %43 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %44 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %45 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #4
  %46 = tail call double @slamch_(ptr noundef nonnull @.str.2) #4
  %47 = fptrunc double %46 to float
  %48 = fdiv float 1.000000e+00, %47
  %49 = icmp ne i64 %43, 0
  %50 = icmp ne i64 %44, 0
  %or.cond = select i1 %49, i1 true, i1 %50
  br i1 %or.cond, label %.thread, label %51

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

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

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

56:                                               ; preds = %53, %51
  %57 = phi i1 [ true, %51 ], [ %55, %53 ]
  %58 = zext i1 %57 to i64
  %59 = tail call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.5) #4
  %.not354 = icmp eq i64 %59, 0
  br i1 %.not354, label %60, label %63

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

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

67:                                               ; preds = %.thread, %63
  %.0381 = phi i64 [ 0, %.thread ], [ %58, %63 ]
  %.0338379 = phi i64 [ 0, %.thread ], [ %65, %63 ]
  %.not356 = icmp eq i64 %45, 0
  br i1 %.not356, label %68, label %72

68:                                               ; preds = %67
  %69 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.7) #4
  %.not357 = icmp eq i64 %69, 0
  br i1 %.not357, label %70, label %72

70:                                               ; preds = %68
  %71 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.5) #4
  %.not358 = icmp eq i64 %71, 0
  br i1 %.not358, label %.thread388.sink.split, label %72

72:                                               ; preds = %70, %68, %67
  %73 = load i64, ptr %2, align 8, !tbaa !5
  %74 = icmp slt i64 %73, 0
  br i1 %74, label %.thread388.sink.split, label %75

75:                                               ; preds = %72
  %76 = load i64, ptr %3, align 8, !tbaa !5
  %77 = icmp slt i64 %76, 0
  br i1 %77, label %.thread388.sink.split, label %78

78:                                               ; preds = %75
  %79 = load i64, ptr %4, align 8, !tbaa !5
  %80 = icmp slt i64 %79, 0
  br i1 %80, label %.thread388.sink.split, label %81

81:                                               ; preds = %78
  %82 = load i64, ptr %5, align 8, !tbaa !5
  %83 = icmp slt i64 %82, 0
  br i1 %83, label %.thread388.sink.split, label %84

84:                                               ; preds = %81
  %85 = load i64, ptr %7, align 8, !tbaa !5
  %86 = add nuw nsw i64 %79, %76
  %.not359 = icmp sgt i64 %85, %86
  br i1 %.not359, label %87, label %.thread388.sink.split

87:                                               ; preds = %84
  %88 = load i64, ptr %9, align 8, !tbaa !5
  %89 = shl nuw i64 %76, 1
  %90 = add nsw i64 %79, %89
  %.not360 = icmp sgt i64 %88, %90
  br i1 %.not360, label %91, label %.thread388.sink.split

91:                                               ; preds = %87
  %92 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.6) #4
  %93 = icmp eq i64 %92, 0
  %94 = icmp ne i64 %.0381, 0
  %or.cond5 = select i1 %93, i1 true, i1 %94
  %95 = icmp ne i64 %.0338379, 0
  %or.cond7 = select i1 %or.cond5, i1 true, i1 %95
  br i1 %or.cond7, label %98, label %96

96:                                               ; preds = %91
  %97 = tail call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str) #4
  %.not361 = icmp eq i64 %97, 0
  br i1 %.not361, label %.thread388.sink.split, label %..thread383_crit_edge

..thread383_crit_edge:                            ; preds = %96
  %.pr.pre = load i64, ptr %28, align 8, !tbaa !5
  br label %.thread383

98:                                               ; preds = %91
  br i1 %94, label %99, label %131

99:                                               ; preds = %98
  %100 = load i64, ptr %2, align 8, !tbaa !5
  %.not362412 = icmp slt i64 %100, 1
  br i1 %.not362412, label %._crit_edge, label %.lr.ph.preheader

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

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %.0341415 = phi float [ 0.000000e+00, %.lr.ph.preheader.new ], [ %113, %.lr.ph ]
  %.0343414 = phi float [ %48, %.lr.ph.preheader.new ], [ %111, %.lr.ph ]
  %.0345413 = phi i64 [ 1, %.lr.ph.preheader.new ], [ %114, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %102 = getelementptr inbounds float, ptr %41, i64 %.0345413
  %103 = load float, ptr %102, align 4, !tbaa !10
  %104 = fcmp ole float %.0343414, %103
  %105 = select i1 %104, float %.0343414, float %103
  %106 = fcmp oge float %.0341415, %103
  %107 = select i1 %106, float %.0341415, float %103
  %108 = getelementptr float, ptr %12, i64 %.0345413
  %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
  %114 = add nuw i64 %.0345413, 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
  %.lcssa520.ph = phi float [ poison, %.lr.ph.preheader ], [ %111, %.lr.ph ]
  %.lcssa519.ph = phi float [ poison, %.lr.ph.preheader ], [ %113, %.lr.ph ]
  %.0341415.unr = phi float [ 0.000000e+00, %.lr.ph.preheader ], [ %113, %.lr.ph ]
  %.0343414.unr = phi float [ %48, %.lr.ph.preheader ], [ %111, %.lr.ph ]
  %.0345413.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %114, %.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
  %115 = getelementptr inbounds float, ptr %41, i64 %.0345413.unr
  %116 = load float, ptr %115, align 4, !tbaa !10
  %117 = fcmp ole float %.0343414.unr, %116
  %118 = select i1 %117, float %.0343414.unr, float %116
  %119 = fcmp oge float %.0341415.unr, %116
  %120 = select i1 %119, float %.0341415.unr, float %116
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.epil, %._crit_edge.loopexit.unr-lcssa, %99
  %.0343.lcssa = phi float [ %48, %99 ], [ %.lcssa520.ph, %._crit_edge.loopexit.unr-lcssa ], [ %118, %.lr.ph.epil ]
  %.0341.lcssa = phi float [ 0.000000e+00, %99 ], [ %.lcssa519.ph, %._crit_edge.loopexit.unr-lcssa ], [ %120, %.lr.ph.epil ]
  %121 = fcmp ugt float %.0343.lcssa, 0.000000e+00
  br i1 %121, label %122, label %.thread388.sink.split

122:                                              ; preds = %._crit_edge
  %123 = icmp sgt i64 %100, 0
  br i1 %123, label %124, label %130

124:                                              ; preds = %122
  %125 = fcmp oge float %.0343.lcssa, %47
  %126 = select i1 %125, float %.0343.lcssa, float %47
  %127 = fcmp ole float %.0341.lcssa, %48
  %128 = select i1 %127, float %.0341.lcssa, float %48
  %129 = fdiv float %126, %128
  store float %129, ptr %34, align 4, !tbaa !10
  br label %131

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

131:                                              ; preds = %130, %124, %98
  %.pr.pre455.pr = load i64, ptr %28, align 8, !tbaa !5
  br i1 %95, label %132, label %.thread383

132:                                              ; preds = %131
  %133 = icmp eq i64 %.pr.pre455.pr, 0
  br i1 %133, label %134, label %.thread388

134:                                              ; preds = %132
  %135 = load i64, ptr %2, align 8, !tbaa !5
  %.not363417 = icmp slt i64 %135, 1
  br i1 %.not363417, label %._crit_edge423, label %.lr.ph422.preheader

.lr.ph422.preheader:                              ; preds = %134
  %xtraiter523 = and i64 %135, 1
  %136 = icmp eq i64 %135, 1
  br i1 %136, label %._crit_edge423.loopexit.unr-lcssa, label %.lr.ph422.preheader.new

.lr.ph422.preheader.new:                          ; preds = %.lr.ph422.preheader
  %unroll_iter527 = and i64 %135, 9223372036854775806
  br label %.lr.ph422

.lr.ph422:                                        ; preds = %.lr.ph422, %.lr.ph422.preheader.new
  %.1342420 = phi float [ 0.000000e+00, %.lr.ph422.preheader.new ], [ %148, %.lr.ph422 ]
  %.1344419 = phi float [ %48, %.lr.ph422.preheader.new ], [ %146, %.lr.ph422 ]
  %.1346418 = phi i64 [ 1, %.lr.ph422.preheader.new ], [ %149, %.lr.ph422 ]
  %niter528 = phi i64 [ 0, %.lr.ph422.preheader.new ], [ %niter528.next.1, %.lr.ph422 ]
  %137 = getelementptr inbounds float, ptr %42, i64 %.1346418
  %138 = load float, ptr %137, align 4, !tbaa !10
  %139 = fcmp ole float %.1344419, %138
  %140 = select i1 %139, float %.1344419, float %138
  %141 = fcmp oge float %.1342420, %138
  %142 = select i1 %141, float %.1342420, float %138
  %143 = getelementptr float, ptr %13, i64 %.1346418
  %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
  %149 = add nuw i64 %.1346418, 2
  %niter528.next.1 = add i64 %niter528, 2
  %niter528.ncmp.1 = icmp eq i64 %niter528.next.1, %unroll_iter527
  br i1 %niter528.ncmp.1, label %._crit_edge423.loopexit.unr-lcssa, label %.lr.ph422, !llvm.loop !14

._crit_edge423.loopexit.unr-lcssa:                ; preds = %.lr.ph422, %.lr.ph422.preheader
  %.lcssa518.ph = phi float [ poison, %.lr.ph422.preheader ], [ %146, %.lr.ph422 ]
  %.lcssa.ph = phi float [ poison, %.lr.ph422.preheader ], [ %148, %.lr.ph422 ]
  %.1342420.unr = phi float [ 0.000000e+00, %.lr.ph422.preheader ], [ %148, %.lr.ph422 ]
  %.1344419.unr = phi float [ %48, %.lr.ph422.preheader ], [ %146, %.lr.ph422 ]
  %.1346418.unr = phi i64 [ 1, %.lr.ph422.preheader ], [ %149, %.lr.ph422 ]
  %lcmp.mod524.not = icmp eq i64 %xtraiter523, 0
  br i1 %lcmp.mod524.not, label %._crit_edge423, label %.lr.ph422.epil

.lr.ph422.epil:                                   ; preds = %._crit_edge423.loopexit.unr-lcssa
  %150 = getelementptr inbounds float, ptr %42, i64 %.1346418.unr
  %151 = load float, ptr %150, align 4, !tbaa !10
  %152 = fcmp ole float %.1344419.unr, %151
  %153 = select i1 %152, float %.1344419.unr, float %151
  %154 = fcmp oge float %.1342420.unr, %151
  %155 = select i1 %154, float %.1342420.unr, float %151
  br label %._crit_edge423

._crit_edge423:                                   ; preds = %.lr.ph422.epil, %._crit_edge423.loopexit.unr-lcssa, %134
  %.1344.lcssa = phi float [ %48, %134 ], [ %.lcssa518.ph, %._crit_edge423.loopexit.unr-lcssa ], [ %153, %.lr.ph422.epil ]
  %.1342.lcssa = phi float [ 0.000000e+00, %134 ], [ %.lcssa.ph, %._crit_edge423.loopexit.unr-lcssa ], [ %155, %.lr.ph422.epil ]
  %156 = fcmp ugt float %.1344.lcssa, 0.000000e+00
  br i1 %156, label %157, label %.thread388.sink.split

157:                                              ; preds = %._crit_edge423
  %158 = icmp sgt i64 %135, 0
  br i1 %158, label %159, label %165

159:                                              ; preds = %157
  %160 = fcmp oge float %.1344.lcssa, %47
  %161 = select i1 %160, float %.1344.lcssa, float %47
  %162 = fcmp ole float %.1342.lcssa, %48
  %163 = select i1 %162, float %.1342.lcssa, float %48
  %164 = fdiv float %161, %163
  store float %164, ptr %32, align 4, !tbaa !10
  br label %.thread383.thread

165:                                              ; preds = %157
  store float 1.000000e+00, ptr %32, align 4, !tbaa !10
  br label %.thread383.thread

.thread383:                                       ; preds = %..thread383_crit_edge, %131
  %.pr386.pr = phi i64 [ %.pr.pre, %..thread383_crit_edge ], [ %.pr.pre455.pr, %131 ]
  %166 = icmp eq i64 %.pr386.pr, 0
  br i1 %166, label %.thread383.thread, label %.thread388

.thread383.thread:                                ; preds = %159, %165, %.thread383
  %167 = load i64, ptr %15, align 8, !tbaa !5
  %168 = load i64, ptr %2, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.smax.i64(i64 %168, i64 1)
  %169 = icmp slt i64 %167, %spec.select
  br i1 %169, label %.thread388.sink.split, label %170

170:                                              ; preds = %.thread383.thread
  %171 = load i64, ptr %17, align 8, !tbaa !5
  %172 = icmp slt i64 %171, %spec.select
  br i1 %172, label %.thread388.sink.split, label %.thread384

.thread388.sink.split:                            ; preds = %170, %.thread383.thread, %._crit_edge423, %._crit_edge, %96, %87, %84, %81, %78, %75, %72, %70, %63
  %.sink = phi i64 [ -1, %63 ], [ -2, %70 ], [ -3, %72 ], [ -4, %75 ], [ -5, %78 ], [ -6, %81 ], [ -8, %84 ], [ -10, %87 ], [ -12, %96 ], [ -13, %._crit_edge ], [ -14, %._crit_edge423 ], [ -15, %.thread383.thread ], [ -16, %170 ]
  store i64 %.sink, ptr %28, align 8, !tbaa !5
  br label %.thread388

.thread388:                                       ; preds = %.thread388.sink.split, %132, %.thread383
  %173 = phi i64 [ %.pr386.pr, %.thread383 ], [ %.pr.pre455.pr, %132 ], [ %.sink, %.thread388.sink.split ]
  %174 = sub nsw i64 0, %173
  store i64 %174, ptr %30, align 8, !tbaa !5
  %175 = call i32 @xerbla_(ptr noundef nonnull @.str.8, ptr noundef nonnull %30) #4
  br label %284

.thread384:                                       ; preds = %170
  br i1 %50, label %176, label %.loopexit

176:                                              ; preds = %.thread384
  %177 = call i32 @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
  %178 = load i64, ptr %33, align 8, !tbaa !5
  %179 = icmp eq i64 %178, 0
  br i1 %179, label %180, label %194

180:                                              ; preds = %176
  %181 = call i32 @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
  %182 = call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.3) #4
  %.not365 = icmp eq i64 %182, 0
  br i1 %.not365, label %183, label %187

183:                                              ; preds = %180
  %184 = call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.4) #4
  %185 = icmp ne i64 %184, 0
  %186 = zext i1 %185 to i64
  br label %187

187:                                              ; preds = %183, %180
  %188 = phi i64 [ 1, %180 ], [ %186, %183 ]
  %189 = call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.5) #4
  %.not366 = icmp eq i64 %189, 0
  br i1 %.not366, label %190, label %194

190:                                              ; preds = %187
  %191 = call i64 @lsame_(ptr noundef %11, ptr noundef nonnull @.str.4) #4
  %192 = icmp ne i64 %191, 0
  %193 = zext i1 %192 to i64
  br label %194

194:                                              ; preds = %187, %190, %176
  %.1339 = phi i64 [ %.0338379, %176 ], [ 1, %187 ], [ %193, %190 ]
  %.1 = phi i64 [ %.0381, %176 ], [ %188, %187 ], [ %188, %190 ]
  %.not367 = icmp eq i64 %.1, 0
  br i1 %.not367, label %195, label %.loopexit411

195:                                              ; preds = %194
  %196 = load i64, ptr %2, align 8, !tbaa !5
  %.not368426 = icmp slt i64 %196, 1
  br i1 %.not368426, label %.loopexit411, label %.lr.ph429.preheader

.lr.ph429.preheader:                              ; preds = %195
  %min.iters.check = icmp ult i64 %196, 8
  br i1 %min.iters.check, label %.lr.ph429.preheader517, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph429.preheader
  %n.vec = and i64 %196, 9223372036854775800
  %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 ]
  %197 = getelementptr float, ptr %12, i64 %index
  %198 = getelementptr inbounds i8, ptr %197, i64 16
  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
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %198, align 4, !tbaa !10
  %index.next = add nuw i64 %index, 8
  %199 = icmp eq i64 %index.next, %n.vec
  br i1 %199, label %middle.block, label %vector.body, !llvm.loop !15

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %196, %n.vec
  br i1 %cmp.n, label %.loopexit411, label %.lr.ph429.preheader517

.lr.ph429.preheader517:                           ; preds = %middle.block, %.lr.ph429.preheader
  %.2347427.ph = phi i64 [ 1, %.lr.ph429.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph429

.lr.ph429:                                        ; preds = %.lr.ph429.preheader517, %.lr.ph429
  %.2347427 = phi i64 [ %201, %.lr.ph429 ], [ %.2347427.ph, %.lr.ph429.preheader517 ]
  %200 = getelementptr inbounds float, ptr %41, i64 %.2347427
  store float 1.000000e+00, ptr %200, align 4, !tbaa !10
  %201 = add nuw i64 %.2347427, 1
  %exitcond451.not = icmp eq i64 %.2347427, %196
  br i1 %exitcond451.not, label %.loopexit411, label %.lr.ph429, !llvm.loop !18

.loopexit411:                                     ; preds = %.lr.ph429, %middle.block, %195, %194
  %.not369 = icmp eq i64 %.1339, 0
  br i1 %.not369, label %202, label %.thread392

202:                                              ; preds = %.loopexit411
  %203 = load i64, ptr %2, align 8, !tbaa !5
  %.not370430 = icmp slt i64 %203, 1
  br i1 %.not370430, label %.loopexit, label %.lr.ph433.preheader

.lr.ph433.preheader:                              ; preds = %202
  %min.iters.check475 = icmp ult i64 %203, 8
  br i1 %min.iters.check475, label %.lr.ph433.preheader516, label %vector.ph476

vector.ph476:                                     ; preds = %.lr.ph433.preheader
  %n.vec478 = and i64 %203, 9223372036854775800
  %ind.end479 = or disjoint i64 %n.vec478, 1
  br label %vector.body481

vector.body481:                                   ; preds = %vector.body481, %vector.ph476
  %index482 = phi i64 [ 0, %vector.ph476 ], [ %index.next484, %vector.body481 ]
  %204 = getelementptr float, ptr %13, i64 %index482
  %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.next484 = add nuw i64 %index482, 8
  %206 = icmp eq i64 %index.next484, %n.vec478
  br i1 %206, label %middle.block473, label %vector.body481, !llvm.loop !19

middle.block473:                                  ; preds = %vector.body481
  %cmp.n485 = icmp eq i64 %203, %n.vec478
  br i1 %cmp.n485, label %.loopexit, label %.lr.ph433.preheader516

.lr.ph433.preheader516:                           ; preds = %middle.block473, %.lr.ph433.preheader
  %.3431.ph = phi i64 [ 1, %.lr.ph433.preheader ], [ %ind.end479, %middle.block473 ]
  br label %.lr.ph433

.lr.ph433:                                        ; preds = %.lr.ph433.preheader516, %.lr.ph433
  %.3431 = phi i64 [ %208, %.lr.ph433 ], [ %.3431.ph, %.lr.ph433.preheader516 ]
  %207 = getelementptr inbounds float, ptr %42, i64 %.3431
  store float 1.000000e+00, ptr %207, align 4, !tbaa !10
  %208 = add nuw i64 %.3431, 1
  %exitcond452.not = icmp eq i64 %.3431, %203
  br i1 %exitcond452.not, label %.loopexit, label %.lr.ph433, !llvm.loop !20

.loopexit:                                        ; preds = %.lr.ph433, %middle.block473, %202, %.thread384
  %.2340 = phi i64 [ %.0338379, %.thread384 ], [ 0, %202 ], [ 0, %middle.block473 ], [ 0, %.lr.ph433 ]
  %.2 = phi i64 [ %.0381, %.thread384 ], [ %.1, %202 ], [ %.1, %middle.block473 ], [ %.1, %.lr.ph433 ]
  br i1 %.not356, label %210, label %209

.thread392:                                       ; preds = %.loopexit411
  br i1 %.not356, label %.sink.split, label %209

209:                                              ; preds = %.thread392, %.loopexit
  %.2398 = phi i64 [ %.1, %.thread392 ], [ %.2, %.loopexit ]
  %.2340397 = phi i64 [ 1, %.thread392 ], [ %.2340, %.loopexit ]
  %.not372 = icmp eq i64 %.2398, 0
  br i1 %.not372, label %212, label %.sink.split

210:                                              ; preds = %.loopexit
  %.not371 = icmp eq i64 %.2340, 0
  br i1 %.not371, label %212, label %.sink.split

.sink.split:                                      ; preds = %210, %.thread392, %209
  %.sink469 = phi ptr [ %12, %209 ], [ %13, %.thread392 ], [ %13, %210 ]
  %.ph468 = phi i1 [ true, %209 ], [ false, %.thread392 ], [ false, %210 ]
  %.2399.ph = phi i64 [ 1, %209 ], [ %.1, %.thread392 ], [ %.2, %210 ]
  %.2340395.ph = phi i64 [ %.2340397, %209 ], [ 1, %.thread392 ], [ 1, %210 ]
  %211 = call i32 @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %.sink469, ptr noundef %14, ptr noundef nonnull %15) #4
  br label %212

212:                                              ; preds = %.sink.split, %210, %209
  %213 = phi i1 [ false, %210 ], [ true, %209 ], [ %.ph468, %.sink.split ]
  %.2399 = phi i64 [ %.2, %210 ], [ 0, %209 ], [ %.2399.ph, %.sink.split ]
  %.2340395 = phi i64 [ 0, %210 ], [ %.2340397, %209 ], [ %.2340395.ph, %.sink.split ]
  br i1 %or.cond, label %214, label %271

214:                                              ; preds = %212
  %215 = load i64, ptr %2, align 8, !tbaa !5
  %.not373441 = icmp slt i64 %215, 1
  br i1 %.not373441, label %._crit_edge445, label %.lr.ph444

.lr.ph444:                                        ; preds = %214
  %216 = load i64, ptr %3, align 8, !tbaa !5
  %217 = shl i64 %216, 1
  %218 = load i64, ptr %4, align 8, !tbaa !5
  %219 = add i64 %217, %218
  %.not374434 = icmp sgt i64 %216, %219
  br i1 %.not374434, label %._crit_edge445, label %.lr.ph437.preheader

.lr.ph437.preheader:                              ; preds = %.lr.ph444
  %220 = shl i64 %216, 3
  %scevgep = getelementptr i8, ptr %8, i64 %220
  %221 = add nsw i64 %215, -1
  %222 = mul i64 %38, %221
  %223 = shl i64 %222, 3
  %224 = shl i64 %216, 4
  %225 = add i64 %223, %224
  %226 = shl i64 %218, 3
  %227 = add i64 %225, %226
  %228 = or disjoint i64 %227, 4
  %scevgep486 = getelementptr i8, ptr %8, i64 %228
  %229 = shl i64 %38, 3
  %230 = mul i64 %35, %221
  %231 = shl i64 %230, 3
  %232 = add i64 %218, %216
  %233 = shl i64 %232, 3
  %234 = add i64 %231, %233
  %235 = or disjoint i64 %234, 4
  %scevgep487 = getelementptr i8, ptr %6, i64 %235
  %236 = shl i64 %35, 3
  %237 = or disjoint i64 %220, 4
  %scevgep488 = getelementptr i8, ptr %8, i64 %237
  %238 = getelementptr i8, ptr %8, i64 %223
  %239 = getelementptr i8, ptr %238, i64 %224
  %240 = getelementptr i8, ptr %239, i64 %226
  %scevgep489 = getelementptr i8, ptr %240, i64 8
  %scevgep490 = getelementptr i8, ptr %6, i64 4
  %241 = getelementptr i8, ptr %6, i64 %231
  %242 = getelementptr i8, ptr %241, i64 %233
  %scevgep491 = getelementptr i8, ptr %242, i64 8
  %243 = add i64 %218, %216
  %244 = add i64 %243, 1
  %min.iters.check500 = icmp ult i64 %244, 10
  %bound0 = icmp ult ptr %scevgep, %scevgep487
  %bound1 = icmp ugt ptr %scevgep486, %6
  %found.conflict = and i1 %bound0, %bound1
  %245 = or i64 %229, %236
  %246 = icmp slt i64 %245, 0
  %247 = or i1 %found.conflict, %246
  %bound0493 = icmp ult ptr %scevgep488, %scevgep491
  %bound1494 = icmp ult ptr %scevgep490, %scevgep489
  %found.conflict495 = and i1 %bound0493, %bound1494
  %248 = or i64 %229, %236
  %249 = icmp slt i64 %248, 0
  %250 = or i1 %found.conflict495, %249
  %conflict.rdx = or i1 %247, %250
  %n.vec503 = and i64 %244, -4
  %ind.end504 = add i64 %216, %n.vec503
  %cmp.n515 = icmp eq i64 %244, %n.vec503
  br label %.lr.ph437

.lr.ph437:                                        ; preds = %.lr.ph437.preheader, %._crit_edge438
  %.4442 = phi i64 [ %264, %._crit_edge438 ], [ 1, %.lr.ph437.preheader ]
  %251 = mul nsw i64 %.4442, %38
  %252 = mul nsw i64 %.4442, %35
  %invariant.gep = getelementptr %struct.complex, ptr %37, i64 %252
  %invariant.gep439 = getelementptr %struct.complex, ptr %40, i64 %251
  %brmerge = select i1 %min.iters.check500, i1 true, i1 %conflict.rdx
  br i1 %brmerge, label %scalar.ph499.preheader, label %vector.body506

vector.body506:                                   ; preds = %.lr.ph437, %vector.body506
  %index507 = phi i64 [ %index.next514, %vector.body506 ], [ 0, %.lr.ph437 ]
  %offset.idx508 = add i64 %216, %index507
  %253 = add nsw i64 %offset.idx508, 1
  %254 = add i64 %offset.idx508, 3
  %255 = sub nsw i64 %253, %216
  %256 = sub nsw i64 %254, %216
  %257 = getelementptr %struct.complex, ptr %invariant.gep, i64 %255
  %258 = getelementptr %struct.complex, ptr %invariant.gep, i64 %256
  %wide.vec = load <4 x float>, ptr %257, align 4, !tbaa !10
  %wide.vec509 = load <4 x float>, ptr %258, align 4, !tbaa !10
  %259 = getelementptr %struct.complex, ptr %invariant.gep439, i64 %253
  %260 = getelementptr %struct.complex, ptr %invariant.gep439, i64 %254
  store <4 x float> %wide.vec, ptr %259, align 4, !tbaa !10
  store <4 x float> %wide.vec509, ptr %260, align 4, !tbaa !10
  %index.next514 = add nuw i64 %index507, 4
  %261 = icmp eq i64 %index.next514, %n.vec503
  br i1 %261, label %middle.block498, label %vector.body506, !llvm.loop !21

middle.block498:                                  ; preds = %vector.body506
  br i1 %cmp.n515, label %._crit_edge438, label %scalar.ph499.preheader

scalar.ph499.preheader:                           ; preds = %.lr.ph437, %middle.block498
  %.0348.in435.ph = phi i64 [ %216, %.lr.ph437 ], [ %ind.end504, %middle.block498 ]
  br label %scalar.ph499

scalar.ph499:                                     ; preds = %scalar.ph499.preheader, %scalar.ph499
  %.0348.in435 = phi i64 [ %.0348, %scalar.ph499 ], [ %.0348.in435.ph, %scalar.ph499.preheader ]
  %.0348 = add nsw i64 %.0348.in435, 1
  %262 = sub nsw i64 %.0348, %216
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %262
  %gep440 = getelementptr %struct.complex, ptr %invariant.gep439, i64 %.0348
  %263 = load <2 x float>, ptr %gep, align 4, !tbaa !10
  store <2 x float> %263, ptr %gep440, align 4, !tbaa !10
  %exitcond453.not = icmp eq i64 %.0348.in435, %219
  br i1 %exitcond453.not, label %._crit_edge438, label %scalar.ph499, !llvm.loop !22

._crit_edge438:                                   ; preds = %scalar.ph499, %middle.block498
  %264 = add nuw i64 %.4442, 1
  %exitcond454.not = icmp eq i64 %.4442, %215
  br i1 %exitcond454.not, label %._crit_edge445, label %.lr.ph437, !llvm.loop !23

._crit_edge445:                                   ; preds = %._crit_edge438, %.lr.ph444, %214
  %265 = call i32 @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
  %266 = load i64, ptr %28, align 8, !tbaa !5
  %267 = icmp sgt i64 %266, 0
  br i1 %267, label %268, label %271

268:                                              ; preds = %._crit_edge445
  %269 = call double @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
  %270 = fptrunc double %269 to float
  store float %270, ptr %19, align 4, !tbaa !10
  br label %284

271:                                              ; preds = %._crit_edge445, %212
  %272 = call double @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
  %273 = fptrunc double %272 to float
  store float %273, ptr %19, align 4, !tbaa !10
  %274 = call i32 @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
  %275 = call i32 @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
  %276 = call i32 @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
  %277 = icmp ne i64 %.2340395, 0
  %or.cond11 = and i1 %213, %277
  br i1 %or.cond11, label %278, label %280

278:                                              ; preds = %271
  %279 = call i32 @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %13, ptr noundef %16, ptr noundef nonnull %17) #4
  br label %284

280:                                              ; preds = %271
  %281 = icmp eq i64 %.2399, 0
  %or.cond13 = or i1 %213, %281
  br i1 %or.cond13, label %284, label %282

282:                                              ; preds = %280
  %283 = call i32 @clascl2_(ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef %12, ptr noundef %16, ptr noundef nonnull %17) #4
  br label %284

284:                                              ; preds = %278, %282, %280, %268, %.thread388
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr nonnull %30) #4
  ret i32 0
}

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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


; Effective O3 passes: ADCEPass,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