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

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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b1 = external hidden global %struct.complex, align 4

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

138:                                              ; preds = %6
  %139 = load ptr, ptr %7, align 8, !tbaa !5
  %140 = call i32 @lsame_(ptr noundef %139, ptr noundef @.str.1)
  %141 = icmp ne i32 %140, 0
  br i1 %141, label %144, label %142

142:                                              ; preds = %138
  %143 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 -1, ptr %143, align 4, !tbaa !9
  br label %167

144:                                              ; preds = %138, %6
  %145 = load ptr, ptr %8, align 8, !tbaa !5
  %146 = load i32, ptr %145, align 4, !tbaa !9
  %147 = icmp slt i32 %146, 0
  br i1 %147, label %148, label %150

148:                                              ; preds = %144
  %149 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 -2, ptr %149, align 4, !tbaa !9
  br label %166

150:                                              ; preds = %144
  %151 = load ptr, ptr %10, align 8, !tbaa !5
  %152 = load i32, ptr %151, align 4, !tbaa !9
  %153 = load ptr, ptr %8, align 8, !tbaa !5
  %154 = load i32, ptr %153, align 4, !tbaa !9
  %155 = icmp sge i32 1, %154
  br i1 %155, label %156, label %157

156:                                              ; preds = %150
  br label %160

157:                                              ; preds = %150
  %158 = load ptr, ptr %8, align 8, !tbaa !5
  %159 = load i32, ptr %158, align 4, !tbaa !9
  br label %160

160:                                              ; preds = %157, %156
  %161 = phi i32 [ 1, %156 ], [ %159, %157 ]
  %162 = icmp slt i32 %152, %161
  br i1 %162, label %163, label %165

163:                                              ; preds = %160
  %164 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 -4, ptr %164, align 4, !tbaa !9
  br label %165

165:                                              ; preds = %163, %160
  br label %166

166:                                              ; preds = %165, %148
  br label %167

167:                                              ; preds = %166, %142
  %168 = load ptr, ptr %12, align 8, !tbaa !5
  %169 = load i32, ptr %168, align 4, !tbaa !9
  %170 = icmp ne i32 %169, 0
  br i1 %170, label %171, label %176

171:                                              ; preds = %167
  %172 = load ptr, ptr %12, align 8, !tbaa !5
  %173 = load i32, ptr %172, align 4, !tbaa !9
  %174 = sub nsw i32 0, %173
  store i32 %174, ptr %15, align 4, !tbaa !9
  %175 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef %15, i32 noundef 11)
  store i32 1, ptr %54, align 4
  br label %3276

176:                                              ; preds = %167
  %177 = call double @sqrt(double noundef 1.700000e+01) #7
  %178 = fadd double %177, 1.000000e+00
  %179 = fdiv double %178, 8.000000e+00
  %180 = fptrunc double %179 to float
  store float %180, ptr %35, align 4, !tbaa !11
  %181 = call float @slamch_(ptr noundef @.str.3)
  store float %181, ptr %36, align 4, !tbaa !11
  %182 = load i32, ptr %40, align 4, !tbaa !9
  %183 = icmp ne i32 %182, 0
  br i1 %183, label %184, label %1694

184:                                              ; preds = %176
  %185 = load ptr, ptr %8, align 8, !tbaa !5
  %186 = load i32, ptr %185, align 4, !tbaa !9
  store i32 %186, ptr %32, align 4, !tbaa !9
  br label %187

187:                                              ; preds = %1690, %184
  %188 = load i32, ptr %32, align 4, !tbaa !9
  %189 = icmp slt i32 %188, 1
  br i1 %189, label %190, label %191

190:                                              ; preds = %187
  br label %3275

191:                                              ; preds = %187
  store i32 1, ptr %38, align 4, !tbaa !9
  %192 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %192, ptr %33, align 4, !tbaa !9
  %193 = load i32, ptr %32, align 4, !tbaa !9
  %194 = load i32, ptr %32, align 4, !tbaa !9
  %195 = load i32, ptr %13, align 4, !tbaa !9
  %196 = mul nsw i32 %194, %195
  %197 = add nsw i32 %193, %196
  store i32 %197, ptr %15, align 4, !tbaa !9
  %198 = load ptr, ptr %9, align 8, !tbaa !5
  %199 = load i32, ptr %15, align 4, !tbaa !9
  %200 = sext i32 %199 to i64
  %201 = getelementptr inbounds %struct.complex, ptr %198, i64 %200
  %202 = getelementptr inbounds %struct.complex, ptr %201, i32 0, i32 0
  %203 = load float, ptr %202, align 4, !tbaa !13
  store float %203, ptr %19, align 4, !tbaa !11
  %204 = load float, ptr %19, align 4, !tbaa !11
  %205 = fcmp oge float %204, 0.000000e+00
  br i1 %205, label %206, label %208

206:                                              ; preds = %191
  %207 = load float, ptr %19, align 4, !tbaa !11
  br label %211

208:                                              ; preds = %191
  %209 = load float, ptr %19, align 4, !tbaa !11
  %210 = fneg float %209
  br label %211

211:                                              ; preds = %208, %206
  %212 = phi float [ %207, %206 ], [ %210, %208 ]
  %213 = load ptr, ptr %9, align 8, !tbaa !5
  %214 = load i32, ptr %32, align 4, !tbaa !9
  %215 = load i32, ptr %32, align 4, !tbaa !9
  %216 = load i32, ptr %13, align 4, !tbaa !9
  %217 = mul nsw i32 %215, %216
  %218 = add nsw i32 %214, %217
  %219 = sext i32 %218 to i64
  %220 = getelementptr inbounds %struct.complex, ptr %213, i64 %219
  %221 = call <2 x float> @Cf(ptr noundef %220)
  store <2 x float> %221, ptr %55, align 4
  %222 = getelementptr inbounds { float, float }, ptr %55, i32 0, i32 0
  %223 = load float, ptr %222, align 4
  %224 = getelementptr inbounds { float, float }, ptr %55, i32 0, i32 1
  %225 = load float, ptr %224, align 4
  store float %225, ptr %20, align 4, !tbaa !11
  %226 = load float, ptr %20, align 4, !tbaa !11
  %227 = fcmp oge float %226, 0.000000e+00
  br i1 %227, label %228, label %230

228:                                              ; preds = %211
  %229 = load float, ptr %20, align 4, !tbaa !11
  br label %233

230:                                              ; preds = %211
  %231 = load float, ptr %20, align 4, !tbaa !11
  %232 = fneg float %231
  br label %233

233:                                              ; preds = %230, %228
  %234 = phi float [ %229, %228 ], [ %232, %230 ]
  %235 = fadd float %212, %234
  store float %235, ptr %48, align 4, !tbaa !11
  %236 = load i32, ptr %32, align 4, !tbaa !9
  %237 = icmp sgt i32 %236, 1
  br i1 %237, label %238, label %292

238:                                              ; preds = %233
  %239 = load i32, ptr %32, align 4, !tbaa !9
  %240 = sub nsw i32 %239, 1
  store i32 %240, ptr %15, align 4, !tbaa !9
  %241 = load ptr, ptr %9, align 8, !tbaa !5
  %242 = load i32, ptr %32, align 4, !tbaa !9
  %243 = load i32, ptr %13, align 4, !tbaa !9
  %244 = mul nsw i32 %242, %243
  %245 = add nsw i32 %244, 1
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds %struct.complex, ptr %241, i64 %246
  %248 = call i32 @icamax_(ptr noundef %15, ptr noundef %247, ptr noundef @c__1)
  store i32 %248, ptr %28, align 4, !tbaa !9
  %249 = load i32, ptr %28, align 4, !tbaa !9
  %250 = load i32, ptr %32, align 4, !tbaa !9
  %251 = load i32, ptr %13, align 4, !tbaa !9
  %252 = mul nsw i32 %250, %251
  %253 = add nsw i32 %249, %252
  store i32 %253, ptr %15, align 4, !tbaa !9
  %254 = load ptr, ptr %9, align 8, !tbaa !5
  %255 = load i32, ptr %15, align 4, !tbaa !9
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds %struct.complex, ptr %254, i64 %256
  %258 = getelementptr inbounds %struct.complex, ptr %257, i32 0, i32 0
  %259 = load float, ptr %258, align 4, !tbaa !13
  store float %259, ptr %19, align 4, !tbaa !11
  %260 = load float, ptr %19, align 4, !tbaa !11
  %261 = fcmp oge float %260, 0.000000e+00
  br i1 %261, label %262, label %264

262:                                              ; preds = %238
  %263 = load float, ptr %19, align 4, !tbaa !11
  br label %267

264:                                              ; preds = %238
  %265 = load float, ptr %19, align 4, !tbaa !11
  %266 = fneg float %265
  br label %267

267:                                              ; preds = %264, %262
  %268 = phi float [ %263, %262 ], [ %266, %264 ]
  %269 = load ptr, ptr %9, align 8, !tbaa !5
  %270 = load i32, ptr %28, align 4, !tbaa !9
  %271 = load i32, ptr %32, align 4, !tbaa !9
  %272 = load i32, ptr %13, align 4, !tbaa !9
  %273 = mul nsw i32 %271, %272
  %274 = add nsw i32 %270, %273
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds %struct.complex, ptr %269, i64 %275
  %277 = call <2 x float> @Cf(ptr noundef %276)
  store <2 x float> %277, ptr %56, align 4
  %278 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 0
  %279 = load float, ptr %278, align 4
  %280 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 1
  %281 = load float, ptr %280, align 4
  store float %281, ptr %20, align 4, !tbaa !11
  %282 = load float, ptr %20, align 4, !tbaa !11
  %283 = fcmp oge float %282, 0.000000e+00
  br i1 %283, label %284, label %286

284:                                              ; preds = %267
  %285 = load float, ptr %20, align 4, !tbaa !11
  br label %289

286:                                              ; preds = %267
  %287 = load float, ptr %20, align 4, !tbaa !11
  %288 = fneg float %287
  br label %289

289:                                              ; preds = %286, %284
  %290 = phi float [ %285, %284 ], [ %288, %286 ]
  %291 = fadd float %268, %290
  store float %291, ptr %50, align 4, !tbaa !11
  br label %293

292:                                              ; preds = %233
  store float 0.000000e+00, ptr %50, align 4, !tbaa !11
  br label %293

293:                                              ; preds = %292, %289
  %294 = load float, ptr %48, align 4, !tbaa !11
  %295 = load float, ptr %50, align 4, !tbaa !11
  %296 = fcmp oge float %294, %295
  br i1 %296, label %297, label %299

297:                                              ; preds = %293
  %298 = load float, ptr %48, align 4, !tbaa !11
  br label %301

299:                                              ; preds = %293
  %300 = load float, ptr %50, align 4, !tbaa !11
  br label %301

301:                                              ; preds = %299, %297
  %302 = phi float [ %298, %297 ], [ %300, %299 ]
  %303 = fcmp oeq float %302, 0.000000e+00
  br i1 %303, label %304, label %313

304:                                              ; preds = %301
  %305 = load ptr, ptr %12, align 8, !tbaa !5
  %306 = load i32, ptr %305, align 4, !tbaa !9
  %307 = icmp eq i32 %306, 0
  br i1 %307, label %308, label %311

308:                                              ; preds = %304
  %309 = load i32, ptr %32, align 4, !tbaa !9
  %310 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %309, ptr %310, align 4, !tbaa !9
  br label %311

311:                                              ; preds = %308, %304
  %312 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %312, ptr %47, align 4, !tbaa !9
  br label %1667

313:                                              ; preds = %301
  %314 = load float, ptr %48, align 4, !tbaa !11
  %315 = load float, ptr %35, align 4, !tbaa !11
  %316 = load float, ptr %50, align 4, !tbaa !11
  %317 = fmul float %315, %316
  %318 = fcmp olt float %314, %317
  br i1 %318, label %321, label %319

319:                                              ; preds = %313
  %320 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %320, ptr %47, align 4, !tbaa !9
  br label %521

321:                                              ; preds = %313
  store i32 0, ptr %27, align 4, !tbaa !9
  br label %322

322:                                              ; preds = %519, %321
  %323 = load i32, ptr %28, align 4, !tbaa !9
  %324 = load i32, ptr %32, align 4, !tbaa !9
  %325 = icmp ne i32 %323, %324
  br i1 %325, label %326, label %386

326:                                              ; preds = %322
  %327 = load i32, ptr %32, align 4, !tbaa !9
  %328 = load i32, ptr %28, align 4, !tbaa !9
  %329 = sub nsw i32 %327, %328
  store i32 %329, ptr %15, align 4, !tbaa !9
  %330 = load i32, ptr %28, align 4, !tbaa !9
  %331 = load ptr, ptr %9, align 8, !tbaa !5
  %332 = load i32, ptr %28, align 4, !tbaa !9
  %333 = load i32, ptr %28, align 4, !tbaa !9
  %334 = add nsw i32 %333, 1
  %335 = load i32, ptr %13, align 4, !tbaa !9
  %336 = mul nsw i32 %334, %335
  %337 = add nsw i32 %332, %336
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds %struct.complex, ptr %331, i64 %338
  %340 = load ptr, ptr %10, align 8, !tbaa !5
  %341 = call i32 @icamax_(ptr noundef %15, ptr noundef %339, ptr noundef %340)
  %342 = add nsw i32 %330, %341
  store i32 %342, ptr %29, align 4, !tbaa !9
  %343 = load i32, ptr %28, align 4, !tbaa !9
  %344 = load i32, ptr %29, align 4, !tbaa !9
  %345 = load i32, ptr %13, align 4, !tbaa !9
  %346 = mul nsw i32 %344, %345
  %347 = add nsw i32 %343, %346
  store i32 %347, ptr %15, align 4, !tbaa !9
  %348 = load ptr, ptr %9, align 8, !tbaa !5
  %349 = load i32, ptr %15, align 4, !tbaa !9
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds %struct.complex, ptr %348, i64 %350
  %352 = getelementptr inbounds %struct.complex, ptr %351, i32 0, i32 0
  %353 = load float, ptr %352, align 4, !tbaa !13
  store float %353, ptr %19, align 4, !tbaa !11
  %354 = load float, ptr %19, align 4, !tbaa !11
  %355 = fcmp oge float %354, 0.000000e+00
  br i1 %355, label %356, label %358

356:                                              ; preds = %326
  %357 = load float, ptr %19, align 4, !tbaa !11
  br label %361

358:                                              ; preds = %326
  %359 = load float, ptr %19, align 4, !tbaa !11
  %360 = fneg float %359
  br label %361

361:                                              ; preds = %358, %356
  %362 = phi float [ %357, %356 ], [ %360, %358 ]
  %363 = load ptr, ptr %9, align 8, !tbaa !5
  %364 = load i32, ptr %28, align 4, !tbaa !9
  %365 = load i32, ptr %29, align 4, !tbaa !9
  %366 = load i32, ptr %13, align 4, !tbaa !9
  %367 = mul nsw i32 %365, %366
  %368 = add nsw i32 %364, %367
  %369 = sext i32 %368 to i64
  %370 = getelementptr inbounds %struct.complex, ptr %363, i64 %369
  %371 = call <2 x float> @Cf(ptr noundef %370)
  store <2 x float> %371, ptr %57, align 4
  %372 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 0
  %373 = load float, ptr %372, align 4
  %374 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 1
  %375 = load float, ptr %374, align 4
  store float %375, ptr %20, align 4, !tbaa !11
  %376 = load float, ptr %20, align 4, !tbaa !11
  %377 = fcmp oge float %376, 0.000000e+00
  br i1 %377, label %378, label %380

378:                                              ; preds = %361
  %379 = load float, ptr %20, align 4, !tbaa !11
  br label %383

380:                                              ; preds = %361
  %381 = load float, ptr %20, align 4, !tbaa !11
  %382 = fneg float %381
  br label %383

383:                                              ; preds = %380, %378
  %384 = phi float [ %379, %378 ], [ %382, %380 ]
  %385 = fadd float %362, %384
  store float %385, ptr %51, align 4, !tbaa !11
  br label %387

386:                                              ; preds = %322
  store float 0.000000e+00, ptr %51, align 4, !tbaa !11
  br label %387

387:                                              ; preds = %386, %383
  %388 = load i32, ptr %28, align 4, !tbaa !9
  %389 = icmp sgt i32 %388, 1
  br i1 %389, label %390, label %451

390:                                              ; preds = %387
  %391 = load i32, ptr %28, align 4, !tbaa !9
  %392 = sub nsw i32 %391, 1
  store i32 %392, ptr %15, align 4, !tbaa !9
  %393 = load ptr, ptr %9, align 8, !tbaa !5
  %394 = load i32, ptr %28, align 4, !tbaa !9
  %395 = load i32, ptr %13, align 4, !tbaa !9
  %396 = mul nsw i32 %394, %395
  %397 = add nsw i32 %396, 1
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds %struct.complex, ptr %393, i64 %398
  %400 = call i32 @icamax_(ptr noundef %15, ptr noundef %399, ptr noundef @c__1)
  store i32 %400, ptr %37, align 4, !tbaa !9
  %401 = load i32, ptr %37, align 4, !tbaa !9
  %402 = load i32, ptr %28, align 4, !tbaa !9
  %403 = load i32, ptr %13, align 4, !tbaa !9
  %404 = mul nsw i32 %402, %403
  %405 = add nsw i32 %401, %404
  store i32 %405, ptr %15, align 4, !tbaa !9
  %406 = load ptr, ptr %9, align 8, !tbaa !5
  %407 = load i32, ptr %15, align 4, !tbaa !9
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds %struct.complex, ptr %406, i64 %408
  %410 = getelementptr inbounds %struct.complex, ptr %409, i32 0, i32 0
  %411 = load float, ptr %410, align 4, !tbaa !13
  store float %411, ptr %19, align 4, !tbaa !11
  %412 = load float, ptr %19, align 4, !tbaa !11
  %413 = fcmp oge float %412, 0.000000e+00
  br i1 %413, label %414, label %416

414:                                              ; preds = %390
  %415 = load float, ptr %19, align 4, !tbaa !11
  br label %419

416:                                              ; preds = %390
  %417 = load float, ptr %19, align 4, !tbaa !11
  %418 = fneg float %417
  br label %419

419:                                              ; preds = %416, %414
  %420 = phi float [ %415, %414 ], [ %418, %416 ]
  %421 = load ptr, ptr %9, align 8, !tbaa !5
  %422 = load i32, ptr %37, align 4, !tbaa !9
  %423 = load i32, ptr %28, align 4, !tbaa !9
  %424 = load i32, ptr %13, align 4, !tbaa !9
  %425 = mul nsw i32 %423, %424
  %426 = add nsw i32 %422, %425
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds %struct.complex, ptr %421, i64 %427
  %429 = call <2 x float> @Cf(ptr noundef %428)
  store <2 x float> %429, ptr %58, align 4
  %430 = getelementptr inbounds { float, float }, ptr %58, i32 0, i32 0
  %431 = load float, ptr %430, align 4
  %432 = getelementptr inbounds { float, float }, ptr %58, i32 0, i32 1
  %433 = load float, ptr %432, align 4
  store float %433, ptr %20, align 4, !tbaa !11
  %434 = load float, ptr %20, align 4, !tbaa !11
  %435 = fcmp oge float %434, 0.000000e+00
  br i1 %435, label %436, label %438

436:                                              ; preds = %419
  %437 = load float, ptr %20, align 4, !tbaa !11
  br label %441

438:                                              ; preds = %419
  %439 = load float, ptr %20, align 4, !tbaa !11
  %440 = fneg float %439
  br label %441

441:                                              ; preds = %438, %436
  %442 = phi float [ %437, %436 ], [ %440, %438 ]
  %443 = fadd float %420, %442
  store float %443, ptr %39, align 4, !tbaa !11
  %444 = load float, ptr %39, align 4, !tbaa !11
  %445 = load float, ptr %51, align 4, !tbaa !11
  %446 = fcmp ogt float %444, %445
  br i1 %446, label %447, label %450

447:                                              ; preds = %441
  %448 = load float, ptr %39, align 4, !tbaa !11
  store float %448, ptr %51, align 4, !tbaa !11
  %449 = load i32, ptr %37, align 4, !tbaa !9
  store i32 %449, ptr %29, align 4, !tbaa !9
  br label %450

450:                                              ; preds = %447, %441
  br label %451

451:                                              ; preds = %450, %387
  %452 = load i32, ptr %28, align 4, !tbaa !9
  %453 = load i32, ptr %28, align 4, !tbaa !9
  %454 = load i32, ptr %13, align 4, !tbaa !9
  %455 = mul nsw i32 %453, %454
  %456 = add nsw i32 %452, %455
  store i32 %456, ptr %15, align 4, !tbaa !9
  %457 = load ptr, ptr %9, align 8, !tbaa !5
  %458 = load i32, ptr %15, align 4, !tbaa !9
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds %struct.complex, ptr %457, i64 %459
  %461 = getelementptr inbounds %struct.complex, ptr %460, i32 0, i32 0
  %462 = load float, ptr %461, align 4, !tbaa !13
  store float %462, ptr %19, align 4, !tbaa !11
  %463 = load float, ptr %19, align 4, !tbaa !11
  %464 = fcmp oge float %463, 0.000000e+00
  br i1 %464, label %465, label %467

465:                                              ; preds = %451
  %466 = load float, ptr %19, align 4, !tbaa !11
  br label %470

467:                                              ; preds = %451
  %468 = load float, ptr %19, align 4, !tbaa !11
  %469 = fneg float %468
  br label %470

470:                                              ; preds = %467, %465
  %471 = phi float [ %466, %465 ], [ %469, %467 ]
  %472 = load ptr, ptr %9, align 8, !tbaa !5
  %473 = load i32, ptr %28, align 4, !tbaa !9
  %474 = load i32, ptr %28, align 4, !tbaa !9
  %475 = load i32, ptr %13, align 4, !tbaa !9
  %476 = mul nsw i32 %474, %475
  %477 = add nsw i32 %473, %476
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds %struct.complex, ptr %472, i64 %478
  %480 = call <2 x float> @Cf(ptr noundef %479)
  store <2 x float> %480, ptr %59, align 4
  %481 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 0
  %482 = load float, ptr %481, align 4
  %483 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 1
  %484 = load float, ptr %483, align 4
  store float %484, ptr %20, align 4, !tbaa !11
  %485 = load float, ptr %20, align 4, !tbaa !11
  %486 = fcmp oge float %485, 0.000000e+00
  br i1 %486, label %487, label %489

487:                                              ; preds = %470
  %488 = load float, ptr %20, align 4, !tbaa !11
  br label %492

489:                                              ; preds = %470
  %490 = load float, ptr %20, align 4, !tbaa !11
  %491 = fneg float %490
  br label %492

492:                                              ; preds = %489, %487
  %493 = phi float [ %488, %487 ], [ %491, %489 ]
  %494 = fadd float %471, %493
  %495 = load float, ptr %35, align 4, !tbaa !11
  %496 = load float, ptr %51, align 4, !tbaa !11
  %497 = fmul float %495, %496
  %498 = fcmp olt float %494, %497
  br i1 %498, label %501, label %499

499:                                              ; preds = %492
  %500 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %500, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %516

501:                                              ; preds = %492
  %502 = load i32, ptr %33, align 4, !tbaa !9
  %503 = load i32, ptr %29, align 4, !tbaa !9
  %504 = icmp eq i32 %502, %503
  br i1 %504, label %509, label %505

505:                                              ; preds = %501
  %506 = load float, ptr %51, align 4, !tbaa !11
  %507 = load float, ptr %50, align 4, !tbaa !11
  %508 = fcmp ole float %506, %507
  br i1 %508, label %509, label %511

509:                                              ; preds = %505, %501
  %510 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %510, ptr %47, align 4, !tbaa !9
  store i32 2, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %515

511:                                              ; preds = %505
  %512 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %512, ptr %33, align 4, !tbaa !9
  %513 = load float, ptr %51, align 4, !tbaa !11
  store float %513, ptr %50, align 4, !tbaa !11
  %514 = load i32, ptr %29, align 4, !tbaa !9
  store i32 %514, ptr %28, align 4, !tbaa !9
  br label %515

515:                                              ; preds = %511, %509
  br label %516

516:                                              ; preds = %515, %499
  %517 = load i32, ptr %27, align 4, !tbaa !9
  %518 = icmp ne i32 %517, 0
  br i1 %518, label %520, label %519

519:                                              ; preds = %516
  br label %322

520:                                              ; preds = %516
  br label %521

521:                                              ; preds = %520, %319
  %522 = load i32, ptr %38, align 4, !tbaa !9
  %523 = icmp eq i32 %522, 2
  br i1 %523, label %524, label %648

524:                                              ; preds = %521
  %525 = load i32, ptr %33, align 4, !tbaa !9
  %526 = load i32, ptr %32, align 4, !tbaa !9
  %527 = icmp ne i32 %525, %526
  br i1 %527, label %528, label %648

528:                                              ; preds = %524
  %529 = load i32, ptr %33, align 4, !tbaa !9
  %530 = icmp sgt i32 %529, 1
  br i1 %530, label %531, label %548

531:                                              ; preds = %528
  %532 = load i32, ptr %33, align 4, !tbaa !9
  %533 = sub nsw i32 %532, 1
  store i32 %533, ptr %15, align 4, !tbaa !9
  %534 = load ptr, ptr %9, align 8, !tbaa !5
  %535 = load i32, ptr %32, align 4, !tbaa !9
  %536 = load i32, ptr %13, align 4, !tbaa !9
  %537 = mul nsw i32 %535, %536
  %538 = add nsw i32 %537, 1
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds %struct.complex, ptr %534, i64 %539
  %541 = load ptr, ptr %9, align 8, !tbaa !5
  %542 = load i32, ptr %33, align 4, !tbaa !9
  %543 = load i32, ptr %13, align 4, !tbaa !9
  %544 = mul nsw i32 %542, %543
  %545 = add nsw i32 %544, 1
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds %struct.complex, ptr %541, i64 %546
  call void @cswap_(ptr noundef %15, ptr noundef %540, ptr noundef @c__1, ptr noundef %547, ptr noundef @c__1)
  br label %548

548:                                              ; preds = %531, %528
  %549 = load i32, ptr %33, align 4, !tbaa !9
  %550 = load i32, ptr %32, align 4, !tbaa !9
  %551 = sub nsw i32 %550, 1
  %552 = icmp slt i32 %549, %551
  br i1 %552, label %553, label %577

553:                                              ; preds = %548
  %554 = load i32, ptr %32, align 4, !tbaa !9
  %555 = load i32, ptr %33, align 4, !tbaa !9
  %556 = sub nsw i32 %554, %555
  %557 = sub nsw i32 %556, 1
  store i32 %557, ptr %15, align 4, !tbaa !9
  %558 = load ptr, ptr %9, align 8, !tbaa !5
  %559 = load i32, ptr %33, align 4, !tbaa !9
  %560 = add nsw i32 %559, 1
  %561 = load i32, ptr %32, align 4, !tbaa !9
  %562 = load i32, ptr %13, align 4, !tbaa !9
  %563 = mul nsw i32 %561, %562
  %564 = add nsw i32 %560, %563
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds %struct.complex, ptr %558, i64 %565
  %567 = load ptr, ptr %9, align 8, !tbaa !5
  %568 = load i32, ptr %33, align 4, !tbaa !9
  %569 = load i32, ptr %33, align 4, !tbaa !9
  %570 = add nsw i32 %569, 1
  %571 = load i32, ptr %13, align 4, !tbaa !9
  %572 = mul nsw i32 %570, %571
  %573 = add nsw i32 %568, %572
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds %struct.complex, ptr %567, i64 %574
  %576 = load ptr, ptr %10, align 8, !tbaa !5
  call void @cswap_(ptr noundef %15, ptr noundef %566, ptr noundef @c__1, ptr noundef %575, ptr noundef %576)
  br label %577

577:                                              ; preds = %553, %548
  %578 = load i32, ptr %32, align 4, !tbaa !9
  %579 = load i32, ptr %32, align 4, !tbaa !9
  %580 = load i32, ptr %13, align 4, !tbaa !9
  %581 = mul nsw i32 %579, %580
  %582 = add nsw i32 %578, %581
  store i32 %582, ptr %15, align 4, !tbaa !9
  %583 = load ptr, ptr %9, align 8, !tbaa !5
  %584 = load i32, ptr %15, align 4, !tbaa !9
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds %struct.complex, ptr %583, i64 %585
  %587 = getelementptr inbounds %struct.complex, ptr %586, i32 0, i32 0
  %588 = load float, ptr %587, align 4, !tbaa !13
  %589 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %588, ptr %589, align 4, !tbaa !13
  %590 = load ptr, ptr %9, align 8, !tbaa !5
  %591 = load i32, ptr %15, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds %struct.complex, ptr %590, i64 %592
  %594 = getelementptr inbounds %struct.complex, ptr %593, i32 0, i32 1
  %595 = load float, ptr %594, align 4, !tbaa !15
  %596 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %595, ptr %596, align 4, !tbaa !15
  %597 = load i32, ptr %32, align 4, !tbaa !9
  %598 = load i32, ptr %32, align 4, !tbaa !9
  %599 = load i32, ptr %13, align 4, !tbaa !9
  %600 = mul nsw i32 %598, %599
  %601 = add nsw i32 %597, %600
  store i32 %601, ptr %15, align 4, !tbaa !9
  %602 = load i32, ptr %33, align 4, !tbaa !9
  %603 = load i32, ptr %33, align 4, !tbaa !9
  %604 = load i32, ptr %13, align 4, !tbaa !9
  %605 = mul nsw i32 %603, %604
  %606 = add nsw i32 %602, %605
  store i32 %606, ptr %16, align 4, !tbaa !9
  %607 = load ptr, ptr %9, align 8, !tbaa !5
  %608 = load i32, ptr %16, align 4, !tbaa !9
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds %struct.complex, ptr %607, i64 %609
  %611 = getelementptr inbounds %struct.complex, ptr %610, i32 0, i32 0
  %612 = load float, ptr %611, align 4, !tbaa !13
  %613 = load ptr, ptr %9, align 8, !tbaa !5
  %614 = load i32, ptr %15, align 4, !tbaa !9
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds %struct.complex, ptr %613, i64 %615
  %617 = getelementptr inbounds %struct.complex, ptr %616, i32 0, i32 0
  store float %612, ptr %617, align 4, !tbaa !13
  %618 = load ptr, ptr %9, align 8, !tbaa !5
  %619 = load i32, ptr %16, align 4, !tbaa !9
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds %struct.complex, ptr %618, i64 %620
  %622 = getelementptr inbounds %struct.complex, ptr %621, i32 0, i32 1
  %623 = load float, ptr %622, align 4, !tbaa !15
  %624 = load ptr, ptr %9, align 8, !tbaa !5
  %625 = load i32, ptr %15, 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 1
  store float %623, ptr %628, align 4, !tbaa !15
  %629 = load i32, ptr %33, align 4, !tbaa !9
  %630 = load i32, ptr %33, align 4, !tbaa !9
  %631 = load i32, ptr %13, align 4, !tbaa !9
  %632 = mul nsw i32 %630, %631
  %633 = add nsw i32 %629, %632
  store i32 %633, ptr %15, align 4, !tbaa !9
  %634 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %635 = load float, ptr %634, align 4, !tbaa !13
  %636 = load ptr, ptr %9, align 8, !tbaa !5
  %637 = load i32, ptr %15, align 4, !tbaa !9
  %638 = sext i32 %637 to i64
  %639 = getelementptr inbounds %struct.complex, ptr %636, i64 %638
  %640 = getelementptr inbounds %struct.complex, ptr %639, i32 0, i32 0
  store float %635, ptr %640, align 4, !tbaa !13
  %641 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %642 = load float, ptr %641, align 4, !tbaa !15
  %643 = load ptr, ptr %9, align 8, !tbaa !5
  %644 = load i32, ptr %15, align 4, !tbaa !9
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds %struct.complex, ptr %643, i64 %645
  %647 = getelementptr inbounds %struct.complex, ptr %646, i32 0, i32 1
  store float %642, ptr %647, align 4, !tbaa !15
  br label %648

648:                                              ; preds = %577, %524, %521
  %649 = load i32, ptr %32, align 4, !tbaa !9
  %650 = load i32, ptr %38, align 4, !tbaa !9
  %651 = sub nsw i32 %649, %650
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr %46, align 4, !tbaa !9
  %653 = load i32, ptr %47, align 4, !tbaa !9
  %654 = load i32, ptr %46, align 4, !tbaa !9
  %655 = icmp ne i32 %653, %654
  br i1 %655, label %656, label %855

656:                                              ; preds = %648
  %657 = load i32, ptr %47, align 4, !tbaa !9
  %658 = icmp sgt i32 %657, 1
  br i1 %658, label %659, label %676

659:                                              ; preds = %656
  %660 = load i32, ptr %47, align 4, !tbaa !9
  %661 = sub nsw i32 %660, 1
  store i32 %661, ptr %15, align 4, !tbaa !9
  %662 = load ptr, ptr %9, align 8, !tbaa !5
  %663 = load i32, ptr %46, align 4, !tbaa !9
  %664 = load i32, ptr %13, align 4, !tbaa !9
  %665 = mul nsw i32 %663, %664
  %666 = add nsw i32 %665, 1
  %667 = sext i32 %666 to i64
  %668 = getelementptr inbounds %struct.complex, ptr %662, i64 %667
  %669 = load ptr, ptr %9, align 8, !tbaa !5
  %670 = load i32, ptr %47, align 4, !tbaa !9
  %671 = load i32, ptr %13, align 4, !tbaa !9
  %672 = mul nsw i32 %670, %671
  %673 = add nsw i32 %672, 1
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds %struct.complex, ptr %669, i64 %674
  call void @cswap_(ptr noundef %15, ptr noundef %668, ptr noundef @c__1, ptr noundef %675, ptr noundef @c__1)
  br label %676

676:                                              ; preds = %659, %656
  %677 = load i32, ptr %46, align 4, !tbaa !9
  %678 = icmp sgt i32 %677, 1
  br i1 %678, label %679, label %708

679:                                              ; preds = %676
  %680 = load i32, ptr %47, align 4, !tbaa !9
  %681 = load i32, ptr %46, align 4, !tbaa !9
  %682 = sub nsw i32 %681, 1
  %683 = icmp slt i32 %680, %682
  br i1 %683, label %684, label %708

684:                                              ; preds = %679
  %685 = load i32, ptr %46, align 4, !tbaa !9
  %686 = load i32, ptr %47, align 4, !tbaa !9
  %687 = sub nsw i32 %685, %686
  %688 = sub nsw i32 %687, 1
  store i32 %688, ptr %15, align 4, !tbaa !9
  %689 = load ptr, ptr %9, align 8, !tbaa !5
  %690 = load i32, ptr %47, align 4, !tbaa !9
  %691 = add nsw i32 %690, 1
  %692 = load i32, ptr %46, align 4, !tbaa !9
  %693 = load i32, ptr %13, align 4, !tbaa !9
  %694 = mul nsw i32 %692, %693
  %695 = add nsw i32 %691, %694
  %696 = sext i32 %695 to i64
  %697 = getelementptr inbounds %struct.complex, ptr %689, i64 %696
  %698 = load ptr, ptr %9, align 8, !tbaa !5
  %699 = load i32, ptr %47, align 4, !tbaa !9
  %700 = load i32, ptr %47, align 4, !tbaa !9
  %701 = add nsw i32 %700, 1
  %702 = load i32, ptr %13, align 4, !tbaa !9
  %703 = mul nsw i32 %701, %702
  %704 = add nsw i32 %699, %703
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds %struct.complex, ptr %698, i64 %705
  %707 = load ptr, ptr %10, align 8, !tbaa !5
  call void @cswap_(ptr noundef %15, ptr noundef %697, ptr noundef @c__1, ptr noundef %706, ptr noundef %707)
  br label %708

