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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1

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

179:                                              ; preds = %29
  store i32 1, ptr %99, align 4, !tbaa !9
  store i32 0, ptr %81, align 4, !tbaa !9
  br label %187

180:                                              ; preds = %29
  %181 = load ptr, ptr %31, align 8, !tbaa !5
  %182 = call i32 @lsame_(ptr noundef %181, ptr noundef @.str.1)
  %183 = icmp ne i32 %182, 0
  br i1 %183, label %184, label %185

184:                                              ; preds = %180
  store i32 2, ptr %99, align 4, !tbaa !9
  store i32 1, ptr %81, align 4, !tbaa !9
  br label %186

185:                                              ; preds = %180
  store i32 -1, ptr %99, align 4, !tbaa !9
  store i32 0, ptr %81, align 4, !tbaa !9
  br label %186

186:                                              ; preds = %185, %184
  br label %187

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

191:                                              ; preds = %187
  store i32 1, ptr %100, align 4, !tbaa !9
  store i32 0, ptr %82, align 4, !tbaa !9
  br label %199

192:                                              ; preds = %187
  %193 = load ptr, ptr %32, align 8, !tbaa !5
  %194 = call i32 @lsame_(ptr noundef %193, ptr noundef @.str.1)
  %195 = icmp ne i32 %194, 0
  br i1 %195, label %196, label %197

196:                                              ; preds = %192
  store i32 2, ptr %100, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %198

197:                                              ; preds = %192
  store i32 -1, ptr %100, align 4, !tbaa !9
  store i32 0, ptr %82, align 4, !tbaa !9
  br label %198

198:                                              ; preds = %197, %196
  br label %199

199:                                              ; preds = %198, %191
  %200 = load i32, ptr %81, align 4, !tbaa !9
  %201 = icmp ne i32 %200, 0
  br i1 %201, label %205, label %202

202:                                              ; preds = %199
  %203 = load i32, ptr %82, align 4, !tbaa !9
  %204 = icmp ne i32 %203, 0
  br label %205

205:                                              ; preds = %202, %199
  %206 = phi i1 [ true, %199 ], [ %204, %202 ]
  %207 = zext i1 %206 to i32
  store i32 %207, ptr %112, align 4, !tbaa !9
  %208 = load ptr, ptr %30, align 8, !tbaa !5
  %209 = call i32 @lsame_(ptr noundef %208, ptr noundef @.str)
  %210 = icmp ne i32 %209, 0
  br i1 %210, label %215, label %211

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

215:                                              ; preds = %211, %205
  %216 = phi i1 [ true, %205 ], [ %214, %211 ]
  %217 = zext i1 %216 to i32
  store i32 %217, ptr %89, align 4, !tbaa !9
  %218 = load ptr, ptr %33, align 8, !tbaa !5
  %219 = call i32 @lsame_(ptr noundef %218, ptr noundef @.str)
  store i32 %219, ptr %107, align 4, !tbaa !9
  %220 = load ptr, ptr %33, align 8, !tbaa !5
  %221 = call i32 @lsame_(ptr noundef %220, ptr noundef @.str.3)
  store i32 %221, ptr %103, align 4, !tbaa !9
  %222 = load ptr, ptr %33, align 8, !tbaa !5
  %223 = call i32 @lsame_(ptr noundef %222, ptr noundef @.str.1)
  store i32 %223, ptr %110, align 4, !tbaa !9
  %224 = load ptr, ptr %33, align 8, !tbaa !5
  %225 = call i32 @lsame_(ptr noundef %224, ptr noundef @.str.4)
  store i32 %225, ptr %101, align 4, !tbaa !9
  %226 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 0, ptr %226, align 4, !tbaa !9
  %227 = load ptr, ptr %54, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = icmp eq i32 %228, -1
  %230 = zext i1 %229 to i32
  store i32 %230, ptr %109, align 4, !tbaa !9
  %231 = load i32, ptr %89, align 4, !tbaa !9
  %232 = icmp ne i32 %231, 0
  br i1 %232, label %243, label %233

233:                                              ; preds = %215
  %234 = load ptr, ptr %30, align 8, !tbaa !5
  %235 = call i32 @lsame_(ptr noundef %234, ptr noundef @.str.5)
  %236 = icmp ne i32 %235, 0
  br i1 %236, label %243, label %237

237:                                              ; preds = %233
  %238 = load ptr, ptr %30, align 8, !tbaa !5
  %239 = call i32 @lsame_(ptr noundef %238, ptr noundef @.str.4)
  %240 = icmp ne i32 %239, 0
  br i1 %240, label %243, label %241

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

243:                                              ; preds = %237, %233, %215
  %244 = load i32, ptr %99, align 4, !tbaa !9
  %245 = icmp sle i32 %244, 0
  br i1 %245, label %246, label %248

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

248:                                              ; preds = %243
  %249 = load i32, ptr %100, align 4, !tbaa !9
  %250 = icmp sle i32 %249, 0
  br i1 %250, label %251, label %253

251:                                              ; preds = %248
  %252 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -3, ptr %252, align 4, !tbaa !9
  br label %339

253:                                              ; preds = %248
  %254 = load i32, ptr %107, align 4, !tbaa !9
  %255 = icmp ne i32 %254, 0
  br i1 %255, label %267, label %256

256:                                              ; preds = %253
  %257 = load i32, ptr %103, align 4, !tbaa !9
  %258 = icmp ne i32 %257, 0
  br i1 %258, label %267, label %259

259:                                              ; preds = %256
  %260 = load i32, ptr %101, align 4, !tbaa !9
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %267, label %262

262:                                              ; preds = %259
  %263 = load i32, ptr %110, align 4, !tbaa !9
  %264 = icmp ne i32 %263, 0
  br i1 %264, label %267, label %265

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

267:                                              ; preds = %262, %259, %256, %253
  %268 = load ptr, ptr %34, align 8, !tbaa !5
  %269 = load i32, ptr %268, align 4, !tbaa !9
  %270 = icmp slt i32 %269, 0
  br i1 %270, label %271, label %273

271:                                              ; preds = %267
  %272 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -5, ptr %272, align 4, !tbaa !9
  br label %337

273:                                              ; preds = %267
  %274 = load ptr, ptr %36, align 8, !tbaa !5
  %275 = load i32, ptr %274, align 4, !tbaa !9
  %276 = load ptr, ptr %34, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  %278 = icmp sge i32 1, %277
  br i1 %278, label %279, label %280

279:                                              ; preds = %273
  br label %283

280:                                              ; preds = %273
  %281 = load ptr, ptr %34, align 8, !tbaa !5
  %282 = load i32, ptr %281, align 4, !tbaa !9
  br label %283

283:                                              ; preds = %280, %279
  %284 = phi i32 [ 1, %279 ], [ %282, %280 ]
  %285 = icmp slt i32 %275, %284
  br i1 %285, label %286, label %288

286:                                              ; preds = %283
  %287 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -7, ptr %287, align 4, !tbaa !9
  br label %336

288:                                              ; preds = %283
  %289 = load ptr, ptr %38, align 8, !tbaa !5
  %290 = load i32, ptr %289, align 4, !tbaa !9
  %291 = load ptr, ptr %34, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = icmp sge i32 1, %292
  br i1 %293, label %294, label %295

294:                                              ; preds = %288
  br label %298

295:                                              ; preds = %288
  %296 = load ptr, ptr %34, align 8, !tbaa !5
  %297 = load i32, ptr %296, align 4, !tbaa !9
  br label %298

298:                                              ; preds = %295, %294
  %299 = phi i32 [ 1, %294 ], [ %297, %295 ]
  %300 = icmp slt i32 %290, %299
  br i1 %300, label %301, label %303

301:                                              ; preds = %298
  %302 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -9, ptr %302, align 4, !tbaa !9
  br label %335

303:                                              ; preds = %298
  %304 = load ptr, ptr %42, align 8, !tbaa !5
  %305 = load i32, ptr %304, align 4, !tbaa !9
  %306 = icmp slt i32 %305, 1
  br i1 %306, label %316, label %307

307:                                              ; preds = %303
  %308 = load i32, ptr %81, align 4, !tbaa !9
  %309 = icmp ne i32 %308, 0
  br i1 %309, label %310, label %318

310:                                              ; preds = %307
  %311 = load ptr, ptr %42, align 8, !tbaa !5
  %312 = load i32, ptr %311, align 4, !tbaa !9
  %313 = load ptr, ptr %34, align 8, !tbaa !5
  %314 = load i32, ptr %313, align 4, !tbaa !9
  %315 = icmp slt i32 %312, %314
  br i1 %315, label %316, label %318

316:                                              ; preds = %310, %303
  %317 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -13, ptr %317, align 4, !tbaa !9
  br label %334

318:                                              ; preds = %310, %307
  %319 = load ptr, ptr %44, align 8, !tbaa !5
  %320 = load i32, ptr %319, align 4, !tbaa !9
  %321 = icmp slt i32 %320, 1
  br i1 %321, label %331, label %322

322:                                              ; preds = %318
  %323 = load i32, ptr %82, align 4, !tbaa !9
  %324 = icmp ne i32 %323, 0
  br i1 %324, label %325, label %333

325:                                              ; preds = %322
  %326 = load ptr, ptr %44, align 8, !tbaa !5
  %327 = load i32, ptr %326, align 4, !tbaa !9
  %328 = load ptr, ptr %34, align 8, !tbaa !5
  %329 = load i32, ptr %328, align 4, !tbaa !9
  %330 = icmp slt i32 %327, %329
  br i1 %330, label %331, label %333

331:                                              ; preds = %325, %318
  %332 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -15, ptr %332, align 4, !tbaa !9
  br label %333

333:                                              ; preds = %331, %325, %322
  br label %334

334:                                              ; preds = %333, %316
  br label %335

335:                                              ; preds = %334, %301
  br label %336

336:                                              ; preds = %335, %286
  br label %337

337:                                              ; preds = %336, %271
  br label %338

338:                                              ; preds = %337, %265
  br label %339

339:                                              ; preds = %338, %251
  br label %340

340:                                              ; preds = %339, %246
  br label %341

341:                                              ; preds = %340, %241
  %342 = load ptr, ptr %58, align 8, !tbaa !5
  %343 = load i32, ptr %342, align 4, !tbaa !9
  %344 = icmp eq i32 %343, 0
  br i1 %344, label %345, label %457

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

349:                                              ; preds = %345
  store i32 1, ptr %105, align 4, !tbaa !9
  store i32 1, ptr %106, align 4, !tbaa !9
  br label %438

350:                                              ; preds = %345
  %351 = load ptr, ptr %34, align 8, !tbaa !5
  %352 = load i32, ptr %351, align 4, !tbaa !9
  %353 = shl i32 %352, 1
  store i32 %353, ptr %105, align 4, !tbaa !9
  %354 = load i32, ptr %103, align 4, !tbaa !9
  %355 = icmp ne i32 %354, 0
  br i1 %355, label %356, label %360

356:                                              ; preds = %350
  %357 = load ptr, ptr %34, align 8, !tbaa !5
  %358 = load i32, ptr %357, align 4, !tbaa !9
  %359 = shl i32 %358, 2
  store i32 %359, ptr %105, align 4, !tbaa !9
  br label %375

360:                                              ; preds = %350
  %361 = load i32, ptr %110, align 4, !tbaa !9
  %362 = icmp ne i32 %361, 0
  br i1 %362, label %366, label %363

363:                                              ; preds = %360
  %364 = load i32, ptr %101, align 4, !tbaa !9
  %365 = icmp ne i32 %364, 0
  br i1 %365, label %366, label %374

366:                                              ; preds = %363, %360
  %367 = load ptr, ptr %34, align 8, !tbaa !5
  %368 = load i32, ptr %367, align 4, !tbaa !9
  %369 = shl i32 %368, 1
  %370 = load ptr, ptr %34, align 8, !tbaa !5
  %371 = load i32, ptr %370, align 4, !tbaa !9
  %372 = add nsw i32 %371, 1
  %373 = mul nsw i32 %369, %372
  store i32 %373, ptr %105, align 4, !tbaa !9
  br label %374

374:                                              ; preds = %366, %363
  br label %375

375:                                              ; preds = %374, %356
  %376 = load i32, ptr %105, align 4, !tbaa !9
  store i32 %376, ptr %106, align 4, !tbaa !9
  %377 = load i32, ptr %106, align 4, !tbaa !9
  store i32 %377, ptr %67, align 4, !tbaa !9
  %378 = load ptr, ptr %34, align 8, !tbaa !5
  %379 = load i32, ptr %378, align 4, !tbaa !9
  %380 = load ptr, ptr %34, align 8, !tbaa !5
  %381 = load i32, ptr %380, align 4, !tbaa !9
  %382 = load ptr, ptr %34, align 8, !tbaa !5
  %383 = load ptr, ptr %34, align 8, !tbaa !5
  %384 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %382, ptr noundef @c__1, ptr noundef %383, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %385 = mul nsw i32 %381, %384
  %386 = add nsw i32 %379, %385
  store i32 %386, ptr %68, align 4, !tbaa !9
  %387 = load i32, ptr %67, align 4, !tbaa !9
  %388 = load i32, ptr %68, align 4, !tbaa !9
  %389 = icmp sge i32 %387, %388
  br i1 %389, label %390, label %392

390:                                              ; preds = %375
  %391 = load i32, ptr %67, align 4, !tbaa !9
  br label %394

392:                                              ; preds = %375
  %393 = load i32, ptr %68, align 4, !tbaa !9
  br label %394

394:                                              ; preds = %392, %390
  %395 = phi i32 [ %391, %390 ], [ %393, %392 ]
  store i32 %395, ptr %106, align 4, !tbaa !9
  %396 = load i32, ptr %106, align 4, !tbaa !9
  store i32 %396, ptr %67, align 4, !tbaa !9
  %397 = load ptr, ptr %34, align 8, !tbaa !5
  %398 = load i32, ptr %397, align 4, !tbaa !9
  %399 = load ptr, ptr %34, align 8, !tbaa !5
  %400 = load i32, ptr %399, align 4, !tbaa !9
  %401 = load ptr, ptr %34, align 8, !tbaa !5
  %402 = load ptr, ptr %34, align 8, !tbaa !5
  %403 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef %401, ptr noundef @c__1, ptr noundef %402, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %404 = mul nsw i32 %400, %403
  %405 = add nsw i32 %398, %404
  store i32 %405, ptr %68, align 4, !tbaa !9
  %406 = load i32, ptr %67, align 4, !tbaa !9
  %407 = load i32, ptr %68, align 4, !tbaa !9
  %408 = icmp sge i32 %406, %407
  br i1 %408, label %409, label %411

409:                                              ; preds = %394
  %410 = load i32, ptr %67, align 4, !tbaa !9
  br label %413

411:                                              ; preds = %394
  %412 = load i32, ptr %68, align 4, !tbaa !9
  br label %413

413:                                              ; preds = %411, %409
  %414 = phi i32 [ %410, %409 ], [ %412, %411 ]
  store i32 %414, ptr %106, align 4, !tbaa !9
  %415 = load i32, ptr %81, align 4, !tbaa !9
  %416 = icmp ne i32 %415, 0
  br i1 %416, label %417, label %437

417:                                              ; preds = %413
  %418 = load i32, ptr %106, align 4, !tbaa !9
  store i32 %418, ptr %67, align 4, !tbaa !9
  %419 = load ptr, ptr %34, align 8, !tbaa !5
  %420 = load i32, ptr %419, align 4, !tbaa !9
  %421 = load ptr, ptr %34, align 8, !tbaa !5
  %422 = load i32, ptr %421, align 4, !tbaa !9
  %423 = load ptr, ptr %34, align 8, !tbaa !5
  %424 = load ptr, ptr %34, align 8, !tbaa !5
  %425 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.9, ptr noundef @.str.7, ptr noundef %423, ptr noundef @c__1, ptr noundef %424, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  %426 = mul nsw i32 %422, %425
  %427 = add nsw i32 %420, %426
  store i32 %427, ptr %68, align 4, !tbaa !9
  %428 = load i32, ptr %67, align 4, !tbaa !9
  %429 = load i32, ptr %68, align 4, !tbaa !9
  %430 = icmp sge i32 %428, %429
  br i1 %430, label %431, label %433

431:                                              ; preds = %417
  %432 = load i32, ptr %67, align 4, !tbaa !9
  br label %435

433:                                              ; preds = %417
  %434 = load i32, ptr %68, align 4, !tbaa !9
  br label %435

435:                                              ; preds = %433, %431
  %436 = phi i32 [ %432, %431 ], [ %434, %433 ]
  store i32 %436, ptr %106, align 4, !tbaa !9
  br label %437

437:                                              ; preds = %435, %413
  br label %438

