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

170:                                              ; preds = %29
  store i64 1, ptr %102, align 8, !tbaa !9
  store i64 0, ptr %90, align 8, !tbaa !9
  br label %178

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

175:                                              ; preds = %171
  store i64 2, ptr %102, align 8, !tbaa !9
  store i64 1, ptr %90, align 8, !tbaa !9
  br label %177

176:                                              ; preds = %171
  store i64 -1, ptr %102, align 8, !tbaa !9
  store i64 0, ptr %90, align 8, !tbaa !9
  br label %177

177:                                              ; preds = %176, %175
  br label %178

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

182:                                              ; preds = %178
  store i64 1, ptr %103, align 8, !tbaa !9
  store i64 0, ptr %91, align 8, !tbaa !9
  br label %190

183:                                              ; preds = %178
  %184 = load ptr, ptr %33, align 8, !tbaa !5
  %185 = call i64 @lsame_(ptr noundef %184, ptr noundef @.str.1)
  %186 = icmp ne i64 %185, 0
  br i1 %186, label %187, label %188

187:                                              ; preds = %183
  store i64 2, ptr %103, align 8, !tbaa !9
  store i64 1, ptr %91, align 8, !tbaa !9
  br label %189

188:                                              ; preds = %183
  store i64 -1, ptr %103, align 8, !tbaa !9
  store i64 0, ptr %91, align 8, !tbaa !9
  br label %189

189:                                              ; preds = %188, %187
  br label %190

190:                                              ; preds = %189, %182
  %191 = load i64, ptr %90, align 8, !tbaa !9
  %192 = icmp ne i64 %191, 0
  br i1 %192, label %196, label %193

193:                                              ; preds = %190
  %194 = load i64, ptr %91, align 8, !tbaa !9
  %195 = icmp ne i64 %194, 0
  br label %196

196:                                              ; preds = %193, %190
  %197 = phi i1 [ true, %190 ], [ %195, %193 ]
  %198 = zext i1 %197 to i32
  %199 = sext i32 %198 to i64
  store i64 %199, ptr %84, align 8, !tbaa !9
  %200 = load ptr, ptr %31, align 8, !tbaa !5
  %201 = call i64 @lsame_(ptr noundef %200, ptr noundef @.str)
  %202 = icmp ne i64 %201, 0
  br i1 %202, label %207, label %203

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

207:                                              ; preds = %203, %196
  %208 = phi i1 [ true, %196 ], [ %206, %203 ]
  %209 = zext i1 %208 to i32
  %210 = sext i32 %209 to i64
  store i64 %210, ptr %95, align 8, !tbaa !9
  %211 = load ptr, ptr %34, align 8, !tbaa !5
  %212 = call i64 @lsame_(ptr noundef %211, ptr noundef @.str)
  store i64 %212, ptr %110, align 8, !tbaa !9
  %213 = load ptr, ptr %34, align 8, !tbaa !5
  %214 = call i64 @lsame_(ptr noundef %213, ptr noundef @.str.3)
  store i64 %214, ptr %106, align 8, !tbaa !9
  %215 = load ptr, ptr %34, align 8, !tbaa !5
  %216 = call i64 @lsame_(ptr noundef %215, ptr noundef @.str.1)
  store i64 %216, ptr %113, align 8, !tbaa !9
  %217 = load ptr, ptr %34, align 8, !tbaa !5
  %218 = call i64 @lsame_(ptr noundef %217, ptr noundef @.str.4)
  store i64 %218, ptr %104, align 8, !tbaa !9
  %219 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 0, ptr %219, align 8, !tbaa !9
  %220 = load ptr, ptr %55, align 8, !tbaa !5
  %221 = load i64, ptr %220, align 8, !tbaa !9
  %222 = icmp eq i64 %221, -1
  %223 = zext i1 %222 to i32
  %224 = sext i32 %223 to i64
  store i64 %224, ptr %112, align 8, !tbaa !9
  %225 = load i64, ptr %95, align 8, !tbaa !9
  %226 = icmp ne i64 %225, 0
  br i1 %226, label %237, label %227

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

231:                                              ; preds = %227
  %232 = load ptr, ptr %31, align 8, !tbaa !5
  %233 = call i64 @lsame_(ptr noundef %232, ptr noundef @.str.4)
  %234 = icmp ne i64 %233, 0
  br i1 %234, label %237, label %235

235:                                              ; preds = %231
  %236 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -1, ptr %236, align 8, !tbaa !9
  br label %335

237:                                              ; preds = %231, %227, %207
  %238 = load i64, ptr %102, align 8, !tbaa !9
  %239 = icmp sle i64 %238, 0
  br i1 %239, label %240, label %242

240:                                              ; preds = %237
  %241 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -2, ptr %241, align 8, !tbaa !9
  br label %334

242:                                              ; preds = %237
  %243 = load i64, ptr %103, align 8, !tbaa !9
  %244 = icmp sle i64 %243, 0
  br i1 %244, label %245, label %247

245:                                              ; preds = %242
  %246 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -3, ptr %246, align 8, !tbaa !9
  br label %333

247:                                              ; preds = %242
  %248 = load i64, ptr %110, align 8, !tbaa !9
  %249 = icmp ne i64 %248, 0
  br i1 %249, label %261, label %250

250:                                              ; preds = %247
  %251 = load i64, ptr %106, align 8, !tbaa !9
  %252 = icmp ne i64 %251, 0
  br i1 %252, label %261, label %253

253:                                              ; preds = %250
  %254 = load i64, ptr %104, align 8, !tbaa !9
  %255 = icmp ne i64 %254, 0
  br i1 %255, label %261, label %256

256:                                              ; preds = %253
  %257 = load i64, ptr %113, align 8, !tbaa !9
  %258 = icmp ne i64 %257, 0
  br i1 %258, label %261, label %259

259:                                              ; preds = %256
  %260 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -4, ptr %260, align 8, !tbaa !9
  br label %332

261:                                              ; preds = %256, %253, %250, %247
  %262 = load ptr, ptr %35, align 8, !tbaa !5
  %263 = load i64, ptr %262, align 8, !tbaa !9
  %264 = icmp slt i64 %263, 0
  br i1 %264, label %265, label %267

265:                                              ; preds = %261
  %266 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -5, ptr %266, align 8, !tbaa !9
  br label %331

267:                                              ; preds = %261
  %268 = load ptr, ptr %37, align 8, !tbaa !5
  %269 = load i64, ptr %268, align 8, !tbaa !9
  %270 = load ptr, ptr %35, align 8, !tbaa !5
  %271 = load i64, ptr %270, align 8, !tbaa !9
  %272 = icmp sge i64 1, %271
  br i1 %272, label %273, label %274

273:                                              ; preds = %267
  br label %277

274:                                              ; preds = %267
  %275 = load ptr, ptr %35, align 8, !tbaa !5
  %276 = load i64, ptr %275, align 8, !tbaa !9
  br label %277

277:                                              ; preds = %274, %273
  %278 = phi i64 [ 1, %273 ], [ %276, %274 ]
  %279 = icmp slt i64 %269, %278
  br i1 %279, label %280, label %282

280:                                              ; preds = %277
  %281 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -7, ptr %281, align 8, !tbaa !9
  br label %330

282:                                              ; preds = %277
  %283 = load ptr, ptr %39, align 8, !tbaa !5
  %284 = load i64, ptr %283, align 8, !tbaa !9
  %285 = load ptr, ptr %35, align 8, !tbaa !5
  %286 = load i64, ptr %285, align 8, !tbaa !9
  %287 = icmp sge i64 1, %286
  br i1 %287, label %288, label %289

288:                                              ; preds = %282
  br label %292

289:                                              ; preds = %282
  %290 = load ptr, ptr %35, align 8, !tbaa !5
  %291 = load i64, ptr %290, align 8, !tbaa !9
  br label %292

292:                                              ; preds = %289, %288
  %293 = phi i64 [ 1, %288 ], [ %291, %289 ]
  %294 = icmp slt i64 %284, %293
  br i1 %294, label %295, label %297

295:                                              ; preds = %292
  %296 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -9, ptr %296, align 8, !tbaa !9
  br label %329

297:                                              ; preds = %292
  %298 = load ptr, ptr %43, align 8, !tbaa !5
  %299 = load i64, ptr %298, align 8, !tbaa !9
  %300 = icmp slt i64 %299, 1
  br i1 %300, label %310, label %301

301:                                              ; preds = %297
  %302 = load i64, ptr %90, align 8, !tbaa !9
  %303 = icmp ne i64 %302, 0
  br i1 %303, label %304, label %312

304:                                              ; preds = %301
  %305 = load ptr, ptr %43, align 8, !tbaa !5
  %306 = load i64, ptr %305, align 8, !tbaa !9
  %307 = load ptr, ptr %35, align 8, !tbaa !5
  %308 = load i64, ptr %307, align 8, !tbaa !9
  %309 = icmp slt i64 %306, %308
  br i1 %309, label %310, label %312

310:                                              ; preds = %304, %297
  %311 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -13, ptr %311, align 8, !tbaa !9
  br label %328

312:                                              ; preds = %304, %301
  %313 = load ptr, ptr %45, align 8, !tbaa !5
  %314 = load i64, ptr %313, align 8, !tbaa !9
  %315 = icmp slt i64 %314, 1
  br i1 %315, label %325, label %316

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

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

325:                                              ; preds = %319, %312
  %326 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -15, ptr %326, align 8, !tbaa !9
  br label %327

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

328:                                              ; preds = %327, %310
  br label %329

329:                                              ; preds = %328, %295
  br label %330

330:                                              ; preds = %329, %280
  br label %331

331:                                              ; preds = %330, %265
  br label %332

332:                                              ; preds = %331, %259
  br label %333

333:                                              ; preds = %332, %245
  br label %334

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

335:                                              ; preds = %334, %235
  %336 = load ptr, ptr %59, align 8, !tbaa !5
  %337 = load i64, ptr %336, align 8, !tbaa !9
  %338 = icmp eq i64 %337, 0
  br i1 %338, label %339, label %451

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

343:                                              ; preds = %339
  store i64 1, ptr %108, align 8, !tbaa !9
  store i64 1, ptr %109, align 8, !tbaa !9
  br label %432

344:                                              ; preds = %339
  %345 = load ptr, ptr %35, align 8, !tbaa !5
  %346 = load i64, ptr %345, align 8, !tbaa !9
  %347 = shl i64 %346, 1
  store i64 %347, ptr %108, align 8, !tbaa !9
  %348 = load i64, ptr %106, align 8, !tbaa !9
  %349 = icmp ne i64 %348, 0
  br i1 %349, label %350, label %354

350:                                              ; preds = %344
  %351 = load ptr, ptr %35, align 8, !tbaa !5
  %352 = load i64, ptr %351, align 8, !tbaa !9
  %353 = shl i64 %352, 2
  store i64 %353, ptr %108, align 8, !tbaa !9
  br label %369

354:                                              ; preds = %344
  %355 = load i64, ptr %113, align 8, !tbaa !9
  %356 = icmp ne i64 %355, 0
  br i1 %356, label %360, label %357

357:                                              ; preds = %354
  %358 = load i64, ptr %104, align 8, !tbaa !9
  %359 = icmp ne i64 %358, 0
  br i1 %359, label %360, label %368

360:                                              ; preds = %357, %354
  %361 = load ptr, ptr %35, align 8, !tbaa !5
  %362 = load i64, ptr %361, align 8, !tbaa !9
  %363 = shl i64 %362, 1
  %364 = load ptr, ptr %35, align 8, !tbaa !5
  %365 = load i64, ptr %364, align 8, !tbaa !9
  %366 = add nsw i64 %365, 1
  %367 = mul nsw i64 %363, %366
  store i64 %367, ptr %108, align 8, !tbaa !9
  br label %368

368:                                              ; preds = %360, %357
  br label %369

369:                                              ; preds = %368, %350
  %370 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %370, ptr %109, align 8, !tbaa !9
  %371 = load i64, ptr %109, align 8, !tbaa !9
  store i64 %371, ptr %68, align 8, !tbaa !9
  %372 = load ptr, ptr %35, align 8, !tbaa !5
  %373 = load i64, ptr %372, align 8, !tbaa !9
  %374 = load ptr, ptr %35, align 8, !tbaa !5
  %375 = load i64, ptr %374, align 8, !tbaa !9
  %376 = load ptr, ptr %35, align 8, !tbaa !5
  %377 = load ptr, ptr %35, align 8, !tbaa !5
  %378 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %376, ptr noundef @c__1, ptr noundef %377, ptr noundef @c__0)
  %379 = mul nsw i64 %375, %378
  %380 = add nsw i64 %373, %379
  store i64 %380, ptr %69, align 8, !tbaa !9
  %381 = load i64, ptr %68, align 8, !tbaa !9
  %382 = load i64, ptr %69, align 8, !tbaa !9
  %383 = icmp sge i64 %381, %382
  br i1 %383, label %384, label %386

384:                                              ; preds = %369
  %385 = load i64, ptr %68, align 8, !tbaa !9
  br label %388

386:                                              ; preds = %369
  %387 = load i64, ptr %69, align 8, !tbaa !9
  br label %388

388:                                              ; preds = %386, %384
  %389 = phi i64 [ %385, %384 ], [ %387, %386 ]
  store i64 %389, ptr %109, align 8, !tbaa !9
  %390 = load i64, ptr %109, align 8, !tbaa !9
  store i64 %390, ptr %68, align 8, !tbaa !9
  %391 = load ptr, ptr %35, align 8, !tbaa !5
  %392 = load i64, ptr %391, align 8, !tbaa !9
  %393 = load ptr, ptr %35, align 8, !tbaa !5
  %394 = load i64, ptr %393, align 8, !tbaa !9
  %395 = load ptr, ptr %35, align 8, !tbaa !5
  %396 = load ptr, ptr %35, align 8, !tbaa !5
  %397 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.8, ptr noundef @.str.7, ptr noundef %395, ptr noundef @c__1, ptr noundef %396, ptr noundef @c__0)
  %398 = mul nsw i64 %394, %397
  %399 = add nsw i64 %392, %398
  store i64 %399, ptr %69, align 8, !tbaa !9
  %400 = load i64, ptr %68, align 8, !tbaa !9
  %401 = load i64, ptr %69, align 8, !tbaa !9
  %402 = icmp sge i64 %400, %401
  br i1 %402, label %403, label %405

403:                                              ; preds = %388
  %404 = load i64, ptr %68, align 8, !tbaa !9
  br label %407

405:                                              ; preds = %388
  %406 = load i64, ptr %69, align 8, !tbaa !9
  br label %407

407:                                              ; preds = %405, %403
  %408 = phi i64 [ %404, %403 ], [ %406, %405 ]
  store i64 %408, ptr %109, align 8, !tbaa !9
  %409 = load i64, ptr %90, align 8, !tbaa !9
  %410 = icmp ne i64 %409, 0
  br i1 %410, label %411, label %431

411:                                              ; preds = %407
  %412 = load i64, ptr %109, align 8, !tbaa !9
  store i64 %412, ptr %68, align 8, !tbaa !9
  %413 = load ptr, ptr %35, align 8, !tbaa !5
  %414 = load i64, ptr %413, align 8, !tbaa !9
  %415 = load ptr, ptr %35, align 8, !tbaa !5
  %416 = load i64, ptr %415, align 8, !tbaa !9
  %417 = load ptr, ptr %35, align 8, !tbaa !5
  %418 = load ptr, ptr %35, align 8, !tbaa !5
  %419 = call i64 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.9, ptr noundef @.str.7, ptr noundef %417, ptr noundef @c__1, ptr noundef %418, ptr noundef @c__0)
  %420 = mul nsw i64 %416, %419
  %421 = add nsw i64 %414, %420
  store i64 %421, ptr %69, align 8, !tbaa !9
  %422 = load i64, ptr %68, align 8, !tbaa !9
  %423 = load i64, ptr %69, align 8, !tbaa !9
  %424 = icmp sge i64 %422, %423
  br i1 %424, label %425, label %427

425:                                              ; preds = %411
  %426 = load i64, ptr %68, align 8, !tbaa !9
  br label %429

427:                                              ; preds = %411
  %428 = load i64, ptr %69, align 8, !tbaa !9
  br label %429

429:                                              ; preds = %427, %425
  %430 = phi i64 [ %426, %425 ], [ %428, %427 ]
  store i64 %430, ptr %109, align 8, !tbaa !9
  br label %431

431:                                              ; preds = %429, %407
  br label %432

432:                                              ; preds = %431, %343
  %433 = load i64, ptr %109, align 8, !tbaa !9
  %434 = sitofp i64 %433 to float
  %435 = load ptr, ptr %54, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.complex, ptr %435, i64 1
  %437 = getelementptr inbounds %struct.complex, ptr %436, i32 0, i32 0
  store float %434, ptr %437, align 4, !tbaa !11
  %438 = load ptr, ptr %54, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.complex, ptr %438, i64 1
  %440 = getelementptr inbounds %struct.complex, ptr %439, i32 0, i32 1
  store float 0.000000e+00, ptr %440, align 4, !tbaa !14
  %441 = load ptr, ptr %55, align 8, !tbaa !5
  %442 = load i64, ptr %441, align 8, !tbaa !9
  %443 = load i64, ptr %108, align 8, !tbaa !9
  %444 = icmp slt i64 %442, %443
  br i1 %444, label %445, label %450

445:                                              ; preds = %432
  %446 = load i64, ptr %112, align 8, !tbaa !9
  %447 = icmp ne i64 %446, 0
  br i1 %447, label %450, label %448