708:                                              ; preds = %684, %679, %676
  %709 = load i32, ptr %46, align 4, !tbaa !9
  %710 = load i32, ptr %46, align 4, !tbaa !9
  %711 = load i32, ptr %13, align 4, !tbaa !9
  %712 = mul nsw i32 %710, %711
  %713 = add nsw i32 %709, %712
  store i32 %713, ptr %15, align 4, !tbaa !9
  %714 = load ptr, ptr %9, align 8, !tbaa !5
  %715 = load i32, ptr %15, align 4, !tbaa !9
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds %struct.complex, ptr %714, i64 %716
  %718 = getelementptr inbounds %struct.complex, ptr %717, i32 0, i32 0
  %719 = load float, ptr %718, align 4, !tbaa !13
  %720 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %719, ptr %720, align 4, !tbaa !13
  %721 = load ptr, ptr %9, align 8, !tbaa !5
  %722 = load i32, ptr %15, align 4, !tbaa !9
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds %struct.complex, ptr %721, i64 %723
  %725 = getelementptr inbounds %struct.complex, ptr %724, i32 0, i32 1
  %726 = load float, ptr %725, align 4, !tbaa !15
  %727 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %726, ptr %727, align 4, !tbaa !15
  %728 = load i32, ptr %46, align 4, !tbaa !9
  %729 = load i32, ptr %46, align 4, !tbaa !9
  %730 = load i32, ptr %13, align 4, !tbaa !9
  %731 = mul nsw i32 %729, %730
  %732 = add nsw i32 %728, %731
  store i32 %732, ptr %15, align 4, !tbaa !9
  %733 = load i32, ptr %47, align 4, !tbaa !9
  %734 = load i32, ptr %47, align 4, !tbaa !9
  %735 = load i32, ptr %13, align 4, !tbaa !9
  %736 = mul nsw i32 %734, %735
  %737 = add nsw i32 %733, %736
  store i32 %737, ptr %16, align 4, !tbaa !9
  %738 = load ptr, ptr %9, align 8, !tbaa !5
  %739 = load i32, ptr %16, align 4, !tbaa !9
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds %struct.complex, ptr %738, i64 %740
  %742 = getelementptr inbounds %struct.complex, ptr %741, i32 0, i32 0
  %743 = load float, ptr %742, align 4, !tbaa !13
  %744 = load ptr, ptr %9, align 8, !tbaa !5
  %745 = load i32, ptr %15, align 4, !tbaa !9
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds %struct.complex, ptr %744, i64 %746
  %748 = getelementptr inbounds %struct.complex, ptr %747, i32 0, i32 0
  store float %743, ptr %748, align 4, !tbaa !13
  %749 = load ptr, ptr %9, align 8, !tbaa !5
  %750 = load i32, ptr %16, align 4, !tbaa !9
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds %struct.complex, ptr %749, i64 %751
  %753 = getelementptr inbounds %struct.complex, ptr %752, i32 0, i32 1
  %754 = load float, ptr %753, align 4, !tbaa !15
  %755 = load ptr, ptr %9, align 8, !tbaa !5
  %756 = load i32, ptr %15, align 4, !tbaa !9
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds %struct.complex, ptr %755, i64 %757
  %759 = getelementptr inbounds %struct.complex, ptr %758, i32 0, i32 1
  store float %754, ptr %759, align 4, !tbaa !15
  %760 = load i32, ptr %47, align 4, !tbaa !9
  %761 = load i32, ptr %47, align 4, !tbaa !9
  %762 = load i32, ptr %13, align 4, !tbaa !9
  %763 = mul nsw i32 %761, %762
  %764 = add nsw i32 %760, %763
  store i32 %764, ptr %15, align 4, !tbaa !9
  %765 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %766 = load float, ptr %765, align 4, !tbaa !13
  %767 = load ptr, ptr %9, align 8, !tbaa !5
  %768 = load i32, ptr %15, align 4, !tbaa !9
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds %struct.complex, ptr %767, i64 %769
  %771 = getelementptr inbounds %struct.complex, ptr %770, i32 0, i32 0
  store float %766, ptr %771, align 4, !tbaa !13
  %772 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %773 = load float, ptr %772, align 4, !tbaa !15
  %774 = load ptr, ptr %9, align 8, !tbaa !5
  %775 = load i32, ptr %15, align 4, !tbaa !9
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds %struct.complex, ptr %774, i64 %776
  %778 = getelementptr inbounds %struct.complex, ptr %777, i32 0, i32 1
  store float %773, ptr %778, align 4, !tbaa !15
  %779 = load i32, ptr %38, align 4, !tbaa !9
  %780 = icmp eq i32 %779, 2
  br i1 %780, label %781, label %854

781:                                              ; preds = %708
  %782 = load i32, ptr %32, align 4, !tbaa !9
  %783 = sub nsw i32 %782, 1
  %784 = load i32, ptr %32, align 4, !tbaa !9
  %785 = load i32, ptr %13, align 4, !tbaa !9
  %786 = mul nsw i32 %784, %785
  %787 = add nsw i32 %783, %786
  store i32 %787, ptr %15, align 4, !tbaa !9
  %788 = load ptr, ptr %9, align 8, !tbaa !5
  %789 = load i32, ptr %15, align 4, !tbaa !9
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds %struct.complex, ptr %788, i64 %790
  %792 = getelementptr inbounds %struct.complex, ptr %791, i32 0, i32 0
  %793 = load float, ptr %792, align 4, !tbaa !13
  %794 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %793, ptr %794, align 4, !tbaa !13
  %795 = load ptr, ptr %9, align 8, !tbaa !5
  %796 = load i32, ptr %15, align 4, !tbaa !9
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds %struct.complex, ptr %795, i64 %797
  %799 = getelementptr inbounds %struct.complex, ptr %798, i32 0, i32 1
  %800 = load float, ptr %799, align 4, !tbaa !15
  %801 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %800, ptr %801, align 4, !tbaa !15
  %802 = load i32, ptr %32, align 4, !tbaa !9
  %803 = sub nsw i32 %802, 1
  %804 = load i32, ptr %32, align 4, !tbaa !9
  %805 = load i32, ptr %13, align 4, !tbaa !9
  %806 = mul nsw i32 %804, %805
  %807 = add nsw i32 %803, %806
  store i32 %807, ptr %15, align 4, !tbaa !9
  %808 = load i32, ptr %47, align 4, !tbaa !9
  %809 = load i32, ptr %32, align 4, !tbaa !9
  %810 = load i32, ptr %13, align 4, !tbaa !9
  %811 = mul nsw i32 %809, %810
  %812 = add nsw i32 %808, %811
  store i32 %812, ptr %16, align 4, !tbaa !9
  %813 = load ptr, ptr %9, align 8, !tbaa !5
  %814 = load i32, ptr %16, align 4, !tbaa !9
  %815 = sext i32 %814 to i64
  %816 = getelementptr inbounds %struct.complex, ptr %813, i64 %815
  %817 = getelementptr inbounds %struct.complex, ptr %816, i32 0, i32 0
  %818 = load float, ptr %817, align 4, !tbaa !13
  %819 = load ptr, ptr %9, align 8, !tbaa !5
  %820 = load i32, ptr %15, align 4, !tbaa !9
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds %struct.complex, ptr %819, i64 %821
  %823 = getelementptr inbounds %struct.complex, ptr %822, i32 0, i32 0
  store float %818, ptr %823, align 4, !tbaa !13
  %824 = load ptr, ptr %9, align 8, !tbaa !5
  %825 = load i32, ptr %16, align 4, !tbaa !9
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds %struct.complex, ptr %824, i64 %826
  %828 = getelementptr inbounds %struct.complex, ptr %827, i32 0, i32 1
  %829 = load float, ptr %828, align 4, !tbaa !15
  %830 = load ptr, ptr %9, align 8, !tbaa !5
  %831 = load i32, ptr %15, align 4, !tbaa !9
  %832 = sext i32 %831 to i64
  %833 = getelementptr inbounds %struct.complex, ptr %830, i64 %832
  %834 = getelementptr inbounds %struct.complex, ptr %833, i32 0, i32 1
  store float %829, ptr %834, align 4, !tbaa !15
  %835 = load i32, ptr %47, align 4, !tbaa !9
  %836 = load i32, ptr %32, align 4, !tbaa !9
  %837 = load i32, ptr %13, align 4, !tbaa !9
  %838 = mul nsw i32 %836, %837
  %839 = add nsw i32 %835, %838
  store i32 %839, ptr %15, align 4, !tbaa !9
  %840 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %841 = load float, ptr %840, align 4, !tbaa !13
  %842 = load ptr, ptr %9, align 8, !tbaa !5
  %843 = load i32, ptr %15, align 4, !tbaa !9
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds %struct.complex, ptr %842, i64 %844
  %846 = getelementptr inbounds %struct.complex, ptr %845, i32 0, i32 0
  store float %841, ptr %846, align 4, !tbaa !13
  %847 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %848 = load float, ptr %847, align 4, !tbaa !15
  %849 = load ptr, ptr %9, align 8, !tbaa !5
  %850 = load i32, ptr %15, align 4, !tbaa !9
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds %struct.complex, ptr %849, i64 %851
  %853 = getelementptr inbounds %struct.complex, ptr %852, i32 0, i32 1
  store float %848, ptr %853, align 4, !tbaa !15
  br label %854

854:                                              ; preds = %781, %708
  br label %855

855:                                              ; preds = %854, %648
  %856 = load i32, ptr %38, align 4, !tbaa !9
  %857 = icmp eq i32 %856, 1
  br i1 %857, label %858, label %1073

858:                                              ; preds = %855
  %859 = load i32, ptr %32, align 4, !tbaa !9
  %860 = icmp sgt i32 %859, 1
  br i1 %860, label %861, label %1072

861:                                              ; preds = %858
  %862 = load i32, ptr %32, align 4, !tbaa !9
  %863 = load i32, ptr %32, align 4, !tbaa !9
  %864 = load i32, ptr %13, align 4, !tbaa !9
  %865 = mul nsw i32 %863, %864
  %866 = add nsw i32 %862, %865
  store i32 %866, ptr %15, align 4, !tbaa !9
  %867 = load ptr, ptr %9, align 8, !tbaa !5
  %868 = load i32, ptr %15, align 4, !tbaa !9
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds %struct.complex, ptr %867, i64 %869
  %871 = getelementptr inbounds %struct.complex, ptr %870, i32 0, i32 0
  %872 = load float, ptr %871, align 4, !tbaa !13
  store float %872, ptr %19, align 4, !tbaa !11
  %873 = load float, ptr %19, align 4, !tbaa !11
  %874 = fcmp oge float %873, 0.000000e+00
  br i1 %874, label %875, label %877

875:                                              ; preds = %861
  %876 = load float, ptr %19, align 4, !tbaa !11
  br label %880

877:                                              ; preds = %861
  %878 = load float, ptr %19, align 4, !tbaa !11
  %879 = fneg float %878
  br label %880

880:                                              ; preds = %877, %875
  %881 = phi float [ %876, %875 ], [ %879, %877 ]
  %882 = load ptr, ptr %9, align 8, !tbaa !5
  %883 = load i32, ptr %32, align 4, !tbaa !9
  %884 = load i32, ptr %32, align 4, !tbaa !9
  %885 = load i32, ptr %13, align 4, !tbaa !9
  %886 = mul nsw i32 %884, %885
  %887 = add nsw i32 %883, %886
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds %struct.complex, ptr %882, i64 %888
  %890 = call <2 x float> @Cf(ptr noundef %889)
  store <2 x float> %890, ptr %60, align 4
  %891 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 0
  %892 = load float, ptr %891, align 4
  %893 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 1
  %894 = load float, ptr %893, align 4
  store float %894, ptr %20, align 4, !tbaa !11
  %895 = load float, ptr %20, align 4, !tbaa !11
  %896 = fcmp oge float %895, 0.000000e+00
  br i1 %896, label %897, label %899

897:                                              ; preds = %880
  %898 = load float, ptr %20, align 4, !tbaa !11
  br label %902

899:                                              ; preds = %880
  %900 = load float, ptr %20, align 4, !tbaa !11
  %901 = fneg float %900
  br label %902

902:                                              ; preds = %899, %897
  %903 = phi float [ %898, %897 ], [ %901, %899 ]
  %904 = fadd float %881, %903
  %905 = load float, ptr %36, align 4, !tbaa !11
  %906 = fcmp oge float %904, %905
  br i1 %906, label %907, label %972

907:                                              ; preds = %902
  %908 = call <2 x float> @Cf(ptr noundef @c_b1)
  store <2 x float> %908, ptr %61, align 4
  %909 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 0
  %910 = load float, ptr %909, align 4
  %911 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 1
  %912 = load float, ptr %911, align 4
  %913 = load ptr, ptr %9, align 8, !tbaa !5
  %914 = load i32, ptr %32, align 4, !tbaa !9
  %915 = load i32, ptr %32, align 4, !tbaa !9
  %916 = load i32, ptr %13, align 4, !tbaa !9
  %917 = mul nsw i32 %915, %916
  %918 = add nsw i32 %914, %917
  %919 = sext i32 %918 to i64
  %920 = getelementptr inbounds %struct.complex, ptr %913, i64 %919
  %921 = call <2 x float> @Cf(ptr noundef %920)
  store <2 x float> %921, ptr %62, align 4
  %922 = getelementptr inbounds { float, float }, ptr %62, i32 0, i32 0
  %923 = load float, ptr %922, align 4
  %924 = getelementptr inbounds { float, float }, ptr %62, i32 0, i32 1
  %925 = load float, ptr %924, align 4
  %926 = call <2 x float> @__divsc3(float noundef %910, float noundef %912, float noundef %923, float noundef %925) #7
  store <2 x float> %926, ptr %63, align 4
  %927 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 0
  %928 = load float, ptr %927, align 4
  %929 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 1
  %930 = load float, ptr %929, align 4
  %931 = call ptr @_pCf(ptr noundef %21)
  %932 = getelementptr inbounds { float, float }, ptr %931, i32 0, i32 0
  %933 = getelementptr inbounds { float, float }, ptr %931, i32 0, i32 1
  store float %928, ptr %932, align 4
  store float %930, ptr %933, align 4
  %934 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %935 = load float, ptr %934, align 4, !tbaa !13
  %936 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %935, ptr %936, align 4, !tbaa !13
  %937 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %938 = load float, ptr %937, align 4, !tbaa !15
  %939 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %938, ptr %939, align 4, !tbaa !15
  %940 = load i32, ptr %32, align 4, !tbaa !9
  %941 = sub nsw i32 %940, 1
  store i32 %941, ptr %15, align 4, !tbaa !9
  %942 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %943 = load float, ptr %942, align 4, !tbaa !13
  %944 = fneg float %943
  %945 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  store float %944, ptr %945, align 4, !tbaa !13
  %946 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %947 = load float, ptr %946, align 4, !tbaa !15
  %948 = fneg float %947
  %949 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  store float %948, ptr %949, align 4, !tbaa !15
  %950 = load ptr, ptr %7, align 8, !tbaa !5
  %951 = load ptr, ptr %9, align 8, !tbaa !5
  %952 = load i32, ptr %32, align 4, !tbaa !9
  %953 = load i32, ptr %13, align 4, !tbaa !9
  %954 = mul nsw i32 %952, %953
  %955 = add nsw i32 %954, 1
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds %struct.complex, ptr %951, i64 %956
  %958 = load ptr, ptr %9, align 8, !tbaa !5
  %959 = load i32, ptr %14, align 4, !tbaa !9
  %960 = sext i32 %959 to i64
  %961 = getelementptr inbounds %struct.complex, ptr %958, i64 %960
  %962 = load ptr, ptr %10, align 8, !tbaa !5
  call void @csyr_(ptr noundef %950, ptr noundef %15, ptr noundef %21, ptr noundef %957, ptr noundef @c__1, ptr noundef %961, ptr noundef %962)
  %963 = load i32, ptr %32, align 4, !tbaa !9
  %964 = sub nsw i32 %963, 1
  store i32 %964, ptr %15, align 4, !tbaa !9
  %965 = load ptr, ptr %9, align 8, !tbaa !5
  %966 = load i32, ptr %32, align 4, !tbaa !9
  %967 = load i32, ptr %13, align 4, !tbaa !9
  %968 = mul nsw i32 %966, %967
  %969 = add nsw i32 %968, 1
  %970 = sext i32 %969 to i64
  %971 = getelementptr inbounds %struct.complex, ptr %965, i64 %970
  call void @cscal_(ptr noundef %15, ptr noundef %41, ptr noundef %971, ptr noundef @c__1)
  br label %1071

972:                                              ; preds = %902
  %973 = load i32, ptr %32, align 4, !tbaa !9
  %974 = load i32, ptr %32, align 4, !tbaa !9
  %975 = load i32, ptr %13, align 4, !tbaa !9
  %976 = mul nsw i32 %974, %975
  %977 = add nsw i32 %973, %976
  store i32 %977, ptr %15, align 4, !tbaa !9
  %978 = load ptr, ptr %9, align 8, !tbaa !5
  %979 = load i32, ptr %15, align 4, !tbaa !9
  %980 = sext i32 %979 to i64
  %981 = getelementptr inbounds %struct.complex, ptr %978, i64 %980
  %982 = getelementptr inbounds %struct.complex, ptr %981, i32 0, i32 0
  %983 = load float, ptr %982, align 4, !tbaa !13
  %984 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %983, ptr %984, align 4, !tbaa !13
  %985 = load ptr, ptr %9, align 8, !tbaa !5
  %986 = load i32, ptr %15, align 4, !tbaa !9
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds %struct.complex, ptr %985, i64 %987
  %989 = getelementptr inbounds %struct.complex, ptr %988, i32 0, i32 1
  %990 = load float, ptr %989, align 4, !tbaa !15
  %991 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %990, ptr %991, align 4, !tbaa !15
  %992 = load i32, ptr %32, align 4, !tbaa !9
  %993 = sub nsw i32 %992, 1
  store i32 %993, ptr %15, align 4, !tbaa !9
  store i32 1, ptr %45, align 4, !tbaa !9
  br label %994

994:                                              ; preds = %1044, %972
  %995 = load i32, ptr %45, align 4, !tbaa !9
  %996 = load i32, ptr %15, align 4, !tbaa !9
  %997 = icmp sle i32 %995, %996
  br i1 %997, label %998, label %1047

998:                                              ; preds = %994
  %999 = load i32, ptr %45, align 4, !tbaa !9
  %1000 = load i32, ptr %32, align 4, !tbaa !9
  %1001 = load i32, ptr %13, align 4, !tbaa !9
  %1002 = mul nsw i32 %1000, %1001
  %1003 = add nsw i32 %999, %1002
  store i32 %1003, ptr %16, align 4, !tbaa !9
  %1004 = load ptr, ptr %9, align 8, !tbaa !5
  %1005 = load i32, ptr %45, align 4, !tbaa !9
  %1006 = load i32, ptr %32, align 4, !tbaa !9
  %1007 = load i32, ptr %13, align 4, !tbaa !9
  %1008 = mul nsw i32 %1006, %1007
  %1009 = add nsw i32 %1005, %1008
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds %struct.complex, ptr %1004, i64 %1010
  %1012 = call <2 x float> @Cf(ptr noundef %1011)
  store <2 x float> %1012, ptr %64, align 4
  %1013 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 0
  %1014 = load float, ptr %1013, align 4
  %1015 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 1
  %1016 = load float, ptr %1015, align 4
  %1017 = call <2 x float> @Cf(ptr noundef %41)
  store <2 x float> %1017, ptr %65, align 4
  %1018 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 0
  %1019 = load float, ptr %1018, align 4
  %1020 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 1
  %1021 = load float, ptr %1020, align 4
  %1022 = call <2 x float> @__divsc3(float noundef %1014, float noundef %1016, float noundef %1019, float noundef %1021) #7
  store <2 x float> %1022, ptr %66, align 4
  %1023 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 0
  %1024 = load float, ptr %1023, align 4
  %1025 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 1
  %1026 = load float, ptr %1025, align 4
  %1027 = call ptr @_pCf(ptr noundef %21)
  %1028 = getelementptr inbounds { float, float }, ptr %1027, i32 0, i32 0
  %1029 = getelementptr inbounds { float, float }, ptr %1027, i32 0, i32 1
  store float %1024, ptr %1028, align 4
  store float %1026, ptr %1029, align 4
  %1030 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %1031 = load float, ptr %1030, align 4, !tbaa !13
  %1032 = load ptr, ptr %9, align 8, !tbaa !5
  %1033 = load i32, ptr %16, align 4, !tbaa !9
  %1034 = sext i32 %1033 to i64
  %1035 = getelementptr inbounds %struct.complex, ptr %1032, i64 %1034
  %1036 = getelementptr inbounds %struct.complex, ptr %1035, i32 0, i32 0
  store float %1031, ptr %1036, align 4, !tbaa !13
  %1037 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %1038 = load float, ptr %1037, align 4, !tbaa !15
  %1039 = load ptr, ptr %9, align 8, !tbaa !5
  %1040 = load i32, ptr %16, align 4, !tbaa !9
  %1041 = sext i32 %1040 to i64
  %1042 = getelementptr inbounds %struct.complex, ptr %1039, i64 %1041
  %1043 = getelementptr inbounds %struct.complex, ptr %1042, i32 0, i32 1
  store float %1038, ptr %1043, align 4, !tbaa !15
  br label %1044

1044:                                             ; preds = %998
  %1045 = load i32, ptr %45, align 4, !tbaa !9
  %1046 = add nsw i32 %1045, 1
  store i32 %1046, ptr %45, align 4, !tbaa !9
  br label %994, !llvm.loop !16

1047:                                             ; preds = %994
  %1048 = load i32, ptr %32, align 4, !tbaa !9
  %1049 = sub nsw i32 %1048, 1
  store i32 %1049, ptr %15, align 4, !tbaa !9
  %1050 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1051 = load float, ptr %1050, align 4, !tbaa !13
  %1052 = fneg float %1051
  %1053 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  store float %1052, ptr %1053, align 4, !tbaa !13
  %1054 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1055 = load float, ptr %1054, align 4, !tbaa !15
  %1056 = fneg float %1055
  %1057 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  store float %1056, ptr %1057, align 4, !tbaa !15
  %1058 = load ptr, ptr %7, align 8, !tbaa !5
  %1059 = load ptr, ptr %9, align 8, !tbaa !5
  %1060 = load i32, ptr %32, align 4, !tbaa !9
  %1061 = load i32, ptr %13, align 4, !tbaa !9
  %1062 = mul nsw i32 %1060, %1061
  %1063 = add nsw i32 %1062, 1
  %1064 = sext i32 %1063 to i64
  %1065 = getelementptr inbounds %struct.complex, ptr %1059, i64 %1064
  %1066 = load ptr, ptr %9, align 8, !tbaa !5
  %1067 = load i32, ptr %14, align 4, !tbaa !9
  %1068 = sext i32 %1067 to i64
  %1069 = getelementptr inbounds %struct.complex, ptr %1066, i64 %1068
  %1070 = load ptr, ptr %10, align 8, !tbaa !5
  call void @csyr_(ptr noundef %1058, ptr noundef %15, ptr noundef %21, ptr noundef %1065, ptr noundef @c__1, ptr noundef %1069, ptr noundef %1070)
  br label %1071

1071:                                             ; preds = %1047, %907
  br label %1072

1072:                                             ; preds = %1071, %858
  br label %1666

1073:                                             ; preds = %855
  %1074 = load i32, ptr %32, align 4, !tbaa !9
  %1075 = icmp sgt i32 %1074, 2
  br i1 %1075, label %1076, label %1665

1076:                                             ; preds = %1073
  %1077 = load i32, ptr %32, align 4, !tbaa !9
  %1078 = sub nsw i32 %1077, 1
  %1079 = load i32, ptr %32, align 4, !tbaa !9
  %1080 = load i32, ptr %13, align 4, !tbaa !9
  %1081 = mul nsw i32 %1079, %1080
  %1082 = add nsw i32 %1078, %1081
  store i32 %1082, ptr %15, align 4, !tbaa !9
  %1083 = load ptr, ptr %9, align 8, !tbaa !5
  %1084 = load i32, ptr %15, align 4, !tbaa !9
  %1085 = sext i32 %1084 to i64
  %1086 = getelementptr inbounds %struct.complex, ptr %1083, i64 %1085
  %1087 = getelementptr inbounds %struct.complex, ptr %1086, i32 0, i32 0
  %1088 = load float, ptr %1087, align 4, !tbaa !13
  %1089 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1088, ptr %1089, align 4, !tbaa !13
  %1090 = load ptr, ptr %9, align 8, !tbaa !5
  %1091 = load i32, ptr %15, align 4, !tbaa !9
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds %struct.complex, ptr %1090, i64 %1092
  %1094 = getelementptr inbounds %struct.complex, ptr %1093, i32 0, i32 1
  %1095 = load float, ptr %1094, align 4, !tbaa !15
  %1096 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1095, ptr %1096, align 4, !tbaa !15
  %1097 = load ptr, ptr %9, align 8, !tbaa !5
  %1098 = load i32, ptr %32, align 4, !tbaa !9
  %1099 = sub nsw i32 %1098, 1
  %1100 = load i32, ptr %32, align 4, !tbaa !9
  %1101 = sub nsw i32 %1100, 1
  %1102 = load i32, ptr %13, align 4, !tbaa !9
  %1103 = mul nsw i32 %1101, %1102
  %1104 = add nsw i32 %1099, %1103
  %1105 = sext i32 %1104 to i64
  %1106 = getelementptr inbounds %struct.complex, ptr %1097, i64 %1105
  %1107 = call <2 x float> @Cf(ptr noundef %1106)
  store <2 x float> %1107, ptr %67, align 4
  %1108 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 0
  %1109 = load float, ptr %1108, align 4
  %1110 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 1
  %1111 = load float, ptr %1110, align 4
  %1112 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %1112, ptr %68, align 4
  %1113 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 0
  %1114 = load float, ptr %1113, align 4
  %1115 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 1
  %1116 = load float, ptr %1115, align 4
  %1117 = call <2 x float> @__divsc3(float noundef %1109, float noundef %1111, float noundef %1114, float noundef %1116) #7
  store <2 x float> %1117, ptr %69, align 4
  %1118 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 0
  %1119 = load float, ptr %1118, align 4
  %1120 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 1
  %1121 = load float, ptr %1120, align 4
  %1122 = call ptr @_pCf(ptr noundef %21)
  %1123 = getelementptr inbounds { float, float }, ptr %1122, i32 0, i32 0
  %1124 = getelementptr inbounds { float, float }, ptr %1122, i32 0, i32 1
  store float %1119, ptr %1123, align 4
  store float %1121, ptr %1124, align 4
  %1125 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %1126 = load float, ptr %1125, align 4, !tbaa !13
  %1127 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %1126, ptr %1127, align 4, !tbaa !13
  %1128 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %1129 = load float, ptr %1128, align 4, !tbaa !15
  %1130 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %1129, ptr %1130, align 4, !tbaa !15
  %1131 = load ptr, ptr %9, align 8, !tbaa !5
  %1132 = load i32, ptr %32, align 4, !tbaa !9
  %1133 = load i32, ptr %32, align 4, !tbaa !9
  %1134 = load i32, ptr %13, align 4, !tbaa !9
  %1135 = mul nsw i32 %1133, %1134
  %1136 = add nsw i32 %1132, %1135
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds %struct.complex, ptr %1131, i64 %1137
  %1139 = call <2 x float> @Cf(ptr noundef %1138)
  store <2 x float> %1139, ptr %70, align 4
  %1140 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 0
  %1141 = load float, ptr %1140, align 4
  %1142 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 1
  %1143 = load float, ptr %1142, align 4
  %1144 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %1144, ptr %71, align 4
  %1145 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 0
  %1146 = load float, ptr %1145, align 4
  %1147 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 1
  %1148 = load float, ptr %1147, align 4
  %1149 = call <2 x float> @__divsc3(float noundef %1141, float noundef %1143, float noundef %1146, float noundef %1148) #7
  store <2 x float> %1149, ptr %72, align 4
  %1150 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 0
  %1151 = load float, ptr %1150, align 4
  %1152 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 1
  %1153 = load float, ptr %1152, align 4
  %1154 = call ptr @_pCf(ptr noundef %21)
  %1155 = getelementptr inbounds { float, float }, ptr %1154, i32 0, i32 0
  %1156 = getelementptr inbounds { float, float }, ptr %1154, i32 0, i32 1
  store float %1151, ptr %1155, align 4
  store float %1153, ptr %1156, align 4
  %1157 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %1158 = load float, ptr %1157, align 4, !tbaa !13
  %1159 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %1158, ptr %1159, align 4, !tbaa !13
  %1160 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %1161 = load float, ptr %1160, align 4, !tbaa !15
  %1162 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %1161, ptr %1162, align 4, !tbaa !15
  %1163 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1164 = load float, ptr %1163, align 4, !tbaa !13
  %1165 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1166 = load float, ptr %1165, align 4, !tbaa !13
  %1167 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1168 = load float, ptr %1167, align 4, !tbaa !15
  %1169 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1170 = load float, ptr %1169, align 4, !tbaa !15
  %1171 = fmul float %1168, %1170
  %1172 = fneg float %1171
  %1173 = call float @llvm.fmuladd.f32(float %1164, float %1166, float %1172)
  %1174 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1173, ptr %1174, align 4, !tbaa !13
  %1175 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1176 = load float, ptr %1175, align 4, !tbaa !13
  %1177 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1178 = load float, ptr %1177, align 4, !tbaa !15
  %1179 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1180 = load float, ptr %1179, align 4, !tbaa !15
  %1181 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1182 = load float, ptr %1181, align 4, !tbaa !13
  %1183 = fmul float %1180, %1182
  %1184 = call float @llvm.fmuladd.f32(float %1176, float %1178, float %1183)
  %1185 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1184, ptr %1185, align 4, !tbaa !15
  %1186 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1187 = load float, ptr %1186, align 4, !tbaa !13
  %1188 = fsub float %1187, 1.000000e+00
  %1189 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  store float %1188, ptr %1189, align 4, !tbaa !13
  %1190 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1191 = load float, ptr %1190, align 4, !tbaa !15
  %1192 = fadd float %1191, 0.000000e+00
  %1193 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  store float %1192, ptr %1193, align 4, !tbaa !15
  %1194 = call <2 x float> @Cf(ptr noundef @c_b1)
  store <2 x float> %1194, ptr %73, align 4
  %1195 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 0
  %1196 = load float, ptr %1195, align 4
  %1197 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 1
  %1198 = load float, ptr %1197, align 4
  %1199 = call <2 x float> @Cf(ptr noundef %22)
  store <2 x float> %1199, ptr %74, align 4
  %1200 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 0
  %1201 = load float, ptr %1200, align 4
  %1202 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 1
  %1203 = load float, ptr %1202, align 4
  %1204 = call <2 x float> @__divsc3(float noundef %1196, float noundef %1198, float noundef %1201, float noundef %1203) #7
  store <2 x float> %1204, ptr %75, align 4
  %1205 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 0
  %1206 = load float, ptr %1205, align 4
  %1207 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 1
  %1208 = load float, ptr %1207, align 4
  %1209 = call ptr @_pCf(ptr noundef %21)
  %1210 = getelementptr inbounds { float, float }, ptr %1209, i32 0, i32 0
  %1211 = getelementptr inbounds { float, float }, ptr %1209, i32 0, i32 1
  store float %1206, ptr %1210, align 4
  store float %1208, ptr %1211, align 4
  %1212 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %1213 = load float, ptr %1212, align 4, !tbaa !13
  %1214 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1213, ptr %1214, align 4, !tbaa !13
  %1215 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %1216 = load float, ptr %1215, align 4, !tbaa !15
  %1217 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %1216, ptr %1217, align 4, !tbaa !15
  %1218 = load i32, ptr %32, align 4, !tbaa !9
  %1219 = sub nsw i32 %1218, 2
  store i32 %1219, ptr %31, align 4, !tbaa !9
  br label %1220

1220:                                             ; preds = %1661, %1076
  %1221 = load i32, ptr %31, align 4, !tbaa !9
  %1222 = icmp sge i32 %1221, 1
  br i1 %1222, label %1223, label %1664