438:                                              ; preds = %437, %349
  %439 = load i32, ptr %106, align 4, !tbaa !9
  %440 = sitofp i32 %439 to float
  %441 = load ptr, ptr %53, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.complex, ptr %441, i64 1
  %443 = getelementptr inbounds %struct.complex, ptr %442, i32 0, i32 0
  store float %440, ptr %443, align 4, !tbaa !11
  %444 = load ptr, ptr %53, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.complex, ptr %444, i64 1
  %446 = getelementptr inbounds %struct.complex, ptr %445, i32 0, i32 1
  store float 0.000000e+00, ptr %446, align 4, !tbaa !14
  %447 = load ptr, ptr %54, align 8, !tbaa !5
  %448 = load i32, ptr %447, align 4, !tbaa !9
  %449 = load i32, ptr %105, align 4, !tbaa !9
  %450 = icmp slt i32 %448, %449
  br i1 %450, label %451, label %456

451:                                              ; preds = %438
  %452 = load i32, ptr %109, align 4, !tbaa !9
  %453 = icmp ne i32 %452, 0
  br i1 %453, label %456, label %454

454:                                              ; preds = %451
  %455 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 -25, ptr %455, align 4, !tbaa !9
  br label %456

456:                                              ; preds = %454, %451, %438
  br label %457

457:                                              ; preds = %456, %341
  %458 = load ptr, ptr %58, align 8, !tbaa !5
  %459 = load i32, ptr %458, align 4, !tbaa !9
  %460 = icmp ne i32 %459, 0
  br i1 %460, label %461, label %466

461:                                              ; preds = %457
  %462 = load ptr, ptr %58, align 8, !tbaa !5
  %463 = load i32, ptr %462, align 4, !tbaa !9
  %464 = sub nsw i32 0, %463
  store i32 %464, ptr %67, align 4, !tbaa !9
  %465 = call i32 @xerbla_(ptr noundef @.str.10, ptr noundef %67, i32 noundef 6)
  store i32 1, ptr %113, align 4
  br label %1469

466:                                              ; preds = %457
  %467 = load i32, ptr %109, align 4, !tbaa !9
  %468 = icmp ne i32 %467, 0
  br i1 %468, label %469, label %470

469:                                              ; preds = %466
  store i32 1, ptr %113, align 4
  br label %1469

470:                                              ; preds = %466
  br label %471

471:                                              ; preds = %470
  %472 = load ptr, ptr %34, align 8, !tbaa !5
  %473 = load i32, ptr %472, align 4, !tbaa !9
  %474 = icmp eq i32 %473, 0
  br i1 %474, label %475, label %476

475:                                              ; preds = %471
  store i32 1, ptr %113, align 4
  br label %1469

476:                                              ; preds = %471
  %477 = call float @slamch_(ptr noundef @.str.2)
  store float %477, ptr %111, align 4, !tbaa !15
  %478 = call float @slamch_(ptr noundef @.str.5)
  store float %478, ptr %108, align 4, !tbaa !15
  %479 = load float, ptr %108, align 4, !tbaa !15
  %480 = fdiv float 1.000000e+00, %479
  store float %480, ptr %98, align 4, !tbaa !15
  call void @slabad_(ptr noundef %108, ptr noundef %98)
  %481 = load float, ptr %108, align 4, !tbaa !15
  %482 = fpext float %481 to double
  %483 = call double @sqrt(double noundef %482) #5
  %484 = load float, ptr %111, align 4, !tbaa !15
  %485 = fpext float %484 to double
  %486 = fdiv double %483, %485
  %487 = fptrunc double %486 to float
  store float %487, ptr %108, align 4, !tbaa !15
  %488 = load float, ptr %108, align 4, !tbaa !15
  %489 = fdiv float 1.000000e+00, %488
  store float %489, ptr %98, align 4, !tbaa !15
  %490 = load ptr, ptr %34, align 8, !tbaa !5
  %491 = load ptr, ptr %34, align 8, !tbaa !5
  %492 = load ptr, ptr %35, align 8, !tbaa !5
  %493 = load i32, ptr %60, align 4, !tbaa !9
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds %struct.complex, ptr %492, i64 %494
  %496 = load ptr, ptr %36, align 8, !tbaa !5
  %497 = load ptr, ptr %55, align 8, !tbaa !5
  %498 = getelementptr inbounds float, ptr %497, i64 1
  %499 = call float @clange_(ptr noundef @.str.11, ptr noundef %490, ptr noundef %491, ptr noundef %495, ptr noundef %496, ptr noundef %498)
  store float %499, ptr %76, align 4, !tbaa !15
  store i32 0, ptr %94, align 4, !tbaa !9
  %500 = load float, ptr %76, align 4, !tbaa !15
  %501 = fcmp ogt float %500, 0.000000e+00
  br i1 %501, label %502, label %508

502:                                              ; preds = %476
  %503 = load float, ptr %76, align 4, !tbaa !15
  %504 = load float, ptr %108, align 4, !tbaa !15
  %505 = fcmp olt float %503, %504
  br i1 %505, label %506, label %508

506:                                              ; preds = %502
  %507 = load float, ptr %108, align 4, !tbaa !15
  store float %507, ptr %102, align 4, !tbaa !15
  store i32 1, ptr %94, align 4, !tbaa !9
  br label %515

508:                                              ; preds = %502, %476
  %509 = load float, ptr %76, align 4, !tbaa !15
  %510 = load float, ptr %98, align 4, !tbaa !15
  %511 = fcmp ogt float %509, %510
  br i1 %511, label %512, label %514

512:                                              ; preds = %508
  %513 = load float, ptr %98, align 4, !tbaa !15
  store float %513, ptr %102, align 4, !tbaa !15
  store i32 1, ptr %94, align 4, !tbaa !9
  br label %514

514:                                              ; preds = %512, %508
  br label %515

515:                                              ; preds = %514, %506
  %516 = load i32, ptr %94, align 4, !tbaa !9
  %517 = icmp ne i32 %516, 0
  br i1 %517, label %518, label %526

518:                                              ; preds = %515
  %519 = load ptr, ptr %34, align 8, !tbaa !5
  %520 = load ptr, ptr %34, align 8, !tbaa !5
  %521 = load ptr, ptr %35, align 8, !tbaa !5
  %522 = load i32, ptr %60, align 4, !tbaa !9
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds %struct.complex, ptr %521, i64 %523
  %525 = load ptr, ptr %36, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %76, ptr noundef %102, ptr noundef %519, ptr noundef %520, ptr noundef %524, ptr noundef %525, ptr noundef %78)
  br label %526

526:                                              ; preds = %518, %515
  %527 = load ptr, ptr %34, align 8, !tbaa !5
  %528 = load ptr, ptr %34, align 8, !tbaa !5
  %529 = load ptr, ptr %37, align 8, !tbaa !5
  %530 = load i32, ptr %62, align 4, !tbaa !9
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds %struct.complex, ptr %529, i64 %531
  %533 = load ptr, ptr %38, align 8, !tbaa !5
  %534 = load ptr, ptr %55, align 8, !tbaa !5
  %535 = getelementptr inbounds float, ptr %534, i64 1
  %536 = call float @clange_(ptr noundef @.str.11, ptr noundef %527, ptr noundef %528, ptr noundef %532, ptr noundef %533, ptr noundef %535)
  store float %536, ptr %77, align 4, !tbaa !15
  store i32 0, ptr %95, align 4, !tbaa !9
  %537 = load float, ptr %77, align 4, !tbaa !15
  %538 = fcmp ogt float %537, 0.000000e+00
  br i1 %538, label %539, label %545

539:                                              ; preds = %526
  %540 = load float, ptr %77, align 4, !tbaa !15
  %541 = load float, ptr %108, align 4, !tbaa !15
  %542 = fcmp olt float %540, %541
  br i1 %542, label %543, label %545

543:                                              ; preds = %539
  %544 = load float, ptr %108, align 4, !tbaa !15
  store float %544, ptr %104, align 4, !tbaa !15
  store i32 1, ptr %95, align 4, !tbaa !9
  br label %552

545:                                              ; preds = %539, %526
  %546 = load float, ptr %77, align 4, !tbaa !15
  %547 = load float, ptr %98, align 4, !tbaa !15
  %548 = fcmp ogt float %546, %547
  br i1 %548, label %549, label %551

549:                                              ; preds = %545
  %550 = load float, ptr %98, align 4, !tbaa !15
  store float %550, ptr %104, align 4, !tbaa !15
  store i32 1, ptr %95, align 4, !tbaa !9
  br label %551

551:                                              ; preds = %549, %545
  br label %552

552:                                              ; preds = %551, %543
  %553 = load i32, ptr %95, align 4, !tbaa !9
  %554 = icmp ne i32 %553, 0
  br i1 %554, label %555, label %563

555:                                              ; preds = %552
  %556 = load ptr, ptr %34, align 8, !tbaa !5
  %557 = load ptr, ptr %34, align 8, !tbaa !5
  %558 = load ptr, ptr %37, align 8, !tbaa !5
  %559 = load i32, ptr %62, align 4, !tbaa !9
  %560 = sext i32 %559 to i64
  %561 = getelementptr inbounds %struct.complex, ptr %558, i64 %560
  %562 = load ptr, ptr %38, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %77, ptr noundef %104, ptr noundef %556, ptr noundef %557, ptr noundef %561, ptr noundef %562, ptr noundef %78)
  br label %563

563:                                              ; preds = %555, %552
  %564 = load ptr, ptr %30, align 8, !tbaa !5
  %565 = load ptr, ptr %34, align 8, !tbaa !5
  %566 = load ptr, ptr %35, align 8, !tbaa !5
  %567 = load i32, ptr %60, align 4, !tbaa !9
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds %struct.complex, ptr %566, i64 %568
  %570 = load ptr, ptr %36, align 8, !tbaa !5
  %571 = load ptr, ptr %37, align 8, !tbaa !5
  %572 = load i32, ptr %62, align 4, !tbaa !9
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds %struct.complex, ptr %571, i64 %573
  %575 = load ptr, ptr %38, align 8, !tbaa !5
  %576 = load ptr, ptr %45, align 8, !tbaa !5
  %577 = load ptr, ptr %46, align 8, !tbaa !5
  %578 = load ptr, ptr %47, align 8, !tbaa !5
  %579 = getelementptr inbounds float, ptr %578, i64 1
  %580 = load ptr, ptr %48, align 8, !tbaa !5
  %581 = getelementptr inbounds float, ptr %580, i64 1
  %582 = load ptr, ptr %55, align 8, !tbaa !5
  %583 = getelementptr inbounds float, ptr %582, i64 1
  call void @cggbal_(ptr noundef %564, ptr noundef %565, ptr noundef %569, ptr noundef %570, ptr noundef %574, ptr noundef %575, ptr noundef %576, ptr noundef %577, ptr noundef %579, ptr noundef %581, ptr noundef %583, ptr noundef %78)
  %584 = load ptr, ptr %34, align 8, !tbaa !5
  %585 = load ptr, ptr %34, align 8, !tbaa !5
  %586 = load ptr, ptr %35, align 8, !tbaa !5
  %587 = load i32, ptr %60, align 4, !tbaa !9
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds %struct.complex, ptr %586, i64 %588
  %590 = load ptr, ptr %36, align 8, !tbaa !5
  %591 = load ptr, ptr %55, align 8, !tbaa !5
  %592 = getelementptr inbounds float, ptr %591, i64 1
  %593 = call float @clange_(ptr noundef @.str.13, ptr noundef %584, ptr noundef %585, ptr noundef %589, ptr noundef %590, ptr noundef %592)
  %594 = load ptr, ptr %49, align 8, !tbaa !5
  store float %593, ptr %594, align 4, !tbaa !15
  %595 = load i32, ptr %94, align 4, !tbaa !9
  %596 = icmp ne i32 %595, 0
  br i1 %596, label %597, label %608

597:                                              ; preds = %563
  %598 = load ptr, ptr %49, align 8, !tbaa !5
  %599 = load float, ptr %598, align 4, !tbaa !15
  %600 = load ptr, ptr %55, align 8, !tbaa !5
  %601 = getelementptr inbounds float, ptr %600, i64 1
  store float %599, ptr %601, align 4, !tbaa !15
  %602 = load ptr, ptr %55, align 8, !tbaa !5
  %603 = getelementptr inbounds float, ptr %602, i64 1
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %102, ptr noundef %76, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %603, ptr noundef @c__1, ptr noundef %78)
  %604 = load ptr, ptr %55, align 8, !tbaa !5
  %605 = getelementptr inbounds float, ptr %604, i64 1
  %606 = load float, ptr %605, align 4, !tbaa !15
  %607 = load ptr, ptr %49, align 8, !tbaa !5
  store float %606, ptr %607, align 4, !tbaa !15
  br label %608

608:                                              ; preds = %597, %563
  %609 = load ptr, ptr %34, align 8, !tbaa !5
  %610 = load ptr, ptr %34, align 8, !tbaa !5
  %611 = load ptr, ptr %37, align 8, !tbaa !5
  %612 = load i32, ptr %62, align 4, !tbaa !9
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds %struct.complex, ptr %611, i64 %613
  %615 = load ptr, ptr %38, align 8, !tbaa !5
  %616 = load ptr, ptr %55, align 8, !tbaa !5
  %617 = getelementptr inbounds float, ptr %616, i64 1
  %618 = call float @clange_(ptr noundef @.str.13, ptr noundef %609, ptr noundef %610, ptr noundef %614, ptr noundef %615, ptr noundef %617)
  %619 = load ptr, ptr %50, align 8, !tbaa !5
  store float %618, ptr %619, align 4, !tbaa !15
  %620 = load i32, ptr %95, align 4, !tbaa !9
  %621 = icmp ne i32 %620, 0
  br i1 %621, label %622, label %633

622:                                              ; preds = %608
  %623 = load ptr, ptr %50, align 8, !tbaa !5
  %624 = load float, ptr %623, align 4, !tbaa !15
  %625 = load ptr, ptr %55, align 8, !tbaa !5
  %626 = getelementptr inbounds float, ptr %625, i64 1
  store float %624, ptr %626, align 4, !tbaa !15
  %627 = load ptr, ptr %55, align 8, !tbaa !5
  %628 = getelementptr inbounds float, ptr %627, i64 1
  call void @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %104, ptr noundef %77, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %628, ptr noundef @c__1, ptr noundef %78)
  %629 = load ptr, ptr %55, align 8, !tbaa !5
  %630 = getelementptr inbounds float, ptr %629, i64 1
  %631 = load float, ptr %630, align 4, !tbaa !15
  %632 = load ptr, ptr %50, align 8, !tbaa !5
  store float %631, ptr %632, align 4, !tbaa !15
  br label %633

633:                                              ; preds = %622, %608
  %634 = load ptr, ptr %46, align 8, !tbaa !5
  %635 = load i32, ptr %634, align 4, !tbaa !9
  %636 = add nsw i32 %635, 1
  %637 = load ptr, ptr %45, align 8, !tbaa !5
  %638 = load i32, ptr %637, align 4, !tbaa !9
  %639 = sub nsw i32 %636, %638
  store i32 %639, ptr %90, align 4, !tbaa !9
  %640 = load i32, ptr %112, align 4, !tbaa !9
  %641 = icmp ne i32 %640, 0
  br i1 %641, label %645, label %642

642:                                              ; preds = %633
  %643 = load i32, ptr %107, align 4, !tbaa !9
  %644 = icmp ne i32 %643, 0
  br i1 %644, label %652, label %645

645:                                              ; preds = %642, %633
  %646 = load ptr, ptr %34, align 8, !tbaa !5
  %647 = load i32, ptr %646, align 4, !tbaa !9
  %648 = add nsw i32 %647, 1
  %649 = load ptr, ptr %45, align 8, !tbaa !5
  %650 = load i32, ptr %649, align 4, !tbaa !9
  %651 = sub nsw i32 %648, %650
  store i32 %651, ptr %88, align 4, !tbaa !9
  br label %654

652:                                              ; preds = %642
  %653 = load i32, ptr %90, align 4, !tbaa !9
  store i32 %653, ptr %88, align 4, !tbaa !9
  br label %654

