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

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

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

156:                                              ; preds = %17
  store i32 1, ptr %84, align 4, !tbaa !9
  store i32 0, ptr %58, align 4, !tbaa !9
  br label %164

157:                                              ; preds = %17
  %158 = load ptr, ptr %18, align 8, !tbaa !5
  %159 = call i32 @lsame_(ptr noundef %158, ptr noundef @.str.1)
  %160 = icmp ne i32 %159, 0
  br i1 %160, label %161, label %162

161:                                              ; preds = %157
  store i32 2, ptr %84, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %163

162:                                              ; preds = %157
  store i32 -1, ptr %84, align 4, !tbaa !9
  store i32 0, ptr %58, align 4, !tbaa !9
  br label %163

163:                                              ; preds = %162, %161
  br label %164

164:                                              ; preds = %163, %156
  %165 = load ptr, ptr %19, align 8, !tbaa !5
  %166 = call i32 @lsame_(ptr noundef %165, ptr noundef @.str)
  %167 = icmp ne i32 %166, 0
  br i1 %167, label %168, label %169

168:                                              ; preds = %164
  store i32 1, ptr %87, align 4, !tbaa !9
  store i32 0, ptr %59, align 4, !tbaa !9
  br label %176

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

173:                                              ; preds = %169
  store i32 2, ptr %87, align 4, !tbaa !9
  store i32 1, ptr %59, align 4, !tbaa !9
  br label %175

174:                                              ; preds = %169
  store i32 -1, ptr %87, align 4, !tbaa !9
  store i32 0, ptr %59, align 4, !tbaa !9
  br label %175

175:                                              ; preds = %174, %173
  br label %176

176:                                              ; preds = %175, %168
  %177 = load i32, ptr %58, align 4, !tbaa !9
  %178 = icmp ne i32 %177, 0
  br i1 %178, label %182, label %179

179:                                              ; preds = %176
  %180 = load i32, ptr %59, align 4, !tbaa !9
  %181 = icmp ne i32 %180, 0
  br label %182

182:                                              ; preds = %179, %176
  %183 = phi i1 [ true, %176 ], [ %181, %179 ]
  %184 = zext i1 %183 to i32
  store i32 %184, ptr %98, align 4, !tbaa !9
  %185 = load ptr, ptr %20, align 8, !tbaa !5
  %186 = load i32, ptr %185, align 4, !tbaa !9
  %187 = shl i32 %186, 1
  store i32 %187, ptr %43, align 4, !tbaa !9
  %188 = load i32, ptr %43, align 4, !tbaa !9
  %189 = icmp sge i32 %188, 1
  br i1 %189, label %190, label %192

190:                                              ; preds = %182
  %191 = load i32, ptr %43, align 4, !tbaa !9
  br label %193

192:                                              ; preds = %182
  br label %193

193:                                              ; preds = %192, %190
  %194 = phi i32 [ %191, %190 ], [ 1, %192 ]
  store i32 %194, ptr %88, align 4, !tbaa !9
  %195 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %195, ptr %93, align 4, !tbaa !9
  %196 = load i32, ptr %93, align 4, !tbaa !9
  %197 = sitofp i32 %196 to float
  %198 = load ptr, ptr %31, align 8, !tbaa !5
  %199 = getelementptr inbounds %struct.complex, ptr %198, i64 1
  %200 = getelementptr inbounds %struct.complex, ptr %199, i32 0, i32 0
  store float %197, ptr %200, align 4, !tbaa !11
  %201 = load ptr, ptr %31, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.complex, ptr %201, i64 1
  %203 = getelementptr inbounds %struct.complex, ptr %202, i32 0, i32 1
  store float 0.000000e+00, ptr %203, align 4, !tbaa !14
  %204 = load ptr, ptr %32, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  %206 = icmp eq i32 %205, -1
  %207 = zext i1 %206 to i32
  store i32 %207, ptr %94, align 4, !tbaa !9
  %208 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %208, align 4, !tbaa !9
  %209 = load i32, ptr %84, align 4, !tbaa !9
  %210 = icmp sle i32 %209, 0
  br i1 %210, label %211, label %213

211:                                              ; preds = %193
  %212 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -1, ptr %212, align 4, !tbaa !9
  br label %301

213:                                              ; preds = %193
  %214 = load i32, ptr %87, align 4, !tbaa !9
  %215 = icmp sle i32 %214, 0
  br i1 %215, label %216, label %218

216:                                              ; preds = %213
  %217 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -2, ptr %217, align 4, !tbaa !9
  br label %300

218:                                              ; preds = %213
  %219 = load ptr, ptr %20, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = icmp slt i32 %220, 0
  br i1 %221, label %222, label %224

222:                                              ; preds = %218
  %223 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -3, ptr %223, align 4, !tbaa !9
  br label %299

224:                                              ; preds = %218
  %225 = load ptr, ptr %22, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = load ptr, ptr %20, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = icmp sge i32 1, %228
  br i1 %229, label %230, label %231

230:                                              ; preds = %224
  br label %234

231:                                              ; preds = %224
  %232 = load ptr, ptr %20, align 8, !tbaa !5
  %233 = load i32, ptr %232, align 4, !tbaa !9
  br label %234

234:                                              ; preds = %231, %230
  %235 = phi i32 [ 1, %230 ], [ %233, %231 ]
  %236 = icmp slt i32 %226, %235
  br i1 %236, label %237, label %239

237:                                              ; preds = %234
  %238 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -5, ptr %238, align 4, !tbaa !9
  br label %298

239:                                              ; preds = %234
  %240 = load ptr, ptr %24, align 8, !tbaa !5
  %241 = load i32, ptr %240, align 4, !tbaa !9
  %242 = load ptr, ptr %20, align 8, !tbaa !5
  %243 = load i32, ptr %242, align 4, !tbaa !9
  %244 = icmp sge i32 1, %243
  br i1 %244, label %245, label %246

245:                                              ; preds = %239
  br label %249

246:                                              ; preds = %239
  %247 = load ptr, ptr %20, align 8, !tbaa !5
  %248 = load i32, ptr %247, align 4, !tbaa !9
  br label %249

249:                                              ; preds = %246, %245
  %250 = phi i32 [ 1, %245 ], [ %248, %246 ]
  %251 = icmp slt i32 %241, %250
  br i1 %251, label %252, label %254

252:                                              ; preds = %249
  %253 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -7, ptr %253, align 4, !tbaa !9
  br label %297

254:                                              ; preds = %249
  %255 = load ptr, ptr %28, align 8, !tbaa !5
  %256 = load i32, ptr %255, align 4, !tbaa !9
  %257 = icmp slt i32 %256, 1
  br i1 %257, label %267, label %258

258:                                              ; preds = %254
  %259 = load i32, ptr %58, align 4, !tbaa !9
  %260 = icmp ne i32 %259, 0
  br i1 %260, label %261, label %269

261:                                              ; preds = %258
  %262 = load ptr, ptr %28, align 8, !tbaa !5
  %263 = load i32, ptr %262, align 4, !tbaa !9
  %264 = load ptr, ptr %20, align 8, !tbaa !5
  %265 = load i32, ptr %264, align 4, !tbaa !9
  %266 = icmp slt i32 %263, %265
  br i1 %266, label %267, label %269

267:                                              ; preds = %261, %254
  %268 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -11, ptr %268, align 4, !tbaa !9
  br label %296

269:                                              ; preds = %261, %258
  %270 = load ptr, ptr %30, align 8, !tbaa !5
  %271 = load i32, ptr %270, align 4, !tbaa !9
  %272 = icmp slt i32 %271, 1
  br i1 %272, label %282, label %273

273:                                              ; preds = %269
  %274 = load i32, ptr %59, align 4, !tbaa !9
  %275 = icmp ne i32 %274, 0
  br i1 %275, label %276, label %284

276:                                              ; preds = %273
  %277 = load ptr, ptr %30, align 8, !tbaa !5
  %278 = load i32, ptr %277, align 4, !tbaa !9
  %279 = load ptr, ptr %20, align 8, !tbaa !5
  %280 = load i32, ptr %279, align 4, !tbaa !9
  %281 = icmp slt i32 %278, %280
  br i1 %281, label %282, label %284

282:                                              ; preds = %276, %269
  %283 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -13, ptr %283, align 4, !tbaa !9
  br label %295

284:                                              ; preds = %276, %273
  %285 = load ptr, ptr %32, align 8, !tbaa !5
  %286 = load i32, ptr %285, align 4, !tbaa !9
  %287 = load i32, ptr %88, align 4, !tbaa !9
  %288 = icmp slt i32 %286, %287
  br i1 %288, label %289, label %294

289:                                              ; preds = %284
  %290 = load i32, ptr %94, align 4, !tbaa !9
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %294, label %292

292:                                              ; preds = %289
  %293 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -15, ptr %293, align 4, !tbaa !9
  br label %294

294:                                              ; preds = %292, %289, %284
  br label %295

295:                                              ; preds = %294, %282
  br label %296

296:                                              ; preds = %295, %267
  br label %297

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

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

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

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

301:                                              ; preds = %300, %211
  %302 = load ptr, ptr %34, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = icmp eq i32 %303, 0
  br i1 %304, label %305, label %360

305:                                              ; preds = %301
  %306 = load ptr, ptr %20, align 8, !tbaa !5
  %307 = load ptr, ptr %20, align 8, !tbaa !5
  %308 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %306, ptr noundef %307, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %308, ptr %89, align 4, !tbaa !9
  %309 = load ptr, ptr %20, align 8, !tbaa !5
  %310 = load ptr, ptr %20, align 8, !tbaa !5
  %311 = load ptr, ptr %20, align 8, !tbaa !5
  %312 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.4, ptr noundef @.str.3, ptr noundef %309, ptr noundef %310, ptr noundef %311, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %312, ptr %90, align 4, !tbaa !9
  %313 = load ptr, ptr %20, align 8, !tbaa !5
  %314 = load ptr, ptr %20, align 8, !tbaa !5
  %315 = load ptr, ptr %20, align 8, !tbaa !5
  %316 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef @.str.3, ptr noundef %313, ptr noundef %314, ptr noundef %315, ptr noundef @c_n1, i32 noundef 6, i32 noundef 1)
  store i32 %316, ptr %91, align 4, !tbaa !9
  %317 = load i32, ptr %89, align 4, !tbaa !9
  %318 = load i32, ptr %90, align 4, !tbaa !9
  %319 = icmp sge i32 %317, %318
  br i1 %319, label %320, label %322

320:                                              ; preds = %305
  %321 = load i32, ptr %89, align 4, !tbaa !9
  br label %324

322:                                              ; preds = %305
  %323 = load i32, ptr %90, align 4, !tbaa !9
  br label %324

324:                                              ; preds = %322, %320
  %325 = phi i32 [ %321, %320 ], [ %323, %322 ]
  store i32 %325, ptr %43, align 4, !tbaa !9
  %326 = load i32, ptr %43, align 4, !tbaa !9
  %327 = load i32, ptr %91, align 4, !tbaa !9
  %328 = icmp sge i32 %326, %327
  br i1 %328, label %329, label %331

329:                                              ; preds = %324
  %330 = load i32, ptr %43, align 4, !tbaa !9
  br label %333

331:                                              ; preds = %324
  %332 = load i32, ptr %91, align 4, !tbaa !9
  br label %333

333:                                              ; preds = %331, %329
  %334 = phi i32 [ %330, %329 ], [ %332, %331 ]
  store i32 %334, ptr %75, align 4, !tbaa !9
  %335 = load ptr, ptr %20, align 8, !tbaa !5
  %336 = load i32, ptr %335, align 4, !tbaa !9
  %337 = shl i32 %336, 1
  store i32 %337, ptr %43, align 4, !tbaa !9
  %338 = load ptr, ptr %20, align 8, !tbaa !5
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = load i32, ptr %75, align 4, !tbaa !9
  %341 = add nsw i32 %340, 1
  %342 = mul nsw i32 %339, %341
  store i32 %342, ptr %44, align 4, !tbaa !9
  %343 = load i32, ptr %43, align 4, !tbaa !9
  %344 = load i32, ptr %44, align 4, !tbaa !9
  %345 = icmp sge i32 %343, %344
  br i1 %345, label %346, label %348

346:                                              ; preds = %333
  %347 = load i32, ptr %43, align 4, !tbaa !9
  br label %350

348:                                              ; preds = %333
  %349 = load i32, ptr %44, align 4, !tbaa !9
  br label %350

350:                                              ; preds = %348, %346
  %351 = phi i32 [ %347, %346 ], [ %349, %348 ]
  store i32 %351, ptr %60, align 4, !tbaa !9
  %352 = load i32, ptr %60, align 4, !tbaa !9
  %353 = sitofp i32 %352 to float
  %354 = load ptr, ptr %31, align 8, !tbaa !5
  %355 = getelementptr inbounds %struct.complex, ptr %354, i64 1
  %356 = getelementptr inbounds %struct.complex, ptr %355, i32 0, i32 0
  store float %353, ptr %356, align 4, !tbaa !11
  %357 = load ptr, ptr %31, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.complex, ptr %357, i64 1
  %359 = getelementptr inbounds %struct.complex, ptr %358, i32 0, i32 1
  store float 0.000000e+00, ptr %359, align 4, !tbaa !14
  br label %360

360:                                              ; preds = %350, %301
  %361 = load ptr, ptr %34, align 8, !tbaa !5
  %362 = load i32, ptr %361, align 4, !tbaa !9
  %363 = icmp ne i32 %362, 0
  br i1 %363, label %364, label %369

364:                                              ; preds = %360
  %365 = load ptr, ptr %34, align 8, !tbaa !5
  %366 = load i32, ptr %365, align 4, !tbaa !9
  %367 = sub nsw i32 0, %366
  store i32 %367, ptr %43, align 4, !tbaa !9
  %368 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %43, i32 noundef 6)
  store i32 1, ptr %99, align 4
  br label %1759

369:                                              ; preds = %360
  %370 = load i32, ptr %94, align 4, !tbaa !9
  %371 = icmp ne i32 %370, 0
  br i1 %371, label %372, label %373

372:                                              ; preds = %369
  store i32 1, ptr %99, align 4
  br label %1759

373:                                              ; preds = %369
  br label %374

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

378:                                              ; preds = %374
  store i32 1, ptr %99, align 4
  br label %1759

379:                                              ; preds = %374
  %380 = call float @slamch_(ptr noundef @.str.7)
  %381 = call float @slamch_(ptr noundef @.str.8)
  %382 = fmul float %380, %381
  store float %382, ptr %97, align 4, !tbaa !15
  %383 = call float @slamch_(ptr noundef @.str.9)
  store float %383, ptr %80, align 4, !tbaa !15
  %384 = load float, ptr %80, align 4, !tbaa !15
  %385 = load float, ptr %80, align 4, !tbaa !15
  %386 = fadd float %385, %384
  store float %386, ptr %80, align 4, !tbaa !15
  %387 = load float, ptr %80, align 4, !tbaa !15
  %388 = fdiv float 1.000000e+00, %387
  store float %388, ptr %81, align 4, !tbaa !15
  %389 = load ptr, ptr %20, align 8, !tbaa !5
  %390 = load ptr, ptr %20, align 8, !tbaa !5
  %391 = load ptr, ptr %21, align 8, !tbaa !5
  %392 = load i32, ptr %36, align 4, !tbaa !9
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds %struct.complex, ptr %391, i64 %393
  %395 = load ptr, ptr %22, align 8, !tbaa !5
  %396 = load ptr, ptr %33, align 8, !tbaa !5
  %397 = getelementptr inbounds float, ptr %396, i64 1
  %398 = call float @clange_(ptr noundef @.str.10, ptr noundef %389, ptr noundef %390, ptr noundef %394, ptr noundef %395, ptr noundef %397)
  store float %398, ptr %54, align 4, !tbaa !15
  %399 = load float, ptr %54, align 4, !tbaa !15
  store float %399, ptr %61, align 4, !tbaa !15
  store float 1.000000e+00, ptr %62, align 4, !tbaa !15
  %400 = load float, ptr %54, align 4, !tbaa !15
  %401 = fcmp olt float %400, 1.000000e+00
  br i1 %401, label %402, label %413

402:                                              ; preds = %379
  %403 = load float, ptr %81, align 4, !tbaa !15
  %404 = load float, ptr %54, align 4, !tbaa !15
  %405 = fmul float %403, %404
  %406 = fcmp olt float %405, 1.000000e+00
  br i1 %406, label %407, label %412

407:                                              ; preds = %402
  %408 = load float, ptr %80, align 4, !tbaa !15
  store float %408, ptr %61, align 4, !tbaa !15
  %409 = load float, ptr %81, align 4, !tbaa !15
  %410 = load float, ptr %54, align 4, !tbaa !15
  %411 = fmul float %409, %410
  store float %411, ptr %62, align 4, !tbaa !15
  br label %412

412:                                              ; preds = %407, %402
  br label %413

413:                                              ; preds = %412, %379
  %414 = load float, ptr %54, align 4, !tbaa !15
  %415 = fcmp ogt float %414, 0.000000e+00
  br i1 %415, label %416, label %432

416:                                              ; preds = %413
  %417 = load ptr, ptr %20, align 8, !tbaa !5
  %418 = load ptr, ptr %20, align 8, !tbaa !5
  %419 = load ptr, ptr %21, align 8, !tbaa !5
  %420 = load i32, ptr %36, align 4, !tbaa !9
  %421 = sext i32 %420 to i64
  %422 = getelementptr inbounds %struct.complex, ptr %419, i64 %421
  %423 = load ptr, ptr %22, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %54, ptr noundef @c_b29, ptr noundef %417, ptr noundef %418, ptr noundef %422, ptr noundef %423, ptr noundef %70)
  %424 = load i32, ptr %70, align 4, !tbaa !9
  %425 = icmp ne i32 %424, 0
  br i1 %425, label %426, label %431

426:                                              ; preds = %416
  %427 = load ptr, ptr %20, align 8, !tbaa !5
  %428 = load i32, ptr %427, align 4, !tbaa !9
  %429 = add nsw i32 %428, 10
  %430 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %429, ptr %430, align 4, !tbaa !9
  store i32 1, ptr %99, align 4
  br label %1759

431:                                              ; preds = %416
  br label %432

432:                                              ; preds = %431, %413
  %433 = load ptr, ptr %20, align 8, !tbaa !5
  %434 = load ptr, ptr %20, align 8, !tbaa !5
  %435 = load ptr, ptr %23, align 8, !tbaa !5
  %436 = load i32, ptr %38, align 4, !tbaa !9
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds %struct.complex, ptr %435, i64 %437
  %439 = load ptr, ptr %24, align 8, !tbaa !5
  %440 = load ptr, ptr %33, align 8, !tbaa !5
  %441 = getelementptr inbounds float, ptr %440, i64 1
  %442 = call float @clange_(ptr noundef @.str.10, ptr noundef %433, ptr noundef %434, ptr noundef %438, ptr noundef %439, ptr noundef %441)
  store float %442, ptr %55, align 4, !tbaa !15
  %443 = load float, ptr %55, align 4, !tbaa !15
  store float %443, ptr %63, align 4, !tbaa !15
  store float 1.000000e+00, ptr %64, align 4, !tbaa !15
  %444 = load float, ptr %55, align 4, !tbaa !15
  %445 = fcmp olt float %444, 1.000000e+00
  br i1 %445, label %446, label %457

446:                                              ; preds = %432
  %447 = load float, ptr %81, align 4, !tbaa !15
  %448 = load float, ptr %55, align 4, !tbaa !15
  %449 = fmul float %447, %448
  %450 = fcmp olt float %449, 1.000000e+00
  br i1 %450, label %451, label %456