1223:                                             ; preds = %1220
  %1224 = load i32, ptr %31, align 4, !tbaa !9
  %1225 = load i32, ptr %32, align 4, !tbaa !9
  %1226 = sub nsw i32 %1225, 1
  %1227 = load i32, ptr %13, align 4, !tbaa !9
  %1228 = mul nsw i32 %1226, %1227
  %1229 = add nsw i32 %1224, %1228
  store i32 %1229, ptr %15, align 4, !tbaa !9
  %1230 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1231 = load float, ptr %1230, align 4, !tbaa !13
  %1232 = load ptr, ptr %9, align 8, !tbaa !5
  %1233 = load i32, ptr %15, align 4, !tbaa !9
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds %struct.complex, ptr %1232, i64 %1234
  %1236 = getelementptr inbounds %struct.complex, ptr %1235, i32 0, i32 0
  %1237 = load float, ptr %1236, align 4, !tbaa !13
  %1238 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1239 = load float, ptr %1238, align 4, !tbaa !15
  %1240 = load ptr, ptr %9, align 8, !tbaa !5
  %1241 = load i32, ptr %15, align 4, !tbaa !9
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds %struct.complex, ptr %1240, i64 %1242
  %1244 = getelementptr inbounds %struct.complex, ptr %1243, i32 0, i32 1
  %1245 = load float, ptr %1244, align 4, !tbaa !15
  %1246 = fmul float %1239, %1245
  %1247 = fneg float %1246
  %1248 = call float @llvm.fmuladd.f32(float %1231, float %1237, float %1247)
  %1249 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1248, ptr %1249, align 4, !tbaa !13
  %1250 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1251 = load float, ptr %1250, align 4, !tbaa !13
  %1252 = load ptr, ptr %9, align 8, !tbaa !5
  %1253 = load i32, ptr %15, align 4, !tbaa !9
  %1254 = sext i32 %1253 to i64
  %1255 = getelementptr inbounds %struct.complex, ptr %1252, i64 %1254
  %1256 = getelementptr inbounds %struct.complex, ptr %1255, i32 0, i32 1
  %1257 = load float, ptr %1256, align 4, !tbaa !15
  %1258 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1259 = load float, ptr %1258, align 4, !tbaa !15
  %1260 = load ptr, ptr %9, align 8, !tbaa !5
  %1261 = load i32, ptr %15, align 4, !tbaa !9
  %1262 = sext i32 %1261 to i64
  %1263 = getelementptr inbounds %struct.complex, ptr %1260, i64 %1262
  %1264 = getelementptr inbounds %struct.complex, ptr %1263, i32 0, i32 0
  %1265 = load float, ptr %1264, align 4, !tbaa !13
  %1266 = fmul float %1259, %1265
  %1267 = call float @llvm.fmuladd.f32(float %1251, float %1257, float %1266)
  %1268 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1267, ptr %1268, align 4, !tbaa !15
  %1269 = load i32, ptr %31, align 4, !tbaa !9
  %1270 = load i32, ptr %32, align 4, !tbaa !9
  %1271 = load i32, ptr %13, align 4, !tbaa !9
  %1272 = mul nsw i32 %1270, %1271
  %1273 = add nsw i32 %1269, %1272
  store i32 %1273, ptr %16, align 4, !tbaa !9
  %1274 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1275 = load float, ptr %1274, align 4, !tbaa !13
  %1276 = load ptr, ptr %9, align 8, !tbaa !5
  %1277 = load i32, ptr %16, align 4, !tbaa !9
  %1278 = sext i32 %1277 to i64
  %1279 = getelementptr inbounds %struct.complex, ptr %1276, i64 %1278
  %1280 = getelementptr inbounds %struct.complex, ptr %1279, i32 0, i32 0
  %1281 = load float, ptr %1280, align 4, !tbaa !13
  %1282 = fsub float %1275, %1281
  %1283 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  store float %1282, ptr %1283, align 4, !tbaa !13
  %1284 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1285 = load float, ptr %1284, align 4, !tbaa !15
  %1286 = load ptr, ptr %9, align 8, !tbaa !5
  %1287 = load i32, ptr %16, align 4, !tbaa !9
  %1288 = sext i32 %1287 to i64
  %1289 = getelementptr inbounds %struct.complex, ptr %1286, i64 %1288
  %1290 = getelementptr inbounds %struct.complex, ptr %1289, i32 0, i32 1
  %1291 = load float, ptr %1290, align 4, !tbaa !15
  %1292 = fsub float %1285, %1291
  %1293 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  store float %1292, ptr %1293, align 4, !tbaa !15
  %1294 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1295 = load float, ptr %1294, align 4, !tbaa !13
  %1296 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  %1297 = load float, ptr %1296, align 4, !tbaa !13
  %1298 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1299 = load float, ptr %1298, align 4, !tbaa !15
  %1300 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  %1301 = load float, ptr %1300, align 4, !tbaa !15
  %1302 = fmul float %1299, %1301
  %1303 = fneg float %1302
  %1304 = call float @llvm.fmuladd.f32(float %1295, float %1297, float %1303)
  %1305 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  store float %1304, ptr %1305, align 4, !tbaa !13
  %1306 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1307 = load float, ptr %1306, align 4, !tbaa !13
  %1308 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  %1309 = load float, ptr %1308, align 4, !tbaa !15
  %1310 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1311 = load float, ptr %1310, align 4, !tbaa !15
  %1312 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  %1313 = load float, ptr %1312, align 4, !tbaa !13
  %1314 = fmul float %1311, %1313
  %1315 = call float @llvm.fmuladd.f32(float %1307, float %1309, float %1314)
  %1316 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  store float %1315, ptr %1316, align 4, !tbaa !15
  %1317 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %1318 = load float, ptr %1317, align 4, !tbaa !13
  %1319 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1318, ptr %1319, align 4, !tbaa !13
  %1320 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %1321 = load float, ptr %1320, align 4, !tbaa !15
  %1322 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1321, ptr %1322, align 4, !tbaa !15
  %1323 = load i32, ptr %31, align 4, !tbaa !9
  %1324 = load i32, ptr %32, align 4, !tbaa !9
  %1325 = load i32, ptr %13, align 4, !tbaa !9
  %1326 = mul nsw i32 %1324, %1325
  %1327 = add nsw i32 %1323, %1326
  store i32 %1327, ptr %15, align 4, !tbaa !9
  %1328 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1329 = load float, ptr %1328, align 4, !tbaa !13
  %1330 = load ptr, ptr %9, align 8, !tbaa !5
  %1331 = load i32, ptr %15, align 4, !tbaa !9
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds %struct.complex, ptr %1330, i64 %1332
  %1334 = getelementptr inbounds %struct.complex, ptr %1333, i32 0, i32 0
  %1335 = load float, ptr %1334, align 4, !tbaa !13
  %1336 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1337 = load float, ptr %1336, align 4, !tbaa !15
  %1338 = load ptr, ptr %9, align 8, !tbaa !5
  %1339 = load i32, ptr %15, align 4, !tbaa !9
  %1340 = sext i32 %1339 to i64
  %1341 = getelementptr inbounds %struct.complex, ptr %1338, i64 %1340
  %1342 = getelementptr inbounds %struct.complex, ptr %1341, i32 0, i32 1
  %1343 = load float, ptr %1342, align 4, !tbaa !15
  %1344 = fmul float %1337, %1343
  %1345 = fneg float %1344
  %1346 = call float @llvm.fmuladd.f32(float %1329, float %1335, float %1345)
  %1347 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1346, ptr %1347, align 4, !tbaa !13
  %1348 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1349 = load float, ptr %1348, align 4, !tbaa !13
  %1350 = load ptr, ptr %9, align 8, !tbaa !5
  %1351 = load i32, ptr %15, align 4, !tbaa !9
  %1352 = sext i32 %1351 to i64
  %1353 = getelementptr inbounds %struct.complex, ptr %1350, i64 %1352
  %1354 = getelementptr inbounds %struct.complex, ptr %1353, i32 0, i32 1
  %1355 = load float, ptr %1354, align 4, !tbaa !15
  %1356 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1357 = load float, ptr %1356, align 4, !tbaa !15
  %1358 = load ptr, ptr %9, align 8, !tbaa !5
  %1359 = load i32, ptr %15, align 4, !tbaa !9
  %1360 = sext i32 %1359 to i64
  %1361 = getelementptr inbounds %struct.complex, ptr %1358, i64 %1360
  %1362 = getelementptr inbounds %struct.complex, ptr %1361, i32 0, i32 0
  %1363 = load float, ptr %1362, align 4, !tbaa !13
  %1364 = fmul float %1357, %1363
  %1365 = call float @llvm.fmuladd.f32(float %1349, float %1355, float %1364)
  %1366 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1365, ptr %1366, align 4, !tbaa !15
  %1367 = load i32, ptr %31, align 4, !tbaa !9
  %1368 = load i32, ptr %32, align 4, !tbaa !9
  %1369 = sub nsw i32 %1368, 1
  %1370 = load i32, ptr %13, align 4, !tbaa !9
  %1371 = mul nsw i32 %1369, %1370
  %1372 = add nsw i32 %1367, %1371
  store i32 %1372, ptr %16, align 4, !tbaa !9
  %1373 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1374 = load float, ptr %1373, align 4, !tbaa !13
  %1375 = load ptr, ptr %9, align 8, !tbaa !5
  %1376 = load i32, ptr %16, align 4, !tbaa !9
  %1377 = sext i32 %1376 to i64
  %1378 = getelementptr inbounds %struct.complex, ptr %1375, i64 %1377
  %1379 = getelementptr inbounds %struct.complex, ptr %1378, i32 0, i32 0
  %1380 = load float, ptr %1379, align 4, !tbaa !13
  %1381 = fsub float %1374, %1380
  %1382 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  store float %1381, ptr %1382, align 4, !tbaa !13
  %1383 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1384 = load float, ptr %1383, align 4, !tbaa !15
  %1385 = load ptr, ptr %9, align 8, !tbaa !5
  %1386 = load i32, ptr %16, align 4, !tbaa !9
  %1387 = sext i32 %1386 to i64
  %1388 = getelementptr inbounds %struct.complex, ptr %1385, i64 %1387
  %1389 = getelementptr inbounds %struct.complex, ptr %1388, i32 0, i32 1
  %1390 = load float, ptr %1389, align 4, !tbaa !15
  %1391 = fsub float %1384, %1390
  %1392 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  store float %1391, ptr %1392, align 4, !tbaa !15
  %1393 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1394 = load float, ptr %1393, align 4, !tbaa !13
  %1395 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  %1396 = load float, ptr %1395, align 4, !tbaa !13
  %1397 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1398 = load float, ptr %1397, align 4, !tbaa !15
  %1399 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  %1400 = load float, ptr %1399, align 4, !tbaa !15
  %1401 = fmul float %1398, %1400
  %1402 = fneg float %1401
  %1403 = call float @llvm.fmuladd.f32(float %1394, float %1396, float %1402)
  %1404 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  store float %1403, ptr %1404, align 4, !tbaa !13
  %1405 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %1406 = load float, ptr %1405, align 4, !tbaa !13
  %1407 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  %1408 = load float, ptr %1407, align 4, !tbaa !15
  %1409 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %1410 = load float, ptr %1409, align 4, !tbaa !15
  %1411 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  %1412 = load float, ptr %1411, align 4, !tbaa !13
  %1413 = fmul float %1410, %1412
  %1414 = call float @llvm.fmuladd.f32(float %1406, float %1408, float %1413)
  %1415 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  store float %1414, ptr %1415, align 4, !tbaa !15
  %1416 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %1417 = load float, ptr %1416, align 4, !tbaa !13
  %1418 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1417, ptr %1418, align 4, !tbaa !13
  %1419 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %1420 = load float, ptr %1419, align 4, !tbaa !15
  %1421 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1420, ptr %1421, align 4, !tbaa !15
  %1422 = load i32, ptr %31, align 4, !tbaa !9
  store i32 %1422, ptr %30, align 4, !tbaa !9
  br label %1423

1423:                                             ; preds = %1582, %1223
  %1424 = load i32, ptr %30, align 4, !tbaa !9
  %1425 = icmp sge i32 %1424, 1
  br i1 %1425, label %1426, label %1585

1426:                                             ; preds = %1423
  %1427 = load i32, ptr %30, align 4, !tbaa !9
  %1428 = load i32, ptr %31, align 4, !tbaa !9
  %1429 = load i32, ptr %13, align 4, !tbaa !9
  %1430 = mul nsw i32 %1428, %1429
  %1431 = add nsw i32 %1427, %1430
  store i32 %1431, ptr %15, align 4, !tbaa !9
  %1432 = load i32, ptr %30, align 4, !tbaa !9
  %1433 = load i32, ptr %31, align 4, !tbaa !9
  %1434 = load i32, ptr %13, align 4, !tbaa !9
  %1435 = mul nsw i32 %1433, %1434
  %1436 = add nsw i32 %1432, %1435
  store i32 %1436, ptr %16, align 4, !tbaa !9
  %1437 = load ptr, ptr %9, align 8, !tbaa !5
  %1438 = load i32, ptr %30, align 4, !tbaa !9
  %1439 = load i32, ptr %32, align 4, !tbaa !9
  %1440 = load i32, ptr %13, align 4, !tbaa !9
  %1441 = mul nsw i32 %1439, %1440
  %1442 = add nsw i32 %1438, %1441
  %1443 = sext i32 %1442 to i64
  %1444 = getelementptr inbounds %struct.complex, ptr %1437, i64 %1443
  %1445 = call <2 x float> @Cf(ptr noundef %1444)
  store <2 x float> %1445, ptr %76, align 4
  %1446 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 0
  %1447 = load float, ptr %1446, align 4
  %1448 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 1
  %1449 = load float, ptr %1448, align 4
  %1450 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %1450, ptr %77, align 4
  %1451 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 0
  %1452 = load float, ptr %1451, align 4
  %1453 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 1
  %1454 = load float, ptr %1453, align 4
  %1455 = call <2 x float> @__divsc3(float noundef %1447, float noundef %1449, float noundef %1452, float noundef %1454) #7
  store <2 x float> %1455, ptr %78, align 4
  %1456 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 0
  %1457 = load float, ptr %1456, align 4
  %1458 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 1
  %1459 = load float, ptr %1458, align 4
  %1460 = call ptr @_pCf(ptr noundef %24)
  %1461 = getelementptr inbounds { float, float }, ptr %1460, i32 0, i32 0
  %1462 = getelementptr inbounds { float, float }, ptr %1460, i32 0, i32 1
  store float %1457, ptr %1461, align 4
  store float %1459, ptr %1462, align 4
  %1463 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  %1464 = load float, ptr %1463, align 4, !tbaa !13
  %1465 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1466 = load float, ptr %1465, align 4, !tbaa !13
  %1467 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  %1468 = load float, ptr %1467, align 4, !tbaa !15
  %1469 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1470 = load float, ptr %1469, align 4, !tbaa !15
  %1471 = fmul float %1468, %1470
  %1472 = fneg float %1471
  %1473 = call float @llvm.fmuladd.f32(float %1464, float %1466, float %1472)
  %1474 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1473, ptr %1474, align 4, !tbaa !13
  %1475 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  %1476 = load float, ptr %1475, align 4, !tbaa !13
  %1477 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1478 = load float, ptr %1477, align 4, !tbaa !15
  %1479 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  %1480 = load float, ptr %1479, align 4, !tbaa !15
  %1481 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1482 = load float, ptr %1481, align 4, !tbaa !13
  %1483 = fmul float %1480, %1482
  %1484 = call float @llvm.fmuladd.f32(float %1476, float %1478, float %1483)
  %1485 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1484, ptr %1485, align 4, !tbaa !15
  %1486 = load ptr, ptr %9, align 8, !tbaa !5
  %1487 = load i32, ptr %16, align 4, !tbaa !9
  %1488 = sext i32 %1487 to i64
  %1489 = getelementptr inbounds %struct.complex, ptr %1486, i64 %1488
  %1490 = getelementptr inbounds %struct.complex, ptr %1489, i32 0, i32 0
  %1491 = load float, ptr %1490, align 4, !tbaa !13
  %1492 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1493 = load float, ptr %1492, align 4, !tbaa !13
  %1494 = fsub float %1491, %1493
  %1495 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  store float %1494, ptr %1495, align 4, !tbaa !13
  %1496 = load ptr, ptr %9, align 8, !tbaa !5
  %1497 = load i32, ptr %16, align 4, !tbaa !9
  %1498 = sext i32 %1497 to i64
  %1499 = getelementptr inbounds %struct.complex, ptr %1496, i64 %1498
  %1500 = getelementptr inbounds %struct.complex, ptr %1499, i32 0, i32 1
  %1501 = load float, ptr %1500, align 4, !tbaa !15
  %1502 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1503 = load float, ptr %1502, align 4, !tbaa !15
  %1504 = fsub float %1501, %1503
  %1505 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  store float %1504, ptr %1505, align 4, !tbaa !15
  %1506 = load ptr, ptr %9, align 8, !tbaa !5
  %1507 = load i32, ptr %30, align 4, !tbaa !9
  %1508 = load i32, ptr %32, align 4, !tbaa !9
  %1509 = sub nsw i32 %1508, 1
  %1510 = load i32, ptr %13, align 4, !tbaa !9
  %1511 = mul nsw i32 %1509, %1510
  %1512 = add nsw i32 %1507, %1511
  %1513 = sext i32 %1512 to i64
  %1514 = getelementptr inbounds %struct.complex, ptr %1506, i64 %1513
  %1515 = call <2 x float> @Cf(ptr noundef %1514)
  store <2 x float> %1515, ptr %79, align 4
  %1516 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 0
  %1517 = load float, ptr %1516, align 4
  %1518 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 1
  %1519 = load float, ptr %1518, align 4
  %1520 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %1520, ptr %80, align 4
  %1521 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 0
  %1522 = load float, ptr %1521, align 4
  %1523 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 1
  %1524 = load float, ptr %1523, align 4
  %1525 = call <2 x float> @__divsc3(float noundef %1517, float noundef %1519, float noundef %1522, float noundef %1524) #7
  store <2 x float> %1525, ptr %81, align 4
  %1526 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 0
  %1527 = load float, ptr %1526, align 4
  %1528 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 1
  %1529 = load float, ptr %1528, align 4
  %1530 = call ptr @_pCf(ptr noundef %26)
  %1531 = getelementptr inbounds { float, float }, ptr %1530, i32 0, i32 0
  %1532 = getelementptr inbounds { float, float }, ptr %1530, i32 0, i32 1
  store float %1527, ptr %1531, align 4
  store float %1529, ptr %1532, align 4
  %1533 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1534 = load float, ptr %1533, align 4, !tbaa !13
  %1535 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1536 = load float, ptr %1535, align 4, !tbaa !13
  %1537 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1538 = load float, ptr %1537, align 4, !tbaa !15
  %1539 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1540 = load float, ptr %1539, align 4, !tbaa !15
  %1541 = fmul float %1538, %1540
  %1542 = fneg float %1541
  %1543 = call float @llvm.fmuladd.f32(float %1534, float %1536, float %1542)
  %1544 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1543, ptr %1544, align 4, !tbaa !13
  %1545 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1546 = load float, ptr %1545, align 4, !tbaa !13
  %1547 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1548 = load float, ptr %1547, align 4, !tbaa !15
  %1549 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1550 = load float, ptr %1549, align 4, !tbaa !15
  %1551 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1552 = load float, ptr %1551, align 4, !tbaa !13
  %1553 = fmul float %1550, %1552
  %1554 = call float @llvm.fmuladd.f32(float %1546, float %1548, float %1553)
  %1555 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1554, ptr %1555, align 4, !tbaa !15
  %1556 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  %1557 = load float, ptr %1556, align 4, !tbaa !13
  %1558 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1559 = load float, ptr %1558, align 4, !tbaa !13
  %1560 = fsub float %1557, %1559
  %1561 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  store float %1560, ptr %1561, align 4, !tbaa !13
  %1562 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  %1563 = load float, ptr %1562, align 4, !tbaa !15
  %1564 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1565 = load float, ptr %1564, align 4, !tbaa !15
  %1566 = fsub float %1563, %1565
  %1567 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  store float %1566, ptr %1567, align 4, !tbaa !15
  %1568 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %1569 = load float, ptr %1568, align 4, !tbaa !13
  %1570 = load ptr, ptr %9, align 8, !tbaa !5
  %1571 = load i32, ptr %15, align 4, !tbaa !9
  %1572 = sext i32 %1571 to i64
  %1573 = getelementptr inbounds %struct.complex, ptr %1570, i64 %1572
  %1574 = getelementptr inbounds %struct.complex, ptr %1573, i32 0, i32 0
  store float %1569, ptr %1574, align 4, !tbaa !13
  %1575 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %1576 = load float, ptr %1575, align 4, !tbaa !15
  %1577 = load ptr, ptr %9, align 8, !tbaa !5
  %1578 = load i32, ptr %15, align 4, !tbaa !9
  %1579 = sext i32 %1578 to i64
  %1580 = getelementptr inbounds %struct.complex, ptr %1577, i64 %1579
  %1581 = getelementptr inbounds %struct.complex, ptr %1580, i32 0, i32 1
  store float %1576, ptr %1581, align 4, !tbaa !15
  br label %1582

1582:                                             ; preds = %1426
  %1583 = load i32, ptr %30, align 4, !tbaa !9
  %1584 = add nsw i32 %1583, -1
  store i32 %1584, ptr %30, align 4, !tbaa !9
  br label %1423, !llvm.loop !18

1585:                                             ; preds = %1423
  %1586 = load i32, ptr %31, align 4, !tbaa !9
  %1587 = load i32, ptr %32, align 4, !tbaa !9
  %1588 = load i32, ptr %13, align 4, !tbaa !9
  %1589 = mul nsw i32 %1587, %1588
  %1590 = add nsw i32 %1586, %1589
  store i32 %1590, ptr %15, align 4, !tbaa !9
  %1591 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %1591, ptr %82, align 4
  %1592 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 0
  %1593 = load float, ptr %1592, align 4
  %1594 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 1
  %1595 = load float, ptr %1594, align 4
  %1596 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %1596, ptr %83, align 4
  %1597 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 0
  %1598 = load float, ptr %1597, align 4
  %1599 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 1
  %1600 = load float, ptr %1599, align 4
  %1601 = call <2 x float> @__divsc3(float noundef %1593, float noundef %1595, float noundef %1598, float noundef %1600) #7
  store <2 x float> %1601, ptr %84, align 4
  %1602 = getelementptr inbounds { float, float }, ptr %84, i32 0, i32 0
  %1603 = load float, ptr %1602, align 4
  %1604 = getelementptr inbounds { float, float }, ptr %84, i32 0, i32 1
  %1605 = load float, ptr %1604, align 4
  %1606 = call ptr @_pCf(ptr noundef %21)
  %1607 = getelementptr inbounds { float, float }, ptr %1606, i32 0, i32 0
  %1608 = getelementptr inbounds { float, float }, ptr %1606, i32 0, i32 1
  store float %1603, ptr %1607, align 4
  store float %1605, ptr %1608, align 4
  %1609 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %1610 = load float, ptr %1609, align 4, !tbaa !13
  %1611 = load ptr, ptr %9, align 8, !tbaa !5
  %1612 = load i32, ptr %15, align 4, !tbaa !9
  %1613 = sext i32 %1612 to i64
  %1614 = getelementptr inbounds %struct.complex, ptr %1611, i64 %1613
  %1615 = getelementptr inbounds %struct.complex, ptr %1614, i32 0, i32 0
  store float %1610, ptr %1615, align 4, !tbaa !13
  %1616 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %1617 = load float, ptr %1616, align 4, !tbaa !15
  %1618 = load ptr, ptr %9, align 8, !tbaa !5
  %1619 = load i32, ptr %15, align 4, !tbaa !9
  %1620 = sext i32 %1619 to i64
  %1621 = getelementptr inbounds %struct.complex, ptr %1618, i64 %1620
  %1622 = getelementptr inbounds %struct.complex, ptr %1621, i32 0, i32 1
  store float %1617, ptr %1622, align 4, !tbaa !15
  %1623 = load i32, ptr %31, align 4, !tbaa !9
  %1624 = load i32, ptr %32, align 4, !tbaa !9
  %1625 = sub nsw i32 %1624, 1
  %1626 = load i32, ptr %13, align 4, !tbaa !9
  %1627 = mul nsw i32 %1625, %1626
  %1628 = add nsw i32 %1623, %1627
  store i32 %1628, ptr %15, align 4, !tbaa !9
  %1629 = call <2 x float> @Cf(ptr noundef %52)
  store <2 x float> %1629, ptr %85, align 4
  %1630 = getelementptr inbounds { float, float }, ptr %85, i32 0, i32 0
  %1631 = load float, ptr %1630, align 4
  %1632 = getelementptr inbounds { float, float }, ptr %85, i32 0, i32 1
  %1633 = load float, ptr %1632, align 4
  %1634 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %1634, ptr %86, align 4
  %1635 = getelementptr inbounds { float, float }, ptr %86, i32 0, i32 0
  %1636 = load float, ptr %1635, align 4
  %1637 = getelementptr inbounds { float, float }, ptr %86, i32 0, i32 1
  %1638 = load float, ptr %1637, align 4
  %1639 = call <2 x float> @__divsc3(float noundef %1631, float noundef %1633, float noundef %1636, float noundef %1638) #7
  store <2 x float> %1639, ptr %87, align 4
  %1640 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 0
  %1641 = load float, ptr %1640, align 4
  %1642 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 1
  %1643 = load float, ptr %1642, align 4
  %1644 = call ptr @_pCf(ptr noundef %21)
  %1645 = getelementptr inbounds { float, float }, ptr %1644, i32 0, i32 0
  %1646 = getelementptr inbounds { float, float }, ptr %1644, i32 0, i32 1
  store float %1641, ptr %1645, align 4
  store float %1643, ptr %1646, align 4
  %1647 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %1648 = load float, ptr %1647, align 4, !tbaa !13
  %1649 = load ptr, ptr %9, align 8, !tbaa !5
  %1650 = load i32, ptr %15, align 4, !tbaa !9
  %1651 = sext i32 %1650 to i64
  %1652 = getelementptr inbounds %struct.complex, ptr %1649, i64 %1651
  %1653 = getelementptr inbounds %struct.complex, ptr %1652, i32 0, i32 0
  store float %1648, ptr %1653, align 4, !tbaa !13
  %1654 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %1655 = load float, ptr %1654, align 4, !tbaa !15
  %1656 = load ptr, ptr %9, align 8, !tbaa !5
  %1657 = load i32, ptr %15, align 4, !tbaa !9
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds %struct.complex, ptr %1656, i64 %1658
  %1660 = getelementptr inbounds %struct.complex, ptr %1659, i32 0, i32 1
  store float %1655, ptr %1660, align 4, !tbaa !15
  br label %1661

1661:                                             ; preds = %1585
  %1662 = load i32, ptr %31, align 4, !tbaa !9
  %1663 = add nsw i32 %1662, -1
  store i32 %1663, ptr %31, align 4, !tbaa !9
  br label %1220, !llvm.loop !19

1664:                                             ; preds = %1220
  br label %1665

1665:                                             ; preds = %1664, %1073
  br label %1666

1666:                                             ; preds = %1665, %1072
  br label %1667

1667:                                             ; preds = %1666, %311
  %1668 = load i32, ptr %38, align 4, !tbaa !9
  %1669 = icmp eq i32 %1668, 1
  br i1 %1669, label %1670, label %1676

1670:                                             ; preds = %1667
  %1671 = load i32, ptr %47, align 4, !tbaa !9
  %1672 = load ptr, ptr %11, align 8, !tbaa !5
  %1673 = load i32, ptr %32, align 4, !tbaa !9
  %1674 = sext i32 %1673 to i64
  %1675 = getelementptr inbounds i32, ptr %1672, i64 %1674
  store i32 %1671, ptr %1675, align 4, !tbaa !9
  br label %1690

1676:                                             ; preds = %1667
  %1677 = load i32, ptr %33, align 4, !tbaa !9
  %1678 = sub nsw i32 0, %1677
  %1679 = load ptr, ptr %11, align 8, !tbaa !5
  %1680 = load i32, ptr %32, align 4, !tbaa !9
  %1681 = sext i32 %1680 to i64
  %1682 = getelementptr inbounds i32, ptr %1679, i64 %1681
  store i32 %1678, ptr %1682, align 4, !tbaa !9
  %1683 = load i32, ptr %47, align 4, !tbaa !9
  %1684 = sub nsw i32 0, %1683
  %1685 = load ptr, ptr %11, align 8, !tbaa !5
  %1686 = load i32, ptr %32, align 4, !tbaa !9
  %1687 = sub nsw i32 %1686, 1
  %1688 = sext i32 %1687 to i64
  %1689 = getelementptr inbounds i32, ptr %1685, i64 %1688
  store i32 %1684, ptr %1689, align 4, !tbaa !9
  br label %1690

1690:                                             ; preds = %1676, %1670
  %1691 = load i32, ptr %38, align 4, !tbaa !9
  %1692 = load i32, ptr %32, align 4, !tbaa !9
  %1693 = sub nsw i32 %1692, %1691
  store i32 %1693, ptr %32, align 4, !tbaa !9
  br label %187

1694:                                             ; preds = %176
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %1695

1695:                                             ; preds = %3271, %1694
  %1696 = load i32, ptr %32, align 4, !tbaa !9
  %1697 = load ptr, ptr %8, align 8, !tbaa !5
  %1698 = load i32, ptr %1697, align 4, !tbaa !9
  %1699 = icmp sgt i32 %1696, %1698
  br i1 %1699, label %1700, label %1701

1700:                                             ; preds = %1695
  br label %3275

1701:                                             ; preds = %1695
  store i32 1, ptr %38, align 4, !tbaa !9
  %1702 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %1702, ptr %33, align 4, !tbaa !9
  %1703 = load i32, ptr %32, align 4, !tbaa !9
  %1704 = load i32, ptr %32, align 4, !tbaa !9
  %1705 = load i32, ptr %13, align 4, !tbaa !9
  %1706 = mul nsw i32 %1704, %1705
  %1707 = add nsw i32 %1703, %1706
  store i32 %1707, ptr %15, align 4, !tbaa !9
  %1708 = load ptr, ptr %9, align 8, !tbaa !5
  %1709 = load i32, ptr %15, align 4, !tbaa !9
  %1710 = sext i32 %1709 to i64
  %1711 = getelementptr inbounds %struct.complex, ptr %1708, i64 %1710
  %1712 = getelementptr inbounds %struct.complex, ptr %1711, i32 0, i32 0
  %1713 = load float, ptr %1712, align 4, !tbaa !13
  store float %1713, ptr %19, align 4, !tbaa !11
  %1714 = load float, ptr %19, align 4, !tbaa !11
  %1715 = fcmp oge float %1714, 0.000000e+00
  br i1 %1715, label %1716, label %1718

1716:                                             ; preds = %1701
  %1717 = load float, ptr %19, align 4, !tbaa !11
  br label %1721

1718:                                             ; preds = %1701
  %1719 = load float, ptr %19, align 4, !tbaa !11
  %1720 = fneg float %1719
  br label %1721

1721:                                             ; preds = %1718, %1716
  %1722 = phi float [ %1717, %1716 ], [ %1720, %1718 ]
  %1723 = load ptr, ptr %9, align 8, !tbaa !5
  %1724 = load i32, ptr %32, align 4, !tbaa !9
  %1725 = load i32, ptr %32, align 4, !tbaa !9
  %1726 = load i32, ptr %13, align 4, !tbaa !9
  %1727 = mul nsw i32 %1725, %1726
  %1728 = add nsw i32 %1724, %1727
  %1729 = sext i32 %1728 to i64
  %1730 = getelementptr inbounds %struct.complex, ptr %1723, i64 %1729
  %1731 = call <2 x float> @Cf(ptr noundef %1730)
  store <2 x float> %1731, ptr %88, align 4
  %1732 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 0
  %1733 = load float, ptr %1732, align 4
  %1734 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 1
  %1735 = load float, ptr %1734, align 4
  store float %1735, ptr %20, align 4, !tbaa !11
  %1736 = load float, ptr %20, align 4, !tbaa !11
  %1737 = fcmp oge float %1736, 0.000000e+00
  br i1 %1737, label %1738, label %1740

1738:                                             ; preds = %1721
  %1739 = load float, ptr %20, align 4, !tbaa !11
  br label %1743

1740:                                             ; preds = %1721
  %1741 = load float, ptr %20, align 4, !tbaa !11
  %1742 = fneg float %1741
  br label %1743

1743:                                             ; preds = %1740, %1738
  %1744 = phi float [ %1739, %1738 ], [ %1742, %1740 ]
  %1745 = fadd float %1722, %1744
  store float %1745, ptr %48, align 4, !tbaa !11
  %1746 = load i32, ptr %32, align 4, !tbaa !9
  %1747 = load ptr, ptr %8, align 8, !tbaa !5
  %1748 = load i32, ptr %1747, align 4, !tbaa !9
  %1749 = icmp slt i32 %1746, %1748
  br i1 %1749, label %1750, label %1810

1750:                                             ; preds = %1743
  %1751 = load ptr, ptr %8, align 8, !tbaa !5
  %1752 = load i32, ptr %1751, align 4, !tbaa !9
  %1753 = load i32, ptr %32, align 4, !tbaa !9
  %1754 = sub nsw i32 %1752, %1753
  store i32 %1754, ptr %15, align 4, !tbaa !9
  %1755 = load i32, ptr %32, align 4, !tbaa !9
  %1756 = load ptr, ptr %9, align 8, !tbaa !5
  %1757 = load i32, ptr %32, align 4, !tbaa !9
  %1758 = add nsw i32 %1757, 1
  %1759 = load i32, ptr %32, align 4, !tbaa !9
  %1760 = load i32, ptr %13, align 4, !tbaa !9
  %1761 = mul nsw i32 %1759, %1760
  %1762 = add nsw i32 %1758, %1761
  %1763 = sext i32 %1762 to i64
  %1764 = getelementptr inbounds %struct.complex, ptr %1756, i64 %1763
  %1765 = call i32 @icamax_(ptr noundef %15, ptr noundef %1764, ptr noundef @c__1)
  %1766 = add nsw i32 %1755, %1765
  store i32 %1766, ptr %28, align 4, !tbaa !9
  %1767 = load i32, ptr %28, align 4, !tbaa !9
  %1768 = load i32, ptr %32, align 4, !tbaa !9
  %1769 = load i32, ptr %13, align 4, !tbaa !9
  %1770 = mul nsw i32 %1768, %1769
  %1771 = add nsw i32 %1767, %1770
  store i32 %1771, ptr %15, align 4, !tbaa !9
  %1772 = load ptr, ptr %9, align 8, !tbaa !5
  %1773 = load i32, ptr %15, align 4, !tbaa !9
  %1774 = sext i32 %1773 to i64
  %1775 = getelementptr inbounds %struct.complex, ptr %1772, i64 %1774
  %1776 = getelementptr inbounds %struct.complex, ptr %1775, i32 0, i32 0
  %1777 = load float, ptr %1776, align 4, !tbaa !13
  store float %1777, ptr %19, align 4, !tbaa !11
  %1778 = load float, ptr %19, align 4, !tbaa !11
  %1779 = fcmp oge float %1778, 0.000000e+00
  br i1 %1779, label %1780, label %1782

1780:                                             ; preds = %1750
  %1781 = load float, ptr %19, align 4, !tbaa !11
  br label %1785

1782:                                             ; preds = %1750
  %1783 = load float, ptr %19, align 4, !tbaa !11
  %1784 = fneg float %1783
  br label %1785

1785:                                             ; preds = %1782, %1780
  %1786 = phi float [ %1781, %1780 ], [ %1784, %1782 ]
  %1787 = load ptr, ptr %9, align 8, !tbaa !5
  %1788 = load i32, ptr %28, align 4, !tbaa !9
  %1789 = load i32, ptr %32, align 4, !tbaa !9
  %1790 = load i32, ptr %13, align 4, !tbaa !9
  %1791 = mul nsw i32 %1789, %1790
  %1792 = add nsw i32 %1788, %1791
  %1793 = sext i32 %1792 to i64
  %1794 = getelementptr inbounds %struct.complex, ptr %1787, i64 %1793
  %1795 = call <2 x float> @Cf(ptr noundef %1794)
  store <2 x float> %1795, ptr %89, align 4
  %1796 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 0
  %1797 = load float, ptr %1796, align 4
  %1798 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 1
  %1799 = load float, ptr %1798, align 4
  store float %1799, ptr %20, align 4, !tbaa !11
  %1800 = load float, ptr %20, align 4, !tbaa !11
  %1801 = fcmp oge float %1800, 0.000000e+00
  br i1 %1801, label %1802, label %1804

1802:                                             ; preds = %1785
  %1803 = load float, ptr %20, align 4, !tbaa !11
  br label %1807

1804:                                             ; preds = %1785
  %1805 = load float, ptr %20, align 4, !tbaa !11
  %1806 = fneg float %1805
  br label %1807

1807:                                             ; preds = %1804, %1802
  %1808 = phi float [ %1803, %1802 ], [ %1806, %1804 ]
  %1809 = fadd float %1786, %1808
  store float %1809, ptr %50, align 4, !tbaa !11
  br label %1811

1810:                                             ; preds = %1743
  store float 0.000000e+00, ptr %50, align 4, !tbaa !11
  br label %1811

1811:                                             ; preds = %1810, %1807
  %1812 = load float, ptr %48, align 4, !tbaa !11
  %1813 = load float, ptr %50, align 4, !tbaa !11
  %1814 = fcmp oge float %1812, %1813
  br i1 %1814, label %1815, label %1817

1815:                                             ; preds = %1811
  %1816 = load float, ptr %48, align 4, !tbaa !11
  br label %1819

1817:                                             ; preds = %1811
  %1818 = load float, ptr %50, align 4, !tbaa !11
  br label %1819

1819:                                             ; preds = %1817, %1815
  %1820 = phi float [ %1816, %1815 ], [ %1818, %1817 ]
  %1821 = fcmp oeq float %1820, 0.000000e+00
  br i1 %1821, label %1822, label %1831

1822:                                             ; preds = %1819
  %1823 = load ptr, ptr %12, align 8, !tbaa !5
  %1824 = load i32, ptr %1823, align 4, !tbaa !9
  %1825 = icmp eq i32 %1824, 0
  br i1 %1825, label %1826, label %1829

1826:                                             ; preds = %1822
  %1827 = load i32, ptr %32, align 4, !tbaa !9
  %1828 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %1827, ptr %1828, align 4, !tbaa !9
  br label %1829

1829:                                             ; preds = %1826, %1822
  %1830 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %1830, ptr %47, align 4, !tbaa !9
  br label %3248

1831:                                             ; preds = %1819
  %1832 = load float, ptr %48, align 4, !tbaa !11
  %1833 = load float, ptr %35, align 4, !tbaa !11
  %1834 = load float, ptr %50, align 4, !tbaa !11
  %1835 = fmul float %1833, %1834
  %1836 = fcmp olt float %1832, %1835
  br i1 %1836, label %1839, label %1837

1837:                                             ; preds = %1831
  %1838 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %1838, ptr %47, align 4, !tbaa !9
  br label %2047