654:                                              ; preds = %652, %645
  store i32 1, ptr %79, align 4, !tbaa !9
  %655 = load i32, ptr %79, align 4, !tbaa !9
  %656 = load i32, ptr %90, align 4, !tbaa !9
  %657 = add nsw i32 %655, %656
  store i32 %657, ptr %83, align 4, !tbaa !9
  %658 = load ptr, ptr %54, align 8, !tbaa !5
  %659 = load i32, ptr %658, align 4, !tbaa !9
  %660 = add nsw i32 %659, 1
  %661 = load i32, ptr %83, align 4, !tbaa !9
  %662 = sub nsw i32 %660, %661
  store i32 %662, ptr %67, align 4, !tbaa !9
  %663 = load ptr, ptr %37, align 8, !tbaa !5
  %664 = load ptr, ptr %45, align 8, !tbaa !5
  %665 = load i32, ptr %664, align 4, !tbaa !9
  %666 = load ptr, ptr %45, align 8, !tbaa !5
  %667 = load i32, ptr %666, align 4, !tbaa !9
  %668 = load i32, ptr %61, align 4, !tbaa !9
  %669 = mul nsw i32 %667, %668
  %670 = add nsw i32 %665, %669
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds %struct.complex, ptr %663, i64 %671
  %673 = load ptr, ptr %38, align 8, !tbaa !5
  %674 = load ptr, ptr %53, align 8, !tbaa !5
  %675 = load i32, ptr %79, align 4, !tbaa !9
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds %struct.complex, ptr %674, i64 %676
  %678 = load ptr, ptr %53, align 8, !tbaa !5
  %679 = load i32, ptr %83, align 4, !tbaa !9
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds %struct.complex, ptr %678, i64 %680
  call void @cgeqrf_(ptr noundef %90, ptr noundef %88, ptr noundef %672, ptr noundef %673, ptr noundef %677, ptr noundef %681, ptr noundef %67, ptr noundef %78)
  %682 = load ptr, ptr %54, align 8, !tbaa !5
  %683 = load i32, ptr %682, align 4, !tbaa !9
  %684 = add nsw i32 %683, 1
  %685 = load i32, ptr %83, align 4, !tbaa !9
  %686 = sub nsw i32 %684, %685
  store i32 %686, ptr %67, align 4, !tbaa !9
  %687 = load ptr, ptr %37, align 8, !tbaa !5
  %688 = load ptr, ptr %45, align 8, !tbaa !5
  %689 = load i32, ptr %688, align 4, !tbaa !9
  %690 = load ptr, ptr %45, align 8, !tbaa !5
  %691 = load i32, ptr %690, align 4, !tbaa !9
  %692 = load i32, ptr %61, align 4, !tbaa !9
  %693 = mul nsw i32 %691, %692
  %694 = add nsw i32 %689, %693
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds %struct.complex, ptr %687, i64 %695
  %697 = load ptr, ptr %38, align 8, !tbaa !5
  %698 = load ptr, ptr %53, align 8, !tbaa !5
  %699 = load i32, ptr %79, align 4, !tbaa !9
  %700 = sext i32 %699 to i64
  %701 = getelementptr inbounds %struct.complex, ptr %698, i64 %700
  %702 = load ptr, ptr %35, align 8, !tbaa !5
  %703 = load ptr, ptr %45, align 8, !tbaa !5
  %704 = load i32, ptr %703, align 4, !tbaa !9
  %705 = load ptr, ptr %45, align 8, !tbaa !5
  %706 = load i32, ptr %705, align 4, !tbaa !9
  %707 = load i32, ptr %59, align 4, !tbaa !9
  %708 = mul nsw i32 %706, %707
  %709 = add nsw i32 %704, %708
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds %struct.complex, ptr %702, i64 %710
  %712 = load ptr, ptr %36, align 8, !tbaa !5
  %713 = load ptr, ptr %53, align 8, !tbaa !5
  %714 = load i32, ptr %83, align 4, !tbaa !9
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds %struct.complex, ptr %713, i64 %715
  call void @cunmqr_(ptr noundef @.str.14, ptr noundef @.str.15, ptr noundef %90, ptr noundef %88, ptr noundef %90, ptr noundef %696, ptr noundef %697, ptr noundef %701, ptr noundef %711, ptr noundef %712, ptr noundef %716, ptr noundef %67, ptr noundef %78)
  %717 = load i32, ptr %81, align 4, !tbaa !9
  %718 = icmp ne i32 %717, 0
  br i1 %718, label %719, label %783

719:                                              ; preds = %654
  %720 = load ptr, ptr %34, align 8, !tbaa !5
  %721 = load ptr, ptr %34, align 8, !tbaa !5
  %722 = load ptr, ptr %41, align 8, !tbaa !5
  %723 = load i32, ptr %64, align 4, !tbaa !9
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds %struct.complex, ptr %722, i64 %724
  %726 = load ptr, ptr %42, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.16, ptr noundef %720, ptr noundef %721, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %725, ptr noundef %726)
  %727 = load i32, ptr %90, align 4, !tbaa !9
  %728 = icmp sgt i32 %727, 1
  br i1 %728, label %729, label %758

729:                                              ; preds = %719
  %730 = load i32, ptr %90, align 4, !tbaa !9
  %731 = sub nsw i32 %730, 1
  store i32 %731, ptr %67, align 4, !tbaa !9
  %732 = load i32, ptr %90, align 4, !tbaa !9
  %733 = sub nsw i32 %732, 1
  store i32 %733, ptr %68, align 4, !tbaa !9
  %734 = load ptr, ptr %37, align 8, !tbaa !5
  %735 = load ptr, ptr %45, align 8, !tbaa !5
  %736 = load i32, ptr %735, align 4, !tbaa !9
  %737 = add nsw i32 %736, 1
  %738 = load ptr, ptr %45, align 8, !tbaa !5
  %739 = load i32, ptr %738, align 4, !tbaa !9
  %740 = load i32, ptr %61, align 4, !tbaa !9
  %741 = mul nsw i32 %739, %740
  %742 = add nsw i32 %737, %741
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds %struct.complex, ptr %734, i64 %743
  %745 = load ptr, ptr %38, align 8, !tbaa !5
  %746 = load ptr, ptr %41, align 8, !tbaa !5
  %747 = load ptr, ptr %45, align 8, !tbaa !5
  %748 = load i32, ptr %747, align 4, !tbaa !9
  %749 = add nsw i32 %748, 1
  %750 = load ptr, ptr %45, align 8, !tbaa !5
  %751 = load i32, ptr %750, align 4, !tbaa !9
  %752 = load i32, ptr %63, align 4, !tbaa !9
  %753 = mul nsw i32 %751, %752
  %754 = add nsw i32 %749, %753
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds %struct.complex, ptr %746, i64 %755
  %757 = load ptr, ptr %42, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.14, ptr noundef %67, ptr noundef %68, ptr noundef %744, ptr noundef %745, ptr noundef %756, ptr noundef %757)
  br label %758

758:                                              ; preds = %729, %719
  %759 = load ptr, ptr %54, align 8, !tbaa !5
  %760 = load i32, ptr %759, align 4, !tbaa !9
  %761 = add nsw i32 %760, 1
  %762 = load i32, ptr %83, align 4, !tbaa !9
  %763 = sub nsw i32 %761, %762
  store i32 %763, ptr %67, align 4, !tbaa !9
  %764 = load ptr, ptr %41, align 8, !tbaa !5
  %765 = load ptr, ptr %45, align 8, !tbaa !5
  %766 = load i32, ptr %765, align 4, !tbaa !9
  %767 = load ptr, ptr %45, align 8, !tbaa !5
  %768 = load i32, ptr %767, align 4, !tbaa !9
  %769 = load i32, ptr %63, align 4, !tbaa !9
  %770 = mul nsw i32 %768, %769
  %771 = add nsw i32 %766, %770
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds %struct.complex, ptr %764, i64 %772
  %774 = load ptr, ptr %42, align 8, !tbaa !5
  %775 = load ptr, ptr %53, align 8, !tbaa !5
  %776 = load i32, ptr %79, align 4, !tbaa !9
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds %struct.complex, ptr %775, i64 %777
  %779 = load ptr, ptr %53, align 8, !tbaa !5
  %780 = load i32, ptr %83, align 4, !tbaa !9
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds %struct.complex, ptr %779, i64 %781
  call void @cungqr_(ptr noundef %90, ptr noundef %90, ptr noundef %90, ptr noundef %773, ptr noundef %774, ptr noundef %778, ptr noundef %782, ptr noundef %67, ptr noundef %78)
  br label %783

783:                                              ; preds = %758, %654
  %784 = load i32, ptr %82, align 4, !tbaa !9
  %785 = icmp ne i32 %784, 0
  br i1 %785, label %786, label %794

786:                                              ; preds = %783
  %787 = load ptr, ptr %34, align 8, !tbaa !5
  %788 = load ptr, ptr %34, align 8, !tbaa !5
  %789 = load ptr, ptr %43, align 8, !tbaa !5
  %790 = load i32, ptr %66, align 4, !tbaa !9
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds %struct.complex, ptr %789, i64 %791
  %793 = load ptr, ptr %44, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.16, ptr noundef %787, ptr noundef %788, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %792, ptr noundef %793)
  br label %794

794:                                              ; preds = %786, %783
  %795 = load i32, ptr %112, align 4, !tbaa !9
  %796 = icmp ne i32 %795, 0
  br i1 %796, label %800, label %797

797:                                              ; preds = %794
  %798 = load i32, ptr %107, align 4, !tbaa !9
  %799 = icmp ne i32 %798, 0
  br i1 %799, label %826, label %800

800:                                              ; preds = %797, %794
  %801 = load ptr, ptr %31, align 8, !tbaa !5
  %802 = load ptr, ptr %32, align 8, !tbaa !5
  %803 = load ptr, ptr %34, align 8, !tbaa !5
  %804 = load ptr, ptr %45, align 8, !tbaa !5
  %805 = load ptr, ptr %46, align 8, !tbaa !5
  %806 = load ptr, ptr %35, align 8, !tbaa !5
  %807 = load i32, ptr %60, align 4, !tbaa !9
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds %struct.complex, ptr %806, i64 %808
  %810 = load ptr, ptr %36, align 8, !tbaa !5
  %811 = load ptr, ptr %37, align 8, !tbaa !5
  %812 = load i32, ptr %62, align 4, !tbaa !9
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds %struct.complex, ptr %811, i64 %813
  %815 = load ptr, ptr %38, align 8, !tbaa !5
  %816 = load ptr, ptr %41, align 8, !tbaa !5
  %817 = load i32, ptr %64, align 4, !tbaa !9
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds %struct.complex, ptr %816, i64 %818
  %820 = load ptr, ptr %42, align 8, !tbaa !5
  %821 = load ptr, ptr %43, align 8, !tbaa !5
  %822 = load i32, ptr %66, align 4, !tbaa !9
  %823 = sext i32 %822 to i64
  %824 = getelementptr inbounds %struct.complex, ptr %821, i64 %823
  %825 = load ptr, ptr %44, align 8, !tbaa !5
  call void @cgghrd_(ptr noundef %801, ptr noundef %802, ptr noundef %803, ptr noundef %804, ptr noundef %805, ptr noundef %809, ptr noundef %810, ptr noundef %814, ptr noundef %815, ptr noundef %819, ptr noundef %820, ptr noundef %824, ptr noundef %825, ptr noundef %78)
  br label %859

826:                                              ; preds = %797
  %827 = load ptr, ptr %35, align 8, !tbaa !5
  %828 = load ptr, ptr %45, align 8, !tbaa !5
  %829 = load i32, ptr %828, align 4, !tbaa !9
  %830 = load ptr, ptr %45, align 8, !tbaa !5
  %831 = load i32, ptr %830, align 4, !tbaa !9
  %832 = load i32, ptr %59, align 4, !tbaa !9
  %833 = mul nsw i32 %831, %832
  %834 = add nsw i32 %829, %833
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds %struct.complex, ptr %827, i64 %835
  %837 = load ptr, ptr %36, align 8, !tbaa !5
  %838 = load ptr, ptr %37, align 8, !tbaa !5
  %839 = load ptr, ptr %45, align 8, !tbaa !5
  %840 = load i32, ptr %839, align 4, !tbaa !9
  %841 = load ptr, ptr %45, align 8, !tbaa !5
  %842 = load i32, ptr %841, align 4, !tbaa !9
  %843 = load i32, ptr %61, align 4, !tbaa !9
  %844 = mul nsw i32 %842, %843
  %845 = add nsw i32 %840, %844
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds %struct.complex, ptr %838, i64 %846
  %848 = load ptr, ptr %38, align 8, !tbaa !5
  %849 = load ptr, ptr %41, align 8, !tbaa !5
  %850 = load i32, ptr %64, align 4, !tbaa !9
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds %struct.complex, ptr %849, i64 %851
  %853 = load ptr, ptr %42, align 8, !tbaa !5
  %854 = load ptr, ptr %43, align 8, !tbaa !5
  %855 = load i32, ptr %66, align 4, !tbaa !9
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds %struct.complex, ptr %854, i64 %856
  %858 = load ptr, ptr %44, align 8, !tbaa !5
  call void @cgghrd_(ptr noundef @.str, ptr noundef @.str, ptr noundef %90, ptr noundef @c__1, ptr noundef %90, ptr noundef %836, ptr noundef %837, ptr noundef %847, ptr noundef %848, ptr noundef %852, ptr noundef %853, ptr noundef %857, ptr noundef %858, ptr noundef %78)
  br label %859

859:                                              ; preds = %826, %800
  %860 = load i32, ptr %79, align 4, !tbaa !9
  store i32 %860, ptr %83, align 4, !tbaa !9
  %861 = load i32, ptr %112, align 4, !tbaa !9
  %862 = icmp ne i32 %861, 0
  br i1 %862, label %866, label %863

863:                                              ; preds = %859
  %864 = load i32, ptr %107, align 4, !tbaa !9
  %865 = icmp ne i32 %864, 0
  br i1 %865, label %868, label %866

866:                                              ; preds = %863, %859
  %867 = getelementptr inbounds [1 x i8], ptr %97, i64 0, i64 0
  store i8 83, ptr %867, align 1, !tbaa !16
  br label %870

868:                                              ; preds = %863
  %869 = getelementptr inbounds [1 x i8], ptr %97, i64 0, i64 0
  store i8 69, ptr %869, align 1, !tbaa !16
  br label %870

870:                                              ; preds = %868, %866
  %871 = load ptr, ptr %54, align 8, !tbaa !5
  %872 = load i32, ptr %871, align 4, !tbaa !9
  %873 = add nsw i32 %872, 1
  %874 = load i32, ptr %83, align 4, !tbaa !9
  %875 = sub nsw i32 %873, %874
  store i32 %875, ptr %67, align 4, !tbaa !9
  %876 = getelementptr inbounds [1 x i8], ptr %97, i64 0, i64 0
  %877 = load ptr, ptr %31, align 8, !tbaa !5
  %878 = load ptr, ptr %32, align 8, !tbaa !5
  %879 = load ptr, ptr %34, align 8, !tbaa !5
  %880 = load ptr, ptr %45, align 8, !tbaa !5
  %881 = load ptr, ptr %46, align 8, !tbaa !5
  %882 = load ptr, ptr %35, align 8, !tbaa !5
  %883 = load i32, ptr %60, align 4, !tbaa !9
  %884 = sext i32 %883 to i64
  %885 = getelementptr inbounds %struct.complex, ptr %882, i64 %884
  %886 = load ptr, ptr %36, align 8, !tbaa !5
  %887 = load ptr, ptr %37, align 8, !tbaa !5
  %888 = load i32, ptr %62, align 4, !tbaa !9
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds %struct.complex, ptr %887, i64 %889
  %891 = load ptr, ptr %38, align 8, !tbaa !5
  %892 = load ptr, ptr %39, align 8, !tbaa !5
  %893 = getelementptr inbounds %struct.complex, ptr %892, i64 1
  %894 = load ptr, ptr %40, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.complex, ptr %894, i64 1
  %896 = load ptr, ptr %41, align 8, !tbaa !5
  %897 = load i32, ptr %64, align 4, !tbaa !9
  %898 = sext i32 %897 to i64
  %899 = getelementptr inbounds %struct.complex, ptr %896, i64 %898
  %900 = load ptr, ptr %42, align 8, !tbaa !5
  %901 = load ptr, ptr %43, align 8, !tbaa !5
  %902 = load i32, ptr %66, align 4, !tbaa !9
  %903 = sext i32 %902 to i64
  %904 = getelementptr inbounds %struct.complex, ptr %901, i64 %903
  %905 = load ptr, ptr %44, align 8, !tbaa !5
  %906 = load ptr, ptr %53, align 8, !tbaa !5
  %907 = load i32, ptr %83, align 4, !tbaa !9
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds %struct.complex, ptr %906, i64 %908
  %910 = load ptr, ptr %55, align 8, !tbaa !5
  %911 = getelementptr inbounds float, ptr %910, i64 1
  call void @chgeqz_(ptr noundef %876, ptr noundef %877, ptr noundef %878, ptr noundef %879, ptr noundef %880, ptr noundef %881, ptr noundef %885, ptr noundef %886, ptr noundef %890, ptr noundef %891, ptr noundef %893, ptr noundef %895, ptr noundef %899, ptr noundef %900, ptr noundef %904, ptr noundef %905, ptr noundef %909, ptr noundef %67, ptr noundef %911, ptr noundef %78)
  %912 = load i32, ptr %78, align 4, !tbaa !9
  %913 = icmp ne i32 %912, 0
  br i1 %913, label %914, label %949

914:                                              ; preds = %870
  %915 = load i32, ptr %78, align 4, !tbaa !9
  %916 = icmp sgt i32 %915, 0
  br i1 %916, label %917, label %925