451:                                              ; preds = %446
  %452 = load float, ptr %80, align 4, !tbaa !15
  store float %452, ptr %63, align 4, !tbaa !15
  %453 = load float, ptr %81, align 4, !tbaa !15
  %454 = load float, ptr %55, align 4, !tbaa !15
  %455 = fmul float %453, %454
  store float %455, ptr %64, align 4, !tbaa !15
  br label %456

456:                                              ; preds = %451, %446
  br label %457

457:                                              ; preds = %456, %432
  %458 = load float, ptr %55, align 4, !tbaa !15
  %459 = fcmp ogt float %458, 0.000000e+00
  br i1 %459, label %460, label %476

460:                                              ; preds = %457
  %461 = load ptr, ptr %20, align 8, !tbaa !5
  %462 = load ptr, ptr %20, align 8, !tbaa !5
  %463 = load ptr, ptr %23, align 8, !tbaa !5
  %464 = load i32, ptr %38, align 4, !tbaa !9
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds %struct.complex, ptr %463, i64 %465
  %467 = load ptr, ptr %24, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.11, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef %55, ptr noundef @c_b29, ptr noundef %461, ptr noundef %462, ptr noundef %466, ptr noundef %467, ptr noundef %70)
  %468 = load i32, ptr %70, align 4, !tbaa !9
  %469 = icmp ne i32 %468, 0
  br i1 %469, label %470, label %475

470:                                              ; preds = %460
  %471 = load ptr, ptr %20, align 8, !tbaa !5
  %472 = load i32, ptr %471, align 4, !tbaa !9
  %473 = add nsw i32 %472, 10
  %474 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %473, ptr %474, align 4, !tbaa !9
  store i32 1, ptr %99, align 4
  br label %1759

475:                                              ; preds = %460
  br label %476

476:                                              ; preds = %475, %457
  store i32 1, ptr %69, align 4, !tbaa !9
  %477 = load ptr, ptr %20, align 8, !tbaa !5
  %478 = load i32, ptr %477, align 4, !tbaa !9
  %479 = add nsw i32 %478, 1
  store i32 %479, ptr %85, align 4, !tbaa !9
  %480 = load i32, ptr %85, align 4, !tbaa !9
  %481 = load ptr, ptr %20, align 8, !tbaa !5
  %482 = load i32, ptr %481, align 4, !tbaa !9
  %483 = add nsw i32 %480, %482
  store i32 %483, ptr %92, align 4, !tbaa !9
  %484 = load ptr, ptr %20, align 8, !tbaa !5
  %485 = load ptr, ptr %21, align 8, !tbaa !5
  %486 = load i32, ptr %36, align 4, !tbaa !9
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds %struct.complex, ptr %485, i64 %487
  %489 = load ptr, ptr %22, align 8, !tbaa !5
  %490 = load ptr, ptr %23, align 8, !tbaa !5
  %491 = load i32, ptr %38, align 4, !tbaa !9
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds %struct.complex, ptr %490, i64 %492
  %494 = load ptr, ptr %24, align 8, !tbaa !5
  %495 = load ptr, ptr %33, align 8, !tbaa !5
  %496 = load i32, ptr %69, align 4, !tbaa !9
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds float, ptr %495, i64 %497
  %499 = load ptr, ptr %33, align 8, !tbaa !5
  %500 = load i32, ptr %85, align 4, !tbaa !9
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds float, ptr %499, i64 %501
  %503 = load ptr, ptr %33, align 8, !tbaa !5
  %504 = load i32, ptr %92, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %503, i64 %505
  call void @cggbal_(ptr noundef @.str.12, ptr noundef %484, ptr noundef %488, ptr noundef %489, ptr noundef %493, ptr noundef %494, ptr noundef %96, ptr noundef %95, ptr noundef %498, ptr noundef %502, ptr noundef %506, ptr noundef %70)
  %507 = load i32, ptr %70, align 4, !tbaa !9
  %508 = icmp ne i32 %507, 0
  br i1 %508, label %509, label %514

509:                                              ; preds = %476
  %510 = load ptr, ptr %20, align 8, !tbaa !5
  %511 = load i32, ptr %510, align 4, !tbaa !9
  %512 = add nsw i32 %511, 1
  %513 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %512, ptr %513, align 4, !tbaa !9
  br label %1750

514:                                              ; preds = %476
  %515 = load i32, ptr %95, align 4, !tbaa !9
  %516 = add nsw i32 %515, 1
  %517 = load i32, ptr %96, align 4, !tbaa !9
  %518 = sub nsw i32 %516, %517
  store i32 %518, ptr %73, align 4, !tbaa !9
  %519 = load i32, ptr %98, align 4, !tbaa !9
  %520 = icmp ne i32 %519, 0
  br i1 %520, label %521, label %527

521:                                              ; preds = %514
  %522 = load ptr, ptr %20, align 8, !tbaa !5
  %523 = load i32, ptr %522, align 4, !tbaa !9
  %524 = add nsw i32 %523, 1
  %525 = load i32, ptr %96, align 4, !tbaa !9
  %526 = sub nsw i32 %524, %525
  store i32 %526, ptr %71, align 4, !tbaa !9
  br label %529

527:                                              ; preds = %514
  %528 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %528, ptr %71, align 4, !tbaa !9
  br label %529

529:                                              ; preds = %527, %521
  store i32 1, ptr %56, align 4, !tbaa !9
  %530 = load i32, ptr %56, align 4, !tbaa !9
  %531 = load i32, ptr %73, align 4, !tbaa !9
  %532 = add nsw i32 %530, %531
  store i32 %532, ptr %72, align 4, !tbaa !9
  %533 = load ptr, ptr %32, align 8, !tbaa !5
  %534 = load i32, ptr %533, align 4, !tbaa !9
  %535 = add nsw i32 %534, 1
  %536 = load i32, ptr %72, align 4, !tbaa !9
  %537 = sub nsw i32 %535, %536
  store i32 %537, ptr %43, align 4, !tbaa !9
  %538 = load ptr, ptr %23, align 8, !tbaa !5
  %539 = load i32, ptr %96, align 4, !tbaa !9
  %540 = load i32, ptr %96, align 4, !tbaa !9
  %541 = load i32, ptr %37, align 4, !tbaa !9
  %542 = mul nsw i32 %540, %541
  %543 = add nsw i32 %539, %542
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds %struct.complex, ptr %538, i64 %544
  %546 = load ptr, ptr %24, align 8, !tbaa !5
  %547 = load ptr, ptr %31, align 8, !tbaa !5
  %548 = load i32, ptr %56, align 4, !tbaa !9
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds %struct.complex, ptr %547, i64 %549
  %551 = load ptr, ptr %31, align 8, !tbaa !5
  %552 = load i32, ptr %72, align 4, !tbaa !9
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds %struct.complex, ptr %551, i64 %553
  call void @cgeqrf_(ptr noundef %73, ptr noundef %71, ptr noundef %545, ptr noundef %546, ptr noundef %550, ptr noundef %554, ptr noundef %43, ptr noundef %70)
  %555 = load i32, ptr %70, align 4, !tbaa !9
  %556 = icmp sge i32 %555, 0
  br i1 %556, label %557, label %579

557:                                              ; preds = %529
  %558 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %558, ptr %45, align 4, !tbaa !9
  %559 = load i32, ptr %93, align 4, !tbaa !9
  store i32 %559, ptr %43, align 4, !tbaa !9
  %560 = load ptr, ptr %31, align 8, !tbaa !5
  %561 = load i32, ptr %45, align 4, !tbaa !9
  %562 = sext i32 %561 to i64
  %563 = getelementptr inbounds %struct.complex, ptr %560, i64 %562
  %564 = getelementptr inbounds %struct.complex, ptr %563, i32 0, i32 0
  %565 = load float, ptr %564, align 4, !tbaa !11
  %566 = fptosi float %565 to i32
  %567 = load i32, ptr %72, align 4, !tbaa !9
  %568 = add nsw i32 %566, %567
  %569 = sub nsw i32 %568, 1
  store i32 %569, ptr %44, align 4, !tbaa !9
  %570 = load i32, ptr %43, align 4, !tbaa !9
  %571 = load i32, ptr %44, align 4, !tbaa !9
  %572 = icmp sge i32 %570, %571
  br i1 %572, label %573, label %575

573:                                              ; preds = %557
  %574 = load i32, ptr %43, align 4, !tbaa !9
  br label %577

575:                                              ; preds = %557
  %576 = load i32, ptr %44, align 4, !tbaa !9
  br label %577

577:                                              ; preds = %575, %573
  %578 = phi i32 [ %574, %573 ], [ %576, %575 ]
  store i32 %578, ptr %93, align 4, !tbaa !9
  br label %579

579:                                              ; preds = %577, %529
  %580 = load i32, ptr %70, align 4, !tbaa !9
  %581 = icmp ne i32 %580, 0
  br i1 %581, label %582, label %587

582:                                              ; preds = %579
  %583 = load ptr, ptr %20, align 8, !tbaa !5
  %584 = load i32, ptr %583, align 4, !tbaa !9
  %585 = add nsw i32 %584, 2
  %586 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %585, ptr %586, align 4, !tbaa !9
  br label %1750

587:                                              ; preds = %579
  %588 = load ptr, ptr %32, align 8, !tbaa !5
  %589 = load i32, ptr %588, align 4, !tbaa !9
  %590 = add nsw i32 %589, 1
  %591 = load i32, ptr %72, align 4, !tbaa !9
  %592 = sub nsw i32 %590, %591
  store i32 %592, ptr %43, align 4, !tbaa !9
  %593 = load ptr, ptr %23, align 8, !tbaa !5
  %594 = load i32, ptr %96, align 4, !tbaa !9
  %595 = load i32, ptr %96, align 4, !tbaa !9
  %596 = load i32, ptr %37, align 4, !tbaa !9
  %597 = mul nsw i32 %595, %596
  %598 = add nsw i32 %594, %597
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds %struct.complex, ptr %593, i64 %599
  %601 = load ptr, ptr %24, align 8, !tbaa !5
  %602 = load ptr, ptr %31, align 8, !tbaa !5
  %603 = load i32, ptr %56, align 4, !tbaa !9
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds %struct.complex, ptr %602, i64 %604
  %606 = load ptr, ptr %21, align 8, !tbaa !5
  %607 = load i32, ptr %96, align 4, !tbaa !9
  %608 = load i32, ptr %96, align 4, !tbaa !9
  %609 = load i32, ptr %35, align 4, !tbaa !9
  %610 = mul nsw i32 %608, %609
  %611 = add nsw i32 %607, %610
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds %struct.complex, ptr %606, i64 %612
  %614 = load ptr, ptr %22, align 8, !tbaa !5
  %615 = load ptr, ptr %31, align 8, !tbaa !5
  %616 = load i32, ptr %72, align 4, !tbaa !9
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds %struct.complex, ptr %615, i64 %617
  call void @cunmqr_(ptr noundef @.str.13, ptr noundef @.str.14, ptr noundef %73, ptr noundef %71, ptr noundef %73, ptr noundef %600, ptr noundef %601, ptr noundef %605, ptr noundef %613, ptr noundef %614, ptr noundef %618, ptr noundef %43, ptr noundef %70)
  %619 = load i32, ptr %70, align 4, !tbaa !9
  %620 = icmp sge i32 %619, 0
  br i1 %620, label %621, label %643

621:                                              ; preds = %587
  %622 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %622, ptr %45, align 4, !tbaa !9
  %623 = load i32, ptr %93, align 4, !tbaa !9
  store i32 %623, ptr %43, align 4, !tbaa !9
  %624 = load ptr, ptr %31, align 8, !tbaa !5
  %625 = load i32, ptr %45, align 4, !tbaa !9
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds %struct.complex, ptr %624, i64 %626
  %628 = getelementptr inbounds %struct.complex, ptr %627, i32 0, i32 0
  %629 = load float, ptr %628, align 4, !tbaa !11
  %630 = fptosi float %629 to i32
  %631 = load i32, ptr %72, align 4, !tbaa !9
  %632 = add nsw i32 %630, %631
  %633 = sub nsw i32 %632, 1
  store i32 %633, ptr %44, align 4, !tbaa !9
  %634 = load i32, ptr %43, align 4, !tbaa !9
  %635 = load i32, ptr %44, align 4, !tbaa !9
  %636 = icmp sge i32 %634, %635
  br i1 %636, label %637, label %639

637:                                              ; preds = %621
  %638 = load i32, ptr %43, align 4, !tbaa !9
  br label %641

639:                                              ; preds = %621
  %640 = load i32, ptr %44, align 4, !tbaa !9
  br label %641

641:                                              ; preds = %639, %637
  %642 = phi i32 [ %638, %637 ], [ %640, %639 ]
  store i32 %642, ptr %93, align 4, !tbaa !9
  br label %643

643:                                              ; preds = %641, %587
  %644 = load i32, ptr %70, align 4, !tbaa !9
  %645 = icmp ne i32 %644, 0
  br i1 %645, label %646, label %651

646:                                              ; preds = %643
  %647 = load ptr, ptr %20, align 8, !tbaa !5
  %648 = load i32, ptr %647, align 4, !tbaa !9
  %649 = add nsw i32 %648, 3
  %650 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %649, ptr %650, align 4, !tbaa !9
  br label %1750

651:                                              ; preds = %643
  %652 = load i32, ptr %58, align 4, !tbaa !9
  %653 = icmp ne i32 %652, 0
  br i1 %653, label %654, label %741

654:                                              ; preds = %651
  %655 = load ptr, ptr %20, align 8, !tbaa !5
  %656 = load ptr, ptr %20, align 8, !tbaa !5
  %657 = load ptr, ptr %27, align 8, !tbaa !5
  %658 = load i32, ptr %40, align 4, !tbaa !9
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds %struct.complex, ptr %657, i64 %659
  %661 = load ptr, ptr %28, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.15, ptr noundef %655, ptr noundef %656, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %660, ptr noundef %661)
  %662 = load i32, ptr %73, align 4, !tbaa !9
  %663 = sub nsw i32 %662, 1
  store i32 %663, ptr %43, align 4, !tbaa !9
  %664 = load i32, ptr %73, align 4, !tbaa !9
  %665 = sub nsw i32 %664, 1
  store i32 %665, ptr %44, align 4, !tbaa !9
  %666 = load ptr, ptr %23, align 8, !tbaa !5
  %667 = load i32, ptr %96, align 4, !tbaa !9
  %668 = add nsw i32 %667, 1
  %669 = load i32, ptr %96, align 4, !tbaa !9
  %670 = load i32, ptr %37, align 4, !tbaa !9
  %671 = mul nsw i32 %669, %670
  %672 = add nsw i32 %668, %671
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds %struct.complex, ptr %666, i64 %673
  %675 = load ptr, ptr %24, align 8, !tbaa !5
  %676 = load ptr, ptr %27, align 8, !tbaa !5
  %677 = load i32, ptr %96, align 4, !tbaa !9
  %678 = add nsw i32 %677, 1
  %679 = load i32, ptr %96, align 4, !tbaa !9
  %680 = load i32, ptr %39, align 4, !tbaa !9
  %681 = mul nsw i32 %679, %680
  %682 = add nsw i32 %678, %681
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds %struct.complex, ptr %676, i64 %683
  %685 = load ptr, ptr %28, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.13, ptr noundef %43, ptr noundef %44, ptr noundef %674, ptr noundef %675, ptr noundef %684, ptr noundef %685)
  %686 = load ptr, ptr %32, align 8, !tbaa !5
  %687 = load i32, ptr %686, align 4, !tbaa !9
  %688 = add nsw i32 %687, 1
  %689 = load i32, ptr %72, align 4, !tbaa !9
  %690 = sub nsw i32 %688, %689
  store i32 %690, ptr %43, align 4, !tbaa !9
  %691 = load ptr, ptr %27, align 8, !tbaa !5
  %692 = load i32, ptr %96, align 4, !tbaa !9
  %693 = load i32, ptr %96, align 4, !tbaa !9
  %694 = load i32, ptr %39, align 4, !tbaa !9
  %695 = mul nsw i32 %693, %694
  %696 = add nsw i32 %692, %695
  %697 = sext i32 %696 to i64
  %698 = getelementptr inbounds %struct.complex, ptr %691, i64 %697
  %699 = load ptr, ptr %28, align 8, !tbaa !5
  %700 = load ptr, ptr %31, align 8, !tbaa !5
  %701 = load i32, ptr %56, align 4, !tbaa !9
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds %struct.complex, ptr %700, i64 %702
  %704 = load ptr, ptr %31, align 8, !tbaa !5
  %705 = load i32, ptr %72, align 4, !tbaa !9
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds %struct.complex, ptr %704, i64 %706
  call void @cungqr_(ptr noundef %73, ptr noundef %73, ptr noundef %73, ptr noundef %698, ptr noundef %699, ptr noundef %703, ptr noundef %707, ptr noundef %43, ptr noundef %70)
  %708 = load i32, ptr %70, align 4, !tbaa !9
  %709 = icmp sge i32 %708, 0
  br i1 %709, label %710, label %732

710:                                              ; preds = %654
  %711 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %711, ptr %45, align 4, !tbaa !9
  %712 = load i32, ptr %93, align 4, !tbaa !9
  store i32 %712, ptr %43, align 4, !tbaa !9
  %713 = load ptr, ptr %31, align 8, !tbaa !5
  %714 = load i32, ptr %45, align 4, !tbaa !9
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds %struct.complex, ptr %713, i64 %715
  %717 = getelementptr inbounds %struct.complex, ptr %716, i32 0, i32 0
  %718 = load float, ptr %717, align 4, !tbaa !11
  %719 = fptosi float %718 to i32
  %720 = load i32, ptr %72, align 4, !tbaa !9
  %721 = add nsw i32 %719, %720
  %722 = sub nsw i32 %721, 1
  store i32 %722, ptr %44, align 4, !tbaa !9
  %723 = load i32, ptr %43, align 4, !tbaa !9
  %724 = load i32, ptr %44, align 4, !tbaa !9
  %725 = icmp sge i32 %723, %724
  br i1 %725, label %726, label %728

726:                                              ; preds = %710
  %727 = load i32, ptr %43, align 4, !tbaa !9
  br label %730

728:                                              ; preds = %710
  %729 = load i32, ptr %44, align 4, !tbaa !9
  br label %730

730:                                              ; preds = %728, %726
  %731 = phi i32 [ %727, %726 ], [ %729, %728 ]
  store i32 %731, ptr %93, align 4, !tbaa !9
  br label %732

732:                                              ; preds = %730, %654
  %733 = load i32, ptr %70, align 4, !tbaa !9
  %734 = icmp ne i32 %733, 0
  br i1 %734, label %735, label %740

735:                                              ; preds = %732
  %736 = load ptr, ptr %20, align 8, !tbaa !5
  %737 = load i32, ptr %736, align 4, !tbaa !9
  %738 = add nsw i32 %737, 4
  %739 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %738, ptr %739, align 4, !tbaa !9
  br label %1750

740:                                              ; preds = %732
  br label %741

741:                                              ; preds = %740, %651
  %742 = load i32, ptr %59, align 4, !tbaa !9
  %743 = icmp ne i32 %742, 0
  br i1 %743, label %744, label %752

744:                                              ; preds = %741
  %745 = load ptr, ptr %20, align 8, !tbaa !5
  %746 = load ptr, ptr %20, align 8, !tbaa !5
  %747 = load ptr, ptr %29, align 8, !tbaa !5
  %748 = load i32, ptr %42, align 4, !tbaa !9
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds %struct.complex, ptr %747, i64 %749
  %751 = load ptr, ptr %30, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.15, ptr noundef %745, ptr noundef %746, ptr noundef @c_b1, ptr noundef @c_b2, ptr noundef %750, ptr noundef %751)
  br label %752