448:                                              ; preds = %445
  %449 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 -25, ptr %449, align 8, !tbaa !9
  br label %450

450:                                              ; preds = %448, %445, %432
  br label %451

451:                                              ; preds = %450, %335
  %452 = load ptr, ptr %59, align 8, !tbaa !5
  %453 = load i64, ptr %452, align 8, !tbaa !9
  %454 = icmp ne i64 %453, 0
  br i1 %454, label %455, label %460

455:                                              ; preds = %451
  %456 = load ptr, ptr %59, align 8, !tbaa !5
  %457 = load i64, ptr %456, align 8, !tbaa !9
  %458 = sub nsw i64 0, %457
  store i64 %458, ptr %68, align 8, !tbaa !9
  %459 = call i32 @xerbla_(ptr noundef @.str.10, ptr noundef %68)
  store i32 0, ptr %30, align 4
  store i32 1, ptr %114, align 4
  br label %1429

460:                                              ; preds = %451
  %461 = load i64, ptr %112, align 8, !tbaa !9
  %462 = icmp ne i64 %461, 0
  br i1 %462, label %463, label %464

463:                                              ; preds = %460
  store i32 0, ptr %30, align 4
  store i32 1, ptr %114, align 4
  br label %1429

464:                                              ; preds = %460
  br label %465

465:                                              ; preds = %464
  %466 = load ptr, ptr %35, align 8, !tbaa !5
  %467 = load i64, ptr %466, align 8, !tbaa !9
  %468 = icmp eq i64 %467, 0
  br i1 %468, label %469, label %470

469:                                              ; preds = %465
  store i32 0, ptr %30, align 4
  store i32 1, ptr %114, align 4
  br label %1429

470:                                              ; preds = %465
  %471 = call double @slamch_(ptr noundef @.str.2)
  %472 = fptrunc double %471 to float
  store float %472, ptr %83, align 4, !tbaa !15
  %473 = call double @slamch_(ptr noundef @.str.5)
  %474 = fptrunc double %473 to float
  store float %474, ptr %111, align 4, !tbaa !15
  %475 = load float, ptr %111, align 4, !tbaa !15
  %476 = fdiv float 1.000000e+00, %475
  store float %476, ptr %101, align 4, !tbaa !15
  %477 = call i32 @slabad_(ptr noundef %111, ptr noundef %101)
  %478 = load float, ptr %111, align 4, !tbaa !15
  %479 = fpext float %478 to double
  %480 = call double @sqrt(double noundef %479) #4
  %481 = load float, ptr %83, align 4, !tbaa !15
  %482 = fpext float %481 to double
  %483 = fdiv double %480, %482
  %484 = fptrunc double %483 to float
  store float %484, ptr %111, align 4, !tbaa !15
  %485 = load float, ptr %111, align 4, !tbaa !15
  %486 = fdiv float 1.000000e+00, %485
  store float %486, ptr %101, align 4, !tbaa !15
  %487 = load ptr, ptr %35, align 8, !tbaa !5
  %488 = load ptr, ptr %35, align 8, !tbaa !5
  %489 = load ptr, ptr %36, align 8, !tbaa !5
  %490 = load i64, ptr %61, align 8, !tbaa !9
  %491 = getelementptr inbounds %struct.complex, ptr %489, i64 %490
  %492 = load ptr, ptr %37, align 8, !tbaa !5
  %493 = load ptr, ptr %56, align 8, !tbaa !5
  %494 = getelementptr inbounds float, ptr %493, i64 1
  %495 = call double @clange_(ptr noundef @.str.11, ptr noundef %487, ptr noundef %488, ptr noundef %491, ptr noundef %492, ptr noundef %494)
  %496 = fptrunc double %495 to float
  store float %496, ptr %85, align 4, !tbaa !15
  store i64 0, ptr %97, align 8, !tbaa !9
  %497 = load float, ptr %85, align 4, !tbaa !15
  %498 = fcmp ogt float %497, 0.000000e+00
  br i1 %498, label %499, label %505

499:                                              ; preds = %470
  %500 = load float, ptr %85, align 4, !tbaa !15
  %501 = load float, ptr %111, align 4, !tbaa !15
  %502 = fcmp olt float %500, %501
  br i1 %502, label %503, label %505

503:                                              ; preds = %499
  %504 = load float, ptr %111, align 4, !tbaa !15
  store float %504, ptr %105, align 4, !tbaa !15
  store i64 1, ptr %97, align 8, !tbaa !9
  br label %512

505:                                              ; preds = %499, %470
  %506 = load float, ptr %85, align 4, !tbaa !15
  %507 = load float, ptr %101, align 4, !tbaa !15
  %508 = fcmp ogt float %506, %507
  br i1 %508, label %509, label %511

509:                                              ; preds = %505
  %510 = load float, ptr %101, align 4, !tbaa !15
  store float %510, ptr %105, align 4, !tbaa !15
  store i64 1, ptr %97, align 8, !tbaa !9
  br label %511

511:                                              ; preds = %509, %505
  br label %512

512:                                              ; preds = %511, %503
  %513 = load i64, ptr %97, align 8, !tbaa !9
  %514 = icmp ne i64 %513, 0
  br i1 %514, label %515, label %523

515:                                              ; preds = %512
  %516 = load ptr, ptr %35, align 8, !tbaa !5
  %517 = load ptr, ptr %35, align 8, !tbaa !5
  %518 = load ptr, ptr %36, align 8, !tbaa !5
  %519 = load i64, ptr %61, align 8, !tbaa !9
  %520 = getelementptr inbounds %struct.complex, ptr %518, i64 %519
  %521 = load ptr, ptr %37, align 8, !tbaa !5
  %522 = call i32 @clascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %85, ptr noundef %105, ptr noundef %516, ptr noundef %517, ptr noundef %520, ptr noundef %521, ptr noundef %87)
  br label %523

523:                                              ; preds = %515, %512
  %524 = load ptr, ptr %35, align 8, !tbaa !5
  %525 = load ptr, ptr %35, align 8, !tbaa !5
  %526 = load ptr, ptr %38, align 8, !tbaa !5
  %527 = load i64, ptr %63, align 8, !tbaa !9
  %528 = getelementptr inbounds %struct.complex, ptr %526, i64 %527
  %529 = load ptr, ptr %39, align 8, !tbaa !5
  %530 = load ptr, ptr %56, align 8, !tbaa !5
  %531 = getelementptr inbounds float, ptr %530, i64 1
  %532 = call double @clange_(ptr noundef @.str.11, ptr noundef %524, ptr noundef %525, ptr noundef %528, ptr noundef %529, ptr noundef %531)
  %533 = fptrunc double %532 to float
  store float %533, ptr %86, align 4, !tbaa !15
  store i64 0, ptr %98, align 8, !tbaa !9
  %534 = load float, ptr %86, align 4, !tbaa !15
  %535 = fcmp ogt float %534, 0.000000e+00
  br i1 %535, label %536, label %542

536:                                              ; preds = %523
  %537 = load float, ptr %86, align 4, !tbaa !15
  %538 = load float, ptr %111, align 4, !tbaa !15
  %539 = fcmp olt float %537, %538
  br i1 %539, label %540, label %542

540:                                              ; preds = %536
  %541 = load float, ptr %111, align 4, !tbaa !15
  store float %541, ptr %107, align 4, !tbaa !15
  store i64 1, ptr %98, align 8, !tbaa !9
  br label %549

542:                                              ; preds = %536, %523
  %543 = load float, ptr %86, align 4, !tbaa !15
  %544 = load float, ptr %101, align 4, !tbaa !15
  %545 = fcmp ogt float %543, %544
  br i1 %545, label %546, label %548

546:                                              ; preds = %542
  %547 = load float, ptr %101, align 4, !tbaa !15
  store float %547, ptr %107, align 4, !tbaa !15
  store i64 1, ptr %98, align 8, !tbaa !9
  br label %548

548:                                              ; preds = %546, %542
  br label %549

549:                                              ; preds = %548, %540
  %550 = load i64, ptr %98, align 8, !tbaa !9
  %551 = icmp ne i64 %550, 0
  br i1 %551, label %552, label %560

552:                                              ; preds = %549
  %553 = load ptr, ptr %35, align 8, !tbaa !5
  %554 = load ptr, ptr %35, align 8, !tbaa !5
  %555 = load ptr, ptr %38, align 8, !tbaa !5
  %556 = load i64, ptr %63, align 8, !tbaa !9
  %557 = getelementptr inbounds %struct.complex, ptr %555, i64 %556
  %558 = load ptr, ptr %39, align 8, !tbaa !5
  %559 = call i32 @clascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %86, ptr noundef %107, ptr noundef %553, ptr noundef %554, ptr noundef %557, ptr noundef %558, ptr noundef %87)
  br label %560

560:                                              ; preds = %552, %549
  %561 = load ptr, ptr %31, align 8, !tbaa !5
  %562 = load ptr, ptr %35, align 8, !tbaa !5
  %563 = load ptr, ptr %36, align 8, !tbaa !5
  %564 = load i64, ptr %61, align 8, !tbaa !9
  %565 = getelementptr inbounds %struct.complex, ptr %563, i64 %564
  %566 = load ptr, ptr %37, align 8, !tbaa !5
  %567 = load ptr, ptr %38, align 8, !tbaa !5
  %568 = load i64, ptr %63, align 8, !tbaa !9
  %569 = getelementptr inbounds %struct.complex, ptr %567, i64 %568
  %570 = load ptr, ptr %39, align 8, !tbaa !5
  %571 = load ptr, ptr %46, align 8, !tbaa !5
  %572 = load ptr, ptr %47, align 8, !tbaa !5
  %573 = load ptr, ptr %48, align 8, !tbaa !5
  %574 = getelementptr inbounds float, ptr %573, i64 1
  %575 = load ptr, ptr %49, align 8, !tbaa !5
  %576 = getelementptr inbounds float, ptr %575, i64 1
  %577 = load ptr, ptr %56, align 8, !tbaa !5
  %578 = getelementptr inbounds float, ptr %577, i64 1
  %579 = call i32 @cggbal_(ptr noundef %561, ptr noundef %562, ptr noundef %565, ptr noundef %566, ptr noundef %569, ptr noundef %570, ptr noundef %571, ptr noundef %572, ptr noundef %574, ptr noundef %576, ptr noundef %578, ptr noundef %87)
  %580 = load ptr, ptr %35, align 8, !tbaa !5
  %581 = load ptr, ptr %35, align 8, !tbaa !5
  %582 = load ptr, ptr %36, align 8, !tbaa !5
  %583 = load i64, ptr %61, align 8, !tbaa !9
  %584 = getelementptr inbounds %struct.complex, ptr %582, i64 %583
  %585 = load ptr, ptr %37, align 8, !tbaa !5
  %586 = load ptr, ptr %56, align 8, !tbaa !5
  %587 = getelementptr inbounds float, ptr %586, i64 1
  %588 = call double @clange_(ptr noundef @.str.13, ptr noundef %580, ptr noundef %581, ptr noundef %584, ptr noundef %585, ptr noundef %587)
  %589 = fptrunc double %588 to float
  %590 = load ptr, ptr %50, align 8, !tbaa !5
  store float %589, ptr %590, align 4, !tbaa !15
  %591 = load i64, ptr %97, align 8, !tbaa !9
  %592 = icmp ne i64 %591, 0
  br i1 %592, label %593, label %605

593:                                              ; preds = %560
  %594 = load ptr, ptr %50, align 8, !tbaa !5
  %595 = load float, ptr %594, align 4, !tbaa !15
  %596 = load ptr, ptr %56, align 8, !tbaa !5
  %597 = getelementptr inbounds float, ptr %596, i64 1
  store float %595, ptr %597, align 4, !tbaa !15
  %598 = load ptr, ptr %56, align 8, !tbaa !5
  %599 = getelementptr inbounds float, ptr %598, i64 1
  %600 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %105, ptr noundef %85, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %599, ptr noundef @c__1, ptr noundef %87)
  %601 = load ptr, ptr %56, align 8, !tbaa !5
  %602 = getelementptr inbounds float, ptr %601, i64 1
  %603 = load float, ptr %602, align 4, !tbaa !15
  %604 = load ptr, ptr %50, align 8, !tbaa !5
  store float %603, ptr %604, align 4, !tbaa !15
  br label %605

605:                                              ; preds = %593, %560
  %606 = load ptr, ptr %35, align 8, !tbaa !5
  %607 = load ptr, ptr %35, align 8, !tbaa !5
  %608 = load ptr, ptr %38, align 8, !tbaa !5
  %609 = load i64, ptr %63, align 8, !tbaa !9
  %610 = getelementptr inbounds %struct.complex, ptr %608, i64 %609
  %611 = load ptr, ptr %39, align 8, !tbaa !5
  %612 = load ptr, ptr %56, align 8, !tbaa !5
  %613 = getelementptr inbounds float, ptr %612, i64 1
  %614 = call double @clange_(ptr noundef @.str.13, ptr noundef %606, ptr noundef %607, ptr noundef %610, ptr noundef %611, ptr noundef %613)
  %615 = fptrunc double %614 to float
  %616 = load ptr, ptr %51, align 8, !tbaa !5
  store float %615, ptr %616, align 4, !tbaa !15
  %617 = load i64, ptr %98, align 8, !tbaa !9
  %618 = icmp ne i64 %617, 0
  br i1 %618, label %619, label %631

619:                                              ; preds = %605
  %620 = load ptr, ptr %51, align 8, !tbaa !5
  %621 = load float, ptr %620, align 4, !tbaa !15
  %622 = load ptr, ptr %56, align 8, !tbaa !5
  %623 = getelementptr inbounds float, ptr %622, i64 1
  store float %621, ptr %623, align 4, !tbaa !15
  %624 = load ptr, ptr %56, align 8, !tbaa !5
  %625 = getelementptr inbounds float, ptr %624, i64 1
  %626 = call i32 @slascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %107, ptr noundef %86, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %625, ptr noundef @c__1, ptr noundef %87)
  %627 = load ptr, ptr %56, align 8, !tbaa !5
  %628 = getelementptr inbounds float, ptr %627, i64 1
  %629 = load float, ptr %628, align 4, !tbaa !15
  %630 = load ptr, ptr %51, align 8, !tbaa !5
  store float %629, ptr %630, align 4, !tbaa !15
  br label %631

631:                                              ; preds = %619, %605
  %632 = load ptr, ptr %47, align 8, !tbaa !5
  %633 = load i64, ptr %632, align 8, !tbaa !9
  %634 = add nsw i64 %633, 1
  %635 = load ptr, ptr %46, align 8, !tbaa !5
  %636 = load i64, ptr %635, align 8, !tbaa !9
  %637 = sub nsw i64 %634, %636
  store i64 %637, ptr %96, align 8, !tbaa !9
  %638 = load i64, ptr %84, align 8, !tbaa !9
  %639 = icmp ne i64 %638, 0
  br i1 %639, label %643, label %640

640:                                              ; preds = %631
  %641 = load i64, ptr %110, align 8, !tbaa !9
  %642 = icmp ne i64 %641, 0
  br i1 %642, label %650, label %643

643:                                              ; preds = %640, %631
  %644 = load ptr, ptr %35, align 8, !tbaa !5
  %645 = load i64, ptr %644, align 8, !tbaa !9
  %646 = add nsw i64 %645, 1
  %647 = load ptr, ptr %46, align 8, !tbaa !5
  %648 = load i64, ptr %647, align 8, !tbaa !9
  %649 = sub nsw i64 %646, %648
  store i64 %649, ptr %94, align 8, !tbaa !9
  br label %652

650:                                              ; preds = %640
  %651 = load i64, ptr %96, align 8, !tbaa !9
  store i64 %651, ptr %94, align 8, !tbaa !9
  br label %652