1839:                                             ; preds = %1831
  store i32 0, ptr %27, align 4, !tbaa !9
  br label %1840

1840:                                             ; preds = %2045, %1839
  %1841 = load i32, ptr %28, align 4, !tbaa !9
  %1842 = load i32, ptr %32, align 4, !tbaa !9
  %1843 = icmp ne i32 %1841, %1842
  br i1 %1843, label %1844, label %1904

1844:                                             ; preds = %1840
  %1845 = load i32, ptr %28, align 4, !tbaa !9
  %1846 = load i32, ptr %32, align 4, !tbaa !9
  %1847 = sub nsw i32 %1845, %1846
  store i32 %1847, ptr %15, align 4, !tbaa !9
  %1848 = load i32, ptr %32, align 4, !tbaa !9
  %1849 = sub nsw i32 %1848, 1
  %1850 = load ptr, ptr %9, align 8, !tbaa !5
  %1851 = load i32, ptr %28, align 4, !tbaa !9
  %1852 = load i32, ptr %32, align 4, !tbaa !9
  %1853 = load i32, ptr %13, align 4, !tbaa !9
  %1854 = mul nsw i32 %1852, %1853
  %1855 = add nsw i32 %1851, %1854
  %1856 = sext i32 %1855 to i64
  %1857 = getelementptr inbounds %struct.complex, ptr %1850, i64 %1856
  %1858 = load ptr, ptr %10, align 8, !tbaa !5
  %1859 = call i32 @icamax_(ptr noundef %15, ptr noundef %1857, ptr noundef %1858)
  %1860 = add nsw i32 %1849, %1859
  store i32 %1860, ptr %29, align 4, !tbaa !9
  %1861 = load i32, ptr %28, align 4, !tbaa !9
  %1862 = load i32, ptr %29, align 4, !tbaa !9
  %1863 = load i32, ptr %13, align 4, !tbaa !9
  %1864 = mul nsw i32 %1862, %1863
  %1865 = add nsw i32 %1861, %1864
  store i32 %1865, ptr %15, align 4, !tbaa !9
  %1866 = load ptr, ptr %9, align 8, !tbaa !5
  %1867 = load i32, ptr %15, align 4, !tbaa !9
  %1868 = sext i32 %1867 to i64
  %1869 = getelementptr inbounds %struct.complex, ptr %1866, i64 %1868
  %1870 = getelementptr inbounds %struct.complex, ptr %1869, i32 0, i32 0
  %1871 = load float, ptr %1870, align 4, !tbaa !13
  store float %1871, ptr %19, align 4, !tbaa !11
  %1872 = load float, ptr %19, align 4, !tbaa !11
  %1873 = fcmp oge float %1872, 0.000000e+00
  br i1 %1873, label %1874, label %1876

1874:                                             ; preds = %1844
  %1875 = load float, ptr %19, align 4, !tbaa !11
  br label %1879

1876:                                             ; preds = %1844
  %1877 = load float, ptr %19, align 4, !tbaa !11
  %1878 = fneg float %1877
  br label %1879

1879:                                             ; preds = %1876, %1874
  %1880 = phi float [ %1875, %1874 ], [ %1878, %1876 ]
  %1881 = load ptr, ptr %9, align 8, !tbaa !5
  %1882 = load i32, ptr %28, align 4, !tbaa !9
  %1883 = load i32, ptr %29, align 4, !tbaa !9
  %1884 = load i32, ptr %13, align 4, !tbaa !9
  %1885 = mul nsw i32 %1883, %1884
  %1886 = add nsw i32 %1882, %1885
  %1887 = sext i32 %1886 to i64
  %1888 = getelementptr inbounds %struct.complex, ptr %1881, i64 %1887
  %1889 = call <2 x float> @Cf(ptr noundef %1888)
  store <2 x float> %1889, ptr %90, align 4
  %1890 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 0
  %1891 = load float, ptr %1890, align 4
  %1892 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 1
  %1893 = load float, ptr %1892, align 4
  store float %1893, ptr %20, align 4, !tbaa !11
  %1894 = load float, ptr %20, align 4, !tbaa !11
  %1895 = fcmp oge float %1894, 0.000000e+00
  br i1 %1895, label %1896, label %1898

1896:                                             ; preds = %1879
  %1897 = load float, ptr %20, align 4, !tbaa !11
  br label %1901

1898:                                             ; preds = %1879
  %1899 = load float, ptr %20, align 4, !tbaa !11
  %1900 = fneg float %1899
  br label %1901

1901:                                             ; preds = %1898, %1896
  %1902 = phi float [ %1897, %1896 ], [ %1900, %1898 ]
  %1903 = fadd float %1880, %1902
  store float %1903, ptr %51, align 4, !tbaa !11
  br label %1905

1904:                                             ; preds = %1840
  store float 0.000000e+00, ptr %51, align 4, !tbaa !11
  br label %1905

1905:                                             ; preds = %1904, %1901
  %1906 = load i32, ptr %28, align 4, !tbaa !9
  %1907 = load ptr, ptr %8, align 8, !tbaa !5
  %1908 = load i32, ptr %1907, align 4, !tbaa !9
  %1909 = icmp slt i32 %1906, %1908
  br i1 %1909, label %1910, label %1977

1910:                                             ; preds = %1905
  %1911 = load ptr, ptr %8, align 8, !tbaa !5
  %1912 = load i32, ptr %1911, align 4, !tbaa !9
  %1913 = load i32, ptr %28, align 4, !tbaa !9
  %1914 = sub nsw i32 %1912, %1913
  store i32 %1914, ptr %15, align 4, !tbaa !9
  %1915 = load i32, ptr %28, align 4, !tbaa !9
  %1916 = load ptr, ptr %9, align 8, !tbaa !5
  %1917 = load i32, ptr %28, align 4, !tbaa !9
  %1918 = add nsw i32 %1917, 1
  %1919 = load i32, ptr %28, align 4, !tbaa !9
  %1920 = load i32, ptr %13, align 4, !tbaa !9
  %1921 = mul nsw i32 %1919, %1920
  %1922 = add nsw i32 %1918, %1921
  %1923 = sext i32 %1922 to i64
  %1924 = getelementptr inbounds %struct.complex, ptr %1916, i64 %1923
  %1925 = call i32 @icamax_(ptr noundef %15, ptr noundef %1924, ptr noundef @c__1)
  %1926 = add nsw i32 %1915, %1925
  store i32 %1926, ptr %37, align 4, !tbaa !9
  %1927 = load i32, ptr %37, align 4, !tbaa !9
  %1928 = load i32, ptr %28, align 4, !tbaa !9
  %1929 = load i32, ptr %13, align 4, !tbaa !9
  %1930 = mul nsw i32 %1928, %1929
  %1931 = add nsw i32 %1927, %1930
  store i32 %1931, ptr %15, align 4, !tbaa !9
  %1932 = load ptr, ptr %9, align 8, !tbaa !5
  %1933 = load i32, ptr %15, align 4, !tbaa !9
  %1934 = sext i32 %1933 to i64
  %1935 = getelementptr inbounds %struct.complex, ptr %1932, i64 %1934
  %1936 = getelementptr inbounds %struct.complex, ptr %1935, i32 0, i32 0
  %1937 = load float, ptr %1936, align 4, !tbaa !13
  store float %1937, ptr %19, align 4, !tbaa !11
  %1938 = load float, ptr %19, align 4, !tbaa !11
  %1939 = fcmp oge float %1938, 0.000000e+00
  br i1 %1939, label %1940, label %1942

1940:                                             ; preds = %1910
  %1941 = load float, ptr %19, align 4, !tbaa !11
  br label %1945

1942:                                             ; preds = %1910
  %1943 = load float, ptr %19, align 4, !tbaa !11
  %1944 = fneg float %1943
  br label %1945

1945:                                             ; preds = %1942, %1940
  %1946 = phi float [ %1941, %1940 ], [ %1944, %1942 ]
  %1947 = load ptr, ptr %9, align 8, !tbaa !5
  %1948 = load i32, ptr %37, align 4, !tbaa !9
  %1949 = load i32, ptr %28, align 4, !tbaa !9
  %1950 = load i32, ptr %13, align 4, !tbaa !9
  %1951 = mul nsw i32 %1949, %1950
  %1952 = add nsw i32 %1948, %1951
  %1953 = sext i32 %1952 to i64
  %1954 = getelementptr inbounds %struct.complex, ptr %1947, i64 %1953
  %1955 = call <2 x float> @Cf(ptr noundef %1954)
  store <2 x float> %1955, ptr %91, align 4
  %1956 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 0
  %1957 = load float, ptr %1956, align 4
  %1958 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 1
  %1959 = load float, ptr %1958, align 4
  store float %1959, ptr %20, align 4, !tbaa !11
  %1960 = load float, ptr %20, align 4, !tbaa !11
  %1961 = fcmp oge float %1960, 0.000000e+00
  br i1 %1961, label %1962, label %1964

1962:                                             ; preds = %1945
  %1963 = load float, ptr %20, align 4, !tbaa !11
  br label %1967

1964:                                             ; preds = %1945
  %1965 = load float, ptr %20, align 4, !tbaa !11
  %1966 = fneg float %1965
  br label %1967

1967:                                             ; preds = %1964, %1962
  %1968 = phi float [ %1963, %1962 ], [ %1966, %1964 ]
  %1969 = fadd float %1946, %1968
  store float %1969, ptr %39, align 4, !tbaa !11
  %1970 = load float, ptr %39, align 4, !tbaa !11
  %1971 = load float, ptr %51, align 4, !tbaa !11
  %1972 = fcmp ogt float %1970, %1971
  br i1 %1972, label %1973, label %1976

1973:                                             ; preds = %1967
  %1974 = load float, ptr %39, align 4, !tbaa !11
  store float %1974, ptr %51, align 4, !tbaa !11
  %1975 = load i32, ptr %37, align 4, !tbaa !9
  store i32 %1975, ptr %29, align 4, !tbaa !9
  br label %1976

1976:                                             ; preds = %1973, %1967
  br label %1977

1977:                                             ; preds = %1976, %1905
  %1978 = load i32, ptr %28, align 4, !tbaa !9
  %1979 = load i32, ptr %28, align 4, !tbaa !9
  %1980 = load i32, ptr %13, align 4, !tbaa !9
  %1981 = mul nsw i32 %1979, %1980
  %1982 = add nsw i32 %1978, %1981
  store i32 %1982, ptr %15, align 4, !tbaa !9
  %1983 = load ptr, ptr %9, align 8, !tbaa !5
  %1984 = load i32, ptr %15, align 4, !tbaa !9
  %1985 = sext i32 %1984 to i64
  %1986 = getelementptr inbounds %struct.complex, ptr %1983, i64 %1985
  %1987 = getelementptr inbounds %struct.complex, ptr %1986, i32 0, i32 0
  %1988 = load float, ptr %1987, align 4, !tbaa !13
  store float %1988, ptr %19, align 4, !tbaa !11
  %1989 = load float, ptr %19, align 4, !tbaa !11
  %1990 = fcmp oge float %1989, 0.000000e+00
  br i1 %1990, label %1991, label %1993

1991:                                             ; preds = %1977
  %1992 = load float, ptr %19, align 4, !tbaa !11
  br label %1996

1993:                                             ; preds = %1977
  %1994 = load float, ptr %19, align 4, !tbaa !11
  %1995 = fneg float %1994
  br label %1996

1996:                                             ; preds = %1993, %1991
  %1997 = phi float [ %1992, %1991 ], [ %1995, %1993 ]
  %1998 = load ptr, ptr %9, align 8, !tbaa !5
  %1999 = load i32, ptr %28, align 4, !tbaa !9
  %2000 = load i32, ptr %28, align 4, !tbaa !9
  %2001 = load i32, ptr %13, align 4, !tbaa !9
  %2002 = mul nsw i32 %2000, %2001
  %2003 = add nsw i32 %1999, %2002
  %2004 = sext i32 %2003 to i64
  %2005 = getelementptr inbounds %struct.complex, ptr %1998, i64 %2004
  %2006 = call <2 x float> @Cf(ptr noundef %2005)
  store <2 x float> %2006, ptr %92, align 4
  %2007 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 0
  %2008 = load float, ptr %2007, align 4
  %2009 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 1
  %2010 = load float, ptr %2009, align 4
  store float %2010, ptr %20, align 4, !tbaa !11
  %2011 = load float, ptr %20, align 4, !tbaa !11
  %2012 = fcmp oge float %2011, 0.000000e+00
  br i1 %2012, label %2013, label %2015

2013:                                             ; preds = %1996
  %2014 = load float, ptr %20, align 4, !tbaa !11
  br label %2018

2015:                                             ; preds = %1996
  %2016 = load float, ptr %20, align 4, !tbaa !11
  %2017 = fneg float %2016
  br label %2018

2018:                                             ; preds = %2015, %2013
  %2019 = phi float [ %2014, %2013 ], [ %2017, %2015 ]
  %2020 = fadd float %1997, %2019
  %2021 = load float, ptr %35, align 4, !tbaa !11
  %2022 = load float, ptr %51, align 4, !tbaa !11
  %2023 = fmul float %2021, %2022
  %2024 = fcmp olt float %2020, %2023
  br i1 %2024, label %2027, label %2025

2025:                                             ; preds = %2018
  %2026 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %2026, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %2042

2027:                                             ; preds = %2018
  %2028 = load i32, ptr %33, align 4, !tbaa !9
  %2029 = load i32, ptr %29, align 4, !tbaa !9
  %2030 = icmp eq i32 %2028, %2029
  br i1 %2030, label %2035, label %2031

2031:                                             ; preds = %2027
  %2032 = load float, ptr %51, align 4, !tbaa !11
  %2033 = load float, ptr %50, align 4, !tbaa !11
  %2034 = fcmp ole float %2032, %2033
  br i1 %2034, label %2035, label %2037

2035:                                             ; preds = %2031, %2027
  %2036 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %2036, ptr %47, align 4, !tbaa !9
  store i32 2, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %2041

2037:                                             ; preds = %2031
  %2038 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %2038, ptr %33, align 4, !tbaa !9
  %2039 = load float, ptr %51, align 4, !tbaa !11
  store float %2039, ptr %50, align 4, !tbaa !11
  %2040 = load i32, ptr %29, align 4, !tbaa !9
  store i32 %2040, ptr %28, align 4, !tbaa !9
  br label %2041

2041:                                             ; preds = %2037, %2035
  br label %2042

2042:                                             ; preds = %2041, %2025
  %2043 = load i32, ptr %27, align 4, !tbaa !9
  %2044 = icmp ne i32 %2043, 0
  br i1 %2044, label %2046, label %2045

2045:                                             ; preds = %2042
  br label %1840

2046:                                             ; preds = %2042
  br label %2047

2047:                                             ; preds = %2046, %1837
  %2048 = load i32, ptr %38, align 4, !tbaa !9
  %2049 = icmp eq i32 %2048, 2
  br i1 %2049, label %2050, label %2182

2050:                                             ; preds = %2047
  %2051 = load i32, ptr %33, align 4, !tbaa !9
  %2052 = load i32, ptr %32, align 4, !tbaa !9
  %2053 = icmp ne i32 %2051, %2052
  br i1 %2053, label %2054, label %2182

2054:                                             ; preds = %2050
  %2055 = load i32, ptr %33, align 4, !tbaa !9
  %2056 = load ptr, ptr %8, align 8, !tbaa !5
  %2057 = load i32, ptr %2056, align 4, !tbaa !9
  %2058 = icmp slt i32 %2055, %2057
  br i1 %2058, label %2059, label %2082

2059:                                             ; preds = %2054
  %2060 = load ptr, ptr %8, align 8, !tbaa !5
  %2061 = load i32, ptr %2060, align 4, !tbaa !9
  %2062 = load i32, ptr %33, align 4, !tbaa !9
  %2063 = sub nsw i32 %2061, %2062
  store i32 %2063, ptr %15, align 4, !tbaa !9
  %2064 = load ptr, ptr %9, align 8, !tbaa !5
  %2065 = load i32, ptr %33, align 4, !tbaa !9
  %2066 = add nsw i32 %2065, 1
  %2067 = load i32, ptr %32, align 4, !tbaa !9
  %2068 = load i32, ptr %13, align 4, !tbaa !9
  %2069 = mul nsw i32 %2067, %2068
  %2070 = add nsw i32 %2066, %2069
  %2071 = sext i32 %2070 to i64
  %2072 = getelementptr inbounds %struct.complex, ptr %2064, i64 %2071
  %2073 = load ptr, ptr %9, align 8, !tbaa !5
  %2074 = load i32, ptr %33, align 4, !tbaa !9
  %2075 = add nsw i32 %2074, 1
  %2076 = load i32, ptr %33, align 4, !tbaa !9
  %2077 = load i32, ptr %13, align 4, !tbaa !9
  %2078 = mul nsw i32 %2076, %2077
  %2079 = add nsw i32 %2075, %2078
  %2080 = sext i32 %2079 to i64
  %2081 = getelementptr inbounds %struct.complex, ptr %2073, i64 %2080
  call void @cswap_(ptr noundef %15, ptr noundef %2072, ptr noundef @c__1, ptr noundef %2081, ptr noundef @c__1)
  br label %2082

2082:                                             ; preds = %2059, %2054
  %2083 = load i32, ptr %33, align 4, !tbaa !9
  %2084 = load i32, ptr %32, align 4, !tbaa !9
  %2085 = add nsw i32 %2084, 1
  %2086 = icmp sgt i32 %2083, %2085
  br i1 %2086, label %2087, label %2111

2087:                                             ; preds = %2082
  %2088 = load i32, ptr %33, align 4, !tbaa !9
  %2089 = load i32, ptr %32, align 4, !tbaa !9
  %2090 = sub nsw i32 %2088, %2089
  %2091 = sub nsw i32 %2090, 1
  store i32 %2091, ptr %15, align 4, !tbaa !9
  %2092 = load ptr, ptr %9, align 8, !tbaa !5
  %2093 = load i32, ptr %32, align 4, !tbaa !9
  %2094 = add nsw i32 %2093, 1
  %2095 = load i32, ptr %32, align 4, !tbaa !9
  %2096 = load i32, ptr %13, align 4, !tbaa !9
  %2097 = mul nsw i32 %2095, %2096
  %2098 = add nsw i32 %2094, %2097
  %2099 = sext i32 %2098 to i64
  %2100 = getelementptr inbounds %struct.complex, ptr %2092, i64 %2099
  %2101 = load ptr, ptr %9, align 8, !tbaa !5
  %2102 = load i32, ptr %33, align 4, !tbaa !9
  %2103 = load i32, ptr %32, align 4, !tbaa !9
  %2104 = add nsw i32 %2103, 1
  %2105 = load i32, ptr %13, align 4, !tbaa !9
  %2106 = mul nsw i32 %2104, %2105
  %2107 = add nsw i32 %2102, %2106
  %2108 = sext i32 %2107 to i64
  %2109 = getelementptr inbounds %struct.complex, ptr %2101, i64 %2108
  %2110 = load ptr, ptr %10, align 8, !tbaa !5
  call void @cswap_(ptr noundef %15, ptr noundef %2100, ptr noundef @c__1, ptr noundef %2109, ptr noundef %2110)
  br label %2111

2111:                                             ; preds = %2087, %2082
  %2112 = load i32, ptr %32, align 4, !tbaa !9
  %2113 = load i32, ptr %32, align 4, !tbaa !9
  %2114 = load i32, ptr %13, align 4, !tbaa !9
  %2115 = mul nsw i32 %2113, %2114
  %2116 = add nsw i32 %2112, %2115
  store i32 %2116, ptr %15, align 4, !tbaa !9
  %2117 = load ptr, ptr %9, align 8, !tbaa !5
  %2118 = load i32, ptr %15, align 4, !tbaa !9
  %2119 = sext i32 %2118 to i64
  %2120 = getelementptr inbounds %struct.complex, ptr %2117, i64 %2119
  %2121 = getelementptr inbounds %struct.complex, ptr %2120, i32 0, i32 0
  %2122 = load float, ptr %2121, align 4, !tbaa !13
  %2123 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2122, ptr %2123, align 4, !tbaa !13
  %2124 = load ptr, ptr %9, align 8, !tbaa !5
  %2125 = load i32, ptr %15, align 4, !tbaa !9
  %2126 = sext i32 %2125 to i64
  %2127 = getelementptr inbounds %struct.complex, ptr %2124, i64 %2126
  %2128 = getelementptr inbounds %struct.complex, ptr %2127, i32 0, i32 1
  %2129 = load float, ptr %2128, align 4, !tbaa !15
  %2130 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %2129, ptr %2130, align 4, !tbaa !15
  %2131 = load i32, ptr %32, align 4, !tbaa !9
  %2132 = load i32, ptr %32, align 4, !tbaa !9
  %2133 = load i32, ptr %13, align 4, !tbaa !9
  %2134 = mul nsw i32 %2132, %2133
  %2135 = add nsw i32 %2131, %2134
  store i32 %2135, ptr %15, align 4, !tbaa !9
  %2136 = load i32, ptr %33, align 4, !tbaa !9
  %2137 = load i32, ptr %33, align 4, !tbaa !9
  %2138 = load i32, ptr %13, align 4, !tbaa !9
  %2139 = mul nsw i32 %2137, %2138
  %2140 = add nsw i32 %2136, %2139
  store i32 %2140, ptr %16, align 4, !tbaa !9
  %2141 = load ptr, ptr %9, align 8, !tbaa !5
  %2142 = load i32, ptr %16, align 4, !tbaa !9
  %2143 = sext i32 %2142 to i64
  %2144 = getelementptr inbounds %struct.complex, ptr %2141, i64 %2143
  %2145 = getelementptr inbounds %struct.complex, ptr %2144, i32 0, i32 0
  %2146 = load float, ptr %2145, align 4, !tbaa !13
  %2147 = load ptr, ptr %9, align 8, !tbaa !5
  %2148 = load i32, ptr %15, align 4, !tbaa !9
  %2149 = sext i32 %2148 to i64
  %2150 = getelementptr inbounds %struct.complex, ptr %2147, i64 %2149
  %2151 = getelementptr inbounds %struct.complex, ptr %2150, i32 0, i32 0
  store float %2146, ptr %2151, align 4, !tbaa !13
  %2152 = load ptr, ptr %9, align 8, !tbaa !5
  %2153 = load i32, ptr %16, align 4, !tbaa !9
  %2154 = sext i32 %2153 to i64
  %2155 = getelementptr inbounds %struct.complex, ptr %2152, i64 %2154
  %2156 = getelementptr inbounds %struct.complex, ptr %2155, i32 0, i32 1
  %2157 = load float, ptr %2156, align 4, !tbaa !15
  %2158 = load ptr, ptr %9, align 8, !tbaa !5
  %2159 = load i32, ptr %15, align 4, !tbaa !9
  %2160 = sext i32 %2159 to i64
  %2161 = getelementptr inbounds %struct.complex, ptr %2158, i64 %2160
  %2162 = getelementptr inbounds %struct.complex, ptr %2161, i32 0, i32 1
  store float %2157, ptr %2162, align 4, !tbaa !15
  %2163 = load i32, ptr %33, align 4, !tbaa !9
  %2164 = load i32, ptr %33, align 4, !tbaa !9
  %2165 = load i32, ptr %13, align 4, !tbaa !9
  %2166 = mul nsw i32 %2164, %2165
  %2167 = add nsw i32 %2163, %2166
  store i32 %2167, ptr %15, align 4, !tbaa !9
  %2168 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2169 = load float, ptr %2168, align 4, !tbaa !13
  %2170 = load ptr, ptr %9, align 8, !tbaa !5
  %2171 = load i32, ptr %15, align 4, !tbaa !9
  %2172 = sext i32 %2171 to i64
  %2173 = getelementptr inbounds %struct.complex, ptr %2170, i64 %2172
  %2174 = getelementptr inbounds %struct.complex, ptr %2173, i32 0, i32 0
  store float %2169, ptr %2174, align 4, !tbaa !13
  %2175 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2176 = load float, ptr %2175, align 4, !tbaa !15
  %2177 = load ptr, ptr %9, align 8, !tbaa !5
  %2178 = load i32, ptr %15, align 4, !tbaa !9
  %2179 = sext i32 %2178 to i64
  %2180 = getelementptr inbounds %struct.complex, ptr %2177, i64 %2179
  %2181 = getelementptr inbounds %struct.complex, ptr %2180, i32 0, i32 1
  store float %2176, ptr %2181, align 4, !tbaa !15
  br label %2182

2182:                                             ; preds = %2111, %2050, %2047
  %2183 = load i32, ptr %32, align 4, !tbaa !9
  %2184 = load i32, ptr %38, align 4, !tbaa !9
  %2185 = add nsw i32 %2183, %2184
  %2186 = sub nsw i32 %2185, 1
  store i32 %2186, ptr %46, align 4, !tbaa !9
  %2187 = load i32, ptr %47, align 4, !tbaa !9
  %2188 = load i32, ptr %46, align 4, !tbaa !9
  %2189 = icmp ne i32 %2187, %2188
  br i1 %2189, label %2190, label %2399

2190:                                             ; preds = %2182
  %2191 = load i32, ptr %47, align 4, !tbaa !9
  %2192 = load ptr, ptr %8, align 8, !tbaa !5
  %2193 = load i32, ptr %2192, align 4, !tbaa !9
  %2194 = icmp slt i32 %2191, %2193
  br i1 %2194, label %2195, label %2218

2195:                                             ; preds = %2190
  %2196 = load ptr, ptr %8, align 8, !tbaa !5
  %2197 = load i32, ptr %2196, align 4, !tbaa !9
  %2198 = load i32, ptr %47, align 4, !tbaa !9
  %2199 = sub nsw i32 %2197, %2198
  store i32 %2199, ptr %15, align 4, !tbaa !9
  %2200 = load ptr, ptr %9, align 8, !tbaa !5
  %2201 = load i32, ptr %47, align 4, !tbaa !9
  %2202 = add nsw i32 %2201, 1
  %2203 = load i32, ptr %46, align 4, !tbaa !9
  %2204 = load i32, ptr %13, align 4, !tbaa !9
  %2205 = mul nsw i32 %2203, %2204
  %2206 = add nsw i32 %2202, %2205
  %2207 = sext i32 %2206 to i64
  %2208 = getelementptr inbounds %struct.complex, ptr %2200, i64 %2207
  %2209 = load ptr, ptr %9, align 8, !tbaa !5
  %2210 = load i32, ptr %47, align 4, !tbaa !9
  %2211 = add nsw i32 %2210, 1
  %2212 = load i32, ptr %47, align 4, !tbaa !9
  %2213 = load i32, ptr %13, align 4, !tbaa !9
  %2214 = mul nsw i32 %2212, %2213
  %2215 = add nsw i32 %2211, %2214
  %2216 = sext i32 %2215 to i64
  %2217 = getelementptr inbounds %struct.complex, ptr %2209, i64 %2216
  call void @cswap_(ptr noundef %15, ptr noundef %2208, ptr noundef @c__1, ptr noundef %2217, ptr noundef @c__1)
  br label %2218

2218:                                             ; preds = %2195, %2190
  %2219 = load i32, ptr %46, align 4, !tbaa !9
  %2220 = load ptr, ptr %8, align 8, !tbaa !5
  %2221 = load i32, ptr %2220, align 4, !tbaa !9
  %2222 = icmp slt i32 %2219, %2221
  br i1 %2222, label %2223, label %2252

2223:                                             ; preds = %2218
  %2224 = load i32, ptr %47, align 4, !tbaa !9
  %2225 = load i32, ptr %46, align 4, !tbaa !9
  %2226 = add nsw i32 %2225, 1
  %2227 = icmp sgt i32 %2224, %2226
  br i1 %2227, label %2228, label %2252

2228:                                             ; preds = %2223
  %2229 = load i32, ptr %47, align 4, !tbaa !9
  %2230 = load i32, ptr %46, align 4, !tbaa !9
  %2231 = sub nsw i32 %2229, %2230
  %2232 = sub nsw i32 %2231, 1
  store i32 %2232, ptr %15, align 4, !tbaa !9
  %2233 = load ptr, ptr %9, align 8, !tbaa !5
  %2234 = load i32, ptr %46, align 4, !tbaa !9
  %2235 = add nsw i32 %2234, 1
  %2236 = load i32, ptr %46, align 4, !tbaa !9
  %2237 = load i32, ptr %13, align 4, !tbaa !9
  %2238 = mul nsw i32 %2236, %2237
  %2239 = add nsw i32 %2235, %2238
  %2240 = sext i32 %2239 to i64
  %2241 = getelementptr inbounds %struct.complex, ptr %2233, i64 %2240
  %2242 = load ptr, ptr %9, align 8, !tbaa !5
  %2243 = load i32, ptr %47, align 4, !tbaa !9
  %2244 = load i32, ptr %46, align 4, !tbaa !9
  %2245 = add nsw i32 %2244, 1
  %2246 = load i32, ptr %13, align 4, !tbaa !9
  %2247 = mul nsw i32 %2245, %2246
  %2248 = add nsw i32 %2243, %2247
  %2249 = sext i32 %2248 to i64
  %2250 = getelementptr inbounds %struct.complex, ptr %2242, i64 %2249
  %2251 = load ptr, ptr %10, align 8, !tbaa !5
  call void @cswap_(ptr noundef %15, ptr noundef %2241, ptr noundef @c__1, ptr noundef %2250, ptr noundef %2251)
  br label %2252

2252:                                             ; preds = %2228, %2223, %2218
  %2253 = load i32, ptr %46, align 4, !tbaa !9
  %2254 = load i32, ptr %46, align 4, !tbaa !9
  %2255 = load i32, ptr %13, align 4, !tbaa !9
  %2256 = mul nsw i32 %2254, %2255
  %2257 = add nsw i32 %2253, %2256
  store i32 %2257, ptr %15, align 4, !tbaa !9
  %2258 = load ptr, ptr %9, align 8, !tbaa !5
  %2259 = load i32, ptr %15, align 4, !tbaa !9
  %2260 = sext i32 %2259 to i64
  %2261 = getelementptr inbounds %struct.complex, ptr %2258, i64 %2260
  %2262 = getelementptr inbounds %struct.complex, ptr %2261, i32 0, i32 0
  %2263 = load float, ptr %2262, align 4, !tbaa !13
  %2264 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2263, ptr %2264, align 4, !tbaa !13
  %2265 = load ptr, ptr %9, align 8, !tbaa !5
  %2266 = load i32, ptr %15, align 4, !tbaa !9
  %2267 = sext i32 %2266 to i64
  %2268 = getelementptr inbounds %struct.complex, ptr %2265, i64 %2267
  %2269 = getelementptr inbounds %struct.complex, ptr %2268, i32 0, i32 1
  %2270 = load float, ptr %2269, align 4, !tbaa !15
  %2271 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %2270, ptr %2271, align 4, !tbaa !15
  %2272 = load i32, ptr %46, align 4, !tbaa !9
  %2273 = load i32, ptr %46, align 4, !tbaa !9
  %2274 = load i32, ptr %13, align 4, !tbaa !9
  %2275 = mul nsw i32 %2273, %2274
  %2276 = add nsw i32 %2272, %2275
  store i32 %2276, ptr %15, align 4, !tbaa !9
  %2277 = load i32, ptr %47, align 4, !tbaa !9
  %2278 = load i32, ptr %47, align 4, !tbaa !9
  %2279 = load i32, ptr %13, align 4, !tbaa !9
  %2280 = mul nsw i32 %2278, %2279
  %2281 = add nsw i32 %2277, %2280
  store i32 %2281, ptr %16, align 4, !tbaa !9
  %2282 = load ptr, ptr %9, align 8, !tbaa !5
  %2283 = load i32, ptr %16, align 4, !tbaa !9
  %2284 = sext i32 %2283 to i64
  %2285 = getelementptr inbounds %struct.complex, ptr %2282, i64 %2284
  %2286 = getelementptr inbounds %struct.complex, ptr %2285, i32 0, i32 0
  %2287 = load float, ptr %2286, align 4, !tbaa !13
  %2288 = load ptr, ptr %9, align 8, !tbaa !5
  %2289 = load i32, ptr %15, align 4, !tbaa !9
  %2290 = sext i32 %2289 to i64
  %2291 = getelementptr inbounds %struct.complex, ptr %2288, i64 %2290
  %2292 = getelementptr inbounds %struct.complex, ptr %2291, i32 0, i32 0
  store float %2287, ptr %2292, align 4, !tbaa !13
  %2293 = load ptr, ptr %9, align 8, !tbaa !5
  %2294 = load i32, ptr %16, align 4, !tbaa !9
  %2295 = sext i32 %2294 to i64
  %2296 = getelementptr inbounds %struct.complex, ptr %2293, i64 %2295
  %2297 = getelementptr inbounds %struct.complex, ptr %2296, i32 0, i32 1
  %2298 = load float, ptr %2297, align 4, !tbaa !15
  %2299 = load ptr, ptr %9, align 8, !tbaa !5
  %2300 = load i32, ptr %15, align 4, !tbaa !9
  %2301 = sext i32 %2300 to i64
  %2302 = getelementptr inbounds %struct.complex, ptr %2299, i64 %2301
  %2303 = getelementptr inbounds %struct.complex, ptr %2302, i32 0, i32 1
  store float %2298, ptr %2303, align 4, !tbaa !15
  %2304 = load i32, ptr %47, align 4, !tbaa !9
  %2305 = load i32, ptr %47, align 4, !tbaa !9
  %2306 = load i32, ptr %13, align 4, !tbaa !9
  %2307 = mul nsw i32 %2305, %2306
  %2308 = add nsw i32 %2304, %2307
  store i32 %2308, ptr %15, align 4, !tbaa !9
  %2309 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2310 = load float, ptr %2309, align 4, !tbaa !13
  %2311 = load ptr, ptr %9, align 8, !tbaa !5
  %2312 = load i32, ptr %15, align 4, !tbaa !9
  %2313 = sext i32 %2312 to i64
  %2314 = getelementptr inbounds %struct.complex, ptr %2311, i64 %2313
  %2315 = getelementptr inbounds %struct.complex, ptr %2314, i32 0, i32 0
  store float %2310, ptr %2315, align 4, !tbaa !13
  %2316 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2317 = load float, ptr %2316, align 4, !tbaa !15
  %2318 = load ptr, ptr %9, align 8, !tbaa !5
  %2319 = load i32, ptr %15, align 4, !tbaa !9
  %2320 = sext i32 %2319 to i64
  %2321 = getelementptr inbounds %struct.complex, ptr %2318, i64 %2320
  %2322 = getelementptr inbounds %struct.complex, ptr %2321, i32 0, i32 1
  store float %2317, ptr %2322, align 4, !tbaa !15
  %2323 = load i32, ptr %38, align 4, !tbaa !9
  %2324 = icmp eq i32 %2323, 2
  br i1 %2324, label %2325, label %2398