752:                                              ; preds = %744, %741
  %753 = load i32, ptr %98, align 4, !tbaa !9
  %754 = icmp ne i32 %753, 0
  br i1 %754, label %755, label %779

755:                                              ; preds = %752
  %756 = load ptr, ptr %18, align 8, !tbaa !5
  %757 = load ptr, ptr %19, align 8, !tbaa !5
  %758 = load ptr, ptr %20, align 8, !tbaa !5
  %759 = load ptr, ptr %21, align 8, !tbaa !5
  %760 = load i32, ptr %36, align 4, !tbaa !9
  %761 = sext i32 %760 to i64
  %762 = getelementptr inbounds %struct.complex, ptr %759, i64 %761
  %763 = load ptr, ptr %22, align 8, !tbaa !5
  %764 = load ptr, ptr %23, align 8, !tbaa !5
  %765 = load i32, ptr %38, align 4, !tbaa !9
  %766 = sext i32 %765 to i64
  %767 = getelementptr inbounds %struct.complex, ptr %764, i64 %766
  %768 = load ptr, ptr %24, align 8, !tbaa !5
  %769 = load ptr, ptr %27, align 8, !tbaa !5
  %770 = load i32, ptr %40, align 4, !tbaa !9
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds %struct.complex, ptr %769, i64 %771
  %773 = load ptr, ptr %28, align 8, !tbaa !5
  %774 = load ptr, ptr %29, align 8, !tbaa !5
  %775 = load i32, ptr %42, align 4, !tbaa !9
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds %struct.complex, ptr %774, i64 %776
  %778 = load ptr, ptr %30, align 8, !tbaa !5
  call void @cgghrd_(ptr noundef %756, ptr noundef %757, ptr noundef %758, ptr noundef %96, ptr noundef %95, ptr noundef %762, ptr noundef %763, ptr noundef %767, ptr noundef %768, ptr noundef %772, ptr noundef %773, ptr noundef %777, ptr noundef %778, ptr noundef %70)
  br label %808

779:                                              ; preds = %752
  %780 = load ptr, ptr %21, align 8, !tbaa !5
  %781 = load i32, ptr %96, align 4, !tbaa !9
  %782 = load i32, ptr %96, align 4, !tbaa !9
  %783 = load i32, ptr %35, align 4, !tbaa !9
  %784 = mul nsw i32 %782, %783
  %785 = add nsw i32 %781, %784
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds %struct.complex, ptr %780, i64 %786
  %788 = load ptr, ptr %22, align 8, !tbaa !5
  %789 = load ptr, ptr %23, align 8, !tbaa !5
  %790 = load i32, ptr %96, align 4, !tbaa !9
  %791 = load i32, ptr %96, align 4, !tbaa !9
  %792 = load i32, ptr %37, align 4, !tbaa !9
  %793 = mul nsw i32 %791, %792
  %794 = add nsw i32 %790, %793
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds %struct.complex, ptr %789, i64 %795
  %797 = load ptr, ptr %24, align 8, !tbaa !5
  %798 = load ptr, ptr %27, align 8, !tbaa !5
  %799 = load i32, ptr %40, align 4, !tbaa !9
  %800 = sext i32 %799 to i64
  %801 = getelementptr inbounds %struct.complex, ptr %798, i64 %800
  %802 = load ptr, ptr %28, align 8, !tbaa !5
  %803 = load ptr, ptr %29, align 8, !tbaa !5
  %804 = load i32, ptr %42, align 4, !tbaa !9
  %805 = sext i32 %804 to i64
  %806 = getelementptr inbounds %struct.complex, ptr %803, i64 %805
  %807 = load ptr, ptr %30, align 8, !tbaa !5
  call void @cgghrd_(ptr noundef @.str, ptr noundef @.str, ptr noundef %73, ptr noundef @c__1, ptr noundef %73, ptr noundef %787, ptr noundef %788, ptr noundef %796, ptr noundef %797, ptr noundef %801, ptr noundef %802, ptr noundef %806, ptr noundef %807, ptr noundef %70)
  br label %808

808:                                              ; preds = %779, %755
  %809 = load i32, ptr %70, align 4, !tbaa !9
  %810 = icmp ne i32 %809, 0
  br i1 %810, label %811, label %816

811:                                              ; preds = %808
  %812 = load ptr, ptr %20, align 8, !tbaa !5
  %813 = load i32, ptr %812, align 4, !tbaa !9
  %814 = add nsw i32 %813, 5
  %815 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %814, ptr %815, align 4, !tbaa !9
  br label %1750

816:                                              ; preds = %808
  %817 = load i32, ptr %56, align 4, !tbaa !9
  store i32 %817, ptr %72, align 4, !tbaa !9
  %818 = load i32, ptr %98, align 4, !tbaa !9
  %819 = icmp ne i32 %818, 0
  br i1 %819, label %820, label %822

820:                                              ; preds = %816
  %821 = getelementptr inbounds [1 x i8], ptr %82, i64 0, i64 0
  store i8 83, ptr %821, align 1, !tbaa !16
  br label %824

822:                                              ; preds = %816
  %823 = getelementptr inbounds [1 x i8], ptr %82, i64 0, i64 0
  store i8 69, ptr %823, align 1, !tbaa !16
  br label %824

824:                                              ; preds = %822, %820
  %825 = load ptr, ptr %32, align 8, !tbaa !5
  %826 = load i32, ptr %825, align 4, !tbaa !9
  %827 = add nsw i32 %826, 1
  %828 = load i32, ptr %72, align 4, !tbaa !9
  %829 = sub nsw i32 %827, %828
  store i32 %829, ptr %43, align 4, !tbaa !9
  %830 = getelementptr inbounds [1 x i8], ptr %82, i64 0, i64 0
  %831 = load ptr, ptr %18, align 8, !tbaa !5
  %832 = load ptr, ptr %19, align 8, !tbaa !5
  %833 = load ptr, ptr %20, align 8, !tbaa !5
  %834 = load ptr, ptr %21, align 8, !tbaa !5
  %835 = load i32, ptr %36, align 4, !tbaa !9
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds %struct.complex, ptr %834, i64 %836
  %838 = load ptr, ptr %22, align 8, !tbaa !5
  %839 = load ptr, ptr %23, align 8, !tbaa !5
  %840 = load i32, ptr %38, align 4, !tbaa !9
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds %struct.complex, ptr %839, i64 %841
  %843 = load ptr, ptr %24, align 8, !tbaa !5
  %844 = load ptr, ptr %25, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.complex, ptr %844, i64 1
  %846 = load ptr, ptr %26, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.complex, ptr %846, i64 1
  %848 = load ptr, ptr %27, align 8, !tbaa !5
  %849 = load i32, ptr %40, align 4, !tbaa !9
  %850 = sext i32 %849 to i64
  %851 = getelementptr inbounds %struct.complex, ptr %848, i64 %850
  %852 = load ptr, ptr %28, align 8, !tbaa !5
  %853 = load ptr, ptr %29, align 8, !tbaa !5
  %854 = load i32, ptr %42, align 4, !tbaa !9
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds %struct.complex, ptr %853, i64 %855
  %857 = load ptr, ptr %30, align 8, !tbaa !5
  %858 = load ptr, ptr %31, align 8, !tbaa !5
  %859 = load i32, ptr %72, align 4, !tbaa !9
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds %struct.complex, ptr %858, i64 %860
  %862 = load ptr, ptr %33, align 8, !tbaa !5
  %863 = load i32, ptr %92, align 4, !tbaa !9
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds float, ptr %862, i64 %864
  call void @chgeqz_(ptr noundef %830, ptr noundef %831, ptr noundef %832, ptr noundef %833, ptr noundef %96, ptr noundef %95, ptr noundef %837, ptr noundef %838, ptr noundef %842, ptr noundef %843, ptr noundef %845, ptr noundef %847, ptr noundef %851, ptr noundef %852, ptr noundef %856, ptr noundef %857, ptr noundef %861, ptr noundef %43, ptr noundef %865, ptr noundef %70)
  %866 = load i32, ptr %70, align 4, !tbaa !9
  %867 = icmp sge i32 %866, 0
  br i1 %867, label %868, label %890

868:                                              ; preds = %824
  %869 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %869, ptr %45, align 4, !tbaa !9
  %870 = load i32, ptr %93, align 4, !tbaa !9
  store i32 %870, ptr %43, align 4, !tbaa !9
  %871 = load ptr, ptr %31, align 8, !tbaa !5
  %872 = load i32, ptr %45, align 4, !tbaa !9
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds %struct.complex, ptr %871, i64 %873
  %875 = getelementptr inbounds %struct.complex, ptr %874, i32 0, i32 0
  %876 = load float, ptr %875, align 4, !tbaa !11
  %877 = fptosi float %876 to i32
  %878 = load i32, ptr %72, align 4, !tbaa !9
  %879 = add nsw i32 %877, %878
  %880 = sub nsw i32 %879, 1
  store i32 %880, ptr %44, align 4, !tbaa !9
  %881 = load i32, ptr %43, align 4, !tbaa !9
  %882 = load i32, ptr %44, align 4, !tbaa !9
  %883 = icmp sge i32 %881, %882
  br i1 %883, label %884, label %886

884:                                              ; preds = %868
  %885 = load i32, ptr %43, align 4, !tbaa !9
  br label %888

886:                                              ; preds = %868
  %887 = load i32, ptr %44, align 4, !tbaa !9
  br label %888

888:                                              ; preds = %886, %884
  %889 = phi i32 [ %885, %884 ], [ %887, %886 ]
  store i32 %889, ptr %93, align 4, !tbaa !9
  br label %890

890:                                              ; preds = %888, %824
  %891 = load i32, ptr %70, align 4, !tbaa !9
  %892 = icmp ne i32 %891, 0
  br i1 %892, label %893, label %928

893:                                              ; preds = %890
  %894 = load i32, ptr %70, align 4, !tbaa !9
  %895 = icmp sgt i32 %894, 0
  br i1 %895, label %896, label %904

896:                                              ; preds = %893
  %897 = load i32, ptr %70, align 4, !tbaa !9
  %898 = load ptr, ptr %20, align 8, !tbaa !5
  %899 = load i32, ptr %898, align 4, !tbaa !9
  %900 = icmp sle i32 %897, %899
  br i1 %900, label %901, label %904

901:                                              ; preds = %896
  %902 = load i32, ptr %70, align 4, !tbaa !9
  %903 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %902, ptr %903, align 4, !tbaa !9
  br label %927

904:                                              ; preds = %896, %893
  %905 = load i32, ptr %70, align 4, !tbaa !9
  %906 = load ptr, ptr %20, align 8, !tbaa !5
  %907 = load i32, ptr %906, align 4, !tbaa !9
  %908 = icmp sgt i32 %905, %907
  br i1 %908, label %909, label %921

909:                                              ; preds = %904
  %910 = load i32, ptr %70, align 4, !tbaa !9
  %911 = load ptr, ptr %20, align 8, !tbaa !5
  %912 = load i32, ptr %911, align 4, !tbaa !9
  %913 = shl i32 %912, 1
  %914 = icmp sle i32 %910, %913
  br i1 %914, label %915, label %921

915:                                              ; preds = %909
  %916 = load i32, ptr %70, align 4, !tbaa !9
  %917 = load ptr, ptr %20, align 8, !tbaa !5
  %918 = load i32, ptr %917, align 4, !tbaa !9
  %919 = sub nsw i32 %916, %918
  %920 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %919, ptr %920, align 4, !tbaa !9
  br label %926

921:                                              ; preds = %909, %904
  %922 = load ptr, ptr %20, align 8, !tbaa !5
  %923 = load i32, ptr %922, align 4, !tbaa !9
  %924 = add nsw i32 %923, 6
  %925 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %924, ptr %925, align 4, !tbaa !9
  br label %926

926:                                              ; preds = %921, %915
  br label %927

927:                                              ; preds = %926, %901
  br label %1750

928:                                              ; preds = %890
  %929 = load i32, ptr %98, align 4, !tbaa !9
  %930 = icmp ne i32 %929, 0
  br i1 %930, label %931, label %1311

931:                                              ; preds = %928
  %932 = load i32, ptr %58, align 4, !tbaa !9
  %933 = icmp ne i32 %932, 0
  br i1 %933, label %934, label %942

934:                                              ; preds = %931
  %935 = load i32, ptr %59, align 4, !tbaa !9
  %936 = icmp ne i32 %935, 0
  br i1 %936, label %937, label %939

937:                                              ; preds = %934
  %938 = getelementptr inbounds [1 x i8], ptr %82, i64 0, i64 0
  store i8 66, ptr %938, align 1, !tbaa !16
  br label %941

939:                                              ; preds = %934
  %940 = getelementptr inbounds [1 x i8], ptr %82, i64 0, i64 0
  store i8 76, ptr %940, align 1, !tbaa !16
  br label %941

941:                                              ; preds = %939, %937
  br label %944

942:                                              ; preds = %931
  %943 = getelementptr inbounds [1 x i8], ptr %82, i64 0, i64 0
  store i8 82, ptr %943, align 1, !tbaa !16
  br label %944

944:                                              ; preds = %942, %941
  %945 = getelementptr inbounds [1 x i8], ptr %82, i64 0, i64 0
  %946 = getelementptr inbounds [1 x i32], ptr %83, i64 0, i64 0
  %947 = load ptr, ptr %20, align 8, !tbaa !5
  %948 = load ptr, ptr %21, align 8, !tbaa !5
  %949 = load i32, ptr %36, align 4, !tbaa !9
  %950 = sext i32 %949 to i64
  %951 = getelementptr inbounds %struct.complex, ptr %948, i64 %950
  %952 = load ptr, ptr %22, align 8, !tbaa !5
  %953 = load ptr, ptr %23, align 8, !tbaa !5
  %954 = load i32, ptr %38, align 4, !tbaa !9
  %955 = sext i32 %954 to i64
  %956 = getelementptr inbounds %struct.complex, ptr %953, i64 %955
  %957 = load ptr, ptr %24, align 8, !tbaa !5
  %958 = load ptr, ptr %27, align 8, !tbaa !5
  %959 = load i32, ptr %40, align 4, !tbaa !9
  %960 = sext i32 %959 to i64
  %961 = getelementptr inbounds %struct.complex, ptr %958, i64 %960
  %962 = load ptr, ptr %28, align 8, !tbaa !5
  %963 = load ptr, ptr %29, align 8, !tbaa !5
  %964 = load i32, ptr %42, align 4, !tbaa !9
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds %struct.complex, ptr %963, i64 %965
  %967 = load ptr, ptr %30, align 8, !tbaa !5
  %968 = load ptr, ptr %20, align 8, !tbaa !5
  %969 = load ptr, ptr %31, align 8, !tbaa !5
  %970 = load i32, ptr %72, align 4, !tbaa !9
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds %struct.complex, ptr %969, i64 %971
  %973 = load ptr, ptr %33, align 8, !tbaa !5
  %974 = load i32, ptr %92, align 4, !tbaa !9
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds float, ptr %973, i64 %975
  call void @ctgevc_(ptr noundef %945, ptr noundef @.str.8, ptr noundef %946, ptr noundef %947, ptr noundef %951, ptr noundef %952, ptr noundef %956, ptr noundef %957, ptr noundef %961, ptr noundef %962, ptr noundef %966, ptr noundef %967, ptr noundef %968, ptr noundef %76, ptr noundef %972, ptr noundef %976, ptr noundef %70)
  %977 = load i32, ptr %70, align 4, !tbaa !9
  %978 = icmp ne i32 %977, 0
  br i1 %978, label %979, label %984

979:                                              ; preds = %944
  %980 = load ptr, ptr %20, align 8, !tbaa !5
  %981 = load i32, ptr %980, align 4, !tbaa !9
  %982 = add nsw i32 %981, 7
  %983 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %982, ptr %983, align 4, !tbaa !9
  br label %1750

984:                                              ; preds = %944
  %985 = load i32, ptr %58, align 4, !tbaa !9
  %986 = icmp ne i32 %985, 0
  br i1 %986, label %987, label %1147

987:                                              ; preds = %984
  %988 = load ptr, ptr %20, align 8, !tbaa !5
  %989 = load ptr, ptr %33, align 8, !tbaa !5
  %990 = load i32, ptr %69, align 4, !tbaa !9
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds float, ptr %989, i64 %991
  %993 = load ptr, ptr %33, align 8, !tbaa !5
  %994 = load i32, ptr %85, align 4, !tbaa !9
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds float, ptr %993, i64 %995
  %997 = load ptr, ptr %20, align 8, !tbaa !5
  %998 = load ptr, ptr %27, align 8, !tbaa !5
  %999 = load i32, ptr %40, align 4, !tbaa !9
  %1000 = sext i32 %999 to i64
  %1001 = getelementptr inbounds %struct.complex, ptr %998, i64 %1000
  %1002 = load ptr, ptr %28, align 8, !tbaa !5
  call void @cggbak_(ptr noundef @.str.12, ptr noundef @.str.13, ptr noundef %988, ptr noundef %96, ptr noundef %95, ptr noundef %992, ptr noundef %996, ptr noundef %997, ptr noundef %1001, ptr noundef %1002, ptr noundef %70)
  %1003 = load i32, ptr %70, align 4, !tbaa !9
  %1004 = icmp ne i32 %1003, 0
  br i1 %1004, label %1005, label %1010

1005:                                             ; preds = %987
  %1006 = load ptr, ptr %20, align 8, !tbaa !5
  %1007 = load i32, ptr %1006, align 4, !tbaa !9
  %1008 = add nsw i32 %1007, 8
  %1009 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %1008, ptr %1009, align 4, !tbaa !9
  br label %1750

1010:                                             ; preds = %987
  %1011 = load ptr, ptr %20, align 8, !tbaa !5
  %1012 = load i32, ptr %1011, align 4, !tbaa !9
  store i32 %1012, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %1013

1013:                                             ; preds = %1143, %1010
  %1014 = load i32, ptr %74, align 4, !tbaa !9
  %1015 = load i32, ptr %43, align 4, !tbaa !9
  %1016 = icmp sle i32 %1014, %1015
  br i1 %1016, label %1017, label %1146

1017:                                             ; preds = %1013
  store float 0.000000e+00, ptr %57, align 4, !tbaa !15
  %1018 = load ptr, ptr %20, align 8, !tbaa !5
  %1019 = load i32, ptr %1018, align 4, !tbaa !9
  store i32 %1019, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %1020

1020:                                             ; preds = %1078, %1017
  %1021 = load i32, ptr %77, align 4, !tbaa !9
  %1022 = load i32, ptr %44, align 4, !tbaa !9
  %1023 = icmp sle i32 %1021, %1022
  br i1 %1023, label %1024, label %1081

1024:                                             ; preds = %1020
  %1025 = load i32, ptr %77, align 4, !tbaa !9
  %1026 = load i32, ptr %74, align 4, !tbaa !9
  %1027 = load i32, ptr %39, align 4, !tbaa !9
  %1028 = mul nsw i32 %1026, %1027
  %1029 = add nsw i32 %1025, %1028
  store i32 %1029, ptr %45, align 4, !tbaa !9
  %1030 = load float, ptr %57, align 4, !tbaa !15
  store float %1030, ptr %49, align 4, !tbaa !15
  %1031 = load ptr, ptr %27, align 8, !tbaa !5
  %1032 = load i32, ptr %45, align 4, !tbaa !9
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds %struct.complex, ptr %1031, i64 %1033
  %1035 = getelementptr inbounds %struct.complex, ptr %1034, i32 0, i32 0
  %1036 = load float, ptr %1035, align 4, !tbaa !11
  store float %1036, ptr %47, align 4, !tbaa !15
  %1037 = load float, ptr %47, align 4, !tbaa !15
  %1038 = fcmp oge float %1037, 0.000000e+00
  br i1 %1038, label %1039, label %1041