652:                                              ; preds = %650, %643
  store i64 1, ptr %88, align 8, !tbaa !9
  %653 = load i64, ptr %88, align 8, !tbaa !9
  %654 = load i64, ptr %96, align 8, !tbaa !9
  %655 = add nsw i64 %653, %654
  store i64 %655, ptr %92, align 8, !tbaa !9
  %656 = load ptr, ptr %55, align 8, !tbaa !5
  %657 = load i64, ptr %656, align 8, !tbaa !9
  %658 = add nsw i64 %657, 1
  %659 = load i64, ptr %92, align 8, !tbaa !9
  %660 = sub nsw i64 %658, %659
  store i64 %660, ptr %68, align 8, !tbaa !9
  %661 = load ptr, ptr %38, align 8, !tbaa !5
  %662 = load ptr, ptr %46, align 8, !tbaa !5
  %663 = load i64, ptr %662, align 8, !tbaa !9
  %664 = load ptr, ptr %46, align 8, !tbaa !5
  %665 = load i64, ptr %664, align 8, !tbaa !9
  %666 = load i64, ptr %62, align 8, !tbaa !9
  %667 = mul nsw i64 %665, %666
  %668 = add nsw i64 %663, %667
  %669 = getelementptr inbounds %struct.complex, ptr %661, i64 %668
  %670 = load ptr, ptr %39, align 8, !tbaa !5
  %671 = load ptr, ptr %54, align 8, !tbaa !5
  %672 = load i64, ptr %88, align 8, !tbaa !9
  %673 = getelementptr inbounds %struct.complex, ptr %671, i64 %672
  %674 = load ptr, ptr %54, align 8, !tbaa !5
  %675 = load i64, ptr %92, align 8, !tbaa !9
  %676 = getelementptr inbounds %struct.complex, ptr %674, i64 %675
  %677 = call i32 @cgeqrf_(ptr noundef %96, ptr noundef %94, ptr noundef %669, ptr noundef %670, ptr noundef %673, ptr noundef %676, ptr noundef %68, ptr noundef %87)
  %678 = load ptr, ptr %55, align 8, !tbaa !5
  %679 = load i64, ptr %678, align 8, !tbaa !9
  %680 = add nsw i64 %679, 1
  %681 = load i64, ptr %92, align 8, !tbaa !9
  %682 = sub nsw i64 %680, %681
  store i64 %682, ptr %68, align 8, !tbaa !9
  %683 = load ptr, ptr %38, align 8, !tbaa !5
  %684 = load ptr, ptr %46, align 8, !tbaa !5
  %685 = load i64, ptr %684, align 8, !tbaa !9
  %686 = load ptr, ptr %46, align 8, !tbaa !5
  %687 = load i64, ptr %686, align 8, !tbaa !9
  %688 = load i64, ptr %62, align 8, !tbaa !9
  %689 = mul nsw i64 %687, %688
  %690 = add nsw i64 %685, %689
  %691 = getelementptr inbounds %struct.complex, ptr %683, i64 %690
  %692 = load ptr, ptr %39, align 8, !tbaa !5
  %693 = load ptr, ptr %54, align 8, !tbaa !5
  %694 = load i64, ptr %88, align 8, !tbaa !9
  %695 = getelementptr inbounds %struct.complex, ptr %693, i64 %694
  %696 = load ptr, ptr %36, align 8, !tbaa !5
  %697 = load ptr, ptr %46, align 8, !tbaa !5
  %698 = load i64, ptr %697, align 8, !tbaa !9
  %699 = load ptr, ptr %46, align 8, !tbaa !5
  %700 = load i64, ptr %699, align 8, !tbaa !9
  %701 = load i64, ptr %60, align 8, !tbaa !9
  %702 = mul nsw i64 %700, %701
  %703 = add nsw i64 %698, %702
  %704 = getelementptr inbounds %struct.complex, ptr %696, i64 %703
  %705 = load ptr, ptr %37, align 8, !tbaa !5
  %706 = load ptr, ptr %54, align 8, !tbaa !5
  %707 = load i64, ptr %92, align 8, !tbaa !9
  %708 = getelementptr inbounds %struct.complex, ptr %706, i64 %707
  %709 = call i32 @cunmqr_(ptr noundef @.str.14, ptr noundef @.str.15, ptr noundef %96, ptr noundef %94, ptr noundef %96, ptr noundef %691, ptr noundef %692, ptr noundef %695, ptr noundef %704, ptr noundef %705, ptr noundef %708, ptr noundef %68, ptr noundef %87)
  %710 = load i64, ptr %90, align 8, !tbaa !9
  %711 = icmp ne i64 %710, 0
  br i1 %711, label %712, label %773

712:                                              ; preds = %652
  %713 = load ptr, ptr %35, align 8, !tbaa !5
  %714 = load ptr, ptr %35, align 8, !tbaa !5
  %715 = load ptr, ptr %42, align 8, !tbaa !5
  %716 = load i64, ptr %65, align 8, !tbaa !9
  %717 = getelementptr inbounds %struct.complex, ptr %715, i64 %716
  %718 = load ptr, ptr %43, align 8, !tbaa !5
  %719 = call i32 @claset_(ptr noundef @.str.16, ptr noundef %713, ptr noundef %714, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %717, ptr noundef %718)
  %720 = load i64, ptr %96, align 8, !tbaa !9
  %721 = icmp sgt i64 %720, 1
  br i1 %721, label %722, label %750

722:                                              ; preds = %712
  %723 = load i64, ptr %96, align 8, !tbaa !9
  %724 = sub nsw i64 %723, 1
  store i64 %724, ptr %68, align 8, !tbaa !9
  %725 = load i64, ptr %96, align 8, !tbaa !9
  %726 = sub nsw i64 %725, 1
  store i64 %726, ptr %69, align 8, !tbaa !9
  %727 = load ptr, ptr %38, align 8, !tbaa !5
  %728 = load ptr, ptr %46, align 8, !tbaa !5
  %729 = load i64, ptr %728, align 8, !tbaa !9
  %730 = add nsw i64 %729, 1
  %731 = load ptr, ptr %46, align 8, !tbaa !5
  %732 = load i64, ptr %731, align 8, !tbaa !9
  %733 = load i64, ptr %62, align 8, !tbaa !9
  %734 = mul nsw i64 %732, %733
  %735 = add nsw i64 %730, %734
  %736 = getelementptr inbounds %struct.complex, ptr %727, i64 %735
  %737 = load ptr, ptr %39, align 8, !tbaa !5
  %738 = load ptr, ptr %42, align 8, !tbaa !5
  %739 = load ptr, ptr %46, align 8, !tbaa !5
  %740 = load i64, ptr %739, align 8, !tbaa !9
  %741 = add nsw i64 %740, 1
  %742 = load ptr, ptr %46, align 8, !tbaa !5
  %743 = load i64, ptr %742, align 8, !tbaa !9
  %744 = load i64, ptr %64, align 8, !tbaa !9
  %745 = mul nsw i64 %743, %744
  %746 = add nsw i64 %741, %745
  %747 = getelementptr inbounds %struct.complex, ptr %738, i64 %746
  %748 = load ptr, ptr %43, align 8, !tbaa !5
  %749 = call i32 @clacpy_(ptr noundef @.str.14, ptr noundef %68, ptr noundef %69, ptr noundef %736, ptr noundef %737, ptr noundef %747, ptr noundef %748)
  br label %750

750:                                              ; preds = %722, %712
  %751 = load ptr, ptr %55, align 8, !tbaa !5
  %752 = load i64, ptr %751, align 8, !tbaa !9
  %753 = add nsw i64 %752, 1
  %754 = load i64, ptr %92, align 8, !tbaa !9
  %755 = sub nsw i64 %753, %754
  store i64 %755, ptr %68, align 8, !tbaa !9
  %756 = load ptr, ptr %42, align 8, !tbaa !5
  %757 = load ptr, ptr %46, align 8, !tbaa !5
  %758 = load i64, ptr %757, align 8, !tbaa !9
  %759 = load ptr, ptr %46, align 8, !tbaa !5
  %760 = load i64, ptr %759, align 8, !tbaa !9
  %761 = load i64, ptr %64, align 8, !tbaa !9
  %762 = mul nsw i64 %760, %761
  %763 = add nsw i64 %758, %762
  %764 = getelementptr inbounds %struct.complex, ptr %756, i64 %763
  %765 = load ptr, ptr %43, align 8, !tbaa !5
  %766 = load ptr, ptr %54, align 8, !tbaa !5
  %767 = load i64, ptr %88, align 8, !tbaa !9
  %768 = getelementptr inbounds %struct.complex, ptr %766, i64 %767
  %769 = load ptr, ptr %54, align 8, !tbaa !5
  %770 = load i64, ptr %92, align 8, !tbaa !9
  %771 = getelementptr inbounds %struct.complex, ptr %769, i64 %770
  %772 = call i32 @cungqr_(ptr noundef %96, ptr noundef %96, ptr noundef %96, ptr noundef %764, ptr noundef %765, ptr noundef %768, ptr noundef %771, ptr noundef %68, ptr noundef %87)
  br label %773

773:                                              ; preds = %750, %652
  %774 = load i64, ptr %91, align 8, !tbaa !9
  %775 = icmp ne i64 %774, 0
  br i1 %775, label %776, label %784

776:                                              ; preds = %773
  %777 = load ptr, ptr %35, align 8, !tbaa !5
  %778 = load ptr, ptr %35, align 8, !tbaa !5
  %779 = load ptr, ptr %44, align 8, !tbaa !5
  %780 = load i64, ptr %67, align 8, !tbaa !9
  %781 = getelementptr inbounds %struct.complex, ptr %779, i64 %780
  %782 = load ptr, ptr %45, align 8, !tbaa !5
  %783 = call i32 @claset_(ptr noundef @.str.16, ptr noundef %777, ptr noundef %778, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %781, ptr noundef %782)
  br label %784

784:                                              ; preds = %776, %773
  %785 = load i64, ptr %84, align 8, !tbaa !9
  %786 = icmp ne i64 %785, 0
  br i1 %786, label %790, label %787

787:                                              ; preds = %784
  %788 = load i64, ptr %110, align 8, !tbaa !9
  %789 = icmp ne i64 %788, 0
  br i1 %789, label %813, label %790

790:                                              ; preds = %787, %784
  %791 = load ptr, ptr %32, align 8, !tbaa !5
  %792 = load ptr, ptr %33, align 8, !tbaa !5
  %793 = load ptr, ptr %35, align 8, !tbaa !5
  %794 = load ptr, ptr %46, align 8, !tbaa !5
  %795 = load ptr, ptr %47, align 8, !tbaa !5
  %796 = load ptr, ptr %36, align 8, !tbaa !5
  %797 = load i64, ptr %61, align 8, !tbaa !9
  %798 = getelementptr inbounds %struct.complex, ptr %796, i64 %797
  %799 = load ptr, ptr %37, align 8, !tbaa !5
  %800 = load ptr, ptr %38, align 8, !tbaa !5
  %801 = load i64, ptr %63, align 8, !tbaa !9
  %802 = getelementptr inbounds %struct.complex, ptr %800, i64 %801
  %803 = load ptr, ptr %39, align 8, !tbaa !5
  %804 = load ptr, ptr %42, align 8, !tbaa !5
  %805 = load i64, ptr %65, align 8, !tbaa !9
  %806 = getelementptr inbounds %struct.complex, ptr %804, i64 %805
  %807 = load ptr, ptr %43, align 8, !tbaa !5
  %808 = load ptr, ptr %44, align 8, !tbaa !5
  %809 = load i64, ptr %67, align 8, !tbaa !9
  %810 = getelementptr inbounds %struct.complex, ptr %808, i64 %809
  %811 = load ptr, ptr %45, align 8, !tbaa !5
  %812 = call i32 @cgghrd_(ptr noundef %791, ptr noundef %792, ptr noundef %793, ptr noundef %794, ptr noundef %795, ptr noundef %798, ptr noundef %799, ptr noundef %802, ptr noundef %803, ptr noundef %806, ptr noundef %807, ptr noundef %810, ptr noundef %811, ptr noundef %87)
  br label %843

813:                                              ; preds = %787
  %814 = load ptr, ptr %36, align 8, !tbaa !5
  %815 = load ptr, ptr %46, align 8, !tbaa !5
  %816 = load i64, ptr %815, align 8, !tbaa !9
  %817 = load ptr, ptr %46, align 8, !tbaa !5
  %818 = load i64, ptr %817, align 8, !tbaa !9
  %819 = load i64, ptr %60, align 8, !tbaa !9
  %820 = mul nsw i64 %818, %819
  %821 = add nsw i64 %816, %820
  %822 = getelementptr inbounds %struct.complex, ptr %814, i64 %821
  %823 = load ptr, ptr %37, align 8, !tbaa !5
  %824 = load ptr, ptr %38, align 8, !tbaa !5
  %825 = load ptr, ptr %46, align 8, !tbaa !5
  %826 = load i64, ptr %825, align 8, !tbaa !9
  %827 = load ptr, ptr %46, align 8, !tbaa !5
  %828 = load i64, ptr %827, align 8, !tbaa !9
  %829 = load i64, ptr %62, align 8, !tbaa !9
  %830 = mul nsw i64 %828, %829
  %831 = add nsw i64 %826, %830
  %832 = getelementptr inbounds %struct.complex, ptr %824, i64 %831
  %833 = load ptr, ptr %39, align 8, !tbaa !5
  %834 = load ptr, ptr %42, align 8, !tbaa !5
  %835 = load i64, ptr %65, align 8, !tbaa !9
  %836 = getelementptr inbounds %struct.complex, ptr %834, i64 %835
  %837 = load ptr, ptr %43, align 8, !tbaa !5
  %838 = load ptr, ptr %44, align 8, !tbaa !5
  %839 = load i64, ptr %67, align 8, !tbaa !9
  %840 = getelementptr inbounds %struct.complex, ptr %838, i64 %839
  %841 = load ptr, ptr %45, align 8, !tbaa !5
  %842 = call i32 @cgghrd_(ptr noundef @.str, ptr noundef @.str, ptr noundef %96, ptr noundef @c__1, ptr noundef %96, ptr noundef %822, ptr noundef %823, ptr noundef %832, ptr noundef %833, ptr noundef %836, ptr noundef %837, ptr noundef %840, ptr noundef %841, ptr noundef %87)
  br label %843

843:                                              ; preds = %813, %790
  %844 = load i64, ptr %88, align 8, !tbaa !9
  store i64 %844, ptr %92, align 8, !tbaa !9
  %845 = load i64, ptr %84, align 8, !tbaa !9
  %846 = icmp ne i64 %845, 0
  br i1 %846, label %850, label %847

847:                                              ; preds = %843
  %848 = load i64, ptr %110, align 8, !tbaa !9
  %849 = icmp ne i64 %848, 0
  br i1 %849, label %852, label %850

850:                                              ; preds = %847, %843
  %851 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  store i8 83, ptr %851, align 1, !tbaa !16
  br label %854

852:                                              ; preds = %847
  %853 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  store i8 69, ptr %853, align 1, !tbaa !16
  br label %854

854:                                              ; preds = %852, %850
  %855 = load ptr, ptr %55, align 8, !tbaa !5
  %856 = load i64, ptr %855, align 8, !tbaa !9
  %857 = add nsw i64 %856, 1
  %858 = load i64, ptr %92, align 8, !tbaa !9
  %859 = sub nsw i64 %857, %858
  store i64 %859, ptr %68, align 8, !tbaa !9
  %860 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  %861 = load ptr, ptr %32, align 8, !tbaa !5
  %862 = load ptr, ptr %33, align 8, !tbaa !5
  %863 = load ptr, ptr %35, align 8, !tbaa !5
  %864 = load ptr, ptr %46, align 8, !tbaa !5
  %865 = load ptr, ptr %47, align 8, !tbaa !5
  %866 = load ptr, ptr %36, align 8, !tbaa !5
  %867 = load i64, ptr %61, align 8, !tbaa !9
  %868 = getelementptr inbounds %struct.complex, ptr %866, i64 %867
  %869 = load ptr, ptr %37, align 8, !tbaa !5
  %870 = load ptr, ptr %38, align 8, !tbaa !5
  %871 = load i64, ptr %63, align 8, !tbaa !9
  %872 = getelementptr inbounds %struct.complex, ptr %870, i64 %871
  %873 = load ptr, ptr %39, align 8, !tbaa !5
  %874 = load ptr, ptr %40, align 8, !tbaa !5
  %875 = getelementptr inbounds %struct.complex, ptr %874, i64 1
  %876 = load ptr, ptr %41, align 8, !tbaa !5
  %877 = getelementptr inbounds %struct.complex, ptr %876, i64 1
  %878 = load ptr, ptr %42, align 8, !tbaa !5
  %879 = load i64, ptr %65, align 8, !tbaa !9
  %880 = getelementptr inbounds %struct.complex, ptr %878, i64 %879
  %881 = load ptr, ptr %43, align 8, !tbaa !5
  %882 = load ptr, ptr %44, align 8, !tbaa !5
  %883 = load i64, ptr %67, align 8, !tbaa !9
  %884 = getelementptr inbounds %struct.complex, ptr %882, i64 %883
  %885 = load ptr, ptr %45, align 8, !tbaa !5
  %886 = load ptr, ptr %54, align 8, !tbaa !5
  %887 = load i64, ptr %92, align 8, !tbaa !9
  %888 = getelementptr inbounds %struct.complex, ptr %886, i64 %887
  %889 = load ptr, ptr %56, align 8, !tbaa !5
  %890 = getelementptr inbounds float, ptr %889, i64 1
  %891 = call i32 @chgeqz_(ptr noundef %860, ptr noundef %861, ptr noundef %862, ptr noundef %863, ptr noundef %864, ptr noundef %865, ptr noundef %868, ptr noundef %869, ptr noundef %872, ptr noundef %873, ptr noundef %875, ptr noundef %877, ptr noundef %880, ptr noundef %881, ptr noundef %884, ptr noundef %885, ptr noundef %888, ptr noundef %68, ptr noundef %890, ptr noundef %87)
  %892 = load i64, ptr %87, align 8, !tbaa !9
  %893 = icmp ne i64 %892, 0
  br i1 %893, label %894, label %929

894:                                              ; preds = %854
  %895 = load i64, ptr %87, align 8, !tbaa !9
  %896 = icmp sgt i64 %895, 0
  br i1 %896, label %897, label %905

897:                                              ; preds = %894
  %898 = load i64, ptr %87, align 8, !tbaa !9
  %899 = load ptr, ptr %35, align 8, !tbaa !5
  %900 = load i64, ptr %899, align 8, !tbaa !9
  %901 = icmp sle i64 %898, %900
  br i1 %901, label %902, label %905

902:                                              ; preds = %897
  %903 = load i64, ptr %87, align 8, !tbaa !9
  %904 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 %903, ptr %904, align 8, !tbaa !9
  br label %928

905:                                              ; preds = %897, %894
  %906 = load i64, ptr %87, align 8, !tbaa !9
  %907 = load ptr, ptr %35, align 8, !tbaa !5
  %908 = load i64, ptr %907, align 8, !tbaa !9
  %909 = icmp sgt i64 %906, %908
  br i1 %909, label %910, label %922