917:                                              ; preds = %914
  %918 = load i32, ptr %78, align 4, !tbaa !9
  %919 = load ptr, ptr %34, align 8, !tbaa !5
  %920 = load i32, ptr %919, align 4, !tbaa !9
  %921 = icmp sle i32 %918, %920
  br i1 %921, label %922, label %925

922:                                              ; preds = %917
  %923 = load i32, ptr %78, align 4, !tbaa !9
  %924 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 %923, ptr %924, align 4, !tbaa !9
  br label %948

925:                                              ; preds = %917, %914
  %926 = load i32, ptr %78, align 4, !tbaa !9
  %927 = load ptr, ptr %34, align 8, !tbaa !5
  %928 = load i32, ptr %927, align 4, !tbaa !9
  %929 = icmp sgt i32 %926, %928
  br i1 %929, label %930, label %942

930:                                              ; preds = %925
  %931 = load i32, ptr %78, align 4, !tbaa !9
  %932 = load ptr, ptr %34, align 8, !tbaa !5
  %933 = load i32, ptr %932, align 4, !tbaa !9
  %934 = shl i32 %933, 1
  %935 = icmp sle i32 %931, %934
  br i1 %935, label %936, label %942

936:                                              ; preds = %930
  %937 = load i32, ptr %78, align 4, !tbaa !9
  %938 = load ptr, ptr %34, align 8, !tbaa !5
  %939 = load i32, ptr %938, align 4, !tbaa !9
  %940 = sub nsw i32 %937, %939
  %941 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 %940, ptr %941, align 4, !tbaa !9
  br label %947

942:                                              ; preds = %930, %925
  %943 = load ptr, ptr %34, align 8, !tbaa !5
  %944 = load i32, ptr %943, align 4, !tbaa !9
  %945 = add nsw i32 %944, 1
  %946 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 %945, ptr %946, align 4, !tbaa !9
  br label %947

947:                                              ; preds = %942, %936
  br label %948

948:                                              ; preds = %947, %922
  br label %1444

949:                                              ; preds = %870
  %950 = load i32, ptr %112, align 4, !tbaa !9
  %951 = icmp ne i32 %950, 0
  br i1 %951, label %955, label %952

952:                                              ; preds = %949
  %953 = load i32, ptr %107, align 4, !tbaa !9
  %954 = icmp ne i32 %953, 0
  br i1 %954, label %1135, label %955

955:                                              ; preds = %952, %949
  %956 = load i32, ptr %112, align 4, !tbaa !9
  %957 = icmp ne i32 %956, 0
  br i1 %957, label %958, label %1010

958:                                              ; preds = %955
  %959 = load i32, ptr %81, align 4, !tbaa !9
  %960 = icmp ne i32 %959, 0
  br i1 %960, label %961, label %969

961:                                              ; preds = %958
  %962 = load i32, ptr %82, align 4, !tbaa !9
  %963 = icmp ne i32 %962, 0
  br i1 %963, label %964, label %966

964:                                              ; preds = %961
  %965 = getelementptr inbounds [1 x i8], ptr %97, i64 0, i64 0
  store i8 66, ptr %965, align 1, !tbaa !16
  br label %968

966:                                              ; preds = %961
  %967 = getelementptr inbounds [1 x i8], ptr %97, i64 0, i64 0
  store i8 76, ptr %967, align 1, !tbaa !16
  br label %968

968:                                              ; preds = %966, %964
  br label %971

969:                                              ; preds = %958
  %970 = getelementptr inbounds [1 x i8], ptr %97, i64 0, i64 0
  store i8 82, ptr %970, align 1, !tbaa !16
  br label %971

971:                                              ; preds = %969, %968
  %972 = getelementptr inbounds [1 x i8], ptr %97, i64 0, i64 0
  %973 = getelementptr inbounds [1 x i32], ptr %96, i64 0, i64 0
  %974 = load ptr, ptr %34, align 8, !tbaa !5
  %975 = load ptr, ptr %35, align 8, !tbaa !5
  %976 = load i32, ptr %60, align 4, !tbaa !9
  %977 = sext i32 %976 to i64
  %978 = getelementptr inbounds %struct.complex, ptr %975, i64 %977
  %979 = load ptr, ptr %36, align 8, !tbaa !5
  %980 = load ptr, ptr %37, align 8, !tbaa !5
  %981 = load i32, ptr %62, align 4, !tbaa !9
  %982 = sext i32 %981 to i64
  %983 = getelementptr inbounds %struct.complex, ptr %980, i64 %982
  %984 = load ptr, ptr %38, align 8, !tbaa !5
  %985 = load ptr, ptr %41, align 8, !tbaa !5
  %986 = load i32, ptr %64, align 4, !tbaa !9
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds %struct.complex, ptr %985, i64 %987
  %989 = load ptr, ptr %42, align 8, !tbaa !5
  %990 = load ptr, ptr %43, align 8, !tbaa !5
  %991 = load i32, ptr %66, align 4, !tbaa !9
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds %struct.complex, ptr %990, i64 %992
  %994 = load ptr, ptr %44, align 8, !tbaa !5
  %995 = load ptr, ptr %34, align 8, !tbaa !5
  %996 = load ptr, ptr %53, align 8, !tbaa !5
  %997 = load i32, ptr %83, align 4, !tbaa !9
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds %struct.complex, ptr %996, i64 %998
  %1000 = load ptr, ptr %55, align 8, !tbaa !5
  %1001 = getelementptr inbounds float, ptr %1000, i64 1
  call void @ctgevc_(ptr noundef %972, ptr noundef @.str.4, ptr noundef %973, ptr noundef %974, ptr noundef %978, ptr noundef %979, ptr noundef %983, ptr noundef %984, ptr noundef %988, ptr noundef %989, ptr noundef %993, ptr noundef %994, ptr noundef %995, ptr noundef %92, ptr noundef %999, ptr noundef %1001, ptr noundef %78)
  %1002 = load i32, ptr %78, align 4, !tbaa !9
  %1003 = icmp ne i32 %1002, 0
  br i1 %1003, label %1004, label %1009

1004:                                             ; preds = %971
  %1005 = load ptr, ptr %34, align 8, !tbaa !5
  %1006 = load i32, ptr %1005, align 4, !tbaa !9
  %1007 = add nsw i32 %1006, 2
  %1008 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 %1007, ptr %1008, align 4, !tbaa !9
  br label %1444

1009:                                             ; preds = %971
  br label %1010

1010:                                             ; preds = %1009, %955
  %1011 = load i32, ptr %107, align 4, !tbaa !9
  %1012 = icmp ne i32 %1011, 0
  br i1 %1012, label %1134, label %1013

1013:                                             ; preds = %1010
  %1014 = load ptr, ptr %34, align 8, !tbaa !5
  %1015 = load i32, ptr %1014, align 4, !tbaa !9
  store i32 %1015, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %85, align 4, !tbaa !9
  br label %1016

1016:                                             ; preds = %1130, %1013
  %1017 = load i32, ptr %85, align 4, !tbaa !9
  %1018 = load i32, ptr %67, align 4, !tbaa !9
  %1019 = icmp sle i32 %1017, %1018
  br i1 %1019, label %1020, label %1133

1020:                                             ; preds = %1016
  %1021 = load ptr, ptr %34, align 8, !tbaa !5
  %1022 = load i32, ptr %1021, align 4, !tbaa !9
  store i32 %1022, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %86, align 4, !tbaa !9
  br label %1023

1023:                                             ; preds = %1032, %1020
  %1024 = load i32, ptr %86, align 4, !tbaa !9
  %1025 = load i32, ptr %68, align 4, !tbaa !9
  %1026 = icmp sle i32 %1024, %1025
  br i1 %1026, label %1027, label %1035

1027:                                             ; preds = %1023
  %1028 = load ptr, ptr %57, align 8, !tbaa !5
  %1029 = load i32, ptr %86, align 4, !tbaa !9
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds i32, ptr %1028, i64 %1030
  store i32 0, ptr %1031, align 4, !tbaa !9
  br label %1032

1032:                                             ; preds = %1027
  %1033 = load i32, ptr %86, align 4, !tbaa !9
  %1034 = add nsw i32 %1033, 1
  store i32 %1034, ptr %86, align 4, !tbaa !9
  br label %1023, !llvm.loop !17

1035:                                             ; preds = %1023
  %1036 = load ptr, ptr %57, align 8, !tbaa !5
  %1037 = load i32, ptr %85, align 4, !tbaa !9
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds i32, ptr %1036, i64 %1038
  store i32 1, ptr %1039, align 4, !tbaa !9
  %1040 = load ptr, ptr %34, align 8, !tbaa !5
  %1041 = load i32, ptr %1040, align 4, !tbaa !9
  %1042 = add nsw i32 %1041, 1
  store i32 %1042, ptr %83, align 4, !tbaa !9
  %1043 = load i32, ptr %83, align 4, !tbaa !9
  %1044 = load ptr, ptr %34, align 8, !tbaa !5
  %1045 = load i32, ptr %1044, align 4, !tbaa !9
  %1046 = add nsw i32 %1043, %1045
  store i32 %1046, ptr %84, align 4, !tbaa !9
  %1047 = load i32, ptr %103, align 4, !tbaa !9
  %1048 = icmp ne i32 %1047, 0
  br i1 %1048, label %1052, label %1049

1049:                                             ; preds = %1035
  %1050 = load i32, ptr %101, align 4, !tbaa !9
  %1051 = icmp ne i32 %1050, 0
  br i1 %1051, label %1052, label %1088

1052:                                             ; preds = %1049, %1035
  %1053 = load ptr, ptr %57, align 8, !tbaa !5
  %1054 = getelementptr inbounds i32, ptr %1053, i64 1
  %1055 = load ptr, ptr %34, align 8, !tbaa !5
  %1056 = load ptr, ptr %35, align 8, !tbaa !5
  %1057 = load i32, ptr %60, align 4, !tbaa !9
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds %struct.complex, ptr %1056, i64 %1058
  %1060 = load ptr, ptr %36, align 8, !tbaa !5
  %1061 = load ptr, ptr %37, align 8, !tbaa !5
  %1062 = load i32, ptr %62, align 4, !tbaa !9
  %1063 = sext i32 %1062 to i64
  %1064 = getelementptr inbounds %struct.complex, ptr %1061, i64 %1063
  %1065 = load ptr, ptr %38, align 8, !tbaa !5
  %1066 = load ptr, ptr %53, align 8, !tbaa !5
  %1067 = getelementptr inbounds %struct.complex, ptr %1066, i64 1
  %1068 = load ptr, ptr %34, align 8, !tbaa !5
  %1069 = load ptr, ptr %53, align 8, !tbaa !5
  %1070 = load i32, ptr %83, align 4, !tbaa !9
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds %struct.complex, ptr %1069, i64 %1071
  %1073 = load ptr, ptr %34, align 8, !tbaa !5
  %1074 = load ptr, ptr %53, align 8, !tbaa !5
  %1075 = load i32, ptr %84, align 4, !tbaa !9
  %1076 = sext i32 %1075 to i64
  %1077 = getelementptr inbounds %struct.complex, ptr %1074, i64 %1076
  %1078 = load ptr, ptr %55, align 8, !tbaa !5
  %1079 = getelementptr inbounds float, ptr %1078, i64 1
  call void @ctgevc_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %1054, ptr noundef %1055, ptr noundef %1059, ptr noundef %1060, ptr noundef %1064, ptr noundef %1065, ptr noundef %1067, ptr noundef %1068, ptr noundef %1072, ptr noundef %1073, ptr noundef @c__1, ptr noundef %87, ptr noundef %1077, ptr noundef %1079, ptr noundef %78)
  %1080 = load i32, ptr %78, align 4, !tbaa !9
  %1081 = icmp ne i32 %1080, 0
  br i1 %1081, label %1082, label %1087

1082:                                             ; preds = %1052
  %1083 = load ptr, ptr %34, align 8, !tbaa !5
  %1084 = load i32, ptr %1083, align 4, !tbaa !9
  %1085 = add nsw i32 %1084, 2
  %1086 = load ptr, ptr %58, align 8, !tbaa !5
  store i32 %1085, ptr %1086, align 4, !tbaa !9
  br label %1444

1087:                                             ; preds = %1052
  br label %1088

1088:                                             ; preds = %1087, %1049
  %1089 = load ptr, ptr %54, align 8, !tbaa !5
  %1090 = load i32, ptr %1089, align 4, !tbaa !9
  %1091 = load i32, ptr %84, align 4, !tbaa !9
  %1092 = sub nsw i32 %1090, %1091
  %1093 = add nsw i32 %1092, 1
  store i32 %1093, ptr %68, align 4, !tbaa !9
  %1094 = load ptr, ptr %33, align 8, !tbaa !5
  %1095 = load ptr, ptr %57, align 8, !tbaa !5
  %1096 = getelementptr inbounds i32, ptr %1095, i64 1
  %1097 = load ptr, ptr %34, align 8, !tbaa !5
  %1098 = load ptr, ptr %35, align 8, !tbaa !5
  %1099 = load i32, ptr %60, align 4, !tbaa !9
  %1100 = sext i32 %1099 to i64
  %1101 = getelementptr inbounds %struct.complex, ptr %1098, i64 %1100
  %1102 = load ptr, ptr %36, align 8, !tbaa !5
  %1103 = load ptr, ptr %37, align 8, !tbaa !5
  %1104 = load i32, ptr %62, align 4, !tbaa !9
  %1105 = sext i32 %1104 to i64
  %1106 = getelementptr inbounds %struct.complex, ptr %1103, i64 %1105
  %1107 = load ptr, ptr %38, align 8, !tbaa !5
  %1108 = load ptr, ptr %53, align 8, !tbaa !5
  %1109 = getelementptr inbounds %struct.complex, ptr %1108, i64 1
  %1110 = load ptr, ptr %34, align 8, !tbaa !5
  %1111 = load ptr, ptr %53, align 8, !tbaa !5
  %1112 = load i32, ptr %83, align 4, !tbaa !9
  %1113 = sext i32 %1112 to i64
  %1114 = getelementptr inbounds %struct.complex, ptr %1111, i64 %1113
  %1115 = load ptr, ptr %34, align 8, !tbaa !5
  %1116 = load ptr, ptr %51, align 8, !tbaa !5
  %1117 = load i32, ptr %85, align 4, !tbaa !9
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds float, ptr %1116, i64 %1118
  %1120 = load ptr, ptr %52, align 8, !tbaa !5
  %1121 = load i32, ptr %85, align 4, !tbaa !9
  %1122 = sext i32 %1121 to i64
  %1123 = getelementptr inbounds float, ptr %1120, i64 %1122
  %1124 = load ptr, ptr %53, align 8, !tbaa !5
  %1125 = load i32, ptr %84, align 4, !tbaa !9
  %1126 = sext i32 %1125 to i64
  %1127 = getelementptr inbounds %struct.complex, ptr %1124, i64 %1126
  %1128 = load ptr, ptr %56, align 8, !tbaa !5
  %1129 = getelementptr inbounds i32, ptr %1128, i64 1
  call void @ctgsna_(ptr noundef %1094, ptr noundef @.str.5, ptr noundef %1096, ptr noundef %1097, ptr noundef %1101, ptr noundef %1102, ptr noundef %1106, ptr noundef %1107, ptr noundef %1109, ptr noundef %1110, ptr noundef %1114, ptr noundef %1115, ptr noundef %1119, ptr noundef %1123, ptr noundef @c__1, ptr noundef %87, ptr noundef %1127, ptr noundef %68, ptr noundef %1129, ptr noundef %78)
  br label %1130

1130:                                             ; preds = %1088
  %1131 = load i32, ptr %85, align 4, !tbaa !9
  %1132 = add nsw i32 %1131, 1
  store i32 %1132, ptr %85, align 4, !tbaa !9
  br label %1016, !llvm.loop !19

1133:                                             ; preds = %1016
  br label %1134

1134:                                             ; preds = %1133, %1010
  br label %1135

1135:                                             ; preds = %1134, %952
  %1136 = load i32, ptr %81, align 4, !tbaa !9
  %1137 = icmp ne i32 %1136, 0
  br i1 %1137, label %1138, label %1289