1039:                                             ; preds = %1024
  %1040 = load float, ptr %47, align 4, !tbaa !15
  br label %1044

1041:                                             ; preds = %1024
  %1042 = load float, ptr %47, align 4, !tbaa !15
  %1043 = fneg float %1042
  br label %1044

1044:                                             ; preds = %1041, %1039
  %1045 = phi float [ %1040, %1039 ], [ %1043, %1041 ]
  %1046 = load ptr, ptr %27, align 8, !tbaa !5
  %1047 = load i32, ptr %77, align 4, !tbaa !9
  %1048 = load i32, ptr %74, align 4, !tbaa !9
  %1049 = load i32, ptr %39, align 4, !tbaa !9
  %1050 = mul nsw i32 %1048, %1049
  %1051 = add nsw i32 %1047, %1050
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds %struct.complex, ptr %1046, i64 %1052
  %1054 = call <2 x float> @Cf(ptr noundef %1053)
  store <2 x float> %1054, ptr %100, align 4
  %1055 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 0
  %1056 = load float, ptr %1055, align 4
  %1057 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 1
  %1058 = load float, ptr %1057, align 4
  store float %1058, ptr %48, align 4, !tbaa !15
  %1059 = load float, ptr %48, align 4, !tbaa !15
  %1060 = fcmp oge float %1059, 0.000000e+00
  br i1 %1060, label %1061, label %1063

1061:                                             ; preds = %1044
  %1062 = load float, ptr %48, align 4, !tbaa !15
  br label %1066

1063:                                             ; preds = %1044
  %1064 = load float, ptr %48, align 4, !tbaa !15
  %1065 = fneg float %1064
  br label %1066

1066:                                             ; preds = %1063, %1061
  %1067 = phi float [ %1062, %1061 ], [ %1065, %1063 ]
  %1068 = fadd float %1045, %1067
  store float %1068, ptr %50, align 4, !tbaa !15
  %1069 = load float, ptr %49, align 4, !tbaa !15
  %1070 = load float, ptr %50, align 4, !tbaa !15
  %1071 = fcmp oge float %1069, %1070
  br i1 %1071, label %1072, label %1074

1072:                                             ; preds = %1066
  %1073 = load float, ptr %49, align 4, !tbaa !15
  br label %1076

1074:                                             ; preds = %1066
  %1075 = load float, ptr %50, align 4, !tbaa !15
  br label %1076

1076:                                             ; preds = %1074, %1072
  %1077 = phi float [ %1073, %1072 ], [ %1075, %1074 ]
  store float %1077, ptr %57, align 4, !tbaa !15
  br label %1078

1078:                                             ; preds = %1076
  %1079 = load i32, ptr %77, align 4, !tbaa !9
  %1080 = add nsw i32 %1079, 1
  store i32 %1080, ptr %77, align 4, !tbaa !9
  br label %1020, !llvm.loop !17

1081:                                             ; preds = %1020
  %1082 = load float, ptr %57, align 4, !tbaa !15
  %1083 = load float, ptr %80, align 4, !tbaa !15
  %1084 = fcmp olt float %1082, %1083
  br i1 %1084, label %1085, label %1086

1085:                                             ; preds = %1081
  br label %1142

1086:                                             ; preds = %1081
  %1087 = load float, ptr %57, align 4, !tbaa !15
  %1088 = fdiv float 1.000000e+00, %1087
  store float %1088, ptr %57, align 4, !tbaa !15
  %1089 = load ptr, ptr %20, align 8, !tbaa !5
  %1090 = load i32, ptr %1089, align 4, !tbaa !9
  store i32 %1090, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %1091

1091:                                             ; preds = %1138, %1086
  %1092 = load i32, ptr %77, align 4, !tbaa !9
  %1093 = load i32, ptr %44, align 4, !tbaa !9
  %1094 = icmp sle i32 %1092, %1093
  br i1 %1094, label %1095, label %1141

1095:                                             ; preds = %1091
  %1096 = load i32, ptr %77, align 4, !tbaa !9
  %1097 = load i32, ptr %74, align 4, !tbaa !9
  %1098 = load i32, ptr %39, align 4, !tbaa !9
  %1099 = mul nsw i32 %1097, %1098
  %1100 = add nsw i32 %1096, %1099
  store i32 %1100, ptr %45, align 4, !tbaa !9
  %1101 = load i32, ptr %77, align 4, !tbaa !9
  %1102 = load i32, ptr %74, align 4, !tbaa !9
  %1103 = load i32, ptr %39, align 4, !tbaa !9
  %1104 = mul nsw i32 %1102, %1103
  %1105 = add nsw i32 %1101, %1104
  store i32 %1105, ptr %46, align 4, !tbaa !9
  %1106 = load float, ptr %57, align 4, !tbaa !15
  %1107 = load ptr, ptr %27, align 8, !tbaa !5
  %1108 = load i32, ptr %46, align 4, !tbaa !9
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds %struct.complex, ptr %1107, i64 %1109
  %1111 = getelementptr inbounds %struct.complex, ptr %1110, i32 0, i32 0
  %1112 = load float, ptr %1111, align 4, !tbaa !11
  %1113 = fmul float %1106, %1112
  %1114 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1113, ptr %1114, align 4, !tbaa !11
  %1115 = load float, ptr %57, align 4, !tbaa !15
  %1116 = load ptr, ptr %27, align 8, !tbaa !5
  %1117 = load i32, ptr %46, align 4, !tbaa !9
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds %struct.complex, ptr %1116, i64 %1118
  %1120 = getelementptr inbounds %struct.complex, ptr %1119, i32 0, i32 1
  %1121 = load float, ptr %1120, align 4, !tbaa !14
  %1122 = fmul float %1115, %1121
  %1123 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1122, ptr %1123, align 4, !tbaa !14
  %1124 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1125 = load float, ptr %1124, align 4, !tbaa !11
  %1126 = load ptr, ptr %27, align 8, !tbaa !5
  %1127 = load i32, ptr %45, align 4, !tbaa !9
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds %struct.complex, ptr %1126, i64 %1128
  %1130 = getelementptr inbounds %struct.complex, ptr %1129, i32 0, i32 0
  store float %1125, ptr %1130, align 4, !tbaa !11
  %1131 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1132 = load float, ptr %1131, align 4, !tbaa !14
  %1133 = load ptr, ptr %27, align 8, !tbaa !5
  %1134 = load i32, ptr %45, align 4, !tbaa !9
  %1135 = sext i32 %1134 to i64
  %1136 = getelementptr inbounds %struct.complex, ptr %1133, i64 %1135
  %1137 = getelementptr inbounds %struct.complex, ptr %1136, i32 0, i32 1
  store float %1132, ptr %1137, align 4, !tbaa !14
  br label %1138

1138:                                             ; preds = %1095
  %1139 = load i32, ptr %77, align 4, !tbaa !9
  %1140 = add nsw i32 %1139, 1
  store i32 %1140, ptr %77, align 4, !tbaa !9
  br label %1091, !llvm.loop !19

1141:                                             ; preds = %1091
  br label %1142

1142:                                             ; preds = %1141, %1085
  br label %1143

1143:                                             ; preds = %1142
  %1144 = load i32, ptr %74, align 4, !tbaa !9
  %1145 = add nsw i32 %1144, 1
  store i32 %1145, ptr %74, align 4, !tbaa !9
  br label %1013, !llvm.loop !20

1146:                                             ; preds = %1013
  br label %1147

1147:                                             ; preds = %1146, %984
  %1148 = load i32, ptr %59, align 4, !tbaa !9
  %1149 = icmp ne i32 %1148, 0
  br i1 %1149, label %1150, label %1310

1150:                                             ; preds = %1147
  %1151 = load ptr, ptr %20, align 8, !tbaa !5
  %1152 = load ptr, ptr %33, align 8, !tbaa !5
  %1153 = load i32, ptr %69, align 4, !tbaa !9
  %1154 = sext i32 %1153 to i64
  %1155 = getelementptr inbounds float, ptr %1152, i64 %1154
  %1156 = load ptr, ptr %33, align 8, !tbaa !5
  %1157 = load i32, ptr %85, align 4, !tbaa !9
  %1158 = sext i32 %1157 to i64
  %1159 = getelementptr inbounds float, ptr %1156, i64 %1158
  %1160 = load ptr, ptr %20, align 8, !tbaa !5
  %1161 = load ptr, ptr %29, align 8, !tbaa !5
  %1162 = load i32, ptr %42, align 4, !tbaa !9
  %1163 = sext i32 %1162 to i64
  %1164 = getelementptr inbounds %struct.complex, ptr %1161, i64 %1163
  %1165 = load ptr, ptr %30, align 8, !tbaa !5
  call void @cggbak_(ptr noundef @.str.12, ptr noundef @.str.16, ptr noundef %1151, ptr noundef %96, ptr noundef %95, ptr noundef %1155, ptr noundef %1159, ptr noundef %1160, ptr noundef %1164, ptr noundef %1165, ptr noundef %70)
  %1166 = load i32, ptr %70, align 4, !tbaa !9
  %1167 = icmp ne i32 %1166, 0
  br i1 %1167, label %1168, label %1173

1168:                                             ; preds = %1150
  %1169 = load ptr, ptr %20, align 8, !tbaa !5
  %1170 = load i32, ptr %1169, align 4, !tbaa !9
  %1171 = add nsw i32 %1170, 9
  %1172 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %1171, ptr %1172, align 4, !tbaa !9
  br label %1750

1173:                                             ; preds = %1150
  %1174 = load ptr, ptr %20, align 8, !tbaa !5
  %1175 = load i32, ptr %1174, align 4, !tbaa !9
  store i32 %1175, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %1176

1176:                                             ; preds = %1306, %1173
  %1177 = load i32, ptr %74, align 4, !tbaa !9
  %1178 = load i32, ptr %43, align 4, !tbaa !9
  %1179 = icmp sle i32 %1177, %1178
  br i1 %1179, label %1180, label %1309

1180:                                             ; preds = %1176
  store float 0.000000e+00, ptr %57, align 4, !tbaa !15
  %1181 = load ptr, ptr %20, align 8, !tbaa !5
  %1182 = load i32, ptr %1181, align 4, !tbaa !9
  store i32 %1182, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %1183

1183:                                             ; preds = %1241, %1180
  %1184 = load i32, ptr %77, align 4, !tbaa !9
  %1185 = load i32, ptr %44, align 4, !tbaa !9
  %1186 = icmp sle i32 %1184, %1185
  br i1 %1186, label %1187, label %1244

1187:                                             ; preds = %1183
  %1188 = load i32, ptr %77, align 4, !tbaa !9
  %1189 = load i32, ptr %74, align 4, !tbaa !9
  %1190 = load i32, ptr %41, align 4, !tbaa !9
  %1191 = mul nsw i32 %1189, %1190
  %1192 = add nsw i32 %1188, %1191
  store i32 %1192, ptr %45, align 4, !tbaa !9
  %1193 = load float, ptr %57, align 4, !tbaa !15
  store float %1193, ptr %49, align 4, !tbaa !15
  %1194 = load ptr, ptr %29, align 8, !tbaa !5
  %1195 = load i32, ptr %45, align 4, !tbaa !9
  %1196 = sext i32 %1195 to i64
  %1197 = getelementptr inbounds %struct.complex, ptr %1194, i64 %1196
  %1198 = getelementptr inbounds %struct.complex, ptr %1197, i32 0, i32 0
  %1199 = load float, ptr %1198, align 4, !tbaa !11
  store float %1199, ptr %47, align 4, !tbaa !15
  %1200 = load float, ptr %47, align 4, !tbaa !15
  %1201 = fcmp oge float %1200, 0.000000e+00
  br i1 %1201, label %1202, label %1204

1202:                                             ; preds = %1187
  %1203 = load float, ptr %47, align 4, !tbaa !15
  br label %1207

1204:                                             ; preds = %1187
  %1205 = load float, ptr %47, align 4, !tbaa !15
  %1206 = fneg float %1205
  br label %1207

1207:                                             ; preds = %1204, %1202
  %1208 = phi float [ %1203, %1202 ], [ %1206, %1204 ]
  %1209 = load ptr, ptr %29, align 8, !tbaa !5
  %1210 = load i32, ptr %77, align 4, !tbaa !9
  %1211 = load i32, ptr %74, align 4, !tbaa !9
  %1212 = load i32, ptr %41, align 4, !tbaa !9
  %1213 = mul nsw i32 %1211, %1212
  %1214 = add nsw i32 %1210, %1213
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds %struct.complex, ptr %1209, i64 %1215
  %1217 = call <2 x float> @Cf(ptr noundef %1216)
  store <2 x float> %1217, ptr %101, align 4
  %1218 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 0
  %1219 = load float, ptr %1218, align 4
  %1220 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 1
  %1221 = load float, ptr %1220, align 4
  store float %1221, ptr %48, align 4, !tbaa !15
  %1222 = load float, ptr %48, align 4, !tbaa !15
  %1223 = fcmp oge float %1222, 0.000000e+00
  br i1 %1223, label %1224, label %1226

1224:                                             ; preds = %1207
  %1225 = load float, ptr %48, align 4, !tbaa !15
  br label %1229

1226:                                             ; preds = %1207
  %1227 = load float, ptr %48, align 4, !tbaa !15
  %1228 = fneg float %1227
  br label %1229

1229:                                             ; preds = %1226, %1224
  %1230 = phi float [ %1225, %1224 ], [ %1228, %1226 ]
  %1231 = fadd float %1208, %1230
  store float %1231, ptr %50, align 4, !tbaa !15
  %1232 = load float, ptr %49, align 4, !tbaa !15
  %1233 = load float, ptr %50, align 4, !tbaa !15
  %1234 = fcmp oge float %1232, %1233
  br i1 %1234, label %1235, label %1237

1235:                                             ; preds = %1229
  %1236 = load float, ptr %49, align 4, !tbaa !15
  br label %1239

1237:                                             ; preds = %1229
  %1238 = load float, ptr %50, align 4, !tbaa !15
  br label %1239

1239:                                             ; preds = %1237, %1235
  %1240 = phi float [ %1236, %1235 ], [ %1238, %1237 ]
  store float %1240, ptr %57, align 4, !tbaa !15
  br label %1241

1241:                                             ; preds = %1239
  %1242 = load i32, ptr %77, align 4, !tbaa !9
  %1243 = add nsw i32 %1242, 1
  store i32 %1243, ptr %77, align 4, !tbaa !9
  br label %1183, !llvm.loop !21

1244:                                             ; preds = %1183
  %1245 = load float, ptr %57, align 4, !tbaa !15
  %1246 = load float, ptr %80, align 4, !tbaa !15
  %1247 = fcmp olt float %1245, %1246
  br i1 %1247, label %1248, label %1249

1248:                                             ; preds = %1244
  br label %1305

1249:                                             ; preds = %1244
  %1250 = load float, ptr %57, align 4, !tbaa !15
  %1251 = fdiv float 1.000000e+00, %1250
  store float %1251, ptr %57, align 4, !tbaa !15
  %1252 = load ptr, ptr %20, align 8, !tbaa !5
  %1253 = load i32, ptr %1252, align 4, !tbaa !9
  store i32 %1253, ptr %44, align 4, !tbaa !9
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %1254

1254:                                             ; preds = %1301, %1249
  %1255 = load i32, ptr %77, align 4, !tbaa !9
  %1256 = load i32, ptr %44, align 4, !tbaa !9
  %1257 = icmp sle i32 %1255, %1256
  br i1 %1257, label %1258, label %1304

1258:                                             ; preds = %1254
  %1259 = load i32, ptr %77, align 4, !tbaa !9
  %1260 = load i32, ptr %74, align 4, !tbaa !9
  %1261 = load i32, ptr %41, align 4, !tbaa !9
  %1262 = mul nsw i32 %1260, %1261
  %1263 = add nsw i32 %1259, %1262
  store i32 %1263, ptr %45, align 4, !tbaa !9
  %1264 = load i32, ptr %77, align 4, !tbaa !9
  %1265 = load i32, ptr %74, align 4, !tbaa !9
  %1266 = load i32, ptr %41, align 4, !tbaa !9
  %1267 = mul nsw i32 %1265, %1266
  %1268 = add nsw i32 %1264, %1267
  store i32 %1268, ptr %46, align 4, !tbaa !9
  %1269 = load float, ptr %57, align 4, !tbaa !15
  %1270 = load ptr, ptr %29, align 8, !tbaa !5
  %1271 = load i32, ptr %46, align 4, !tbaa !9
  %1272 = sext i32 %1271 to i64
  %1273 = getelementptr inbounds %struct.complex, ptr %1270, i64 %1272
  %1274 = getelementptr inbounds %struct.complex, ptr %1273, i32 0, i32 0
  %1275 = load float, ptr %1274, align 4, !tbaa !11
  %1276 = fmul float %1269, %1275
  %1277 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1276, ptr %1277, align 4, !tbaa !11
  %1278 = load float, ptr %57, align 4, !tbaa !15
  %1279 = load ptr, ptr %29, align 8, !tbaa !5
  %1280 = load i32, ptr %46, align 4, !tbaa !9
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds %struct.complex, ptr %1279, i64 %1281
  %1283 = getelementptr inbounds %struct.complex, ptr %1282, i32 0, i32 1
  %1284 = load float, ptr %1283, align 4, !tbaa !14
  %1285 = fmul float %1278, %1284
  %1286 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1285, ptr %1286, align 4, !tbaa !14
  %1287 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1288 = load float, ptr %1287, align 4, !tbaa !11
  %1289 = load ptr, ptr %29, align 8, !tbaa !5
  %1290 = load i32, ptr %45, align 4, !tbaa !9
  %1291 = sext i32 %1290 to i64
  %1292 = getelementptr inbounds %struct.complex, ptr %1289, i64 %1291
  %1293 = getelementptr inbounds %struct.complex, ptr %1292, i32 0, i32 0
  store float %1288, ptr %1293, align 4, !tbaa !11
  %1294 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1295 = load float, ptr %1294, align 4, !tbaa !14
  %1296 = load ptr, ptr %29, align 8, !tbaa !5
  %1297 = load i32, ptr %45, align 4, !tbaa !9
  %1298 = sext i32 %1297 to i64
  %1299 = getelementptr inbounds %struct.complex, ptr %1296, i64 %1298
  %1300 = getelementptr inbounds %struct.complex, ptr %1299, i32 0, i32 1
  store float %1295, ptr %1300, align 4, !tbaa !14
  br label %1301

1301:                                             ; preds = %1258
  %1302 = load i32, ptr %77, align 4, !tbaa !9
  %1303 = add nsw i32 %1302, 1
  store i32 %1303, ptr %77, align 4, !tbaa !9
  br label %1254, !llvm.loop !22

1304:                                             ; preds = %1254
  br label %1305

1305:                                             ; preds = %1304, %1248
  br label %1306

1306:                                             ; preds = %1305
  %1307 = load i32, ptr %74, align 4, !tbaa !9
  %1308 = add nsw i32 %1307, 1
  store i32 %1308, ptr %74, align 4, !tbaa !9
  br label %1176, !llvm.loop !23

1309:                                             ; preds = %1176
  br label %1310

1310:                                             ; preds = %1309, %1147
  br label %1311

1311:                                             ; preds = %1310, %928
  %1312 = load ptr, ptr %20, align 8, !tbaa !5
  %1313 = load i32, ptr %1312, align 4, !tbaa !9
  store i32 %1313, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %1314