910:                                              ; preds = %905
  %911 = load i64, ptr %87, align 8, !tbaa !9
  %912 = load ptr, ptr %35, align 8, !tbaa !5
  %913 = load i64, ptr %912, align 8, !tbaa !9
  %914 = shl i64 %913, 1
  %915 = icmp sle i64 %911, %914
  br i1 %915, label %916, label %922

916:                                              ; preds = %910
  %917 = load i64, ptr %87, align 8, !tbaa !9
  %918 = load ptr, ptr %35, align 8, !tbaa !5
  %919 = load i64, ptr %918, align 8, !tbaa !9
  %920 = sub nsw i64 %917, %919
  %921 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 %920, ptr %921, align 8, !tbaa !9
  br label %927

922:                                              ; preds = %910, %905
  %923 = load ptr, ptr %35, align 8, !tbaa !5
  %924 = load i64, ptr %923, align 8, !tbaa !9
  %925 = add nsw i64 %924, 1
  %926 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 %925, ptr %926, align 8, !tbaa !9
  br label %927

927:                                              ; preds = %922, %916
  br label %928

928:                                              ; preds = %927, %902
  br label %1420

929:                                              ; preds = %854
  %930 = load i64, ptr %84, align 8, !tbaa !9
  %931 = icmp ne i64 %930, 0
  br i1 %931, label %935, label %932

932:                                              ; preds = %929
  %933 = load i64, ptr %110, align 8, !tbaa !9
  %934 = icmp ne i64 %933, 0
  br i1 %934, label %1101, label %935

935:                                              ; preds = %932, %929
  %936 = load i64, ptr %84, align 8, !tbaa !9
  %937 = icmp ne i64 %936, 0
  br i1 %937, label %938, label %986

938:                                              ; preds = %935
  %939 = load i64, ptr %90, align 8, !tbaa !9
  %940 = icmp ne i64 %939, 0
  br i1 %940, label %941, label %949

941:                                              ; preds = %938
  %942 = load i64, ptr %91, align 8, !tbaa !9
  %943 = icmp ne i64 %942, 0
  br i1 %943, label %944, label %946

944:                                              ; preds = %941
  %945 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  store i8 66, ptr %945, align 1, !tbaa !16
  br label %948

946:                                              ; preds = %941
  %947 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  store i8 76, ptr %947, align 1, !tbaa !16
  br label %948

948:                                              ; preds = %946, %944
  br label %951

949:                                              ; preds = %938
  %950 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  store i8 82, ptr %950, align 1, !tbaa !16
  br label %951

951:                                              ; preds = %949, %948
  %952 = getelementptr inbounds [1 x i8], ptr %100, i64 0, i64 0
  %953 = getelementptr inbounds [1 x i64], ptr %99, i64 0, i64 0
  %954 = load ptr, ptr %35, align 8, !tbaa !5
  %955 = load ptr, ptr %36, align 8, !tbaa !5
  %956 = load i64, ptr %61, align 8, !tbaa !9
  %957 = getelementptr inbounds %struct.complex, ptr %955, i64 %956
  %958 = load ptr, ptr %37, align 8, !tbaa !5
  %959 = load ptr, ptr %38, align 8, !tbaa !5
  %960 = load i64, ptr %63, align 8, !tbaa !9
  %961 = getelementptr inbounds %struct.complex, ptr %959, i64 %960
  %962 = load ptr, ptr %39, align 8, !tbaa !5
  %963 = load ptr, ptr %42, align 8, !tbaa !5
  %964 = load i64, ptr %65, align 8, !tbaa !9
  %965 = getelementptr inbounds %struct.complex, ptr %963, i64 %964
  %966 = load ptr, ptr %43, align 8, !tbaa !5
  %967 = load ptr, ptr %44, align 8, !tbaa !5
  %968 = load i64, ptr %67, align 8, !tbaa !9
  %969 = getelementptr inbounds %struct.complex, ptr %967, i64 %968
  %970 = load ptr, ptr %45, align 8, !tbaa !5
  %971 = load ptr, ptr %35, align 8, !tbaa !5
  %972 = load ptr, ptr %54, align 8, !tbaa !5
  %973 = load i64, ptr %92, align 8, !tbaa !9
  %974 = getelementptr inbounds %struct.complex, ptr %972, i64 %973
  %975 = load ptr, ptr %56, align 8, !tbaa !5
  %976 = getelementptr inbounds float, ptr %975, i64 1
  %977 = call i32 @ctgevc_(ptr noundef %952, ptr noundef @.str.4, ptr noundef %953, ptr noundef %954, ptr noundef %957, ptr noundef %958, ptr noundef %961, ptr noundef %962, ptr noundef %965, ptr noundef %966, ptr noundef %969, ptr noundef %970, ptr noundef %971, ptr noundef %81, ptr noundef %974, ptr noundef %976, ptr noundef %87)
  %978 = load i64, ptr %87, align 8, !tbaa !9
  %979 = icmp ne i64 %978, 0
  br i1 %979, label %980, label %985

980:                                              ; preds = %951
  %981 = load ptr, ptr %35, align 8, !tbaa !5
  %982 = load i64, ptr %981, align 8, !tbaa !9
  %983 = add nsw i64 %982, 2
  %984 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 %983, ptr %984, align 8, !tbaa !9
  br label %1420

985:                                              ; preds = %951
  br label %986

986:                                              ; preds = %985, %935
  %987 = load i64, ptr %110, align 8, !tbaa !9
  %988 = icmp ne i64 %987, 0
  br i1 %988, label %1100, label %989

989:                                              ; preds = %986
  %990 = load ptr, ptr %35, align 8, !tbaa !5
  %991 = load i64, ptr %990, align 8, !tbaa !9
  store i64 %991, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %77, align 8, !tbaa !9
  br label %992

992:                                              ; preds = %1096, %989
  %993 = load i64, ptr %77, align 8, !tbaa !9
  %994 = load i64, ptr %68, align 8, !tbaa !9
  %995 = icmp sle i64 %993, %994
  br i1 %995, label %996, label %1099

996:                                              ; preds = %992
  %997 = load ptr, ptr %35, align 8, !tbaa !5
  %998 = load i64, ptr %997, align 8, !tbaa !9
  store i64 %998, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %999

999:                                              ; preds = %1007, %996
  %1000 = load i64, ptr %78, align 8, !tbaa !9
  %1001 = load i64, ptr %69, align 8, !tbaa !9
  %1002 = icmp sle i64 %1000, %1001
  br i1 %1002, label %1003, label %1010

1003:                                             ; preds = %999
  %1004 = load ptr, ptr %58, align 8, !tbaa !5
  %1005 = load i64, ptr %78, align 8, !tbaa !9
  %1006 = getelementptr inbounds i64, ptr %1004, i64 %1005
  store i64 0, ptr %1006, align 8, !tbaa !9
  br label %1007

1007:                                             ; preds = %1003
  %1008 = load i64, ptr %78, align 8, !tbaa !9
  %1009 = add nsw i64 %1008, 1
  store i64 %1009, ptr %78, align 8, !tbaa !9
  br label %999, !llvm.loop !17

1010:                                             ; preds = %999
  %1011 = load ptr, ptr %58, align 8, !tbaa !5
  %1012 = load i64, ptr %77, align 8, !tbaa !9
  %1013 = getelementptr inbounds i64, ptr %1011, i64 %1012
  store i64 1, ptr %1013, align 8, !tbaa !9
  %1014 = load ptr, ptr %35, align 8, !tbaa !5
  %1015 = load i64, ptr %1014, align 8, !tbaa !9
  %1016 = add nsw i64 %1015, 1
  store i64 %1016, ptr %92, align 8, !tbaa !9
  %1017 = load i64, ptr %92, align 8, !tbaa !9
  %1018 = load ptr, ptr %35, align 8, !tbaa !5
  %1019 = load i64, ptr %1018, align 8, !tbaa !9
  %1020 = add nsw i64 %1017, %1019
  store i64 %1020, ptr %93, align 8, !tbaa !9
  %1021 = load i64, ptr %106, align 8, !tbaa !9
  %1022 = icmp ne i64 %1021, 0
  br i1 %1022, label %1026, label %1023

1023:                                             ; preds = %1010
  %1024 = load i64, ptr %104, align 8, !tbaa !9
  %1025 = icmp ne i64 %1024, 0
  br i1 %1025, label %1026, label %1059

1026:                                             ; preds = %1023, %1010
  %1027 = load ptr, ptr %58, align 8, !tbaa !5
  %1028 = getelementptr inbounds i64, ptr %1027, i64 1
  %1029 = load ptr, ptr %35, align 8, !tbaa !5
  %1030 = load ptr, ptr %36, align 8, !tbaa !5
  %1031 = load i64, ptr %61, align 8, !tbaa !9
  %1032 = getelementptr inbounds %struct.complex, ptr %1030, i64 %1031
  %1033 = load ptr, ptr %37, align 8, !tbaa !5
  %1034 = load ptr, ptr %38, align 8, !tbaa !5
  %1035 = load i64, ptr %63, align 8, !tbaa !9
  %1036 = getelementptr inbounds %struct.complex, ptr %1034, i64 %1035
  %1037 = load ptr, ptr %39, align 8, !tbaa !5
  %1038 = load ptr, ptr %54, align 8, !tbaa !5
  %1039 = getelementptr inbounds %struct.complex, ptr %1038, i64 1
  %1040 = load ptr, ptr %35, align 8, !tbaa !5
  %1041 = load ptr, ptr %54, align 8, !tbaa !5
  %1042 = load i64, ptr %92, align 8, !tbaa !9
  %1043 = getelementptr inbounds %struct.complex, ptr %1041, i64 %1042
  %1044 = load ptr, ptr %35, align 8, !tbaa !5
  %1045 = load ptr, ptr %54, align 8, !tbaa !5
  %1046 = load i64, ptr %93, align 8, !tbaa !9
  %1047 = getelementptr inbounds %struct.complex, ptr %1045, i64 %1046
  %1048 = load ptr, ptr %56, align 8, !tbaa !5
  %1049 = getelementptr inbounds float, ptr %1048, i64 1
  %1050 = call i32 @ctgevc_(ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %1028, ptr noundef %1029, ptr noundef %1032, ptr noundef %1033, ptr noundef %1036, ptr noundef %1037, ptr noundef %1039, ptr noundef %1040, ptr noundef %1043, ptr noundef %1044, ptr noundef @c__1, ptr noundef %79, ptr noundef %1047, ptr noundef %1049, ptr noundef %87)
  %1051 = load i64, ptr %87, align 8, !tbaa !9
  %1052 = icmp ne i64 %1051, 0
  br i1 %1052, label %1053, label %1058

1053:                                             ; preds = %1026
  %1054 = load ptr, ptr %35, align 8, !tbaa !5
  %1055 = load i64, ptr %1054, align 8, !tbaa !9
  %1056 = add nsw i64 %1055, 2
  %1057 = load ptr, ptr %59, align 8, !tbaa !5
  store i64 %1056, ptr %1057, align 8, !tbaa !9
  br label %1420

1058:                                             ; preds = %1026
  br label %1059

1059:                                             ; preds = %1058, %1023
  %1060 = load ptr, ptr %55, align 8, !tbaa !5
  %1061 = load i64, ptr %1060, align 8, !tbaa !9
  %1062 = load i64, ptr %93, align 8, !tbaa !9
  %1063 = sub nsw i64 %1061, %1062
  %1064 = add nsw i64 %1063, 1
  store i64 %1064, ptr %69, align 8, !tbaa !9
  %1065 = load ptr, ptr %34, align 8, !tbaa !5
  %1066 = load ptr, ptr %58, align 8, !tbaa !5
  %1067 = getelementptr inbounds i64, ptr %1066, i64 1
  %1068 = load ptr, ptr %35, align 8, !tbaa !5
  %1069 = load ptr, ptr %36, align 8, !tbaa !5
  %1070 = load i64, ptr %61, align 8, !tbaa !9
  %1071 = getelementptr inbounds %struct.complex, ptr %1069, i64 %1070
  %1072 = load ptr, ptr %37, align 8, !tbaa !5
  %1073 = load ptr, ptr %38, align 8, !tbaa !5
  %1074 = load i64, ptr %63, align 8, !tbaa !9
  %1075 = getelementptr inbounds %struct.complex, ptr %1073, i64 %1074
  %1076 = load ptr, ptr %39, align 8, !tbaa !5
  %1077 = load ptr, ptr %54, align 8, !tbaa !5
  %1078 = getelementptr inbounds %struct.complex, ptr %1077, i64 1
  %1079 = load ptr, ptr %35, align 8, !tbaa !5
  %1080 = load ptr, ptr %54, align 8, !tbaa !5
  %1081 = load i64, ptr %92, align 8, !tbaa !9
  %1082 = getelementptr inbounds %struct.complex, ptr %1080, i64 %1081
  %1083 = load ptr, ptr %35, align 8, !tbaa !5
  %1084 = load ptr, ptr %52, align 8, !tbaa !5
  %1085 = load i64, ptr %77, align 8, !tbaa !9
  %1086 = getelementptr inbounds float, ptr %1084, i64 %1085
  %1087 = load ptr, ptr %53, align 8, !tbaa !5
  %1088 = load i64, ptr %77, align 8, !tbaa !9
  %1089 = getelementptr inbounds float, ptr %1087, i64 %1088
  %1090 = load ptr, ptr %54, align 8, !tbaa !5
  %1091 = load i64, ptr %93, align 8, !tbaa !9
  %1092 = getelementptr inbounds %struct.complex, ptr %1090, i64 %1091
  %1093 = load ptr, ptr %57, align 8, !tbaa !5
  %1094 = getelementptr inbounds i64, ptr %1093, i64 1
  %1095 = call i32 @ctgsna_(ptr noundef %1065, ptr noundef @.str.5, ptr noundef %1067, ptr noundef %1068, ptr noundef %1071, ptr noundef %1072, ptr noundef %1075, ptr noundef %1076, ptr noundef %1078, ptr noundef %1079, ptr noundef %1082, ptr noundef %1083, ptr noundef %1086, ptr noundef %1089, ptr noundef @c__1, ptr noundef %79, ptr noundef %1092, ptr noundef %69, ptr noundef %1094, ptr noundef %87)
  br label %1096

1096:                                             ; preds = %1059
  %1097 = load i64, ptr %77, align 8, !tbaa !9
  %1098 = add nsw i64 %1097, 1
  store i64 %1098, ptr %77, align 8, !tbaa !9
  br label %992, !llvm.loop !19

1099:                                             ; preds = %992
  br label %1100

1100:                                             ; preds = %1099, %986
  br label %1101

1101:                                             ; preds = %1100, %932
  %1102 = load i64, ptr %90, align 8, !tbaa !9
  %1103 = icmp ne i64 %1102, 0
  br i1 %1103, label %1104, label %1251

1104:                                             ; preds = %1101
  %1105 = load ptr, ptr %31, align 8, !tbaa !5
  %1106 = load ptr, ptr %35, align 8, !tbaa !5
  %1107 = load ptr, ptr %46, align 8, !tbaa !5
  %1108 = load ptr, ptr %47, align 8, !tbaa !5
  %1109 = load ptr, ptr %48, align 8, !tbaa !5
  %1110 = getelementptr inbounds float, ptr %1109, i64 1
  %1111 = load ptr, ptr %49, align 8, !tbaa !5
  %1112 = getelementptr inbounds float, ptr %1111, i64 1
  %1113 = load ptr, ptr %35, align 8, !tbaa !5
  %1114 = load ptr, ptr %42, align 8, !tbaa !5
  %1115 = load i64, ptr %65, align 8, !tbaa !9
  %1116 = getelementptr inbounds %struct.complex, ptr %1114, i64 %1115
  %1117 = load ptr, ptr %43, align 8, !tbaa !5
  %1118 = call i32 @cggbak_(ptr noundef %1105, ptr noundef @.str.14, ptr noundef %1106, ptr noundef %1107, ptr noundef %1108, ptr noundef %1110, ptr noundef %1112, ptr noundef %1113, ptr noundef %1116, ptr noundef %1117, ptr noundef %87)
  %1119 = load ptr, ptr %35, align 8, !tbaa !5
  %1120 = load i64, ptr %1119, align 8, !tbaa !9
  store i64 %1120, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %1121

1121:                                             ; preds = %1247, %1104
  %1122 = load i64, ptr %80, align 8, !tbaa !9
  %1123 = load i64, ptr %68, align 8, !tbaa !9
  %1124 = icmp sle i64 %1122, %1123
  br i1 %1124, label %1125, label %1250

1125:                                             ; preds = %1121
  store float 0.000000e+00, ptr %89, align 4, !tbaa !15
  %1126 = load ptr, ptr %35, align 8, !tbaa !5
  %1127 = load i64, ptr %1126, align 8, !tbaa !9
  store i64 %1127, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %1128

1128:                                             ; preds = %1186, %1125
  %1129 = load i64, ptr %82, align 8, !tbaa !9
  %1130 = load i64, ptr %69, align 8, !tbaa !9
  %1131 = icmp sle i64 %1129, %1130
  br i1 %1131, label %1132, label %1189