1138:                                             ; preds = %1135
  %1139 = load ptr, ptr %30, align 8, !tbaa !5
  %1140 = load ptr, ptr %34, align 8, !tbaa !5
  %1141 = load ptr, ptr %45, align 8, !tbaa !5
  %1142 = load ptr, ptr %46, align 8, !tbaa !5
  %1143 = load ptr, ptr %47, align 8, !tbaa !5
  %1144 = getelementptr inbounds float, ptr %1143, i64 1
  %1145 = load ptr, ptr %48, align 8, !tbaa !5
  %1146 = getelementptr inbounds float, ptr %1145, i64 1
  %1147 = load ptr, ptr %34, align 8, !tbaa !5
  %1148 = load ptr, ptr %41, align 8, !tbaa !5
  %1149 = load i32, ptr %64, align 4, !tbaa !9
  %1150 = sext i32 %1149 to i64
  %1151 = getelementptr inbounds %struct.complex, ptr %1148, i64 %1150
  %1152 = load ptr, ptr %42, align 8, !tbaa !5
  call void @cggbak_(ptr noundef %1139, ptr noundef @.str.14, ptr noundef %1140, ptr noundef %1141, ptr noundef %1142, ptr noundef %1144, ptr noundef %1146, ptr noundef %1147, ptr noundef %1151, ptr noundef %1152, ptr noundef %78)
  %1153 = load ptr, ptr %34, align 8, !tbaa !5
  %1154 = load i32, ptr %1153, align 4, !tbaa !9
  store i32 %1154, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %91, align 4, !tbaa !9
  br label %1155

1155:                                             ; preds = %1285, %1138
  %1156 = load i32, ptr %91, align 4, !tbaa !9
  %1157 = load i32, ptr %67, align 4, !tbaa !9
  %1158 = icmp sle i32 %1156, %1157
  br i1 %1158, label %1159, label %1288

1159:                                             ; preds = %1155
  store float 0.000000e+00, ptr %80, align 4, !tbaa !15
  %1160 = load ptr, ptr %34, align 8, !tbaa !5
  %1161 = load i32, ptr %1160, align 4, !tbaa !9
  store i32 %1161, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %93, align 4, !tbaa !9
  br label %1162

1162:                                             ; preds = %1220, %1159
  %1163 = load i32, ptr %93, align 4, !tbaa !9
  %1164 = load i32, ptr %68, align 4, !tbaa !9
  %1165 = icmp sle i32 %1163, %1164
  br i1 %1165, label %1166, label %1223

1166:                                             ; preds = %1162
  %1167 = load i32, ptr %93, align 4, !tbaa !9
  %1168 = load i32, ptr %91, align 4, !tbaa !9
  %1169 = load i32, ptr %63, align 4, !tbaa !9
  %1170 = mul nsw i32 %1168, %1169
  %1171 = add nsw i32 %1167, %1170
  store i32 %1171, ptr %69, align 4, !tbaa !9
  %1172 = load float, ptr %80, align 4, !tbaa !15
  store float %1172, ptr %73, align 4, !tbaa !15
  %1173 = load ptr, ptr %41, align 8, !tbaa !5
  %1174 = load i32, ptr %69, align 4, !tbaa !9
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds %struct.complex, ptr %1173, i64 %1175
  %1177 = getelementptr inbounds %struct.complex, ptr %1176, i32 0, i32 0
  %1178 = load float, ptr %1177, align 4, !tbaa !11
  store float %1178, ptr %71, align 4, !tbaa !15
  %1179 = load float, ptr %71, align 4, !tbaa !15
  %1180 = fcmp oge float %1179, 0.000000e+00
  br i1 %1180, label %1181, label %1183

1181:                                             ; preds = %1166
  %1182 = load float, ptr %71, align 4, !tbaa !15
  br label %1186

1183:                                             ; preds = %1166
  %1184 = load float, ptr %71, align 4, !tbaa !15
  %1185 = fneg float %1184
  br label %1186

1186:                                             ; preds = %1183, %1181
  %1187 = phi float [ %1182, %1181 ], [ %1185, %1183 ]
  %1188 = load ptr, ptr %41, align 8, !tbaa !5
  %1189 = load i32, ptr %93, align 4, !tbaa !9
  %1190 = load i32, ptr %91, align 4, !tbaa !9
  %1191 = load i32, ptr %63, align 4, !tbaa !9
  %1192 = mul nsw i32 %1190, %1191
  %1193 = add nsw i32 %1189, %1192
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds %struct.complex, ptr %1188, i64 %1194
  %1196 = call <2 x float> @Cf(ptr noundef %1195)
  store <2 x float> %1196, ptr %114, align 4
  %1197 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 0
  %1198 = load float, ptr %1197, align 4
  %1199 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 1
  %1200 = load float, ptr %1199, align 4
  store float %1200, ptr %72, align 4, !tbaa !15
  %1201 = load float, ptr %72, align 4, !tbaa !15
  %1202 = fcmp oge float %1201, 0.000000e+00
  br i1 %1202, label %1203, label %1205

1203:                                             ; preds = %1186
  %1204 = load float, ptr %72, align 4, !tbaa !15
  br label %1208

1205:                                             ; preds = %1186
  %1206 = load float, ptr %72, align 4, !tbaa !15
  %1207 = fneg float %1206
  br label %1208

1208:                                             ; preds = %1205, %1203
  %1209 = phi float [ %1204, %1203 ], [ %1207, %1205 ]
  %1210 = fadd float %1187, %1209
  store float %1210, ptr %74, align 4, !tbaa !15
  %1211 = load float, ptr %73, align 4, !tbaa !15
  %1212 = load float, ptr %74, align 4, !tbaa !15
  %1213 = fcmp oge float %1211, %1212
  br i1 %1213, label %1214, label %1216

1214:                                             ; preds = %1208
  %1215 = load float, ptr %73, align 4, !tbaa !15
  br label %1218

1216:                                             ; preds = %1208
  %1217 = load float, ptr %74, align 4, !tbaa !15
  br label %1218

1218:                                             ; preds = %1216, %1214
  %1219 = phi float [ %1215, %1214 ], [ %1217, %1216 ]
  store float %1219, ptr %80, align 4, !tbaa !15
  br label %1220

1220:                                             ; preds = %1218
  %1221 = load i32, ptr %93, align 4, !tbaa !9
  %1222 = add nsw i32 %1221, 1
  store i32 %1222, ptr %93, align 4, !tbaa !9
  br label %1162, !llvm.loop !20

1223:                                             ; preds = %1162
  %1224 = load float, ptr %80, align 4, !tbaa !15
  %1225 = load float, ptr %108, align 4, !tbaa !15
  %1226 = fcmp olt float %1224, %1225
  br i1 %1226, label %1227, label %1228

1227:                                             ; preds = %1223
  br label %1284

1228:                                             ; preds = %1223
  %1229 = load float, ptr %80, align 4, !tbaa !15
  %1230 = fdiv float 1.000000e+00, %1229
  store float %1230, ptr %80, align 4, !tbaa !15
  %1231 = load ptr, ptr %34, align 8, !tbaa !5
  %1232 = load i32, ptr %1231, align 4, !tbaa !9
  store i32 %1232, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %93, align 4, !tbaa !9
  br label %1233

1233:                                             ; preds = %1280, %1228
  %1234 = load i32, ptr %93, align 4, !tbaa !9
  %1235 = load i32, ptr %68, align 4, !tbaa !9
  %1236 = icmp sle i32 %1234, %1235
  br i1 %1236, label %1237, label %1283

1237:                                             ; preds = %1233
  %1238 = load i32, ptr %93, align 4, !tbaa !9
  %1239 = load i32, ptr %91, align 4, !tbaa !9
  %1240 = load i32, ptr %63, align 4, !tbaa !9
  %1241 = mul nsw i32 %1239, %1240
  %1242 = add nsw i32 %1238, %1241
  store i32 %1242, ptr %69, align 4, !tbaa !9
  %1243 = load i32, ptr %93, align 4, !tbaa !9
  %1244 = load i32, ptr %91, align 4, !tbaa !9
  %1245 = load i32, ptr %63, align 4, !tbaa !9
  %1246 = mul nsw i32 %1244, %1245
  %1247 = add nsw i32 %1243, %1246
  store i32 %1247, ptr %70, align 4, !tbaa !9
  %1248 = load float, ptr %80, align 4, !tbaa !15
  %1249 = load ptr, ptr %41, align 8, !tbaa !5
  %1250 = load i32, ptr %70, align 4, !tbaa !9
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr inbounds %struct.complex, ptr %1249, i64 %1251
  %1253 = getelementptr inbounds %struct.complex, ptr %1252, i32 0, i32 0
  %1254 = load float, ptr %1253, align 4, !tbaa !11
  %1255 = fmul float %1248, %1254
  %1256 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 0
  store float %1255, ptr %1256, align 4, !tbaa !11
  %1257 = load float, ptr %80, align 4, !tbaa !15
  %1258 = load ptr, ptr %41, align 8, !tbaa !5
  %1259 = load i32, ptr %70, align 4, !tbaa !9
  %1260 = sext i32 %1259 to i64
  %1261 = getelementptr inbounds %struct.complex, ptr %1258, i64 %1260
  %1262 = getelementptr inbounds %struct.complex, ptr %1261, i32 0, i32 1
  %1263 = load float, ptr %1262, align 4, !tbaa !14
  %1264 = fmul float %1257, %1263
  %1265 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 1
  store float %1264, ptr %1265, align 4, !tbaa !14
  %1266 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 0
  %1267 = load float, ptr %1266, align 4, !tbaa !11
  %1268 = load ptr, ptr %41, align 8, !tbaa !5
  %1269 = load i32, ptr %69, align 4, !tbaa !9
  %1270 = sext i32 %1269 to i64
  %1271 = getelementptr inbounds %struct.complex, ptr %1268, i64 %1270
  %1272 = getelementptr inbounds %struct.complex, ptr %1271, i32 0, i32 0
  store float %1267, ptr %1272, align 4, !tbaa !11
  %1273 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 1
  %1274 = load float, ptr %1273, align 4, !tbaa !14
  %1275 = load ptr, ptr %41, align 8, !tbaa !5
  %1276 = load i32, ptr %69, align 4, !tbaa !9
  %1277 = sext i32 %1276 to i64
  %1278 = getelementptr inbounds %struct.complex, ptr %1275, i64 %1277
  %1279 = getelementptr inbounds %struct.complex, ptr %1278, i32 0, i32 1
  store float %1274, ptr %1279, align 4, !tbaa !14
  br label %1280

1280:                                             ; preds = %1237
  %1281 = load i32, ptr %93, align 4, !tbaa !9
  %1282 = add nsw i32 %1281, 1
  store i32 %1282, ptr %93, align 4, !tbaa !9
  br label %1233, !llvm.loop !21

1283:                                             ; preds = %1233
  br label %1284

1284:                                             ; preds = %1283, %1227
  br label %1285

1285:                                             ; preds = %1284
  %1286 = load i32, ptr %91, align 4, !tbaa !9
  %1287 = add nsw i32 %1286, 1
  store i32 %1287, ptr %91, align 4, !tbaa !9
  br label %1155, !llvm.loop !22

1288:                                             ; preds = %1155
  br label %1289

1289:                                             ; preds = %1288, %1135
  %1290 = load i32, ptr %82, align 4, !tbaa !9
  %1291 = icmp ne i32 %1290, 0
  br i1 %1291, label %1292, label %1443

1292:                                             ; preds = %1289
  %1293 = load ptr, ptr %30, align 8, !tbaa !5
  %1294 = load ptr, ptr %34, align 8, !tbaa !5
  %1295 = load ptr, ptr %45, align 8, !tbaa !5
  %1296 = load ptr, ptr %46, align 8, !tbaa !5
  %1297 = load ptr, ptr %47, align 8, !tbaa !5
  %1298 = getelementptr inbounds float, ptr %1297, i64 1
  %1299 = load ptr, ptr %48, align 8, !tbaa !5
  %1300 = getelementptr inbounds float, ptr %1299, i64 1
  %1301 = load ptr, ptr %34, align 8, !tbaa !5
  %1302 = load ptr, ptr %43, align 8, !tbaa !5
  %1303 = load i32, ptr %66, align 4, !tbaa !9
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds %struct.complex, ptr %1302, i64 %1304
  %1306 = load ptr, ptr %44, align 8, !tbaa !5
  call void @cggbak_(ptr noundef %1293, ptr noundef @.str.17, ptr noundef %1294, ptr noundef %1295, ptr noundef %1296, ptr noundef %1298, ptr noundef %1300, ptr noundef %1301, ptr noundef %1305, ptr noundef %1306, ptr noundef %78)
  %1307 = load ptr, ptr %34, align 8, !tbaa !5
  %1308 = load i32, ptr %1307, align 4, !tbaa !9
  store i32 %1308, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %91, align 4, !tbaa !9
  br label %1309

1309:                                             ; preds = %1439, %1292
  %1310 = load i32, ptr %91, align 4, !tbaa !9
  %1311 = load i32, ptr %67, align 4, !tbaa !9
  %1312 = icmp sle i32 %1310, %1311
  br i1 %1312, label %1313, label %1442

1313:                                             ; preds = %1309
  store float 0.000000e+00, ptr %80, align 4, !tbaa !15
  %1314 = load ptr, ptr %34, align 8, !tbaa !5
  %1315 = load i32, ptr %1314, align 4, !tbaa !9
  store i32 %1315, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %93, align 4, !tbaa !9
  br label %1316

1316:                                             ; preds = %1374, %1313
  %1317 = load i32, ptr %93, align 4, !tbaa !9
  %1318 = load i32, ptr %68, align 4, !tbaa !9
  %1319 = icmp sle i32 %1317, %1318
  br i1 %1319, label %1320, label %1377

1320:                                             ; preds = %1316
  %1321 = load i32, ptr %93, align 4, !tbaa !9
  %1322 = load i32, ptr %91, align 4, !tbaa !9
  %1323 = load i32, ptr %65, align 4, !tbaa !9
  %1324 = mul nsw i32 %1322, %1323
  %1325 = add nsw i32 %1321, %1324
  store i32 %1325, ptr %69, align 4, !tbaa !9
  %1326 = load float, ptr %80, align 4, !tbaa !15
  store float %1326, ptr %73, align 4, !tbaa !15
  %1327 = load ptr, ptr %43, align 8, !tbaa !5
  %1328 = load i32, ptr %69, align 4, !tbaa !9
  %1329 = sext i32 %1328 to i64
  %1330 = getelementptr inbounds %struct.complex, ptr %1327, i64 %1329
  %1331 = getelementptr inbounds %struct.complex, ptr %1330, i32 0, i32 0
  %1332 = load float, ptr %1331, align 4, !tbaa !11
  store float %1332, ptr %71, align 4, !tbaa !15
  %1333 = load float, ptr %71, align 4, !tbaa !15
  %1334 = fcmp oge float %1333, 0.000000e+00
  br i1 %1334, label %1335, label %1337

1335:                                             ; preds = %1320
  %1336 = load float, ptr %71, align 4, !tbaa !15
  br label %1340

1337:                                             ; preds = %1320
  %1338 = load float, ptr %71, align 4, !tbaa !15
  %1339 = fneg float %1338
  br label %1340

1340:                                             ; preds = %1337, %1335
  %1341 = phi float [ %1336, %1335 ], [ %1339, %1337 ]
  %1342 = load ptr, ptr %43, align 8, !tbaa !5
  %1343 = load i32, ptr %93, align 4, !tbaa !9
  %1344 = load i32, ptr %91, align 4, !tbaa !9
  %1345 = load i32, ptr %65, align 4, !tbaa !9
  %1346 = mul nsw i32 %1344, %1345
  %1347 = add nsw i32 %1343, %1346
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds %struct.complex, ptr %1342, i64 %1348
  %1350 = call <2 x float> @Cf(ptr noundef %1349)
  store <2 x float> %1350, ptr %115, align 4
  %1351 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 0
  %1352 = load float, ptr %1351, align 4
  %1353 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 1
  %1354 = load float, ptr %1353, align 4
  store float %1354, ptr %72, align 4, !tbaa !15
  %1355 = load float, ptr %72, align 4, !tbaa !15
  %1356 = fcmp oge float %1355, 0.000000e+00
  br i1 %1356, label %1357, label %1359

1357:                                             ; preds = %1340
  %1358 = load float, ptr %72, align 4, !tbaa !15
  br label %1362

1359:                                             ; preds = %1340
  %1360 = load float, ptr %72, align 4, !tbaa !15
  %1361 = fneg float %1360
  br label %1362

1362:                                             ; preds = %1359, %1357
  %1363 = phi float [ %1358, %1357 ], [ %1361, %1359 ]
  %1364 = fadd float %1341, %1363
  store float %1364, ptr %74, align 4, !tbaa !15
  %1365 = load float, ptr %73, align 4, !tbaa !15
  %1366 = load float, ptr %74, align 4, !tbaa !15
  %1367 = fcmp oge float %1365, %1366
  br i1 %1367, label %1368, label %1370

1368:                                             ; preds = %1362
  %1369 = load float, ptr %73, align 4, !tbaa !15
  br label %1372

1370:                                             ; preds = %1362
  %1371 = load float, ptr %74, align 4, !tbaa !15
  br label %1372

1372:                                             ; preds = %1370, %1368
  %1373 = phi float [ %1369, %1368 ], [ %1371, %1370 ]
  store float %1373, ptr %80, align 4, !tbaa !15
  br label %1374