1314:                                             ; preds = %1746, %1311
  %1315 = load i32, ptr %74, align 4, !tbaa !9
  %1316 = load i32, ptr %43, align 4, !tbaa !9
  %1317 = icmp sle i32 %1315, %1316
  br i1 %1317, label %1318, label %1749

1318:                                             ; preds = %1314
  %1319 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1319, ptr %44, align 4, !tbaa !9
  %1320 = load ptr, ptr %25, align 8, !tbaa !5
  %1321 = load i32, ptr %44, align 4, !tbaa !9
  %1322 = sext i32 %1321 to i64
  %1323 = getelementptr inbounds %struct.complex, ptr %1320, i64 %1322
  %1324 = getelementptr inbounds %struct.complex, ptr %1323, i32 0, i32 0
  %1325 = load float, ptr %1324, align 4, !tbaa !11
  store float %1325, ptr %47, align 4, !tbaa !15
  %1326 = load float, ptr %47, align 4, !tbaa !15
  %1327 = fcmp oge float %1326, 0.000000e+00
  br i1 %1327, label %1328, label %1330

1328:                                             ; preds = %1318
  %1329 = load float, ptr %47, align 4, !tbaa !15
  br label %1333

1330:                                             ; preds = %1318
  %1331 = load float, ptr %47, align 4, !tbaa !15
  %1332 = fneg float %1331
  br label %1333

1333:                                             ; preds = %1330, %1328
  %1334 = phi float [ %1329, %1328 ], [ %1332, %1330 ]
  store float %1334, ptr %67, align 4, !tbaa !15
  %1335 = load ptr, ptr %25, align 8, !tbaa !5
  %1336 = load i32, ptr %74, align 4, !tbaa !9
  %1337 = sext i32 %1336 to i64
  %1338 = getelementptr inbounds %struct.complex, ptr %1335, i64 %1337
  %1339 = call <2 x float> @Cf(ptr noundef %1338)
  store <2 x float> %1339, ptr %102, align 4
  %1340 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 0
  %1341 = load float, ptr %1340, align 4
  %1342 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 1
  %1343 = load float, ptr %1342, align 4
  store float %1343, ptr %47, align 4, !tbaa !15
  %1344 = load float, ptr %47, align 4, !tbaa !15
  %1345 = fcmp oge float %1344, 0.000000e+00
  br i1 %1345, label %1346, label %1348

1346:                                             ; preds = %1333
  %1347 = load float, ptr %47, align 4, !tbaa !15
  br label %1351

1348:                                             ; preds = %1333
  %1349 = load float, ptr %47, align 4, !tbaa !15
  %1350 = fneg float %1349
  br label %1351

1351:                                             ; preds = %1348, %1346
  %1352 = phi float [ %1347, %1346 ], [ %1350, %1348 ]
  store float %1352, ptr %65, align 4, !tbaa !15
  %1353 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1353, ptr %44, align 4, !tbaa !9
  %1354 = load ptr, ptr %26, align 8, !tbaa !5
  %1355 = load i32, ptr %44, align 4, !tbaa !9
  %1356 = sext i32 %1355 to i64
  %1357 = getelementptr inbounds %struct.complex, ptr %1354, i64 %1356
  %1358 = getelementptr inbounds %struct.complex, ptr %1357, i32 0, i32 0
  %1359 = load float, ptr %1358, align 4, !tbaa !11
  store float %1359, ptr %47, align 4, !tbaa !15
  %1360 = load float, ptr %47, align 4, !tbaa !15
  %1361 = fcmp oge float %1360, 0.000000e+00
  br i1 %1361, label %1362, label %1364

1362:                                             ; preds = %1351
  %1363 = load float, ptr %47, align 4, !tbaa !15
  br label %1367

1364:                                             ; preds = %1351
  %1365 = load float, ptr %47, align 4, !tbaa !15
  %1366 = fneg float %1365
  br label %1367

1367:                                             ; preds = %1364, %1362
  %1368 = phi float [ %1363, %1362 ], [ %1366, %1364 ]
  store float %1368, ptr %53, align 4, !tbaa !15
  %1369 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1369, ptr %44, align 4, !tbaa !9
  %1370 = load float, ptr %54, align 4, !tbaa !15
  %1371 = load ptr, ptr %25, align 8, !tbaa !5
  %1372 = load i32, ptr %44, align 4, !tbaa !9
  %1373 = sext i32 %1372 to i64
  %1374 = getelementptr inbounds %struct.complex, ptr %1371, i64 %1373
  %1375 = getelementptr inbounds %struct.complex, ptr %1374, i32 0, i32 0
  %1376 = load float, ptr %1375, align 4, !tbaa !11
  %1377 = fmul float %1370, %1376
  store float %1377, ptr %79, align 4, !tbaa !15
  %1378 = load float, ptr %54, align 4, !tbaa !15
  %1379 = load ptr, ptr %25, align 8, !tbaa !5
  %1380 = load i32, ptr %74, align 4, !tbaa !9
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds %struct.complex, ptr %1379, i64 %1381
  %1383 = call <2 x float> @Cf(ptr noundef %1382)
  store <2 x float> %1383, ptr %103, align 4
  %1384 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 0
  %1385 = load float, ptr %1384, align 4
  %1386 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 1
  %1387 = load float, ptr %1386, align 4
  %1388 = fmul float %1378, %1387
  store float %1388, ptr %78, align 4, !tbaa !15
  %1389 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1389, ptr %44, align 4, !tbaa !9
  %1390 = load float, ptr %55, align 4, !tbaa !15
  %1391 = load ptr, ptr %26, align 8, !tbaa !5
  %1392 = load i32, ptr %44, align 4, !tbaa !9
  %1393 = sext i32 %1392 to i64
  %1394 = getelementptr inbounds %struct.complex, ptr %1391, i64 %1393
  %1395 = getelementptr inbounds %struct.complex, ptr %1394, i32 0, i32 0
  %1396 = load float, ptr %1395, align 4, !tbaa !11
  %1397 = fmul float %1390, %1396
  store float %1397, ptr %68, align 4, !tbaa !15
  store i32 0, ptr %86, align 4, !tbaa !9
  store float 1.000000e+00, ptr %66, align 4, !tbaa !15
  %1398 = load float, ptr %80, align 4, !tbaa !15
  store float %1398, ptr %47, align 4, !tbaa !15
  %1399 = load float, ptr %97, align 4, !tbaa !15
  %1400 = load float, ptr %67, align 4, !tbaa !15
  %1401 = fmul float %1399, %1400
  store float %1401, ptr %48, align 4, !tbaa !15
  %1402 = load float, ptr %47, align 4, !tbaa !15
  %1403 = load float, ptr %48, align 4, !tbaa !15
  %1404 = fcmp oge float %1402, %1403
  br i1 %1404, label %1405, label %1407

1405:                                             ; preds = %1367
  %1406 = load float, ptr %47, align 4, !tbaa !15
  br label %1409

1407:                                             ; preds = %1367
  %1408 = load float, ptr %48, align 4, !tbaa !15
  br label %1409

1409:                                             ; preds = %1407, %1405
  %1410 = phi float [ %1406, %1405 ], [ %1408, %1407 ]
  store float %1410, ptr %47, align 4, !tbaa !15
  %1411 = load float, ptr %97, align 4, !tbaa !15
  %1412 = load float, ptr %53, align 4, !tbaa !15
  %1413 = fmul float %1411, %1412
  store float %1413, ptr %48, align 4, !tbaa !15
  %1414 = load float, ptr %78, align 4, !tbaa !15
  %1415 = fcmp oge float %1414, 0.000000e+00
  br i1 %1415, label %1416, label %1418

1416:                                             ; preds = %1409
  %1417 = load float, ptr %78, align 4, !tbaa !15
  br label %1421

1418:                                             ; preds = %1409
  %1419 = load float, ptr %78, align 4, !tbaa !15
  %1420 = fneg float %1419
  br label %1421

1421:                                             ; preds = %1418, %1416
  %1422 = phi float [ %1417, %1416 ], [ %1420, %1418 ]
  %1423 = load float, ptr %80, align 4, !tbaa !15
  %1424 = fcmp olt float %1422, %1423
  br i1 %1424, label %1425, label %1455

1425:                                             ; preds = %1421
  %1426 = load float, ptr %65, align 4, !tbaa !15
  %1427 = load float, ptr %47, align 4, !tbaa !15
  %1428 = load float, ptr %48, align 4, !tbaa !15
  %1429 = fcmp oge float %1427, %1428
  br i1 %1429, label %1430, label %1432

1430:                                             ; preds = %1425
  %1431 = load float, ptr %47, align 4, !tbaa !15
  br label %1434

1432:                                             ; preds = %1425
  %1433 = load float, ptr %48, align 4, !tbaa !15
  br label %1434

1434:                                             ; preds = %1432, %1430
  %1435 = phi float [ %1431, %1430 ], [ %1433, %1432 ]
  %1436 = fcmp oge float %1426, %1435
  br i1 %1436, label %1437, label %1455

1437:                                             ; preds = %1434
  store i32 1, ptr %86, align 4, !tbaa !9
  %1438 = load float, ptr %80, align 4, !tbaa !15
  store float %1438, ptr %47, align 4, !tbaa !15
  %1439 = load float, ptr %62, align 4, !tbaa !15
  %1440 = load float, ptr %65, align 4, !tbaa !15
  %1441 = fmul float %1439, %1440
  store float %1441, ptr %48, align 4, !tbaa !15
  %1442 = load float, ptr %80, align 4, !tbaa !15
  %1443 = load float, ptr %61, align 4, !tbaa !15
  %1444 = fdiv float %1442, %1443
  %1445 = load float, ptr %47, align 4, !tbaa !15
  %1446 = load float, ptr %48, align 4, !tbaa !15
  %1447 = fcmp oge float %1445, %1446
  br i1 %1447, label %1448, label %1450

1448:                                             ; preds = %1437
  %1449 = load float, ptr %47, align 4, !tbaa !15
  br label %1452

1450:                                             ; preds = %1437
  %1451 = load float, ptr %48, align 4, !tbaa !15
  br label %1452

1452:                                             ; preds = %1450, %1448
  %1453 = phi float [ %1449, %1448 ], [ %1451, %1450 ]
  %1454 = fdiv float %1444, %1453
  store float %1454, ptr %66, align 4, !tbaa !15
  br label %1455

1455:                                             ; preds = %1452, %1434, %1421
  %1456 = load float, ptr %80, align 4, !tbaa !15
  store float %1456, ptr %47, align 4, !tbaa !15
  %1457 = load float, ptr %97, align 4, !tbaa !15
  %1458 = load float, ptr %65, align 4, !tbaa !15
  %1459 = fmul float %1457, %1458
  store float %1459, ptr %48, align 4, !tbaa !15
  %1460 = load float, ptr %47, align 4, !tbaa !15
  %1461 = load float, ptr %48, align 4, !tbaa !15
  %1462 = fcmp oge float %1460, %1461
  br i1 %1462, label %1463, label %1465

1463:                                             ; preds = %1455
  %1464 = load float, ptr %47, align 4, !tbaa !15
  br label %1467

1465:                                             ; preds = %1455
  %1466 = load float, ptr %48, align 4, !tbaa !15
  br label %1467

1467:                                             ; preds = %1465, %1463
  %1468 = phi float [ %1464, %1463 ], [ %1466, %1465 ]
  store float %1468, ptr %47, align 4, !tbaa !15
  %1469 = load float, ptr %97, align 4, !tbaa !15
  %1470 = load float, ptr %53, align 4, !tbaa !15
  %1471 = fmul float %1469, %1470
  store float %1471, ptr %48, align 4, !tbaa !15
  %1472 = load float, ptr %79, align 4, !tbaa !15
  %1473 = fcmp oge float %1472, 0.000000e+00
  br i1 %1473, label %1474, label %1476

1474:                                             ; preds = %1467
  %1475 = load float, ptr %79, align 4, !tbaa !15
  br label %1479

1476:                                             ; preds = %1467
  %1477 = load float, ptr %79, align 4, !tbaa !15
  %1478 = fneg float %1477
  br label %1479

1479:                                             ; preds = %1476, %1474
  %1480 = phi float [ %1475, %1474 ], [ %1478, %1476 ]
  %1481 = load float, ptr %80, align 4, !tbaa !15
  %1482 = fcmp olt float %1480, %1481
  br i1 %1482, label %1483, label %1523

1483:                                             ; preds = %1479
  %1484 = load float, ptr %67, align 4, !tbaa !15
  %1485 = load float, ptr %47, align 4, !tbaa !15
  %1486 = load float, ptr %48, align 4, !tbaa !15
  %1487 = fcmp oge float %1485, %1486
  br i1 %1487, label %1488, label %1490

1488:                                             ; preds = %1483
  %1489 = load float, ptr %47, align 4, !tbaa !15
  br label %1492

1490:                                             ; preds = %1483
  %1491 = load float, ptr %48, align 4, !tbaa !15
  br label %1492

1492:                                             ; preds = %1490, %1488
  %1493 = phi float [ %1489, %1488 ], [ %1491, %1490 ]
  %1494 = fcmp oge float %1484, %1493
  br i1 %1494, label %1495, label %1523

1495:                                             ; preds = %1492
  store i32 1, ptr %86, align 4, !tbaa !9
  %1496 = load float, ptr %80, align 4, !tbaa !15
  store float %1496, ptr %49, align 4, !tbaa !15
  %1497 = load float, ptr %62, align 4, !tbaa !15
  %1498 = load float, ptr %67, align 4, !tbaa !15
  %1499 = fmul float %1497, %1498
  store float %1499, ptr %50, align 4, !tbaa !15
  %1500 = load float, ptr %66, align 4, !tbaa !15
  store float %1500, ptr %47, align 4, !tbaa !15
  %1501 = load float, ptr %80, align 4, !tbaa !15
  %1502 = load float, ptr %61, align 4, !tbaa !15
  %1503 = fdiv float %1501, %1502
  %1504 = load float, ptr %49, align 4, !tbaa !15
  %1505 = load float, ptr %50, align 4, !tbaa !15
  %1506 = fcmp oge float %1504, %1505
  br i1 %1506, label %1507, label %1509

1507:                                             ; preds = %1495
  %1508 = load float, ptr %49, align 4, !tbaa !15
  br label %1511

1509:                                             ; preds = %1495
  %1510 = load float, ptr %50, align 4, !tbaa !15
  br label %1511

1511:                                             ; preds = %1509, %1507
  %1512 = phi float [ %1508, %1507 ], [ %1510, %1509 ]
  %1513 = fdiv float %1503, %1512
  store float %1513, ptr %48, align 4, !tbaa !15
  %1514 = load float, ptr %47, align 4, !tbaa !15
  %1515 = load float, ptr %48, align 4, !tbaa !15
  %1516 = fcmp oge float %1514, %1515
  br i1 %1516, label %1517, label %1519

1517:                                             ; preds = %1511
  %1518 = load float, ptr %47, align 4, !tbaa !15
  br label %1521

1519:                                             ; preds = %1511
  %1520 = load float, ptr %48, align 4, !tbaa !15
  br label %1521

1521:                                             ; preds = %1519, %1517
  %1522 = phi float [ %1518, %1517 ], [ %1520, %1519 ]
  store float %1522, ptr %66, align 4, !tbaa !15
  br label %1523

1523:                                             ; preds = %1521, %1492, %1479
  %1524 = load float, ptr %80, align 4, !tbaa !15
  store float %1524, ptr %47, align 4, !tbaa !15
  %1525 = load float, ptr %97, align 4, !tbaa !15
  %1526 = load float, ptr %67, align 4, !tbaa !15
  %1527 = fmul float %1525, %1526
  store float %1527, ptr %48, align 4, !tbaa !15
  %1528 = load float, ptr %47, align 4, !tbaa !15
  %1529 = load float, ptr %48, align 4, !tbaa !15
  %1530 = fcmp oge float %1528, %1529
  br i1 %1530, label %1531, label %1533

1531:                                             ; preds = %1523
  %1532 = load float, ptr %47, align 4, !tbaa !15
  br label %1535

1533:                                             ; preds = %1523
  %1534 = load float, ptr %48, align 4, !tbaa !15
  br label %1535

1535:                                             ; preds = %1533, %1531
  %1536 = phi float [ %1532, %1531 ], [ %1534, %1533 ]
  store float %1536, ptr %47, align 4, !tbaa !15
  %1537 = load float, ptr %97, align 4, !tbaa !15
  %1538 = load float, ptr %65, align 4, !tbaa !15
  %1539 = fmul float %1537, %1538
  store float %1539, ptr %48, align 4, !tbaa !15
  %1540 = load float, ptr %68, align 4, !tbaa !15
  %1541 = fcmp oge float %1540, 0.000000e+00
  br i1 %1541, label %1542, label %1544

1542:                                             ; preds = %1535
  %1543 = load float, ptr %68, align 4, !tbaa !15
  br label %1547

1544:                                             ; preds = %1535
  %1545 = load float, ptr %68, align 4, !tbaa !15
  %1546 = fneg float %1545
  br label %1547

1547:                                             ; preds = %1544, %1542
  %1548 = phi float [ %1543, %1542 ], [ %1546, %1544 ]
  %1549 = load float, ptr %80, align 4, !tbaa !15
  %1550 = fcmp olt float %1548, %1549
  br i1 %1550, label %1551, label %1591

1551:                                             ; preds = %1547
  %1552 = load float, ptr %53, align 4, !tbaa !15
  %1553 = load float, ptr %47, align 4, !tbaa !15
  %1554 = load float, ptr %48, align 4, !tbaa !15
  %1555 = fcmp oge float %1553, %1554
  br i1 %1555, label %1556, label %1558

1556:                                             ; preds = %1551
  %1557 = load float, ptr %47, align 4, !tbaa !15
  br label %1560

1558:                                             ; preds = %1551
  %1559 = load float, ptr %48, align 4, !tbaa !15
  br label %1560

1560:                                             ; preds = %1558, %1556
  %1561 = phi float [ %1557, %1556 ], [ %1559, %1558 ]
  %1562 = fcmp oge float %1552, %1561
  br i1 %1562, label %1563, label %1591

1563:                                             ; preds = %1560
  store i32 1, ptr %86, align 4, !tbaa !9
  %1564 = load float, ptr %80, align 4, !tbaa !15
  store float %1564, ptr %49, align 4, !tbaa !15
  %1565 = load float, ptr %64, align 4, !tbaa !15
  %1566 = load float, ptr %53, align 4, !tbaa !15
  %1567 = fmul float %1565, %1566
  store float %1567, ptr %50, align 4, !tbaa !15
  %1568 = load float, ptr %66, align 4, !tbaa !15
  store float %1568, ptr %47, align 4, !tbaa !15
  %1569 = load float, ptr %80, align 4, !tbaa !15
  %1570 = load float, ptr %63, align 4, !tbaa !15
  %1571 = fdiv float %1569, %1570
  %1572 = load float, ptr %49, align 4, !tbaa !15
  %1573 = load float, ptr %50, align 4, !tbaa !15
  %1574 = fcmp oge float %1572, %1573
  br i1 %1574, label %1575, label %1577

1575:                                             ; preds = %1563
  %1576 = load float, ptr %49, align 4, !tbaa !15
  br label %1579

1577:                                             ; preds = %1563
  %1578 = load float, ptr %50, align 4, !tbaa !15
  br label %1579

1579:                                             ; preds = %1577, %1575
  %1580 = phi float [ %1576, %1575 ], [ %1578, %1577 ]
  %1581 = fdiv float %1571, %1580
  store float %1581, ptr %48, align 4, !tbaa !15
  %1582 = load float, ptr %47, align 4, !tbaa !15
  %1583 = load float, ptr %48, align 4, !tbaa !15
  %1584 = fcmp oge float %1582, %1583
  br i1 %1584, label %1585, label %1587