2325:                                             ; preds = %2252
  %2326 = load i32, ptr %32, align 4, !tbaa !9
  %2327 = add nsw i32 %2326, 1
  %2328 = load i32, ptr %32, align 4, !tbaa !9
  %2329 = load i32, ptr %13, align 4, !tbaa !9
  %2330 = mul nsw i32 %2328, %2329
  %2331 = add nsw i32 %2327, %2330
  store i32 %2331, ptr %15, align 4, !tbaa !9
  %2332 = load ptr, ptr %9, align 8, !tbaa !5
  %2333 = load i32, ptr %15, align 4, !tbaa !9
  %2334 = sext i32 %2333 to i64
  %2335 = getelementptr inbounds %struct.complex, ptr %2332, i64 %2334
  %2336 = getelementptr inbounds %struct.complex, ptr %2335, i32 0, i32 0
  %2337 = load float, ptr %2336, align 4, !tbaa !13
  %2338 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2337, ptr %2338, align 4, !tbaa !13
  %2339 = load ptr, ptr %9, align 8, !tbaa !5
  %2340 = load i32, ptr %15, align 4, !tbaa !9
  %2341 = sext i32 %2340 to i64
  %2342 = getelementptr inbounds %struct.complex, ptr %2339, i64 %2341
  %2343 = getelementptr inbounds %struct.complex, ptr %2342, i32 0, i32 1
  %2344 = load float, ptr %2343, align 4, !tbaa !15
  %2345 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %2344, ptr %2345, align 4, !tbaa !15
  %2346 = load i32, ptr %32, align 4, !tbaa !9
  %2347 = add nsw i32 %2346, 1
  %2348 = load i32, ptr %32, align 4, !tbaa !9
  %2349 = load i32, ptr %13, align 4, !tbaa !9
  %2350 = mul nsw i32 %2348, %2349
  %2351 = add nsw i32 %2347, %2350
  store i32 %2351, ptr %15, align 4, !tbaa !9
  %2352 = load i32, ptr %47, align 4, !tbaa !9
  %2353 = load i32, ptr %32, align 4, !tbaa !9
  %2354 = load i32, ptr %13, align 4, !tbaa !9
  %2355 = mul nsw i32 %2353, %2354
  %2356 = add nsw i32 %2352, %2355
  store i32 %2356, ptr %16, align 4, !tbaa !9
  %2357 = load ptr, ptr %9, align 8, !tbaa !5
  %2358 = load i32, ptr %16, align 4, !tbaa !9
  %2359 = sext i32 %2358 to i64
  %2360 = getelementptr inbounds %struct.complex, ptr %2357, i64 %2359
  %2361 = getelementptr inbounds %struct.complex, ptr %2360, i32 0, i32 0
  %2362 = load float, ptr %2361, align 4, !tbaa !13
  %2363 = load ptr, ptr %9, align 8, !tbaa !5
  %2364 = load i32, ptr %15, align 4, !tbaa !9
  %2365 = sext i32 %2364 to i64
  %2366 = getelementptr inbounds %struct.complex, ptr %2363, i64 %2365
  %2367 = getelementptr inbounds %struct.complex, ptr %2366, i32 0, i32 0
  store float %2362, ptr %2367, align 4, !tbaa !13
  %2368 = load ptr, ptr %9, align 8, !tbaa !5
  %2369 = load i32, ptr %16, align 4, !tbaa !9
  %2370 = sext i32 %2369 to i64
  %2371 = getelementptr inbounds %struct.complex, ptr %2368, i64 %2370
  %2372 = getelementptr inbounds %struct.complex, ptr %2371, i32 0, i32 1
  %2373 = load float, ptr %2372, align 4, !tbaa !15
  %2374 = load ptr, ptr %9, align 8, !tbaa !5
  %2375 = load i32, ptr %15, align 4, !tbaa !9
  %2376 = sext i32 %2375 to i64
  %2377 = getelementptr inbounds %struct.complex, ptr %2374, i64 %2376
  %2378 = getelementptr inbounds %struct.complex, ptr %2377, i32 0, i32 1
  store float %2373, ptr %2378, align 4, !tbaa !15
  %2379 = load i32, ptr %47, align 4, !tbaa !9
  %2380 = load i32, ptr %32, align 4, !tbaa !9
  %2381 = load i32, ptr %13, align 4, !tbaa !9
  %2382 = mul nsw i32 %2380, %2381
  %2383 = add nsw i32 %2379, %2382
  store i32 %2383, ptr %15, align 4, !tbaa !9
  %2384 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2385 = load float, ptr %2384, align 4, !tbaa !13
  %2386 = load ptr, ptr %9, align 8, !tbaa !5
  %2387 = load i32, ptr %15, align 4, !tbaa !9
  %2388 = sext i32 %2387 to i64
  %2389 = getelementptr inbounds %struct.complex, ptr %2386, i64 %2388
  %2390 = getelementptr inbounds %struct.complex, ptr %2389, i32 0, i32 0
  store float %2385, ptr %2390, align 4, !tbaa !13
  %2391 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2392 = load float, ptr %2391, align 4, !tbaa !15
  %2393 = load ptr, ptr %9, align 8, !tbaa !5
  %2394 = load i32, ptr %15, align 4, !tbaa !9
  %2395 = sext i32 %2394 to i64
  %2396 = getelementptr inbounds %struct.complex, ptr %2393, i64 %2395
  %2397 = getelementptr inbounds %struct.complex, ptr %2396, i32 0, i32 1
  store float %2392, ptr %2397, align 4, !tbaa !15
  br label %2398

2398:                                             ; preds = %2325, %2252
  br label %2399

2399:                                             ; preds = %2398, %2182
  %2400 = load i32, ptr %38, align 4, !tbaa !9
  %2401 = icmp eq i32 %2400, 1
  br i1 %2401, label %2402, label %2645

2402:                                             ; preds = %2399
  %2403 = load i32, ptr %32, align 4, !tbaa !9
  %2404 = load ptr, ptr %8, align 8, !tbaa !5
  %2405 = load i32, ptr %2404, align 4, !tbaa !9
  %2406 = icmp slt i32 %2403, %2405
  br i1 %2406, label %2407, label %2644

2407:                                             ; preds = %2402
  %2408 = load i32, ptr %32, align 4, !tbaa !9
  %2409 = load i32, ptr %32, align 4, !tbaa !9
  %2410 = load i32, ptr %13, align 4, !tbaa !9
  %2411 = mul nsw i32 %2409, %2410
  %2412 = add nsw i32 %2408, %2411
  store i32 %2412, ptr %15, align 4, !tbaa !9
  %2413 = load ptr, ptr %9, align 8, !tbaa !5
  %2414 = load i32, ptr %15, align 4, !tbaa !9
  %2415 = sext i32 %2414 to i64
  %2416 = getelementptr inbounds %struct.complex, ptr %2413, i64 %2415
  %2417 = getelementptr inbounds %struct.complex, ptr %2416, i32 0, i32 0
  %2418 = load float, ptr %2417, align 4, !tbaa !13
  store float %2418, ptr %19, align 4, !tbaa !11
  %2419 = load float, ptr %19, align 4, !tbaa !11
  %2420 = fcmp oge float %2419, 0.000000e+00
  br i1 %2420, label %2421, label %2423

2421:                                             ; preds = %2407
  %2422 = load float, ptr %19, align 4, !tbaa !11
  br label %2426

2423:                                             ; preds = %2407
  %2424 = load float, ptr %19, align 4, !tbaa !11
  %2425 = fneg float %2424
  br label %2426

2426:                                             ; preds = %2423, %2421
  %2427 = phi float [ %2422, %2421 ], [ %2425, %2423 ]
  %2428 = load ptr, ptr %9, align 8, !tbaa !5
  %2429 = load i32, ptr %32, align 4, !tbaa !9
  %2430 = load i32, ptr %32, align 4, !tbaa !9
  %2431 = load i32, ptr %13, align 4, !tbaa !9
  %2432 = mul nsw i32 %2430, %2431
  %2433 = add nsw i32 %2429, %2432
  %2434 = sext i32 %2433 to i64
  %2435 = getelementptr inbounds %struct.complex, ptr %2428, i64 %2434
  %2436 = call <2 x float> @Cf(ptr noundef %2435)
  store <2 x float> %2436, ptr %93, align 4
  %2437 = getelementptr inbounds { float, float }, ptr %93, i32 0, i32 0
  %2438 = load float, ptr %2437, align 4
  %2439 = getelementptr inbounds { float, float }, ptr %93, i32 0, i32 1
  %2440 = load float, ptr %2439, align 4
  store float %2440, ptr %20, align 4, !tbaa !11
  %2441 = load float, ptr %20, align 4, !tbaa !11
  %2442 = fcmp oge float %2441, 0.000000e+00
  br i1 %2442, label %2443, label %2445

2443:                                             ; preds = %2426
  %2444 = load float, ptr %20, align 4, !tbaa !11
  br label %2448

2445:                                             ; preds = %2426
  %2446 = load float, ptr %20, align 4, !tbaa !11
  %2447 = fneg float %2446
  br label %2448

2448:                                             ; preds = %2445, %2443
  %2449 = phi float [ %2444, %2443 ], [ %2447, %2445 ]
  %2450 = fadd float %2427, %2449
  %2451 = load float, ptr %36, align 4, !tbaa !11
  %2452 = fcmp oge float %2450, %2451
  br i1 %2452, label %2453, label %2532

2453:                                             ; preds = %2448
  %2454 = call <2 x float> @Cf(ptr noundef @c_b1)
  store <2 x float> %2454, ptr %94, align 4
  %2455 = getelementptr inbounds { float, float }, ptr %94, i32 0, i32 0
  %2456 = load float, ptr %2455, align 4
  %2457 = getelementptr inbounds { float, float }, ptr %94, i32 0, i32 1
  %2458 = load float, ptr %2457, align 4
  %2459 = load ptr, ptr %9, align 8, !tbaa !5
  %2460 = load i32, ptr %32, align 4, !tbaa !9
  %2461 = load i32, ptr %32, align 4, !tbaa !9
  %2462 = load i32, ptr %13, align 4, !tbaa !9
  %2463 = mul nsw i32 %2461, %2462
  %2464 = add nsw i32 %2460, %2463
  %2465 = sext i32 %2464 to i64
  %2466 = getelementptr inbounds %struct.complex, ptr %2459, i64 %2465
  %2467 = call <2 x float> @Cf(ptr noundef %2466)
  store <2 x float> %2467, ptr %95, align 4
  %2468 = getelementptr inbounds { float, float }, ptr %95, i32 0, i32 0
  %2469 = load float, ptr %2468, align 4
  %2470 = getelementptr inbounds { float, float }, ptr %95, i32 0, i32 1
  %2471 = load float, ptr %2470, align 4
  %2472 = call <2 x float> @__divsc3(float noundef %2456, float noundef %2458, float noundef %2469, float noundef %2471) #7
  store <2 x float> %2472, ptr %96, align 4
  %2473 = getelementptr inbounds { float, float }, ptr %96, i32 0, i32 0
  %2474 = load float, ptr %2473, align 4
  %2475 = getelementptr inbounds { float, float }, ptr %96, i32 0, i32 1
  %2476 = load float, ptr %2475, align 4
  %2477 = call ptr @_pCf(ptr noundef %21)
  %2478 = getelementptr inbounds { float, float }, ptr %2477, i32 0, i32 0
  %2479 = getelementptr inbounds { float, float }, ptr %2477, i32 0, i32 1
  store float %2474, ptr %2478, align 4
  store float %2476, ptr %2479, align 4
  %2480 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %2481 = load float, ptr %2480, align 4, !tbaa !13
  %2482 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %2481, ptr %2482, align 4, !tbaa !13
  %2483 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %2484 = load float, ptr %2483, align 4, !tbaa !15
  %2485 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %2484, ptr %2485, align 4, !tbaa !15
  %2486 = load ptr, ptr %8, align 8, !tbaa !5
  %2487 = load i32, ptr %2486, align 4, !tbaa !9
  %2488 = load i32, ptr %32, align 4, !tbaa !9
  %2489 = sub nsw i32 %2487, %2488
  store i32 %2489, ptr %15, align 4, !tbaa !9
  %2490 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2491 = load float, ptr %2490, align 4, !tbaa !13
  %2492 = fneg float %2491
  %2493 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  store float %2492, ptr %2493, align 4, !tbaa !13
  %2494 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2495 = load float, ptr %2494, align 4, !tbaa !15
  %2496 = fneg float %2495
  %2497 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  store float %2496, ptr %2497, align 4, !tbaa !15
  %2498 = load ptr, ptr %7, align 8, !tbaa !5
  %2499 = load ptr, ptr %9, align 8, !tbaa !5
  %2500 = load i32, ptr %32, align 4, !tbaa !9
  %2501 = add nsw i32 %2500, 1
  %2502 = load i32, ptr %32, align 4, !tbaa !9
  %2503 = load i32, ptr %13, align 4, !tbaa !9
  %2504 = mul nsw i32 %2502, %2503
  %2505 = add nsw i32 %2501, %2504
  %2506 = sext i32 %2505 to i64
  %2507 = getelementptr inbounds %struct.complex, ptr %2499, i64 %2506
  %2508 = load ptr, ptr %9, align 8, !tbaa !5
  %2509 = load i32, ptr %32, align 4, !tbaa !9
  %2510 = add nsw i32 %2509, 1
  %2511 = load i32, ptr %32, align 4, !tbaa !9
  %2512 = add nsw i32 %2511, 1
  %2513 = load i32, ptr %13, align 4, !tbaa !9
  %2514 = mul nsw i32 %2512, %2513
  %2515 = add nsw i32 %2510, %2514
  %2516 = sext i32 %2515 to i64
  %2517 = getelementptr inbounds %struct.complex, ptr %2508, i64 %2516
  %2518 = load ptr, ptr %10, align 8, !tbaa !5
  call void @csyr_(ptr noundef %2498, ptr noundef %15, ptr noundef %21, ptr noundef %2507, ptr noundef @c__1, ptr noundef %2517, ptr noundef %2518)
  %2519 = load ptr, ptr %8, align 8, !tbaa !5
  %2520 = load i32, ptr %2519, align 4, !tbaa !9
  %2521 = load i32, ptr %32, align 4, !tbaa !9
  %2522 = sub nsw i32 %2520, %2521
  store i32 %2522, ptr %15, align 4, !tbaa !9
  %2523 = load ptr, ptr %9, align 8, !tbaa !5
  %2524 = load i32, ptr %32, align 4, !tbaa !9
  %2525 = add nsw i32 %2524, 1
  %2526 = load i32, ptr %32, align 4, !tbaa !9
  %2527 = load i32, ptr %13, align 4, !tbaa !9
  %2528 = mul nsw i32 %2526, %2527
  %2529 = add nsw i32 %2525, %2528
  %2530 = sext i32 %2529 to i64
  %2531 = getelementptr inbounds %struct.complex, ptr %2523, i64 %2530
  call void @cscal_(ptr noundef %15, ptr noundef %41, ptr noundef %2531, ptr noundef @c__1)
  br label %2643

2532:                                             ; preds = %2448
  %2533 = load i32, ptr %32, align 4, !tbaa !9
  %2534 = load i32, ptr %32, align 4, !tbaa !9
  %2535 = load i32, ptr %13, align 4, !tbaa !9
  %2536 = mul nsw i32 %2534, %2535
  %2537 = add nsw i32 %2533, %2536
  store i32 %2537, ptr %15, align 4, !tbaa !9
  %2538 = load ptr, ptr %9, align 8, !tbaa !5
  %2539 = load i32, ptr %15, align 4, !tbaa !9
  %2540 = sext i32 %2539 to i64
  %2541 = getelementptr inbounds %struct.complex, ptr %2538, i64 %2540
  %2542 = getelementptr inbounds %struct.complex, ptr %2541, i32 0, i32 0
  %2543 = load float, ptr %2542, align 4, !tbaa !13
  %2544 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %2543, ptr %2544, align 4, !tbaa !13
  %2545 = load ptr, ptr %9, align 8, !tbaa !5
  %2546 = load i32, ptr %15, align 4, !tbaa !9
  %2547 = sext i32 %2546 to i64
  %2548 = getelementptr inbounds %struct.complex, ptr %2545, i64 %2547
  %2549 = getelementptr inbounds %struct.complex, ptr %2548, i32 0, i32 1
  %2550 = load float, ptr %2549, align 4, !tbaa !15
  %2551 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %2550, ptr %2551, align 4, !tbaa !15
  %2552 = load ptr, ptr %8, align 8, !tbaa !5
  %2553 = load i32, ptr %2552, align 4, !tbaa !9
  store i32 %2553, ptr %15, align 4, !tbaa !9
  %2554 = load i32, ptr %32, align 4, !tbaa !9
  %2555 = add nsw i32 %2554, 1
  store i32 %2555, ptr %45, align 4, !tbaa !9
  br label %2556

2556:                                             ; preds = %2606, %2532
  %2557 = load i32, ptr %45, align 4, !tbaa !9
  %2558 = load i32, ptr %15, align 4, !tbaa !9
  %2559 = icmp sle i32 %2557, %2558
  br i1 %2559, label %2560, label %2609

2560:                                             ; preds = %2556
  %2561 = load i32, ptr %45, align 4, !tbaa !9
  %2562 = load i32, ptr %32, align 4, !tbaa !9
  %2563 = load i32, ptr %13, align 4, !tbaa !9
  %2564 = mul nsw i32 %2562, %2563
  %2565 = add nsw i32 %2561, %2564
  store i32 %2565, ptr %16, align 4, !tbaa !9
  %2566 = load ptr, ptr %9, align 8, !tbaa !5
  %2567 = load i32, ptr %45, align 4, !tbaa !9
  %2568 = load i32, ptr %32, align 4, !tbaa !9
  %2569 = load i32, ptr %13, align 4, !tbaa !9
  %2570 = mul nsw i32 %2568, %2569
  %2571 = add nsw i32 %2567, %2570
  %2572 = sext i32 %2571 to i64
  %2573 = getelementptr inbounds %struct.complex, ptr %2566, i64 %2572
  %2574 = call <2 x float> @Cf(ptr noundef %2573)
  store <2 x float> %2574, ptr %97, align 4
  %2575 = getelementptr inbounds { float, float }, ptr %97, i32 0, i32 0
  %2576 = load float, ptr %2575, align 4
  %2577 = getelementptr inbounds { float, float }, ptr %97, i32 0, i32 1
  %2578 = load float, ptr %2577, align 4
  %2579 = call <2 x float> @Cf(ptr noundef %41)
  store <2 x float> %2579, ptr %98, align 4
  %2580 = getelementptr inbounds { float, float }, ptr %98, i32 0, i32 0
  %2581 = load float, ptr %2580, align 4
  %2582 = getelementptr inbounds { float, float }, ptr %98, i32 0, i32 1
  %2583 = load float, ptr %2582, align 4
  %2584 = call <2 x float> @__divsc3(float noundef %2576, float noundef %2578, float noundef %2581, float noundef %2583) #7
  store <2 x float> %2584, ptr %99, align 4
  %2585 = getelementptr inbounds { float, float }, ptr %99, i32 0, i32 0
  %2586 = load float, ptr %2585, align 4
  %2587 = getelementptr inbounds { float, float }, ptr %99, i32 0, i32 1
  %2588 = load float, ptr %2587, align 4
  %2589 = call ptr @_pCf(ptr noundef %21)
  %2590 = getelementptr inbounds { float, float }, ptr %2589, i32 0, i32 0
  %2591 = getelementptr inbounds { float, float }, ptr %2589, i32 0, i32 1
  store float %2586, ptr %2590, align 4
  store float %2588, ptr %2591, align 4
  %2592 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %2593 = load float, ptr %2592, align 4, !tbaa !13
  %2594 = load ptr, ptr %9, align 8, !tbaa !5
  %2595 = load i32, ptr %16, align 4, !tbaa !9
  %2596 = sext i32 %2595 to i64
  %2597 = getelementptr inbounds %struct.complex, ptr %2594, i64 %2596
  %2598 = getelementptr inbounds %struct.complex, ptr %2597, i32 0, i32 0
  store float %2593, ptr %2598, align 4, !tbaa !13
  %2599 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %2600 = load float, ptr %2599, align 4, !tbaa !15
  %2601 = load ptr, ptr %9, align 8, !tbaa !5
  %2602 = load i32, ptr %16, align 4, !tbaa !9
  %2603 = sext i32 %2602 to i64
  %2604 = getelementptr inbounds %struct.complex, ptr %2601, i64 %2603
  %2605 = getelementptr inbounds %struct.complex, ptr %2604, i32 0, i32 1
  store float %2600, ptr %2605, align 4, !tbaa !15
  br label %2606

2606:                                             ; preds = %2560
  %2607 = load i32, ptr %45, align 4, !tbaa !9
  %2608 = add nsw i32 %2607, 1
  store i32 %2608, ptr %45, align 4, !tbaa !9
  br label %2556, !llvm.loop !20

2609:                                             ; preds = %2556
  %2610 = load ptr, ptr %8, align 8, !tbaa !5
  %2611 = load i32, ptr %2610, align 4, !tbaa !9
  %2612 = load i32, ptr %32, align 4, !tbaa !9
  %2613 = sub nsw i32 %2611, %2612
  store i32 %2613, ptr %15, align 4, !tbaa !9
  %2614 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2615 = load float, ptr %2614, align 4, !tbaa !13
  %2616 = fneg float %2615
  %2617 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  store float %2616, ptr %2617, align 4, !tbaa !13
  %2618 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2619 = load float, ptr %2618, align 4, !tbaa !15
  %2620 = fneg float %2619
  %2621 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  store float %2620, ptr %2621, align 4, !tbaa !15
  %2622 = load ptr, ptr %7, align 8, !tbaa !5
  %2623 = load ptr, ptr %9, align 8, !tbaa !5
  %2624 = load i32, ptr %32, align 4, !tbaa !9
  %2625 = add nsw i32 %2624, 1
  %2626 = load i32, ptr %32, align 4, !tbaa !9
  %2627 = load i32, ptr %13, align 4, !tbaa !9
  %2628 = mul nsw i32 %2626, %2627
  %2629 = add nsw i32 %2625, %2628
  %2630 = sext i32 %2629 to i64
  %2631 = getelementptr inbounds %struct.complex, ptr %2623, i64 %2630
  %2632 = load ptr, ptr %9, align 8, !tbaa !5
  %2633 = load i32, ptr %32, align 4, !tbaa !9
  %2634 = add nsw i32 %2633, 1
  %2635 = load i32, ptr %32, align 4, !tbaa !9
  %2636 = add nsw i32 %2635, 1
  %2637 = load i32, ptr %13, align 4, !tbaa !9
  %2638 = mul nsw i32 %2636, %2637
  %2639 = add nsw i32 %2634, %2638
  %2640 = sext i32 %2639 to i64
  %2641 = getelementptr inbounds %struct.complex, ptr %2632, i64 %2640
  %2642 = load ptr, ptr %10, align 8, !tbaa !5
  call void @csyr_(ptr noundef %2622, ptr noundef %15, ptr noundef %21, ptr noundef %2631, ptr noundef @c__1, ptr noundef %2641, ptr noundef %2642)
  br label %2643

2643:                                             ; preds = %2609, %2453
  br label %2644

2644:                                             ; preds = %2643, %2402
  br label %3247

2645:                                             ; preds = %2399
  %2646 = load i32, ptr %32, align 4, !tbaa !9
  %2647 = load ptr, ptr %8, align 8, !tbaa !5
  %2648 = load i32, ptr %2647, align 4, !tbaa !9
  %2649 = sub nsw i32 %2648, 1
  %2650 = icmp slt i32 %2646, %2649
  br i1 %2650, label %2651, label %3246

2651:                                             ; preds = %2645
  %2652 = load i32, ptr %32, align 4, !tbaa !9
  %2653 = add nsw i32 %2652, 1
  %2654 = load i32, ptr %32, align 4, !tbaa !9
  %2655 = load i32, ptr %13, align 4, !tbaa !9
  %2656 = mul nsw i32 %2654, %2655
  %2657 = add nsw i32 %2653, %2656
  store i32 %2657, ptr %15, align 4, !tbaa !9
  %2658 = load ptr, ptr %9, align 8, !tbaa !5
  %2659 = load i32, ptr %15, align 4, !tbaa !9
  %2660 = sext i32 %2659 to i64
  %2661 = getelementptr inbounds %struct.complex, ptr %2658, i64 %2660
  %2662 = getelementptr inbounds %struct.complex, ptr %2661, i32 0, i32 0
  %2663 = load float, ptr %2662, align 4, !tbaa !13
  %2664 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %2663, ptr %2664, align 4, !tbaa !13
  %2665 = load ptr, ptr %9, align 8, !tbaa !5
  %2666 = load i32, ptr %15, align 4, !tbaa !9
  %2667 = sext i32 %2666 to i64
  %2668 = getelementptr inbounds %struct.complex, ptr %2665, i64 %2667
  %2669 = getelementptr inbounds %struct.complex, ptr %2668, i32 0, i32 1
  %2670 = load float, ptr %2669, align 4, !tbaa !15
  %2671 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %2670, ptr %2671, align 4, !tbaa !15
  %2672 = load ptr, ptr %9, align 8, !tbaa !5
  %2673 = load i32, ptr %32, align 4, !tbaa !9
  %2674 = add nsw i32 %2673, 1
  %2675 = load i32, ptr %32, align 4, !tbaa !9
  %2676 = add nsw i32 %2675, 1
  %2677 = load i32, ptr %13, align 4, !tbaa !9
  %2678 = mul nsw i32 %2676, %2677
  %2679 = add nsw i32 %2674, %2678
  %2680 = sext i32 %2679 to i64
  %2681 = getelementptr inbounds %struct.complex, ptr %2672, i64 %2680
  %2682 = call <2 x float> @Cf(ptr noundef %2681)
  store <2 x float> %2682, ptr %100, align 4
  %2683 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 0
  %2684 = load float, ptr %2683, align 4
  %2685 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 1
  %2686 = load float, ptr %2685, align 4
  %2687 = call <2 x float> @Cf(ptr noundef %43)
  store <2 x float> %2687, ptr %101, align 4
  %2688 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 0
  %2689 = load float, ptr %2688, align 4
  %2690 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 1
  %2691 = load float, ptr %2690, align 4
  %2692 = call <2 x float> @__divsc3(float noundef %2684, float noundef %2686, float noundef %2689, float noundef %2691) #7
  store <2 x float> %2692, ptr %102, align 4
  %2693 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 0
  %2694 = load float, ptr %2693, align 4
  %2695 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 1
  %2696 = load float, ptr %2695, align 4
  %2697 = call ptr @_pCf(ptr noundef %21)
  %2698 = getelementptr inbounds { float, float }, ptr %2697, i32 0, i32 0
  %2699 = getelementptr inbounds { float, float }, ptr %2697, i32 0, i32 1
  store float %2694, ptr %2698, align 4
  store float %2696, ptr %2699, align 4
  %2700 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %2701 = load float, ptr %2700, align 4, !tbaa !13
  %2702 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %2701, ptr %2702, align 4, !tbaa !13
  %2703 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %2704 = load float, ptr %2703, align 4, !tbaa !15
  %2705 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %2704, ptr %2705, align 4, !tbaa !15
  %2706 = load ptr, ptr %9, align 8, !tbaa !5
  %2707 = load i32, ptr %32, align 4, !tbaa !9
  %2708 = load i32, ptr %32, align 4, !tbaa !9
  %2709 = load i32, ptr %13, align 4, !tbaa !9
  %2710 = mul nsw i32 %2708, %2709
  %2711 = add nsw i32 %2707, %2710
  %2712 = sext i32 %2711 to i64
  %2713 = getelementptr inbounds %struct.complex, ptr %2706, i64 %2712
  %2714 = call <2 x float> @Cf(ptr noundef %2713)
  store <2 x float> %2714, ptr %103, align 4
  %2715 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 0
  %2716 = load float, ptr %2715, align 4
  %2717 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 1
  %2718 = load float, ptr %2717, align 4
  %2719 = call <2 x float> @Cf(ptr noundef %43)
  store <2 x float> %2719, ptr %104, align 4
  %2720 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 0
  %2721 = load float, ptr %2720, align 4
  %2722 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 1
  %2723 = load float, ptr %2722, align 4
  %2724 = call <2 x float> @__divsc3(float noundef %2716, float noundef %2718, float noundef %2721, float noundef %2723) #7
  store <2 x float> %2724, ptr %105, align 4
  %2725 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 0
  %2726 = load float, ptr %2725, align 4
  %2727 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 1
  %2728 = load float, ptr %2727, align 4
  %2729 = call ptr @_pCf(ptr noundef %21)
  %2730 = getelementptr inbounds { float, float }, ptr %2729, i32 0, i32 0
  %2731 = getelementptr inbounds { float, float }, ptr %2729, i32 0, i32 1
  store float %2726, ptr %2730, align 4
  store float %2728, ptr %2731, align 4
  %2732 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %2733 = load float, ptr %2732, align 4, !tbaa !13
  %2734 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %2733, ptr %2734, align 4, !tbaa !13
  %2735 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %2736 = load float, ptr %2735, align 4, !tbaa !15
  %2737 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %2736, ptr %2737, align 4, !tbaa !15
  %2738 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2739 = load float, ptr %2738, align 4, !tbaa !13
  %2740 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2741 = load float, ptr %2740, align 4, !tbaa !13
  %2742 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2743 = load float, ptr %2742, align 4, !tbaa !15
  %2744 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2745 = load float, ptr %2744, align 4, !tbaa !15
  %2746 = fmul float %2743, %2745
  %2747 = fneg float %2746
  %2748 = call float @llvm.fmuladd.f32(float %2739, float %2741, float %2747)
  %2749 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %2748, ptr %2749, align 4, !tbaa !13
  %2750 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2751 = load float, ptr %2750, align 4, !tbaa !13
  %2752 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2753 = load float, ptr %2752, align 4, !tbaa !15
  %2754 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2755 = load float, ptr %2754, align 4, !tbaa !15
  %2756 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2757 = load float, ptr %2756, align 4, !tbaa !13
  %2758 = fmul float %2755, %2757
  %2759 = call float @llvm.fmuladd.f32(float %2751, float %2753, float %2758)
  %2760 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %2759, ptr %2760, align 4, !tbaa !15
  %2761 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %2762 = load float, ptr %2761, align 4, !tbaa !13
  %2763 = fsub float %2762, 1.000000e+00
  %2764 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  store float %2763, ptr %2764, align 4, !tbaa !13
  %2765 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %2766 = load float, ptr %2765, align 4, !tbaa !15
  %2767 = fadd float %2766, 0.000000e+00
  %2768 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  store float %2767, ptr %2768, align 4, !tbaa !15
  %2769 = call <2 x float> @Cf(ptr noundef @c_b1)
  store <2 x float> %2769, ptr %106, align 4
  %2770 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 0
  %2771 = load float, ptr %2770, align 4
  %2772 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 1
  %2773 = load float, ptr %2772, align 4
  %2774 = call <2 x float> @Cf(ptr noundef %22)
  store <2 x float> %2774, ptr %107, align 4
  %2775 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 0
  %2776 = load float, ptr %2775, align 4
  %2777 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 1
  %2778 = load float, ptr %2777, align 4
  %2779 = call <2 x float> @__divsc3(float noundef %2771, float noundef %2773, float noundef %2776, float noundef %2778) #7
  store <2 x float> %2779, ptr %108, align 4
  %2780 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 0
  %2781 = load float, ptr %2780, align 4
  %2782 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 1
  %2783 = load float, ptr %2782, align 4
  %2784 = call ptr @_pCf(ptr noundef %21)
  %2785 = getelementptr inbounds { float, float }, ptr %2784, i32 0, i32 0
  %2786 = getelementptr inbounds { float, float }, ptr %2784, i32 0, i32 1
  store float %2781, ptr %2785, align 4
  store float %2783, ptr %2786, align 4
  %2787 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %2788 = load float, ptr %2787, align 4, !tbaa !13
  %2789 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %2788, ptr %2789, align 4, !tbaa !13
  %2790 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %2791 = load float, ptr %2790, align 4, !tbaa !15
  %2792 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %2791, ptr %2792, align 4, !tbaa !15
  %2793 = load ptr, ptr %8, align 8, !tbaa !5
  %2794 = load i32, ptr %2793, align 4, !tbaa !9
  store i32 %2794, ptr %15, align 4, !tbaa !9
  %2795 = load i32, ptr %32, align 4, !tbaa !9
  %2796 = add nsw i32 %2795, 2
  store i32 %2796, ptr %31, align 4, !tbaa !9
  br label %2797

2797:                                             ; preds = %3242, %2651
  %2798 = load i32, ptr %31, align 4, !tbaa !9
  %2799 = load i32, ptr %15, align 4, !tbaa !9
  %2800 = icmp sle i32 %2798, %2799
  br i1 %2800, label %2801, label %3245