1374:                                             ; preds = %1372
  %1375 = load i32, ptr %93, align 4, !tbaa !9
  %1376 = add nsw i32 %1375, 1
  store i32 %1376, ptr %93, align 4, !tbaa !9
  br label %1316, !llvm.loop !23

1377:                                             ; preds = %1316
  %1378 = load float, ptr %80, align 4, !tbaa !15
  %1379 = load float, ptr %108, align 4, !tbaa !15
  %1380 = fcmp olt float %1378, %1379
  br i1 %1380, label %1381, label %1382

1381:                                             ; preds = %1377
  br label %1438

1382:                                             ; preds = %1377
  %1383 = load float, ptr %80, align 4, !tbaa !15
  %1384 = fdiv float 1.000000e+00, %1383
  store float %1384, ptr %80, align 4, !tbaa !15
  %1385 = load ptr, ptr %34, align 8, !tbaa !5
  %1386 = load i32, ptr %1385, align 4, !tbaa !9
  store i32 %1386, ptr %68, align 4, !tbaa !9
  store i32 1, ptr %93, align 4, !tbaa !9
  br label %1387

1387:                                             ; preds = %1434, %1382
  %1388 = load i32, ptr %93, align 4, !tbaa !9
  %1389 = load i32, ptr %68, align 4, !tbaa !9
  %1390 = icmp sle i32 %1388, %1389
  br i1 %1390, label %1391, label %1437

1391:                                             ; preds = %1387
  %1392 = load i32, ptr %93, align 4, !tbaa !9
  %1393 = load i32, ptr %91, align 4, !tbaa !9
  %1394 = load i32, ptr %65, align 4, !tbaa !9
  %1395 = mul nsw i32 %1393, %1394
  %1396 = add nsw i32 %1392, %1395
  store i32 %1396, ptr %69, align 4, !tbaa !9
  %1397 = load i32, ptr %93, align 4, !tbaa !9
  %1398 = load i32, ptr %91, align 4, !tbaa !9
  %1399 = load i32, ptr %65, align 4, !tbaa !9
  %1400 = mul nsw i32 %1398, %1399
  %1401 = add nsw i32 %1397, %1400
  store i32 %1401, ptr %70, align 4, !tbaa !9
  %1402 = load float, ptr %80, align 4, !tbaa !15
  %1403 = load ptr, ptr %43, align 8, !tbaa !5
  %1404 = load i32, ptr %70, align 4, !tbaa !9
  %1405 = sext i32 %1404 to i64
  %1406 = getelementptr inbounds %struct.complex, ptr %1403, i64 %1405
  %1407 = getelementptr inbounds %struct.complex, ptr %1406, i32 0, i32 0
  %1408 = load float, ptr %1407, align 4, !tbaa !11
  %1409 = fmul float %1402, %1408
  %1410 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 0
  store float %1409, ptr %1410, align 4, !tbaa !11
  %1411 = load float, ptr %80, align 4, !tbaa !15
  %1412 = load ptr, ptr %43, align 8, !tbaa !5
  %1413 = load i32, ptr %70, align 4, !tbaa !9
  %1414 = sext i32 %1413 to i64
  %1415 = getelementptr inbounds %struct.complex, ptr %1412, i64 %1414
  %1416 = getelementptr inbounds %struct.complex, ptr %1415, i32 0, i32 1
  %1417 = load float, ptr %1416, align 4, !tbaa !14
  %1418 = fmul float %1411, %1417
  %1419 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 1
  store float %1418, ptr %1419, align 4, !tbaa !14
  %1420 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 0
  %1421 = load float, ptr %1420, align 4, !tbaa !11
  %1422 = load ptr, ptr %43, align 8, !tbaa !5
  %1423 = load i32, ptr %69, align 4, !tbaa !9
  %1424 = sext i32 %1423 to i64
  %1425 = getelementptr inbounds %struct.complex, ptr %1422, i64 %1424
  %1426 = getelementptr inbounds %struct.complex, ptr %1425, i32 0, i32 0
  store float %1421, ptr %1426, align 4, !tbaa !11
  %1427 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 1
  %1428 = load float, ptr %1427, align 4, !tbaa !14
  %1429 = load ptr, ptr %43, align 8, !tbaa !5
  %1430 = load i32, ptr %69, align 4, !tbaa !9
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds %struct.complex, ptr %1429, i64 %1431
  %1433 = getelementptr inbounds %struct.complex, ptr %1432, i32 0, i32 1
  store float %1428, ptr %1433, align 4, !tbaa !14
  br label %1434

1434:                                             ; preds = %1391
  %1435 = load i32, ptr %93, align 4, !tbaa !9
  %1436 = add nsw i32 %1435, 1
  store i32 %1436, ptr %93, align 4, !tbaa !9
  br label %1387, !llvm.loop !24

1437:                                             ; preds = %1387
  br label %1438

1438:                                             ; preds = %1437, %1381
  br label %1439

1439:                                             ; preds = %1438
  %1440 = load i32, ptr %91, align 4, !tbaa !9
  %1441 = add nsw i32 %1440, 1
  store i32 %1441, ptr %91, align 4, !tbaa !9
  br label %1309, !llvm.loop !25

1442:                                             ; preds = %1309
  br label %1443

1443:                                             ; preds = %1442, %1289
  br label %1444

1444:                                             ; preds = %1443, %1082, %1004, %948
  %1445 = load i32, ptr %94, align 4, !tbaa !9
  %1446 = icmp ne i32 %1445, 0
  br i1 %1446, label %1447, label %1452

1447:                                             ; preds = %1444
  %1448 = load ptr, ptr %34, align 8, !tbaa !5
  %1449 = load ptr, ptr %39, align 8, !tbaa !5
  %1450 = getelementptr inbounds %struct.complex, ptr %1449, i64 1
  %1451 = load ptr, ptr %34, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %102, ptr noundef %76, ptr noundef %1448, ptr noundef @c__1, ptr noundef %1450, ptr noundef %1451, ptr noundef %78)
  br label %1452

1452:                                             ; preds = %1447, %1444
  %1453 = load i32, ptr %95, align 4, !tbaa !9
  %1454 = icmp ne i32 %1453, 0
  br i1 %1454, label %1455, label %1460

1455:                                             ; preds = %1452
  %1456 = load ptr, ptr %34, align 8, !tbaa !5
  %1457 = load ptr, ptr %40, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.complex, ptr %1457, i64 1
  %1459 = load ptr, ptr %34, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %104, ptr noundef %77, ptr noundef %1456, ptr noundef @c__1, ptr noundef %1458, ptr noundef %1459, ptr noundef %78)
  br label %1460

1460:                                             ; preds = %1455, %1452
  %1461 = load i32, ptr %106, align 4, !tbaa !9
  %1462 = sitofp i32 %1461 to float
  %1463 = load ptr, ptr %53, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.complex, ptr %1463, i64 1
  %1465 = getelementptr inbounds %struct.complex, ptr %1464, i32 0, i32 0
  store float %1462, ptr %1465, align 4, !tbaa !11
  %1466 = load ptr, ptr %53, align 8, !tbaa !5
  %1467 = getelementptr inbounds %struct.complex, ptr %1466, i64 1
  %1468 = getelementptr inbounds %struct.complex, ptr %1467, i32 0, i32 1
  store float 0.000000e+00, ptr %1468, align 4, !tbaa !14
  store i32 1, ptr %113, align 4
  br label %1469

1469:                                             ; preds = %1460, %475, %469, %461
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

; Function Attrs: nounwind
declare double @sqrt(double noundef) #3

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

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

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

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

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

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

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

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

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

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

declare void @chgeqz_(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

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

declare void @ctgsna_(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

declare void @cggbak_(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: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) #4

; 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"="64" "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 "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 #4 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "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 #5 = { nounwind }

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

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


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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [5 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@c_b2 = external hidden global %struct.complex, align 4
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @cggevx_(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 nocapture noundef writeonly %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr nocapture noundef readonly %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, ptr nocapture noundef %28) local_unnamed_addr #0 {
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca [1 x i32], align 4
  %40 = alloca [1 x i8], align 1
  %41 = alloca float, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #7
  %45 = load i32, ptr %6, align 4, !tbaa !5
  %narrow = xor i32 %45, -1
  %46 = sext i32 %narrow to i64
  %47 = getelementptr inbounds %struct.complex, ptr %5, i64 %46
  %48 = load i32, ptr %8, align 4, !tbaa !5
  %narrow585 = xor i32 %48, -1
  %49 = sext i32 %narrow585 to i64
  %50 = getelementptr inbounds %struct.complex, ptr %7, i64 %49
  %51 = load i32, ptr %12, align 4, !tbaa !5
  %narrow591 = xor i32 %51, -1
  %52 = sext i32 %narrow591 to i64
  %53 = getelementptr inbounds %struct.complex, ptr %11, i64 %52
  %54 = load i32, ptr %14, align 4, !tbaa !5
  %narrow592 = xor i32 %54, -1
  %55 = sext i32 %narrow592 to i64
  %56 = getelementptr inbounds %struct.complex, ptr %13, i64 %55
  %57 = getelementptr inbounds i8, ptr %21, i64 -4
  %58 = getelementptr inbounds i8, ptr %22, i64 -4
  %59 = getelementptr inbounds i8, ptr %23, i64 -8
  %60 = getelementptr inbounds i8, ptr %27, i64 -4
  %61 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #7
  %.not = icmp eq i32 %61, 0
  br i1 %.not, label %62, label %64

62:                                               ; preds = %29
  %63 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #7
  %.not573 = icmp eq i32 %63, 0
  br label %64

64:                                               ; preds = %62, %29
  %.not587 = phi i1 [ true, %29 ], [ %.not573, %62 ]
  %65 = phi i1 [ false, %29 ], [ %.not573, %62 ]
  %66 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #7
  %.not574 = icmp eq i32 %66, 0
  br i1 %.not574, label %67, label %69

67:                                               ; preds = %64
  %68 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #7
  %.not575 = icmp eq i32 %68, 0
  br label %69

69:                                               ; preds = %67, %64
  %.not588 = phi i1 [ true, %64 ], [ %.not575, %67 ]
  %70 = phi i1 [ false, %64 ], [ %.not575, %67 ]
  %.not589 = and i1 %.not587, %.not588
  %71 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #7
  %.not576 = icmp eq i32 %71, 0
  br i1 %.not576, label %72, label %75

72:                                               ; preds = %69
  %73 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #7
  %74 = icmp ne i32 %73, 0
  br label %75

75:                                               ; preds = %72, %69
  %76 = phi i1 [ true, %69 ], [ %74, %72 ]
  %77 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str) #7
  %78 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.3) #7
  %79 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #7
  %80 = tail call i32 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.4) #7
  store i32 0, ptr %28, align 4, !tbaa !5
  %81 = load i32, ptr %24, align 4, !tbaa !5
  %82 = icmp eq i32 %81, -1
  br i1 %76, label %87, label %83

83:                                               ; preds = %75
  %84 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #7
  %.not577 = icmp eq i32 %84, 0
  br i1 %.not577, label %85, label %87

85:                                               ; preds = %83
  %86 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #7
  %.not578 = icmp eq i32 %86, 0
  %brmerge = select i1 %.not578, i1 true, i1 %65
  %brmerge726 = select i1 %brmerge, i1 true, i1 %70
  %.mux = select i1 %65, i32 -2, i32 -3
  %.mux.mux = select i1 %.not578, i32 -1, i32 %.mux
  br i1 %brmerge726, label %.thread614.sink.split, label %88

87:                                               ; preds = %83, %75
  %brmerge727 = select i1 %65, i1 true, i1 %70
  %.mux728 = select i1 %65, i32 -2, i32 -3
  br i1 %brmerge727, label %.thread614.sink.split, label %88

88:                                               ; preds = %87, %85
  %89 = icmp ne i32 %77, 0
  %90 = icmp ne i32 %78, 0
  %or.cond = select i1 %89, i1 true, i1 %90
  %91 = icmp ne i32 %80, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %91
  %92 = icmp ne i32 %79, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %92
  br i1 %or.cond5, label %93, label %.thread614.sink.split

93:                                               ; preds = %88
  %94 = load i32, ptr %4, align 4, !tbaa !5
  %95 = icmp slt i32 %94, 0
  br i1 %95, label %.thread614.sink.split, label %96

96:                                               ; preds = %93
  %97 = load i32, ptr %6, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %94, i32 1)
  %98 = icmp slt i32 %97, %spec.select
  br i1 %98, label %.thread614.sink.split, label %99

99:                                               ; preds = %96
  %100 = load i32, ptr %8, align 4, !tbaa !5
  %101 = icmp slt i32 %100, %spec.select
  br i1 %101, label %.thread614.sink.split, label %102

102:                                              ; preds = %99
  %103 = load i32, ptr %12, align 4, !tbaa !5
  %104 = icmp sgt i32 %103, 0
  %105 = icmp uge i32 %103, %94
  %or.cond630.not = or i1 %.not587, %105
  %or.cond636 = select i1 %104, i1 %or.cond630.not, i1 false
  br i1 %or.cond636, label %106, label %.thread614.sink.split

106:                                              ; preds = %102
  %107 = load i32, ptr %14, align 4, !tbaa !5
  %108 = icmp sgt i32 %107, 0
  %109 = icmp uge i32 %107, %94
  %or.cond631.not = or i1 %.not588, %109
  %or.cond637 = select i1 %108, i1 %or.cond631.not, i1 false
  br i1 %or.cond637, label %110, label %.thread614.sink.split

110:                                              ; preds = %106
  %.pr = load i32, ptr %28, align 4, !tbaa !5
  %111 = icmp eq i32 %.pr, 0
  br i1 %111, label %112, label %.thread614

112:                                              ; preds = %110
  %113 = icmp eq i32 %94, 0
  br i1 %113, label %138, label %114

114:                                              ; preds = %112
  %115 = shl nuw i32 %94, 1
  %.not579 = icmp eq i32 %78, 0
  br i1 %.not579, label %118, label %116

116:                                              ; preds = %114
  %117 = shl i32 %94, 2
  br label %122

118:                                              ; preds = %114
  %or.cond7 = select i1 %92, i1 true, i1 %91
  br i1 %or.cond7, label %119, label %122

119:                                              ; preds = %118
  %120 = add nuw nsw i32 %94, 1
  %121 = mul nsw i32 %115, %120
  br label %122

122:                                              ; preds = %119, %118, %116
  %.0541 = phi i32 [ %117, %116 ], [ %121, %119 ], [ %115, %118 ]
  %123 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #7
  %124 = add i32 %123, 1
  %125 = mul i32 %124, %94
  %126 = tail call i32 @llvm.smax.i32(i32 %.0541, i32 %125)
  store i32 %126, ptr %30, align 4, !tbaa !5
  %127 = load i32, ptr %4, align 4, !tbaa !5
  %128 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #7
  %129 = add i32 %128, 1
  %130 = mul i32 %129, %127
  store i32 %130, ptr %31, align 4, !tbaa !5
  %131 = tail call i32 @llvm.smax.i32(i32 %126, i32 %130)
  br i1 %.not587, label %138, label %132

132:                                              ; preds = %122
  store i32 %131, ptr %30, align 4, !tbaa !5
  %133 = load i32, ptr %4, align 4, !tbaa !5
  %134 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.7, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #7
  %135 = add i32 %134, 1
  %136 = mul i32 %135, %133
  store i32 %136, ptr %31, align 4, !tbaa !5
  %137 = tail call i32 @llvm.smax.i32(i32 %131, i32 %136)
  br label %138

138:                                              ; preds = %112, %122, %132
  %.1542 = phi i32 [ %.0541, %132 ], [ %.0541, %122 ], [ 1, %112 ]
  %.0 = phi i32 [ %137, %132 ], [ %131, %122 ], [ 1, %112 ]
  %139 = sitofp i32 %.0 to float
  store float %139, ptr %23, align 4, !tbaa !9
  %140 = getelementptr inbounds i8, ptr %23, i64 4
  store float 0.000000e+00, ptr %140, align 4, !tbaa !12
  %141 = load i32, ptr %24, align 4, !tbaa !5
  %142 = icmp sge i32 %141, %.1542
  %or.cond9 = select i1 %142, i1 true, i1 %82
  br i1 %or.cond9, label %.thread, label %.thread614.sink.split

.thread:                                          ; preds = %138
  %.pr611.pr = load i32, ptr %28, align 4, !tbaa !5
  %.not583 = icmp eq i32 %.pr611.pr, 0
  br i1 %.not583, label %146, label %.thread614

.thread614.sink.split:                            ; preds = %87, %85, %138, %106, %102, %99, %96, %93, %88
  %.sink = phi i32 [ %.mux.mux, %85 ], [ %.mux728, %87 ], [ -4, %88 ], [ -5, %93 ], [ -7, %96 ], [ -9, %99 ], [ -13, %102 ], [ -15, %106 ], [ -25, %138 ]
  store i32 %.sink, ptr %28, align 4, !tbaa !5
  br label %.thread614