1585:                                             ; preds = %1579
  %1586 = load float, ptr %47, align 4, !tbaa !15
  br label %1589

1587:                                             ; preds = %1579
  %1588 = load float, ptr %48, align 4, !tbaa !15
  br label %1589

1589:                                             ; preds = %1587, %1585
  %1590 = phi float [ %1586, %1585 ], [ %1588, %1587 ]
  store float %1590, ptr %66, align 4, !tbaa !15
  br label %1591

1591:                                             ; preds = %1589, %1560, %1547
  %1592 = load i32, ptr %86, align 4, !tbaa !9
  %1593 = icmp ne i32 %1592, 0
  br i1 %1593, label %1594, label %1655

1594:                                             ; preds = %1591
  %1595 = load float, ptr %79, align 4, !tbaa !15
  %1596 = fcmp oge float %1595, 0.000000e+00
  br i1 %1596, label %1597, label %1599

1597:                                             ; preds = %1594
  %1598 = load float, ptr %79, align 4, !tbaa !15
  br label %1602

1599:                                             ; preds = %1594
  %1600 = load float, ptr %79, align 4, !tbaa !15
  %1601 = fneg float %1600
  br label %1602

1602:                                             ; preds = %1599, %1597
  %1603 = phi float [ %1598, %1597 ], [ %1601, %1599 ]
  store float %1603, ptr %47, align 4, !tbaa !15
  %1604 = load float, ptr %78, align 4, !tbaa !15
  %1605 = fcmp oge float %1604, 0.000000e+00
  br i1 %1605, label %1606, label %1608

1606:                                             ; preds = %1602
  %1607 = load float, ptr %78, align 4, !tbaa !15
  br label %1611

1608:                                             ; preds = %1602
  %1609 = load float, ptr %78, align 4, !tbaa !15
  %1610 = fneg float %1609
  br label %1611

1611:                                             ; preds = %1608, %1606
  %1612 = phi float [ %1607, %1606 ], [ %1610, %1608 ]
  store float %1612, ptr %48, align 4, !tbaa !15
  %1613 = load float, ptr %47, align 4, !tbaa !15
  %1614 = load float, ptr %48, align 4, !tbaa !15
  %1615 = fcmp oge float %1613, %1614
  br i1 %1615, label %1616, label %1618

1616:                                             ; preds = %1611
  %1617 = load float, ptr %47, align 4, !tbaa !15
  br label %1620

1618:                                             ; preds = %1611
  %1619 = load float, ptr %48, align 4, !tbaa !15
  br label %1620

1620:                                             ; preds = %1618, %1616
  %1621 = phi float [ %1617, %1616 ], [ %1619, %1618 ]
  store float %1621, ptr %47, align 4, !tbaa !15
  %1622 = load float, ptr %68, align 4, !tbaa !15
  %1623 = fcmp oge float %1622, 0.000000e+00
  br i1 %1623, label %1624, label %1626

1624:                                             ; preds = %1620
  %1625 = load float, ptr %68, align 4, !tbaa !15
  br label %1629

1626:                                             ; preds = %1620
  %1627 = load float, ptr %68, align 4, !tbaa !15
  %1628 = fneg float %1627
  br label %1629

1629:                                             ; preds = %1626, %1624
  %1630 = phi float [ %1625, %1624 ], [ %1628, %1626 ]
  store float %1630, ptr %48, align 4, !tbaa !15
  %1631 = load float, ptr %66, align 4, !tbaa !15
  %1632 = load float, ptr %80, align 4, !tbaa !15
  %1633 = fmul float %1631, %1632
  %1634 = load float, ptr %47, align 4, !tbaa !15
  %1635 = load float, ptr %48, align 4, !tbaa !15
  %1636 = fcmp oge float %1634, %1635
  br i1 %1636, label %1637, label %1639

1637:                                             ; preds = %1629
  %1638 = load float, ptr %47, align 4, !tbaa !15
  br label %1641

1639:                                             ; preds = %1629
  %1640 = load float, ptr %48, align 4, !tbaa !15
  br label %1641

1641:                                             ; preds = %1639, %1637
  %1642 = phi float [ %1638, %1637 ], [ %1640, %1639 ]
  %1643 = fmul float %1633, %1642
  store float %1643, ptr %57, align 4, !tbaa !15
  %1644 = load float, ptr %57, align 4, !tbaa !15
  %1645 = fcmp ogt float %1644, 1.000000e+00
  br i1 %1645, label %1646, label %1650

1646:                                             ; preds = %1641
  %1647 = load float, ptr %57, align 4, !tbaa !15
  %1648 = load float, ptr %66, align 4, !tbaa !15
  %1649 = fdiv float %1648, %1647
  store float %1649, ptr %66, align 4, !tbaa !15
  br label %1650

1650:                                             ; preds = %1646, %1641
  %1651 = load float, ptr %66, align 4, !tbaa !15
  %1652 = fcmp olt float %1651, 1.000000e+00
  br i1 %1652, label %1653, label %1654

1653:                                             ; preds = %1650
  store i32 0, ptr %86, align 4, !tbaa !9
  br label %1654

1654:                                             ; preds = %1653, %1650
  br label %1655

1655:                                             ; preds = %1654, %1591
  %1656 = load i32, ptr %86, align 4, !tbaa !9
  %1657 = icmp ne i32 %1656, 0
  br i1 %1657, label %1658, label %1714

1658:                                             ; preds = %1655
  %1659 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1659, ptr %44, align 4, !tbaa !9
  %1660 = load float, ptr %66, align 4, !tbaa !15
  %1661 = load ptr, ptr %25, align 8, !tbaa !5
  %1662 = load i32, ptr %44, align 4, !tbaa !9
  %1663 = sext i32 %1662 to i64
  %1664 = getelementptr inbounds %struct.complex, ptr %1661, i64 %1663
  %1665 = getelementptr inbounds %struct.complex, ptr %1664, i32 0, i32 0
  %1666 = load float, ptr %1665, align 4, !tbaa !11
  %1667 = fmul float %1660, %1666
  %1668 = load float, ptr %54, align 4, !tbaa !15
  %1669 = fmul float %1667, %1668
  store float %1669, ptr %79, align 4, !tbaa !15
  %1670 = load float, ptr %66, align 4, !tbaa !15
  %1671 = load ptr, ptr %25, align 8, !tbaa !5
  %1672 = load i32, ptr %74, align 4, !tbaa !9
  %1673 = sext i32 %1672 to i64
  %1674 = getelementptr inbounds %struct.complex, ptr %1671, i64 %1673
  %1675 = call <2 x float> @Cf(ptr noundef %1674)
  store <2 x float> %1675, ptr %104, align 4
  %1676 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 0
  %1677 = load float, ptr %1676, align 4
  %1678 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 1
  %1679 = load float, ptr %1678, align 4
  %1680 = fmul float %1670, %1679
  %1681 = load float, ptr %54, align 4, !tbaa !15
  %1682 = fmul float %1680, %1681
  store float %1682, ptr %78, align 4, !tbaa !15
  %1683 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1683, ptr %44, align 4, !tbaa !9
  %1684 = load float, ptr %66, align 4, !tbaa !15
  %1685 = load ptr, ptr %26, align 8, !tbaa !5
  %1686 = load i32, ptr %44, align 4, !tbaa !9
  %1687 = sext i32 %1686 to i64
  %1688 = getelementptr inbounds %struct.complex, ptr %1685, i64 %1687
  %1689 = getelementptr inbounds %struct.complex, ptr %1688, i32 0, i32 0
  %1690 = load float, ptr %1689, align 4, !tbaa !11
  %1691 = fmul float %1684, %1690
  %1692 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1691, ptr %1692, align 4, !tbaa !11
  %1693 = load float, ptr %66, align 4, !tbaa !15
  %1694 = load ptr, ptr %26, align 8, !tbaa !5
  %1695 = load i32, ptr %44, align 4, !tbaa !9
  %1696 = sext i32 %1695 to i64
  %1697 = getelementptr inbounds %struct.complex, ptr %1694, i64 %1696
  %1698 = getelementptr inbounds %struct.complex, ptr %1697, i32 0, i32 1
  %1699 = load float, ptr %1698, align 4, !tbaa !14
  %1700 = fmul float %1693, %1699
  %1701 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1700, ptr %1701, align 4, !tbaa !14
  %1702 = load float, ptr %55, align 4, !tbaa !15
  %1703 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1704 = load float, ptr %1703, align 4, !tbaa !11
  %1705 = fmul float %1702, %1704
  %1706 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1705, ptr %1706, align 4, !tbaa !11
  %1707 = load float, ptr %55, align 4, !tbaa !15
  %1708 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1709 = load float, ptr %1708, align 4, !tbaa !14
  %1710 = fmul float %1707, %1709
  %1711 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1710, ptr %1711, align 4, !tbaa !14
  %1712 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1713 = load float, ptr %1712, align 4, !tbaa !11
  store float %1713, ptr %68, align 4, !tbaa !15
  br label %1714

1714:                                             ; preds = %1658, %1655
  %1715 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1715, ptr %44, align 4, !tbaa !9
  %1716 = load float, ptr %79, align 4, !tbaa !15
  %1717 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1716, ptr %1717, align 4, !tbaa !11
  %1718 = load float, ptr %78, align 4, !tbaa !15
  %1719 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1718, ptr %1719, align 4, !tbaa !14
  %1720 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  %1721 = load float, ptr %1720, align 4, !tbaa !11
  %1722 = load ptr, ptr %25, align 8, !tbaa !5
  %1723 = load i32, ptr %44, align 4, !tbaa !9
  %1724 = sext i32 %1723 to i64
  %1725 = getelementptr inbounds %struct.complex, ptr %1722, i64 %1724
  %1726 = getelementptr inbounds %struct.complex, ptr %1725, i32 0, i32 0
  store float %1721, ptr %1726, align 4, !tbaa !11
  %1727 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  %1728 = load float, ptr %1727, align 4, !tbaa !14
  %1729 = load ptr, ptr %25, align 8, !tbaa !5
  %1730 = load i32, ptr %44, align 4, !tbaa !9
  %1731 = sext i32 %1730 to i64
  %1732 = getelementptr inbounds %struct.complex, ptr %1729, i64 %1731
  %1733 = getelementptr inbounds %struct.complex, ptr %1732, i32 0, i32 1
  store float %1728, ptr %1733, align 4, !tbaa !14
  %1734 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1734, ptr %44, align 4, !tbaa !9
  %1735 = load float, ptr %68, align 4, !tbaa !15
  %1736 = load ptr, ptr %26, align 8, !tbaa !5
  %1737 = load i32, ptr %44, align 4, !tbaa !9
  %1738 = sext i32 %1737 to i64
  %1739 = getelementptr inbounds %struct.complex, ptr %1736, i64 %1738
  %1740 = getelementptr inbounds %struct.complex, ptr %1739, i32 0, i32 0
  store float %1735, ptr %1740, align 4, !tbaa !11
  %1741 = load ptr, ptr %26, align 8, !tbaa !5
  %1742 = load i32, ptr %44, align 4, !tbaa !9
  %1743 = sext i32 %1742 to i64
  %1744 = getelementptr inbounds %struct.complex, ptr %1741, i64 %1743
  %1745 = getelementptr inbounds %struct.complex, ptr %1744, i32 0, i32 1
  store float 0.000000e+00, ptr %1745, align 4, !tbaa !14
  br label %1746

1746:                                             ; preds = %1714
  %1747 = load i32, ptr %74, align 4, !tbaa !9
  %1748 = add nsw i32 %1747, 1
  store i32 %1748, ptr %74, align 4, !tbaa !9
  br label %1314, !llvm.loop !24

1749:                                             ; preds = %1314
  br label %1750

1750:                                             ; preds = %1749, %1168, %1005, %979, %927, %811, %735, %646, %582, %509
  %1751 = load i32, ptr %93, align 4, !tbaa !9
  %1752 = sitofp i32 %1751 to float
  %1753 = load ptr, ptr %31, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.complex, ptr %1753, i64 1
  %1755 = getelementptr inbounds %struct.complex, ptr %1754, i32 0, i32 0
  store float %1752, ptr %1755, align 4, !tbaa !11
  %1756 = load ptr, ptr %31, align 8, !tbaa !5
  %1757 = getelementptr inbounds %struct.complex, ptr %1756, i64 1
  %1758 = getelementptr inbounds %struct.complex, ptr %1757, i32 0, i32 1
  store float 0.000000e+00, ptr %1758, align 4, !tbaa !14
  store i32 1, ptr %99, align 4
  br label %1759

1759:                                             ; preds = %1750, %470, %426, %378, %372, %364
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) #3

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = !{!"int", !7, i64 0}
!11 = !{!12, !13, i64 0}
!12 = !{!"", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!12, !13, i64 4}
!15 = !{!13, !13, i64 0}
!16 = !{!7, !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = distinct !{!20, !18}
!21 = distinct !{!21, !18}
!22 = distinct !{!22, !18}
!23 = distinct !{!23, !18}
!24 = distinct !{!24, !18}


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

; Function Attrs: nounwind uwtable
define dso_local void @cgegv_(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 nocapture noundef readonly %14, ptr noundef %15, ptr nocapture noundef %16) local_unnamed_addr #0 {
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca [1 x i8], align 1
  %27 = alloca [1 x i32], align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  %30 = load i32, ptr %4, align 4, !tbaa !5
  %narrow = xor i32 %30, -1
  %31 = sext i32 %narrow to i64
  %32 = getelementptr inbounds %struct.complex, ptr %3, i64 %31
  %33 = load i32, ptr %6, align 4, !tbaa !5
  %narrow654 = xor i32 %33, -1
  %34 = sext i32 %narrow654 to i64
  %35 = getelementptr inbounds %struct.complex, ptr %5, i64 %34
  %36 = getelementptr inbounds i8, ptr %7, i64 -8
  %37 = getelementptr inbounds i8, ptr %8, i64 -8
  %38 = load i32, ptr %10, align 4, !tbaa !5
  %narrow665 = xor i32 %38, -1
  %39 = sext i32 %narrow665 to i64
  %40 = getelementptr inbounds %struct.complex, ptr %9, i64 %39
  %41 = load i32, ptr %12, align 4, !tbaa !5
  %narrow666 = xor i32 %41, -1
  %42 = sext i32 %narrow666 to i64
  %43 = getelementptr inbounds %struct.complex, ptr %11, i64 %42
  %44 = getelementptr inbounds i8, ptr %13, i64 -8
  %45 = getelementptr inbounds i8, ptr %15, i64 -4
  %46 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %.not = icmp eq i32 %46, 0
  br i1 %.not, label %47, label %49

47:                                               ; preds = %17
  %48 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not646 = icmp eq i32 %48, 0
  %not..not646 = xor i1 %.not646, true
  br label %49

49:                                               ; preds = %47, %17
  %50 = phi i1 [ false, %17 ], [ %not..not646, %47 ]
  %51 = phi i1 [ false, %17 ], [ %.not646, %47 ]
  %52 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #5
  %.not647 = icmp eq i32 %52, 0
  br i1 %.not647, label %53, label %55

53:                                               ; preds = %49
  %54 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  %.not648 = icmp eq i32 %54, 0
  %not..not648 = xor i1 %.not648, true
  br label %55

55:                                               ; preds = %53, %49
  %56 = phi i1 [ false, %49 ], [ %not..not648, %53 ]
  %57 = phi i1 [ false, %49 ], [ %.not648, %53 ]
  %58 = or i1 %50, %56
  %59 = load i32, ptr %2, align 4, !tbaa !5
  %60 = shl i32 %59, 1
  %61 = tail call i32 @llvm.smax.i32(i32 %60, i32 1)
  %62 = uitofp nneg i32 %61 to float
  store float %62, ptr %13, align 4, !tbaa !9
  %63 = getelementptr inbounds i8, ptr %13, i64 4
  store float 0.000000e+00, ptr %63, align 4, !tbaa !12
  %64 = load i32, ptr %14, align 4, !tbaa !5
  %65 = icmp eq i32 %64, -1
  store i32 0, ptr %16, align 4, !tbaa !5
  %brmerge = select i1 %51, i1 true, i1 %57
  %.mux = select i1 %51, i32 -1, i32 -2
  br i1 %brmerge, label %.thread691.sink.split, label %66

66:                                               ; preds = %55
  %67 = load i32, ptr %2, align 4, !tbaa !5
  %68 = icmp slt i32 %67, 0
  br i1 %68, label %.thread691.sink.split, label %69

69:                                               ; preds = %66
  %70 = load i32, ptr %4, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %67, i32 1)
  %71 = icmp slt i32 %70, %spec.select
  br i1 %71, label %.thread691.sink.split, label %72

72:                                               ; preds = %69
  %73 = load i32, ptr %6, align 4, !tbaa !5
  %74 = icmp slt i32 %73, %spec.select
  br i1 %74, label %.thread691.sink.split, label %75

75:                                               ; preds = %72
  %76 = load i32, ptr %10, align 4, !tbaa !5
  %77 = icmp slt i32 %76, 1
  %78 = icmp ult i32 %76, %67
  %or.cond736 = and i1 %50, %78
  %or.cond738 = select i1 %77, i1 true, i1 %or.cond736
  br i1 %or.cond738, label %.thread691.sink.split, label %79

79:                                               ; preds = %75
  %80 = load i32, ptr %12, align 4, !tbaa !5
  %81 = icmp slt i32 %80, 1
  %82 = icmp ult i32 %80, %67
  %or.cond737 = and i1 %56, %82
  %or.cond739 = select i1 %81, i1 true, i1 %or.cond737
  br i1 %or.cond739, label %.thread691.sink.split, label %83

83:                                               ; preds = %79
  %84 = load i32, ptr %14, align 4, !tbaa !5
  %85 = icmp sge i32 %84, %61
  %or.cond = select i1 %85, i1 true, i1 %65
  br i1 %or.cond, label %.thread, label %.thread691.sink.split

.thread:                                          ; preds = %83
  %86 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %87 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %88 = tail call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.3, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 1) #5
  %89 = tail call i32 @llvm.smax.i32(i32 %86, i32 %87)
  %90 = tail call i32 @llvm.smax.i32(i32 %89, i32 %88)
  %91 = load i32, ptr %2, align 4, !tbaa !5
  %92 = shl i32 %91, 1
  store i32 %92, ptr %18, align 4, !tbaa !5
  %93 = add nsw i32 %90, 1
  %94 = mul nsw i32 %91, %93
  store i32 %94, ptr %19, align 4, !tbaa !5
  %95 = tail call i32 @llvm.smax.i32(i32 %92, i32 %94)
  %96 = sitofp i32 %95 to float
  store float %96, ptr %13, align 4, !tbaa !9
  store float 0.000000e+00, ptr %63, align 4, !tbaa !12
  %.pr690.pr = load i32, ptr %16, align 4, !tbaa !5
  %.not652 = icmp eq i32 %.pr690.pr, 0
  br i1 %.not652, label %100, label %.thread691

.thread691.sink.split:                            ; preds = %55, %83, %79, %75, %72, %69, %66
  %.sink = phi i32 [ %.mux, %55 ], [ -3, %66 ], [ -5, %69 ], [ -7, %72 ], [ -11, %75 ], [ -13, %79 ], [ -15, %83 ]
  store i32 %.sink, ptr %16, align 4, !tbaa !5
  br label %.thread691

.thread691:                                       ; preds = %.thread691.sink.split, %.thread
  %97 = phi i32 [ %.pr690.pr, %.thread ], [ %.sink, %.thread691.sink.split ]
  %98 = sub nsw i32 0, %97
  store i32 %98, ptr %18, align 4, !tbaa !5
  %99 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %18, i32 noundef 6) #5
  br label %459

