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

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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local float @clanhf_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5) #0 {
  %7 = alloca float, align 4
  %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 ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca float, align 4
  %17 = alloca float, align 4
  %18 = alloca float, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca i32, align 4
  %27 = alloca float, 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 { float, float }, align 4
  %34 = alloca { float, float }, align 4
  %35 = alloca { float, float }, align 4
  %36 = alloca { float, float }, align 4
  %37 = alloca { float, float }, align 4
  %38 = alloca { float, float }, align 4
  %39 = alloca { float, float }, align 4
  %40 = alloca { float, float }, align 4
  %41 = alloca { float, float }, align 4
  %42 = alloca { float, float }, align 4
  %43 = alloca { float, float }, align 4
  %44 = alloca { float, float }, align 4
  %45 = alloca { float, float }, align 4
  %46 = alloca { float, float }, align 4
  %47 = alloca { float, float }, align 4
  %48 = alloca { float, float }, align 4
  %49 = alloca { float, float }, align 4
  %50 = alloca { float, float }, align 4
  %51 = alloca { float, float }, align 4
  %52 = alloca { float, float }, align 4
  %53 = alloca { float, float }, align 4
  %54 = alloca { float, float }, 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
  %121 = alloca { float, float }, align 4
  %122 = alloca { float, float }, align 4
  %123 = alloca { float, float }, align 4
  %124 = alloca { float, float }, align 4
  %125 = alloca { float, float }, align 4
  %126 = alloca { float, float }, align 4
  %127 = alloca { float, float }, align 4
  %128 = alloca { float, float }, align 4
  %129 = alloca { float, float }, align 4
  %130 = alloca { float, float }, align 4
  %131 = alloca { float, float }, align 4
  %132 = alloca { float, float }, align 4
  %133 = alloca { float, float }, align 4
  %134 = alloca { float, float }, align 4
  %135 = alloca { float, float }, align 4
  %136 = alloca { float, float }, align 4
  %137 = alloca { float, float }, align 4
  %138 = alloca { float, float }, align 4
  %139 = alloca { float, float }, align 4
  %140 = alloca { float, float }, align 4
  %141 = alloca { float, float }, align 4
  %142 = alloca { float, float }, align 4
  %143 = alloca { float, float }, align 4
  %144 = alloca { float, float }, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  %145 = load ptr, ptr %11, align 8, !tbaa !5
  %146 = load i32, ptr %145, align 4, !tbaa !9
  %147 = icmp eq i32 %146, 0
  br i1 %147, label %148, label %150

148:                                              ; preds = %6
  store float 0.000000e+00, ptr %16, align 4, !tbaa !11
  %149 = load float, ptr %16, align 4, !tbaa !11
  store float %149, ptr %7, align 4
  store i32 1, ptr %32, align 4
  br label %6162

150:                                              ; preds = %6
  %151 = load ptr, ptr %11, align 8, !tbaa !5
  %152 = load i32, ptr %151, align 4, !tbaa !9
  %153 = icmp eq i32 %152, 1
  br i1 %153, label %154, label %169

154:                                              ; preds = %150
  %155 = load ptr, ptr %12, align 8, !tbaa !5
  %156 = getelementptr inbounds %struct.complex, ptr %155, i64 0
  %157 = getelementptr inbounds %struct.complex, ptr %156, i32 0, i32 0
  %158 = load float, ptr %157, align 4, !tbaa !13
  store float %158, ptr %17, align 4, !tbaa !11
  %159 = load float, ptr %17, align 4, !tbaa !11
  %160 = fcmp oge float %159, 0.000000e+00
  br i1 %160, label %161, label %163

161:                                              ; preds = %154
  %162 = load float, ptr %17, align 4, !tbaa !11
  br label %166

163:                                              ; preds = %154
  %164 = load float, ptr %17, align 4, !tbaa !11
  %165 = fneg float %164
  br label %166

166:                                              ; preds = %163, %161
  %167 = phi float [ %162, %161 ], [ %165, %163 ]
  store float %167, ptr %16, align 4, !tbaa !11
  %168 = load float, ptr %16, align 4, !tbaa !11
  store float %168, ptr %7, align 4
  store i32 1, ptr %32, align 4
  br label %6162

169:                                              ; preds = %150
  br label %170

170:                                              ; preds = %169
  store i32 1, ptr %30, align 4, !tbaa !9
  %171 = load ptr, ptr %11, align 8, !tbaa !5
  %172 = load i32, ptr %171, align 4, !tbaa !9
  %173 = srem i32 %172, 2
  %174 = icmp eq i32 %173, 0
  br i1 %174, label %175, label %176

175:                                              ; preds = %170
  store i32 0, ptr %30, align 4, !tbaa !9
  br label %176

176:                                              ; preds = %175, %170
  store i32 1, ptr %29, align 4, !tbaa !9
  %177 = load ptr, ptr %9, align 8, !tbaa !5
  %178 = call i32 @lsame_(ptr noundef %177, ptr noundef @.str)
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %180, label %181

180:                                              ; preds = %176
  store i32 0, ptr %29, align 4, !tbaa !9
  br label %181

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

185:                                              ; preds = %181
  store i32 0, ptr %31, align 4, !tbaa !9
  br label %186

186:                                              ; preds = %185, %181
  %187 = load i32, ptr %29, align 4, !tbaa !9
  %188 = icmp eq i32 %187, 1
  br i1 %188, label %189, label %200

189:                                              ; preds = %186
  %190 = load i32, ptr %30, align 4, !tbaa !9
  %191 = icmp eq i32 %190, 1
  br i1 %191, label %192, label %195

192:                                              ; preds = %189
  %193 = load ptr, ptr %11, align 8, !tbaa !5
  %194 = load i32, ptr %193, align 4, !tbaa !9
  store i32 %194, ptr %28, align 4, !tbaa !9
  br label %199

195:                                              ; preds = %189
  %196 = load ptr, ptr %11, align 8, !tbaa !5
  %197 = load i32, ptr %196, align 4, !tbaa !9
  %198 = add nsw i32 %197, 1
  store i32 %198, ptr %28, align 4, !tbaa !9
  br label %199

199:                                              ; preds = %195, %192
  br label %205

200:                                              ; preds = %186
  %201 = load ptr, ptr %11, align 8, !tbaa !5
  %202 = load i32, ptr %201, align 4, !tbaa !9
  %203 = add nsw i32 %202, 1
  %204 = sdiv i32 %203, 2
  store i32 %204, ptr %28, align 4, !tbaa !9
  br label %205

205:                                              ; preds = %200, %199
  %206 = load ptr, ptr %8, align 8, !tbaa !5
  %207 = call i32 @lsame_(ptr noundef %206, ptr noundef @.str.2)
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %209, label %2399

209:                                              ; preds = %205
  %210 = load ptr, ptr %11, align 8, !tbaa !5
  %211 = load i32, ptr %210, align 4, !tbaa !9
  %212 = add nsw i32 %211, 1
  %213 = sdiv i32 %212, 2
  store i32 %213, ptr %21, align 4, !tbaa !9
  store float 0.000000e+00, ptr %25, align 4, !tbaa !11
  %214 = load i32, ptr %30, align 4, !tbaa !9
  %215 = icmp eq i32 %214, 1
  br i1 %215, label %216, label %1211

216:                                              ; preds = %209
  %217 = load i32, ptr %29, align 4, !tbaa !9
  %218 = icmp eq i32 %217, 1
  br i1 %218, label %219, label %664

219:                                              ; preds = %216
  %220 = load i32, ptr %31, align 4, !tbaa !9
  %221 = icmp eq i32 %220, 1
  br i1 %221, label %222, label %439

222:                                              ; preds = %219
  store i32 0, ptr %20, align 4, !tbaa !9
  %223 = load i32, ptr %20, align 4, !tbaa !9
  %224 = load i32, ptr %20, align 4, !tbaa !9
  %225 = load i32, ptr %28, align 4, !tbaa !9
  %226 = mul nsw i32 %224, %225
  %227 = add nsw i32 %223, %226
  store i32 %227, ptr %14, align 4, !tbaa !9
  %228 = load ptr, ptr %12, align 8, !tbaa !5
  %229 = load i32, ptr %14, align 4, !tbaa !9
  %230 = sext i32 %229 to i64
  %231 = getelementptr inbounds %struct.complex, ptr %228, i64 %230
  %232 = getelementptr inbounds %struct.complex, ptr %231, i32 0, i32 0
  %233 = load float, ptr %232, align 4, !tbaa !13
  store float %233, ptr %17, align 4, !tbaa !11
  %234 = load float, ptr %17, align 4, !tbaa !11
  %235 = fcmp oge float %234, 0.000000e+00
  br i1 %235, label %236, label %238

236:                                              ; preds = %222
  %237 = load float, ptr %17, align 4, !tbaa !11
  br label %241

238:                                              ; preds = %222
  %239 = load float, ptr %17, align 4, !tbaa !11
  %240 = fneg float %239
  br label %241

241:                                              ; preds = %238, %236
  %242 = phi float [ %237, %236 ], [ %240, %238 ]
  store float %242, ptr %18, align 4, !tbaa !11
  %243 = load float, ptr %25, align 4, !tbaa !11
  %244 = load float, ptr %18, align 4, !tbaa !11
  %245 = fcmp olt float %243, %244
  br i1 %245, label %249, label %246

246:                                              ; preds = %241
  %247 = call i32 @sisnan_(ptr noundef %18)
  %248 = icmp ne i32 %247, 0
  br i1 %248, label %249, label %251

249:                                              ; preds = %246, %241
  %250 = load float, ptr %18, align 4, !tbaa !11
  store float %250, ptr %25, align 4, !tbaa !11
  br label %251

251:                                              ; preds = %249, %246
  %252 = load ptr, ptr %11, align 8, !tbaa !5
  %253 = load i32, ptr %252, align 4, !tbaa !9
  %254 = sub nsw i32 %253, 1
  store i32 %254, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %255

255:                                              ; preds = %286, %251
  %256 = load i32, ptr %19, align 4, !tbaa !9
  %257 = load i32, ptr %14, align 4, !tbaa !9
  %258 = icmp sle i32 %256, %257
  br i1 %258, label %259, label %289

259:                                              ; preds = %255
  %260 = load ptr, ptr %12, align 8, !tbaa !5
  %261 = load i32, ptr %19, align 4, !tbaa !9
  %262 = load i32, ptr %20, align 4, !tbaa !9
  %263 = load i32, ptr %28, align 4, !tbaa !9
  %264 = mul nsw i32 %262, %263
  %265 = add nsw i32 %261, %264
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds %struct.complex, ptr %260, i64 %266
  %268 = call <2 x float> @Cf(ptr noundef %267)
  store <2 x float> %268, ptr %33, align 4
  %269 = getelementptr inbounds { float, float }, ptr %33, i32 0, i32 0
  %270 = load float, ptr %269, align 4
  %271 = getelementptr inbounds { float, float }, ptr %33, i32 0, i32 1
  %272 = load float, ptr %271, align 4
  %273 = getelementptr inbounds { float, float }, ptr %34, i32 0, i32 0
  %274 = getelementptr inbounds { float, float }, ptr %34, i32 0, i32 1
  store float %270, ptr %273, align 4
  store float %272, ptr %274, align 4
  %275 = load <2 x float>, ptr %34, align 4
  %276 = call float @cabsf(<2 x float> noundef %275) #6
  store float %276, ptr %18, align 4, !tbaa !11
  %277 = load float, ptr %25, align 4, !tbaa !11
  %278 = load float, ptr %18, align 4, !tbaa !11
  %279 = fcmp olt float %277, %278
  br i1 %279, label %283, label %280

280:                                              ; preds = %259
  %281 = call i32 @sisnan_(ptr noundef %18)
  %282 = icmp ne i32 %281, 0
  br i1 %282, label %283, label %285

283:                                              ; preds = %280, %259
  %284 = load float, ptr %18, align 4, !tbaa !11
  store float %284, ptr %25, align 4, !tbaa !11
  br label %285

285:                                              ; preds = %283, %280
  br label %286

286:                                              ; preds = %285
  %287 = load i32, ptr %19, align 4, !tbaa !9
  %288 = add nsw i32 %287, 1
  store i32 %288, ptr %19, align 4, !tbaa !9
  br label %255, !llvm.loop !15

289:                                              ; preds = %255
  %290 = load i32, ptr %21, align 4, !tbaa !9
  %291 = sub nsw i32 %290, 1
  store i32 %291, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %292

292:                                              ; preds = %435, %289
  %293 = load i32, ptr %20, align 4, !tbaa !9
  %294 = load i32, ptr %14, align 4, !tbaa !9
  %295 = icmp sle i32 %293, %294
  br i1 %295, label %296, label %438

296:                                              ; preds = %292
  %297 = load i32, ptr %20, align 4, !tbaa !9
  %298 = sub nsw i32 %297, 2
  store i32 %298, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %299

299:                                              ; preds = %330, %296
  %300 = load i32, ptr %19, align 4, !tbaa !9
  %301 = load i32, ptr %15, align 4, !tbaa !9
  %302 = icmp sle i32 %300, %301
  br i1 %302, label %303, label %333

303:                                              ; preds = %299
  %304 = load ptr, ptr %12, align 8, !tbaa !5
  %305 = load i32, ptr %19, align 4, !tbaa !9
  %306 = load i32, ptr %20, align 4, !tbaa !9
  %307 = load i32, ptr %28, align 4, !tbaa !9
  %308 = mul nsw i32 %306, %307
  %309 = add nsw i32 %305, %308
  %310 = sext i32 %309 to i64
  %311 = getelementptr inbounds %struct.complex, ptr %304, i64 %310
  %312 = call <2 x float> @Cf(ptr noundef %311)
  store <2 x float> %312, ptr %35, align 4
  %313 = getelementptr inbounds { float, float }, ptr %35, i32 0, i32 0
  %314 = load float, ptr %313, align 4
  %315 = getelementptr inbounds { float, float }, ptr %35, i32 0, i32 1
  %316 = load float, ptr %315, align 4
  %317 = getelementptr inbounds { float, float }, ptr %36, i32 0, i32 0
  %318 = getelementptr inbounds { float, float }, ptr %36, i32 0, i32 1
  store float %314, ptr %317, align 4
  store float %316, ptr %318, align 4
  %319 = load <2 x float>, ptr %36, align 4
  %320 = call float @cabsf(<2 x float> noundef %319) #6
  store float %320, ptr %18, align 4, !tbaa !11
  %321 = load float, ptr %25, align 4, !tbaa !11
  %322 = load float, ptr %18, align 4, !tbaa !11
  %323 = fcmp olt float %321, %322
  br i1 %323, label %327, label %324

324:                                              ; preds = %303
  %325 = call i32 @sisnan_(ptr noundef %18)
  %326 = icmp ne i32 %325, 0
  br i1 %326, label %327, label %329

327:                                              ; preds = %324, %303
  %328 = load float, ptr %18, align 4, !tbaa !11
  store float %328, ptr %25, align 4, !tbaa !11
  br label %329

329:                                              ; preds = %327, %324
  br label %330

330:                                              ; preds = %329
  %331 = load i32, ptr %19, align 4, !tbaa !9
  %332 = add nsw i32 %331, 1
  store i32 %332, ptr %19, align 4, !tbaa !9
  br label %299, !llvm.loop !17

333:                                              ; preds = %299
  %334 = load i32, ptr %20, align 4, !tbaa !9
  %335 = sub nsw i32 %334, 1
  store i32 %335, ptr %19, align 4, !tbaa !9
  %336 = load i32, ptr %19, align 4, !tbaa !9
  %337 = load i32, ptr %20, align 4, !tbaa !9
  %338 = load i32, ptr %28, align 4, !tbaa !9
  %339 = mul nsw i32 %337, %338
  %340 = add nsw i32 %336, %339
  store i32 %340, ptr %15, align 4, !tbaa !9
  %341 = load ptr, ptr %12, align 8, !tbaa !5
  %342 = load i32, ptr %15, align 4, !tbaa !9
  %343 = sext i32 %342 to i64
  %344 = getelementptr inbounds %struct.complex, ptr %341, i64 %343
  %345 = getelementptr inbounds %struct.complex, ptr %344, i32 0, i32 0
  %346 = load float, ptr %345, align 4, !tbaa !13
  store float %346, ptr %17, align 4, !tbaa !11
  %347 = load float, ptr %17, align 4, !tbaa !11
  %348 = fcmp oge float %347, 0.000000e+00
  br i1 %348, label %349, label %351

349:                                              ; preds = %333
  %350 = load float, ptr %17, align 4, !tbaa !11
  br label %354

351:                                              ; preds = %333
  %352 = load float, ptr %17, align 4, !tbaa !11
  %353 = fneg float %352
  br label %354

354:                                              ; preds = %351, %349
  %355 = phi float [ %350, %349 ], [ %353, %351 ]
  store float %355, ptr %18, align 4, !tbaa !11
  %356 = load float, ptr %25, align 4, !tbaa !11
  %357 = load float, ptr %18, align 4, !tbaa !11
  %358 = fcmp olt float %356, %357
  br i1 %358, label %362, label %359

359:                                              ; preds = %354
  %360 = call i32 @sisnan_(ptr noundef %18)
  %361 = icmp ne i32 %360, 0
  br i1 %361, label %362, label %364

362:                                              ; preds = %359, %354
  %363 = load float, ptr %18, align 4, !tbaa !11
  store float %363, ptr %25, align 4, !tbaa !11
  br label %364

364:                                              ; preds = %362, %359
  %365 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %365, ptr %19, align 4, !tbaa !9
  %366 = load i32, ptr %19, align 4, !tbaa !9
  %367 = load i32, ptr %20, align 4, !tbaa !9
  %368 = load i32, ptr %28, align 4, !tbaa !9
  %369 = mul nsw i32 %367, %368
  %370 = add nsw i32 %366, %369
  store i32 %370, ptr %15, align 4, !tbaa !9
  %371 = load ptr, ptr %12, align 8, !tbaa !5
  %372 = load i32, ptr %15, align 4, !tbaa !9
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds %struct.complex, ptr %371, i64 %373
  %375 = getelementptr inbounds %struct.complex, ptr %374, i32 0, i32 0
  %376 = load float, ptr %375, align 4, !tbaa !13
  store float %376, ptr %17, align 4, !tbaa !11
  %377 = load float, ptr %17, align 4, !tbaa !11
  %378 = fcmp oge float %377, 0.000000e+00
  br i1 %378, label %379, label %381

379:                                              ; preds = %364
  %380 = load float, ptr %17, align 4, !tbaa !11
  br label %384

381:                                              ; preds = %364
  %382 = load float, ptr %17, align 4, !tbaa !11
  %383 = fneg float %382
  br label %384

384:                                              ; preds = %381, %379
  %385 = phi float [ %380, %379 ], [ %383, %381 ]
  store float %385, ptr %18, align 4, !tbaa !11
  %386 = load float, ptr %25, align 4, !tbaa !11
  %387 = load float, ptr %18, align 4, !tbaa !11
  %388 = fcmp olt float %386, %387
  br i1 %388, label %392, label %389

389:                                              ; preds = %384
  %390 = call i32 @sisnan_(ptr noundef %18)
  %391 = icmp ne i32 %390, 0
  br i1 %391, label %392, label %394

392:                                              ; preds = %389, %384
  %393 = load float, ptr %18, align 4, !tbaa !11
  store float %393, ptr %25, align 4, !tbaa !11
  br label %394

394:                                              ; preds = %392, %389
  %395 = load ptr, ptr %11, align 8, !tbaa !5
  %396 = load i32, ptr %395, align 4, !tbaa !9
  %397 = sub nsw i32 %396, 1
  store i32 %397, ptr %15, align 4, !tbaa !9
  %398 = load i32, ptr %20, align 4, !tbaa !9
  %399 = add nsw i32 %398, 1
  store i32 %399, ptr %19, align 4, !tbaa !9
  br label %400

400:                                              ; preds = %431, %394
  %401 = load i32, ptr %19, align 4, !tbaa !9
  %402 = load i32, ptr %15, align 4, !tbaa !9
  %403 = icmp sle i32 %401, %402
  br i1 %403, label %404, label %434

404:                                              ; preds = %400
  %405 = load ptr, ptr %12, align 8, !tbaa !5
  %406 = load i32, ptr %19, align 4, !tbaa !9
  %407 = load i32, ptr %20, align 4, !tbaa !9
  %408 = load i32, ptr %28, align 4, !tbaa !9
  %409 = mul nsw i32 %407, %408
  %410 = add nsw i32 %406, %409
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds %struct.complex, ptr %405, i64 %411
  %413 = call <2 x float> @Cf(ptr noundef %412)
  store <2 x float> %413, ptr %37, align 4
  %414 = getelementptr inbounds { float, float }, ptr %37, i32 0, i32 0
  %415 = load float, ptr %414, align 4
  %416 = getelementptr inbounds { float, float }, ptr %37, i32 0, i32 1
  %417 = load float, ptr %416, align 4
  %418 = getelementptr inbounds { float, float }, ptr %38, i32 0, i32 0
  %419 = getelementptr inbounds { float, float }, ptr %38, i32 0, i32 1
  store float %415, ptr %418, align 4
  store float %417, ptr %419, align 4
  %420 = load <2 x float>, ptr %38, align 4
  %421 = call float @cabsf(<2 x float> noundef %420) #6
  store float %421, ptr %18, align 4, !tbaa !11
  %422 = load float, ptr %25, align 4, !tbaa !11
  %423 = load float, ptr %18, align 4, !tbaa !11
  %424 = fcmp olt float %422, %423
  br i1 %424, label %428, label %425

425:                                              ; preds = %404
  %426 = call i32 @sisnan_(ptr noundef %18)
  %427 = icmp ne i32 %426, 0
  br i1 %427, label %428, label %430

428:                                              ; preds = %425, %404
  %429 = load float, ptr %18, align 4, !tbaa !11
  store float %429, ptr %25, align 4, !tbaa !11
  br label %430

430:                                              ; preds = %428, %425
  br label %431

431:                                              ; preds = %430
  %432 = load i32, ptr %19, align 4, !tbaa !9
  %433 = add nsw i32 %432, 1
  store i32 %433, ptr %19, align 4, !tbaa !9
  br label %400, !llvm.loop !18

434:                                              ; preds = %400
  br label %435

435:                                              ; preds = %434
  %436 = load i32, ptr %20, align 4, !tbaa !9
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr %20, align 4, !tbaa !9
  br label %292, !llvm.loop !19

438:                                              ; preds = %292
  br label %663

439:                                              ; preds = %219
  %440 = load i32, ptr %21, align 4, !tbaa !9
  %441 = sub nsw i32 %440, 2
  store i32 %441, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %442

442:                                              ; preds = %592, %439
  %443 = load i32, ptr %20, align 4, !tbaa !9
  %444 = load i32, ptr %14, align 4, !tbaa !9
  %445 = icmp sle i32 %443, %444
  br i1 %445, label %446, label %595

446:                                              ; preds = %442
  %447 = load i32, ptr %21, align 4, !tbaa !9
  %448 = load i32, ptr %20, align 4, !tbaa !9
  %449 = add nsw i32 %447, %448
  %450 = sub nsw i32 %449, 2
  store i32 %450, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %451

451:                                              ; preds = %482, %446
  %452 = load i32, ptr %19, align 4, !tbaa !9
  %453 = load i32, ptr %15, align 4, !tbaa !9
  %454 = icmp sle i32 %452, %453
  br i1 %454, label %455, label %485

455:                                              ; preds = %451
  %456 = load ptr, ptr %12, align 8, !tbaa !5
  %457 = load i32, ptr %19, align 4, !tbaa !9
  %458 = load i32, ptr %20, align 4, !tbaa !9
  %459 = load i32, ptr %28, align 4, !tbaa !9
  %460 = mul nsw i32 %458, %459
  %461 = add nsw i32 %457, %460
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds %struct.complex, ptr %456, i64 %462
  %464 = call <2 x float> @Cf(ptr noundef %463)
  store <2 x float> %464, ptr %39, align 4
  %465 = getelementptr inbounds { float, float }, ptr %39, i32 0, i32 0
  %466 = load float, ptr %465, align 4
  %467 = getelementptr inbounds { float, float }, ptr %39, i32 0, i32 1
  %468 = load float, ptr %467, align 4
  %469 = getelementptr inbounds { float, float }, ptr %40, i32 0, i32 0
  %470 = getelementptr inbounds { float, float }, ptr %40, i32 0, i32 1
  store float %466, ptr %469, align 4
  store float %468, ptr %470, align 4
  %471 = load <2 x float>, ptr %40, align 4
  %472 = call float @cabsf(<2 x float> noundef %471) #6
  store float %472, ptr %18, align 4, !tbaa !11
  %473 = load float, ptr %25, align 4, !tbaa !11
  %474 = load float, ptr %18, align 4, !tbaa !11
  %475 = fcmp olt float %473, %474
  br i1 %475, label %479, label %476

476:                                              ; preds = %455
  %477 = call i32 @sisnan_(ptr noundef %18)
  %478 = icmp ne i32 %477, 0
  br i1 %478, label %479, label %481

479:                                              ; preds = %476, %455
  %480 = load float, ptr %18, align 4, !tbaa !11
  store float %480, ptr %25, align 4, !tbaa !11
  br label %481

481:                                              ; preds = %479, %476
  br label %482

482:                                              ; preds = %481
  %483 = load i32, ptr %19, align 4, !tbaa !9
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr %19, align 4, !tbaa !9
  br label %451, !llvm.loop !20

485:                                              ; preds = %451
  %486 = load i32, ptr %21, align 4, !tbaa !9
  %487 = load i32, ptr %20, align 4, !tbaa !9
  %488 = add nsw i32 %486, %487
  %489 = sub nsw i32 %488, 1
  store i32 %489, ptr %19, align 4, !tbaa !9
  %490 = load i32, ptr %19, align 4, !tbaa !9
  %491 = load i32, ptr %20, align 4, !tbaa !9
  %492 = load i32, ptr %28, align 4, !tbaa !9
  %493 = mul nsw i32 %491, %492
  %494 = add nsw i32 %490, %493
  store i32 %494, ptr %15, align 4, !tbaa !9
  %495 = load ptr, ptr %12, align 8, !tbaa !5
  %496 = load i32, ptr %15, align 4, !tbaa !9
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds %struct.complex, ptr %495, i64 %497
  %499 = getelementptr inbounds %struct.complex, ptr %498, i32 0, i32 0
  %500 = load float, ptr %499, align 4, !tbaa !13
  store float %500, ptr %17, align 4, !tbaa !11
  %501 = load float, ptr %17, align 4, !tbaa !11
  %502 = fcmp oge float %501, 0.000000e+00
  br i1 %502, label %503, label %505

503:                                              ; preds = %485
  %504 = load float, ptr %17, align 4, !tbaa !11
  br label %508

505:                                              ; preds = %485
  %506 = load float, ptr %17, align 4, !tbaa !11
  %507 = fneg float %506
  br label %508

508:                                              ; preds = %505, %503
  %509 = phi float [ %504, %503 ], [ %507, %505 ]
  store float %509, ptr %18, align 4, !tbaa !11
  %510 = load float, ptr %25, align 4, !tbaa !11
  %511 = load float, ptr %18, align 4, !tbaa !11
  %512 = fcmp olt float %510, %511
  br i1 %512, label %516, label %513

513:                                              ; preds = %508
  %514 = call i32 @sisnan_(ptr noundef %18)
  %515 = icmp ne i32 %514, 0
  br i1 %515, label %516, label %518

516:                                              ; preds = %513, %508
  %517 = load float, ptr %18, align 4, !tbaa !11
  store float %517, ptr %25, align 4, !tbaa !11
  br label %518

518:                                              ; preds = %516, %513
  %519 = load i32, ptr %19, align 4, !tbaa !9
  %520 = add nsw i32 %519, 1
  store i32 %520, ptr %19, align 4, !tbaa !9
  %521 = load i32, ptr %19, align 4, !tbaa !9
  %522 = load i32, ptr %20, align 4, !tbaa !9
  %523 = load i32, ptr %28, align 4, !tbaa !9
  %524 = mul nsw i32 %522, %523
  %525 = add nsw i32 %521, %524
  store i32 %525, ptr %15, align 4, !tbaa !9
  %526 = load ptr, ptr %12, align 8, !tbaa !5
  %527 = load i32, ptr %15, align 4, !tbaa !9
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds %struct.complex, ptr %526, i64 %528
  %530 = getelementptr inbounds %struct.complex, ptr %529, i32 0, i32 0
  %531 = load float, ptr %530, align 4, !tbaa !13
  store float %531, ptr %17, align 4, !tbaa !11
  %532 = load float, ptr %17, align 4, !tbaa !11
  %533 = fcmp oge float %532, 0.000000e+00
  br i1 %533, label %534, label %536

534:                                              ; preds = %518
  %535 = load float, ptr %17, align 4, !tbaa !11
  br label %539

536:                                              ; preds = %518
  %537 = load float, ptr %17, align 4, !tbaa !11
  %538 = fneg float %537
  br label %539

539:                                              ; preds = %536, %534
  %540 = phi float [ %535, %534 ], [ %538, %536 ]
  store float %540, ptr %18, align 4, !tbaa !11
  %541 = load float, ptr %25, align 4, !tbaa !11
  %542 = load float, ptr %18, align 4, !tbaa !11
  %543 = fcmp olt float %541, %542
  br i1 %543, label %547, label %544

544:                                              ; preds = %539
  %545 = call i32 @sisnan_(ptr noundef %18)
  %546 = icmp ne i32 %545, 0
  br i1 %546, label %547, label %549

547:                                              ; preds = %544, %539
  %548 = load float, ptr %18, align 4, !tbaa !11
  store float %548, ptr %25, align 4, !tbaa !11
  br label %549

549:                                              ; preds = %547, %544
  %550 = load ptr, ptr %11, align 8, !tbaa !5
  %551 = load i32, ptr %550, align 4, !tbaa !9
  %552 = sub nsw i32 %551, 1
  store i32 %552, ptr %15, align 4, !tbaa !9
  %553 = load i32, ptr %21, align 4, !tbaa !9
  %554 = load i32, ptr %20, align 4, !tbaa !9
  %555 = add nsw i32 %553, %554
  %556 = add nsw i32 %555, 1
  store i32 %556, ptr %19, align 4, !tbaa !9
  br label %557

557:                                              ; preds = %588, %549
  %558 = load i32, ptr %19, align 4, !tbaa !9
  %559 = load i32, ptr %15, align 4, !tbaa !9
  %560 = icmp sle i32 %558, %559
  br i1 %560, label %561, label %591

561:                                              ; preds = %557
  %562 = load ptr, ptr %12, align 8, !tbaa !5
  %563 = load i32, ptr %19, align 4, !tbaa !9
  %564 = load i32, ptr %20, align 4, !tbaa !9
  %565 = load i32, ptr %28, align 4, !tbaa !9
  %566 = mul nsw i32 %564, %565
  %567 = add nsw i32 %563, %566
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds %struct.complex, ptr %562, i64 %568
  %570 = call <2 x float> @Cf(ptr noundef %569)
  store <2 x float> %570, ptr %41, align 4
  %571 = getelementptr inbounds { float, float }, ptr %41, i32 0, i32 0
  %572 = load float, ptr %571, align 4
  %573 = getelementptr inbounds { float, float }, ptr %41, i32 0, i32 1
  %574 = load float, ptr %573, align 4
  %575 = getelementptr inbounds { float, float }, ptr %42, i32 0, i32 0
  %576 = getelementptr inbounds { float, float }, ptr %42, i32 0, i32 1
  store float %572, ptr %575, align 4
  store float %574, ptr %576, align 4
  %577 = load <2 x float>, ptr %42, align 4
  %578 = call float @cabsf(<2 x float> noundef %577) #6
  store float %578, ptr %18, align 4, !tbaa !11
  %579 = load float, ptr %25, align 4, !tbaa !11
  %580 = load float, ptr %18, align 4, !tbaa !11
  %581 = fcmp olt float %579, %580
  br i1 %581, label %585, label %582

582:                                              ; preds = %561
  %583 = call i32 @sisnan_(ptr noundef %18)
  %584 = icmp ne i32 %583, 0
  br i1 %584, label %585, label %587

585:                                              ; preds = %582, %561
  %586 = load float, ptr %18, align 4, !tbaa !11
  store float %586, ptr %25, align 4, !tbaa !11
  br label %587

587:                                              ; preds = %585, %582
  br label %588

588:                                              ; preds = %587
  %589 = load i32, ptr %19, align 4, !tbaa !9
  %590 = add nsw i32 %589, 1
  store i32 %590, ptr %19, align 4, !tbaa !9
  br label %557, !llvm.loop !21

591:                                              ; preds = %557
  br label %592

592:                                              ; preds = %591
  %593 = load i32, ptr %20, align 4, !tbaa !9
  %594 = add nsw i32 %593, 1
  store i32 %594, ptr %20, align 4, !tbaa !9
  br label %442, !llvm.loop !22

595:                                              ; preds = %442
  %596 = load ptr, ptr %11, align 8, !tbaa !5
  %597 = load i32, ptr %596, align 4, !tbaa !9
  %598 = sub nsw i32 %597, 2
  store i32 %598, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %599

599:                                              ; preds = %630, %595
  %600 = load i32, ptr %19, align 4, !tbaa !9
  %601 = load i32, ptr %14, align 4, !tbaa !9
  %602 = icmp sle i32 %600, %601
  br i1 %602, label %603, label %633

603:                                              ; preds = %599
  %604 = load ptr, ptr %12, align 8, !tbaa !5
  %605 = load i32, ptr %19, align 4, !tbaa !9
  %606 = load i32, ptr %20, align 4, !tbaa !9
  %607 = load i32, ptr %28, align 4, !tbaa !9
  %608 = mul nsw i32 %606, %607
  %609 = add nsw i32 %605, %608
  %610 = sext i32 %609 to i64
  %611 = getelementptr inbounds %struct.complex, ptr %604, i64 %610
  %612 = call <2 x float> @Cf(ptr noundef %611)
  store <2 x float> %612, ptr %43, align 4
  %613 = getelementptr inbounds { float, float }, ptr %43, i32 0, i32 0
  %614 = load float, ptr %613, align 4
  %615 = getelementptr inbounds { float, float }, ptr %43, i32 0, i32 1
  %616 = load float, ptr %615, align 4
  %617 = getelementptr inbounds { float, float }, ptr %44, i32 0, i32 0
  %618 = getelementptr inbounds { float, float }, ptr %44, i32 0, i32 1
  store float %614, ptr %617, align 4
  store float %616, ptr %618, align 4
  %619 = load <2 x float>, ptr %44, align 4
  %620 = call float @cabsf(<2 x float> noundef %619) #6
  store float %620, ptr %18, align 4, !tbaa !11
  %621 = load float, ptr %25, align 4, !tbaa !11
  %622 = load float, ptr %18, align 4, !tbaa !11
  %623 = fcmp olt float %621, %622
  br i1 %623, label %627, label %624

624:                                              ; preds = %603
  %625 = call i32 @sisnan_(ptr noundef %18)
  %626 = icmp ne i32 %625, 0
  br i1 %626, label %627, label %629

627:                                              ; preds = %624, %603
  %628 = load float, ptr %18, align 4, !tbaa !11
  store float %628, ptr %25, align 4, !tbaa !11
  br label %629

629:                                              ; preds = %627, %624
  br label %630

630:                                              ; preds = %629
  %631 = load i32, ptr %19, align 4, !tbaa !9
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr %19, align 4, !tbaa !9
  br label %599, !llvm.loop !23

633:                                              ; preds = %599
  %634 = load i32, ptr %19, align 4, !tbaa !9
  %635 = load i32, ptr %20, align 4, !tbaa !9
  %636 = load i32, ptr %28, align 4, !tbaa !9
  %637 = mul nsw i32 %635, %636
  %638 = add nsw i32 %634, %637
  store i32 %638, ptr %14, align 4, !tbaa !9
  %639 = load ptr, ptr %12, align 8, !tbaa !5
  %640 = load i32, ptr %14, align 4, !tbaa !9
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds %struct.complex, ptr %639, i64 %641
  %643 = getelementptr inbounds %struct.complex, ptr %642, i32 0, i32 0
  %644 = load float, ptr %643, align 4, !tbaa !13
  store float %644, ptr %17, align 4, !tbaa !11
  %645 = load float, ptr %17, align 4, !tbaa !11
  %646 = fcmp oge float %645, 0.000000e+00
  br i1 %646, label %647, label %649

647:                                              ; preds = %633
  %648 = load float, ptr %17, align 4, !tbaa !11
  br label %652

649:                                              ; preds = %633
  %650 = load float, ptr %17, align 4, !tbaa !11
  %651 = fneg float %650
  br label %652

652:                                              ; preds = %649, %647
  %653 = phi float [ %648, %647 ], [ %651, %649 ]
  store float %653, ptr %18, align 4, !tbaa !11
  %654 = load float, ptr %25, align 4, !tbaa !11
  %655 = load float, ptr %18, align 4, !tbaa !11
  %656 = fcmp olt float %654, %655
  br i1 %656, label %660, label %657

657:                                              ; preds = %652
  %658 = call i32 @sisnan_(ptr noundef %18)
  %659 = icmp ne i32 %658, 0
  br i1 %659, label %660, label %662

660:                                              ; preds = %657, %652
  %661 = load float, ptr %18, align 4, !tbaa !11
  store float %661, ptr %25, align 4, !tbaa !11
  br label %662

662:                                              ; preds = %660, %657
  br label %663

663:                                              ; preds = %662, %438
  br label %1210

664:                                              ; preds = %216
  %665 = load i32, ptr %31, align 4, !tbaa !9
  %666 = icmp eq i32 %665, 1
  br i1 %666, label %667, label %936

667:                                              ; preds = %664
  %668 = load i32, ptr %21, align 4, !tbaa !9
  %669 = sub nsw i32 %668, 2
  store i32 %669, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %670

670:                                              ; preds = %812, %667
  %671 = load i32, ptr %20, align 4, !tbaa !9
  %672 = load i32, ptr %14, align 4, !tbaa !9
  %673 = icmp sle i32 %671, %672
  br i1 %673, label %674, label %815

674:                                              ; preds = %670
  %675 = load i32, ptr %20, align 4, !tbaa !9
  %676 = sub nsw i32 %675, 1
  store i32 %676, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %677

677:                                              ; preds = %708, %674
  %678 = load i32, ptr %19, align 4, !tbaa !9
  %679 = load i32, ptr %15, align 4, !tbaa !9
  %680 = icmp sle i32 %678, %679
  br i1 %680, label %681, label %711

681:                                              ; preds = %677
  %682 = load ptr, ptr %12, align 8, !tbaa !5
  %683 = load i32, ptr %19, align 4, !tbaa !9
  %684 = load i32, ptr %20, align 4, !tbaa !9
  %685 = load i32, ptr %28, align 4, !tbaa !9
  %686 = mul nsw i32 %684, %685
  %687 = add nsw i32 %683, %686
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds %struct.complex, ptr %682, i64 %688
  %690 = call <2 x float> @Cf(ptr noundef %689)
  store <2 x float> %690, ptr %45, align 4
  %691 = getelementptr inbounds { float, float }, ptr %45, i32 0, i32 0
  %692 = load float, ptr %691, align 4
  %693 = getelementptr inbounds { float, float }, ptr %45, i32 0, i32 1
  %694 = load float, ptr %693, align 4
  %695 = getelementptr inbounds { float, float }, ptr %46, i32 0, i32 0
  %696 = getelementptr inbounds { float, float }, ptr %46, i32 0, i32 1
  store float %692, ptr %695, align 4
  store float %694, ptr %696, align 4
  %697 = load <2 x float>, ptr %46, align 4
  %698 = call float @cabsf(<2 x float> noundef %697) #6
  store float %698, ptr %18, align 4, !tbaa !11
  %699 = load float, ptr %25, align 4, !tbaa !11
  %700 = load float, ptr %18, align 4, !tbaa !11
  %701 = fcmp olt float %699, %700
  br i1 %701, label %705, label %702

702:                                              ; preds = %681
  %703 = call i32 @sisnan_(ptr noundef %18)
  %704 = icmp ne i32 %703, 0
  br i1 %704, label %705, label %707

705:                                              ; preds = %702, %681
  %706 = load float, ptr %18, align 4, !tbaa !11
  store float %706, ptr %25, align 4, !tbaa !11
  br label %707

707:                                              ; preds = %705, %702
  br label %708

708:                                              ; preds = %707
  %709 = load i32, ptr %19, align 4, !tbaa !9
  %710 = add nsw i32 %709, 1
  store i32 %710, ptr %19, align 4, !tbaa !9
  br label %677, !llvm.loop !24

711:                                              ; preds = %677
  %712 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %712, ptr %19, align 4, !tbaa !9
  %713 = load i32, ptr %19, align 4, !tbaa !9
  %714 = load i32, ptr %20, align 4, !tbaa !9
  %715 = load i32, ptr %28, align 4, !tbaa !9
  %716 = mul nsw i32 %714, %715
  %717 = add nsw i32 %713, %716
  store i32 %717, ptr %15, align 4, !tbaa !9
  %718 = load ptr, ptr %12, align 8, !tbaa !5
  %719 = load i32, ptr %15, align 4, !tbaa !9
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds %struct.complex, ptr %718, i64 %720
  %722 = getelementptr inbounds %struct.complex, ptr %721, i32 0, i32 0
  %723 = load float, ptr %722, align 4, !tbaa !13
  store float %723, ptr %17, align 4, !tbaa !11
  %724 = load float, ptr %17, align 4, !tbaa !11
  %725 = fcmp oge float %724, 0.000000e+00
  br i1 %725, label %726, label %728

726:                                              ; preds = %711
  %727 = load float, ptr %17, align 4, !tbaa !11
  br label %731

728:                                              ; preds = %711
  %729 = load float, ptr %17, align 4, !tbaa !11
  %730 = fneg float %729
  br label %731

731:                                              ; preds = %728, %726
  %732 = phi float [ %727, %726 ], [ %730, %728 ]
  store float %732, ptr %18, align 4, !tbaa !11
  %733 = load float, ptr %25, align 4, !tbaa !11
  %734 = load float, ptr %18, align 4, !tbaa !11
  %735 = fcmp olt float %733, %734
  br i1 %735, label %739, label %736

736:                                              ; preds = %731
  %737 = call i32 @sisnan_(ptr noundef %18)
  %738 = icmp ne i32 %737, 0
  br i1 %738, label %739, label %741

739:                                              ; preds = %736, %731
  %740 = load float, ptr %18, align 4, !tbaa !11
  store float %740, ptr %25, align 4, !tbaa !11
  br label %741

741:                                              ; preds = %739, %736
  %742 = load i32, ptr %20, align 4, !tbaa !9
  %743 = add nsw i32 %742, 1
  store i32 %743, ptr %19, align 4, !tbaa !9
  %744 = load i32, ptr %19, align 4, !tbaa !9
  %745 = load i32, ptr %20, align 4, !tbaa !9
  %746 = load i32, ptr %28, align 4, !tbaa !9
  %747 = mul nsw i32 %745, %746
  %748 = add nsw i32 %744, %747
  store i32 %748, ptr %15, align 4, !tbaa !9
  %749 = load ptr, ptr %12, align 8, !tbaa !5
  %750 = load i32, ptr %15, 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 0
  %754 = load float, ptr %753, align 4, !tbaa !13
  store float %754, ptr %17, align 4, !tbaa !11
  %755 = load float, ptr %17, align 4, !tbaa !11
  %756 = fcmp oge float %755, 0.000000e+00
  br i1 %756, label %757, label %759

757:                                              ; preds = %741
  %758 = load float, ptr %17, align 4, !tbaa !11
  br label %762

759:                                              ; preds = %741
  %760 = load float, ptr %17, align 4, !tbaa !11
  %761 = fneg float %760
  br label %762

762:                                              ; preds = %759, %757
  %763 = phi float [ %758, %757 ], [ %761, %759 ]
  store float %763, ptr %18, align 4, !tbaa !11
  %764 = load float, ptr %25, align 4, !tbaa !11
  %765 = load float, ptr %18, align 4, !tbaa !11
  %766 = fcmp olt float %764, %765
  br i1 %766, label %770, label %767

767:                                              ; preds = %762
  %768 = call i32 @sisnan_(ptr noundef %18)
  %769 = icmp ne i32 %768, 0
  br i1 %769, label %770, label %772

770:                                              ; preds = %767, %762
  %771 = load float, ptr %18, align 4, !tbaa !11
  store float %771, ptr %25, align 4, !tbaa !11
  br label %772

772:                                              ; preds = %770, %767
  %773 = load i32, ptr %21, align 4, !tbaa !9
  %774 = sub nsw i32 %773, 1
  store i32 %774, ptr %15, align 4, !tbaa !9
  %775 = load i32, ptr %20, align 4, !tbaa !9
  %776 = add nsw i32 %775, 2
  store i32 %776, ptr %19, align 4, !tbaa !9
  br label %777

777:                                              ; preds = %808, %772
  %778 = load i32, ptr %19, align 4, !tbaa !9
  %779 = load i32, ptr %15, align 4, !tbaa !9
  %780 = icmp sle i32 %778, %779
  br i1 %780, label %781, label %811

781:                                              ; preds = %777
  %782 = load ptr, ptr %12, align 8, !tbaa !5
  %783 = load i32, ptr %19, align 4, !tbaa !9
  %784 = load i32, ptr %20, align 4, !tbaa !9
  %785 = load i32, ptr %28, align 4, !tbaa !9
  %786 = mul nsw i32 %784, %785
  %787 = add nsw i32 %783, %786
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds %struct.complex, ptr %782, i64 %788
  %790 = call <2 x float> @Cf(ptr noundef %789)
  store <2 x float> %790, ptr %47, align 4
  %791 = getelementptr inbounds { float, float }, ptr %47, i32 0, i32 0
  %792 = load float, ptr %791, align 4
  %793 = getelementptr inbounds { float, float }, ptr %47, i32 0, i32 1
  %794 = load float, ptr %793, align 4
  %795 = getelementptr inbounds { float, float }, ptr %48, i32 0, i32 0
  %796 = getelementptr inbounds { float, float }, ptr %48, i32 0, i32 1
  store float %792, ptr %795, align 4
  store float %794, ptr %796, align 4
  %797 = load <2 x float>, ptr %48, align 4
  %798 = call float @cabsf(<2 x float> noundef %797) #6
  store float %798, ptr %18, align 4, !tbaa !11
  %799 = load float, ptr %25, align 4, !tbaa !11
  %800 = load float, ptr %18, align 4, !tbaa !11
  %801 = fcmp olt float %799, %800
  br i1 %801, label %805, label %802

802:                                              ; preds = %781
  %803 = call i32 @sisnan_(ptr noundef %18)
  %804 = icmp ne i32 %803, 0
  br i1 %804, label %805, label %807

805:                                              ; preds = %802, %781
  %806 = load float, ptr %18, align 4, !tbaa !11
  store float %806, ptr %25, align 4, !tbaa !11
  br label %807

807:                                              ; preds = %805, %802
  br label %808

808:                                              ; preds = %807
  %809 = load i32, ptr %19, align 4, !tbaa !9
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr %19, align 4, !tbaa !9
  br label %777, !llvm.loop !25

811:                                              ; preds = %777
  br label %812

812:                                              ; preds = %811
  %813 = load i32, ptr %20, align 4, !tbaa !9
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr %20, align 4, !tbaa !9
  br label %670, !llvm.loop !26

815:                                              ; preds = %670
  %816 = load i32, ptr %21, align 4, !tbaa !9
  %817 = sub nsw i32 %816, 1
  store i32 %817, ptr %20, align 4, !tbaa !9
  %818 = load i32, ptr %21, align 4, !tbaa !9
  %819 = sub nsw i32 %818, 2
  store i32 %819, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %820

820:                                              ; preds = %851, %815
  %821 = load i32, ptr %19, align 4, !tbaa !9
  %822 = load i32, ptr %14, align 4, !tbaa !9
  %823 = icmp sle i32 %821, %822
  br i1 %823, label %824, label %854

824:                                              ; preds = %820
  %825 = load ptr, ptr %12, align 8, !tbaa !5
  %826 = load i32, ptr %19, align 4, !tbaa !9
  %827 = load i32, ptr %20, align 4, !tbaa !9
  %828 = load i32, ptr %28, align 4, !tbaa !9
  %829 = mul nsw i32 %827, %828
  %830 = add nsw i32 %826, %829
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds %struct.complex, ptr %825, i64 %831
  %833 = call <2 x float> @Cf(ptr noundef %832)
  store <2 x float> %833, ptr %49, align 4
  %834 = getelementptr inbounds { float, float }, ptr %49, i32 0, i32 0
  %835 = load float, ptr %834, align 4
  %836 = getelementptr inbounds { float, float }, ptr %49, i32 0, i32 1
  %837 = load float, ptr %836, align 4
  %838 = getelementptr inbounds { float, float }, ptr %50, i32 0, i32 0
  %839 = getelementptr inbounds { float, float }, ptr %50, i32 0, i32 1
  store float %835, ptr %838, align 4
  store float %837, ptr %839, align 4
  %840 = load <2 x float>, ptr %50, align 4
  %841 = call float @cabsf(<2 x float> noundef %840) #6
  store float %841, ptr %18, align 4, !tbaa !11
  %842 = load float, ptr %25, align 4, !tbaa !11
  %843 = load float, ptr %18, align 4, !tbaa !11
  %844 = fcmp olt float %842, %843
  br i1 %844, label %848, label %845

845:                                              ; preds = %824
  %846 = call i32 @sisnan_(ptr noundef %18)
  %847 = icmp ne i32 %846, 0
  br i1 %847, label %848, label %850

848:                                              ; preds = %845, %824
  %849 = load float, ptr %18, align 4, !tbaa !11
  store float %849, ptr %25, align 4, !tbaa !11
  br label %850

850:                                              ; preds = %848, %845
  br label %851

851:                                              ; preds = %850
  %852 = load i32, ptr %19, align 4, !tbaa !9
  %853 = add nsw i32 %852, 1
  store i32 %853, ptr %19, align 4, !tbaa !9
  br label %820, !llvm.loop !27

854:                                              ; preds = %820
  %855 = load i32, ptr %21, align 4, !tbaa !9
  %856 = sub nsw i32 %855, 1
  store i32 %856, ptr %19, align 4, !tbaa !9
  %857 = load i32, ptr %19, align 4, !tbaa !9
  %858 = load i32, ptr %20, align 4, !tbaa !9
  %859 = load i32, ptr %28, align 4, !tbaa !9
  %860 = mul nsw i32 %858, %859
  %861 = add nsw i32 %857, %860
  store i32 %861, ptr %14, align 4, !tbaa !9
  %862 = load ptr, ptr %12, align 8, !tbaa !5
  %863 = load i32, ptr %14, align 4, !tbaa !9
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds %struct.complex, ptr %862, i64 %864
  %866 = getelementptr inbounds %struct.complex, ptr %865, i32 0, i32 0
  %867 = load float, ptr %866, align 4, !tbaa !13
  store float %867, ptr %17, align 4, !tbaa !11
  %868 = load float, ptr %17, align 4, !tbaa !11
  %869 = fcmp oge float %868, 0.000000e+00
  br i1 %869, label %870, label %872

870:                                              ; preds = %854
  %871 = load float, ptr %17, align 4, !tbaa !11
  br label %875

872:                                              ; preds = %854
  %873 = load float, ptr %17, align 4, !tbaa !11
  %874 = fneg float %873
  br label %875

875:                                              ; preds = %872, %870
  %876 = phi float [ %871, %870 ], [ %874, %872 ]
  store float %876, ptr %18, align 4, !tbaa !11
  %877 = load float, ptr %25, align 4, !tbaa !11
  %878 = load float, ptr %18, align 4, !tbaa !11
  %879 = fcmp olt float %877, %878
  br i1 %879, label %883, label %880

880:                                              ; preds = %875
  %881 = call i32 @sisnan_(ptr noundef %18)
  %882 = icmp ne i32 %881, 0
  br i1 %882, label %883, label %885

883:                                              ; preds = %880, %875
  %884 = load float, ptr %18, align 4, !tbaa !11
  store float %884, ptr %25, align 4, !tbaa !11
  br label %885

885:                                              ; preds = %883, %880
  %886 = load ptr, ptr %11, align 8, !tbaa !5
  %887 = load i32, ptr %886, align 4, !tbaa !9
  %888 = sub nsw i32 %887, 1
  store i32 %888, ptr %14, align 4, !tbaa !9
  %889 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %889, ptr %20, align 4, !tbaa !9
  br label %890

890:                                              ; preds = %932, %885
  %891 = load i32, ptr %20, align 4, !tbaa !9
  %892 = load i32, ptr %14, align 4, !tbaa !9
  %893 = icmp sle i32 %891, %892
  br i1 %893, label %894, label %935

894:                                              ; preds = %890
  %895 = load i32, ptr %21, align 4, !tbaa !9
  %896 = sub nsw i32 %895, 1
  store i32 %896, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %897

897:                                              ; preds = %928, %894
  %898 = load i32, ptr %19, align 4, !tbaa !9
  %899 = load i32, ptr %15, align 4, !tbaa !9
  %900 = icmp sle i32 %898, %899
  br i1 %900, label %901, label %931

901:                                              ; preds = %897
  %902 = load ptr, ptr %12, align 8, !tbaa !5
  %903 = load i32, ptr %19, align 4, !tbaa !9
  %904 = load i32, ptr %20, align 4, !tbaa !9
  %905 = load i32, ptr %28, align 4, !tbaa !9
  %906 = mul nsw i32 %904, %905
  %907 = add nsw i32 %903, %906
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds %struct.complex, ptr %902, i64 %908
  %910 = call <2 x float> @Cf(ptr noundef %909)
  store <2 x float> %910, ptr %51, align 4
  %911 = getelementptr inbounds { float, float }, ptr %51, i32 0, i32 0
  %912 = load float, ptr %911, align 4
  %913 = getelementptr inbounds { float, float }, ptr %51, i32 0, i32 1
  %914 = load float, ptr %913, align 4
  %915 = getelementptr inbounds { float, float }, ptr %52, i32 0, i32 0
  %916 = getelementptr inbounds { float, float }, ptr %52, i32 0, i32 1
  store float %912, ptr %915, align 4
  store float %914, ptr %916, align 4
  %917 = load <2 x float>, ptr %52, align 4
  %918 = call float @cabsf(<2 x float> noundef %917) #6
  store float %918, ptr %18, align 4, !tbaa !11
  %919 = load float, ptr %25, align 4, !tbaa !11
  %920 = load float, ptr %18, align 4, !tbaa !11
  %921 = fcmp olt float %919, %920
  br i1 %921, label %925, label %922

922:                                              ; preds = %901
  %923 = call i32 @sisnan_(ptr noundef %18)
  %924 = icmp ne i32 %923, 0
  br i1 %924, label %925, label %927

925:                                              ; preds = %922, %901
  %926 = load float, ptr %18, align 4, !tbaa !11
  store float %926, ptr %25, align 4, !tbaa !11
  br label %927

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

928:                                              ; preds = %927
  %929 = load i32, ptr %19, align 4, !tbaa !9
  %930 = add nsw i32 %929, 1
  store i32 %930, ptr %19, align 4, !tbaa !9
  br label %897, !llvm.loop !28

931:                                              ; preds = %897
  br label %932

932:                                              ; preds = %931
  %933 = load i32, ptr %20, align 4, !tbaa !9
  %934 = add nsw i32 %933, 1
  store i32 %934, ptr %20, align 4, !tbaa !9
  br label %890, !llvm.loop !29

935:                                              ; preds = %890
  br label %1209

936:                                              ; preds = %664
  %937 = load i32, ptr %21, align 4, !tbaa !9
  %938 = sub nsw i32 %937, 2
  store i32 %938, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %939

939:                                              ; preds = %981, %936
  %940 = load i32, ptr %20, align 4, !tbaa !9
  %941 = load i32, ptr %14, align 4, !tbaa !9
  %942 = icmp sle i32 %940, %941
  br i1 %942, label %943, label %984

943:                                              ; preds = %939
  %944 = load i32, ptr %21, align 4, !tbaa !9
  %945 = sub nsw i32 %944, 1
  store i32 %945, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %946

946:                                              ; preds = %977, %943
  %947 = load i32, ptr %19, align 4, !tbaa !9
  %948 = load i32, ptr %15, align 4, !tbaa !9
  %949 = icmp sle i32 %947, %948
  br i1 %949, label %950, label %980

950:                                              ; preds = %946
  %951 = load ptr, ptr %12, align 8, !tbaa !5
  %952 = load i32, ptr %19, align 4, !tbaa !9
  %953 = load i32, ptr %20, align 4, !tbaa !9
  %954 = load i32, ptr %28, align 4, !tbaa !9
  %955 = mul nsw i32 %953, %954
  %956 = add nsw i32 %952, %955
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds %struct.complex, ptr %951, i64 %957
  %959 = call <2 x float> @Cf(ptr noundef %958)
  store <2 x float> %959, ptr %53, align 4
  %960 = getelementptr inbounds { float, float }, ptr %53, i32 0, i32 0
  %961 = load float, ptr %960, align 4
  %962 = getelementptr inbounds { float, float }, ptr %53, i32 0, i32 1
  %963 = load float, ptr %962, align 4
  %964 = getelementptr inbounds { float, float }, ptr %54, i32 0, i32 0
  %965 = getelementptr inbounds { float, float }, ptr %54, i32 0, i32 1
  store float %961, ptr %964, align 4
  store float %963, ptr %965, align 4
  %966 = load <2 x float>, ptr %54, align 4
  %967 = call float @cabsf(<2 x float> noundef %966) #6
  store float %967, ptr %18, align 4, !tbaa !11
  %968 = load float, ptr %25, align 4, !tbaa !11
  %969 = load float, ptr %18, align 4, !tbaa !11
  %970 = fcmp olt float %968, %969
  br i1 %970, label %974, label %971

971:                                              ; preds = %950
  %972 = call i32 @sisnan_(ptr noundef %18)
  %973 = icmp ne i32 %972, 0
  br i1 %973, label %974, label %976

974:                                              ; preds = %971, %950
  %975 = load float, ptr %18, align 4, !tbaa !11
  store float %975, ptr %25, align 4, !tbaa !11
  br label %976

976:                                              ; preds = %974, %971
  br label %977

977:                                              ; preds = %976
  %978 = load i32, ptr %19, align 4, !tbaa !9
  %979 = add nsw i32 %978, 1
  store i32 %979, ptr %19, align 4, !tbaa !9
  br label %946, !llvm.loop !30

980:                                              ; preds = %946
  br label %981

981:                                              ; preds = %980
  %982 = load i32, ptr %20, align 4, !tbaa !9
  %983 = add nsw i32 %982, 1
  store i32 %983, ptr %20, align 4, !tbaa !9
  br label %939, !llvm.loop !31

984:                                              ; preds = %939
  %985 = load i32, ptr %21, align 4, !tbaa !9
  %986 = sub nsw i32 %985, 1
  store i32 %986, ptr %20, align 4, !tbaa !9
  %987 = load i32, ptr %20, align 4, !tbaa !9
  %988 = load i32, ptr %28, align 4, !tbaa !9
  %989 = mul nsw i32 %987, %988
  store i32 %989, ptr %14, align 4, !tbaa !9
  %990 = load ptr, ptr %12, align 8, !tbaa !5
  %991 = load i32, ptr %14, align 4, !tbaa !9
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds %struct.complex, ptr %990, i64 %992
  %994 = getelementptr inbounds %struct.complex, ptr %993, i32 0, i32 0
  %995 = load float, ptr %994, align 4, !tbaa !13
  store float %995, ptr %17, align 4, !tbaa !11
  %996 = load float, ptr %17, align 4, !tbaa !11
  %997 = fcmp oge float %996, 0.000000e+00
  br i1 %997, label %998, label %1000

998:                                              ; preds = %984
  %999 = load float, ptr %17, align 4, !tbaa !11
  br label %1003

1000:                                             ; preds = %984
  %1001 = load float, ptr %17, align 4, !tbaa !11
  %1002 = fneg float %1001
  br label %1003

1003:                                             ; preds = %1000, %998
  %1004 = phi float [ %999, %998 ], [ %1002, %1000 ]
  store float %1004, ptr %18, align 4, !tbaa !11
  %1005 = load float, ptr %25, align 4, !tbaa !11
  %1006 = load float, ptr %18, align 4, !tbaa !11
  %1007 = fcmp olt float %1005, %1006
  br i1 %1007, label %1011, label %1008

1008:                                             ; preds = %1003
  %1009 = call i32 @sisnan_(ptr noundef %18)
  %1010 = icmp ne i32 %1009, 0
  br i1 %1010, label %1011, label %1013

1011:                                             ; preds = %1008, %1003
  %1012 = load float, ptr %18, align 4, !tbaa !11
  store float %1012, ptr %25, align 4, !tbaa !11
  br label %1013

1013:                                             ; preds = %1011, %1008
  %1014 = load i32, ptr %21, align 4, !tbaa !9
  %1015 = sub nsw i32 %1014, 1
  store i32 %1015, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %1016

1016:                                             ; preds = %1047, %1013
  %1017 = load i32, ptr %19, align 4, !tbaa !9
  %1018 = load i32, ptr %14, align 4, !tbaa !9
  %1019 = icmp sle i32 %1017, %1018
  br i1 %1019, label %1020, label %1050

1020:                                             ; preds = %1016
  %1021 = load ptr, ptr %12, align 8, !tbaa !5
  %1022 = load i32, ptr %19, align 4, !tbaa !9
  %1023 = load i32, ptr %20, align 4, !tbaa !9
  %1024 = load i32, ptr %28, align 4, !tbaa !9
  %1025 = mul nsw i32 %1023, %1024
  %1026 = add nsw i32 %1022, %1025
  %1027 = sext i32 %1026 to i64
  %1028 = getelementptr inbounds %struct.complex, ptr %1021, i64 %1027
  %1029 = call <2 x float> @Cf(ptr noundef %1028)
  store <2 x float> %1029, ptr %55, align 4
  %1030 = getelementptr inbounds { float, float }, ptr %55, i32 0, i32 0
  %1031 = load float, ptr %1030, align 4
  %1032 = getelementptr inbounds { float, float }, ptr %55, i32 0, i32 1
  %1033 = load float, ptr %1032, align 4
  %1034 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 0
  %1035 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 1
  store float %1031, ptr %1034, align 4
  store float %1033, ptr %1035, align 4
  %1036 = load <2 x float>, ptr %56, align 4
  %1037 = call float @cabsf(<2 x float> noundef %1036) #6
  store float %1037, ptr %18, align 4, !tbaa !11
  %1038 = load float, ptr %25, align 4, !tbaa !11
  %1039 = load float, ptr %18, align 4, !tbaa !11
  %1040 = fcmp olt float %1038, %1039
  br i1 %1040, label %1044, label %1041

1041:                                             ; preds = %1020
  %1042 = call i32 @sisnan_(ptr noundef %18)
  %1043 = icmp ne i32 %1042, 0
  br i1 %1043, label %1044, label %1046

1044:                                             ; preds = %1041, %1020
  %1045 = load float, ptr %18, align 4, !tbaa !11
  store float %1045, ptr %25, align 4, !tbaa !11
  br label %1046

1046:                                             ; preds = %1044, %1041
  br label %1047

1047:                                             ; preds = %1046
  %1048 = load i32, ptr %19, align 4, !tbaa !9
  %1049 = add nsw i32 %1048, 1
  store i32 %1049, ptr %19, align 4, !tbaa !9
  br label %1016, !llvm.loop !32

1050:                                             ; preds = %1016
  %1051 = load ptr, ptr %11, align 8, !tbaa !5
  %1052 = load i32, ptr %1051, align 4, !tbaa !9
  %1053 = sub nsw i32 %1052, 1
  store i32 %1053, ptr %14, align 4, !tbaa !9
  %1054 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1054, ptr %20, align 4, !tbaa !9
  br label %1055

1055:                                             ; preds = %1205, %1050
  %1056 = load i32, ptr %20, align 4, !tbaa !9
  %1057 = load i32, ptr %14, align 4, !tbaa !9
  %1058 = icmp sle i32 %1056, %1057
  br i1 %1058, label %1059, label %1208

1059:                                             ; preds = %1055
  %1060 = load i32, ptr %20, align 4, !tbaa !9
  %1061 = load i32, ptr %21, align 4, !tbaa !9
  %1062 = sub nsw i32 %1060, %1061
  %1063 = sub nsw i32 %1062, 1
  store i32 %1063, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %1064

1064:                                             ; preds = %1095, %1059
  %1065 = load i32, ptr %19, align 4, !tbaa !9
  %1066 = load i32, ptr %15, align 4, !tbaa !9
  %1067 = icmp sle i32 %1065, %1066
  br i1 %1067, label %1068, label %1098

1068:                                             ; preds = %1064
  %1069 = load ptr, ptr %12, align 8, !tbaa !5
  %1070 = load i32, ptr %19, align 4, !tbaa !9
  %1071 = load i32, ptr %20, align 4, !tbaa !9
  %1072 = load i32, ptr %28, align 4, !tbaa !9
  %1073 = mul nsw i32 %1071, %1072
  %1074 = add nsw i32 %1070, %1073
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds %struct.complex, ptr %1069, i64 %1075
  %1077 = call <2 x float> @Cf(ptr noundef %1076)
  store <2 x float> %1077, ptr %57, align 4
  %1078 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 0
  %1079 = load float, ptr %1078, align 4
  %1080 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 1
  %1081 = load float, ptr %1080, align 4
  %1082 = getelementptr inbounds { float, float }, ptr %58, i32 0, i32 0
  %1083 = getelementptr inbounds { float, float }, ptr %58, i32 0, i32 1
  store float %1079, ptr %1082, align 4
  store float %1081, ptr %1083, align 4
  %1084 = load <2 x float>, ptr %58, align 4
  %1085 = call float @cabsf(<2 x float> noundef %1084) #6
  store float %1085, ptr %18, align 4, !tbaa !11
  %1086 = load float, ptr %25, align 4, !tbaa !11
  %1087 = load float, ptr %18, align 4, !tbaa !11
  %1088 = fcmp olt float %1086, %1087
  br i1 %1088, label %1092, label %1089

1089:                                             ; preds = %1068
  %1090 = call i32 @sisnan_(ptr noundef %18)
  %1091 = icmp ne i32 %1090, 0
  br i1 %1091, label %1092, label %1094

1092:                                             ; preds = %1089, %1068
  %1093 = load float, ptr %18, align 4, !tbaa !11
  store float %1093, ptr %25, align 4, !tbaa !11
  br label %1094

1094:                                             ; preds = %1092, %1089
  br label %1095

1095:                                             ; preds = %1094
  %1096 = load i32, ptr %19, align 4, !tbaa !9
  %1097 = add nsw i32 %1096, 1
  store i32 %1097, ptr %19, align 4, !tbaa !9
  br label %1064, !llvm.loop !33

1098:                                             ; preds = %1064
  %1099 = load i32, ptr %20, align 4, !tbaa !9
  %1100 = load i32, ptr %21, align 4, !tbaa !9
  %1101 = sub nsw i32 %1099, %1100
  store i32 %1101, ptr %19, align 4, !tbaa !9
  %1102 = load i32, ptr %19, align 4, !tbaa !9
  %1103 = load i32, ptr %20, align 4, !tbaa !9
  %1104 = load i32, ptr %28, align 4, !tbaa !9
  %1105 = mul nsw i32 %1103, %1104
  %1106 = add nsw i32 %1102, %1105
  store i32 %1106, ptr %15, align 4, !tbaa !9
  %1107 = load ptr, ptr %12, align 8, !tbaa !5
  %1108 = load i32, ptr %15, align 4, !tbaa !9
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds %struct.complex, ptr %1107, i64 %1109
  %1111 = getelementptr inbounds %struct.complex, ptr %1110, i32 0, i32 0
  %1112 = load float, ptr %1111, align 4, !tbaa !13
  store float %1112, ptr %17, align 4, !tbaa !11
  %1113 = load float, ptr %17, align 4, !tbaa !11
  %1114 = fcmp oge float %1113, 0.000000e+00
  br i1 %1114, label %1115, label %1117

1115:                                             ; preds = %1098
  %1116 = load float, ptr %17, align 4, !tbaa !11
  br label %1120

1117:                                             ; preds = %1098
  %1118 = load float, ptr %17, align 4, !tbaa !11
  %1119 = fneg float %1118
  br label %1120

1120:                                             ; preds = %1117, %1115
  %1121 = phi float [ %1116, %1115 ], [ %1119, %1117 ]
  store float %1121, ptr %18, align 4, !tbaa !11
  %1122 = load float, ptr %25, align 4, !tbaa !11
  %1123 = load float, ptr %18, align 4, !tbaa !11
  %1124 = fcmp olt float %1122, %1123
  br i1 %1124, label %1128, label %1125

1125:                                             ; preds = %1120
  %1126 = call i32 @sisnan_(ptr noundef %18)
  %1127 = icmp ne i32 %1126, 0
  br i1 %1127, label %1128, label %1130

1128:                                             ; preds = %1125, %1120
  %1129 = load float, ptr %18, align 4, !tbaa !11
  store float %1129, ptr %25, align 4, !tbaa !11
  br label %1130

1130:                                             ; preds = %1128, %1125
  %1131 = load i32, ptr %20, align 4, !tbaa !9
  %1132 = load i32, ptr %21, align 4, !tbaa !9
  %1133 = sub nsw i32 %1131, %1132
  %1134 = add nsw i32 %1133, 1
  store i32 %1134, ptr %19, align 4, !tbaa !9
  %1135 = load i32, ptr %19, align 4, !tbaa !9
  %1136 = load i32, ptr %20, align 4, !tbaa !9
  %1137 = load i32, ptr %28, align 4, !tbaa !9
  %1138 = mul nsw i32 %1136, %1137
  %1139 = add nsw i32 %1135, %1138
  store i32 %1139, ptr %15, align 4, !tbaa !9
  %1140 = load ptr, ptr %12, align 8, !tbaa !5
  %1141 = load i32, ptr %15, align 4, !tbaa !9
  %1142 = sext i32 %1141 to i64
  %1143 = getelementptr inbounds %struct.complex, ptr %1140, i64 %1142
  %1144 = getelementptr inbounds %struct.complex, ptr %1143, i32 0, i32 0
  %1145 = load float, ptr %1144, align 4, !tbaa !13
  store float %1145, ptr %17, align 4, !tbaa !11
  %1146 = load float, ptr %17, align 4, !tbaa !11
  %1147 = fcmp oge float %1146, 0.000000e+00
  br i1 %1147, label %1148, label %1150

1148:                                             ; preds = %1130
  %1149 = load float, ptr %17, align 4, !tbaa !11
  br label %1153

1150:                                             ; preds = %1130
  %1151 = load float, ptr %17, align 4, !tbaa !11
  %1152 = fneg float %1151
  br label %1153

1153:                                             ; preds = %1150, %1148
  %1154 = phi float [ %1149, %1148 ], [ %1152, %1150 ]
  store float %1154, ptr %18, align 4, !tbaa !11
  %1155 = load float, ptr %25, align 4, !tbaa !11
  %1156 = load float, ptr %18, align 4, !tbaa !11
  %1157 = fcmp olt float %1155, %1156
  br i1 %1157, label %1161, label %1158

1158:                                             ; preds = %1153
  %1159 = call i32 @sisnan_(ptr noundef %18)
  %1160 = icmp ne i32 %1159, 0
  br i1 %1160, label %1161, label %1163

1161:                                             ; preds = %1158, %1153
  %1162 = load float, ptr %18, align 4, !tbaa !11
  store float %1162, ptr %25, align 4, !tbaa !11
  br label %1163

1163:                                             ; preds = %1161, %1158
  %1164 = load i32, ptr %21, align 4, !tbaa !9
  %1165 = sub nsw i32 %1164, 1
  store i32 %1165, ptr %15, align 4, !tbaa !9
  %1166 = load i32, ptr %20, align 4, !tbaa !9
  %1167 = load i32, ptr %21, align 4, !tbaa !9
  %1168 = sub nsw i32 %1166, %1167
  %1169 = add nsw i32 %1168, 2
  store i32 %1169, ptr %19, align 4, !tbaa !9
  br label %1170

1170:                                             ; preds = %1201, %1163
  %1171 = load i32, ptr %19, align 4, !tbaa !9
  %1172 = load i32, ptr %15, align 4, !tbaa !9
  %1173 = icmp sle i32 %1171, %1172
  br i1 %1173, label %1174, label %1204

1174:                                             ; preds = %1170
  %1175 = load ptr, ptr %12, align 8, !tbaa !5
  %1176 = load i32, ptr %19, align 4, !tbaa !9
  %1177 = load i32, ptr %20, align 4, !tbaa !9
  %1178 = load i32, ptr %28, align 4, !tbaa !9
  %1179 = mul nsw i32 %1177, %1178
  %1180 = add nsw i32 %1176, %1179
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds %struct.complex, ptr %1175, i64 %1181
  %1183 = call <2 x float> @Cf(ptr noundef %1182)
  store <2 x float> %1183, ptr %59, align 4
  %1184 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 0
  %1185 = load float, ptr %1184, align 4
  %1186 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 1
  %1187 = load float, ptr %1186, align 4
  %1188 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 0
  %1189 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 1
  store float %1185, ptr %1188, align 4
  store float %1187, ptr %1189, align 4
  %1190 = load <2 x float>, ptr %60, align 4
  %1191 = call float @cabsf(<2 x float> noundef %1190) #6
  store float %1191, ptr %18, align 4, !tbaa !11
  %1192 = load float, ptr %25, align 4, !tbaa !11
  %1193 = load float, ptr %18, align 4, !tbaa !11
  %1194 = fcmp olt float %1192, %1193
  br i1 %1194, label %1198, label %1195

1195:                                             ; preds = %1174
  %1196 = call i32 @sisnan_(ptr noundef %18)
  %1197 = icmp ne i32 %1196, 0
  br i1 %1197, label %1198, label %1200

1198:                                             ; preds = %1195, %1174
  %1199 = load float, ptr %18, align 4, !tbaa !11
  store float %1199, ptr %25, align 4, !tbaa !11
  br label %1200

1200:                                             ; preds = %1198, %1195
  br label %1201

1201:                                             ; preds = %1200
  %1202 = load i32, ptr %19, align 4, !tbaa !9
  %1203 = add nsw i32 %1202, 1
  store i32 %1203, ptr %19, align 4, !tbaa !9
  br label %1170, !llvm.loop !34

1204:                                             ; preds = %1170
  br label %1205

1205:                                             ; preds = %1204
  %1206 = load i32, ptr %20, align 4, !tbaa !9
  %1207 = add nsw i32 %1206, 1
  store i32 %1207, ptr %20, align 4, !tbaa !9
  br label %1055, !llvm.loop !35

1208:                                             ; preds = %1055
  br label %1209

1209:                                             ; preds = %1208, %935
  br label %1210

1210:                                             ; preds = %1209, %663
  br label %2398

1211:                                             ; preds = %209
  %1212 = load i32, ptr %29, align 4, !tbaa !9
  %1213 = icmp eq i32 %1212, 1
  br i1 %1213, label %1214, label %1716

1214:                                             ; preds = %1211
  %1215 = load i32, ptr %31, align 4, !tbaa !9
  %1216 = icmp eq i32 %1215, 1
  br i1 %1216, label %1217, label %1462

1217:                                             ; preds = %1214
  store i32 0, ptr %20, align 4, !tbaa !9
  %1218 = load i32, ptr %20, align 4, !tbaa !9
  %1219 = load i32, ptr %20, align 4, !tbaa !9
  %1220 = load i32, ptr %28, align 4, !tbaa !9
  %1221 = mul nsw i32 %1219, %1220
  %1222 = add nsw i32 %1218, %1221
  store i32 %1222, ptr %14, align 4, !tbaa !9
  %1223 = load ptr, ptr %12, align 8, !tbaa !5
  %1224 = load i32, ptr %14, align 4, !tbaa !9
  %1225 = sext i32 %1224 to i64
  %1226 = getelementptr inbounds %struct.complex, ptr %1223, i64 %1225
  %1227 = getelementptr inbounds %struct.complex, ptr %1226, i32 0, i32 0
  %1228 = load float, ptr %1227, align 4, !tbaa !13
  store float %1228, ptr %17, align 4, !tbaa !11
  %1229 = load float, ptr %17, align 4, !tbaa !11
  %1230 = fcmp oge float %1229, 0.000000e+00
  br i1 %1230, label %1231, label %1233

1231:                                             ; preds = %1217
  %1232 = load float, ptr %17, align 4, !tbaa !11
  br label %1236

1233:                                             ; preds = %1217
  %1234 = load float, ptr %17, align 4, !tbaa !11
  %1235 = fneg float %1234
  br label %1236

1236:                                             ; preds = %1233, %1231
  %1237 = phi float [ %1232, %1231 ], [ %1235, %1233 ]
  store float %1237, ptr %18, align 4, !tbaa !11
  %1238 = load float, ptr %25, align 4, !tbaa !11
  %1239 = load float, ptr %18, align 4, !tbaa !11
  %1240 = fcmp olt float %1238, %1239
  br i1 %1240, label %1244, label %1241

1241:                                             ; preds = %1236
  %1242 = call i32 @sisnan_(ptr noundef %18)
  %1243 = icmp ne i32 %1242, 0
  br i1 %1243, label %1244, label %1246

1244:                                             ; preds = %1241, %1236
  %1245 = load float, ptr %18, align 4, !tbaa !11
  store float %1245, ptr %25, align 4, !tbaa !11
  br label %1246

1246:                                             ; preds = %1244, %1241
  %1247 = load i32, ptr %20, align 4, !tbaa !9
  %1248 = add nsw i32 %1247, 1
  %1249 = load i32, ptr %20, align 4, !tbaa !9
  %1250 = load i32, ptr %28, align 4, !tbaa !9
  %1251 = mul nsw i32 %1249, %1250
  %1252 = add nsw i32 %1248, %1251
  store i32 %1252, ptr %14, align 4, !tbaa !9
  %1253 = load ptr, ptr %12, align 8, !tbaa !5
  %1254 = load i32, ptr %14, align 4, !tbaa !9
  %1255 = sext i32 %1254 to i64
  %1256 = getelementptr inbounds %struct.complex, ptr %1253, i64 %1255
  %1257 = getelementptr inbounds %struct.complex, ptr %1256, i32 0, i32 0
  %1258 = load float, ptr %1257, align 4, !tbaa !13
  store float %1258, ptr %17, align 4, !tbaa !11
  %1259 = load float, ptr %17, align 4, !tbaa !11
  %1260 = fcmp oge float %1259, 0.000000e+00
  br i1 %1260, label %1261, label %1263

1261:                                             ; preds = %1246
  %1262 = load float, ptr %17, align 4, !tbaa !11
  br label %1266

1263:                                             ; preds = %1246
  %1264 = load float, ptr %17, align 4, !tbaa !11
  %1265 = fneg float %1264
  br label %1266

1266:                                             ; preds = %1263, %1261
  %1267 = phi float [ %1262, %1261 ], [ %1265, %1263 ]
  store float %1267, ptr %18, align 4, !tbaa !11
  %1268 = load float, ptr %25, align 4, !tbaa !11
  %1269 = load float, ptr %18, align 4, !tbaa !11
  %1270 = fcmp olt float %1268, %1269
  br i1 %1270, label %1274, label %1271

1271:                                             ; preds = %1266
  %1272 = call i32 @sisnan_(ptr noundef %18)
  %1273 = icmp ne i32 %1272, 0
  br i1 %1273, label %1274, label %1276

1274:                                             ; preds = %1271, %1266
  %1275 = load float, ptr %18, align 4, !tbaa !11
  store float %1275, ptr %25, align 4, !tbaa !11
  br label %1276

1276:                                             ; preds = %1274, %1271
  %1277 = load ptr, ptr %11, align 8, !tbaa !5
  %1278 = load i32, ptr %1277, align 4, !tbaa !9
  store i32 %1278, ptr %14, align 4, !tbaa !9
  store i32 2, ptr %19, align 4, !tbaa !9
  br label %1279

1279:                                             ; preds = %1310, %1276
  %1280 = load i32, ptr %19, align 4, !tbaa !9
  %1281 = load i32, ptr %14, align 4, !tbaa !9
  %1282 = icmp sle i32 %1280, %1281
  br i1 %1282, label %1283, label %1313

1283:                                             ; preds = %1279
  %1284 = load ptr, ptr %12, align 8, !tbaa !5
  %1285 = load i32, ptr %19, align 4, !tbaa !9
  %1286 = load i32, ptr %20, align 4, !tbaa !9
  %1287 = load i32, ptr %28, align 4, !tbaa !9
  %1288 = mul nsw i32 %1286, %1287
  %1289 = add nsw i32 %1285, %1288
  %1290 = sext i32 %1289 to i64
  %1291 = getelementptr inbounds %struct.complex, ptr %1284, i64 %1290
  %1292 = call <2 x float> @Cf(ptr noundef %1291)
  store <2 x float> %1292, ptr %61, align 4
  %1293 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 0
  %1294 = load float, ptr %1293, align 4
  %1295 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 1
  %1296 = load float, ptr %1295, align 4
  %1297 = getelementptr inbounds { float, float }, ptr %62, i32 0, i32 0
  %1298 = getelementptr inbounds { float, float }, ptr %62, i32 0, i32 1
  store float %1294, ptr %1297, align 4
  store float %1296, ptr %1298, align 4
  %1299 = load <2 x float>, ptr %62, align 4
  %1300 = call float @cabsf(<2 x float> noundef %1299) #6
  store float %1300, ptr %18, align 4, !tbaa !11
  %1301 = load float, ptr %25, align 4, !tbaa !11
  %1302 = load float, ptr %18, align 4, !tbaa !11
  %1303 = fcmp olt float %1301, %1302
  br i1 %1303, label %1307, label %1304

1304:                                             ; preds = %1283
  %1305 = call i32 @sisnan_(ptr noundef %18)
  %1306 = icmp ne i32 %1305, 0
  br i1 %1306, label %1307, label %1309

1307:                                             ; preds = %1304, %1283
  %1308 = load float, ptr %18, align 4, !tbaa !11
  store float %1308, ptr %25, align 4, !tbaa !11
  br label %1309

1309:                                             ; preds = %1307, %1304
  br label %1310

1310:                                             ; preds = %1309
  %1311 = load i32, ptr %19, align 4, !tbaa !9
  %1312 = add nsw i32 %1311, 1
  store i32 %1312, ptr %19, align 4, !tbaa !9
  br label %1279, !llvm.loop !36

1313:                                             ; preds = %1279
  %1314 = load i32, ptr %21, align 4, !tbaa !9
  %1315 = sub nsw i32 %1314, 1
  store i32 %1315, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %1316

1316:                                             ; preds = %1458, %1313
  %1317 = load i32, ptr %20, align 4, !tbaa !9
  %1318 = load i32, ptr %14, align 4, !tbaa !9
  %1319 = icmp sle i32 %1317, %1318
  br i1 %1319, label %1320, label %1461

1320:                                             ; preds = %1316
  %1321 = load i32, ptr %20, align 4, !tbaa !9
  %1322 = sub nsw i32 %1321, 1
  store i32 %1322, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %1323

1323:                                             ; preds = %1354, %1320
  %1324 = load i32, ptr %19, align 4, !tbaa !9
  %1325 = load i32, ptr %15, align 4, !tbaa !9
  %1326 = icmp sle i32 %1324, %1325
  br i1 %1326, label %1327, label %1357

1327:                                             ; preds = %1323
  %1328 = load ptr, ptr %12, align 8, !tbaa !5
  %1329 = load i32, ptr %19, align 4, !tbaa !9
  %1330 = load i32, ptr %20, align 4, !tbaa !9
  %1331 = load i32, ptr %28, align 4, !tbaa !9
  %1332 = mul nsw i32 %1330, %1331
  %1333 = add nsw i32 %1329, %1332
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds %struct.complex, ptr %1328, i64 %1334
  %1336 = call <2 x float> @Cf(ptr noundef %1335)
  store <2 x float> %1336, ptr %63, align 4
  %1337 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 0
  %1338 = load float, ptr %1337, align 4
  %1339 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 1
  %1340 = load float, ptr %1339, align 4
  %1341 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 0
  %1342 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 1
  store float %1338, ptr %1341, align 4
  store float %1340, ptr %1342, align 4
  %1343 = load <2 x float>, ptr %64, align 4
  %1344 = call float @cabsf(<2 x float> noundef %1343) #6
  store float %1344, ptr %18, align 4, !tbaa !11
  %1345 = load float, ptr %25, align 4, !tbaa !11
  %1346 = load float, ptr %18, align 4, !tbaa !11
  %1347 = fcmp olt float %1345, %1346
  br i1 %1347, label %1351, label %1348

1348:                                             ; preds = %1327
  %1349 = call i32 @sisnan_(ptr noundef %18)
  %1350 = icmp ne i32 %1349, 0
  br i1 %1350, label %1351, label %1353

1351:                                             ; preds = %1348, %1327
  %1352 = load float, ptr %18, align 4, !tbaa !11
  store float %1352, ptr %25, align 4, !tbaa !11
  br label %1353

1353:                                             ; preds = %1351, %1348
  br label %1354

1354:                                             ; preds = %1353
  %1355 = load i32, ptr %19, align 4, !tbaa !9
  %1356 = add nsw i32 %1355, 1
  store i32 %1356, ptr %19, align 4, !tbaa !9
  br label %1323, !llvm.loop !37

1357:                                             ; preds = %1323
  %1358 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1358, ptr %19, align 4, !tbaa !9
  %1359 = load i32, ptr %19, align 4, !tbaa !9
  %1360 = load i32, ptr %20, align 4, !tbaa !9
  %1361 = load i32, ptr %28, align 4, !tbaa !9
  %1362 = mul nsw i32 %1360, %1361
  %1363 = add nsw i32 %1359, %1362
  store i32 %1363, ptr %15, align 4, !tbaa !9
  %1364 = load ptr, ptr %12, align 8, !tbaa !5
  %1365 = load i32, ptr %15, align 4, !tbaa !9
  %1366 = sext i32 %1365 to i64
  %1367 = getelementptr inbounds %struct.complex, ptr %1364, i64 %1366
  %1368 = getelementptr inbounds %struct.complex, ptr %1367, i32 0, i32 0
  %1369 = load float, ptr %1368, align 4, !tbaa !13
  store float %1369, ptr %17, align 4, !tbaa !11
  %1370 = load float, ptr %17, align 4, !tbaa !11
  %1371 = fcmp oge float %1370, 0.000000e+00
  br i1 %1371, label %1372, label %1374

1372:                                             ; preds = %1357
  %1373 = load float, ptr %17, align 4, !tbaa !11
  br label %1377

1374:                                             ; preds = %1357
  %1375 = load float, ptr %17, align 4, !tbaa !11
  %1376 = fneg float %1375
  br label %1377

1377:                                             ; preds = %1374, %1372
  %1378 = phi float [ %1373, %1372 ], [ %1376, %1374 ]
  store float %1378, ptr %18, align 4, !tbaa !11
  %1379 = load float, ptr %25, align 4, !tbaa !11
  %1380 = load float, ptr %18, align 4, !tbaa !11
  %1381 = fcmp olt float %1379, %1380
  br i1 %1381, label %1385, label %1382

1382:                                             ; preds = %1377
  %1383 = call i32 @sisnan_(ptr noundef %18)
  %1384 = icmp ne i32 %1383, 0
  br i1 %1384, label %1385, label %1387

1385:                                             ; preds = %1382, %1377
  %1386 = load float, ptr %18, align 4, !tbaa !11
  store float %1386, ptr %25, align 4, !tbaa !11
  br label %1387

1387:                                             ; preds = %1385, %1382
  %1388 = load i32, ptr %20, align 4, !tbaa !9
  %1389 = add nsw i32 %1388, 1
  store i32 %1389, ptr %19, align 4, !tbaa !9
  %1390 = load i32, ptr %19, align 4, !tbaa !9
  %1391 = load i32, ptr %20, align 4, !tbaa !9
  %1392 = load i32, ptr %28, align 4, !tbaa !9
  %1393 = mul nsw i32 %1391, %1392
  %1394 = add nsw i32 %1390, %1393
  store i32 %1394, ptr %15, align 4, !tbaa !9
  %1395 = load ptr, ptr %12, align 8, !tbaa !5
  %1396 = load i32, ptr %15, align 4, !tbaa !9
  %1397 = sext i32 %1396 to i64
  %1398 = getelementptr inbounds %struct.complex, ptr %1395, i64 %1397
  %1399 = getelementptr inbounds %struct.complex, ptr %1398, i32 0, i32 0
  %1400 = load float, ptr %1399, align 4, !tbaa !13
  store float %1400, ptr %17, align 4, !tbaa !11
  %1401 = load float, ptr %17, align 4, !tbaa !11
  %1402 = fcmp oge float %1401, 0.000000e+00
  br i1 %1402, label %1403, label %1405

1403:                                             ; preds = %1387
  %1404 = load float, ptr %17, align 4, !tbaa !11
  br label %1408

1405:                                             ; preds = %1387
  %1406 = load float, ptr %17, align 4, !tbaa !11
  %1407 = fneg float %1406
  br label %1408

1408:                                             ; preds = %1405, %1403
  %1409 = phi float [ %1404, %1403 ], [ %1407, %1405 ]
  store float %1409, ptr %18, align 4, !tbaa !11
  %1410 = load float, ptr %25, align 4, !tbaa !11
  %1411 = load float, ptr %18, align 4, !tbaa !11
  %1412 = fcmp olt float %1410, %1411
  br i1 %1412, label %1416, label %1413

1413:                                             ; preds = %1408
  %1414 = call i32 @sisnan_(ptr noundef %18)
  %1415 = icmp ne i32 %1414, 0
  br i1 %1415, label %1416, label %1418

1416:                                             ; preds = %1413, %1408
  %1417 = load float, ptr %18, align 4, !tbaa !11
  store float %1417, ptr %25, align 4, !tbaa !11
  br label %1418

1418:                                             ; preds = %1416, %1413
  %1419 = load ptr, ptr %11, align 8, !tbaa !5
  %1420 = load i32, ptr %1419, align 4, !tbaa !9
  store i32 %1420, ptr %15, align 4, !tbaa !9
  %1421 = load i32, ptr %20, align 4, !tbaa !9
  %1422 = add nsw i32 %1421, 2
  store i32 %1422, ptr %19, align 4, !tbaa !9
  br label %1423

1423:                                             ; preds = %1454, %1418
  %1424 = load i32, ptr %19, align 4, !tbaa !9
  %1425 = load i32, ptr %15, align 4, !tbaa !9
  %1426 = icmp sle i32 %1424, %1425
  br i1 %1426, label %1427, label %1457

1427:                                             ; preds = %1423
  %1428 = load ptr, ptr %12, align 8, !tbaa !5
  %1429 = load i32, ptr %19, align 4, !tbaa !9
  %1430 = load i32, ptr %20, align 4, !tbaa !9
  %1431 = load i32, ptr %28, align 4, !tbaa !9
  %1432 = mul nsw i32 %1430, %1431
  %1433 = add nsw i32 %1429, %1432
  %1434 = sext i32 %1433 to i64
  %1435 = getelementptr inbounds %struct.complex, ptr %1428, i64 %1434
  %1436 = call <2 x float> @Cf(ptr noundef %1435)
  store <2 x float> %1436, ptr %65, align 4
  %1437 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 0
  %1438 = load float, ptr %1437, align 4
  %1439 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 1
  %1440 = load float, ptr %1439, align 4
  %1441 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 0
  %1442 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 1
  store float %1438, ptr %1441, align 4
  store float %1440, ptr %1442, align 4
  %1443 = load <2 x float>, ptr %66, align 4
  %1444 = call float @cabsf(<2 x float> noundef %1443) #6
  store float %1444, ptr %18, align 4, !tbaa !11
  %1445 = load float, ptr %25, align 4, !tbaa !11
  %1446 = load float, ptr %18, align 4, !tbaa !11
  %1447 = fcmp olt float %1445, %1446
  br i1 %1447, label %1451, label %1448

1448:                                             ; preds = %1427
  %1449 = call i32 @sisnan_(ptr noundef %18)
  %1450 = icmp ne i32 %1449, 0
  br i1 %1450, label %1451, label %1453

1451:                                             ; preds = %1448, %1427
  %1452 = load float, ptr %18, align 4, !tbaa !11
  store float %1452, ptr %25, align 4, !tbaa !11
  br label %1453

1453:                                             ; preds = %1451, %1448
  br label %1454

1454:                                             ; preds = %1453
  %1455 = load i32, ptr %19, align 4, !tbaa !9
  %1456 = add nsw i32 %1455, 1
  store i32 %1456, ptr %19, align 4, !tbaa !9
  br label %1423, !llvm.loop !38

1457:                                             ; preds = %1423
  br label %1458

1458:                                             ; preds = %1457
  %1459 = load i32, ptr %20, align 4, !tbaa !9
  %1460 = add nsw i32 %1459, 1
  store i32 %1460, ptr %20, align 4, !tbaa !9
  br label %1316, !llvm.loop !39

1461:                                             ; preds = %1316
  br label %1715

1462:                                             ; preds = %1214
  %1463 = load i32, ptr %21, align 4, !tbaa !9
  %1464 = sub nsw i32 %1463, 2
  store i32 %1464, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %1465

1465:                                             ; preds = %1613, %1462
  %1466 = load i32, ptr %20, align 4, !tbaa !9
  %1467 = load i32, ptr %14, align 4, !tbaa !9
  %1468 = icmp sle i32 %1466, %1467
  br i1 %1468, label %1469, label %1616

1469:                                             ; preds = %1465
  %1470 = load i32, ptr %21, align 4, !tbaa !9
  %1471 = load i32, ptr %20, align 4, !tbaa !9
  %1472 = add nsw i32 %1470, %1471
  %1473 = sub nsw i32 %1472, 1
  store i32 %1473, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %1474

1474:                                             ; preds = %1505, %1469
  %1475 = load i32, ptr %19, align 4, !tbaa !9
  %1476 = load i32, ptr %15, align 4, !tbaa !9
  %1477 = icmp sle i32 %1475, %1476
  br i1 %1477, label %1478, label %1508

1478:                                             ; preds = %1474
  %1479 = load ptr, ptr %12, align 8, !tbaa !5
  %1480 = load i32, ptr %19, align 4, !tbaa !9
  %1481 = load i32, ptr %20, align 4, !tbaa !9
  %1482 = load i32, ptr %28, align 4, !tbaa !9
  %1483 = mul nsw i32 %1481, %1482
  %1484 = add nsw i32 %1480, %1483
  %1485 = sext i32 %1484 to i64
  %1486 = getelementptr inbounds %struct.complex, ptr %1479, i64 %1485
  %1487 = call <2 x float> @Cf(ptr noundef %1486)
  store <2 x float> %1487, ptr %67, align 4
  %1488 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 0
  %1489 = load float, ptr %1488, align 4
  %1490 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 1
  %1491 = load float, ptr %1490, align 4
  %1492 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 0
  %1493 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 1
  store float %1489, ptr %1492, align 4
  store float %1491, ptr %1493, align 4
  %1494 = load <2 x float>, ptr %68, align 4
  %1495 = call float @cabsf(<2 x float> noundef %1494) #6
  store float %1495, ptr %18, align 4, !tbaa !11
  %1496 = load float, ptr %25, align 4, !tbaa !11
  %1497 = load float, ptr %18, align 4, !tbaa !11
  %1498 = fcmp olt float %1496, %1497
  br i1 %1498, label %1502, label %1499

1499:                                             ; preds = %1478
  %1500 = call i32 @sisnan_(ptr noundef %18)
  %1501 = icmp ne i32 %1500, 0
  br i1 %1501, label %1502, label %1504

1502:                                             ; preds = %1499, %1478
  %1503 = load float, ptr %18, align 4, !tbaa !11
  store float %1503, ptr %25, align 4, !tbaa !11
  br label %1504

1504:                                             ; preds = %1502, %1499
  br label %1505

1505:                                             ; preds = %1504
  %1506 = load i32, ptr %19, align 4, !tbaa !9
  %1507 = add nsw i32 %1506, 1
  store i32 %1507, ptr %19, align 4, !tbaa !9
  br label %1474, !llvm.loop !40

1508:                                             ; preds = %1474
  %1509 = load i32, ptr %21, align 4, !tbaa !9
  %1510 = load i32, ptr %20, align 4, !tbaa !9
  %1511 = add nsw i32 %1509, %1510
  store i32 %1511, ptr %19, align 4, !tbaa !9
  %1512 = load i32, ptr %19, align 4, !tbaa !9
  %1513 = load i32, ptr %20, align 4, !tbaa !9
  %1514 = load i32, ptr %28, align 4, !tbaa !9
  %1515 = mul nsw i32 %1513, %1514
  %1516 = add nsw i32 %1512, %1515
  store i32 %1516, ptr %15, align 4, !tbaa !9
  %1517 = load ptr, ptr %12, align 8, !tbaa !5
  %1518 = load i32, ptr %15, align 4, !tbaa !9
  %1519 = sext i32 %1518 to i64
  %1520 = getelementptr inbounds %struct.complex, ptr %1517, i64 %1519
  %1521 = getelementptr inbounds %struct.complex, ptr %1520, i32 0, i32 0
  %1522 = load float, ptr %1521, align 4, !tbaa !13
  store float %1522, ptr %17, align 4, !tbaa !11
  %1523 = load float, ptr %17, align 4, !tbaa !11
  %1524 = fcmp oge float %1523, 0.000000e+00
  br i1 %1524, label %1525, label %1527

1525:                                             ; preds = %1508
  %1526 = load float, ptr %17, align 4, !tbaa !11
  br label %1530

1527:                                             ; preds = %1508
  %1528 = load float, ptr %17, align 4, !tbaa !11
  %1529 = fneg float %1528
  br label %1530

1530:                                             ; preds = %1527, %1525
  %1531 = phi float [ %1526, %1525 ], [ %1529, %1527 ]
  store float %1531, ptr %18, align 4, !tbaa !11
  %1532 = load float, ptr %25, align 4, !tbaa !11
  %1533 = load float, ptr %18, align 4, !tbaa !11
  %1534 = fcmp olt float %1532, %1533
  br i1 %1534, label %1538, label %1535

1535:                                             ; preds = %1530
  %1536 = call i32 @sisnan_(ptr noundef %18)
  %1537 = icmp ne i32 %1536, 0
  br i1 %1537, label %1538, label %1540

1538:                                             ; preds = %1535, %1530
  %1539 = load float, ptr %18, align 4, !tbaa !11
  store float %1539, ptr %25, align 4, !tbaa !11
  br label %1540

1540:                                             ; preds = %1538, %1535
  %1541 = load i32, ptr %19, align 4, !tbaa !9
  %1542 = add nsw i32 %1541, 1
  store i32 %1542, ptr %19, align 4, !tbaa !9
  %1543 = load i32, ptr %19, align 4, !tbaa !9
  %1544 = load i32, ptr %20, align 4, !tbaa !9
  %1545 = load i32, ptr %28, align 4, !tbaa !9
  %1546 = mul nsw i32 %1544, %1545
  %1547 = add nsw i32 %1543, %1546
  store i32 %1547, ptr %15, align 4, !tbaa !9
  %1548 = load ptr, ptr %12, align 8, !tbaa !5
  %1549 = load i32, ptr %15, align 4, !tbaa !9
  %1550 = sext i32 %1549 to i64
  %1551 = getelementptr inbounds %struct.complex, ptr %1548, i64 %1550
  %1552 = getelementptr inbounds %struct.complex, ptr %1551, i32 0, i32 0
  %1553 = load float, ptr %1552, align 4, !tbaa !13
  store float %1553, ptr %17, align 4, !tbaa !11
  %1554 = load float, ptr %17, align 4, !tbaa !11
  %1555 = fcmp oge float %1554, 0.000000e+00
  br i1 %1555, label %1556, label %1558

1556:                                             ; preds = %1540
  %1557 = load float, ptr %17, align 4, !tbaa !11
  br label %1561

1558:                                             ; preds = %1540
  %1559 = load float, ptr %17, align 4, !tbaa !11
  %1560 = fneg float %1559
  br label %1561

1561:                                             ; preds = %1558, %1556
  %1562 = phi float [ %1557, %1556 ], [ %1560, %1558 ]
  store float %1562, ptr %18, align 4, !tbaa !11
  %1563 = load float, ptr %25, align 4, !tbaa !11
  %1564 = load float, ptr %18, align 4, !tbaa !11
  %1565 = fcmp olt float %1563, %1564
  br i1 %1565, label %1569, label %1566

1566:                                             ; preds = %1561
  %1567 = call i32 @sisnan_(ptr noundef %18)
  %1568 = icmp ne i32 %1567, 0
  br i1 %1568, label %1569, label %1571

1569:                                             ; preds = %1566, %1561
  %1570 = load float, ptr %18, align 4, !tbaa !11
  store float %1570, ptr %25, align 4, !tbaa !11
  br label %1571

1571:                                             ; preds = %1569, %1566
  %1572 = load ptr, ptr %11, align 8, !tbaa !5
  %1573 = load i32, ptr %1572, align 4, !tbaa !9
  store i32 %1573, ptr %15, align 4, !tbaa !9
  %1574 = load i32, ptr %21, align 4, !tbaa !9
  %1575 = load i32, ptr %20, align 4, !tbaa !9
  %1576 = add nsw i32 %1574, %1575
  %1577 = add nsw i32 %1576, 2
  store i32 %1577, ptr %19, align 4, !tbaa !9
  br label %1578

1578:                                             ; preds = %1609, %1571
  %1579 = load i32, ptr %19, align 4, !tbaa !9
  %1580 = load i32, ptr %15, align 4, !tbaa !9
  %1581 = icmp sle i32 %1579, %1580
  br i1 %1581, label %1582, label %1612

1582:                                             ; preds = %1578
  %1583 = load ptr, ptr %12, align 8, !tbaa !5
  %1584 = load i32, ptr %19, align 4, !tbaa !9
  %1585 = load i32, ptr %20, align 4, !tbaa !9
  %1586 = load i32, ptr %28, align 4, !tbaa !9
  %1587 = mul nsw i32 %1585, %1586
  %1588 = add nsw i32 %1584, %1587
  %1589 = sext i32 %1588 to i64
  %1590 = getelementptr inbounds %struct.complex, ptr %1583, i64 %1589
  %1591 = call <2 x float> @Cf(ptr noundef %1590)
  store <2 x float> %1591, ptr %69, align 4
  %1592 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 0
  %1593 = load float, ptr %1592, align 4
  %1594 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 1
  %1595 = load float, ptr %1594, align 4
  %1596 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 0
  %1597 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 1
  store float %1593, ptr %1596, align 4
  store float %1595, ptr %1597, align 4
  %1598 = load <2 x float>, ptr %70, align 4
  %1599 = call float @cabsf(<2 x float> noundef %1598) #6
  store float %1599, ptr %18, align 4, !tbaa !11
  %1600 = load float, ptr %25, align 4, !tbaa !11
  %1601 = load float, ptr %18, align 4, !tbaa !11
  %1602 = fcmp olt float %1600, %1601
  br i1 %1602, label %1606, label %1603

1603:                                             ; preds = %1582
  %1604 = call i32 @sisnan_(ptr noundef %18)
  %1605 = icmp ne i32 %1604, 0
  br i1 %1605, label %1606, label %1608

1606:                                             ; preds = %1603, %1582
  %1607 = load float, ptr %18, align 4, !tbaa !11
  store float %1607, ptr %25, align 4, !tbaa !11
  br label %1608

1608:                                             ; preds = %1606, %1603
  br label %1609

1609:                                             ; preds = %1608
  %1610 = load i32, ptr %19, align 4, !tbaa !9
  %1611 = add nsw i32 %1610, 1
  store i32 %1611, ptr %19, align 4, !tbaa !9
  br label %1578, !llvm.loop !41

1612:                                             ; preds = %1578
  br label %1613

1613:                                             ; preds = %1612
  %1614 = load i32, ptr %20, align 4, !tbaa !9
  %1615 = add nsw i32 %1614, 1
  store i32 %1615, ptr %20, align 4, !tbaa !9
  br label %1465, !llvm.loop !42

1616:                                             ; preds = %1465
  %1617 = load ptr, ptr %11, align 8, !tbaa !5
  %1618 = load i32, ptr %1617, align 4, !tbaa !9
  %1619 = sub nsw i32 %1618, 2
  store i32 %1619, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %1620

1620:                                             ; preds = %1651, %1616
  %1621 = load i32, ptr %19, align 4, !tbaa !9
  %1622 = load i32, ptr %14, align 4, !tbaa !9
  %1623 = icmp sle i32 %1621, %1622
  br i1 %1623, label %1624, label %1654

1624:                                             ; preds = %1620
  %1625 = load ptr, ptr %12, align 8, !tbaa !5
  %1626 = load i32, ptr %19, align 4, !tbaa !9
  %1627 = load i32, ptr %20, align 4, !tbaa !9
  %1628 = load i32, ptr %28, align 4, !tbaa !9
  %1629 = mul nsw i32 %1627, %1628
  %1630 = add nsw i32 %1626, %1629
  %1631 = sext i32 %1630 to i64
  %1632 = getelementptr inbounds %struct.complex, ptr %1625, i64 %1631
  %1633 = call <2 x float> @Cf(ptr noundef %1632)
  store <2 x float> %1633, ptr %71, align 4
  %1634 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 0
  %1635 = load float, ptr %1634, align 4
  %1636 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 1
  %1637 = load float, ptr %1636, align 4
  %1638 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 0
  %1639 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 1
  store float %1635, ptr %1638, align 4
  store float %1637, ptr %1639, align 4
  %1640 = load <2 x float>, ptr %72, align 4
  %1641 = call float @cabsf(<2 x float> noundef %1640) #6
  store float %1641, ptr %18, align 4, !tbaa !11
  %1642 = load float, ptr %25, align 4, !tbaa !11
  %1643 = load float, ptr %18, align 4, !tbaa !11
  %1644 = fcmp olt float %1642, %1643
  br i1 %1644, label %1648, label %1645

1645:                                             ; preds = %1624
  %1646 = call i32 @sisnan_(ptr noundef %18)
  %1647 = icmp ne i32 %1646, 0
  br i1 %1647, label %1648, label %1650

1648:                                             ; preds = %1645, %1624
  %1649 = load float, ptr %18, align 4, !tbaa !11
  store float %1649, ptr %25, align 4, !tbaa !11
  br label %1650

1650:                                             ; preds = %1648, %1645
  br label %1651

1651:                                             ; preds = %1650
  %1652 = load i32, ptr %19, align 4, !tbaa !9
  %1653 = add nsw i32 %1652, 1
  store i32 %1653, ptr %19, align 4, !tbaa !9
  br label %1620, !llvm.loop !43

1654:                                             ; preds = %1620
  %1655 = load i32, ptr %19, align 4, !tbaa !9
  %1656 = load i32, ptr %20, align 4, !tbaa !9
  %1657 = load i32, ptr %28, align 4, !tbaa !9
  %1658 = mul nsw i32 %1656, %1657
  %1659 = add nsw i32 %1655, %1658
  store i32 %1659, ptr %14, align 4, !tbaa !9
  %1660 = load ptr, ptr %12, align 8, !tbaa !5
  %1661 = load i32, ptr %14, align 4, !tbaa !9
  %1662 = sext i32 %1661 to i64
  %1663 = getelementptr inbounds %struct.complex, ptr %1660, i64 %1662
  %1664 = getelementptr inbounds %struct.complex, ptr %1663, i32 0, i32 0
  %1665 = load float, ptr %1664, align 4, !tbaa !13
  store float %1665, ptr %17, align 4, !tbaa !11
  %1666 = load float, ptr %17, align 4, !tbaa !11
  %1667 = fcmp oge float %1666, 0.000000e+00
  br i1 %1667, label %1668, label %1670

1668:                                             ; preds = %1654
  %1669 = load float, ptr %17, align 4, !tbaa !11
  br label %1673

1670:                                             ; preds = %1654
  %1671 = load float, ptr %17, align 4, !tbaa !11
  %1672 = fneg float %1671
  br label %1673

1673:                                             ; preds = %1670, %1668
  %1674 = phi float [ %1669, %1668 ], [ %1672, %1670 ]
  store float %1674, ptr %18, align 4, !tbaa !11
  %1675 = load float, ptr %25, align 4, !tbaa !11
  %1676 = load float, ptr %18, align 4, !tbaa !11
  %1677 = fcmp olt float %1675, %1676
  br i1 %1677, label %1681, label %1678

1678:                                             ; preds = %1673
  %1679 = call i32 @sisnan_(ptr noundef %18)
  %1680 = icmp ne i32 %1679, 0
  br i1 %1680, label %1681, label %1683

1681:                                             ; preds = %1678, %1673
  %1682 = load float, ptr %18, align 4, !tbaa !11
  store float %1682, ptr %25, align 4, !tbaa !11
  br label %1683

1683:                                             ; preds = %1681, %1678
  %1684 = load ptr, ptr %11, align 8, !tbaa !5
  %1685 = load i32, ptr %1684, align 4, !tbaa !9
  store i32 %1685, ptr %19, align 4, !tbaa !9
  %1686 = load i32, ptr %19, align 4, !tbaa !9
  %1687 = load i32, ptr %20, align 4, !tbaa !9
  %1688 = load i32, ptr %28, align 4, !tbaa !9
  %1689 = mul nsw i32 %1687, %1688
  %1690 = add nsw i32 %1686, %1689
  store i32 %1690, ptr %14, align 4, !tbaa !9
  %1691 = load ptr, ptr %12, align 8, !tbaa !5
  %1692 = load i32, ptr %14, align 4, !tbaa !9
  %1693 = sext i32 %1692 to i64
  %1694 = getelementptr inbounds %struct.complex, ptr %1691, i64 %1693
  %1695 = getelementptr inbounds %struct.complex, ptr %1694, i32 0, i32 0
  %1696 = load float, ptr %1695, align 4, !tbaa !13
  store float %1696, ptr %17, align 4, !tbaa !11
  %1697 = load float, ptr %17, align 4, !tbaa !11
  %1698 = fcmp oge float %1697, 0.000000e+00
  br i1 %1698, label %1699, label %1701

1699:                                             ; preds = %1683
  %1700 = load float, ptr %17, align 4, !tbaa !11
  br label %1704

1701:                                             ; preds = %1683
  %1702 = load float, ptr %17, align 4, !tbaa !11
  %1703 = fneg float %1702
  br label %1704

1704:                                             ; preds = %1701, %1699
  %1705 = phi float [ %1700, %1699 ], [ %1703, %1701 ]
  store float %1705, ptr %18, align 4, !tbaa !11
  %1706 = load float, ptr %25, align 4, !tbaa !11
  %1707 = load float, ptr %18, align 4, !tbaa !11
  %1708 = fcmp olt float %1706, %1707
  br i1 %1708, label %1712, label %1709

1709:                                             ; preds = %1704
  %1710 = call i32 @sisnan_(ptr noundef %18)
  %1711 = icmp ne i32 %1710, 0
  br i1 %1711, label %1712, label %1714

1712:                                             ; preds = %1709, %1704
  %1713 = load float, ptr %18, align 4, !tbaa !11
  store float %1713, ptr %25, align 4, !tbaa !11
  br label %1714

1714:                                             ; preds = %1712, %1709
  br label %1715

1715:                                             ; preds = %1714, %1461
  br label %2397

1716:                                             ; preds = %1211
  %1717 = load i32, ptr %31, align 4, !tbaa !9
  %1718 = icmp eq i32 %1717, 1
  br i1 %1718, label %1719, label %2053

1719:                                             ; preds = %1716
  store i32 0, ptr %20, align 4, !tbaa !9
  %1720 = load i32, ptr %20, align 4, !tbaa !9
  %1721 = load i32, ptr %20, align 4, !tbaa !9
  %1722 = load i32, ptr %28, align 4, !tbaa !9
  %1723 = mul nsw i32 %1721, %1722
  %1724 = add nsw i32 %1720, %1723
  store i32 %1724, ptr %14, align 4, !tbaa !9
  %1725 = load ptr, ptr %12, align 8, !tbaa !5
  %1726 = load i32, ptr %14, align 4, !tbaa !9
  %1727 = sext i32 %1726 to i64
  %1728 = getelementptr inbounds %struct.complex, ptr %1725, i64 %1727
  %1729 = getelementptr inbounds %struct.complex, ptr %1728, i32 0, i32 0
  %1730 = load float, ptr %1729, align 4, !tbaa !13
  store float %1730, ptr %17, align 4, !tbaa !11
  %1731 = load float, ptr %17, align 4, !tbaa !11
  %1732 = fcmp oge float %1731, 0.000000e+00
  br i1 %1732, label %1733, label %1735

1733:                                             ; preds = %1719
  %1734 = load float, ptr %17, align 4, !tbaa !11
  br label %1738

1735:                                             ; preds = %1719
  %1736 = load float, ptr %17, align 4, !tbaa !11
  %1737 = fneg float %1736
  br label %1738

1738:                                             ; preds = %1735, %1733
  %1739 = phi float [ %1734, %1733 ], [ %1737, %1735 ]
  store float %1739, ptr %18, align 4, !tbaa !11
  %1740 = load float, ptr %25, align 4, !tbaa !11
  %1741 = load float, ptr %18, align 4, !tbaa !11
  %1742 = fcmp olt float %1740, %1741
  br i1 %1742, label %1746, label %1743

1743:                                             ; preds = %1738
  %1744 = call i32 @sisnan_(ptr noundef %18)
  %1745 = icmp ne i32 %1744, 0
  br i1 %1745, label %1746, label %1748

1746:                                             ; preds = %1743, %1738
  %1747 = load float, ptr %18, align 4, !tbaa !11
  store float %1747, ptr %25, align 4, !tbaa !11
  br label %1748

1748:                                             ; preds = %1746, %1743
  %1749 = load i32, ptr %21, align 4, !tbaa !9
  %1750 = sub nsw i32 %1749, 1
  store i32 %1750, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %1751

1751:                                             ; preds = %1782, %1748
  %1752 = load i32, ptr %19, align 4, !tbaa !9
  %1753 = load i32, ptr %14, align 4, !tbaa !9
  %1754 = icmp sle i32 %1752, %1753
  br i1 %1754, label %1755, label %1785

1755:                                             ; preds = %1751
  %1756 = load ptr, ptr %12, align 8, !tbaa !5
  %1757 = load i32, ptr %19, align 4, !tbaa !9
  %1758 = load i32, ptr %20, align 4, !tbaa !9
  %1759 = load i32, ptr %28, align 4, !tbaa !9
  %1760 = mul nsw i32 %1758, %1759
  %1761 = add nsw i32 %1757, %1760
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds %struct.complex, ptr %1756, i64 %1762
  %1764 = call <2 x float> @Cf(ptr noundef %1763)
  store <2 x float> %1764, ptr %73, align 4
  %1765 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 0
  %1766 = load float, ptr %1765, align 4
  %1767 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 1
  %1768 = load float, ptr %1767, align 4
  %1769 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 0
  %1770 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 1
  store float %1766, ptr %1769, align 4
  store float %1768, ptr %1770, align 4
  %1771 = load <2 x float>, ptr %74, align 4
  %1772 = call float @cabsf(<2 x float> noundef %1771) #6
  store float %1772, ptr %18, align 4, !tbaa !11
  %1773 = load float, ptr %25, align 4, !tbaa !11
  %1774 = load float, ptr %18, align 4, !tbaa !11
  %1775 = fcmp olt float %1773, %1774
  br i1 %1775, label %1779, label %1776

1776:                                             ; preds = %1755
  %1777 = call i32 @sisnan_(ptr noundef %18)
  %1778 = icmp ne i32 %1777, 0
  br i1 %1778, label %1779, label %1781

1779:                                             ; preds = %1776, %1755
  %1780 = load float, ptr %18, align 4, !tbaa !11
  store float %1780, ptr %25, align 4, !tbaa !11
  br label %1781

1781:                                             ; preds = %1779, %1776
  br label %1782

1782:                                             ; preds = %1781
  %1783 = load i32, ptr %19, align 4, !tbaa !9
  %1784 = add nsw i32 %1783, 1
  store i32 %1784, ptr %19, align 4, !tbaa !9
  br label %1751, !llvm.loop !44

1785:                                             ; preds = %1751
  %1786 = load i32, ptr %21, align 4, !tbaa !9
  %1787 = sub nsw i32 %1786, 1
  store i32 %1787, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %1788

1788:                                             ; preds = %1930, %1785
  %1789 = load i32, ptr %20, align 4, !tbaa !9
  %1790 = load i32, ptr %14, align 4, !tbaa !9
  %1791 = icmp sle i32 %1789, %1790
  br i1 %1791, label %1792, label %1933

1792:                                             ; preds = %1788
  %1793 = load i32, ptr %20, align 4, !tbaa !9
  %1794 = sub nsw i32 %1793, 2
  store i32 %1794, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %1795

1795:                                             ; preds = %1826, %1792
  %1796 = load i32, ptr %19, align 4, !tbaa !9
  %1797 = load i32, ptr %15, align 4, !tbaa !9
  %1798 = icmp sle i32 %1796, %1797
  br i1 %1798, label %1799, label %1829

1799:                                             ; preds = %1795
  %1800 = load ptr, ptr %12, align 8, !tbaa !5
  %1801 = load i32, ptr %19, align 4, !tbaa !9
  %1802 = load i32, ptr %20, align 4, !tbaa !9
  %1803 = load i32, ptr %28, align 4, !tbaa !9
  %1804 = mul nsw i32 %1802, %1803
  %1805 = add nsw i32 %1801, %1804
  %1806 = sext i32 %1805 to i64
  %1807 = getelementptr inbounds %struct.complex, ptr %1800, i64 %1806
  %1808 = call <2 x float> @Cf(ptr noundef %1807)
  store <2 x float> %1808, ptr %75, align 4
  %1809 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 0
  %1810 = load float, ptr %1809, align 4
  %1811 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 1
  %1812 = load float, ptr %1811, align 4
  %1813 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 0
  %1814 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 1
  store float %1810, ptr %1813, align 4
  store float %1812, ptr %1814, align 4
  %1815 = load <2 x float>, ptr %76, align 4
  %1816 = call float @cabsf(<2 x float> noundef %1815) #6
  store float %1816, ptr %18, align 4, !tbaa !11
  %1817 = load float, ptr %25, align 4, !tbaa !11
  %1818 = load float, ptr %18, align 4, !tbaa !11
  %1819 = fcmp olt float %1817, %1818
  br i1 %1819, label %1823, label %1820

1820:                                             ; preds = %1799
  %1821 = call i32 @sisnan_(ptr noundef %18)
  %1822 = icmp ne i32 %1821, 0
  br i1 %1822, label %1823, label %1825

1823:                                             ; preds = %1820, %1799
  %1824 = load float, ptr %18, align 4, !tbaa !11
  store float %1824, ptr %25, align 4, !tbaa !11
  br label %1825

1825:                                             ; preds = %1823, %1820
  br label %1826

1826:                                             ; preds = %1825
  %1827 = load i32, ptr %19, align 4, !tbaa !9
  %1828 = add nsw i32 %1827, 1
  store i32 %1828, ptr %19, align 4, !tbaa !9
  br label %1795, !llvm.loop !45

1829:                                             ; preds = %1795
  %1830 = load i32, ptr %20, align 4, !tbaa !9
  %1831 = sub nsw i32 %1830, 1
  store i32 %1831, ptr %19, align 4, !tbaa !9
  %1832 = load i32, ptr %19, align 4, !tbaa !9
  %1833 = load i32, ptr %20, align 4, !tbaa !9
  %1834 = load i32, ptr %28, align 4, !tbaa !9
  %1835 = mul nsw i32 %1833, %1834
  %1836 = add nsw i32 %1832, %1835
  store i32 %1836, ptr %15, align 4, !tbaa !9
  %1837 = load ptr, ptr %12, align 8, !tbaa !5
  %1838 = load i32, ptr %15, align 4, !tbaa !9
  %1839 = sext i32 %1838 to i64
  %1840 = getelementptr inbounds %struct.complex, ptr %1837, i64 %1839
  %1841 = getelementptr inbounds %struct.complex, ptr %1840, i32 0, i32 0
  %1842 = load float, ptr %1841, align 4, !tbaa !13
  store float %1842, ptr %17, align 4, !tbaa !11
  %1843 = load float, ptr %17, align 4, !tbaa !11
  %1844 = fcmp oge float %1843, 0.000000e+00
  br i1 %1844, label %1845, label %1847

1845:                                             ; preds = %1829
  %1846 = load float, ptr %17, align 4, !tbaa !11
  br label %1850

1847:                                             ; preds = %1829
  %1848 = load float, ptr %17, align 4, !tbaa !11
  %1849 = fneg float %1848
  br label %1850

1850:                                             ; preds = %1847, %1845
  %1851 = phi float [ %1846, %1845 ], [ %1849, %1847 ]
  store float %1851, ptr %18, align 4, !tbaa !11
  %1852 = load float, ptr %25, align 4, !tbaa !11
  %1853 = load float, ptr %18, align 4, !tbaa !11
  %1854 = fcmp olt float %1852, %1853
  br i1 %1854, label %1858, label %1855

1855:                                             ; preds = %1850
  %1856 = call i32 @sisnan_(ptr noundef %18)
  %1857 = icmp ne i32 %1856, 0
  br i1 %1857, label %1858, label %1860

1858:                                             ; preds = %1855, %1850
  %1859 = load float, ptr %18, align 4, !tbaa !11
  store float %1859, ptr %25, align 4, !tbaa !11
  br label %1860

1860:                                             ; preds = %1858, %1855
  %1861 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1861, ptr %19, align 4, !tbaa !9
  %1862 = load i32, ptr %19, align 4, !tbaa !9
  %1863 = load i32, ptr %20, align 4, !tbaa !9
  %1864 = load i32, ptr %28, align 4, !tbaa !9
  %1865 = mul nsw i32 %1863, %1864
  %1866 = add nsw i32 %1862, %1865
  store i32 %1866, ptr %15, align 4, !tbaa !9
  %1867 = load ptr, ptr %12, align 8, !tbaa !5
  %1868 = load i32, ptr %15, align 4, !tbaa !9
  %1869 = sext i32 %1868 to i64
  %1870 = getelementptr inbounds %struct.complex, ptr %1867, i64 %1869
  %1871 = getelementptr inbounds %struct.complex, ptr %1870, i32 0, i32 0
  %1872 = load float, ptr %1871, align 4, !tbaa !13
  store float %1872, ptr %17, align 4, !tbaa !11
  %1873 = load float, ptr %17, align 4, !tbaa !11
  %1874 = fcmp oge float %1873, 0.000000e+00
  br i1 %1874, label %1875, label %1877

1875:                                             ; preds = %1860
  %1876 = load float, ptr %17, align 4, !tbaa !11
  br label %1880

1877:                                             ; preds = %1860
  %1878 = load float, ptr %17, align 4, !tbaa !11
  %1879 = fneg float %1878
  br label %1880

1880:                                             ; preds = %1877, %1875
  %1881 = phi float [ %1876, %1875 ], [ %1879, %1877 ]
  store float %1881, ptr %18, align 4, !tbaa !11
  %1882 = load float, ptr %25, align 4, !tbaa !11
  %1883 = load float, ptr %18, align 4, !tbaa !11
  %1884 = fcmp olt float %1882, %1883
  br i1 %1884, label %1888, label %1885

1885:                                             ; preds = %1880
  %1886 = call i32 @sisnan_(ptr noundef %18)
  %1887 = icmp ne i32 %1886, 0
  br i1 %1887, label %1888, label %1890

1888:                                             ; preds = %1885, %1880
  %1889 = load float, ptr %18, align 4, !tbaa !11
  store float %1889, ptr %25, align 4, !tbaa !11
  br label %1890

1890:                                             ; preds = %1888, %1885
  %1891 = load i32, ptr %21, align 4, !tbaa !9
  %1892 = sub nsw i32 %1891, 1
  store i32 %1892, ptr %15, align 4, !tbaa !9
  %1893 = load i32, ptr %20, align 4, !tbaa !9
  %1894 = add nsw i32 %1893, 1
  store i32 %1894, ptr %19, align 4, !tbaa !9
  br label %1895

1895:                                             ; preds = %1926, %1890
  %1896 = load i32, ptr %19, align 4, !tbaa !9
  %1897 = load i32, ptr %15, align 4, !tbaa !9
  %1898 = icmp sle i32 %1896, %1897
  br i1 %1898, label %1899, label %1929

1899:                                             ; preds = %1895
  %1900 = load ptr, ptr %12, align 8, !tbaa !5
  %1901 = load i32, ptr %19, align 4, !tbaa !9
  %1902 = load i32, ptr %20, align 4, !tbaa !9
  %1903 = load i32, ptr %28, align 4, !tbaa !9
  %1904 = mul nsw i32 %1902, %1903
  %1905 = add nsw i32 %1901, %1904
  %1906 = sext i32 %1905 to i64
  %1907 = getelementptr inbounds %struct.complex, ptr %1900, i64 %1906
  %1908 = call <2 x float> @Cf(ptr noundef %1907)
  store <2 x float> %1908, ptr %77, align 4
  %1909 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 0
  %1910 = load float, ptr %1909, align 4
  %1911 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 1
  %1912 = load float, ptr %1911, align 4
  %1913 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 0
  %1914 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 1
  store float %1910, ptr %1913, align 4
  store float %1912, ptr %1914, align 4
  %1915 = load <2 x float>, ptr %78, align 4
  %1916 = call float @cabsf(<2 x float> noundef %1915) #6
  store float %1916, ptr %18, align 4, !tbaa !11
  %1917 = load float, ptr %25, align 4, !tbaa !11
  %1918 = load float, ptr %18, align 4, !tbaa !11
  %1919 = fcmp olt float %1917, %1918
  br i1 %1919, label %1923, label %1920

1920:                                             ; preds = %1899
  %1921 = call i32 @sisnan_(ptr noundef %18)
  %1922 = icmp ne i32 %1921, 0
  br i1 %1922, label %1923, label %1925

1923:                                             ; preds = %1920, %1899
  %1924 = load float, ptr %18, align 4, !tbaa !11
  store float %1924, ptr %25, align 4, !tbaa !11
  br label %1925

1925:                                             ; preds = %1923, %1920
  br label %1926

1926:                                             ; preds = %1925
  %1927 = load i32, ptr %19, align 4, !tbaa !9
  %1928 = add nsw i32 %1927, 1
  store i32 %1928, ptr %19, align 4, !tbaa !9
  br label %1895, !llvm.loop !46

1929:                                             ; preds = %1895
  br label %1930

1930:                                             ; preds = %1929
  %1931 = load i32, ptr %20, align 4, !tbaa !9
  %1932 = add nsw i32 %1931, 1
  store i32 %1932, ptr %20, align 4, !tbaa !9
  br label %1788, !llvm.loop !47

1933:                                             ; preds = %1788
  %1934 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1934, ptr %20, align 4, !tbaa !9
  %1935 = load i32, ptr %21, align 4, !tbaa !9
  %1936 = sub nsw i32 %1935, 2
  store i32 %1936, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %1937

1937:                                             ; preds = %1968, %1933
  %1938 = load i32, ptr %19, align 4, !tbaa !9
  %1939 = load i32, ptr %14, align 4, !tbaa !9
  %1940 = icmp sle i32 %1938, %1939
  br i1 %1940, label %1941, label %1971

1941:                                             ; preds = %1937
  %1942 = load ptr, ptr %12, align 8, !tbaa !5
  %1943 = load i32, ptr %19, align 4, !tbaa !9
  %1944 = load i32, ptr %20, align 4, !tbaa !9
  %1945 = load i32, ptr %28, align 4, !tbaa !9
  %1946 = mul nsw i32 %1944, %1945
  %1947 = add nsw i32 %1943, %1946
  %1948 = sext i32 %1947 to i64
  %1949 = getelementptr inbounds %struct.complex, ptr %1942, i64 %1948
  %1950 = call <2 x float> @Cf(ptr noundef %1949)
  store <2 x float> %1950, ptr %79, align 4
  %1951 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 0
  %1952 = load float, ptr %1951, align 4
  %1953 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 1
  %1954 = load float, ptr %1953, align 4
  %1955 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 0
  %1956 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 1
  store float %1952, ptr %1955, align 4
  store float %1954, ptr %1956, align 4
  %1957 = load <2 x float>, ptr %80, align 4
  %1958 = call float @cabsf(<2 x float> noundef %1957) #6
  store float %1958, ptr %18, align 4, !tbaa !11
  %1959 = load float, ptr %25, align 4, !tbaa !11
  %1960 = load float, ptr %18, align 4, !tbaa !11
  %1961 = fcmp olt float %1959, %1960
  br i1 %1961, label %1965, label %1962

1962:                                             ; preds = %1941
  %1963 = call i32 @sisnan_(ptr noundef %18)
  %1964 = icmp ne i32 %1963, 0
  br i1 %1964, label %1965, label %1967

1965:                                             ; preds = %1962, %1941
  %1966 = load float, ptr %18, align 4, !tbaa !11
  store float %1966, ptr %25, align 4, !tbaa !11
  br label %1967

1967:                                             ; preds = %1965, %1962
  br label %1968

1968:                                             ; preds = %1967
  %1969 = load i32, ptr %19, align 4, !tbaa !9
  %1970 = add nsw i32 %1969, 1
  store i32 %1970, ptr %19, align 4, !tbaa !9
  br label %1937, !llvm.loop !48

1971:                                             ; preds = %1937
  %1972 = load i32, ptr %21, align 4, !tbaa !9
  %1973 = sub nsw i32 %1972, 1
  store i32 %1973, ptr %19, align 4, !tbaa !9
  %1974 = load i32, ptr %19, align 4, !tbaa !9
  %1975 = load i32, ptr %20, align 4, !tbaa !9
  %1976 = load i32, ptr %28, align 4, !tbaa !9
  %1977 = mul nsw i32 %1975, %1976
  %1978 = add nsw i32 %1974, %1977
  store i32 %1978, ptr %14, align 4, !tbaa !9
  %1979 = load ptr, ptr %12, align 8, !tbaa !5
  %1980 = load i32, ptr %14, align 4, !tbaa !9
  %1981 = sext i32 %1980 to i64
  %1982 = getelementptr inbounds %struct.complex, ptr %1979, i64 %1981
  %1983 = getelementptr inbounds %struct.complex, ptr %1982, i32 0, i32 0
  %1984 = load float, ptr %1983, align 4, !tbaa !13
  store float %1984, ptr %17, align 4, !tbaa !11
  %1985 = load float, ptr %17, align 4, !tbaa !11
  %1986 = fcmp oge float %1985, 0.000000e+00
  br i1 %1986, label %1987, label %1989

1987:                                             ; preds = %1971
  %1988 = load float, ptr %17, align 4, !tbaa !11
  br label %1992

1989:                                             ; preds = %1971
  %1990 = load float, ptr %17, align 4, !tbaa !11
  %1991 = fneg float %1990
  br label %1992

1992:                                             ; preds = %1989, %1987
  %1993 = phi float [ %1988, %1987 ], [ %1991, %1989 ]
  store float %1993, ptr %18, align 4, !tbaa !11
  %1994 = load float, ptr %25, align 4, !tbaa !11
  %1995 = load float, ptr %18, align 4, !tbaa !11
  %1996 = fcmp olt float %1994, %1995
  br i1 %1996, label %2000, label %1997

1997:                                             ; preds = %1992
  %1998 = call i32 @sisnan_(ptr noundef %18)
  %1999 = icmp ne i32 %1998, 0
  br i1 %1999, label %2000, label %2002

2000:                                             ; preds = %1997, %1992
  %2001 = load float, ptr %18, align 4, !tbaa !11
  store float %2001, ptr %25, align 4, !tbaa !11
  br label %2002

2002:                                             ; preds = %2000, %1997
  %2003 = load ptr, ptr %11, align 8, !tbaa !5
  %2004 = load i32, ptr %2003, align 4, !tbaa !9
  store i32 %2004, ptr %14, align 4, !tbaa !9
  %2005 = load i32, ptr %21, align 4, !tbaa !9
  %2006 = add nsw i32 %2005, 1
  store i32 %2006, ptr %20, align 4, !tbaa !9
  br label %2007

2007:                                             ; preds = %2049, %2002
  %2008 = load i32, ptr %20, align 4, !tbaa !9
  %2009 = load i32, ptr %14, align 4, !tbaa !9
  %2010 = icmp sle i32 %2008, %2009
  br i1 %2010, label %2011, label %2052

2011:                                             ; preds = %2007
  %2012 = load i32, ptr %21, align 4, !tbaa !9
  %2013 = sub nsw i32 %2012, 1
  store i32 %2013, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2014

2014:                                             ; preds = %2045, %2011
  %2015 = load i32, ptr %19, align 4, !tbaa !9
  %2016 = load i32, ptr %15, align 4, !tbaa !9
  %2017 = icmp sle i32 %2015, %2016
  br i1 %2017, label %2018, label %2048

2018:                                             ; preds = %2014
  %2019 = load ptr, ptr %12, align 8, !tbaa !5
  %2020 = load i32, ptr %19, align 4, !tbaa !9
  %2021 = load i32, ptr %20, align 4, !tbaa !9
  %2022 = load i32, ptr %28, align 4, !tbaa !9
  %2023 = mul nsw i32 %2021, %2022
  %2024 = add nsw i32 %2020, %2023
  %2025 = sext i32 %2024 to i64
  %2026 = getelementptr inbounds %struct.complex, ptr %2019, i64 %2025
  %2027 = call <2 x float> @Cf(ptr noundef %2026)
  store <2 x float> %2027, ptr %81, align 4
  %2028 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 0
  %2029 = load float, ptr %2028, align 4
  %2030 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 1
  %2031 = load float, ptr %2030, align 4
  %2032 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 0
  %2033 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 1
  store float %2029, ptr %2032, align 4
  store float %2031, ptr %2033, align 4
  %2034 = load <2 x float>, ptr %82, align 4
  %2035 = call float @cabsf(<2 x float> noundef %2034) #6
  store float %2035, ptr %18, align 4, !tbaa !11
  %2036 = load float, ptr %25, align 4, !tbaa !11
  %2037 = load float, ptr %18, align 4, !tbaa !11
  %2038 = fcmp olt float %2036, %2037
  br i1 %2038, label %2042, label %2039

2039:                                             ; preds = %2018
  %2040 = call i32 @sisnan_(ptr noundef %18)
  %2041 = icmp ne i32 %2040, 0
  br i1 %2041, label %2042, label %2044

2042:                                             ; preds = %2039, %2018
  %2043 = load float, ptr %18, align 4, !tbaa !11
  store float %2043, ptr %25, align 4, !tbaa !11
  br label %2044

2044:                                             ; preds = %2042, %2039
  br label %2045

2045:                                             ; preds = %2044
  %2046 = load i32, ptr %19, align 4, !tbaa !9
  %2047 = add nsw i32 %2046, 1
  store i32 %2047, ptr %19, align 4, !tbaa !9
  br label %2014, !llvm.loop !49

2048:                                             ; preds = %2014
  br label %2049

2049:                                             ; preds = %2048
  %2050 = load i32, ptr %20, align 4, !tbaa !9
  %2051 = add nsw i32 %2050, 1
  store i32 %2051, ptr %20, align 4, !tbaa !9
  br label %2007, !llvm.loop !50

2052:                                             ; preds = %2007
  br label %2396

2053:                                             ; preds = %1716
  %2054 = load i32, ptr %21, align 4, !tbaa !9
  %2055 = sub nsw i32 %2054, 1
  store i32 %2055, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %2056

2056:                                             ; preds = %2098, %2053
  %2057 = load i32, ptr %20, align 4, !tbaa !9
  %2058 = load i32, ptr %14, align 4, !tbaa !9
  %2059 = icmp sle i32 %2057, %2058
  br i1 %2059, label %2060, label %2101

2060:                                             ; preds = %2056
  %2061 = load i32, ptr %21, align 4, !tbaa !9
  %2062 = sub nsw i32 %2061, 1
  store i32 %2062, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2063

2063:                                             ; preds = %2094, %2060
  %2064 = load i32, ptr %19, align 4, !tbaa !9
  %2065 = load i32, ptr %15, align 4, !tbaa !9
  %2066 = icmp sle i32 %2064, %2065
  br i1 %2066, label %2067, label %2097

2067:                                             ; preds = %2063
  %2068 = load ptr, ptr %12, align 8, !tbaa !5
  %2069 = load i32, ptr %19, align 4, !tbaa !9
  %2070 = load i32, ptr %20, align 4, !tbaa !9
  %2071 = load i32, ptr %28, align 4, !tbaa !9
  %2072 = mul nsw i32 %2070, %2071
  %2073 = add nsw i32 %2069, %2072
  %2074 = sext i32 %2073 to i64
  %2075 = getelementptr inbounds %struct.complex, ptr %2068, i64 %2074
  %2076 = call <2 x float> @Cf(ptr noundef %2075)
  store <2 x float> %2076, ptr %83, align 4
  %2077 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 0
  %2078 = load float, ptr %2077, align 4
  %2079 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 1
  %2080 = load float, ptr %2079, align 4
  %2081 = getelementptr inbounds { float, float }, ptr %84, i32 0, i32 0
  %2082 = getelementptr inbounds { float, float }, ptr %84, i32 0, i32 1
  store float %2078, ptr %2081, align 4
  store float %2080, ptr %2082, align 4
  %2083 = load <2 x float>, ptr %84, align 4
  %2084 = call float @cabsf(<2 x float> noundef %2083) #6
  store float %2084, ptr %18, align 4, !tbaa !11
  %2085 = load float, ptr %25, align 4, !tbaa !11
  %2086 = load float, ptr %18, align 4, !tbaa !11
  %2087 = fcmp olt float %2085, %2086
  br i1 %2087, label %2091, label %2088

2088:                                             ; preds = %2067
  %2089 = call i32 @sisnan_(ptr noundef %18)
  %2090 = icmp ne i32 %2089, 0
  br i1 %2090, label %2091, label %2093

2091:                                             ; preds = %2088, %2067
  %2092 = load float, ptr %18, align 4, !tbaa !11
  store float %2092, ptr %25, align 4, !tbaa !11
  br label %2093

2093:                                             ; preds = %2091, %2088
  br label %2094

2094:                                             ; preds = %2093
  %2095 = load i32, ptr %19, align 4, !tbaa !9
  %2096 = add nsw i32 %2095, 1
  store i32 %2096, ptr %19, align 4, !tbaa !9
  br label %2063, !llvm.loop !51

2097:                                             ; preds = %2063
  br label %2098

2098:                                             ; preds = %2097
  %2099 = load i32, ptr %20, align 4, !tbaa !9
  %2100 = add nsw i32 %2099, 1
  store i32 %2100, ptr %20, align 4, !tbaa !9
  br label %2056, !llvm.loop !52

2101:                                             ; preds = %2056
  %2102 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2102, ptr %20, align 4, !tbaa !9
  %2103 = load i32, ptr %20, align 4, !tbaa !9
  %2104 = load i32, ptr %28, align 4, !tbaa !9
  %2105 = mul nsw i32 %2103, %2104
  store i32 %2105, ptr %14, align 4, !tbaa !9
  %2106 = load ptr, ptr %12, align 8, !tbaa !5
  %2107 = load i32, ptr %14, align 4, !tbaa !9
  %2108 = sext i32 %2107 to i64
  %2109 = getelementptr inbounds %struct.complex, ptr %2106, i64 %2108
  %2110 = getelementptr inbounds %struct.complex, ptr %2109, i32 0, i32 0
  %2111 = load float, ptr %2110, align 4, !tbaa !13
  store float %2111, ptr %17, align 4, !tbaa !11
  %2112 = load float, ptr %17, align 4, !tbaa !11
  %2113 = fcmp oge float %2112, 0.000000e+00
  br i1 %2113, label %2114, label %2116

2114:                                             ; preds = %2101
  %2115 = load float, ptr %17, align 4, !tbaa !11
  br label %2119

2116:                                             ; preds = %2101
  %2117 = load float, ptr %17, align 4, !tbaa !11
  %2118 = fneg float %2117
  br label %2119

2119:                                             ; preds = %2116, %2114
  %2120 = phi float [ %2115, %2114 ], [ %2118, %2116 ]
  store float %2120, ptr %18, align 4, !tbaa !11
  %2121 = load float, ptr %25, align 4, !tbaa !11
  %2122 = load float, ptr %18, align 4, !tbaa !11
  %2123 = fcmp olt float %2121, %2122
  br i1 %2123, label %2127, label %2124

2124:                                             ; preds = %2119
  %2125 = call i32 @sisnan_(ptr noundef %18)
  %2126 = icmp ne i32 %2125, 0
  br i1 %2126, label %2127, label %2129

2127:                                             ; preds = %2124, %2119
  %2128 = load float, ptr %18, align 4, !tbaa !11
  store float %2128, ptr %25, align 4, !tbaa !11
  br label %2129

2129:                                             ; preds = %2127, %2124
  %2130 = load i32, ptr %21, align 4, !tbaa !9
  %2131 = sub nsw i32 %2130, 1
  store i32 %2131, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %2132

2132:                                             ; preds = %2163, %2129
  %2133 = load i32, ptr %19, align 4, !tbaa !9
  %2134 = load i32, ptr %14, align 4, !tbaa !9
  %2135 = icmp sle i32 %2133, %2134
  br i1 %2135, label %2136, label %2166

2136:                                             ; preds = %2132
  %2137 = load ptr, ptr %12, align 8, !tbaa !5
  %2138 = load i32, ptr %19, align 4, !tbaa !9
  %2139 = load i32, ptr %20, align 4, !tbaa !9
  %2140 = load i32, ptr %28, align 4, !tbaa !9
  %2141 = mul nsw i32 %2139, %2140
  %2142 = add nsw i32 %2138, %2141
  %2143 = sext i32 %2142 to i64
  %2144 = getelementptr inbounds %struct.complex, ptr %2137, i64 %2143
  %2145 = call <2 x float> @Cf(ptr noundef %2144)
  store <2 x float> %2145, ptr %85, align 4
  %2146 = getelementptr inbounds { float, float }, ptr %85, i32 0, i32 0
  %2147 = load float, ptr %2146, align 4
  %2148 = getelementptr inbounds { float, float }, ptr %85, i32 0, i32 1
  %2149 = load float, ptr %2148, align 4
  %2150 = getelementptr inbounds { float, float }, ptr %86, i32 0, i32 0
  %2151 = getelementptr inbounds { float, float }, ptr %86, i32 0, i32 1
  store float %2147, ptr %2150, align 4
  store float %2149, ptr %2151, align 4
  %2152 = load <2 x float>, ptr %86, align 4
  %2153 = call float @cabsf(<2 x float> noundef %2152) #6
  store float %2153, ptr %18, align 4, !tbaa !11
  %2154 = load float, ptr %25, align 4, !tbaa !11
  %2155 = load float, ptr %18, align 4, !tbaa !11
  %2156 = fcmp olt float %2154, %2155
  br i1 %2156, label %2160, label %2157

2157:                                             ; preds = %2136
  %2158 = call i32 @sisnan_(ptr noundef %18)
  %2159 = icmp ne i32 %2158, 0
  br i1 %2159, label %2160, label %2162

2160:                                             ; preds = %2157, %2136
  %2161 = load float, ptr %18, align 4, !tbaa !11
  store float %2161, ptr %25, align 4, !tbaa !11
  br label %2162

2162:                                             ; preds = %2160, %2157
  br label %2163

2163:                                             ; preds = %2162
  %2164 = load i32, ptr %19, align 4, !tbaa !9
  %2165 = add nsw i32 %2164, 1
  store i32 %2165, ptr %19, align 4, !tbaa !9
  br label %2132, !llvm.loop !53

2166:                                             ; preds = %2132
  %2167 = load ptr, ptr %11, align 8, !tbaa !5
  %2168 = load i32, ptr %2167, align 4, !tbaa !9
  %2169 = sub nsw i32 %2168, 1
  store i32 %2169, ptr %14, align 4, !tbaa !9
  %2170 = load i32, ptr %21, align 4, !tbaa !9
  %2171 = add nsw i32 %2170, 1
  store i32 %2171, ptr %20, align 4, !tbaa !9
  br label %2172

2172:                                             ; preds = %2322, %2166
  %2173 = load i32, ptr %20, align 4, !tbaa !9
  %2174 = load i32, ptr %14, align 4, !tbaa !9
  %2175 = icmp sle i32 %2173, %2174
  br i1 %2175, label %2176, label %2325

2176:                                             ; preds = %2172
  %2177 = load i32, ptr %20, align 4, !tbaa !9
  %2178 = load i32, ptr %21, align 4, !tbaa !9
  %2179 = sub nsw i32 %2177, %2178
  %2180 = sub nsw i32 %2179, 2
  store i32 %2180, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2181

2181:                                             ; preds = %2212, %2176
  %2182 = load i32, ptr %19, align 4, !tbaa !9
  %2183 = load i32, ptr %15, align 4, !tbaa !9
  %2184 = icmp sle i32 %2182, %2183
  br i1 %2184, label %2185, label %2215

2185:                                             ; preds = %2181
  %2186 = load ptr, ptr %12, align 8, !tbaa !5
  %2187 = load i32, ptr %19, align 4, !tbaa !9
  %2188 = load i32, ptr %20, align 4, !tbaa !9
  %2189 = load i32, ptr %28, align 4, !tbaa !9
  %2190 = mul nsw i32 %2188, %2189
  %2191 = add nsw i32 %2187, %2190
  %2192 = sext i32 %2191 to i64
  %2193 = getelementptr inbounds %struct.complex, ptr %2186, i64 %2192
  %2194 = call <2 x float> @Cf(ptr noundef %2193)
  store <2 x float> %2194, ptr %87, align 4
  %2195 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 0
  %2196 = load float, ptr %2195, align 4
  %2197 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 1
  %2198 = load float, ptr %2197, align 4
  %2199 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 0
  %2200 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 1
  store float %2196, ptr %2199, align 4
  store float %2198, ptr %2200, align 4
  %2201 = load <2 x float>, ptr %88, align 4
  %2202 = call float @cabsf(<2 x float> noundef %2201) #6
  store float %2202, ptr %18, align 4, !tbaa !11
  %2203 = load float, ptr %25, align 4, !tbaa !11
  %2204 = load float, ptr %18, align 4, !tbaa !11
  %2205 = fcmp olt float %2203, %2204
  br i1 %2205, label %2209, label %2206

2206:                                             ; preds = %2185
  %2207 = call i32 @sisnan_(ptr noundef %18)
  %2208 = icmp ne i32 %2207, 0
  br i1 %2208, label %2209, label %2211

2209:                                             ; preds = %2206, %2185
  %2210 = load float, ptr %18, align 4, !tbaa !11
  store float %2210, ptr %25, align 4, !tbaa !11
  br label %2211

2211:                                             ; preds = %2209, %2206
  br label %2212

2212:                                             ; preds = %2211
  %2213 = load i32, ptr %19, align 4, !tbaa !9
  %2214 = add nsw i32 %2213, 1
  store i32 %2214, ptr %19, align 4, !tbaa !9
  br label %2181, !llvm.loop !54

2215:                                             ; preds = %2181
  %2216 = load i32, ptr %20, align 4, !tbaa !9
  %2217 = load i32, ptr %21, align 4, !tbaa !9
  %2218 = sub nsw i32 %2216, %2217
  %2219 = sub nsw i32 %2218, 1
  store i32 %2219, ptr %19, align 4, !tbaa !9
  %2220 = load i32, ptr %19, align 4, !tbaa !9
  %2221 = load i32, ptr %20, align 4, !tbaa !9
  %2222 = load i32, ptr %28, align 4, !tbaa !9
  %2223 = mul nsw i32 %2221, %2222
  %2224 = add nsw i32 %2220, %2223
  store i32 %2224, ptr %15, align 4, !tbaa !9
  %2225 = load ptr, ptr %12, align 8, !tbaa !5
  %2226 = load i32, ptr %15, align 4, !tbaa !9
  %2227 = sext i32 %2226 to i64
  %2228 = getelementptr inbounds %struct.complex, ptr %2225, i64 %2227
  %2229 = getelementptr inbounds %struct.complex, ptr %2228, i32 0, i32 0
  %2230 = load float, ptr %2229, align 4, !tbaa !13
  store float %2230, ptr %17, align 4, !tbaa !11
  %2231 = load float, ptr %17, align 4, !tbaa !11
  %2232 = fcmp oge float %2231, 0.000000e+00
  br i1 %2232, label %2233, label %2235

2233:                                             ; preds = %2215
  %2234 = load float, ptr %17, align 4, !tbaa !11
  br label %2238

2235:                                             ; preds = %2215
  %2236 = load float, ptr %17, align 4, !tbaa !11
  %2237 = fneg float %2236
  br label %2238

2238:                                             ; preds = %2235, %2233
  %2239 = phi float [ %2234, %2233 ], [ %2237, %2235 ]
  store float %2239, ptr %18, align 4, !tbaa !11
  %2240 = load float, ptr %25, align 4, !tbaa !11
  %2241 = load float, ptr %18, align 4, !tbaa !11
  %2242 = fcmp olt float %2240, %2241
  br i1 %2242, label %2246, label %2243

2243:                                             ; preds = %2238
  %2244 = call i32 @sisnan_(ptr noundef %18)
  %2245 = icmp ne i32 %2244, 0
  br i1 %2245, label %2246, label %2248

2246:                                             ; preds = %2243, %2238
  %2247 = load float, ptr %18, align 4, !tbaa !11
  store float %2247, ptr %25, align 4, !tbaa !11
  br label %2248

2248:                                             ; preds = %2246, %2243
  %2249 = load i32, ptr %20, align 4, !tbaa !9
  %2250 = load i32, ptr %21, align 4, !tbaa !9
  %2251 = sub nsw i32 %2249, %2250
  store i32 %2251, ptr %19, align 4, !tbaa !9
  %2252 = load i32, ptr %19, align 4, !tbaa !9
  %2253 = load i32, ptr %20, align 4, !tbaa !9
  %2254 = load i32, ptr %28, align 4, !tbaa !9
  %2255 = mul nsw i32 %2253, %2254
  %2256 = add nsw i32 %2252, %2255
  store i32 %2256, ptr %15, align 4, !tbaa !9
  %2257 = load ptr, ptr %12, align 8, !tbaa !5
  %2258 = load i32, ptr %15, align 4, !tbaa !9
  %2259 = sext i32 %2258 to i64
  %2260 = getelementptr inbounds %struct.complex, ptr %2257, i64 %2259
  %2261 = getelementptr inbounds %struct.complex, ptr %2260, i32 0, i32 0
  %2262 = load float, ptr %2261, align 4, !tbaa !13
  store float %2262, ptr %17, align 4, !tbaa !11
  %2263 = load float, ptr %17, align 4, !tbaa !11
  %2264 = fcmp oge float %2263, 0.000000e+00
  br i1 %2264, label %2265, label %2267

2265:                                             ; preds = %2248
  %2266 = load float, ptr %17, align 4, !tbaa !11
  br label %2270

2267:                                             ; preds = %2248
  %2268 = load float, ptr %17, align 4, !tbaa !11
  %2269 = fneg float %2268
  br label %2270

2270:                                             ; preds = %2267, %2265
  %2271 = phi float [ %2266, %2265 ], [ %2269, %2267 ]
  store float %2271, ptr %18, align 4, !tbaa !11
  %2272 = load float, ptr %25, align 4, !tbaa !11
  %2273 = load float, ptr %18, align 4, !tbaa !11
  %2274 = fcmp olt float %2272, %2273
  br i1 %2274, label %2278, label %2275

2275:                                             ; preds = %2270
  %2276 = call i32 @sisnan_(ptr noundef %18)
  %2277 = icmp ne i32 %2276, 0
  br i1 %2277, label %2278, label %2280

2278:                                             ; preds = %2275, %2270
  %2279 = load float, ptr %18, align 4, !tbaa !11
  store float %2279, ptr %25, align 4, !tbaa !11
  br label %2280

2280:                                             ; preds = %2278, %2275
  %2281 = load i32, ptr %21, align 4, !tbaa !9
  %2282 = sub nsw i32 %2281, 1
  store i32 %2282, ptr %15, align 4, !tbaa !9
  %2283 = load i32, ptr %20, align 4, !tbaa !9
  %2284 = load i32, ptr %21, align 4, !tbaa !9
  %2285 = sub nsw i32 %2283, %2284
  %2286 = add nsw i32 %2285, 1
  store i32 %2286, ptr %19, align 4, !tbaa !9
  br label %2287

2287:                                             ; preds = %2318, %2280
  %2288 = load i32, ptr %19, align 4, !tbaa !9
  %2289 = load i32, ptr %15, align 4, !tbaa !9
  %2290 = icmp sle i32 %2288, %2289
  br i1 %2290, label %2291, label %2321

2291:                                             ; preds = %2287
  %2292 = load ptr, ptr %12, align 8, !tbaa !5
  %2293 = load i32, ptr %19, align 4, !tbaa !9
  %2294 = load i32, ptr %20, align 4, !tbaa !9
  %2295 = load i32, ptr %28, align 4, !tbaa !9
  %2296 = mul nsw i32 %2294, %2295
  %2297 = add nsw i32 %2293, %2296
  %2298 = sext i32 %2297 to i64
  %2299 = getelementptr inbounds %struct.complex, ptr %2292, i64 %2298
  %2300 = call <2 x float> @Cf(ptr noundef %2299)
  store <2 x float> %2300, ptr %89, align 4
  %2301 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 0
  %2302 = load float, ptr %2301, align 4
  %2303 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 1
  %2304 = load float, ptr %2303, align 4
  %2305 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 0
  %2306 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 1
  store float %2302, ptr %2305, align 4
  store float %2304, ptr %2306, align 4
  %2307 = load <2 x float>, ptr %90, align 4
  %2308 = call float @cabsf(<2 x float> noundef %2307) #6
  store float %2308, ptr %18, align 4, !tbaa !11
  %2309 = load float, ptr %25, align 4, !tbaa !11
  %2310 = load float, ptr %18, align 4, !tbaa !11
  %2311 = fcmp olt float %2309, %2310
  br i1 %2311, label %2315, label %2312

2312:                                             ; preds = %2291
  %2313 = call i32 @sisnan_(ptr noundef %18)
  %2314 = icmp ne i32 %2313, 0
  br i1 %2314, label %2315, label %2317

2315:                                             ; preds = %2312, %2291
  %2316 = load float, ptr %18, align 4, !tbaa !11
  store float %2316, ptr %25, align 4, !tbaa !11
  br label %2317

2317:                                             ; preds = %2315, %2312
  br label %2318

2318:                                             ; preds = %2317
  %2319 = load i32, ptr %19, align 4, !tbaa !9
  %2320 = add nsw i32 %2319, 1
  store i32 %2320, ptr %19, align 4, !tbaa !9
  br label %2287, !llvm.loop !55

2321:                                             ; preds = %2287
  br label %2322

2322:                                             ; preds = %2321
  %2323 = load i32, ptr %20, align 4, !tbaa !9
  %2324 = add nsw i32 %2323, 1
  store i32 %2324, ptr %20, align 4, !tbaa !9
  br label %2172, !llvm.loop !56

2325:                                             ; preds = %2172
  %2326 = load ptr, ptr %11, align 8, !tbaa !5
  %2327 = load i32, ptr %2326, align 4, !tbaa !9
  store i32 %2327, ptr %20, align 4, !tbaa !9
  %2328 = load i32, ptr %21, align 4, !tbaa !9
  %2329 = sub nsw i32 %2328, 2
  store i32 %2329, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2330

2330:                                             ; preds = %2361, %2325
  %2331 = load i32, ptr %19, align 4, !tbaa !9
  %2332 = load i32, ptr %14, align 4, !tbaa !9
  %2333 = icmp sle i32 %2331, %2332
  br i1 %2333, label %2334, label %2364

2334:                                             ; preds = %2330
  %2335 = load ptr, ptr %12, align 8, !tbaa !5
  %2336 = load i32, ptr %19, align 4, !tbaa !9
  %2337 = load i32, ptr %20, align 4, !tbaa !9
  %2338 = load i32, ptr %28, align 4, !tbaa !9
  %2339 = mul nsw i32 %2337, %2338
  %2340 = add nsw i32 %2336, %2339
  %2341 = sext i32 %2340 to i64
  %2342 = getelementptr inbounds %struct.complex, ptr %2335, i64 %2341
  %2343 = call <2 x float> @Cf(ptr noundef %2342)
  store <2 x float> %2343, ptr %91, align 4
  %2344 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 0
  %2345 = load float, ptr %2344, align 4
  %2346 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 1
  %2347 = load float, ptr %2346, align 4
  %2348 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 0
  %2349 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 1
  store float %2345, ptr %2348, align 4
  store float %2347, ptr %2349, align 4
  %2350 = load <2 x float>, ptr %92, align 4
  %2351 = call float @cabsf(<2 x float> noundef %2350) #6
  store float %2351, ptr %18, align 4, !tbaa !11
  %2352 = load float, ptr %25, align 4, !tbaa !11
  %2353 = load float, ptr %18, align 4, !tbaa !11
  %2354 = fcmp olt float %2352, %2353
  br i1 %2354, label %2358, label %2355

2355:                                             ; preds = %2334
  %2356 = call i32 @sisnan_(ptr noundef %18)
  %2357 = icmp ne i32 %2356, 0
  br i1 %2357, label %2358, label %2360

2358:                                             ; preds = %2355, %2334
  %2359 = load float, ptr %18, align 4, !tbaa !11
  store float %2359, ptr %25, align 4, !tbaa !11
  br label %2360

2360:                                             ; preds = %2358, %2355
  br label %2361

2361:                                             ; preds = %2360
  %2362 = load i32, ptr %19, align 4, !tbaa !9
  %2363 = add nsw i32 %2362, 1
  store i32 %2363, ptr %19, align 4, !tbaa !9
  br label %2330, !llvm.loop !57

2364:                                             ; preds = %2330
  %2365 = load i32, ptr %21, align 4, !tbaa !9
  %2366 = sub nsw i32 %2365, 1
  store i32 %2366, ptr %19, align 4, !tbaa !9
  %2367 = load i32, ptr %19, align 4, !tbaa !9
  %2368 = load i32, ptr %20, align 4, !tbaa !9
  %2369 = load i32, ptr %28, align 4, !tbaa !9
  %2370 = mul nsw i32 %2368, %2369
  %2371 = add nsw i32 %2367, %2370
  store i32 %2371, ptr %14, align 4, !tbaa !9
  %2372 = load ptr, ptr %12, align 8, !tbaa !5
  %2373 = load i32, ptr %14, align 4, !tbaa !9
  %2374 = sext i32 %2373 to i64
  %2375 = getelementptr inbounds %struct.complex, ptr %2372, i64 %2374
  %2376 = getelementptr inbounds %struct.complex, ptr %2375, i32 0, i32 0
  %2377 = load float, ptr %2376, align 4, !tbaa !13
  store float %2377, ptr %17, align 4, !tbaa !11
  %2378 = load float, ptr %17, align 4, !tbaa !11
  %2379 = fcmp oge float %2378, 0.000000e+00
  br i1 %2379, label %2380, label %2382

2380:                                             ; preds = %2364
  %2381 = load float, ptr %17, align 4, !tbaa !11
  br label %2385

2382:                                             ; preds = %2364
  %2383 = load float, ptr %17, align 4, !tbaa !11
  %2384 = fneg float %2383
  br label %2385

2385:                                             ; preds = %2382, %2380
  %2386 = phi float [ %2381, %2380 ], [ %2384, %2382 ]
  store float %2386, ptr %18, align 4, !tbaa !11
  %2387 = load float, ptr %25, align 4, !tbaa !11
  %2388 = load float, ptr %18, align 4, !tbaa !11
  %2389 = fcmp olt float %2387, %2388
  br i1 %2389, label %2393, label %2390

2390:                                             ; preds = %2385
  %2391 = call i32 @sisnan_(ptr noundef %18)
  %2392 = icmp ne i32 %2391, 0
  br i1 %2392, label %2393, label %2395

2393:                                             ; preds = %2390, %2385
  %2394 = load float, ptr %18, align 4, !tbaa !11
  store float %2394, ptr %25, align 4, !tbaa !11
  br label %2395

2395:                                             ; preds = %2393, %2390
  br label %2396

2396:                                             ; preds = %2395, %2052
  br label %2397

2397:                                             ; preds = %2396, %1715
  br label %2398

2398:                                             ; preds = %2397, %1210
  br label %6159

2399:                                             ; preds = %205
  %2400 = load ptr, ptr %8, align 8, !tbaa !5
  %2401 = call i32 @lsame_(ptr noundef %2400, ptr noundef @.str.3)
  %2402 = icmp ne i32 %2401, 0
  br i1 %2402, label %2412, label %2403

2403:                                             ; preds = %2399
  %2404 = load ptr, ptr %8, align 8, !tbaa !5
  %2405 = call i32 @lsame_(ptr noundef %2404, ptr noundef @.str.4)
  %2406 = icmp ne i32 %2405, 0
  br i1 %2406, label %2412, label %2407

2407:                                             ; preds = %2403
  %2408 = load ptr, ptr %8, align 8, !tbaa !5
  %2409 = load i8, ptr %2408, align 1, !tbaa !58
  %2410 = zext i8 %2409 to i32
  %2411 = icmp eq i32 %2410, 49
  br i1 %2411, label %2412, label %4712

2412:                                             ; preds = %2407, %2403, %2399
  %2413 = load i32, ptr %29, align 4, !tbaa !9
  %2414 = icmp eq i32 %2413, 1
  br i1 %2414, label %2415, label %3261

2415:                                             ; preds = %2412
  %2416 = load ptr, ptr %11, align 8, !tbaa !5
  %2417 = load i32, ptr %2416, align 4, !tbaa !9
  %2418 = sdiv i32 %2417, 2
  store i32 %2418, ptr %21, align 4, !tbaa !9
  %2419 = load i32, ptr %30, align 4, !tbaa !9
  %2420 = icmp eq i32 %2419, 1
  br i1 %2420, label %2421, label %2847

2421:                                             ; preds = %2415
  %2422 = load i32, ptr %31, align 4, !tbaa !9
  %2423 = icmp eq i32 %2422, 0
  br i1 %2423, label %2424, label %2634

2424:                                             ; preds = %2421
  %2425 = load i32, ptr %21, align 4, !tbaa !9
  %2426 = sub nsw i32 %2425, 1
  store i32 %2426, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2427

2427:                                             ; preds = %2436, %2424
  %2428 = load i32, ptr %19, align 4, !tbaa !9
  %2429 = load i32, ptr %14, align 4, !tbaa !9
  %2430 = icmp sle i32 %2428, %2429
  br i1 %2430, label %2431, label %2439

2431:                                             ; preds = %2427
  %2432 = load ptr, ptr %13, align 8, !tbaa !5
  %2433 = load i32, ptr %19, align 4, !tbaa !9
  %2434 = sext i32 %2433 to i64
  %2435 = getelementptr inbounds float, ptr %2432, i64 %2434
  store float 0.000000e+00, ptr %2435, align 4, !tbaa !11
  br label %2436

2436:                                             ; preds = %2431
  %2437 = load i32, ptr %19, align 4, !tbaa !9
  %2438 = add nsw i32 %2437, 1
  store i32 %2438, ptr %19, align 4, !tbaa !9
  br label %2427, !llvm.loop !59

2439:                                             ; preds = %2427
  %2440 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2440, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %2441

2441:                                             ; preds = %2600, %2439
  %2442 = load i32, ptr %20, align 4, !tbaa !9
  %2443 = load i32, ptr %14, align 4, !tbaa !9
  %2444 = icmp sle i32 %2442, %2443
  br i1 %2444, label %2445, label %2603

2445:                                             ; preds = %2441
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %2446 = load i32, ptr %21, align 4, !tbaa !9
  %2447 = load i32, ptr %20, align 4, !tbaa !9
  %2448 = add nsw i32 %2446, %2447
  %2449 = sub nsw i32 %2448, 1
  store i32 %2449, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2450

2450:                                             ; preds = %2482, %2445
  %2451 = load i32, ptr %19, align 4, !tbaa !9
  %2452 = load i32, ptr %15, align 4, !tbaa !9
  %2453 = icmp sle i32 %2451, %2452
  br i1 %2453, label %2454, label %2485

2454:                                             ; preds = %2450
  %2455 = load ptr, ptr %12, align 8, !tbaa !5
  %2456 = load i32, ptr %19, align 4, !tbaa !9
  %2457 = load i32, ptr %20, align 4, !tbaa !9
  %2458 = load i32, ptr %28, align 4, !tbaa !9
  %2459 = mul nsw i32 %2457, %2458
  %2460 = add nsw i32 %2456, %2459
  %2461 = sext i32 %2460 to i64
  %2462 = getelementptr inbounds %struct.complex, ptr %2455, i64 %2461
  %2463 = call <2 x float> @Cf(ptr noundef %2462)
  store <2 x float> %2463, ptr %93, align 4
  %2464 = getelementptr inbounds { float, float }, ptr %93, i32 0, i32 0
  %2465 = load float, ptr %2464, align 4
  %2466 = getelementptr inbounds { float, float }, ptr %93, i32 0, i32 1
  %2467 = load float, ptr %2466, align 4
  %2468 = getelementptr inbounds { float, float }, ptr %94, i32 0, i32 0
  %2469 = getelementptr inbounds { float, float }, ptr %94, i32 0, i32 1
  store float %2465, ptr %2468, align 4
  store float %2467, ptr %2469, align 4
  %2470 = load <2 x float>, ptr %94, align 4
  %2471 = call float @cabsf(<2 x float> noundef %2470) #6
  store float %2471, ptr %27, align 4, !tbaa !11
  %2472 = load float, ptr %27, align 4, !tbaa !11
  %2473 = load float, ptr %23, align 4, !tbaa !11
  %2474 = fadd float %2473, %2472
  store float %2474, ptr %23, align 4, !tbaa !11
  %2475 = load float, ptr %27, align 4, !tbaa !11
  %2476 = load ptr, ptr %13, align 8, !tbaa !5
  %2477 = load i32, ptr %19, align 4, !tbaa !9
  %2478 = sext i32 %2477 to i64
  %2479 = getelementptr inbounds float, ptr %2476, i64 %2478
  %2480 = load float, ptr %2479, align 4, !tbaa !11
  %2481 = fadd float %2480, %2475
  store float %2481, ptr %2479, align 4, !tbaa !11
  br label %2482

2482:                                             ; preds = %2454
  %2483 = load i32, ptr %19, align 4, !tbaa !9
  %2484 = add nsw i32 %2483, 1
  store i32 %2484, ptr %19, align 4, !tbaa !9
  br label %2450, !llvm.loop !60

2485:                                             ; preds = %2450
  %2486 = load i32, ptr %19, align 4, !tbaa !9
  %2487 = load i32, ptr %20, align 4, !tbaa !9
  %2488 = load i32, ptr %28, align 4, !tbaa !9
  %2489 = mul nsw i32 %2487, %2488
  %2490 = add nsw i32 %2486, %2489
  store i32 %2490, ptr %15, align 4, !tbaa !9
  %2491 = load ptr, ptr %12, align 8, !tbaa !5
  %2492 = load i32, ptr %15, align 4, !tbaa !9
  %2493 = sext i32 %2492 to i64
  %2494 = getelementptr inbounds %struct.complex, ptr %2491, i64 %2493
  %2495 = getelementptr inbounds %struct.complex, ptr %2494, i32 0, i32 0
  %2496 = load float, ptr %2495, align 4, !tbaa !13
  store float %2496, ptr %17, align 4, !tbaa !11
  %2497 = load float, ptr %17, align 4, !tbaa !11
  %2498 = fcmp oge float %2497, 0.000000e+00
  br i1 %2498, label %2499, label %2501

2499:                                             ; preds = %2485
  %2500 = load float, ptr %17, align 4, !tbaa !11
  br label %2504

2501:                                             ; preds = %2485
  %2502 = load float, ptr %17, align 4, !tbaa !11
  %2503 = fneg float %2502
  br label %2504

2504:                                             ; preds = %2501, %2499
  %2505 = phi float [ %2500, %2499 ], [ %2503, %2501 ]
  store float %2505, ptr %27, align 4, !tbaa !11
  %2506 = load float, ptr %23, align 4, !tbaa !11
  %2507 = load float, ptr %27, align 4, !tbaa !11
  %2508 = fadd float %2506, %2507
  %2509 = load ptr, ptr %13, align 8, !tbaa !5
  %2510 = load i32, ptr %20, align 4, !tbaa !9
  %2511 = load i32, ptr %21, align 4, !tbaa !9
  %2512 = add nsw i32 %2510, %2511
  %2513 = sext i32 %2512 to i64
  %2514 = getelementptr inbounds float, ptr %2509, i64 %2513
  store float %2508, ptr %2514, align 4, !tbaa !11
  %2515 = load i32, ptr %19, align 4, !tbaa !9
  %2516 = load i32, ptr %21, align 4, !tbaa !9
  %2517 = load i32, ptr %21, align 4, !tbaa !9
  %2518 = add nsw i32 %2516, %2517
  %2519 = icmp eq i32 %2515, %2518
  br i1 %2519, label %2520, label %2521

2520:                                             ; preds = %2504
  br label %2604

2521:                                             ; preds = %2504
  %2522 = load i32, ptr %19, align 4, !tbaa !9
  %2523 = add nsw i32 %2522, 1
  store i32 %2523, ptr %19, align 4, !tbaa !9
  %2524 = load i32, ptr %19, align 4, !tbaa !9
  %2525 = load i32, ptr %20, align 4, !tbaa !9
  %2526 = load i32, ptr %28, align 4, !tbaa !9
  %2527 = mul nsw i32 %2525, %2526
  %2528 = add nsw i32 %2524, %2527
  store i32 %2528, ptr %15, align 4, !tbaa !9
  %2529 = load ptr, ptr %12, align 8, !tbaa !5
  %2530 = load i32, ptr %15, align 4, !tbaa !9
  %2531 = sext i32 %2530 to i64
  %2532 = getelementptr inbounds %struct.complex, ptr %2529, i64 %2531
  %2533 = getelementptr inbounds %struct.complex, ptr %2532, i32 0, i32 0
  %2534 = load float, ptr %2533, align 4, !tbaa !13
  store float %2534, ptr %17, align 4, !tbaa !11
  %2535 = load float, ptr %17, align 4, !tbaa !11
  %2536 = fcmp oge float %2535, 0.000000e+00
  br i1 %2536, label %2537, label %2539

2537:                                             ; preds = %2521
  %2538 = load float, ptr %17, align 4, !tbaa !11
  br label %2542

2539:                                             ; preds = %2521
  %2540 = load float, ptr %17, align 4, !tbaa !11
  %2541 = fneg float %2540
  br label %2542

2542:                                             ; preds = %2539, %2537
  %2543 = phi float [ %2538, %2537 ], [ %2541, %2539 ]
  store float %2543, ptr %27, align 4, !tbaa !11
  %2544 = load float, ptr %27, align 4, !tbaa !11
  %2545 = load ptr, ptr %13, align 8, !tbaa !5
  %2546 = load i32, ptr %20, align 4, !tbaa !9
  %2547 = sext i32 %2546 to i64
  %2548 = getelementptr inbounds float, ptr %2545, i64 %2547
  %2549 = load float, ptr %2548, align 4, !tbaa !11
  %2550 = fadd float %2549, %2544
  store float %2550, ptr %2548, align 4, !tbaa !11
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %2551 = load i32, ptr %21, align 4, !tbaa !9
  %2552 = sub nsw i32 %2551, 1
  store i32 %2552, ptr %15, align 4, !tbaa !9
  %2553 = load i32, ptr %20, align 4, !tbaa !9
  %2554 = add nsw i32 %2553, 1
  store i32 %2554, ptr %22, align 4, !tbaa !9
  br label %2555

2555:                                             ; preds = %2589, %2542
  %2556 = load i32, ptr %22, align 4, !tbaa !9
  %2557 = load i32, ptr %15, align 4, !tbaa !9
  %2558 = icmp sle i32 %2556, %2557
  br i1 %2558, label %2559, label %2592

2559:                                             ; preds = %2555
  %2560 = load i32, ptr %19, align 4, !tbaa !9
  %2561 = add nsw i32 %2560, 1
  store i32 %2561, ptr %19, align 4, !tbaa !9
  %2562 = load ptr, ptr %12, align 8, !tbaa !5
  %2563 = load i32, ptr %19, align 4, !tbaa !9
  %2564 = load i32, ptr %20, align 4, !tbaa !9
  %2565 = load i32, ptr %28, align 4, !tbaa !9
  %2566 = mul nsw i32 %2564, %2565
  %2567 = add nsw i32 %2563, %2566
  %2568 = sext i32 %2567 to i64
  %2569 = getelementptr inbounds %struct.complex, ptr %2562, i64 %2568
  %2570 = call <2 x float> @Cf(ptr noundef %2569)
  store <2 x float> %2570, ptr %95, align 4
  %2571 = getelementptr inbounds { float, float }, ptr %95, i32 0, i32 0
  %2572 = load float, ptr %2571, align 4
  %2573 = getelementptr inbounds { float, float }, ptr %95, i32 0, i32 1
  %2574 = load float, ptr %2573, align 4
  %2575 = getelementptr inbounds { float, float }, ptr %96, i32 0, i32 0
  %2576 = getelementptr inbounds { float, float }, ptr %96, i32 0, i32 1
  store float %2572, ptr %2575, align 4
  store float %2574, ptr %2576, align 4
  %2577 = load <2 x float>, ptr %96, align 4
  %2578 = call float @cabsf(<2 x float> noundef %2577) #6
  store float %2578, ptr %27, align 4, !tbaa !11
  %2579 = load float, ptr %27, align 4, !tbaa !11
  %2580 = load float, ptr %23, align 4, !tbaa !11
  %2581 = fadd float %2580, %2579
  store float %2581, ptr %23, align 4, !tbaa !11
  %2582 = load float, ptr %27, align 4, !tbaa !11
  %2583 = load ptr, ptr %13, align 8, !tbaa !5
  %2584 = load i32, ptr %22, align 4, !tbaa !9
  %2585 = sext i32 %2584 to i64
  %2586 = getelementptr inbounds float, ptr %2583, i64 %2585
  %2587 = load float, ptr %2586, align 4, !tbaa !11
  %2588 = fadd float %2587, %2582
  store float %2588, ptr %2586, align 4, !tbaa !11
  br label %2589

2589:                                             ; preds = %2559
  %2590 = load i32, ptr %22, align 4, !tbaa !9
  %2591 = add nsw i32 %2590, 1
  store i32 %2591, ptr %22, align 4, !tbaa !9
  br label %2555, !llvm.loop !61

2592:                                             ; preds = %2555
  %2593 = load float, ptr %23, align 4, !tbaa !11
  %2594 = load ptr, ptr %13, align 8, !tbaa !5
  %2595 = load i32, ptr %20, align 4, !tbaa !9
  %2596 = sext i32 %2595 to i64
  %2597 = getelementptr inbounds float, ptr %2594, i64 %2596
  %2598 = load float, ptr %2597, align 4, !tbaa !11
  %2599 = fadd float %2598, %2593
  store float %2599, ptr %2597, align 4, !tbaa !11
  br label %2600

2600:                                             ; preds = %2592
  %2601 = load i32, ptr %20, align 4, !tbaa !9
  %2602 = add nsw i32 %2601, 1
  store i32 %2602, ptr %20, align 4, !tbaa !9
  br label %2441, !llvm.loop !62

2603:                                             ; preds = %2441
  br label %2604

2604:                                             ; preds = %2603, %2520
  %2605 = load ptr, ptr %13, align 8, !tbaa !5
  %2606 = getelementptr inbounds float, ptr %2605, i64 0
  %2607 = load float, ptr %2606, align 4, !tbaa !11
  store float %2607, ptr %25, align 4, !tbaa !11
  %2608 = load ptr, ptr %11, align 8, !tbaa !5
  %2609 = load i32, ptr %2608, align 4, !tbaa !9
  %2610 = sub nsw i32 %2609, 1
  store i32 %2610, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %2611

2611:                                             ; preds = %2630, %2604
  %2612 = load i32, ptr %19, align 4, !tbaa !9
  %2613 = load i32, ptr %14, align 4, !tbaa !9
  %2614 = icmp sle i32 %2612, %2613
  br i1 %2614, label %2615, label %2633

2615:                                             ; preds = %2611
  %2616 = load ptr, ptr %13, align 8, !tbaa !5
  %2617 = load i32, ptr %19, align 4, !tbaa !9
  %2618 = sext i32 %2617 to i64
  %2619 = getelementptr inbounds float, ptr %2616, i64 %2618
  %2620 = load float, ptr %2619, align 4, !tbaa !11
  store float %2620, ptr %18, align 4, !tbaa !11
  %2621 = load float, ptr %25, align 4, !tbaa !11
  %2622 = load float, ptr %18, align 4, !tbaa !11
  %2623 = fcmp olt float %2621, %2622
  br i1 %2623, label %2627, label %2624

2624:                                             ; preds = %2615
  %2625 = call i32 @sisnan_(ptr noundef %18)
  %2626 = icmp ne i32 %2625, 0
  br i1 %2626, label %2627, label %2629

2627:                                             ; preds = %2624, %2615
  %2628 = load float, ptr %18, align 4, !tbaa !11
  store float %2628, ptr %25, align 4, !tbaa !11
  br label %2629

2629:                                             ; preds = %2627, %2624
  br label %2630

2630:                                             ; preds = %2629
  %2631 = load i32, ptr %19, align 4, !tbaa !9
  %2632 = add nsw i32 %2631, 1
  store i32 %2632, ptr %19, align 4, !tbaa !9
  br label %2611, !llvm.loop !63

2633:                                             ; preds = %2611
  br label %2846

2634:                                             ; preds = %2421
  %2635 = load i32, ptr %21, align 4, !tbaa !9
  %2636 = add nsw i32 %2635, 1
  store i32 %2636, ptr %21, align 4, !tbaa !9
  %2637 = load ptr, ptr %11, align 8, !tbaa !5
  %2638 = load i32, ptr %2637, align 4, !tbaa !9
  %2639 = sub nsw i32 %2638, 1
  store i32 %2639, ptr %14, align 4, !tbaa !9
  %2640 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2640, ptr %19, align 4, !tbaa !9
  br label %2641

2641:                                             ; preds = %2650, %2634
  %2642 = load i32, ptr %19, align 4, !tbaa !9
  %2643 = load i32, ptr %14, align 4, !tbaa !9
  %2644 = icmp sle i32 %2642, %2643
  br i1 %2644, label %2645, label %2653

2645:                                             ; preds = %2641
  %2646 = load ptr, ptr %13, align 8, !tbaa !5
  %2647 = load i32, ptr %19, align 4, !tbaa !9
  %2648 = sext i32 %2647 to i64
  %2649 = getelementptr inbounds float, ptr %2646, i64 %2648
  store float 0.000000e+00, ptr %2649, align 4, !tbaa !11
  br label %2650

2650:                                             ; preds = %2645
  %2651 = load i32, ptr %19, align 4, !tbaa !9
  %2652 = add nsw i32 %2651, 1
  store i32 %2652, ptr %19, align 4, !tbaa !9
  br label %2641, !llvm.loop !64

2653:                                             ; preds = %2641
  %2654 = load i32, ptr %21, align 4, !tbaa !9
  %2655 = sub nsw i32 %2654, 1
  store i32 %2655, ptr %20, align 4, !tbaa !9
  br label %2656

2656:                                             ; preds = %2813, %2653
  %2657 = load i32, ptr %20, align 4, !tbaa !9
  %2658 = icmp sge i32 %2657, 0
  br i1 %2658, label %2659, label %2816

2659:                                             ; preds = %2656
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %2660 = load i32, ptr %20, align 4, !tbaa !9
  %2661 = sub nsw i32 %2660, 2
  store i32 %2661, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2662

2662:                                             ; preds = %2696, %2659
  %2663 = load i32, ptr %19, align 4, !tbaa !9
  %2664 = load i32, ptr %14, align 4, !tbaa !9
  %2665 = icmp sle i32 %2663, %2664
  br i1 %2665, label %2666, label %2699

2666:                                             ; preds = %2662
  %2667 = load ptr, ptr %12, align 8, !tbaa !5
  %2668 = load i32, ptr %19, align 4, !tbaa !9
  %2669 = load i32, ptr %20, align 4, !tbaa !9
  %2670 = load i32, ptr %28, align 4, !tbaa !9
  %2671 = mul nsw i32 %2669, %2670
  %2672 = add nsw i32 %2668, %2671
  %2673 = sext i32 %2672 to i64
  %2674 = getelementptr inbounds %struct.complex, ptr %2667, i64 %2673
  %2675 = call <2 x float> @Cf(ptr noundef %2674)
  store <2 x float> %2675, ptr %97, align 4
  %2676 = getelementptr inbounds { float, float }, ptr %97, i32 0, i32 0
  %2677 = load float, ptr %2676, align 4
  %2678 = getelementptr inbounds { float, float }, ptr %97, i32 0, i32 1
  %2679 = load float, ptr %2678, align 4
  %2680 = getelementptr inbounds { float, float }, ptr %98, i32 0, i32 0
  %2681 = getelementptr inbounds { float, float }, ptr %98, i32 0, i32 1
  store float %2677, ptr %2680, align 4
  store float %2679, ptr %2681, align 4
  %2682 = load <2 x float>, ptr %98, align 4
  %2683 = call float @cabsf(<2 x float> noundef %2682) #6
  store float %2683, ptr %27, align 4, !tbaa !11
  %2684 = load float, ptr %27, align 4, !tbaa !11
  %2685 = load float, ptr %23, align 4, !tbaa !11
  %2686 = fadd float %2685, %2684
  store float %2686, ptr %23, align 4, !tbaa !11
  %2687 = load float, ptr %27, align 4, !tbaa !11
  %2688 = load ptr, ptr %13, align 8, !tbaa !5
  %2689 = load i32, ptr %19, align 4, !tbaa !9
  %2690 = load i32, ptr %21, align 4, !tbaa !9
  %2691 = add nsw i32 %2689, %2690
  %2692 = sext i32 %2691 to i64
  %2693 = getelementptr inbounds float, ptr %2688, i64 %2692
  %2694 = load float, ptr %2693, align 4, !tbaa !11
  %2695 = fadd float %2694, %2687
  store float %2695, ptr %2693, align 4, !tbaa !11
  br label %2696

2696:                                             ; preds = %2666
  %2697 = load i32, ptr %19, align 4, !tbaa !9
  %2698 = add nsw i32 %2697, 1
  store i32 %2698, ptr %19, align 4, !tbaa !9
  br label %2662, !llvm.loop !65

2699:                                             ; preds = %2662
  %2700 = load i32, ptr %20, align 4, !tbaa !9
  %2701 = icmp sgt i32 %2700, 0
  br i1 %2701, label %2702, label %2737

2702:                                             ; preds = %2699
  %2703 = load i32, ptr %19, align 4, !tbaa !9
  %2704 = load i32, ptr %20, align 4, !tbaa !9
  %2705 = load i32, ptr %28, align 4, !tbaa !9
  %2706 = mul nsw i32 %2704, %2705
  %2707 = add nsw i32 %2703, %2706
  store i32 %2707, ptr %14, align 4, !tbaa !9
  %2708 = load ptr, ptr %12, align 8, !tbaa !5
  %2709 = load i32, ptr %14, align 4, !tbaa !9
  %2710 = sext i32 %2709 to i64
  %2711 = getelementptr inbounds %struct.complex, ptr %2708, i64 %2710
  %2712 = getelementptr inbounds %struct.complex, ptr %2711, i32 0, i32 0
  %2713 = load float, ptr %2712, align 4, !tbaa !13
  store float %2713, ptr %17, align 4, !tbaa !11
  %2714 = load float, ptr %17, align 4, !tbaa !11
  %2715 = fcmp oge float %2714, 0.000000e+00
  br i1 %2715, label %2716, label %2718

2716:                                             ; preds = %2702
  %2717 = load float, ptr %17, align 4, !tbaa !11
  br label %2721

2718:                                             ; preds = %2702
  %2719 = load float, ptr %17, align 4, !tbaa !11
  %2720 = fneg float %2719
  br label %2721

2721:                                             ; preds = %2718, %2716
  %2722 = phi float [ %2717, %2716 ], [ %2720, %2718 ]
  store float %2722, ptr %27, align 4, !tbaa !11
  %2723 = load float, ptr %27, align 4, !tbaa !11
  %2724 = load float, ptr %23, align 4, !tbaa !11
  %2725 = fadd float %2724, %2723
  store float %2725, ptr %23, align 4, !tbaa !11
  %2726 = load float, ptr %23, align 4, !tbaa !11
  %2727 = load ptr, ptr %13, align 8, !tbaa !5
  %2728 = load i32, ptr %19, align 4, !tbaa !9
  %2729 = load i32, ptr %21, align 4, !tbaa !9
  %2730 = add nsw i32 %2728, %2729
  %2731 = sext i32 %2730 to i64
  %2732 = getelementptr inbounds float, ptr %2727, i64 %2731
  %2733 = load float, ptr %2732, align 4, !tbaa !11
  %2734 = fadd float %2733, %2726
  store float %2734, ptr %2732, align 4, !tbaa !11
  %2735 = load i32, ptr %19, align 4, !tbaa !9
  %2736 = add nsw i32 %2735, 1
  store i32 %2736, ptr %19, align 4, !tbaa !9
  br label %2737

2737:                                             ; preds = %2721, %2699
  %2738 = load i32, ptr %19, align 4, !tbaa !9
  %2739 = load i32, ptr %20, align 4, !tbaa !9
  %2740 = load i32, ptr %28, align 4, !tbaa !9
  %2741 = mul nsw i32 %2739, %2740
  %2742 = add nsw i32 %2738, %2741
  store i32 %2742, ptr %14, align 4, !tbaa !9
  %2743 = load ptr, ptr %12, align 8, !tbaa !5
  %2744 = load i32, ptr %14, align 4, !tbaa !9
  %2745 = sext i32 %2744 to i64
  %2746 = getelementptr inbounds %struct.complex, ptr %2743, i64 %2745
  %2747 = getelementptr inbounds %struct.complex, ptr %2746, i32 0, i32 0
  %2748 = load float, ptr %2747, align 4, !tbaa !13
  store float %2748, ptr %17, align 4, !tbaa !11
  %2749 = load float, ptr %17, align 4, !tbaa !11
  %2750 = fcmp oge float %2749, 0.000000e+00
  br i1 %2750, label %2751, label %2753

2751:                                             ; preds = %2737
  %2752 = load float, ptr %17, align 4, !tbaa !11
  br label %2756

2753:                                             ; preds = %2737
  %2754 = load float, ptr %17, align 4, !tbaa !11
  %2755 = fneg float %2754
  br label %2756

2756:                                             ; preds = %2753, %2751
  %2757 = phi float [ %2752, %2751 ], [ %2755, %2753 ]
  store float %2757, ptr %27, align 4, !tbaa !11
  %2758 = load float, ptr %27, align 4, !tbaa !11
  %2759 = load ptr, ptr %13, align 8, !tbaa !5
  %2760 = load i32, ptr %20, align 4, !tbaa !9
  %2761 = sext i32 %2760 to i64
  %2762 = getelementptr inbounds float, ptr %2759, i64 %2761
  store float %2758, ptr %2762, align 4, !tbaa !11
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %2763 = load ptr, ptr %11, align 8, !tbaa !5
  %2764 = load i32, ptr %2763, align 4, !tbaa !9
  %2765 = sub nsw i32 %2764, 1
  store i32 %2765, ptr %14, align 4, !tbaa !9
  %2766 = load i32, ptr %20, align 4, !tbaa !9
  %2767 = add nsw i32 %2766, 1
  store i32 %2767, ptr %22, align 4, !tbaa !9
  br label %2768

2768:                                             ; preds = %2802, %2756
  %2769 = load i32, ptr %22, align 4, !tbaa !9
  %2770 = load i32, ptr %14, align 4, !tbaa !9
  %2771 = icmp sle i32 %2769, %2770
  br i1 %2771, label %2772, label %2805

2772:                                             ; preds = %2768
  %2773 = load i32, ptr %19, align 4, !tbaa !9
  %2774 = add nsw i32 %2773, 1
  store i32 %2774, ptr %19, align 4, !tbaa !9
  %2775 = load ptr, ptr %12, align 8, !tbaa !5
  %2776 = load i32, ptr %19, align 4, !tbaa !9
  %2777 = load i32, ptr %20, align 4, !tbaa !9
  %2778 = load i32, ptr %28, align 4, !tbaa !9
  %2779 = mul nsw i32 %2777, %2778
  %2780 = add nsw i32 %2776, %2779
  %2781 = sext i32 %2780 to i64
  %2782 = getelementptr inbounds %struct.complex, ptr %2775, i64 %2781
  %2783 = call <2 x float> @Cf(ptr noundef %2782)
  store <2 x float> %2783, ptr %99, align 4
  %2784 = getelementptr inbounds { float, float }, ptr %99, i32 0, i32 0
  %2785 = load float, ptr %2784, align 4
  %2786 = getelementptr inbounds { float, float }, ptr %99, i32 0, i32 1
  %2787 = load float, ptr %2786, align 4
  %2788 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 0
  %2789 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 1
  store float %2785, ptr %2788, align 4
  store float %2787, ptr %2789, align 4
  %2790 = load <2 x float>, ptr %100, align 4
  %2791 = call float @cabsf(<2 x float> noundef %2790) #6
  store float %2791, ptr %27, align 4, !tbaa !11
  %2792 = load float, ptr %27, align 4, !tbaa !11
  %2793 = load float, ptr %23, align 4, !tbaa !11
  %2794 = fadd float %2793, %2792
  store float %2794, ptr %23, align 4, !tbaa !11
  %2795 = load float, ptr %27, align 4, !tbaa !11
  %2796 = load ptr, ptr %13, align 8, !tbaa !5
  %2797 = load i32, ptr %22, align 4, !tbaa !9
  %2798 = sext i32 %2797 to i64
  %2799 = getelementptr inbounds float, ptr %2796, i64 %2798
  %2800 = load float, ptr %2799, align 4, !tbaa !11
  %2801 = fadd float %2800, %2795
  store float %2801, ptr %2799, align 4, !tbaa !11
  br label %2802

2802:                                             ; preds = %2772
  %2803 = load i32, ptr %22, align 4, !tbaa !9
  %2804 = add nsw i32 %2803, 1
  store i32 %2804, ptr %22, align 4, !tbaa !9
  br label %2768, !llvm.loop !66

2805:                                             ; preds = %2768
  %2806 = load float, ptr %23, align 4, !tbaa !11
  %2807 = load ptr, ptr %13, align 8, !tbaa !5
  %2808 = load i32, ptr %20, align 4, !tbaa !9
  %2809 = sext i32 %2808 to i64
  %2810 = getelementptr inbounds float, ptr %2807, i64 %2809
  %2811 = load float, ptr %2810, align 4, !tbaa !11
  %2812 = fadd float %2811, %2806
  store float %2812, ptr %2810, align 4, !tbaa !11
  br label %2813

2813:                                             ; preds = %2805
  %2814 = load i32, ptr %20, align 4, !tbaa !9
  %2815 = add nsw i32 %2814, -1
  store i32 %2815, ptr %20, align 4, !tbaa !9
  br label %2656, !llvm.loop !67

2816:                                             ; preds = %2656
  %2817 = load ptr, ptr %13, align 8, !tbaa !5
  %2818 = getelementptr inbounds float, ptr %2817, i64 0
  %2819 = load float, ptr %2818, align 4, !tbaa !11
  store float %2819, ptr %25, align 4, !tbaa !11
  %2820 = load ptr, ptr %11, align 8, !tbaa !5
  %2821 = load i32, ptr %2820, align 4, !tbaa !9
  %2822 = sub nsw i32 %2821, 1
  store i32 %2822, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %2823

2823:                                             ; preds = %2842, %2816
  %2824 = load i32, ptr %19, align 4, !tbaa !9
  %2825 = load i32, ptr %14, align 4, !tbaa !9
  %2826 = icmp sle i32 %2824, %2825
  br i1 %2826, label %2827, label %2845

2827:                                             ; preds = %2823
  %2828 = load ptr, ptr %13, align 8, !tbaa !5
  %2829 = load i32, ptr %19, align 4, !tbaa !9
  %2830 = sext i32 %2829 to i64
  %2831 = getelementptr inbounds float, ptr %2828, i64 %2830
  %2832 = load float, ptr %2831, align 4, !tbaa !11
  store float %2832, ptr %18, align 4, !tbaa !11
  %2833 = load float, ptr %25, align 4, !tbaa !11
  %2834 = load float, ptr %18, align 4, !tbaa !11
  %2835 = fcmp olt float %2833, %2834
  br i1 %2835, label %2839, label %2836

2836:                                             ; preds = %2827
  %2837 = call i32 @sisnan_(ptr noundef %18)
  %2838 = icmp ne i32 %2837, 0
  br i1 %2838, label %2839, label %2841

2839:                                             ; preds = %2836, %2827
  %2840 = load float, ptr %18, align 4, !tbaa !11
  store float %2840, ptr %25, align 4, !tbaa !11
  br label %2841

2841:                                             ; preds = %2839, %2836
  br label %2842

2842:                                             ; preds = %2841
  %2843 = load i32, ptr %19, align 4, !tbaa !9
  %2844 = add nsw i32 %2843, 1
  store i32 %2844, ptr %19, align 4, !tbaa !9
  br label %2823, !llvm.loop !68

2845:                                             ; preds = %2823
  br label %2846

2846:                                             ; preds = %2845, %2633
  br label %3260

2847:                                             ; preds = %2415
  %2848 = load i32, ptr %31, align 4, !tbaa !9
  %2849 = icmp eq i32 %2848, 0
  br i1 %2849, label %2850, label %3053

2850:                                             ; preds = %2847
  %2851 = load i32, ptr %21, align 4, !tbaa !9
  %2852 = sub nsw i32 %2851, 1
  store i32 %2852, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2853

2853:                                             ; preds = %2862, %2850
  %2854 = load i32, ptr %19, align 4, !tbaa !9
  %2855 = load i32, ptr %14, align 4, !tbaa !9
  %2856 = icmp sle i32 %2854, %2855
  br i1 %2856, label %2857, label %2865

2857:                                             ; preds = %2853
  %2858 = load ptr, ptr %13, align 8, !tbaa !5
  %2859 = load i32, ptr %19, align 4, !tbaa !9
  %2860 = sext i32 %2859 to i64
  %2861 = getelementptr inbounds float, ptr %2858, i64 %2860
  store float 0.000000e+00, ptr %2861, align 4, !tbaa !11
  br label %2862

2862:                                             ; preds = %2857
  %2863 = load i32, ptr %19, align 4, !tbaa !9
  %2864 = add nsw i32 %2863, 1
  store i32 %2864, ptr %19, align 4, !tbaa !9
  br label %2853, !llvm.loop !69

2865:                                             ; preds = %2853
  %2866 = load i32, ptr %21, align 4, !tbaa !9
  %2867 = sub nsw i32 %2866, 1
  store i32 %2867, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %2868

2868:                                             ; preds = %3020, %2865
  %2869 = load i32, ptr %20, align 4, !tbaa !9
  %2870 = load i32, ptr %14, align 4, !tbaa !9
  %2871 = icmp sle i32 %2869, %2870
  br i1 %2871, label %2872, label %3023

2872:                                             ; preds = %2868
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %2873 = load i32, ptr %21, align 4, !tbaa !9
  %2874 = load i32, ptr %20, align 4, !tbaa !9
  %2875 = add nsw i32 %2873, %2874
  %2876 = sub nsw i32 %2875, 1
  store i32 %2876, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %2877

2877:                                             ; preds = %2909, %2872
  %2878 = load i32, ptr %19, align 4, !tbaa !9
  %2879 = load i32, ptr %15, align 4, !tbaa !9
  %2880 = icmp sle i32 %2878, %2879
  br i1 %2880, label %2881, label %2912

2881:                                             ; preds = %2877
  %2882 = load ptr, ptr %12, align 8, !tbaa !5
  %2883 = load i32, ptr %19, align 4, !tbaa !9
  %2884 = load i32, ptr %20, align 4, !tbaa !9
  %2885 = load i32, ptr %28, align 4, !tbaa !9
  %2886 = mul nsw i32 %2884, %2885
  %2887 = add nsw i32 %2883, %2886
  %2888 = sext i32 %2887 to i64
  %2889 = getelementptr inbounds %struct.complex, ptr %2882, i64 %2888
  %2890 = call <2 x float> @Cf(ptr noundef %2889)
  store <2 x float> %2890, ptr %101, align 4
  %2891 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 0
  %2892 = load float, ptr %2891, align 4
  %2893 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 1
  %2894 = load float, ptr %2893, align 4
  %2895 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 0
  %2896 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 1
  store float %2892, ptr %2895, align 4
  store float %2894, ptr %2896, align 4
  %2897 = load <2 x float>, ptr %102, align 4
  %2898 = call float @cabsf(<2 x float> noundef %2897) #6
  store float %2898, ptr %27, align 4, !tbaa !11
  %2899 = load float, ptr %27, align 4, !tbaa !11
  %2900 = load float, ptr %23, align 4, !tbaa !11
  %2901 = fadd float %2900, %2899
  store float %2901, ptr %23, align 4, !tbaa !11
  %2902 = load float, ptr %27, align 4, !tbaa !11
  %2903 = load ptr, ptr %13, align 8, !tbaa !5
  %2904 = load i32, ptr %19, align 4, !tbaa !9
  %2905 = sext i32 %2904 to i64
  %2906 = getelementptr inbounds float, ptr %2903, i64 %2905
  %2907 = load float, ptr %2906, align 4, !tbaa !11
  %2908 = fadd float %2907, %2902
  store float %2908, ptr %2906, align 4, !tbaa !11
  br label %2909

2909:                                             ; preds = %2881
  %2910 = load i32, ptr %19, align 4, !tbaa !9
  %2911 = add nsw i32 %2910, 1
  store i32 %2911, ptr %19, align 4, !tbaa !9
  br label %2877, !llvm.loop !70

2912:                                             ; preds = %2877
  %2913 = load i32, ptr %19, align 4, !tbaa !9
  %2914 = load i32, ptr %20, align 4, !tbaa !9
  %2915 = load i32, ptr %28, align 4, !tbaa !9
  %2916 = mul nsw i32 %2914, %2915
  %2917 = add nsw i32 %2913, %2916
  store i32 %2917, ptr %15, align 4, !tbaa !9
  %2918 = load ptr, ptr %12, align 8, !tbaa !5
  %2919 = load i32, ptr %15, align 4, !tbaa !9
  %2920 = sext i32 %2919 to i64
  %2921 = getelementptr inbounds %struct.complex, ptr %2918, i64 %2920
  %2922 = getelementptr inbounds %struct.complex, ptr %2921, i32 0, i32 0
  %2923 = load float, ptr %2922, align 4, !tbaa !13
  store float %2923, ptr %17, align 4, !tbaa !11
  %2924 = load float, ptr %17, align 4, !tbaa !11
  %2925 = fcmp oge float %2924, 0.000000e+00
  br i1 %2925, label %2926, label %2928

2926:                                             ; preds = %2912
  %2927 = load float, ptr %17, align 4, !tbaa !11
  br label %2931

2928:                                             ; preds = %2912
  %2929 = load float, ptr %17, align 4, !tbaa !11
  %2930 = fneg float %2929
  br label %2931

2931:                                             ; preds = %2928, %2926
  %2932 = phi float [ %2927, %2926 ], [ %2930, %2928 ]
  store float %2932, ptr %27, align 4, !tbaa !11
  %2933 = load float, ptr %23, align 4, !tbaa !11
  %2934 = load float, ptr %27, align 4, !tbaa !11
  %2935 = fadd float %2933, %2934
  %2936 = load ptr, ptr %13, align 8, !tbaa !5
  %2937 = load i32, ptr %20, align 4, !tbaa !9
  %2938 = load i32, ptr %21, align 4, !tbaa !9
  %2939 = add nsw i32 %2937, %2938
  %2940 = sext i32 %2939 to i64
  %2941 = getelementptr inbounds float, ptr %2936, i64 %2940
  store float %2935, ptr %2941, align 4, !tbaa !11
  %2942 = load i32, ptr %19, align 4, !tbaa !9
  %2943 = add nsw i32 %2942, 1
  store i32 %2943, ptr %19, align 4, !tbaa !9
  %2944 = load i32, ptr %19, align 4, !tbaa !9
  %2945 = load i32, ptr %20, align 4, !tbaa !9
  %2946 = load i32, ptr %28, align 4, !tbaa !9
  %2947 = mul nsw i32 %2945, %2946
  %2948 = add nsw i32 %2944, %2947
  store i32 %2948, ptr %15, align 4, !tbaa !9
  %2949 = load ptr, ptr %12, align 8, !tbaa !5
  %2950 = load i32, ptr %15, align 4, !tbaa !9
  %2951 = sext i32 %2950 to i64
  %2952 = getelementptr inbounds %struct.complex, ptr %2949, i64 %2951
  %2953 = getelementptr inbounds %struct.complex, ptr %2952, i32 0, i32 0
  %2954 = load float, ptr %2953, align 4, !tbaa !13
  store float %2954, ptr %17, align 4, !tbaa !11
  %2955 = load float, ptr %17, align 4, !tbaa !11
  %2956 = fcmp oge float %2955, 0.000000e+00
  br i1 %2956, label %2957, label %2959

2957:                                             ; preds = %2931
  %2958 = load float, ptr %17, align 4, !tbaa !11
  br label %2962

2959:                                             ; preds = %2931
  %2960 = load float, ptr %17, align 4, !tbaa !11
  %2961 = fneg float %2960
  br label %2962

2962:                                             ; preds = %2959, %2957
  %2963 = phi float [ %2958, %2957 ], [ %2961, %2959 ]
  store float %2963, ptr %27, align 4, !tbaa !11
  %2964 = load float, ptr %27, align 4, !tbaa !11
  %2965 = load ptr, ptr %13, align 8, !tbaa !5
  %2966 = load i32, ptr %20, align 4, !tbaa !9
  %2967 = sext i32 %2966 to i64
  %2968 = getelementptr inbounds float, ptr %2965, i64 %2967
  %2969 = load float, ptr %2968, align 4, !tbaa !11
  %2970 = fadd float %2969, %2964
  store float %2970, ptr %2968, align 4, !tbaa !11
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %2971 = load i32, ptr %21, align 4, !tbaa !9
  %2972 = sub nsw i32 %2971, 1
  store i32 %2972, ptr %15, align 4, !tbaa !9
  %2973 = load i32, ptr %20, align 4, !tbaa !9
  %2974 = add nsw i32 %2973, 1
  store i32 %2974, ptr %22, align 4, !tbaa !9
  br label %2975

2975:                                             ; preds = %3009, %2962
  %2976 = load i32, ptr %22, align 4, !tbaa !9
  %2977 = load i32, ptr %15, align 4, !tbaa !9
  %2978 = icmp sle i32 %2976, %2977
  br i1 %2978, label %2979, label %3012

2979:                                             ; preds = %2975
  %2980 = load i32, ptr %19, align 4, !tbaa !9
  %2981 = add nsw i32 %2980, 1
  store i32 %2981, ptr %19, align 4, !tbaa !9
  %2982 = load ptr, ptr %12, align 8, !tbaa !5
  %2983 = load i32, ptr %19, align 4, !tbaa !9
  %2984 = load i32, ptr %20, align 4, !tbaa !9
  %2985 = load i32, ptr %28, align 4, !tbaa !9
  %2986 = mul nsw i32 %2984, %2985
  %2987 = add nsw i32 %2983, %2986
  %2988 = sext i32 %2987 to i64
  %2989 = getelementptr inbounds %struct.complex, ptr %2982, i64 %2988
  %2990 = call <2 x float> @Cf(ptr noundef %2989)
  store <2 x float> %2990, ptr %103, align 4
  %2991 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 0
  %2992 = load float, ptr %2991, align 4
  %2993 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 1
  %2994 = load float, ptr %2993, align 4
  %2995 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 0
  %2996 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 1
  store float %2992, ptr %2995, align 4
  store float %2994, ptr %2996, align 4
  %2997 = load <2 x float>, ptr %104, align 4
  %2998 = call float @cabsf(<2 x float> noundef %2997) #6
  store float %2998, ptr %27, align 4, !tbaa !11
  %2999 = load float, ptr %27, align 4, !tbaa !11
  %3000 = load float, ptr %23, align 4, !tbaa !11
  %3001 = fadd float %3000, %2999
  store float %3001, ptr %23, align 4, !tbaa !11
  %3002 = load float, ptr %27, align 4, !tbaa !11
  %3003 = load ptr, ptr %13, align 8, !tbaa !5
  %3004 = load i32, ptr %22, align 4, !tbaa !9
  %3005 = sext i32 %3004 to i64
  %3006 = getelementptr inbounds float, ptr %3003, i64 %3005
  %3007 = load float, ptr %3006, align 4, !tbaa !11
  %3008 = fadd float %3007, %3002
  store float %3008, ptr %3006, align 4, !tbaa !11
  br label %3009

3009:                                             ; preds = %2979
  %3010 = load i32, ptr %22, align 4, !tbaa !9
  %3011 = add nsw i32 %3010, 1
  store i32 %3011, ptr %22, align 4, !tbaa !9
  br label %2975, !llvm.loop !71

3012:                                             ; preds = %2975
  %3013 = load float, ptr %23, align 4, !tbaa !11
  %3014 = load ptr, ptr %13, align 8, !tbaa !5
  %3015 = load i32, ptr %20, align 4, !tbaa !9
  %3016 = sext i32 %3015 to i64
  %3017 = getelementptr inbounds float, ptr %3014, i64 %3016
  %3018 = load float, ptr %3017, align 4, !tbaa !11
  %3019 = fadd float %3018, %3013
  store float %3019, ptr %3017, align 4, !tbaa !11
  br label %3020

3020:                                             ; preds = %3012
  %3021 = load i32, ptr %20, align 4, !tbaa !9
  %3022 = add nsw i32 %3021, 1
  store i32 %3022, ptr %20, align 4, !tbaa !9
  br label %2868, !llvm.loop !72

3023:                                             ; preds = %2868
  %3024 = load ptr, ptr %13, align 8, !tbaa !5
  %3025 = getelementptr inbounds float, ptr %3024, i64 0
  %3026 = load float, ptr %3025, align 4, !tbaa !11
  store float %3026, ptr %25, align 4, !tbaa !11
  %3027 = load ptr, ptr %11, align 8, !tbaa !5
  %3028 = load i32, ptr %3027, align 4, !tbaa !9
  %3029 = sub nsw i32 %3028, 1
  store i32 %3029, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %3030

3030:                                             ; preds = %3049, %3023
  %3031 = load i32, ptr %19, align 4, !tbaa !9
  %3032 = load i32, ptr %14, align 4, !tbaa !9
  %3033 = icmp sle i32 %3031, %3032
  br i1 %3033, label %3034, label %3052

3034:                                             ; preds = %3030
  %3035 = load ptr, ptr %13, align 8, !tbaa !5
  %3036 = load i32, ptr %19, align 4, !tbaa !9
  %3037 = sext i32 %3036 to i64
  %3038 = getelementptr inbounds float, ptr %3035, i64 %3037
  %3039 = load float, ptr %3038, align 4, !tbaa !11
  store float %3039, ptr %18, align 4, !tbaa !11
  %3040 = load float, ptr %25, align 4, !tbaa !11
  %3041 = load float, ptr %18, align 4, !tbaa !11
  %3042 = fcmp olt float %3040, %3041
  br i1 %3042, label %3046, label %3043

3043:                                             ; preds = %3034
  %3044 = call i32 @sisnan_(ptr noundef %18)
  %3045 = icmp ne i32 %3044, 0
  br i1 %3045, label %3046, label %3048

3046:                                             ; preds = %3043, %3034
  %3047 = load float, ptr %18, align 4, !tbaa !11
  store float %3047, ptr %25, align 4, !tbaa !11
  br label %3048

3048:                                             ; preds = %3046, %3043
  br label %3049

3049:                                             ; preds = %3048
  %3050 = load i32, ptr %19, align 4, !tbaa !9
  %3051 = add nsw i32 %3050, 1
  store i32 %3051, ptr %19, align 4, !tbaa !9
  br label %3030, !llvm.loop !73

3052:                                             ; preds = %3030
  br label %3259

3053:                                             ; preds = %2847
  %3054 = load ptr, ptr %11, align 8, !tbaa !5
  %3055 = load i32, ptr %3054, align 4, !tbaa !9
  %3056 = sub nsw i32 %3055, 1
  store i32 %3056, ptr %14, align 4, !tbaa !9
  %3057 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3057, ptr %19, align 4, !tbaa !9
  br label %3058

3058:                                             ; preds = %3067, %3053
  %3059 = load i32, ptr %19, align 4, !tbaa !9
  %3060 = load i32, ptr %14, align 4, !tbaa !9
  %3061 = icmp sle i32 %3059, %3060
  br i1 %3061, label %3062, label %3070

3062:                                             ; preds = %3058
  %3063 = load ptr, ptr %13, align 8, !tbaa !5
  %3064 = load i32, ptr %19, align 4, !tbaa !9
  %3065 = sext i32 %3064 to i64
  %3066 = getelementptr inbounds float, ptr %3063, i64 %3065
  store float 0.000000e+00, ptr %3066, align 4, !tbaa !11
  br label %3067

3067:                                             ; preds = %3062
  %3068 = load i32, ptr %19, align 4, !tbaa !9
  %3069 = add nsw i32 %3068, 1
  store i32 %3069, ptr %19, align 4, !tbaa !9
  br label %3058, !llvm.loop !74

3070:                                             ; preds = %3058
  %3071 = load i32, ptr %21, align 4, !tbaa !9
  %3072 = sub nsw i32 %3071, 1
  store i32 %3072, ptr %20, align 4, !tbaa !9
  br label %3073

3073:                                             ; preds = %3226, %3070
  %3074 = load i32, ptr %20, align 4, !tbaa !9
  %3075 = icmp sge i32 %3074, 0
  br i1 %3075, label %3076, label %3229

3076:                                             ; preds = %3073
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %3077 = load i32, ptr %20, align 4, !tbaa !9
  %3078 = sub nsw i32 %3077, 1
  store i32 %3078, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %3079

3079:                                             ; preds = %3113, %3076
  %3080 = load i32, ptr %19, align 4, !tbaa !9
  %3081 = load i32, ptr %14, align 4, !tbaa !9
  %3082 = icmp sle i32 %3080, %3081
  br i1 %3082, label %3083, label %3116

3083:                                             ; preds = %3079
  %3084 = load ptr, ptr %12, align 8, !tbaa !5
  %3085 = load i32, ptr %19, align 4, !tbaa !9
  %3086 = load i32, ptr %20, align 4, !tbaa !9
  %3087 = load i32, ptr %28, align 4, !tbaa !9
  %3088 = mul nsw i32 %3086, %3087
  %3089 = add nsw i32 %3085, %3088
  %3090 = sext i32 %3089 to i64
  %3091 = getelementptr inbounds %struct.complex, ptr %3084, i64 %3090
  %3092 = call <2 x float> @Cf(ptr noundef %3091)
  store <2 x float> %3092, ptr %105, align 4
  %3093 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 0
  %3094 = load float, ptr %3093, align 4
  %3095 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 1
  %3096 = load float, ptr %3095, align 4
  %3097 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 0
  %3098 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 1
  store float %3094, ptr %3097, align 4
  store float %3096, ptr %3098, align 4
  %3099 = load <2 x float>, ptr %106, align 4
  %3100 = call float @cabsf(<2 x float> noundef %3099) #6
  store float %3100, ptr %27, align 4, !tbaa !11
  %3101 = load float, ptr %27, align 4, !tbaa !11
  %3102 = load float, ptr %23, align 4, !tbaa !11
  %3103 = fadd float %3102, %3101
  store float %3103, ptr %23, align 4, !tbaa !11
  %3104 = load float, ptr %27, align 4, !tbaa !11
  %3105 = load ptr, ptr %13, align 8, !tbaa !5
  %3106 = load i32, ptr %19, align 4, !tbaa !9
  %3107 = load i32, ptr %21, align 4, !tbaa !9
  %3108 = add nsw i32 %3106, %3107
  %3109 = sext i32 %3108 to i64
  %3110 = getelementptr inbounds float, ptr %3105, i64 %3109
  %3111 = load float, ptr %3110, align 4, !tbaa !11
  %3112 = fadd float %3111, %3104
  store float %3112, ptr %3110, align 4, !tbaa !11
  br label %3113

3113:                                             ; preds = %3083
  %3114 = load i32, ptr %19, align 4, !tbaa !9
  %3115 = add nsw i32 %3114, 1
  store i32 %3115, ptr %19, align 4, !tbaa !9
  br label %3079, !llvm.loop !75

3116:                                             ; preds = %3079
  %3117 = load i32, ptr %19, align 4, !tbaa !9
  %3118 = load i32, ptr %20, align 4, !tbaa !9
  %3119 = load i32, ptr %28, align 4, !tbaa !9
  %3120 = mul nsw i32 %3118, %3119
  %3121 = add nsw i32 %3117, %3120
  store i32 %3121, ptr %14, align 4, !tbaa !9
  %3122 = load ptr, ptr %12, align 8, !tbaa !5
  %3123 = load i32, ptr %14, align 4, !tbaa !9
  %3124 = sext i32 %3123 to i64
  %3125 = getelementptr inbounds %struct.complex, ptr %3122, i64 %3124
  %3126 = getelementptr inbounds %struct.complex, ptr %3125, i32 0, i32 0
  %3127 = load float, ptr %3126, align 4, !tbaa !13
  store float %3127, ptr %17, align 4, !tbaa !11
  %3128 = load float, ptr %17, align 4, !tbaa !11
  %3129 = fcmp oge float %3128, 0.000000e+00
  br i1 %3129, label %3130, label %3132

3130:                                             ; preds = %3116
  %3131 = load float, ptr %17, align 4, !tbaa !11
  br label %3135

3132:                                             ; preds = %3116
  %3133 = load float, ptr %17, align 4, !tbaa !11
  %3134 = fneg float %3133
  br label %3135

3135:                                             ; preds = %3132, %3130
  %3136 = phi float [ %3131, %3130 ], [ %3134, %3132 ]
  store float %3136, ptr %27, align 4, !tbaa !11
  %3137 = load float, ptr %27, align 4, !tbaa !11
  %3138 = load float, ptr %23, align 4, !tbaa !11
  %3139 = fadd float %3138, %3137
  store float %3139, ptr %23, align 4, !tbaa !11
  %3140 = load float, ptr %23, align 4, !tbaa !11
  %3141 = load ptr, ptr %13, align 8, !tbaa !5
  %3142 = load i32, ptr %19, align 4, !tbaa !9
  %3143 = load i32, ptr %21, align 4, !tbaa !9
  %3144 = add nsw i32 %3142, %3143
  %3145 = sext i32 %3144 to i64
  %3146 = getelementptr inbounds float, ptr %3141, i64 %3145
  %3147 = load float, ptr %3146, align 4, !tbaa !11
  %3148 = fadd float %3147, %3140
  store float %3148, ptr %3146, align 4, !tbaa !11
  %3149 = load i32, ptr %19, align 4, !tbaa !9
  %3150 = add nsw i32 %3149, 1
  store i32 %3150, ptr %19, align 4, !tbaa !9
  %3151 = load i32, ptr %19, align 4, !tbaa !9
  %3152 = load i32, ptr %20, align 4, !tbaa !9
  %3153 = load i32, ptr %28, align 4, !tbaa !9
  %3154 = mul nsw i32 %3152, %3153
  %3155 = add nsw i32 %3151, %3154
  store i32 %3155, ptr %14, align 4, !tbaa !9
  %3156 = load ptr, ptr %12, align 8, !tbaa !5
  %3157 = load i32, ptr %14, align 4, !tbaa !9
  %3158 = sext i32 %3157 to i64
  %3159 = getelementptr inbounds %struct.complex, ptr %3156, i64 %3158
  %3160 = getelementptr inbounds %struct.complex, ptr %3159, i32 0, i32 0
  %3161 = load float, ptr %3160, align 4, !tbaa !13
  store float %3161, ptr %17, align 4, !tbaa !11
  %3162 = load float, ptr %17, align 4, !tbaa !11
  %3163 = fcmp oge float %3162, 0.000000e+00
  br i1 %3163, label %3164, label %3166

3164:                                             ; preds = %3135
  %3165 = load float, ptr %17, align 4, !tbaa !11
  br label %3169

3166:                                             ; preds = %3135
  %3167 = load float, ptr %17, align 4, !tbaa !11
  %3168 = fneg float %3167
  br label %3169

3169:                                             ; preds = %3166, %3164
  %3170 = phi float [ %3165, %3164 ], [ %3168, %3166 ]
  store float %3170, ptr %27, align 4, !tbaa !11
  %3171 = load float, ptr %27, align 4, !tbaa !11
  %3172 = load ptr, ptr %13, align 8, !tbaa !5
  %3173 = load i32, ptr %20, align 4, !tbaa !9
  %3174 = sext i32 %3173 to i64
  %3175 = getelementptr inbounds float, ptr %3172, i64 %3174
  store float %3171, ptr %3175, align 4, !tbaa !11
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %3176 = load ptr, ptr %11, align 8, !tbaa !5
  %3177 = load i32, ptr %3176, align 4, !tbaa !9
  %3178 = sub nsw i32 %3177, 1
  store i32 %3178, ptr %14, align 4, !tbaa !9
  %3179 = load i32, ptr %20, align 4, !tbaa !9
  %3180 = add nsw i32 %3179, 1
  store i32 %3180, ptr %22, align 4, !tbaa !9
  br label %3181

3181:                                             ; preds = %3215, %3169
  %3182 = load i32, ptr %22, align 4, !tbaa !9
  %3183 = load i32, ptr %14, align 4, !tbaa !9
  %3184 = icmp sle i32 %3182, %3183
  br i1 %3184, label %3185, label %3218

3185:                                             ; preds = %3181
  %3186 = load i32, ptr %19, align 4, !tbaa !9
  %3187 = add nsw i32 %3186, 1
  store i32 %3187, ptr %19, align 4, !tbaa !9
  %3188 = load ptr, ptr %12, align 8, !tbaa !5
  %3189 = load i32, ptr %19, align 4, !tbaa !9
  %3190 = load i32, ptr %20, align 4, !tbaa !9
  %3191 = load i32, ptr %28, align 4, !tbaa !9
  %3192 = mul nsw i32 %3190, %3191
  %3193 = add nsw i32 %3189, %3192
  %3194 = sext i32 %3193 to i64
  %3195 = getelementptr inbounds %struct.complex, ptr %3188, i64 %3194
  %3196 = call <2 x float> @Cf(ptr noundef %3195)
  store <2 x float> %3196, ptr %107, align 4
  %3197 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 0
  %3198 = load float, ptr %3197, align 4
  %3199 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 1
  %3200 = load float, ptr %3199, align 4
  %3201 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 0
  %3202 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 1
  store float %3198, ptr %3201, align 4
  store float %3200, ptr %3202, align 4
  %3203 = load <2 x float>, ptr %108, align 4
  %3204 = call float @cabsf(<2 x float> noundef %3203) #6
  store float %3204, ptr %27, align 4, !tbaa !11
  %3205 = load float, ptr %27, align 4, !tbaa !11
  %3206 = load float, ptr %23, align 4, !tbaa !11
  %3207 = fadd float %3206, %3205
  store float %3207, ptr %23, align 4, !tbaa !11
  %3208 = load float, ptr %27, align 4, !tbaa !11
  %3209 = load ptr, ptr %13, align 8, !tbaa !5
  %3210 = load i32, ptr %22, align 4, !tbaa !9
  %3211 = sext i32 %3210 to i64
  %3212 = getelementptr inbounds float, ptr %3209, i64 %3211
  %3213 = load float, ptr %3212, align 4, !tbaa !11
  %3214 = fadd float %3213, %3208
  store float %3214, ptr %3212, align 4, !tbaa !11
  br label %3215

3215:                                             ; preds = %3185
  %3216 = load i32, ptr %22, align 4, !tbaa !9
  %3217 = add nsw i32 %3216, 1
  store i32 %3217, ptr %22, align 4, !tbaa !9
  br label %3181, !llvm.loop !76

3218:                                             ; preds = %3181
  %3219 = load float, ptr %23, align 4, !tbaa !11
  %3220 = load ptr, ptr %13, align 8, !tbaa !5
  %3221 = load i32, ptr %20, align 4, !tbaa !9
  %3222 = sext i32 %3221 to i64
  %3223 = getelementptr inbounds float, ptr %3220, i64 %3222
  %3224 = load float, ptr %3223, align 4, !tbaa !11
  %3225 = fadd float %3224, %3219
  store float %3225, ptr %3223, align 4, !tbaa !11
  br label %3226

3226:                                             ; preds = %3218
  %3227 = load i32, ptr %20, align 4, !tbaa !9
  %3228 = add nsw i32 %3227, -1
  store i32 %3228, ptr %20, align 4, !tbaa !9
  br label %3073, !llvm.loop !77

3229:                                             ; preds = %3073
  %3230 = load ptr, ptr %13, align 8, !tbaa !5
  %3231 = getelementptr inbounds float, ptr %3230, i64 0
  %3232 = load float, ptr %3231, align 4, !tbaa !11
  store float %3232, ptr %25, align 4, !tbaa !11
  %3233 = load ptr, ptr %11, align 8, !tbaa !5
  %3234 = load i32, ptr %3233, align 4, !tbaa !9
  %3235 = sub nsw i32 %3234, 1
  store i32 %3235, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %3236

3236:                                             ; preds = %3255, %3229
  %3237 = load i32, ptr %19, align 4, !tbaa !9
  %3238 = load i32, ptr %14, align 4, !tbaa !9
  %3239 = icmp sle i32 %3237, %3238
  br i1 %3239, label %3240, label %3258

3240:                                             ; preds = %3236
  %3241 = load ptr, ptr %13, align 8, !tbaa !5
  %3242 = load i32, ptr %19, align 4, !tbaa !9
  %3243 = sext i32 %3242 to i64
  %3244 = getelementptr inbounds float, ptr %3241, i64 %3243
  %3245 = load float, ptr %3244, align 4, !tbaa !11
  store float %3245, ptr %18, align 4, !tbaa !11
  %3246 = load float, ptr %25, align 4, !tbaa !11
  %3247 = load float, ptr %18, align 4, !tbaa !11
  %3248 = fcmp olt float %3246, %3247
  br i1 %3248, label %3252, label %3249

3249:                                             ; preds = %3240
  %3250 = call i32 @sisnan_(ptr noundef %18)
  %3251 = icmp ne i32 %3250, 0
  br i1 %3251, label %3252, label %3254

3252:                                             ; preds = %3249, %3240
  %3253 = load float, ptr %18, align 4, !tbaa !11
  store float %3253, ptr %25, align 4, !tbaa !11
  br label %3254

3254:                                             ; preds = %3252, %3249
  br label %3255

3255:                                             ; preds = %3254
  %3256 = load i32, ptr %19, align 4, !tbaa !9
  %3257 = add nsw i32 %3256, 1
  store i32 %3257, ptr %19, align 4, !tbaa !9
  br label %3236, !llvm.loop !78

3258:                                             ; preds = %3236
  br label %3259

3259:                                             ; preds = %3258, %3052
  br label %3260

3260:                                             ; preds = %3259, %2846
  br label %4711

3261:                                             ; preds = %2412
  %3262 = load ptr, ptr %11, align 8, !tbaa !5
  %3263 = load i32, ptr %3262, align 4, !tbaa !9
  %3264 = sdiv i32 %3263, 2
  store i32 %3264, ptr %21, align 4, !tbaa !9
  %3265 = load i32, ptr %30, align 4, !tbaa !9
  %3266 = icmp eq i32 %3265, 1
  br i1 %3266, label %3267, label %3926

3267:                                             ; preds = %3261
  %3268 = load i32, ptr %31, align 4, !tbaa !9
  %3269 = icmp eq i32 %3268, 0
  br i1 %3269, label %3270, label %3598

3270:                                             ; preds = %3267
  %3271 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3271, ptr %26, align 4, !tbaa !9
  %3272 = load i32, ptr %21, align 4, !tbaa !9
  %3273 = add nsw i32 %3272, 1
  store i32 %3273, ptr %21, align 4, !tbaa !9
  %3274 = load ptr, ptr %11, align 8, !tbaa !5
  %3275 = load i32, ptr %3274, align 4, !tbaa !9
  %3276 = sub nsw i32 %3275, 1
  store i32 %3276, ptr %14, align 4, !tbaa !9
  %3277 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %3277, ptr %19, align 4, !tbaa !9
  br label %3278

3278:                                             ; preds = %3287, %3270
  %3279 = load i32, ptr %19, align 4, !tbaa !9
  %3280 = load i32, ptr %14, align 4, !tbaa !9
  %3281 = icmp sle i32 %3279, %3280
  br i1 %3281, label %3282, label %3290

3282:                                             ; preds = %3278
  %3283 = load ptr, ptr %13, align 8, !tbaa !5
  %3284 = load i32, ptr %19, align 4, !tbaa !9
  %3285 = sext i32 %3284 to i64
  %3286 = getelementptr inbounds float, ptr %3283, i64 %3285
  store float 0.000000e+00, ptr %3286, align 4, !tbaa !11
  br label %3287

3287:                                             ; preds = %3282
  %3288 = load i32, ptr %19, align 4, !tbaa !9
  %3289 = add nsw i32 %3288, 1
  store i32 %3289, ptr %19, align 4, !tbaa !9
  br label %3278, !llvm.loop !79

3290:                                             ; preds = %3278
  %3291 = load i32, ptr %26, align 4, !tbaa !9
  %3292 = sub nsw i32 %3291, 1
  store i32 %3292, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %3293

3293:                                             ; preds = %3343, %3290
  %3294 = load i32, ptr %20, align 4, !tbaa !9
  %3295 = load i32, ptr %14, align 4, !tbaa !9
  %3296 = icmp sle i32 %3294, %3295
  br i1 %3296, label %3297, label %3346

3297:                                             ; preds = %3293
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %3298 = load i32, ptr %21, align 4, !tbaa !9
  %3299 = sub nsw i32 %3298, 1
  store i32 %3299, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %3300

3300:                                             ; preds = %3334, %3297
  %3301 = load i32, ptr %19, align 4, !tbaa !9
  %3302 = load i32, ptr %15, align 4, !tbaa !9
  %3303 = icmp sle i32 %3301, %3302
  br i1 %3303, label %3304, label %3337

3304:                                             ; preds = %3300
  %3305 = load ptr, ptr %12, align 8, !tbaa !5
  %3306 = load i32, ptr %19, align 4, !tbaa !9
  %3307 = load i32, ptr %20, align 4, !tbaa !9
  %3308 = load i32, ptr %28, align 4, !tbaa !9
  %3309 = mul nsw i32 %3307, %3308
  %3310 = add nsw i32 %3306, %3309
  %3311 = sext i32 %3310 to i64
  %3312 = getelementptr inbounds %struct.complex, ptr %3305, i64 %3311
  %3313 = call <2 x float> @Cf(ptr noundef %3312)
  store <2 x float> %3313, ptr %109, align 4
  %3314 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 0
  %3315 = load float, ptr %3314, align 4
  %3316 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 1
  %3317 = load float, ptr %3316, align 4
  %3318 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 0
  %3319 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 1
  store float %3315, ptr %3318, align 4
  store float %3317, ptr %3319, align 4
  %3320 = load <2 x float>, ptr %110, align 4
  %3321 = call float @cabsf(<2 x float> noundef %3320) #6
  store float %3321, ptr %27, align 4, !tbaa !11
  %3322 = load float, ptr %27, align 4, !tbaa !11
  %3323 = load ptr, ptr %13, align 8, !tbaa !5
  %3324 = load i32, ptr %19, align 4, !tbaa !9
  %3325 = load i32, ptr %26, align 4, !tbaa !9
  %3326 = add nsw i32 %3324, %3325
  %3327 = sext i32 %3326 to i64
  %3328 = getelementptr inbounds float, ptr %3323, i64 %3327
  %3329 = load float, ptr %3328, align 4, !tbaa !11
  %3330 = fadd float %3329, %3322
  store float %3330, ptr %3328, align 4, !tbaa !11
  %3331 = load float, ptr %27, align 4, !tbaa !11
  %3332 = load float, ptr %23, align 4, !tbaa !11
  %3333 = fadd float %3332, %3331
  store float %3333, ptr %23, align 4, !tbaa !11
  br label %3334

3334:                                             ; preds = %3304
  %3335 = load i32, ptr %19, align 4, !tbaa !9
  %3336 = add nsw i32 %3335, 1
  store i32 %3336, ptr %19, align 4, !tbaa !9
  br label %3300, !llvm.loop !80

3337:                                             ; preds = %3300
  %3338 = load float, ptr %23, align 4, !tbaa !11
  %3339 = load ptr, ptr %13, align 8, !tbaa !5
  %3340 = load i32, ptr %20, align 4, !tbaa !9
  %3341 = sext i32 %3340 to i64
  %3342 = getelementptr inbounds float, ptr %3339, i64 %3341
  store float %3338, ptr %3342, align 4, !tbaa !11
  br label %3343

3343:                                             ; preds = %3337
  %3344 = load i32, ptr %20, align 4, !tbaa !9
  %3345 = add nsw i32 %3344, 1
  store i32 %3345, ptr %20, align 4, !tbaa !9
  br label %3293, !llvm.loop !81

3346:                                             ; preds = %3293
  %3347 = load i32, ptr %20, align 4, !tbaa !9
  %3348 = load i32, ptr %28, align 4, !tbaa !9
  %3349 = mul nsw i32 %3347, %3348
  store i32 %3349, ptr %14, align 4, !tbaa !9
  %3350 = load ptr, ptr %12, align 8, !tbaa !5
  %3351 = load i32, ptr %14, align 4, !tbaa !9
  %3352 = sext i32 %3351 to i64
  %3353 = getelementptr inbounds %struct.complex, ptr %3350, i64 %3352
  %3354 = getelementptr inbounds %struct.complex, ptr %3353, i32 0, i32 0
  %3355 = load float, ptr %3354, align 4, !tbaa !13
  store float %3355, ptr %17, align 4, !tbaa !11
  %3356 = load float, ptr %17, align 4, !tbaa !11
  %3357 = fcmp oge float %3356, 0.000000e+00
  br i1 %3357, label %3358, label %3360

3358:                                             ; preds = %3346
  %3359 = load float, ptr %17, align 4, !tbaa !11
  br label %3363

3360:                                             ; preds = %3346
  %3361 = load float, ptr %17, align 4, !tbaa !11
  %3362 = fneg float %3361
  br label %3363

3363:                                             ; preds = %3360, %3358
  %3364 = phi float [ %3359, %3358 ], [ %3362, %3360 ]
  store float %3364, ptr %23, align 4, !tbaa !11
  %3365 = load i32, ptr %21, align 4, !tbaa !9
  %3366 = sub nsw i32 %3365, 1
  store i32 %3366, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %3367

3367:                                             ; preds = %3401, %3363
  %3368 = load i32, ptr %19, align 4, !tbaa !9
  %3369 = load i32, ptr %14, align 4, !tbaa !9
  %3370 = icmp sle i32 %3368, %3369
  br i1 %3370, label %3371, label %3404

3371:                                             ; preds = %3367
  %3372 = load ptr, ptr %12, align 8, !tbaa !5
  %3373 = load i32, ptr %19, align 4, !tbaa !9
  %3374 = load i32, ptr %20, align 4, !tbaa !9
  %3375 = load i32, ptr %28, align 4, !tbaa !9
  %3376 = mul nsw i32 %3374, %3375
  %3377 = add nsw i32 %3373, %3376
  %3378 = sext i32 %3377 to i64
  %3379 = getelementptr inbounds %struct.complex, ptr %3372, i64 %3378
  %3380 = call <2 x float> @Cf(ptr noundef %3379)
  store <2 x float> %3380, ptr %111, align 4
  %3381 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 0
  %3382 = load float, ptr %3381, align 4
  %3383 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 1
  %3384 = load float, ptr %3383, align 4
  %3385 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 0
  %3386 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 1
  store float %3382, ptr %3385, align 4
  store float %3384, ptr %3386, align 4
  %3387 = load <2 x float>, ptr %112, align 4
  %3388 = call float @cabsf(<2 x float> noundef %3387) #6
  store float %3388, ptr %27, align 4, !tbaa !11
  %3389 = load float, ptr %27, align 4, !tbaa !11
  %3390 = load ptr, ptr %13, align 8, !tbaa !5
  %3391 = load i32, ptr %19, align 4, !tbaa !9
  %3392 = load i32, ptr %26, align 4, !tbaa !9
  %3393 = add nsw i32 %3391, %3392
  %3394 = sext i32 %3393 to i64
  %3395 = getelementptr inbounds float, ptr %3390, i64 %3394
  %3396 = load float, ptr %3395, align 4, !tbaa !11
  %3397 = fadd float %3396, %3389
  store float %3397, ptr %3395, align 4, !tbaa !11
  %3398 = load float, ptr %27, align 4, !tbaa !11
  %3399 = load float, ptr %23, align 4, !tbaa !11
  %3400 = fadd float %3399, %3398
  store float %3400, ptr %23, align 4, !tbaa !11
  br label %3401

3401:                                             ; preds = %3371
  %3402 = load i32, ptr %19, align 4, !tbaa !9
  %3403 = add nsw i32 %3402, 1
  store i32 %3403, ptr %19, align 4, !tbaa !9
  br label %3367, !llvm.loop !82

3404:                                             ; preds = %3367
  %3405 = load float, ptr %23, align 4, !tbaa !11
  %3406 = load ptr, ptr %13, align 8, !tbaa !5
  %3407 = load i32, ptr %20, align 4, !tbaa !9
  %3408 = sext i32 %3407 to i64
  %3409 = getelementptr inbounds float, ptr %3406, i64 %3408
  %3410 = load float, ptr %3409, align 4, !tbaa !11
  %3411 = fadd float %3410, %3405
  store float %3411, ptr %3409, align 4, !tbaa !11
  %3412 = load ptr, ptr %11, align 8, !tbaa !5
  %3413 = load i32, ptr %3412, align 4, !tbaa !9
  %3414 = sub nsw i32 %3413, 1
  store i32 %3414, ptr %14, align 4, !tbaa !9
  %3415 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3415, ptr %20, align 4, !tbaa !9
  br label %3416

3416:                                             ; preds = %3565, %3404
  %3417 = load i32, ptr %20, align 4, !tbaa !9
  %3418 = load i32, ptr %14, align 4, !tbaa !9
  %3419 = icmp sle i32 %3417, %3418
  br i1 %3419, label %3420, label %3568

3420:                                             ; preds = %3416
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %3421 = load i32, ptr %20, align 4, !tbaa !9
  %3422 = load i32, ptr %21, align 4, !tbaa !9
  %3423 = sub nsw i32 %3421, %3422
  %3424 = sub nsw i32 %3423, 1
  store i32 %3424, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %3425

3425:                                             ; preds = %3457, %3420
  %3426 = load i32, ptr %19, align 4, !tbaa !9
  %3427 = load i32, ptr %15, align 4, !tbaa !9
  %3428 = icmp sle i32 %3426, %3427
  br i1 %3428, label %3429, label %3460

3429:                                             ; preds = %3425
  %3430 = load ptr, ptr %12, align 8, !tbaa !5
  %3431 = load i32, ptr %19, align 4, !tbaa !9
  %3432 = load i32, ptr %20, align 4, !tbaa !9
  %3433 = load i32, ptr %28, align 4, !tbaa !9
  %3434 = mul nsw i32 %3432, %3433
  %3435 = add nsw i32 %3431, %3434
  %3436 = sext i32 %3435 to i64
  %3437 = getelementptr inbounds %struct.complex, ptr %3430, i64 %3436
  %3438 = call <2 x float> @Cf(ptr noundef %3437)
  store <2 x float> %3438, ptr %113, align 4
  %3439 = getelementptr inbounds { float, float }, ptr %113, i32 0, i32 0
  %3440 = load float, ptr %3439, align 4
  %3441 = getelementptr inbounds { float, float }, ptr %113, i32 0, i32 1
  %3442 = load float, ptr %3441, align 4
  %3443 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 0
  %3444 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 1
  store float %3440, ptr %3443, align 4
  store float %3442, ptr %3444, align 4
  %3445 = load <2 x float>, ptr %114, align 4
  %3446 = call float @cabsf(<2 x float> noundef %3445) #6
  store float %3446, ptr %27, align 4, !tbaa !11
  %3447 = load float, ptr %27, align 4, !tbaa !11
  %3448 = load ptr, ptr %13, align 8, !tbaa !5
  %3449 = load i32, ptr %19, align 4, !tbaa !9
  %3450 = sext i32 %3449 to i64
  %3451 = getelementptr inbounds float, ptr %3448, i64 %3450
  %3452 = load float, ptr %3451, align 4, !tbaa !11
  %3453 = fadd float %3452, %3447
  store float %3453, ptr %3451, align 4, !tbaa !11
  %3454 = load float, ptr %27, align 4, !tbaa !11
  %3455 = load float, ptr %23, align 4, !tbaa !11
  %3456 = fadd float %3455, %3454
  store float %3456, ptr %23, align 4, !tbaa !11
  br label %3457

3457:                                             ; preds = %3429
  %3458 = load i32, ptr %19, align 4, !tbaa !9
  %3459 = add nsw i32 %3458, 1
  store i32 %3459, ptr %19, align 4, !tbaa !9
  br label %3425, !llvm.loop !83

3460:                                             ; preds = %3425
  %3461 = load i32, ptr %19, align 4, !tbaa !9
  %3462 = load i32, ptr %20, align 4, !tbaa !9
  %3463 = load i32, ptr %28, align 4, !tbaa !9
  %3464 = mul nsw i32 %3462, %3463
  %3465 = add nsw i32 %3461, %3464
  store i32 %3465, ptr %15, align 4, !tbaa !9
  %3466 = load ptr, ptr %12, align 8, !tbaa !5
  %3467 = load i32, ptr %15, align 4, !tbaa !9
  %3468 = sext i32 %3467 to i64
  %3469 = getelementptr inbounds %struct.complex, ptr %3466, i64 %3468
  %3470 = getelementptr inbounds %struct.complex, ptr %3469, i32 0, i32 0
  %3471 = load float, ptr %3470, align 4, !tbaa !13
  store float %3471, ptr %17, align 4, !tbaa !11
  %3472 = load float, ptr %17, align 4, !tbaa !11
  %3473 = fcmp oge float %3472, 0.000000e+00
  br i1 %3473, label %3474, label %3476

3474:                                             ; preds = %3460
  %3475 = load float, ptr %17, align 4, !tbaa !11
  br label %3479

3476:                                             ; preds = %3460
  %3477 = load float, ptr %17, align 4, !tbaa !11
  %3478 = fneg float %3477
  br label %3479

3479:                                             ; preds = %3476, %3474
  %3480 = phi float [ %3475, %3474 ], [ %3478, %3476 ]
  store float %3480, ptr %27, align 4, !tbaa !11
  %3481 = load float, ptr %27, align 4, !tbaa !11
  %3482 = load float, ptr %23, align 4, !tbaa !11
  %3483 = fadd float %3482, %3481
  store float %3483, ptr %23, align 4, !tbaa !11
  %3484 = load float, ptr %23, align 4, !tbaa !11
  %3485 = load ptr, ptr %13, align 8, !tbaa !5
  %3486 = load i32, ptr %20, align 4, !tbaa !9
  %3487 = load i32, ptr %21, align 4, !tbaa !9
  %3488 = sub nsw i32 %3486, %3487
  %3489 = sext i32 %3488 to i64
  %3490 = getelementptr inbounds float, ptr %3485, i64 %3489
  %3491 = load float, ptr %3490, align 4, !tbaa !11
  %3492 = fadd float %3491, %3484
  store float %3492, ptr %3490, align 4, !tbaa !11
  %3493 = load i32, ptr %19, align 4, !tbaa !9
  %3494 = add nsw i32 %3493, 1
  store i32 %3494, ptr %19, align 4, !tbaa !9
  %3495 = load i32, ptr %19, align 4, !tbaa !9
  %3496 = load i32, ptr %20, align 4, !tbaa !9
  %3497 = load i32, ptr %28, align 4, !tbaa !9
  %3498 = mul nsw i32 %3496, %3497
  %3499 = add nsw i32 %3495, %3498
  store i32 %3499, ptr %15, align 4, !tbaa !9
  %3500 = load ptr, ptr %12, align 8, !tbaa !5
  %3501 = load i32, ptr %15, align 4, !tbaa !9
  %3502 = sext i32 %3501 to i64
  %3503 = getelementptr inbounds %struct.complex, ptr %3500, i64 %3502
  %3504 = getelementptr inbounds %struct.complex, ptr %3503, i32 0, i32 0
  %3505 = load float, ptr %3504, align 4, !tbaa !13
  store float %3505, ptr %17, align 4, !tbaa !11
  %3506 = load float, ptr %17, align 4, !tbaa !11
  %3507 = fcmp oge float %3506, 0.000000e+00
  br i1 %3507, label %3508, label %3510

3508:                                             ; preds = %3479
  %3509 = load float, ptr %17, align 4, !tbaa !11
  br label %3513

3510:                                             ; preds = %3479
  %3511 = load float, ptr %17, align 4, !tbaa !11
  %3512 = fneg float %3511
  br label %3513

3513:                                             ; preds = %3510, %3508
  %3514 = phi float [ %3509, %3508 ], [ %3512, %3510 ]
  store float %3514, ptr %23, align 4, !tbaa !11
  %3515 = load ptr, ptr %11, align 8, !tbaa !5
  %3516 = load i32, ptr %3515, align 4, !tbaa !9
  %3517 = sub nsw i32 %3516, 1
  store i32 %3517, ptr %15, align 4, !tbaa !9
  %3518 = load i32, ptr %20, align 4, !tbaa !9
  %3519 = add nsw i32 %3518, 1
  store i32 %3519, ptr %22, align 4, !tbaa !9
  br label %3520

3520:                                             ; preds = %3554, %3513
  %3521 = load i32, ptr %22, align 4, !tbaa !9
  %3522 = load i32, ptr %15, align 4, !tbaa !9
  %3523 = icmp sle i32 %3521, %3522
  br i1 %3523, label %3524, label %3557

3524:                                             ; preds = %3520
  %3525 = load i32, ptr %19, align 4, !tbaa !9
  %3526 = add nsw i32 %3525, 1
  store i32 %3526, ptr %19, align 4, !tbaa !9
  %3527 = load ptr, ptr %12, align 8, !tbaa !5
  %3528 = load i32, ptr %19, align 4, !tbaa !9
  %3529 = load i32, ptr %20, align 4, !tbaa !9
  %3530 = load i32, ptr %28, align 4, !tbaa !9
  %3531 = mul nsw i32 %3529, %3530
  %3532 = add nsw i32 %3528, %3531
  %3533 = sext i32 %3532 to i64
  %3534 = getelementptr inbounds %struct.complex, ptr %3527, i64 %3533
  %3535 = call <2 x float> @Cf(ptr noundef %3534)
  store <2 x float> %3535, ptr %115, align 4
  %3536 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 0
  %3537 = load float, ptr %3536, align 4
  %3538 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 1
  %3539 = load float, ptr %3538, align 4
  %3540 = getelementptr inbounds { float, float }, ptr %116, i32 0, i32 0
  %3541 = getelementptr inbounds { float, float }, ptr %116, i32 0, i32 1
  store float %3537, ptr %3540, align 4
  store float %3539, ptr %3541, align 4
  %3542 = load <2 x float>, ptr %116, align 4
  %3543 = call float @cabsf(<2 x float> noundef %3542) #6
  store float %3543, ptr %27, align 4, !tbaa !11
  %3544 = load float, ptr %27, align 4, !tbaa !11
  %3545 = load ptr, ptr %13, align 8, !tbaa !5
  %3546 = load i32, ptr %22, align 4, !tbaa !9
  %3547 = sext i32 %3546 to i64
  %3548 = getelementptr inbounds float, ptr %3545, i64 %3547
  %3549 = load float, ptr %3548, align 4, !tbaa !11
  %3550 = fadd float %3549, %3544
  store float %3550, ptr %3548, align 4, !tbaa !11
  %3551 = load float, ptr %27, align 4, !tbaa !11
  %3552 = load float, ptr %23, align 4, !tbaa !11
  %3553 = fadd float %3552, %3551
  store float %3553, ptr %23, align 4, !tbaa !11
  br label %3554

3554:                                             ; preds = %3524
  %3555 = load i32, ptr %22, align 4, !tbaa !9
  %3556 = add nsw i32 %3555, 1
  store i32 %3556, ptr %22, align 4, !tbaa !9
  br label %3520, !llvm.loop !84

3557:                                             ; preds = %3520
  %3558 = load float, ptr %23, align 4, !tbaa !11
  %3559 = load ptr, ptr %13, align 8, !tbaa !5
  %3560 = load i32, ptr %20, align 4, !tbaa !9
  %3561 = sext i32 %3560 to i64
  %3562 = getelementptr inbounds float, ptr %3559, i64 %3561
  %3563 = load float, ptr %3562, align 4, !tbaa !11
  %3564 = fadd float %3563, %3558
  store float %3564, ptr %3562, align 4, !tbaa !11
  br label %3565

3565:                                             ; preds = %3557
  %3566 = load i32, ptr %20, align 4, !tbaa !9
  %3567 = add nsw i32 %3566, 1
  store i32 %3567, ptr %20, align 4, !tbaa !9
  br label %3416, !llvm.loop !85

3568:                                             ; preds = %3416
  %3569 = load ptr, ptr %13, align 8, !tbaa !5
  %3570 = getelementptr inbounds float, ptr %3569, i64 0
  %3571 = load float, ptr %3570, align 4, !tbaa !11
  store float %3571, ptr %25, align 4, !tbaa !11
  %3572 = load ptr, ptr %11, align 8, !tbaa !5
  %3573 = load i32, ptr %3572, align 4, !tbaa !9
  %3574 = sub nsw i32 %3573, 1
  store i32 %3574, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %3575

3575:                                             ; preds = %3594, %3568
  %3576 = load i32, ptr %19, align 4, !tbaa !9
  %3577 = load i32, ptr %14, align 4, !tbaa !9
  %3578 = icmp sle i32 %3576, %3577
  br i1 %3578, label %3579, label %3597

3579:                                             ; preds = %3575
  %3580 = load ptr, ptr %13, align 8, !tbaa !5
  %3581 = load i32, ptr %19, align 4, !tbaa !9
  %3582 = sext i32 %3581 to i64
  %3583 = getelementptr inbounds float, ptr %3580, i64 %3582
  %3584 = load float, ptr %3583, align 4, !tbaa !11
  store float %3584, ptr %18, align 4, !tbaa !11
  %3585 = load float, ptr %25, align 4, !tbaa !11
  %3586 = load float, ptr %18, align 4, !tbaa !11
  %3587 = fcmp olt float %3585, %3586
  br i1 %3587, label %3591, label %3588

3588:                                             ; preds = %3579
  %3589 = call i32 @sisnan_(ptr noundef %18)
  %3590 = icmp ne i32 %3589, 0
  br i1 %3590, label %3591, label %3593

3591:                                             ; preds = %3588, %3579
  %3592 = load float, ptr %18, align 4, !tbaa !11
  store float %3592, ptr %25, align 4, !tbaa !11
  br label %3593

3593:                                             ; preds = %3591, %3588
  br label %3594

3594:                                             ; preds = %3593
  %3595 = load i32, ptr %19, align 4, !tbaa !9
  %3596 = add nsw i32 %3595, 1
  store i32 %3596, ptr %19, align 4, !tbaa !9
  br label %3575, !llvm.loop !86

3597:                                             ; preds = %3575
  br label %3925

3598:                                             ; preds = %3267
  %3599 = load i32, ptr %21, align 4, !tbaa !9
  %3600 = add nsw i32 %3599, 1
  store i32 %3600, ptr %21, align 4, !tbaa !9
  %3601 = load ptr, ptr %11, align 8, !tbaa !5
  %3602 = load i32, ptr %3601, align 4, !tbaa !9
  %3603 = sub nsw i32 %3602, 1
  store i32 %3603, ptr %14, align 4, !tbaa !9
  %3604 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3604, ptr %19, align 4, !tbaa !9
  br label %3605

3605:                                             ; preds = %3614, %3598
  %3606 = load i32, ptr %19, align 4, !tbaa !9
  %3607 = load i32, ptr %14, align 4, !tbaa !9
  %3608 = icmp sle i32 %3606, %3607
  br i1 %3608, label %3609, label %3617

3609:                                             ; preds = %3605
  %3610 = load ptr, ptr %13, align 8, !tbaa !5
  %3611 = load i32, ptr %19, align 4, !tbaa !9
  %3612 = sext i32 %3611 to i64
  %3613 = getelementptr inbounds float, ptr %3610, i64 %3612
  store float 0.000000e+00, ptr %3613, align 4, !tbaa !11
  br label %3614

3614:                                             ; preds = %3609
  %3615 = load i32, ptr %19, align 4, !tbaa !9
  %3616 = add nsw i32 %3615, 1
  store i32 %3616, ptr %19, align 4, !tbaa !9
  br label %3605, !llvm.loop !87

3617:                                             ; preds = %3605
  %3618 = load i32, ptr %21, align 4, !tbaa !9
  %3619 = sub nsw i32 %3618, 2
  store i32 %3619, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %3620

3620:                                             ; preds = %3768, %3617
  %3621 = load i32, ptr %20, align 4, !tbaa !9
  %3622 = load i32, ptr %14, align 4, !tbaa !9
  %3623 = icmp sle i32 %3621, %3622
  br i1 %3623, label %3624, label %3771

3624:                                             ; preds = %3620
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %3625 = load i32, ptr %20, align 4, !tbaa !9
  %3626 = sub nsw i32 %3625, 1
  store i32 %3626, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %3627

3627:                                             ; preds = %3659, %3624
  %3628 = load i32, ptr %19, align 4, !tbaa !9
  %3629 = load i32, ptr %15, align 4, !tbaa !9
  %3630 = icmp sle i32 %3628, %3629
  br i1 %3630, label %3631, label %3662

3631:                                             ; preds = %3627
  %3632 = load ptr, ptr %12, align 8, !tbaa !5
  %3633 = load i32, ptr %19, align 4, !tbaa !9
  %3634 = load i32, ptr %20, align 4, !tbaa !9
  %3635 = load i32, ptr %28, align 4, !tbaa !9
  %3636 = mul nsw i32 %3634, %3635
  %3637 = add nsw i32 %3633, %3636
  %3638 = sext i32 %3637 to i64
  %3639 = getelementptr inbounds %struct.complex, ptr %3632, i64 %3638
  %3640 = call <2 x float> @Cf(ptr noundef %3639)
  store <2 x float> %3640, ptr %117, align 4
  %3641 = getelementptr inbounds { float, float }, ptr %117, i32 0, i32 0
  %3642 = load float, ptr %3641, align 4
  %3643 = getelementptr inbounds { float, float }, ptr %117, i32 0, i32 1
  %3644 = load float, ptr %3643, align 4
  %3645 = getelementptr inbounds { float, float }, ptr %118, i32 0, i32 0
  %3646 = getelementptr inbounds { float, float }, ptr %118, i32 0, i32 1
  store float %3642, ptr %3645, align 4
  store float %3644, ptr %3646, align 4
  %3647 = load <2 x float>, ptr %118, align 4
  %3648 = call float @cabsf(<2 x float> noundef %3647) #6
  store float %3648, ptr %27, align 4, !tbaa !11
  %3649 = load float, ptr %27, align 4, !tbaa !11
  %3650 = load ptr, ptr %13, align 8, !tbaa !5
  %3651 = load i32, ptr %19, align 4, !tbaa !9
  %3652 = sext i32 %3651 to i64
  %3653 = getelementptr inbounds float, ptr %3650, i64 %3652
  %3654 = load float, ptr %3653, align 4, !tbaa !11
  %3655 = fadd float %3654, %3649
  store float %3655, ptr %3653, align 4, !tbaa !11
  %3656 = load float, ptr %27, align 4, !tbaa !11
  %3657 = load float, ptr %23, align 4, !tbaa !11
  %3658 = fadd float %3657, %3656
  store float %3658, ptr %23, align 4, !tbaa !11
  br label %3659

3659:                                             ; preds = %3631
  %3660 = load i32, ptr %19, align 4, !tbaa !9
  %3661 = add nsw i32 %3660, 1
  store i32 %3661, ptr %19, align 4, !tbaa !9
  br label %3627, !llvm.loop !88

3662:                                             ; preds = %3627
  %3663 = load i32, ptr %19, align 4, !tbaa !9
  %3664 = load i32, ptr %20, align 4, !tbaa !9
  %3665 = load i32, ptr %28, align 4, !tbaa !9
  %3666 = mul nsw i32 %3664, %3665
  %3667 = add nsw i32 %3663, %3666
  store i32 %3667, ptr %15, align 4, !tbaa !9
  %3668 = load ptr, ptr %12, align 8, !tbaa !5
  %3669 = load i32, ptr %15, align 4, !tbaa !9
  %3670 = sext i32 %3669 to i64
  %3671 = getelementptr inbounds %struct.complex, ptr %3668, i64 %3670
  %3672 = getelementptr inbounds %struct.complex, ptr %3671, i32 0, i32 0
  %3673 = load float, ptr %3672, align 4, !tbaa !13
  store float %3673, ptr %17, align 4, !tbaa !11
  %3674 = load float, ptr %17, align 4, !tbaa !11
  %3675 = fcmp oge float %3674, 0.000000e+00
  br i1 %3675, label %3676, label %3678

3676:                                             ; preds = %3662
  %3677 = load float, ptr %17, align 4, !tbaa !11
  br label %3681

3678:                                             ; preds = %3662
  %3679 = load float, ptr %17, align 4, !tbaa !11
  %3680 = fneg float %3679
  br label %3681

3681:                                             ; preds = %3678, %3676
  %3682 = phi float [ %3677, %3676 ], [ %3680, %3678 ]
  store float %3682, ptr %27, align 4, !tbaa !11
  %3683 = load float, ptr %27, align 4, !tbaa !11
  %3684 = load float, ptr %23, align 4, !tbaa !11
  %3685 = fadd float %3684, %3683
  store float %3685, ptr %23, align 4, !tbaa !11
  %3686 = load float, ptr %23, align 4, !tbaa !11
  %3687 = load ptr, ptr %13, align 8, !tbaa !5
  %3688 = load i32, ptr %20, align 4, !tbaa !9
  %3689 = sext i32 %3688 to i64
  %3690 = getelementptr inbounds float, ptr %3687, i64 %3689
  store float %3686, ptr %3690, align 4, !tbaa !11
  %3691 = load i32, ptr %19, align 4, !tbaa !9
  %3692 = add nsw i32 %3691, 1
  store i32 %3692, ptr %19, align 4, !tbaa !9
  %3693 = load i32, ptr %19, align 4, !tbaa !9
  %3694 = load i32, ptr %20, align 4, !tbaa !9
  %3695 = load i32, ptr %28, align 4, !tbaa !9
  %3696 = mul nsw i32 %3694, %3695
  %3697 = add nsw i32 %3693, %3696
  store i32 %3697, ptr %15, align 4, !tbaa !9
  %3698 = load ptr, ptr %12, align 8, !tbaa !5
  %3699 = load i32, ptr %15, align 4, !tbaa !9
  %3700 = sext i32 %3699 to i64
  %3701 = getelementptr inbounds %struct.complex, ptr %3698, i64 %3700
  %3702 = getelementptr inbounds %struct.complex, ptr %3701, i32 0, i32 0
  %3703 = load float, ptr %3702, align 4, !tbaa !13
  store float %3703, ptr %17, align 4, !tbaa !11
  %3704 = load float, ptr %17, align 4, !tbaa !11
  %3705 = fcmp oge float %3704, 0.000000e+00
  br i1 %3705, label %3706, label %3708

3706:                                             ; preds = %3681
  %3707 = load float, ptr %17, align 4, !tbaa !11
  br label %3711

3708:                                             ; preds = %3681
  %3709 = load float, ptr %17, align 4, !tbaa !11
  %3710 = fneg float %3709
  br label %3711

3711:                                             ; preds = %3708, %3706
  %3712 = phi float [ %3707, %3706 ], [ %3710, %3708 ]
  store float %3712, ptr %27, align 4, !tbaa !11
  %3713 = load float, ptr %27, align 4, !tbaa !11
  store float %3713, ptr %23, align 4, !tbaa !11
  %3714 = load ptr, ptr %11, align 8, !tbaa !5
  %3715 = load i32, ptr %3714, align 4, !tbaa !9
  %3716 = sub nsw i32 %3715, 1
  store i32 %3716, ptr %15, align 4, !tbaa !9
  %3717 = load i32, ptr %21, align 4, !tbaa !9
  %3718 = load i32, ptr %20, align 4, !tbaa !9
  %3719 = add nsw i32 %3717, %3718
  %3720 = add nsw i32 %3719, 1
  store i32 %3720, ptr %22, align 4, !tbaa !9
  br label %3721

3721:                                             ; preds = %3755, %3711
  %3722 = load i32, ptr %22, align 4, !tbaa !9
  %3723 = load i32, ptr %15, align 4, !tbaa !9
  %3724 = icmp sle i32 %3722, %3723
  br i1 %3724, label %3725, label %3758

3725:                                             ; preds = %3721
  %3726 = load i32, ptr %19, align 4, !tbaa !9
  %3727 = add nsw i32 %3726, 1
  store i32 %3727, ptr %19, align 4, !tbaa !9
  %3728 = load ptr, ptr %12, align 8, !tbaa !5
  %3729 = load i32, ptr %19, align 4, !tbaa !9
  %3730 = load i32, ptr %20, align 4, !tbaa !9
  %3731 = load i32, ptr %28, align 4, !tbaa !9
  %3732 = mul nsw i32 %3730, %3731
  %3733 = add nsw i32 %3729, %3732
  %3734 = sext i32 %3733 to i64
  %3735 = getelementptr inbounds %struct.complex, ptr %3728, i64 %3734
  %3736 = call <2 x float> @Cf(ptr noundef %3735)
  store <2 x float> %3736, ptr %119, align 4
  %3737 = getelementptr inbounds { float, float }, ptr %119, i32 0, i32 0
  %3738 = load float, ptr %3737, align 4
  %3739 = getelementptr inbounds { float, float }, ptr %119, i32 0, i32 1
  %3740 = load float, ptr %3739, align 4
  %3741 = getelementptr inbounds { float, float }, ptr %120, i32 0, i32 0
  %3742 = getelementptr inbounds { float, float }, ptr %120, i32 0, i32 1
  store float %3738, ptr %3741, align 4
  store float %3740, ptr %3742, align 4
  %3743 = load <2 x float>, ptr %120, align 4
  %3744 = call float @cabsf(<2 x float> noundef %3743) #6
  store float %3744, ptr %27, align 4, !tbaa !11
  %3745 = load float, ptr %27, align 4, !tbaa !11
  %3746 = load float, ptr %23, align 4, !tbaa !11
  %3747 = fadd float %3746, %3745
  store float %3747, ptr %23, align 4, !tbaa !11
  %3748 = load float, ptr %27, align 4, !tbaa !11
  %3749 = load ptr, ptr %13, align 8, !tbaa !5
  %3750 = load i32, ptr %22, align 4, !tbaa !9
  %3751 = sext i32 %3750 to i64
  %3752 = getelementptr inbounds float, ptr %3749, i64 %3751
  %3753 = load float, ptr %3752, align 4, !tbaa !11
  %3754 = fadd float %3753, %3748
  store float %3754, ptr %3752, align 4, !tbaa !11
  br label %3755

3755:                                             ; preds = %3725
  %3756 = load i32, ptr %22, align 4, !tbaa !9
  %3757 = add nsw i32 %3756, 1
  store i32 %3757, ptr %22, align 4, !tbaa !9
  br label %3721, !llvm.loop !89

3758:                                             ; preds = %3721
  %3759 = load float, ptr %23, align 4, !tbaa !11
  %3760 = load ptr, ptr %13, align 8, !tbaa !5
  %3761 = load i32, ptr %21, align 4, !tbaa !9
  %3762 = load i32, ptr %20, align 4, !tbaa !9
  %3763 = add nsw i32 %3761, %3762
  %3764 = sext i32 %3763 to i64
  %3765 = getelementptr inbounds float, ptr %3760, i64 %3764
  %3766 = load float, ptr %3765, align 4, !tbaa !11
  %3767 = fadd float %3766, %3759
  store float %3767, ptr %3765, align 4, !tbaa !11
  br label %3768

3768:                                             ; preds = %3758
  %3769 = load i32, ptr %20, align 4, !tbaa !9
  %3770 = add nsw i32 %3769, 1
  store i32 %3770, ptr %20, align 4, !tbaa !9
  br label %3620, !llvm.loop !90

3771:                                             ; preds = %3620
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %3772 = load i32, ptr %21, align 4, !tbaa !9
  %3773 = sub nsw i32 %3772, 2
  store i32 %3773, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %3774

3774:                                             ; preds = %3806, %3771
  %3775 = load i32, ptr %19, align 4, !tbaa !9
  %3776 = load i32, ptr %14, align 4, !tbaa !9
  %3777 = icmp sle i32 %3775, %3776
  br i1 %3777, label %3778, label %3809

3778:                                             ; preds = %3774
  %3779 = load ptr, ptr %12, align 8, !tbaa !5
  %3780 = load i32, ptr %19, align 4, !tbaa !9
  %3781 = load i32, ptr %20, align 4, !tbaa !9
  %3782 = load i32, ptr %28, align 4, !tbaa !9
  %3783 = mul nsw i32 %3781, %3782
  %3784 = add nsw i32 %3780, %3783
  %3785 = sext i32 %3784 to i64
  %3786 = getelementptr inbounds %struct.complex, ptr %3779, i64 %3785
  %3787 = call <2 x float> @Cf(ptr noundef %3786)
  store <2 x float> %3787, ptr %121, align 4
  %3788 = getelementptr inbounds { float, float }, ptr %121, i32 0, i32 0
  %3789 = load float, ptr %3788, align 4
  %3790 = getelementptr inbounds { float, float }, ptr %121, i32 0, i32 1
  %3791 = load float, ptr %3790, align 4
  %3792 = getelementptr inbounds { float, float }, ptr %122, i32 0, i32 0
  %3793 = getelementptr inbounds { float, float }, ptr %122, i32 0, i32 1
  store float %3789, ptr %3792, align 4
  store float %3791, ptr %3793, align 4
  %3794 = load <2 x float>, ptr %122, align 4
  %3795 = call float @cabsf(<2 x float> noundef %3794) #6
  store float %3795, ptr %27, align 4, !tbaa !11
  %3796 = load float, ptr %27, align 4, !tbaa !11
  %3797 = load ptr, ptr %13, align 8, !tbaa !5
  %3798 = load i32, ptr %19, align 4, !tbaa !9
  %3799 = sext i32 %3798 to i64
  %3800 = getelementptr inbounds float, ptr %3797, i64 %3799
  %3801 = load float, ptr %3800, align 4, !tbaa !11
  %3802 = fadd float %3801, %3796
  store float %3802, ptr %3800, align 4, !tbaa !11
  %3803 = load float, ptr %27, align 4, !tbaa !11
  %3804 = load float, ptr %23, align 4, !tbaa !11
  %3805 = fadd float %3804, %3803
  store float %3805, ptr %23, align 4, !tbaa !11
  br label %3806

3806:                                             ; preds = %3778
  %3807 = load i32, ptr %19, align 4, !tbaa !9
  %3808 = add nsw i32 %3807, 1
  store i32 %3808, ptr %19, align 4, !tbaa !9
  br label %3774, !llvm.loop !91

3809:                                             ; preds = %3774
  %3810 = load i32, ptr %19, align 4, !tbaa !9
  %3811 = load i32, ptr %20, align 4, !tbaa !9
  %3812 = load i32, ptr %28, align 4, !tbaa !9
  %3813 = mul nsw i32 %3811, %3812
  %3814 = add nsw i32 %3810, %3813
  store i32 %3814, ptr %14, align 4, !tbaa !9
  %3815 = load ptr, ptr %12, align 8, !tbaa !5
  %3816 = load i32, ptr %14, align 4, !tbaa !9
  %3817 = sext i32 %3816 to i64
  %3818 = getelementptr inbounds %struct.complex, ptr %3815, i64 %3817
  %3819 = getelementptr inbounds %struct.complex, ptr %3818, i32 0, i32 0
  %3820 = load float, ptr %3819, align 4, !tbaa !13
  store float %3820, ptr %17, align 4, !tbaa !11
  %3821 = load float, ptr %17, align 4, !tbaa !11
  %3822 = fcmp oge float %3821, 0.000000e+00
  br i1 %3822, label %3823, label %3825

3823:                                             ; preds = %3809
  %3824 = load float, ptr %17, align 4, !tbaa !11
  br label %3828

3825:                                             ; preds = %3809
  %3826 = load float, ptr %17, align 4, !tbaa !11
  %3827 = fneg float %3826
  br label %3828

3828:                                             ; preds = %3825, %3823
  %3829 = phi float [ %3824, %3823 ], [ %3827, %3825 ]
  store float %3829, ptr %27, align 4, !tbaa !11
  %3830 = load float, ptr %27, align 4, !tbaa !11
  %3831 = load float, ptr %23, align 4, !tbaa !11
  %3832 = fadd float %3831, %3830
  store float %3832, ptr %23, align 4, !tbaa !11
  %3833 = load float, ptr %23, align 4, !tbaa !11
  %3834 = load ptr, ptr %13, align 8, !tbaa !5
  %3835 = load i32, ptr %19, align 4, !tbaa !9
  %3836 = sext i32 %3835 to i64
  %3837 = getelementptr inbounds float, ptr %3834, i64 %3836
  store float %3833, ptr %3837, align 4, !tbaa !11
  %3838 = load ptr, ptr %11, align 8, !tbaa !5
  %3839 = load i32, ptr %3838, align 4, !tbaa !9
  %3840 = sub nsw i32 %3839, 1
  store i32 %3840, ptr %14, align 4, !tbaa !9
  %3841 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3841, ptr %20, align 4, !tbaa !9
  br label %3842

3842:                                             ; preds = %3892, %3828
  %3843 = load i32, ptr %20, align 4, !tbaa !9
  %3844 = load i32, ptr %14, align 4, !tbaa !9
  %3845 = icmp sle i32 %3843, %3844
  br i1 %3845, label %3846, label %3895

3846:                                             ; preds = %3842
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %3847 = load i32, ptr %21, align 4, !tbaa !9
  %3848 = sub nsw i32 %3847, 1
  store i32 %3848, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %3849

3849:                                             ; preds = %3881, %3846
  %3850 = load i32, ptr %19, align 4, !tbaa !9
  %3851 = load i32, ptr %15, align 4, !tbaa !9
  %3852 = icmp sle i32 %3850, %3851
  br i1 %3852, label %3853, label %3884

3853:                                             ; preds = %3849
  %3854 = load ptr, ptr %12, align 8, !tbaa !5
  %3855 = load i32, ptr %19, align 4, !tbaa !9
  %3856 = load i32, ptr %20, align 4, !tbaa !9
  %3857 = load i32, ptr %28, align 4, !tbaa !9
  %3858 = mul nsw i32 %3856, %3857
  %3859 = add nsw i32 %3855, %3858
  %3860 = sext i32 %3859 to i64
  %3861 = getelementptr inbounds %struct.complex, ptr %3854, i64 %3860
  %3862 = call <2 x float> @Cf(ptr noundef %3861)
  store <2 x float> %3862, ptr %123, align 4
  %3863 = getelementptr inbounds { float, float }, ptr %123, i32 0, i32 0
  %3864 = load float, ptr %3863, align 4
  %3865 = getelementptr inbounds { float, float }, ptr %123, i32 0, i32 1
  %3866 = load float, ptr %3865, align 4
  %3867 = getelementptr inbounds { float, float }, ptr %124, i32 0, i32 0
  %3868 = getelementptr inbounds { float, float }, ptr %124, i32 0, i32 1
  store float %3864, ptr %3867, align 4
  store float %3866, ptr %3868, align 4
  %3869 = load <2 x float>, ptr %124, align 4
  %3870 = call float @cabsf(<2 x float> noundef %3869) #6
  store float %3870, ptr %27, align 4, !tbaa !11
  %3871 = load float, ptr %27, align 4, !tbaa !11
  %3872 = load ptr, ptr %13, align 8, !tbaa !5
  %3873 = load i32, ptr %19, align 4, !tbaa !9
  %3874 = sext i32 %3873 to i64
  %3875 = getelementptr inbounds float, ptr %3872, i64 %3874
  %3876 = load float, ptr %3875, align 4, !tbaa !11
  %3877 = fadd float %3876, %3871
  store float %3877, ptr %3875, align 4, !tbaa !11
  %3878 = load float, ptr %27, align 4, !tbaa !11
  %3879 = load float, ptr %23, align 4, !tbaa !11
  %3880 = fadd float %3879, %3878
  store float %3880, ptr %23, align 4, !tbaa !11
  br label %3881

3881:                                             ; preds = %3853
  %3882 = load i32, ptr %19, align 4, !tbaa !9
  %3883 = add nsw i32 %3882, 1
  store i32 %3883, ptr %19, align 4, !tbaa !9
  br label %3849, !llvm.loop !92

3884:                                             ; preds = %3849
  %3885 = load float, ptr %23, align 4, !tbaa !11
  %3886 = load ptr, ptr %13, align 8, !tbaa !5
  %3887 = load i32, ptr %20, align 4, !tbaa !9
  %3888 = sext i32 %3887 to i64
  %3889 = getelementptr inbounds float, ptr %3886, i64 %3888
  %3890 = load float, ptr %3889, align 4, !tbaa !11
  %3891 = fadd float %3890, %3885
  store float %3891, ptr %3889, align 4, !tbaa !11
  br label %3892

3892:                                             ; preds = %3884
  %3893 = load i32, ptr %20, align 4, !tbaa !9
  %3894 = add nsw i32 %3893, 1
  store i32 %3894, ptr %20, align 4, !tbaa !9
  br label %3842, !llvm.loop !93

3895:                                             ; preds = %3842
  %3896 = load ptr, ptr %13, align 8, !tbaa !5
  %3897 = getelementptr inbounds float, ptr %3896, i64 0
  %3898 = load float, ptr %3897, align 4, !tbaa !11
  store float %3898, ptr %25, align 4, !tbaa !11
  %3899 = load ptr, ptr %11, align 8, !tbaa !5
  %3900 = load i32, ptr %3899, align 4, !tbaa !9
  %3901 = sub nsw i32 %3900, 1
  store i32 %3901, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %3902

3902:                                             ; preds = %3921, %3895
  %3903 = load i32, ptr %19, align 4, !tbaa !9
  %3904 = load i32, ptr %14, align 4, !tbaa !9
  %3905 = icmp sle i32 %3903, %3904
  br i1 %3905, label %3906, label %3924

3906:                                             ; preds = %3902
  %3907 = load ptr, ptr %13, align 8, !tbaa !5
  %3908 = load i32, ptr %19, align 4, !tbaa !9
  %3909 = sext i32 %3908 to i64
  %3910 = getelementptr inbounds float, ptr %3907, i64 %3909
  %3911 = load float, ptr %3910, align 4, !tbaa !11
  store float %3911, ptr %18, align 4, !tbaa !11
  %3912 = load float, ptr %25, align 4, !tbaa !11
  %3913 = load float, ptr %18, align 4, !tbaa !11
  %3914 = fcmp olt float %3912, %3913
  br i1 %3914, label %3918, label %3915

3915:                                             ; preds = %3906
  %3916 = call i32 @sisnan_(ptr noundef %18)
  %3917 = icmp ne i32 %3916, 0
  br i1 %3917, label %3918, label %3920

3918:                                             ; preds = %3915, %3906
  %3919 = load float, ptr %18, align 4, !tbaa !11
  store float %3919, ptr %25, align 4, !tbaa !11
  br label %3920

3920:                                             ; preds = %3918, %3915
  br label %3921

3921:                                             ; preds = %3920
  %3922 = load i32, ptr %19, align 4, !tbaa !9
  %3923 = add nsw i32 %3922, 1
  store i32 %3923, ptr %19, align 4, !tbaa !9
  br label %3902, !llvm.loop !94

3924:                                             ; preds = %3902
  br label %3925

3925:                                             ; preds = %3924, %3597
  br label %4710

3926:                                             ; preds = %3261
  %3927 = load i32, ptr %31, align 4, !tbaa !9
  %3928 = icmp eq i32 %3927, 0
  br i1 %3928, label %3929, label %4326

3929:                                             ; preds = %3926
  %3930 = load ptr, ptr %11, align 8, !tbaa !5
  %3931 = load i32, ptr %3930, align 4, !tbaa !9
  %3932 = sub nsw i32 %3931, 1
  store i32 %3932, ptr %14, align 4, !tbaa !9
  %3933 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3933, ptr %19, align 4, !tbaa !9
  br label %3934

3934:                                             ; preds = %3943, %3929
  %3935 = load i32, ptr %19, align 4, !tbaa !9
  %3936 = load i32, ptr %14, align 4, !tbaa !9
  %3937 = icmp sle i32 %3935, %3936
  br i1 %3937, label %3938, label %3946

3938:                                             ; preds = %3934
  %3939 = load ptr, ptr %13, align 8, !tbaa !5
  %3940 = load i32, ptr %19, align 4, !tbaa !9
  %3941 = sext i32 %3940 to i64
  %3942 = getelementptr inbounds float, ptr %3939, i64 %3941
  store float 0.000000e+00, ptr %3942, align 4, !tbaa !11
  br label %3943

3943:                                             ; preds = %3938
  %3944 = load i32, ptr %19, align 4, !tbaa !9
  %3945 = add nsw i32 %3944, 1
  store i32 %3945, ptr %19, align 4, !tbaa !9
  br label %3934, !llvm.loop !95

3946:                                             ; preds = %3934
  %3947 = load i32, ptr %21, align 4, !tbaa !9
  %3948 = sub nsw i32 %3947, 1
  store i32 %3948, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %3949

3949:                                             ; preds = %3999, %3946
  %3950 = load i32, ptr %20, align 4, !tbaa !9
  %3951 = load i32, ptr %14, align 4, !tbaa !9
  %3952 = icmp sle i32 %3950, %3951
  br i1 %3952, label %3953, label %4002

3953:                                             ; preds = %3949
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %3954 = load i32, ptr %21, align 4, !tbaa !9
  %3955 = sub nsw i32 %3954, 1
  store i32 %3955, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %3956

3956:                                             ; preds = %3990, %3953
  %3957 = load i32, ptr %19, align 4, !tbaa !9
  %3958 = load i32, ptr %15, align 4, !tbaa !9
  %3959 = icmp sle i32 %3957, %3958
  br i1 %3959, label %3960, label %3993

3960:                                             ; preds = %3956
  %3961 = load ptr, ptr %12, align 8, !tbaa !5
  %3962 = load i32, ptr %19, align 4, !tbaa !9
  %3963 = load i32, ptr %20, align 4, !tbaa !9
  %3964 = load i32, ptr %28, align 4, !tbaa !9
  %3965 = mul nsw i32 %3963, %3964
  %3966 = add nsw i32 %3962, %3965
  %3967 = sext i32 %3966 to i64
  %3968 = getelementptr inbounds %struct.complex, ptr %3961, i64 %3967
  %3969 = call <2 x float> @Cf(ptr noundef %3968)
  store <2 x float> %3969, ptr %125, align 4
  %3970 = getelementptr inbounds { float, float }, ptr %125, i32 0, i32 0
  %3971 = load float, ptr %3970, align 4
  %3972 = getelementptr inbounds { float, float }, ptr %125, i32 0, i32 1
  %3973 = load float, ptr %3972, align 4
  %3974 = getelementptr inbounds { float, float }, ptr %126, i32 0, i32 0
  %3975 = getelementptr inbounds { float, float }, ptr %126, i32 0, i32 1
  store float %3971, ptr %3974, align 4
  store float %3973, ptr %3975, align 4
  %3976 = load <2 x float>, ptr %126, align 4
  %3977 = call float @cabsf(<2 x float> noundef %3976) #6
  store float %3977, ptr %27, align 4, !tbaa !11
  %3978 = load float, ptr %27, align 4, !tbaa !11
  %3979 = load ptr, ptr %13, align 8, !tbaa !5
  %3980 = load i32, ptr %19, align 4, !tbaa !9
  %3981 = load i32, ptr %21, align 4, !tbaa !9
  %3982 = add nsw i32 %3980, %3981
  %3983 = sext i32 %3982 to i64
  %3984 = getelementptr inbounds float, ptr %3979, i64 %3983
  %3985 = load float, ptr %3984, align 4, !tbaa !11
  %3986 = fadd float %3985, %3978
  store float %3986, ptr %3984, align 4, !tbaa !11
  %3987 = load float, ptr %27, align 4, !tbaa !11
  %3988 = load float, ptr %23, align 4, !tbaa !11
  %3989 = fadd float %3988, %3987
  store float %3989, ptr %23, align 4, !tbaa !11
  br label %3990

3990:                                             ; preds = %3960
  %3991 = load i32, ptr %19, align 4, !tbaa !9
  %3992 = add nsw i32 %3991, 1
  store i32 %3992, ptr %19, align 4, !tbaa !9
  br label %3956, !llvm.loop !96

3993:                                             ; preds = %3956
  %3994 = load float, ptr %23, align 4, !tbaa !11
  %3995 = load ptr, ptr %13, align 8, !tbaa !5
  %3996 = load i32, ptr %20, align 4, !tbaa !9
  %3997 = sext i32 %3996 to i64
  %3998 = getelementptr inbounds float, ptr %3995, i64 %3997
  store float %3994, ptr %3998, align 4, !tbaa !11
  br label %3999

3999:                                             ; preds = %3993
  %4000 = load i32, ptr %20, align 4, !tbaa !9
  %4001 = add nsw i32 %4000, 1
  store i32 %4001, ptr %20, align 4, !tbaa !9
  br label %3949, !llvm.loop !97

4002:                                             ; preds = %3949
  %4003 = load i32, ptr %20, align 4, !tbaa !9
  %4004 = load i32, ptr %28, align 4, !tbaa !9
  %4005 = mul nsw i32 %4003, %4004
  store i32 %4005, ptr %14, align 4, !tbaa !9
  %4006 = load ptr, ptr %12, align 8, !tbaa !5
  %4007 = load i32, ptr %14, align 4, !tbaa !9
  %4008 = sext i32 %4007 to i64
  %4009 = getelementptr inbounds %struct.complex, ptr %4006, i64 %4008
  %4010 = getelementptr inbounds %struct.complex, ptr %4009, i32 0, i32 0
  %4011 = load float, ptr %4010, align 4, !tbaa !13
  store float %4011, ptr %17, align 4, !tbaa !11
  %4012 = load float, ptr %17, align 4, !tbaa !11
  %4013 = fcmp oge float %4012, 0.000000e+00
  br i1 %4013, label %4014, label %4016

4014:                                             ; preds = %4002
  %4015 = load float, ptr %17, align 4, !tbaa !11
  br label %4019

4016:                                             ; preds = %4002
  %4017 = load float, ptr %17, align 4, !tbaa !11
  %4018 = fneg float %4017
  br label %4019

4019:                                             ; preds = %4016, %4014
  %4020 = phi float [ %4015, %4014 ], [ %4018, %4016 ]
  store float %4020, ptr %27, align 4, !tbaa !11
  %4021 = load float, ptr %27, align 4, !tbaa !11
  store float %4021, ptr %23, align 4, !tbaa !11
  %4022 = load i32, ptr %21, align 4, !tbaa !9
  %4023 = sub nsw i32 %4022, 1
  store i32 %4023, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %4024

4024:                                             ; preds = %4058, %4019
  %4025 = load i32, ptr %19, align 4, !tbaa !9
  %4026 = load i32, ptr %14, align 4, !tbaa !9
  %4027 = icmp sle i32 %4025, %4026
  br i1 %4027, label %4028, label %4061

4028:                                             ; preds = %4024
  %4029 = load ptr, ptr %12, align 8, !tbaa !5
  %4030 = load i32, ptr %19, align 4, !tbaa !9
  %4031 = load i32, ptr %20, align 4, !tbaa !9
  %4032 = load i32, ptr %28, align 4, !tbaa !9
  %4033 = mul nsw i32 %4031, %4032
  %4034 = add nsw i32 %4030, %4033
  %4035 = sext i32 %4034 to i64
  %4036 = getelementptr inbounds %struct.complex, ptr %4029, i64 %4035
  %4037 = call <2 x float> @Cf(ptr noundef %4036)
  store <2 x float> %4037, ptr %127, align 4
  %4038 = getelementptr inbounds { float, float }, ptr %127, i32 0, i32 0
  %4039 = load float, ptr %4038, align 4
  %4040 = getelementptr inbounds { float, float }, ptr %127, i32 0, i32 1
  %4041 = load float, ptr %4040, align 4
  %4042 = getelementptr inbounds { float, float }, ptr %128, i32 0, i32 0
  %4043 = getelementptr inbounds { float, float }, ptr %128, i32 0, i32 1
  store float %4039, ptr %4042, align 4
  store float %4041, ptr %4043, align 4
  %4044 = load <2 x float>, ptr %128, align 4
  %4045 = call float @cabsf(<2 x float> noundef %4044) #6
  store float %4045, ptr %27, align 4, !tbaa !11
  %4046 = load float, ptr %27, align 4, !tbaa !11
  %4047 = load ptr, ptr %13, align 8, !tbaa !5
  %4048 = load i32, ptr %19, align 4, !tbaa !9
  %4049 = load i32, ptr %21, align 4, !tbaa !9
  %4050 = add nsw i32 %4048, %4049
  %4051 = sext i32 %4050 to i64
  %4052 = getelementptr inbounds float, ptr %4047, i64 %4051
  %4053 = load float, ptr %4052, align 4, !tbaa !11
  %4054 = fadd float %4053, %4046
  store float %4054, ptr %4052, align 4, !tbaa !11
  %4055 = load float, ptr %27, align 4, !tbaa !11
  %4056 = load float, ptr %23, align 4, !tbaa !11
  %4057 = fadd float %4056, %4055
  store float %4057, ptr %23, align 4, !tbaa !11
  br label %4058

4058:                                             ; preds = %4028
  %4059 = load i32, ptr %19, align 4, !tbaa !9
  %4060 = add nsw i32 %4059, 1
  store i32 %4060, ptr %19, align 4, !tbaa !9
  br label %4024, !llvm.loop !98

4061:                                             ; preds = %4024
  %4062 = load float, ptr %23, align 4, !tbaa !11
  %4063 = load ptr, ptr %13, align 8, !tbaa !5
  %4064 = load i32, ptr %20, align 4, !tbaa !9
  %4065 = sext i32 %4064 to i64
  %4066 = getelementptr inbounds float, ptr %4063, i64 %4065
  %4067 = load float, ptr %4066, align 4, !tbaa !11
  %4068 = fadd float %4067, %4062
  store float %4068, ptr %4066, align 4, !tbaa !11
  %4069 = load ptr, ptr %11, align 8, !tbaa !5
  %4070 = load i32, ptr %4069, align 4, !tbaa !9
  %4071 = sub nsw i32 %4070, 1
  store i32 %4071, ptr %14, align 4, !tbaa !9
  %4072 = load i32, ptr %21, align 4, !tbaa !9
  %4073 = add nsw i32 %4072, 1
  store i32 %4073, ptr %20, align 4, !tbaa !9
  br label %4074

4074:                                             ; preds = %4225, %4061
  %4075 = load i32, ptr %20, align 4, !tbaa !9
  %4076 = load i32, ptr %14, align 4, !tbaa !9
  %4077 = icmp sle i32 %4075, %4076
  br i1 %4077, label %4078, label %4228

4078:                                             ; preds = %4074
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %4079 = load i32, ptr %20, align 4, !tbaa !9
  %4080 = sub nsw i32 %4079, 2
  %4081 = load i32, ptr %21, align 4, !tbaa !9
  %4082 = sub nsw i32 %4080, %4081
  store i32 %4082, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %4083

4083:                                             ; preds = %4115, %4078
  %4084 = load i32, ptr %19, align 4, !tbaa !9
  %4085 = load i32, ptr %15, align 4, !tbaa !9
  %4086 = icmp sle i32 %4084, %4085
  br i1 %4086, label %4087, label %4118

4087:                                             ; preds = %4083
  %4088 = load ptr, ptr %12, align 8, !tbaa !5
  %4089 = load i32, ptr %19, align 4, !tbaa !9
  %4090 = load i32, ptr %20, align 4, !tbaa !9
  %4091 = load i32, ptr %28, align 4, !tbaa !9
  %4092 = mul nsw i32 %4090, %4091
  %4093 = add nsw i32 %4089, %4092
  %4094 = sext i32 %4093 to i64
  %4095 = getelementptr inbounds %struct.complex, ptr %4088, i64 %4094
  %4096 = call <2 x float> @Cf(ptr noundef %4095)
  store <2 x float> %4096, ptr %129, align 4
  %4097 = getelementptr inbounds { float, float }, ptr %129, i32 0, i32 0
  %4098 = load float, ptr %4097, align 4
  %4099 = getelementptr inbounds { float, float }, ptr %129, i32 0, i32 1
  %4100 = load float, ptr %4099, align 4
  %4101 = getelementptr inbounds { float, float }, ptr %130, i32 0, i32 0
  %4102 = getelementptr inbounds { float, float }, ptr %130, i32 0, i32 1
  store float %4098, ptr %4101, align 4
  store float %4100, ptr %4102, align 4
  %4103 = load <2 x float>, ptr %130, align 4
  %4104 = call float @cabsf(<2 x float> noundef %4103) #6
  store float %4104, ptr %27, align 4, !tbaa !11
  %4105 = load float, ptr %27, align 4, !tbaa !11
  %4106 = load ptr, ptr %13, align 8, !tbaa !5
  %4107 = load i32, ptr %19, align 4, !tbaa !9
  %4108 = sext i32 %4107 to i64
  %4109 = getelementptr inbounds float, ptr %4106, i64 %4108
  %4110 = load float, ptr %4109, align 4, !tbaa !11
  %4111 = fadd float %4110, %4105
  store float %4111, ptr %4109, align 4, !tbaa !11
  %4112 = load float, ptr %27, align 4, !tbaa !11
  %4113 = load float, ptr %23, align 4, !tbaa !11
  %4114 = fadd float %4113, %4112
  store float %4114, ptr %23, align 4, !tbaa !11
  br label %4115

4115:                                             ; preds = %4087
  %4116 = load i32, ptr %19, align 4, !tbaa !9
  %4117 = add nsw i32 %4116, 1
  store i32 %4117, ptr %19, align 4, !tbaa !9
  br label %4083, !llvm.loop !99

4118:                                             ; preds = %4083
  %4119 = load i32, ptr %19, align 4, !tbaa !9
  %4120 = load i32, ptr %20, align 4, !tbaa !9
  %4121 = load i32, ptr %28, align 4, !tbaa !9
  %4122 = mul nsw i32 %4120, %4121
  %4123 = add nsw i32 %4119, %4122
  store i32 %4123, ptr %15, align 4, !tbaa !9
  %4124 = load ptr, ptr %12, align 8, !tbaa !5
  %4125 = load i32, ptr %15, align 4, !tbaa !9
  %4126 = sext i32 %4125 to i64
  %4127 = getelementptr inbounds %struct.complex, ptr %4124, i64 %4126
  %4128 = getelementptr inbounds %struct.complex, ptr %4127, i32 0, i32 0
  %4129 = load float, ptr %4128, align 4, !tbaa !13
  store float %4129, ptr %17, align 4, !tbaa !11
  %4130 = load float, ptr %17, align 4, !tbaa !11
  %4131 = fcmp oge float %4130, 0.000000e+00
  br i1 %4131, label %4132, label %4134

4132:                                             ; preds = %4118
  %4133 = load float, ptr %17, align 4, !tbaa !11
  br label %4137

4134:                                             ; preds = %4118
  %4135 = load float, ptr %17, align 4, !tbaa !11
  %4136 = fneg float %4135
  br label %4137

4137:                                             ; preds = %4134, %4132
  %4138 = phi float [ %4133, %4132 ], [ %4136, %4134 ]
  store float %4138, ptr %27, align 4, !tbaa !11
  %4139 = load float, ptr %27, align 4, !tbaa !11
  %4140 = load float, ptr %23, align 4, !tbaa !11
  %4141 = fadd float %4140, %4139
  store float %4141, ptr %23, align 4, !tbaa !11
  %4142 = load float, ptr %23, align 4, !tbaa !11
  %4143 = load ptr, ptr %13, align 8, !tbaa !5
  %4144 = load i32, ptr %20, align 4, !tbaa !9
  %4145 = load i32, ptr %21, align 4, !tbaa !9
  %4146 = sub nsw i32 %4144, %4145
  %4147 = sub nsw i32 %4146, 1
  %4148 = sext i32 %4147 to i64
  %4149 = getelementptr inbounds float, ptr %4143, i64 %4148
  %4150 = load float, ptr %4149, align 4, !tbaa !11
  %4151 = fadd float %4150, %4142
  store float %4151, ptr %4149, align 4, !tbaa !11
  %4152 = load i32, ptr %19, align 4, !tbaa !9
  %4153 = add nsw i32 %4152, 1
  store i32 %4153, ptr %19, align 4, !tbaa !9
  %4154 = load i32, ptr %19, align 4, !tbaa !9
  %4155 = load i32, ptr %20, align 4, !tbaa !9
  %4156 = load i32, ptr %28, align 4, !tbaa !9
  %4157 = mul nsw i32 %4155, %4156
  %4158 = add nsw i32 %4154, %4157
  store i32 %4158, ptr %15, align 4, !tbaa !9
  %4159 = load ptr, ptr %12, align 8, !tbaa !5
  %4160 = load i32, ptr %15, align 4, !tbaa !9
  %4161 = sext i32 %4160 to i64
  %4162 = getelementptr inbounds %struct.complex, ptr %4159, i64 %4161
  %4163 = getelementptr inbounds %struct.complex, ptr %4162, i32 0, i32 0
  %4164 = load float, ptr %4163, align 4, !tbaa !13
  store float %4164, ptr %17, align 4, !tbaa !11
  %4165 = load float, ptr %17, align 4, !tbaa !11
  %4166 = fcmp oge float %4165, 0.000000e+00
  br i1 %4166, label %4167, label %4169

4167:                                             ; preds = %4137
  %4168 = load float, ptr %17, align 4, !tbaa !11
  br label %4172

4169:                                             ; preds = %4137
  %4170 = load float, ptr %17, align 4, !tbaa !11
  %4171 = fneg float %4170
  br label %4172

4172:                                             ; preds = %4169, %4167
  %4173 = phi float [ %4168, %4167 ], [ %4171, %4169 ]
  store float %4173, ptr %27, align 4, !tbaa !11
  %4174 = load float, ptr %27, align 4, !tbaa !11
  store float %4174, ptr %23, align 4, !tbaa !11
  %4175 = load ptr, ptr %11, align 8, !tbaa !5
  %4176 = load i32, ptr %4175, align 4, !tbaa !9
  %4177 = sub nsw i32 %4176, 1
  store i32 %4177, ptr %15, align 4, !tbaa !9
  %4178 = load i32, ptr %20, align 4, !tbaa !9
  %4179 = add nsw i32 %4178, 1
  store i32 %4179, ptr %22, align 4, !tbaa !9
  br label %4180

4180:                                             ; preds = %4214, %4172
  %4181 = load i32, ptr %22, align 4, !tbaa !9
  %4182 = load i32, ptr %15, align 4, !tbaa !9
  %4183 = icmp sle i32 %4181, %4182
  br i1 %4183, label %4184, label %4217

4184:                                             ; preds = %4180
  %4185 = load i32, ptr %19, align 4, !tbaa !9
  %4186 = add nsw i32 %4185, 1
  store i32 %4186, ptr %19, align 4, !tbaa !9
  %4187 = load ptr, ptr %12, align 8, !tbaa !5
  %4188 = load i32, ptr %19, align 4, !tbaa !9
  %4189 = load i32, ptr %20, align 4, !tbaa !9
  %4190 = load i32, ptr %28, align 4, !tbaa !9
  %4191 = mul nsw i32 %4189, %4190
  %4192 = add nsw i32 %4188, %4191
  %4193 = sext i32 %4192 to i64
  %4194 = getelementptr inbounds %struct.complex, ptr %4187, i64 %4193
  %4195 = call <2 x float> @Cf(ptr noundef %4194)
  store <2 x float> %4195, ptr %131, align 4
  %4196 = getelementptr inbounds { float, float }, ptr %131, i32 0, i32 0
  %4197 = load float, ptr %4196, align 4
  %4198 = getelementptr inbounds { float, float }, ptr %131, i32 0, i32 1
  %4199 = load float, ptr %4198, align 4
  %4200 = getelementptr inbounds { float, float }, ptr %132, i32 0, i32 0
  %4201 = getelementptr inbounds { float, float }, ptr %132, i32 0, i32 1
  store float %4197, ptr %4200, align 4
  store float %4199, ptr %4201, align 4
  %4202 = load <2 x float>, ptr %132, align 4
  %4203 = call float @cabsf(<2 x float> noundef %4202) #6
  store float %4203, ptr %27, align 4, !tbaa !11
  %4204 = load float, ptr %27, align 4, !tbaa !11
  %4205 = load ptr, ptr %13, align 8, !tbaa !5
  %4206 = load i32, ptr %22, align 4, !tbaa !9
  %4207 = sext i32 %4206 to i64
  %4208 = getelementptr inbounds float, ptr %4205, i64 %4207
  %4209 = load float, ptr %4208, align 4, !tbaa !11
  %4210 = fadd float %4209, %4204
  store float %4210, ptr %4208, align 4, !tbaa !11
  %4211 = load float, ptr %27, align 4, !tbaa !11
  %4212 = load float, ptr %23, align 4, !tbaa !11
  %4213 = fadd float %4212, %4211
  store float %4213, ptr %23, align 4, !tbaa !11
  br label %4214

4214:                                             ; preds = %4184
  %4215 = load i32, ptr %22, align 4, !tbaa !9
  %4216 = add nsw i32 %4215, 1
  store i32 %4216, ptr %22, align 4, !tbaa !9
  br label %4180, !llvm.loop !100

4217:                                             ; preds = %4180
  %4218 = load float, ptr %23, align 4, !tbaa !11
  %4219 = load ptr, ptr %13, align 8, !tbaa !5
  %4220 = load i32, ptr %20, align 4, !tbaa !9
  %4221 = sext i32 %4220 to i64
  %4222 = getelementptr inbounds float, ptr %4219, i64 %4221
  %4223 = load float, ptr %4222, align 4, !tbaa !11
  %4224 = fadd float %4223, %4218
  store float %4224, ptr %4222, align 4, !tbaa !11
  br label %4225

4225:                                             ; preds = %4217
  %4226 = load i32, ptr %20, align 4, !tbaa !9
  %4227 = add nsw i32 %4226, 1
  store i32 %4227, ptr %20, align 4, !tbaa !9
  br label %4074, !llvm.loop !101

4228:                                             ; preds = %4074
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %4229 = load i32, ptr %21, align 4, !tbaa !9
  %4230 = sub nsw i32 %4229, 2
  store i32 %4230, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %4231

4231:                                             ; preds = %4263, %4228
  %4232 = load i32, ptr %19, align 4, !tbaa !9
  %4233 = load i32, ptr %14, align 4, !tbaa !9
  %4234 = icmp sle i32 %4232, %4233
  br i1 %4234, label %4235, label %4266

4235:                                             ; preds = %4231
  %4236 = load ptr, ptr %12, align 8, !tbaa !5
  %4237 = load i32, ptr %19, align 4, !tbaa !9
  %4238 = load i32, ptr %20, align 4, !tbaa !9
  %4239 = load i32, ptr %28, align 4, !tbaa !9
  %4240 = mul nsw i32 %4238, %4239
  %4241 = add nsw i32 %4237, %4240
  %4242 = sext i32 %4241 to i64
  %4243 = getelementptr inbounds %struct.complex, ptr %4236, i64 %4242
  %4244 = call <2 x float> @Cf(ptr noundef %4243)
  store <2 x float> %4244, ptr %133, align 4
  %4245 = getelementptr inbounds { float, float }, ptr %133, i32 0, i32 0
  %4246 = load float, ptr %4245, align 4
  %4247 = getelementptr inbounds { float, float }, ptr %133, i32 0, i32 1
  %4248 = load float, ptr %4247, align 4
  %4249 = getelementptr inbounds { float, float }, ptr %134, i32 0, i32 0
  %4250 = getelementptr inbounds { float, float }, ptr %134, i32 0, i32 1
  store float %4246, ptr %4249, align 4
  store float %4248, ptr %4250, align 4
  %4251 = load <2 x float>, ptr %134, align 4
  %4252 = call float @cabsf(<2 x float> noundef %4251) #6
  store float %4252, ptr %27, align 4, !tbaa !11
  %4253 = load float, ptr %27, align 4, !tbaa !11
  %4254 = load ptr, ptr %13, align 8, !tbaa !5
  %4255 = load i32, ptr %19, align 4, !tbaa !9
  %4256 = sext i32 %4255 to i64
  %4257 = getelementptr inbounds float, ptr %4254, i64 %4256
  %4258 = load float, ptr %4257, align 4, !tbaa !11
  %4259 = fadd float %4258, %4253
  store float %4259, ptr %4257, align 4, !tbaa !11
  %4260 = load float, ptr %27, align 4, !tbaa !11
  %4261 = load float, ptr %23, align 4, !tbaa !11
  %4262 = fadd float %4261, %4260
  store float %4262, ptr %23, align 4, !tbaa !11
  br label %4263

4263:                                             ; preds = %4235
  %4264 = load i32, ptr %19, align 4, !tbaa !9
  %4265 = add nsw i32 %4264, 1
  store i32 %4265, ptr %19, align 4, !tbaa !9
  br label %4231, !llvm.loop !102

4266:                                             ; preds = %4231
  %4267 = load i32, ptr %19, align 4, !tbaa !9
  %4268 = load i32, ptr %20, align 4, !tbaa !9
  %4269 = load i32, ptr %28, align 4, !tbaa !9
  %4270 = mul nsw i32 %4268, %4269
  %4271 = add nsw i32 %4267, %4270
  store i32 %4271, ptr %14, align 4, !tbaa !9
  %4272 = load ptr, ptr %12, align 8, !tbaa !5
  %4273 = load i32, ptr %14, align 4, !tbaa !9
  %4274 = sext i32 %4273 to i64
  %4275 = getelementptr inbounds %struct.complex, ptr %4272, i64 %4274
  %4276 = getelementptr inbounds %struct.complex, ptr %4275, i32 0, i32 0
  %4277 = load float, ptr %4276, align 4, !tbaa !13
  store float %4277, ptr %17, align 4, !tbaa !11
  %4278 = load float, ptr %17, align 4, !tbaa !11
  %4279 = fcmp oge float %4278, 0.000000e+00
  br i1 %4279, label %4280, label %4282

4280:                                             ; preds = %4266
  %4281 = load float, ptr %17, align 4, !tbaa !11
  br label %4285

4282:                                             ; preds = %4266
  %4283 = load float, ptr %17, align 4, !tbaa !11
  %4284 = fneg float %4283
  br label %4285

4285:                                             ; preds = %4282, %4280
  %4286 = phi float [ %4281, %4280 ], [ %4284, %4282 ]
  store float %4286, ptr %27, align 4, !tbaa !11
  %4287 = load float, ptr %27, align 4, !tbaa !11
  %4288 = load float, ptr %23, align 4, !tbaa !11
  %4289 = fadd float %4288, %4287
  store float %4289, ptr %23, align 4, !tbaa !11
  %4290 = load float, ptr %23, align 4, !tbaa !11
  %4291 = load ptr, ptr %13, align 8, !tbaa !5
  %4292 = load i32, ptr %19, align 4, !tbaa !9
  %4293 = sext i32 %4292 to i64
  %4294 = getelementptr inbounds float, ptr %4291, i64 %4293
  %4295 = load float, ptr %4294, align 4, !tbaa !11
  %4296 = fadd float %4295, %4290
  store float %4296, ptr %4294, align 4, !tbaa !11
  %4297 = load ptr, ptr %13, align 8, !tbaa !5
  %4298 = getelementptr inbounds float, ptr %4297, i64 0
  %4299 = load float, ptr %4298, align 4, !tbaa !11
  store float %4299, ptr %25, align 4, !tbaa !11
  %4300 = load ptr, ptr %11, align 8, !tbaa !5
  %4301 = load i32, ptr %4300, align 4, !tbaa !9
  %4302 = sub nsw i32 %4301, 1
  store i32 %4302, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %4303

4303:                                             ; preds = %4322, %4285
  %4304 = load i32, ptr %19, align 4, !tbaa !9
  %4305 = load i32, ptr %14, align 4, !tbaa !9
  %4306 = icmp sle i32 %4304, %4305
  br i1 %4306, label %4307, label %4325

4307:                                             ; preds = %4303
  %4308 = load ptr, ptr %13, align 8, !tbaa !5
  %4309 = load i32, ptr %19, align 4, !tbaa !9
  %4310 = sext i32 %4309 to i64
  %4311 = getelementptr inbounds float, ptr %4308, i64 %4310
  %4312 = load float, ptr %4311, align 4, !tbaa !11
  store float %4312, ptr %18, align 4, !tbaa !11
  %4313 = load float, ptr %25, align 4, !tbaa !11
  %4314 = load float, ptr %18, align 4, !tbaa !11
  %4315 = fcmp olt float %4313, %4314
  br i1 %4315, label %4319, label %4316

4316:                                             ; preds = %4307
  %4317 = call i32 @sisnan_(ptr noundef %18)
  %4318 = icmp ne i32 %4317, 0
  br i1 %4318, label %4319, label %4321

4319:                                             ; preds = %4316, %4307
  %4320 = load float, ptr %18, align 4, !tbaa !11
  store float %4320, ptr %25, align 4, !tbaa !11
  br label %4321

4321:                                             ; preds = %4319, %4316
  br label %4322

4322:                                             ; preds = %4321
  %4323 = load i32, ptr %19, align 4, !tbaa !9
  %4324 = add nsw i32 %4323, 1
  store i32 %4324, ptr %19, align 4, !tbaa !9
  br label %4303, !llvm.loop !103

4325:                                             ; preds = %4303
  br label %4709

4326:                                             ; preds = %3926
  %4327 = load ptr, ptr %11, align 8, !tbaa !5
  %4328 = load i32, ptr %4327, align 4, !tbaa !9
  %4329 = sub nsw i32 %4328, 1
  store i32 %4329, ptr %14, align 4, !tbaa !9
  %4330 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4330, ptr %19, align 4, !tbaa !9
  br label %4331

4331:                                             ; preds = %4340, %4326
  %4332 = load i32, ptr %19, align 4, !tbaa !9
  %4333 = load i32, ptr %14, align 4, !tbaa !9
  %4334 = icmp sle i32 %4332, %4333
  br i1 %4334, label %4335, label %4343

4335:                                             ; preds = %4331
  %4336 = load ptr, ptr %13, align 8, !tbaa !5
  %4337 = load i32, ptr %19, align 4, !tbaa !9
  %4338 = sext i32 %4337 to i64
  %4339 = getelementptr inbounds float, ptr %4336, i64 %4338
  store float 0.000000e+00, ptr %4339, align 4, !tbaa !11
  br label %4340

4340:                                             ; preds = %4335
  %4341 = load i32, ptr %19, align 4, !tbaa !9
  %4342 = add nsw i32 %4341, 1
  store i32 %4342, ptr %19, align 4, !tbaa !9
  br label %4331, !llvm.loop !104

4343:                                             ; preds = %4331
  %4344 = load ptr, ptr %12, align 8, !tbaa !5
  %4345 = getelementptr inbounds %struct.complex, ptr %4344, i64 0
  %4346 = getelementptr inbounds %struct.complex, ptr %4345, i32 0, i32 0
  %4347 = load float, ptr %4346, align 4, !tbaa !13
  store float %4347, ptr %17, align 4, !tbaa !11
  %4348 = load float, ptr %17, align 4, !tbaa !11
  %4349 = fcmp oge float %4348, 0.000000e+00
  br i1 %4349, label %4350, label %4352

4350:                                             ; preds = %4343
  %4351 = load float, ptr %17, align 4, !tbaa !11
  br label %4355

4352:                                             ; preds = %4343
  %4353 = load float, ptr %17, align 4, !tbaa !11
  %4354 = fneg float %4353
  br label %4355

4355:                                             ; preds = %4352, %4350
  %4356 = phi float [ %4351, %4350 ], [ %4354, %4352 ]
  store float %4356, ptr %23, align 4, !tbaa !11
  %4357 = load i32, ptr %21, align 4, !tbaa !9
  %4358 = sub nsw i32 %4357, 1
  store i32 %4358, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %4359

4359:                                             ; preds = %4389, %4355
  %4360 = load i32, ptr %19, align 4, !tbaa !9
  %4361 = load i32, ptr %14, align 4, !tbaa !9
  %4362 = icmp sle i32 %4360, %4361
  br i1 %4362, label %4363, label %4392

4363:                                             ; preds = %4359
  %4364 = load ptr, ptr %12, align 8, !tbaa !5
  %4365 = load i32, ptr %19, align 4, !tbaa !9
  %4366 = sext i32 %4365 to i64
  %4367 = getelementptr inbounds %struct.complex, ptr %4364, i64 %4366
  %4368 = call <2 x float> @Cf(ptr noundef %4367)
  store <2 x float> %4368, ptr %135, align 4
  %4369 = getelementptr inbounds { float, float }, ptr %135, i32 0, i32 0
  %4370 = load float, ptr %4369, align 4
  %4371 = getelementptr inbounds { float, float }, ptr %135, i32 0, i32 1
  %4372 = load float, ptr %4371, align 4
  %4373 = getelementptr inbounds { float, float }, ptr %136, i32 0, i32 0
  %4374 = getelementptr inbounds { float, float }, ptr %136, i32 0, i32 1
  store float %4370, ptr %4373, align 4
  store float %4372, ptr %4374, align 4
  %4375 = load <2 x float>, ptr %136, align 4
  %4376 = call float @cabsf(<2 x float> noundef %4375) #6
  store float %4376, ptr %27, align 4, !tbaa !11
  %4377 = load float, ptr %27, align 4, !tbaa !11
  %4378 = load ptr, ptr %13, align 8, !tbaa !5
  %4379 = load i32, ptr %19, align 4, !tbaa !9
  %4380 = load i32, ptr %21, align 4, !tbaa !9
  %4381 = add nsw i32 %4379, %4380
  %4382 = sext i32 %4381 to i64
  %4383 = getelementptr inbounds float, ptr %4378, i64 %4382
  %4384 = load float, ptr %4383, align 4, !tbaa !11
  %4385 = fadd float %4384, %4377
  store float %4385, ptr %4383, align 4, !tbaa !11
  %4386 = load float, ptr %27, align 4, !tbaa !11
  %4387 = load float, ptr %23, align 4, !tbaa !11
  %4388 = fadd float %4387, %4386
  store float %4388, ptr %23, align 4, !tbaa !11
  br label %4389

4389:                                             ; preds = %4363
  %4390 = load i32, ptr %19, align 4, !tbaa !9
  %4391 = add nsw i32 %4390, 1
  store i32 %4391, ptr %19, align 4, !tbaa !9
  br label %4359, !llvm.loop !105

4392:                                             ; preds = %4359
  %4393 = load float, ptr %23, align 4, !tbaa !11
  %4394 = load ptr, ptr %13, align 8, !tbaa !5
  %4395 = load i32, ptr %21, align 4, !tbaa !9
  %4396 = sext i32 %4395 to i64
  %4397 = getelementptr inbounds float, ptr %4394, i64 %4396
  %4398 = load float, ptr %4397, align 4, !tbaa !11
  %4399 = fadd float %4398, %4393
  store float %4399, ptr %4397, align 4, !tbaa !11
  %4400 = load i32, ptr %21, align 4, !tbaa !9
  %4401 = sub nsw i32 %4400, 1
  store i32 %4401, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %4402

4402:                                             ; preds = %4551, %4392
  %4403 = load i32, ptr %20, align 4, !tbaa !9
  %4404 = load i32, ptr %14, align 4, !tbaa !9
  %4405 = icmp sle i32 %4403, %4404
  br i1 %4405, label %4406, label %4554

4406:                                             ; preds = %4402
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %4407 = load i32, ptr %20, align 4, !tbaa !9
  %4408 = sub nsw i32 %4407, 2
  store i32 %4408, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %4409

4409:                                             ; preds = %4441, %4406
  %4410 = load i32, ptr %19, align 4, !tbaa !9
  %4411 = load i32, ptr %15, align 4, !tbaa !9
  %4412 = icmp sle i32 %4410, %4411
  br i1 %4412, label %4413, label %4444

4413:                                             ; preds = %4409
  %4414 = load ptr, ptr %12, align 8, !tbaa !5
  %4415 = load i32, ptr %19, align 4, !tbaa !9
  %4416 = load i32, ptr %20, align 4, !tbaa !9
  %4417 = load i32, ptr %28, align 4, !tbaa !9
  %4418 = mul nsw i32 %4416, %4417
  %4419 = add nsw i32 %4415, %4418
  %4420 = sext i32 %4419 to i64
  %4421 = getelementptr inbounds %struct.complex, ptr %4414, i64 %4420
  %4422 = call <2 x float> @Cf(ptr noundef %4421)
  store <2 x float> %4422, ptr %137, align 4
  %4423 = getelementptr inbounds { float, float }, ptr %137, i32 0, i32 0
  %4424 = load float, ptr %4423, align 4
  %4425 = getelementptr inbounds { float, float }, ptr %137, i32 0, i32 1
  %4426 = load float, ptr %4425, align 4
  %4427 = getelementptr inbounds { float, float }, ptr %138, i32 0, i32 0
  %4428 = getelementptr inbounds { float, float }, ptr %138, i32 0, i32 1
  store float %4424, ptr %4427, align 4
  store float %4426, ptr %4428, align 4
  %4429 = load <2 x float>, ptr %138, align 4
  %4430 = call float @cabsf(<2 x float> noundef %4429) #6
  store float %4430, ptr %27, align 4, !tbaa !11
  %4431 = load float, ptr %27, align 4, !tbaa !11
  %4432 = load ptr, ptr %13, align 8, !tbaa !5
  %4433 = load i32, ptr %19, align 4, !tbaa !9
  %4434 = sext i32 %4433 to i64
  %4435 = getelementptr inbounds float, ptr %4432, i64 %4434
  %4436 = load float, ptr %4435, align 4, !tbaa !11
  %4437 = fadd float %4436, %4431
  store float %4437, ptr %4435, align 4, !tbaa !11
  %4438 = load float, ptr %27, align 4, !tbaa !11
  %4439 = load float, ptr %23, align 4, !tbaa !11
  %4440 = fadd float %4439, %4438
  store float %4440, ptr %23, align 4, !tbaa !11
  br label %4441

4441:                                             ; preds = %4413
  %4442 = load i32, ptr %19, align 4, !tbaa !9
  %4443 = add nsw i32 %4442, 1
  store i32 %4443, ptr %19, align 4, !tbaa !9
  br label %4409, !llvm.loop !106

4444:                                             ; preds = %4409
  %4445 = load i32, ptr %19, align 4, !tbaa !9
  %4446 = load i32, ptr %20, align 4, !tbaa !9
  %4447 = load i32, ptr %28, align 4, !tbaa !9
  %4448 = mul nsw i32 %4446, %4447
  %4449 = add nsw i32 %4445, %4448
  store i32 %4449, ptr %15, align 4, !tbaa !9
  %4450 = load ptr, ptr %12, align 8, !tbaa !5
  %4451 = load i32, ptr %15, align 4, !tbaa !9
  %4452 = sext i32 %4451 to i64
  %4453 = getelementptr inbounds %struct.complex, ptr %4450, i64 %4452
  %4454 = getelementptr inbounds %struct.complex, ptr %4453, i32 0, i32 0
  %4455 = load float, ptr %4454, align 4, !tbaa !13
  store float %4455, ptr %17, align 4, !tbaa !11
  %4456 = load float, ptr %17, align 4, !tbaa !11
  %4457 = fcmp oge float %4456, 0.000000e+00
  br i1 %4457, label %4458, label %4460

4458:                                             ; preds = %4444
  %4459 = load float, ptr %17, align 4, !tbaa !11
  br label %4463

4460:                                             ; preds = %4444
  %4461 = load float, ptr %17, align 4, !tbaa !11
  %4462 = fneg float %4461
  br label %4463

4463:                                             ; preds = %4460, %4458
  %4464 = phi float [ %4459, %4458 ], [ %4462, %4460 ]
  store float %4464, ptr %27, align 4, !tbaa !11
  %4465 = load float, ptr %27, align 4, !tbaa !11
  %4466 = load float, ptr %23, align 4, !tbaa !11
  %4467 = fadd float %4466, %4465
  store float %4467, ptr %23, align 4, !tbaa !11
  %4468 = load float, ptr %23, align 4, !tbaa !11
  %4469 = load ptr, ptr %13, align 8, !tbaa !5
  %4470 = load i32, ptr %20, align 4, !tbaa !9
  %4471 = sub nsw i32 %4470, 1
  %4472 = sext i32 %4471 to i64
  %4473 = getelementptr inbounds float, ptr %4469, i64 %4472
  store float %4468, ptr %4473, align 4, !tbaa !11
  %4474 = load i32, ptr %19, align 4, !tbaa !9
  %4475 = add nsw i32 %4474, 1
  store i32 %4475, ptr %19, align 4, !tbaa !9
  %4476 = load i32, ptr %19, align 4, !tbaa !9
  %4477 = load i32, ptr %20, align 4, !tbaa !9
  %4478 = load i32, ptr %28, align 4, !tbaa !9
  %4479 = mul nsw i32 %4477, %4478
  %4480 = add nsw i32 %4476, %4479
  store i32 %4480, ptr %15, align 4, !tbaa !9
  %4481 = load ptr, ptr %12, align 8, !tbaa !5
  %4482 = load i32, ptr %15, align 4, !tbaa !9
  %4483 = sext i32 %4482 to i64
  %4484 = getelementptr inbounds %struct.complex, ptr %4481, i64 %4483
  %4485 = getelementptr inbounds %struct.complex, ptr %4484, i32 0, i32 0
  %4486 = load float, ptr %4485, align 4, !tbaa !13
  store float %4486, ptr %17, align 4, !tbaa !11
  %4487 = load float, ptr %17, align 4, !tbaa !11
  %4488 = fcmp oge float %4487, 0.000000e+00
  br i1 %4488, label %4489, label %4491

4489:                                             ; preds = %4463
  %4490 = load float, ptr %17, align 4, !tbaa !11
  br label %4494

4491:                                             ; preds = %4463
  %4492 = load float, ptr %17, align 4, !tbaa !11
  %4493 = fneg float %4492
  br label %4494

4494:                                             ; preds = %4491, %4489
  %4495 = phi float [ %4490, %4489 ], [ %4493, %4491 ]
  store float %4495, ptr %27, align 4, !tbaa !11
  %4496 = load float, ptr %27, align 4, !tbaa !11
  store float %4496, ptr %23, align 4, !tbaa !11
  %4497 = load ptr, ptr %11, align 8, !tbaa !5
  %4498 = load i32, ptr %4497, align 4, !tbaa !9
  %4499 = sub nsw i32 %4498, 1
  store i32 %4499, ptr %15, align 4, !tbaa !9
  %4500 = load i32, ptr %21, align 4, !tbaa !9
  %4501 = load i32, ptr %20, align 4, !tbaa !9
  %4502 = add nsw i32 %4500, %4501
  %4503 = add nsw i32 %4502, 1
  store i32 %4503, ptr %22, align 4, !tbaa !9
  br label %4504

4504:                                             ; preds = %4538, %4494
  %4505 = load i32, ptr %22, align 4, !tbaa !9
  %4506 = load i32, ptr %15, align 4, !tbaa !9
  %4507 = icmp sle i32 %4505, %4506
  br i1 %4507, label %4508, label %4541

4508:                                             ; preds = %4504
  %4509 = load i32, ptr %19, align 4, !tbaa !9
  %4510 = add nsw i32 %4509, 1
  store i32 %4510, ptr %19, align 4, !tbaa !9
  %4511 = load ptr, ptr %12, align 8, !tbaa !5
  %4512 = load i32, ptr %19, align 4, !tbaa !9
  %4513 = load i32, ptr %20, align 4, !tbaa !9
  %4514 = load i32, ptr %28, align 4, !tbaa !9
  %4515 = mul nsw i32 %4513, %4514
  %4516 = add nsw i32 %4512, %4515
  %4517 = sext i32 %4516 to i64
  %4518 = getelementptr inbounds %struct.complex, ptr %4511, i64 %4517
  %4519 = call <2 x float> @Cf(ptr noundef %4518)
  store <2 x float> %4519, ptr %139, align 4
  %4520 = getelementptr inbounds { float, float }, ptr %139, i32 0, i32 0
  %4521 = load float, ptr %4520, align 4
  %4522 = getelementptr inbounds { float, float }, ptr %139, i32 0, i32 1
  %4523 = load float, ptr %4522, align 4
  %4524 = getelementptr inbounds { float, float }, ptr %140, i32 0, i32 0
  %4525 = getelementptr inbounds { float, float }, ptr %140, i32 0, i32 1
  store float %4521, ptr %4524, align 4
  store float %4523, ptr %4525, align 4
  %4526 = load <2 x float>, ptr %140, align 4
  %4527 = call float @cabsf(<2 x float> noundef %4526) #6
  store float %4527, ptr %27, align 4, !tbaa !11
  %4528 = load float, ptr %27, align 4, !tbaa !11
  %4529 = load float, ptr %23, align 4, !tbaa !11
  %4530 = fadd float %4529, %4528
  store float %4530, ptr %23, align 4, !tbaa !11
  %4531 = load float, ptr %27, align 4, !tbaa !11
  %4532 = load ptr, ptr %13, align 8, !tbaa !5
  %4533 = load i32, ptr %22, align 4, !tbaa !9
  %4534 = sext i32 %4533 to i64
  %4535 = getelementptr inbounds float, ptr %4532, i64 %4534
  %4536 = load float, ptr %4535, align 4, !tbaa !11
  %4537 = fadd float %4536, %4531
  store float %4537, ptr %4535, align 4, !tbaa !11
  br label %4538

4538:                                             ; preds = %4508
  %4539 = load i32, ptr %22, align 4, !tbaa !9
  %4540 = add nsw i32 %4539, 1
  store i32 %4540, ptr %22, align 4, !tbaa !9
  br label %4504, !llvm.loop !107

4541:                                             ; preds = %4504
  %4542 = load float, ptr %23, align 4, !tbaa !11
  %4543 = load ptr, ptr %13, align 8, !tbaa !5
  %4544 = load i32, ptr %21, align 4, !tbaa !9
  %4545 = load i32, ptr %20, align 4, !tbaa !9
  %4546 = add nsw i32 %4544, %4545
  %4547 = sext i32 %4546 to i64
  %4548 = getelementptr inbounds float, ptr %4543, i64 %4547
  %4549 = load float, ptr %4548, align 4, !tbaa !11
  %4550 = fadd float %4549, %4542
  store float %4550, ptr %4548, align 4, !tbaa !11
  br label %4551

4551:                                             ; preds = %4541
  %4552 = load i32, ptr %20, align 4, !tbaa !9
  %4553 = add nsw i32 %4552, 1
  store i32 %4553, ptr %20, align 4, !tbaa !9
  br label %4402, !llvm.loop !108

4554:                                             ; preds = %4402
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %4555 = load i32, ptr %21, align 4, !tbaa !9
  %4556 = sub nsw i32 %4555, 2
  store i32 %4556, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %4557

4557:                                             ; preds = %4589, %4554
  %4558 = load i32, ptr %19, align 4, !tbaa !9
  %4559 = load i32, ptr %14, align 4, !tbaa !9
  %4560 = icmp sle i32 %4558, %4559
  br i1 %4560, label %4561, label %4592

4561:                                             ; preds = %4557
  %4562 = load ptr, ptr %12, align 8, !tbaa !5
  %4563 = load i32, ptr %19, align 4, !tbaa !9
  %4564 = load i32, ptr %20, align 4, !tbaa !9
  %4565 = load i32, ptr %28, align 4, !tbaa !9
  %4566 = mul nsw i32 %4564, %4565
  %4567 = add nsw i32 %4563, %4566
  %4568 = sext i32 %4567 to i64
  %4569 = getelementptr inbounds %struct.complex, ptr %4562, i64 %4568
  %4570 = call <2 x float> @Cf(ptr noundef %4569)
  store <2 x float> %4570, ptr %141, align 4
  %4571 = getelementptr inbounds { float, float }, ptr %141, i32 0, i32 0
  %4572 = load float, ptr %4571, align 4
  %4573 = getelementptr inbounds { float, float }, ptr %141, i32 0, i32 1
  %4574 = load float, ptr %4573, align 4
  %4575 = getelementptr inbounds { float, float }, ptr %142, i32 0, i32 0
  %4576 = getelementptr inbounds { float, float }, ptr %142, i32 0, i32 1
  store float %4572, ptr %4575, align 4
  store float %4574, ptr %4576, align 4
  %4577 = load <2 x float>, ptr %142, align 4
  %4578 = call float @cabsf(<2 x float> noundef %4577) #6
  store float %4578, ptr %27, align 4, !tbaa !11
  %4579 = load float, ptr %27, align 4, !tbaa !11
  %4580 = load ptr, ptr %13, align 8, !tbaa !5
  %4581 = load i32, ptr %19, align 4, !tbaa !9
  %4582 = sext i32 %4581 to i64
  %4583 = getelementptr inbounds float, ptr %4580, i64 %4582
  %4584 = load float, ptr %4583, align 4, !tbaa !11
  %4585 = fadd float %4584, %4579
  store float %4585, ptr %4583, align 4, !tbaa !11
  %4586 = load float, ptr %27, align 4, !tbaa !11
  %4587 = load float, ptr %23, align 4, !tbaa !11
  %4588 = fadd float %4587, %4586
  store float %4588, ptr %23, align 4, !tbaa !11
  br label %4589

4589:                                             ; preds = %4561
  %4590 = load i32, ptr %19, align 4, !tbaa !9
  %4591 = add nsw i32 %4590, 1
  store i32 %4591, ptr %19, align 4, !tbaa !9
  br label %4557, !llvm.loop !109

4592:                                             ; preds = %4557
  %4593 = load i32, ptr %19, align 4, !tbaa !9
  %4594 = load i32, ptr %20, align 4, !tbaa !9
  %4595 = load i32, ptr %28, align 4, !tbaa !9
  %4596 = mul nsw i32 %4594, %4595
  %4597 = add nsw i32 %4593, %4596
  store i32 %4597, ptr %14, align 4, !tbaa !9
  %4598 = load ptr, ptr %12, align 8, !tbaa !5
  %4599 = load i32, ptr %14, align 4, !tbaa !9
  %4600 = sext i32 %4599 to i64
  %4601 = getelementptr inbounds %struct.complex, ptr %4598, i64 %4600
  %4602 = getelementptr inbounds %struct.complex, ptr %4601, i32 0, i32 0
  %4603 = load float, ptr %4602, align 4, !tbaa !13
  store float %4603, ptr %17, align 4, !tbaa !11
  %4604 = load float, ptr %17, align 4, !tbaa !11
  %4605 = fcmp oge float %4604, 0.000000e+00
  br i1 %4605, label %4606, label %4608

4606:                                             ; preds = %4592
  %4607 = load float, ptr %17, align 4, !tbaa !11
  br label %4611

4608:                                             ; preds = %4592
  %4609 = load float, ptr %17, align 4, !tbaa !11
  %4610 = fneg float %4609
  br label %4611

4611:                                             ; preds = %4608, %4606
  %4612 = phi float [ %4607, %4606 ], [ %4610, %4608 ]
  store float %4612, ptr %27, align 4, !tbaa !11
  %4613 = load float, ptr %27, align 4, !tbaa !11
  %4614 = load float, ptr %23, align 4, !tbaa !11
  %4615 = fadd float %4614, %4613
  store float %4615, ptr %23, align 4, !tbaa !11
  %4616 = load float, ptr %23, align 4, !tbaa !11
  %4617 = load ptr, ptr %13, align 8, !tbaa !5
  %4618 = load i32, ptr %19, align 4, !tbaa !9
  %4619 = sext i32 %4618 to i64
  %4620 = getelementptr inbounds float, ptr %4617, i64 %4619
  store float %4616, ptr %4620, align 4, !tbaa !11
  %4621 = load ptr, ptr %11, align 8, !tbaa !5
  %4622 = load i32, ptr %4621, align 4, !tbaa !9
  store i32 %4622, ptr %14, align 4, !tbaa !9
  %4623 = load i32, ptr %21, align 4, !tbaa !9
  %4624 = add nsw i32 %4623, 1
  store i32 %4624, ptr %20, align 4, !tbaa !9
  br label %4625

4625:                                             ; preds = %4676, %4611
  %4626 = load i32, ptr %20, align 4, !tbaa !9
  %4627 = load i32, ptr %14, align 4, !tbaa !9
  %4628 = icmp sle i32 %4626, %4627
  br i1 %4628, label %4629, label %4679

4629:                                             ; preds = %4625
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  %4630 = load i32, ptr %21, align 4, !tbaa !9
  %4631 = sub nsw i32 %4630, 1
  store i32 %4631, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %4632

4632:                                             ; preds = %4664, %4629
  %4633 = load i32, ptr %19, align 4, !tbaa !9
  %4634 = load i32, ptr %15, align 4, !tbaa !9
  %4635 = icmp sle i32 %4633, %4634
  br i1 %4635, label %4636, label %4667

4636:                                             ; preds = %4632
  %4637 = load ptr, ptr %12, align 8, !tbaa !5
  %4638 = load i32, ptr %19, align 4, !tbaa !9
  %4639 = load i32, ptr %20, align 4, !tbaa !9
  %4640 = load i32, ptr %28, align 4, !tbaa !9
  %4641 = mul nsw i32 %4639, %4640
  %4642 = add nsw i32 %4638, %4641
  %4643 = sext i32 %4642 to i64
  %4644 = getelementptr inbounds %struct.complex, ptr %4637, i64 %4643
  %4645 = call <2 x float> @Cf(ptr noundef %4644)
  store <2 x float> %4645, ptr %143, align 4
  %4646 = getelementptr inbounds { float, float }, ptr %143, i32 0, i32 0
  %4647 = load float, ptr %4646, align 4
  %4648 = getelementptr inbounds { float, float }, ptr %143, i32 0, i32 1
  %4649 = load float, ptr %4648, align 4
  %4650 = getelementptr inbounds { float, float }, ptr %144, i32 0, i32 0
  %4651 = getelementptr inbounds { float, float }, ptr %144, i32 0, i32 1
  store float %4647, ptr %4650, align 4
  store float %4649, ptr %4651, align 4
  %4652 = load <2 x float>, ptr %144, align 4
  %4653 = call float @cabsf(<2 x float> noundef %4652) #6
  store float %4653, ptr %27, align 4, !tbaa !11
  %4654 = load float, ptr %27, align 4, !tbaa !11
  %4655 = load ptr, ptr %13, align 8, !tbaa !5
  %4656 = load i32, ptr %19, align 4, !tbaa !9
  %4657 = sext i32 %4656 to i64
  %4658 = getelementptr inbounds float, ptr %4655, i64 %4657
  %4659 = load float, ptr %4658, align 4, !tbaa !11
  %4660 = fadd float %4659, %4654
  store float %4660, ptr %4658, align 4, !tbaa !11
  %4661 = load float, ptr %27, align 4, !tbaa !11
  %4662 = load float, ptr %23, align 4, !tbaa !11
  %4663 = fadd float %4662, %4661
  store float %4663, ptr %23, align 4, !tbaa !11
  br label %4664

4664:                                             ; preds = %4636
  %4665 = load i32, ptr %19, align 4, !tbaa !9
  %4666 = add nsw i32 %4665, 1
  store i32 %4666, ptr %19, align 4, !tbaa !9
  br label %4632, !llvm.loop !110

4667:                                             ; preds = %4632
  %4668 = load float, ptr %23, align 4, !tbaa !11
  %4669 = load ptr, ptr %13, align 8, !tbaa !5
  %4670 = load i32, ptr %20, align 4, !tbaa !9
  %4671 = sub nsw i32 %4670, 1
  %4672 = sext i32 %4671 to i64
  %4673 = getelementptr inbounds float, ptr %4669, i64 %4672
  %4674 = load float, ptr %4673, align 4, !tbaa !11
  %4675 = fadd float %4674, %4668
  store float %4675, ptr %4673, align 4, !tbaa !11
  br label %4676

4676:                                             ; preds = %4667
  %4677 = load i32, ptr %20, align 4, !tbaa !9
  %4678 = add nsw i32 %4677, 1
  store i32 %4678, ptr %20, align 4, !tbaa !9
  br label %4625, !llvm.loop !111

4679:                                             ; preds = %4625
  %4680 = load ptr, ptr %13, align 8, !tbaa !5
  %4681 = getelementptr inbounds float, ptr %4680, i64 0
  %4682 = load float, ptr %4681, align 4, !tbaa !11
  store float %4682, ptr %25, align 4, !tbaa !11
  %4683 = load ptr, ptr %11, align 8, !tbaa !5
  %4684 = load i32, ptr %4683, align 4, !tbaa !9
  %4685 = sub nsw i32 %4684, 1
  store i32 %4685, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %4686

4686:                                             ; preds = %4705, %4679
  %4687 = load i32, ptr %19, align 4, !tbaa !9
  %4688 = load i32, ptr %14, align 4, !tbaa !9
  %4689 = icmp sle i32 %4687, %4688
  br i1 %4689, label %4690, label %4708

4690:                                             ; preds = %4686
  %4691 = load ptr, ptr %13, align 8, !tbaa !5
  %4692 = load i32, ptr %19, align 4, !tbaa !9
  %4693 = sext i32 %4692 to i64
  %4694 = getelementptr inbounds float, ptr %4691, i64 %4693
  %4695 = load float, ptr %4694, align 4, !tbaa !11
  store float %4695, ptr %18, align 4, !tbaa !11
  %4696 = load float, ptr %25, align 4, !tbaa !11
  %4697 = load float, ptr %18, align 4, !tbaa !11
  %4698 = fcmp olt float %4696, %4697
  br i1 %4698, label %4702, label %4699

4699:                                             ; preds = %4690
  %4700 = call i32 @sisnan_(ptr noundef %18)
  %4701 = icmp ne i32 %4700, 0
  br i1 %4701, label %4702, label %4704

4702:                                             ; preds = %4699, %4690
  %4703 = load float, ptr %18, align 4, !tbaa !11
  store float %4703, ptr %25, align 4, !tbaa !11
  br label %4704

4704:                                             ; preds = %4702, %4699
  br label %4705

4705:                                             ; preds = %4704
  %4706 = load i32, ptr %19, align 4, !tbaa !9
  %4707 = add nsw i32 %4706, 1
  store i32 %4707, ptr %19, align 4, !tbaa !9
  br label %4686, !llvm.loop !112

4708:                                             ; preds = %4686
  br label %4709

4709:                                             ; preds = %4708, %4325
  br label %4710

4710:                                             ; preds = %4709, %3925
  br label %4711

4711:                                             ; preds = %4710, %3260
  br label %6158

4712:                                             ; preds = %2407
  %4713 = load ptr, ptr %8, align 8, !tbaa !5
  %4714 = call i32 @lsame_(ptr noundef %4713, ptr noundef @.str.5)
  %4715 = icmp ne i32 %4714, 0
  br i1 %4715, label %4720, label %4716

4716:                                             ; preds = %4712
  %4717 = load ptr, ptr %8, align 8, !tbaa !5
  %4718 = call i32 @lsame_(ptr noundef %4717, ptr noundef @.str.6)
  %4719 = icmp ne i32 %4718, 0
  br i1 %4719, label %4720, label %6157

4720:                                             ; preds = %4716, %4712
  %4721 = load ptr, ptr %11, align 8, !tbaa !5
  %4722 = load i32, ptr %4721, align 4, !tbaa !9
  %4723 = add nsw i32 %4722, 1
  %4724 = sdiv i32 %4723, 2
  store i32 %4724, ptr %21, align 4, !tbaa !9
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  store float 1.000000e+00, ptr %23, align 4, !tbaa !11
  %4725 = load i32, ptr %30, align 4, !tbaa !9
  %4726 = icmp eq i32 %4725, 1
  br i1 %4726, label %4727, label %5438

4727:                                             ; preds = %4720
  %4728 = load i32, ptr %29, align 4, !tbaa !9
  %4729 = icmp eq i32 %4728, 1
  br i1 %4729, label %4730, label %5062

4730:                                             ; preds = %4727
  %4731 = load i32, ptr %31, align 4, !tbaa !9
  %4732 = icmp eq i32 %4731, 0
  br i1 %4732, label %4733, label %4901

4733:                                             ; preds = %4730
  %4734 = load i32, ptr %21, align 4, !tbaa !9
  %4735 = sub nsw i32 %4734, 3
  store i32 %4735, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %4736

4736:                                             ; preds = %4756, %4733
  %4737 = load i32, ptr %20, align 4, !tbaa !9
  %4738 = load i32, ptr %14, align 4, !tbaa !9
  %4739 = icmp sle i32 %4737, %4738
  br i1 %4739, label %4740, label %4759

4740:                                             ; preds = %4736
  %4741 = load i32, ptr %21, align 4, !tbaa !9
  %4742 = load i32, ptr %20, align 4, !tbaa !9
  %4743 = sub nsw i32 %4741, %4742
  %4744 = sub nsw i32 %4743, 2
  store i32 %4744, ptr %15, align 4, !tbaa !9
  %4745 = load ptr, ptr %12, align 8, !tbaa !5
  %4746 = load i32, ptr %21, align 4, !tbaa !9
  %4747 = load i32, ptr %20, align 4, !tbaa !9
  %4748 = add nsw i32 %4746, %4747
  %4749 = add nsw i32 %4748, 1
  %4750 = load i32, ptr %20, align 4, !tbaa !9
  %4751 = load i32, ptr %28, align 4, !tbaa !9
  %4752 = mul nsw i32 %4750, %4751
  %4753 = add nsw i32 %4749, %4752
  %4754 = sext i32 %4753 to i64
  %4755 = getelementptr inbounds %struct.complex, ptr %4745, i64 %4754
  call void @classq_(ptr noundef %15, ptr noundef %4755, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %4756

4756:                                             ; preds = %4740
  %4757 = load i32, ptr %20, align 4, !tbaa !9
  %4758 = add nsw i32 %4757, 1
  store i32 %4758, ptr %20, align 4, !tbaa !9
  br label %4736, !llvm.loop !113

4759:                                             ; preds = %4736
  %4760 = load i32, ptr %21, align 4, !tbaa !9
  %4761 = sub nsw i32 %4760, 1
  store i32 %4761, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %4762

4762:                                             ; preds = %4777, %4759
  %4763 = load i32, ptr %20, align 4, !tbaa !9
  %4764 = load i32, ptr %14, align 4, !tbaa !9
  %4765 = icmp sle i32 %4763, %4764
  br i1 %4765, label %4766, label %4780

4766:                                             ; preds = %4762
  %4767 = load i32, ptr %21, align 4, !tbaa !9
  %4768 = load i32, ptr %20, align 4, !tbaa !9
  %4769 = add nsw i32 %4767, %4768
  %4770 = sub nsw i32 %4769, 1
  store i32 %4770, ptr %15, align 4, !tbaa !9
  %4771 = load ptr, ptr %12, align 8, !tbaa !5
  %4772 = load i32, ptr %20, align 4, !tbaa !9
  %4773 = load i32, ptr %28, align 4, !tbaa !9
  %4774 = mul nsw i32 %4772, %4773
  %4775 = sext i32 %4774 to i64
  %4776 = getelementptr inbounds %struct.complex, ptr %4771, i64 %4775
  call void @classq_(ptr noundef %15, ptr noundef %4776, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %4777

4777:                                             ; preds = %4766
  %4778 = load i32, ptr %20, align 4, !tbaa !9
  %4779 = add nsw i32 %4778, 1
  store i32 %4779, ptr %20, align 4, !tbaa !9
  br label %4762, !llvm.loop !114

4780:                                             ; preds = %4762
  %4781 = load float, ptr %23, align 4, !tbaa !11
  %4782 = load float, ptr %23, align 4, !tbaa !11
  %4783 = fadd float %4782, %4781
  store float %4783, ptr %23, align 4, !tbaa !11
  %4784 = load i32, ptr %21, align 4, !tbaa !9
  %4785 = sub nsw i32 %4784, 1
  store i32 %4785, ptr %22, align 4, !tbaa !9
  %4786 = load i32, ptr %21, align 4, !tbaa !9
  %4787 = sub nsw i32 %4786, 2
  store i32 %4787, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %4788

4788:                                             ; preds = %4864, %4780
  %4789 = load i32, ptr %19, align 4, !tbaa !9
  %4790 = load i32, ptr %14, align 4, !tbaa !9
  %4791 = icmp sle i32 %4789, %4790
  br i1 %4791, label %4792, label %4867

4792:                                             ; preds = %4788
  %4793 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4793, ptr %15, align 4, !tbaa !9
  %4794 = load ptr, ptr %12, align 8, !tbaa !5
  %4795 = load i32, ptr %15, align 4, !tbaa !9
  %4796 = sext i32 %4795 to i64
  %4797 = getelementptr inbounds %struct.complex, ptr %4794, i64 %4796
  %4798 = getelementptr inbounds %struct.complex, ptr %4797, i32 0, i32 0
  %4799 = load float, ptr %4798, align 4, !tbaa !13
  store float %4799, ptr %27, align 4, !tbaa !11
  %4800 = load float, ptr %27, align 4, !tbaa !11
  %4801 = fcmp une float %4800, 0.000000e+00
  br i1 %4801, label %4802, label %4825

4802:                                             ; preds = %4792
  %4803 = load float, ptr %24, align 4, !tbaa !11
  %4804 = load float, ptr %27, align 4, !tbaa !11
  %4805 = fcmp olt float %4803, %4804
  br i1 %4805, label %4806, label %4816

4806:                                             ; preds = %4802
  %4807 = load float, ptr %24, align 4, !tbaa !11
  %4808 = load float, ptr %27, align 4, !tbaa !11
  %4809 = fdiv float %4807, %4808
  store float %4809, ptr %17, align 4, !tbaa !11
  %4810 = load float, ptr %23, align 4, !tbaa !11
  %4811 = load float, ptr %17, align 4, !tbaa !11
  %4812 = load float, ptr %17, align 4, !tbaa !11
  %4813 = fmul float %4811, %4812
  %4814 = call float @llvm.fmuladd.f32(float %4810, float %4813, float 1.000000e+00)
  store float %4814, ptr %23, align 4, !tbaa !11
  %4815 = load float, ptr %27, align 4, !tbaa !11
  store float %4815, ptr %24, align 4, !tbaa !11
  br label %4824

4816:                                             ; preds = %4802
  %4817 = load float, ptr %27, align 4, !tbaa !11
  %4818 = load float, ptr %24, align 4, !tbaa !11
  %4819 = fdiv float %4817, %4818
  store float %4819, ptr %17, align 4, !tbaa !11
  %4820 = load float, ptr %17, align 4, !tbaa !11
  %4821 = load float, ptr %17, align 4, !tbaa !11
  %4822 = load float, ptr %23, align 4, !tbaa !11
  %4823 = call float @llvm.fmuladd.f32(float %4820, float %4821, float %4822)
  store float %4823, ptr %23, align 4, !tbaa !11
  br label %4824

4824:                                             ; preds = %4816, %4806
  br label %4825

4825:                                             ; preds = %4824, %4792
  %4826 = load i32, ptr %22, align 4, !tbaa !9
  %4827 = add nsw i32 %4826, 1
  store i32 %4827, ptr %15, align 4, !tbaa !9
  %4828 = load ptr, ptr %12, align 8, !tbaa !5
  %4829 = load i32, ptr %15, align 4, !tbaa !9
  %4830 = sext i32 %4829 to i64
  %4831 = getelementptr inbounds %struct.complex, ptr %4828, i64 %4830
  %4832 = getelementptr inbounds %struct.complex, ptr %4831, i32 0, i32 0
  %4833 = load float, ptr %4832, align 4, !tbaa !13
  store float %4833, ptr %27, align 4, !tbaa !11
  %4834 = load float, ptr %27, align 4, !tbaa !11
  %4835 = fcmp une float %4834, 0.000000e+00
  br i1 %4835, label %4836, label %4859

4836:                                             ; preds = %4825
  %4837 = load float, ptr %24, align 4, !tbaa !11
  %4838 = load float, ptr %27, align 4, !tbaa !11
  %4839 = fcmp olt float %4837, %4838
  br i1 %4839, label %4840, label %4850

4840:                                             ; preds = %4836
  %4841 = load float, ptr %24, align 4, !tbaa !11
  %4842 = load float, ptr %27, align 4, !tbaa !11
  %4843 = fdiv float %4841, %4842
  store float %4843, ptr %17, align 4, !tbaa !11
  %4844 = load float, ptr %23, align 4, !tbaa !11
  %4845 = load float, ptr %17, align 4, !tbaa !11
  %4846 = load float, ptr %17, align 4, !tbaa !11
  %4847 = fmul float %4845, %4846
  %4848 = call float @llvm.fmuladd.f32(float %4844, float %4847, float 1.000000e+00)
  store float %4848, ptr %23, align 4, !tbaa !11
  %4849 = load float, ptr %27, align 4, !tbaa !11
  store float %4849, ptr %24, align 4, !tbaa !11
  br label %4858

4850:                                             ; preds = %4836
  %4851 = load float, ptr %27, align 4, !tbaa !11
  %4852 = load float, ptr %24, align 4, !tbaa !11
  %4853 = fdiv float %4851, %4852
  store float %4853, ptr %17, align 4, !tbaa !11
  %4854 = load float, ptr %17, align 4, !tbaa !11
  %4855 = load float, ptr %17, align 4, !tbaa !11
  %4856 = load float, ptr %23, align 4, !tbaa !11
  %4857 = call float @llvm.fmuladd.f32(float %4854, float %4855, float %4856)
  store float %4857, ptr %23, align 4, !tbaa !11
  br label %4858

4858:                                             ; preds = %4850, %4840
  br label %4859

4859:                                             ; preds = %4858, %4825
  %4860 = load i32, ptr %22, align 4, !tbaa !9
  %4861 = load i32, ptr %28, align 4, !tbaa !9
  %4862 = add nsw i32 %4860, %4861
  %4863 = add nsw i32 %4862, 1
  store i32 %4863, ptr %22, align 4, !tbaa !9
  br label %4864

4864:                                             ; preds = %4859
  %4865 = load i32, ptr %19, align 4, !tbaa !9
  %4866 = add nsw i32 %4865, 1
  store i32 %4866, ptr %19, align 4, !tbaa !9
  br label %4788, !llvm.loop !115

4867:                                             ; preds = %4788
  %4868 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4868, ptr %14, align 4, !tbaa !9
  %4869 = load ptr, ptr %12, align 8, !tbaa !5
  %4870 = load i32, ptr %14, align 4, !tbaa !9
  %4871 = sext i32 %4870 to i64
  %4872 = getelementptr inbounds %struct.complex, ptr %4869, i64 %4871
  %4873 = getelementptr inbounds %struct.complex, ptr %4872, i32 0, i32 0
  %4874 = load float, ptr %4873, align 4, !tbaa !13
  store float %4874, ptr %27, align 4, !tbaa !11
  %4875 = load float, ptr %27, align 4, !tbaa !11
  %4876 = fcmp une float %4875, 0.000000e+00
  br i1 %4876, label %4877, label %4900

4877:                                             ; preds = %4867
  %4878 = load float, ptr %24, align 4, !tbaa !11
  %4879 = load float, ptr %27, align 4, !tbaa !11
  %4880 = fcmp olt float %4878, %4879
  br i1 %4880, label %4881, label %4891

4881:                                             ; preds = %4877
  %4882 = load float, ptr %24, align 4, !tbaa !11
  %4883 = load float, ptr %27, align 4, !tbaa !11
  %4884 = fdiv float %4882, %4883
  store float %4884, ptr %17, align 4, !tbaa !11
  %4885 = load float, ptr %23, align 4, !tbaa !11
  %4886 = load float, ptr %17, align 4, !tbaa !11
  %4887 = load float, ptr %17, align 4, !tbaa !11
  %4888 = fmul float %4886, %4887
  %4889 = call float @llvm.fmuladd.f32(float %4885, float %4888, float 1.000000e+00)
  store float %4889, ptr %23, align 4, !tbaa !11
  %4890 = load float, ptr %27, align 4, !tbaa !11
  store float %4890, ptr %24, align 4, !tbaa !11
  br label %4899

4891:                                             ; preds = %4877
  %4892 = load float, ptr %27, align 4, !tbaa !11
  %4893 = load float, ptr %24, align 4, !tbaa !11
  %4894 = fdiv float %4892, %4893
  store float %4894, ptr %17, align 4, !tbaa !11
  %4895 = load float, ptr %17, align 4, !tbaa !11
  %4896 = load float, ptr %17, align 4, !tbaa !11
  %4897 = load float, ptr %23, align 4, !tbaa !11
  %4898 = call float @llvm.fmuladd.f32(float %4895, float %4896, float %4897)
  store float %4898, ptr %23, align 4, !tbaa !11
  br label %4899

4899:                                             ; preds = %4891, %4881
  br label %4900

4900:                                             ; preds = %4899, %4867
  br label %5061

4901:                                             ; preds = %4730
  %4902 = load i32, ptr %21, align 4, !tbaa !9
  %4903 = sub nsw i32 %4902, 1
  store i32 %4903, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %4904

4904:                                             ; preds = %4923, %4901
  %4905 = load i32, ptr %20, align 4, !tbaa !9
  %4906 = load i32, ptr %14, align 4, !tbaa !9
  %4907 = icmp sle i32 %4905, %4906
  br i1 %4907, label %4908, label %4926

4908:                                             ; preds = %4904
  %4909 = load ptr, ptr %11, align 8, !tbaa !5
  %4910 = load i32, ptr %4909, align 4, !tbaa !9
  %4911 = load i32, ptr %20, align 4, !tbaa !9
  %4912 = sub nsw i32 %4910, %4911
  %4913 = sub nsw i32 %4912, 1
  store i32 %4913, ptr %15, align 4, !tbaa !9
  %4914 = load ptr, ptr %12, align 8, !tbaa !5
  %4915 = load i32, ptr %20, align 4, !tbaa !9
  %4916 = add nsw i32 %4915, 1
  %4917 = load i32, ptr %20, align 4, !tbaa !9
  %4918 = load i32, ptr %28, align 4, !tbaa !9
  %4919 = mul nsw i32 %4917, %4918
  %4920 = add nsw i32 %4916, %4919
  %4921 = sext i32 %4920 to i64
  %4922 = getelementptr inbounds %struct.complex, ptr %4914, i64 %4921
  call void @classq_(ptr noundef %15, ptr noundef %4922, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %4923

4923:                                             ; preds = %4908
  %4924 = load i32, ptr %20, align 4, !tbaa !9
  %4925 = add nsw i32 %4924, 1
  store i32 %4925, ptr %20, align 4, !tbaa !9
  br label %4904, !llvm.loop !116

4926:                                             ; preds = %4904
  %4927 = load i32, ptr %21, align 4, !tbaa !9
  %4928 = sub nsw i32 %4927, 2
  store i32 %4928, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %4929

4929:                                             ; preds = %4941, %4926
  %4930 = load i32, ptr %20, align 4, !tbaa !9
  %4931 = load i32, ptr %14, align 4, !tbaa !9
  %4932 = icmp sle i32 %4930, %4931
  br i1 %4932, label %4933, label %4944

4933:                                             ; preds = %4929
  %4934 = load ptr, ptr %12, align 8, !tbaa !5
  %4935 = load i32, ptr %20, align 4, !tbaa !9
  %4936 = add nsw i32 %4935, 1
  %4937 = load i32, ptr %28, align 4, !tbaa !9
  %4938 = mul nsw i32 %4936, %4937
  %4939 = sext i32 %4938 to i64
  %4940 = getelementptr inbounds %struct.complex, ptr %4934, i64 %4939
  call void @classq_(ptr noundef %20, ptr noundef %4940, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %4941

4941:                                             ; preds = %4933
  %4942 = load i32, ptr %20, align 4, !tbaa !9
  %4943 = add nsw i32 %4942, 1
  store i32 %4943, ptr %20, align 4, !tbaa !9
  br label %4929, !llvm.loop !117

4944:                                             ; preds = %4929
  %4945 = load float, ptr %23, align 4, !tbaa !11
  %4946 = load float, ptr %23, align 4, !tbaa !11
  %4947 = fadd float %4946, %4945
  store float %4947, ptr %23, align 4, !tbaa !11
  %4948 = load ptr, ptr %12, align 8, !tbaa !5
  %4949 = getelementptr inbounds %struct.complex, ptr %4948, i64 0
  %4950 = getelementptr inbounds %struct.complex, ptr %4949, i32 0, i32 0
  %4951 = load float, ptr %4950, align 4, !tbaa !13
  store float %4951, ptr %27, align 4, !tbaa !11
  %4952 = load float, ptr %27, align 4, !tbaa !11
  %4953 = fcmp une float %4952, 0.000000e+00
  br i1 %4953, label %4954, label %4977

4954:                                             ; preds = %4944
  %4955 = load float, ptr %24, align 4, !tbaa !11
  %4956 = load float, ptr %27, align 4, !tbaa !11
  %4957 = fcmp olt float %4955, %4956
  br i1 %4957, label %4958, label %4968

4958:                                             ; preds = %4954
  %4959 = load float, ptr %24, align 4, !tbaa !11
  %4960 = load float, ptr %27, align 4, !tbaa !11
  %4961 = fdiv float %4959, %4960
  store float %4961, ptr %17, align 4, !tbaa !11
  %4962 = load float, ptr %23, align 4, !tbaa !11
  %4963 = load float, ptr %17, align 4, !tbaa !11
  %4964 = load float, ptr %17, align 4, !tbaa !11
  %4965 = fmul float %4963, %4964
  %4966 = call float @llvm.fmuladd.f32(float %4962, float %4965, float 1.000000e+00)
  store float %4966, ptr %23, align 4, !tbaa !11
  %4967 = load float, ptr %27, align 4, !tbaa !11
  store float %4967, ptr %24, align 4, !tbaa !11
  br label %4976

4968:                                             ; preds = %4954
  %4969 = load float, ptr %27, align 4, !tbaa !11
  %4970 = load float, ptr %24, align 4, !tbaa !11
  %4971 = fdiv float %4969, %4970
  store float %4971, ptr %17, align 4, !tbaa !11
  %4972 = load float, ptr %17, align 4, !tbaa !11
  %4973 = load float, ptr %17, align 4, !tbaa !11
  %4974 = load float, ptr %23, align 4, !tbaa !11
  %4975 = call float @llvm.fmuladd.f32(float %4972, float %4973, float %4974)
  store float %4975, ptr %23, align 4, !tbaa !11
  br label %4976

4976:                                             ; preds = %4968, %4958
  br label %4977

4977:                                             ; preds = %4976, %4944
  %4978 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %4978, ptr %22, align 4, !tbaa !9
  %4979 = load i32, ptr %21, align 4, !tbaa !9
  %4980 = sub nsw i32 %4979, 1
  store i32 %4980, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  br label %4981

4981:                                             ; preds = %5057, %4977
  %4982 = load i32, ptr %19, align 4, !tbaa !9
  %4983 = load i32, ptr %14, align 4, !tbaa !9
  %4984 = icmp sle i32 %4982, %4983
  br i1 %4984, label %4985, label %5060

4985:                                             ; preds = %4981
  %4986 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4986, ptr %15, align 4, !tbaa !9
  %4987 = load ptr, ptr %12, align 8, !tbaa !5
  %4988 = load i32, ptr %15, align 4, !tbaa !9
  %4989 = sext i32 %4988 to i64
  %4990 = getelementptr inbounds %struct.complex, ptr %4987, i64 %4989
  %4991 = getelementptr inbounds %struct.complex, ptr %4990, i32 0, i32 0
  %4992 = load float, ptr %4991, align 4, !tbaa !13
  store float %4992, ptr %27, align 4, !tbaa !11
  %4993 = load float, ptr %27, align 4, !tbaa !11
  %4994 = fcmp une float %4993, 0.000000e+00
  br i1 %4994, label %4995, label %5018

4995:                                             ; preds = %4985
  %4996 = load float, ptr %24, align 4, !tbaa !11
  %4997 = load float, ptr %27, align 4, !tbaa !11
  %4998 = fcmp olt float %4996, %4997
  br i1 %4998, label %4999, label %5009

4999:                                             ; preds = %4995
  %5000 = load float, ptr %24, align 4, !tbaa !11
  %5001 = load float, ptr %27, align 4, !tbaa !11
  %5002 = fdiv float %5000, %5001
  store float %5002, ptr %17, align 4, !tbaa !11
  %5003 = load float, ptr %23, align 4, !tbaa !11
  %5004 = load float, ptr %17, align 4, !tbaa !11
  %5005 = load float, ptr %17, align 4, !tbaa !11
  %5006 = fmul float %5004, %5005
  %5007 = call float @llvm.fmuladd.f32(float %5003, float %5006, float 1.000000e+00)
  store float %5007, ptr %23, align 4, !tbaa !11
  %5008 = load float, ptr %27, align 4, !tbaa !11
  store float %5008, ptr %24, align 4, !tbaa !11
  br label %5017

5009:                                             ; preds = %4995
  %5010 = load float, ptr %27, align 4, !tbaa !11
  %5011 = load float, ptr %24, align 4, !tbaa !11
  %5012 = fdiv float %5010, %5011
  store float %5012, ptr %17, align 4, !tbaa !11
  %5013 = load float, ptr %17, align 4, !tbaa !11
  %5014 = load float, ptr %17, align 4, !tbaa !11
  %5015 = load float, ptr %23, align 4, !tbaa !11
  %5016 = call float @llvm.fmuladd.f32(float %5013, float %5014, float %5015)
  store float %5016, ptr %23, align 4, !tbaa !11
  br label %5017

5017:                                             ; preds = %5009, %4999
  br label %5018

5018:                                             ; preds = %5017, %4985
  %5019 = load i32, ptr %22, align 4, !tbaa !9
  %5020 = add nsw i32 %5019, 1
  store i32 %5020, ptr %15, align 4, !tbaa !9
  %5021 = load ptr, ptr %12, align 8, !tbaa !5
  %5022 = load i32, ptr %15, align 4, !tbaa !9
  %5023 = sext i32 %5022 to i64
  %5024 = getelementptr inbounds %struct.complex, ptr %5021, i64 %5023
  %5025 = getelementptr inbounds %struct.complex, ptr %5024, i32 0, i32 0
  %5026 = load float, ptr %5025, align 4, !tbaa !13
  store float %5026, ptr %27, align 4, !tbaa !11
  %5027 = load float, ptr %27, align 4, !tbaa !11
  %5028 = fcmp une float %5027, 0.000000e+00
  br i1 %5028, label %5029, label %5052

5029:                                             ; preds = %5018
  %5030 = load float, ptr %24, align 4, !tbaa !11
  %5031 = load float, ptr %27, align 4, !tbaa !11
  %5032 = fcmp olt float %5030, %5031
  br i1 %5032, label %5033, label %5043

5033:                                             ; preds = %5029
  %5034 = load float, ptr %24, align 4, !tbaa !11
  %5035 = load float, ptr %27, align 4, !tbaa !11
  %5036 = fdiv float %5034, %5035
  store float %5036, ptr %17, align 4, !tbaa !11
  %5037 = load float, ptr %23, align 4, !tbaa !11
  %5038 = load float, ptr %17, align 4, !tbaa !11
  %5039 = load float, ptr %17, align 4, !tbaa !11
  %5040 = fmul float %5038, %5039
  %5041 = call float @llvm.fmuladd.f32(float %5037, float %5040, float 1.000000e+00)
  store float %5041, ptr %23, align 4, !tbaa !11
  %5042 = load float, ptr %27, align 4, !tbaa !11
  store float %5042, ptr %24, align 4, !tbaa !11
  br label %5051

5043:                                             ; preds = %5029
  %5044 = load float, ptr %27, align 4, !tbaa !11
  %5045 = load float, ptr %24, align 4, !tbaa !11
  %5046 = fdiv float %5044, %5045
  store float %5046, ptr %17, align 4, !tbaa !11
  %5047 = load float, ptr %17, align 4, !tbaa !11
  %5048 = load float, ptr %17, align 4, !tbaa !11
  %5049 = load float, ptr %23, align 4, !tbaa !11
  %5050 = call float @llvm.fmuladd.f32(float %5047, float %5048, float %5049)
  store float %5050, ptr %23, align 4, !tbaa !11
  br label %5051

5051:                                             ; preds = %5043, %5033
  br label %5052

5052:                                             ; preds = %5051, %5018
  %5053 = load i32, ptr %22, align 4, !tbaa !9
  %5054 = load i32, ptr %28, align 4, !tbaa !9
  %5055 = add nsw i32 %5053, %5054
  %5056 = add nsw i32 %5055, 1
  store i32 %5056, ptr %22, align 4, !tbaa !9
  br label %5057

5057:                                             ; preds = %5052
  %5058 = load i32, ptr %19, align 4, !tbaa !9
  %5059 = add nsw i32 %5058, 1
  store i32 %5059, ptr %19, align 4, !tbaa !9
  br label %4981, !llvm.loop !118

5060:                                             ; preds = %4981
  br label %5061

5061:                                             ; preds = %5060, %4900
  br label %5437

5062:                                             ; preds = %4727
  %5063 = load i32, ptr %31, align 4, !tbaa !9
  %5064 = icmp eq i32 %5063, 0
  br i1 %5064, label %5065, label %5257

5065:                                             ; preds = %5062
  %5066 = load i32, ptr %21, align 4, !tbaa !9
  %5067 = sub nsw i32 %5066, 2
  store i32 %5067, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %5068

5068:                                             ; preds = %5081, %5065
  %5069 = load i32, ptr %20, align 4, !tbaa !9
  %5070 = load i32, ptr %14, align 4, !tbaa !9
  %5071 = icmp sle i32 %5069, %5070
  br i1 %5071, label %5072, label %5084

5072:                                             ; preds = %5068
  %5073 = load ptr, ptr %12, align 8, !tbaa !5
  %5074 = load i32, ptr %21, align 4, !tbaa !9
  %5075 = load i32, ptr %20, align 4, !tbaa !9
  %5076 = add nsw i32 %5074, %5075
  %5077 = load i32, ptr %28, align 4, !tbaa !9
  %5078 = mul nsw i32 %5076, %5077
  %5079 = sext i32 %5078 to i64
  %5080 = getelementptr inbounds %struct.complex, ptr %5073, i64 %5079
  call void @classq_(ptr noundef %20, ptr noundef %5080, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5081

5081:                                             ; preds = %5072
  %5082 = load i32, ptr %20, align 4, !tbaa !9
  %5083 = add nsw i32 %5082, 1
  store i32 %5083, ptr %20, align 4, !tbaa !9
  br label %5068, !llvm.loop !119

5084:                                             ; preds = %5068
  %5085 = load i32, ptr %21, align 4, !tbaa !9
  %5086 = sub nsw i32 %5085, 2
  store i32 %5086, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %5087

5087:                                             ; preds = %5098, %5084
  %5088 = load i32, ptr %20, align 4, !tbaa !9
  %5089 = load i32, ptr %14, align 4, !tbaa !9
  %5090 = icmp sle i32 %5088, %5089
  br i1 %5090, label %5091, label %5101

5091:                                             ; preds = %5087
  %5092 = load ptr, ptr %12, align 8, !tbaa !5
  %5093 = load i32, ptr %20, align 4, !tbaa !9
  %5094 = load i32, ptr %28, align 4, !tbaa !9
  %5095 = mul nsw i32 %5093, %5094
  %5096 = sext i32 %5095 to i64
  %5097 = getelementptr inbounds %struct.complex, ptr %5092, i64 %5096
  call void @classq_(ptr noundef %21, ptr noundef %5097, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5098

5098:                                             ; preds = %5091
  %5099 = load i32, ptr %20, align 4, !tbaa !9
  %5100 = add nsw i32 %5099, 1
  store i32 %5100, ptr %20, align 4, !tbaa !9
  br label %5087, !llvm.loop !120

5101:                                             ; preds = %5087
  %5102 = load i32, ptr %21, align 4, !tbaa !9
  %5103 = sub nsw i32 %5102, 2
  store i32 %5103, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %5104

5104:                                             ; preds = %5125, %5101
  %5105 = load i32, ptr %20, align 4, !tbaa !9
  %5106 = load i32, ptr %14, align 4, !tbaa !9
  %5107 = icmp sle i32 %5105, %5106
  br i1 %5107, label %5108, label %5128

5108:                                             ; preds = %5104
  %5109 = load i32, ptr %21, align 4, !tbaa !9
  %5110 = load i32, ptr %20, align 4, !tbaa !9
  %5111 = sub nsw i32 %5109, %5110
  %5112 = sub nsw i32 %5111, 1
  store i32 %5112, ptr %15, align 4, !tbaa !9
  %5113 = load ptr, ptr %12, align 8, !tbaa !5
  %5114 = load i32, ptr %20, align 4, !tbaa !9
  %5115 = add nsw i32 %5114, 1
  %5116 = load i32, ptr %20, align 4, !tbaa !9
  %5117 = load i32, ptr %21, align 4, !tbaa !9
  %5118 = add nsw i32 %5116, %5117
  %5119 = sub nsw i32 %5118, 1
  %5120 = load i32, ptr %28, align 4, !tbaa !9
  %5121 = mul nsw i32 %5119, %5120
  %5122 = add nsw i32 %5115, %5121
  %5123 = sext i32 %5122 to i64
  %5124 = getelementptr inbounds %struct.complex, ptr %5113, i64 %5123
  call void @classq_(ptr noundef %15, ptr noundef %5124, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5125

5125:                                             ; preds = %5108
  %5126 = load i32, ptr %20, align 4, !tbaa !9
  %5127 = add nsw i32 %5126, 1
  store i32 %5127, ptr %20, align 4, !tbaa !9
  br label %5104, !llvm.loop !121

5128:                                             ; preds = %5104
  %5129 = load float, ptr %23, align 4, !tbaa !11
  %5130 = load float, ptr %23, align 4, !tbaa !11
  %5131 = fadd float %5130, %5129
  store float %5131, ptr %23, align 4, !tbaa !11
  %5132 = load i32, ptr %21, align 4, !tbaa !9
  %5133 = load i32, ptr %28, align 4, !tbaa !9
  %5134 = mul nsw i32 %5132, %5133
  %5135 = load i32, ptr %28, align 4, !tbaa !9
  %5136 = sub nsw i32 %5134, %5135
  store i32 %5136, ptr %22, align 4, !tbaa !9
  %5137 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %5137, ptr %14, align 4, !tbaa !9
  %5138 = load ptr, ptr %12, align 8, !tbaa !5
  %5139 = load i32, ptr %14, align 4, !tbaa !9
  %5140 = sext i32 %5139 to i64
  %5141 = getelementptr inbounds %struct.complex, ptr %5138, i64 %5140
  %5142 = getelementptr inbounds %struct.complex, ptr %5141, i32 0, i32 0
  %5143 = load float, ptr %5142, align 4, !tbaa !13
  store float %5143, ptr %27, align 4, !tbaa !11
  %5144 = load float, ptr %27, align 4, !tbaa !11
  %5145 = fcmp une float %5144, 0.000000e+00
  br i1 %5145, label %5146, label %5169

5146:                                             ; preds = %5128
  %5147 = load float, ptr %24, align 4, !tbaa !11
  %5148 = load float, ptr %27, align 4, !tbaa !11
  %5149 = fcmp olt float %5147, %5148
  br i1 %5149, label %5150, label %5160

5150:                                             ; preds = %5146
  %5151 = load float, ptr %24, align 4, !tbaa !11
  %5152 = load float, ptr %27, align 4, !tbaa !11
  %5153 = fdiv float %5151, %5152
  store float %5153, ptr %17, align 4, !tbaa !11
  %5154 = load float, ptr %23, align 4, !tbaa !11
  %5155 = load float, ptr %17, align 4, !tbaa !11
  %5156 = load float, ptr %17, align 4, !tbaa !11
  %5157 = fmul float %5155, %5156
  %5158 = call float @llvm.fmuladd.f32(float %5154, float %5157, float 1.000000e+00)
  store float %5158, ptr %23, align 4, !tbaa !11
  %5159 = load float, ptr %27, align 4, !tbaa !11
  store float %5159, ptr %24, align 4, !tbaa !11
  br label %5168

5160:                                             ; preds = %5146
  %5161 = load float, ptr %27, align 4, !tbaa !11
  %5162 = load float, ptr %24, align 4, !tbaa !11
  %5163 = fdiv float %5161, %5162
  store float %5163, ptr %17, align 4, !tbaa !11
  %5164 = load float, ptr %17, align 4, !tbaa !11
  %5165 = load float, ptr %17, align 4, !tbaa !11
  %5166 = load float, ptr %23, align 4, !tbaa !11
  %5167 = call float @llvm.fmuladd.f32(float %5164, float %5165, float %5166)
  store float %5167, ptr %23, align 4, !tbaa !11
  br label %5168

5168:                                             ; preds = %5160, %5150
  br label %5169

5169:                                             ; preds = %5168, %5128
  %5170 = load i32, ptr %28, align 4, !tbaa !9
  %5171 = load i32, ptr %22, align 4, !tbaa !9
  %5172 = add nsw i32 %5171, %5170
  store i32 %5172, ptr %22, align 4, !tbaa !9
  %5173 = load ptr, ptr %11, align 8, !tbaa !5
  %5174 = load i32, ptr %5173, align 4, !tbaa !9
  %5175 = sub nsw i32 %5174, 1
  store i32 %5175, ptr %14, align 4, !tbaa !9
  %5176 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %5176, ptr %20, align 4, !tbaa !9
  br label %5177

5177:                                             ; preds = %5253, %5169
  %5178 = load i32, ptr %20, align 4, !tbaa !9
  %5179 = load i32, ptr %14, align 4, !tbaa !9
  %5180 = icmp sle i32 %5178, %5179
  br i1 %5180, label %5181, label %5256

5181:                                             ; preds = %5177
  %5182 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %5182, ptr %15, align 4, !tbaa !9
  %5183 = load ptr, ptr %12, align 8, !tbaa !5
  %5184 = load i32, ptr %15, align 4, !tbaa !9
  %5185 = sext i32 %5184 to i64
  %5186 = getelementptr inbounds %struct.complex, ptr %5183, i64 %5185
  %5187 = getelementptr inbounds %struct.complex, ptr %5186, i32 0, i32 0
  %5188 = load float, ptr %5187, align 4, !tbaa !13
  store float %5188, ptr %27, align 4, !tbaa !11
  %5189 = load float, ptr %27, align 4, !tbaa !11
  %5190 = fcmp une float %5189, 0.000000e+00
  br i1 %5190, label %5191, label %5214

5191:                                             ; preds = %5181
  %5192 = load float, ptr %24, align 4, !tbaa !11
  %5193 = load float, ptr %27, align 4, !tbaa !11
  %5194 = fcmp olt float %5192, %5193
  br i1 %5194, label %5195, label %5205

5195:                                             ; preds = %5191
  %5196 = load float, ptr %24, align 4, !tbaa !11
  %5197 = load float, ptr %27, align 4, !tbaa !11
  %5198 = fdiv float %5196, %5197
  store float %5198, ptr %17, align 4, !tbaa !11
  %5199 = load float, ptr %23, align 4, !tbaa !11
  %5200 = load float, ptr %17, align 4, !tbaa !11
  %5201 = load float, ptr %17, align 4, !tbaa !11
  %5202 = fmul float %5200, %5201
  %5203 = call float @llvm.fmuladd.f32(float %5199, float %5202, float 1.000000e+00)
  store float %5203, ptr %23, align 4, !tbaa !11
  %5204 = load float, ptr %27, align 4, !tbaa !11
  store float %5204, ptr %24, align 4, !tbaa !11
  br label %5213

5205:                                             ; preds = %5191
  %5206 = load float, ptr %27, align 4, !tbaa !11
  %5207 = load float, ptr %24, align 4, !tbaa !11
  %5208 = fdiv float %5206, %5207
  store float %5208, ptr %17, align 4, !tbaa !11
  %5209 = load float, ptr %17, align 4, !tbaa !11
  %5210 = load float, ptr %17, align 4, !tbaa !11
  %5211 = load float, ptr %23, align 4, !tbaa !11
  %5212 = call float @llvm.fmuladd.f32(float %5209, float %5210, float %5211)
  store float %5212, ptr %23, align 4, !tbaa !11
  br label %5213

5213:                                             ; preds = %5205, %5195
  br label %5214

5214:                                             ; preds = %5213, %5181
  %5215 = load i32, ptr %22, align 4, !tbaa !9
  %5216 = add nsw i32 %5215, 1
  store i32 %5216, ptr %15, align 4, !tbaa !9
  %5217 = load ptr, ptr %12, align 8, !tbaa !5
  %5218 = load i32, ptr %15, align 4, !tbaa !9
  %5219 = sext i32 %5218 to i64
  %5220 = getelementptr inbounds %struct.complex, ptr %5217, i64 %5219
  %5221 = getelementptr inbounds %struct.complex, ptr %5220, i32 0, i32 0
  %5222 = load float, ptr %5221, align 4, !tbaa !13
  store float %5222, ptr %27, align 4, !tbaa !11
  %5223 = load float, ptr %27, align 4, !tbaa !11
  %5224 = fcmp une float %5223, 0.000000e+00
  br i1 %5224, label %5225, label %5248

5225:                                             ; preds = %5214
  %5226 = load float, ptr %24, align 4, !tbaa !11
  %5227 = load float, ptr %27, align 4, !tbaa !11
  %5228 = fcmp olt float %5226, %5227
  br i1 %5228, label %5229, label %5239

5229:                                             ; preds = %5225
  %5230 = load float, ptr %24, align 4, !tbaa !11
  %5231 = load float, ptr %27, align 4, !tbaa !11
  %5232 = fdiv float %5230, %5231
  store float %5232, ptr %17, align 4, !tbaa !11
  %5233 = load float, ptr %23, align 4, !tbaa !11
  %5234 = load float, ptr %17, align 4, !tbaa !11
  %5235 = load float, ptr %17, align 4, !tbaa !11
  %5236 = fmul float %5234, %5235
  %5237 = call float @llvm.fmuladd.f32(float %5233, float %5236, float 1.000000e+00)
  store float %5237, ptr %23, align 4, !tbaa !11
  %5238 = load float, ptr %27, align 4, !tbaa !11
  store float %5238, ptr %24, align 4, !tbaa !11
  br label %5247

5239:                                             ; preds = %5225
  %5240 = load float, ptr %27, align 4, !tbaa !11
  %5241 = load float, ptr %24, align 4, !tbaa !11
  %5242 = fdiv float %5240, %5241
  store float %5242, ptr %17, align 4, !tbaa !11
  %5243 = load float, ptr %17, align 4, !tbaa !11
  %5244 = load float, ptr %17, align 4, !tbaa !11
  %5245 = load float, ptr %23, align 4, !tbaa !11
  %5246 = call float @llvm.fmuladd.f32(float %5243, float %5244, float %5245)
  store float %5246, ptr %23, align 4, !tbaa !11
  br label %5247

5247:                                             ; preds = %5239, %5229
  br label %5248

5248:                                             ; preds = %5247, %5214
  %5249 = load i32, ptr %22, align 4, !tbaa !9
  %5250 = load i32, ptr %28, align 4, !tbaa !9
  %5251 = add nsw i32 %5249, %5250
  %5252 = add nsw i32 %5251, 1
  store i32 %5252, ptr %22, align 4, !tbaa !9
  br label %5253

5253:                                             ; preds = %5248
  %5254 = load i32, ptr %20, align 4, !tbaa !9
  %5255 = add nsw i32 %5254, 1
  store i32 %5255, ptr %20, align 4, !tbaa !9
  br label %5177, !llvm.loop !122

5256:                                             ; preds = %5177
  br label %5436

5257:                                             ; preds = %5062
  %5258 = load i32, ptr %21, align 4, !tbaa !9
  %5259 = sub nsw i32 %5258, 1
  store i32 %5259, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %5260

5260:                                             ; preds = %5271, %5257
  %5261 = load i32, ptr %20, align 4, !tbaa !9
  %5262 = load i32, ptr %14, align 4, !tbaa !9
  %5263 = icmp sle i32 %5261, %5262
  br i1 %5263, label %5264, label %5274

5264:                                             ; preds = %5260
  %5265 = load ptr, ptr %12, align 8, !tbaa !5
  %5266 = load i32, ptr %20, align 4, !tbaa !9
  %5267 = load i32, ptr %28, align 4, !tbaa !9
  %5268 = mul nsw i32 %5266, %5267
  %5269 = sext i32 %5268 to i64
  %5270 = getelementptr inbounds %struct.complex, ptr %5265, i64 %5269
  call void @classq_(ptr noundef %20, ptr noundef %5270, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5271

5271:                                             ; preds = %5264
  %5272 = load i32, ptr %20, align 4, !tbaa !9
  %5273 = add nsw i32 %5272, 1
  store i32 %5273, ptr %20, align 4, !tbaa !9
  br label %5260, !llvm.loop !123

5274:                                             ; preds = %5260
  %5275 = load ptr, ptr %11, align 8, !tbaa !5
  %5276 = load i32, ptr %5275, align 4, !tbaa !9
  %5277 = sub nsw i32 %5276, 1
  store i32 %5277, ptr %14, align 4, !tbaa !9
  %5278 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %5278, ptr %20, align 4, !tbaa !9
  br label %5279

5279:                                             ; preds = %5290, %5274
  %5280 = load i32, ptr %20, align 4, !tbaa !9
  %5281 = load i32, ptr %14, align 4, !tbaa !9
  %5282 = icmp sle i32 %5280, %5281
  br i1 %5282, label %5283, label %5293

5283:                                             ; preds = %5279
  %5284 = load ptr, ptr %12, align 8, !tbaa !5
  %5285 = load i32, ptr %20, align 4, !tbaa !9
  %5286 = load i32, ptr %28, align 4, !tbaa !9
  %5287 = mul nsw i32 %5285, %5286
  %5288 = sext i32 %5287 to i64
  %5289 = getelementptr inbounds %struct.complex, ptr %5284, i64 %5288
  call void @classq_(ptr noundef %21, ptr noundef %5289, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5290

5290:                                             ; preds = %5283
  %5291 = load i32, ptr %20, align 4, !tbaa !9
  %5292 = add nsw i32 %5291, 1
  store i32 %5292, ptr %20, align 4, !tbaa !9
  br label %5279, !llvm.loop !124

5293:                                             ; preds = %5279
  %5294 = load i32, ptr %21, align 4, !tbaa !9
  %5295 = sub nsw i32 %5294, 3
  store i32 %5295, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %5296

5296:                                             ; preds = %5314, %5293
  %5297 = load i32, ptr %20, align 4, !tbaa !9
  %5298 = load i32, ptr %14, align 4, !tbaa !9
  %5299 = icmp sle i32 %5297, %5298
  br i1 %5299, label %5300, label %5317

5300:                                             ; preds = %5296
  %5301 = load i32, ptr %21, align 4, !tbaa !9
  %5302 = load i32, ptr %20, align 4, !tbaa !9
  %5303 = sub nsw i32 %5301, %5302
  %5304 = sub nsw i32 %5303, 2
  store i32 %5304, ptr %15, align 4, !tbaa !9
  %5305 = load ptr, ptr %12, align 8, !tbaa !5
  %5306 = load i32, ptr %20, align 4, !tbaa !9
  %5307 = add nsw i32 %5306, 2
  %5308 = load i32, ptr %20, align 4, !tbaa !9
  %5309 = load i32, ptr %28, align 4, !tbaa !9
  %5310 = mul nsw i32 %5308, %5309
  %5311 = add nsw i32 %5307, %5310
  %5312 = sext i32 %5311 to i64
  %5313 = getelementptr inbounds %struct.complex, ptr %5305, i64 %5312
  call void @classq_(ptr noundef %15, ptr noundef %5313, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5314

5314:                                             ; preds = %5300
  %5315 = load i32, ptr %20, align 4, !tbaa !9
  %5316 = add nsw i32 %5315, 1
  store i32 %5316, ptr %20, align 4, !tbaa !9
  br label %5296, !llvm.loop !125

5317:                                             ; preds = %5296
  %5318 = load float, ptr %23, align 4, !tbaa !11
  %5319 = load float, ptr %23, align 4, !tbaa !11
  %5320 = fadd float %5319, %5318
  store float %5320, ptr %23, align 4, !tbaa !11
  store i32 0, ptr %22, align 4, !tbaa !9
  %5321 = load i32, ptr %21, align 4, !tbaa !9
  %5322 = sub nsw i32 %5321, 2
  store i32 %5322, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %5323

5323:                                             ; preds = %5399, %5317
  %5324 = load i32, ptr %19, align 4, !tbaa !9
  %5325 = load i32, ptr %14, align 4, !tbaa !9
  %5326 = icmp sle i32 %5324, %5325
  br i1 %5326, label %5327, label %5402

5327:                                             ; preds = %5323
  %5328 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %5328, ptr %15, align 4, !tbaa !9
  %5329 = load ptr, ptr %12, align 8, !tbaa !5
  %5330 = load i32, ptr %15, align 4, !tbaa !9
  %5331 = sext i32 %5330 to i64
  %5332 = getelementptr inbounds %struct.complex, ptr %5329, i64 %5331
  %5333 = getelementptr inbounds %struct.complex, ptr %5332, i32 0, i32 0
  %5334 = load float, ptr %5333, align 4, !tbaa !13
  store float %5334, ptr %27, align 4, !tbaa !11
  %5335 = load float, ptr %27, align 4, !tbaa !11
  %5336 = fcmp une float %5335, 0.000000e+00
  br i1 %5336, label %5337, label %5360

5337:                                             ; preds = %5327
  %5338 = load float, ptr %24, align 4, !tbaa !11
  %5339 = load float, ptr %27, align 4, !tbaa !11
  %5340 = fcmp olt float %5338, %5339
  br i1 %5340, label %5341, label %5351

5341:                                             ; preds = %5337
  %5342 = load float, ptr %24, align 4, !tbaa !11
  %5343 = load float, ptr %27, align 4, !tbaa !11
  %5344 = fdiv float %5342, %5343
  store float %5344, ptr %17, align 4, !tbaa !11
  %5345 = load float, ptr %23, align 4, !tbaa !11
  %5346 = load float, ptr %17, align 4, !tbaa !11
  %5347 = load float, ptr %17, align 4, !tbaa !11
  %5348 = fmul float %5346, %5347
  %5349 = call float @llvm.fmuladd.f32(float %5345, float %5348, float 1.000000e+00)
  store float %5349, ptr %23, align 4, !tbaa !11
  %5350 = load float, ptr %27, align 4, !tbaa !11
  store float %5350, ptr %24, align 4, !tbaa !11
  br label %5359

5351:                                             ; preds = %5337
  %5352 = load float, ptr %27, align 4, !tbaa !11
  %5353 = load float, ptr %24, align 4, !tbaa !11
  %5354 = fdiv float %5352, %5353
  store float %5354, ptr %17, align 4, !tbaa !11
  %5355 = load float, ptr %17, align 4, !tbaa !11
  %5356 = load float, ptr %17, align 4, !tbaa !11
  %5357 = load float, ptr %23, align 4, !tbaa !11
  %5358 = call float @llvm.fmuladd.f32(float %5355, float %5356, float %5357)
  store float %5358, ptr %23, align 4, !tbaa !11
  br label %5359

5359:                                             ; preds = %5351, %5341
  br label %5360

5360:                                             ; preds = %5359, %5327
  %5361 = load i32, ptr %22, align 4, !tbaa !9
  %5362 = add nsw i32 %5361, 1
  store i32 %5362, ptr %15, align 4, !tbaa !9
  %5363 = load ptr, ptr %12, align 8, !tbaa !5
  %5364 = load i32, ptr %15, align 4, !tbaa !9
  %5365 = sext i32 %5364 to i64
  %5366 = getelementptr inbounds %struct.complex, ptr %5363, i64 %5365
  %5367 = getelementptr inbounds %struct.complex, ptr %5366, i32 0, i32 0
  %5368 = load float, ptr %5367, align 4, !tbaa !13
  store float %5368, ptr %27, align 4, !tbaa !11
  %5369 = load float, ptr %27, align 4, !tbaa !11
  %5370 = fcmp une float %5369, 0.000000e+00
  br i1 %5370, label %5371, label %5394

5371:                                             ; preds = %5360
  %5372 = load float, ptr %24, align 4, !tbaa !11
  %5373 = load float, ptr %27, align 4, !tbaa !11
  %5374 = fcmp olt float %5372, %5373
  br i1 %5374, label %5375, label %5385

5375:                                             ; preds = %5371
  %5376 = load float, ptr %24, align 4, !tbaa !11
  %5377 = load float, ptr %27, align 4, !tbaa !11
  %5378 = fdiv float %5376, %5377
  store float %5378, ptr %17, align 4, !tbaa !11
  %5379 = load float, ptr %23, align 4, !tbaa !11
  %5380 = load float, ptr %17, align 4, !tbaa !11
  %5381 = load float, ptr %17, align 4, !tbaa !11
  %5382 = fmul float %5380, %5381
  %5383 = call float @llvm.fmuladd.f32(float %5379, float %5382, float 1.000000e+00)
  store float %5383, ptr %23, align 4, !tbaa !11
  %5384 = load float, ptr %27, align 4, !tbaa !11
  store float %5384, ptr %24, align 4, !tbaa !11
  br label %5393

5385:                                             ; preds = %5371
  %5386 = load float, ptr %27, align 4, !tbaa !11
  %5387 = load float, ptr %24, align 4, !tbaa !11
  %5388 = fdiv float %5386, %5387
  store float %5388, ptr %17, align 4, !tbaa !11
  %5389 = load float, ptr %17, align 4, !tbaa !11
  %5390 = load float, ptr %17, align 4, !tbaa !11
  %5391 = load float, ptr %23, align 4, !tbaa !11
  %5392 = call float @llvm.fmuladd.f32(float %5389, float %5390, float %5391)
  store float %5392, ptr %23, align 4, !tbaa !11
  br label %5393

5393:                                             ; preds = %5385, %5375
  br label %5394

5394:                                             ; preds = %5393, %5360
  %5395 = load i32, ptr %22, align 4, !tbaa !9
  %5396 = load i32, ptr %28, align 4, !tbaa !9
  %5397 = add nsw i32 %5395, %5396
  %5398 = add nsw i32 %5397, 1
  store i32 %5398, ptr %22, align 4, !tbaa !9
  br label %5399

5399:                                             ; preds = %5394
  %5400 = load i32, ptr %19, align 4, !tbaa !9
  %5401 = add nsw i32 %5400, 1
  store i32 %5401, ptr %19, align 4, !tbaa !9
  br label %5323, !llvm.loop !126

5402:                                             ; preds = %5323
  %5403 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %5403, ptr %14, align 4, !tbaa !9
  %5404 = load ptr, ptr %12, align 8, !tbaa !5
  %5405 = load i32, ptr %14, align 4, !tbaa !9
  %5406 = sext i32 %5405 to i64
  %5407 = getelementptr inbounds %struct.complex, ptr %5404, i64 %5406
  %5408 = getelementptr inbounds %struct.complex, ptr %5407, i32 0, i32 0
  %5409 = load float, ptr %5408, align 4, !tbaa !13
  store float %5409, ptr %27, align 4, !tbaa !11
  %5410 = load float, ptr %27, align 4, !tbaa !11
  %5411 = fcmp une float %5410, 0.000000e+00
  br i1 %5411, label %5412, label %5435

5412:                                             ; preds = %5402
  %5413 = load float, ptr %24, align 4, !tbaa !11
  %5414 = load float, ptr %27, align 4, !tbaa !11
  %5415 = fcmp olt float %5413, %5414
  br i1 %5415, label %5416, label %5426

5416:                                             ; preds = %5412
  %5417 = load float, ptr %24, align 4, !tbaa !11
  %5418 = load float, ptr %27, align 4, !tbaa !11
  %5419 = fdiv float %5417, %5418
  store float %5419, ptr %17, align 4, !tbaa !11
  %5420 = load float, ptr %23, align 4, !tbaa !11
  %5421 = load float, ptr %17, align 4, !tbaa !11
  %5422 = load float, ptr %17, align 4, !tbaa !11
  %5423 = fmul float %5421, %5422
  %5424 = call float @llvm.fmuladd.f32(float %5420, float %5423, float 1.000000e+00)
  store float %5424, ptr %23, align 4, !tbaa !11
  %5425 = load float, ptr %27, align 4, !tbaa !11
  store float %5425, ptr %24, align 4, !tbaa !11
  br label %5434

5426:                                             ; preds = %5412
  %5427 = load float, ptr %27, align 4, !tbaa !11
  %5428 = load float, ptr %24, align 4, !tbaa !11
  %5429 = fdiv float %5427, %5428
  store float %5429, ptr %17, align 4, !tbaa !11
  %5430 = load float, ptr %17, align 4, !tbaa !11
  %5431 = load float, ptr %17, align 4, !tbaa !11
  %5432 = load float, ptr %23, align 4, !tbaa !11
  %5433 = call float @llvm.fmuladd.f32(float %5430, float %5431, float %5432)
  store float %5433, ptr %23, align 4, !tbaa !11
  br label %5434

5434:                                             ; preds = %5426, %5416
  br label %5435

5435:                                             ; preds = %5434, %5402
  br label %5436

5436:                                             ; preds = %5435, %5256
  br label %5437

5437:                                             ; preds = %5436, %5061
  br label %6149

5438:                                             ; preds = %4720
  %5439 = load i32, ptr %29, align 4, !tbaa !9
  %5440 = icmp eq i32 %5439, 1
  br i1 %5440, label %5441, label %5706

5441:                                             ; preds = %5438
  %5442 = load i32, ptr %31, align 4, !tbaa !9
  %5443 = icmp eq i32 %5442, 0
  br i1 %5443, label %5444, label %5577

5444:                                             ; preds = %5441
  %5445 = load i32, ptr %21, align 4, !tbaa !9
  %5446 = sub nsw i32 %5445, 2
  store i32 %5446, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %5447

5447:                                             ; preds = %5467, %5444
  %5448 = load i32, ptr %20, align 4, !tbaa !9
  %5449 = load i32, ptr %14, align 4, !tbaa !9
  %5450 = icmp sle i32 %5448, %5449
  br i1 %5450, label %5451, label %5470

5451:                                             ; preds = %5447
  %5452 = load i32, ptr %21, align 4, !tbaa !9
  %5453 = load i32, ptr %20, align 4, !tbaa !9
  %5454 = sub nsw i32 %5452, %5453
  %5455 = sub nsw i32 %5454, 1
  store i32 %5455, ptr %15, align 4, !tbaa !9
  %5456 = load ptr, ptr %12, align 8, !tbaa !5
  %5457 = load i32, ptr %21, align 4, !tbaa !9
  %5458 = load i32, ptr %20, align 4, !tbaa !9
  %5459 = add nsw i32 %5457, %5458
  %5460 = add nsw i32 %5459, 2
  %5461 = load i32, ptr %20, align 4, !tbaa !9
  %5462 = load i32, ptr %28, align 4, !tbaa !9
  %5463 = mul nsw i32 %5461, %5462
  %5464 = add nsw i32 %5460, %5463
  %5465 = sext i32 %5464 to i64
  %5466 = getelementptr inbounds %struct.complex, ptr %5456, i64 %5465
  call void @classq_(ptr noundef %15, ptr noundef %5466, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5467

5467:                                             ; preds = %5451
  %5468 = load i32, ptr %20, align 4, !tbaa !9
  %5469 = add nsw i32 %5468, 1
  store i32 %5469, ptr %20, align 4, !tbaa !9
  br label %5447, !llvm.loop !127

5470:                                             ; preds = %5447
  %5471 = load i32, ptr %21, align 4, !tbaa !9
  %5472 = sub nsw i32 %5471, 1
  store i32 %5472, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %5473

5473:                                             ; preds = %5487, %5470
  %5474 = load i32, ptr %20, align 4, !tbaa !9
  %5475 = load i32, ptr %14, align 4, !tbaa !9
  %5476 = icmp sle i32 %5474, %5475
  br i1 %5476, label %5477, label %5490

5477:                                             ; preds = %5473
  %5478 = load i32, ptr %21, align 4, !tbaa !9
  %5479 = load i32, ptr %20, align 4, !tbaa !9
  %5480 = add nsw i32 %5478, %5479
  store i32 %5480, ptr %15, align 4, !tbaa !9
  %5481 = load ptr, ptr %12, align 8, !tbaa !5
  %5482 = load i32, ptr %20, align 4, !tbaa !9
  %5483 = load i32, ptr %28, align 4, !tbaa !9
  %5484 = mul nsw i32 %5482, %5483
  %5485 = sext i32 %5484 to i64
  %5486 = getelementptr inbounds %struct.complex, ptr %5481, i64 %5485
  call void @classq_(ptr noundef %15, ptr noundef %5486, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5487

5487:                                             ; preds = %5477
  %5488 = load i32, ptr %20, align 4, !tbaa !9
  %5489 = add nsw i32 %5488, 1
  store i32 %5489, ptr %20, align 4, !tbaa !9
  br label %5473, !llvm.loop !128

5490:                                             ; preds = %5473
  %5491 = load float, ptr %23, align 4, !tbaa !11
  %5492 = load float, ptr %23, align 4, !tbaa !11
  %5493 = fadd float %5492, %5491
  store float %5493, ptr %23, align 4, !tbaa !11
  %5494 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %5494, ptr %22, align 4, !tbaa !9
  %5495 = load i32, ptr %21, align 4, !tbaa !9
  %5496 = sub nsw i32 %5495, 1
  store i32 %5496, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %5497

5497:                                             ; preds = %5573, %5490
  %5498 = load i32, ptr %19, align 4, !tbaa !9
  %5499 = load i32, ptr %14, align 4, !tbaa !9
  %5500 = icmp sle i32 %5498, %5499
  br i1 %5500, label %5501, label %5576

5501:                                             ; preds = %5497
  %5502 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %5502, ptr %15, align 4, !tbaa !9
  %5503 = load ptr, ptr %12, align 8, !tbaa !5
  %5504 = load i32, ptr %15, align 4, !tbaa !9
  %5505 = sext i32 %5504 to i64
  %5506 = getelementptr inbounds %struct.complex, ptr %5503, i64 %5505
  %5507 = getelementptr inbounds %struct.complex, ptr %5506, i32 0, i32 0
  %5508 = load float, ptr %5507, align 4, !tbaa !13
  store float %5508, ptr %27, align 4, !tbaa !11
  %5509 = load float, ptr %27, align 4, !tbaa !11
  %5510 = fcmp une float %5509, 0.000000e+00
  br i1 %5510, label %5511, label %5534

5511:                                             ; preds = %5501
  %5512 = load float, ptr %24, align 4, !tbaa !11
  %5513 = load float, ptr %27, align 4, !tbaa !11
  %5514 = fcmp olt float %5512, %5513
  br i1 %5514, label %5515, label %5525

5515:                                             ; preds = %5511
  %5516 = load float, ptr %24, align 4, !tbaa !11
  %5517 = load float, ptr %27, align 4, !tbaa !11
  %5518 = fdiv float %5516, %5517
  store float %5518, ptr %17, align 4, !tbaa !11
  %5519 = load float, ptr %23, align 4, !tbaa !11
  %5520 = load float, ptr %17, align 4, !tbaa !11
  %5521 = load float, ptr %17, align 4, !tbaa !11
  %5522 = fmul float %5520, %5521
  %5523 = call float @llvm.fmuladd.f32(float %5519, float %5522, float 1.000000e+00)
  store float %5523, ptr %23, align 4, !tbaa !11
  %5524 = load float, ptr %27, align 4, !tbaa !11
  store float %5524, ptr %24, align 4, !tbaa !11
  br label %5533

5525:                                             ; preds = %5511
  %5526 = load float, ptr %27, align 4, !tbaa !11
  %5527 = load float, ptr %24, align 4, !tbaa !11
  %5528 = fdiv float %5526, %5527
  store float %5528, ptr %17, align 4, !tbaa !11
  %5529 = load float, ptr %17, align 4, !tbaa !11
  %5530 = load float, ptr %17, align 4, !tbaa !11
  %5531 = load float, ptr %23, align 4, !tbaa !11
  %5532 = call float @llvm.fmuladd.f32(float %5529, float %5530, float %5531)
  store float %5532, ptr %23, align 4, !tbaa !11
  br label %5533

5533:                                             ; preds = %5525, %5515
  br label %5534

5534:                                             ; preds = %5533, %5501
  %5535 = load i32, ptr %22, align 4, !tbaa !9
  %5536 = add nsw i32 %5535, 1
  store i32 %5536, ptr %15, align 4, !tbaa !9
  %5537 = load ptr, ptr %12, align 8, !tbaa !5
  %5538 = load i32, ptr %15, align 4, !tbaa !9
  %5539 = sext i32 %5538 to i64
  %5540 = getelementptr inbounds %struct.complex, ptr %5537, i64 %5539
  %5541 = getelementptr inbounds %struct.complex, ptr %5540, i32 0, i32 0
  %5542 = load float, ptr %5541, align 4, !tbaa !13
  store float %5542, ptr %27, align 4, !tbaa !11
  %5543 = load float, ptr %27, align 4, !tbaa !11
  %5544 = fcmp une float %5543, 0.000000e+00
  br i1 %5544, label %5545, label %5568

5545:                                             ; preds = %5534
  %5546 = load float, ptr %24, align 4, !tbaa !11
  %5547 = load float, ptr %27, align 4, !tbaa !11
  %5548 = fcmp olt float %5546, %5547
  br i1 %5548, label %5549, label %5559

5549:                                             ; preds = %5545
  %5550 = load float, ptr %24, align 4, !tbaa !11
  %5551 = load float, ptr %27, align 4, !tbaa !11
  %5552 = fdiv float %5550, %5551
  store float %5552, ptr %17, align 4, !tbaa !11
  %5553 = load float, ptr %23, align 4, !tbaa !11
  %5554 = load float, ptr %17, align 4, !tbaa !11
  %5555 = load float, ptr %17, align 4, !tbaa !11
  %5556 = fmul float %5554, %5555
  %5557 = call float @llvm.fmuladd.f32(float %5553, float %5556, float 1.000000e+00)
  store float %5557, ptr %23, align 4, !tbaa !11
  %5558 = load float, ptr %27, align 4, !tbaa !11
  store float %5558, ptr %24, align 4, !tbaa !11
  br label %5567

5559:                                             ; preds = %5545
  %5560 = load float, ptr %27, align 4, !tbaa !11
  %5561 = load float, ptr %24, align 4, !tbaa !11
  %5562 = fdiv float %5560, %5561
  store float %5562, ptr %17, align 4, !tbaa !11
  %5563 = load float, ptr %17, align 4, !tbaa !11
  %5564 = load float, ptr %17, align 4, !tbaa !11
  %5565 = load float, ptr %23, align 4, !tbaa !11
  %5566 = call float @llvm.fmuladd.f32(float %5563, float %5564, float %5565)
  store float %5566, ptr %23, align 4, !tbaa !11
  br label %5567

5567:                                             ; preds = %5559, %5549
  br label %5568

5568:                                             ; preds = %5567, %5534
  %5569 = load i32, ptr %22, align 4, !tbaa !9
  %5570 = load i32, ptr %28, align 4, !tbaa !9
  %5571 = add nsw i32 %5569, %5570
  %5572 = add nsw i32 %5571, 1
  store i32 %5572, ptr %22, align 4, !tbaa !9
  br label %5573

5573:                                             ; preds = %5568
  %5574 = load i32, ptr %19, align 4, !tbaa !9
  %5575 = add nsw i32 %5574, 1
  store i32 %5575, ptr %19, align 4, !tbaa !9
  br label %5497, !llvm.loop !129

5576:                                             ; preds = %5497
  br label %5705

5577:                                             ; preds = %5441
  %5578 = load i32, ptr %21, align 4, !tbaa !9
  %5579 = sub nsw i32 %5578, 1
  store i32 %5579, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %5580

5580:                                             ; preds = %5599, %5577
  %5581 = load i32, ptr %20, align 4, !tbaa !9
  %5582 = load i32, ptr %14, align 4, !tbaa !9
  %5583 = icmp sle i32 %5581, %5582
  br i1 %5583, label %5584, label %5602

5584:                                             ; preds = %5580
  %5585 = load ptr, ptr %11, align 8, !tbaa !5
  %5586 = load i32, ptr %5585, align 4, !tbaa !9
  %5587 = load i32, ptr %20, align 4, !tbaa !9
  %5588 = sub nsw i32 %5586, %5587
  %5589 = sub nsw i32 %5588, 1
  store i32 %5589, ptr %15, align 4, !tbaa !9
  %5590 = load ptr, ptr %12, align 8, !tbaa !5
  %5591 = load i32, ptr %20, align 4, !tbaa !9
  %5592 = add nsw i32 %5591, 2
  %5593 = load i32, ptr %20, align 4, !tbaa !9
  %5594 = load i32, ptr %28, align 4, !tbaa !9
  %5595 = mul nsw i32 %5593, %5594
  %5596 = add nsw i32 %5592, %5595
  %5597 = sext i32 %5596 to i64
  %5598 = getelementptr inbounds %struct.complex, ptr %5590, i64 %5597
  call void @classq_(ptr noundef %15, ptr noundef %5598, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5599

5599:                                             ; preds = %5584
  %5600 = load i32, ptr %20, align 4, !tbaa !9
  %5601 = add nsw i32 %5600, 1
  store i32 %5601, ptr %20, align 4, !tbaa !9
  br label %5580, !llvm.loop !130

5602:                                             ; preds = %5580
  %5603 = load i32, ptr %21, align 4, !tbaa !9
  %5604 = sub nsw i32 %5603, 1
  store i32 %5604, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %5605

5605:                                             ; preds = %5616, %5602
  %5606 = load i32, ptr %20, align 4, !tbaa !9
  %5607 = load i32, ptr %14, align 4, !tbaa !9
  %5608 = icmp sle i32 %5606, %5607
  br i1 %5608, label %5609, label %5619

5609:                                             ; preds = %5605
  %5610 = load ptr, ptr %12, align 8, !tbaa !5
  %5611 = load i32, ptr %20, align 4, !tbaa !9
  %5612 = load i32, ptr %28, align 4, !tbaa !9
  %5613 = mul nsw i32 %5611, %5612
  %5614 = sext i32 %5613 to i64
  %5615 = getelementptr inbounds %struct.complex, ptr %5610, i64 %5614
  call void @classq_(ptr noundef %20, ptr noundef %5615, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5616

5616:                                             ; preds = %5609
  %5617 = load i32, ptr %20, align 4, !tbaa !9
  %5618 = add nsw i32 %5617, 1
  store i32 %5618, ptr %20, align 4, !tbaa !9
  br label %5605, !llvm.loop !131

5619:                                             ; preds = %5605
  %5620 = load float, ptr %23, align 4, !tbaa !11
  %5621 = load float, ptr %23, align 4, !tbaa !11
  %5622 = fadd float %5621, %5620
  store float %5622, ptr %23, align 4, !tbaa !11
  store i32 0, ptr %22, align 4, !tbaa !9
  %5623 = load i32, ptr %21, align 4, !tbaa !9
  %5624 = sub nsw i32 %5623, 1
  store i32 %5624, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %5625

5625:                                             ; preds = %5701, %5619
  %5626 = load i32, ptr %19, align 4, !tbaa !9
  %5627 = load i32, ptr %14, align 4, !tbaa !9
  %5628 = icmp sle i32 %5626, %5627
  br i1 %5628, label %5629, label %5704

5629:                                             ; preds = %5625
  %5630 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %5630, ptr %15, align 4, !tbaa !9
  %5631 = load ptr, ptr %12, align 8, !tbaa !5
  %5632 = load i32, ptr %15, align 4, !tbaa !9
  %5633 = sext i32 %5632 to i64
  %5634 = getelementptr inbounds %struct.complex, ptr %5631, i64 %5633
  %5635 = getelementptr inbounds %struct.complex, ptr %5634, i32 0, i32 0
  %5636 = load float, ptr %5635, align 4, !tbaa !13
  store float %5636, ptr %27, align 4, !tbaa !11
  %5637 = load float, ptr %27, align 4, !tbaa !11
  %5638 = fcmp une float %5637, 0.000000e+00
  br i1 %5638, label %5639, label %5662

5639:                                             ; preds = %5629
  %5640 = load float, ptr %24, align 4, !tbaa !11
  %5641 = load float, ptr %27, align 4, !tbaa !11
  %5642 = fcmp olt float %5640, %5641
  br i1 %5642, label %5643, label %5653

5643:                                             ; preds = %5639
  %5644 = load float, ptr %24, align 4, !tbaa !11
  %5645 = load float, ptr %27, align 4, !tbaa !11
  %5646 = fdiv float %5644, %5645
  store float %5646, ptr %17, align 4, !tbaa !11
  %5647 = load float, ptr %23, align 4, !tbaa !11
  %5648 = load float, ptr %17, align 4, !tbaa !11
  %5649 = load float, ptr %17, align 4, !tbaa !11
  %5650 = fmul float %5648, %5649
  %5651 = call float @llvm.fmuladd.f32(float %5647, float %5650, float 1.000000e+00)
  store float %5651, ptr %23, align 4, !tbaa !11
  %5652 = load float, ptr %27, align 4, !tbaa !11
  store float %5652, ptr %24, align 4, !tbaa !11
  br label %5661

5653:                                             ; preds = %5639
  %5654 = load float, ptr %27, align 4, !tbaa !11
  %5655 = load float, ptr %24, align 4, !tbaa !11
  %5656 = fdiv float %5654, %5655
  store float %5656, ptr %17, align 4, !tbaa !11
  %5657 = load float, ptr %17, align 4, !tbaa !11
  %5658 = load float, ptr %17, align 4, !tbaa !11
  %5659 = load float, ptr %23, align 4, !tbaa !11
  %5660 = call float @llvm.fmuladd.f32(float %5657, float %5658, float %5659)
  store float %5660, ptr %23, align 4, !tbaa !11
  br label %5661

5661:                                             ; preds = %5653, %5643
  br label %5662

5662:                                             ; preds = %5661, %5629
  %5663 = load i32, ptr %22, align 4, !tbaa !9
  %5664 = add nsw i32 %5663, 1
  store i32 %5664, ptr %15, align 4, !tbaa !9
  %5665 = load ptr, ptr %12, align 8, !tbaa !5
  %5666 = load i32, ptr %15, align 4, !tbaa !9
  %5667 = sext i32 %5666 to i64
  %5668 = getelementptr inbounds %struct.complex, ptr %5665, i64 %5667
  %5669 = getelementptr inbounds %struct.complex, ptr %5668, i32 0, i32 0
  %5670 = load float, ptr %5669, align 4, !tbaa !13
  store float %5670, ptr %27, align 4, !tbaa !11
  %5671 = load float, ptr %27, align 4, !tbaa !11
  %5672 = fcmp une float %5671, 0.000000e+00
  br i1 %5672, label %5673, label %5696

5673:                                             ; preds = %5662
  %5674 = load float, ptr %24, align 4, !tbaa !11
  %5675 = load float, ptr %27, align 4, !tbaa !11
  %5676 = fcmp olt float %5674, %5675
  br i1 %5676, label %5677, label %5687

5677:                                             ; preds = %5673
  %5678 = load float, ptr %24, align 4, !tbaa !11
  %5679 = load float, ptr %27, align 4, !tbaa !11
  %5680 = fdiv float %5678, %5679
  store float %5680, ptr %17, align 4, !tbaa !11
  %5681 = load float, ptr %23, align 4, !tbaa !11
  %5682 = load float, ptr %17, align 4, !tbaa !11
  %5683 = load float, ptr %17, align 4, !tbaa !11
  %5684 = fmul float %5682, %5683
  %5685 = call float @llvm.fmuladd.f32(float %5681, float %5684, float 1.000000e+00)
  store float %5685, ptr %23, align 4, !tbaa !11
  %5686 = load float, ptr %27, align 4, !tbaa !11
  store float %5686, ptr %24, align 4, !tbaa !11
  br label %5695

5687:                                             ; preds = %5673
  %5688 = load float, ptr %27, align 4, !tbaa !11
  %5689 = load float, ptr %24, align 4, !tbaa !11
  %5690 = fdiv float %5688, %5689
  store float %5690, ptr %17, align 4, !tbaa !11
  %5691 = load float, ptr %17, align 4, !tbaa !11
  %5692 = load float, ptr %17, align 4, !tbaa !11
  %5693 = load float, ptr %23, align 4, !tbaa !11
  %5694 = call float @llvm.fmuladd.f32(float %5691, float %5692, float %5693)
  store float %5694, ptr %23, align 4, !tbaa !11
  br label %5695

5695:                                             ; preds = %5687, %5677
  br label %5696

5696:                                             ; preds = %5695, %5662
  %5697 = load i32, ptr %22, align 4, !tbaa !9
  %5698 = load i32, ptr %28, align 4, !tbaa !9
  %5699 = add nsw i32 %5697, %5698
  %5700 = add nsw i32 %5699, 1
  store i32 %5700, ptr %22, align 4, !tbaa !9
  br label %5701

5701:                                             ; preds = %5696
  %5702 = load i32, ptr %19, align 4, !tbaa !9
  %5703 = add nsw i32 %5702, 1
  store i32 %5703, ptr %19, align 4, !tbaa !9
  br label %5625, !llvm.loop !132

5704:                                             ; preds = %5625
  br label %5705

5705:                                             ; preds = %5704, %5576
  br label %6148

5706:                                             ; preds = %5438
  %5707 = load i32, ptr %31, align 4, !tbaa !9
  %5708 = icmp eq i32 %5707, 0
  br i1 %5708, label %5709, label %5933

5709:                                             ; preds = %5706
  %5710 = load i32, ptr %21, align 4, !tbaa !9
  %5711 = sub nsw i32 %5710, 1
  store i32 %5711, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %5712

5712:                                             ; preds = %5726, %5709
  %5713 = load i32, ptr %20, align 4, !tbaa !9
  %5714 = load i32, ptr %14, align 4, !tbaa !9
  %5715 = icmp sle i32 %5713, %5714
  br i1 %5715, label %5716, label %5729

5716:                                             ; preds = %5712
  %5717 = load ptr, ptr %12, align 8, !tbaa !5
  %5718 = load i32, ptr %21, align 4, !tbaa !9
  %5719 = add nsw i32 %5718, 1
  %5720 = load i32, ptr %20, align 4, !tbaa !9
  %5721 = add nsw i32 %5719, %5720
  %5722 = load i32, ptr %28, align 4, !tbaa !9
  %5723 = mul nsw i32 %5721, %5722
  %5724 = sext i32 %5723 to i64
  %5725 = getelementptr inbounds %struct.complex, ptr %5717, i64 %5724
  call void @classq_(ptr noundef %20, ptr noundef %5725, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5726

5726:                                             ; preds = %5716
  %5727 = load i32, ptr %20, align 4, !tbaa !9
  %5728 = add nsw i32 %5727, 1
  store i32 %5728, ptr %20, align 4, !tbaa !9
  br label %5712, !llvm.loop !133

5729:                                             ; preds = %5712
  %5730 = load i32, ptr %21, align 4, !tbaa !9
  %5731 = sub nsw i32 %5730, 1
  store i32 %5731, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %5732

5732:                                             ; preds = %5743, %5729
  %5733 = load i32, ptr %20, align 4, !tbaa !9
  %5734 = load i32, ptr %14, align 4, !tbaa !9
  %5735 = icmp sle i32 %5733, %5734
  br i1 %5735, label %5736, label %5746

5736:                                             ; preds = %5732
  %5737 = load ptr, ptr %12, align 8, !tbaa !5
  %5738 = load i32, ptr %20, align 4, !tbaa !9
  %5739 = load i32, ptr %28, align 4, !tbaa !9
  %5740 = mul nsw i32 %5738, %5739
  %5741 = sext i32 %5740 to i64
  %5742 = getelementptr inbounds %struct.complex, ptr %5737, i64 %5741
  call void @classq_(ptr noundef %21, ptr noundef %5742, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5743

5743:                                             ; preds = %5736
  %5744 = load i32, ptr %20, align 4, !tbaa !9
  %5745 = add nsw i32 %5744, 1
  store i32 %5745, ptr %20, align 4, !tbaa !9
  br label %5732, !llvm.loop !134

5746:                                             ; preds = %5732
  %5747 = load i32, ptr %21, align 4, !tbaa !9
  %5748 = sub nsw i32 %5747, 2
  store i32 %5748, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %5749

5749:                                             ; preds = %5769, %5746
  %5750 = load i32, ptr %20, align 4, !tbaa !9
  %5751 = load i32, ptr %14, align 4, !tbaa !9
  %5752 = icmp sle i32 %5750, %5751
  br i1 %5752, label %5753, label %5772

5753:                                             ; preds = %5749
  %5754 = load i32, ptr %21, align 4, !tbaa !9
  %5755 = load i32, ptr %20, align 4, !tbaa !9
  %5756 = sub nsw i32 %5754, %5755
  %5757 = sub nsw i32 %5756, 1
  store i32 %5757, ptr %15, align 4, !tbaa !9
  %5758 = load ptr, ptr %12, align 8, !tbaa !5
  %5759 = load i32, ptr %20, align 4, !tbaa !9
  %5760 = add nsw i32 %5759, 1
  %5761 = load i32, ptr %20, align 4, !tbaa !9
  %5762 = load i32, ptr %21, align 4, !tbaa !9
  %5763 = add nsw i32 %5761, %5762
  %5764 = load i32, ptr %28, align 4, !tbaa !9
  %5765 = mul nsw i32 %5763, %5764
  %5766 = add nsw i32 %5760, %5765
  %5767 = sext i32 %5766 to i64
  %5768 = getelementptr inbounds %struct.complex, ptr %5758, i64 %5767
  call void @classq_(ptr noundef %15, ptr noundef %5768, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5769

5769:                                             ; preds = %5753
  %5770 = load i32, ptr %20, align 4, !tbaa !9
  %5771 = add nsw i32 %5770, 1
  store i32 %5771, ptr %20, align 4, !tbaa !9
  br label %5749, !llvm.loop !135

5772:                                             ; preds = %5749
  %5773 = load float, ptr %23, align 4, !tbaa !11
  %5774 = load float, ptr %23, align 4, !tbaa !11
  %5775 = fadd float %5774, %5773
  store float %5775, ptr %23, align 4, !tbaa !11
  %5776 = load i32, ptr %21, align 4, !tbaa !9
  %5777 = load i32, ptr %28, align 4, !tbaa !9
  %5778 = mul nsw i32 %5776, %5777
  store i32 %5778, ptr %22, align 4, !tbaa !9
  %5779 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %5779, ptr %14, align 4, !tbaa !9
  %5780 = load ptr, ptr %12, align 8, !tbaa !5
  %5781 = load i32, ptr %14, align 4, !tbaa !9
  %5782 = sext i32 %5781 to i64
  %5783 = getelementptr inbounds %struct.complex, ptr %5780, i64 %5782
  %5784 = getelementptr inbounds %struct.complex, ptr %5783, i32 0, i32 0
  %5785 = load float, ptr %5784, align 4, !tbaa !13
  store float %5785, ptr %27, align 4, !tbaa !11
  %5786 = load float, ptr %27, align 4, !tbaa !11
  %5787 = fcmp une float %5786, 0.000000e+00
  br i1 %5787, label %5788, label %5811

5788:                                             ; preds = %5772
  %5789 = load float, ptr %24, align 4, !tbaa !11
  %5790 = load float, ptr %27, align 4, !tbaa !11
  %5791 = fcmp olt float %5789, %5790
  br i1 %5791, label %5792, label %5802

5792:                                             ; preds = %5788
  %5793 = load float, ptr %24, align 4, !tbaa !11
  %5794 = load float, ptr %27, align 4, !tbaa !11
  %5795 = fdiv float %5793, %5794
  store float %5795, ptr %17, align 4, !tbaa !11
  %5796 = load float, ptr %23, align 4, !tbaa !11
  %5797 = load float, ptr %17, align 4, !tbaa !11
  %5798 = load float, ptr %17, align 4, !tbaa !11
  %5799 = fmul float %5797, %5798
  %5800 = call float @llvm.fmuladd.f32(float %5796, float %5799, float 1.000000e+00)
  store float %5800, ptr %23, align 4, !tbaa !11
  %5801 = load float, ptr %27, align 4, !tbaa !11
  store float %5801, ptr %24, align 4, !tbaa !11
  br label %5810

5802:                                             ; preds = %5788
  %5803 = load float, ptr %27, align 4, !tbaa !11
  %5804 = load float, ptr %24, align 4, !tbaa !11
  %5805 = fdiv float %5803, %5804
  store float %5805, ptr %17, align 4, !tbaa !11
  %5806 = load float, ptr %17, align 4, !tbaa !11
  %5807 = load float, ptr %17, align 4, !tbaa !11
  %5808 = load float, ptr %23, align 4, !tbaa !11
  %5809 = call float @llvm.fmuladd.f32(float %5806, float %5807, float %5808)
  store float %5809, ptr %23, align 4, !tbaa !11
  br label %5810

5810:                                             ; preds = %5802, %5792
  br label %5811

5811:                                             ; preds = %5810, %5772
  %5812 = load i32, ptr %28, align 4, !tbaa !9
  %5813 = load i32, ptr %22, align 4, !tbaa !9
  %5814 = add nsw i32 %5813, %5812
  store i32 %5814, ptr %22, align 4, !tbaa !9
  %5815 = load ptr, ptr %11, align 8, !tbaa !5
  %5816 = load i32, ptr %5815, align 4, !tbaa !9
  %5817 = sub nsw i32 %5816, 1
  store i32 %5817, ptr %14, align 4, !tbaa !9
  %5818 = load i32, ptr %21, align 4, !tbaa !9
  %5819 = add nsw i32 %5818, 1
  store i32 %5819, ptr %20, align 4, !tbaa !9
  br label %5820

5820:                                             ; preds = %5896, %5811
  %5821 = load i32, ptr %20, align 4, !tbaa !9
  %5822 = load i32, ptr %14, align 4, !tbaa !9
  %5823 = icmp sle i32 %5821, %5822
  br i1 %5823, label %5824, label %5899

5824:                                             ; preds = %5820
  %5825 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %5825, ptr %15, align 4, !tbaa !9
  %5826 = load ptr, ptr %12, align 8, !tbaa !5
  %5827 = load i32, ptr %15, align 4, !tbaa !9
  %5828 = sext i32 %5827 to i64
  %5829 = getelementptr inbounds %struct.complex, ptr %5826, i64 %5828
  %5830 = getelementptr inbounds %struct.complex, ptr %5829, i32 0, i32 0
  %5831 = load float, ptr %5830, align 4, !tbaa !13
  store float %5831, ptr %27, align 4, !tbaa !11
  %5832 = load float, ptr %27, align 4, !tbaa !11
  %5833 = fcmp une float %5832, 0.000000e+00
  br i1 %5833, label %5834, label %5857

5834:                                             ; preds = %5824
  %5835 = load float, ptr %24, align 4, !tbaa !11
  %5836 = load float, ptr %27, align 4, !tbaa !11
  %5837 = fcmp olt float %5835, %5836
  br i1 %5837, label %5838, label %5848

5838:                                             ; preds = %5834
  %5839 = load float, ptr %24, align 4, !tbaa !11
  %5840 = load float, ptr %27, align 4, !tbaa !11
  %5841 = fdiv float %5839, %5840
  store float %5841, ptr %17, align 4, !tbaa !11
  %5842 = load float, ptr %23, align 4, !tbaa !11
  %5843 = load float, ptr %17, align 4, !tbaa !11
  %5844 = load float, ptr %17, align 4, !tbaa !11
  %5845 = fmul float %5843, %5844
  %5846 = call float @llvm.fmuladd.f32(float %5842, float %5845, float 1.000000e+00)
  store float %5846, ptr %23, align 4, !tbaa !11
  %5847 = load float, ptr %27, align 4, !tbaa !11
  store float %5847, ptr %24, align 4, !tbaa !11
  br label %5856

5848:                                             ; preds = %5834
  %5849 = load float, ptr %27, align 4, !tbaa !11
  %5850 = load float, ptr %24, align 4, !tbaa !11
  %5851 = fdiv float %5849, %5850
  store float %5851, ptr %17, align 4, !tbaa !11
  %5852 = load float, ptr %17, align 4, !tbaa !11
  %5853 = load float, ptr %17, align 4, !tbaa !11
  %5854 = load float, ptr %23, align 4, !tbaa !11
  %5855 = call float @llvm.fmuladd.f32(float %5852, float %5853, float %5854)
  store float %5855, ptr %23, align 4, !tbaa !11
  br label %5856

5856:                                             ; preds = %5848, %5838
  br label %5857

5857:                                             ; preds = %5856, %5824
  %5858 = load i32, ptr %22, align 4, !tbaa !9
  %5859 = add nsw i32 %5858, 1
  store i32 %5859, ptr %15, align 4, !tbaa !9
  %5860 = load ptr, ptr %12, align 8, !tbaa !5
  %5861 = load i32, ptr %15, align 4, !tbaa !9
  %5862 = sext i32 %5861 to i64
  %5863 = getelementptr inbounds %struct.complex, ptr %5860, i64 %5862
  %5864 = getelementptr inbounds %struct.complex, ptr %5863, i32 0, i32 0
  %5865 = load float, ptr %5864, align 4, !tbaa !13
  store float %5865, ptr %27, align 4, !tbaa !11
  %5866 = load float, ptr %27, align 4, !tbaa !11
  %5867 = fcmp une float %5866, 0.000000e+00
  br i1 %5867, label %5868, label %5891

5868:                                             ; preds = %5857
  %5869 = load float, ptr %24, align 4, !tbaa !11
  %5870 = load float, ptr %27, align 4, !tbaa !11
  %5871 = fcmp olt float %5869, %5870
  br i1 %5871, label %5872, label %5882

5872:                                             ; preds = %5868
  %5873 = load float, ptr %24, align 4, !tbaa !11
  %5874 = load float, ptr %27, align 4, !tbaa !11
  %5875 = fdiv float %5873, %5874
  store float %5875, ptr %17, align 4, !tbaa !11
  %5876 = load float, ptr %23, align 4, !tbaa !11
  %5877 = load float, ptr %17, align 4, !tbaa !11
  %5878 = load float, ptr %17, align 4, !tbaa !11
  %5879 = fmul float %5877, %5878
  %5880 = call float @llvm.fmuladd.f32(float %5876, float %5879, float 1.000000e+00)
  store float %5880, ptr %23, align 4, !tbaa !11
  %5881 = load float, ptr %27, align 4, !tbaa !11
  store float %5881, ptr %24, align 4, !tbaa !11
  br label %5890

5882:                                             ; preds = %5868
  %5883 = load float, ptr %27, align 4, !tbaa !11
  %5884 = load float, ptr %24, align 4, !tbaa !11
  %5885 = fdiv float %5883, %5884
  store float %5885, ptr %17, align 4, !tbaa !11
  %5886 = load float, ptr %17, align 4, !tbaa !11
  %5887 = load float, ptr %17, align 4, !tbaa !11
  %5888 = load float, ptr %23, align 4, !tbaa !11
  %5889 = call float @llvm.fmuladd.f32(float %5886, float %5887, float %5888)
  store float %5889, ptr %23, align 4, !tbaa !11
  br label %5890

5890:                                             ; preds = %5882, %5872
  br label %5891

5891:                                             ; preds = %5890, %5857
  %5892 = load i32, ptr %22, align 4, !tbaa !9
  %5893 = load i32, ptr %28, align 4, !tbaa !9
  %5894 = add nsw i32 %5892, %5893
  %5895 = add nsw i32 %5894, 1
  store i32 %5895, ptr %22, align 4, !tbaa !9
  br label %5896

5896:                                             ; preds = %5891
  %5897 = load i32, ptr %20, align 4, !tbaa !9
  %5898 = add nsw i32 %5897, 1
  store i32 %5898, ptr %20, align 4, !tbaa !9
  br label %5820, !llvm.loop !136

5899:                                             ; preds = %5820
  %5900 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %5900, ptr %14, align 4, !tbaa !9
  %5901 = load ptr, ptr %12, align 8, !tbaa !5
  %5902 = load i32, ptr %14, align 4, !tbaa !9
  %5903 = sext i32 %5902 to i64
  %5904 = getelementptr inbounds %struct.complex, ptr %5901, i64 %5903
  %5905 = getelementptr inbounds %struct.complex, ptr %5904, i32 0, i32 0
  %5906 = load float, ptr %5905, align 4, !tbaa !13
  store float %5906, ptr %27, align 4, !tbaa !11
  %5907 = load float, ptr %27, align 4, !tbaa !11
  %5908 = fcmp une float %5907, 0.000000e+00
  br i1 %5908, label %5909, label %5932

5909:                                             ; preds = %5899
  %5910 = load float, ptr %24, align 4, !tbaa !11
  %5911 = load float, ptr %27, align 4, !tbaa !11
  %5912 = fcmp olt float %5910, %5911
  br i1 %5912, label %5913, label %5923

5913:                                             ; preds = %5909
  %5914 = load float, ptr %24, align 4, !tbaa !11
  %5915 = load float, ptr %27, align 4, !tbaa !11
  %5916 = fdiv float %5914, %5915
  store float %5916, ptr %17, align 4, !tbaa !11
  %5917 = load float, ptr %23, align 4, !tbaa !11
  %5918 = load float, ptr %17, align 4, !tbaa !11
  %5919 = load float, ptr %17, align 4, !tbaa !11
  %5920 = fmul float %5918, %5919
  %5921 = call float @llvm.fmuladd.f32(float %5917, float %5920, float 1.000000e+00)
  store float %5921, ptr %23, align 4, !tbaa !11
  %5922 = load float, ptr %27, align 4, !tbaa !11
  store float %5922, ptr %24, align 4, !tbaa !11
  br label %5931

5923:                                             ; preds = %5909
  %5924 = load float, ptr %27, align 4, !tbaa !11
  %5925 = load float, ptr %24, align 4, !tbaa !11
  %5926 = fdiv float %5924, %5925
  store float %5926, ptr %17, align 4, !tbaa !11
  %5927 = load float, ptr %17, align 4, !tbaa !11
  %5928 = load float, ptr %17, align 4, !tbaa !11
  %5929 = load float, ptr %23, align 4, !tbaa !11
  %5930 = call float @llvm.fmuladd.f32(float %5927, float %5928, float %5929)
  store float %5930, ptr %23, align 4, !tbaa !11
  br label %5931

5931:                                             ; preds = %5923, %5913
  br label %5932

5932:                                             ; preds = %5931, %5899
  br label %6147

5933:                                             ; preds = %5706
  %5934 = load i32, ptr %21, align 4, !tbaa !9
  %5935 = sub nsw i32 %5934, 1
  store i32 %5935, ptr %14, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  br label %5936

5936:                                             ; preds = %5948, %5933
  %5937 = load i32, ptr %20, align 4, !tbaa !9
  %5938 = load i32, ptr %14, align 4, !tbaa !9
  %5939 = icmp sle i32 %5937, %5938
  br i1 %5939, label %5940, label %5951

5940:                                             ; preds = %5936
  %5941 = load ptr, ptr %12, align 8, !tbaa !5
  %5942 = load i32, ptr %20, align 4, !tbaa !9
  %5943 = add nsw i32 %5942, 1
  %5944 = load i32, ptr %28, align 4, !tbaa !9
  %5945 = mul nsw i32 %5943, %5944
  %5946 = sext i32 %5945 to i64
  %5947 = getelementptr inbounds %struct.complex, ptr %5941, i64 %5946
  call void @classq_(ptr noundef %20, ptr noundef %5947, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5948

5948:                                             ; preds = %5940
  %5949 = load i32, ptr %20, align 4, !tbaa !9
  %5950 = add nsw i32 %5949, 1
  store i32 %5950, ptr %20, align 4, !tbaa !9
  br label %5936, !llvm.loop !137

5951:                                             ; preds = %5936
  %5952 = load ptr, ptr %11, align 8, !tbaa !5
  %5953 = load i32, ptr %5952, align 4, !tbaa !9
  store i32 %5953, ptr %14, align 4, !tbaa !9
  %5954 = load i32, ptr %21, align 4, !tbaa !9
  %5955 = add nsw i32 %5954, 1
  store i32 %5955, ptr %20, align 4, !tbaa !9
  br label %5956

5956:                                             ; preds = %5967, %5951
  %5957 = load i32, ptr %20, align 4, !tbaa !9
  %5958 = load i32, ptr %14, align 4, !tbaa !9
  %5959 = icmp sle i32 %5957, %5958
  br i1 %5959, label %5960, label %5970

5960:                                             ; preds = %5956
  %5961 = load ptr, ptr %12, align 8, !tbaa !5
  %5962 = load i32, ptr %20, align 4, !tbaa !9
  %5963 = load i32, ptr %28, align 4, !tbaa !9
  %5964 = mul nsw i32 %5962, %5963
  %5965 = sext i32 %5964 to i64
  %5966 = getelementptr inbounds %struct.complex, ptr %5961, i64 %5965
  call void @classq_(ptr noundef %21, ptr noundef %5966, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5967

5967:                                             ; preds = %5960
  %5968 = load i32, ptr %20, align 4, !tbaa !9
  %5969 = add nsw i32 %5968, 1
  store i32 %5969, ptr %20, align 4, !tbaa !9
  br label %5956, !llvm.loop !138

5970:                                             ; preds = %5956
  %5971 = load i32, ptr %21, align 4, !tbaa !9
  %5972 = sub nsw i32 %5971, 2
  store i32 %5972, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %20, align 4, !tbaa !9
  br label %5973

5973:                                             ; preds = %5991, %5970
  %5974 = load i32, ptr %20, align 4, !tbaa !9
  %5975 = load i32, ptr %14, align 4, !tbaa !9
  %5976 = icmp sle i32 %5974, %5975
  br i1 %5976, label %5977, label %5994

5977:                                             ; preds = %5973
  %5978 = load i32, ptr %21, align 4, !tbaa !9
  %5979 = load i32, ptr %20, align 4, !tbaa !9
  %5980 = sub nsw i32 %5978, %5979
  %5981 = sub nsw i32 %5980, 1
  store i32 %5981, ptr %15, align 4, !tbaa !9
  %5982 = load ptr, ptr %12, align 8, !tbaa !5
  %5983 = load i32, ptr %20, align 4, !tbaa !9
  %5984 = add nsw i32 %5983, 1
  %5985 = load i32, ptr %20, align 4, !tbaa !9
  %5986 = load i32, ptr %28, align 4, !tbaa !9
  %5987 = mul nsw i32 %5985, %5986
  %5988 = add nsw i32 %5984, %5987
  %5989 = sext i32 %5988 to i64
  %5990 = getelementptr inbounds %struct.complex, ptr %5982, i64 %5989
  call void @classq_(ptr noundef %15, ptr noundef %5990, ptr noundef @c__1, ptr noundef %24, ptr noundef %23)
  br label %5991

5991:                                             ; preds = %5977
  %5992 = load i32, ptr %20, align 4, !tbaa !9
  %5993 = add nsw i32 %5992, 1
  store i32 %5993, ptr %20, align 4, !tbaa !9
  br label %5973, !llvm.loop !139

5994:                                             ; preds = %5973
  %5995 = load float, ptr %23, align 4, !tbaa !11
  %5996 = load float, ptr %23, align 4, !tbaa !11
  %5997 = fadd float %5996, %5995
  store float %5997, ptr %23, align 4, !tbaa !11
  store i32 0, ptr %22, align 4, !tbaa !9
  %5998 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %5998, ptr %14, align 4, !tbaa !9
  %5999 = load ptr, ptr %12, align 8, !tbaa !5
  %6000 = load i32, ptr %14, align 4, !tbaa !9
  %6001 = sext i32 %6000 to i64
  %6002 = getelementptr inbounds %struct.complex, ptr %5999, i64 %6001
  %6003 = getelementptr inbounds %struct.complex, ptr %6002, i32 0, i32 0
  %6004 = load float, ptr %6003, align 4, !tbaa !13
  store float %6004, ptr %27, align 4, !tbaa !11
  %6005 = load float, ptr %27, align 4, !tbaa !11
  %6006 = fcmp une float %6005, 0.000000e+00
  br i1 %6006, label %6007, label %6030

6007:                                             ; preds = %5994
  %6008 = load float, ptr %24, align 4, !tbaa !11
  %6009 = load float, ptr %27, align 4, !tbaa !11
  %6010 = fcmp olt float %6008, %6009
  br i1 %6010, label %6011, label %6021

6011:                                             ; preds = %6007
  %6012 = load float, ptr %24, align 4, !tbaa !11
  %6013 = load float, ptr %27, align 4, !tbaa !11
  %6014 = fdiv float %6012, %6013
  store float %6014, ptr %17, align 4, !tbaa !11
  %6015 = load float, ptr %23, align 4, !tbaa !11
  %6016 = load float, ptr %17, align 4, !tbaa !11
  %6017 = load float, ptr %17, align 4, !tbaa !11
  %6018 = fmul float %6016, %6017
  %6019 = call float @llvm.fmuladd.f32(float %6015, float %6018, float 1.000000e+00)
  store float %6019, ptr %23, align 4, !tbaa !11
  %6020 = load float, ptr %27, align 4, !tbaa !11
  store float %6020, ptr %24, align 4, !tbaa !11
  br label %6029

6021:                                             ; preds = %6007
  %6022 = load float, ptr %27, align 4, !tbaa !11
  %6023 = load float, ptr %24, align 4, !tbaa !11
  %6024 = fdiv float %6022, %6023
  store float %6024, ptr %17, align 4, !tbaa !11
  %6025 = load float, ptr %17, align 4, !tbaa !11
  %6026 = load float, ptr %17, align 4, !tbaa !11
  %6027 = load float, ptr %23, align 4, !tbaa !11
  %6028 = call float @llvm.fmuladd.f32(float %6025, float %6026, float %6027)
  store float %6028, ptr %23, align 4, !tbaa !11
  br label %6029

6029:                                             ; preds = %6021, %6011
  br label %6030

6030:                                             ; preds = %6029, %5994
  %6031 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %6031, ptr %22, align 4, !tbaa !9
  %6032 = load i32, ptr %21, align 4, !tbaa !9
  %6033 = sub nsw i32 %6032, 2
  store i32 %6033, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %6034

6034:                                             ; preds = %6110, %6030
  %6035 = load i32, ptr %19, align 4, !tbaa !9
  %6036 = load i32, ptr %14, align 4, !tbaa !9
  %6037 = icmp sle i32 %6035, %6036
  br i1 %6037, label %6038, label %6113

6038:                                             ; preds = %6034
  %6039 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %6039, ptr %15, align 4, !tbaa !9
  %6040 = load ptr, ptr %12, align 8, !tbaa !5
  %6041 = load i32, ptr %15, align 4, !tbaa !9
  %6042 = sext i32 %6041 to i64
  %6043 = getelementptr inbounds %struct.complex, ptr %6040, i64 %6042
  %6044 = getelementptr inbounds %struct.complex, ptr %6043, i32 0, i32 0
  %6045 = load float, ptr %6044, align 4, !tbaa !13
  store float %6045, ptr %27, align 4, !tbaa !11
  %6046 = load float, ptr %27, align 4, !tbaa !11
  %6047 = fcmp une float %6046, 0.000000e+00
  br i1 %6047, label %6048, label %6071

6048:                                             ; preds = %6038
  %6049 = load float, ptr %24, align 4, !tbaa !11
  %6050 = load float, ptr %27, align 4, !tbaa !11
  %6051 = fcmp olt float %6049, %6050
  br i1 %6051, label %6052, label %6062

6052:                                             ; preds = %6048
  %6053 = load float, ptr %24, align 4, !tbaa !11
  %6054 = load float, ptr %27, align 4, !tbaa !11
  %6055 = fdiv float %6053, %6054
  store float %6055, ptr %17, align 4, !tbaa !11
  %6056 = load float, ptr %23, align 4, !tbaa !11
  %6057 = load float, ptr %17, align 4, !tbaa !11
  %6058 = load float, ptr %17, align 4, !tbaa !11
  %6059 = fmul float %6057, %6058
  %6060 = call float @llvm.fmuladd.f32(float %6056, float %6059, float 1.000000e+00)
  store float %6060, ptr %23, align 4, !tbaa !11
  %6061 = load float, ptr %27, align 4, !tbaa !11
  store float %6061, ptr %24, align 4, !tbaa !11
  br label %6070

6062:                                             ; preds = %6048
  %6063 = load float, ptr %27, align 4, !tbaa !11
  %6064 = load float, ptr %24, align 4, !tbaa !11
  %6065 = fdiv float %6063, %6064
  store float %6065, ptr %17, align 4, !tbaa !11
  %6066 = load float, ptr %17, align 4, !tbaa !11
  %6067 = load float, ptr %17, align 4, !tbaa !11
  %6068 = load float, ptr %23, align 4, !tbaa !11
  %6069 = call float @llvm.fmuladd.f32(float %6066, float %6067, float %6068)
  store float %6069, ptr %23, align 4, !tbaa !11
  br label %6070

6070:                                             ; preds = %6062, %6052
  br label %6071

6071:                                             ; preds = %6070, %6038
  %6072 = load i32, ptr %22, align 4, !tbaa !9
  %6073 = add nsw i32 %6072, 1
  store i32 %6073, ptr %15, align 4, !tbaa !9
  %6074 = load ptr, ptr %12, align 8, !tbaa !5
  %6075 = load i32, ptr %15, align 4, !tbaa !9
  %6076 = sext i32 %6075 to i64
  %6077 = getelementptr inbounds %struct.complex, ptr %6074, i64 %6076
  %6078 = getelementptr inbounds %struct.complex, ptr %6077, i32 0, i32 0
  %6079 = load float, ptr %6078, align 4, !tbaa !13
  store float %6079, ptr %27, align 4, !tbaa !11
  %6080 = load float, ptr %27, align 4, !tbaa !11
  %6081 = fcmp une float %6080, 0.000000e+00
  br i1 %6081, label %6082, label %6105

6082:                                             ; preds = %6071
  %6083 = load float, ptr %24, align 4, !tbaa !11
  %6084 = load float, ptr %27, align 4, !tbaa !11
  %6085 = fcmp olt float %6083, %6084
  br i1 %6085, label %6086, label %6096

6086:                                             ; preds = %6082
  %6087 = load float, ptr %24, align 4, !tbaa !11
  %6088 = load float, ptr %27, align 4, !tbaa !11
  %6089 = fdiv float %6087, %6088
  store float %6089, ptr %17, align 4, !tbaa !11
  %6090 = load float, ptr %23, align 4, !tbaa !11
  %6091 = load float, ptr %17, align 4, !tbaa !11
  %6092 = load float, ptr %17, align 4, !tbaa !11
  %6093 = fmul float %6091, %6092
  %6094 = call float @llvm.fmuladd.f32(float %6090, float %6093, float 1.000000e+00)
  store float %6094, ptr %23, align 4, !tbaa !11
  %6095 = load float, ptr %27, align 4, !tbaa !11
  store float %6095, ptr %24, align 4, !tbaa !11
  br label %6104

6096:                                             ; preds = %6082
  %6097 = load float, ptr %27, align 4, !tbaa !11
  %6098 = load float, ptr %24, align 4, !tbaa !11
  %6099 = fdiv float %6097, %6098
  store float %6099, ptr %17, align 4, !tbaa !11
  %6100 = load float, ptr %17, align 4, !tbaa !11
  %6101 = load float, ptr %17, align 4, !tbaa !11
  %6102 = load float, ptr %23, align 4, !tbaa !11
  %6103 = call float @llvm.fmuladd.f32(float %6100, float %6101, float %6102)
  store float %6103, ptr %23, align 4, !tbaa !11
  br label %6104

6104:                                             ; preds = %6096, %6086
  br label %6105

6105:                                             ; preds = %6104, %6071
  %6106 = load i32, ptr %22, align 4, !tbaa !9
  %6107 = load i32, ptr %28, align 4, !tbaa !9
  %6108 = add nsw i32 %6106, %6107
  %6109 = add nsw i32 %6108, 1
  store i32 %6109, ptr %22, align 4, !tbaa !9
  br label %6110

6110:                                             ; preds = %6105
  %6111 = load i32, ptr %19, align 4, !tbaa !9
  %6112 = add nsw i32 %6111, 1
  store i32 %6112, ptr %19, align 4, !tbaa !9
  br label %6034, !llvm.loop !140

6113:                                             ; preds = %6034
  %6114 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %6114, ptr %14, align 4, !tbaa !9
  %6115 = load ptr, ptr %12, align 8, !tbaa !5
  %6116 = load i32, ptr %14, align 4, !tbaa !9
  %6117 = sext i32 %6116 to i64
  %6118 = getelementptr inbounds %struct.complex, ptr %6115, i64 %6117
  %6119 = getelementptr inbounds %struct.complex, ptr %6118, i32 0, i32 0
  %6120 = load float, ptr %6119, align 4, !tbaa !13
  store float %6120, ptr %27, align 4, !tbaa !11
  %6121 = load float, ptr %27, align 4, !tbaa !11
  %6122 = fcmp une float %6121, 0.000000e+00
  br i1 %6122, label %6123, label %6146

6123:                                             ; preds = %6113
  %6124 = load float, ptr %24, align 4, !tbaa !11
  %6125 = load float, ptr %27, align 4, !tbaa !11
  %6126 = fcmp olt float %6124, %6125
  br i1 %6126, label %6127, label %6137

6127:                                             ; preds = %6123
  %6128 = load float, ptr %24, align 4, !tbaa !11
  %6129 = load float, ptr %27, align 4, !tbaa !11
  %6130 = fdiv float %6128, %6129
  store float %6130, ptr %17, align 4, !tbaa !11
  %6131 = load float, ptr %23, align 4, !tbaa !11
  %6132 = load float, ptr %17, align 4, !tbaa !11
  %6133 = load float, ptr %17, align 4, !tbaa !11
  %6134 = fmul float %6132, %6133
  %6135 = call float @llvm.fmuladd.f32(float %6131, float %6134, float 1.000000e+00)
  store float %6135, ptr %23, align 4, !tbaa !11
  %6136 = load float, ptr %27, align 4, !tbaa !11
  store float %6136, ptr %24, align 4, !tbaa !11
  br label %6145

6137:                                             ; preds = %6123
  %6138 = load float, ptr %27, align 4, !tbaa !11
  %6139 = load float, ptr %24, align 4, !tbaa !11
  %6140 = fdiv float %6138, %6139
  store float %6140, ptr %17, align 4, !tbaa !11
  %6141 = load float, ptr %17, align 4, !tbaa !11
  %6142 = load float, ptr %17, align 4, !tbaa !11
  %6143 = load float, ptr %23, align 4, !tbaa !11
  %6144 = call float @llvm.fmuladd.f32(float %6141, float %6142, float %6143)
  store float %6144, ptr %23, align 4, !tbaa !11
  br label %6145

6145:                                             ; preds = %6137, %6127
  br label %6146

6146:                                             ; preds = %6145, %6113
  br label %6147

6147:                                             ; preds = %6146, %5932
  br label %6148

6148:                                             ; preds = %6147, %5705
  br label %6149

6149:                                             ; preds = %6148, %5437
  %6150 = load float, ptr %24, align 4, !tbaa !11
  %6151 = fpext float %6150 to double
  %6152 = load float, ptr %23, align 4, !tbaa !11
  %6153 = fpext float %6152 to double
  %6154 = call double @sqrt(double noundef %6153) #6
  %6155 = fmul double %6151, %6154
  %6156 = fptrunc double %6155 to float
  store float %6156, ptr %25, align 4, !tbaa !11
  br label %6157

6157:                                             ; preds = %6149, %4716
  br label %6158

6158:                                             ; preds = %6157, %4711
  br label %6159

6159:                                             ; preds = %6158, %2398
  %6160 = load float, ptr %25, align 4, !tbaa !11
  store float %6160, ptr %16, align 4, !tbaa !11
  %6161 = load float, ptr %16, align 4, !tbaa !11
  store float %6161, ptr %7, align 4
  store i32 1, ptr %32, align 4
  br label %6162

6162:                                             ; preds = %6159, %166, %148
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  %6163 = load float, ptr %7, align 4
  ret float %6163
}

; 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 @sisnan_(ptr noundef) #2

; Function Attrs: nounwind
declare float @cabsf(<2 x float> noundef) #3

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

declare void @classq_(ptr noundef, 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) #5

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 = { 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 = !{!"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 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !16}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}
!22 = distinct !{!22, !16}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}
!26 = distinct !{!26, !16}
!27 = distinct !{!27, !16}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}
!30 = distinct !{!30, !16}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}
!33 = distinct !{!33, !16}
!34 = distinct !{!34, !16}
!35 = distinct !{!35, !16}
!36 = distinct !{!36, !16}
!37 = distinct !{!37, !16}
!38 = distinct !{!38, !16}
!39 = distinct !{!39, !16}
!40 = distinct !{!40, !16}
!41 = distinct !{!41, !16}
!42 = distinct !{!42, !16}
!43 = distinct !{!43, !16}
!44 = distinct !{!44, !16}
!45 = distinct !{!45, !16}
!46 = distinct !{!46, !16}
!47 = distinct !{!47, !16}
!48 = distinct !{!48, !16}
!49 = distinct !{!49, !16}
!50 = distinct !{!50, !16}
!51 = distinct !{!51, !16}
!52 = distinct !{!52, !16}
!53 = distinct !{!53, !16}
!54 = distinct !{!54, !16}
!55 = distinct !{!55, !16}
!56 = distinct !{!56, !16}
!57 = distinct !{!57, !16}
!58 = !{!7, !7, i64 0}
!59 = distinct !{!59, !16}
!60 = distinct !{!60, !16}
!61 = distinct !{!61, !16}
!62 = distinct !{!62, !16}
!63 = distinct !{!63, !16}
!64 = distinct !{!64, !16}
!65 = distinct !{!65, !16}
!66 = distinct !{!66, !16}
!67 = distinct !{!67, !16}
!68 = distinct !{!68, !16}
!69 = distinct !{!69, !16}
!70 = distinct !{!70, !16}
!71 = distinct !{!71, !16}
!72 = distinct !{!72, !16}
!73 = distinct !{!73, !16}
!74 = distinct !{!74, !16}
!75 = distinct !{!75, !16}
!76 = distinct !{!76, !16}
!77 = distinct !{!77, !16}
!78 = distinct !{!78, !16}
!79 = distinct !{!79, !16}
!80 = distinct !{!80, !16}
!81 = distinct !{!81, !16}
!82 = distinct !{!82, !16}
!83 = distinct !{!83, !16}
!84 = distinct !{!84, !16}
!85 = distinct !{!85, !16}
!86 = distinct !{!86, !16}
!87 = distinct !{!87, !16}
!88 = distinct !{!88, !16}
!89 = distinct !{!89, !16}
!90 = distinct !{!90, !16}
!91 = distinct !{!91, !16}
!92 = distinct !{!92, !16}
!93 = distinct !{!93, !16}
!94 = distinct !{!94, !16}
!95 = distinct !{!95, !16}
!96 = distinct !{!96, !16}
!97 = distinct !{!97, !16}
!98 = distinct !{!98, !16}
!99 = distinct !{!99, !16}
!100 = distinct !{!100, !16}
!101 = distinct !{!101, !16}
!102 = distinct !{!102, !16}
!103 = distinct !{!103, !16}
!104 = distinct !{!104, !16}
!105 = distinct !{!105, !16}
!106 = distinct !{!106, !16}
!107 = distinct !{!107, !16}
!108 = distinct !{!108, !16}
!109 = distinct !{!109, !16}
!110 = distinct !{!110, !16}
!111 = distinct !{!111, !16}
!112 = distinct !{!112, !16}
!113 = distinct !{!113, !16}
!114 = distinct !{!114, !16}
!115 = distinct !{!115, !16}
!116 = distinct !{!116, !16}
!117 = distinct !{!117, !16}
!118 = distinct !{!118, !16}
!119 = distinct !{!119, !16}
!120 = distinct !{!120, !16}
!121 = distinct !{!121, !16}
!122 = distinct !{!122, !16}
!123 = distinct !{!123, !16}
!124 = distinct !{!124, !16}
!125 = distinct !{!125, !16}
!126 = distinct !{!126, !16}
!127 = distinct !{!127, !16}
!128 = distinct !{!128, !16}
!129 = distinct !{!129, !16}
!130 = distinct !{!130, !16}
!131 = distinct !{!131, !16}
!132 = distinct !{!132, !16}
!133 = distinct !{!133, !16}
!134 = distinct !{!134, !16}
!135 = distinct !{!135, !16}
!136 = distinct !{!136, !16}
!137 = distinct !{!137, !16}
!138 = distinct !{!138, !16}
!139 = distinct !{!139, !16}
!140 = distinct !{!140, !16}


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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local float @clanhf_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef readonly %3, ptr noundef %4, ptr noundef %5) local_unnamed_addr #0 {
  %7 = alloca i32, align 4
  %8 = alloca float, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca float, align 4
  %12 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #9
  %13 = load i32, ptr %3, align 4, !tbaa !5
  switch i32 %13, label %19 [
    i32 0, label %.loopexit
    i32 1, label %14
  ]

14:                                               ; preds = %6
  %15 = load float, ptr %4, align 4, !tbaa !9
  %16 = fcmp oge float %15, 0.000000e+00
  %17 = fneg float %15
  %18 = select i1 %16, float %15, float %17
  br label %.loopexit

19:                                               ; preds = %6
  %20 = and i32 %13, 1
  %21 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #9
  %.not = icmp eq i32 %21, 0
  %22 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #9
  %.not1805.not.not.not.not.not.not.not.not = icmp eq i32 %22, 0
  %23 = load i32, ptr %3, align 4, !tbaa !5
  br i1 %.not, label %24, label %26

24:                                               ; preds = %19
  %25 = xor i32 %20, 1
  %spec.select = add i32 %23, %25
  br label %29

26:                                               ; preds = %19
  %27 = add nsw i32 %23, 1
  %28 = sdiv i32 %27, 2
  br label %29

29:                                               ; preds = %24, %26
  %.01698 = phi i32 [ %28, %26 ], [ %spec.select, %24 ]
  %30 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #9
  %.not1807 = icmp eq i32 %30, 0
  br i1 %.not1807, label %906, label %31

31:                                               ; preds = %29
  %32 = load i32, ptr %3, align 4, !tbaa !5
  %33 = add nsw i32 %32, 1
  %34 = sdiv i32 %33, 2
  store i32 %34, ptr %10, align 4, !tbaa !5
  %.not1936 = icmp eq i32 %20, 0
  br i1 %.not1936, label %436, label %35

35:                                               ; preds = %31
  br i1 %.not, label %36, label %212

36:                                               ; preds = %35
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %37, label %119

37:                                               ; preds = %36
  store i32 0, ptr %9, align 4, !tbaa !5
  %38 = load float, ptr %4, align 4, !tbaa !9
  %39 = fcmp oge float %38, 0.000000e+00
  %40 = fneg float %38
  %41 = select i1 %39, float %38, float %40
  store float %41, ptr %8, align 4, !tbaa !12
  %42 = fcmp ogt float %41, 0.000000e+00
  br i1 %42, label %45, label %43

43:                                               ; preds = %37
  %44 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2038 = icmp eq i32 %44, 0
  br i1 %.not2038, label %45, label %._crit_edge3426

._crit_edge3426:                                  ; preds = %43
  %.pre3427 = load float, ptr %8, align 4, !tbaa !12
  br label %45

45:                                               ; preds = %37, %._crit_edge3426, %43
  %.01619 = phi float [ 0.000000e+00, %43 ], [ %.pre3427, %._crit_edge3426 ], [ %41, %37 ]
  %46 = load i32, ptr %3, align 4, !tbaa !5
  %.not2039.not2192 = icmp sgt i32 %46, 1
  br i1 %.not2039.not2192, label %.lr.ph2196, label %._crit_edge2197

.lr.ph2196:                                       ; preds = %45, %57
  %.016022194 = phi i32 [ %58, %57 ], [ 1, %45 ]
  %.116202193 = phi float [ %.21621, %57 ], [ %.01619, %45 ]
  %47 = load i32, ptr %9, align 4, !tbaa !5
  %48 = mul nsw i32 %47, %.01698
  %49 = add nsw i32 %48, %.016022194
  %50 = sext i32 %49 to i64
  %51 = getelementptr inbounds %struct.complex, ptr %4, i64 %50
  %52 = call <2 x float> @Cf(ptr noundef nonnull %51)
  %53 = call float @cabsf(<2 x float> noundef %52) #9
  store float %53, ptr %8, align 4, !tbaa !12
  %54 = fcmp olt float %.116202193, %53
  br i1 %54, label %57, label %55

55:                                               ; preds = %.lr.ph2196
  %56 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2048 = icmp eq i32 %56, 0
  br i1 %.not2048, label %57, label %._crit_edge3428

._crit_edge3428:                                  ; preds = %55
  %.pre3429 = load float, ptr %8, align 4, !tbaa !12
  br label %57

57:                                               ; preds = %.lr.ph2196, %._crit_edge3428, %55
  %.21621 = phi float [ %.116202193, %55 ], [ %.pre3429, %._crit_edge3428 ], [ %53, %.lr.ph2196 ]
  %58 = add nuw nsw i32 %.016022194, 1
  %exitcond3075.not = icmp eq i32 %58, %46
  br i1 %exitcond3075.not, label %._crit_edge2197, label %.lr.ph2196, !llvm.loop !13

._crit_edge2197:                                  ; preds = %57, %45
  %.11620.lcssa = phi float [ %.01619, %45 ], [ %.21621, %57 ]
  %59 = load i32, ptr %10, align 4, !tbaa !5
  store i32 1, ptr %9, align 4, !tbaa !5
  %.not2041.not2214 = icmp sgt i32 %59, 1
  br i1 %.not2041.not2214, label %.lr.ph2218, label %.loopexit

.lr.ph2218:                                       ; preds = %._crit_edge2197
  %60 = add i32 %.01698, 1
  br label %61

61:                                               ; preds = %.lr.ph2218, %._crit_edge2212
  %.316222216 = phi float [ %.11620.lcssa, %.lr.ph2218 ], [ %.81627.lcssa, %._crit_edge2212 ]
  %storemerge20402215 = phi i32 [ 1, %.lr.ph2218 ], [ %118, %._crit_edge2212 ]
  %62 = add nsw i32 %storemerge20402215, -2
  store i32 %62, ptr %7, align 4, !tbaa !5
  %.not20422199 = icmp slt i32 %storemerge20402215, 2
  br i1 %.not20422199, label %._crit_edge2204, label %.lr.ph2203

.lr.ph2203:                                       ; preds = %61, %73
  %.12201 = phi i32 [ %74, %73 ], [ 0, %61 ]
  %.416232200 = phi float [ %.51624, %73 ], [ %.316222216, %61 ]
  %63 = load i32, ptr %9, align 4, !tbaa !5
  %64 = mul nsw i32 %63, %.01698
  %65 = add nsw i32 %64, %.12201
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds %struct.complex, ptr %4, i64 %66
  %68 = call <2 x float> @Cf(ptr noundef nonnull %67)
  %69 = call float @cabsf(<2 x float> noundef %68) #9
  store float %69, ptr %8, align 4, !tbaa !12
  %70 = fcmp olt float %.416232200, %69
  br i1 %70, label %73, label %71

71:                                               ; preds = %.lr.ph2203
  %72 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2047 = icmp eq i32 %72, 0
  br i1 %.not2047, label %73, label %._crit_edge3430

._crit_edge3430:                                  ; preds = %71
  %.pre3431 = load float, ptr %8, align 4, !tbaa !12
  br label %73

73:                                               ; preds = %.lr.ph2203, %._crit_edge3430, %71
  %.51624 = phi float [ %.416232200, %71 ], [ %.pre3431, %._crit_edge3430 ], [ %69, %.lr.ph2203 ]
  %74 = add nuw nsw i32 %.12201, 1
  %75 = load i32, ptr %7, align 4, !tbaa !5
  %.not2042.not = icmp slt i32 %.12201, %75
  br i1 %.not2042.not, label %.lr.ph2203, label %._crit_edge2204.loopexit, !llvm.loop !15

._crit_edge2204.loopexit:                         ; preds = %73
  %.pre3432 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2204

._crit_edge2204:                                  ; preds = %._crit_edge2204.loopexit, %61
  %76 = phi i32 [ %storemerge20402215, %61 ], [ %.pre3432, %._crit_edge2204.loopexit ]
  %.41623.lcssa = phi float [ %.316222216, %61 ], [ %.51624, %._crit_edge2204.loopexit ]
  %77 = add nsw i32 %76, -1
  %78 = mul nsw i32 %76, %.01698
  %79 = add nsw i32 %77, %78
  store i32 %79, ptr %7, align 4, !tbaa !5
  %80 = sext i32 %79 to i64
  %81 = getelementptr inbounds %struct.complex, ptr %4, i64 %80
  %82 = load float, ptr %81, align 4, !tbaa !9
  %83 = fcmp oge float %82, 0.000000e+00
  %84 = fneg float %82
  %85 = select i1 %83, float %82, float %84
  store float %85, ptr %8, align 4, !tbaa !12
  %86 = fcmp olt float %.41623.lcssa, %85
  br i1 %86, label %89, label %87

87:                                               ; preds = %._crit_edge2204
  %88 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2043 = icmp eq i32 %88, 0
  br i1 %.not2043, label %89, label %._crit_edge3433

._crit_edge3433:                                  ; preds = %87
  %.pre3434 = load float, ptr %8, align 4, !tbaa !12
  br label %89

89:                                               ; preds = %._crit_edge2204, %._crit_edge3433, %87
  %.61625 = phi float [ %.41623.lcssa, %87 ], [ %.pre3434, %._crit_edge3433 ], [ %85, %._crit_edge2204 ]
  %90 = load i32, ptr %9, align 4, !tbaa !5
  %91 = mul i32 %90, %60
  store i32 %91, ptr %7, align 4, !tbaa !5
  %92 = sext i32 %91 to i64
  %93 = getelementptr inbounds %struct.complex, ptr %4, i64 %92
  %94 = load float, ptr %93, align 4, !tbaa !9
  %95 = fcmp oge float %94, 0.000000e+00
  %96 = fneg float %94
  %97 = select i1 %95, float %94, float %96
  store float %97, ptr %8, align 4, !tbaa !12
  %98 = fcmp olt float %.61625, %97
  br i1 %98, label %101, label %99

99:                                               ; preds = %89
  %100 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2044 = icmp eq i32 %100, 0
  br i1 %.not2044, label %101, label %._crit_edge3435

._crit_edge3435:                                  ; preds = %99
  %.pre3436 = load float, ptr %8, align 4, !tbaa !12
  br label %101

101:                                              ; preds = %89, %._crit_edge3435, %99
  %.71626 = phi float [ %.61625, %99 ], [ %.pre3436, %._crit_edge3435 ], [ %97, %89 ]
  %102 = load i32, ptr %3, align 4, !tbaa !5
  %103 = add nsw i32 %102, -1
  store i32 %103, ptr %7, align 4, !tbaa !5
  %104 = load i32, ptr %9, align 4, !tbaa !5
  %.not2045.not2207 = icmp slt i32 %104, %103
  br i1 %.not2045.not2207, label %.lr.ph2211, label %._crit_edge2212

.lr.ph2211:                                       ; preds = %101, %115
  %.22209.in = phi i32 [ %.22209, %115 ], [ %104, %101 ]
  %.816272208 = phi float [ %.91628, %115 ], [ %.71626, %101 ]
  %.22209 = add nsw i32 %.22209.in, 1
  %105 = load i32, ptr %9, align 4, !tbaa !5
  %106 = mul nsw i32 %105, %.01698
  %107 = add nsw i32 %106, %.22209
  %108 = sext i32 %107 to i64
  %109 = getelementptr inbounds %struct.complex, ptr %4, i64 %108
  %110 = call <2 x float> @Cf(ptr noundef nonnull %109)
  %111 = call float @cabsf(<2 x float> noundef %110) #9
  store float %111, ptr %8, align 4, !tbaa !12
  %112 = fcmp olt float %.816272208, %111
  br i1 %112, label %115, label %113

113:                                              ; preds = %.lr.ph2211
  %114 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2046 = icmp eq i32 %114, 0
  br i1 %.not2046, label %115, label %._crit_edge3437

._crit_edge3437:                                  ; preds = %113
  %.pre3438 = load float, ptr %8, align 4, !tbaa !12
  br label %115

115:                                              ; preds = %.lr.ph2211, %._crit_edge3437, %113
  %.91628 = phi float [ %.816272208, %113 ], [ %.pre3438, %._crit_edge3437 ], [ %111, %.lr.ph2211 ]
  %116 = load i32, ptr %7, align 4, !tbaa !5
  %.not2045.not = icmp slt i32 %.22209, %116
  br i1 %.not2045.not, label %.lr.ph2211, label %._crit_edge2212.loopexit, !llvm.loop !16

._crit_edge2212.loopexit:                         ; preds = %115
  %.pre3439 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2212

._crit_edge2212:                                  ; preds = %._crit_edge2212.loopexit, %101
  %117 = phi i32 [ %104, %101 ], [ %.pre3439, %._crit_edge2212.loopexit ]
  %.81627.lcssa = phi float [ %.71626, %101 ], [ %.91628, %._crit_edge2212.loopexit ]
  %118 = add nsw i32 %117, 1
  store i32 %118, ptr %9, align 4, !tbaa !5
  %.not2041.not = icmp slt i32 %118, %59
  br i1 %.not2041.not, label %61, label %.loopexit, !llvm.loop !17

119:                                              ; preds = %36
  %120 = add nsw i32 %34, -2
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not20282177 = icmp slt i32 %32, 3
  br i1 %.not20282177, label %._crit_edge2182, label %.lr.ph2181

.lr.ph2181:                                       ; preds = %119, %._crit_edge2175
  %.1016292179 = phi float [ %.151634.lcssa, %._crit_edge2175 ], [ 0.000000e+00, %119 ]
  %storemerge20272178 = phi i32 [ %184, %._crit_edge2175 ], [ 0, %119 ]
  %121 = load i32, ptr %10, align 4, !tbaa !5
  %122 = add i32 %storemerge20272178, -2
  %123 = add i32 %122, %121
  store i32 %123, ptr %7, align 4, !tbaa !5
  %.not20322162 = icmp slt i32 %123, 0
  br i1 %.not20322162, label %._crit_edge2167, label %.lr.ph2166

.lr.ph2166:                                       ; preds = %.lr.ph2181, %134
  %.32164 = phi i32 [ %135, %134 ], [ 0, %.lr.ph2181 ]
  %.1116302163 = phi float [ %.121631, %134 ], [ %.1016292179, %.lr.ph2181 ]
  %124 = load i32, ptr %9, align 4, !tbaa !5
  %125 = mul nsw i32 %124, %.01698
  %126 = add nsw i32 %125, %.32164
  %127 = sext i32 %126 to i64
  %128 = getelementptr inbounds %struct.complex, ptr %4, i64 %127
  %129 = call <2 x float> @Cf(ptr noundef %128)
  %130 = call float @cabsf(<2 x float> noundef %129) #9
  store float %130, ptr %8, align 4, !tbaa !12
  %131 = fcmp olt float %.1116302163, %130
  br i1 %131, label %134, label %132

132:                                              ; preds = %.lr.ph2166
  %133 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2037 = icmp eq i32 %133, 0
  br i1 %.not2037, label %134, label %._crit_edge3409

._crit_edge3409:                                  ; preds = %132
  %.pre3410 = load float, ptr %8, align 4, !tbaa !12
  br label %134

134:                                              ; preds = %.lr.ph2166, %._crit_edge3409, %132
  %.121631 = phi float [ %.1116302163, %132 ], [ %.pre3410, %._crit_edge3409 ], [ %130, %.lr.ph2166 ]
  %135 = add nuw nsw i32 %.32164, 1
  %136 = load i32, ptr %7, align 4, !tbaa !5
  %.not2032.not = icmp slt i32 %.32164, %136
  br i1 %.not2032.not, label %.lr.ph2166, label %._crit_edge2167.loopexit, !llvm.loop !18

._crit_edge2167.loopexit:                         ; preds = %134
  %.pre3411 = load i32, ptr %10, align 4, !tbaa !5
  %.pre3412 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2167

._crit_edge2167:                                  ; preds = %._crit_edge2167.loopexit, %.lr.ph2181
  %137 = phi i32 [ %storemerge20272178, %.lr.ph2181 ], [ %.pre3412, %._crit_edge2167.loopexit ]
  %138 = phi i32 [ %121, %.lr.ph2181 ], [ %.pre3411, %._crit_edge2167.loopexit ]
  %.111630.lcssa = phi float [ %.1016292179, %.lr.ph2181 ], [ %.121631, %._crit_edge2167.loopexit ]
  %139 = add nsw i32 %137, %138
  %140 = add nsw i32 %139, -1
  %141 = mul nsw i32 %137, %.01698
  %142 = add nsw i32 %140, %141
  store i32 %142, ptr %7, align 4, !tbaa !5
  %143 = sext i32 %142 to i64
  %144 = getelementptr inbounds %struct.complex, ptr %4, i64 %143
  %145 = load float, ptr %144, align 4, !tbaa !9
  %146 = fcmp oge float %145, 0.000000e+00
  %147 = fneg float %145
  %148 = select i1 %146, float %145, float %147
  store float %148, ptr %8, align 4, !tbaa !12
  %149 = fcmp olt float %.111630.lcssa, %148
  br i1 %149, label %152, label %150

150:                                              ; preds = %._crit_edge2167
  %151 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2033 = icmp eq i32 %151, 0
  br i1 %.not2033, label %152, label %._crit_edge3413

._crit_edge3413:                                  ; preds = %150
  %.pre3414 = load float, ptr %8, align 4, !tbaa !12
  br label %152

152:                                              ; preds = %._crit_edge2167, %._crit_edge3413, %150
  %.131632 = phi float [ %.111630.lcssa, %150 ], [ %.pre3414, %._crit_edge3413 ], [ %148, %._crit_edge2167 ]
  %153 = load i32, ptr %9, align 4, !tbaa !5
  %154 = mul nsw i32 %153, %.01698
  %155 = add nsw i32 %154, %139
  store i32 %155, ptr %7, align 4, !tbaa !5
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds %struct.complex, ptr %4, i64 %156
  %158 = load float, ptr %157, align 4, !tbaa !9
  %159 = fcmp oge float %158, 0.000000e+00
  %160 = fneg float %158
  %161 = select i1 %159, float %158, float %160
  store float %161, ptr %8, align 4, !tbaa !12
  %162 = fcmp olt float %.131632, %161
  br i1 %162, label %165, label %163

163:                                              ; preds = %152
  %164 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2034 = icmp eq i32 %164, 0
  br i1 %.not2034, label %165, label %._crit_edge3415

._crit_edge3415:                                  ; preds = %163
  %.pre3416 = load float, ptr %8, align 4, !tbaa !12
  br label %165

165:                                              ; preds = %152, %._crit_edge3415, %163
  %.141633 = phi float [ %.131632, %163 ], [ %.pre3416, %._crit_edge3415 ], [ %161, %152 ]
  %166 = load i32, ptr %3, align 4, !tbaa !5
  %167 = add nsw i32 %166, -1
  store i32 %167, ptr %7, align 4, !tbaa !5
  %168 = load i32, ptr %10, align 4, !tbaa !5
  %169 = load i32, ptr %9, align 4, !tbaa !5
  %170 = add nsw i32 %169, %168
  %.not2035.not2170 = icmp slt i32 %170, %167
  br i1 %.not2035.not2170, label %.lr.ph2174, label %._crit_edge2175

.lr.ph2174:                                       ; preds = %165, %181
  %.42172.in = phi i32 [ %.42172, %181 ], [ %170, %165 ]
  %.1516342171 = phi float [ %.161635, %181 ], [ %.141633, %165 ]
  %.42172 = add nsw i32 %.42172.in, 1
  %171 = load i32, ptr %9, align 4, !tbaa !5
  %172 = mul nsw i32 %171, %.01698
  %173 = add nsw i32 %172, %.42172
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds %struct.complex, ptr %4, i64 %174
  %176 = call <2 x float> @Cf(ptr noundef %175)
  %177 = call float @cabsf(<2 x float> noundef %176) #9
  store float %177, ptr %8, align 4, !tbaa !12
  %178 = fcmp olt float %.1516342171, %177
  br i1 %178, label %181, label %179

179:                                              ; preds = %.lr.ph2174
  %180 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2036 = icmp eq i32 %180, 0
  br i1 %.not2036, label %181, label %._crit_edge3417

._crit_edge3417:                                  ; preds = %179
  %.pre3418 = load float, ptr %8, align 4, !tbaa !12
  br label %181

181:                                              ; preds = %.lr.ph2174, %._crit_edge3417, %179
  %.161635 = phi float [ %.1516342171, %179 ], [ %.pre3418, %._crit_edge3417 ], [ %177, %.lr.ph2174 ]
  %182 = load i32, ptr %7, align 4, !tbaa !5
  %.not2035.not = icmp slt i32 %.42172, %182
  br i1 %.not2035.not, label %.lr.ph2174, label %._crit_edge2175.loopexit, !llvm.loop !19

._crit_edge2175.loopexit:                         ; preds = %181
  %.pre3419 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2175

._crit_edge2175:                                  ; preds = %._crit_edge2175.loopexit, %165
  %183 = phi i32 [ %169, %165 ], [ %.pre3419, %._crit_edge2175.loopexit ]
  %.151634.lcssa = phi float [ %.141633, %165 ], [ %.161635, %._crit_edge2175.loopexit ]
  %184 = add nsw i32 %183, 1
  store i32 %184, ptr %9, align 4, !tbaa !5
  %.not2028.not = icmp slt i32 %183, %120
  br i1 %.not2028.not, label %.lr.ph2181, label %._crit_edge2182.loopexit, !llvm.loop !20

._crit_edge2182.loopexit:                         ; preds = %._crit_edge2175
  %.pre3420 = load i32, ptr %3, align 4, !tbaa !5
  br label %._crit_edge2182

._crit_edge2182:                                  ; preds = %._crit_edge2182.loopexit, %119
  %185 = phi i32 [ 0, %119 ], [ %184, %._crit_edge2182.loopexit ]
  %186 = phi i32 [ %32, %119 ], [ %.pre3420, %._crit_edge2182.loopexit ]
  %.101629.lcssa = phi float [ 0.000000e+00, %119 ], [ %.151634.lcssa, %._crit_edge2182.loopexit ]
  %.not20292184 = icmp slt i32 %186, 2
  br i1 %.not20292184, label %._crit_edge2189, label %.lr.ph2188.preheader

.lr.ph2188.preheader:                             ; preds = %._crit_edge2182
  %187 = add nsw i32 %186, -1
  br label %.lr.ph2188

.lr.ph2188:                                       ; preds = %.lr.ph2188.preheader, %198
  %.52186 = phi i32 [ %199, %198 ], [ 0, %.lr.ph2188.preheader ]
  %.1716362185 = phi float [ %.181637, %198 ], [ %.101629.lcssa, %.lr.ph2188.preheader ]
  %188 = load i32, ptr %9, align 4, !tbaa !5
  %189 = mul nsw i32 %188, %.01698
  %190 = add nsw i32 %189, %.52186
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds %struct.complex, ptr %4, i64 %191
  %193 = call <2 x float> @Cf(ptr noundef %192)
  %194 = call float @cabsf(<2 x float> noundef %193) #9
  store float %194, ptr %8, align 4, !tbaa !12
  %195 = fcmp olt float %.1716362185, %194
  br i1 %195, label %198, label %196

196:                                              ; preds = %.lr.ph2188
  %197 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2031 = icmp eq i32 %197, 0
  br i1 %.not2031, label %198, label %._crit_edge3421

._crit_edge3421:                                  ; preds = %196
  %.pre3422 = load float, ptr %8, align 4, !tbaa !12
  br label %198

198:                                              ; preds = %.lr.ph2188, %._crit_edge3421, %196
  %.181637 = phi float [ %.1716362185, %196 ], [ %.pre3422, %._crit_edge3421 ], [ %194, %.lr.ph2188 ]
  %199 = add nuw i32 %.52186, 1
  %exitcond3074.not = icmp eq i32 %199, %187
  br i1 %exitcond3074.not, label %._crit_edge2189.loopexit, label %.lr.ph2188, !llvm.loop !21

._crit_edge2189.loopexit:                         ; preds = %198
  %.pre3423 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2189

._crit_edge2189:                                  ; preds = %._crit_edge2189.loopexit, %._crit_edge2182
  %200 = phi i32 [ %185, %._crit_edge2182 ], [ %.pre3423, %._crit_edge2189.loopexit ]
  %.171636.lcssa = phi float [ %.101629.lcssa, %._crit_edge2182 ], [ %.181637, %._crit_edge2189.loopexit ]
  %.5.lcssa = phi i32 [ 0, %._crit_edge2182 ], [ %187, %._crit_edge2189.loopexit ]
  %201 = mul nsw i32 %200, %.01698
  %202 = add nsw i32 %201, %.5.lcssa
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds %struct.complex, ptr %4, i64 %203
  %205 = load float, ptr %204, align 4, !tbaa !9
  %206 = fcmp oge float %205, 0.000000e+00
  %207 = fneg float %205
  %208 = select i1 %206, float %205, float %207
  store float %208, ptr %8, align 4, !tbaa !12
  %209 = fcmp olt float %.171636.lcssa, %208
  br i1 %209, label %.loopexit, label %210

210:                                              ; preds = %._crit_edge2189
  %211 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2030 = icmp eq i32 %211, 0
  br i1 %.not2030, label %.loopexit, label %._crit_edge3424

._crit_edge3424:                                  ; preds = %210
  %.pre3425 = load float, ptr %8, align 4, !tbaa !12
  br label %.loopexit

212:                                              ; preds = %35
  %213 = add nsw i32 %34, -2
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not20132136 = icmp slt i32 %32, 3
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %214, label %323

214:                                              ; preds = %212
  br i1 %.not20132136, label %._crit_edge2141, label %.lr.ph2140

.lr.ph2140:                                       ; preds = %214
  %215 = add i32 %.01698, 1
  br label %216

216:                                              ; preds = %.lr.ph2140, %._crit_edge2134
  %217 = phi i32 [ 0, %.lr.ph2140 ], [ %275, %._crit_edge2134 ]
  %.1916382138 = phi float [ 0.000000e+00, %.lr.ph2140 ], [ %.241643.lcssa, %._crit_edge2134 ]
  %storemerge20122137 = phi i32 [ -1, %.lr.ph2140 ], [ %274, %._crit_edge2134 ]
  store i32 %storemerge20122137, ptr %7, align 4, !tbaa !5
  %.not20212122 = icmp slt i32 %storemerge20122137, 0
  br i1 %.not20212122, label %._crit_edge2127, label %.lr.ph2126

.lr.ph2126:                                       ; preds = %216, %228
  %.62124 = phi i32 [ %229, %228 ], [ 0, %216 ]
  %.2016392123 = phi float [ %.211640, %228 ], [ %.1916382138, %216 ]
  %218 = load i32, ptr %9, align 4, !tbaa !5
  %219 = mul nsw i32 %218, %.01698
  %220 = add nsw i32 %219, %.62124
  %221 = sext i32 %220 to i64
  %222 = getelementptr inbounds %struct.complex, ptr %4, i64 %221
  %223 = call <2 x float> @Cf(ptr noundef %222)
  %224 = call float @cabsf(<2 x float> noundef %223) #9
  store float %224, ptr %8, align 4, !tbaa !12
  %225 = fcmp olt float %.2016392123, %224
  br i1 %225, label %228, label %226

226:                                              ; preds = %.lr.ph2126
  %227 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2026 = icmp eq i32 %227, 0
  br i1 %.not2026, label %228, label %._crit_edge3389

._crit_edge3389:                                  ; preds = %226
  %.pre3390 = load float, ptr %8, align 4, !tbaa !12
  br label %228

228:                                              ; preds = %.lr.ph2126, %._crit_edge3389, %226
  %.211640 = phi float [ %.2016392123, %226 ], [ %.pre3390, %._crit_edge3389 ], [ %224, %.lr.ph2126 ]
  %229 = add nuw nsw i32 %.62124, 1
  %230 = load i32, ptr %7, align 4, !tbaa !5
  %.not2021.not = icmp slt i32 %.62124, %230
  br i1 %.not2021.not, label %.lr.ph2126, label %._crit_edge2127.loopexit, !llvm.loop !22

._crit_edge2127.loopexit:                         ; preds = %228
  %.pre3391 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2127

._crit_edge2127:                                  ; preds = %._crit_edge2127.loopexit, %216
  %231 = phi i32 [ %217, %216 ], [ %.pre3391, %._crit_edge2127.loopexit ]
  %.201639.lcssa = phi float [ %.1916382138, %216 ], [ %.211640, %._crit_edge2127.loopexit ]
  %232 = mul i32 %231, %215
  store i32 %232, ptr %7, align 4, !tbaa !5
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds %struct.complex, ptr %4, i64 %233
  %235 = load float, ptr %234, align 4, !tbaa !9
  %236 = fcmp oge float %235, 0.000000e+00
  %237 = fneg float %235
  %238 = select i1 %236, float %235, float %237
  store float %238, ptr %8, align 4, !tbaa !12
  %239 = fcmp olt float %.201639.lcssa, %238
  br i1 %239, label %242, label %240

240:                                              ; preds = %._crit_edge2127
  %241 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2022 = icmp eq i32 %241, 0
  br i1 %.not2022, label %242, label %._crit_edge3392

._crit_edge3392:                                  ; preds = %240
  %.pre3393 = load float, ptr %8, align 4, !tbaa !12
  br label %242

242:                                              ; preds = %._crit_edge2127, %._crit_edge3392, %240
  %.221641 = phi float [ %.201639.lcssa, %240 ], [ %.pre3393, %._crit_edge3392 ], [ %238, %._crit_edge2127 ]
  %243 = load i32, ptr %9, align 4, !tbaa !5
  %244 = add nsw i32 %243, 1
  %245 = mul nsw i32 %243, %.01698
  %246 = add nsw i32 %244, %245
  store i32 %246, ptr %7, align 4, !tbaa !5
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds %struct.complex, ptr %4, i64 %247
  %249 = load float, ptr %248, align 4, !tbaa !9
  %250 = fcmp oge float %249, 0.000000e+00
  %251 = fneg float %249
  %252 = select i1 %250, float %249, float %251
  store float %252, ptr %8, align 4, !tbaa !12
  %253 = fcmp olt float %.221641, %252
  br i1 %253, label %256, label %254

254:                                              ; preds = %242
  %255 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2023 = icmp eq i32 %255, 0
  br i1 %.not2023, label %256, label %._crit_edge3394

._crit_edge3394:                                  ; preds = %254
  %.pre3395 = load float, ptr %8, align 4, !tbaa !12
  br label %256

256:                                              ; preds = %242, %._crit_edge3394, %254
  %.231642 = phi float [ %.221641, %254 ], [ %.pre3395, %._crit_edge3394 ], [ %252, %242 ]
  %257 = load i32, ptr %10, align 4, !tbaa !5
  %258 = add nsw i32 %257, -1
  store i32 %258, ptr %7, align 4, !tbaa !5
  %259 = load i32, ptr %9, align 4, !tbaa !5
  %260 = add nsw i32 %259, 2
  %.not20242129.not = icmp slt i32 %260, %257
  br i1 %.not20242129.not, label %.lr.ph2133, label %._crit_edge2134

.lr.ph2133:                                       ; preds = %256, %271
  %.72131 = phi i32 [ %272, %271 ], [ %260, %256 ]
  %.2416432130 = phi float [ %.251644, %271 ], [ %.231642, %256 ]
  %261 = load i32, ptr %9, align 4, !tbaa !5
  %262 = mul nsw i32 %261, %.01698
  %263 = add nsw i32 %262, %.72131
  %264 = sext i32 %263 to i64
  %265 = getelementptr inbounds %struct.complex, ptr %4, i64 %264
  %266 = call <2 x float> @Cf(ptr noundef %265)
  %267 = call float @cabsf(<2 x float> noundef %266) #9
  store float %267, ptr %8, align 4, !tbaa !12
  %268 = fcmp olt float %.2416432130, %267
  br i1 %268, label %271, label %269

269:                                              ; preds = %.lr.ph2133
  %270 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2025 = icmp eq i32 %270, 0
  br i1 %.not2025, label %271, label %._crit_edge3396

._crit_edge3396:                                  ; preds = %269
  %.pre3397 = load float, ptr %8, align 4, !tbaa !12
  br label %271

271:                                              ; preds = %.lr.ph2133, %._crit_edge3396, %269
  %.251644 = phi float [ %.2416432130, %269 ], [ %.pre3397, %._crit_edge3396 ], [ %267, %.lr.ph2133 ]
  %272 = add nsw i32 %.72131, 1
  %273 = load i32, ptr %7, align 4, !tbaa !5
  %.not2024.not = icmp slt i32 %.72131, %273
  br i1 %.not2024.not, label %.lr.ph2133, label %._crit_edge2134.loopexit, !llvm.loop !23

._crit_edge2134.loopexit:                         ; preds = %271
  %.pre3398 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2134

._crit_edge2134:                                  ; preds = %._crit_edge2134.loopexit, %256
  %274 = phi i32 [ %259, %256 ], [ %.pre3398, %._crit_edge2134.loopexit ]
  %.241643.lcssa = phi float [ %.231642, %256 ], [ %.251644, %._crit_edge2134.loopexit ]
  %275 = add nsw i32 %274, 1
  store i32 %275, ptr %9, align 4, !tbaa !5
  %.not2013.not = icmp slt i32 %274, %213
  br i1 %.not2013.not, label %216, label %._crit_edge2141.loopexit, !llvm.loop !24

._crit_edge2141.loopexit:                         ; preds = %._crit_edge2134
  %.pre3399 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2141

._crit_edge2141:                                  ; preds = %._crit_edge2141.loopexit, %214
  %276 = phi i32 [ %34, %214 ], [ %.pre3399, %._crit_edge2141.loopexit ]
  %.191638.lcssa = phi float [ 0.000000e+00, %214 ], [ %.241643.lcssa, %._crit_edge2141.loopexit ]
  %277 = add i32 %276, -1
  store i32 %277, ptr %9, align 4, !tbaa !5
  %.not20142143 = icmp slt i32 %276, 2
  br i1 %.not20142143, label %._crit_edge2148, label %.lr.ph2147

.lr.ph2147:                                       ; preds = %._crit_edge2141, %288
  %.82145 = phi i32 [ %289, %288 ], [ 0, %._crit_edge2141 ]
  %.2616452144 = phi float [ %.271646, %288 ], [ %.191638.lcssa, %._crit_edge2141 ]
  %278 = load i32, ptr %9, align 4, !tbaa !5
  %279 = mul nsw i32 %278, %.01698
  %280 = add nsw i32 %279, %.82145
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds %struct.complex, ptr %4, i64 %281
  %283 = call <2 x float> @Cf(ptr noundef %282)
  %284 = call float @cabsf(<2 x float> noundef %283) #9
  store float %284, ptr %8, align 4, !tbaa !12
  %285 = fcmp olt float %.2616452144, %284
  br i1 %285, label %288, label %286

286:                                              ; preds = %.lr.ph2147
  %287 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2020 = icmp eq i32 %287, 0
  br i1 %.not2020, label %288, label %._crit_edge3400

._crit_edge3400:                                  ; preds = %286
  %.pre3401 = load float, ptr %8, align 4, !tbaa !12
  br label %288

288:                                              ; preds = %.lr.ph2147, %._crit_edge3400, %286
  %.271646 = phi float [ %.2616452144, %286 ], [ %.pre3401, %._crit_edge3400 ], [ %284, %.lr.ph2147 ]
  %289 = add nuw i32 %.82145, 1
  %exitcond3073.not = icmp eq i32 %289, %277
  br i1 %exitcond3073.not, label %._crit_edge2148.loopexit, label %.lr.ph2147, !llvm.loop !25

._crit_edge2148.loopexit:                         ; preds = %288
  %.pre3402 = load i32, ptr %10, align 4, !tbaa !5
  %.pre3403 = load i32, ptr %9, align 4, !tbaa !5
  %.pre3583 = add nsw i32 %.pre3402, -1
  br label %._crit_edge2148

._crit_edge2148:                                  ; preds = %._crit_edge2148.loopexit, %._crit_edge2141
  %.pre-phi3584 = phi i32 [ %.pre3583, %._crit_edge2148.loopexit ], [ %277, %._crit_edge2141 ]
  %290 = phi i32 [ %.pre3403, %._crit_edge2148.loopexit ], [ %277, %._crit_edge2141 ]
  %.261645.lcssa = phi float [ %.271646, %._crit_edge2148.loopexit ], [ %.191638.lcssa, %._crit_edge2141 ]
  %291 = mul nsw i32 %290, %.01698
  %292 = add nsw i32 %.pre-phi3584, %291
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds %struct.complex, ptr %4, i64 %293
  %295 = load float, ptr %294, align 4, !tbaa !9
  %296 = fcmp oge float %295, 0.000000e+00
  %297 = fneg float %295
  %298 = select i1 %296, float %295, float %297
  store float %298, ptr %8, align 4, !tbaa !12
  %299 = fcmp olt float %.261645.lcssa, %298
  br i1 %299, label %302, label %300

300:                                              ; preds = %._crit_edge2148
  %301 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2015 = icmp eq i32 %301, 0
  br i1 %.not2015, label %302, label %._crit_edge3404

._crit_edge3404:                                  ; preds = %300
  %.pre3405 = load float, ptr %8, align 4, !tbaa !12
  br label %302

302:                                              ; preds = %._crit_edge2148, %._crit_edge3404, %300
  %.281647 = phi float [ %.261645.lcssa, %300 ], [ %.pre3405, %._crit_edge3404 ], [ %298, %._crit_edge2148 ]
  %303 = load i32, ptr %3, align 4, !tbaa !5
  %304 = load i32, ptr %10, align 4, !tbaa !5
  store i32 %304, ptr %9, align 4, !tbaa !5
  %.not2017.not2157 = icmp slt i32 %304, %303
  br i1 %.not2017.not2157, label %.lr.ph2160, label %.loopexit

.lr.ph2160thread-pre-split:                       ; preds = %._crit_edge2155
  %.pr = load i32, ptr %10, align 4, !tbaa !5
  br label %.lr.ph2160

.lr.ph2160:                                       ; preds = %302, %.lr.ph2160thread-pre-split
  %305 = phi i32 [ %.pr, %.lr.ph2160thread-pre-split ], [ %304, %302 ]
  %306 = phi i32 [ %322, %.lr.ph2160thread-pre-split ], [ %304, %302 ]
  %.2916482158 = phi float [ %.301649.lcssa, %.lr.ph2160thread-pre-split ], [ %.281647, %302 ]
  %307 = add nsw i32 %305, -1
  store i32 %307, ptr %7, align 4, !tbaa !5
  %.not20182150 = icmp slt i32 %305, 1
  br i1 %.not20182150, label %._crit_edge2155, label %.lr.ph2154

.lr.ph2154:                                       ; preds = %.lr.ph2160, %318
  %.92152 = phi i32 [ %319, %318 ], [ 0, %.lr.ph2160 ]
  %.3016492151 = phi float [ %.311650, %318 ], [ %.2916482158, %.lr.ph2160 ]
  %308 = load i32, ptr %9, align 4, !tbaa !5
  %309 = mul nsw i32 %308, %.01698
  %310 = add nsw i32 %309, %.92152
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds %struct.complex, ptr %4, i64 %311
  %313 = call <2 x float> @Cf(ptr noundef %312)
  %314 = call float @cabsf(<2 x float> noundef %313) #9
  store float %314, ptr %8, align 4, !tbaa !12
  %315 = fcmp olt float %.3016492151, %314
  br i1 %315, label %318, label %316

316:                                              ; preds = %.lr.ph2154
  %317 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2019 = icmp eq i32 %317, 0
  br i1 %.not2019, label %318, label %._crit_edge3406

._crit_edge3406:                                  ; preds = %316
  %.pre3407 = load float, ptr %8, align 4, !tbaa !12
  br label %318

318:                                              ; preds = %.lr.ph2154, %._crit_edge3406, %316
  %.311650 = phi float [ %.3016492151, %316 ], [ %.pre3407, %._crit_edge3406 ], [ %314, %.lr.ph2154 ]
  %319 = add nuw nsw i32 %.92152, 1
  %320 = load i32, ptr %7, align 4, !tbaa !5
  %.not2018.not = icmp slt i32 %.92152, %320
  br i1 %.not2018.not, label %.lr.ph2154, label %._crit_edge2155.loopexit, !llvm.loop !26

._crit_edge2155.loopexit:                         ; preds = %318
  %.pre3408 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2155

._crit_edge2155:                                  ; preds = %._crit_edge2155.loopexit, %.lr.ph2160
  %321 = phi i32 [ %306, %.lr.ph2160 ], [ %.pre3408, %._crit_edge2155.loopexit ]
  %.301649.lcssa = phi float [ %.2916482158, %.lr.ph2160 ], [ %.311650, %._crit_edge2155.loopexit ]
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr %9, align 4, !tbaa !5
  %.not2017.not = icmp slt i32 %322, %303
  br i1 %.not2017.not, label %.lr.ph2160thread-pre-split, label %.loopexit, !llvm.loop !27

323:                                              ; preds = %212
  br i1 %.not20132136, label %._crit_edge2093, label %.lr.ph2092

.lr.ph2092:                                       ; preds = %323, %._crit_edge
  %324 = phi i32 [ %341, %._crit_edge ], [ 0, %323 ]
  %.3216512090 = phi float [ %.331652.lcssa, %._crit_edge ], [ 0.000000e+00, %323 ]
  %325 = load i32, ptr %10, align 4, !tbaa !5
  %326 = add nsw i32 %325, -1
  store i32 %326, ptr %7, align 4, !tbaa !5
  %.not20102086 = icmp slt i32 %325, 1
  br i1 %.not20102086, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph2092, %337
  %.102088 = phi i32 [ %338, %337 ], [ 0, %.lr.ph2092 ]
  %.3316522087 = phi float [ %.341653, %337 ], [ %.3216512090, %.lr.ph2092 ]
  %327 = load i32, ptr %9, align 4, !tbaa !5
  %328 = mul nsw i32 %327, %.01698
  %329 = add nsw i32 %328, %.102088
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds %struct.complex, ptr %4, i64 %330
  %332 = call <2 x float> @Cf(ptr noundef %331)
  %333 = call float @cabsf(<2 x float> noundef %332) #9
  store float %333, ptr %8, align 4, !tbaa !12
  %334 = fcmp olt float %.3316522087, %333
  br i1 %334, label %337, label %335

335:                                              ; preds = %.lr.ph
  %336 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2011 = icmp eq i32 %336, 0
  br i1 %.not2011, label %337, label %._crit_edge3370

._crit_edge3370:                                  ; preds = %335
  %.pre = load float, ptr %8, align 4, !tbaa !12
  br label %337

337:                                              ; preds = %.lr.ph, %._crit_edge3370, %335
  %.341653 = phi float [ %.3316522087, %335 ], [ %.pre, %._crit_edge3370 ], [ %333, %.lr.ph ]
  %338 = add nuw nsw i32 %.102088, 1
  %339 = load i32, ptr %7, align 4, !tbaa !5
  %.not2010.not = icmp slt i32 %.102088, %339
  br i1 %.not2010.not, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !28

._crit_edge.loopexit:                             ; preds = %337
  %.pre3371 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.lr.ph2092
  %340 = phi i32 [ %324, %.lr.ph2092 ], [ %.pre3371, %._crit_edge.loopexit ]
  %.331652.lcssa = phi float [ %.3216512090, %.lr.ph2092 ], [ %.341653, %._crit_edge.loopexit ]
  %341 = add nsw i32 %340, 1
  store i32 %341, ptr %9, align 4, !tbaa !5
  %.not1998.not = icmp slt i32 %340, %213
  br i1 %.not1998.not, label %.lr.ph2092, label %._crit_edge2093.loopexit, !llvm.loop !29

._crit_edge2093.loopexit:                         ; preds = %._crit_edge
  %.pre3372 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2093

._crit_edge2093:                                  ; preds = %._crit_edge2093.loopexit, %323
  %342 = phi i32 [ %34, %323 ], [ %.pre3372, %._crit_edge2093.loopexit ]
  %.321651.lcssa = phi float [ 0.000000e+00, %323 ], [ %.331652.lcssa, %._crit_edge2093.loopexit ]
  %343 = add nsw i32 %342, -1
  store i32 %343, ptr %9, align 4, !tbaa !5
  %344 = mul nsw i32 %343, %.01698
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds %struct.complex, ptr %4, i64 %345
  %347 = load float, ptr %346, align 4, !tbaa !9
  %348 = fcmp oge float %347, 0.000000e+00
  %349 = fneg float %347
  %350 = select i1 %348, float %347, float %349
  store float %350, ptr %8, align 4, !tbaa !12
  %351 = fcmp olt float %.321651.lcssa, %350
  br i1 %351, label %354, label %352

352:                                              ; preds = %._crit_edge2093
  %353 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1999 = icmp eq i32 %353, 0
  br i1 %.not1999, label %354, label %._crit_edge3373

._crit_edge3373:                                  ; preds = %352
  %.pre3374 = load float, ptr %8, align 4, !tbaa !12
  br label %354

354:                                              ; preds = %._crit_edge2093, %._crit_edge3373, %352
  %.351654 = phi float [ %.321651.lcssa, %352 ], [ %.pre3374, %._crit_edge3373 ], [ %350, %._crit_edge2093 ]
  %355 = load i32, ptr %10, align 4, !tbaa !5
  %.not2000.not2095 = icmp sgt i32 %355, 1
  br i1 %.not2000.not2095, label %.lr.ph2099, label %._crit_edge2100

.lr.ph2099:                                       ; preds = %354, %366
  %.112097 = phi i32 [ %367, %366 ], [ 1, %354 ]
  %.3616552096 = phi float [ %.371656, %366 ], [ %.351654, %354 ]
  %356 = load i32, ptr %9, align 4, !tbaa !5
  %357 = mul nsw i32 %356, %.01698
  %358 = add nsw i32 %357, %.112097
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds %struct.complex, ptr %4, i64 %359
  %361 = call <2 x float> @Cf(ptr noundef %360)
  %362 = call float @cabsf(<2 x float> noundef %361) #9
  store float %362, ptr %8, align 4, !tbaa !12
  %363 = fcmp olt float %.3616552096, %362
  br i1 %363, label %366, label %364

364:                                              ; preds = %.lr.ph2099
  %365 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2009 = icmp eq i32 %365, 0
  br i1 %.not2009, label %366, label %._crit_edge3375

._crit_edge3375:                                  ; preds = %364
  %.pre3376 = load float, ptr %8, align 4, !tbaa !12
  br label %366

366:                                              ; preds = %.lr.ph2099, %._crit_edge3375, %364
  %.371656 = phi float [ %.3616552096, %364 ], [ %.pre3376, %._crit_edge3375 ], [ %362, %.lr.ph2099 ]
  %367 = add nuw nsw i32 %.112097, 1
  %exitcond.not = icmp eq i32 %367, %355
  br i1 %exitcond.not, label %._crit_edge2100.loopexit, label %.lr.ph2099, !llvm.loop !30

._crit_edge2100.loopexit:                         ; preds = %366
  %.pre3377 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2100

._crit_edge2100:                                  ; preds = %._crit_edge2100.loopexit, %354
  %368 = phi i32 [ %355, %354 ], [ %.pre3377, %._crit_edge2100.loopexit ]
  %.361655.lcssa = phi float [ %.351654, %354 ], [ %.371656, %._crit_edge2100.loopexit ]
  %369 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %368, ptr %9, align 4, !tbaa !5
  %.not2002.not2116 = icmp slt i32 %368, %369
  br i1 %.not2002.not2116, label %.lr.ph2120, label %.loopexit

.lr.ph2120:                                       ; preds = %._crit_edge2100, %._crit_edge2114
  %.3816572118 = phi float [ %.431662.lcssa, %._crit_edge2114 ], [ %.361655.lcssa, %._crit_edge2100 ]
  %storemerge20012117 = phi i32 [ %435, %._crit_edge2114 ], [ %368, %._crit_edge2100 ]
  %370 = load i32, ptr %10, align 4, !tbaa !5
  %371 = xor i32 %370, -1
  %372 = add i32 %storemerge20012117, %371
  store i32 %372, ptr %7, align 4, !tbaa !5
  %.not20032102 = icmp slt i32 %372, 0
  br i1 %.not20032102, label %._crit_edge2107, label %.lr.ph2106

.lr.ph2106:                                       ; preds = %.lr.ph2120, %383
  %.122104 = phi i32 [ %384, %383 ], [ 0, %.lr.ph2120 ]
  %.3916582103 = phi float [ %.401659, %383 ], [ %.3816572118, %.lr.ph2120 ]
  %373 = load i32, ptr %9, align 4, !tbaa !5
  %374 = mul nsw i32 %373, %.01698
  %375 = add nsw i32 %374, %.122104
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds %struct.complex, ptr %4, i64 %376
  %378 = call <2 x float> @Cf(ptr noundef %377)
  %379 = call float @cabsf(<2 x float> noundef %378) #9
  store float %379, ptr %8, align 4, !tbaa !12
  %380 = fcmp olt float %.3916582103, %379
  br i1 %380, label %383, label %381

381:                                              ; preds = %.lr.ph2106
  %382 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2008 = icmp eq i32 %382, 0
  br i1 %.not2008, label %383, label %._crit_edge3378

._crit_edge3378:                                  ; preds = %381
  %.pre3379 = load float, ptr %8, align 4, !tbaa !12
  br label %383

383:                                              ; preds = %.lr.ph2106, %._crit_edge3378, %381
  %.401659 = phi float [ %.3916582103, %381 ], [ %.pre3379, %._crit_edge3378 ], [ %379, %.lr.ph2106 ]
  %384 = add nuw nsw i32 %.122104, 1
  %385 = load i32, ptr %7, align 4, !tbaa !5
  %.not2003.not = icmp slt i32 %.122104, %385
  br i1 %.not2003.not, label %.lr.ph2106, label %._crit_edge2107.loopexit, !llvm.loop !31

._crit_edge2107.loopexit:                         ; preds = %383
  %.pre3380 = load i32, ptr %9, align 4, !tbaa !5
  %.pre3381 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2107

._crit_edge2107:                                  ; preds = %._crit_edge2107.loopexit, %.lr.ph2120
  %386 = phi i32 [ %370, %.lr.ph2120 ], [ %.pre3381, %._crit_edge2107.loopexit ]
  %387 = phi i32 [ %storemerge20012117, %.lr.ph2120 ], [ %.pre3380, %._crit_edge2107.loopexit ]
  %.391658.lcssa = phi float [ %.3816572118, %.lr.ph2120 ], [ %.401659, %._crit_edge2107.loopexit ]
  %388 = sub nsw i32 %387, %386
  %389 = mul nsw i32 %387, %.01698
  %390 = add nsw i32 %388, %389
  store i32 %390, ptr %7, align 4, !tbaa !5
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds %struct.complex, ptr %4, i64 %391
  %393 = load float, ptr %392, align 4, !tbaa !9
  %394 = fcmp oge float %393, 0.000000e+00
  %395 = fneg float %393
  %396 = select i1 %394, float %393, float %395
  store float %396, ptr %8, align 4, !tbaa !12
  %397 = fcmp olt float %.391658.lcssa, %396
  br i1 %397, label %400, label %398

398:                                              ; preds = %._crit_edge2107
  %399 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2004 = icmp eq i32 %399, 0
  br i1 %.not2004, label %400, label %._crit_edge3382

._crit_edge3382:                                  ; preds = %398
  %.pre3383 = load float, ptr %8, align 4, !tbaa !12
  br label %400

400:                                              ; preds = %._crit_edge2107, %._crit_edge3382, %398
  %.411660 = phi float [ %.391658.lcssa, %398 ], [ %.pre3383, %._crit_edge3382 ], [ %396, %._crit_edge2107 ]
  %401 = load i32, ptr %9, align 4, !tbaa !5
  %402 = load i32, ptr %10, align 4, !tbaa !5
  %403 = mul nsw i32 %401, %.01698
  %404 = add i32 %401, 1
  %405 = sub i32 %404, %402
  %406 = add nsw i32 %405, %403
  store i32 %406, ptr %7, align 4, !tbaa !5
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds %struct.complex, ptr %4, i64 %407
  %409 = load float, ptr %408, align 4, !tbaa !9
  %410 = fcmp oge float %409, 0.000000e+00
  %411 = fneg float %409
  %412 = select i1 %410, float %409, float %411
  store float %412, ptr %8, align 4, !tbaa !12
  %413 = fcmp olt float %.411660, %412
  br i1 %413, label %416, label %414

414:                                              ; preds = %400
  %415 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2005 = icmp eq i32 %415, 0
  br i1 %.not2005, label %416, label %._crit_edge3384

._crit_edge3384:                                  ; preds = %414
  %.pre3385 = load float, ptr %8, align 4, !tbaa !12
  br label %416

416:                                              ; preds = %400, %._crit_edge3384, %414
  %.421661 = phi float [ %.411660, %414 ], [ %.pre3385, %._crit_edge3384 ], [ %412, %400 ]
  %417 = load i32, ptr %10, align 4, !tbaa !5
  %418 = add nsw i32 %417, -1
  store i32 %418, ptr %7, align 4, !tbaa !5
  %419 = load i32, ptr %9, align 4, !tbaa !5
  %reass.sub = sub i32 %419, %417
  %420 = add i32 %reass.sub, 2
  %.not20062109.not = icmp slt i32 %420, %417
  br i1 %.not20062109.not, label %.lr.ph2113, label %._crit_edge2114

.lr.ph2113:                                       ; preds = %416, %431
  %.132111 = phi i32 [ %432, %431 ], [ %420, %416 ]
  %.4316622110 = phi float [ %.441663, %431 ], [ %.421661, %416 ]
  %421 = load i32, ptr %9, align 4, !tbaa !5
  %422 = mul nsw i32 %421, %.01698
  %423 = add nsw i32 %422, %.132111
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds %struct.complex, ptr %4, i64 %424
  %426 = call <2 x float> @Cf(ptr noundef %425)
  %427 = call float @cabsf(<2 x float> noundef %426) #9
  store float %427, ptr %8, align 4, !tbaa !12
  %428 = fcmp olt float %.4316622110, %427
  br i1 %428, label %431, label %429

429:                                              ; preds = %.lr.ph2113
  %430 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not2007 = icmp eq i32 %430, 0
  br i1 %.not2007, label %431, label %._crit_edge3386

._crit_edge3386:                                  ; preds = %429
  %.pre3387 = load float, ptr %8, align 4, !tbaa !12
  br label %431

431:                                              ; preds = %.lr.ph2113, %._crit_edge3386, %429
  %.441663 = phi float [ %.4316622110, %429 ], [ %.pre3387, %._crit_edge3386 ], [ %427, %.lr.ph2113 ]
  %432 = add nsw i32 %.132111, 1
  %433 = load i32, ptr %7, align 4, !tbaa !5
  %.not2006.not = icmp slt i32 %.132111, %433
  br i1 %.not2006.not, label %.lr.ph2113, label %._crit_edge2114.loopexit, !llvm.loop !32

._crit_edge2114.loopexit:                         ; preds = %431
  %.pre3388 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2114

._crit_edge2114:                                  ; preds = %._crit_edge2114.loopexit, %416
  %434 = phi i32 [ %419, %416 ], [ %.pre3388, %._crit_edge2114.loopexit ]
  %.431662.lcssa = phi float [ %.421661, %416 ], [ %.441663, %._crit_edge2114.loopexit ]
  %435 = add nsw i32 %434, 1
  store i32 %435, ptr %9, align 4, !tbaa !5
  %.not2002.not = icmp slt i32 %435, %369
  br i1 %.not2002.not, label %.lr.ph2120, label %.loopexit, !llvm.loop !33

436:                                              ; preds = %31
  br i1 %.not, label %437, label %643

437:                                              ; preds = %436
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %438, label %535

438:                                              ; preds = %437
  store i32 0, ptr %9, align 4, !tbaa !5
  %439 = load float, ptr %4, align 4, !tbaa !9
  %440 = fcmp oge float %439, 0.000000e+00
  %441 = fneg float %439
  %442 = select i1 %440, float %439, float %441
  store float %442, ptr %8, align 4, !tbaa !12
  %443 = fcmp ogt float %442, 0.000000e+00
  br i1 %443, label %446, label %444

444:                                              ; preds = %438
  %445 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1985 = icmp eq i32 %445, 0
  br i1 %.not1985, label %446, label %._crit_edge3513

._crit_edge3513:                                  ; preds = %444
  %.pre3514 = load float, ptr %8, align 4, !tbaa !12
  br label %446

446:                                              ; preds = %438, %._crit_edge3513, %444
  %.451664 = phi float [ 0.000000e+00, %444 ], [ %.pre3514, %._crit_edge3513 ], [ %442, %438 ]
  %447 = load i32, ptr %9, align 4, !tbaa !5
  %448 = add nsw i32 %447, 1
  %449 = mul nsw i32 %447, %.01698
  %450 = add nsw i32 %448, %449
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds %struct.complex, ptr %4, i64 %451
  %453 = load float, ptr %452, align 4, !tbaa !9
  %454 = fcmp oge float %453, 0.000000e+00
  %455 = fneg float %453
  %456 = select i1 %454, float %453, float %455
  store float %456, ptr %8, align 4, !tbaa !12
  %457 = fcmp olt float %.451664, %456
  br i1 %457, label %460, label %458

458:                                              ; preds = %446
  %459 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1986 = icmp eq i32 %459, 0
  br i1 %.not1986, label %460, label %._crit_edge3515

._crit_edge3515:                                  ; preds = %458
  %.pre3516 = load float, ptr %8, align 4, !tbaa !12
  br label %460

460:                                              ; preds = %446, %._crit_edge3515, %458
  %.461665 = phi float [ %.451664, %458 ], [ %.pre3516, %._crit_edge3515 ], [ %456, %446 ]
  %461 = load i32, ptr %3, align 4, !tbaa !5
  %.not19872347 = icmp slt i32 %461, 2
  br i1 %.not19872347, label %._crit_edge2352, label %.lr.ph2351

.lr.ph2351:                                       ; preds = %460, %472
  %.142349 = phi i32 [ %473, %472 ], [ 2, %460 ]
  %.4716662348 = phi float [ %.481667, %472 ], [ %.461665, %460 ]
  %462 = load i32, ptr %9, align 4, !tbaa !5
  %463 = mul nsw i32 %462, %.01698
  %464 = add nsw i32 %463, %.142349
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds %struct.complex, ptr %4, i64 %465
  %467 = call <2 x float> @Cf(ptr noundef nonnull %466)
  %468 = call float @cabsf(<2 x float> noundef %467) #9
  store float %468, ptr %8, align 4, !tbaa !12
  %469 = fcmp olt float %.4716662348, %468
  br i1 %469, label %472, label %470

470:                                              ; preds = %.lr.ph2351
  %471 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1996 = icmp eq i32 %471, 0
  br i1 %.not1996, label %472, label %._crit_edge3517

._crit_edge3517:                                  ; preds = %470
  %.pre3518 = load float, ptr %8, align 4, !tbaa !12
  br label %472

472:                                              ; preds = %.lr.ph2351, %._crit_edge3517, %470
  %.481667 = phi float [ %.4716662348, %470 ], [ %.pre3518, %._crit_edge3517 ], [ %468, %.lr.ph2351 ]
  %473 = add nuw i32 %.142349, 1
  %exitcond3081.not = icmp eq i32 %.142349, %461
  br i1 %exitcond3081.not, label %._crit_edge2352, label %.lr.ph2351, !llvm.loop !34

._crit_edge2352:                                  ; preds = %472, %460
  %.471666.lcssa = phi float [ %.461665, %460 ], [ %.481667, %472 ]
  %474 = load i32, ptr %10, align 4, !tbaa !5
  store i32 1, ptr %9, align 4, !tbaa !5
  %.not1989.not2368 = icmp sgt i32 %474, 1
  br i1 %.not1989.not2368, label %.lr.ph2372, label %.loopexit

.lr.ph2372:                                       ; preds = %._crit_edge2352
  %475 = add i32 %.01698, 1
  br label %476

476:                                              ; preds = %.lr.ph2372, %._crit_edge2366
  %477 = phi i32 [ 1, %.lr.ph2372 ], [ %534, %._crit_edge2366 ]
  %.4916682370 = phi float [ %.471666.lcssa, %.lr.ph2372 ], [ %.541673.lcssa, %._crit_edge2366 ]
  %storemerge19882369 = phi i32 [ 0, %.lr.ph2372 ], [ %533, %._crit_edge2366 ]
  store i32 %storemerge19882369, ptr %7, align 4, !tbaa !5
  %.not19902354 = icmp slt i32 %storemerge19882369, 0
  br i1 %.not19902354, label %._crit_edge2359, label %.lr.ph2358

.lr.ph2358:                                       ; preds = %476, %488
  %.152356 = phi i32 [ %489, %488 ], [ 0, %476 ]
  %.5016692355 = phi float [ %.511670, %488 ], [ %.4916682370, %476 ]
  %478 = load i32, ptr %9, align 4, !tbaa !5
  %479 = mul nsw i32 %478, %.01698
  %480 = add nsw i32 %479, %.152356
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds %struct.complex, ptr %4, i64 %481
  %483 = call <2 x float> @Cf(ptr noundef nonnull %482)
  %484 = call float @cabsf(<2 x float> noundef %483) #9
  store float %484, ptr %8, align 4, !tbaa !12
  %485 = fcmp olt float %.5016692355, %484
  br i1 %485, label %488, label %486

486:                                              ; preds = %.lr.ph2358
  %487 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1995 = icmp eq i32 %487, 0
  br i1 %.not1995, label %488, label %._crit_edge3519

._crit_edge3519:                                  ; preds = %486
  %.pre3520 = load float, ptr %8, align 4, !tbaa !12
  br label %488

488:                                              ; preds = %.lr.ph2358, %._crit_edge3519, %486
  %.511670 = phi float [ %.5016692355, %486 ], [ %.pre3520, %._crit_edge3519 ], [ %484, %.lr.ph2358 ]
  %489 = add nuw nsw i32 %.152356, 1
  %490 = load i32, ptr %7, align 4, !tbaa !5
  %.not1990.not = icmp slt i32 %.152356, %490
  br i1 %.not1990.not, label %.lr.ph2358, label %._crit_edge2359.loopexit, !llvm.loop !35

._crit_edge2359.loopexit:                         ; preds = %488
  %.pre3521 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2359

._crit_edge2359:                                  ; preds = %._crit_edge2359.loopexit, %476
  %491 = phi i32 [ %477, %476 ], [ %.pre3521, %._crit_edge2359.loopexit ]
  %.501669.lcssa = phi float [ %.4916682370, %476 ], [ %.511670, %._crit_edge2359.loopexit ]
  %492 = mul i32 %491, %475
  store i32 %492, ptr %7, align 4, !tbaa !5
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds %struct.complex, ptr %4, i64 %493
  %495 = load float, ptr %494, align 4, !tbaa !9
  %496 = fcmp oge float %495, 0.000000e+00
  %497 = fneg float %495
  %498 = select i1 %496, float %495, float %497
  store float %498, ptr %8, align 4, !tbaa !12
  %499 = fcmp olt float %.501669.lcssa, %498
  br i1 %499, label %502, label %500

500:                                              ; preds = %._crit_edge2359
  %501 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1991 = icmp eq i32 %501, 0
  br i1 %.not1991, label %502, label %._crit_edge3522

._crit_edge3522:                                  ; preds = %500
  %.pre3523 = load float, ptr %8, align 4, !tbaa !12
  br label %502

502:                                              ; preds = %._crit_edge2359, %._crit_edge3522, %500
  %.521671 = phi float [ %.501669.lcssa, %500 ], [ %.pre3523, %._crit_edge3522 ], [ %498, %._crit_edge2359 ]
  %503 = load i32, ptr %9, align 4, !tbaa !5
  %504 = add nsw i32 %503, 1
  %505 = mul nsw i32 %503, %.01698
  %506 = add nsw i32 %504, %505
  store i32 %506, ptr %7, align 4, !tbaa !5
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds %struct.complex, ptr %4, i64 %507
  %509 = load float, ptr %508, align 4, !tbaa !9
  %510 = fcmp oge float %509, 0.000000e+00
  %511 = fneg float %509
  %512 = select i1 %510, float %509, float %511
  store float %512, ptr %8, align 4, !tbaa !12
  %513 = fcmp olt float %.521671, %512
  br i1 %513, label %516, label %514

514:                                              ; preds = %502
  %515 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1992 = icmp eq i32 %515, 0
  br i1 %.not1992, label %516, label %._crit_edge3524

._crit_edge3524:                                  ; preds = %514
  %.pre3525 = load float, ptr %8, align 4, !tbaa !12
  br label %516

516:                                              ; preds = %502, %._crit_edge3524, %514
  %.531672 = phi float [ %.521671, %514 ], [ %.pre3525, %._crit_edge3524 ], [ %512, %502 ]
  %517 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %517, ptr %7, align 4, !tbaa !5
  %518 = load i32, ptr %9, align 4, !tbaa !5
  %519 = add nsw i32 %518, 2
  %.not19932361 = icmp sgt i32 %519, %517
  br i1 %.not19932361, label %._crit_edge2366, label %.lr.ph2365

.lr.ph2365:                                       ; preds = %516, %530
  %.162363 = phi i32 [ %531, %530 ], [ %519, %516 ]
  %.5416732362 = phi float [ %.551674, %530 ], [ %.531672, %516 ]
  %520 = load i32, ptr %9, align 4, !tbaa !5
  %521 = mul nsw i32 %520, %.01698
  %522 = add nsw i32 %521, %.162363
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds %struct.complex, ptr %4, i64 %523
  %525 = call <2 x float> @Cf(ptr noundef nonnull %524)
  %526 = call float @cabsf(<2 x float> noundef %525) #9
  store float %526, ptr %8, align 4, !tbaa !12
  %527 = fcmp olt float %.5416732362, %526
  br i1 %527, label %530, label %528

528:                                              ; preds = %.lr.ph2365
  %529 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1994 = icmp eq i32 %529, 0
  br i1 %.not1994, label %530, label %._crit_edge3526

._crit_edge3526:                                  ; preds = %528
  %.pre3527 = load float, ptr %8, align 4, !tbaa !12
  br label %530

530:                                              ; preds = %.lr.ph2365, %._crit_edge3526, %528
  %.551674 = phi float [ %.5416732362, %528 ], [ %.pre3527, %._crit_edge3526 ], [ %526, %.lr.ph2365 ]
  %531 = add nsw i32 %.162363, 1
  %532 = load i32, ptr %7, align 4, !tbaa !5
  %.not1993.not = icmp slt i32 %.162363, %532
  br i1 %.not1993.not, label %.lr.ph2365, label %._crit_edge2366.loopexit, !llvm.loop !36

._crit_edge2366.loopexit:                         ; preds = %530
  %.pre3528 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2366

._crit_edge2366:                                  ; preds = %._crit_edge2366.loopexit, %516
  %533 = phi i32 [ %518, %516 ], [ %.pre3528, %._crit_edge2366.loopexit ]
  %.541673.lcssa = phi float [ %.531672, %516 ], [ %.551674, %._crit_edge2366.loopexit ]
  %534 = add nsw i32 %533, 1
  store i32 %534, ptr %9, align 4, !tbaa !5
  %.not1989.not = icmp slt i32 %534, %474
  br i1 %.not1989.not, label %476, label %.loopexit, !llvm.loop !37

535:                                              ; preds = %437
  %536 = add nsw i32 %34, -2
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not19742332 = icmp slt i32 %32, 3
  br i1 %.not19742332, label %._crit_edge2337, label %.lr.ph2336

.lr.ph2336:                                       ; preds = %535, %._crit_edge2330
  %537 = phi i32 [ %601, %._crit_edge2330 ], [ 0, %535 ]
  %.5616752334 = phi float [ %.611680.lcssa, %._crit_edge2330 ], [ 0.000000e+00, %535 ]
  %storemerge19732333 = phi i32 [ %600, %._crit_edge2330 ], [ -1, %535 ]
  %538 = load i32, ptr %10, align 4, !tbaa !5
  %539 = add i32 %storemerge19732333, %538
  store i32 %539, ptr %7, align 4, !tbaa !5
  %.not19792318 = icmp slt i32 %539, 0
  br i1 %.not19792318, label %._crit_edge2323, label %.lr.ph2322

.lr.ph2322:                                       ; preds = %.lr.ph2336, %550
  %.172320 = phi i32 [ %551, %550 ], [ 0, %.lr.ph2336 ]
  %.5716762319 = phi float [ %.581677, %550 ], [ %.5616752334, %.lr.ph2336 ]
  %540 = load i32, ptr %9, align 4, !tbaa !5
  %541 = mul nsw i32 %540, %.01698
  %542 = add nsw i32 %541, %.172320
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds %struct.complex, ptr %4, i64 %543
  %545 = call <2 x float> @Cf(ptr noundef %544)
  %546 = call float @cabsf(<2 x float> noundef %545) #9
  store float %546, ptr %8, align 4, !tbaa !12
  %547 = fcmp olt float %.5716762319, %546
  br i1 %547, label %550, label %548

548:                                              ; preds = %.lr.ph2322
  %549 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1984 = icmp eq i32 %549, 0
  br i1 %.not1984, label %550, label %._crit_edge3494

._crit_edge3494:                                  ; preds = %548
  %.pre3495 = load float, ptr %8, align 4, !tbaa !12
  br label %550

550:                                              ; preds = %.lr.ph2322, %._crit_edge3494, %548
  %.581677 = phi float [ %.5716762319, %548 ], [ %.pre3495, %._crit_edge3494 ], [ %546, %.lr.ph2322 ]
  %551 = add nuw nsw i32 %.172320, 1
  %552 = load i32, ptr %7, align 4, !tbaa !5
  %.not1979.not = icmp slt i32 %.172320, %552
  br i1 %.not1979.not, label %.lr.ph2322, label %._crit_edge2323.loopexit, !llvm.loop !38

._crit_edge2323.loopexit:                         ; preds = %550
  %.pre3496 = load i32, ptr %10, align 4, !tbaa !5
  %.pre3497 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2323

._crit_edge2323:                                  ; preds = %._crit_edge2323.loopexit, %.lr.ph2336
  %553 = phi i32 [ %537, %.lr.ph2336 ], [ %.pre3497, %._crit_edge2323.loopexit ]
  %554 = phi i32 [ %538, %.lr.ph2336 ], [ %.pre3496, %._crit_edge2323.loopexit ]
  %.571676.lcssa = phi float [ %.5616752334, %.lr.ph2336 ], [ %.581677, %._crit_edge2323.loopexit ]
  %555 = add nsw i32 %553, %554
  %556 = mul nsw i32 %553, %.01698
  %557 = add nsw i32 %555, %556
  store i32 %557, ptr %7, align 4, !tbaa !5
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds %struct.complex, ptr %4, i64 %558
  %560 = load float, ptr %559, align 4, !tbaa !9
  %561 = fcmp oge float %560, 0.000000e+00
  %562 = fneg float %560
  %563 = select i1 %561, float %560, float %562
  store float %563, ptr %8, align 4, !tbaa !12
  %564 = fcmp olt float %.571676.lcssa, %563
  br i1 %564, label %567, label %565

565:                                              ; preds = %._crit_edge2323
  %566 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1980 = icmp eq i32 %566, 0
  br i1 %.not1980, label %567, label %._crit_edge3498

._crit_edge3498:                                  ; preds = %565
  %.pre3499 = load float, ptr %8, align 4, !tbaa !12
  br label %567

567:                                              ; preds = %._crit_edge2323, %._crit_edge3498, %565
  %.591678 = phi float [ %.571676.lcssa, %565 ], [ %.pre3499, %._crit_edge3498 ], [ %563, %._crit_edge2323 ]
  %568 = add nsw i32 %555, 1
  %569 = load i32, ptr %9, align 4, !tbaa !5
  %570 = mul nsw i32 %569, %.01698
  %571 = add nsw i32 %568, %570
  store i32 %571, ptr %7, align 4, !tbaa !5
  %572 = sext i32 %571 to i64
  %573 = getelementptr inbounds %struct.complex, ptr %4, i64 %572
  %574 = load float, ptr %573, align 4, !tbaa !9
  %575 = fcmp oge float %574, 0.000000e+00
  %576 = fneg float %574
  %577 = select i1 %575, float %574, float %576
  store float %577, ptr %8, align 4, !tbaa !12
  %578 = fcmp olt float %.591678, %577
  br i1 %578, label %581, label %579

579:                                              ; preds = %567
  %580 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1981 = icmp eq i32 %580, 0
  br i1 %.not1981, label %581, label %._crit_edge3500

._crit_edge3500:                                  ; preds = %579
  %.pre3501 = load float, ptr %8, align 4, !tbaa !12
  br label %581

581:                                              ; preds = %567, %._crit_edge3500, %579
  %.601679 = phi float [ %.591678, %579 ], [ %.pre3501, %._crit_edge3500 ], [ %577, %567 ]
  %582 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %582, ptr %7, align 4, !tbaa !5
  %583 = load i32, ptr %10, align 4, !tbaa !5
  %584 = load i32, ptr %9, align 4, !tbaa !5
  %585 = add i32 %583, 2
  %586 = add i32 %585, %584
  %.not19822325 = icmp sgt i32 %586, %582
  br i1 %.not19822325, label %._crit_edge2330, label %.lr.ph2329

.lr.ph2329:                                       ; preds = %581, %597
  %.182327 = phi i32 [ %598, %597 ], [ %586, %581 ]
  %.6116802326 = phi float [ %.621681, %597 ], [ %.601679, %581 ]
  %587 = load i32, ptr %9, align 4, !tbaa !5
  %588 = mul nsw i32 %587, %.01698
  %589 = add nsw i32 %588, %.182327
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds %struct.complex, ptr %4, i64 %590
  %592 = call <2 x float> @Cf(ptr noundef %591)
  %593 = call float @cabsf(<2 x float> noundef %592) #9
  store float %593, ptr %8, align 4, !tbaa !12
  %594 = fcmp olt float %.6116802326, %593
  br i1 %594, label %597, label %595

595:                                              ; preds = %.lr.ph2329
  %596 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1983 = icmp eq i32 %596, 0
  br i1 %.not1983, label %597, label %._crit_edge3502

._crit_edge3502:                                  ; preds = %595
  %.pre3503 = load float, ptr %8, align 4, !tbaa !12
  br label %597

597:                                              ; preds = %.lr.ph2329, %._crit_edge3502, %595
  %.621681 = phi float [ %.6116802326, %595 ], [ %.pre3503, %._crit_edge3502 ], [ %593, %.lr.ph2329 ]
  %598 = add nsw i32 %.182327, 1
  %599 = load i32, ptr %7, align 4, !tbaa !5
  %.not1982.not = icmp slt i32 %.182327, %599
  br i1 %.not1982.not, label %.lr.ph2329, label %._crit_edge2330.loopexit, !llvm.loop !39

._crit_edge2330.loopexit:                         ; preds = %597
  %.pre3504 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2330

._crit_edge2330:                                  ; preds = %._crit_edge2330.loopexit, %581
  %600 = phi i32 [ %584, %581 ], [ %.pre3504, %._crit_edge2330.loopexit ]
  %.611680.lcssa = phi float [ %.601679, %581 ], [ %.621681, %._crit_edge2330.loopexit ]
  %601 = add nsw i32 %600, 1
  store i32 %601, ptr %9, align 4, !tbaa !5
  %.not1974.not = icmp slt i32 %600, %536
  br i1 %.not1974.not, label %.lr.ph2336, label %._crit_edge2337.loopexit, !llvm.loop !40

._crit_edge2337.loopexit:                         ; preds = %._crit_edge2330
  %.pre3505 = load i32, ptr %3, align 4, !tbaa !5
  br label %._crit_edge2337

._crit_edge2337:                                  ; preds = %._crit_edge2337.loopexit, %535
  %602 = phi i32 [ 0, %535 ], [ %601, %._crit_edge2337.loopexit ]
  %603 = phi i32 [ %32, %535 ], [ %.pre3505, %._crit_edge2337.loopexit ]
  %.561675.lcssa = phi float [ 0.000000e+00, %535 ], [ %.611680.lcssa, %._crit_edge2337.loopexit ]
  %.not19752339 = icmp slt i32 %603, 2
  br i1 %.not19752339, label %._crit_edge2344, label %.lr.ph2343.preheader

.lr.ph2343.preheader:                             ; preds = %._crit_edge2337
  %604 = add nsw i32 %603, -1
  br label %.lr.ph2343

.lr.ph2343:                                       ; preds = %.lr.ph2343.preheader, %615
  %.192341 = phi i32 [ %616, %615 ], [ 0, %.lr.ph2343.preheader ]
  %.6316822340 = phi float [ %.641683, %615 ], [ %.561675.lcssa, %.lr.ph2343.preheader ]
  %605 = load i32, ptr %9, align 4, !tbaa !5
  %606 = mul nsw i32 %605, %.01698
  %607 = add nsw i32 %606, %.192341
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds %struct.complex, ptr %4, i64 %608
  %610 = call <2 x float> @Cf(ptr noundef %609)
  %611 = call float @cabsf(<2 x float> noundef %610) #9
  store float %611, ptr %8, align 4, !tbaa !12
  %612 = fcmp olt float %.6316822340, %611
  br i1 %612, label %615, label %613

613:                                              ; preds = %.lr.ph2343
  %614 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1978 = icmp eq i32 %614, 0
  br i1 %.not1978, label %615, label %._crit_edge3506

._crit_edge3506:                                  ; preds = %613
  %.pre3507 = load float, ptr %8, align 4, !tbaa !12
  br label %615

615:                                              ; preds = %.lr.ph2343, %._crit_edge3506, %613
  %.641683 = phi float [ %.6316822340, %613 ], [ %.pre3507, %._crit_edge3506 ], [ %611, %.lr.ph2343 ]
  %616 = add nuw i32 %.192341, 1
  %exitcond3080.not = icmp eq i32 %616, %604
  br i1 %exitcond3080.not, label %._crit_edge2344.loopexit, label %.lr.ph2343, !llvm.loop !41

._crit_edge2344.loopexit:                         ; preds = %615
  %.pre3508 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2344

._crit_edge2344:                                  ; preds = %._crit_edge2344.loopexit, %._crit_edge2337
  %617 = phi i32 [ %602, %._crit_edge2337 ], [ %.pre3508, %._crit_edge2344.loopexit ]
  %.631682.lcssa = phi float [ %.561675.lcssa, %._crit_edge2337 ], [ %.641683, %._crit_edge2344.loopexit ]
  %.19.lcssa = phi i32 [ 0, %._crit_edge2337 ], [ %604, %._crit_edge2344.loopexit ]
  %618 = mul nsw i32 %617, %.01698
  %619 = add nsw i32 %618, %.19.lcssa
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds %struct.complex, ptr %4, i64 %620
  %622 = load float, ptr %621, align 4, !tbaa !9
  %623 = fcmp oge float %622, 0.000000e+00
  %624 = fneg float %622
  %625 = select i1 %623, float %622, float %624
  store float %625, ptr %8, align 4, !tbaa !12
  %626 = fcmp olt float %.631682.lcssa, %625
  br i1 %626, label %629, label %627

627:                                              ; preds = %._crit_edge2344
  %628 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1976 = icmp eq i32 %628, 0
  br i1 %.not1976, label %629, label %._crit_edge3509

._crit_edge3509:                                  ; preds = %627
  %.pre3510 = load float, ptr %8, align 4, !tbaa !12
  br label %629

629:                                              ; preds = %._crit_edge2344, %._crit_edge3509, %627
  %.651684 = phi float [ %.631682.lcssa, %627 ], [ %.pre3510, %._crit_edge3509 ], [ %625, %._crit_edge2344 ]
  %630 = load i32, ptr %3, align 4, !tbaa !5
  %631 = load i32, ptr %9, align 4, !tbaa !5
  %632 = mul nsw i32 %631, %.01698
  %633 = add nsw i32 %632, %630
  %634 = sext i32 %633 to i64
  %635 = getelementptr inbounds %struct.complex, ptr %4, i64 %634
  %636 = load float, ptr %635, align 4, !tbaa !9
  %637 = fcmp oge float %636, 0.000000e+00
  %638 = fneg float %636
  %639 = select i1 %637, float %636, float %638
  store float %639, ptr %8, align 4, !tbaa !12
  %640 = fcmp olt float %.651684, %639
  br i1 %640, label %.loopexit, label %641

641:                                              ; preds = %629
  %642 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1977 = icmp eq i32 %642, 0
  br i1 %.not1977, label %.loopexit, label %._crit_edge3511

._crit_edge3511:                                  ; preds = %641
  %.pre3512 = load float, ptr %8, align 4, !tbaa !12
  br label %.loopexit

643:                                              ; preds = %436
  store i32 0, ptr %9, align 4, !tbaa !5
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %644, label %.preheader2082

.preheader2082:                                   ; preds = %643
  %.not1938.not2227 = icmp sgt i32 %32, 0
  br i1 %.not1938.not2227, label %.lr.ph2229, label %._crit_edge2230

644:                                              ; preds = %643
  %645 = load float, ptr %4, align 4, !tbaa !9
  %646 = fcmp oge float %645, 0.000000e+00
  %647 = fneg float %645
  %648 = select i1 %646, float %645, float %647
  store float %648, ptr %8, align 4, !tbaa !12
  %649 = fcmp ogt float %648, 0.000000e+00
  br i1 %649, label %652, label %650

650:                                              ; preds = %644
  %651 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1955 = icmp eq i32 %651, 0
  br i1 %.not1955, label %652, label %._crit_edge3468

._crit_edge3468:                                  ; preds = %650
  %.pre3469 = load float, ptr %8, align 4, !tbaa !12
  br label %652

652:                                              ; preds = %644, %._crit_edge3468, %650
  %.661685 = phi float [ 0.000000e+00, %650 ], [ %.pre3469, %._crit_edge3468 ], [ %648, %644 ]
  %653 = load i32, ptr %10, align 4, !tbaa !5
  %.not1956.not2269 = icmp sgt i32 %653, 1
  br i1 %.not1956.not2269, label %.lr.ph2273, label %._crit_edge2296.thread

.lr.ph2273:                                       ; preds = %652, %664
  %.202271 = phi i32 [ %665, %664 ], [ 1, %652 ]
  %.6716862270 = phi float [ %.681687, %664 ], [ %.661685, %652 ]
  %654 = load i32, ptr %9, align 4, !tbaa !5
  %655 = mul nsw i32 %654, %.01698
  %656 = add nsw i32 %655, %.202271
  %657 = sext i32 %656 to i64
  %658 = getelementptr inbounds %struct.complex, ptr %4, i64 %657
  %659 = call <2 x float> @Cf(ptr noundef nonnull %658)
  %660 = call float @cabsf(<2 x float> noundef %659) #9
  store float %660, ptr %8, align 4, !tbaa !12
  %661 = fcmp olt float %.6716862270, %660
  br i1 %661, label %664, label %662

662:                                              ; preds = %.lr.ph2273
  %663 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1972 = icmp eq i32 %663, 0
  br i1 %.not1972, label %664, label %._crit_edge3470

._crit_edge3470:                                  ; preds = %662
  %.pre3471 = load float, ptr %8, align 4, !tbaa !12
  br label %664

664:                                              ; preds = %.lr.ph2273, %._crit_edge3470, %662
  %.681687 = phi float [ %.6716862270, %662 ], [ %.pre3471, %._crit_edge3470 ], [ %660, %.lr.ph2273 ]
  %665 = add nuw nsw i32 %.202271, 1
  %exitcond3078.not = icmp eq i32 %665, %653
  br i1 %exitcond3078.not, label %._crit_edge2274, label %.lr.ph2273, !llvm.loop !42

._crit_edge2274:                                  ; preds = %664
  %.pre3472 = load i32, ptr %10, align 4, !tbaa !5
  store i32 1, ptr %9, align 4, !tbaa !5
  %.not1958.not2291 = icmp sgt i32 %.pre3472, 1
  br i1 %.not1958.not2291, label %.lr.ph2295, label %._crit_edge2296.thread

.lr.ph2295:                                       ; preds = %._crit_edge2274
  %666 = add i32 %.01698, 1
  br label %667

667:                                              ; preds = %.lr.ph2295, %._crit_edge2289
  %.6916882293 = phi float [ %.681687, %.lr.ph2295 ], [ %.741693.lcssa, %._crit_edge2289 ]
  %storemerge19572292 = phi i32 [ 1, %.lr.ph2295 ], [ %724, %._crit_edge2289 ]
  %668 = add nsw i32 %storemerge19572292, -2
  store i32 %668, ptr %7, align 4, !tbaa !5
  %.not19662276 = icmp slt i32 %storemerge19572292, 2
  br i1 %.not19662276, label %._crit_edge2281, label %.lr.ph2280

.lr.ph2280:                                       ; preds = %667, %679
  %.212278 = phi i32 [ %680, %679 ], [ 0, %667 ]
  %.7016892277 = phi float [ %.711690, %679 ], [ %.6916882293, %667 ]
  %669 = load i32, ptr %9, align 4, !tbaa !5
  %670 = mul nsw i32 %669, %.01698
  %671 = add nsw i32 %670, %.212278
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds %struct.complex, ptr %4, i64 %672
  %674 = call <2 x float> @Cf(ptr noundef nonnull %673)
  %675 = call float @cabsf(<2 x float> noundef %674) #9
  store float %675, ptr %8, align 4, !tbaa !12
  %676 = fcmp olt float %.7016892277, %675
  br i1 %676, label %679, label %677

677:                                              ; preds = %.lr.ph2280
  %678 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1971 = icmp eq i32 %678, 0
  br i1 %.not1971, label %679, label %._crit_edge3473

._crit_edge3473:                                  ; preds = %677
  %.pre3474 = load float, ptr %8, align 4, !tbaa !12
  br label %679

679:                                              ; preds = %.lr.ph2280, %._crit_edge3473, %677
  %.711690 = phi float [ %.7016892277, %677 ], [ %.pre3474, %._crit_edge3473 ], [ %675, %.lr.ph2280 ]
  %680 = add nuw nsw i32 %.212278, 1
  %681 = load i32, ptr %7, align 4, !tbaa !5
  %.not1966.not = icmp slt i32 %.212278, %681
  br i1 %.not1966.not, label %.lr.ph2280, label %._crit_edge2281.loopexit, !llvm.loop !43

._crit_edge2281.loopexit:                         ; preds = %679
  %.pre3475 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2281

._crit_edge2281:                                  ; preds = %._crit_edge2281.loopexit, %667
  %682 = phi i32 [ %storemerge19572292, %667 ], [ %.pre3475, %._crit_edge2281.loopexit ]
  %.701689.lcssa = phi float [ %.6916882293, %667 ], [ %.711690, %._crit_edge2281.loopexit ]
  %683 = add nsw i32 %682, -1
  %684 = mul nsw i32 %682, %.01698
  %685 = add nsw i32 %683, %684
  store i32 %685, ptr %7, align 4, !tbaa !5
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds %struct.complex, ptr %4, i64 %686
  %688 = load float, ptr %687, align 4, !tbaa !9
  %689 = fcmp oge float %688, 0.000000e+00
  %690 = fneg float %688
  %691 = select i1 %689, float %688, float %690
  store float %691, ptr %8, align 4, !tbaa !12
  %692 = fcmp olt float %.701689.lcssa, %691
  br i1 %692, label %695, label %693

693:                                              ; preds = %._crit_edge2281
  %694 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1967 = icmp eq i32 %694, 0
  br i1 %.not1967, label %695, label %._crit_edge3476

._crit_edge3476:                                  ; preds = %693
  %.pre3477 = load float, ptr %8, align 4, !tbaa !12
  br label %695

695:                                              ; preds = %._crit_edge2281, %._crit_edge3476, %693
  %.721691 = phi float [ %.701689.lcssa, %693 ], [ %.pre3477, %._crit_edge3476 ], [ %691, %._crit_edge2281 ]
  %696 = load i32, ptr %9, align 4, !tbaa !5
  %697 = mul i32 %696, %666
  store i32 %697, ptr %7, align 4, !tbaa !5
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds %struct.complex, ptr %4, i64 %698
  %700 = load float, ptr %699, align 4, !tbaa !9
  %701 = fcmp oge float %700, 0.000000e+00
  %702 = fneg float %700
  %703 = select i1 %701, float %700, float %702
  store float %703, ptr %8, align 4, !tbaa !12
  %704 = fcmp olt float %.721691, %703
  br i1 %704, label %707, label %705

705:                                              ; preds = %695
  %706 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1968 = icmp eq i32 %706, 0
  br i1 %.not1968, label %707, label %._crit_edge3478

._crit_edge3478:                                  ; preds = %705
  %.pre3479 = load float, ptr %8, align 4, !tbaa !12
  br label %707

707:                                              ; preds = %695, %._crit_edge3478, %705
  %.731692 = phi float [ %.721691, %705 ], [ %.pre3479, %._crit_edge3478 ], [ %703, %695 ]
  %708 = load i32, ptr %10, align 4, !tbaa !5
  %709 = add nsw i32 %708, -1
  store i32 %709, ptr %7, align 4, !tbaa !5
  %710 = load i32, ptr %9, align 4, !tbaa !5
  %.not1969.not2284 = icmp slt i32 %710, %709
  br i1 %.not1969.not2284, label %.lr.ph2288, label %._crit_edge2289

.lr.ph2288:                                       ; preds = %707, %721
  %.222286.in = phi i32 [ %.222286, %721 ], [ %710, %707 ]
  %.7416932285 = phi float [ %.751694, %721 ], [ %.731692, %707 ]
  %.222286 = add nsw i32 %.222286.in, 1
  %711 = load i32, ptr %9, align 4, !tbaa !5
  %712 = mul nsw i32 %711, %.01698
  %713 = add nsw i32 %712, %.222286
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds %struct.complex, ptr %4, i64 %714
  %716 = call <2 x float> @Cf(ptr noundef nonnull %715)
  %717 = call float @cabsf(<2 x float> noundef %716) #9
  store float %717, ptr %8, align 4, !tbaa !12
  %718 = fcmp olt float %.7416932285, %717
  br i1 %718, label %721, label %719

719:                                              ; preds = %.lr.ph2288
  %720 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1970 = icmp eq i32 %720, 0
  br i1 %.not1970, label %721, label %._crit_edge3480

._crit_edge3480:                                  ; preds = %719
  %.pre3481 = load float, ptr %8, align 4, !tbaa !12
  br label %721

721:                                              ; preds = %.lr.ph2288, %._crit_edge3480, %719
  %.751694 = phi float [ %.7416932285, %719 ], [ %.pre3481, %._crit_edge3480 ], [ %717, %.lr.ph2288 ]
  %722 = load i32, ptr %7, align 4, !tbaa !5
  %.not1969.not = icmp slt i32 %.222286, %722
  br i1 %.not1969.not, label %.lr.ph2288, label %._crit_edge2289.loopexit, !llvm.loop !44

._crit_edge2289.loopexit:                         ; preds = %721
  %.pre3482 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2289

._crit_edge2289:                                  ; preds = %._crit_edge2289.loopexit, %707
  %723 = phi i32 [ %710, %707 ], [ %.pre3482, %._crit_edge2289.loopexit ]
  %.741693.lcssa = phi float [ %.731692, %707 ], [ %.751694, %._crit_edge2289.loopexit ]
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr %9, align 4, !tbaa !5
  %.not1958.not = icmp slt i32 %724, %.pre3472
  br i1 %.not1958.not, label %667, label %._crit_edge2296, !llvm.loop !45

._crit_edge2296.thread:                           ; preds = %652, %._crit_edge2274
  %.ph = phi i32 [ %.pre3472, %._crit_edge2274 ], [ %653, %652 ]
  %.691688.lcssa.ph = phi float [ %.681687, %._crit_edge2274 ], [ %.661685, %652 ]
  store i32 %.ph, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2303

._crit_edge2296:                                  ; preds = %._crit_edge2289
  %.pre3483 = load i32, ptr %10, align 4, !tbaa !5
  store i32 %.pre3483, ptr %9, align 4, !tbaa !5
  %.not19592298 = icmp slt i32 %.pre3483, 2
  br i1 %.not19592298, label %._crit_edge2303, label %.lr.ph2302.preheader

.lr.ph2302.preheader:                             ; preds = %._crit_edge2296
  %725 = add nsw i32 %.pre3483, -2
  br label %.lr.ph2302

.lr.ph2302:                                       ; preds = %.lr.ph2302.preheader, %736
  %.232300 = phi i32 [ %737, %736 ], [ 0, %.lr.ph2302.preheader ]
  %.7616952299 = phi float [ %.771696, %736 ], [ %.741693.lcssa, %.lr.ph2302.preheader ]
  %726 = load i32, ptr %9, align 4, !tbaa !5
  %727 = mul nsw i32 %726, %.01698
  %728 = add nsw i32 %727, %.232300
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds %struct.complex, ptr %4, i64 %729
  %731 = call <2 x float> @Cf(ptr noundef nonnull %730)
  %732 = call float @cabsf(<2 x float> noundef %731) #9
  store float %732, ptr %8, align 4, !tbaa !12
  %733 = fcmp olt float %.7616952299, %732
  br i1 %733, label %736, label %734

734:                                              ; preds = %.lr.ph2302
  %735 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1965 = icmp eq i32 %735, 0
  br i1 %.not1965, label %736, label %._crit_edge3484

._crit_edge3484:                                  ; preds = %734
  %.pre3485 = load float, ptr %8, align 4, !tbaa !12
  br label %736

736:                                              ; preds = %.lr.ph2302, %._crit_edge3484, %734
  %.771696 = phi float [ %.7616952299, %734 ], [ %.pre3485, %._crit_edge3484 ], [ %732, %.lr.ph2302 ]
  %737 = add nuw i32 %.232300, 1
  %exitcond3079.not = icmp eq i32 %.232300, %725
  br i1 %exitcond3079.not, label %._crit_edge2303.loopexit, label %.lr.ph2302, !llvm.loop !46

._crit_edge2303.loopexit:                         ; preds = %736
  %.pre3486 = load i32, ptr %10, align 4, !tbaa !5
  %.pre3487 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2303

._crit_edge2303:                                  ; preds = %._crit_edge2296.thread, %._crit_edge2303.loopexit, %._crit_edge2296
  %738 = phi i32 [ %.pre3483, %._crit_edge2296 ], [ %.pre3487, %._crit_edge2303.loopexit ], [ %.ph, %._crit_edge2296.thread ]
  %739 = phi i32 [ %.pre3483, %._crit_edge2296 ], [ %.pre3486, %._crit_edge2303.loopexit ], [ %.ph, %._crit_edge2296.thread ]
  %.761695.lcssa = phi float [ %.741693.lcssa, %._crit_edge2296 ], [ %.771696, %._crit_edge2303.loopexit ], [ %.691688.lcssa.ph, %._crit_edge2296.thread ]
  %740 = add nsw i32 %739, -1
  %741 = mul nsw i32 %738, %.01698
  %742 = add nsw i32 %740, %741
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds %struct.complex, ptr %4, i64 %743
  %745 = load float, ptr %744, align 4, !tbaa !9
  %746 = fcmp oge float %745, 0.000000e+00
  %747 = fneg float %745
  %748 = select i1 %746, float %745, float %747
  store float %748, ptr %8, align 4, !tbaa !12
  %749 = fcmp olt float %.761695.lcssa, %748
  br i1 %749, label %752, label %750

750:                                              ; preds = %._crit_edge2303
  %751 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1960 = icmp eq i32 %751, 0
  br i1 %.not1960, label %752, label %._crit_edge3488

._crit_edge3488:                                  ; preds = %750
  %.pre3489 = load float, ptr %8, align 4, !tbaa !12
  br label %752

752:                                              ; preds = %._crit_edge2303, %._crit_edge3488, %750
  %.781697 = phi float [ %.761695.lcssa, %750 ], [ %.pre3489, %._crit_edge3488 ], [ %748, %._crit_edge2303 ]
  %753 = load i32, ptr %3, align 4, !tbaa !5
  %storemerge1961.in2311 = load i32, ptr %10, align 4, !tbaa !5
  %storemerge19612312 = add nsw i32 %storemerge1961.in2311, 1
  store i32 %storemerge19612312, ptr %9, align 4, !tbaa !5
  %.not1962.not2313 = icmp slt i32 %storemerge1961.in2311, %753
  br i1 %.not1962.not2313, label %.lr.ph2316, label %.loopexit

.loopexit2079.loopexit:                           ; preds = %766
  %storemerge1961.in.pre = load i32, ptr %9, align 4, !tbaa !5
  br label %.loopexit2079

.loopexit2079:                                    ; preds = %.loopexit2079.loopexit, %.lr.ph2316
  %storemerge1961.in = phi i32 [ %storemerge1961.in3492, %.lr.ph2316 ], [ %storemerge1961.in.pre, %.loopexit2079.loopexit ]
  %.80.lcssa = phi float [ %.792314, %.lr.ph2316 ], [ %.81, %.loopexit2079.loopexit ]
  %storemerge1961 = add nsw i32 %storemerge1961.in, 1
  store i32 %storemerge1961, ptr %9, align 4, !tbaa !5
  %.not1962.not = icmp slt i32 %storemerge1961.in, %753
  br i1 %.not1962.not, label %.lr.ph2316thread-pre-split, label %.loopexit, !llvm.loop !47

.lr.ph2316thread-pre-split:                       ; preds = %.loopexit2079
  %.pr3619 = load i32, ptr %10, align 4, !tbaa !5
  br label %.lr.ph2316

.lr.ph2316:                                       ; preds = %752, %.lr.ph2316thread-pre-split
  %754 = phi i32 [ %.pr3619, %.lr.ph2316thread-pre-split ], [ %storemerge1961.in2311, %752 ]
  %storemerge1961.in3492 = phi i32 [ %storemerge1961, %.lr.ph2316thread-pre-split ], [ %storemerge19612312, %752 ]
  %.792314 = phi float [ %.80.lcssa, %.lr.ph2316thread-pre-split ], [ %.781697, %752 ]
  %755 = add nsw i32 %754, -1
  store i32 %755, ptr %7, align 4, !tbaa !5
  %.not19632305 = icmp slt i32 %754, 1
  br i1 %.not19632305, label %.loopexit2079, label %.lr.ph2309

.lr.ph2309:                                       ; preds = %.lr.ph2316, %766
  %.242307 = phi i32 [ %767, %766 ], [ 0, %.lr.ph2316 ]
  %.802306 = phi float [ %.81, %766 ], [ %.792314, %.lr.ph2316 ]
  %756 = load i32, ptr %9, align 4, !tbaa !5
  %757 = mul nsw i32 %756, %.01698
  %758 = add nsw i32 %757, %.242307
  %759 = sext i32 %758 to i64
  %760 = getelementptr inbounds %struct.complex, ptr %4, i64 %759
  %761 = call <2 x float> @Cf(ptr noundef nonnull %760)
  %762 = call float @cabsf(<2 x float> noundef %761) #9
  store float %762, ptr %8, align 4, !tbaa !12
  %763 = fcmp olt float %.802306, %762
  br i1 %763, label %766, label %764

764:                                              ; preds = %.lr.ph2309
  %765 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1964 = icmp eq i32 %765, 0
  br i1 %.not1964, label %766, label %._crit_edge3490

._crit_edge3490:                                  ; preds = %764
  %.pre3491 = load float, ptr %8, align 4, !tbaa !12
  br label %766

766:                                              ; preds = %.lr.ph2309, %._crit_edge3490, %764
  %.81 = phi float [ %.802306, %764 ], [ %.pre3491, %._crit_edge3490 ], [ %762, %.lr.ph2309 ]
  %767 = add nuw nsw i32 %.242307, 1
  %768 = load i32, ptr %7, align 4, !tbaa !5
  %.not1963.not = icmp slt i32 %.242307, %768
  br i1 %.not1963.not, label %.lr.ph2309, label %.loopexit2079.loopexit, !llvm.loop !48

.lr.ph2229:                                       ; preds = %.preheader2082, %._crit_edge2225
  %769 = phi i32 [ %786, %._crit_edge2225 ], [ 0, %.preheader2082 ]
  %.822228 = phi float [ %.83.lcssa, %._crit_edge2225 ], [ 0.000000e+00, %.preheader2082 ]
  %770 = load i32, ptr %10, align 4, !tbaa !5
  %771 = add nsw i32 %770, -1
  store i32 %771, ptr %7, align 4, !tbaa !5
  %.not19532220 = icmp slt i32 %770, 1
  br i1 %.not19532220, label %._crit_edge2225, label %.lr.ph2224

.lr.ph2224:                                       ; preds = %.lr.ph2229, %782
  %.252222 = phi i32 [ %783, %782 ], [ 0, %.lr.ph2229 ]
  %.832221 = phi float [ %.84, %782 ], [ %.822228, %.lr.ph2229 ]
  %772 = load i32, ptr %9, align 4, !tbaa !5
  %773 = mul nsw i32 %772, %.01698
  %774 = add nsw i32 %773, %.252222
  %775 = sext i32 %774 to i64
  %776 = getelementptr inbounds %struct.complex, ptr %4, i64 %775
  %777 = call <2 x float> @Cf(ptr noundef %776)
  %778 = call float @cabsf(<2 x float> noundef %777) #9
  store float %778, ptr %8, align 4, !tbaa !12
  %779 = fcmp olt float %.832221, %778
  br i1 %779, label %782, label %780

780:                                              ; preds = %.lr.ph2224
  %781 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1954 = icmp eq i32 %781, 0
  br i1 %.not1954, label %782, label %._crit_edge3440

._crit_edge3440:                                  ; preds = %780
  %.pre3441 = load float, ptr %8, align 4, !tbaa !12
  br label %782

782:                                              ; preds = %.lr.ph2224, %._crit_edge3440, %780
  %.84 = phi float [ %.832221, %780 ], [ %.pre3441, %._crit_edge3440 ], [ %778, %.lr.ph2224 ]
  %783 = add nuw nsw i32 %.252222, 1
  %784 = load i32, ptr %7, align 4, !tbaa !5
  %.not1953.not = icmp slt i32 %.252222, %784
  br i1 %.not1953.not, label %.lr.ph2224, label %._crit_edge2225.loopexit, !llvm.loop !49

._crit_edge2225.loopexit:                         ; preds = %782
  %.pre3442 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2225

._crit_edge2225:                                  ; preds = %._crit_edge2225.loopexit, %.lr.ph2229
  %785 = phi i32 [ %769, %.lr.ph2229 ], [ %.pre3442, %._crit_edge2225.loopexit ]
  %.83.lcssa = phi float [ %.822228, %.lr.ph2229 ], [ %.84, %._crit_edge2225.loopexit ]
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr %9, align 4, !tbaa !5
  %.not1938.not = icmp slt i32 %786, %34
  br i1 %.not1938.not, label %.lr.ph2229, label %._crit_edge2230.loopexit, !llvm.loop !50

._crit_edge2230.loopexit:                         ; preds = %._crit_edge2225
  %.pre3443 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2230

._crit_edge2230:                                  ; preds = %._crit_edge2230.loopexit, %.preheader2082
  %787 = phi i32 [ %34, %.preheader2082 ], [ %.pre3443, %._crit_edge2230.loopexit ]
  %.82.lcssa = phi float [ 0.000000e+00, %.preheader2082 ], [ %.83.lcssa, %._crit_edge2230.loopexit ]
  store i32 %787, ptr %9, align 4, !tbaa !5
  %788 = mul nsw i32 %787, %.01698
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds %struct.complex, ptr %4, i64 %789
  %791 = load float, ptr %790, align 4, !tbaa !9
  %792 = fcmp oge float %791, 0.000000e+00
  %793 = fneg float %791
  %794 = select i1 %792, float %791, float %793
  store float %794, ptr %8, align 4, !tbaa !12
  %795 = fcmp olt float %.82.lcssa, %794
  br i1 %795, label %798, label %796

796:                                              ; preds = %._crit_edge2230
  %797 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1939 = icmp eq i32 %797, 0
  br i1 %.not1939, label %798, label %._crit_edge3444

._crit_edge3444:                                  ; preds = %796
  %.pre3445 = load float, ptr %8, align 4, !tbaa !12
  br label %798

798:                                              ; preds = %._crit_edge2230, %._crit_edge3444, %796
  %.85 = phi float [ %.82.lcssa, %796 ], [ %.pre3445, %._crit_edge3444 ], [ %794, %._crit_edge2230 ]
  %799 = load i32, ptr %10, align 4, !tbaa !5
  %.not1940.not2232 = icmp sgt i32 %799, 1
  br i1 %.not1940.not2232, label %.lr.ph2236, label %._crit_edge2237

.lr.ph2236:                                       ; preds = %798, %810
  %.262234 = phi i32 [ %811, %810 ], [ 1, %798 ]
  %.862233 = phi float [ %.87, %810 ], [ %.85, %798 ]
  %800 = load i32, ptr %9, align 4, !tbaa !5
  %801 = mul nsw i32 %800, %.01698
  %802 = add nsw i32 %801, %.262234
  %803 = sext i32 %802 to i64
  %804 = getelementptr inbounds %struct.complex, ptr %4, i64 %803
  %805 = call <2 x float> @Cf(ptr noundef %804)
  %806 = call float @cabsf(<2 x float> noundef %805) #9
  store float %806, ptr %8, align 4, !tbaa !12
  %807 = fcmp olt float %.862233, %806
  br i1 %807, label %810, label %808

808:                                              ; preds = %.lr.ph2236
  %809 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1952 = icmp eq i32 %809, 0
  br i1 %.not1952, label %810, label %._crit_edge3446

._crit_edge3446:                                  ; preds = %808
  %.pre3447 = load float, ptr %8, align 4, !tbaa !12
  br label %810

810:                                              ; preds = %.lr.ph2236, %._crit_edge3446, %808
  %.87 = phi float [ %.862233, %808 ], [ %.pre3447, %._crit_edge3446 ], [ %806, %.lr.ph2236 ]
  %811 = add nuw nsw i32 %.262234, 1
  %exitcond3076.not = icmp eq i32 %811, %799
  br i1 %exitcond3076.not, label %._crit_edge2237.loopexit, label %.lr.ph2236, !llvm.loop !51

._crit_edge2237.loopexit:                         ; preds = %810
  %storemerge1941.in2253.pre = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2237

._crit_edge2237:                                  ; preds = %._crit_edge2237.loopexit, %798
  %storemerge1941.in2253 = phi i32 [ %799, %798 ], [ %storemerge1941.in2253.pre, %._crit_edge2237.loopexit ]
  %.86.lcssa = phi float [ %.85, %798 ], [ %.87, %._crit_edge2237.loopexit ]
  %812 = load i32, ptr %3, align 4, !tbaa !5
  %813 = add nsw i32 %812, -1
  %storemerge19412254 = add nsw i32 %storemerge1941.in2253, 1
  store i32 %storemerge19412254, ptr %9, align 4, !tbaa !5
  %.not1942.not2255 = icmp slt i32 %storemerge1941.in2253, %813
  br i1 %.not1942.not2255, label %.lr.ph2259, label %._crit_edge2260

.loopexit2081.loopexit:                           ; preds = %875
  %storemerge1941.in.pre = load i32, ptr %9, align 4, !tbaa !5
  br label %.loopexit2081

.loopexit2081:                                    ; preds = %.loopexit2081.loopexit, %860
  %storemerge1941.in = phi i32 [ %863, %860 ], [ %storemerge1941.in.pre, %.loopexit2081.loopexit ]
  %.93.lcssa = phi float [ %.92, %860 ], [ %.94, %.loopexit2081.loopexit ]
  %storemerge1941 = add nsw i32 %storemerge1941.in, 1
  store i32 %storemerge1941, ptr %9, align 4, !tbaa !5
  %.not1942.not = icmp slt i32 %storemerge1941.in, %813
  br i1 %.not1942.not, label %.lr.ph2259, label %._crit_edge2260.loopexit, !llvm.loop !52

.lr.ph2259:                                       ; preds = %._crit_edge2237, %.loopexit2081
  %storemerge19412257 = phi i32 [ %storemerge1941, %.loopexit2081 ], [ %storemerge19412254, %._crit_edge2237 ]
  %.882256 = phi float [ %.93.lcssa, %.loopexit2081 ], [ %.86.lcssa, %._crit_edge2237 ]
  %814 = load i32, ptr %10, align 4, !tbaa !5
  %815 = add i32 %storemerge19412257, -2
  %816 = sub i32 %815, %814
  store i32 %816, ptr %7, align 4, !tbaa !5
  %.not19462239 = icmp slt i32 %816, 0
  br i1 %.not19462239, label %._crit_edge2244, label %.lr.ph2243

.lr.ph2243:                                       ; preds = %.lr.ph2259, %827
  %.272241 = phi i32 [ %828, %827 ], [ 0, %.lr.ph2259 ]
  %.892240 = phi float [ %.90, %827 ], [ %.882256, %.lr.ph2259 ]
  %817 = load i32, ptr %9, align 4, !tbaa !5
  %818 = mul nsw i32 %817, %.01698
  %819 = add nsw i32 %818, %.272241
  %820 = sext i32 %819 to i64
  %821 = getelementptr inbounds %struct.complex, ptr %4, i64 %820
  %822 = call <2 x float> @Cf(ptr noundef %821)
  %823 = call float @cabsf(<2 x float> noundef %822) #9
  store float %823, ptr %8, align 4, !tbaa !12
  %824 = fcmp olt float %.892240, %823
  br i1 %824, label %827, label %825

825:                                              ; preds = %.lr.ph2243
  %826 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1951 = icmp eq i32 %826, 0
  br i1 %.not1951, label %827, label %._crit_edge3449

._crit_edge3449:                                  ; preds = %825
  %.pre3450 = load float, ptr %8, align 4, !tbaa !12
  br label %827

827:                                              ; preds = %.lr.ph2243, %._crit_edge3449, %825
  %.90 = phi float [ %.892240, %825 ], [ %.pre3450, %._crit_edge3449 ], [ %823, %.lr.ph2243 ]
  %828 = add nuw nsw i32 %.272241, 1
  %829 = load i32, ptr %7, align 4, !tbaa !5
  %.not1946.not = icmp slt i32 %.272241, %829
  br i1 %.not1946.not, label %.lr.ph2243, label %._crit_edge2244.loopexit, !llvm.loop !53

._crit_edge2244.loopexit:                         ; preds = %827
  %.pre3451 = load i32, ptr %9, align 4, !tbaa !5
  %.pre3452 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2244

._crit_edge2244:                                  ; preds = %._crit_edge2244.loopexit, %.lr.ph2259
  %830 = phi i32 [ %814, %.lr.ph2259 ], [ %.pre3452, %._crit_edge2244.loopexit ]
  %831 = phi i32 [ %storemerge19412257, %.lr.ph2259 ], [ %.pre3451, %._crit_edge2244.loopexit ]
  %.89.lcssa = phi float [ %.882256, %.lr.ph2259 ], [ %.90, %._crit_edge2244.loopexit ]
  %832 = xor i32 %830, -1
  %833 = add i32 %831, %832
  %834 = mul nsw i32 %831, %.01698
  %835 = add nsw i32 %833, %834
  store i32 %835, ptr %7, align 4, !tbaa !5
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds %struct.complex, ptr %4, i64 %836
  %838 = load float, ptr %837, align 4, !tbaa !9
  %839 = fcmp oge float %838, 0.000000e+00
  %840 = fneg float %838
  %841 = select i1 %839, float %838, float %840
  store float %841, ptr %8, align 4, !tbaa !12
  %842 = fcmp olt float %.89.lcssa, %841
  br i1 %842, label %845, label %843

843:                                              ; preds = %._crit_edge2244
  %844 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1947 = icmp eq i32 %844, 0
  br i1 %.not1947, label %845, label %._crit_edge3453

._crit_edge3453:                                  ; preds = %843
  %.pre3454 = load float, ptr %8, align 4, !tbaa !12
  br label %845

845:                                              ; preds = %._crit_edge2244, %._crit_edge3453, %843
  %.91 = phi float [ %.89.lcssa, %843 ], [ %.pre3454, %._crit_edge3453 ], [ %841, %._crit_edge2244 ]
  %846 = load i32, ptr %9, align 4, !tbaa !5
  %847 = load i32, ptr %10, align 4, !tbaa !5
  %848 = sub nsw i32 %846, %847
  %849 = mul nsw i32 %846, %.01698
  %850 = add nsw i32 %848, %849
  store i32 %850, ptr %7, align 4, !tbaa !5
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds %struct.complex, ptr %4, i64 %851
  %853 = load float, ptr %852, align 4, !tbaa !9
  %854 = fcmp oge float %853, 0.000000e+00
  %855 = fneg float %853
  %856 = select i1 %854, float %853, float %855
  store float %856, ptr %8, align 4, !tbaa !12
  %857 = fcmp olt float %.91, %856
  br i1 %857, label %860, label %858

858:                                              ; preds = %845
  %859 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1948 = icmp eq i32 %859, 0
  br i1 %.not1948, label %860, label %._crit_edge3455

._crit_edge3455:                                  ; preds = %858
  %.pre3456 = load float, ptr %8, align 4, !tbaa !12
  br label %860

860:                                              ; preds = %845, %._crit_edge3455, %858
  %.92 = phi float [ %.91, %858 ], [ %.pre3456, %._crit_edge3455 ], [ %856, %845 ]
  %861 = load i32, ptr %10, align 4, !tbaa !5
  %862 = add nsw i32 %861, -1
  store i32 %862, ptr %7, align 4, !tbaa !5
  %863 = load i32, ptr %9, align 4, !tbaa !5
  %864 = sub nsw i32 %863, %861
  %.not1949.not2247 = icmp slt i32 %864, %862
  br i1 %.not1949.not2247, label %.lr.ph2251, label %.loopexit2081

.lr.ph2251:                                       ; preds = %860, %875
  %.282249.in = phi i32 [ %.282249, %875 ], [ %864, %860 ]
  %.932248 = phi float [ %.94, %875 ], [ %.92, %860 ]
  %.282249 = add nsw i32 %.282249.in, 1
  %865 = load i32, ptr %9, align 4, !tbaa !5
  %866 = mul nsw i32 %865, %.01698
  %867 = add nsw i32 %866, %.282249
  %868 = sext i32 %867 to i64
  %869 = getelementptr inbounds %struct.complex, ptr %4, i64 %868
  %870 = call <2 x float> @Cf(ptr noundef %869)
  %871 = call float @cabsf(<2 x float> noundef %870) #9
  store float %871, ptr %8, align 4, !tbaa !12
  %872 = fcmp olt float %.932248, %871
  br i1 %872, label %875, label %873

873:                                              ; preds = %.lr.ph2251
  %874 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1950 = icmp eq i32 %874, 0
  br i1 %.not1950, label %875, label %._crit_edge3457

._crit_edge3457:                                  ; preds = %873
  %.pre3458 = load float, ptr %8, align 4, !tbaa !12
  br label %875

875:                                              ; preds = %.lr.ph2251, %._crit_edge3457, %873
  %.94 = phi float [ %.932248, %873 ], [ %.pre3458, %._crit_edge3457 ], [ %871, %.lr.ph2251 ]
  %876 = load i32, ptr %7, align 4, !tbaa !5
  %.not1949.not = icmp slt i32 %.282249, %876
  br i1 %.not1949.not, label %.lr.ph2251, label %.loopexit2081.loopexit, !llvm.loop !54

._crit_edge2260.loopexit:                         ; preds = %.loopexit2081
  %.pre3460 = load i32, ptr %3, align 4, !tbaa !5
  %.pre3461 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2260

._crit_edge2260:                                  ; preds = %._crit_edge2260.loopexit, %._crit_edge2237
  %877 = phi i32 [ %storemerge1941.in2253, %._crit_edge2237 ], [ %.pre3461, %._crit_edge2260.loopexit ]
  %878 = phi i32 [ %812, %._crit_edge2237 ], [ %.pre3460, %._crit_edge2260.loopexit ]
  %.88.lcssa = phi float [ %.86.lcssa, %._crit_edge2237 ], [ %.93.lcssa, %._crit_edge2260.loopexit ]
  store i32 %878, ptr %9, align 4, !tbaa !5
  %.not19432262 = icmp slt i32 %877, 2
  br i1 %.not19432262, label %._crit_edge2267, label %.lr.ph2266.preheader

.lr.ph2266.preheader:                             ; preds = %._crit_edge2260
  %879 = add nsw i32 %877, -2
  br label %.lr.ph2266

.lr.ph2266:                                       ; preds = %.lr.ph2266.preheader, %890
  %.292264 = phi i32 [ %891, %890 ], [ 0, %.lr.ph2266.preheader ]
  %.952263 = phi float [ %.96, %890 ], [ %.88.lcssa, %.lr.ph2266.preheader ]
  %880 = load i32, ptr %9, align 4, !tbaa !5
  %881 = mul nsw i32 %880, %.01698
  %882 = add nsw i32 %881, %.292264
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds %struct.complex, ptr %4, i64 %883
  %885 = call <2 x float> @Cf(ptr noundef %884)
  %886 = call float @cabsf(<2 x float> noundef %885) #9
  store float %886, ptr %8, align 4, !tbaa !12
  %887 = fcmp olt float %.952263, %886
  br i1 %887, label %890, label %888

888:                                              ; preds = %.lr.ph2266
  %889 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1945 = icmp eq i32 %889, 0
  br i1 %.not1945, label %890, label %._crit_edge3462

._crit_edge3462:                                  ; preds = %888
  %.pre3463 = load float, ptr %8, align 4, !tbaa !12
  br label %890

890:                                              ; preds = %.lr.ph2266, %._crit_edge3462, %888
  %.96 = phi float [ %.952263, %888 ], [ %.pre3463, %._crit_edge3462 ], [ %886, %.lr.ph2266 ]
  %891 = add nuw i32 %.292264, 1
  %exitcond3077.not = icmp eq i32 %.292264, %879
  br i1 %exitcond3077.not, label %._crit_edge2267.loopexit, label %.lr.ph2266, !llvm.loop !55

._crit_edge2267.loopexit:                         ; preds = %890
  %.pre3464 = load i32, ptr %10, align 4, !tbaa !5
  %.pre3465 = load i32, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2267

._crit_edge2267:                                  ; preds = %._crit_edge2267.loopexit, %._crit_edge2260
  %892 = phi i32 [ %878, %._crit_edge2260 ], [ %.pre3465, %._crit_edge2267.loopexit ]
  %893 = phi i32 [ %877, %._crit_edge2260 ], [ %.pre3464, %._crit_edge2267.loopexit ]
  %.95.lcssa = phi float [ %.88.lcssa, %._crit_edge2260 ], [ %.96, %._crit_edge2267.loopexit ]
  %894 = add nsw i32 %893, -1
  %895 = mul nsw i32 %892, %.01698
  %896 = add nsw i32 %894, %895
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds %struct.complex, ptr %4, i64 %897
  %899 = load float, ptr %898, align 4, !tbaa !9
  %900 = fcmp oge float %899, 0.000000e+00
  %901 = fneg float %899
  %902 = select i1 %900, float %899, float %901
  store float %902, ptr %8, align 4, !tbaa !12
  %903 = fcmp olt float %.95.lcssa, %902
  br i1 %903, label %.loopexit, label %904

904:                                              ; preds = %._crit_edge2267
  %905 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1944 = icmp eq i32 %905, 0
  br i1 %.not1944, label %.loopexit, label %._crit_edge3466

._crit_edge3466:                                  ; preds = %904
  %.pre3467 = load float, ptr %8, align 4, !tbaa !12
  br label %.loopexit

906:                                              ; preds = %29
  %907 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #9
  %.not1808 = icmp eq i32 %907, 0
  br i1 %.not1808, label %908, label %913

908:                                              ; preds = %906
  %909 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #9
  %.not1809 = icmp eq i32 %909, 0
  br i1 %.not1809, label %910, label %913

910:                                              ; preds = %908
  %911 = load i8, ptr %0, align 1, !tbaa !56
  %912 = icmp eq i8 %911, 49
  br i1 %912, label %913, label %1666

913:                                              ; preds = %910, %908, %906
  %914 = load i32, ptr %3, align 4, !tbaa !5
  %915 = sdiv i32 %914, 2
  store i32 %915, ptr %10, align 4, !tbaa !5
  %.not1909 = icmp eq i32 %20, 0
  br i1 %.not, label %916, label %1183

916:                                              ; preds = %913
  br i1 %.not1909, label %1056, label %917

917:                                              ; preds = %916
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %984, label %.preheader2059

.preheader2059:                                   ; preds = %917
  %.not1929.not2837 = icmp sgt i32 %914, 1
  br i1 %.not1929.not2837, label %.preheader2058.thread, label %.preheader2058

.preheader2058.thread:                            ; preds = %.preheader2059
  %918 = add nsw i32 %915, -1
  %919 = zext i32 %918 to i64
  %920 = shl nuw nsw i64 %919, 2
  %921 = add nuw nsw i64 %920, 4
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %5, i8 0, i64 %921, i1 false), !tbaa !12
  br label %.lr.ph2865

.preheader2058:                                   ; preds = %.preheader2059
  %.not19312863 = icmp slt i32 %914, -1
  br i1 %.not19312863, label %975, label %.lr.ph2865

.lr.ph2865:                                       ; preds = %.preheader2058.thread, %.preheader2058
  %922 = shl nsw i32 %915, 1
  %923 = add nsw i32 %915, -1
  %924 = sext i32 %.01698 to i64
  %925 = sext i32 %915 to i64
  %926 = sext i32 %923 to i64
  %927 = add nsw i32 %915, 1
  %wide.trip.count3287 = zext i32 %927 to i64
  %invariant.gep3735 = getelementptr float, ptr %5, i64 %925
  %wide.trip.count3284 = zext i32 %923 to i64
  br label %928

928:                                              ; preds = %.lr.ph2865, %._crit_edge2855
  %indvars.iv3277 = phi i64 [ 0, %.lr.ph2865 ], [ %indvars.iv.next3278, %._crit_edge2855 ]
  %indvars.iv3271 = phi i32 [ %915, %.lr.ph2865 ], [ %indvars.iv.next3272, %._crit_edge2855 ]
  %indvars3286 = trunc i64 %indvars.iv3277 to i32
  %929 = add nsw i32 %indvars3286, -1
  %930 = add i32 %929, %915
  %.not19322841 = icmp slt i32 %930, 0
  %.pre3594 = mul nsw i64 %indvars.iv3277, %924
  br i1 %.not19322841, label %._crit_edge2845, label %.lr.ph2844

.lr.ph2844:                                       ; preds = %928
  %wide.trip.count3273 = zext i32 %indvars.iv3271 to i64
  %931 = getelementptr %struct.complex, ptr %4, i64 %.pre3594
  br label %932

932:                                              ; preds = %.lr.ph2844, %932
  %indvars.iv3268 = phi i64 [ 0, %.lr.ph2844 ], [ %indvars.iv.next3269, %932 ]
  %933 = phi float [ 0.000000e+00, %.lr.ph2844 ], [ %937, %932 ]
  %934 = getelementptr %struct.complex, ptr %931, i64 %indvars.iv3268
  %935 = tail call <2 x float> @Cf(ptr noundef %934)
  %936 = tail call float @cabsf(<2 x float> noundef %935) #9
  %937 = fadd float %936, %933
  %938 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3268
  %939 = load float, ptr %938, align 4, !tbaa !12
  %940 = fadd float %936, %939
  store float %940, ptr %938, align 4, !tbaa !12
  %indvars.iv.next3269 = add nuw nsw i64 %indvars.iv3268, 1
  %exitcond3274.not = icmp eq i64 %indvars.iv.next3269, %wide.trip.count3273
  br i1 %exitcond3274.not, label %._crit_edge2845, label %932, !llvm.loop !57

._crit_edge2845:                                  ; preds = %932, %928
  %.lcssa28572861 = phi float [ 0.000000e+00, %928 ], [ %937, %932 ]
  %.31.lcssa = phi i32 [ 0, %928 ], [ %indvars.iv3271, %932 ]
  %941 = sext i32 %.31.lcssa to i64
  %942 = add nsw i64 %.pre3594, %941
  %943 = getelementptr inbounds %struct.complex, ptr %4, i64 %942
  %944 = load float, ptr %943, align 4, !tbaa !9
  %945 = fcmp oge float %944, 0.000000e+00
  %946 = fneg float %944
  %947 = select i1 %945, float %944, float %946
  %948 = fadd float %.lcssa28572861, %947
  %gep3736 = getelementptr float, ptr %invariant.gep3735, i64 %indvars.iv3277
  store float %948, ptr %gep3736, align 4, !tbaa !12
  %949 = icmp eq i32 %.31.lcssa, %922
  br i1 %949, label %._crit_edge2868, label %950

950:                                              ; preds = %._crit_edge2845
  %951 = add nuw nsw i32 %.31.lcssa, 1
  %952 = sext i32 %951 to i64
  %953 = getelementptr %struct.complex, ptr %4, i64 %.pre3594
  %954 = getelementptr %struct.complex, ptr %953, i64 %952
  %955 = load float, ptr %954, align 4, !tbaa !9
  %956 = fcmp oge float %955, 0.000000e+00
  %957 = fneg float %955
  %958 = select i1 %956, float %955, float %957
  %959 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3277
  %960 = load float, ptr %959, align 4, !tbaa !12
  %961 = fadd float %960, %958
  store float %961, ptr %959, align 4, !tbaa !12
  %.not1933.not2850 = icmp slt i64 %indvars.iv3277, %926
  br i1 %.not1933.not2850, label %.lr.ph2854, label %._crit_edge2855

.lr.ph2854:                                       ; preds = %950
  %962 = getelementptr %struct.complex, ptr %4, i64 %.pre3594
  br label %963

963:                                              ; preds = %.lr.ph2854, %963
  %indvars.iv3279 = phi i64 [ %indvars.iv3277, %.lr.ph2854 ], [ %indvars.iv.next3280, %963 ]
  %indvars.iv3275 = phi i64 [ %952, %.lr.ph2854 ], [ %indvars.iv.next3276, %963 ]
  %964 = phi float [ 0.000000e+00, %.lr.ph2854 ], [ %968, %963 ]
  %indvars.iv.next3280 = add nuw nsw i64 %indvars.iv3279, 1
  %indvars.iv.next3276 = add nuw nsw i64 %indvars.iv3275, 1
  %965 = getelementptr %struct.complex, ptr %962, i64 %indvars.iv.next3276
  %966 = tail call <2 x float> @Cf(ptr noundef %965)
  %967 = tail call float @cabsf(<2 x float> noundef %966) #9
  %968 = fadd float %967, %964
  %969 = getelementptr inbounds float, ptr %5, i64 %indvars.iv.next3280
  %970 = load float, ptr %969, align 4, !tbaa !12
  %971 = fadd float %967, %970
  store float %971, ptr %969, align 4, !tbaa !12
  %exitcond3285.not = icmp eq i64 %indvars.iv.next3280, %wide.trip.count3284
  br i1 %exitcond3285.not, label %._crit_edge2855.loopexit, label %963, !llvm.loop !58

._crit_edge2855.loopexit:                         ; preds = %963
  %.pre3565 = load float, ptr %959, align 4, !tbaa !12
  br label %._crit_edge2855

._crit_edge2855:                                  ; preds = %._crit_edge2855.loopexit, %950
  %972 = phi float [ %961, %950 ], [ %.pre3565, %._crit_edge2855.loopexit ]
  %.lcssa28572860 = phi float [ 0.000000e+00, %950 ], [ %968, %._crit_edge2855.loopexit ]
  %973 = fadd float %.lcssa28572860, %972
  store float %973, ptr %959, align 4, !tbaa !12
  %indvars.iv.next3278 = add nuw nsw i64 %indvars.iv3277, 1
  %indvars.iv.next3272 = add i32 %indvars.iv3271, 1
  %exitcond3288.not = icmp eq i64 %indvars.iv.next3278, %wide.trip.count3287
  br i1 %exitcond3288.not, label %._crit_edge2866, label %928, !llvm.loop !59

._crit_edge2866:                                  ; preds = %._crit_edge2855
  store float %.lcssa28572860, ptr %11, align 4, !tbaa !12
  store i32 %923, ptr %7, align 4, !tbaa !5
  br label %975

._crit_edge2868:                                  ; preds = %._crit_edge2845
  %974 = trunc i64 %942 to i32
  store float %.lcssa28572861, ptr %11, align 4, !tbaa !12
  store i32 %974, ptr %7, align 4, !tbaa !5
  br label %975

975:                                              ; preds = %._crit_edge2868, %._crit_edge2866, %.preheader2058
  %storemerge1930.lcssa = phi i32 [ %927, %._crit_edge2866 ], [ %indvars3286, %._crit_edge2868 ], [ 0, %.preheader2058 ]
  store i32 %storemerge1930.lcssa, ptr %9, align 4, !tbaa !5
  %976 = load float, ptr %5, align 4, !tbaa !12
  %977 = load i32, ptr %3, align 4, !tbaa !5
  %.not1934.not2871 = icmp sgt i32 %977, 1
  br i1 %.not1934.not2871, label %.lr.ph2875.preheader, label %.loopexit

.lr.ph2875.preheader:                             ; preds = %975
  %wide.trip.count3292 = zext nneg i32 %977 to i64
  br label %.lr.ph2875

.lr.ph2875:                                       ; preds = %.lr.ph2875.preheader, %983
  %indvars.iv3289 = phi i64 [ 1, %.lr.ph2875.preheader ], [ %indvars.iv.next3290, %983 ]
  %.972872 = phi float [ %976, %.lr.ph2875.preheader ], [ %.98, %983 ]
  %978 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3289
  %979 = load float, ptr %978, align 4, !tbaa !12
  store float %979, ptr %8, align 4, !tbaa !12
  %980 = fcmp olt float %.972872, %979
  br i1 %980, label %983, label %981

981:                                              ; preds = %.lr.ph2875
  %982 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1935 = icmp eq i32 %982, 0
  br i1 %.not1935, label %983, label %._crit_edge3566

._crit_edge3566:                                  ; preds = %981
  %.pre3567 = load float, ptr %8, align 4, !tbaa !12
  br label %983

983:                                              ; preds = %.lr.ph2875, %._crit_edge3566, %981
  %.98 = phi float [ %.972872, %981 ], [ %.pre3567, %._crit_edge3566 ], [ %979, %.lr.ph2875 ]
  %indvars.iv.next3290 = add nuw nsw i64 %indvars.iv3289, 1
  %exitcond3293.not = icmp eq i64 %indvars.iv.next3290, %wide.trip.count3292
  br i1 %exitcond3293.not, label %.loopexit, label %.lr.ph2875, !llvm.loop !60

984:                                              ; preds = %917
  %985 = add nsw i32 %915, 1
  store i32 %985, ptr %10, align 4, !tbaa !5
  %.not1923.not2877 = icmp slt i32 %985, %914
  br i1 %.not1923.not2877, label %.lr.ph2880.preheader, label %.preheader2056

.lr.ph2880.preheader:                             ; preds = %984
  %986 = sext i32 %915 to i64
  %987 = shl nsw i64 %986, 2
  %988 = getelementptr i8, ptr %5, i64 %987
  %scevgep3294 = getelementptr i8, ptr %988, i64 4
  %989 = add nsw i32 %914, -2
  %990 = sub i32 %989, %915
  %991 = zext i32 %990 to i64
  %992 = shl nuw nsw i64 %991, 2
  %993 = add nuw nsw i64 %992, 4
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep3294, i8 0, i64 %993, i1 false), !tbaa !12
  br label %.preheader2056

.preheader2056:                                   ; preds = %.lr.ph2880.preheader, %984
  %994 = icmp sgt i32 %914, -2
  br i1 %994, label %.lr.ph2907, label %.thread

.thread:                                          ; preds = %.preheader2056
  %995 = load float, ptr %5, align 4, !tbaa !12
  br label %.loopexit

.lr.ph2907:                                       ; preds = %.preheader2056
  %996 = sext i32 %985 to i64
  %invariant.gep3739 = getelementptr float, ptr %5, i64 %996
  br label %997

997:                                              ; preds = %.lr.ph2907, %._crit_edge2896
  %storemerge1924.in2910 = phi i32 [ %915, %.lr.ph2907 ], [ %storemerge1924, %._crit_edge2896 ]
  %storemerge1924.in2905 = phi i32 [ %985, %.lr.ph2907 ], [ %storemerge1924.in2910, %._crit_edge2896 ]
  %.not19272882 = icmp slt i32 %storemerge1924.in2905, 3
  br i1 %.not19272882, label %._crit_edge2886, label %.lr.ph2885

.lr.ph2885:                                       ; preds = %997
  %998 = mul nsw i32 %storemerge1924.in2910, %.01698
  %999 = sext i32 %998 to i64
  %1000 = add nsw i32 %storemerge1924.in2905, -2
  %wide.trip.count3301 = zext nneg i32 %1000 to i64
  %invariant.gep3737 = getelementptr %struct.complex, ptr %4, i64 %999
  br label %1001

1001:                                             ; preds = %.lr.ph2885, %1001
  %indvars.iv3298 = phi i64 [ 0, %.lr.ph2885 ], [ %indvars.iv.next3299, %1001 ]
  %1002 = phi float [ 0.000000e+00, %.lr.ph2885 ], [ %1005, %1001 ]
  %gep3738 = getelementptr %struct.complex, ptr %invariant.gep3737, i64 %indvars.iv3298
  %1003 = tail call <2 x float> @Cf(ptr noundef %gep3738)
  %1004 = tail call float @cabsf(<2 x float> noundef %1003) #9
  %1005 = fadd float %1004, %1002
  %gep3740 = getelementptr float, ptr %invariant.gep3739, i64 %indvars.iv3298
  %1006 = load float, ptr %gep3740, align 4, !tbaa !12
  %1007 = fadd float %1004, %1006
  store float %1007, ptr %gep3740, align 4, !tbaa !12
  %indvars.iv.next3299 = add nuw nsw i64 %indvars.iv3298, 1
  %exitcond3302.not = icmp eq i64 %indvars.iv.next3299, %wide.trip.count3301
  br i1 %exitcond3302.not, label %._crit_edge2886, label %1001, !llvm.loop !61

._crit_edge2886:                                  ; preds = %1001, %997
  %.lcssa28982902 = phi float [ 0.000000e+00, %997 ], [ %1005, %1001 ]
  %.35.lcssa = phi i32 [ 0, %997 ], [ %1000, %1001 ]
  %1008 = icmp sgt i32 %storemerge1924.in2910, 0
  %1009 = mul nsw i32 %storemerge1924.in2910, %.01698
  br i1 %1008, label %1010, label %._crit_edge2886._crit_edge

1010:                                             ; preds = %._crit_edge2886
  %1011 = add nsw i32 %1009, %.35.lcssa
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds %struct.complex, ptr %4, i64 %1012
  %1014 = load float, ptr %1013, align 4, !tbaa !9
  %1015 = fcmp oge float %1014, 0.000000e+00
  %1016 = fneg float %1014
  %1017 = select i1 %1015, float %1014, float %1016
  %1018 = fadd float %.lcssa28982902, %1017
  %1019 = add nsw i32 %985, %.35.lcssa
  %1020 = sext i32 %1019 to i64
  %1021 = getelementptr inbounds float, ptr %5, i64 %1020
  %1022 = load float, ptr %1021, align 4, !tbaa !12
  %1023 = fadd float %1018, %1022
  store float %1023, ptr %1021, align 4, !tbaa !12
  %1024 = add nuw nsw i32 %.35.lcssa, 1
  br label %._crit_edge2886._crit_edge

._crit_edge2886._crit_edge:                       ; preds = %._crit_edge2886, %1010
  %.36 = phi i32 [ %1024, %1010 ], [ %.35.lcssa, %._crit_edge2886 ]
  %1025 = add nsw i32 %.36, %1009
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds %struct.complex, ptr %4, i64 %1026
  %1028 = load float, ptr %1027, align 4, !tbaa !9
  %1029 = fcmp oge float %1028, 0.000000e+00
  %1030 = fneg float %1028
  %1031 = select i1 %1029, float %1028, float %1030
  %1032 = sext i32 %storemerge1924.in2910 to i64
  %1033 = getelementptr inbounds float, ptr %5, i64 %1032
  store float %1031, ptr %1033, align 4, !tbaa !12
  %1034 = load i32, ptr %3, align 4, !tbaa !5
  %1035 = add nsw i32 %1034, -1
  %.not1928.not2891 = icmp slt i32 %storemerge1924.in2910, %1035
  br i1 %.not1928.not2891, label %.lr.ph2895, label %._crit_edge2896

.lr.ph2895:                                       ; preds = %._crit_edge2886._crit_edge
  %1036 = sext i32 %.36 to i64
  %1037 = sext i32 %1009 to i64
  %wide.trip.count3310 = sext i32 %1035 to i64
  %invariant.gep3741 = getelementptr %struct.complex, ptr %4, i64 %1037
  br label %1038

1038:                                             ; preds = %.lr.ph2895, %1038
  %indvars.iv3305 = phi i64 [ %1032, %.lr.ph2895 ], [ %indvars.iv.next3306, %1038 ]
  %indvars.iv3303 = phi i64 [ %1036, %.lr.ph2895 ], [ %indvars.iv.next3304, %1038 ]
  %1039 = phi float [ 0.000000e+00, %.lr.ph2895 ], [ %1042, %1038 ]
  %indvars.iv.next3306 = add nsw i64 %indvars.iv3305, 1
  %indvars.iv.next3304 = add nsw i64 %indvars.iv3303, 1
  %gep3742 = getelementptr %struct.complex, ptr %invariant.gep3741, i64 %indvars.iv.next3304
  %1040 = tail call <2 x float> @Cf(ptr noundef %gep3742)
  %1041 = tail call float @cabsf(<2 x float> noundef %1040) #9
  %1042 = fadd float %1041, %1039
  %1043 = getelementptr inbounds float, ptr %5, i64 %indvars.iv.next3306
  %1044 = load float, ptr %1043, align 4, !tbaa !12
  %1045 = fadd float %1041, %1044
  store float %1045, ptr %1043, align 4, !tbaa !12
  %exitcond3311.not = icmp eq i64 %indvars.iv.next3306, %wide.trip.count3310
  br i1 %exitcond3311.not, label %._crit_edge2896.loopexit, label %1038, !llvm.loop !62

._crit_edge2896.loopexit:                         ; preds = %1038
  %.pre3568 = load float, ptr %1033, align 4, !tbaa !12
  br label %._crit_edge2896

._crit_edge2896:                                  ; preds = %._crit_edge2896.loopexit, %._crit_edge2886._crit_edge
  %1046 = phi float [ %1031, %._crit_edge2886._crit_edge ], [ %.pre3568, %._crit_edge2896.loopexit ]
  %.lcssa28982901 = phi float [ 0.000000e+00, %._crit_edge2886._crit_edge ], [ %1042, %._crit_edge2896.loopexit ]
  %1047 = fadd float %.lcssa28982901, %1046
  store float %1047, ptr %1033, align 4, !tbaa !12
  %storemerge1924 = add nsw i32 %storemerge1924.in2910, -1
  br i1 %1008, label %997, label %1048, !llvm.loop !63

1048:                                             ; preds = %._crit_edge2896
  store float %.lcssa28982901, ptr %11, align 4, !tbaa !12
  store i32 %storemerge1924, ptr %9, align 4, !tbaa !5
  %.pre3569 = load i32, ptr %3, align 4, !tbaa !5
  %1049 = load float, ptr %5, align 4, !tbaa !12
  %.not1925.not2911 = icmp sgt i32 %.pre3569, 1
  br i1 %.not1925.not2911, label %.lr.ph2915.preheader, label %.loopexit

.lr.ph2915.preheader:                             ; preds = %1048
  %wide.trip.count3315 = zext nneg i32 %.pre3569 to i64
  br label %.lr.ph2915

.lr.ph2915:                                       ; preds = %.lr.ph2915.preheader, %1055
  %indvars.iv3312 = phi i64 [ 1, %.lr.ph2915.preheader ], [ %indvars.iv.next3313, %1055 ]
  %.992912 = phi float [ %1049, %.lr.ph2915.preheader ], [ %.100, %1055 ]
  %1050 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3312
  %1051 = load float, ptr %1050, align 4, !tbaa !12
  store float %1051, ptr %8, align 4, !tbaa !12
  %1052 = fcmp olt float %.992912, %1051
  br i1 %1052, label %1055, label %1053

1053:                                             ; preds = %.lr.ph2915
  %1054 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1926 = icmp eq i32 %1054, 0
  br i1 %.not1926, label %1055, label %._crit_edge3570

._crit_edge3570:                                  ; preds = %1053
  %.pre3571 = load float, ptr %8, align 4, !tbaa !12
  br label %1055

1055:                                             ; preds = %.lr.ph2915, %._crit_edge3570, %1053
  %.100 = phi float [ %.992912, %1053 ], [ %.pre3571, %._crit_edge3570 ], [ %1051, %.lr.ph2915 ]
  %indvars.iv.next3313 = add nuw nsw i64 %indvars.iv3312, 1
  %exitcond3316.not = icmp eq i64 %indvars.iv.next3313, %wide.trip.count3315
  br i1 %exitcond3316.not, label %.loopexit, label %.lr.ph2915, !llvm.loop !64

1056:                                             ; preds = %916
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %.preheader2051, label %.preheader2054

.preheader2054:                                   ; preds = %1056
  %.not1916.not2917 = icmp sgt i32 %914, 1
  br i1 %.not1916.not2917, label %.lr.ph2945, label %.preheader2053.thread3622

.preheader2053.thread3622:                        ; preds = %.preheader2054
  %1057 = load float, ptr %5, align 4, !tbaa !12
  br label %.loopexit

.preheader2051:                                   ; preds = %1056
  %.not1910.not2954 = icmp sgt i32 %914, 0
  br i1 %.not1910.not2954, label %.preheader, label %.thread3626

.lr.ph2945:                                       ; preds = %.preheader2054
  %1058 = add nsw i32 %915, -1
  %1059 = zext i32 %1058 to i64
  %1060 = shl nuw nsw i64 %1059, 2
  %1061 = add nuw nsw i64 %1060, 4
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %5, i8 0, i64 %1061, i1 false), !tbaa !12
  %1062 = add nsw i32 %915, -1
  %1063 = sext i32 %.01698 to i64
  %1064 = zext nneg i32 %915 to i64
  %1065 = sext i32 %1062 to i64
  %wide.trip.count3339 = zext nneg i32 %915 to i64
  %invariant.gep3743 = getelementptr inbounds float, ptr %5, i64 %1064
  %wide.trip.count3336 = zext i32 %1062 to i64
  br label %1066

1066:                                             ; preds = %.lr.ph2945, %._crit_edge2935
  %indvars.iv3329 = phi i64 [ 0, %.lr.ph2945 ], [ %indvars.iv.next3330, %._crit_edge2935 ]
  %indvars.iv3323 = phi i32 [ %915, %.lr.ph2945 ], [ %indvars.iv.next3324, %._crit_edge2935 ]
  %indvars3338 = trunc i64 %indvars.iv3329 to i32
  %1067 = add nsw i32 %indvars3338, -1
  %1068 = add i32 %1067, %915
  %.not19212921 = icmp slt i32 %1068, 0
  %.pre3590 = mul nsw i64 %indvars.iv3329, %1063
  br i1 %.not19212921, label %._crit_edge2925, label %.lr.ph2924

.lr.ph2924:                                       ; preds = %1066
  %wide.trip.count3325 = zext i32 %indvars.iv3323 to i64
  %1069 = getelementptr %struct.complex, ptr %4, i64 %.pre3590
  br label %1070

1070:                                             ; preds = %.lr.ph2924, %1070
  %indvars.iv3320 = phi i64 [ 0, %.lr.ph2924 ], [ %indvars.iv.next3321, %1070 ]
  %1071 = phi float [ 0.000000e+00, %.lr.ph2924 ], [ %1075, %1070 ]
  %1072 = getelementptr %struct.complex, ptr %1069, i64 %indvars.iv3320
  %1073 = tail call <2 x float> @Cf(ptr noundef %1072)
  %1074 = tail call float @cabsf(<2 x float> noundef %1073) #9
  %1075 = fadd float %1074, %1071
  %1076 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3320
  %1077 = load float, ptr %1076, align 4, !tbaa !12
  %1078 = fadd float %1074, %1077
  store float %1078, ptr %1076, align 4, !tbaa !12
  %indvars.iv.next3321 = add nuw nsw i64 %indvars.iv3320, 1
  %exitcond3326.not = icmp eq i64 %indvars.iv.next3321, %wide.trip.count3325
  br i1 %exitcond3326.not, label %._crit_edge2925, label %1070, !llvm.loop !65

._crit_edge2925:                                  ; preds = %1070, %1066
  %.lcssa29372940 = phi float [ 0.000000e+00, %1066 ], [ %1075, %1070 ]
  %.40.lcssa = phi i32 [ 0, %1066 ], [ %indvars.iv3323, %1070 ]
  %1079 = sext i32 %.40.lcssa to i64
  %1080 = getelementptr %struct.complex, ptr %4, i64 %.pre3590
  %1081 = getelementptr %struct.complex, ptr %1080, i64 %1079
  %1082 = load float, ptr %1081, align 4, !tbaa !9
  %1083 = fcmp oge float %1082, 0.000000e+00
  %1084 = fneg float %1082
  %1085 = select i1 %1083, float %1082, float %1084
  %1086 = fadd float %.lcssa29372940, %1085
  %gep3744 = getelementptr inbounds float, ptr %invariant.gep3743, i64 %indvars.iv3329
  store float %1086, ptr %gep3744, align 4, !tbaa !12
  %1087 = getelementptr %struct.complex, ptr %4, i64 %.pre3590
  %1088 = sext i32 %.40.lcssa to i64
  %1089 = getelementptr %struct.complex, ptr %1087, i64 %1088
  %1090 = getelementptr i8, ptr %1089, i64 8
  %1091 = load float, ptr %1090, align 4, !tbaa !9
  %1092 = fcmp oge float %1091, 0.000000e+00
  %1093 = fneg float %1091
  %1094 = select i1 %1092, float %1091, float %1093
  %1095 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3329
  %1096 = load float, ptr %1095, align 4, !tbaa !12
  %1097 = fadd float %1096, %1094
  store float %1097, ptr %1095, align 4, !tbaa !12
  %.not1922.not2930 = icmp slt i64 %indvars.iv3329, %1065
  br i1 %.not1922.not2930, label %.lr.ph2934, label %._crit_edge2935

.lr.ph2934:                                       ; preds = %._crit_edge2925
  %1098 = add nsw i64 %1079, 1
  %1099 = getelementptr %struct.complex, ptr %4, i64 %.pre3590
  br label %1100

1100:                                             ; preds = %.lr.ph2934, %1100
  %indvars.iv3331 = phi i64 [ %indvars.iv3329, %.lr.ph2934 ], [ %indvars.iv.next3332, %1100 ]
  %indvars.iv3327 = phi i64 [ %1098, %.lr.ph2934 ], [ %indvars.iv.next3328, %1100 ]
  %1101 = phi float [ 0.000000e+00, %.lr.ph2934 ], [ %1105, %1100 ]
  %indvars.iv.next3332 = add nuw nsw i64 %indvars.iv3331, 1
  %indvars.iv.next3328 = add nuw nsw i64 %indvars.iv3327, 1
  %1102 = getelementptr %struct.complex, ptr %1099, i64 %indvars.iv.next3328
  %1103 = tail call <2 x float> @Cf(ptr noundef %1102)
  %1104 = tail call float @cabsf(<2 x float> noundef %1103) #9
  %1105 = fadd float %1104, %1101
  %1106 = getelementptr inbounds float, ptr %5, i64 %indvars.iv.next3332
  %1107 = load float, ptr %1106, align 4, !tbaa !12
  %1108 = fadd float %1104, %1107
  store float %1108, ptr %1106, align 4, !tbaa !12
  %exitcond3337.not = icmp eq i64 %indvars.iv.next3332, %wide.trip.count3336
  br i1 %exitcond3337.not, label %._crit_edge2935.loopexit, label %1100, !llvm.loop !66

._crit_edge2935.loopexit:                         ; preds = %1100
  %.pre3572 = load float, ptr %1095, align 4, !tbaa !12
  br label %._crit_edge2935

._crit_edge2935:                                  ; preds = %._crit_edge2935.loopexit, %._crit_edge2925
  %1109 = phi float [ %1097, %._crit_edge2925 ], [ %.pre3572, %._crit_edge2935.loopexit ]
  %.lcssa29372941 = phi float [ 0.000000e+00, %._crit_edge2925 ], [ %1105, %._crit_edge2935.loopexit ]
  %1110 = fadd float %.lcssa29372941, %1109
  store float %1110, ptr %1095, align 4, !tbaa !12
  %indvars.iv.next3330 = add nuw nsw i64 %indvars.iv3329, 1
  %indvars.iv.next3324 = add i32 %indvars.iv3323, 1
  %exitcond3340.not = icmp eq i64 %indvars.iv.next3330, %wide.trip.count3339
  br i1 %exitcond3340.not, label %.preheader2053, label %1066, !llvm.loop !67

.preheader2053:                                   ; preds = %._crit_edge2935
  store float %.lcssa29372941, ptr %11, align 4, !tbaa !12
  store i32 %1062, ptr %7, align 4, !tbaa !5
  %.pre3573 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %915, ptr %9, align 4, !tbaa !5
  %1111 = load float, ptr %5, align 4, !tbaa !12
  %.not1919.not2948 = icmp sgt i32 %.pre3573, 1
  br i1 %.not1919.not2948, label %.lr.ph2952.preheader, label %.loopexit

.lr.ph2952.preheader:                             ; preds = %.preheader2053
  %wide.trip.count3344 = zext nneg i32 %.pre3573 to i64
  br label %.lr.ph2952

.lr.ph2952:                                       ; preds = %.lr.ph2952.preheader, %1117
  %indvars.iv3341 = phi i64 [ 1, %.lr.ph2952.preheader ], [ %indvars.iv.next3342, %1117 ]
  %.1012949 = phi float [ %1111, %.lr.ph2952.preheader ], [ %.102, %1117 ]
  %1112 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3341
  %1113 = load float, ptr %1112, align 4, !tbaa !12
  store float %1113, ptr %8, align 4, !tbaa !12
  %1114 = fcmp olt float %.1012949, %1113
  br i1 %1114, label %1117, label %1115

1115:                                             ; preds = %.lr.ph2952
  %1116 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1920 = icmp eq i32 %1116, 0
  br i1 %.not1920, label %1117, label %._crit_edge3574

._crit_edge3574:                                  ; preds = %1115
  %.pre3575 = load float, ptr %8, align 4, !tbaa !12
  br label %1117

1117:                                             ; preds = %.lr.ph2952, %._crit_edge3574, %1115
  %.102 = phi float [ %.1012949, %1115 ], [ %.pre3575, %._crit_edge3574 ], [ %1113, %.lr.ph2952 ]
  %indvars.iv.next3342 = add nuw nsw i64 %indvars.iv3341, 1
  %exitcond3345.not = icmp eq i64 %indvars.iv.next3342, %wide.trip.count3344
  br i1 %exitcond3345.not, label %.loopexit, label %.lr.ph2952, !llvm.loop !68

.preheader:                                       ; preds = %.preheader2051
  %1118 = shl nuw i32 %915, 2
  %1119 = zext i32 %1118 to i64
  %scevgep3346 = getelementptr i8, ptr %5, i64 %1119
  %1120 = add nuw nsw i32 %915, 1
  %smax3347 = tail call i32 @llvm.smax.i32(i32 %914, i32 %1120)
  %1121 = xor i32 %915, -1
  %1122 = add nsw i32 %smax3347, %1121
  %1123 = zext i32 %1122 to i64
  %1124 = shl nuw nsw i64 %1123, 2
  %1125 = add nuw nsw i64 %1124, 4
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep3346, i8 0, i64 %1125, i1 false), !tbaa !12
  %.not3751 = icmp eq i32 %914, 1
  br i1 %.not3751, label %.thread3626, label %.lr.ph2982

.lr.ph2982:                                       ; preds = %.preheader
  %storemerge19112980 = add nsw i32 %915, -1
  %1126 = zext nneg i32 %915 to i64
  %invariant.gep3747 = getelementptr inbounds float, ptr %5, i64 %1126
  br label %1127

1127:                                             ; preds = %.lr.ph2982, %._crit_edge2972
  %storemerge1911.in2985 = phi i32 [ %storemerge19112980, %.lr.ph2982 ], [ %storemerge1911, %._crit_edge2972 ]
  %.not1914.not2958 = icmp sgt i32 %storemerge1911.in2985, 0
  %1128 = mul nsw i32 %storemerge1911.in2985, %.01698
  br i1 %.not1914.not2958, label %.lr.ph2961, label %._crit_edge2962

.lr.ph2961:                                       ; preds = %1127
  %1129 = sext i32 %1128 to i64
  %wide.trip.count3354 = zext nneg i32 %storemerge1911.in2985 to i64
  %invariant.gep3745 = getelementptr %struct.complex, ptr %4, i64 %1129
  br label %1130

1130:                                             ; preds = %.lr.ph2961, %1130
  %indvars.iv3351 = phi i64 [ 0, %.lr.ph2961 ], [ %indvars.iv.next3352, %1130 ]
  %1131 = phi float [ 0.000000e+00, %.lr.ph2961 ], [ %1134, %1130 ]
  %gep3746 = getelementptr %struct.complex, ptr %invariant.gep3745, i64 %indvars.iv3351
  %1132 = tail call <2 x float> @Cf(ptr noundef %gep3746)
  %1133 = tail call float @cabsf(<2 x float> noundef %1132) #9
  %1134 = fadd float %1133, %1131
  %gep3748 = getelementptr inbounds float, ptr %invariant.gep3747, i64 %indvars.iv3351
  %1135 = load float, ptr %gep3748, align 4, !tbaa !12
  %1136 = fadd float %1133, %1135
  store float %1136, ptr %gep3748, align 4, !tbaa !12
  %indvars.iv.next3352 = add nuw nsw i64 %indvars.iv3351, 1
  %exitcond3355.not = icmp eq i64 %indvars.iv.next3352, %wide.trip.count3354
  br i1 %exitcond3355.not, label %._crit_edge2962, label %1130, !llvm.loop !69

._crit_edge2962:                                  ; preds = %1130, %1127
  %.lcssa29742977 = phi float [ 0.000000e+00, %1127 ], [ %1134, %1130 ]
  %.44.lcssa = phi i32 [ 0, %1127 ], [ %storemerge1911.in2985, %1130 ]
  %1137 = add nsw i32 %1128, %.44.lcssa
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds %struct.complex, ptr %4, i64 %1138
  %1140 = load float, ptr %1139, align 4, !tbaa !9
  %1141 = fcmp oge float %1140, 0.000000e+00
  %1142 = fneg float %1140
  %1143 = select i1 %1141, float %1140, float %1142
  %1144 = fadd float %.lcssa29742977, %1143
  %1145 = add nuw nsw i32 %915, %.44.lcssa
  %1146 = zext nneg i32 %1145 to i64
  %1147 = getelementptr inbounds float, ptr %5, i64 %1146
  %1148 = load float, ptr %1147, align 4, !tbaa !12
  %1149 = fadd float %1144, %1148
  store float %1149, ptr %1147, align 4, !tbaa !12
  %1150 = add nuw nsw i32 %.44.lcssa, 1
  %1151 = add nsw i32 %1128, %1150
  %1152 = sext i32 %1151 to i64
  %1153 = getelementptr inbounds %struct.complex, ptr %4, i64 %1152
  %1154 = load float, ptr %1153, align 4, !tbaa !9
  %1155 = fcmp oge float %1154, 0.000000e+00
  %1156 = fneg float %1154
  %1157 = select i1 %1155, float %1154, float %1156
  %1158 = sext i32 %storemerge1911.in2985 to i64
  %1159 = getelementptr inbounds float, ptr %5, i64 %1158
  store float %1157, ptr %1159, align 4, !tbaa !12
  %1160 = load i32, ptr %3, align 4, !tbaa !5
  %1161 = add nsw i32 %1160, -1
  %.not1915.not2967 = icmp slt i32 %storemerge1911.in2985, %1161
  br i1 %.not1915.not2967, label %.lr.ph2971, label %._crit_edge2972

.lr.ph2971:                                       ; preds = %._crit_edge2962
  %narrow = add nuw i32 %.44.lcssa, 1
  %1162 = zext i32 %narrow to i64
  %1163 = sext i32 %1128 to i64
  %wide.trip.count3363 = sext i32 %1161 to i64
  %invariant.gep3749 = getelementptr %struct.complex, ptr %4, i64 %1163
  br label %1164

1164:                                             ; preds = %.lr.ph2971, %1164
  %indvars.iv3358 = phi i64 [ %1158, %.lr.ph2971 ], [ %indvars.iv.next3359, %1164 ]
  %indvars.iv3356 = phi i64 [ %1162, %.lr.ph2971 ], [ %indvars.iv.next3357, %1164 ]
  %1165 = phi float [ 0.000000e+00, %.lr.ph2971 ], [ %1168, %1164 ]
  %indvars.iv.next3359 = add nsw i64 %indvars.iv3358, 1
  %indvars.iv.next3357 = add nuw nsw i64 %indvars.iv3356, 1
  %gep3750 = getelementptr %struct.complex, ptr %invariant.gep3749, i64 %indvars.iv.next3357
  %1166 = tail call <2 x float> @Cf(ptr noundef %gep3750)
  %1167 = tail call float @cabsf(<2 x float> noundef %1166) #9
  %1168 = fadd float %1167, %1165
  %1169 = getelementptr inbounds float, ptr %5, i64 %indvars.iv.next3359
  %1170 = load float, ptr %1169, align 4, !tbaa !12
  %1171 = fadd float %1167, %1170
  store float %1171, ptr %1169, align 4, !tbaa !12
  %exitcond3364.not = icmp eq i64 %indvars.iv.next3359, %wide.trip.count3363
  br i1 %exitcond3364.not, label %._crit_edge2972.loopexit, label %1164, !llvm.loop !70

._crit_edge2972.loopexit:                         ; preds = %1164
  %.pre3576 = load float, ptr %1159, align 4, !tbaa !12
  br label %._crit_edge2972

._crit_edge2972:                                  ; preds = %._crit_edge2972.loopexit, %._crit_edge2962
  %1172 = phi float [ %1157, %._crit_edge2962 ], [ %.pre3576, %._crit_edge2972.loopexit ]
  %.lcssa29742978 = phi float [ 0.000000e+00, %._crit_edge2962 ], [ %1168, %._crit_edge2972.loopexit ]
  %1173 = fadd float %.lcssa29742978, %1172
  store float %1173, ptr %1159, align 4, !tbaa !12
  %storemerge1911 = add nsw i32 %storemerge1911.in2985, -1
  br i1 %.not1914.not2958, label %1127, label %1175, !llvm.loop !71

.thread3626:                                      ; preds = %.preheader2051, %.preheader
  %1174 = load float, ptr %5, align 4, !tbaa !12
  br label %.loopexit

1175:                                             ; preds = %._crit_edge2972
  store float %.lcssa29742978, ptr %11, align 4, !tbaa !12
  store i32 %storemerge1911, ptr %9, align 4, !tbaa !5
  %.pre3577 = load i32, ptr %3, align 4, !tbaa !5
  %1176 = load float, ptr %5, align 4, !tbaa !12
  %.not1912.not2986 = icmp sgt i32 %.pre3577, 1
  br i1 %.not1912.not2986, label %.lr.ph2990.preheader, label %.loopexit

.lr.ph2990.preheader:                             ; preds = %1175
  %wide.trip.count3368 = zext nneg i32 %.pre3577 to i64
  br label %.lr.ph2990

.lr.ph2990:                                       ; preds = %.lr.ph2990.preheader, %1182
  %indvars.iv3365 = phi i64 [ 1, %.lr.ph2990.preheader ], [ %indvars.iv.next3366, %1182 ]
  %.1032987 = phi float [ %1176, %.lr.ph2990.preheader ], [ %.104, %1182 ]
  %1177 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3365
  %1178 = load float, ptr %1177, align 4, !tbaa !12
  store float %1178, ptr %8, align 4, !tbaa !12
  %1179 = fcmp olt float %.1032987, %1178
  br i1 %1179, label %1182, label %1180

1180:                                             ; preds = %.lr.ph2990
  %1181 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1913 = icmp eq i32 %1181, 0
  br i1 %.not1913, label %1182, label %._crit_edge3578

._crit_edge3578:                                  ; preds = %1180
  %.pre3579 = load float, ptr %8, align 4, !tbaa !12
  br label %1182

1182:                                             ; preds = %.lr.ph2990, %._crit_edge3578, %1180
  %.104 = phi float [ %.1032987, %1180 ], [ %.pre3579, %._crit_edge3578 ], [ %1178, %.lr.ph2990 ]
  %indvars.iv.next3366 = add nuw nsw i64 %indvars.iv3365, 1
  %exitcond3369.not = icmp eq i64 %indvars.iv.next3366, %wide.trip.count3368
  br i1 %exitcond3369.not, label %.loopexit, label %.lr.ph2990, !llvm.loop !72

1183:                                             ; preds = %913
  br i1 %.not1909, label %1402, label %1184

1184:                                             ; preds = %1183
  %1185 = add nsw i32 %915, 1
  store i32 %1185, ptr %10, align 4, !tbaa !5
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %1293, label %1186

1186:                                             ; preds = %1184
  %.not1898.not2545 = icmp sgt i32 %914, 0
  br i1 %.not1898.not2545, label %.preheader2068, label %.preheader2068.thread

.preheader2068:                                   ; preds = %1186
  %1187 = shl nuw i32 %915, 2
  %1188 = zext i32 %1187 to i64
  %scevgep = getelementptr i8, ptr %5, i64 %1188
  %smax3090 = tail call i32 @llvm.smax.i32(i32 %914, i32 %1185)
  %1189 = xor i32 %915, -1
  %1190 = add nsw i32 %smax3090, %1189
  %1191 = zext i32 %1190 to i64
  %1192 = shl nuw nsw i64 %1191, 2
  %1193 = add nuw nsw i64 %1192, 4
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep, i8 0, i64 %1193, i1 false), !tbaa !12
  %.not1900.not2562.not = icmp eq i32 %914, 1
  br i1 %.not1900.not2562.not, label %.preheader2068.thread, label %.lr.ph2564

.lr.ph2564:                                       ; preds = %.preheader2068
  %1194 = zext nneg i32 %915 to i64
  %1195 = sext i32 %.01698 to i64
  %wide.trip.count3097 = zext nneg i32 %915 to i64
  %wide.trip.count = zext nneg i32 %1185 to i64
  %invariant.gep3709 = getelementptr inbounds float, ptr %5, i64 %1194
  br label %.lr.ph2553

.lr.ph2553:                                       ; preds = %._crit_edge2554, %.lr.ph2564
  %indvars.iv3094 = phi i64 [ 0, %.lr.ph2564 ], [ %indvars.iv.next3095, %._crit_edge2554 ]
  %1196 = mul nsw i64 %indvars.iv3094, %1195
  %1197 = getelementptr %struct.complex, ptr %4, i64 %1196
  br label %1198

1198:                                             ; preds = %.lr.ph2553, %1198
  %indvars.iv = phi i64 [ 0, %.lr.ph2553 ], [ %indvars.iv.next, %1198 ]
  %1199 = phi float [ 0.000000e+00, %.lr.ph2553 ], [ %1205, %1198 ]
  %1200 = getelementptr %struct.complex, ptr %1197, i64 %indvars.iv
  %1201 = tail call <2 x float> @Cf(ptr noundef %1200)
  %1202 = tail call float @cabsf(<2 x float> noundef %1201) #9
  %gep3710 = getelementptr inbounds float, ptr %invariant.gep3709, i64 %indvars.iv
  %1203 = load float, ptr %gep3710, align 4, !tbaa !12
  %1204 = fadd float %1202, %1203
  store float %1204, ptr %gep3710, align 4, !tbaa !12
  %1205 = fadd float %1202, %1199
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond3093.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond3093.not, label %._crit_edge2554, label %1198, !llvm.loop !73

._crit_edge2554:                                  ; preds = %1198
  %1206 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3094
  store float %1205, ptr %1206, align 4, !tbaa !12
  %indvars.iv.next3095 = add nuw nsw i64 %indvars.iv3094, 1
  %exitcond3098.not = icmp eq i64 %indvars.iv.next3095, %wide.trip.count3097
  br i1 %exitcond3098.not, label %._crit_edge2565, label %.lr.ph2553, !llvm.loop !74

._crit_edge2565:                                  ; preds = %._crit_edge2554
  store i32 %915, ptr %7, align 4, !tbaa !5
  br label %.preheader2068.thread

.preheader2068.thread:                            ; preds = %1186, %._crit_edge2565, %.preheader2068
  %1207 = phi i32 [ %915, %._crit_edge2565 ], [ 0, %.preheader2068 ], [ 0, %1186 ]
  %1208 = mul nsw i32 %1207, %.01698
  %1209 = sext i32 %1208 to i64
  %1210 = getelementptr inbounds %struct.complex, ptr %4, i64 %1209
  %1211 = load float, ptr %1210, align 4, !tbaa !9
  %1212 = fcmp oge float %1211, 0.000000e+00
  %1213 = fneg float %1211
  %1214 = select i1 %1212, float %1211, float %1213
  store float %1214, ptr %11, align 4, !tbaa !12
  %.not1901.not2569 = icmp sgt i32 %914, 1
  br i1 %.not1901.not2569, label %.lr.ph2572, label %1223

.lr.ph2572:                                       ; preds = %.preheader2068.thread
  %1215 = zext nneg i32 %915 to i64
  %wide.trip.count3102 = zext nneg i32 %1185 to i64
  %invariant.gep3711 = getelementptr %struct.complex, ptr %4, i64 %1209
  %invariant.gep3713 = getelementptr inbounds float, ptr %5, i64 %1215
  br label %1216

1216:                                             ; preds = %.lr.ph2572, %1216
  %indvars.iv3099 = phi i64 [ 1, %.lr.ph2572 ], [ %indvars.iv.next3100, %1216 ]
  %1217 = phi float [ %1214, %.lr.ph2572 ], [ %1222, %1216 ]
  %gep3712 = getelementptr %struct.complex, ptr %invariant.gep3711, i64 %indvars.iv3099
  %1218 = tail call <2 x float> @Cf(ptr noundef %gep3712)
  %1219 = tail call float @cabsf(<2 x float> noundef %1218) #9
  %gep3714 = getelementptr inbounds float, ptr %invariant.gep3713, i64 %indvars.iv3099
  %1220 = load float, ptr %gep3714, align 4, !tbaa !12
  %1221 = fadd float %1219, %1220
  store float %1221, ptr %gep3714, align 4, !tbaa !12
  %1222 = fadd float %1219, %1217
  %indvars.iv.next3100 = add nuw nsw i64 %indvars.iv3099, 1
  %exitcond3103.not = icmp eq i64 %indvars.iv.next3100, %wide.trip.count3102
  br i1 %exitcond3103.not, label %._crit_edge2573, label %1216, !llvm.loop !75

._crit_edge2573:                                  ; preds = %1216
  store float %1222, ptr %11, align 4, !tbaa !12
  br label %1223

1223:                                             ; preds = %._crit_edge2573, %.preheader2068.thread
  %1224 = phi float [ %1222, %._crit_edge2573 ], [ %1214, %.preheader2068.thread ]
  %1225 = sext i32 %1207 to i64
  %1226 = getelementptr inbounds float, ptr %5, i64 %1225
  %1227 = load float, ptr %1226, align 4, !tbaa !12
  %1228 = fadd float %1224, %1227
  store float %1228, ptr %1226, align 4, !tbaa !12
  %1229 = load i32, ptr %3, align 4, !tbaa !5
  %.not1903.not2599 = icmp slt i32 %1185, %1229
  br i1 %.not1903.not2599, label %.lr.ph2602, label %1284

.lr.ph2602:                                       ; preds = %1223
  %1230 = sext i32 %1185 to i64
  %1231 = sext i32 %.01698 to i64
  br label %1232

1232:                                             ; preds = %.lr.ph2602, %._crit_edge2591
  %indvars.iv3109 = phi i64 [ %1230, %.lr.ph2602 ], [ %indvars.iv.next3110, %._crit_edge2591 ]
  %1233 = trunc nsw i64 %indvars.iv3109 to i32
  %reass.sub3614 = sub i32 %1233, %915
  %1234 = add i32 %reass.sub3614, -2
  %.not19062577 = icmp slt i32 %1234, 0
  %.pre3612 = mul nsw i64 %indvars.iv3109, %1231
  br i1 %.not19062577, label %._crit_edge2581, label %.lr.ph2580

.lr.ph2580:                                       ; preds = %1232
  %1235 = zext nneg i32 %1234 to i64
  %1236 = getelementptr %struct.complex, ptr %4, i64 %.pre3612
  br label %1237

1237:                                             ; preds = %.lr.ph2580, %1237
  %indvars.iv3104 = phi i64 [ 0, %.lr.ph2580 ], [ %indvars.iv.next3105, %1237 ]
  %1238 = phi float [ 0.000000e+00, %.lr.ph2580 ], [ %1245, %1237 ]
  %1239 = getelementptr %struct.complex, ptr %1236, i64 %indvars.iv3104
  %1240 = tail call <2 x float> @Cf(ptr noundef %1239)
  %1241 = tail call float @cabsf(<2 x float> noundef %1240) #9
  %1242 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3104
  %1243 = load float, ptr %1242, align 4, !tbaa !12
  %1244 = fadd float %1241, %1243
  store float %1244, ptr %1242, align 4, !tbaa !12
  %1245 = fadd float %1241, %1238
  %indvars.iv.next3105 = add nuw nsw i64 %indvars.iv3104, 1
  %.not1906.not = icmp ult i64 %indvars.iv3104, %1235
  br i1 %.not1906.not, label %1237, label %._crit_edge2581.loopexit, !llvm.loop !76

._crit_edge2581.loopexit:                         ; preds = %1237
  %1246 = trunc nsw i64 %indvars.iv.next3105 to i32
  br label %._crit_edge2581

._crit_edge2581:                                  ; preds = %1232, %._crit_edge2581.loopexit
  %.lcssa25932596 = phi float [ %1245, %._crit_edge2581.loopexit ], [ 0.000000e+00, %1232 ]
  %.50.lcssa = phi i32 [ %1246, %._crit_edge2581.loopexit ], [ 0, %1232 ]
  %1247 = sext i32 %.50.lcssa to i64
  %1248 = getelementptr %struct.complex, ptr %4, i64 %.pre3612
  %1249 = getelementptr %struct.complex, ptr %1248, i64 %1247
  %1250 = load float, ptr %1249, align 4, !tbaa !9
  %1251 = fcmp oge float %1250, 0.000000e+00
  %1252 = fneg float %1250
  %1253 = select i1 %1251, float %1250, float %1252
  %1254 = fadd float %.lcssa25932596, %1253
  %1255 = sub nsw i64 %indvars.iv3109, %1230
  %1256 = getelementptr inbounds float, ptr %5, i64 %1255
  %1257 = load float, ptr %1256, align 4, !tbaa !12
  %1258 = fadd float %1254, %1257
  store float %1258, ptr %1256, align 4, !tbaa !12
  %1259 = getelementptr %struct.complex, ptr %4, i64 %.pre3612
  %1260 = sext i32 %.50.lcssa to i64
  %1261 = getelementptr %struct.complex, ptr %1259, i64 %1260
  %1262 = getelementptr i8, ptr %1261, i64 8
  %1263 = load float, ptr %1262, align 4, !tbaa !9
  %1264 = fcmp oge float %1263, 0.000000e+00
  %1265 = fneg float %1263
  %1266 = select i1 %1264, float %1263, float %1265
  %1267 = load i32, ptr %3, align 4, !tbaa !5
  %1268 = add nsw i32 %1267, -1
  %1269 = sext i32 %1268 to i64
  %.not1907.not2586 = icmp slt i64 %indvars.iv3109, %1269
  br i1 %.not1907.not2586, label %.lr.ph2590, label %._crit_edge2591

.lr.ph2590:                                       ; preds = %._crit_edge2581
  %1270 = add nsw i64 %1247, 1
  %1271 = getelementptr %struct.complex, ptr %4, i64 %.pre3612
  br label %1272

1272:                                             ; preds = %.lr.ph2590, %1272
  %indvars.iv3111 = phi i64 [ %indvars.iv3109, %.lr.ph2590 ], [ %indvars.iv.next3112, %1272 ]
  %indvars.iv3107 = phi i64 [ %1270, %.lr.ph2590 ], [ %indvars.iv.next3108, %1272 ]
  %1273 = phi float [ %1266, %.lr.ph2590 ], [ %1280, %1272 ]
  %indvars.iv.next3112 = add nsw i64 %indvars.iv3111, 1
  %indvars.iv.next3108 = add nuw nsw i64 %indvars.iv3107, 1
  %1274 = getelementptr %struct.complex, ptr %1271, i64 %indvars.iv.next3108
  %1275 = tail call <2 x float> @Cf(ptr noundef %1274)
  %1276 = tail call float @cabsf(<2 x float> noundef %1275) #9
  %1277 = getelementptr inbounds float, ptr %5, i64 %indvars.iv.next3112
  %1278 = load float, ptr %1277, align 4, !tbaa !12
  %1279 = fadd float %1276, %1278
  store float %1279, ptr %1277, align 4, !tbaa !12
  %1280 = fadd float %1276, %1273
  %.not1907.not = icmp slt i64 %indvars.iv.next3112, %1269
  br i1 %.not1907.not, label %1272, label %._crit_edge2591, !llvm.loop !77

._crit_edge2591:                                  ; preds = %1272, %._crit_edge2581
  %.lcssa25932597 = phi float [ %1266, %._crit_edge2581 ], [ %1280, %1272 ]
  %1281 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3109
  %1282 = load float, ptr %1281, align 4, !tbaa !12
  %1283 = fadd float %.lcssa25932597, %1282
  store float %1283, ptr %1281, align 4, !tbaa !12
  %indvars.iv.next3110 = add nsw i64 %indvars.iv3109, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next3110 to i32
  %exitcond3117.not = icmp eq i32 %1229, %lftr.wideiv
  br i1 %exitcond3117.not, label %._crit_edge2603, label %1232, !llvm.loop !78

._crit_edge2603:                                  ; preds = %._crit_edge2591
  store float %.lcssa25932597, ptr %11, align 4, !tbaa !12
  store i32 %1268, ptr %7, align 4, !tbaa !5
  %.pre3554 = load i32, ptr %3, align 4, !tbaa !5
  br label %1284

1284:                                             ; preds = %._crit_edge2603, %1223
  %1285 = phi i32 [ %.pre3554, %._crit_edge2603 ], [ %1229, %1223 ]
  %storemerge1902.lcssa = phi i32 [ %1229, %._crit_edge2603 ], [ %1185, %1223 ]
  store i32 %storemerge1902.lcssa, ptr %9, align 4, !tbaa !5
  %1286 = load float, ptr %5, align 4, !tbaa !12
  %.not1904.not2606 = icmp sgt i32 %1285, 1
  br i1 %.not1904.not2606, label %.lr.ph2610.preheader, label %.loopexit

.lr.ph2610.preheader:                             ; preds = %1284
  %wide.trip.count3121 = zext nneg i32 %1285 to i64
  br label %.lr.ph2610

.lr.ph2610:                                       ; preds = %.lr.ph2610.preheader, %1292
  %indvars.iv3118 = phi i64 [ 1, %.lr.ph2610.preheader ], [ %indvars.iv.next3119, %1292 ]
  %.1052607 = phi float [ %1286, %.lr.ph2610.preheader ], [ %.106, %1292 ]
  %1287 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3118
  %1288 = load float, ptr %1287, align 4, !tbaa !12
  store float %1288, ptr %8, align 4, !tbaa !12
  %1289 = fcmp olt float %.1052607, %1288
  br i1 %1289, label %1292, label %1290

1290:                                             ; preds = %.lr.ph2610
  %1291 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1905 = icmp eq i32 %1291, 0
  br i1 %.not1905, label %1292, label %._crit_edge3555

._crit_edge3555:                                  ; preds = %1290
  %.pre3556 = load float, ptr %8, align 4, !tbaa !12
  br label %1292

1292:                                             ; preds = %.lr.ph2610, %._crit_edge3555, %1290
  %.106 = phi float [ %.1052607, %1290 ], [ %.pre3556, %._crit_edge3555 ], [ %1288, %.lr.ph2610 ]
  %indvars.iv.next3119 = add nuw nsw i64 %indvars.iv3118, 1
  %exitcond3122.not = icmp eq i64 %indvars.iv.next3119, %wide.trip.count3121
  br i1 %exitcond3122.not, label %.loopexit, label %.lr.ph2610, !llvm.loop !79

1293:                                             ; preds = %1184
  %.not1887.not2612 = icmp slt i32 %1185, %914
  br i1 %.not1887.not2612, label %.lr.ph2615.preheader, label %.preheader2066

.lr.ph2615.preheader:                             ; preds = %1293
  %1294 = sext i32 %915 to i64
  %1295 = shl nsw i64 %1294, 2
  %1296 = getelementptr i8, ptr %5, i64 %1295
  %scevgep3123 = getelementptr i8, ptr %1296, i64 4
  %1297 = add nsw i32 %914, -2
  %1298 = sub i32 %1297, %915
  %1299 = zext i32 %1298 to i64
  %1300 = shl nuw nsw i64 %1299, 2
  %1301 = add nuw nsw i64 %1300, 4
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep3123, i8 0, i64 %1301, i1 false), !tbaa !12
  br label %.preheader2066

.preheader2066:                                   ; preds = %.lr.ph2615.preheader, %1293
  %.not1889.not2639 = icmp sgt i32 %914, 1
  br i1 %.not1889.not2639, label %.lr.ph2641, label %.thread3629

.thread3629:                                      ; preds = %.preheader2066
  store i32 0, ptr %9, align 4, !tbaa !5
  br label %._crit_edge2650

.lr.ph2641:                                       ; preds = %.preheader2066
  %1302 = sext i32 %.01698 to i64
  %1303 = zext nneg i32 %1185 to i64
  %wide.trip.count3144 = zext nneg i32 %915 to i64
  br label %1304

1304:                                             ; preds = %.lr.ph2641, %._crit_edge2631
  %indvars.iv3141 = phi i64 [ 0, %.lr.ph2641 ], [ %indvars.iv.next3142, %._crit_edge2631 ]
  %indvars.iv3134 = phi i32 [ %1185, %.lr.ph2641 ], [ %indvars.iv.next3135, %._crit_edge2631 ]
  %1305 = sext i32 %indvars.iv3134 to i64
  %.not18962617 = icmp eq i64 %indvars.iv3141, 0
  br i1 %.not18962617, label %._crit_edge2621, label %.lr.ph2620

.lr.ph2620:                                       ; preds = %1304
  %1306 = mul nsw i64 %indvars.iv3141, %1302
  %1307 = getelementptr %struct.complex, ptr %4, i64 %1306
  br label %1308

1308:                                             ; preds = %.lr.ph2620, %1308
  %indvars.iv3127 = phi i64 [ 0, %.lr.ph2620 ], [ %indvars.iv.next3128, %1308 ]
  %1309 = phi float [ 0.000000e+00, %.lr.ph2620 ], [ %1316, %1308 ]
  %1310 = getelementptr %struct.complex, ptr %1307, i64 %indvars.iv3127
  %1311 = tail call <2 x float> @Cf(ptr noundef %1310)
  %1312 = tail call float @cabsf(<2 x float> noundef %1311) #9
  %1313 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3127
  %1314 = load float, ptr %1313, align 4, !tbaa !12
  %1315 = fadd float %1312, %1314
  store float %1315, ptr %1313, align 4, !tbaa !12
  %1316 = fadd float %1312, %1309
  %indvars.iv.next3128 = add nuw nsw i64 %indvars.iv3127, 1
  %exitcond3131.not = icmp eq i64 %indvars.iv.next3128, %indvars.iv3141
  br i1 %exitcond3131.not, label %._crit_edge2621.loopexit, label %1308, !llvm.loop !80

._crit_edge2621.loopexit:                         ; preds = %1308
  %1317 = trunc nuw nsw i64 %indvars.iv3141 to i32
  br label %._crit_edge2621

._crit_edge2621:                                  ; preds = %1304, %._crit_edge2621.loopexit
  %.pre-phi3609 = phi i64 [ %1306, %._crit_edge2621.loopexit ], [ 0, %1304 ]
  %.lcssa26332636 = phi float [ %1316, %._crit_edge2621.loopexit ], [ 0.000000e+00, %1304 ]
  %.54.lcssa = phi i32 [ %1317, %._crit_edge2621.loopexit ], [ 0, %1304 ]
  %1318 = sext i32 %.54.lcssa to i64
  %1319 = getelementptr %struct.complex, ptr %4, i64 %.pre-phi3609
  %1320 = getelementptr %struct.complex, ptr %1319, i64 %1318
  %1321 = load float, ptr %1320, align 4, !tbaa !9
  %1322 = fcmp oge float %1321, 0.000000e+00
  %1323 = fneg float %1321
  %1324 = select i1 %1322, float %1321, float %1323
  %1325 = fadd float %.lcssa26332636, %1324
  %1326 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3141
  store float %1325, ptr %1326, align 4, !tbaa !12
  %1327 = getelementptr %struct.complex, ptr %4, i64 %.pre-phi3609
  %1328 = sext i32 %.54.lcssa to i64
  %1329 = getelementptr %struct.complex, ptr %1327, i64 %1328
  %1330 = getelementptr i8, ptr %1329, i64 8
  %1331 = load float, ptr %1330, align 4, !tbaa !9
  %1332 = fcmp oge float %1331, 0.000000e+00
  %1333 = fneg float %1331
  %1334 = select i1 %1332, float %1331, float %1333
  %1335 = load i32, ptr %3, align 4, !tbaa !5
  %1336 = add nsw i32 %1335, -1
  %1337 = add nuw nsw i64 %indvars.iv3141, %1303
  %1338 = sext i32 %1336 to i64
  %.not1897.not2626 = icmp slt i64 %1337, %1338
  br i1 %.not1897.not2626, label %.lr.ph2630, label %._crit_edge2631

.lr.ph2630:                                       ; preds = %._crit_edge2621
  %1339 = zext nneg i32 %.54.lcssa to i64
  %1340 = add nuw nsw i64 %1339, 1
  %1341 = getelementptr %struct.complex, ptr %4, i64 %.pre-phi3609
  br label %1342

1342:                                             ; preds = %.lr.ph2630, %1342
  %indvars.iv3136 = phi i64 [ %1305, %.lr.ph2630 ], [ %indvars.iv.next3137, %1342 ]
  %indvars.iv3132 = phi i64 [ %1340, %.lr.ph2630 ], [ %indvars.iv.next3133, %1342 ]
  %1343 = phi float [ %1334, %.lr.ph2630 ], [ %1347, %1342 ]
  %indvars.iv.next3137 = add nsw i64 %indvars.iv3136, 1
  %indvars.iv.next3133 = add nuw nsw i64 %indvars.iv3132, 1
  %1344 = getelementptr %struct.complex, ptr %1341, i64 %indvars.iv.next3133
  %1345 = tail call <2 x float> @Cf(ptr noundef %1344)
  %1346 = tail call float @cabsf(<2 x float> noundef %1345) #9
  %1347 = fadd float %1346, %1343
  %1348 = getelementptr inbounds float, ptr %5, i64 %indvars.iv.next3137
  %1349 = load float, ptr %1348, align 4, !tbaa !12
  %1350 = fadd float %1346, %1349
  store float %1350, ptr %1348, align 4, !tbaa !12
  %.not1897.not = icmp slt i64 %indvars.iv.next3137, %1338
  br i1 %.not1897.not, label %1342, label %._crit_edge2631, !llvm.loop !81

._crit_edge2631:                                  ; preds = %1342, %._crit_edge2621
  %.lcssa26332637 = phi float [ %1334, %._crit_edge2621 ], [ %1347, %1342 ]
  %1351 = getelementptr inbounds float, ptr %5, i64 %1337
  %1352 = load float, ptr %1351, align 4, !tbaa !12
  %1353 = fadd float %.lcssa26332637, %1352
  store float %1353, ptr %1351, align 4, !tbaa !12
  %indvars.iv.next3142 = add nuw nsw i64 %indvars.iv3141, 1
  %indvars.iv.next3135 = add i32 %indvars.iv3134, 1
  %exitcond3145.not = icmp eq i64 %indvars.iv.next3142, %wide.trip.count3144
  br i1 %exitcond3145.not, label %.lr.ph2649, label %1304, !llvm.loop !82

.lr.ph2649:                                       ; preds = %._crit_edge2631
  store i32 %1336, ptr %7, align 4, !tbaa !5
  store i32 %915, ptr %9, align 4, !tbaa !5
  %1354 = mul nsw i32 %915, %.01698
  %1355 = sext i32 %1354 to i64
  %wide.trip.count3149 = zext nneg i32 %915 to i64
  %invariant.gep3715 = getelementptr %struct.complex, ptr %4, i64 %1355
  br label %1356

1356:                                             ; preds = %.lr.ph2649, %1356
  %indvars.iv3146 = phi i64 [ 0, %.lr.ph2649 ], [ %indvars.iv.next3147, %1356 ]
  %1357 = phi float [ 0.000000e+00, %.lr.ph2649 ], [ %1363, %1356 ]
  %gep3716 = getelementptr %struct.complex, ptr %invariant.gep3715, i64 %indvars.iv3146
  %1358 = tail call <2 x float> @Cf(ptr noundef %gep3716)
  %1359 = tail call float @cabsf(<2 x float> noundef %1358) #9
  %1360 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3146
  %1361 = load float, ptr %1360, align 4, !tbaa !12
  %1362 = fadd float %1359, %1361
  store float %1362, ptr %1360, align 4, !tbaa !12
  %1363 = fadd float %1359, %1357
  %indvars.iv.next3147 = add nuw nsw i64 %indvars.iv3146, 1
  %exitcond3150.not = icmp eq i64 %indvars.iv.next3147, %wide.trip.count3149
  br i1 %exitcond3150.not, label %._crit_edge2650, label %1356, !llvm.loop !83

._crit_edge2650:                                  ; preds = %1356, %.thread3629
  %.pre-phi3611 = phi i32 [ 0, %.thread3629 ], [ %1354, %1356 ]
  %1364 = phi float [ 0.000000e+00, %.thread3629 ], [ %1363, %1356 ]
  %.56.lcssa = phi i32 [ 0, %.thread3629 ], [ %915, %1356 ]
  %1365 = add nsw i32 %.pre-phi3611, %.56.lcssa
  %1366 = sext i32 %1365 to i64
  %1367 = getelementptr inbounds %struct.complex, ptr %4, i64 %1366
  %1368 = load float, ptr %1367, align 4, !tbaa !9
  %1369 = fcmp oge float %1368, 0.000000e+00
  %1370 = fneg float %1368
  %1371 = select i1 %1369, float %1368, float %1370
  %1372 = fadd float %1364, %1371
  store float %1372, ptr %11, align 4, !tbaa !12
  %1373 = zext nneg i32 %.56.lcssa to i64
  %1374 = getelementptr inbounds float, ptr %5, i64 %1373
  store float %1372, ptr %1374, align 4, !tbaa !12
  %1375 = load i32, ptr %3, align 4, !tbaa !5
  %.not1892.not2666 = icmp slt i32 %1185, %1375
  br i1 %.not1892.not2666, label %.lr.ph2669, label %1393

.lr.ph2669:                                       ; preds = %._crit_edge2650
  %.not18952655 = icmp slt i32 %914, -1
  %1376 = sext i32 %1185 to i64
  %1377 = sext i32 %.01698 to i64
  %wide.trip.count3154 = zext i32 %1185 to i64
  br label %1378

1378:                                             ; preds = %.lr.ph2669, %._crit_edge2659
  %indvars.iv3156 = phi i64 [ %1376, %.lr.ph2669 ], [ %indvars.iv.next3157, %._crit_edge2659 ]
  br i1 %.not18952655, label %._crit_edge2659, label %.lr.ph2658

.lr.ph2658:                                       ; preds = %1378
  %1379 = mul nsw i64 %indvars.iv3156, %1377
  %1380 = getelementptr %struct.complex, ptr %4, i64 %1379
  br label %1381

1381:                                             ; preds = %.lr.ph2658, %1381
  %indvars.iv3151 = phi i64 [ 0, %.lr.ph2658 ], [ %indvars.iv.next3152, %1381 ]
  %1382 = phi float [ 0.000000e+00, %.lr.ph2658 ], [ %1389, %1381 ]
  %1383 = getelementptr %struct.complex, ptr %1380, i64 %indvars.iv3151
  %1384 = tail call <2 x float> @Cf(ptr noundef %1383)
  %1385 = tail call float @cabsf(<2 x float> noundef %1384) #9
  %1386 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3151
  %1387 = load float, ptr %1386, align 4, !tbaa !12
  %1388 = fadd float %1385, %1387
  store float %1388, ptr %1386, align 4, !tbaa !12
  %1389 = fadd float %1385, %1382
  %indvars.iv.next3152 = add nuw nsw i64 %indvars.iv3151, 1
  %exitcond3155.not = icmp eq i64 %indvars.iv.next3152, %wide.trip.count3154
  br i1 %exitcond3155.not, label %._crit_edge2659, label %1381, !llvm.loop !84

._crit_edge2659:                                  ; preds = %1381, %1378
  %.lcssa26612664 = phi float [ 0.000000e+00, %1378 ], [ %1389, %1381 ]
  %1390 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3156
  %1391 = load float, ptr %1390, align 4, !tbaa !12
  %1392 = fadd float %.lcssa26612664, %1391
  store float %1392, ptr %1390, align 4, !tbaa !12
  %indvars.iv.next3157 = add nsw i64 %indvars.iv3156, 1
  %lftr.wideiv3159 = trunc i64 %indvars.iv.next3157 to i32
  %exitcond3160.not = icmp eq i32 %1375, %lftr.wideiv3159
  br i1 %exitcond3160.not, label %._crit_edge2670, label %1378, !llvm.loop !85

._crit_edge2670:                                  ; preds = %._crit_edge2659
  store float %.lcssa26612664, ptr %11, align 4, !tbaa !12
  store i32 %915, ptr %7, align 4, !tbaa !5
  %.pre3557 = load i32, ptr %3, align 4, !tbaa !5
  br label %1393

1393:                                             ; preds = %._crit_edge2670, %._crit_edge2650
  %1394 = phi i32 [ %.pre3557, %._crit_edge2670 ], [ %1375, %._crit_edge2650 ]
  %storemerge1891.lcssa = phi i32 [ %1375, %._crit_edge2670 ], [ %1185, %._crit_edge2650 ]
  store i32 %storemerge1891.lcssa, ptr %9, align 4, !tbaa !5
  %1395 = load float, ptr %5, align 4, !tbaa !12
  %.not1893.not2672 = icmp sgt i32 %1394, 1
  br i1 %.not1893.not2672, label %.lr.ph2676.preheader, label %.loopexit

.lr.ph2676.preheader:                             ; preds = %1393
  %wide.trip.count3164 = zext nneg i32 %1394 to i64
  br label %.lr.ph2676

.lr.ph2676:                                       ; preds = %.lr.ph2676.preheader, %1401
  %indvars.iv3161 = phi i64 [ 1, %.lr.ph2676.preheader ], [ %indvars.iv.next3162, %1401 ]
  %.1072673 = phi float [ %1395, %.lr.ph2676.preheader ], [ %.108, %1401 ]
  %1396 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3161
  %1397 = load float, ptr %1396, align 4, !tbaa !12
  store float %1397, ptr %8, align 4, !tbaa !12
  %1398 = fcmp olt float %.1072673, %1397
  br i1 %1398, label %1401, label %1399

1399:                                             ; preds = %.lr.ph2676
  %1400 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1894 = icmp eq i32 %1400, 0
  br i1 %.not1894, label %1401, label %._crit_edge3558

._crit_edge3558:                                  ; preds = %1399
  %.pre3559 = load float, ptr %8, align 4, !tbaa !12
  br label %1401

1401:                                             ; preds = %.lr.ph2676, %._crit_edge3558, %1399
  %.108 = phi float [ %.1072673, %1399 ], [ %.pre3559, %._crit_edge3558 ], [ %1397, %.lr.ph2676 ]
  %indvars.iv.next3162 = add nuw nsw i64 %indvars.iv3161, 1
  %exitcond3165.not = icmp eq i64 %indvars.iv.next3162, %wide.trip.count3164
  br i1 %exitcond3165.not, label %.loopexit, label %.lr.ph2676, !llvm.loop !86

1402:                                             ; preds = %1183
  %.not1863.not2757 = icmp sgt i32 %914, 0
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %.preheader2061, label %.preheader2064

.preheader2064:                                   ; preds = %1402
  br i1 %.not1863.not2757, label %.preheader2063, label %.preheader2063.thread

.preheader2061:                                   ; preds = %1402
  br i1 %.not1863.not2757, label %._crit_edge2760, label %._crit_edge2760.thread

._crit_edge2760.thread:                           ; preds = %.preheader2061
  %1403 = load float, ptr %4, align 4, !tbaa !9
  %1404 = fcmp oge float %1403, 0.000000e+00
  %1405 = fneg float %1403
  %1406 = select i1 %1404, float %1403, float %1405
  store float %1406, ptr %11, align 4, !tbaa !12
  br label %.thread3633

.preheader2063:                                   ; preds = %.preheader2064
  %1407 = shl nuw i32 %915, 2
  %1408 = zext i32 %1407 to i64
  %scevgep3166 = getelementptr i8, ptr %5, i64 %1408
  %1409 = add nuw nsw i32 %915, 1
  %smax3167 = tail call i32 @llvm.smax.i32(i32 %914, i32 %1409)
  %1410 = xor i32 %915, -1
  %1411 = add nsw i32 %smax3167, %1410
  %1412 = zext i32 %1411 to i64
  %1413 = shl nuw nsw i64 %1412, 2
  %1414 = add nuw nsw i64 %1413, 4
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep3166, i8 0, i64 %1414, i1 false), !tbaa !12
  %.not1877.not2694.not = icmp eq i32 %914, 1
  br i1 %.not1877.not2694.not, label %.preheader2063.thread, label %.lr.ph2696

.lr.ph2696:                                       ; preds = %.preheader2063
  %1415 = zext nneg i32 %915 to i64
  %1416 = sext i32 %.01698 to i64
  %wide.trip.count3179 = zext nneg i32 %915 to i64
  %invariant.gep3717 = getelementptr inbounds float, ptr %5, i64 %1415
  br label %.lr.ph2685

.lr.ph2685:                                       ; preds = %._crit_edge2686, %.lr.ph2696
  %indvars.iv3176 = phi i64 [ 0, %.lr.ph2696 ], [ %indvars.iv.next3177, %._crit_edge2686 ]
  %1417 = mul nsw i64 %indvars.iv3176, %1416
  %1418 = getelementptr %struct.complex, ptr %4, i64 %1417
  br label %1419

1419:                                             ; preds = %.lr.ph2685, %1419
  %indvars.iv3171 = phi i64 [ 0, %.lr.ph2685 ], [ %indvars.iv.next3172, %1419 ]
  %1420 = phi float [ 0.000000e+00, %.lr.ph2685 ], [ %1426, %1419 ]
  %1421 = getelementptr %struct.complex, ptr %1418, i64 %indvars.iv3171
  %1422 = tail call <2 x float> @Cf(ptr noundef %1421)
  %1423 = tail call float @cabsf(<2 x float> noundef %1422) #9
  %gep3718 = getelementptr inbounds float, ptr %invariant.gep3717, i64 %indvars.iv3171
  %1424 = load float, ptr %gep3718, align 4, !tbaa !12
  %1425 = fadd float %1423, %1424
  store float %1425, ptr %gep3718, align 4, !tbaa !12
  %1426 = fadd float %1423, %1420
  %indvars.iv.next3172 = add nuw nsw i64 %indvars.iv3171, 1
  %exitcond3175.not = icmp eq i64 %indvars.iv.next3172, %wide.trip.count3179
  br i1 %exitcond3175.not, label %._crit_edge2686, label %1419, !llvm.loop !87

._crit_edge2686:                                  ; preds = %1419
  %1427 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3176
  store float %1426, ptr %1427, align 4, !tbaa !12
  %indvars.iv.next3177 = add nuw nsw i64 %indvars.iv3176, 1
  %exitcond3180.not = icmp eq i64 %indvars.iv.next3177, %wide.trip.count3179
  br i1 %exitcond3180.not, label %._crit_edge2697, label %.lr.ph2685, !llvm.loop !88

._crit_edge2697:                                  ; preds = %._crit_edge2686
  %1428 = add nsw i32 %915, -1
  store float %1426, ptr %11, align 4, !tbaa !12
  store i32 %1428, ptr %7, align 4, !tbaa !5
  br label %.preheader2063.thread

.preheader2063.thread:                            ; preds = %.preheader2064, %._crit_edge2697, %.preheader2063
  %1429 = phi i32 [ %915, %._crit_edge2697 ], [ 0, %.preheader2063 ], [ 0, %.preheader2064 ]
  %1430 = mul nsw i32 %1429, %.01698
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds %struct.complex, ptr %4, i64 %1431
  %1433 = load float, ptr %1432, align 4, !tbaa !9
  %1434 = fcmp oge float %1433, 0.000000e+00
  %1435 = fneg float %1433
  %1436 = select i1 %1434, float %1433, float %1435
  %.not1878.not2701 = icmp sgt i32 %914, 3
  br i1 %.not1878.not2701, label %.lr.ph2704, label %._crit_edge2705

.lr.ph2704:                                       ; preds = %.preheader2063.thread
  %1437 = zext nneg i32 %915 to i64
  %wide.trip.count3184 = zext nneg i32 %915 to i64
  %invariant.gep3719 = getelementptr %struct.complex, ptr %4, i64 %1431
  %invariant.gep3721 = getelementptr inbounds float, ptr %5, i64 %1437
  br label %1438

1438:                                             ; preds = %.lr.ph2704, %1438
  %indvars.iv3181 = phi i64 [ 1, %.lr.ph2704 ], [ %indvars.iv.next3182, %1438 ]
  %1439 = phi float [ %1436, %.lr.ph2704 ], [ %1444, %1438 ]
  %gep3720 = getelementptr %struct.complex, ptr %invariant.gep3719, i64 %indvars.iv3181
  %1440 = tail call <2 x float> @Cf(ptr noundef %gep3720)
  %1441 = tail call float @cabsf(<2 x float> noundef %1440) #9
  %gep3722 = getelementptr inbounds float, ptr %invariant.gep3721, i64 %indvars.iv3181
  %1442 = load float, ptr %gep3722, align 4, !tbaa !12
  %1443 = fadd float %1441, %1442
  store float %1443, ptr %gep3722, align 4, !tbaa !12
  %1444 = fadd float %1441, %1439
  %indvars.iv.next3182 = add nuw nsw i64 %indvars.iv3181, 1
  %exitcond3185.not = icmp eq i64 %indvars.iv.next3182, %wide.trip.count3184
  br i1 %exitcond3185.not, label %._crit_edge2705, label %1438, !llvm.loop !89

._crit_edge2705:                                  ; preds = %1438, %.preheader2063.thread
  %1445 = phi float [ %1436, %.preheader2063.thread ], [ %1444, %1438 ]
  %1446 = sext i32 %1429 to i64
  %1447 = getelementptr inbounds float, ptr %5, i64 %1446
  %1448 = load float, ptr %1447, align 4, !tbaa !12
  %1449 = fadd float %1445, %1448
  store float %1449, ptr %1447, align 4, !tbaa !12
  %1450 = load i32, ptr %3, align 4, !tbaa !5
  %1451 = add nsw i32 %1450, -1
  %storemerge18792732 = add nsw i32 %915, 1
  store i32 %storemerge18792732, ptr %9, align 4, !tbaa !5
  %.not1880.not2733 = icmp slt i32 %915, %1451
  br i1 %.not1880.not2733, label %.lr.ph2737, label %1504

.lr.ph2737:                                       ; preds = %._crit_edge2705
  %1452 = xor i32 %915, -1
  %smax3200 = tail call i32 @llvm.smax.i32(i32 %storemerge18792732, i32 %1451)
  %1453 = add nsw i32 %smax3200, 1
  br label %1454

1454:                                             ; preds = %.lr.ph2737, %._crit_edge2723
  %storemerge1879.in2741 = phi i32 [ %storemerge18792732, %.lr.ph2737 ], [ %storemerge1879, %._crit_edge2723 ]
  %storemerge1879.in2734 = phi i32 [ %915, %.lr.ph2737 ], [ %storemerge1879.in2741, %._crit_edge2723 ]
  %1455 = sub i32 %915, %storemerge1879.in2734
  %.not18842709 = icmp sgt i32 %1455, -1
  %.pre3602 = mul nsw i32 %storemerge1879.in2741, %.01698
  br i1 %.not18842709, label %._crit_edge2713, label %.lr.ph2712

.lr.ph2712:                                       ; preds = %1454
  %1456 = sext i32 %.pre3602 to i64
  %1457 = sub i32 %storemerge1879.in2734, %915
  %wide.trip.count3189 = zext i32 %1457 to i64
  %invariant.gep3723 = getelementptr %struct.complex, ptr %4, i64 %1456
  br label %1458

1458:                                             ; preds = %.lr.ph2712, %1458
  %indvars.iv3186 = phi i64 [ 0, %.lr.ph2712 ], [ %indvars.iv.next3187, %1458 ]
  %1459 = phi float [ 0.000000e+00, %.lr.ph2712 ], [ %1465, %1458 ]
  %gep3724 = getelementptr %struct.complex, ptr %invariant.gep3723, i64 %indvars.iv3186
  %1460 = tail call <2 x float> @Cf(ptr noundef %gep3724)
  %1461 = tail call float @cabsf(<2 x float> noundef %1460) #9
  %1462 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3186
  %1463 = load float, ptr %1462, align 4, !tbaa !12
  %1464 = fadd float %1461, %1463
  store float %1464, ptr %1462, align 4, !tbaa !12
  %1465 = fadd float %1461, %1459
  %indvars.iv.next3187 = add nuw nsw i64 %indvars.iv3186, 1
  %exitcond3190.not = icmp eq i64 %indvars.iv.next3187, %wide.trip.count3189
  br i1 %exitcond3190.not, label %._crit_edge2713, label %1458, !llvm.loop !90

._crit_edge2713:                                  ; preds = %1458, %1454
  %.lcssa27252728 = phi float [ 0.000000e+00, %1454 ], [ %1465, %1458 ]
  %.62.lcssa = phi i32 [ 0, %1454 ], [ %1457, %1458 ]
  %1466 = add nsw i32 %.pre3602, %.62.lcssa
  %1467 = sext i32 %1466 to i64
  %1468 = getelementptr inbounds %struct.complex, ptr %4, i64 %1467
  %1469 = load float, ptr %1468, align 4, !tbaa !9
  %1470 = fcmp oge float %1469, 0.000000e+00
  %1471 = fneg float %1469
  %1472 = select i1 %1470, float %1469, float %1471
  %1473 = fadd float %.lcssa27252728, %1472
  %1474 = add i32 %storemerge1879.in2741, %1452
  %1475 = sext i32 %1474 to i64
  %1476 = getelementptr inbounds float, ptr %5, i64 %1475
  %1477 = load float, ptr %1476, align 4, !tbaa !12
  %1478 = fadd float %1473, %1477
  store float %1478, ptr %1476, align 4, !tbaa !12
  %1479 = add nuw nsw i32 %.62.lcssa, 1
  %1480 = add nsw i32 %.pre3602, %1479
  %1481 = sext i32 %1480 to i64
  %1482 = getelementptr inbounds %struct.complex, ptr %4, i64 %1481
  %1483 = load float, ptr %1482, align 4, !tbaa !9
  %1484 = fcmp oge float %1483, 0.000000e+00
  %1485 = fneg float %1483
  %1486 = select i1 %1484, float %1483, float %1485
  %1487 = load i32, ptr %3, align 4, !tbaa !5
  %1488 = add nsw i32 %1487, -1
  %.not1885.not2718 = icmp slt i32 %storemerge1879.in2741, %1488
  br i1 %.not1885.not2718, label %.lr.ph2722, label %._crit_edge2713.._crit_edge2723_crit_edge

._crit_edge2713.._crit_edge2723_crit_edge:        ; preds = %._crit_edge2713
  %.pre3604 = sext i32 %storemerge1879.in2741 to i64
  br label %._crit_edge2723

.lr.ph2722:                                       ; preds = %._crit_edge2713
  %1489 = sext i32 %.62.lcssa to i64
  %1490 = add nsw i64 %1489, 1
  %1491 = sext i32 %.pre3602 to i64
  %1492 = sext i32 %storemerge1879.in2741 to i64
  %wide.trip.count3198 = sext i32 %1488 to i64
  %invariant.gep3725 = getelementptr %struct.complex, ptr %4, i64 %1491
  br label %1493

1493:                                             ; preds = %.lr.ph2722, %1493
  %indvars.iv3193 = phi i64 [ %1492, %.lr.ph2722 ], [ %indvars.iv.next3194, %1493 ]
  %indvars.iv3191 = phi i64 [ %1490, %.lr.ph2722 ], [ %indvars.iv.next3192, %1493 ]
  %1494 = phi float [ %1486, %.lr.ph2722 ], [ %1500, %1493 ]
  %indvars.iv.next3194 = add nsw i64 %indvars.iv3193, 1
  %indvars.iv.next3192 = add nuw nsw i64 %indvars.iv3191, 1
  %gep3726 = getelementptr %struct.complex, ptr %invariant.gep3725, i64 %indvars.iv.next3192
  %1495 = tail call <2 x float> @Cf(ptr noundef %gep3726)
  %1496 = tail call float @cabsf(<2 x float> noundef %1495) #9
  %1497 = getelementptr inbounds float, ptr %5, i64 %indvars.iv.next3194
  %1498 = load float, ptr %1497, align 4, !tbaa !12
  %1499 = fadd float %1496, %1498
  store float %1499, ptr %1497, align 4, !tbaa !12
  %1500 = fadd float %1496, %1494
  %exitcond3199.not = icmp eq i64 %indvars.iv.next3194, %wide.trip.count3198
  br i1 %exitcond3199.not, label %._crit_edge2723, label %1493, !llvm.loop !91

._crit_edge2723:                                  ; preds = %1493, %._crit_edge2713.._crit_edge2723_crit_edge
  %.pre-phi3605 = phi i64 [ %.pre3604, %._crit_edge2713.._crit_edge2723_crit_edge ], [ %1492, %1493 ]
  %.lcssa27252729 = phi float [ %1486, %._crit_edge2713.._crit_edge2723_crit_edge ], [ %1500, %1493 ]
  %1501 = getelementptr inbounds float, ptr %5, i64 %.pre-phi3605
  %1502 = load float, ptr %1501, align 4, !tbaa !12
  %1503 = fadd float %.lcssa27252729, %1502
  store float %1503, ptr %1501, align 4, !tbaa !12
  %storemerge1879 = add i32 %storemerge1879.in2741, 1
  %exitcond3201.not = icmp eq i32 %storemerge1879.in2741, %smax3200
  br i1 %exitcond3201.not, label %._crit_edge2738, label %1454, !llvm.loop !92

._crit_edge2738:                                  ; preds = %._crit_edge2723
  store i32 %1488, ptr %7, align 4, !tbaa !5
  store i32 %1453, ptr %9, align 4, !tbaa !5
  br label %1504

1504:                                             ; preds = %._crit_edge2738, %._crit_edge2705
  %1505 = phi i32 [ %1453, %._crit_edge2738 ], [ %storemerge18792732, %._crit_edge2705 ]
  %.not18812743 = icmp slt i32 %914, 4
  %.pre3606 = mul nsw i32 %1505, %.01698
  br i1 %.not18812743, label %._crit_edge3586, label %.lr.ph2746

.lr.ph2746:                                       ; preds = %1504
  %1506 = sext i32 %.pre3606 to i64
  %1507 = add nsw i32 %915, -1
  %wide.trip.count3205 = zext i32 %1507 to i64
  %invariant.gep3727 = getelementptr %struct.complex, ptr %4, i64 %1506
  br label %1508

1508:                                             ; preds = %.lr.ph2746, %1508
  %indvars.iv3202 = phi i64 [ 0, %.lr.ph2746 ], [ %indvars.iv.next3203, %1508 ]
  %1509 = phi float [ 0.000000e+00, %.lr.ph2746 ], [ %1515, %1508 ]
  %gep3728 = getelementptr %struct.complex, ptr %invariant.gep3727, i64 %indvars.iv3202
  %1510 = tail call <2 x float> @Cf(ptr noundef %gep3728)
  %1511 = tail call float @cabsf(<2 x float> noundef %1510) #9
  %1512 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3202
  %1513 = load float, ptr %1512, align 4, !tbaa !12
  %1514 = fadd float %1511, %1513
  store float %1514, ptr %1512, align 4, !tbaa !12
  %1515 = fadd float %1511, %1509
  %indvars.iv.next3203 = add nuw nsw i64 %indvars.iv3202, 1
  %exitcond3206.not = icmp eq i64 %indvars.iv.next3203, %wide.trip.count3205
  br i1 %exitcond3206.not, label %._crit_edge3586, label %1508, !llvm.loop !93

._crit_edge3586:                                  ; preds = %1508, %1504
  %1516 = phi float [ 0.000000e+00, %1504 ], [ %1515, %1508 ]
  %.64.lcssa = phi i32 [ 0, %1504 ], [ %1507, %1508 ]
  %1517 = add nsw i32 %.pre3606, %.64.lcssa
  %1518 = sext i32 %1517 to i64
  %1519 = getelementptr inbounds %struct.complex, ptr %4, i64 %1518
  %1520 = load float, ptr %1519, align 4, !tbaa !9
  %1521 = fcmp oge float %1520, 0.000000e+00
  %1522 = fneg float %1520
  %1523 = select i1 %1521, float %1520, float %1522
  %1524 = fadd float %1516, %1523
  store float %1524, ptr %11, align 4, !tbaa !12
  %1525 = zext nneg i32 %.64.lcssa to i64
  %1526 = getelementptr inbounds float, ptr %5, i64 %1525
  %1527 = load float, ptr %1526, align 4, !tbaa !12
  %1528 = fadd float %1527, %1524
  store float %1528, ptr %1526, align 4, !tbaa !12
  %1529 = load float, ptr %5, align 4, !tbaa !12
  %1530 = load i32, ptr %3, align 4, !tbaa !5
  %.not1882.not2751 = icmp sgt i32 %1530, 1
  br i1 %.not1882.not2751, label %.lr.ph2755.preheader, label %.loopexit

.lr.ph2755.preheader:                             ; preds = %._crit_edge3586
  %wide.trip.count3210 = zext nneg i32 %1530 to i64
  br label %.lr.ph2755

.lr.ph2755:                                       ; preds = %.lr.ph2755.preheader, %1536
  %indvars.iv3207 = phi i64 [ 1, %.lr.ph2755.preheader ], [ %indvars.iv.next3208, %1536 ]
  %.1092752 = phi float [ %1529, %.lr.ph2755.preheader ], [ %.110, %1536 ]
  %1531 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3207
  %1532 = load float, ptr %1531, align 4, !tbaa !12
  store float %1532, ptr %8, align 4, !tbaa !12
  %1533 = fcmp olt float %.1092752, %1532
  br i1 %1533, label %1536, label %1534

1534:                                             ; preds = %.lr.ph2755
  %1535 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1883 = icmp eq i32 %1535, 0
  br i1 %.not1883, label %1536, label %._crit_edge3560

._crit_edge3560:                                  ; preds = %1534
  %.pre3561 = load float, ptr %8, align 4, !tbaa !12
  br label %1536

1536:                                             ; preds = %.lr.ph2755, %._crit_edge3560, %1534
  %.110 = phi float [ %.1092752, %1534 ], [ %.pre3561, %._crit_edge3560 ], [ %1532, %.lr.ph2755 ]
  %indvars.iv.next3208 = add nuw nsw i64 %indvars.iv3207, 1
  %exitcond3211.not = icmp eq i64 %indvars.iv.next3208, %wide.trip.count3210
  br i1 %exitcond3211.not, label %.loopexit, label %.lr.ph2755, !llvm.loop !94

._crit_edge2760:                                  ; preds = %.preheader2061
  %1537 = shl nuw i32 %915, 2
  %1538 = zext i32 %1537 to i64
  %scevgep3212 = getelementptr i8, ptr %5, i64 %1538
  %1539 = add nuw nsw i32 %915, 1
  %smax3213 = tail call i32 @llvm.smax.i32(i32 %914, i32 %1539)
  %1540 = xor i32 %915, -1
  %1541 = add nsw i32 %smax3213, %1540
  %1542 = zext i32 %1541 to i64
  %1543 = shl nuw nsw i64 %1542, 2
  %1544 = add nuw nsw i64 %1543, 4
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep3212, i8 0, i64 %1544, i1 false), !tbaa !12
  %1545 = load float, ptr %4, align 4, !tbaa !9
  %1546 = fcmp oge float %1545, 0.000000e+00
  %1547 = fneg float %1545
  %1548 = select i1 %1546, float %1545, float %1547
  store float %1548, ptr %11, align 4, !tbaa !12
  %.not1864.not2762 = icmp ugt i32 %914, 3
  br i1 %.not1864.not2762, label %.lr.ph2765, label %.thread3633

.thread3633:                                      ; preds = %._crit_edge2760, %._crit_edge2760.thread
  %1549 = phi float [ %1406, %._crit_edge2760.thread ], [ %1548, %._crit_edge2760 ]
  %.pre3596 = sext i32 %915 to i64
  %1550 = getelementptr inbounds float, ptr %5, i64 %.pre3596
  %1551 = load float, ptr %1550, align 4, !tbaa !12
  %1552 = fadd float %1549, %1551
  store float %1552, ptr %1550, align 4, !tbaa !12
  br label %._crit_edge2804

.lr.ph2765:                                       ; preds = %._crit_edge2760
  %1553 = zext nneg i32 %915 to i64
  %smax3220 = tail call i32 @llvm.smax.i32(i32 %915, i32 2)
  %wide.trip.count3221 = zext nneg i32 %smax3220 to i64
  %invariant.gep3729 = getelementptr inbounds float, ptr %5, i64 %1553
  br label %1554

1554:                                             ; preds = %.lr.ph2765, %1554
  %indvars.iv3217 = phi i64 [ 1, %.lr.ph2765 ], [ %indvars.iv.next3218, %1554 ]
  %1555 = phi float [ %1548, %.lr.ph2765 ], [ %1561, %1554 ]
  %1556 = getelementptr inbounds %struct.complex, ptr %4, i64 %indvars.iv3217
  %1557 = tail call <2 x float> @Cf(ptr noundef nonnull %1556)
  %1558 = tail call float @cabsf(<2 x float> noundef %1557) #9
  %gep3730 = getelementptr inbounds float, ptr %invariant.gep3729, i64 %indvars.iv3217
  %1559 = load float, ptr %gep3730, align 4, !tbaa !12
  %1560 = fadd float %1558, %1559
  store float %1560, ptr %gep3730, align 4, !tbaa !12
  %1561 = fadd float %1558, %1555
  %indvars.iv.next3218 = add nuw nsw i64 %indvars.iv3217, 1
  %exitcond3222.not = icmp eq i64 %indvars.iv.next3218, %wide.trip.count3221
  br i1 %exitcond3222.not, label %1562, label %1554, !llvm.loop !95

1562:                                             ; preds = %1554
  %1563 = getelementptr inbounds float, ptr %5, i64 %1553
  %1564 = load float, ptr %1563, align 4, !tbaa !12
  %1565 = fadd float %1561, %1564
  store float %1565, ptr %1563, align 4, !tbaa !12
  %invariant.gep = getelementptr i8, ptr %5, i64 -4
  %.not1866.not2792 = icmp sgt i32 %914, 3
  br i1 %.not1866.not2792, label %.lr.ph2795, label %._crit_edge2804

.lr.ph2795:                                       ; preds = %1562
  %1566 = sext i32 %.01698 to i64
  %1567 = add nsw i32 %915, -1
  %wide.trip.count3246 = zext i32 %1567 to i64
  br label %1568

1568:                                             ; preds = %.lr.ph2795, %._crit_edge2784
  %indvars.iv3241 = phi i64 [ 1, %.lr.ph2795 ], [ %indvars.iv.next3242, %._crit_edge2784 ]
  %indvars.iv3239 = phi i64 [ 0, %.lr.ph2795 ], [ %indvars.iv.next3240, %._crit_edge2784 ]
  %indvars.iv3232.in = phi i32 [ %915, %.lr.ph2795 ], [ %indvars.iv3232, %._crit_edge2784 ]
  %indvars.iv3232 = add i32 %indvars.iv3232.in, 1
  %1569 = sext i32 %indvars.iv3232 to i64
  %.not18732770 = icmp ult i64 %indvars.iv3241, 2
  %.pre3598 = mul nsw i64 %indvars.iv3241, %1566
  br i1 %.not18732770, label %._crit_edge2774, label %.lr.ph2773

.lr.ph2773:                                       ; preds = %1568
  %1570 = getelementptr %struct.complex, ptr %4, i64 %.pre3598
  br label %1571

1571:                                             ; preds = %.lr.ph2773, %1571
  %indvars.iv3223 = phi i64 [ 0, %.lr.ph2773 ], [ %indvars.iv.next3224, %1571 ]
  %1572 = phi float [ 0.000000e+00, %.lr.ph2773 ], [ %1579, %1571 ]
  %1573 = getelementptr %struct.complex, ptr %1570, i64 %indvars.iv3223
  %1574 = tail call <2 x float> @Cf(ptr noundef nonnull %1573)
  %1575 = tail call float @cabsf(<2 x float> noundef %1574) #9
  %1576 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3223
  %1577 = load float, ptr %1576, align 4, !tbaa !12
  %1578 = fadd float %1575, %1577
  store float %1578, ptr %1576, align 4, !tbaa !12
  %1579 = fadd float %1575, %1572
  %indvars.iv.next3224 = add nuw nsw i64 %indvars.iv3223, 1
  %exitcond3229.not = icmp eq i64 %indvars.iv.next3224, %indvars.iv3239
  br i1 %exitcond3229.not, label %._crit_edge2774.loopexit, label %1571, !llvm.loop !96

._crit_edge2774.loopexit:                         ; preds = %1571
  %1580 = trunc nuw nsw i64 %indvars.iv3239 to i32
  br label %._crit_edge2774

._crit_edge2774:                                  ; preds = %1568, %._crit_edge2774.loopexit
  %.lcssa27862789 = phi float [ %1579, %._crit_edge2774.loopexit ], [ 0.000000e+00, %1568 ]
  %.68.lcssa = phi i32 [ %1580, %._crit_edge2774.loopexit ], [ 0, %1568 ]
  %1581 = sext i32 %.68.lcssa to i64
  %1582 = getelementptr %struct.complex, ptr %4, i64 %.pre3598
  %1583 = getelementptr %struct.complex, ptr %1582, i64 %1581
  %1584 = load float, ptr %1583, align 4, !tbaa !9
  %1585 = fcmp oge float %1584, 0.000000e+00
  %1586 = fneg float %1584
  %1587 = select i1 %1585, float %1584, float %1586
  %1588 = fadd float %.lcssa27862789, %1587
  %gep = getelementptr float, ptr %invariant.gep, i64 %indvars.iv3241
  store float %1588, ptr %gep, align 4, !tbaa !12
  %1589 = getelementptr %struct.complex, ptr %4, i64 %.pre3598
  %1590 = sext i32 %.68.lcssa to i64
  %1591 = getelementptr %struct.complex, ptr %1589, i64 %1590
  %1592 = getelementptr i8, ptr %1591, i64 8
  %1593 = load float, ptr %1592, align 4, !tbaa !9
  %1594 = fcmp oge float %1593, 0.000000e+00
  %1595 = fneg float %1593
  %1596 = select i1 %1594, float %1593, float %1595
  %1597 = load i32, ptr %3, align 4, !tbaa !5
  %1598 = add nsw i32 %1597, -1
  %1599 = add nuw nsw i64 %indvars.iv3241, %1553
  %1600 = sext i32 %1598 to i64
  %.not1874.not2779 = icmp slt i64 %1599, %1600
  br i1 %.not1874.not2779, label %.lr.ph2783, label %._crit_edge2784

.lr.ph2783:                                       ; preds = %._crit_edge2774
  %1601 = zext nneg i32 %.68.lcssa to i64
  %1602 = add nuw nsw i64 %1601, 1
  %1603 = getelementptr %struct.complex, ptr %4, i64 %.pre3598
  br label %1604

1604:                                             ; preds = %.lr.ph2783, %1604
  %indvars.iv3234 = phi i64 [ %1569, %.lr.ph2783 ], [ %indvars.iv.next3235, %1604 ]
  %indvars.iv3230 = phi i64 [ %1602, %.lr.ph2783 ], [ %indvars.iv.next3231, %1604 ]
  %1605 = phi float [ %1596, %.lr.ph2783 ], [ %1609, %1604 ]
  %indvars.iv.next3235 = add nsw i64 %indvars.iv3234, 1
  %indvars.iv.next3231 = add nuw nsw i64 %indvars.iv3230, 1
  %1606 = getelementptr %struct.complex, ptr %1603, i64 %indvars.iv.next3231
  %1607 = tail call <2 x float> @Cf(ptr noundef nonnull %1606)
  %1608 = tail call float @cabsf(<2 x float> noundef %1607) #9
  %1609 = fadd float %1608, %1605
  %1610 = getelementptr inbounds float, ptr %5, i64 %indvars.iv.next3235
  %1611 = load float, ptr %1610, align 4, !tbaa !12
  %1612 = fadd float %1608, %1611
  store float %1612, ptr %1610, align 4, !tbaa !12
  %.not1874.not = icmp slt i64 %indvars.iv.next3235, %1600
  br i1 %.not1874.not, label %1604, label %._crit_edge2784, !llvm.loop !97

._crit_edge2784:                                  ; preds = %1604, %._crit_edge2774
  %.lcssa27862790 = phi float [ %1596, %._crit_edge2774 ], [ %1609, %1604 ]
  %1613 = getelementptr inbounds float, ptr %5, i64 %1599
  %1614 = load float, ptr %1613, align 4, !tbaa !12
  %1615 = fadd float %.lcssa27862790, %1614
  store float %1615, ptr %1613, align 4, !tbaa !12
  %indvars.iv.next3242 = add nuw nsw i64 %indvars.iv3241, 1
  %indvars.iv.next3240 = add nuw nsw i64 %indvars.iv3239, 1
  %exitcond3247.not = icmp eq i64 %indvars.iv.next3240, %wide.trip.count3246
  br i1 %exitcond3247.not, label %.lr.ph2803, label %1568, !llvm.loop !98

.lr.ph2803:                                       ; preds = %._crit_edge2784
  store i32 %1598, ptr %7, align 4, !tbaa !5
  %1616 = trunc nuw nsw i64 %indvars.iv.next3242 to i32
  %1617 = mul nsw i32 %.01698, %1616
  %1618 = sext i32 %1617 to i64
  %1619 = add nsw i32 %915, -1
  %wide.trip.count3251 = zext i32 %1619 to i64
  %invariant.gep3731 = getelementptr %struct.complex, ptr %4, i64 %1618
  br label %1620

1620:                                             ; preds = %.lr.ph2803, %1620
  %indvars.iv3248 = phi i64 [ 0, %.lr.ph2803 ], [ %indvars.iv.next3249, %1620 ]
  %1621 = phi float [ 0.000000e+00, %.lr.ph2803 ], [ %1627, %1620 ]
  %gep3732 = getelementptr %struct.complex, ptr %invariant.gep3731, i64 %indvars.iv3248
  %1622 = tail call <2 x float> @Cf(ptr noundef nonnull %gep3732)
  %1623 = tail call float @cabsf(<2 x float> noundef %1622) #9
  %1624 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3248
  %1625 = load float, ptr %1624, align 4, !tbaa !12
  %1626 = fadd float %1623, %1625
  store float %1626, ptr %1624, align 4, !tbaa !12
  %1627 = fadd float %1623, %1621
  %indvars.iv.next3249 = add nuw nsw i64 %indvars.iv3248, 1
  %exitcond3252.not = icmp eq i64 %indvars.iv.next3249, %wide.trip.count3251
  br i1 %exitcond3252.not, label %._crit_edge2804, label %1620, !llvm.loop !99

._crit_edge2804:                                  ; preds = %1620, %.thread3633, %1562
  %.pre-phi3601 = phi i32 [ %.01698, %.thread3633 ], [ %.01698, %1562 ], [ %1617, %1620 ]
  %1628 = phi float [ 0.000000e+00, %.thread3633 ], [ 0.000000e+00, %1562 ], [ %1627, %1620 ]
  %.70.lcssa = phi i32 [ 0, %.thread3633 ], [ 0, %1562 ], [ %1619, %1620 ]
  %1629 = add nsw i32 %.pre-phi3601, %.70.lcssa
  %1630 = sext i32 %1629 to i64
  %1631 = getelementptr inbounds %struct.complex, ptr %4, i64 %1630
  %1632 = load float, ptr %1631, align 4, !tbaa !9
  %1633 = fcmp oge float %1632, 0.000000e+00
  %1634 = fneg float %1632
  %1635 = select i1 %1633, float %1632, float %1634
  %1636 = fadd float %1628, %1635
  store float %1636, ptr %11, align 4, !tbaa !12
  %1637 = zext nneg i32 %.70.lcssa to i64
  %1638 = getelementptr inbounds float, ptr %5, i64 %1637
  store float %1636, ptr %1638, align 4, !tbaa !12
  %1639 = load i32, ptr %3, align 4, !tbaa !5
  %storemerge18682823 = add nsw i32 %915, 1
  store i32 %storemerge18682823, ptr %9, align 4, !tbaa !5
  %.not1869.not2824 = icmp slt i32 %915, %1639
  br i1 %.not1869.not2824, label %.lr.ph2827, label %1657

.lr.ph2827:                                       ; preds = %._crit_edge2804
  %.not18722809 = icmp slt i32 %914, 2
  %smax3258 = tail call i32 @llvm.smax.i32(i32 %storemerge18682823, i32 %1639)
  %1640 = add i32 %smax3258, 1
  %wide.trip.count3256 = zext nneg i32 %915 to i64
  %1641 = getelementptr i8, ptr %5, i64 -4
  br label %1642

1642:                                             ; preds = %.lr.ph2827, %._crit_edge2813
  %storemerge1868.in2830 = phi i32 [ %storemerge18682823, %.lr.ph2827 ], [ %storemerge1868, %._crit_edge2813 ]
  br i1 %.not18722809, label %._crit_edge2813, label %.lr.ph2812

.lr.ph2812:                                       ; preds = %1642
  %1643 = mul nsw i32 %storemerge1868.in2830, %.01698
  %1644 = sext i32 %1643 to i64
  %invariant.gep3733 = getelementptr %struct.complex, ptr %4, i64 %1644
  br label %1645

1645:                                             ; preds = %.lr.ph2812, %1645
  %indvars.iv3253 = phi i64 [ 0, %.lr.ph2812 ], [ %indvars.iv.next3254, %1645 ]
  %1646 = phi float [ 0.000000e+00, %.lr.ph2812 ], [ %1652, %1645 ]
  %gep3734 = getelementptr %struct.complex, ptr %invariant.gep3733, i64 %indvars.iv3253
  %1647 = tail call <2 x float> @Cf(ptr noundef nonnull %gep3734)
  %1648 = tail call float @cabsf(<2 x float> noundef %1647) #9
  %1649 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3253
  %1650 = load float, ptr %1649, align 4, !tbaa !12
  %1651 = fadd float %1648, %1650
  store float %1651, ptr %1649, align 4, !tbaa !12
  %1652 = fadd float %1648, %1646
  %indvars.iv.next3254 = add nuw nsw i64 %indvars.iv3253, 1
  %exitcond3257.not = icmp eq i64 %indvars.iv.next3254, %wide.trip.count3256
  br i1 %exitcond3257.not, label %._crit_edge2813, label %1645, !llvm.loop !100

._crit_edge2813:                                  ; preds = %1645, %1642
  %.lcssa28152820 = phi float [ 0.000000e+00, %1642 ], [ %1652, %1645 ]
  %1653 = sext i32 %storemerge1868.in2830 to i64
  %gep2817 = getelementptr float, ptr %1641, i64 %1653
  %1654 = load float, ptr %gep2817, align 4, !tbaa !12
  %1655 = fadd float %.lcssa28152820, %1654
  store float %1655, ptr %gep2817, align 4, !tbaa !12
  %storemerge1868 = add i32 %storemerge1868.in2830, 1
  %exitcond3259.not = icmp eq i32 %storemerge1868.in2830, %smax3258
  br i1 %exitcond3259.not, label %._crit_edge2828, label %1642, !llvm.loop !101

._crit_edge2828:                                  ; preds = %._crit_edge2813
  %1656 = add nsw i32 %915, -1
  store float %.lcssa28152820, ptr %11, align 4, !tbaa !12
  store i32 %1656, ptr %7, align 4, !tbaa !5
  store i32 %1640, ptr %9, align 4, !tbaa !5
  %.pre3562 = load i32, ptr %3, align 4, !tbaa !5
  br label %1657

1657:                                             ; preds = %._crit_edge2828, %._crit_edge2804
  %1658 = phi i32 [ %.pre3562, %._crit_edge2828 ], [ %1639, %._crit_edge2804 ]
  %1659 = load float, ptr %5, align 4, !tbaa !12
  %.not1870.not2831 = icmp sgt i32 %1658, 1
  br i1 %.not1870.not2831, label %.lr.ph2835.preheader, label %.loopexit

.lr.ph2835.preheader:                             ; preds = %1657
  %wide.trip.count3263 = zext nneg i32 %1658 to i64
  br label %.lr.ph2835

.lr.ph2835:                                       ; preds = %.lr.ph2835.preheader, %1665
  %indvars.iv3260 = phi i64 [ 1, %.lr.ph2835.preheader ], [ %indvars.iv.next3261, %1665 ]
  %.1112832 = phi float [ %1659, %.lr.ph2835.preheader ], [ %.112, %1665 ]
  %1660 = getelementptr inbounds float, ptr %5, i64 %indvars.iv3260
  %1661 = load float, ptr %1660, align 4, !tbaa !12
  store float %1661, ptr %8, align 4, !tbaa !12
  %1662 = fcmp olt float %.1112832, %1661
  br i1 %1662, label %1665, label %1663

1663:                                             ; preds = %.lr.ph2835
  %1664 = call i32 @sisnan_(ptr noundef nonnull %8) #9
  %.not1871 = icmp eq i32 %1664, 0
  br i1 %.not1871, label %1665, label %._crit_edge3563

._crit_edge3563:                                  ; preds = %1663
  %.pre3564 = load float, ptr %8, align 4, !tbaa !12
  br label %1665

1665:                                             ; preds = %.lr.ph2835, %._crit_edge3563, %1663
  %.112 = phi float [ %.1112832, %1663 ], [ %.pre3564, %._crit_edge3563 ], [ %1661, %.lr.ph2835 ]
  %indvars.iv.next3261 = add nuw nsw i64 %indvars.iv3260, 1
  %exitcond3264.not = icmp eq i64 %indvars.iv.next3261, %wide.trip.count3263
  br i1 %exitcond3264.not, label %.loopexit, label %.lr.ph2835, !llvm.loop !102

1666:                                             ; preds = %910
  %1667 = tail call i32 @lsame_(ptr noundef nonnull %0, ptr noundef nonnull @.str.5) #9
  %.not1810 = icmp eq i32 %1667, 0
  br i1 %.not1810, label %1668, label %1670

1668:                                             ; preds = %1666
  %1669 = tail call i32 @lsame_(ptr noundef nonnull %0, ptr noundef nonnull @.str.6) #9
  %.not1811 = icmp eq i32 %1669, 0
  br i1 %.not1811, label %.loopexit, label %1670

1670:                                             ; preds = %1668, %1666
  %1671 = load i32, ptr %3, align 4, !tbaa !5
  %1672 = add nsw i32 %1671, 1
  %1673 = sdiv i32 %1672, 2
  store i32 %1673, ptr %10, align 4, !tbaa !5
  store float 0.000000e+00, ptr %12, align 4, !tbaa !12
  store float 1.000000e+00, ptr %11, align 4, !tbaa !12
  %.not1812 = icmp eq i32 %20, 0
  br i1 %.not1812, label %1992, label %1674

1674:                                             ; preds = %1670
  br i1 %.not, label %1675, label %1826

1675:                                             ; preds = %1674
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %.preheader2075, label %1676

.preheader2075:                                   ; preds = %1675
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not1853.not2440 = icmp sgt i32 %1671, 0
  br i1 %.not1853.not2440, label %.lr.ph2442, label %._crit_edge2443

1676:                                             ; preds = %1675
  %1677 = add nsw i32 %1673, -3
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not18582420 = icmp slt i32 %1671, 5
  br i1 %.not18582420, label %._crit_edge2424, label %.lr.ph2423

.lr.ph2423:                                       ; preds = %1676, %.lr.ph2423
  %storemerge18572421 = phi i32 [ %1687, %.lr.ph2423 ], [ 0, %1676 ]
  %1678 = load i32, ptr %10, align 4, !tbaa !5
  %reass.sub2993 = sub i32 %1678, %storemerge18572421
  %1679 = add i32 %reass.sub2993, -2
  store i32 %1679, ptr %7, align 4, !tbaa !5
  %1680 = mul nsw i32 %storemerge18572421, %.01698
  %1681 = add i32 %storemerge18572421, 1
  %1682 = add i32 %1681, %1680
  %1683 = add i32 %1682, %1678
  %1684 = sext i32 %1683 to i64
  %1685 = getelementptr inbounds %struct.complex, ptr %4, i64 %1684
  call void @classq_(ptr noundef nonnull %7, ptr noundef %1685, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %1686 = load i32, ptr %9, align 4, !tbaa !5
  %1687 = add nsw i32 %1686, 1
  store i32 %1687, ptr %9, align 4, !tbaa !5
  %.not1858.not = icmp slt i32 %1686, %1677
  br i1 %.not1858.not, label %.lr.ph2423, label %._crit_edge2424.loopexit, !llvm.loop !103

._crit_edge2424.loopexit:                         ; preds = %.lr.ph2423
  %.pre3537 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2424

._crit_edge2424:                                  ; preds = %._crit_edge2424.loopexit, %1676
  %1688 = phi i32 [ %.pre3537, %._crit_edge2424.loopexit ], [ %1673, %1676 ]
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not1860.not2425 = icmp sgt i32 %1688, 0
  br i1 %.not1860.not2425, label %.lr.ph2428, label %._crit_edge2429.thread

._crit_edge2429.thread:                           ; preds = %._crit_edge2424
  %1689 = load float, ptr %11, align 4, !tbaa !12
  %1690 = fadd float %1689, %1689
  %1691 = add i32 %1688, -1
  br label %._crit_edge2437

.lr.ph2428:                                       ; preds = %._crit_edge2424, %.lr.ph2428
  %storemerge18592426 = phi i32 [ %1699, %.lr.ph2428 ], [ 0, %._crit_edge2424 ]
  %1692 = load i32, ptr %10, align 4, !tbaa !5
  %1693 = add nsw i32 %storemerge18592426, -1
  %1694 = add i32 %1693, %1692
  store i32 %1694, ptr %7, align 4, !tbaa !5
  %1695 = mul nsw i32 %storemerge18592426, %.01698
  %1696 = sext i32 %1695 to i64
  %1697 = getelementptr inbounds %struct.complex, ptr %4, i64 %1696
  call void @classq_(ptr noundef nonnull %7, ptr noundef %1697, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %1698 = load i32, ptr %9, align 4, !tbaa !5
  %1699 = add nsw i32 %1698, 1
  store i32 %1699, ptr %9, align 4, !tbaa !5
  %.not1860.not = icmp slt i32 %1699, %1688
  br i1 %.not1860.not, label %.lr.ph2428, label %._crit_edge2429, !llvm.loop !104

._crit_edge2429:                                  ; preds = %.lr.ph2428
  %.pre3538 = load i32, ptr %10, align 4, !tbaa !5
  %1700 = load float, ptr %11, align 4, !tbaa !12
  %1701 = fadd float %1700, %1700
  %1702 = add i32 %.pre3538, -1
  %.not18612432 = icmp slt i32 %.pre3538, 2
  br i1 %.not18612432, label %._crit_edge2437, label %.lr.ph2436

.lr.ph2436:                                       ; preds = %._crit_edge2429
  %.promoted2430 = load float, ptr %12, align 4, !tbaa !12
  %1703 = add i32 %.01698, 1
  %invariant.gep3930 = getelementptr i8, ptr %4, i64 8
  br label %1704

1704:                                             ; preds = %.lr.ph2436, %1735
  %.732434 = phi i32 [ 0, %.lr.ph2436 ], [ %1739, %1735 ]
  %.816112433 = phi i32 [ %1702, %.lr.ph2436 ], [ %1738, %1735 ]
  %1705 = phi float [ %.promoted2430, %.lr.ph2436 ], [ %1737, %1735 ]
  %1706 = phi float [ %1701, %.lr.ph2436 ], [ %1736, %1735 ]
  %1707 = sext i32 %.816112433 to i64
  %1708 = getelementptr inbounds %struct.complex, ptr %4, i64 %1707
  %1709 = load float, ptr %1708, align 4, !tbaa !9
  %1710 = fcmp une float %1709, 0.000000e+00
  br i1 %1710, label %1711, label %1720

1711:                                             ; preds = %1704
  %1712 = fcmp olt float %1705, %1709
  br i1 %1712, label %1713, label %1717

1713:                                             ; preds = %1711
  %1714 = fdiv float %1705, %1709
  %1715 = fmul float %1714, %1714
  %1716 = call float @llvm.fmuladd.f32(float %1706, float %1715, float 1.000000e+00)
  store float %1709, ptr %12, align 4, !tbaa !12
  br label %1720

1717:                                             ; preds = %1711
  %1718 = fdiv float %1709, %1705
  %1719 = call float @llvm.fmuladd.f32(float %1718, float %1718, float %1706)
  br label %1720

1720:                                             ; preds = %1713, %1717, %1704
  %1721 = phi float [ %1716, %1713 ], [ %1719, %1717 ], [ %1706, %1704 ]
  %1722 = phi float [ %1709, %1713 ], [ %1705, %1717 ], [ %1705, %1704 ]
  %1723 = sext i32 %.816112433 to i64
  %gep3931 = getelementptr %struct.complex, ptr %invariant.gep3930, i64 %1723
  %1724 = load float, ptr %gep3931, align 4, !tbaa !9
  %1725 = fcmp une float %1724, 0.000000e+00
  br i1 %1725, label %1726, label %1735

1726:                                             ; preds = %1720
  %1727 = fcmp olt float %1722, %1724
  br i1 %1727, label %1728, label %1732

1728:                                             ; preds = %1726
  %1729 = fdiv float %1722, %1724
  %1730 = fmul float %1729, %1729
  %1731 = call float @llvm.fmuladd.f32(float %1721, float %1730, float 1.000000e+00)
  store float %1724, ptr %12, align 4, !tbaa !12
  br label %1735

1732:                                             ; preds = %1726
  %1733 = fdiv float %1724, %1722
  %1734 = call float @llvm.fmuladd.f32(float %1733, float %1733, float %1721)
  br label %1735

1735:                                             ; preds = %1728, %1732, %1720
  %1736 = phi float [ %1731, %1728 ], [ %1734, %1732 ], [ %1721, %1720 ]
  %1737 = phi float [ %1724, %1728 ], [ %1722, %1732 ], [ %1722, %1720 ]
  %1738 = add i32 %1703, %.816112433
  %1739 = add nuw i32 %.732434, 1
  %exitcond3084.not = icmp eq i32 %1739, %1702
  br i1 %exitcond3084.not, label %._crit_edge2437, label %1704, !llvm.loop !105

._crit_edge2437:                                  ; preds = %1735, %._crit_edge2429.thread, %._crit_edge2429
  %1740 = phi float [ %1701, %._crit_edge2429 ], [ %1690, %._crit_edge2429.thread ], [ %1736, %1735 ]
  %.81611.lcssa = phi i32 [ %1702, %._crit_edge2429 ], [ %1691, %._crit_edge2429.thread ], [ %1738, %1735 ]
  %1741 = sext i32 %.81611.lcssa to i64
  %1742 = getelementptr inbounds %struct.complex, ptr %4, i64 %1741
  %1743 = load float, ptr %1742, align 4, !tbaa !9
  %1744 = fcmp une float %1743, 0.000000e+00
  br i1 %1744, label %1745, label %.loopexit2069

1745:                                             ; preds = %._crit_edge2437
  %1746 = load float, ptr %12, align 4, !tbaa !12
  %1747 = fcmp olt float %1746, %1743
  br i1 %1747, label %1748, label %1752

1748:                                             ; preds = %1745
  %1749 = fdiv float %1746, %1743
  %1750 = fmul float %1749, %1749
  %1751 = call float @llvm.fmuladd.f32(float %1740, float %1750, float 1.000000e+00)
  store float %1743, ptr %12, align 4, !tbaa !12
  br label %.loopexit2069

1752:                                             ; preds = %1745
  %1753 = fdiv float %1743, %1746
  %1754 = call float @llvm.fmuladd.f32(float %1753, float %1753, float %1740)
  br label %.loopexit2069

.lr.ph2442:                                       ; preds = %.preheader2075, %.lr.ph2442
  %storemerge18522441 = phi i32 [ %1764, %.lr.ph2442 ], [ 0, %.preheader2075 ]
  %1755 = load i32, ptr %3, align 4, !tbaa !5
  %1756 = xor i32 %storemerge18522441, -1
  %1757 = add i32 %1755, %1756
  store i32 %1757, ptr %7, align 4, !tbaa !5
  %1758 = add nsw i32 %storemerge18522441, 1
  %1759 = mul nsw i32 %storemerge18522441, %.01698
  %1760 = add nsw i32 %1758, %1759
  %1761 = sext i32 %1760 to i64
  %1762 = getelementptr inbounds %struct.complex, ptr %4, i64 %1761
  call void @classq_(ptr noundef nonnull %7, ptr noundef %1762, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %1763 = load i32, ptr %9, align 4, !tbaa !5
  %1764 = add nsw i32 %1763, 1
  store i32 %1764, ptr %9, align 4, !tbaa !5
  %.not1853.not = icmp slt i32 %1764, %1673
  br i1 %.not1853.not, label %.lr.ph2442, label %._crit_edge2443.loopexit, !llvm.loop !106

._crit_edge2443.loopexit:                         ; preds = %.lr.ph2442
  %.pre3539 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2443

._crit_edge2443:                                  ; preds = %._crit_edge2443.loopexit, %.preheader2075
  %1765 = phi i32 [ %.pre3539, %._crit_edge2443.loopexit ], [ %1673, %.preheader2075 ]
  %1766 = add nsw i32 %1765, -2
  store i32 1, ptr %9, align 4, !tbaa !5
  %.not18552444 = icmp slt i32 %1765, 3
  br i1 %.not18552444, label %._crit_edge2448, label %.lr.ph2447

.lr.ph2447:                                       ; preds = %._crit_edge2443, %.lr.ph2447
  %storemerge18542445 = phi i32 [ %1772, %.lr.ph2447 ], [ 1, %._crit_edge2443 ]
  %1767 = add nsw i32 %storemerge18542445, 1
  %1768 = mul nsw i32 %1767, %.01698
  %1769 = sext i32 %1768 to i64
  %1770 = getelementptr inbounds %struct.complex, ptr %4, i64 %1769
  call void @classq_(ptr noundef nonnull %9, ptr noundef %1770, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %1771 = load i32, ptr %9, align 4, !tbaa !5
  %1772 = add nsw i32 %1771, 1
  store i32 %1772, ptr %9, align 4, !tbaa !5
  %.not1855.not = icmp slt i32 %1771, %1766
  br i1 %.not1855.not, label %.lr.ph2447, label %._crit_edge2448, !llvm.loop !107

._crit_edge2448:                                  ; preds = %.lr.ph2447, %._crit_edge2443
  %1773 = load float, ptr %11, align 4, !tbaa !12
  %1774 = fadd float %1773, %1773
  %1775 = load float, ptr %4, align 4, !tbaa !9
  %1776 = fcmp une float %1775, 0.000000e+00
  br i1 %1776, label %1777, label %1787

1777:                                             ; preds = %._crit_edge2448
  %1778 = load float, ptr %12, align 4, !tbaa !12
  %1779 = fcmp olt float %1778, %1775
  br i1 %1779, label %1780, label %1784

1780:                                             ; preds = %1777
  %1781 = fdiv float %1778, %1775
  %1782 = fmul float %1781, %1781
  %1783 = call float @llvm.fmuladd.f32(float %1774, float %1782, float 1.000000e+00)
  store float %1775, ptr %12, align 4, !tbaa !12
  br label %1787

1784:                                             ; preds = %1777
  %1785 = fdiv float %1775, %1778
  %1786 = call float @llvm.fmuladd.f32(float %1785, float %1785, float %1774)
  br label %1787

1787:                                             ; preds = %1780, %1784, %._crit_edge2448
  %.promoted2450 = phi float [ %1783, %1780 ], [ %1786, %1784 ], [ %1774, %._crit_edge2448 ]
  %1788 = load i32, ptr %10, align 4, !tbaa !5
  %.not1856.not2451 = icmp sgt i32 %1788, 1
  br i1 %.not1856.not2451, label %.lr.ph2455, label %.loopexit2069

.lr.ph2455:                                       ; preds = %1787
  %.promoted2449 = load float, ptr %12, align 4, !tbaa !12
  %1789 = add i32 %.01698, 1
  %invariant.gep3932 = getelementptr i8, ptr %4, i64 8
  br label %1790

1790:                                             ; preds = %.lr.ph2455, %1821
  %.742453 = phi i32 [ 1, %.lr.ph2455 ], [ %1825, %1821 ]
  %.916122452 = phi i32 [ %.01698, %.lr.ph2455 ], [ %1824, %1821 ]
  %1791 = phi float [ %.promoted2449, %.lr.ph2455 ], [ %1823, %1821 ]
  %1792 = phi float [ %.promoted2450, %.lr.ph2455 ], [ %1822, %1821 ]
  %1793 = sext i32 %.916122452 to i64
  %1794 = getelementptr inbounds %struct.complex, ptr %4, i64 %1793
  %1795 = load float, ptr %1794, align 4, !tbaa !9
  %1796 = fcmp une float %1795, 0.000000e+00
  br i1 %1796, label %1797, label %1806

1797:                                             ; preds = %1790
  %1798 = fcmp olt float %1791, %1795
  br i1 %1798, label %1799, label %1803

1799:                                             ; preds = %1797
  %1800 = fdiv float %1791, %1795
  %1801 = fmul float %1800, %1800
  %1802 = call float @llvm.fmuladd.f32(float %1792, float %1801, float 1.000000e+00)
  store float %1795, ptr %12, align 4, !tbaa !12
  br label %1806

1803:                                             ; preds = %1797
  %1804 = fdiv float %1795, %1791
  %1805 = call float @llvm.fmuladd.f32(float %1804, float %1804, float %1792)
  br label %1806

1806:                                             ; preds = %1799, %1803, %1790
  %1807 = phi float [ %1802, %1799 ], [ %1805, %1803 ], [ %1792, %1790 ]
  %1808 = phi float [ %1795, %1799 ], [ %1791, %1803 ], [ %1791, %1790 ]
  %1809 = sext i32 %.916122452 to i64
  %gep3933 = getelementptr %struct.complex, ptr %invariant.gep3932, i64 %1809
  %1810 = load float, ptr %gep3933, align 4, !tbaa !9
  %1811 = fcmp une float %1810, 0.000000e+00
  br i1 %1811, label %1812, label %1821

1812:                                             ; preds = %1806
  %1813 = fcmp olt float %1808, %1810
  br i1 %1813, label %1814, label %1818

1814:                                             ; preds = %1812
  %1815 = fdiv float %1808, %1810
  %1816 = fmul float %1815, %1815
  %1817 = call float @llvm.fmuladd.f32(float %1807, float %1816, float 1.000000e+00)
  store float %1810, ptr %12, align 4, !tbaa !12
  br label %1821

1818:                                             ; preds = %1812
  %1819 = fdiv float %1810, %1808
  %1820 = call float @llvm.fmuladd.f32(float %1819, float %1819, float %1807)
  br label %1821

1821:                                             ; preds = %1814, %1818, %1806
  %1822 = phi float [ %1817, %1814 ], [ %1820, %1818 ], [ %1807, %1806 ]
  %1823 = phi float [ %1810, %1814 ], [ %1808, %1818 ], [ %1808, %1806 ]
  %1824 = add i32 %1789, %.916122452
  %1825 = add nuw nsw i32 %.742453, 1
  %exitcond3085.not = icmp eq i32 %1825, %1788
  br i1 %exitcond3085.not, label %.loopexit2069, label %1790, !llvm.loop !108

1826:                                             ; preds = %1674
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %.preheader2076, label %1827

.preheader2076:                                   ; preds = %1826
  store i32 1, ptr %9, align 4, !tbaa !5
  %.not1838.not2396 = icmp sgt i32 %1671, 2
  br i1 %.not1838.not2396, label %.lr.ph2398, label %._crit_edge2399

1827:                                             ; preds = %1826
  %1828 = add nsw i32 %1673, -2
  store i32 1, ptr %9, align 4, !tbaa !5
  %.not18452374 = icmp slt i32 %1671, 5
  br i1 %.not18452374, label %._crit_edge2378, label %.lr.ph2377

.lr.ph2377:                                       ; preds = %1827, %.lr.ph2377
  %storemerge18442375 = phi i32 [ %1835, %.lr.ph2377 ], [ 1, %1827 ]
  %1829 = load i32, ptr %10, align 4, !tbaa !5
  %1830 = add nsw i32 %1829, %storemerge18442375
  %1831 = mul nsw i32 %1830, %.01698
  %1832 = sext i32 %1831 to i64
  %1833 = getelementptr inbounds %struct.complex, ptr %4, i64 %1832
  call void @classq_(ptr noundef nonnull %9, ptr noundef %1833, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %1834 = load i32, ptr %9, align 4, !tbaa !5
  %1835 = add nsw i32 %1834, 1
  store i32 %1835, ptr %9, align 4, !tbaa !5
  %.not1845.not = icmp slt i32 %1834, %1828
  br i1 %.not1845.not, label %.lr.ph2377, label %._crit_edge2378.loopexit, !llvm.loop !109

._crit_edge2378.loopexit:                         ; preds = %.lr.ph2377
  %.pre3529 = load i32, ptr %10, align 4, !tbaa !5
  %.pre3580 = add nsw i32 %.pre3529, -2
  br label %._crit_edge2378

._crit_edge2378:                                  ; preds = %._crit_edge2378.loopexit, %1827
  %.pre-phi = phi i32 [ %.pre3580, %._crit_edge2378.loopexit ], [ %1828, %1827 ]
  %1836 = phi i32 [ %.pre3529, %._crit_edge2378.loopexit ], [ %1673, %1827 ]
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not18472379 = icmp slt i32 %1836, 2
  br i1 %.not18472379, label %._crit_edge2388, label %.lr.ph2382

.lr.ph2382:                                       ; preds = %._crit_edge2378, %.lr.ph2382
  %storemerge18462380 = phi i32 [ %1841, %.lr.ph2382 ], [ 0, %._crit_edge2378 ]
  %1837 = mul nsw i32 %storemerge18462380, %.01698
  %1838 = sext i32 %1837 to i64
  %1839 = getelementptr inbounds %struct.complex, ptr %4, i64 %1838
  call void @classq_(ptr noundef nonnull %10, ptr noundef %1839, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %1840 = load i32, ptr %9, align 4, !tbaa !5
  %1841 = add nsw i32 %1840, 1
  store i32 %1841, ptr %9, align 4, !tbaa !5
  %.not1847.not = icmp slt i32 %1840, %.pre-phi
  br i1 %.not1847.not, label %.lr.ph2382, label %._crit_edge2383, !llvm.loop !110

._crit_edge2383:                                  ; preds = %.lr.ph2382
  %.pre3530 = load i32, ptr %10, align 4, !tbaa !5
  %.pre3581 = add nsw i32 %.pre3530, -2
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not18492384 = icmp slt i32 %.pre3530, 2
  br i1 %.not18492384, label %._crit_edge2388, label %.lr.ph2387

.lr.ph2387:                                       ; preds = %._crit_edge2383, %.lr.ph2387
  %storemerge18482385 = phi i32 [ %1853, %.lr.ph2387 ], [ 0, %._crit_edge2383 ]
  %1842 = load i32, ptr %10, align 4, !tbaa !5
  %1843 = xor i32 %storemerge18482385, -1
  %1844 = add i32 %1842, %1843
  store i32 %1844, ptr %7, align 4, !tbaa !5
  %1845 = add nsw i32 %storemerge18482385, 1
  %1846 = add nsw i32 %storemerge18482385, -1
  %1847 = add i32 %1846, %1842
  %1848 = mul nsw i32 %1847, %.01698
  %1849 = add nsw i32 %1845, %1848
  %1850 = sext i32 %1849 to i64
  %1851 = getelementptr inbounds %struct.complex, ptr %4, i64 %1850
  call void @classq_(ptr noundef nonnull %7, ptr noundef %1851, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %1852 = load i32, ptr %9, align 4, !tbaa !5
  %1853 = add nsw i32 %1852, 1
  store i32 %1853, ptr %9, align 4, !tbaa !5
  %.not1849.not = icmp slt i32 %1852, %.pre3581
  br i1 %.not1849.not, label %.lr.ph2387, label %._crit_edge2388.loopexit, !llvm.loop !111

._crit_edge2388.loopexit:                         ; preds = %.lr.ph2387
  %.pre3531 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2388

._crit_edge2388:                                  ; preds = %._crit_edge2378, %._crit_edge2388.loopexit, %._crit_edge2383
  %1854 = phi i32 [ %.pre3531, %._crit_edge2388.loopexit ], [ %.pre3530, %._crit_edge2383 ], [ %1836, %._crit_edge2378 ]
  %1855 = load float, ptr %11, align 4, !tbaa !12
  %1856 = fadd float %1855, %1855
  %1857 = mul nsw i32 %1854, %.01698
  %1858 = sub nsw i32 %1857, %.01698
  %1859 = sext i32 %1858 to i64
  %1860 = getelementptr inbounds %struct.complex, ptr %4, i64 %1859
  %1861 = load float, ptr %1860, align 4, !tbaa !9
  %1862 = fcmp une float %1861, 0.000000e+00
  br i1 %1862, label %1863, label %1873

1863:                                             ; preds = %._crit_edge2388
  %1864 = load float, ptr %12, align 4, !tbaa !12
  %1865 = fcmp olt float %1864, %1861
  br i1 %1865, label %1866, label %1870

1866:                                             ; preds = %1863
  %1867 = fdiv float %1864, %1861
  %1868 = fmul float %1867, %1867
  %1869 = call float @llvm.fmuladd.f32(float %1856, float %1868, float 1.000000e+00)
  store float %1861, ptr %12, align 4, !tbaa !12
  br label %1873

1870:                                             ; preds = %1863
  %1871 = fdiv float %1861, %1864
  %1872 = call float @llvm.fmuladd.f32(float %1871, float %1871, float %1856)
  br label %1873

1873:                                             ; preds = %1866, %1870, %._crit_edge2388
  %.promoted2389 = phi float [ %1869, %1866 ], [ %1872, %1870 ], [ %1856, %._crit_edge2388 ]
  %1874 = load i32, ptr %3, align 4, !tbaa !5
  %.not1851.not2390 = icmp slt i32 %1854, %1874
  br i1 %.not1851.not2390, label %.lr.ph2394, label %.loopexit2069

.lr.ph2394:                                       ; preds = %1873
  %.promoted = load float, ptr %12, align 4, !tbaa !12
  %1875 = add i32 %.01698, 1
  %invariant.gep3926 = getelementptr i8, ptr %4, i64 8
  br label %1876

1876:                                             ; preds = %.lr.ph2394, %1907
  %.1016132392 = phi i32 [ %1857, %.lr.ph2394 ], [ %1910, %1907 ]
  %storemerge18502391 = phi i32 [ %1854, %.lr.ph2394 ], [ %1911, %1907 ]
  %1877 = phi float [ %.promoted, %.lr.ph2394 ], [ %1909, %1907 ]
  %1878 = phi float [ %.promoted2389, %.lr.ph2394 ], [ %1908, %1907 ]
  %1879 = sext i32 %.1016132392 to i64
  %1880 = getelementptr inbounds %struct.complex, ptr %4, i64 %1879
  %1881 = load float, ptr %1880, align 4, !tbaa !9
  %1882 = fcmp une float %1881, 0.000000e+00
  br i1 %1882, label %1883, label %1892

1883:                                             ; preds = %1876
  %1884 = fcmp olt float %1877, %1881
  br i1 %1884, label %1885, label %1889

1885:                                             ; preds = %1883
  %1886 = fdiv float %1877, %1881
  %1887 = fmul float %1886, %1886
  %1888 = call float @llvm.fmuladd.f32(float %1878, float %1887, float 1.000000e+00)
  store float %1881, ptr %12, align 4, !tbaa !12
  br label %1892

1889:                                             ; preds = %1883
  %1890 = fdiv float %1881, %1877
  %1891 = call float @llvm.fmuladd.f32(float %1890, float %1890, float %1878)
  br label %1892

1892:                                             ; preds = %1885, %1889, %1876
  %1893 = phi float [ %1888, %1885 ], [ %1891, %1889 ], [ %1878, %1876 ]
  %1894 = phi float [ %1881, %1885 ], [ %1877, %1889 ], [ %1877, %1876 ]
  %1895 = sext i32 %.1016132392 to i64
  %gep3927 = getelementptr %struct.complex, ptr %invariant.gep3926, i64 %1895
  %1896 = load float, ptr %gep3927, align 4, !tbaa !9
  %1897 = fcmp une float %1896, 0.000000e+00
  br i1 %1897, label %1898, label %1907

1898:                                             ; preds = %1892
  %1899 = fcmp olt float %1894, %1896
  br i1 %1899, label %1900, label %1904

1900:                                             ; preds = %1898
  %1901 = fdiv float %1894, %1896
  %1902 = fmul float %1901, %1901
  %1903 = call float @llvm.fmuladd.f32(float %1893, float %1902, float 1.000000e+00)
  store float %1896, ptr %12, align 4, !tbaa !12
  br label %1907

1904:                                             ; preds = %1898
  %1905 = fdiv float %1896, %1894
  %1906 = call float @llvm.fmuladd.f32(float %1905, float %1905, float %1893)
  br label %1907

1907:                                             ; preds = %1900, %1904, %1892
  %1908 = phi float [ %1903, %1900 ], [ %1906, %1904 ], [ %1893, %1892 ]
  %1909 = phi float [ %1896, %1900 ], [ %1894, %1904 ], [ %1894, %1892 ]
  %1910 = add i32 %1875, %.1016132392
  %1911 = add nsw i32 %storemerge18502391, 1
  %exitcond3082.not = icmp eq i32 %1911, %1874
  br i1 %exitcond3082.not, label %.loopexit2069, label %1876, !llvm.loop !112

.lr.ph2398:                                       ; preds = %.preheader2076, %.lr.ph2398
  %storemerge18372397 = phi i32 [ %1916, %.lr.ph2398 ], [ 1, %.preheader2076 ]
  %1912 = mul nsw i32 %storemerge18372397, %.01698
  %1913 = sext i32 %1912 to i64
  %1914 = getelementptr inbounds %struct.complex, ptr %4, i64 %1913
  call void @classq_(ptr noundef nonnull %9, ptr noundef %1914, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %1915 = load i32, ptr %9, align 4, !tbaa !5
  %1916 = add nsw i32 %1915, 1
  store i32 %1916, ptr %9, align 4, !tbaa !5
  %.not1838.not = icmp slt i32 %1916, %1673
  br i1 %.not1838.not, label %.lr.ph2398, label %._crit_edge2399.loopexit, !llvm.loop !113

._crit_edge2399.loopexit:                         ; preds = %.lr.ph2398
  %.pre3533 = load i32, ptr %3, align 4, !tbaa !5
  %.pre3534 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2399

._crit_edge2399:                                  ; preds = %._crit_edge2399.loopexit, %.preheader2076
  %1917 = phi i32 [ %.pre3534, %._crit_edge2399.loopexit ], [ %1673, %.preheader2076 ]
  %1918 = phi i32 [ %.pre3533, %._crit_edge2399.loopexit ], [ %1671, %.preheader2076 ]
  store i32 %1917, ptr %9, align 4, !tbaa !5
  %.not1840.not2400 = icmp slt i32 %1917, %1918
  br i1 %.not1840.not2400, label %.lr.ph2403, label %._crit_edge2404

.lr.ph2403:                                       ; preds = %._crit_edge2399, %.lr.ph2403
  %storemerge18392401 = phi i32 [ %1923, %.lr.ph2403 ], [ %1917, %._crit_edge2399 ]
  %1919 = mul nsw i32 %storemerge18392401, %.01698
  %1920 = sext i32 %1919 to i64
  %1921 = getelementptr inbounds %struct.complex, ptr %4, i64 %1920
  call void @classq_(ptr noundef nonnull %10, ptr noundef %1921, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %1922 = load i32, ptr %9, align 4, !tbaa !5
  %1923 = add nsw i32 %1922, 1
  store i32 %1923, ptr %9, align 4, !tbaa !5
  %.not1840.not = icmp slt i32 %1923, %1918
  br i1 %.not1840.not, label %.lr.ph2403, label %._crit_edge2404.loopexit, !llvm.loop !114

._crit_edge2404.loopexit:                         ; preds = %.lr.ph2403
  %.pre3535 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2404

._crit_edge2404:                                  ; preds = %._crit_edge2404.loopexit, %._crit_edge2399
  %1924 = phi i32 [ %.pre3535, %._crit_edge2404.loopexit ], [ %1917, %._crit_edge2399 ]
  %1925 = add nsw i32 %1924, -3
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not18422405 = icmp slt i32 %1924, 3
  br i1 %.not18422405, label %._crit_edge2409, label %.lr.ph2408

.lr.ph2408:                                       ; preds = %._crit_edge2404, %.lr.ph2408
  %storemerge18412406 = phi i32 [ %1934, %.lr.ph2408 ], [ 0, %._crit_edge2404 ]
  %1926 = load i32, ptr %10, align 4, !tbaa !5
  %reass.sub2992 = sub i32 %1926, %storemerge18412406
  %1927 = add i32 %reass.sub2992, -2
  store i32 %1927, ptr %7, align 4, !tbaa !5
  %1928 = add nsw i32 %storemerge18412406, 2
  %1929 = mul nsw i32 %storemerge18412406, %.01698
  %1930 = add nsw i32 %1928, %1929
  %1931 = sext i32 %1930 to i64
  %1932 = getelementptr inbounds %struct.complex, ptr %4, i64 %1931
  call void @classq_(ptr noundef nonnull %7, ptr noundef %1932, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %1933 = load i32, ptr %9, align 4, !tbaa !5
  %1934 = add nsw i32 %1933, 1
  store i32 %1934, ptr %9, align 4, !tbaa !5
  %.not1842.not = icmp slt i32 %1933, %1925
  br i1 %.not1842.not, label %.lr.ph2408, label %._crit_edge2409.loopexit, !llvm.loop !115

._crit_edge2409.loopexit:                         ; preds = %.lr.ph2408
  %.pre3536 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2409

._crit_edge2409:                                  ; preds = %._crit_edge2409.loopexit, %._crit_edge2404
  %1935 = phi i32 [ %.pre3536, %._crit_edge2409.loopexit ], [ %1924, %._crit_edge2404 ]
  %1936 = load float, ptr %11, align 4, !tbaa !12
  %1937 = fadd float %1936, %1936
  %.not18432412 = icmp slt i32 %1935, 2
  br i1 %.not18432412, label %1977, label %.lr.ph2416

.lr.ph2416:                                       ; preds = %._crit_edge2409
  %.promoted2410 = load float, ptr %12, align 4, !tbaa !12
  %1938 = add i32 %.01698, 1
  %1939 = add nsw i32 %1935, -2
  %invariant.gep3928 = getelementptr i8, ptr %4, i64 8
  br label %1940

1940:                                             ; preds = %.lr.ph2416, %1971
  %.752414 = phi i32 [ 0, %.lr.ph2416 ], [ %1975, %1971 ]
  %.1116142413 = phi i32 [ 0, %.lr.ph2416 ], [ %1974, %1971 ]
  %1941 = phi float [ %.promoted2410, %.lr.ph2416 ], [ %1973, %1971 ]
  %1942 = phi float [ %1937, %.lr.ph2416 ], [ %1972, %1971 ]
  %1943 = sext i32 %.1116142413 to i64
  %1944 = getelementptr inbounds %struct.complex, ptr %4, i64 %1943
  %1945 = load float, ptr %1944, align 4, !tbaa !9
  %1946 = fcmp une float %1945, 0.000000e+00
  br i1 %1946, label %1947, label %1956

1947:                                             ; preds = %1940
  %1948 = fcmp olt float %1941, %1945
  br i1 %1948, label %1949, label %1953

1949:                                             ; preds = %1947
  %1950 = fdiv float %1941, %1945
  %1951 = fmul float %1950, %1950
  %1952 = call float @llvm.fmuladd.f32(float %1942, float %1951, float 1.000000e+00)
  store float %1945, ptr %12, align 4, !tbaa !12
  br label %1956

1953:                                             ; preds = %1947
  %1954 = fdiv float %1945, %1941
  %1955 = call float @llvm.fmuladd.f32(float %1954, float %1954, float %1942)
  br label %1956

1956:                                             ; preds = %1949, %1953, %1940
  %1957 = phi float [ %1952, %1949 ], [ %1955, %1953 ], [ %1942, %1940 ]
  %1958 = phi float [ %1945, %1949 ], [ %1941, %1953 ], [ %1941, %1940 ]
  %1959 = sext i32 %.1116142413 to i64
  %gep3929 = getelementptr %struct.complex, ptr %invariant.gep3928, i64 %1959
  %1960 = load float, ptr %gep3929, align 4, !tbaa !9
  %1961 = fcmp une float %1960, 0.000000e+00
  br i1 %1961, label %1962, label %1971

1962:                                             ; preds = %1956
  %1963 = fcmp olt float %1958, %1960
  br i1 %1963, label %1964, label %1968

1964:                                             ; preds = %1962
  %1965 = fdiv float %1958, %1960
  %1966 = fmul float %1965, %1965
  %1967 = call float @llvm.fmuladd.f32(float %1957, float %1966, float 1.000000e+00)
  store float %1960, ptr %12, align 4, !tbaa !12
  br label %1971

1968:                                             ; preds = %1962
  %1969 = fdiv float %1960, %1958
  %1970 = call float @llvm.fmuladd.f32(float %1969, float %1969, float %1957)
  br label %1971

1971:                                             ; preds = %1964, %1968, %1956
  %1972 = phi float [ %1967, %1964 ], [ %1970, %1968 ], [ %1957, %1956 ]
  %1973 = phi float [ %1960, %1964 ], [ %1958, %1968 ], [ %1958, %1956 ]
  %1974 = add i32 %1938, %.1116142413
  %1975 = add nuw i32 %.752414, 1
  %exitcond3083.not = icmp eq i32 %.752414, %1939
  br i1 %exitcond3083.not, label %._crit_edge2417, label %1940, !llvm.loop !116

._crit_edge2417:                                  ; preds = %1971
  %1976 = sext i32 %1974 to i64
  br label %1977

1977:                                             ; preds = %._crit_edge2417, %._crit_edge2409
  %1978 = phi float [ %1972, %._crit_edge2417 ], [ %1937, %._crit_edge2409 ]
  %.111614.lcssa = phi i64 [ %1976, %._crit_edge2417 ], [ 0, %._crit_edge2409 ]
  %1979 = getelementptr inbounds %struct.complex, ptr %4, i64 %.111614.lcssa
  %1980 = load float, ptr %1979, align 4, !tbaa !9
  %1981 = fcmp une float %1980, 0.000000e+00
  br i1 %1981, label %1982, label %.loopexit2069

1982:                                             ; preds = %1977
  %1983 = load float, ptr %12, align 4, !tbaa !12
  %1984 = fcmp olt float %1983, %1980
  br i1 %1984, label %1985, label %1989

1985:                                             ; preds = %1982
  %1986 = fdiv float %1983, %1980
  %1987 = fmul float %1986, %1986
  %1988 = call float @llvm.fmuladd.f32(float %1978, float %1987, float 1.000000e+00)
  store float %1980, ptr %12, align 4, !tbaa !12
  br label %.loopexit2069

1989:                                             ; preds = %1982
  %1990 = fdiv float %1980, %1983
  %1991 = call float @llvm.fmuladd.f32(float %1990, float %1990, float %1978)
  br label %.loopexit2069

1992:                                             ; preds = %1670
  br i1 %.not, label %1993, label %2112

1993:                                             ; preds = %1992
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %.preheader2070, label %1994

.preheader2070:                                   ; preds = %1993
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not1828.not2528 = icmp sgt i32 %1671, 0
  br i1 %.not1828.not2528, label %.lr.ph2530, label %._crit_edge2531

1994:                                             ; preds = %1993
  %1995 = add nsw i32 %1673, -2
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not18332510 = icmp slt i32 %1671, 3
  br i1 %.not18332510, label %._crit_edge2514, label %.lr.ph2513

.lr.ph2513:                                       ; preds = %1994, %.lr.ph2513
  %storemerge18322511 = phi i32 [ %2006, %.lr.ph2513 ], [ 0, %1994 ]
  %1996 = load i32, ptr %10, align 4, !tbaa !5
  %1997 = xor i32 %storemerge18322511, -1
  %1998 = add i32 %1996, %1997
  store i32 %1998, ptr %7, align 4, !tbaa !5
  %1999 = mul nsw i32 %storemerge18322511, %.01698
  %2000 = add i32 %storemerge18322511, 2
  %2001 = add i32 %2000, %1999
  %2002 = add i32 %2001, %1996
  %2003 = sext i32 %2002 to i64
  %2004 = getelementptr inbounds %struct.complex, ptr %4, i64 %2003
  call void @classq_(ptr noundef nonnull %7, ptr noundef %2004, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %2005 = load i32, ptr %9, align 4, !tbaa !5
  %2006 = add nsw i32 %2005, 1
  store i32 %2006, ptr %9, align 4, !tbaa !5
  %.not1833.not = icmp slt i32 %2005, %1995
  br i1 %.not1833.not, label %.lr.ph2513, label %._crit_edge2514.loopexit, !llvm.loop !117

._crit_edge2514.loopexit:                         ; preds = %.lr.ph2513
  %.pre3550 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2514

._crit_edge2514:                                  ; preds = %._crit_edge2514.loopexit, %1994
  %2007 = phi i32 [ %.pre3550, %._crit_edge2514.loopexit ], [ %1673, %1994 ]
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not1835.not2515 = icmp sgt i32 %2007, 0
  br i1 %.not1835.not2515, label %.lr.ph2518, label %._crit_edge2519.thread

._crit_edge2519.thread:                           ; preds = %._crit_edge2514
  %2008 = load float, ptr %11, align 4, !tbaa !12
  %2009 = fadd float %2008, %2008
  br label %.loopexit2069

.lr.ph2518:                                       ; preds = %._crit_edge2514, %.lr.ph2518
  %storemerge18342516 = phi i32 [ %2016, %.lr.ph2518 ], [ 0, %._crit_edge2514 ]
  %2010 = load i32, ptr %10, align 4, !tbaa !5
  %2011 = add nsw i32 %2010, %storemerge18342516
  store i32 %2011, ptr %7, align 4, !tbaa !5
  %2012 = mul nsw i32 %storemerge18342516, %.01698
  %2013 = sext i32 %2012 to i64
  %2014 = getelementptr inbounds %struct.complex, ptr %4, i64 %2013
  call void @classq_(ptr noundef nonnull %7, ptr noundef %2014, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %2015 = load i32, ptr %9, align 4, !tbaa !5
  %2016 = add nsw i32 %2015, 1
  store i32 %2016, ptr %9, align 4, !tbaa !5
  %.not1835.not = icmp slt i32 %2016, %2007
  br i1 %.not1835.not, label %.lr.ph2518, label %._crit_edge2519, !llvm.loop !118

._crit_edge2519:                                  ; preds = %.lr.ph2518
  %.pre3551 = load i32, ptr %10, align 4, !tbaa !5
  %2017 = load float, ptr %11, align 4, !tbaa !12
  %2018 = fadd float %2017, %2017
  %.not1836.not2522 = icmp sgt i32 %.pre3551, 0
  br i1 %.not1836.not2522, label %.lr.ph2526, label %.loopexit2069

.lr.ph2526:                                       ; preds = %._crit_edge2519
  %.promoted2520 = load float, ptr %12, align 4, !tbaa !12
  %2019 = add i32 %.01698, 1
  %invariant.gep3938 = getelementptr i8, ptr %4, i64 8
  br label %2020

2020:                                             ; preds = %.lr.ph2526, %2051
  %.762524 = phi i32 [ 0, %.lr.ph2526 ], [ %2055, %2051 ]
  %.1216152523 = phi i32 [ %.pre3551, %.lr.ph2526 ], [ %2054, %2051 ]
  %2021 = phi float [ %.promoted2520, %.lr.ph2526 ], [ %2053, %2051 ]
  %2022 = phi float [ %2018, %.lr.ph2526 ], [ %2052, %2051 ]
  %2023 = sext i32 %.1216152523 to i64
  %2024 = getelementptr inbounds %struct.complex, ptr %4, i64 %2023
  %2025 = load float, ptr %2024, align 4, !tbaa !9
  %2026 = fcmp une float %2025, 0.000000e+00
  br i1 %2026, label %2027, label %2036

2027:                                             ; preds = %2020
  %2028 = fcmp olt float %2021, %2025
  br i1 %2028, label %2029, label %2033

2029:                                             ; preds = %2027
  %2030 = fdiv float %2021, %2025
  %2031 = fmul float %2030, %2030
  %2032 = call float @llvm.fmuladd.f32(float %2022, float %2031, float 1.000000e+00)
  store float %2025, ptr %12, align 4, !tbaa !12
  br label %2036

2033:                                             ; preds = %2027
  %2034 = fdiv float %2025, %2021
  %2035 = call float @llvm.fmuladd.f32(float %2034, float %2034, float %2022)
  br label %2036

2036:                                             ; preds = %2029, %2033, %2020
  %2037 = phi float [ %2032, %2029 ], [ %2035, %2033 ], [ %2022, %2020 ]
  %2038 = phi float [ %2025, %2029 ], [ %2021, %2033 ], [ %2021, %2020 ]
  %2039 = sext i32 %.1216152523 to i64
  %gep3939 = getelementptr %struct.complex, ptr %invariant.gep3938, i64 %2039
  %2040 = load float, ptr %gep3939, align 4, !tbaa !9
  %2041 = fcmp une float %2040, 0.000000e+00
  br i1 %2041, label %2042, label %2051

2042:                                             ; preds = %2036
  %2043 = fcmp olt float %2038, %2040
  br i1 %2043, label %2044, label %2048

2044:                                             ; preds = %2042
  %2045 = fdiv float %2038, %2040
  %2046 = fmul float %2045, %2045
  %2047 = call float @llvm.fmuladd.f32(float %2037, float %2046, float 1.000000e+00)
  store float %2040, ptr %12, align 4, !tbaa !12
  br label %2051

2048:                                             ; preds = %2042
  %2049 = fdiv float %2040, %2038
  %2050 = call float @llvm.fmuladd.f32(float %2049, float %2049, float %2037)
  br label %2051

2051:                                             ; preds = %2044, %2048, %2036
  %2052 = phi float [ %2047, %2044 ], [ %2050, %2048 ], [ %2037, %2036 ]
  %2053 = phi float [ %2040, %2044 ], [ %2038, %2048 ], [ %2038, %2036 ]
  %2054 = add i32 %2019, %.1216152523
  %2055 = add nuw nsw i32 %.762524, 1
  %exitcond3088.not = icmp eq i32 %2055, %.pre3551
  br i1 %exitcond3088.not, label %.loopexit2069, label %2020, !llvm.loop !119

.lr.ph2530:                                       ; preds = %.preheader2070, %.lr.ph2530
  %storemerge18272529 = phi i32 [ %2065, %.lr.ph2530 ], [ 0, %.preheader2070 ]
  %2056 = load i32, ptr %3, align 4, !tbaa !5
  %2057 = xor i32 %storemerge18272529, -1
  %2058 = add i32 %2056, %2057
  store i32 %2058, ptr %7, align 4, !tbaa !5
  %2059 = add nsw i32 %storemerge18272529, 2
  %2060 = mul nsw i32 %storemerge18272529, %.01698
  %2061 = add nsw i32 %2059, %2060
  %2062 = sext i32 %2061 to i64
  %2063 = getelementptr inbounds %struct.complex, ptr %4, i64 %2062
  call void @classq_(ptr noundef nonnull %7, ptr noundef %2063, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %2064 = load i32, ptr %9, align 4, !tbaa !5
  %2065 = add nsw i32 %2064, 1
  store i32 %2065, ptr %9, align 4, !tbaa !5
  %.not1828.not = icmp slt i32 %2065, %1673
  br i1 %.not1828.not, label %.lr.ph2530, label %._crit_edge2531.loopexit, !llvm.loop !120

._crit_edge2531.loopexit:                         ; preds = %.lr.ph2530
  %.pre3552 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2531

._crit_edge2531:                                  ; preds = %._crit_edge2531.loopexit, %.preheader2070
  %2066 = phi i32 [ %.pre3552, %._crit_edge2531.loopexit ], [ %1673, %.preheader2070 ]
  store i32 1, ptr %9, align 4, !tbaa !5
  %.not1830.not2532 = icmp sgt i32 %2066, 1
  br i1 %.not1830.not2532, label %.lr.ph2535, label %._crit_edge2536

.lr.ph2535:                                       ; preds = %._crit_edge2531, %.lr.ph2535
  %storemerge18292533 = phi i32 [ %2071, %.lr.ph2535 ], [ 1, %._crit_edge2531 ]
  %2067 = mul nsw i32 %storemerge18292533, %.01698
  %2068 = sext i32 %2067 to i64
  %2069 = getelementptr inbounds %struct.complex, ptr %4, i64 %2068
  call void @classq_(ptr noundef nonnull %9, ptr noundef %2069, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %2070 = load i32, ptr %9, align 4, !tbaa !5
  %2071 = add nsw i32 %2070, 1
  store i32 %2071, ptr %9, align 4, !tbaa !5
  %.not1830.not = icmp slt i32 %2071, %2066
  br i1 %.not1830.not, label %.lr.ph2535, label %._crit_edge2536.loopexit, !llvm.loop !121

._crit_edge2536.loopexit:                         ; preds = %.lr.ph2535
  %.pre3553 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2536

._crit_edge2536:                                  ; preds = %._crit_edge2536.loopexit, %._crit_edge2531
  %2072 = phi i32 [ %.pre3553, %._crit_edge2536.loopexit ], [ %2066, %._crit_edge2531 ]
  %2073 = load float, ptr %11, align 4, !tbaa !12
  %2074 = fadd float %2073, %2073
  %.not1831.not2539 = icmp sgt i32 %2072, 0
  br i1 %.not1831.not2539, label %.lr.ph2543, label %.loopexit2069

.lr.ph2543:                                       ; preds = %._crit_edge2536
  %.promoted2537 = load float, ptr %12, align 4, !tbaa !12
  %2075 = add i32 %.01698, 1
  %invariant.gep3940 = getelementptr i8, ptr %4, i64 8
  br label %2076

2076:                                             ; preds = %.lr.ph2543, %2107
  %.772541 = phi i32 [ 0, %.lr.ph2543 ], [ %2111, %2107 ]
  %.1316162540 = phi i32 [ 0, %.lr.ph2543 ], [ %2110, %2107 ]
  %2077 = phi float [ %.promoted2537, %.lr.ph2543 ], [ %2109, %2107 ]
  %2078 = phi float [ %2074, %.lr.ph2543 ], [ %2108, %2107 ]
  %2079 = sext i32 %.1316162540 to i64
  %2080 = getelementptr inbounds %struct.complex, ptr %4, i64 %2079
  %2081 = load float, ptr %2080, align 4, !tbaa !9
  %2082 = fcmp une float %2081, 0.000000e+00
  br i1 %2082, label %2083, label %2092

2083:                                             ; preds = %2076
  %2084 = fcmp olt float %2077, %2081
  br i1 %2084, label %2085, label %2089

2085:                                             ; preds = %2083
  %2086 = fdiv float %2077, %2081
  %2087 = fmul float %2086, %2086
  %2088 = call float @llvm.fmuladd.f32(float %2078, float %2087, float 1.000000e+00)
  store float %2081, ptr %12, align 4, !tbaa !12
  br label %2092

2089:                                             ; preds = %2083
  %2090 = fdiv float %2081, %2077
  %2091 = call float @llvm.fmuladd.f32(float %2090, float %2090, float %2078)
  br label %2092

2092:                                             ; preds = %2085, %2089, %2076
  %2093 = phi float [ %2088, %2085 ], [ %2091, %2089 ], [ %2078, %2076 ]
  %2094 = phi float [ %2081, %2085 ], [ %2077, %2089 ], [ %2077, %2076 ]
  %2095 = sext i32 %.1316162540 to i64
  %gep3941 = getelementptr %struct.complex, ptr %invariant.gep3940, i64 %2095
  %2096 = load float, ptr %gep3941, align 4, !tbaa !9
  %2097 = fcmp une float %2096, 0.000000e+00
  br i1 %2097, label %2098, label %2107

2098:                                             ; preds = %2092
  %2099 = fcmp olt float %2094, %2096
  br i1 %2099, label %2100, label %2104

2100:                                             ; preds = %2098
  %2101 = fdiv float %2094, %2096
  %2102 = fmul float %2101, %2101
  %2103 = call float @llvm.fmuladd.f32(float %2093, float %2102, float 1.000000e+00)
  store float %2096, ptr %12, align 4, !tbaa !12
  br label %2107

2104:                                             ; preds = %2098
  %2105 = fdiv float %2096, %2094
  %2106 = call float @llvm.fmuladd.f32(float %2105, float %2105, float %2093)
  br label %2107

2107:                                             ; preds = %2100, %2104, %2092
  %2108 = phi float [ %2103, %2100 ], [ %2106, %2104 ], [ %2093, %2092 ]
  %2109 = phi float [ %2096, %2100 ], [ %2094, %2104 ], [ %2094, %2092 ]
  %2110 = add i32 %2075, %.1316162540
  %2111 = add nuw nsw i32 %.772541, 1
  %exitcond3089.not = icmp eq i32 %2111, %2072
  br i1 %exitcond3089.not, label %.loopexit2069, label %2076, !llvm.loop !122

2112:                                             ; preds = %1992
  store i32 1, ptr %9, align 4, !tbaa !5
  %.not1813.not2484 = icmp sgt i32 %1671, 2
  br i1 %.not1805.not.not.not.not.not.not.not.not, label %.preheader2072, label %.preheader2073

.preheader2073:                                   ; preds = %2112
  br i1 %.not1813.not2484, label %.lr.ph2459, label %._crit_edge2460

.preheader2072:                                   ; preds = %2112
  br i1 %.not1813.not2484, label %.lr.ph2486, label %._crit_edge2487

.lr.ph2459:                                       ; preds = %.preheader2073, %.lr.ph2459
  %storemerge18192458 = phi i32 [ %2120, %.lr.ph2459 ], [ 1, %.preheader2073 ]
  %2113 = load i32, ptr %10, align 4, !tbaa !5
  %2114 = add nsw i32 %storemerge18192458, 1
  %2115 = add i32 %2114, %2113
  %2116 = mul nsw i32 %2115, %.01698
  %2117 = sext i32 %2116 to i64
  %2118 = getelementptr inbounds %struct.complex, ptr %4, i64 %2117
  call void @classq_(ptr noundef nonnull %9, ptr noundef %2118, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %2119 = load i32, ptr %9, align 4, !tbaa !5
  %2120 = add nsw i32 %2119, 1
  store i32 %2120, ptr %9, align 4, !tbaa !5
  %.not1820.not = icmp slt i32 %2120, %1673
  br i1 %.not1820.not, label %.lr.ph2459, label %._crit_edge2460.loopexit, !llvm.loop !123

._crit_edge2460.loopexit:                         ; preds = %.lr.ph2459
  %.pre3541 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2460

._crit_edge2460:                                  ; preds = %._crit_edge2460.loopexit, %.preheader2073
  %2121 = phi i32 [ %.pre3541, %._crit_edge2460.loopexit ], [ %1673, %.preheader2073 ]
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not1822.not2461 = icmp sgt i32 %2121, 0
  br i1 %.not1822.not2461, label %.lr.ph2464, label %._crit_edge2470

.lr.ph2464:                                       ; preds = %._crit_edge2460, %.lr.ph2464
  %storemerge18212462 = phi i32 [ %2126, %.lr.ph2464 ], [ 0, %._crit_edge2460 ]
  %2122 = mul nsw i32 %storemerge18212462, %.01698
  %2123 = sext i32 %2122 to i64
  %2124 = getelementptr inbounds %struct.complex, ptr %4, i64 %2123
  call void @classq_(ptr noundef nonnull %10, ptr noundef %2124, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %2125 = load i32, ptr %9, align 4, !tbaa !5
  %2126 = add nsw i32 %2125, 1
  store i32 %2126, ptr %9, align 4, !tbaa !5
  %.not1822.not = icmp slt i32 %2126, %2121
  br i1 %.not1822.not, label %.lr.ph2464, label %._crit_edge2465, !llvm.loop !124

._crit_edge2465:                                  ; preds = %.lr.ph2464
  %.pre3542 = load i32, ptr %10, align 4, !tbaa !5
  %2127 = add nsw i32 %.pre3542, -2
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not18242466 = icmp slt i32 %.pre3542, 2
  br i1 %.not18242466, label %._crit_edge2470, label %.lr.ph2469

.lr.ph2469:                                       ; preds = %._crit_edge2465, %.lr.ph2469
  %storemerge18232467 = phi i32 [ %2138, %.lr.ph2469 ], [ 0, %._crit_edge2465 ]
  %2128 = load i32, ptr %10, align 4, !tbaa !5
  %2129 = xor i32 %storemerge18232467, -1
  %2130 = add i32 %2128, %2129
  store i32 %2130, ptr %7, align 4, !tbaa !5
  %2131 = add nsw i32 %storemerge18232467, 1
  %2132 = add nsw i32 %2128, %storemerge18232467
  %2133 = mul nsw i32 %2132, %.01698
  %2134 = add nsw i32 %2131, %2133
  %2135 = sext i32 %2134 to i64
  %2136 = getelementptr inbounds %struct.complex, ptr %4, i64 %2135
  call void @classq_(ptr noundef nonnull %7, ptr noundef %2136, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %2137 = load i32, ptr %9, align 4, !tbaa !5
  %2138 = add nsw i32 %2137, 1
  store i32 %2138, ptr %9, align 4, !tbaa !5
  %.not1824.not = icmp slt i32 %2137, %2127
  br i1 %.not1824.not, label %.lr.ph2469, label %._crit_edge2470.loopexit, !llvm.loop !125

._crit_edge2470.loopexit:                         ; preds = %.lr.ph2469
  %.pre3543 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2470

._crit_edge2470:                                  ; preds = %._crit_edge2460, %._crit_edge2470.loopexit, %._crit_edge2465
  %storemerge1825.in2473 = phi i32 [ %.pre3543, %._crit_edge2470.loopexit ], [ %.pre3542, %._crit_edge2465 ], [ %2121, %._crit_edge2460 ]
  %2139 = load float, ptr %11, align 4, !tbaa !12
  %2140 = fadd float %2139, %2139
  %2141 = mul nsw i32 %storemerge1825.in2473, %.01698
  %2142 = sext i32 %2141 to i64
  %2143 = getelementptr inbounds %struct.complex, ptr %4, i64 %2142
  %2144 = load float, ptr %2143, align 4, !tbaa !9
  %2145 = fcmp une float %2144, 0.000000e+00
  %2146 = load float, ptr %12, align 4, !tbaa !12
  br i1 %2145, label %2147, label %._crit_edge2470._crit_edge

2147:                                             ; preds = %._crit_edge2470
  %2148 = fcmp olt float %2146, %2144
  br i1 %2148, label %2149, label %2153

2149:                                             ; preds = %2147
  %2150 = fdiv float %2146, %2144
  %2151 = fmul float %2150, %2150
  %2152 = call float @llvm.fmuladd.f32(float %2140, float %2151, float 1.000000e+00)
  store float %2144, ptr %12, align 4, !tbaa !12
  br label %._crit_edge2470._crit_edge

2153:                                             ; preds = %2147
  %2154 = fdiv float %2144, %2146
  %2155 = call float @llvm.fmuladd.f32(float %2154, float %2154, float %2140)
  br label %._crit_edge2470._crit_edge

._crit_edge2470._crit_edge:                       ; preds = %._crit_edge2470, %2149, %2153
  %.promoted2472 = phi float [ %2152, %2149 ], [ %2155, %2153 ], [ %2140, %._crit_edge2470 ]
  %.promoted2471 = phi float [ %2144, %2149 ], [ %2146, %2153 ], [ %2146, %._crit_edge2470 ]
  %2156 = add nsw i32 %2141, %.01698
  %2157 = load i32, ptr %3, align 4, !tbaa !5
  %2158 = add nsw i32 %2157, -1
  %.not1826.not2475 = icmp slt i32 %storemerge1825.in2473, %2158
  br i1 %.not1826.not2475, label %.lr.ph2478, label %._crit_edge2479

.lr.ph2478:                                       ; preds = %._crit_edge2470._crit_edge
  %storemerge18252474 = add nsw i32 %storemerge1825.in2473, 1
  %2159 = add i32 %.01698, 1
  %smax = call i32 @llvm.smax.i32(i32 %storemerge18252474, i32 %2158)
  %invariant.gep3934 = getelementptr i8, ptr %4, i64 8
  br label %2160

2160:                                             ; preds = %.lr.ph2478, %2191
  %storemerge1825.in2483 = phi i32 [ %storemerge18252474, %.lr.ph2478 ], [ %storemerge1825, %2191 ]
  %.1416172476 = phi i32 [ %2156, %.lr.ph2478 ], [ %2194, %2191 ]
  %2161 = phi float [ %.promoted2471, %.lr.ph2478 ], [ %2193, %2191 ]
  %2162 = phi float [ %.promoted2472, %.lr.ph2478 ], [ %2192, %2191 ]
  %2163 = sext i32 %.1416172476 to i64
  %2164 = getelementptr inbounds %struct.complex, ptr %4, i64 %2163
  %2165 = load float, ptr %2164, align 4, !tbaa !9
  %2166 = fcmp une float %2165, 0.000000e+00
  br i1 %2166, label %2167, label %2176

2167:                                             ; preds = %2160
  %2168 = fcmp olt float %2161, %2165
  br i1 %2168, label %2169, label %2173

2169:                                             ; preds = %2167
  %2170 = fdiv float %2161, %2165
  %2171 = fmul float %2170, %2170
  %2172 = call float @llvm.fmuladd.f32(float %2162, float %2171, float 1.000000e+00)
  store float %2165, ptr %12, align 4, !tbaa !12
  br label %2176

2173:                                             ; preds = %2167
  %2174 = fdiv float %2165, %2161
  %2175 = call float @llvm.fmuladd.f32(float %2174, float %2174, float %2162)
  br label %2176

2176:                                             ; preds = %2169, %2173, %2160
  %2177 = phi float [ %2172, %2169 ], [ %2175, %2173 ], [ %2162, %2160 ]
  %2178 = phi float [ %2165, %2169 ], [ %2161, %2173 ], [ %2161, %2160 ]
  %2179 = sext i32 %.1416172476 to i64
  %gep3935 = getelementptr %struct.complex, ptr %invariant.gep3934, i64 %2179
  %2180 = load float, ptr %gep3935, align 4, !tbaa !9
  %2181 = fcmp une float %2180, 0.000000e+00
  br i1 %2181, label %2182, label %2191

2182:                                             ; preds = %2176
  %2183 = fcmp olt float %2178, %2180
  br i1 %2183, label %2184, label %2188

2184:                                             ; preds = %2182
  %2185 = fdiv float %2178, %2180
  %2186 = fmul float %2185, %2185
  %2187 = call float @llvm.fmuladd.f32(float %2177, float %2186, float 1.000000e+00)
  store float %2180, ptr %12, align 4, !tbaa !12
  br label %2191

2188:                                             ; preds = %2182
  %2189 = fdiv float %2180, %2178
  %2190 = call float @llvm.fmuladd.f32(float %2189, float %2189, float %2177)
  br label %2191

2191:                                             ; preds = %2184, %2188, %2176
  %2192 = phi float [ %2187, %2184 ], [ %2190, %2188 ], [ %2177, %2176 ]
  %2193 = phi float [ %2180, %2184 ], [ %2178, %2188 ], [ %2178, %2176 ]
  %2194 = add i32 %2159, %.1416172476
  %storemerge1825 = add i32 %storemerge1825.in2483, 1
  %exitcond3086.not = icmp eq i32 %storemerge1825.in2483, %smax
  br i1 %exitcond3086.not, label %._crit_edge2479, label %2160, !llvm.loop !126

._crit_edge2479:                                  ; preds = %2191, %._crit_edge2470._crit_edge
  %2195 = phi float [ %.promoted2472, %._crit_edge2470._crit_edge ], [ %2192, %2191 ]
  %2196 = phi float [ %.promoted2471, %._crit_edge2470._crit_edge ], [ %2193, %2191 ]
  %.141617.lcssa = phi i32 [ %2156, %._crit_edge2470._crit_edge ], [ %2194, %2191 ]
  %2197 = sext i32 %.141617.lcssa to i64
  %2198 = getelementptr inbounds %struct.complex, ptr %4, i64 %2197
  %2199 = load float, ptr %2198, align 4, !tbaa !9
  %2200 = fcmp une float %2199, 0.000000e+00
  br i1 %2200, label %2201, label %.loopexit2069

2201:                                             ; preds = %._crit_edge2479
  %2202 = fcmp olt float %2196, %2199
  br i1 %2202, label %2203, label %2207

2203:                                             ; preds = %2201
  %2204 = fdiv float %2196, %2199
  %2205 = fmul float %2204, %2204
  %2206 = call float @llvm.fmuladd.f32(float %2195, float %2205, float 1.000000e+00)
  store float %2199, ptr %12, align 4, !tbaa !12
  br label %.loopexit2069

2207:                                             ; preds = %2201
  %2208 = fdiv float %2199, %2196
  %2209 = call float @llvm.fmuladd.f32(float %2208, float %2208, float %2195)
  br label %.loopexit2069

.lr.ph2486:                                       ; preds = %.preheader2072, %.lr.ph2486
  %storemerge2485 = phi i32 [ %2215, %.lr.ph2486 ], [ 1, %.preheader2072 ]
  %2210 = add nsw i32 %storemerge2485, 1
  %2211 = mul nsw i32 %2210, %.01698
  %2212 = sext i32 %2211 to i64
  %2213 = getelementptr inbounds %struct.complex, ptr %4, i64 %2212
  call void @classq_(ptr noundef nonnull %9, ptr noundef %2213, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %2214 = load i32, ptr %9, align 4, !tbaa !5
  %2215 = add nsw i32 %2214, 1
  store i32 %2215, ptr %9, align 4, !tbaa !5
  %.not1813.not = icmp slt i32 %2215, %1673
  br i1 %.not1813.not, label %.lr.ph2486, label %._crit_edge2487.loopexit, !llvm.loop !127

._crit_edge2487.loopexit:                         ; preds = %.lr.ph2486
  %.pre3546 = load i32, ptr %3, align 4, !tbaa !5
  %storemerge1814.in2488.pre = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2487

._crit_edge2487:                                  ; preds = %._crit_edge2487.loopexit, %.preheader2072
  %storemerge1814.in2488 = phi i32 [ %storemerge1814.in2488.pre, %._crit_edge2487.loopexit ], [ %1673, %.preheader2072 ]
  %2216 = phi i32 [ %.pre3546, %._crit_edge2487.loopexit ], [ %1671, %.preheader2072 ]
  %storemerge18142489 = add nsw i32 %storemerge1814.in2488, 1
  store i32 %storemerge18142489, ptr %9, align 4, !tbaa !5
  %.not1815.not2490 = icmp slt i32 %storemerge1814.in2488, %2216
  br i1 %.not1815.not2490, label %.lr.ph2493, label %._crit_edge2494

.lr.ph2493:                                       ; preds = %._crit_edge2487, %.lr.ph2493
  %storemerge18142491 = phi i32 [ %storemerge1814, %.lr.ph2493 ], [ %storemerge18142489, %._crit_edge2487 ]
  %2217 = mul nsw i32 %storemerge18142491, %.01698
  %2218 = sext i32 %2217 to i64
  %2219 = getelementptr inbounds %struct.complex, ptr %4, i64 %2218
  call void @classq_(ptr noundef nonnull %10, ptr noundef %2219, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %storemerge1814.in = load i32, ptr %9, align 4, !tbaa !5
  %storemerge1814 = add nsw i32 %storemerge1814.in, 1
  store i32 %storemerge1814, ptr %9, align 4, !tbaa !5
  %.not1815.not = icmp slt i32 %storemerge1814.in, %2216
  br i1 %.not1815.not, label %.lr.ph2493, label %._crit_edge2494.loopexit, !llvm.loop !128

._crit_edge2494.loopexit:                         ; preds = %.lr.ph2493
  %.pre3548 = load i32, ptr %10, align 4, !tbaa !5
  br label %._crit_edge2494

._crit_edge2494:                                  ; preds = %._crit_edge2494.loopexit, %._crit_edge2487
  %2220 = phi i32 [ %.pre3548, %._crit_edge2494.loopexit ], [ %storemerge1814.in2488, %._crit_edge2487 ]
  %2221 = add nsw i32 %2220, -2
  store i32 0, ptr %9, align 4, !tbaa !5
  %.not18172495 = icmp slt i32 %2220, 2
  br i1 %.not18172495, label %._crit_edge2499, label %.lr.ph2498

.lr.ph2498:                                       ; preds = %._crit_edge2494, %.lr.ph2498
  %storemerge18162496 = phi i32 [ %2231, %.lr.ph2498 ], [ 0, %._crit_edge2494 ]
  %2222 = load i32, ptr %10, align 4, !tbaa !5
  %2223 = xor i32 %storemerge18162496, -1
  %2224 = add i32 %2222, %2223
  store i32 %2224, ptr %7, align 4, !tbaa !5
  %2225 = add nsw i32 %storemerge18162496, 1
  %2226 = mul nsw i32 %storemerge18162496, %.01698
  %2227 = add nsw i32 %2225, %2226
  %2228 = sext i32 %2227 to i64
  %2229 = getelementptr inbounds %struct.complex, ptr %4, i64 %2228
  call void @classq_(ptr noundef nonnull %7, ptr noundef %2229, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #9
  %2230 = load i32, ptr %9, align 4, !tbaa !5
  %2231 = add nsw i32 %2230, 1
  store i32 %2231, ptr %9, align 4, !tbaa !5
  %.not1817.not = icmp slt i32 %2230, %2221
  br i1 %.not1817.not, label %.lr.ph2498, label %._crit_edge2499, !llvm.loop !129

._crit_edge2499:                                  ; preds = %.lr.ph2498, %._crit_edge2494
  %2232 = load float, ptr %11, align 4, !tbaa !12
  %2233 = fadd float %2232, %2232
  %2234 = load float, ptr %4, align 4, !tbaa !9
  %2235 = fcmp une float %2234, 0.000000e+00
  br i1 %2235, label %2236, label %2246

2236:                                             ; preds = %._crit_edge2499
  %2237 = load float, ptr %12, align 4, !tbaa !12
  %2238 = fcmp olt float %2237, %2234
  br i1 %2238, label %2239, label %2243

2239:                                             ; preds = %2236
  %2240 = fdiv float %2237, %2234
  %2241 = fmul float %2240, %2240
  %2242 = call float @llvm.fmuladd.f32(float %2233, float %2241, float 1.000000e+00)
  store float %2234, ptr %12, align 4, !tbaa !12
  br label %2246

2243:                                             ; preds = %2236
  %2244 = fdiv float %2234, %2237
  %2245 = call float @llvm.fmuladd.f32(float %2244, float %2244, float %2233)
  br label %2246

2246:                                             ; preds = %2239, %2243, %._crit_edge2499
  %.promoted2501 = phi float [ %2242, %2239 ], [ %2245, %2243 ], [ %2233, %._crit_edge2499 ]
  %2247 = load i32, ptr %10, align 4, !tbaa !5
  %.not18182502 = icmp slt i32 %2247, 2
  br i1 %.not18182502, label %._crit_edge2507, label %.lr.ph2506

.lr.ph2506:                                       ; preds = %2246
  %.promoted2500 = load float, ptr %12, align 4, !tbaa !12
  %2248 = add i32 %.01698, 1
  %2249 = add nsw i32 %2247, -2
  %invariant.gep3936 = getelementptr i8, ptr %4, i64 8
  br label %2250

2250:                                             ; preds = %.lr.ph2506, %2281
  %.782504 = phi i32 [ 0, %.lr.ph2506 ], [ %2285, %2281 ]
  %.1516182503 = phi i32 [ %.01698, %.lr.ph2506 ], [ %2284, %2281 ]
  %2251 = phi float [ %.promoted2500, %.lr.ph2506 ], [ %2283, %2281 ]
  %2252 = phi float [ %.promoted2501, %.lr.ph2506 ], [ %2282, %2281 ]
  %2253 = sext i32 %.1516182503 to i64
  %2254 = getelementptr inbounds %struct.complex, ptr %4, i64 %2253
  %2255 = load float, ptr %2254, align 4, !tbaa !9
  %2256 = fcmp une float %2255, 0.000000e+00
  br i1 %2256, label %2257, label %2266

2257:                                             ; preds = %2250
  %2258 = fcmp olt float %2251, %2255
  br i1 %2258, label %2259, label %2263

2259:                                             ; preds = %2257
  %2260 = fdiv float %2251, %2255
  %2261 = fmul float %2260, %2260
  %2262 = call float @llvm.fmuladd.f32(float %2252, float %2261, float 1.000000e+00)
  store float %2255, ptr %12, align 4, !tbaa !12
  br label %2266

2263:                                             ; preds = %2257
  %2264 = fdiv float %2255, %2251
  %2265 = call float @llvm.fmuladd.f32(float %2264, float %2264, float %2252)
  br label %2266

2266:                                             ; preds = %2259, %2263, %2250
  %2267 = phi float [ %2262, %2259 ], [ %2265, %2263 ], [ %2252, %2250 ]
  %2268 = phi float [ %2255, %2259 ], [ %2251, %2263 ], [ %2251, %2250 ]
  %2269 = sext i32 %.1516182503 to i64
  %gep3937 = getelementptr %struct.complex, ptr %invariant.gep3936, i64 %2269
  %2270 = load float, ptr %gep3937, align 4, !tbaa !9
  %2271 = fcmp une float %2270, 0.000000e+00
  br i1 %2271, label %2272, label %2281

2272:                                             ; preds = %2266
  %2273 = fcmp olt float %2268, %2270
  br i1 %2273, label %2274, label %2278

2274:                                             ; preds = %2272
  %2275 = fdiv float %2268, %2270
  %2276 = fmul float %2275, %2275
  %2277 = call float @llvm.fmuladd.f32(float %2267, float %2276, float 1.000000e+00)
  store float %2270, ptr %12, align 4, !tbaa !12
  br label %2281

2278:                                             ; preds = %2272
  %2279 = fdiv float %2270, %2268
  %2280 = call float @llvm.fmuladd.f32(float %2279, float %2279, float %2267)
  br label %2281

2281:                                             ; preds = %2274, %2278, %2266
  %2282 = phi float [ %2277, %2274 ], [ %2280, %2278 ], [ %2267, %2266 ]
  %2283 = phi float [ %2270, %2274 ], [ %2268, %2278 ], [ %2268, %2266 ]
  %2284 = add i32 %2248, %.1516182503
  %2285 = add nuw i32 %.782504, 1
  %exitcond3087.not = icmp eq i32 %.782504, %2249
  br i1 %exitcond3087.not, label %._crit_edge2507, label %2250, !llvm.loop !130

._crit_edge2507:                                  ; preds = %2281, %2246
  %2286 = phi float [ %.promoted2501, %2246 ], [ %2282, %2281 ]
  %.151618.lcssa = phi i32 [ %.01698, %2246 ], [ %2284, %2281 ]
  %2287 = sext i32 %.151618.lcssa to i64
  %2288 = getelementptr inbounds %struct.complex, ptr %4, i64 %2287
  %2289 = load float, ptr %2288, align 4, !tbaa !9
  %2290 = fcmp une float %2289, 0.000000e+00
  br i1 %2290, label %2291, label %.loopexit2069

2291:                                             ; preds = %._crit_edge2507
  %2292 = load float, ptr %12, align 4, !tbaa !12
  %2293 = fcmp olt float %2292, %2289
  br i1 %2293, label %2294, label %2298

2294:                                             ; preds = %2291
  %2295 = fdiv float %2292, %2289
  %2296 = fmul float %2295, %2295
  %2297 = call float @llvm.fmuladd.f32(float %2286, float %2296, float 1.000000e+00)
  store float %2289, ptr %12, align 4, !tbaa !12
  br label %.loopexit2069

2298:                                             ; preds = %2291
  %2299 = fdiv float %2289, %2292
  %2300 = call float @llvm.fmuladd.f32(float %2299, float %2299, float %2286)
  br label %.loopexit2069

.loopexit2069:                                    ; preds = %1907, %1821, %2051, %2107, %1873, %._crit_edge2519.thread, %1787, %._crit_edge2519, %._crit_edge2536, %._crit_edge2507, %2298, %2294, %._crit_edge2479, %2207, %2203, %._crit_edge2437, %1752, %1748, %1977, %1989, %1985
  %2301 = phi float [ %.promoted2450, %1787 ], [ %2018, %._crit_edge2519 ], [ %2074, %._crit_edge2536 ], [ %2286, %._crit_edge2507 ], [ %2300, %2298 ], [ %2297, %2294 ], [ %2195, %._crit_edge2479 ], [ %2209, %2207 ], [ %2206, %2203 ], [ %1740, %._crit_edge2437 ], [ %1754, %1752 ], [ %1751, %1748 ], [ %1978, %1977 ], [ %1991, %1989 ], [ %1988, %1985 ], [ %2009, %._crit_edge2519.thread ], [ %.promoted2389, %1873 ], [ %2108, %2107 ], [ %2052, %2051 ], [ %1822, %1821 ], [ %1908, %1907 ]
  %2302 = load float, ptr %12, align 4, !tbaa !12
  %2303 = fpext float %2302 to double
  %2304 = fpext float %2301 to double
  %2305 = call double @sqrt(double noundef %2304) #9
  %2306 = fmul double %2305, %2303
  %2307 = fptrunc double %2306 to float
  br label %.loopexit

.loopexit:                                        ; preds = %._crit_edge2114, %._crit_edge2155, %._crit_edge2212, %.loopexit2079, %._crit_edge2366, %1292, %1401, %1536, %1665, %983, %1055, %1117, %1182, %.thread3626, %.preheader2053.thread3622, %.thread, %._crit_edge2267, %._crit_edge3466, %629, %._crit_edge3511, %._crit_edge2189, %._crit_edge3424, %._crit_edge2100, %302, %._crit_edge2197, %752, %._crit_edge2352, %1284, %1393, %._crit_edge3586, %1657, %975, %1048, %.preheader2053, %1175, %641, %904, %210, %1668, %.loopexit2069, %6, %14
  %.0 = phi float [ %18, %14 ], [ 0.000000e+00, %6 ], [ %.171636.lcssa, %210 ], [ %.651684, %641 ], [ %.95.lcssa, %904 ], [ %2307, %.loopexit2069 ], [ undef, %1668 ], [ %1176, %1175 ], [ %1111, %.preheader2053 ], [ %1049, %1048 ], [ %976, %975 ], [ %1659, %1657 ], [ %1529, %._crit_edge3586 ], [ %1395, %1393 ], [ %1286, %1284 ], [ %.471666.lcssa, %._crit_edge2352 ], [ %.781697, %752 ], [ %.11620.lcssa, %._crit_edge2197 ], [ %.281647, %302 ], [ %.361655.lcssa, %._crit_edge2100 ], [ %.pre3425, %._crit_edge3424 ], [ %208, %._crit_edge2189 ], [ %.pre3512, %._crit_edge3511 ], [ %639, %629 ], [ %.pre3467, %._crit_edge3466 ], [ %902, %._crit_edge2267 ], [ %995, %.thread ], [ %1057, %.preheader2053.thread3622 ], [ %1174, %.thread3626 ], [ %.104, %1182 ], [ %.102, %1117 ], [ %.100, %1055 ], [ %.98, %983 ], [ %.112, %1665 ], [ %.110, %1536 ], [ %.108, %1401 ], [ %.106, %1292 ], [ %.541673.lcssa, %._crit_edge2366 ], [ %.80.lcssa, %.loopexit2079 ], [ %.81627.lcssa, %._crit_edge2212 ], [ %.301649.lcssa, %._crit_edge2155 ], [ %.431662.lcssa, %._crit_edge2114 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #9
  ret float %.0
}

; 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 @sisnan_(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare float @cabsf(<2 x float> noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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 = { 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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { 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 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = distinct !{!48, !14}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = distinct !{!51, !14}
!52 = distinct !{!52, !14}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}
!55 = distinct !{!55, !14}
!56 = !{!7, !7, i64 0}
!57 = distinct !{!57, !14}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14}
!60 = distinct !{!60, !14}
!61 = distinct !{!61, !14}
!62 = distinct !{!62, !14}
!63 = distinct !{!63, !14}
!64 = distinct !{!64, !14}
!65 = distinct !{!65, !14}
!66 = distinct !{!66, !14}
!67 = distinct !{!67, !14}
!68 = distinct !{!68, !14}
!69 = distinct !{!69, !14}
!70 = distinct !{!70, !14}
!71 = distinct !{!71, !14}
!72 = distinct !{!72, !14}
!73 = distinct !{!73, !14}
!74 = distinct !{!74, !14}
!75 = distinct !{!75, !14}
!76 = distinct !{!76, !14}
!77 = distinct !{!77, !14}
!78 = distinct !{!78, !14}
!79 = distinct !{!79, !14}
!80 = distinct !{!80, !14}
!81 = distinct !{!81, !14}
!82 = distinct !{!82, !14}
!83 = distinct !{!83, !14}
!84 = distinct !{!84, !14}
!85 = distinct !{!85, !14}
!86 = distinct !{!86, !14}
!87 = distinct !{!87, !14}
!88 = distinct !{!88, !14}
!89 = distinct !{!89, !14}
!90 = distinct !{!90, !14}
!91 = distinct !{!91, !14}
!92 = distinct !{!92, !14}
!93 = distinct !{!93, !14}
!94 = distinct !{!94, !14}
!95 = distinct !{!95, !14}
!96 = distinct !{!96, !14}
!97 = distinct !{!97, !14}
!98 = distinct !{!98, !14}
!99 = distinct !{!99, !14}
!100 = distinct !{!100, !14}
!101 = distinct !{!101, !14}
!102 = distinct !{!102, !14}
!103 = distinct !{!103, !14}
!104 = distinct !{!104, !14}
!105 = distinct !{!105, !14}
!106 = distinct !{!106, !14}
!107 = distinct !{!107, !14}
!108 = distinct !{!108, !14}
!109 = distinct !{!109, !14}
!110 = distinct !{!110, !14}
!111 = distinct !{!111, !14}
!112 = distinct !{!112, !14}
!113 = distinct !{!113, !14}
!114 = distinct !{!114, !14}
!115 = distinct !{!115, !14}
!116 = distinct !{!116, !14}
!117 = distinct !{!117, !14}
!118 = distinct !{!118, !14}
!119 = distinct !{!119, !14}
!120 = distinct !{!120, !14}
!121 = distinct !{!121, !14}
!122 = distinct !{!122, !14}
!123 = distinct !{!123, !14}
!124 = distinct !{!124, !14}
!125 = distinct !{!125, !14}
!126 = distinct !{!126, !14}
!127 = distinct !{!127, !14}
!128 = distinct !{!128, !14}
!129 = distinct !{!129, !14}
!130 = distinct !{!130, !14}


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