.thread614:                                       ; preds = %.thread614.sink.split, %110, %.thread
  %143 = phi i32 [ %.pr611.pr, %.thread ], [ %.pr, %110 ], [ %.sink, %.thread614.sink.split ]
  %144 = sub nsw i32 0, %143
  store i32 %144, ptr %30, align 4, !tbaa !5
  %145 = call i32 @xerbla_(ptr noundef nonnull @.str.10, ptr noundef nonnull %30, i32 noundef 6) #7
  br label %392

146:                                              ; preds = %.thread
  br i1 %82, label %392, label %147

147:                                              ; preds = %146
  %148 = load i32, ptr %4, align 4, !tbaa !5
  %149 = icmp eq i32 %148, 0
  br i1 %149, label %392, label %150

150:                                              ; preds = %147
  %151 = tail call float @slamch_(ptr noundef nonnull @.str.2) #7
  %152 = tail call float @slamch_(ptr noundef nonnull @.str.5) #7
  store float %152, ptr %44, align 4, !tbaa !13
  %153 = fdiv float 1.000000e+00, %152
  store float %153, ptr %41, align 4, !tbaa !13
  call void @slabad_(ptr noundef nonnull %44, ptr noundef nonnull %41) #7
  %154 = load float, ptr %44, align 4, !tbaa !13
  %155 = fpext float %154 to double
  %156 = call double @sqrt(double noundef %155) #7
  %157 = fpext float %151 to double
  %158 = fdiv double %156, %157
  %159 = fptrunc double %158 to float
  store float %159, ptr %44, align 4, !tbaa !13
  %160 = fdiv float 1.000000e+00, %159
  store float %160, ptr %41, align 4, !tbaa !13
  %161 = call float @clange_(ptr noundef nonnull @.str.11, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %25) #7
  store float %161, ptr %32, align 4, !tbaa !13
  %162 = fcmp ogt float %161, 0.000000e+00
  %163 = load float, ptr %44, align 4
  %164 = fcmp olt float %161, %163
  %or.cond639 = select i1 %162, i1 %164, i1 false
  br i1 %or.cond639, label %168, label %165

165:                                              ; preds = %150
  %166 = load float, ptr %41, align 4, !tbaa !13
  %167 = fcmp ogt float %161, %166
  br i1 %167, label %168, label %169

168:                                              ; preds = %150, %165
  %storemerge634 = phi float [ %166, %165 ], [ %163, %150 ]
  store float %storemerge634, ptr %42, align 4, !tbaa !13
  call void @clascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %32, ptr noundef nonnull %42, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %34) #7
  br label %169

169:                                              ; preds = %165, %168
  %.not584621 = phi i1 [ false, %168 ], [ true, %165 ]
  %170 = call float @clange_(ptr noundef nonnull @.str.11, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25) #7
  store float %170, ptr %33, align 4, !tbaa !13
  %171 = fcmp ogt float %170, 0.000000e+00
  %172 = load float, ptr %44, align 4
  %173 = fcmp olt float %170, %172
  %or.cond641 = select i1 %171, i1 %173, i1 false
  br i1 %or.cond641, label %177, label %174

174:                                              ; preds = %169
  %175 = load float, ptr %41, align 4, !tbaa !13
  %176 = fcmp ogt float %170, %175
  br i1 %176, label %177, label %178

177:                                              ; preds = %169, %174
  %storemerge635 = phi float [ %175, %174 ], [ %172, %169 ]
  store float %storemerge635, ptr %43, align 4, !tbaa !13
  call void @clascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %33, ptr noundef nonnull %43, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %34) #7
  br label %178

178:                                              ; preds = %174, %177
  %.not586626 = phi i1 [ false, %177 ], [ true, %174 ]
  call void @cggbal_(ptr noundef %0, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %25, ptr noundef nonnull %34) #7
  %179 = call float @clange_(ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %25) #7
  store float %179, ptr %19, align 4, !tbaa !13
  br i1 %.not584621, label %182, label %180

180:                                              ; preds = %178
  store float %179, ptr %25, align 4, !tbaa !13
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %42, ptr noundef nonnull %32, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull @c__1, ptr noundef nonnull %34) #7
  %181 = load float, ptr %25, align 4, !tbaa !13
  store float %181, ptr %19, align 4, !tbaa !13
  br label %182

182:                                              ; preds = %180, %178
  %183 = call float @clange_(ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25) #7
  store float %183, ptr %20, align 4, !tbaa !13
  br i1 %.not586626, label %186, label %184

184:                                              ; preds = %182
  store float %183, ptr %25, align 4, !tbaa !13
  call void @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %33, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull @c__1, ptr noundef nonnull %34) #7
  %185 = load float, ptr %25, align 4, !tbaa !13
  store float %185, ptr %20, align 4, !tbaa !13
  br label %186

186:                                              ; preds = %184, %182
  %187 = load i32, ptr %16, align 4, !tbaa !5
  %188 = add nsw i32 %187, 1
  %189 = load i32, ptr %15, align 4, !tbaa !5
  %190 = sub i32 %188, %189
  store i32 %190, ptr %37, align 4, !tbaa !5
  %or.cond11 = and i1 %.not589, %89
  br i1 %or.cond11, label %194, label %191

191:                                              ; preds = %186
  %192 = load i32, ptr %4, align 4, !tbaa !5
  %reass.sub = sub i32 %192, %189
  %193 = add i32 %reass.sub, 1
  br label %194

194:                                              ; preds = %186, %191
  %storemerge = phi i32 [ %193, %191 ], [ %190, %186 ]
  store i32 %storemerge, ptr %36, align 4, !tbaa !5
  %195 = load i32, ptr %24, align 4, !tbaa !5
  %196 = sub i32 %195, %190
  store i32 %196, ptr %30, align 4, !tbaa !5
  %197 = add i32 %48, 1
  %198 = mul i32 %189, %197
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds %struct.complex, ptr %50, i64 %199
  %201 = sext i32 %190 to i64
  %202 = getelementptr %struct.complex, ptr %59, i64 %201
  %203 = getelementptr i8, ptr %202, i64 8
  call void @cgeqrf_(ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef %200, ptr noundef nonnull %8, ptr noundef nonnull %23, ptr noundef nonnull %203, ptr noundef nonnull %30, ptr noundef nonnull %34) #7
  %204 = load i32, ptr %24, align 4, !tbaa !5
  %205 = sub i32 %204, %190
  store i32 %205, ptr %30, align 4, !tbaa !5
  %206 = load i32, ptr %15, align 4, !tbaa !5
  %207 = mul i32 %206, %197
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds %struct.complex, ptr %50, i64 %208
  %210 = add i32 %45, 1
  %211 = mul i32 %206, %210
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds %struct.complex, ptr %47, i64 %212
  call void @cunmqr_(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.15, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %209, ptr noundef nonnull %8, ptr noundef nonnull %23, ptr noundef %213, ptr noundef nonnull %6, ptr noundef nonnull %203, ptr noundef nonnull %30, ptr noundef nonnull %34) #7
  br i1 %.not587, label %237, label %214

214:                                              ; preds = %194
  call void @claset_(ptr noundef nonnull @.str.16, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %11, ptr noundef nonnull %12) #7
  %215 = load i32, ptr %37, align 4, !tbaa !5
  %216 = icmp sgt i32 %215, 1
  br i1 %216, label %217, label %229

217:                                              ; preds = %214
  %218 = add nsw i32 %215, -1
  store i32 %218, ptr %30, align 4, !tbaa !5
  store i32 %218, ptr %31, align 4, !tbaa !5
  %219 = load i32, ptr %15, align 4, !tbaa !5
  %220 = add nsw i32 %219, 1
  %221 = mul nsw i32 %219, %48
  %222 = add nsw i32 %220, %221
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds %struct.complex, ptr %50, i64 %223
  %225 = mul nsw i32 %219, %51
  %226 = add nsw i32 %220, %225
  %227 = sext i32 %226 to i64
  %228 = getelementptr inbounds %struct.complex, ptr %53, i64 %227
  call void @clacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %224, ptr noundef nonnull %8, ptr noundef %228, ptr noundef nonnull %12) #7
  br label %229

229:                                              ; preds = %217, %214
  %230 = load i32, ptr %24, align 4, !tbaa !5
  %231 = sub i32 %230, %190
  store i32 %231, ptr %30, align 4, !tbaa !5
  %232 = load i32, ptr %15, align 4, !tbaa !5
  %233 = add i32 %51, 1
  %234 = mul i32 %232, %233
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds %struct.complex, ptr %53, i64 %235
  call void @cungqr_(ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef nonnull %37, ptr noundef %236, ptr noundef nonnull %12, ptr noundef nonnull %23, ptr noundef nonnull %203, ptr noundef nonnull %30, ptr noundef nonnull %34) #7
  br label %237

237:                                              ; preds = %229, %194
  br i1 %.not588, label %239, label %238

238:                                              ; preds = %237
  call void @claset_(ptr noundef nonnull @.str.16, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %13, ptr noundef nonnull %14) #7
  br label %239

239:                                              ; preds = %238, %237
  br i1 %or.cond11, label %241, label %240

240:                                              ; preds = %239
  call void @cgghrd_(ptr noundef %1, ptr noundef %2, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %34) #7
  br label %249

241:                                              ; preds = %239
  %242 = load i32, ptr %15, align 4, !tbaa !5
  %243 = mul i32 %242, %210
  %244 = sext i32 %243 to i64
  %245 = getelementptr inbounds %struct.complex, ptr %47, i64 %244
  %246 = mul i32 %242, %197
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds %struct.complex, ptr %50, i64 %247
  call void @cgghrd_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %37, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef %245, ptr noundef nonnull %6, ptr noundef %248, ptr noundef nonnull %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %34) #7
  br label %249

249:                                              ; preds = %241, %240
  %.608 = phi i8 [ 69, %241 ], [ 83, %240 ]
  store i8 %.608, ptr %40, align 1, !tbaa !14
  %250 = load i32, ptr %24, align 4, !tbaa !5
  store i32 %250, ptr %30, align 4, !tbaa !5
  call void @chgeqz_(ptr noundef nonnull %40, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %23, ptr noundef nonnull %30, ptr noundef %25, ptr noundef nonnull %34) #7
  %251 = load i32, ptr %34, align 4, !tbaa !5
  %.not593 = icmp eq i32 %251, 0
  br i1 %.not593, label %261, label %252

252:                                              ; preds = %249
  %253 = icmp slt i32 %251, 1
  %.pre = load i32, ptr %4, align 4, !tbaa !5
  %.not604 = icmp sgt i32 %251, %.pre
  %or.cond724 = select i1 %253, i1 true, i1 %.not604
  br i1 %or.cond724, label %254, label %.loopexit643.sink.split

254:                                              ; preds = %252
  %255 = icmp sle i32 %251, %.pre
  %256 = shl i32 %.pre, 1
  %.not605 = icmp sgt i32 %251, %256
  %or.cond609 = or i1 %255, %.not605
  br i1 %or.cond609, label %259, label %257

257:                                              ; preds = %254
  %258 = sub nsw i32 %251, %.pre
  br label %.loopexit643.sink.split

259:                                              ; preds = %254
  %260 = add nsw i32 %.pre, 1
  br label %.loopexit643.sink.split

261:                                              ; preds = %249
  br i1 %or.cond11, label %.loopexit646, label %262

262:                                              ; preds = %261
  br i1 %.not589, label %273, label %263

263:                                              ; preds = %262
  br i1 %.not587, label %267, label %264

264:                                              ; preds = %263
  br i1 %.not588, label %266, label %265

265:                                              ; preds = %264
  store i8 66, ptr %40, align 1, !tbaa !14
  br label %268

266:                                              ; preds = %264
  store i8 76, ptr %40, align 1, !tbaa !14
  br label %268

267:                                              ; preds = %263
  store i8 82, ptr %40, align 1, !tbaa !14
  br label %268

268:                                              ; preds = %265, %266, %267
  call void @ctgevc_(ptr noundef nonnull %40, ptr noundef nonnull @.str.4, ptr noundef nonnull %39, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %38, ptr noundef nonnull %23, ptr noundef %25, ptr noundef nonnull %34) #7
  %269 = load i32, ptr %34, align 4, !tbaa !5
  %.not594 = icmp eq i32 %269, 0
  br i1 %.not594, label %273, label %270

270:                                              ; preds = %268
  %271 = load i32, ptr %4, align 4, !tbaa !5
  %272 = add nsw i32 %271, 2
  br label %.loopexit643.sink.split

273:                                              ; preds = %268, %262
  br i1 %89, label %.loopexit646, label %274

274:                                              ; preds = %273
  %275 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %275, ptr %30, align 4, !tbaa !5
  %.not595649 = icmp slt i32 %275, 1
  br i1 %.not595649, label %.loopexit646, label %.lr.ph652

.lr.ph652:                                        ; preds = %274
  %or.cond19 = select i1 %90, i1 true, i1 %91
  br i1 %or.cond19, label %.lr.ph652.split.us, label %.lr.ph652.split

.lr.ph652.split.us:                               ; preds = %.lr.ph652, %288
  %indvars.iv691 = phi i64 [ %indvars.iv.next692, %288 ], [ 1, %.lr.ph652 ]
  %276 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %276, ptr %31, align 4, !tbaa !5
  %.not596647.us = icmp slt i32 %276, 1
  br i1 %.not596647.us, label %._crit_edge.us, label %.lr.ph.us.preheader

.lr.ph.us.preheader:                              ; preds = %.lr.ph652.split.us
  %277 = zext nneg i32 %276 to i64
  %278 = shl nuw nsw i64 %277, 2
  call void @llvm.memset.p0.i64(ptr align 4 %27, i8 0, i64 %278, i1 false), !tbaa !5
  br label %._crit_edge.us

._crit_edge.us:                                   ; preds = %.lr.ph.us.preheader, %.lr.ph652.split.us
  %279 = getelementptr inbounds i32, ptr %60, i64 %indvars.iv691
  store i32 1, ptr %279, align 4, !tbaa !5
  %280 = load i32, ptr %4, align 4, !tbaa !5
  %281 = add nsw i32 %280, 1
  %282 = add nsw i32 %281, %280
  %283 = sext i32 %281 to i64
  %284 = getelementptr inbounds %struct.complex, ptr %59, i64 %283
  %285 = sext i32 %282 to i64
  %286 = getelementptr inbounds %struct.complex, ptr %59, i64 %285
  call void @ctgevc_(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %23, ptr noundef nonnull %4, ptr noundef nonnull %284, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %35, ptr noundef nonnull %286, ptr noundef %25, ptr noundef nonnull %34) #7
  %287 = load i32, ptr %34, align 4, !tbaa !5
  %.not597.us = icmp eq i32 %287, 0
  br i1 %.not597.us, label %288, label %.split.us

288:                                              ; preds = %._crit_edge.us
  %289 = load i32, ptr %24, align 4, !tbaa !5
  %reass.sub683 = sub i32 %289, %282
  %290 = add i32 %reass.sub683, 1
  store i32 %290, ptr %31, align 4, !tbaa !5
  %291 = getelementptr inbounds float, ptr %57, i64 %indvars.iv691
  %292 = getelementptr inbounds float, ptr %58, i64 %indvars.iv691
  call void @ctgsna_(ptr noundef %3, ptr noundef nonnull @.str.5, ptr noundef nonnull %27, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %23, ptr noundef nonnull %4, ptr noundef nonnull %284, ptr noundef nonnull %4, ptr noundef nonnull %291, ptr noundef nonnull %292, ptr noundef nonnull @c__1, ptr noundef nonnull %35, ptr noundef nonnull %286, ptr noundef nonnull %31, ptr noundef %26, ptr noundef nonnull %34) #7
  %indvars.iv.next692 = add nuw nsw i64 %indvars.iv691, 1
  %293 = load i32, ptr %30, align 4, !tbaa !5
  %294 = sext i32 %293 to i64
  %.not595.us.not = icmp slt i64 %indvars.iv691, %294
  br i1 %.not595.us.not, label %.lr.ph652.split.us, label %.loopexit646, !llvm.loop !15