1132:                                             ; preds = %1128
  %1133 = load i64, ptr %82, align 8, !tbaa !9
  %1134 = load i64, ptr %80, align 8, !tbaa !9
  %1135 = load i64, ptr %64, align 8, !tbaa !9
  %1136 = mul nsw i64 %1134, %1135
  %1137 = add nsw i64 %1133, %1136
  store i64 %1137, ptr %70, align 8, !tbaa !9
  %1138 = load float, ptr %89, align 4, !tbaa !15
  store float %1138, ptr %74, align 4, !tbaa !15
  %1139 = load ptr, ptr %42, align 8, !tbaa !5
  %1140 = load i64, ptr %70, align 8, !tbaa !9
  %1141 = getelementptr inbounds %struct.complex, ptr %1139, i64 %1140
  %1142 = getelementptr inbounds %struct.complex, ptr %1141, i32 0, i32 0
  %1143 = load float, ptr %1142, align 4, !tbaa !11
  store float %1143, ptr %72, align 4, !tbaa !15
  %1144 = load float, ptr %72, align 4, !tbaa !15
  %1145 = fcmp oge float %1144, 0.000000e+00
  br i1 %1145, label %1146, label %1148

1146:                                             ; preds = %1132
  %1147 = load float, ptr %72, align 4, !tbaa !15
  br label %1151

1148:                                             ; preds = %1132
  %1149 = load float, ptr %72, align 4, !tbaa !15
  %1150 = fneg float %1149
  br label %1151

1151:                                             ; preds = %1148, %1146
  %1152 = phi float [ %1147, %1146 ], [ %1150, %1148 ]
  %1153 = fpext float %1152 to double
  %1154 = load ptr, ptr %42, align 8, !tbaa !5
  %1155 = load i64, ptr %82, align 8, !tbaa !9
  %1156 = load i64, ptr %80, align 8, !tbaa !9
  %1157 = load i64, ptr %64, align 8, !tbaa !9
  %1158 = mul nsw i64 %1156, %1157
  %1159 = add nsw i64 %1155, %1158
  %1160 = getelementptr inbounds %struct.complex, ptr %1154, i64 %1159
  %1161 = call double @r_imag(ptr noundef %1160)
  %1162 = fptrunc double %1161 to float
  store float %1162, ptr %73, align 4, !tbaa !15
  %1163 = load float, ptr %73, align 4, !tbaa !15
  %1164 = fcmp oge float %1163, 0.000000e+00
  br i1 %1164, label %1165, label %1167

1165:                                             ; preds = %1151
  %1166 = load float, ptr %73, align 4, !tbaa !15
  br label %1170

1167:                                             ; preds = %1151
  %1168 = load float, ptr %73, align 4, !tbaa !15
  %1169 = fneg float %1168
  br label %1170

1170:                                             ; preds = %1167, %1165
  %1171 = phi float [ %1166, %1165 ], [ %1169, %1167 ]
  %1172 = fpext float %1171 to double
  %1173 = fadd double %1153, %1172
  %1174 = fptrunc double %1173 to float
  store float %1174, ptr %75, align 4, !tbaa !15
  %1175 = load float, ptr %74, align 4, !tbaa !15
  %1176 = load float, ptr %75, align 4, !tbaa !15
  %1177 = fcmp oge float %1175, %1176
  br i1 %1177, label %1178, label %1180

1178:                                             ; preds = %1170
  %1179 = load float, ptr %74, align 4, !tbaa !15
  br label %1182

1180:                                             ; preds = %1170
  %1181 = load float, ptr %75, align 4, !tbaa !15
  br label %1182

1182:                                             ; preds = %1180, %1178
  %1183 = phi float [ %1179, %1178 ], [ %1181, %1180 ]
  %1184 = fpext float %1183 to double
  %1185 = fptrunc double %1184 to float
  store float %1185, ptr %89, align 4, !tbaa !15
  br label %1186

1186:                                             ; preds = %1182
  %1187 = load i64, ptr %82, align 8, !tbaa !9
  %1188 = add nsw i64 %1187, 1
  store i64 %1188, ptr %82, align 8, !tbaa !9
  br label %1128, !llvm.loop !20

1189:                                             ; preds = %1128
  %1190 = load float, ptr %89, align 4, !tbaa !15
  %1191 = load float, ptr %111, align 4, !tbaa !15
  %1192 = fcmp olt float %1190, %1191
  br i1 %1192, label %1193, label %1194

1193:                                             ; preds = %1189
  br label %1246

1194:                                             ; preds = %1189
  %1195 = load float, ptr %89, align 4, !tbaa !15
  %1196 = fdiv float 1.000000e+00, %1195
  store float %1196, ptr %89, align 4, !tbaa !15
  %1197 = load ptr, ptr %35, align 8, !tbaa !5
  %1198 = load i64, ptr %1197, align 8, !tbaa !9
  store i64 %1198, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %1199

1199:                                             ; preds = %1242, %1194
  %1200 = load i64, ptr %82, align 8, !tbaa !9
  %1201 = load i64, ptr %69, align 8, !tbaa !9
  %1202 = icmp sle i64 %1200, %1201
  br i1 %1202, label %1203, label %1245

1203:                                             ; preds = %1199
  %1204 = load i64, ptr %82, align 8, !tbaa !9
  %1205 = load i64, ptr %80, align 8, !tbaa !9
  %1206 = load i64, ptr %64, align 8, !tbaa !9
  %1207 = mul nsw i64 %1205, %1206
  %1208 = add nsw i64 %1204, %1207
  store i64 %1208, ptr %70, align 8, !tbaa !9
  %1209 = load i64, ptr %82, align 8, !tbaa !9
  %1210 = load i64, ptr %80, align 8, !tbaa !9
  %1211 = load i64, ptr %64, align 8, !tbaa !9
  %1212 = mul nsw i64 %1210, %1211
  %1213 = add nsw i64 %1209, %1212
  store i64 %1213, ptr %71, align 8, !tbaa !9
  %1214 = load float, ptr %89, align 4, !tbaa !15
  %1215 = load ptr, ptr %42, align 8, !tbaa !5
  %1216 = load i64, ptr %71, align 8, !tbaa !9
  %1217 = getelementptr inbounds %struct.complex, ptr %1215, i64 %1216
  %1218 = getelementptr inbounds %struct.complex, ptr %1217, i32 0, i32 0
  %1219 = load float, ptr %1218, align 4, !tbaa !11
  %1220 = fmul float %1214, %1219
  %1221 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 0
  store float %1220, ptr %1221, align 4, !tbaa !11
  %1222 = load float, ptr %89, align 4, !tbaa !15
  %1223 = load ptr, ptr %42, align 8, !tbaa !5
  %1224 = load i64, ptr %71, align 8, !tbaa !9
  %1225 = getelementptr inbounds %struct.complex, ptr %1223, i64 %1224
  %1226 = getelementptr inbounds %struct.complex, ptr %1225, i32 0, i32 1
  %1227 = load float, ptr %1226, align 4, !tbaa !14
  %1228 = fmul float %1222, %1227
  %1229 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 1
  store float %1228, ptr %1229, align 4, !tbaa !14
  %1230 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 0
  %1231 = load float, ptr %1230, align 4, !tbaa !11
  %1232 = load ptr, ptr %42, align 8, !tbaa !5
  %1233 = load i64, ptr %70, align 8, !tbaa !9
  %1234 = getelementptr inbounds %struct.complex, ptr %1232, i64 %1233
  %1235 = getelementptr inbounds %struct.complex, ptr %1234, i32 0, i32 0
  store float %1231, ptr %1235, align 4, !tbaa !11
  %1236 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 1
  %1237 = load float, ptr %1236, align 4, !tbaa !14
  %1238 = load ptr, ptr %42, align 8, !tbaa !5
  %1239 = load i64, ptr %70, align 8, !tbaa !9
  %1240 = getelementptr inbounds %struct.complex, ptr %1238, i64 %1239
  %1241 = getelementptr inbounds %struct.complex, ptr %1240, i32 0, i32 1
  store float %1237, ptr %1241, align 4, !tbaa !14
  br label %1242

1242:                                             ; preds = %1203
  %1243 = load i64, ptr %82, align 8, !tbaa !9
  %1244 = add nsw i64 %1243, 1
  store i64 %1244, ptr %82, align 8, !tbaa !9
  br label %1199, !llvm.loop !21

1245:                                             ; preds = %1199
  br label %1246

1246:                                             ; preds = %1245, %1193
  br label %1247

1247:                                             ; preds = %1246
  %1248 = load i64, ptr %80, align 8, !tbaa !9
  %1249 = add nsw i64 %1248, 1
  store i64 %1249, ptr %80, align 8, !tbaa !9
  br label %1121, !llvm.loop !22

1250:                                             ; preds = %1121
  br label %1251

1251:                                             ; preds = %1250, %1101
  %1252 = load i64, ptr %91, align 8, !tbaa !9
  %1253 = icmp ne i64 %1252, 0
  br i1 %1253, label %1254, label %1401

1254:                                             ; preds = %1251
  %1255 = load ptr, ptr %31, align 8, !tbaa !5
  %1256 = load ptr, ptr %35, align 8, !tbaa !5
  %1257 = load ptr, ptr %46, align 8, !tbaa !5
  %1258 = load ptr, ptr %47, align 8, !tbaa !5
  %1259 = load ptr, ptr %48, align 8, !tbaa !5
  %1260 = getelementptr inbounds float, ptr %1259, i64 1
  %1261 = load ptr, ptr %49, align 8, !tbaa !5
  %1262 = getelementptr inbounds float, ptr %1261, i64 1
  %1263 = load ptr, ptr %35, align 8, !tbaa !5
  %1264 = load ptr, ptr %44, align 8, !tbaa !5
  %1265 = load i64, ptr %67, align 8, !tbaa !9
  %1266 = getelementptr inbounds %struct.complex, ptr %1264, i64 %1265
  %1267 = load ptr, ptr %45, align 8, !tbaa !5
  %1268 = call i32 @cggbak_(ptr noundef %1255, ptr noundef @.str.17, ptr noundef %1256, ptr noundef %1257, ptr noundef %1258, ptr noundef %1260, ptr noundef %1262, ptr noundef %1263, ptr noundef %1266, ptr noundef %1267, ptr noundef %87)
  %1269 = load ptr, ptr %35, align 8, !tbaa !5
  %1270 = load i64, ptr %1269, align 8, !tbaa !9
  store i64 %1270, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %80, align 8, !tbaa !9
  br label %1271

1271:                                             ; preds = %1397, %1254
  %1272 = load i64, ptr %80, align 8, !tbaa !9
  %1273 = load i64, ptr %68, align 8, !tbaa !9
  %1274 = icmp sle i64 %1272, %1273
  br i1 %1274, label %1275, label %1400

1275:                                             ; preds = %1271
  store float 0.000000e+00, ptr %89, align 4, !tbaa !15
  %1276 = load ptr, ptr %35, align 8, !tbaa !5
  %1277 = load i64, ptr %1276, align 8, !tbaa !9
  store i64 %1277, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %1278

1278:                                             ; preds = %1336, %1275
  %1279 = load i64, ptr %82, align 8, !tbaa !9
  %1280 = load i64, ptr %69, align 8, !tbaa !9
  %1281 = icmp sle i64 %1279, %1280
  br i1 %1281, label %1282, label %1339

1282:                                             ; preds = %1278
  %1283 = load i64, ptr %82, align 8, !tbaa !9
  %1284 = load i64, ptr %80, align 8, !tbaa !9
  %1285 = load i64, ptr %66, align 8, !tbaa !9
  %1286 = mul nsw i64 %1284, %1285
  %1287 = add nsw i64 %1283, %1286
  store i64 %1287, ptr %70, align 8, !tbaa !9
  %1288 = load float, ptr %89, align 4, !tbaa !15
  store float %1288, ptr %74, align 4, !tbaa !15
  %1289 = load ptr, ptr %44, align 8, !tbaa !5
  %1290 = load i64, ptr %70, align 8, !tbaa !9
  %1291 = getelementptr inbounds %struct.complex, ptr %1289, i64 %1290
  %1292 = getelementptr inbounds %struct.complex, ptr %1291, i32 0, i32 0
  %1293 = load float, ptr %1292, align 4, !tbaa !11
  store float %1293, ptr %72, align 4, !tbaa !15
  %1294 = load float, ptr %72, align 4, !tbaa !15
  %1295 = fcmp oge float %1294, 0.000000e+00
  br i1 %1295, label %1296, label %1298

1296:                                             ; preds = %1282
  %1297 = load float, ptr %72, align 4, !tbaa !15
  br label %1301

1298:                                             ; preds = %1282
  %1299 = load float, ptr %72, align 4, !tbaa !15
  %1300 = fneg float %1299
  br label %1301

1301:                                             ; preds = %1298, %1296
  %1302 = phi float [ %1297, %1296 ], [ %1300, %1298 ]
  %1303 = fpext float %1302 to double
  %1304 = load ptr, ptr %44, align 8, !tbaa !5
  %1305 = load i64, ptr %82, align 8, !tbaa !9
  %1306 = load i64, ptr %80, align 8, !tbaa !9
  %1307 = load i64, ptr %66, align 8, !tbaa !9
  %1308 = mul nsw i64 %1306, %1307
  %1309 = add nsw i64 %1305, %1308
  %1310 = getelementptr inbounds %struct.complex, ptr %1304, i64 %1309
  %1311 = call double @r_imag(ptr noundef %1310)
  %1312 = fptrunc double %1311 to float
  store float %1312, ptr %73, align 4, !tbaa !15
  %1313 = load float, ptr %73, align 4, !tbaa !15
  %1314 = fcmp oge float %1313, 0.000000e+00
  br i1 %1314, label %1315, label %1317

1315:                                             ; preds = %1301
  %1316 = load float, ptr %73, align 4, !tbaa !15
  br label %1320

1317:                                             ; preds = %1301
  %1318 = load float, ptr %73, align 4, !tbaa !15
  %1319 = fneg float %1318
  br label %1320

1320:                                             ; preds = %1317, %1315
  %1321 = phi float [ %1316, %1315 ], [ %1319, %1317 ]
  %1322 = fpext float %1321 to double
  %1323 = fadd double %1303, %1322
  %1324 = fptrunc double %1323 to float
  store float %1324, ptr %75, align 4, !tbaa !15
  %1325 = load float, ptr %74, align 4, !tbaa !15
  %1326 = load float, ptr %75, align 4, !tbaa !15
  %1327 = fcmp oge float %1325, %1326
  br i1 %1327, label %1328, label %1330

1328:                                             ; preds = %1320
  %1329 = load float, ptr %74, align 4, !tbaa !15
  br label %1332

1330:                                             ; preds = %1320
  %1331 = load float, ptr %75, align 4, !tbaa !15
  br label %1332

1332:                                             ; preds = %1330, %1328
  %1333 = phi float [ %1329, %1328 ], [ %1331, %1330 ]
  %1334 = fpext float %1333 to double
  %1335 = fptrunc double %1334 to float
  store float %1335, ptr %89, align 4, !tbaa !15
  br label %1336

1336:                                             ; preds = %1332
  %1337 = load i64, ptr %82, align 8, !tbaa !9
  %1338 = add nsw i64 %1337, 1
  store i64 %1338, ptr %82, align 8, !tbaa !9
  br label %1278, !llvm.loop !23

1339:                                             ; preds = %1278
  %1340 = load float, ptr %89, align 4, !tbaa !15
  %1341 = load float, ptr %111, align 4, !tbaa !15
  %1342 = fcmp olt float %1340, %1341
  br i1 %1342, label %1343, label %1344

1343:                                             ; preds = %1339
  br label %1396

1344:                                             ; preds = %1339
  %1345 = load float, ptr %89, align 4, !tbaa !15
  %1346 = fdiv float 1.000000e+00, %1345
  store float %1346, ptr %89, align 4, !tbaa !15
  %1347 = load ptr, ptr %35, align 8, !tbaa !5
  %1348 = load i64, ptr %1347, align 8, !tbaa !9
  store i64 %1348, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %1349

1349:                                             ; preds = %1392, %1344
  %1350 = load i64, ptr %82, align 8, !tbaa !9
  %1351 = load i64, ptr %69, align 8, !tbaa !9
  %1352 = icmp sle i64 %1350, %1351
  br i1 %1352, label %1353, label %1395

1353:                                             ; preds = %1349
  %1354 = load i64, ptr %82, align 8, !tbaa !9
  %1355 = load i64, ptr %80, align 8, !tbaa !9
  %1356 = load i64, ptr %66, align 8, !tbaa !9
  %1357 = mul nsw i64 %1355, %1356
  %1358 = add nsw i64 %1354, %1357
  store i64 %1358, ptr %70, align 8, !tbaa !9
  %1359 = load i64, ptr %82, align 8, !tbaa !9
  %1360 = load i64, ptr %80, align 8, !tbaa !9
  %1361 = load i64, ptr %66, align 8, !tbaa !9
  %1362 = mul nsw i64 %1360, %1361
  %1363 = add nsw i64 %1359, %1362
  store i64 %1363, ptr %71, align 8, !tbaa !9
  %1364 = load float, ptr %89, align 4, !tbaa !15
  %1365 = load ptr, ptr %44, align 8, !tbaa !5
  %1366 = load i64, ptr %71, align 8, !tbaa !9
  %1367 = getelementptr inbounds %struct.complex, ptr %1365, i64 %1366
  %1368 = getelementptr inbounds %struct.complex, ptr %1367, i32 0, i32 0
  %1369 = load float, ptr %1368, align 4, !tbaa !11
  %1370 = fmul float %1364, %1369
  %1371 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 0
  store float %1370, ptr %1371, align 4, !tbaa !11
  %1372 = load float, ptr %89, align 4, !tbaa !15
  %1373 = load ptr, ptr %44, align 8, !tbaa !5
  %1374 = load i64, ptr %71, align 8, !tbaa !9
  %1375 = getelementptr inbounds %struct.complex, ptr %1373, i64 %1374
  %1376 = getelementptr inbounds %struct.complex, ptr %1375, i32 0, i32 1
  %1377 = load float, ptr %1376, align 4, !tbaa !14
  %1378 = fmul float %1372, %1377
  %1379 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 1
  store float %1378, ptr %1379, align 4, !tbaa !14
  %1380 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 0
  %1381 = load float, ptr %1380, align 4, !tbaa !11
  %1382 = load ptr, ptr %44, align 8, !tbaa !5
  %1383 = load i64, ptr %70, align 8, !tbaa !9
  %1384 = getelementptr inbounds %struct.complex, ptr %1382, i64 %1383
  %1385 = getelementptr inbounds %struct.complex, ptr %1384, i32 0, i32 0
  store float %1381, ptr %1385, align 4, !tbaa !11
  %1386 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 1
  %1387 = load float, ptr %1386, align 4, !tbaa !14
  %1388 = load ptr, ptr %44, align 8, !tbaa !5
  %1389 = load i64, ptr %70, align 8, !tbaa !9
  %1390 = getelementptr inbounds %struct.complex, ptr %1388, i64 %1389
  %1391 = getelementptr inbounds %struct.complex, ptr %1390, i32 0, i32 1
  store float %1387, ptr %1391, align 4, !tbaa !14
  br label %1392