100:                                              ; preds = %.thread
  %101 = icmp eq i32 %91, 0
  %or.cond807 = select i1 %65, i1 true, i1 %101
  br i1 %or.cond807, label %459, label %102

102:                                              ; preds = %100
  %103 = tail call float @slamch_(ptr noundef nonnull @.str.7) #5
  %104 = tail call float @slamch_(ptr noundef nonnull @.str.8) #5
  %105 = fmul float %103, %104
  %106 = tail call float @slamch_(ptr noundef nonnull @.str.9) #5
  %107 = fadd float %106, %106
  %108 = fdiv float 1.000000e+00, %107
  %109 = tail call float @clange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %15) #5
  store float %109, ptr %20, align 4, !tbaa !13
  %110 = fcmp olt float %109, 1.000000e+00
  br i1 %110, label %111, label %115

111:                                              ; preds = %102
  %112 = fmul float %109, %108
  %113 = fcmp olt float %112, 1.000000e+00
  br i1 %113, label %114, label %115

114:                                              ; preds = %111
  br label %115

115:                                              ; preds = %111, %114, %102
  %.0624 = phi float [ %107, %114 ], [ %109, %111 ], [ %109, %102 ]
  %.0623 = phi float [ %112, %114 ], [ 1.000000e+00, %111 ], [ 1.000000e+00, %102 ]
  %116 = fcmp ogt float %109, 0.000000e+00
  br i1 %116, label %117, label %122

117:                                              ; preds = %115
  call void @clascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %20, ptr noundef nonnull @c_b29, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %22) #5
  %118 = load i32, ptr %22, align 4, !tbaa !5
  %.not653 = icmp eq i32 %118, 0
  br i1 %.not653, label %122, label %119

119:                                              ; preds = %117
  %120 = load i32, ptr %2, align 4, !tbaa !5
  %121 = add nsw i32 %120, 10
  store i32 %121, ptr %16, align 4, !tbaa !5
  br label %459

122:                                              ; preds = %117, %115
  %123 = call float @clange_(ptr noundef nonnull @.str.10, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %15) #5
  store float %123, ptr %21, align 4, !tbaa !13
  %124 = fcmp olt float %123, 1.000000e+00
  br i1 %124, label %125, label %129

125:                                              ; preds = %122
  %126 = fmul float %108, %123
  %127 = fcmp olt float %126, 1.000000e+00
  br i1 %127, label %128, label %129

128:                                              ; preds = %125
  br label %129

129:                                              ; preds = %125, %128, %122
  %.0622 = phi float [ %107, %128 ], [ %123, %125 ], [ %123, %122 ]
  %.0621 = phi float [ %126, %128 ], [ 1.000000e+00, %125 ], [ 1.000000e+00, %122 ]
  %130 = fcmp ogt float %123, 0.000000e+00
  br i1 %130, label %131, label %136

131:                                              ; preds = %129
  call void @clascl_(ptr noundef nonnull @.str.11, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull %21, ptr noundef nonnull @c_b29, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %22) #5
  %132 = load i32, ptr %22, align 4, !tbaa !5
  %.not655 = icmp eq i32 %132, 0
  br i1 %.not655, label %136, label %133

133:                                              ; preds = %131
  %134 = load i32, ptr %2, align 4, !tbaa !5
  %135 = add nsw i32 %134, 10
  store i32 %135, ptr %16, align 4, !tbaa !5
  br label %459

136:                                              ; preds = %131, %129
  %137 = load i32, ptr %2, align 4, !tbaa !5
  %138 = add nsw i32 %137, 1
  %139 = add nsw i32 %138, %137
  %140 = sext i32 %138 to i64
  %141 = getelementptr inbounds float, ptr %45, i64 %140
  %142 = sext i32 %139 to i64
  %143 = getelementptr inbounds float, ptr %45, i64 %142
  call void @cggbal_(ptr noundef nonnull @.str.12, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %15, ptr noundef nonnull %141, ptr noundef nonnull %143, ptr noundef nonnull %22) #5
  %144 = load i32, ptr %22, align 4, !tbaa !5
  %.not656 = icmp eq i32 %144, 0
  br i1 %.not656, label %148, label %145

145:                                              ; preds = %136
  %146 = load i32, ptr %2, align 4, !tbaa !5
  %147 = add nsw i32 %146, 1
  br label %.loopexit.sink.split

148:                                              ; preds = %136
  %149 = load i32, ptr %28, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  %151 = load i32, ptr %29, align 4, !tbaa !5
  %152 = sub i32 %150, %151
  store i32 %152, ptr %24, align 4, !tbaa !5
  br i1 %58, label %153, label %156

153:                                              ; preds = %148
  %154 = load i32, ptr %2, align 4, !tbaa !5
  %reass.sub = sub i32 %154, %151
  %155 = add i32 %reass.sub, 1
  br label %156

156:                                              ; preds = %148, %153
  %storemerge = phi i32 [ %155, %153 ], [ %152, %148 ]
  store i32 %storemerge, ptr %23, align 4, !tbaa !5
  %157 = load i32, ptr %14, align 4, !tbaa !5
  %158 = sub i32 %157, %152
  store i32 %158, ptr %18, align 4, !tbaa !5
  %159 = add i32 %33, 1
  %160 = mul i32 %151, %159
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds %struct.complex, ptr %35, i64 %161
  %163 = sext i32 %152 to i64
  %164 = getelementptr %struct.complex, ptr %44, i64 %163
  %165 = getelementptr i8, ptr %164, i64 8
  call void @cgeqrf_(ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef %162, ptr noundef nonnull %6, ptr noundef nonnull %13, ptr noundef nonnull %165, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %166 = load i32, ptr %22, align 4, !tbaa !5
  %167 = icmp sgt i32 %166, -1
  br i1 %167, label %168, label %.thread693

168:                                              ; preds = %156
  %169 = load float, ptr %165, align 4, !tbaa !9
  %170 = fptosi float %169 to i32
  %171 = add i32 %152, %170
  store i32 %171, ptr %19, align 4, !tbaa !5
  %172 = call i32 @llvm.smax.i32(i32 %61, i32 %171)
  %.not658 = icmp eq i32 %166, 0
  br i1 %.not658, label %175, label %.thread693

.thread693:                                       ; preds = %156, %168
  %.0696 = phi i32 [ %172, %168 ], [ %61, %156 ]
  %173 = load i32, ptr %2, align 4, !tbaa !5
  %174 = add nsw i32 %173, 2
  br label %.loopexit.sink.split

175:                                              ; preds = %168
  %176 = load i32, ptr %14, align 4, !tbaa !5
  %177 = sub i32 %176, %152
  store i32 %177, ptr %18, align 4, !tbaa !5
  %178 = load i32, ptr %29, align 4, !tbaa !5
  %179 = mul i32 %178, %159
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds %struct.complex, ptr %35, i64 %180
  %182 = add i32 %30, 1
  %183 = mul i32 %178, %182
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds %struct.complex, ptr %32, i64 %184
  call void @cunmqr_(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef %181, ptr noundef nonnull %6, ptr noundef nonnull %13, ptr noundef %185, ptr noundef nonnull %4, ptr noundef nonnull %165, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %186 = load i32, ptr %22, align 4, !tbaa !5
  %187 = icmp sgt i32 %186, -1
  br i1 %187, label %188, label %.thread697

188:                                              ; preds = %175
  store i32 %172, ptr %18, align 4, !tbaa !5
  %189 = load float, ptr %165, align 4, !tbaa !9
  %190 = fptosi float %189 to i32
  %191 = add i32 %152, %190
  store i32 %191, ptr %19, align 4, !tbaa !5
  %192 = call i32 @llvm.smax.i32(i32 %172, i32 %191)
  %.not660 = icmp eq i32 %186, 0
  br i1 %.not660, label %195, label %.thread697

.thread697:                                       ; preds = %175, %188
  %.1700 = phi i32 [ %192, %188 ], [ %172, %175 ]
  %193 = load i32, ptr %2, align 4, !tbaa !5
  %194 = add nsw i32 %193, 3
  br label %.loopexit.sink.split

195:                                              ; preds = %188
  br i1 %50, label %196, label %225

196:                                              ; preds = %195
  call void @claset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %9, ptr noundef nonnull %10) #5
  %197 = load i32, ptr %24, align 4, !tbaa !5
  %198 = add nsw i32 %197, -1
  store i32 %198, ptr %18, align 4, !tbaa !5
  store i32 %198, ptr %19, align 4, !tbaa !5
  %199 = load i32, ptr %29, align 4, !tbaa !5
  %200 = add nsw i32 %199, 1
  %201 = mul nsw i32 %199, %33
  %202 = add nsw i32 %200, %201
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds %struct.complex, ptr %35, i64 %203
  %205 = mul nsw i32 %199, %38
  %206 = add nsw i32 %200, %205
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds %struct.complex, ptr %40, i64 %207
  call void @clacpy_(ptr noundef nonnull @.str.13, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef %204, ptr noundef nonnull %6, ptr noundef %208, ptr noundef nonnull %10) #5
  %209 = load i32, ptr %14, align 4, !tbaa !5
  %210 = sub i32 %209, %152
  store i32 %210, ptr %18, align 4, !tbaa !5
  %211 = load i32, ptr %29, align 4, !tbaa !5
  %212 = add i32 %38, 1
  %213 = mul i32 %211, %212
  %214 = sext i32 %213 to i64
  %215 = getelementptr inbounds %struct.complex, ptr %40, i64 %214
  call void @cungqr_(ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef nonnull %24, ptr noundef %215, ptr noundef nonnull %10, ptr noundef nonnull %13, ptr noundef nonnull %165, ptr noundef nonnull %18, ptr noundef nonnull %22) #5
  %216 = load i32, ptr %22, align 4, !tbaa !5
  %217 = icmp sgt i32 %216, -1
  br i1 %217, label %218, label %.thread701

218:                                              ; preds = %196
  store i32 %192, ptr %18, align 4, !tbaa !5
  %219 = load float, ptr %165, align 4, !tbaa !9
  %220 = fptosi float %219 to i32
  %221 = add i32 %152, %220
  store i32 %221, ptr %19, align 4, !tbaa !5
  %222 = call i32 @llvm.smax.i32(i32 %192, i32 %221)
  %.not662 = icmp eq i32 %216, 0
  br i1 %.not662, label %.thread706, label %.thread701

.thread701:                                       ; preds = %196, %218
  %.2704 = phi i32 [ %222, %218 ], [ %192, %196 ]
  %223 = load i32, ptr %2, align 4, !tbaa !5
  %224 = add nsw i32 %223, 4
  br label %.loopexit.sink.split

225:                                              ; preds = %195
  br i1 %56, label %.thread705, label %226

.thread706:                                       ; preds = %218
  br i1 %56, label %.thread705, label %.thread712

.thread705:                                       ; preds = %225, %.thread706
  %.3711 = phi i32 [ %222, %.thread706 ], [ %192, %225 ]
  call void @claset_(ptr noundef nonnull @.str.15, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b2, ptr noundef %11, ptr noundef nonnull %12) #5
  br label %.thread712

226:                                              ; preds = %225
  br i1 %58, label %.thread712, label %227

.thread712:                                       ; preds = %.thread706, %.thread705, %226
  %.3709 = phi i32 [ %.3711, %.thread705 ], [ %192, %226 ], [ %222, %.thread706 ]
  call void @cgghrd_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %22) #5
  br label %235

227:                                              ; preds = %226
  %228 = load i32, ptr %29, align 4, !tbaa !5
  %229 = mul i32 %228, %182
  %230 = sext i32 %229 to i64
  %231 = getelementptr inbounds %struct.complex, ptr %32, i64 %230
  %232 = mul i32 %228, %159
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds %struct.complex, ptr %35, i64 %233
  call void @cgghrd_(ptr noundef nonnull @.str, ptr noundef nonnull @.str, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef nonnull %24, ptr noundef %231, ptr noundef nonnull %4, ptr noundef %234, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %22) #5
  br label %235

235:                                              ; preds = %227, %.thread712
  %.3708 = phi i32 [ %192, %227 ], [ %.3709, %.thread712 ]
  %236 = load i32, ptr %22, align 4, !tbaa !5
  %.not663 = icmp eq i32 %236, 0
  br i1 %.not663, label %240, label %237

237:                                              ; preds = %235
  %238 = load i32, ptr %2, align 4, !tbaa !5
  %239 = add nsw i32 %238, 5
  br label %.loopexit.sink.split

240:                                              ; preds = %235
  %.687 = select i1 %58, i8 83, i8 69
  store i8 %.687, ptr %26, align 1, !tbaa !14
  %241 = load i32, ptr %14, align 4, !tbaa !5
  store i32 %241, ptr %18, align 4, !tbaa !5
  call void @chgeqz_(ptr noundef nonnull %26, ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %18, ptr noundef nonnull %143, ptr noundef nonnull %22) #5
  %242 = load i32, ptr %22, align 4, !tbaa !5
  %243 = icmp sgt i32 %242, -1
  br i1 %243, label %244, label %._crit_edge796

._crit_edge796:                                   ; preds = %240
  %.pre = load i32, ptr %2, align 4, !tbaa !5
  br label %250

244:                                              ; preds = %240
  store i32 %.3708, ptr %18, align 4, !tbaa !5
  %245 = load float, ptr %13, align 4, !tbaa !9
  %246 = fptosi float %245 to i32
  store i32 %246, ptr %19, align 4, !tbaa !5
  %247 = call i32 @llvm.smax.i32(i32 %.3708, i32 %246)
  %.not668 = icmp eq i32 %242, 0
  br i1 %.not668, label %258, label %248

248:                                              ; preds = %244
  %249 = load i32, ptr %2, align 4, !tbaa !5
  %.not681 = icmp sgt i32 %242, %249
  br i1 %.not681, label %250, label %.loopexit.sink.split

250:                                              ; preds = %._crit_edge796, %248
  %251 = phi i32 [ %249, %248 ], [ %.pre, %._crit_edge796 ]
  %.4717721 = phi i32 [ %247, %248 ], [ %.3708, %._crit_edge796 ]
  %252 = icmp sle i32 %242, %251
  %253 = shl i32 %251, 1
  %.not682 = icmp sgt i32 %242, %253
  %or.cond688 = or i1 %252, %.not682
  br i1 %or.cond688, label %256, label %254

254:                                              ; preds = %250
  %255 = sub nsw i32 %242, %251
  br label %.loopexit.sink.split

256:                                              ; preds = %250
  %257 = add nsw i32 %251, 6
  br label %.loopexit.sink.split

258:                                              ; preds = %244
  br i1 %58, label %259, label %.loopexit742

259:                                              ; preds = %258
  br i1 %50, label %260, label %.thread722

260:                                              ; preds = %259
  %. = select i1 %56, i8 66, i8 76
  store i8 %., ptr %26, align 1, !tbaa !14
  call void @ctgevc_(ptr noundef nonnull %26, ptr noundef nonnull @.str.8, ptr noundef nonnull %27, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef nonnull %13, ptr noundef nonnull %143, ptr noundef nonnull %22) #5
  %261 = load i32, ptr %22, align 4, !tbaa !5
  %.not669 = icmp eq i32 %261, 0
  br i1 %.not669, label %266, label %263

.thread722:                                       ; preds = %259
  store i8 82, ptr %26, align 1, !tbaa !14
  call void @ctgevc_(ptr noundef nonnull %26, ptr noundef nonnull @.str.8, ptr noundef nonnull %27, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %2, ptr noundef nonnull %25, ptr noundef nonnull %13, ptr noundef nonnull %143, ptr noundef nonnull %22) #5
  %262 = load i32, ptr %22, align 4, !tbaa !5
  %.not669723 = icmp eq i32 %262, 0
  br i1 %.not669723, label %.thread724, label %263

263:                                              ; preds = %.thread722, %260
  %264 = load i32, ptr %2, align 4, !tbaa !5
  %265 = add nsw i32 %264, 7
  br label %.loopexit.sink.split

266:                                              ; preds = %260
  call void @cggbak_(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.13, ptr noundef nonnull %2, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %15, ptr noundef nonnull %141, ptr noundef nonnull %2, ptr noundef %9, ptr noundef nonnull %10, ptr noundef nonnull %22) #5
  %267 = load i32, ptr %22, align 4, !tbaa !5
  %.not670 = icmp eq i32 %267, 0
  %268 = load i32, ptr %2, align 4, !tbaa !5
  br i1 %.not670, label %271, label %269

269:                                              ; preds = %266
  %270 = add nsw i32 %268, 8
  br label %.loopexit.sink.split

271:                                              ; preds = %266
  store i32 %268, ptr %18, align 4, !tbaa !5
  %.not671751 = icmp slt i32 %268, 1
  br i1 %.not671751, label %.thread724, label %.lr.ph754.preheader

.lr.ph754.preheader:                              ; preds = %271
  %272 = sext i32 %38 to i64
  br label %.lr.ph754

.lr.ph754thread-pre-split:                        ; preds = %.loopexit743
  %indvars.iv.next780 = add nuw nsw i64 %indvars.iv779, 1
  %.pr = load i32, ptr %2, align 4, !tbaa !5
  br label %.lr.ph754

.lr.ph754:                                        ; preds = %.lr.ph754thread-pre-split, %.lr.ph754.preheader
  %273 = phi i32 [ %.pr, %.lr.ph754thread-pre-split ], [ %268, %.lr.ph754.preheader ]
  %indvars.iv779 = phi i64 [ %indvars.iv.next780, %.lr.ph754thread-pre-split ], [ 1, %.lr.ph754.preheader ]
  store i32 %273, ptr %19, align 4, !tbaa !5
  %.not679744 = icmp slt i32 %273, 1
  br i1 %.not679744, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph754
  %274 = mul nsw i64 %indvars.iv779, %272
  %invariant.gep = getelementptr %struct.complex, ptr %40, i64 %274
  br label %275

275:                                              ; preds = %.lr.ph, %275
  %indvars.iv = phi i64 [ 1, %.lr.ph ], [ %indvars.iv.next, %275 ]
  %.0611745 = phi float [ 0.000000e+00, %.lr.ph ], [ %286, %275 ]
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv
  %276 = load float, ptr %gep, align 4, !tbaa !9
  %277 = fcmp oge float %276, 0.000000e+00
  %278 = fneg float %276
  %279 = select i1 %277, float %276, float %278
  %280 = call <2 x float> @Cf(ptr noundef nonnull %gep)
  %.sroa.05.4.vec.extract = extractelement <2 x float> %280, i64 1
  %281 = fcmp oge float %.sroa.05.4.vec.extract, 0.000000e+00
  %282 = fneg float %.sroa.05.4.vec.extract
  %283 = select i1 %281, float %.sroa.05.4.vec.extract, float %282
  %284 = fadd float %279, %283
  %285 = fcmp oge float %.0611745, %284
  %286 = select i1 %285, float %.0611745, float %284
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %287 = load i32, ptr %19, align 4, !tbaa !5
  %288 = sext i32 %287 to i64
  %.not679.not = icmp slt i64 %indvars.iv, %288
  br i1 %.not679.not, label %275, label %._crit_edge, !llvm.loop !15

._crit_edge:                                      ; preds = %275, %.lr.ph754
  %.0611.lcssa = phi float [ 0.000000e+00, %.lr.ph754 ], [ %286, %275 ]
  %289 = fcmp olt float %.0611.lcssa, %107
  br i1 %289, label %.loopexit743, label %290

290:                                              ; preds = %._crit_edge
  %291 = fdiv float 1.000000e+00, %.0611.lcssa
  %292 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %292, ptr %19, align 4, !tbaa !5
  %.not680747 = icmp slt i32 %292, 1
  br i1 %.not680747, label %.loopexit743, label %.lr.ph750