.lr.ph652.split:                                  ; preds = %.lr.ph652, %._crit_edge
  %indvars.iv = phi i64 [ %indvars.iv.next, %._crit_edge ], [ 1, %.lr.ph652 ]
  %295 = load i32, ptr %4, align 4, !tbaa !5
  %.not596647 = icmp slt i32 %295, 1
  br i1 %.not596647, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.lr.ph652.split
  %296 = zext nneg i32 %295 to i64
  %297 = shl nuw nsw i64 %296, 2
  call void @llvm.memset.p0.i64(ptr align 4 %27, i8 0, i64 %297, i1 false), !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.preheader, %.lr.ph652.split
  %298 = getelementptr inbounds i32, ptr %60, i64 %indvars.iv
  store i32 1, ptr %298, align 4, !tbaa !5
  %299 = load i32, ptr %4, align 4, !tbaa !5
  %300 = add nsw i32 %299, 1
  %301 = add nsw i32 %300, %299
  %302 = load i32, ptr %24, align 4, !tbaa !5
  %reass.sub682 = sub i32 %302, %301
  %303 = add i32 %reass.sub682, 1
  store i32 %303, ptr %31, align 4, !tbaa !5
  %304 = sext i32 %300 to i64
  %305 = getelementptr inbounds %struct.complex, ptr %59, i64 %304
  %306 = getelementptr inbounds float, ptr %57, i64 %indvars.iv
  %307 = getelementptr inbounds float, ptr %58, i64 %indvars.iv
  %308 = sext i32 %301 to i64
  %309 = getelementptr inbounds %struct.complex, ptr %59, i64 %308
  call void @ctgsna_(ptr noundef %3, ptr noundef nonnull @.str.5, ptr noundef %27, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %23, ptr noundef nonnull %4, ptr noundef nonnull %305, ptr noundef nonnull %4, ptr noundef nonnull %306, ptr noundef nonnull %307, ptr noundef nonnull @c__1, ptr noundef nonnull %35, ptr noundef nonnull %309, ptr noundef nonnull %31, ptr noundef %26, ptr noundef nonnull %34) #7
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %310 = load i32, ptr %30, align 4, !tbaa !5
  %311 = sext i32 %310 to i64
  %.not595.not = icmp slt i64 %indvars.iv, %311
  br i1 %.not595.not, label %.lr.ph652.split, label %.loopexit646, !llvm.loop !15

.split.us:                                        ; preds = %._crit_edge.us
  %312 = load i32, ptr %4, align 4, !tbaa !5
  %313 = add nsw i32 %312, 2
  br label %.loopexit643.sink.split

.loopexit646:                                     ; preds = %._crit_edge, %288, %274, %273, %261
  br i1 %.not587, label %.loopexit645, label %314

314:                                              ; preds = %.loopexit646
  call void @cggbak_(ptr noundef %0, ptr noundef nonnull @.str.14, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %17, ptr noundef %18, ptr noundef nonnull %4, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %34) #7
  %315 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %315, ptr %30, align 4, !tbaa !5
  %.not598663 = icmp slt i32 %315, 1
  br i1 %.not598663, label %.loopexit645, label %.lr.ph666.preheader

.lr.ph666.preheader:                              ; preds = %314
  %316 = sext i32 %51 to i64
  br label %.lr.ph666

.lr.ph666thread-pre-split:                        ; preds = %.loopexit644
  %indvars.iv.next701 = add nuw nsw i64 %indvars.iv700, 1
  %.pr714 = load i32, ptr %4, align 4, !tbaa !5
  br label %.lr.ph666

.lr.ph666:                                        ; preds = %.lr.ph666thread-pre-split, %.lr.ph666.preheader
  %317 = phi i32 [ %.pr714, %.lr.ph666thread-pre-split ], [ %315, %.lr.ph666.preheader ]
  %indvars.iv700 = phi i64 [ %indvars.iv.next701, %.lr.ph666thread-pre-split ], [ 1, %.lr.ph666.preheader ]
  store i32 %317, ptr %31, align 4, !tbaa !5
  %.not602653 = icmp slt i32 %317, 1
  br i1 %.not602653, label %._crit_edge658, label %.lr.ph657

.lr.ph657:                                        ; preds = %.lr.ph666
  %318 = mul nsw i64 %indvars.iv700, %316
  %invariant.gep = getelementptr %struct.complex, ptr %53, i64 %318
  br label %319

319:                                              ; preds = %.lr.ph657, %319
  %indvars.iv694 = phi i64 [ 1, %.lr.ph657 ], [ %indvars.iv.next695, %319 ]
  %.0555654 = phi float [ 0.000000e+00, %.lr.ph657 ], [ %330, %319 ]
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv694
  %320 = load float, ptr %gep, align 4, !tbaa !9
  %321 = fcmp oge float %320, 0.000000e+00
  %322 = fneg float %320
  %323 = select i1 %321, float %320, float %322
  %324 = call <2 x float> @Cf(ptr noundef nonnull %gep)
  %.sroa.020.4.vec.extract = extractelement <2 x float> %324, i64 1
  %325 = fcmp oge float %.sroa.020.4.vec.extract, 0.000000e+00
  %326 = fneg float %.sroa.020.4.vec.extract
  %327 = select i1 %325, float %.sroa.020.4.vec.extract, float %326
  %328 = fadd float %323, %327
  %329 = fcmp oge float %.0555654, %328
  %330 = select i1 %329, float %.0555654, float %328
  %indvars.iv.next695 = add nuw nsw i64 %indvars.iv694, 1
  %331 = load i32, ptr %31, align 4, !tbaa !5
  %332 = sext i32 %331 to i64
  %.not602.not = icmp slt i64 %indvars.iv694, %332
  br i1 %.not602.not, label %319, label %._crit_edge658, !llvm.loop !17

._crit_edge658:                                   ; preds = %319, %.lr.ph666
  %.0555.lcssa = phi float [ 0.000000e+00, %.lr.ph666 ], [ %330, %319 ]
  %333 = load float, ptr %44, align 4, !tbaa !13
  %334 = fcmp olt float %.0555.lcssa, %333
  br i1 %334, label %.loopexit644, label %335

335:                                              ; preds = %._crit_edge658
  %336 = fdiv float 1.000000e+00, %.0555.lcssa
  %337 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %337, ptr %31, align 4, !tbaa !5
  %.not603659 = icmp slt i32 %337, 1
  br i1 %.not603659, label %.loopexit644, label %.lr.ph662

.lr.ph662:                                        ; preds = %335
  %338 = mul nsw i64 %indvars.iv700, %316
  %339 = add nuw i32 %337, 1
  %wide.trip.count = zext i32 %339 to i64
  %invariant.gep718 = getelementptr %struct.complex, ptr %53, i64 %338
  %340 = zext nneg i32 %337 to i64
  %min.iters.check = icmp eq i32 %337, 1
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph662
  %n.vec = and i64 %340, 2147483646
  %ind.end = or i64 %340, 1
  %broadcast.splatinsert = insertelement <2 x float> poison, float %336, i64 0
  %341 = shufflevector <2 x float> %broadcast.splatinsert, <2 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %342 = getelementptr %struct.complex, ptr %invariant.gep718, i64 %offset.idx
  %343 = load <4 x float>, ptr %342, align 4, !tbaa !13
  %interleaved.vec = fmul <4 x float> %341, %343
  store <4 x float> %interleaved.vec, ptr %342, align 4, !tbaa !13
  %index.next = add nuw i64 %index, 2
  %344 = icmp eq i64 %index.next, %n.vec
  br i1 %344, label %middle.block, label %vector.body, !llvm.loop !18

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %340
  br i1 %cmp.n, label %.loopexit644, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph662
  %indvars.iv697.ph = phi i64 [ 1, %.lr.ph662 ], [ %ind.end, %middle.block ]
  %345 = insertelement <2 x float> poison, float %336, i64 0
  %346 = shufflevector <2 x float> %345, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv697 = phi i64 [ %indvars.iv.next698, %scalar.ph ], [ %indvars.iv697.ph, %scalar.ph.preheader ]
  %gep719 = getelementptr %struct.complex, ptr %invariant.gep718, i64 %indvars.iv697
  %347 = load <2 x float>, ptr %gep719, align 4, !tbaa !13
  %348 = fmul <2 x float> %346, %347
  store <2 x float> %348, ptr %gep719, align 4, !tbaa !13
  %indvars.iv.next698 = add nuw nsw i64 %indvars.iv697, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next698, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit644, label %scalar.ph, !llvm.loop !21

.loopexit644:                                     ; preds = %scalar.ph, %middle.block, %335, %._crit_edge658
  %349 = load i32, ptr %30, align 4, !tbaa !5
  %350 = sext i32 %349 to i64
  %.not598.not = icmp slt i64 %indvars.iv700, %350
  br i1 %.not598.not, label %.lr.ph666thread-pre-split, label %.loopexit645, !llvm.loop !22

.loopexit645:                                     ; preds = %.loopexit644, %314, %.loopexit646
  br i1 %.not588, label %.loopexit643, label %351

351:                                              ; preds = %.loopexit645
  call void @cggbak_(ptr noundef %0, ptr noundef nonnull @.str.17, ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %17, ptr noundef %18, ptr noundef nonnull %4, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %34) #7
  %352 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %352, ptr %30, align 4, !tbaa !5
  %.not599678 = icmp slt i32 %352, 1
  br i1 %.not599678, label %.loopexit643, label %.lr.ph681.preheader

.lr.ph681.preheader:                              ; preds = %351
  %353 = sext i32 %54 to i64
  br label %.lr.ph681

.lr.ph681thread-pre-split:                        ; preds = %.loopexit
  %indvars.iv.next712 = add nuw nsw i64 %indvars.iv711, 1
  %.pr715 = load i32, ptr %4, align 4, !tbaa !5
  br label %.lr.ph681

.lr.ph681:                                        ; preds = %.lr.ph681thread-pre-split, %.lr.ph681.preheader
  %354 = phi i32 [ %.pr715, %.lr.ph681thread-pre-split ], [ %352, %.lr.ph681.preheader ]
  %indvars.iv711 = phi i64 [ %indvars.iv.next712, %.lr.ph681thread-pre-split ], [ 1, %.lr.ph681.preheader ]
  store i32 %354, ptr %31, align 4, !tbaa !5
  %.not600667 = icmp slt i32 %354, 1
  br i1 %.not600667, label %._crit_edge672, label %.lr.ph671

.lr.ph671:                                        ; preds = %.lr.ph681
  %355 = mul nsw i64 %indvars.iv711, %353
  %invariant.gep720 = getelementptr %struct.complex, ptr %56, i64 %355
  br label %356

356:                                              ; preds = %.lr.ph671, %356
  %indvars.iv703 = phi i64 [ 1, %.lr.ph671 ], [ %indvars.iv.next704, %356 ]
  %.1556668 = phi float [ 0.000000e+00, %.lr.ph671 ], [ %367, %356 ]
  %gep721 = getelementptr %struct.complex, ptr %invariant.gep720, i64 %indvars.iv703
  %357 = load float, ptr %gep721, align 4, !tbaa !9
  %358 = fcmp oge float %357, 0.000000e+00
  %359 = fneg float %357
  %360 = select i1 %358, float %357, float %359
  %361 = call <2 x float> @Cf(ptr noundef nonnull %gep721)
  %.sroa.0.4.vec.extract = extractelement <2 x float> %361, i64 1
  %362 = fcmp oge float %.sroa.0.4.vec.extract, 0.000000e+00
  %363 = fneg float %.sroa.0.4.vec.extract
  %364 = select i1 %362, float %.sroa.0.4.vec.extract, float %363
  %365 = fadd float %360, %364
  %366 = fcmp oge float %.1556668, %365
  %367 = select i1 %366, float %.1556668, float %365
  %indvars.iv.next704 = add nuw nsw i64 %indvars.iv703, 1
  %368 = load i32, ptr %31, align 4, !tbaa !5
  %369 = sext i32 %368 to i64
  %.not600.not = icmp slt i64 %indvars.iv703, %369
  br i1 %.not600.not, label %356, label %._crit_edge672, !llvm.loop !23

._crit_edge672:                                   ; preds = %356, %.lr.ph681
  %.1556.lcssa = phi float [ 0.000000e+00, %.lr.ph681 ], [ %367, %356 ]
  %370 = load float, ptr %44, align 4, !tbaa !13
  %371 = fcmp olt float %.1556.lcssa, %370
  br i1 %371, label %.loopexit, label %372

372:                                              ; preds = %._crit_edge672
  %373 = fdiv float 1.000000e+00, %.1556.lcssa
  %374 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %374, ptr %31, align 4, !tbaa !5
  %.not601674 = icmp slt i32 %374, 1
  br i1 %.not601674, label %.loopexit, label %.lr.ph677

.lr.ph677:                                        ; preds = %372
  %375 = mul nsw i64 %indvars.iv711, %353
  %376 = add nuw i32 %374, 1
  %wide.trip.count709 = zext i32 %376 to i64
  %invariant.gep722 = getelementptr %struct.complex, ptr %56, i64 %375
  %377 = zext nneg i32 %374 to i64
  %min.iters.check734 = icmp eq i32 %374, 1
  br i1 %min.iters.check734, label %scalar.ph733.preheader, label %vector.ph735

vector.ph735:                                     ; preds = %.lr.ph677
  %n.vec737 = and i64 %377, 2147483646
  %ind.end738 = or i64 %377, 1
  %broadcast.splatinsert746 = insertelement <2 x float> poison, float %373, i64 0
  %378 = shufflevector <2 x float> %broadcast.splatinsert746, <2 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body740

vector.body740:                                   ; preds = %vector.body740, %vector.ph735
  %index741 = phi i64 [ 0, %vector.ph735 ], [ %index.next749, %vector.body740 ]
  %offset.idx742 = or disjoint i64 %index741, 1
  %379 = getelementptr %struct.complex, ptr %invariant.gep722, i64 %offset.idx742
  %380 = load <4 x float>, ptr %379, align 4, !tbaa !13
  %interleaved.vec748 = fmul <4 x float> %378, %380
  store <4 x float> %interleaved.vec748, ptr %379, align 4, !tbaa !13
  %index.next749 = add nuw i64 %index741, 2
  %381 = icmp eq i64 %index.next749, %n.vec737
  br i1 %381, label %middle.block732, label %vector.body740, !llvm.loop !24

middle.block732:                                  ; preds = %vector.body740
  %cmp.n750 = icmp eq i64 %n.vec737, %377
  br i1 %cmp.n750, label %.loopexit, label %scalar.ph733.preheader

scalar.ph733.preheader:                           ; preds = %middle.block732, %.lr.ph677
  %indvars.iv706.ph = phi i64 [ 1, %.lr.ph677 ], [ %ind.end738, %middle.block732 ]
  %382 = insertelement <2 x float> poison, float %373, i64 0
  %383 = shufflevector <2 x float> %382, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph733

scalar.ph733:                                     ; preds = %scalar.ph733.preheader, %scalar.ph733
  %indvars.iv706 = phi i64 [ %indvars.iv.next707, %scalar.ph733 ], [ %indvars.iv706.ph, %scalar.ph733.preheader ]
  %gep723 = getelementptr %struct.complex, ptr %invariant.gep722, i64 %indvars.iv706
  %384 = load <2 x float>, ptr %gep723, align 4, !tbaa !13
  %385 = fmul <2 x float> %383, %384
  store <2 x float> %385, ptr %gep723, align 4, !tbaa !13
  %indvars.iv.next707 = add nuw nsw i64 %indvars.iv706, 1
  %exitcond710.not = icmp eq i64 %indvars.iv.next707, %wide.trip.count709
  br i1 %exitcond710.not, label %.loopexit, label %scalar.ph733, !llvm.loop !25

.loopexit:                                        ; preds = %scalar.ph733, %middle.block732, %372, %._crit_edge672
  %386 = load i32, ptr %30, align 4, !tbaa !5
  %387 = sext i32 %386 to i64
  %.not599.not = icmp slt i64 %indvars.iv711, %387
  br i1 %.not599.not, label %.lr.ph681thread-pre-split, label %.loopexit643, !llvm.loop !26

.loopexit643.sink.split:                          ; preds = %252, %270, %.split.us, %257, %259
  %.sink725 = phi i32 [ %260, %259 ], [ %258, %257 ], [ %313, %.split.us ], [ %272, %270 ], [ %251, %252 ]
  store i32 %.sink725, ptr %28, align 4, !tbaa !5
  br label %.loopexit643

.loopexit643:                                     ; preds = %.loopexit, %.loopexit643.sink.split, %351, %.loopexit645
  br i1 %.not584621, label %389, label %388

388:                                              ; preds = %.loopexit643
  call void @clascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %42, ptr noundef nonnull %32, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %9, ptr noundef nonnull %4, ptr noundef nonnull %34) #7
  br label %389

389:                                              ; preds = %388, %.loopexit643
  br i1 %.not586626, label %391, label %390

390:                                              ; preds = %389
  call void @clascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %33, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %10, ptr noundef nonnull %4, ptr noundef nonnull %34) #7
  br label %391

391:                                              ; preds = %390, %389
  store float %139, ptr %23, align 4, !tbaa !9
  store float 0.000000e+00, ptr %140, align 4, !tbaa !12
  br label %392

392:                                              ; preds = %147, %146, %391, %.thread614
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

declare void @chgeqz_(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

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

declare void @ctgsna_(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

declare void @cggbak_(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: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) local_unnamed_addr #4

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="64" "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 = { mustprogress nofree nounwind willreturn memory(write) "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 #4 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #7 = { nounwind }

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

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


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