2801:                                             ; preds = %2797
  %2802 = load i32, ptr %31, align 4, !tbaa !9
  %2803 = load i32, ptr %32, align 4, !tbaa !9
  %2804 = load i32, ptr %13, align 4, !tbaa !9
  %2805 = mul nsw i32 %2803, %2804
  %2806 = add nsw i32 %2802, %2805
  store i32 %2806, ptr %16, align 4, !tbaa !9
  %2807 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2808 = load float, ptr %2807, align 4, !tbaa !13
  %2809 = load ptr, ptr %9, align 8, !tbaa !5
  %2810 = load i32, ptr %16, align 4, !tbaa !9
  %2811 = sext i32 %2810 to i64
  %2812 = getelementptr inbounds %struct.complex, ptr %2809, i64 %2811
  %2813 = getelementptr inbounds %struct.complex, ptr %2812, i32 0, i32 0
  %2814 = load float, ptr %2813, align 4, !tbaa !13
  %2815 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2816 = load float, ptr %2815, align 4, !tbaa !15
  %2817 = load ptr, ptr %9, align 8, !tbaa !5
  %2818 = load i32, ptr %16, align 4, !tbaa !9
  %2819 = sext i32 %2818 to i64
  %2820 = getelementptr inbounds %struct.complex, ptr %2817, i64 %2819
  %2821 = getelementptr inbounds %struct.complex, ptr %2820, i32 0, i32 1
  %2822 = load float, ptr %2821, align 4, !tbaa !15
  %2823 = fmul float %2816, %2822
  %2824 = fneg float %2823
  %2825 = call float @llvm.fmuladd.f32(float %2808, float %2814, float %2824)
  %2826 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %2825, ptr %2826, align 4, !tbaa !13
  %2827 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2828 = load float, ptr %2827, align 4, !tbaa !13
  %2829 = load ptr, ptr %9, align 8, !tbaa !5
  %2830 = load i32, ptr %16, align 4, !tbaa !9
  %2831 = sext i32 %2830 to i64
  %2832 = getelementptr inbounds %struct.complex, ptr %2829, i64 %2831
  %2833 = getelementptr inbounds %struct.complex, ptr %2832, i32 0, i32 1
  %2834 = load float, ptr %2833, align 4, !tbaa !15
  %2835 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2836 = load float, ptr %2835, align 4, !tbaa !15
  %2837 = load ptr, ptr %9, align 8, !tbaa !5
  %2838 = load i32, ptr %16, align 4, !tbaa !9
  %2839 = sext i32 %2838 to i64
  %2840 = getelementptr inbounds %struct.complex, ptr %2837, i64 %2839
  %2841 = getelementptr inbounds %struct.complex, ptr %2840, i32 0, i32 0
  %2842 = load float, ptr %2841, align 4, !tbaa !13
  %2843 = fmul float %2836, %2842
  %2844 = call float @llvm.fmuladd.f32(float %2828, float %2834, float %2843)
  %2845 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %2844, ptr %2845, align 4, !tbaa !15
  %2846 = load i32, ptr %31, align 4, !tbaa !9
  %2847 = load i32, ptr %32, align 4, !tbaa !9
  %2848 = add nsw i32 %2847, 1
  %2849 = load i32, ptr %13, align 4, !tbaa !9
  %2850 = mul nsw i32 %2848, %2849
  %2851 = add nsw i32 %2846, %2850
  store i32 %2851, ptr %17, align 4, !tbaa !9
  %2852 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %2853 = load float, ptr %2852, align 4, !tbaa !13
  %2854 = load ptr, ptr %9, align 8, !tbaa !5
  %2855 = load i32, ptr %17, align 4, !tbaa !9
  %2856 = sext i32 %2855 to i64
  %2857 = getelementptr inbounds %struct.complex, ptr %2854, i64 %2856
  %2858 = getelementptr inbounds %struct.complex, ptr %2857, i32 0, i32 0
  %2859 = load float, ptr %2858, align 4, !tbaa !13
  %2860 = fsub float %2853, %2859
  %2861 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  store float %2860, ptr %2861, align 4, !tbaa !13
  %2862 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %2863 = load float, ptr %2862, align 4, !tbaa !15
  %2864 = load ptr, ptr %9, align 8, !tbaa !5
  %2865 = load i32, ptr %17, align 4, !tbaa !9
  %2866 = sext i32 %2865 to i64
  %2867 = getelementptr inbounds %struct.complex, ptr %2864, i64 %2866
  %2868 = getelementptr inbounds %struct.complex, ptr %2867, i32 0, i32 1
  %2869 = load float, ptr %2868, align 4, !tbaa !15
  %2870 = fsub float %2863, %2869
  %2871 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  store float %2870, ptr %2871, align 4, !tbaa !15
  %2872 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2873 = load float, ptr %2872, align 4, !tbaa !13
  %2874 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  %2875 = load float, ptr %2874, align 4, !tbaa !13
  %2876 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2877 = load float, ptr %2876, align 4, !tbaa !15
  %2878 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  %2879 = load float, ptr %2878, align 4, !tbaa !15
  %2880 = fmul float %2877, %2879
  %2881 = fneg float %2880
  %2882 = call float @llvm.fmuladd.f32(float %2873, float %2875, float %2881)
  %2883 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  store float %2882, ptr %2883, align 4, !tbaa !13
  %2884 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2885 = load float, ptr %2884, align 4, !tbaa !13
  %2886 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  %2887 = load float, ptr %2886, align 4, !tbaa !15
  %2888 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2889 = load float, ptr %2888, align 4, !tbaa !15
  %2890 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  %2891 = load float, ptr %2890, align 4, !tbaa !13
  %2892 = fmul float %2889, %2891
  %2893 = call float @llvm.fmuladd.f32(float %2885, float %2887, float %2892)
  %2894 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  store float %2893, ptr %2894, align 4, !tbaa !15
  %2895 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %2896 = load float, ptr %2895, align 4, !tbaa !13
  %2897 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %2896, ptr %2897, align 4, !tbaa !13
  %2898 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %2899 = load float, ptr %2898, align 4, !tbaa !15
  %2900 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %2899, ptr %2900, align 4, !tbaa !15
  %2901 = load i32, ptr %31, align 4, !tbaa !9
  %2902 = load i32, ptr %32, align 4, !tbaa !9
  %2903 = add nsw i32 %2902, 1
  %2904 = load i32, ptr %13, align 4, !tbaa !9
  %2905 = mul nsw i32 %2903, %2904
  %2906 = add nsw i32 %2901, %2905
  store i32 %2906, ptr %16, align 4, !tbaa !9
  %2907 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2908 = load float, ptr %2907, align 4, !tbaa !13
  %2909 = load ptr, ptr %9, align 8, !tbaa !5
  %2910 = load i32, ptr %16, align 4, !tbaa !9
  %2911 = sext i32 %2910 to i64
  %2912 = getelementptr inbounds %struct.complex, ptr %2909, i64 %2911
  %2913 = getelementptr inbounds %struct.complex, ptr %2912, i32 0, i32 0
  %2914 = load float, ptr %2913, align 4, !tbaa !13
  %2915 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2916 = load float, ptr %2915, align 4, !tbaa !15
  %2917 = load ptr, ptr %9, align 8, !tbaa !5
  %2918 = load i32, ptr %16, align 4, !tbaa !9
  %2919 = sext i32 %2918 to i64
  %2920 = getelementptr inbounds %struct.complex, ptr %2917, i64 %2919
  %2921 = getelementptr inbounds %struct.complex, ptr %2920, i32 0, i32 1
  %2922 = load float, ptr %2921, align 4, !tbaa !15
  %2923 = fmul float %2916, %2922
  %2924 = fneg float %2923
  %2925 = call float @llvm.fmuladd.f32(float %2908, float %2914, float %2924)
  %2926 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %2925, ptr %2926, align 4, !tbaa !13
  %2927 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2928 = load float, ptr %2927, align 4, !tbaa !13
  %2929 = load ptr, ptr %9, align 8, !tbaa !5
  %2930 = load i32, ptr %16, align 4, !tbaa !9
  %2931 = sext i32 %2930 to i64
  %2932 = getelementptr inbounds %struct.complex, ptr %2929, i64 %2931
  %2933 = getelementptr inbounds %struct.complex, ptr %2932, i32 0, i32 1
  %2934 = load float, ptr %2933, align 4, !tbaa !15
  %2935 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2936 = load float, ptr %2935, align 4, !tbaa !15
  %2937 = load ptr, ptr %9, align 8, !tbaa !5
  %2938 = load i32, ptr %16, align 4, !tbaa !9
  %2939 = sext i32 %2938 to i64
  %2940 = getelementptr inbounds %struct.complex, ptr %2937, i64 %2939
  %2941 = getelementptr inbounds %struct.complex, ptr %2940, i32 0, i32 0
  %2942 = load float, ptr %2941, align 4, !tbaa !13
  %2943 = fmul float %2936, %2942
  %2944 = call float @llvm.fmuladd.f32(float %2928, float %2934, float %2943)
  %2945 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %2944, ptr %2945, align 4, !tbaa !15
  %2946 = load i32, ptr %31, align 4, !tbaa !9
  %2947 = load i32, ptr %32, align 4, !tbaa !9
  %2948 = load i32, ptr %13, align 4, !tbaa !9
  %2949 = mul nsw i32 %2947, %2948
  %2950 = add nsw i32 %2946, %2949
  store i32 %2950, ptr %17, align 4, !tbaa !9
  %2951 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %2952 = load float, ptr %2951, align 4, !tbaa !13
  %2953 = load ptr, ptr %9, align 8, !tbaa !5
  %2954 = load i32, ptr %17, align 4, !tbaa !9
  %2955 = sext i32 %2954 to i64
  %2956 = getelementptr inbounds %struct.complex, ptr %2953, i64 %2955
  %2957 = getelementptr inbounds %struct.complex, ptr %2956, i32 0, i32 0
  %2958 = load float, ptr %2957, align 4, !tbaa !13
  %2959 = fsub float %2952, %2958
  %2960 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  store float %2959, ptr %2960, align 4, !tbaa !13
  %2961 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %2962 = load float, ptr %2961, align 4, !tbaa !15
  %2963 = load ptr, ptr %9, align 8, !tbaa !5
  %2964 = load i32, ptr %17, align 4, !tbaa !9
  %2965 = sext i32 %2964 to i64
  %2966 = getelementptr inbounds %struct.complex, ptr %2963, i64 %2965
  %2967 = getelementptr inbounds %struct.complex, ptr %2966, i32 0, i32 1
  %2968 = load float, ptr %2967, align 4, !tbaa !15
  %2969 = fsub float %2962, %2968
  %2970 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  store float %2969, ptr %2970, align 4, !tbaa !15
  %2971 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2972 = load float, ptr %2971, align 4, !tbaa !13
  %2973 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  %2974 = load float, ptr %2973, align 4, !tbaa !13
  %2975 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2976 = load float, ptr %2975, align 4, !tbaa !15
  %2977 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  %2978 = load float, ptr %2977, align 4, !tbaa !15
  %2979 = fmul float %2976, %2978
  %2980 = fneg float %2979
  %2981 = call float @llvm.fmuladd.f32(float %2972, float %2974, float %2980)
  %2982 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  store float %2981, ptr %2982, align 4, !tbaa !13
  %2983 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  %2984 = load float, ptr %2983, align 4, !tbaa !13
  %2985 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  %2986 = load float, ptr %2985, align 4, !tbaa !15
  %2987 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  %2988 = load float, ptr %2987, align 4, !tbaa !15
  %2989 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  %2990 = load float, ptr %2989, align 4, !tbaa !13
  %2991 = fmul float %2988, %2990
  %2992 = call float @llvm.fmuladd.f32(float %2984, float %2986, float %2991)
  %2993 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  store float %2992, ptr %2993, align 4, !tbaa !15
  %2994 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %2995 = load float, ptr %2994, align 4, !tbaa !13
  %2996 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  store float %2995, ptr %2996, align 4, !tbaa !13
  %2997 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %2998 = load float, ptr %2997, align 4, !tbaa !15
  %2999 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  store float %2998, ptr %2999, align 4, !tbaa !15
  %3000 = load ptr, ptr %8, align 8, !tbaa !5
  %3001 = load i32, ptr %3000, align 4, !tbaa !9
  store i32 %3001, ptr %16, align 4, !tbaa !9
  %3002 = load i32, ptr %31, align 4, !tbaa !9
  store i32 %3002, ptr %30, align 4, !tbaa !9
  br label %3003

3003:                                             ; preds = %3163, %2801
  %3004 = load i32, ptr %30, align 4, !tbaa !9
  %3005 = load i32, ptr %16, align 4, !tbaa !9
  %3006 = icmp sle i32 %3004, %3005
  br i1 %3006, label %3007, label %3166

3007:                                             ; preds = %3003
  %3008 = load i32, ptr %30, align 4, !tbaa !9
  %3009 = load i32, ptr %31, align 4, !tbaa !9
  %3010 = load i32, ptr %13, align 4, !tbaa !9
  %3011 = mul nsw i32 %3009, %3010
  %3012 = add nsw i32 %3008, %3011
  store i32 %3012, ptr %17, align 4, !tbaa !9
  %3013 = load i32, ptr %30, align 4, !tbaa !9
  %3014 = load i32, ptr %31, align 4, !tbaa !9
  %3015 = load i32, ptr %13, align 4, !tbaa !9
  %3016 = mul nsw i32 %3014, %3015
  %3017 = add nsw i32 %3013, %3016
  store i32 %3017, ptr %18, align 4, !tbaa !9
  %3018 = load ptr, ptr %9, align 8, !tbaa !5
  %3019 = load i32, ptr %30, align 4, !tbaa !9
  %3020 = load i32, ptr %32, align 4, !tbaa !9
  %3021 = load i32, ptr %13, align 4, !tbaa !9
  %3022 = mul nsw i32 %3020, %3021
  %3023 = add nsw i32 %3019, %3022
  %3024 = sext i32 %3023 to i64
  %3025 = getelementptr inbounds %struct.complex, ptr %3018, i64 %3024
  %3026 = call <2 x float> @Cf(ptr noundef %3025)
  store <2 x float> %3026, ptr %109, align 4
  %3027 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 0
  %3028 = load float, ptr %3027, align 4
  %3029 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 1
  %3030 = load float, ptr %3029, align 4
  %3031 = call <2 x float> @Cf(ptr noundef %43)
  store <2 x float> %3031, ptr %110, align 4
  %3032 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 0
  %3033 = load float, ptr %3032, align 4
  %3034 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 1
  %3035 = load float, ptr %3034, align 4
  %3036 = call <2 x float> @__divsc3(float noundef %3028, float noundef %3030, float noundef %3033, float noundef %3035) #7
  store <2 x float> %3036, ptr %111, align 4
  %3037 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 0
  %3038 = load float, ptr %3037, align 4
  %3039 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 1
  %3040 = load float, ptr %3039, align 4
  %3041 = call ptr @_pCf(ptr noundef %24)
  %3042 = getelementptr inbounds { float, float }, ptr %3041, i32 0, i32 0
  %3043 = getelementptr inbounds { float, float }, ptr %3041, i32 0, i32 1
  store float %3038, ptr %3042, align 4
  store float %3040, ptr %3043, align 4
  %3044 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  %3045 = load float, ptr %3044, align 4, !tbaa !13
  %3046 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %3047 = load float, ptr %3046, align 4, !tbaa !13
  %3048 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  %3049 = load float, ptr %3048, align 4, !tbaa !15
  %3050 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %3051 = load float, ptr %3050, align 4, !tbaa !15
  %3052 = fmul float %3049, %3051
  %3053 = fneg float %3052
  %3054 = call float @llvm.fmuladd.f32(float %3045, float %3047, float %3053)
  %3055 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %3054, ptr %3055, align 4, !tbaa !13
  %3056 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  %3057 = load float, ptr %3056, align 4, !tbaa !13
  %3058 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %3059 = load float, ptr %3058, align 4, !tbaa !15
  %3060 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  %3061 = load float, ptr %3060, align 4, !tbaa !15
  %3062 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %3063 = load float, ptr %3062, align 4, !tbaa !13
  %3064 = fmul float %3061, %3063
  %3065 = call float @llvm.fmuladd.f32(float %3057, float %3059, float %3064)
  %3066 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %3065, ptr %3066, align 4, !tbaa !15
  %3067 = load ptr, ptr %9, align 8, !tbaa !5
  %3068 = load i32, ptr %18, align 4, !tbaa !9
  %3069 = sext i32 %3068 to i64
  %3070 = getelementptr inbounds %struct.complex, ptr %3067, i64 %3069
  %3071 = getelementptr inbounds %struct.complex, ptr %3070, i32 0, i32 0
  %3072 = load float, ptr %3071, align 4, !tbaa !13
  %3073 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %3074 = load float, ptr %3073, align 4, !tbaa !13
  %3075 = fsub float %3072, %3074
  %3076 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  store float %3075, ptr %3076, align 4, !tbaa !13
  %3077 = load ptr, ptr %9, align 8, !tbaa !5
  %3078 = load i32, ptr %18, align 4, !tbaa !9
  %3079 = sext i32 %3078 to i64
  %3080 = getelementptr inbounds %struct.complex, ptr %3077, i64 %3079
  %3081 = getelementptr inbounds %struct.complex, ptr %3080, i32 0, i32 1
  %3082 = load float, ptr %3081, align 4, !tbaa !15
  %3083 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %3084 = load float, ptr %3083, align 4, !tbaa !15
  %3085 = fsub float %3082, %3084
  %3086 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  store float %3085, ptr %3086, align 4, !tbaa !15
  %3087 = load ptr, ptr %9, align 8, !tbaa !5
  %3088 = load i32, ptr %30, align 4, !tbaa !9
  %3089 = load i32, ptr %32, align 4, !tbaa !9
  %3090 = add nsw i32 %3089, 1
  %3091 = load i32, ptr %13, align 4, !tbaa !9
  %3092 = mul nsw i32 %3090, %3091
  %3093 = add nsw i32 %3088, %3092
  %3094 = sext i32 %3093 to i64
  %3095 = getelementptr inbounds %struct.complex, ptr %3087, i64 %3094
  %3096 = call <2 x float> @Cf(ptr noundef %3095)
  store <2 x float> %3096, ptr %112, align 4
  %3097 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 0
  %3098 = load float, ptr %3097, align 4
  %3099 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 1
  %3100 = load float, ptr %3099, align 4
  %3101 = call <2 x float> @Cf(ptr noundef %43)
  store <2 x float> %3101, ptr %113, align 4
  %3102 = getelementptr inbounds { float, float }, ptr %113, i32 0, i32 0
  %3103 = load float, ptr %3102, align 4
  %3104 = getelementptr inbounds { float, float }, ptr %113, i32 0, i32 1
  %3105 = load float, ptr %3104, align 4
  %3106 = call <2 x float> @__divsc3(float noundef %3098, float noundef %3100, float noundef %3103, float noundef %3105) #7
  store <2 x float> %3106, ptr %114, align 4
  %3107 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 0
  %3108 = load float, ptr %3107, align 4
  %3109 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 1
  %3110 = load float, ptr %3109, align 4
  %3111 = call ptr @_pCf(ptr noundef %26)
  %3112 = getelementptr inbounds { float, float }, ptr %3111, i32 0, i32 0
  %3113 = getelementptr inbounds { float, float }, ptr %3111, i32 0, i32 1
  store float %3108, ptr %3112, align 4
  store float %3110, ptr %3113, align 4
  %3114 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %3115 = load float, ptr %3114, align 4, !tbaa !13
  %3116 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %3117 = load float, ptr %3116, align 4, !tbaa !13
  %3118 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %3119 = load float, ptr %3118, align 4, !tbaa !15
  %3120 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %3121 = load float, ptr %3120, align 4, !tbaa !15
  %3122 = fmul float %3119, %3121
  %3123 = fneg float %3122
  %3124 = call float @llvm.fmuladd.f32(float %3115, float %3117, float %3123)
  %3125 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %3124, ptr %3125, align 4, !tbaa !13
  %3126 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %3127 = load float, ptr %3126, align 4, !tbaa !13
  %3128 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %3129 = load float, ptr %3128, align 4, !tbaa !15
  %3130 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %3131 = load float, ptr %3130, align 4, !tbaa !15
  %3132 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %3133 = load float, ptr %3132, align 4, !tbaa !13
  %3134 = fmul float %3131, %3133
  %3135 = call float @llvm.fmuladd.f32(float %3127, float %3129, float %3134)
  %3136 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %3135, ptr %3136, align 4, !tbaa !15
  %3137 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 0
  %3138 = load float, ptr %3137, align 4, !tbaa !13
  %3139 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %3140 = load float, ptr %3139, align 4, !tbaa !13
  %3141 = fsub float %3138, %3140
  %3142 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  store float %3141, ptr %3142, align 4, !tbaa !13
  %3143 = getelementptr inbounds %struct.complex, ptr %22, i32 0, i32 1
  %3144 = load float, ptr %3143, align 4, !tbaa !15
  %3145 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %3146 = load float, ptr %3145, align 4, !tbaa !15
  %3147 = fsub float %3144, %3146
  %3148 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  store float %3147, ptr %3148, align 4, !tbaa !15
  %3149 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %3150 = load float, ptr %3149, align 4, !tbaa !13
  %3151 = load ptr, ptr %9, align 8, !tbaa !5
  %3152 = load i32, ptr %17, align 4, !tbaa !9
  %3153 = sext i32 %3152 to i64
  %3154 = getelementptr inbounds %struct.complex, ptr %3151, i64 %3153
  %3155 = getelementptr inbounds %struct.complex, ptr %3154, i32 0, i32 0
  store float %3150, ptr %3155, align 4, !tbaa !13
  %3156 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %3157 = load float, ptr %3156, align 4, !tbaa !15
  %3158 = load ptr, ptr %9, align 8, !tbaa !5
  %3159 = load i32, ptr %17, align 4, !tbaa !9
  %3160 = sext i32 %3159 to i64
  %3161 = getelementptr inbounds %struct.complex, ptr %3158, i64 %3160
  %3162 = getelementptr inbounds %struct.complex, ptr %3161, i32 0, i32 1
  store float %3157, ptr %3162, align 4, !tbaa !15
  br label %3163

3163:                                             ; preds = %3007
  %3164 = load i32, ptr %30, align 4, !tbaa !9
  %3165 = add nsw i32 %3164, 1
  store i32 %3165, ptr %30, align 4, !tbaa !9
  br label %3003, !llvm.loop !21

3166:                                             ; preds = %3003
  %3167 = load i32, ptr %31, align 4, !tbaa !9
  %3168 = load i32, ptr %32, align 4, !tbaa !9
  %3169 = load i32, ptr %13, align 4, !tbaa !9
  %3170 = mul nsw i32 %3168, %3169
  %3171 = add nsw i32 %3167, %3170
  store i32 %3171, ptr %16, align 4, !tbaa !9
  %3172 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3172, ptr %115, align 4
  %3173 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 0
  %3174 = load float, ptr %3173, align 4
  %3175 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 1
  %3176 = load float, ptr %3175, align 4
  %3177 = call <2 x float> @Cf(ptr noundef %43)
  store <2 x float> %3177, ptr %116, align 4
  %3178 = getelementptr inbounds { float, float }, ptr %116, i32 0, i32 0
  %3179 = load float, ptr %3178, align 4
  %3180 = getelementptr inbounds { float, float }, ptr %116, i32 0, i32 1
  %3181 = load float, ptr %3180, align 4
  %3182 = call <2 x float> @__divsc3(float noundef %3174, float noundef %3176, float noundef %3179, float noundef %3181) #7
  store <2 x float> %3182, ptr %117, align 4
  %3183 = getelementptr inbounds { float, float }, ptr %117, i32 0, i32 0
  %3184 = load float, ptr %3183, align 4
  %3185 = getelementptr inbounds { float, float }, ptr %117, i32 0, i32 1
  %3186 = load float, ptr %3185, align 4
  %3187 = call ptr @_pCf(ptr noundef %21)
  %3188 = getelementptr inbounds { float, float }, ptr %3187, i32 0, i32 0
  %3189 = getelementptr inbounds { float, float }, ptr %3187, i32 0, i32 1
  store float %3184, ptr %3188, align 4
  store float %3186, ptr %3189, align 4
  %3190 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %3191 = load float, ptr %3190, align 4, !tbaa !13
  %3192 = load ptr, ptr %9, align 8, !tbaa !5
  %3193 = load i32, ptr %16, align 4, !tbaa !9
  %3194 = sext i32 %3193 to i64
  %3195 = getelementptr inbounds %struct.complex, ptr %3192, i64 %3194
  %3196 = getelementptr inbounds %struct.complex, ptr %3195, i32 0, i32 0
  store float %3191, ptr %3196, align 4, !tbaa !13
  %3197 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %3198 = load float, ptr %3197, align 4, !tbaa !15
  %3199 = load ptr, ptr %9, align 8, !tbaa !5
  %3200 = load i32, ptr %16, align 4, !tbaa !9
  %3201 = sext i32 %3200 to i64
  %3202 = getelementptr inbounds %struct.complex, ptr %3199, i64 %3201
  %3203 = getelementptr inbounds %struct.complex, ptr %3202, i32 0, i32 1
  store float %3198, ptr %3203, align 4, !tbaa !15
  %3204 = load i32, ptr %31, align 4, !tbaa !9
  %3205 = load i32, ptr %32, align 4, !tbaa !9
  %3206 = add nsw i32 %3205, 1
  %3207 = load i32, ptr %13, align 4, !tbaa !9
  %3208 = mul nsw i32 %3206, %3207
  %3209 = add nsw i32 %3204, %3208
  store i32 %3209, ptr %16, align 4, !tbaa !9
  %3210 = call <2 x float> @Cf(ptr noundef %53)
  store <2 x float> %3210, ptr %118, align 4
  %3211 = getelementptr inbounds { float, float }, ptr %118, i32 0, i32 0
  %3212 = load float, ptr %3211, align 4
  %3213 = getelementptr inbounds { float, float }, ptr %118, i32 0, i32 1
  %3214 = load float, ptr %3213, align 4
  %3215 = call <2 x float> @Cf(ptr noundef %43)
  store <2 x float> %3215, ptr %119, align 4
  %3216 = getelementptr inbounds { float, float }, ptr %119, i32 0, i32 0
  %3217 = load float, ptr %3216, align 4
  %3218 = getelementptr inbounds { float, float }, ptr %119, i32 0, i32 1
  %3219 = load float, ptr %3218, align 4
  %3220 = call <2 x float> @__divsc3(float noundef %3212, float noundef %3214, float noundef %3217, float noundef %3219) #7
  store <2 x float> %3220, ptr %120, align 4
  %3221 = getelementptr inbounds { float, float }, ptr %120, i32 0, i32 0
  %3222 = load float, ptr %3221, align 4
  %3223 = getelementptr inbounds { float, float }, ptr %120, i32 0, i32 1
  %3224 = load float, ptr %3223, align 4
  %3225 = call ptr @_pCf(ptr noundef %21)
  %3226 = getelementptr inbounds { float, float }, ptr %3225, i32 0, i32 0
  %3227 = getelementptr inbounds { float, float }, ptr %3225, i32 0, i32 1
  store float %3222, ptr %3226, align 4
  store float %3224, ptr %3227, align 4
  %3228 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 0
  %3229 = load float, ptr %3228, align 4, !tbaa !13
  %3230 = load ptr, ptr %9, align 8, !tbaa !5
  %3231 = load i32, ptr %16, align 4, !tbaa !9
  %3232 = sext i32 %3231 to i64
  %3233 = getelementptr inbounds %struct.complex, ptr %3230, i64 %3232
  %3234 = getelementptr inbounds %struct.complex, ptr %3233, i32 0, i32 0
  store float %3229, ptr %3234, align 4, !tbaa !13
  %3235 = getelementptr inbounds %struct.complex, ptr %21, i32 0, i32 1
  %3236 = load float, ptr %3235, align 4, !tbaa !15
  %3237 = load ptr, ptr %9, align 8, !tbaa !5
  %3238 = load i32, ptr %16, align 4, !tbaa !9
  %3239 = sext i32 %3238 to i64
  %3240 = getelementptr inbounds %struct.complex, ptr %3237, i64 %3239
  %3241 = getelementptr inbounds %struct.complex, ptr %3240, i32 0, i32 1
  store float %3236, ptr %3241, align 4, !tbaa !15
  br label %3242

3242:                                             ; preds = %3166
  %3243 = load i32, ptr %31, align 4, !tbaa !9
  %3244 = add nsw i32 %3243, 1
  store i32 %3244, ptr %31, align 4, !tbaa !9
  br label %2797, !llvm.loop !22

3245:                                             ; preds = %2797
  br label %3246

3246:                                             ; preds = %3245, %2645
  br label %3247

3247:                                             ; preds = %3246, %2644
  br label %3248

3248:                                             ; preds = %3247, %1829
  %3249 = load i32, ptr %38, align 4, !tbaa !9
  %3250 = icmp eq i32 %3249, 1
  br i1 %3250, label %3251, label %3257

3251:                                             ; preds = %3248
  %3252 = load i32, ptr %47, align 4, !tbaa !9
  %3253 = load ptr, ptr %11, align 8, !tbaa !5
  %3254 = load i32, ptr %32, align 4, !tbaa !9
  %3255 = sext i32 %3254 to i64
  %3256 = getelementptr inbounds i32, ptr %3253, i64 %3255
  store i32 %3252, ptr %3256, align 4, !tbaa !9
  br label %3271

3257:                                             ; preds = %3248
  %3258 = load i32, ptr %33, align 4, !tbaa !9
  %3259 = sub nsw i32 0, %3258
  %3260 = load ptr, ptr %11, align 8, !tbaa !5
  %3261 = load i32, ptr %32, align 4, !tbaa !9
  %3262 = sext i32 %3261 to i64
  %3263 = getelementptr inbounds i32, ptr %3260, i64 %3262
  store i32 %3259, ptr %3263, align 4, !tbaa !9
  %3264 = load i32, ptr %47, align 4, !tbaa !9
  %3265 = sub nsw i32 0, %3264
  %3266 = load ptr, ptr %11, align 8, !tbaa !5
  %3267 = load i32, ptr %32, align 4, !tbaa !9
  %3268 = add nsw i32 %3267, 1
  %3269 = sext i32 %3268 to i64
  %3270 = getelementptr inbounds i32, ptr %3266, i64 %3269
  store i32 %3265, ptr %3270, align 4, !tbaa !9
  br label %3271

3271:                                             ; preds = %3257, %3251
  %3272 = load i32, ptr %38, align 4, !tbaa !9
  %3273 = load i32, ptr %32, align 4, !tbaa !9
  %3274 = add nsw i32 %3273, %3272
  store i32 %3274, ptr %32, align 4, !tbaa !9
  br label %1695

3275:                                             ; preds = %1700, %190
  store i32 1, ptr %54, align 4
  br label %3276

3276:                                             ; preds = %3275, %171
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  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 @xerbla_(ptr noundef, ptr noundef, i32 noundef) #2

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

declare float @slamch_(ptr noundef) #2

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

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

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

declare <2 x float> @__divsc3(float, float, float, float)

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @_pCf(ptr noundef) #5

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #6

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

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

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

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


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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b1 = external hidden global %struct.complex, align 4

; Function Attrs: nounwind uwtable
define dso_local void @csytf2_rook_(ptr noundef %0, ptr nocapture noundef readonly %1, ptr noundef %2, ptr noundef %3, ptr nocapture noundef writeonly %4, ptr nocapture noundef %5) local_unnamed_addr #0 {
  %7 = alloca i32, align 4
  %8 = alloca %struct.complex, align 8
  %9 = alloca %struct.complex, align 8
  %10 = alloca %struct.complex, align 4
  %11 = alloca %struct.complex, align 4
  %12 = alloca %struct.complex, align 8
  %13 = alloca %struct.complex, align 8
  %14 = alloca %struct.complex, align 8
  %15 = alloca %struct.complex, align 8
  %16 = alloca %struct.complex, align 8
  %17 = alloca %struct.complex, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  %18 = load i32, ptr %3, align 4, !tbaa !5
  %narrow = xor i32 %18, -1
  %19 = sext i32 %narrow to i64
  %20 = getelementptr inbounds %struct.complex, ptr %2, i64 %19
  %21 = getelementptr inbounds i8, ptr %4, i64 -4
  store i32 0, ptr %5, align 4, !tbaa !5
  %22 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %.not = icmp eq i32 %22, 0
  br i1 %.not, label %23, label %25

23:                                               ; preds = %6
  %24 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %.not1038 = icmp eq i32 %24, 0
  br i1 %.not1038, label %.thread.sink.split, label %25

25:                                               ; preds = %23, %6
  %26 = load i32, ptr %1, align 4, !tbaa !5
  %27 = icmp slt i32 %26, 0
  br i1 %27, label %.thread.sink.split, label %28

28:                                               ; preds = %25
  %29 = load i32, ptr %3, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %26, i32 1)
  %30 = icmp slt i32 %29, %spec.select
  br i1 %30, label %.thread.sink.split, label %31

31:                                               ; preds = %28
  %.pr = load i32, ptr %5, align 4, !tbaa !5
  %.not1039 = icmp eq i32 %.pr, 0
  br i1 %.not1039, label %35, label %.thread

.thread.sink.split:                               ; preds = %28, %25, %23
  %.sink = phi i32 [ -1, %23 ], [ -2, %25 ], [ -4, %28 ]
  store i32 %.sink, ptr %5, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %31
  %32 = phi i32 [ %.pr, %31 ], [ %.sink, %.thread.sink.split ]
  %33 = sub nsw i32 0, %32
  store i32 %33, ptr %7, align 4, !tbaa !5
  %34 = call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull %7, i32 noundef 11) #6
  br label %.loopexit1147

35:                                               ; preds = %31
  %36 = tail call float @slamch_(ptr noundef nonnull @.str.3) #6
  %37 = load i32, ptr %1, align 4, !tbaa !5
  br i1 %.not, label %.preheader1146, label %45

.preheader1146:                                   ; preds = %35
  %38 = icmp slt i32 %37, 1
  br i1 %38, label %.loopexit1147, label %.lr.ph1201

.lr.ph1201:                                       ; preds = %.preheader1146
  %39 = add i32 %18, 1
  %40 = getelementptr inbounds i8, ptr %8, i64 4
  %41 = getelementptr inbounds i8, ptr %12, i64 4
  %42 = getelementptr inbounds i8, ptr %10, i64 4
  %43 = getelementptr inbounds i8, ptr %11, i64 4
  %44 = sext i32 %18 to i64
  br label %413

45:                                               ; preds = %35
  %invariant.gep1162 = getelementptr i8, ptr %20, i64 8
  %46 = icmp slt i32 %37, 1
  br i1 %46, label %.loopexit1147, label %.lr.ph1181

.lr.ph1181:                                       ; preds = %45
  %47 = add i32 %18, 1
  %48 = getelementptr inbounds i8, ptr %8, i64 4
  %49 = getelementptr inbounds i8, ptr %12, i64 4
  %50 = getelementptr inbounds i8, ptr %10, i64 4
  %51 = getelementptr inbounds i8, ptr %11, i64 4
  %52 = sext i32 %18 to i64
  br label %53

53:                                               ; preds = %.lr.ph1181, %410
  %.09661179 = phi i32 [ undef, %.lr.ph1181 ], [ %.51102, %410 ]
  %.09701178 = phi i32 [ undef, %.lr.ph1181 ], [ %.59751100, %410 ]
  %.09861176 = phi i32 [ %37, %.lr.ph1181 ], [ %411, %410 ]
  %54 = mul nsw i32 %.09861176, %18
  %55 = add nsw i32 %54, %.09861176
  store i32 %55, ptr %7, align 4, !tbaa !5
  %56 = sext i32 %55 to i64
  %57 = getelementptr inbounds %struct.complex, ptr %20, i64 %56
  %58 = load float, ptr %57, align 4, !tbaa !9
  %59 = fcmp oge float %58, 0.000000e+00
  %60 = fneg float %58
  %61 = select i1 %59, float %58, float %60
  %62 = call <2 x float> @Cf(ptr noundef nonnull %57)
  %.sroa.065.4.vec.extract = extractelement <2 x float> %62, i64 1
  %63 = fcmp oge float %.sroa.065.4.vec.extract, 0.000000e+00
  %64 = fneg float %.sroa.065.4.vec.extract
  %65 = select i1 %63, float %.sroa.065.4.vec.extract, float %64
  %66 = fadd float %61, %65
  %.not1048 = icmp eq i32 %.09861176, 1
  br i1 %.not1048, label %83, label %67

67:                                               ; preds = %53
  %68 = add nsw i32 %.09861176, -1
  store i32 %68, ptr %7, align 4, !tbaa !5
  %69 = sext i32 %54 to i64
  %gep1163 = getelementptr %struct.complex, ptr %invariant.gep1162, i64 %69
  %70 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %gep1163, ptr noundef nonnull @c__1) #6
  %71 = add nsw i32 %70, %54
  store i32 %71, ptr %7, align 4, !tbaa !5
  %72 = sext i32 %71 to i64
  %73 = getelementptr inbounds %struct.complex, ptr %20, i64 %72
  %74 = load float, ptr %73, align 4, !tbaa !9
  %75 = fcmp oge float %74, 0.000000e+00
  %76 = fneg float %74
  %77 = select i1 %75, float %74, float %76
  %78 = call <2 x float> @Cf(ptr noundef nonnull %73)
  %.sroa.064.4.vec.extract = extractelement <2 x float> %78, i64 1
  %79 = fcmp oge float %.sroa.064.4.vec.extract, 0.000000e+00
  %80 = fneg float %.sroa.064.4.vec.extract
  %81 = select i1 %79, float %.sroa.064.4.vec.extract, float %80
  %82 = fadd float %77, %81
  br label %83

83:                                               ; preds = %53, %67
  %.01016 = phi float [ %82, %67 ], [ 0.000000e+00, %53 ]
  %.1967 = phi i32 [ %70, %67 ], [ %.09661179, %53 ]
  %84 = fcmp oge float %66, %.01016
  %85 = select i1 %84, float %66, float %.01016
  %86 = fcmp oeq float %85, 0.000000e+00
  br i1 %86, label %87, label %91

87:                                               ; preds = %83
  %88 = load i32, ptr %5, align 4, !tbaa !5
  %89 = icmp eq i32 %88, 0
  br i1 %89, label %90, label %402

90:                                               ; preds = %87
  store i32 %.09861176, ptr %5, align 4, !tbaa !5
  br label %402

91:                                               ; preds = %83
  %92 = fmul float %.01016, 0x3FE47E0F60000000
  %93 = fcmp olt float %66, %92
  br i1 %93, label %.preheader1149, label %.thread1070

.preheader1149:                                   ; preds = %91, %152
  %.11017 = phi float [ %.11023, %152 ], [ %.01016, %91 ]
  %.0988 = phi i32 [ %.2968, %152 ], [ %.09861176, %91 ]
  %.1971 = phi i32 [ %.3973, %152 ], [ %.09701178, %91 ]
  %.2968 = phi i32 [ %.3973, %152 ], [ %.1967, %91 ]
  %.not1049 = icmp eq i32 %.2968, %.09861176
  br i1 %.not1049, label %116, label %94