1392:                                             ; preds = %1353
  %1393 = load i64, ptr %82, align 8, !tbaa !9
  %1394 = add nsw i64 %1393, 1
  store i64 %1394, ptr %82, align 8, !tbaa !9
  br label %1349, !llvm.loop !24

1395:                                             ; preds = %1349
  br label %1396

1396:                                             ; preds = %1395, %1343
  br label %1397

1397:                                             ; preds = %1396
  %1398 = load i64, ptr %80, align 8, !tbaa !9
  %1399 = add nsw i64 %1398, 1
  store i64 %1399, ptr %80, align 8, !tbaa !9
  br label %1271, !llvm.loop !25

1400:                                             ; preds = %1271
  br label %1401

1401:                                             ; preds = %1400, %1251
  %1402 = load i64, ptr %97, align 8, !tbaa !9
  %1403 = icmp ne i64 %1402, 0
  br i1 %1403, label %1404, label %1410

1404:                                             ; preds = %1401
  %1405 = load ptr, ptr %35, align 8, !tbaa !5
  %1406 = load ptr, ptr %40, align 8, !tbaa !5
  %1407 = getelementptr inbounds %struct.complex, ptr %1406, i64 1
  %1408 = load ptr, ptr %35, align 8, !tbaa !5
  %1409 = call i32 @clascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %105, ptr noundef %85, ptr noundef %1405, ptr noundef @c__1, ptr noundef %1407, ptr noundef %1408, ptr noundef %87)
  br label %1410

1410:                                             ; preds = %1404, %1401
  %1411 = load i64, ptr %98, align 8, !tbaa !9
  %1412 = icmp ne i64 %1411, 0
  br i1 %1412, label %1413, label %1419

1413:                                             ; preds = %1410
  %1414 = load ptr, ptr %35, align 8, !tbaa !5
  %1415 = load ptr, ptr %41, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.complex, ptr %1415, i64 1
  %1417 = load ptr, ptr %35, align 8, !tbaa !5
  %1418 = call i32 @clascl_(ptr noundef @.str.12, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %107, ptr noundef %86, ptr noundef %1414, ptr noundef @c__1, ptr noundef %1416, ptr noundef %1417, ptr noundef %87)
  br label %1419

1419:                                             ; preds = %1413, %1410
  br label %1420

1420:                                             ; preds = %1419, %1053, %980, %928
  %1421 = load i64, ptr %109, align 8, !tbaa !9
  %1422 = sitofp i64 %1421 to float
  %1423 = load ptr, ptr %54, align 8, !tbaa !5
  %1424 = getelementptr inbounds %struct.complex, ptr %1423, i64 1
  %1425 = getelementptr inbounds %struct.complex, ptr %1424, i32 0, i32 0
  store float %1422, ptr %1425, align 4, !tbaa !11
  %1426 = load ptr, ptr %54, align 8, !tbaa !5
  %1427 = getelementptr inbounds %struct.complex, ptr %1426, i64 1
  %1428 = getelementptr inbounds %struct.complex, ptr %1427, i32 0, i32 1
  store float 0.000000e+00, ptr %1428, align 4, !tbaa !14
  store i32 0, ptr %30, align 4
  store i32 1, ptr %114, align 4
  br label %1429

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

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

declare double @r_imag(ptr noundef) #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !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 i64, align 8
@.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 i64, align 8
@.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 noundef i32 @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 i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca [1 x i64], align 8
  %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 8, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #6
  %45 = load i64, ptr %6, align 8, !tbaa !5
  %46 = xor i64 %45, -1
  %47 = getelementptr inbounds %struct.complex, ptr %5, i64 %46
  %48 = load i64, ptr %8, align 8, !tbaa !5
  %49 = xor i64 %48, -1
  %50 = getelementptr inbounds %struct.complex, ptr %7, i64 %49
  %51 = load i64, ptr %12, align 8, !tbaa !5
  %52 = xor i64 %51, -1
  %53 = getelementptr inbounds %struct.complex, ptr %11, i64 %52
  %54 = load i64, ptr %14, align 8, !tbaa !5
  %55 = xor i64 %54, -1
  %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 %27, i64 -8
  %60 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #6
  %.not = icmp eq i64 %60, 0
  br i1 %.not, label %61, label %63

61:                                               ; preds = %29
  %62 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %.not572 = icmp eq i64 %62, 0
  br label %63

63:                                               ; preds = %61, %29
  %.not585 = phi i1 [ true, %29 ], [ %.not572, %61 ]
  %64 = phi i1 [ false, %29 ], [ %.not572, %61 ]
  %65 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #6
  %.not573 = icmp eq i64 %65, 0
  br i1 %.not573, label %66, label %68

66:                                               ; preds = %63
  %67 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #6
  %.not574 = icmp eq i64 %67, 0
  br label %68

68:                                               ; preds = %66, %63
  %.not586 = phi i1 [ true, %63 ], [ %.not574, %66 ]
  %69 = phi i1 [ false, %63 ], [ %.not574, %66 ]
  %.not587 = and i1 %.not585, %.not586
  %70 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %.not575 = icmp eq i64 %70, 0
  br i1 %.not575, label %71, label %74

71:                                               ; preds = %68
  %72 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %73 = icmp ne i64 %72, 0
  br label %74

74:                                               ; preds = %71, %68
  %75 = phi i1 [ true, %68 ], [ %73, %71 ]
  %76 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str) #6
  %77 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.3) #6
  %78 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #6
  %79 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.4) #6
  store i64 0, ptr %28, align 8, !tbaa !5
  %80 = load i64, ptr %24, align 8, !tbaa !5
  %81 = icmp eq i64 %80, -1
  br i1 %75, label %86, label %82

82:                                               ; preds = %74
  %83 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.5) #6
  %.not576 = icmp eq i64 %83, 0
  br i1 %.not576, label %84, label %86

84:                                               ; preds = %82
  %85 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not577 = icmp eq i64 %85, 0
  %brmerge = select i1 %.not577, i1 true, i1 %64
  %brmerge691 = select i1 %brmerge, i1 true, i1 %69
  %.mux = select i1 %64, i64 -2, i64 -3
  %.mux.mux = select i1 %.not577, i64 -1, i64 %.mux
  br i1 %brmerge691, label %.thread610.sink.split, label %87

86:                                               ; preds = %82, %74
  %brmerge692 = select i1 %64, i1 true, i1 %69
  %.mux693 = select i1 %64, i64 -2, i64 -3
  br i1 %brmerge692, label %.thread610.sink.split, label %87

87:                                               ; preds = %86, %84
  %88 = icmp ne i64 %76, 0
  %89 = icmp ne i64 %77, 0
  %or.cond = select i1 %88, i1 true, i1 %89
  %90 = icmp ne i64 %79, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %90
  %91 = icmp ne i64 %78, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %91
  br i1 %or.cond5, label %92, label %.thread610.sink.split

92:                                               ; preds = %87
  %93 = load i64, ptr %4, align 8, !tbaa !5
  %94 = icmp slt i64 %93, 0
  br i1 %94, label %.thread610.sink.split, label %95

95:                                               ; preds = %92
  %96 = load i64, ptr %6, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %93, i64 1)
  %97 = icmp slt i64 %96, %spec.select
  br i1 %97, label %.thread610.sink.split, label %98

98:                                               ; preds = %95
  %99 = load i64, ptr %8, align 8, !tbaa !5
  %100 = icmp slt i64 %99, %spec.select
  br i1 %100, label %.thread610.sink.split, label %101

101:                                              ; preds = %98
  %102 = load i64, ptr %12, align 8, !tbaa !5
  %103 = icmp sgt i64 %102, 0
  %104 = icmp uge i64 %102, %93
  %or.cond626.not = or i1 %.not585, %104
  %or.cond632 = select i1 %103, i1 %or.cond626.not, i1 false
  br i1 %or.cond632, label %105, label %.thread610.sink.split

105:                                              ; preds = %101
  %106 = load i64, ptr %14, align 8, !tbaa !5
  %107 = icmp sgt i64 %106, 0
  %108 = icmp uge i64 %106, %93
  %or.cond627.not = or i1 %.not586, %108
  %or.cond633 = select i1 %107, i1 %or.cond627.not, i1 false
  br i1 %or.cond633, label %109, label %.thread610.sink.split

109:                                              ; preds = %105
  %.pr = load i64, ptr %28, align 8, !tbaa !5
  %110 = icmp eq i64 %.pr, 0
  br i1 %110, label %111, label %.thread610

111:                                              ; preds = %109
  %112 = icmp eq i64 %93, 0
  br i1 %112, label %137, label %113

113:                                              ; preds = %111
  %114 = shl nuw i64 %93, 1
  %.not578 = icmp eq i64 %77, 0
  br i1 %.not578, label %117, label %115

115:                                              ; preds = %113
  %116 = shl i64 %93, 2
  br label %121

117:                                              ; preds = %113
  %or.cond7 = select i1 %91, i1 true, i1 %90
  br i1 %or.cond7, label %118, label %121

118:                                              ; preds = %117
  %119 = add nuw nsw i64 %93, 1
  %120 = mul nsw i64 %114, %119
  br label %121

121:                                              ; preds = %118, %117, %115
  %.0541 = phi i64 [ %116, %115 ], [ %120, %118 ], [ %114, %117 ]
  %122 = tail call i64 @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) #6
  %123 = add i64 %122, 1
  %124 = mul i64 %123, %93
  %125 = tail call i64 @llvm.smax.i64(i64 %.0541, i64 %124)
  store i64 %125, ptr %30, align 8, !tbaa !5
  %126 = load i64, ptr %4, align 8, !tbaa !5
  %127 = tail call i64 @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) #6
  %128 = add i64 %127, 1
  %129 = mul i64 %128, %126
  store i64 %129, ptr %31, align 8, !tbaa !5
  %130 = tail call i64 @llvm.smax.i64(i64 %125, i64 %129)
  br i1 %.not585, label %137, label %131

131:                                              ; preds = %121
  store i64 %130, ptr %30, align 8, !tbaa !5
  %132 = load i64, ptr %4, align 8, !tbaa !5
  %133 = tail call i64 @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) #6
  %134 = add i64 %133, 1
  %135 = mul i64 %134, %132
  store i64 %135, ptr %31, align 8, !tbaa !5
  %136 = tail call i64 @llvm.smax.i64(i64 %130, i64 %135)
  br label %137

137:                                              ; preds = %111, %121, %131
  %.1542 = phi i64 [ %.0541, %131 ], [ %.0541, %121 ], [ 1, %111 ]
  %.0540 = phi i64 [ %136, %131 ], [ %130, %121 ], [ 1, %111 ]
  %138 = sitofp i64 %.0540 to float
  store float %138, ptr %23, align 4, !tbaa !9
  %139 = getelementptr inbounds i8, ptr %23, i64 4
  store float 0.000000e+00, ptr %139, align 4, !tbaa !12
  %140 = load i64, ptr %24, align 8, !tbaa !5
  %141 = icmp sge i64 %140, %.1542
  %or.cond9 = select i1 %141, i1 true, i1 %81
  br i1 %or.cond9, label %.thread, label %.thread610.sink.split

.thread:                                          ; preds = %137
  %.pr607.pr = load i64, ptr %28, align 8, !tbaa !5
  %.not582 = icmp eq i64 %.pr607.pr, 0
  br i1 %.not582, label %145, label %.thread610

.thread610.sink.split:                            ; preds = %86, %84, %137, %105, %101, %98, %95, %92, %87
  %.sink = phi i64 [ %.mux.mux, %84 ], [ %.mux693, %86 ], [ -4, %87 ], [ -5, %92 ], [ -7, %95 ], [ -9, %98 ], [ -13, %101 ], [ -15, %105 ], [ -25, %137 ]
  store i64 %.sink, ptr %28, align 8, !tbaa !5
  br label %.thread610

.thread610:                                       ; preds = %.thread610.sink.split, %109, %.thread
  %142 = phi i64 [ %.pr607.pr, %.thread ], [ %.pr, %109 ], [ %.sink, %.thread610.sink.split ]
  %143 = sub nsw i64 0, %142
  store i64 %143, ptr %30, align 8, !tbaa !5
  %144 = call i32 @xerbla_(ptr noundef nonnull @.str.10, ptr noundef nonnull %30) #6
  br label %463

145:                                              ; preds = %.thread
  br i1 %81, label %463, label %146

146:                                              ; preds = %145
  %147 = load i64, ptr %4, align 8, !tbaa !5
  %148 = icmp eq i64 %147, 0
  br i1 %148, label %463, label %149

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

168:                                              ; preds = %149
  %169 = load float, ptr %41, align 4, !tbaa !13
  %170 = fcmp olt float %169, %164
  br i1 %170, label %171, label %173

171:                                              ; preds = %149, %168
  %storemerge630 = phi float [ %169, %168 ], [ %166, %149 ]
  store float %storemerge630, ptr %42, align 4, !tbaa !13
  %172 = call i32 @clascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %34, ptr noundef nonnull %42, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %36) #6
  br label %173

173:                                              ; preds = %168, %171
  %.not583617 = phi i1 [ false, %171 ], [ true, %168 ]
  %174 = call double @clange_(ptr noundef nonnull @.str.11, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25) #6
  %175 = fptrunc double %174 to float
  store float %175, ptr %35, align 4, !tbaa !13
  %176 = fcmp ogt float %175, 0.000000e+00
  %177 = load float, ptr %44, align 4
  %178 = fcmp ogt float %177, %175
  %or.cond637 = select i1 %176, i1 %178, i1 false
  br i1 %or.cond637, label %182, label %179

179:                                              ; preds = %173
  %180 = load float, ptr %41, align 4, !tbaa !13
  %181 = fcmp olt float %180, %175
  br i1 %181, label %182, label %184

182:                                              ; preds = %173, %179
  %storemerge631 = phi float [ %180, %179 ], [ %177, %173 ]
  store float %storemerge631, ptr %43, align 4, !tbaa !13
  %183 = call i32 @clascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %35, ptr noundef nonnull %43, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %36) #6
  br label %184

184:                                              ; preds = %179, %182
  %.not584622 = phi i1 [ false, %182 ], [ true, %179 ]
  %185 = call i32 @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 %36) #6
  %186 = call double @clange_(ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %25) #6
  %187 = fptrunc double %186 to float
  store float %187, ptr %19, align 4, !tbaa !13
  br i1 %.not583617, label %191, label %188

188:                                              ; preds = %184
  store float %187, ptr %25, align 4, !tbaa !13
  %189 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %42, ptr noundef nonnull %34, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull @c__1, ptr noundef nonnull %36) #6
  %190 = load float, ptr %25, align 4, !tbaa !13
  store float %190, ptr %19, align 4, !tbaa !13
  br label %191

191:                                              ; preds = %188, %184
  %192 = call double @clange_(ptr noundef nonnull @.str.13, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %25) #6
  %193 = fptrunc double %192 to float
  store float %193, ptr %20, align 4, !tbaa !13
  br i1 %.not584622, label %197, label %194

194:                                              ; preds = %191
  store float %193, ptr %25, align 4, !tbaa !13
  %195 = call i32 @slascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %35, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull @c__1, ptr noundef nonnull %36) #6
  %196 = load float, ptr %25, align 4, !tbaa !13
  store float %196, ptr %20, align 4, !tbaa !13
  br label %197

197:                                              ; preds = %194, %191
  %198 = load i64, ptr %16, align 8, !tbaa !5
  %199 = add nsw i64 %198, 1
  %200 = load i64, ptr %15, align 8, !tbaa !5
  %201 = sub i64 %199, %200
  store i64 %201, ptr %38, align 8, !tbaa !5
  %or.cond11 = and i1 %.not587, %88
  br i1 %or.cond11, label %205, label %202

202:                                              ; preds = %197
  %203 = load i64, ptr %4, align 8, !tbaa !5
  %reass.sub = sub i64 %203, %200
  %204 = add i64 %reass.sub, 1
  br label %205