.lr.ph750:                                        ; preds = %290
  %293 = mul nsw i64 %indvars.iv779, %272
  %294 = add nuw i32 %292, 1
  %wide.trip.count = zext i32 %294 to i64
  %invariant.gep801 = getelementptr %struct.complex, ptr %40, i64 %293
  %295 = zext nneg i32 %292 to i64
  %min.iters.check = icmp eq i32 %292, 1
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph750
  %n.vec = and i64 %295, 2147483646
  %ind.end = or i64 %295, 1
  %broadcast.splatinsert = insertelement <2 x float> poison, float %291, i64 0
  %296 = 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
  %297 = getelementptr %struct.complex, ptr %invariant.gep801, i64 %offset.idx
  %298 = load <4 x float>, ptr %297, align 4, !tbaa !13
  %interleaved.vec = fmul <4 x float> %296, %298
  store <4 x float> %interleaved.vec, ptr %297, align 4, !tbaa !13
  %index.next = add nuw i64 %index, 2
  %299 = icmp eq i64 %index.next, %n.vec
  br i1 %299, label %middle.block, label %vector.body, !llvm.loop !17

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

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph750
  %indvars.iv776.ph = phi i64 [ 1, %.lr.ph750 ], [ %ind.end, %middle.block ]
  %300 = insertelement <2 x float> poison, float %291, i64 0
  %301 = shufflevector <2 x float> %300, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv776 = phi i64 [ %indvars.iv.next777, %scalar.ph ], [ %indvars.iv776.ph, %scalar.ph.preheader ]
  %gep802 = getelementptr %struct.complex, ptr %invariant.gep801, i64 %indvars.iv776
  %302 = load <2 x float>, ptr %gep802, align 4, !tbaa !13
  %303 = fmul <2 x float> %301, %302
  store <2 x float> %303, ptr %gep802, align 4, !tbaa !13
  %indvars.iv.next777 = add nuw nsw i64 %indvars.iv776, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next777, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit743, label %scalar.ph, !llvm.loop !20

.loopexit743:                                     ; preds = %scalar.ph, %middle.block, %290, %._crit_edge
  %304 = load i32, ptr %18, align 4, !tbaa !5
  %305 = sext i32 %304 to i64
  %.not671.not = icmp slt i64 %indvars.iv779, %305
  br i1 %.not671.not, label %.lr.ph754thread-pre-split, label %.thread724, !llvm.loop !21

.thread724:                                       ; preds = %.loopexit743, %271, %.thread722
  br i1 %56, label %306, label %.loopexit742

306:                                              ; preds = %.thread724
  call void @cggbak_(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.16, ptr noundef nonnull %2, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %15, ptr noundef nonnull %141, ptr noundef nonnull %2, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %22) #5
  %307 = load i32, ptr %22, align 4, !tbaa !5
  %.not672 = icmp eq i32 %307, 0
  %308 = load i32, ptr %2, align 4, !tbaa !5
  br i1 %.not672, label %311, label %309

309:                                              ; preds = %306
  %310 = add nsw i32 %308, 9
  br label %.loopexit.sink.split

311:                                              ; preds = %306
  store i32 %308, ptr %18, align 4, !tbaa !5
  %.not673766 = icmp slt i32 %308, 1
  br i1 %.not673766, label %.loopexit, label %.lr.ph769.preheader

.lr.ph769.preheader:                              ; preds = %311
  %312 = sext i32 %41 to i64
  br label %.lr.ph769

.lr.ph769thread-pre-split:                        ; preds = %.loopexit741
  %indvars.iv.next791 = add nuw nsw i64 %indvars.iv790, 1
  %.pr797 = load i32, ptr %2, align 4, !tbaa !5
  br label %.lr.ph769

.lr.ph769:                                        ; preds = %.lr.ph769thread-pre-split, %.lr.ph769.preheader
  %313 = phi i32 [ %.pr797, %.lr.ph769thread-pre-split ], [ %308, %.lr.ph769.preheader ]
  %indvars.iv790 = phi i64 [ %indvars.iv.next791, %.lr.ph769thread-pre-split ], [ 1, %.lr.ph769.preheader ]
  store i32 %313, ptr %19, align 4, !tbaa !5
  %.not677755 = icmp slt i32 %313, 1
  br i1 %.not677755, label %._crit_edge760, label %.lr.ph759

.lr.ph759:                                        ; preds = %.lr.ph769
  %314 = mul nsw i64 %indvars.iv790, %312
  %invariant.gep803 = getelementptr %struct.complex, ptr %43, i64 %314
  br label %315

315:                                              ; preds = %.lr.ph759, %315
  %indvars.iv782 = phi i64 [ 1, %.lr.ph759 ], [ %indvars.iv.next783, %315 ]
  %.1612756 = phi float [ 0.000000e+00, %.lr.ph759 ], [ %326, %315 ]
  %gep804 = getelementptr %struct.complex, ptr %invariant.gep803, i64 %indvars.iv782
  %316 = load float, ptr %gep804, align 4, !tbaa !9
  %317 = fcmp oge float %316, 0.000000e+00
  %318 = fneg float %316
  %319 = select i1 %317, float %316, float %318
  %320 = call <2 x float> @Cf(ptr noundef nonnull %gep804)
  %.sroa.04.4.vec.extract = extractelement <2 x float> %320, i64 1
  %321 = fcmp oge float %.sroa.04.4.vec.extract, 0.000000e+00
  %322 = fneg float %.sroa.04.4.vec.extract
  %323 = select i1 %321, float %.sroa.04.4.vec.extract, float %322
  %324 = fadd float %319, %323
  %325 = fcmp oge float %.1612756, %324
  %326 = select i1 %325, float %.1612756, float %324
  %indvars.iv.next783 = add nuw nsw i64 %indvars.iv782, 1
  %327 = load i32, ptr %19, align 4, !tbaa !5
  %328 = sext i32 %327 to i64
  %.not677.not = icmp slt i64 %indvars.iv782, %328
  br i1 %.not677.not, label %315, label %._crit_edge760, !llvm.loop !22

._crit_edge760:                                   ; preds = %315, %.lr.ph769
  %.1612.lcssa = phi float [ 0.000000e+00, %.lr.ph769 ], [ %326, %315 ]
  %329 = fcmp olt float %.1612.lcssa, %107
  br i1 %329, label %.loopexit741, label %330

330:                                              ; preds = %._crit_edge760
  %331 = fdiv float 1.000000e+00, %.1612.lcssa
  %332 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %332, ptr %19, align 4, !tbaa !5
  %.not678762 = icmp slt i32 %332, 1
  br i1 %.not678762, label %.loopexit741, label %.lr.ph765

.lr.ph765:                                        ; preds = %330
  %333 = mul nsw i64 %indvars.iv790, %312
  %334 = add nuw i32 %332, 1
  %wide.trip.count788 = zext i32 %334 to i64
  %invariant.gep805 = getelementptr %struct.complex, ptr %43, i64 %333
  %335 = zext nneg i32 %332 to i64
  %min.iters.check813 = icmp eq i32 %332, 1
  br i1 %min.iters.check813, label %scalar.ph812.preheader, label %vector.ph814

vector.ph814:                                     ; preds = %.lr.ph765
  %n.vec816 = and i64 %335, 2147483646
  %ind.end817 = or i64 %335, 1
  %broadcast.splatinsert825 = insertelement <2 x float> poison, float %331, i64 0
  %336 = shufflevector <2 x float> %broadcast.splatinsert825, <2 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body819

vector.body819:                                   ; preds = %vector.body819, %vector.ph814
  %index820 = phi i64 [ 0, %vector.ph814 ], [ %index.next828, %vector.body819 ]
  %offset.idx821 = or disjoint i64 %index820, 1
  %337 = getelementptr %struct.complex, ptr %invariant.gep805, i64 %offset.idx821
  %338 = load <4 x float>, ptr %337, align 4, !tbaa !13
  %interleaved.vec827 = fmul <4 x float> %336, %338
  store <4 x float> %interleaved.vec827, ptr %337, align 4, !tbaa !13
  %index.next828 = add nuw i64 %index820, 2
  %339 = icmp eq i64 %index.next828, %n.vec816
  br i1 %339, label %middle.block811, label %vector.body819, !llvm.loop !23

middle.block811:                                  ; preds = %vector.body819
  %cmp.n829 = icmp eq i64 %n.vec816, %335
  br i1 %cmp.n829, label %.loopexit741, label %scalar.ph812.preheader

scalar.ph812.preheader:                           ; preds = %middle.block811, %.lr.ph765
  %indvars.iv785.ph = phi i64 [ 1, %.lr.ph765 ], [ %ind.end817, %middle.block811 ]
  %340 = insertelement <2 x float> poison, float %331, i64 0
  %341 = shufflevector <2 x float> %340, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph812

scalar.ph812:                                     ; preds = %scalar.ph812.preheader, %scalar.ph812
  %indvars.iv785 = phi i64 [ %indvars.iv.next786, %scalar.ph812 ], [ %indvars.iv785.ph, %scalar.ph812.preheader ]
  %gep806 = getelementptr %struct.complex, ptr %invariant.gep805, i64 %indvars.iv785
  %342 = load <2 x float>, ptr %gep806, align 4, !tbaa !13
  %343 = fmul <2 x float> %341, %342
  store <2 x float> %343, ptr %gep806, align 4, !tbaa !13
  %indvars.iv.next786 = add nuw nsw i64 %indvars.iv785, 1
  %exitcond789.not = icmp eq i64 %indvars.iv.next786, %wide.trip.count788
  br i1 %exitcond789.not, label %.loopexit741, label %scalar.ph812, !llvm.loop !24

.loopexit741:                                     ; preds = %scalar.ph812, %middle.block811, %330, %._crit_edge760
  %344 = load i32, ptr %18, align 4, !tbaa !5
  %345 = sext i32 %344 to i64
  %.not673.not = icmp slt i64 %indvars.iv790, %345
  br i1 %.not673.not, label %.lr.ph769thread-pre-split, label %.loopexit742, !llvm.loop !25

.loopexit742:                                     ; preds = %.loopexit741, %.thread724, %258
  %.pr798 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %.pr798, ptr %18, align 4, !tbaa !5
  %.not674770 = icmp slt i32 %.pr798, 1
  br i1 %.not674770, label %.loopexit, label %.lr.ph773

.lr.ph773:                                        ; preds = %.loopexit742
  %346 = fdiv float %107, %.0624
  %347 = fdiv float %107, %.0622
  br label %348

348:                                              ; preds = %.lr.ph773, %.thread731
  %indvars.iv793 = phi i64 [ 1, %.lr.ph773 ], [ %indvars.iv.next794, %.thread731 ]
  %349 = trunc nuw nsw i64 %indvars.iv793 to i32
  store i32 %349, ptr %19, align 4, !tbaa !5
  %350 = getelementptr inbounds %struct.complex, ptr %36, i64 %indvars.iv793
  %351 = load float, ptr %350, align 4, !tbaa !9
  %352 = fcmp oge float %351, 0.000000e+00
  %353 = fneg float %351
  %354 = select i1 %352, float %351, float %353
  %355 = call <2 x float> @Cf(ptr noundef nonnull %350)
  %.sroa.03.4.vec.extract = extractelement <2 x float> %355, i64 1
  %356 = fcmp oge float %.sroa.03.4.vec.extract, 0.000000e+00
  %357 = fneg float %.sroa.03.4.vec.extract
  %358 = select i1 %356, float %.sroa.03.4.vec.extract, float %357
  %359 = getelementptr inbounds %struct.complex, ptr %37, i64 %indvars.iv793
  %360 = load float, ptr %359, align 4, !tbaa !9
  %361 = fcmp oge float %360, 0.000000e+00
  %362 = fneg float %360
  %363 = select i1 %361, float %360, float %362
  store i32 %349, ptr %19, align 4, !tbaa !5
  %364 = load float, ptr %20, align 4, !tbaa !13
  %365 = load float, ptr %350, align 4, !tbaa !9
  %366 = call <2 x float> @Cf(ptr noundef nonnull %350)
  %367 = insertelement <2 x float> poison, float %364, i64 0
  %368 = shufflevector <2 x float> %367, <2 x float> poison, <2 x i32> zeroinitializer
  %369 = insertelement <2 x float> %366, float %365, i64 0
  %370 = fmul <2 x float> %368, %369
  %371 = load float, ptr %21, align 4, !tbaa !13
  %372 = load float, ptr %359, align 4, !tbaa !9
  %373 = fmul float %371, %372
  %374 = fmul float %105, %354
  %375 = fcmp oge float %107, %374
  %376 = select i1 %375, float %107, float %374
  %377 = fmul float %105, %363
  %378 = extractelement <2 x float> %370, i64 1
  %379 = fcmp oge float %378, 0.000000e+00
  %380 = fneg float %378
  %381 = select i1 %379, float %378, float %380
  %382 = fcmp olt float %381, %107
  br i1 %382, label %383, label %392

383:                                              ; preds = %348
  %384 = fcmp oge float %376, %377
  %385 = select i1 %384, float %376, float %377
  %386 = fcmp ult float %358, %385
  br i1 %386, label %392, label %387

387:                                              ; preds = %383
  %388 = fmul float %.0623, %358
  %389 = fcmp oge float %107, %388
  %390 = select i1 %389, float %107, float %388
  %391 = fdiv float %346, %390
  br label %392

392:                                              ; preds = %387, %383, %348
  %.0615 = phi float [ %391, %387 ], [ 1.000000e+00, %383 ], [ 1.000000e+00, %348 ]
  %.0597 = phi i32 [ 1, %387 ], [ 0, %383 ], [ 0, %348 ]
  %393 = fmul float %105, %358
  %394 = extractelement <2 x float> %370, i64 0
  %395 = fcmp oge float %394, 0.000000e+00
  %396 = fneg float %394
  %397 = select i1 %395, float %394, float %396
  %398 = fcmp olt float %397, %107
  br i1 %398, label %399, label %412

399:                                              ; preds = %392
  %400 = fcmp oge float %107, %393
  %401 = select i1 %400, float %107, float %393
  %402 = fcmp oge float %401, %377
  %403 = select i1 %402, float %401, float %377
  %404 = fcmp ult float %354, %403
  br i1 %404, label %412, label %405

405:                                              ; preds = %399
  %406 = fmul float %.0623, %354
  %407 = fcmp oge float %107, %406
  %408 = select i1 %407, float %107, float %406
  %409 = fdiv float %346, %408
  %410 = fcmp oge float %.0615, %409
  %411 = select i1 %410, float %.0615, float %409
  br label %412

412:                                              ; preds = %405, %399, %392
  %.1616 = phi float [ %411, %405 ], [ %.0615, %399 ], [ %.0615, %392 ]
  %.1598 = phi i32 [ 1, %405 ], [ %.0597, %399 ], [ %.0597, %392 ]
  %413 = fcmp oge float %373, 0.000000e+00
  %414 = fneg float %373
  %415 = select i1 %413, float %373, float %414
  %416 = fcmp olt float %415, %107
  br i1 %416, label %417, label %427

417:                                              ; preds = %412
  %418 = fcmp oge float %376, %393
  %419 = select i1 %418, float %376, float %393
  %420 = fcmp ult float %363, %419
  br i1 %420, label %427, label %.thread725

.thread725:                                       ; preds = %417
  %421 = fmul float %.0621, %363
  %422 = fcmp oge float %107, %421
  %423 = select i1 %422, float %107, float %421
  %424 = fdiv float %347, %423
  %425 = fcmp oge float %.1616, %424
  %426 = select i1 %425, float %.1616, float %424
  br label %428

427:                                              ; preds = %417, %412
  %.not675 = icmp eq i32 %.1598, 0
  br i1 %.not675, label %.thread731, label %428

428:                                              ; preds = %.thread725, %427
  %.2617729 = phi float [ %426, %.thread725 ], [ %.1616, %427 ]
  %429 = fcmp oge float %397, %381
  %430 = select i1 %429, float %397, float %381
  %431 = fmul float %107, %.2617729
  %432 = fcmp oge float %430, %415
  %433 = select i1 %432, float %430, float %415
  %434 = fmul float %433, %431
  %435 = fcmp ogt float %434, 1.000000e+00
  %436 = fdiv float %.2617729, %434
  %.3618 = select i1 %435, float %436, float %.2617729
  %437 = fcmp olt float %.3618, 1.000000e+00
  br i1 %437, label %.thread731, label %438

438:                                              ; preds = %428
  store i32 %349, ptr %19, align 4, !tbaa !5
  %439 = load float, ptr %350, align 4, !tbaa !9
  %440 = load float, ptr %20, align 4, !tbaa !13
  %441 = call <2 x float> @Cf(ptr noundef nonnull %350)
  %442 = insertelement <2 x float> poison, float %.3618, i64 0
  %443 = shufflevector <2 x float> %442, <2 x float> poison, <2 x i32> zeroinitializer
  %444 = insertelement <2 x float> %441, float %439, i64 0
  %445 = fmul <2 x float> %443, %444
  %446 = load float, ptr %20, align 4, !tbaa !13
  %447 = insertelement <2 x float> poison, float %440, i64 0
  %448 = insertelement <2 x float> %447, float %446, i64 1
  %449 = fmul <2 x float> %445, %448
  %450 = load float, ptr %359, align 4, !tbaa !9
  %451 = fmul float %.3618, %450
  %452 = load float, ptr %21, align 4, !tbaa !13
  %453 = fmul float %452, %451
  br label %.thread731

.thread731:                                       ; preds = %428, %427, %438
  %.0613 = phi float [ %453, %438 ], [ %373, %427 ], [ %373, %428 ]
  %454 = phi <2 x float> [ %449, %438 ], [ %370, %427 ], [ %370, %428 ]
  store <2 x float> %454, ptr %350, align 4, !tbaa !13
  store i32 %349, ptr %19, align 4, !tbaa !5
  store float %.0613, ptr %359, align 4, !tbaa !9
  %455 = getelementptr inbounds %struct.complex, ptr %37, i64 %indvars.iv793, i32 1
  store float 0.000000e+00, ptr %455, align 4, !tbaa !12
  %indvars.iv.next794 = add nuw nsw i64 %indvars.iv793, 1
  %456 = load i32, ptr %18, align 4, !tbaa !5
  %457 = sext i32 %456 to i64
  %.not674.not = icmp slt i64 %indvars.iv793, %457
  br i1 %.not674.not, label %348, label %.loopexit, !llvm.loop !26

.loopexit.sink.split:                             ; preds = %248, %145, %.thread693, %.thread697, %.thread701, %237, %263, %269, %309, %254, %256
  %.sink808 = phi i32 [ %257, %256 ], [ %255, %254 ], [ %310, %309 ], [ %270, %269 ], [ %265, %263 ], [ %239, %237 ], [ %224, %.thread701 ], [ %194, %.thread697 ], [ %174, %.thread693 ], [ %147, %145 ], [ %242, %248 ]
  %.5.ph = phi i32 [ %.4717721, %256 ], [ %.4717721, %254 ], [ %247, %309 ], [ %247, %269 ], [ %247, %263 ], [ %.3708, %237 ], [ %.2704, %.thread701 ], [ %.1700, %.thread697 ], [ %.0696, %.thread693 ], [ %61, %145 ], [ %247, %248 ]
  store i32 %.sink808, ptr %16, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.thread731, %.loopexit.sink.split, %311, %.loopexit742
  %.5 = phi i32 [ %247, %.loopexit742 ], [ %247, %311 ], [ %.5.ph, %.loopexit.sink.split ], [ %247, %.thread731 ]
  %458 = uitofp nneg i32 %.5 to float
  store float %458, ptr %13, align 4, !tbaa !9
  store float 0.000000e+00, ptr %63, align 4, !tbaa !12
  br label %459

459:                                              ; preds = %100, %.loopexit, %133, %119, %.thread691
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #5
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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


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