94:                                               ; preds = %.preheader1149
  %95 = sub nsw i32 %.09861176, %.2968
  store i32 %95, ptr %7, align 4, !tbaa !5
  %96 = add nsw i32 %.2968, 1
  %97 = mul nsw i32 %96, %18
  %98 = add nsw i32 %97, %.2968
  %99 = sext i32 %98 to i64
  %100 = getelementptr inbounds %struct.complex, ptr %20, i64 %99
  %101 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %100, ptr noundef nonnull %3) #6
  %102 = add nsw i32 %101, %.2968
  %103 = mul nsw i32 %102, %18
  %104 = add nsw i32 %103, %.2968
  store i32 %104, ptr %7, align 4, !tbaa !5
  %105 = sext i32 %104 to i64
  %106 = getelementptr inbounds %struct.complex, ptr %20, i64 %105
  %107 = load float, ptr %106, align 4, !tbaa !9
  %108 = fcmp oge float %107, 0.000000e+00
  %109 = fneg float %107
  %110 = select i1 %108, float %107, float %109
  %111 = call <2 x float> @Cf(ptr noundef nonnull %106)
  %.sroa.063.4.vec.extract = extractelement <2 x float> %111, i64 1
  %112 = fcmp oge float %.sroa.063.4.vec.extract, 0.000000e+00
  %113 = fneg float %.sroa.063.4.vec.extract
  %114 = select i1 %112, float %.sroa.063.4.vec.extract, float %113
  %115 = fadd float %110, %114
  br label %116

116:                                              ; preds = %.preheader1149, %94
  %.01022 = phi float [ %115, %94 ], [ 0.000000e+00, %.preheader1149 ]
  %.2972 = phi i32 [ %102, %94 ], [ %.1971, %.preheader1149 ]
  %117 = icmp sgt i32 %.2968, 1
  br i1 %117, label %118, label %137

118:                                              ; preds = %116
  %119 = add nsw i32 %.2968, -1
  store i32 %119, ptr %7, align 4, !tbaa !5
  %120 = mul nsw i32 %.2968, %18
  %121 = sext i32 %120 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep1162, i64 %121
  %122 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %123 = add nsw i32 %122, %120
  store i32 %123, ptr %7, align 4, !tbaa !5
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds %struct.complex, ptr %20, i64 %124
  %126 = load float, ptr %125, align 4, !tbaa !9
  %127 = fcmp oge float %126, 0.000000e+00
  %128 = fneg float %126
  %129 = select i1 %127, float %126, float %128
  %130 = call <2 x float> @Cf(ptr noundef nonnull %125)
  %.sroa.062.4.vec.extract = extractelement <2 x float> %130, i64 1
  %131 = fcmp oge float %.sroa.062.4.vec.extract, 0.000000e+00
  %132 = fneg float %.sroa.062.4.vec.extract
  %133 = select i1 %131, float %.sroa.062.4.vec.extract, float %132
  %134 = fadd float %129, %133
  %135 = fcmp ogt float %134, %.01022
  br i1 %135, label %136, label %137

136:                                              ; preds = %118
  br label %137

137:                                              ; preds = %118, %136, %116
  %.11023 = phi float [ %134, %136 ], [ %.01022, %118 ], [ %.01022, %116 ]
  %.3973 = phi i32 [ %122, %136 ], [ %.2972, %118 ], [ %.2972, %116 ]
  %138 = mul i32 %.2968, %47
  store i32 %138, ptr %7, align 4, !tbaa !5
  %139 = sext i32 %138 to i64
  %140 = getelementptr inbounds %struct.complex, ptr %20, i64 %139
  %141 = load float, ptr %140, align 4, !tbaa !9
  %142 = fcmp oge float %141, 0.000000e+00
  %143 = fneg float %141
  %144 = select i1 %142, float %141, float %143
  %145 = call <2 x float> @Cf(ptr noundef nonnull %140)
  %.sroa.061.4.vec.extract = extractelement <2 x float> %145, i64 1
  %146 = fcmp oge float %.sroa.061.4.vec.extract, 0.000000e+00
  %147 = fneg float %.sroa.061.4.vec.extract
  %148 = select i1 %146, float %.sroa.061.4.vec.extract, float %147
  %149 = fadd float %144, %148
  %150 = fmul float %.11023, 0x3FE47E0F60000000
  %151 = fcmp olt float %149, %150
  br i1 %151, label %152, label %.thread1070

152:                                              ; preds = %137
  %153 = icmp ne i32 %.0988, %.3973
  %154 = fcmp ugt float %.11023, %.11017
  %or.cond = select i1 %153, i1 %154, i1 false
  br i1 %or.cond, label %.preheader1149, label %155

155:                                              ; preds = %152
  %.not1051 = icmp eq i32 %.0988, %.09861176
  br i1 %.not1051, label %.thread1070, label %156

156:                                              ; preds = %155
  %157 = icmp sgt i32 %.0988, 1
  br i1 %157, label %158, label %163

158:                                              ; preds = %156
  %159 = add nsw i32 %.0988, -1
  store i32 %159, ptr %7, align 4, !tbaa !5
  %160 = sext i32 %54 to i64
  %gep1165 = getelementptr %struct.complex, ptr %invariant.gep1162, i64 %160
  %161 = mul nsw i32 %.0988, %18
  %162 = sext i32 %161 to i64
  %gep1167 = getelementptr %struct.complex, ptr %invariant.gep1162, i64 %162
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %gep1165, ptr noundef nonnull @c__1, ptr noundef %gep1167, ptr noundef nonnull @c__1) #6
  br label %163

163:                                              ; preds = %158, %156
  %164 = add nsw i32 %.09861176, -1
  %165 = icmp slt i32 %.0988, %164
  br i1 %165, label %166, label %177

166:                                              ; preds = %163
  %167 = xor i32 %.0988, -1
  %168 = add i32 %.09861176, %167
  store i32 %168, ptr %7, align 4, !tbaa !5
  %169 = add nsw i32 %.0988, 1
  %170 = add nsw i32 %169, %54
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds %struct.complex, ptr %20, i64 %171
  %173 = mul nsw i32 %169, %18
  %174 = add nsw i32 %173, %.0988
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds %struct.complex, ptr %20, i64 %175
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %172, ptr noundef nonnull @c__1, ptr noundef %176, ptr noundef nonnull %3) #6
  br label %177

177:                                              ; preds = %166, %163
  %178 = mul i32 %.0988, %47
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds %struct.complex, ptr %20, i64 %179
  store i32 %178, ptr %7, align 4, !tbaa !5
  %181 = load <2 x float>, ptr %57, align 4, !tbaa !12
  %182 = load <2 x float>, ptr %180, align 4, !tbaa !12
  store <2 x float> %182, ptr %57, align 4, !tbaa !12
  store <2 x float> %181, ptr %180, align 4, !tbaa !12
  br label %.thread1070

.thread1070:                                      ; preds = %137, %91, %177, %155
  %183 = phi i1 [ true, %177 ], [ true, %155 ], [ false, %91 ], [ false, %137 ]
  %.41083 = phi i32 [ %.2968, %177 ], [ %.2968, %155 ], [ %.1967, %91 ], [ %.2968, %137 ]
  %.49741082 = phi i32 [ %.3973, %177 ], [ %.3973, %155 ], [ %.09701178, %91 ], [ %.3973, %137 ]
  %.29901081 = phi i32 [ %.0988, %177 ], [ %.09861176, %155 ], [ %.09861176, %91 ], [ %.0988, %137 ]
  %184 = phi i1 [ false, %177 ], [ false, %155 ], [ true, %91 ], [ true, %137 ]
  %.29981080.neg = phi i32 [ -2, %177 ], [ -2, %155 ], [ -1, %91 ], [ -1, %137 ]
  %.310091079 = phi i32 [ %.2968, %177 ], [ %.2968, %155 ], [ %.09861176, %91 ], [ %.2968, %137 ]
  %185 = add nsw i32 %.29981080.neg, %.09861176
  %186 = add nsw i32 %185, 1
  %.not1052 = icmp eq i32 %.310091079, %186
  br i1 %.not1052, label %228, label %187

187:                                              ; preds = %.thread1070
  %188 = icmp sgt i32 %.310091079, 1
  br i1 %188, label %189, label %195

189:                                              ; preds = %187
  %190 = add nsw i32 %.310091079, -1
  store i32 %190, ptr %7, align 4, !tbaa !5
  %191 = mul nsw i32 %186, %18
  %192 = sext i32 %191 to i64
  %gep1169 = getelementptr %struct.complex, ptr %invariant.gep1162, i64 %192
  %193 = mul nsw i32 %.310091079, %18
  %194 = sext i32 %193 to i64
  %gep1171 = getelementptr %struct.complex, ptr %invariant.gep1162, i64 %194
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %gep1169, ptr noundef nonnull @c__1, ptr noundef %gep1171, ptr noundef nonnull @c__1) #6
  br label %195

195:                                              ; preds = %189, %187
  %196 = icmp sgt i32 %185, 0
  %197 = icmp slt i32 %.310091079, %185
  %or.cond1056 = and i1 %196, %197
  br i1 %or.cond1056, label %198, label %209

198:                                              ; preds = %195
  %199 = sub i32 %185, %.310091079
  store i32 %199, ptr %7, align 4, !tbaa !5
  %200 = add nsw i32 %.310091079, 1
  %201 = mul nsw i32 %186, %18
  %202 = add nsw i32 %201, %200
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds %struct.complex, ptr %20, i64 %203
  %205 = mul nsw i32 %200, %18
  %206 = add nsw i32 %205, %.310091079
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds %struct.complex, ptr %20, i64 %207
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %204, ptr noundef nonnull @c__1, ptr noundef %208, ptr noundef nonnull %3) #6
  br label %209

209:                                              ; preds = %198, %195
  %210 = mul i32 %186, %47
  %211 = sext i32 %210 to i64
  %212 = getelementptr inbounds %struct.complex, ptr %20, i64 %211
  %213 = mul i32 %.310091079, %47
  %214 = sext i32 %213 to i64
  %215 = getelementptr inbounds %struct.complex, ptr %20, i64 %214
  store i32 %213, ptr %7, align 4, !tbaa !5
  %216 = load <2 x float>, ptr %212, align 4, !tbaa !12
  %217 = load <2 x float>, ptr %215, align 4, !tbaa !12
  store <2 x float> %217, ptr %212, align 4, !tbaa !12
  store <2 x float> %216, ptr %215, align 4, !tbaa !12
  br i1 %183, label %218, label %228

218:                                              ; preds = %209
  %219 = add nsw i32 %.09861176, -1
  %220 = add nsw i32 %219, %54
  %221 = sext i32 %220 to i64
  %222 = getelementptr inbounds %struct.complex, ptr %20, i64 %221
  %223 = add nsw i32 %.310091079, %54
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds %struct.complex, ptr %20, i64 %224
  store i32 %223, ptr %7, align 4, !tbaa !5
  %226 = load <2 x float>, ptr %222, align 4, !tbaa !12
  %227 = load <2 x float>, ptr %225, align 4, !tbaa !12
  store <2 x float> %227, ptr %222, align 4, !tbaa !12
  store <2 x float> %226, ptr %225, align 4, !tbaa !12
  br label %228

228:                                              ; preds = %209, %218, %.thread1070
  br i1 %184, label %229, label %263

229:                                              ; preds = %228
  br i1 %.not1048, label %402, label %230

230:                                              ; preds = %229
  store i32 %55, ptr %7, align 4, !tbaa !5
  %231 = load float, ptr %57, align 4, !tbaa !9
  %232 = fcmp oge float %231, 0.000000e+00
  %233 = fneg float %231
  %234 = select i1 %232, float %231, float %233
  %235 = call <2 x float> @Cf(ptr noundef nonnull %57)
  %.sroa.060.4.vec.extract = extractelement <2 x float> %235, i64 1
  %236 = fcmp oge float %.sroa.060.4.vec.extract, 0.000000e+00
  %237 = fneg float %.sroa.060.4.vec.extract
  %238 = select i1 %236, float %.sroa.060.4.vec.extract, float %237
  %239 = fadd float %234, %238
  %240 = fcmp ult float %239, %36
  br i1 %240, label %250, label %241

241:                                              ; preds = %230
  %242 = call <2 x float> @Cf(ptr noundef nonnull @c_b1)
  %.sroa.059.0.vec.extract = extractelement <2 x float> %242, i64 0
  %.sroa.059.4.vec.extract = extractelement <2 x float> %242, i64 1
  %243 = call <2 x float> @Cf(ptr noundef nonnull %57)
  %.sroa.058.0.vec.extract = extractelement <2 x float> %243, i64 0
  %.sroa.058.4.vec.extract = extractelement <2 x float> %243, i64 1
  %244 = call <2 x float> @__divsc3(float noundef %.sroa.059.0.vec.extract, float noundef %.sroa.059.4.vec.extract, float noundef %.sroa.058.0.vec.extract, float noundef %.sroa.058.4.vec.extract) #6
  %245 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %244, ptr %245, align 4
  %246 = load <2 x float>, ptr %8, align 8, !tbaa !12
  store <2 x float> %246, ptr %12, align 8, !tbaa !12
  %247 = add nsw i32 %.09861176, -1
  store i32 %247, ptr %7, align 4, !tbaa !5
  %248 = fneg <2 x float> %246
  store <2 x float> %248, ptr %8, align 8, !tbaa !12
  %249 = sext i32 %54 to i64
  %gep1173 = getelementptr %struct.complex, ptr %invariant.gep1162, i64 %249
  call void @csyr_(ptr noundef %0, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %gep1173, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull %3) #6
  store i32 %247, ptr %7, align 4, !tbaa !5
  call void @cscal_(ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef %gep1173, ptr noundef nonnull @c__1) #6
  br label %402

250:                                              ; preds = %230
  %251 = load <2 x float>, ptr %57, align 4, !tbaa !12
  store <2 x float> %251, ptr %12, align 8, !tbaa !12
  %252 = add nsw i32 %.09861176, -1
  store i32 %252, ptr %7, align 4, !tbaa !5
  %.not10531159 = icmp slt i32 %.09861176, 2
  %.pre1230 = sext i32 %54 to i64
  br i1 %.not10531159, label %._crit_edge, label %.lr.ph1161.preheader

.lr.ph1161.preheader:                             ; preds = %250
  %invariant.gep1242 = getelementptr %struct.complex, ptr %20, i64 %.pre1230
  br label %.lr.ph1161

.lr.ph1161:                                       ; preds = %.lr.ph1161.preheader, %.lr.ph1161
  %indvars.iv1213 = phi i64 [ 1, %.lr.ph1161.preheader ], [ %indvars.iv.next1214, %.lr.ph1161 ]
  %gep1243 = getelementptr %struct.complex, ptr %invariant.gep1242, i64 %indvars.iv1213
  %253 = call <2 x float> @Cf(ptr noundef %gep1243)
  %.sroa.056.0.vec.extract = extractelement <2 x float> %253, i64 0
  %.sroa.056.4.vec.extract = extractelement <2 x float> %253, i64 1
  %254 = call <2 x float> @Cf(ptr noundef nonnull %12)
  %.sroa.055.0.vec.extract = extractelement <2 x float> %254, i64 0
  %.sroa.055.4.vec.extract = extractelement <2 x float> %254, i64 1
  %255 = call <2 x float> @__divsc3(float noundef %.sroa.056.0.vec.extract, float noundef %.sroa.056.4.vec.extract, float noundef %.sroa.055.0.vec.extract, float noundef %.sroa.055.4.vec.extract) #6
  %256 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %255, ptr %256, align 4
  %257 = load <2 x float>, ptr %8, align 8, !tbaa !12
  store <2 x float> %257, ptr %gep1243, align 4, !tbaa !12
  %indvars.iv.next1214 = add nuw nsw i64 %indvars.iv1213, 1
  %258 = load i32, ptr %7, align 4, !tbaa !5
  %259 = sext i32 %258 to i64
  %.not1053.not = icmp slt i64 %indvars.iv1213, %259
  br i1 %.not1053.not, label %.lr.ph1161, label %._crit_edge.loopexit, !llvm.loop !13

._crit_edge.loopexit:                             ; preds = %.lr.ph1161
  %260 = load <2 x float>, ptr %12, align 8, !tbaa !12
  br label %._crit_edge

._crit_edge:                                      ; preds = %250, %._crit_edge.loopexit
  %261 = phi <2 x float> [ %260, %._crit_edge.loopexit ], [ %251, %250 ]
  store i32 %252, ptr %7, align 4, !tbaa !5
  %262 = fneg <2 x float> %261
  store <2 x float> %262, ptr %8, align 8, !tbaa !12
  %gep1175 = getelementptr %struct.complex, ptr %invariant.gep1162, i64 %.pre1230
  call void @csyr_(ptr noundef %0, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %gep1175, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull %3) #6
  br label %402

263:                                              ; preds = %228
  %264 = icmp sgt i32 %.09861176, 2
  br i1 %264, label %.lr.ph, label %.loopexit1148

.lr.ph:                                           ; preds = %263
  %265 = add nsw i32 %.09861176, -1
  %266 = add nsw i32 %265, %54
  store i32 %266, ptr %7, align 4, !tbaa !5
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds %struct.complex, ptr %20, i64 %267
  %269 = load <2 x float>, ptr %268, align 4, !tbaa !12
  store <2 x float> %269, ptr %13, align 8, !tbaa !12
  %270 = mul nsw i32 %265, %18
  %271 = add nsw i32 %270, %265
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds %struct.complex, ptr %20, i64 %272
  %274 = call <2 x float> @Cf(ptr noundef %273)
  %.sroa.053.0.vec.extract = extractelement <2 x float> %274, i64 0
  %.sroa.053.4.vec.extract = extractelement <2 x float> %274, i64 1
  %275 = call <2 x float> @Cf(ptr noundef nonnull %13)
  %.sroa.052.0.vec.extract = extractelement <2 x float> %275, i64 0
  %.sroa.052.4.vec.extract = extractelement <2 x float> %275, i64 1
  %276 = call <2 x float> @__divsc3(float noundef %.sroa.053.0.vec.extract, float noundef %.sroa.053.4.vec.extract, float noundef %.sroa.052.0.vec.extract, float noundef %.sroa.052.4.vec.extract) #6
  %277 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %276, ptr %277, align 4
  %278 = load <2 x float>, ptr %8, align 8, !tbaa !12
  %279 = call <2 x float> @Cf(ptr noundef nonnull %57)
  %.sroa.050.0.vec.extract = extractelement <2 x float> %279, i64 0
  %.sroa.050.4.vec.extract = extractelement <2 x float> %279, i64 1
  %280 = call <2 x float> @Cf(ptr noundef nonnull %13)
  %.sroa.049.0.vec.extract = extractelement <2 x float> %280, i64 0
  %.sroa.049.4.vec.extract = extractelement <2 x float> %280, i64 1
  %281 = call <2 x float> @__divsc3(float noundef %.sroa.050.0.vec.extract, float noundef %.sroa.050.4.vec.extract, float noundef %.sroa.049.0.vec.extract, float noundef %.sroa.049.4.vec.extract) #6
  %282 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %281, ptr %282, align 4
  %283 = load <2 x float>, ptr %8, align 8, !tbaa !12
  store <2 x float> %283, ptr %12, align 8, !tbaa !12
  %284 = shufflevector <2 x float> %283, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %285 = fneg <2 x float> %283
  %286 = shufflevector <2 x float> %284, <2 x float> %285, <2 x i32> <i32 0, i32 3>
  %287 = fmul <2 x float> %278, %286
  %288 = shufflevector <2 x float> %287, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %289 = shufflevector <2 x float> %283, <2 x float> poison, <2 x i32> zeroinitializer
  %290 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %289, <2 x float> %278, <2 x float> %288)
  %291 = fadd <2 x float> %290, <float -1.000000e+00, float 0.000000e+00>
  store <2 x float> %291, ptr %9, align 8, !tbaa !12
  %292 = call <2 x float> @Cf(ptr noundef nonnull @c_b1)
  %.sroa.047.0.vec.extract = extractelement <2 x float> %292, i64 0
  %.sroa.047.4.vec.extract = extractelement <2 x float> %292, i64 1
  %293 = call <2 x float> @Cf(ptr noundef nonnull %9)
  %.sroa.046.0.vec.extract = extractelement <2 x float> %293, i64 0
  %.sroa.046.4.vec.extract = extractelement <2 x float> %293, i64 1
  %294 = call <2 x float> @__divsc3(float noundef %.sroa.047.0.vec.extract, float noundef %.sroa.047.4.vec.extract, float noundef %.sroa.046.0.vec.extract, float noundef %.sroa.046.4.vec.extract) #6
  %295 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %294, ptr %295, align 4
  %296 = load float, ptr %8, align 8, !tbaa !9
  %297 = load float, ptr %48, align 4, !tbaa !15
  %298 = add nsw i32 %.09861176, -2
  %299 = fneg float %297
  %300 = zext nneg i32 %298 to i64
  %301 = sext i32 %54 to i64
  %302 = sext i32 %270 to i64
  %invariant.gep = getelementptr %struct.complex, ptr %20, i64 %301
  %invariant.gep1240 = getelementptr %struct.complex, ptr %20, i64 %302
  %303 = insertelement <2 x float> poison, float %296, i64 0
  %304 = shufflevector <2 x float> %303, <2 x float> poison, <2 x i32> zeroinitializer
  %305 = insertelement <2 x float> poison, float %297, i64 0
  %306 = insertelement <2 x float> %305, float %299, i64 1
  %307 = shufflevector <2 x float> %278, <2 x float> poison, <2 x i32> zeroinitializer
  %308 = shufflevector <2 x float> %278, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %309 = fneg <2 x float> %278
  %310 = shufflevector <2 x float> %308, <2 x float> %309, <2 x i32> <i32 0, i32 3>
  br label %311

311:                                              ; preds = %.lr.ph, %384
  %indvars.iv = phi i64 [ %300, %.lr.ph ], [ %indvars.iv.next, %384 ]
  %312 = add nsw i64 %indvars.iv, %302
  %313 = trunc nsw i64 %312 to i32
  %314 = load float, ptr %12, align 8, !tbaa !9
  %315 = getelementptr inbounds %struct.complex, ptr %20, i64 %312
  %316 = load float, ptr %49, align 4, !tbaa !15
  %317 = fneg float %316
  %318 = add nsw i64 %indvars.iv, %301
  %319 = getelementptr inbounds %struct.complex, ptr %20, i64 %318
  %320 = load <2 x float>, ptr %315, align 4, !tbaa !12
  %321 = insertelement <2 x float> poison, float %316, i64 0
  %322 = insertelement <2 x float> %321, float %317, i64 1
  %323 = fmul <2 x float> %320, %322
  %324 = shufflevector <2 x float> %323, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %325 = insertelement <2 x float> poison, float %314, i64 0
  %326 = shufflevector <2 x float> %325, <2 x float> poison, <2 x i32> zeroinitializer
  %327 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %326, <2 x float> %320, <2 x float> %324)
  %328 = load <2 x float>, ptr %319, align 4, !tbaa !12
  %329 = fsub <2 x float> %327, %328
  %330 = fmul <2 x float> %329, %306
  %331 = shufflevector <2 x float> %330, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %332 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %304, <2 x float> %329, <2 x float> %331)
  store <2 x float> %332, ptr %16, align 8, !tbaa !12
  %333 = trunc nsw i64 %318 to i32
  %334 = fmul <2 x float> %328, %310
  %335 = shufflevector <2 x float> %334, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %336 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %307, <2 x float> %328, <2 x float> %335)
  %337 = fsub <2 x float> %336, %320
  store <2 x float> %337, ptr %9, align 8, !tbaa !12
  %338 = fmul <2 x float> %337, %306
  %339 = shufflevector <2 x float> %338, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %340 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %304, <2 x float> %337, <2 x float> %339)
  store <2 x float> %340, ptr %8, align 8, !tbaa !12
  store <2 x float> %340, ptr %15, align 8, !tbaa !12
  %341 = mul nsw i64 %indvars.iv, %52
  br label %342

342:                                              ; preds = %311, %342
  %indvars.iv1209 = phi i64 [ %indvars.iv, %311 ], [ %indvars.iv.next1210, %342 ]
  %343 = add nsw i64 %indvars.iv1209, %341
  %344 = trunc nsw i64 %343 to i32
  store i32 %344, ptr %7, align 4, !tbaa !5
  %gep1239 = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv1209
  %345 = call <2 x float> @Cf(ptr noundef %gep1239)
  %.sroa.044.0.vec.extract = extractelement <2 x float> %345, i64 0
  %.sroa.044.4.vec.extract = extractelement <2 x float> %345, i64 1
  %346 = call <2 x float> @Cf(ptr noundef nonnull %13)
  %.sroa.043.0.vec.extract = extractelement <2 x float> %346, i64 0
  %.sroa.043.4.vec.extract = extractelement <2 x float> %346, i64 1
  %347 = call <2 x float> @__divsc3(float noundef %.sroa.044.0.vec.extract, float noundef %.sroa.044.4.vec.extract, float noundef %.sroa.043.0.vec.extract, float noundef %.sroa.043.4.vec.extract) #6
  %348 = call ptr @_pCf(ptr noundef nonnull %10)
  store <2 x float> %347, ptr %348, align 4
  %349 = load float, ptr %10, align 4, !tbaa !9
  %350 = load float, ptr %50, align 4, !tbaa !15
  %351 = fneg float %350
  %352 = getelementptr inbounds %struct.complex, ptr %20, i64 %343
  %353 = load <2 x float>, ptr %15, align 8, !tbaa !12
  %354 = insertelement <2 x float> poison, float %350, i64 0
  %355 = insertelement <2 x float> %354, float %351, i64 1
  %356 = fmul <2 x float> %353, %355
  %357 = shufflevector <2 x float> %356, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %358 = insertelement <2 x float> poison, float %349, i64 0
  %359 = shufflevector <2 x float> %358, <2 x float> poison, <2 x i32> zeroinitializer
  %360 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %359, <2 x float> %353, <2 x float> %357)
  %361 = load <2 x float>, ptr %352, align 4, !tbaa !12
  %362 = fsub <2 x float> %361, %360
  store <2 x float> %362, ptr %9, align 8, !tbaa !12
  %gep1241 = getelementptr %struct.complex, ptr %invariant.gep1240, i64 %indvars.iv1209
  %363 = call <2 x float> @Cf(ptr noundef %gep1241)
  %.sroa.041.0.vec.extract = extractelement <2 x float> %363, i64 0
  %.sroa.041.4.vec.extract = extractelement <2 x float> %363, i64 1
  %364 = call <2 x float> @Cf(ptr noundef nonnull %13)
  %.sroa.040.0.vec.extract = extractelement <2 x float> %364, i64 0
  %.sroa.040.4.vec.extract = extractelement <2 x float> %364, i64 1
  %365 = call <2 x float> @__divsc3(float noundef %.sroa.041.0.vec.extract, float noundef %.sroa.041.4.vec.extract, float noundef %.sroa.040.0.vec.extract, float noundef %.sroa.040.4.vec.extract) #6
  %366 = call ptr @_pCf(ptr noundef nonnull %11)
  store <2 x float> %365, ptr %366, align 4
  %367 = load float, ptr %11, align 4, !tbaa !9
  %368 = load float, ptr %51, align 4, !tbaa !15
  %369 = fneg float %368
  %370 = load <2 x float>, ptr %16, align 8, !tbaa !12
  %371 = insertelement <2 x float> poison, float %368, i64 0
  %372 = insertelement <2 x float> %371, float %369, i64 1
  %373 = fmul <2 x float> %370, %372
  %374 = shufflevector <2 x float> %373, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %375 = insertelement <2 x float> poison, float %367, i64 0
  %376 = shufflevector <2 x float> %375, <2 x float> poison, <2 x i32> zeroinitializer
  %377 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %376, <2 x float> %370, <2 x float> %374)
  %378 = load <2 x float>, ptr %9, align 8, !tbaa !12
  %379 = fsub <2 x float> %378, %377
  store <2 x float> %379, ptr %8, align 8, !tbaa !12
  %380 = load i32, ptr %7, align 4, !tbaa !5
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds %struct.complex, ptr %20, i64 %381
  store <2 x float> %379, ptr %382, align 4, !tbaa !12
  %indvars.iv.next1210 = add nsw i64 %indvars.iv1209, -1
  %383 = icmp ugt i64 %indvars.iv1209, 1
  br i1 %383, label %342, label %384, !llvm.loop !16

384:                                              ; preds = %342
  store i32 %333, ptr %7, align 4, !tbaa !5
  %385 = call <2 x float> @Cf(ptr noundef nonnull %15)
  %.sroa.038.0.vec.extract = extractelement <2 x float> %385, i64 0
  %.sroa.038.4.vec.extract = extractelement <2 x float> %385, i64 1
  %386 = call <2 x float> @Cf(ptr noundef nonnull %13)
  %.sroa.037.0.vec.extract = extractelement <2 x float> %386, i64 0
  %.sroa.037.4.vec.extract = extractelement <2 x float> %386, i64 1
  %387 = call <2 x float> @__divsc3(float noundef %.sroa.038.0.vec.extract, float noundef %.sroa.038.4.vec.extract, float noundef %.sroa.037.0.vec.extract, float noundef %.sroa.037.4.vec.extract) #6
  %388 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %387, ptr %388, align 4
  %389 = load i32, ptr %7, align 4, !tbaa !5
  %390 = sext i32 %389 to i64
  %391 = getelementptr inbounds %struct.complex, ptr %20, i64 %390
  %392 = load <2 x float>, ptr %8, align 8, !tbaa !12
  store <2 x float> %392, ptr %391, align 4, !tbaa !12
  store i32 %313, ptr %7, align 4, !tbaa !5
  %393 = call <2 x float> @Cf(ptr noundef nonnull %16)
  %.sroa.035.0.vec.extract = extractelement <2 x float> %393, i64 0
  %.sroa.035.4.vec.extract = extractelement <2 x float> %393, i64 1
  %394 = call <2 x float> @Cf(ptr noundef nonnull %13)
  %.sroa.034.0.vec.extract = extractelement <2 x float> %394, i64 0
  %.sroa.034.4.vec.extract = extractelement <2 x float> %394, i64 1
  %395 = call <2 x float> @__divsc3(float noundef %.sroa.035.0.vec.extract, float noundef %.sroa.035.4.vec.extract, float noundef %.sroa.034.0.vec.extract, float noundef %.sroa.034.4.vec.extract) #6
  %396 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %395, ptr %396, align 4
  %397 = load i32, ptr %7, align 4, !tbaa !5
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds %struct.complex, ptr %20, i64 %398
  %400 = load <2 x float>, ptr %8, align 8, !tbaa !12
  store <2 x float> %400, ptr %399, align 4, !tbaa !12
  %indvars.iv.next = add nsw i64 %indvars.iv, -1
  %401 = icmp sgt i64 %indvars.iv, 1
  br i1 %401, label %311, label %.loopexit1148, !llvm.loop !17

402:                                              ; preds = %241, %._crit_edge, %229, %90, %87
  %.41010.ph = phi i32 [ %.09861176, %87 ], [ %.09861176, %90 ], [ %.310091079, %229 ], [ %.310091079, %._crit_edge ], [ %.310091079, %241 ]
  %.5975.ph = phi i32 [ %.09701178, %87 ], [ %.09701178, %90 ], [ %.49741082, %229 ], [ %.49741082, %._crit_edge ], [ %.49741082, %241 ]
  %.5.ph = phi i32 [ %.1967, %87 ], [ %.1967, %90 ], [ %.41083, %229 ], [ %.41083, %._crit_edge ], [ %.41083, %241 ]
  %403 = zext nneg i32 %.09861176 to i64
  %404 = getelementptr inbounds i32, ptr %21, i64 %403
  store i32 %.41010.ph, ptr %404, align 4, !tbaa !5
  br label %410

.loopexit1148:                                    ; preds = %384, %263
  %405 = sub nsw i32 0, %.29901081
  %406 = zext nneg i32 %.09861176 to i64
  %407 = getelementptr inbounds i32, ptr %21, i64 %406
  store i32 %405, ptr %407, align 4, !tbaa !5
  %408 = sub nsw i32 0, %.310091079
  %409 = getelementptr i8, ptr %407, i64 -4
  store i32 %408, ptr %409, align 4, !tbaa !5
  br label %410

410:                                              ; preds = %.loopexit1148, %402
  %.51102 = phi i32 [ %.41083, %.loopexit1148 ], [ %.5.ph, %402 ]
  %.59751100 = phi i32 [ %.49741082, %.loopexit1148 ], [ %.5975.ph, %402 ]
  %.3999.neg1098 = phi i32 [ -2, %.loopexit1148 ], [ -1, %402 ]
  %411 = add nsw i32 %.3999.neg1098, %.09861176
  %412 = icmp slt i32 %411, 1
  br i1 %412, label %.loopexit1147, label %53

413:                                              ; preds = %.lr.ph1201, %802
  %.61200 = phi i32 [ undef, %.lr.ph1201 ], [ %.111144, %802 ]
  %.69761199 = phi i32 [ undef, %.lr.ph1201 ], [ %.119811142, %802 ]
  %.19871196 = phi i32 [ 1, %.lr.ph1201 ], [ %803, %802 ]
  %414 = mul nsw i32 %.19871196, %18
  %415 = add nsw i32 %414, %.19871196
  store i32 %415, ptr %7, align 4, !tbaa !5
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds %struct.complex, ptr %20, i64 %416
  %418 = load float, ptr %417, align 4, !tbaa !9
  %419 = fcmp oge float %418, 0.000000e+00
  %420 = fneg float %418
  %421 = select i1 %419, float %418, float %420
  %422 = call <2 x float> @Cf(ptr noundef nonnull %417)
  %.sroa.032.4.vec.extract = extractelement <2 x float> %422, i64 1
  %423 = fcmp oge float %.sroa.032.4.vec.extract, 0.000000e+00
  %424 = fneg float %.sroa.032.4.vec.extract
  %425 = select i1 %423, float %.sroa.032.4.vec.extract, float %424
  %426 = fadd float %421, %425
  %427 = load i32, ptr %1, align 4, !tbaa !5
  %428 = icmp slt i32 %.19871196, %427
  br i1 %428, label %429, label %449

429:                                              ; preds = %413
  %430 = sub nsw i32 %427, %.19871196
  store i32 %430, ptr %7, align 4, !tbaa !5
  %431 = add nuw nsw i32 %.19871196, 1
  %432 = add nsw i32 %431, %414
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds %struct.complex, ptr %20, i64 %433
  %435 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %434, ptr noundef nonnull @c__1) #6
  %436 = add nsw i32 %435, %.19871196
  %437 = add nsw i32 %436, %414
  store i32 %437, ptr %7, align 4, !tbaa !5
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds %struct.complex, ptr %20, i64 %438
  %440 = load float, ptr %439, align 4, !tbaa !9
  %441 = fcmp oge float %440, 0.000000e+00
  %442 = fneg float %440
  %443 = select i1 %441, float %440, float %442
  %444 = call <2 x float> @Cf(ptr noundef nonnull %439)
  %.sroa.031.4.vec.extract = extractelement <2 x float> %444, i64 1
  %445 = fcmp oge float %.sroa.031.4.vec.extract, 0.000000e+00
  %446 = fneg float %.sroa.031.4.vec.extract
  %447 = select i1 %445, float %.sroa.031.4.vec.extract, float %446
  %448 = fadd float %443, %447
  br label %449

449:                                              ; preds = %413, %429
  %.31019 = phi float [ %448, %429 ], [ 0.000000e+00, %413 ]
  %.7 = phi i32 [ %436, %429 ], [ %.61200, %413 ]
  %450 = fcmp oge float %426, %.31019
  %451 = select i1 %450, float %426, float %.31019
  %452 = fcmp oeq float %451, 0.000000e+00
  br i1 %452, label %453, label %457

453:                                              ; preds = %449
  %454 = load i32, ptr %5, align 4, !tbaa !5
  %455 = icmp eq i32 %454, 0
  br i1 %455, label %456, label %794

456:                                              ; preds = %453
  store i32 %.19871196, ptr %5, align 4, !tbaa !5
  br label %794