205:                                              ; preds = %197, %202
  %storemerge = phi i64 [ %204, %202 ], [ %201, %197 ]
  store i64 %storemerge, ptr %37, align 8, !tbaa !5
  %206 = load i64, ptr %24, align 8, !tbaa !5
  %207 = sub i64 %206, %201
  store i64 %207, ptr %30, align 8, !tbaa !5
  %208 = add i64 %48, 1
  %209 = mul i64 %200, %208
  %210 = getelementptr inbounds %struct.complex, ptr %50, i64 %209
  %211 = getelementptr %struct.complex, ptr %23, i64 %201
  %212 = call i32 @cgeqrf_(ptr noundef nonnull %38, ptr noundef nonnull %37, ptr noundef %210, ptr noundef nonnull %8, ptr noundef nonnull %23, ptr noundef %211, ptr noundef nonnull %30, ptr noundef nonnull %36) #6
  %213 = load i64, ptr %24, align 8, !tbaa !5
  %214 = sub i64 %213, %201
  store i64 %214, ptr %30, align 8, !tbaa !5
  %215 = load i64, ptr %15, align 8, !tbaa !5
  %216 = mul i64 %215, %208
  %217 = getelementptr inbounds %struct.complex, ptr %50, i64 %216
  %218 = add i64 %45, 1
  %219 = mul i64 %215, %218
  %220 = getelementptr inbounds %struct.complex, ptr %47, i64 %219
  %221 = call i32 @cunmqr_(ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.15, ptr noundef nonnull %38, ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef %217, ptr noundef nonnull %8, ptr noundef nonnull %23, ptr noundef %220, ptr noundef nonnull %6, ptr noundef %211, ptr noundef nonnull %30, ptr noundef nonnull %36) #6
  br i1 %.not585, label %245, label %222

222:                                              ; preds = %205
  %223 = call i32 @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) #6
  %224 = load i64, ptr %38, align 8, !tbaa !5
  %225 = icmp sgt i64 %224, 1
  br i1 %225, label %226, label %237

226:                                              ; preds = %222
  %227 = add nsw i64 %224, -1
  store i64 %227, ptr %30, align 8, !tbaa !5
  store i64 %227, ptr %31, align 8, !tbaa !5
  %228 = load i64, ptr %15, align 8, !tbaa !5
  %229 = add nsw i64 %228, 1
  %230 = mul nsw i64 %228, %48
  %231 = getelementptr %struct.complex, ptr %50, i64 %229
  %232 = getelementptr %struct.complex, ptr %231, i64 %230
  %233 = mul nsw i64 %228, %51
  %234 = getelementptr %struct.complex, ptr %53, i64 %229
  %235 = getelementptr %struct.complex, ptr %234, i64 %233
  %236 = call i32 @clacpy_(ptr noundef nonnull @.str.14, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %232, ptr noundef nonnull %8, ptr noundef %235, ptr noundef nonnull %12) #6
  br label %237

237:                                              ; preds = %226, %222
  %238 = load i64, ptr %24, align 8, !tbaa !5
  %239 = sub i64 %238, %201
  store i64 %239, ptr %30, align 8, !tbaa !5
  %240 = load i64, ptr %15, align 8, !tbaa !5
  %241 = add i64 %51, 1
  %242 = mul i64 %240, %241
  %243 = getelementptr inbounds %struct.complex, ptr %53, i64 %242
  %244 = call i32 @cungqr_(ptr noundef nonnull %38, ptr noundef nonnull %38, ptr noundef nonnull %38, ptr noundef %243, ptr noundef nonnull %12, ptr noundef nonnull %23, ptr noundef %211, ptr noundef nonnull %30, ptr noundef nonnull %36) #6
  br label %245

245:                                              ; preds = %237, %205
  br i1 %.not586, label %248, label %246

246:                                              ; preds = %245
  %247 = call i32 @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) #6
  br label %248

248:                                              ; preds = %246, %245
  br i1 %or.cond11, label %251, label %249

249:                                              ; preds = %248
  %250 = call i32 @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 %36) #6
  br label %258

251:                                              ; preds = %248
  %252 = load i64, ptr %15, align 8, !tbaa !5
  %253 = mul i64 %252, %218
  %254 = getelementptr inbounds %struct.complex, ptr %47, i64 %253
  %255 = mul i64 %252, %208
  %256 = getelementptr inbounds %struct.complex, ptr %50, i64 %255
  %257 = call i32 @cgghrd_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %38, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef %254, ptr noundef nonnull %6, ptr noundef %256, ptr noundef nonnull %8, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %36) #6
  br label %258

258:                                              ; preds = %251, %249
  %.604 = phi i8 [ 69, %251 ], [ 83, %249 ]
  store i8 %.604, ptr %40, align 1, !tbaa !14
  %259 = load i64, ptr %24, align 8, !tbaa !5
  store i64 %259, ptr %30, align 8, !tbaa !5
  %260 = call i32 @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 %36) #6
  %261 = load i64, ptr %36, align 8, !tbaa !5
  %.not589 = icmp eq i64 %261, 0
  br i1 %.not589, label %272, label %262

262:                                              ; preds = %258
  %263 = icmp slt i64 %261, 1
  %.pre = load i64, ptr %4, align 8, !tbaa !5
  %.not600 = icmp sgt i64 %261, %.pre
  %or.cond690 = select i1 %263, i1 true, i1 %.not600
  br i1 %or.cond690, label %265, label %264

264:                                              ; preds = %262
  store i64 %261, ptr %28, align 8, !tbaa !5
  br label %462

265:                                              ; preds = %262
  %266 = icmp sle i64 %261, %.pre
  %267 = shl i64 %.pre, 1
  %.not601 = icmp sgt i64 %261, %267
  %or.cond605 = or i1 %266, %.not601
  br i1 %or.cond605, label %270, label %268

268:                                              ; preds = %265
  %269 = sub nsw i64 %261, %.pre
  store i64 %269, ptr %28, align 8, !tbaa !5
  br label %462

270:                                              ; preds = %265
  %271 = add nsw i64 %.pre, 1
  store i64 %271, ptr %28, align 8, !tbaa !5
  br label %462

272:                                              ; preds = %258
  br i1 %or.cond11, label %.loopexit641, label %273

273:                                              ; preds = %272
  br i1 %.not587, label %285, label %274

274:                                              ; preds = %273
  br i1 %.not585, label %278, label %275

275:                                              ; preds = %274
  br i1 %.not586, label %277, label %276

276:                                              ; preds = %275
  store i8 66, ptr %40, align 1, !tbaa !14
  br label %279

277:                                              ; preds = %275
  store i8 76, ptr %40, align 1, !tbaa !14
  br label %279

278:                                              ; preds = %274
  store i8 82, ptr %40, align 1, !tbaa !14
  br label %279

279:                                              ; preds = %276, %277, %278
  %280 = call i32 @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 %33, ptr noundef nonnull %23, ptr noundef %25, ptr noundef nonnull %36) #6
  %281 = load i64, ptr %36, align 8, !tbaa !5
  %.not590 = icmp eq i64 %281, 0
  br i1 %.not590, label %285, label %282

282:                                              ; preds = %279
  %283 = load i64, ptr %4, align 8, !tbaa !5
  %284 = add nsw i64 %283, 2
  store i64 %284, ptr %28, align 8, !tbaa !5
  br label %462

285:                                              ; preds = %279, %273
  br i1 %88, label %.loopexit641, label %286

286:                                              ; preds = %285
  %287 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %287, ptr %30, align 8, !tbaa !5
  %.not591644 = icmp slt i64 %287, 1
  br i1 %.not591644, label %.loopexit641, label %.lr.ph647

.lr.ph647:                                        ; preds = %286
  %or.cond19 = select i1 %89, i1 true, i1 %90
  br i1 %or.cond19, label %.lr.ph647.split.us, label %.lr.ph647.split

.lr.ph647.split.us:                               ; preds = %.lr.ph647, %296
  %.0556645.us = phi i64 [ %302, %296 ], [ 1, %.lr.ph647 ]
  %288 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %288, ptr %31, align 8, !tbaa !5
  %.not592642.us = icmp slt i64 %288, 1
  br i1 %.not592642.us, label %._crit_edge.us, label %.lr.ph.us.preheader

.lr.ph.us.preheader:                              ; preds = %.lr.ph647.split.us
  %289 = shl nuw i64 %288, 3
  call void @llvm.memset.p0.i64(ptr align 8 %27, i8 0, i64 %289, i1 false), !tbaa !5
  br label %._crit_edge.us

._crit_edge.us:                                   ; preds = %.lr.ph.us.preheader, %.lr.ph647.split.us
  %290 = getelementptr inbounds i64, ptr %59, i64 %.0556645.us
  store i64 1, ptr %290, align 8, !tbaa !5
  %291 = load i64, ptr %4, align 8, !tbaa !5
  %reass.add.us = shl i64 %291, 1
  %292 = getelementptr %struct.complex, ptr %23, i64 %291
  %293 = getelementptr %struct.complex, ptr %23, i64 %reass.add.us
  %294 = call i32 @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 %292, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef nonnull %32, ptr noundef nonnull %293, ptr noundef %25, ptr noundef nonnull %36) #6
  %295 = load i64, ptr %36, align 8, !tbaa !5
  %.not593.us = icmp eq i64 %295, 0
  br i1 %.not593.us, label %296, label %.split.us

296:                                              ; preds = %._crit_edge.us
  %297 = load i64, ptr %24, align 8, !tbaa !5
  %298 = sub i64 %297, %reass.add.us
  store i64 %298, ptr %31, align 8, !tbaa !5
  %299 = getelementptr inbounds float, ptr %57, i64 %.0556645.us
  %300 = getelementptr inbounds float, ptr %58, i64 %.0556645.us
  %301 = call i32 @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 %292, ptr noundef nonnull %4, ptr noundef nonnull %299, ptr noundef nonnull %300, ptr noundef nonnull @c__1, ptr noundef nonnull %32, ptr noundef %293, ptr noundef nonnull %31, ptr noundef %26, ptr noundef nonnull %36) #6
  %302 = add nuw nsw i64 %.0556645.us, 1
  %303 = load i64, ptr %30, align 8, !tbaa !5
  %.not591.us.not = icmp slt i64 %.0556645.us, %303
  br i1 %.not591.us.not, label %.lr.ph647.split.us, label %.loopexit641, !llvm.loop !15

.lr.ph647.split:                                  ; preds = %.lr.ph647, %._crit_edge
  %.0556645 = phi i64 [ %315, %._crit_edge ], [ 1, %.lr.ph647 ]
  %304 = load i64, ptr %4, align 8, !tbaa !5
  %.not592642 = icmp slt i64 %304, 1
  br i1 %.not592642, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.lr.ph647.split
  %305 = shl nuw i64 %304, 3
  call void @llvm.memset.p0.i64(ptr align 8 %27, i8 0, i64 %305, i1 false), !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph.preheader, %.lr.ph647.split
  %306 = getelementptr inbounds i64, ptr %59, i64 %.0556645
  store i64 1, ptr %306, align 8, !tbaa !5
  %307 = load i64, ptr %4, align 8, !tbaa !5
  %reass.add = shl i64 %307, 1
  %308 = load i64, ptr %24, align 8, !tbaa !5
  %309 = sub i64 %308, %reass.add
  store i64 %309, ptr %31, align 8, !tbaa !5
  %310 = getelementptr %struct.complex, ptr %23, i64 %307
  %311 = getelementptr inbounds float, ptr %57, i64 %.0556645
  %312 = getelementptr inbounds float, ptr %58, i64 %.0556645
  %313 = getelementptr %struct.complex, ptr %23, i64 %reass.add
  %314 = call i32 @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 %310, ptr noundef nonnull %4, ptr noundef nonnull %311, ptr noundef nonnull %312, ptr noundef nonnull @c__1, ptr noundef nonnull %32, ptr noundef %313, ptr noundef nonnull %31, ptr noundef %26, ptr noundef nonnull %36) #6
  %315 = add nuw nsw i64 %.0556645, 1
  %316 = load i64, ptr %30, align 8, !tbaa !5
  %.not591.not = icmp slt i64 %.0556645, %316
  br i1 %.not591.not, label %.lr.ph647.split, label %.loopexit641, !llvm.loop !15

.split.us:                                        ; preds = %._crit_edge.us
  %317 = load i64, ptr %4, align 8, !tbaa !5
  %318 = add nsw i64 %317, 2
  store i64 %318, ptr %28, align 8, !tbaa !5
  br label %462

.loopexit641:                                     ; preds = %._crit_edge, %296, %286, %285, %272
  br i1 %.not585, label %.loopexit640, label %319

319:                                              ; preds = %.loopexit641
  %320 = call i32 @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 %36) #6
  %321 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %321, ptr %30, align 8, !tbaa !5
  %.not594660 = icmp slt i64 %321, 1
  br i1 %.not594660, label %.loopexit640, label %.lr.ph663.preheader

.lr.ph663.preheader:                              ; preds = %319
  %322 = shl i64 %51, 3
  br label %.lr.ph663

.lr.ph663thread-pre-split:                        ; preds = %.loopexit639
  %323 = add nuw nsw i64 %.0553661, 1
  %.pr686 = load i64, ptr %4, align 8, !tbaa !5
  %indvar.next = add i64 %indvar, 1
  br label %.lr.ph663

.lr.ph663:                                        ; preds = %.lr.ph663.preheader, %.lr.ph663thread-pre-split
  %indvar = phi i64 [ 0, %.lr.ph663.preheader ], [ %indvar.next, %.lr.ph663thread-pre-split ]
  %324 = phi i64 [ %321, %.lr.ph663.preheader ], [ %.pr686, %.lr.ph663thread-pre-split ]
  %.0553661 = phi i64 [ 1, %.lr.ph663.preheader ], [ %323, %.lr.ph663thread-pre-split ]
  %325 = mul i64 %322, %indvar
  %scevgep = getelementptr i8, ptr %11, i64 %325
  %326 = or disjoint i64 %325, 4
  %scevgep696 = getelementptr i8, ptr %11, i64 %326
  store i64 %324, ptr %31, align 8, !tbaa !5
  %.not598648 = icmp slt i64 %324, 1
  br i1 %.not598648, label %._crit_edge653, label %.lr.ph652

.lr.ph652:                                        ; preds = %.lr.ph663
  %327 = mul nsw i64 %.0553661, %51
  %invariant.gep = getelementptr %struct.complex, ptr %53, i64 %327
  br label %328

328:                                              ; preds = %.lr.ph652, %328
  %.0549650 = phi float [ 0.000000e+00, %.lr.ph652 ], [ %340, %328 ]
  %.0551649 = phi i64 [ 1, %.lr.ph652 ], [ %341, %328 ]
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %.0551649
  %329 = load float, ptr %gep, align 4, !tbaa !9
  %330 = call double @r_imag(ptr noundef nonnull %gep) #6
  %331 = fptrunc double %330 to float
  %332 = insertelement <2 x float> poison, float %329, i64 0
  %333 = insertelement <2 x float> %332, float %331, i64 1
  %334 = fcmp oge <2 x float> %333, zeroinitializer
  %335 = fneg <2 x float> %333
  %336 = select <2 x i1> %334, <2 x float> %333, <2 x float> %335
  %shift = shufflevector <2 x float> %336, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %337 = fadd <2 x float> %336, %shift
  %338 = extractelement <2 x float> %337, i64 0
  %339 = fcmp oge float %.0549650, %338
  %340 = select i1 %339, float %.0549650, float %338
  %341 = add nuw nsw i64 %.0551649, 1
  %342 = load i64, ptr %31, align 8, !tbaa !5
  %.not598.not = icmp slt i64 %.0551649, %342
  br i1 %.not598.not, label %328, label %._crit_edge653, !llvm.loop !17

._crit_edge653:                                   ; preds = %328, %.lr.ph663
  %.0549.lcssa = phi float [ 0.000000e+00, %.lr.ph663 ], [ %340, %328 ]
  %343 = load float, ptr %44, align 4, !tbaa !13
  %344 = fcmp olt float %.0549.lcssa, %343
  br i1 %344, label %.loopexit639, label %345

345:                                              ; preds = %._crit_edge653
  %346 = fdiv float 1.000000e+00, %.0549.lcssa
  %347 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %347, ptr %31, align 8, !tbaa !5
  %.not599654 = icmp slt i64 %347, 1
  br i1 %.not599654, label %.loopexit639, label %.lr.ph657

.lr.ph657:                                        ; preds = %345
  %348 = mul nsw i64 %.0553661, %51
  %invariant.gep658 = getelementptr %struct.complex, ptr %53, i64 %348
  %min.iters.check = icmp ult i64 %347, 12
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph657
  %349 = add nsw i64 %347, -1
  %mul.result = shl i64 %349, 3
  %350 = getelementptr i8, ptr %scevgep, i64 %mul.result
  %351 = icmp ult ptr %350, %scevgep
  %mul.result698 = shl i64 %349, 3
  %mul.overflow699 = icmp ugt i64 %349, 2305843009213693951
  %352 = getelementptr i8, ptr %scevgep696, i64 %mul.result698
  %353 = icmp ult ptr %352, %scevgep696
  %354 = or i1 %353, %mul.overflow699
  %355 = or i1 %351, %354
  br i1 %355, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.scevcheck
  %n.vec = and i64 %347, 4611686018427387902
  %ind.end = or i64 %347, 1
  %broadcast.splatinsert = insertelement <2 x float> poison, float %346, i64 0
  %356 = 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
  %357 = getelementptr %struct.complex, ptr %invariant.gep658, i64 %offset.idx
  %358 = load <4 x float>, ptr %357, align 4, !tbaa !13
  %interleaved.vec = fmul <4 x float> %356, %358
  store <4 x float> %interleaved.vec, ptr %357, align 4, !tbaa !13
  %index.next = add nuw i64 %index, 2
  %359 = icmp eq i64 %index.next, %n.vec
  br i1 %359, label %middle.block, label %vector.body, !llvm.loop !18

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

scalar.ph.preheader:                              ; preds = %middle.block, %vector.scevcheck, %.lr.ph657
  %.1552655.ph = phi i64 [ 1, %vector.scevcheck ], [ 1, %.lr.ph657 ], [ %ind.end, %middle.block ]
  %360 = add nuw i64 %347, 1
  %361 = sub i64 %360, %.1552655.ph
  %362 = sub i64 %347, %.1552655.ph
  %xtraiter = and i64 %361, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol.preheader

scalar.ph.prol.preheader:                         ; preds = %scalar.ph.preheader
  %363 = insertelement <2 x float> poison, float %346, i64 0
  %364 = shufflevector <2 x float> %363, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.prol, %scalar.ph.prol.preheader
  %.1552655.prol = phi i64 [ %367, %scalar.ph.prol ], [ %.1552655.ph, %scalar.ph.prol.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph.prol ], [ 0, %scalar.ph.prol.preheader ]
  %gep659.prol = getelementptr %struct.complex, ptr %invariant.gep658, i64 %.1552655.prol
  %365 = load <2 x float>, ptr %gep659.prol, align 4, !tbaa !13
  %366 = fmul <2 x float> %364, %365
  store <2 x float> %366, ptr %gep659.prol, align 4, !tbaa !13
  %367 = add nuw i64 %.1552655.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol, !llvm.loop !21

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %.1552655.unr = phi i64 [ %.1552655.ph, %scalar.ph.preheader ], [ %367, %scalar.ph.prol ]
  %368 = icmp ult i64 %362, 3
  br i1 %368, label %.loopexit639, label %scalar.ph.preheader.new

scalar.ph.preheader.new:                          ; preds = %scalar.ph.prol.loopexit
  %369 = insertelement <2 x float> poison, float %346, i64 0
  %370 = shufflevector <2 x float> %369, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep740 = getelementptr i8, ptr %invariant.gep658, i64 8
  %371 = insertelement <2 x float> poison, float %346, i64 0
  %372 = shufflevector <2 x float> %371, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep742 = getelementptr i8, ptr %invariant.gep658, i64 16
  %373 = insertelement <2 x float> poison, float %346, i64 0
  %374 = shufflevector <2 x float> %373, <2 x float> poison, <2 x i32> zeroinitializer
  %375 = insertelement <2 x float> poison, float %346, i64 0
  %376 = shufflevector <2 x float> %375, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph, %scalar.ph.preheader.new
  %.1552655 = phi i64 [ %.1552655.unr, %scalar.ph.preheader.new ], [ %386, %scalar.ph ]
  %gep659 = getelementptr %struct.complex, ptr %invariant.gep658, i64 %.1552655
  %377 = load <2 x float>, ptr %gep659, align 4, !tbaa !13
  %378 = fmul <2 x float> %370, %377
  store <2 x float> %378, ptr %gep659, align 4, !tbaa !13
  %gep741 = getelementptr %struct.complex, ptr %invariant.gep740, i64 %.1552655
  %379 = load <2 x float>, ptr %gep741, align 4, !tbaa !13
  %380 = fmul <2 x float> %372, %379
  store <2 x float> %380, ptr %gep741, align 4, !tbaa !13
  %gep743 = getelementptr %struct.complex, ptr %invariant.gep742, i64 %.1552655
  %381 = load <2 x float>, ptr %gep743, align 4, !tbaa !13
  %382 = fmul <2 x float> %374, %381
  store <2 x float> %382, ptr %gep743, align 4, !tbaa !13
  %383 = add nuw i64 %.1552655, 3
  %gep659.3 = getelementptr %struct.complex, ptr %invariant.gep658, i64 %383
  %384 = load <2 x float>, ptr %gep659.3, align 4, !tbaa !13
  %385 = fmul <2 x float> %376, %384
  store <2 x float> %385, ptr %gep659.3, align 4, !tbaa !13
  %386 = add nuw i64 %.1552655, 4
  %exitcond.not.3 = icmp eq i64 %383, %347
  br i1 %exitcond.not.3, label %.loopexit639, label %scalar.ph, !llvm.loop !23

.loopexit639:                                     ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block, %345, %._crit_edge653
  %387 = load i64, ptr %30, align 8, !tbaa !5
  %.not594.not = icmp slt i64 %.0553661, %387
  br i1 %.not594.not, label %.lr.ph663thread-pre-split, label %.loopexit640, !llvm.loop !24

.loopexit640:                                     ; preds = %.loopexit639, %319, %.loopexit641
  br i1 %.not586, label %.loopexit638, label %388

388:                                              ; preds = %.loopexit640
  %389 = call i32 @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 %36) #6
  %390 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %390, ptr %30, align 8, !tbaa !5
  %.not595679 = icmp slt i64 %390, 1
  br i1 %.not595679, label %.loopexit638, label %.lr.ph682.preheader

.lr.ph682.preheader:                              ; preds = %388
  %391 = shl i64 %54, 3
  br label %.lr.ph682

.lr.ph682thread-pre-split:                        ; preds = %.loopexit
  %392 = add nuw nsw i64 %.1554680, 1
  %.pr687 = load i64, ptr %4, align 8, !tbaa !5
  %indvar.next703 = add i64 %indvar702, 1
  br label %.lr.ph682

.lr.ph682:                                        ; preds = %.lr.ph682.preheader, %.lr.ph682thread-pre-split
  %indvar702 = phi i64 [ 0, %.lr.ph682.preheader ], [ %indvar.next703, %.lr.ph682thread-pre-split ]
  %393 = phi i64 [ %390, %.lr.ph682.preheader ], [ %.pr687, %.lr.ph682thread-pre-split ]
  %.1554680 = phi i64 [ 1, %.lr.ph682.preheader ], [ %392, %.lr.ph682thread-pre-split ]
  %394 = mul i64 %391, %indvar702
  %scevgep704 = getelementptr i8, ptr %13, i64 %394
  %395 = or disjoint i64 %394, 4
  %scevgep708 = getelementptr i8, ptr %13, i64 %395
  store i64 %393, ptr %31, align 8, !tbaa !5
  %.not596664 = icmp slt i64 %393, 1
  br i1 %.not596664, label %._crit_edge669, label %.lr.ph668

.lr.ph668:                                        ; preds = %.lr.ph682
  %396 = mul nsw i64 %.1554680, %54
  %invariant.gep671 = getelementptr %struct.complex, ptr %56, i64 %396
  br label %397

397:                                              ; preds = %.lr.ph668, %397
  %.1550666 = phi float [ 0.000000e+00, %.lr.ph668 ], [ %409, %397 ]
  %.2665 = phi i64 [ 1, %.lr.ph668 ], [ %410, %397 ]
  %gep672 = getelementptr %struct.complex, ptr %invariant.gep671, i64 %.2665
  %398 = load float, ptr %gep672, align 4, !tbaa !9
  %399 = call double @r_imag(ptr noundef nonnull %gep672) #6
  %400 = fptrunc double %399 to float
  %401 = insertelement <2 x float> poison, float %398, i64 0
  %402 = insertelement <2 x float> %401, float %400, i64 1
  %403 = fcmp oge <2 x float> %402, zeroinitializer
  %404 = fneg <2 x float> %402
  %405 = select <2 x i1> %403, <2 x float> %402, <2 x float> %404
  %shift731 = shufflevector <2 x float> %405, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %406 = fadd <2 x float> %405, %shift731
  %407 = extractelement <2 x float> %406, i64 0
  %408 = fcmp oge float %.1550666, %407
  %409 = select i1 %408, float %.1550666, float %407
  %410 = add nuw nsw i64 %.2665, 1
  %411 = load i64, ptr %31, align 8, !tbaa !5
  %.not596.not = icmp slt i64 %.2665, %411
  br i1 %.not596.not, label %397, label %._crit_edge669, !llvm.loop !25

._crit_edge669:                                   ; preds = %397, %.lr.ph682
  %.1550.lcssa = phi float [ 0.000000e+00, %.lr.ph682 ], [ %409, %397 ]
  %412 = load float, ptr %44, align 4, !tbaa !13
  %413 = fcmp olt float %.1550.lcssa, %412
  br i1 %413, label %.loopexit, label %414

414:                                              ; preds = %._crit_edge669
  %415 = fdiv float 1.000000e+00, %.1550.lcssa
  %416 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %416, ptr %31, align 8, !tbaa !5
  %.not597673 = icmp slt i64 %416, 1
  br i1 %.not597673, label %.loopexit, label %.lr.ph676

.lr.ph676:                                        ; preds = %414
  %417 = mul nsw i64 %.1554680, %54
  %invariant.gep677 = getelementptr %struct.complex, ptr %56, i64 %417
  %min.iters.check714 = icmp ult i64 %416, 12
  br i1 %min.iters.check714, label %scalar.ph713.preheader, label %vector.scevcheck701

vector.scevcheck701:                              ; preds = %.lr.ph676
  %418 = add nsw i64 %416, -1
  %mul.result706 = shl i64 %418, 3
  %419 = getelementptr i8, ptr %scevgep704, i64 %mul.result706
  %420 = icmp ult ptr %419, %scevgep704
  %mul.result710 = shl i64 %418, 3
  %mul.overflow711 = icmp ugt i64 %418, 2305843009213693951
  %421 = getelementptr i8, ptr %scevgep708, i64 %mul.result710
  %422 = icmp ult ptr %421, %scevgep708
  %423 = or i1 %422, %mul.overflow711
  %424 = or i1 %420, %423
  br i1 %424, label %scalar.ph713.preheader, label %vector.ph715

vector.ph715:                                     ; preds = %vector.scevcheck701
  %n.vec717 = and i64 %416, 4611686018427387902
  %ind.end718 = or i64 %416, 1
  %broadcast.splatinsert726 = insertelement <2 x float> poison, float %415, i64 0
  %425 = shufflevector <2 x float> %broadcast.splatinsert726, <2 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body720

vector.body720:                                   ; preds = %vector.body720, %vector.ph715
  %index721 = phi i64 [ 0, %vector.ph715 ], [ %index.next729, %vector.body720 ]
  %offset.idx722 = or disjoint i64 %index721, 1
  %426 = getelementptr %struct.complex, ptr %invariant.gep677, i64 %offset.idx722
  %427 = load <4 x float>, ptr %426, align 4, !tbaa !13
  %interleaved.vec728 = fmul <4 x float> %425, %427
  store <4 x float> %interleaved.vec728, ptr %426, align 4, !tbaa !13
  %index.next729 = add nuw i64 %index721, 2
  %428 = icmp eq i64 %index.next729, %n.vec717
  br i1 %428, label %middle.block712, label %vector.body720, !llvm.loop !26

middle.block712:                                  ; preds = %vector.body720
  %cmp.n730 = icmp eq i64 %416, %n.vec717
  br i1 %cmp.n730, label %.loopexit, label %scalar.ph713.preheader

scalar.ph713.preheader:                           ; preds = %middle.block712, %vector.scevcheck701, %.lr.ph676
  %.3674.ph = phi i64 [ 1, %vector.scevcheck701 ], [ 1, %.lr.ph676 ], [ %ind.end718, %middle.block712 ]
  %429 = add nuw i64 %416, 1
  %430 = sub i64 %429, %.3674.ph
  %431 = sub i64 %416, %.3674.ph
  %xtraiter734 = and i64 %430, 3
  %lcmp.mod735.not = icmp eq i64 %xtraiter734, 0
  br i1 %lcmp.mod735.not, label %scalar.ph713.prol.loopexit, label %scalar.ph713.prol.preheader

scalar.ph713.prol.preheader:                      ; preds = %scalar.ph713.preheader
  %432 = insertelement <2 x float> poison, float %415, i64 0
  %433 = shufflevector <2 x float> %432, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph713.prol

scalar.ph713.prol:                                ; preds = %scalar.ph713.prol, %scalar.ph713.prol.preheader
  %.3674.prol = phi i64 [ %436, %scalar.ph713.prol ], [ %.3674.ph, %scalar.ph713.prol.preheader ]
  %prol.iter736 = phi i64 [ %prol.iter736.next, %scalar.ph713.prol ], [ 0, %scalar.ph713.prol.preheader ]
  %gep678.prol = getelementptr %struct.complex, ptr %invariant.gep677, i64 %.3674.prol
  %434 = load <2 x float>, ptr %gep678.prol, align 4, !tbaa !13
  %435 = fmul <2 x float> %433, %434
  store <2 x float> %435, ptr %gep678.prol, align 4, !tbaa !13
  %436 = add nuw i64 %.3674.prol, 1
  %prol.iter736.next = add i64 %prol.iter736, 1
  %prol.iter736.cmp.not = icmp eq i64 %prol.iter736.next, %xtraiter734
  br i1 %prol.iter736.cmp.not, label %scalar.ph713.prol.loopexit, label %scalar.ph713.prol, !llvm.loop !27

scalar.ph713.prol.loopexit:                       ; preds = %scalar.ph713.prol, %scalar.ph713.preheader
  %.3674.unr = phi i64 [ %.3674.ph, %scalar.ph713.preheader ], [ %436, %scalar.ph713.prol ]
  %437 = icmp ult i64 %431, 3
  br i1 %437, label %.loopexit, label %scalar.ph713.preheader.new

scalar.ph713.preheader.new:                       ; preds = %scalar.ph713.prol.loopexit
  %438 = insertelement <2 x float> poison, float %415, i64 0
  %439 = shufflevector <2 x float> %438, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep744 = getelementptr i8, ptr %invariant.gep677, i64 8
  %440 = insertelement <2 x float> poison, float %415, i64 0
  %441 = shufflevector <2 x float> %440, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep746 = getelementptr i8, ptr %invariant.gep677, i64 16
  %442 = insertelement <2 x float> poison, float %415, i64 0
  %443 = shufflevector <2 x float> %442, <2 x float> poison, <2 x i32> zeroinitializer
  %444 = insertelement <2 x float> poison, float %415, i64 0
  %445 = shufflevector <2 x float> %444, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph713

scalar.ph713:                                     ; preds = %scalar.ph713, %scalar.ph713.preheader.new
  %.3674 = phi i64 [ %.3674.unr, %scalar.ph713.preheader.new ], [ %455, %scalar.ph713 ]
  %gep678 = getelementptr %struct.complex, ptr %invariant.gep677, i64 %.3674
  %446 = load <2 x float>, ptr %gep678, align 4, !tbaa !13
  %447 = fmul <2 x float> %439, %446
  store <2 x float> %447, ptr %gep678, align 4, !tbaa !13
  %gep745 = getelementptr %struct.complex, ptr %invariant.gep744, i64 %.3674
  %448 = load <2 x float>, ptr %gep745, align 4, !tbaa !13
  %449 = fmul <2 x float> %441, %448
  store <2 x float> %449, ptr %gep745, align 4, !tbaa !13
  %gep747 = getelementptr %struct.complex, ptr %invariant.gep746, i64 %.3674
  %450 = load <2 x float>, ptr %gep747, align 4, !tbaa !13
  %451 = fmul <2 x float> %443, %450
  store <2 x float> %451, ptr %gep747, align 4, !tbaa !13
  %452 = add nuw i64 %.3674, 3
  %gep678.3 = getelementptr %struct.complex, ptr %invariant.gep677, i64 %452
  %453 = load <2 x float>, ptr %gep678.3, align 4, !tbaa !13
  %454 = fmul <2 x float> %445, %453
  store <2 x float> %454, ptr %gep678.3, align 4, !tbaa !13
  %455 = add nuw i64 %.3674, 4
  %exitcond685.not.3 = icmp eq i64 %452, %416
  br i1 %exitcond685.not.3, label %.loopexit, label %scalar.ph713, !llvm.loop !28

.loopexit:                                        ; preds = %scalar.ph713.prol.loopexit, %scalar.ph713, %middle.block712, %414, %._crit_edge669
  %456 = load i64, ptr %30, align 8, !tbaa !5
  %.not595.not = icmp slt i64 %.1554680, %456
  br i1 %.not595.not, label %.lr.ph682thread-pre-split, label %.loopexit638, !llvm.loop !29

.loopexit638:                                     ; preds = %.loopexit, %388, %.loopexit640
  br i1 %.not583617, label %459, label %457

457:                                              ; preds = %.loopexit638
  %458 = call i32 @clascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %42, ptr noundef nonnull %34, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %9, ptr noundef nonnull %4, ptr noundef nonnull %36) #6
  br label %459

459:                                              ; preds = %457, %.loopexit638
  br i1 %.not584622, label %462, label %460

460:                                              ; preds = %459
  %461 = call i32 @clascl_(ptr noundef nonnull @.str.12, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %43, ptr noundef nonnull %35, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %10, ptr noundef nonnull %4, ptr noundef nonnull %36) #6
  br label %462

462:                                              ; preds = %459, %460, %264, %270, %268, %.split.us, %282
  store float %138, ptr %23, align 4, !tbaa !9
  store float 0.000000e+00, ptr %139, align 4, !tbaa !12
  br label %463

463:                                              ; preds = %146, %145, %462, %.thread610
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  ret i32 0
}

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

declare i32 @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 i32 @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 i32 @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 i32 @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 i32 @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

declare double @r_imag(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!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, !22}
!22 = !{!"llvm.loop.unroll.disable"}
!23 = distinct !{!23, !16, !19}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}
!26 = distinct !{!26, !16, !19, !20}
!27 = distinct !{!27, !22}
!28 = distinct !{!28, !16, !19}
!29 = distinct !{!29, !16}


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