457:                                              ; preds = %449
  %458 = fmul float %.31019, 0x3FE47E0F60000000
  %459 = fcmp olt float %426, %458
  br i1 %459, label %.preheader, label %.thread1112

.preheader:                                       ; preds = %457
  %460 = add nsw i32 %.19871196, -1
  br label %461

461:                                              ; preds = %.preheader, %523
  %.41020 = phi float [ %.31025, %523 ], [ %.31019, %.preheader ]
  %.4992 = phi i32 [ %.8, %523 ], [ %.19871196, %.preheader ]
  %.7977 = phi i32 [ %.9979, %523 ], [ %.69761199, %.preheader ]
  %.8 = phi i32 [ %.9979, %523 ], [ %.7, %.preheader ]
  %.not1040 = icmp eq i32 %.8, %.19871196
  br i1 %.not1040, label %482, label %462

462:                                              ; preds = %461
  %463 = sub nsw i32 %.8, %.19871196
  store i32 %463, ptr %7, align 4, !tbaa !5
  %464 = add nsw i32 %.8, %414
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds %struct.complex, ptr %20, i64 %465
  %467 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %466, ptr noundef nonnull %3) #6
  %468 = add nsw i32 %460, %467
  %469 = mul nsw i32 %468, %18
  %470 = add nsw i32 %469, %.8
  store i32 %470, ptr %7, align 4, !tbaa !5
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds %struct.complex, ptr %20, i64 %471
  %473 = load float, ptr %472, align 4, !tbaa !9
  %474 = fcmp oge float %473, 0.000000e+00
  %475 = fneg float %473
  %476 = select i1 %474, float %473, float %475
  %477 = call <2 x float> @Cf(ptr noundef nonnull %472)
  %.sroa.030.4.vec.extract = extractelement <2 x float> %477, i64 1
  %478 = fcmp oge float %.sroa.030.4.vec.extract, 0.000000e+00
  %479 = fneg float %.sroa.030.4.vec.extract
  %480 = select i1 %478, float %.sroa.030.4.vec.extract, float %479
  %481 = fadd float %476, %480
  br label %482

482:                                              ; preds = %461, %462
  %.21024 = phi float [ %481, %462 ], [ 0.000000e+00, %461 ]
  %.8978 = phi i32 [ %468, %462 ], [ %.7977, %461 ]
  %483 = load i32, ptr %1, align 4, !tbaa !5
  %484 = icmp slt i32 %.8, %483
  br i1 %484, label %485, label %508

485:                                              ; preds = %482
  %486 = sub nsw i32 %483, %.8
  store i32 %486, ptr %7, align 4, !tbaa !5
  %487 = add nsw i32 %.8, 1
  %488 = mul nsw i32 %.8, %18
  %489 = add nsw i32 %487, %488
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds %struct.complex, ptr %20, i64 %490
  %492 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %491, ptr noundef nonnull @c__1) #6
  %493 = add nsw i32 %492, %.8
  %494 = add nsw i32 %493, %488
  store i32 %494, ptr %7, align 4, !tbaa !5
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds %struct.complex, ptr %20, i64 %495
  %497 = load float, ptr %496, align 4, !tbaa !9
  %498 = fcmp oge float %497, 0.000000e+00
  %499 = fneg float %497
  %500 = select i1 %498, float %497, float %499
  %501 = call <2 x float> @Cf(ptr noundef nonnull %496)
  %.sroa.029.4.vec.extract = extractelement <2 x float> %501, i64 1
  %502 = fcmp oge float %.sroa.029.4.vec.extract, 0.000000e+00
  %503 = fneg float %.sroa.029.4.vec.extract
  %504 = select i1 %502, float %.sroa.029.4.vec.extract, float %503
  %505 = fadd float %500, %504
  %506 = fcmp ogt float %505, %.21024
  br i1 %506, label %507, label %508

507:                                              ; preds = %485
  br label %508

508:                                              ; preds = %485, %507, %482
  %.31025 = phi float [ %505, %507 ], [ %.21024, %485 ], [ %.21024, %482 ]
  %.9979 = phi i32 [ %493, %507 ], [ %.8978, %485 ], [ %.8978, %482 ]
  %509 = mul i32 %.8, %39
  store i32 %509, ptr %7, align 4, !tbaa !5
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds %struct.complex, ptr %20, i64 %510
  %512 = load float, ptr %511, align 4, !tbaa !9
  %513 = fcmp oge float %512, 0.000000e+00
  %514 = fneg float %512
  %515 = select i1 %513, float %512, float %514
  %516 = call <2 x float> @Cf(ptr noundef nonnull %511)
  %.sroa.028.4.vec.extract = extractelement <2 x float> %516, i64 1
  %517 = fcmp oge float %.sroa.028.4.vec.extract, 0.000000e+00
  %518 = fneg float %.sroa.028.4.vec.extract
  %519 = select i1 %517, float %.sroa.028.4.vec.extract, float %518
  %520 = fadd float %515, %519
  %521 = fmul float %.31025, 0x3FE47E0F60000000
  %522 = fcmp olt float %520, %521
  br i1 %522, label %523, label %.thread1112

523:                                              ; preds = %508
  %524 = icmp ne i32 %.4992, %.9979
  %525 = fcmp ugt float %.31025, %.41020
  %or.cond1057 = select i1 %524, i1 %525, i1 false
  br i1 %or.cond1057, label %461, label %526

526:                                              ; preds = %523
  %.not1042 = icmp eq i32 %.4992, %.19871196
  br i1 %.not1042, label %.thread1112, label %527

527:                                              ; preds = %526
  %528 = load i32, ptr %1, align 4, !tbaa !5
  %529 = icmp slt i32 %.4992, %528
  br i1 %529, label %530, label %540

530:                                              ; preds = %527
  %531 = sub nsw i32 %528, %.4992
  store i32 %531, ptr %7, align 4, !tbaa !5
  %532 = add nsw i32 %.4992, 1
  %533 = add nsw i32 %532, %414
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds %struct.complex, ptr %20, i64 %534
  %536 = mul nsw i32 %.4992, %18
  %537 = add nsw i32 %532, %536
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds %struct.complex, ptr %20, i64 %538
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %535, ptr noundef nonnull @c__1, ptr noundef %539, ptr noundef nonnull @c__1) #6
  br label %540

540:                                              ; preds = %530, %527
  %541 = add nuw nsw i32 %.19871196, 1
  %542 = icmp sgt i32 %.4992, %541
  br i1 %542, label %543, label %553

543:                                              ; preds = %540
  %544 = xor i32 %.19871196, -1
  %545 = add i32 %.4992, %544
  store i32 %545, ptr %7, align 4, !tbaa !5
  %546 = add nsw i32 %541, %414
  %547 = sext i32 %546 to i64
  %548 = getelementptr inbounds %struct.complex, ptr %20, i64 %547
  %549 = mul nsw i32 %541, %18
  %550 = add nsw i32 %.4992, %549
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds %struct.complex, ptr %20, i64 %551
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %548, ptr noundef nonnull @c__1, ptr noundef %552, ptr noundef nonnull %3) #6
  br label %553

553:                                              ; preds = %543, %540
  %554 = mul i32 %.4992, %39
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds %struct.complex, ptr %20, i64 %555
  store i32 %554, ptr %7, align 4, !tbaa !5
  %557 = load <2 x float>, ptr %417, align 4, !tbaa !12
  %558 = load <2 x float>, ptr %556, align 4, !tbaa !12
  store <2 x float> %558, ptr %417, align 4, !tbaa !12
  store <2 x float> %557, ptr %556, align 4, !tbaa !12
  br label %.thread1112

.thread1112:                                      ; preds = %508, %457, %553, %526
  %559 = phi i1 [ true, %553 ], [ true, %526 ], [ false, %457 ], [ false, %508 ]
  %.101125 = phi i32 [ %.8, %553 ], [ %.8, %526 ], [ %.7, %457 ], [ %.8, %508 ]
  %.109801124 = phi i32 [ %.9979, %553 ], [ %.9979, %526 ], [ %.69761199, %457 ], [ %.9979, %508 ]
  %.69941123 = phi i32 [ %.4992, %553 ], [ %.19871196, %526 ], [ %.19871196, %457 ], [ %.4992, %508 ]
  %560 = phi i1 [ false, %553 ], [ false, %526 ], [ true, %457 ], [ true, %508 ]
  %.610021122 = phi i32 [ 2, %553 ], [ 2, %526 ], [ 1, %457 ], [ 1, %508 ]
  %.810141121 = phi i32 [ %.8, %553 ], [ %.8, %526 ], [ %.19871196, %457 ], [ %.8, %508 ]
  %561 = add nuw nsw i32 %.610021122, %.19871196
  %562 = add nsw i32 %561, -1
  %.not1043 = icmp eq i32 %.810141121, %562
  br i1 %.not1043, label %609, label %563

563:                                              ; preds = %.thread1112
  %564 = load i32, ptr %1, align 4, !tbaa !5
  %565 = icmp slt i32 %.810141121, %564
  br i1 %565, label %566, label %577

566:                                              ; preds = %563
  %567 = sub nsw i32 %564, %.810141121
  store i32 %567, ptr %7, align 4, !tbaa !5
  %568 = add nsw i32 %.810141121, 1
  %569 = mul nsw i32 %562, %18
  %570 = add nsw i32 %569, %568
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds %struct.complex, ptr %20, i64 %571
  %573 = mul nsw i32 %.810141121, %18
  %574 = add nsw i32 %568, %573
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds %struct.complex, ptr %20, i64 %575
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %572, ptr noundef nonnull @c__1, ptr noundef %576, ptr noundef nonnull @c__1) #6
  %.pre1226 = load i32, ptr %1, align 4, !tbaa !5
  br label %577

577:                                              ; preds = %566, %563
  %578 = phi i32 [ %.pre1226, %566 ], [ %564, %563 ]
  %.not1044 = icmp sle i32 %561, %578
  %579 = icmp sgt i32 %.810141121, %561
  %or.cond1060 = and i1 %579, %.not1044
  br i1 %or.cond1060, label %580, label %590

580:                                              ; preds = %577
  %581 = sub i32 %.810141121, %561
  store i32 %581, ptr %7, align 4, !tbaa !5
  %582 = mul nsw i32 %562, %18
  %583 = add nsw i32 %582, %561
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds %struct.complex, ptr %20, i64 %584
  %586 = mul nsw i32 %561, %18
  %587 = add nsw i32 %586, %.810141121
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds %struct.complex, ptr %20, i64 %588
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %585, ptr noundef nonnull @c__1, ptr noundef %589, ptr noundef nonnull %3) #6
  br label %590

590:                                              ; preds = %580, %577
  %591 = mul i32 %562, %39
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds %struct.complex, ptr %20, i64 %592
  %594 = mul i32 %.810141121, %39
  %595 = sext i32 %594 to i64
  %596 = getelementptr inbounds %struct.complex, ptr %20, i64 %595
  store i32 %594, ptr %7, align 4, !tbaa !5
  %597 = load <2 x float>, ptr %593, align 4, !tbaa !12
  %598 = load <2 x float>, ptr %596, align 4, !tbaa !12
  store <2 x float> %598, ptr %593, align 4, !tbaa !12
  store <2 x float> %597, ptr %596, align 4, !tbaa !12
  br i1 %559, label %599, label %609

599:                                              ; preds = %590
  %600 = add nuw nsw i32 %.19871196, 1
  %601 = add nsw i32 %600, %414
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds %struct.complex, ptr %20, i64 %602
  %604 = add nsw i32 %.810141121, %414
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds %struct.complex, ptr %20, i64 %605
  store i32 %604, ptr %7, align 4, !tbaa !5
  %607 = load <2 x float>, ptr %603, align 4, !tbaa !12
  %608 = load <2 x float>, ptr %606, align 4, !tbaa !12
  store <2 x float> %608, ptr %603, align 4, !tbaa !12
  store <2 x float> %607, ptr %606, align 4, !tbaa !12
  br label %609

609:                                              ; preds = %590, %599, %.thread1112
  %610 = load i32, ptr %1, align 4, !tbaa !5
  br i1 %560, label %611, label %666

611:                                              ; preds = %609
  %612 = icmp slt i32 %.19871196, %610
  br i1 %612, label %613, label %794

613:                                              ; preds = %611
  store i32 %415, ptr %7, align 4, !tbaa !5
  %614 = load float, ptr %417, align 4, !tbaa !9
  %615 = fcmp oge float %614, 0.000000e+00
  %616 = fneg float %614
  %617 = select i1 %615, float %614, float %616
  %618 = call <2 x float> @Cf(ptr noundef nonnull %417)
  %.sroa.027.4.vec.extract = extractelement <2 x float> %618, i64 1
  %619 = fcmp oge float %.sroa.027.4.vec.extract, 0.000000e+00
  %620 = fneg float %.sroa.027.4.vec.extract
  %621 = select i1 %619, float %.sroa.027.4.vec.extract, float %620
  %622 = fadd float %617, %621
  %623 = fcmp ult float %622, %36
  br i1 %623, label %642, label %624

624:                                              ; preds = %613
  %625 = call <2 x float> @Cf(ptr noundef nonnull @c_b1)
  %.sroa.026.0.vec.extract = extractelement <2 x float> %625, i64 0
  %.sroa.026.4.vec.extract = extractelement <2 x float> %625, i64 1
  %626 = call <2 x float> @Cf(ptr noundef nonnull %417)
  %.sroa.025.0.vec.extract = extractelement <2 x float> %626, i64 0
  %.sroa.025.4.vec.extract = extractelement <2 x float> %626, i64 1
  %627 = call <2 x float> @__divsc3(float noundef %.sroa.026.0.vec.extract, float noundef %.sroa.026.4.vec.extract, float noundef %.sroa.025.0.vec.extract, float noundef %.sroa.025.4.vec.extract) #6
  %628 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %627, ptr %628, align 4
  %629 = load <2 x float>, ptr %8, align 8, !tbaa !12
  store <2 x float> %629, ptr %12, align 8, !tbaa !12
  %630 = load i32, ptr %1, align 4, !tbaa !5
  %631 = sub nsw i32 %630, %.19871196
  store i32 %631, ptr %7, align 4, !tbaa !5
  %632 = fneg <2 x float> %629
  store <2 x float> %632, ptr %8, align 8, !tbaa !12
  %633 = add nuw nsw i32 %.19871196, 1
  %634 = add nsw i32 %633, %414
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds %struct.complex, ptr %20, i64 %635
  %637 = mul i32 %633, %39
  %638 = sext i32 %637 to i64
  %639 = getelementptr inbounds %struct.complex, ptr %20, i64 %638
  call void @csyr_(ptr noundef %0, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %636, ptr noundef nonnull @c__1, ptr noundef %639, ptr noundef nonnull %3) #6
  %640 = load i32, ptr %1, align 4, !tbaa !5
  %641 = sub nsw i32 %640, %.19871196
  store i32 %641, ptr %7, align 4, !tbaa !5
  call void @cscal_(ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef %636, ptr noundef nonnull @c__1) #6
  br label %794

642:                                              ; preds = %613
  %643 = load <2 x float>, ptr %417, align 4, !tbaa !12
  store <2 x float> %643, ptr %12, align 8, !tbaa !12
  %644 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %644, ptr %7, align 4, !tbaa !5
  %645 = add nuw nsw i32 %.19871196, 1
  %.not10471191.not = icmp slt i32 %.19871196, %644
  br i1 %.not10471191.not, label %.lr.ph1194.preheader, label %._crit_edge1195

.lr.ph1194.preheader:                             ; preds = %642
  %narrow1231 = add nuw nsw i32 %.19871196, 1
  %646 = zext nneg i32 %narrow1231 to i64
  %647 = sext i32 %414 to i64
  %invariant.gep1254 = getelementptr %struct.complex, ptr %20, i64 %647
  br label %.lr.ph1194

.lr.ph1194:                                       ; preds = %.lr.ph1194.preheader, %.lr.ph1194
  %indvars.iv1222 = phi i64 [ %646, %.lr.ph1194.preheader ], [ %indvars.iv.next1223, %.lr.ph1194 ]
  %gep1255 = getelementptr %struct.complex, ptr %invariant.gep1254, i64 %indvars.iv1222
  %648 = call <2 x float> @Cf(ptr noundef %gep1255)
  %.sroa.023.0.vec.extract = extractelement <2 x float> %648, i64 0
  %.sroa.023.4.vec.extract = extractelement <2 x float> %648, i64 1
  %649 = call <2 x float> @Cf(ptr noundef nonnull %12)
  %.sroa.022.0.vec.extract = extractelement <2 x float> %649, i64 0
  %.sroa.022.4.vec.extract = extractelement <2 x float> %649, i64 1
  %650 = call <2 x float> @__divsc3(float noundef %.sroa.023.0.vec.extract, float noundef %.sroa.023.4.vec.extract, float noundef %.sroa.022.0.vec.extract, float noundef %.sroa.022.4.vec.extract) #6
  %651 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %650, ptr %651, align 4
  %652 = load <2 x float>, ptr %8, align 8, !tbaa !12
  store <2 x float> %652, ptr %gep1255, align 4, !tbaa !12
  %indvars.iv.next1223 = add nuw nsw i64 %indvars.iv1222, 1
  %653 = load i32, ptr %7, align 4, !tbaa !5
  %654 = sext i32 %653 to i64
  %.not1047.not = icmp slt i64 %indvars.iv1222, %654
  br i1 %.not1047.not, label %.lr.ph1194, label %._crit_edge1195.loopexit, !llvm.loop !18

._crit_edge1195.loopexit:                         ; preds = %.lr.ph1194
  %.pre1227 = load i32, ptr %1, align 4, !tbaa !5
  %655 = load <2 x float>, ptr %12, align 8, !tbaa !12
  br label %._crit_edge1195

._crit_edge1195:                                  ; preds = %._crit_edge1195.loopexit, %642
  %656 = phi i32 [ %.pre1227, %._crit_edge1195.loopexit ], [ %644, %642 ]
  %657 = phi <2 x float> [ %655, %._crit_edge1195.loopexit ], [ %643, %642 ]
  %658 = sub nsw i32 %656, %.19871196
  store i32 %658, ptr %7, align 4, !tbaa !5
  %659 = fneg <2 x float> %657
  store <2 x float> %659, ptr %8, align 8, !tbaa !12
  %660 = add nsw i32 %645, %414
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds %struct.complex, ptr %20, i64 %661
  %663 = mul i32 %645, %39
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds %struct.complex, ptr %20, i64 %664
  call void @csyr_(ptr noundef %0, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %662, ptr noundef nonnull @c__1, ptr noundef %665, ptr noundef nonnull %3) #6
  br label %794

666:                                              ; preds = %609
  %667 = add nsw i32 %610, -1
  %668 = icmp slt i32 %.19871196, %667
  br i1 %668, label %669, label %.loopexit

669:                                              ; preds = %666
  %670 = add nuw nsw i32 %.19871196, 1
  %671 = add nsw i32 %670, %414
  store i32 %671, ptr %7, align 4, !tbaa !5
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds %struct.complex, ptr %20, i64 %672
  %674 = load <2 x float>, ptr %673, align 4, !tbaa !12
  store <2 x float> %674, ptr %14, align 8, !tbaa !12
  %675 = mul nsw i32 %670, %18
  %676 = add nsw i32 %675, %670
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds %struct.complex, ptr %20, i64 %677
  %679 = call <2 x float> @Cf(ptr noundef %678)
  %.sroa.020.0.vec.extract = extractelement <2 x float> %679, i64 0
  %.sroa.020.4.vec.extract = extractelement <2 x float> %679, i64 1
  %680 = call <2 x float> @Cf(ptr noundef nonnull %14)
  %.sroa.019.0.vec.extract = extractelement <2 x float> %680, i64 0
  %.sroa.019.4.vec.extract = extractelement <2 x float> %680, i64 1
  %681 = call <2 x float> @__divsc3(float noundef %.sroa.020.0.vec.extract, float noundef %.sroa.020.4.vec.extract, float noundef %.sroa.019.0.vec.extract, float noundef %.sroa.019.4.vec.extract) #6
  %682 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %681, ptr %682, align 4
  %683 = load <2 x float>, ptr %8, align 8, !tbaa !12
  store <2 x float> %683, ptr %12, align 8, !tbaa !12
  %684 = call <2 x float> @Cf(ptr noundef nonnull %417)
  %.sroa.017.0.vec.extract = extractelement <2 x float> %684, i64 0
  %.sroa.017.4.vec.extract = extractelement <2 x float> %684, i64 1
  %685 = call <2 x float> @Cf(ptr noundef nonnull %14)
  %.sroa.016.0.vec.extract = extractelement <2 x float> %685, i64 0
  %.sroa.016.4.vec.extract = extractelement <2 x float> %685, i64 1
  %686 = call <2 x float> @__divsc3(float noundef %.sroa.017.0.vec.extract, float noundef %.sroa.017.4.vec.extract, float noundef %.sroa.016.0.vec.extract, float noundef %.sroa.016.4.vec.extract) #6
  %687 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %686, ptr %687, align 4
  %688 = load float, ptr %12, align 8, !tbaa !9
  %689 = load float, ptr %41, align 4, !tbaa !15
  %690 = fneg float %689
  %691 = load <2 x float>, ptr %8, align 8, !tbaa !12
  %692 = insertelement <2 x float> poison, float %689, i64 0
  %693 = insertelement <2 x float> %692, float %690, i64 1
  %694 = fmul <2 x float> %691, %693
  %695 = shufflevector <2 x float> %694, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %696 = insertelement <2 x float> poison, float %688, i64 0
  %697 = shufflevector <2 x float> %696, <2 x float> poison, <2 x i32> zeroinitializer
  %698 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %697, <2 x float> %691, <2 x float> %695)
  %699 = fadd <2 x float> %698, <float -1.000000e+00, float 0.000000e+00>
  store <2 x float> %699, ptr %9, align 8, !tbaa !12
  %700 = call <2 x float> @Cf(ptr noundef nonnull @c_b1)
  %.sroa.014.0.vec.extract = extractelement <2 x float> %700, i64 0
  %.sroa.014.4.vec.extract = extractelement <2 x float> %700, i64 1
  %701 = call <2 x float> @Cf(ptr noundef nonnull %9)
  %.sroa.013.0.vec.extract = extractelement <2 x float> %701, i64 0
  %.sroa.013.4.vec.extract = extractelement <2 x float> %701, i64 1
  %702 = call <2 x float> @__divsc3(float noundef %.sroa.014.0.vec.extract, float noundef %.sroa.014.4.vec.extract, float noundef %.sroa.013.0.vec.extract, float noundef %.sroa.013.4.vec.extract) #6
  %703 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %702, ptr %703, align 4
  %704 = load float, ptr %8, align 8, !tbaa !9
  %705 = load float, ptr %40, align 4, !tbaa !15
  %706 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %706, ptr %7, align 4, !tbaa !5
  %707 = add nuw nsw i32 %.19871196, 2
  %.not10451187 = icmp sgt i32 %707, %706
  br i1 %.not10451187, label %.loopexit, label %.lr.ph1190

.lr.ph1190:                                       ; preds = %669
  %708 = fneg float %705
  %709 = zext nneg i32 %707 to i64
  %710 = sext i32 %414 to i64
  %711 = sext i32 %675 to i64
  %invariant.gep1250 = getelementptr %struct.complex, ptr %20, i64 %710
  %invariant.gep1252 = getelementptr %struct.complex, ptr %20, i64 %711
  %invariant.gep1244 = getelementptr %struct.complex, ptr %20, i64 %710
  %invariant.gep1248 = getelementptr %struct.complex, ptr %20, i64 %711
  %712 = insertelement <2 x float> poison, float %704, i64 0
  %713 = shufflevector <2 x float> %712, <2 x float> poison, <2 x i32> zeroinitializer
  %714 = insertelement <2 x float> poison, float %705, i64 0
  %715 = insertelement <2 x float> %714, float %708, i64 1
  %716 = shufflevector <2 x float> %691, <2 x float> poison, <2 x i32> zeroinitializer
  %717 = shufflevector <2 x float> %691, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %718 = fneg <2 x float> %691
  %719 = shufflevector <2 x float> %717, <2 x float> %718, <2 x i32> <i32 0, i32 3>
  br label %720

720:                                              ; preds = %.lr.ph1190, %._crit_edge1186
  %indvars.iv1216 = phi i64 [ %709, %.lr.ph1190 ], [ %indvars.iv.next1217, %._crit_edge1186 ]
  %721 = load float, ptr %12, align 8, !tbaa !9
  %gep1251 = getelementptr %struct.complex, ptr %invariant.gep1250, i64 %indvars.iv1216
  %722 = load float, ptr %41, align 4, !tbaa !15
  %723 = fneg float %722
  %gep1253 = getelementptr %struct.complex, ptr %invariant.gep1252, i64 %indvars.iv1216
  %724 = load <2 x float>, ptr %gep1251, align 4, !tbaa !12
  %725 = insertelement <2 x float> poison, float %722, i64 0
  %726 = insertelement <2 x float> %725, float %723, i64 1
  %727 = fmul <2 x float> %724, %726
  %728 = shufflevector <2 x float> %727, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %729 = insertelement <2 x float> poison, float %721, i64 0
  %730 = shufflevector <2 x float> %729, <2 x float> poison, <2 x i32> zeroinitializer
  %731 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %730, <2 x float> %724, <2 x float> %728)
  %732 = load <2 x float>, ptr %gep1253, align 4, !tbaa !12
  %733 = fsub <2 x float> %731, %732
  %734 = fmul <2 x float> %733, %715
  %735 = shufflevector <2 x float> %734, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %736 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %713, <2 x float> %733, <2 x float> %735)
  store <2 x float> %736, ptr %15, align 8, !tbaa !12
  %737 = fmul <2 x float> %732, %719
  %738 = shufflevector <2 x float> %737, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %739 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %716, <2 x float> %732, <2 x float> %738)
  %740 = fsub <2 x float> %739, %724
  store <2 x float> %740, ptr %9, align 8, !tbaa !12
  %741 = fmul <2 x float> %740, %715
  %742 = shufflevector <2 x float> %741, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %743 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %713, <2 x float> %740, <2 x float> %742)
  store <2 x float> %743, ptr %8, align 8, !tbaa !12
  store <2 x float> %743, ptr %17, align 8, !tbaa !12
  %744 = load i32, ptr %1, align 4, !tbaa !5
  %745 = sext i32 %744 to i64
  %.not10461182 = icmp sgt i64 %indvars.iv1216, %745
  br i1 %.not10461182, label %._crit_edge1186, label %.lr.ph1185

.lr.ph1185:                                       ; preds = %720
  %746 = mul nsw i64 %indvars.iv1216, %44
  %invariant.gep1246 = getelementptr %struct.complex, ptr %20, i64 %746
  br label %747

747:                                              ; preds = %.lr.ph1185, %747
  %indvars.iv1218 = phi i64 [ %indvars.iv1216, %.lr.ph1185 ], [ %indvars.iv.next1219, %747 ]
  %gep1245 = getelementptr %struct.complex, ptr %invariant.gep1244, i64 %indvars.iv1218
  %748 = call <2 x float> @Cf(ptr noundef %gep1245)
  %.sroa.011.0.vec.extract = extractelement <2 x float> %748, i64 0
  %.sroa.011.4.vec.extract = extractelement <2 x float> %748, i64 1
  %749 = call <2 x float> @Cf(ptr noundef nonnull %14)
  %.sroa.010.0.vec.extract = extractelement <2 x float> %749, i64 0
  %.sroa.010.4.vec.extract = extractelement <2 x float> %749, i64 1
  %750 = call <2 x float> @__divsc3(float noundef %.sroa.011.0.vec.extract, float noundef %.sroa.011.4.vec.extract, float noundef %.sroa.010.0.vec.extract, float noundef %.sroa.010.4.vec.extract) #6
  %751 = call ptr @_pCf(ptr noundef nonnull %10)
  store <2 x float> %750, ptr %751, align 4
  %752 = load float, ptr %10, align 4, !tbaa !9
  %753 = load float, ptr %42, align 4, !tbaa !15
  %754 = fneg float %753
  %gep1247 = getelementptr %struct.complex, ptr %invariant.gep1246, i64 %indvars.iv1218
  %755 = load <2 x float>, ptr %15, align 8, !tbaa !12
  %756 = insertelement <2 x float> poison, float %753, i64 0
  %757 = insertelement <2 x float> %756, float %754, i64 1
  %758 = fmul <2 x float> %755, %757
  %759 = shufflevector <2 x float> %758, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %760 = insertelement <2 x float> poison, float %752, i64 0
  %761 = shufflevector <2 x float> %760, <2 x float> poison, <2 x i32> zeroinitializer
  %762 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %761, <2 x float> %755, <2 x float> %759)
  %763 = load <2 x float>, ptr %gep1247, align 4, !tbaa !12
  %764 = fsub <2 x float> %763, %762
  store <2 x float> %764, ptr %9, align 8, !tbaa !12
  %gep1249 = getelementptr %struct.complex, ptr %invariant.gep1248, i64 %indvars.iv1218
  %765 = call <2 x float> @Cf(ptr noundef %gep1249)
  %.sroa.08.0.vec.extract = extractelement <2 x float> %765, i64 0
  %.sroa.08.4.vec.extract = extractelement <2 x float> %765, i64 1
  %766 = call <2 x float> @Cf(ptr noundef nonnull %14)
  %.sroa.07.0.vec.extract = extractelement <2 x float> %766, i64 0
  %.sroa.07.4.vec.extract = extractelement <2 x float> %766, i64 1
  %767 = call <2 x float> @__divsc3(float noundef %.sroa.08.0.vec.extract, float noundef %.sroa.08.4.vec.extract, float noundef %.sroa.07.0.vec.extract, float noundef %.sroa.07.4.vec.extract) #6
  %768 = call ptr @_pCf(ptr noundef nonnull %11)
  store <2 x float> %767, ptr %768, align 4
  %769 = load float, ptr %11, align 4, !tbaa !9
  %770 = load float, ptr %43, align 4, !tbaa !15
  %771 = fneg float %770
  %772 = load <2 x float>, ptr %17, align 8, !tbaa !12
  %773 = insertelement <2 x float> poison, float %770, i64 0
  %774 = insertelement <2 x float> %773, float %771, i64 1
  %775 = fmul <2 x float> %772, %774
  %776 = shufflevector <2 x float> %775, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %777 = insertelement <2 x float> poison, float %769, i64 0
  %778 = shufflevector <2 x float> %777, <2 x float> poison, <2 x i32> zeroinitializer
  %779 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %778, <2 x float> %772, <2 x float> %776)
  %780 = load <2 x float>, ptr %9, align 8, !tbaa !12
  %781 = fsub <2 x float> %780, %779
  store <2 x float> %781, ptr %8, align 8, !tbaa !12
  store <2 x float> %781, ptr %gep1247, align 4, !tbaa !12
  %indvars.iv.next1219 = add nuw nsw i64 %indvars.iv1218, 1
  %.not1046.not = icmp slt i64 %indvars.iv1218, %745
  br i1 %.not1046.not, label %747, label %._crit_edge1186, !llvm.loop !19

._crit_edge1186:                                  ; preds = %747, %720
  %782 = call <2 x float> @Cf(ptr noundef nonnull %15)
  %.sroa.05.0.vec.extract = extractelement <2 x float> %782, i64 0
  %.sroa.05.4.vec.extract = extractelement <2 x float> %782, i64 1
  %783 = call <2 x float> @Cf(ptr noundef nonnull %14)
  %.sroa.04.0.vec.extract = extractelement <2 x float> %783, i64 0
  %.sroa.04.4.vec.extract = extractelement <2 x float> %783, i64 1
  %784 = call <2 x float> @__divsc3(float noundef %.sroa.05.0.vec.extract, float noundef %.sroa.05.4.vec.extract, float noundef %.sroa.04.0.vec.extract, float noundef %.sroa.04.4.vec.extract) #6
  %785 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %784, ptr %785, align 4
  %786 = load <2 x float>, ptr %8, align 8, !tbaa !12
  store <2 x float> %786, ptr %gep1251, align 4, !tbaa !12
  %787 = call <2 x float> @Cf(ptr noundef nonnull %17)
  %.sroa.02.0.vec.extract = extractelement <2 x float> %787, i64 0
  %.sroa.02.4.vec.extract = extractelement <2 x float> %787, i64 1
  %788 = call <2 x float> @Cf(ptr noundef nonnull %14)
  %.sroa.01.0.vec.extract = extractelement <2 x float> %788, i64 0
  %.sroa.01.4.vec.extract = extractelement <2 x float> %788, i64 1
  %789 = call <2 x float> @__divsc3(float noundef %.sroa.02.0.vec.extract, float noundef %.sroa.02.4.vec.extract, float noundef %.sroa.01.0.vec.extract, float noundef %.sroa.01.4.vec.extract) #6
  %790 = call ptr @_pCf(ptr noundef nonnull %8)
  store <2 x float> %789, ptr %790, align 4
  %791 = load <2 x float>, ptr %8, align 8, !tbaa !12
  store <2 x float> %791, ptr %gep1253, align 4, !tbaa !12
  %indvars.iv.next1217 = add nuw nsw i64 %indvars.iv1216, 1
  %792 = load i32, ptr %7, align 4, !tbaa !5
  %793 = sext i32 %792 to i64
  %.not1045.not = icmp slt i64 %indvars.iv1216, %793
  br i1 %.not1045.not, label %720, label %.loopexit, !llvm.loop !20

794:                                              ; preds = %624, %._crit_edge1195, %611, %456, %453
  %.91015.ph = phi i32 [ %.19871196, %453 ], [ %.19871196, %456 ], [ %.810141121, %611 ], [ %.810141121, %._crit_edge1195 ], [ %.810141121, %624 ]
  %.11981.ph = phi i32 [ %.69761199, %453 ], [ %.69761199, %456 ], [ %.109801124, %611 ], [ %.109801124, %._crit_edge1195 ], [ %.109801124, %624 ]
  %.11.ph = phi i32 [ %.7, %453 ], [ %.7, %456 ], [ %.101125, %611 ], [ %.101125, %._crit_edge1195 ], [ %.101125, %624 ]
  %795 = zext nneg i32 %.19871196 to i64
  %796 = getelementptr inbounds i32, ptr %21, i64 %795
  store i32 %.91015.ph, ptr %796, align 4, !tbaa !5
  br label %802

.loopexit:                                        ; preds = %._crit_edge1186, %669, %666
  %797 = sub nsw i32 0, %.69941123
  %798 = zext nneg i32 %.19871196 to i64
  %799 = getelementptr inbounds i32, ptr %21, i64 %798
  store i32 %797, ptr %799, align 4, !tbaa !5
  %800 = sub nsw i32 0, %.810141121
  %801 = getelementptr inbounds i8, ptr %799, i64 4
  store i32 %800, ptr %801, align 4, !tbaa !5
  br label %802

802:                                              ; preds = %.loopexit, %794
  %.111144 = phi i32 [ %.101125, %.loopexit ], [ %.11.ph, %794 ]
  %.119811142 = phi i32 [ %.109801124, %.loopexit ], [ %.11981.ph, %794 ]
  %.710031140 = phi i32 [ 2, %.loopexit ], [ 1, %794 ]
  %803 = add nuw nsw i32 %.710031140, %.19871196
  %804 = load i32, ptr %1, align 4, !tbaa !5
  %805 = icmp sgt i32 %803, %804
  br i1 %805, label %.loopexit1147, label %413

.loopexit1147:                                    ; preds = %410, %802, %45, %.preheader1146, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  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 @xerbla_(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

declare <2 x float> @__divsc3(float, float, float, float) local_unnamed_addr

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @_pCf(ptr noundef) local_unnamed_addr #4

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fmuladd.v2f32(<2 x float>, <2 x float>, <2 x float>) #5

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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 = !{!11, !11, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!10, !11, i64 4}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}


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