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

; 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 }

@c__1 = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@c__2 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @clahqr_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12) #0 {
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca %struct.complex, align 4
  %43 = alloca %struct.complex, align 4
  %44 = alloca %struct.complex, align 4
  %45 = alloca %struct.complex, align 4
  %46 = alloca %struct.complex, align 4
  %47 = alloca %struct.complex, align 4
  %48 = alloca %struct.complex, align 4
  %49 = alloca %struct.complex, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca float, align 4
  %56 = alloca %struct.complex, align 4
  %57 = alloca %struct.complex, align 4
  %58 = alloca [2 x %struct.complex], align 16
  %59 = alloca %struct.complex, align 4
  %60 = alloca %struct.complex, align 4
  %61 = alloca i32, align 4
  %62 = alloca float, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca %struct.complex, align 4
  %66 = alloca float, align 4
  %67 = alloca %struct.complex, align 4
  %68 = alloca float, align 4
  %69 = alloca float, align 4
  %70 = alloca float, align 4
  %71 = alloca float, align 4
  %72 = alloca float, align 4
  %73 = alloca %struct.complex, align 4
  %74 = alloca float, align 4
  %75 = alloca %struct.complex, align 4
  %76 = alloca %struct.complex, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca float, align 4
  %80 = alloca float, align 4
  %81 = alloca float, align 4
  %82 = alloca float, align 4
  %83 = alloca i32, align 4
  %84 = alloca %struct.complex, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca float, align 4
  %88 = alloca %struct.complex, align 4
  %89 = alloca float, align 4
  %90 = alloca i32, 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
  %145 = alloca { float, float }, align 4
  %146 = alloca { float, float }, align 4
  %147 = alloca { float, float }, align 4
  store ptr %0, ptr %14, align 8, !tbaa !5
  store ptr %1, ptr %15, align 8, !tbaa !5
  store ptr %2, ptr %16, align 8, !tbaa !5
  store ptr %3, ptr %17, align 8, !tbaa !5
  store ptr %4, ptr %18, align 8, !tbaa !5
  store ptr %5, ptr %19, align 8, !tbaa !5
  store ptr %6, ptr %20, align 8, !tbaa !5
  store ptr %7, ptr %21, align 8, !tbaa !5
  store ptr %8, ptr %22, align 8, !tbaa !5
  store ptr %9, ptr %23, align 8, !tbaa !5
  store ptr %10, ptr %24, align 8, !tbaa !5
  store ptr %11, ptr %25, align 8, !tbaa !5
  store ptr %12, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #7
  %148 = load ptr, ptr %20, align 8, !tbaa !5
  %149 = load i32, ptr %148, align 4, !tbaa !9
  store i32 %149, ptr %27, align 4, !tbaa !9
  %150 = load i32, ptr %27, align 4, !tbaa !9
  %151 = mul nsw i32 %150, 1
  %152 = add nsw i32 1, %151
  store i32 %152, ptr %28, align 4, !tbaa !9
  %153 = load i32, ptr %28, align 4, !tbaa !9
  %154 = load ptr, ptr %19, align 8, !tbaa !5
  %155 = sext i32 %153 to i64
  %156 = sub i64 0, %155
  %157 = getelementptr inbounds %struct.complex, ptr %154, i64 %156
  store ptr %157, ptr %19, align 8, !tbaa !5
  %158 = load ptr, ptr %21, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.complex, ptr %158, i32 -1
  store ptr %159, ptr %21, align 8, !tbaa !5
  %160 = load ptr, ptr %25, align 8, !tbaa !5
  %161 = load i32, ptr %160, align 4, !tbaa !9
  store i32 %161, ptr %29, align 4, !tbaa !9
  %162 = load i32, ptr %29, align 4, !tbaa !9
  %163 = mul nsw i32 %162, 1
  %164 = add nsw i32 1, %163
  store i32 %164, ptr %30, align 4, !tbaa !9
  %165 = load i32, ptr %30, align 4, !tbaa !9
  %166 = load ptr, ptr %24, align 8, !tbaa !5
  %167 = sext i32 %165 to i64
  %168 = sub i64 0, %167
  %169 = getelementptr inbounds %struct.complex, ptr %166, i64 %168
  store ptr %169, ptr %24, align 8, !tbaa !5
  %170 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 0, ptr %170, align 4, !tbaa !9
  %171 = load ptr, ptr %16, align 8, !tbaa !5
  %172 = load i32, ptr %171, align 4, !tbaa !9
  %173 = icmp eq i32 %172, 0
  br i1 %173, label %174, label %175

174:                                              ; preds = %13
  store i32 1, ptr %90, align 4
  br label %3521

175:                                              ; preds = %13
  %176 = load ptr, ptr %17, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  %178 = load ptr, ptr %18, align 8, !tbaa !5
  %179 = load i32, ptr %178, align 4, !tbaa !9
  %180 = icmp eq i32 %177, %179
  br i1 %180, label %181, label %213

181:                                              ; preds = %175
  %182 = load ptr, ptr %17, align 8, !tbaa !5
  %183 = load i32, ptr %182, align 4, !tbaa !9
  store i32 %183, ptr %31, align 4, !tbaa !9
  %184 = load ptr, ptr %17, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = load ptr, ptr %17, align 8, !tbaa !5
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = load i32, ptr %27, align 4, !tbaa !9
  %189 = mul nsw i32 %187, %188
  %190 = add nsw i32 %185, %189
  store i32 %190, ptr %32, align 4, !tbaa !9
  %191 = load ptr, ptr %19, align 8, !tbaa !5
  %192 = load i32, ptr %32, align 4, !tbaa !9
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds %struct.complex, ptr %191, i64 %193
  %195 = getelementptr inbounds %struct.complex, ptr %194, i32 0, i32 0
  %196 = load float, ptr %195, align 4, !tbaa !11
  %197 = load ptr, ptr %21, align 8, !tbaa !5
  %198 = load i32, ptr %31, align 4, !tbaa !9
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds %struct.complex, ptr %197, i64 %199
  %201 = getelementptr inbounds %struct.complex, ptr %200, i32 0, i32 0
  store float %196, ptr %201, align 4, !tbaa !11
  %202 = load ptr, ptr %19, align 8, !tbaa !5
  %203 = load i32, ptr %32, align 4, !tbaa !9
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds %struct.complex, ptr %202, i64 %204
  %206 = getelementptr inbounds %struct.complex, ptr %205, i32 0, i32 1
  %207 = load float, ptr %206, align 4, !tbaa !14
  %208 = load ptr, ptr %21, align 8, !tbaa !5
  %209 = load i32, ptr %31, align 4, !tbaa !9
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds %struct.complex, ptr %208, i64 %210
  %212 = getelementptr inbounds %struct.complex, ptr %211, i32 0, i32 1
  store float %207, ptr %212, align 4, !tbaa !14
  store i32 1, ptr %90, align 4
  br label %3521

213:                                              ; preds = %175
  %214 = load ptr, ptr %18, align 8, !tbaa !5
  %215 = load i32, ptr %214, align 4, !tbaa !9
  %216 = sub nsw i32 %215, 3
  store i32 %216, ptr %31, align 4, !tbaa !9
  %217 = load ptr, ptr %17, align 8, !tbaa !5
  %218 = load i32, ptr %217, align 4, !tbaa !9
  store i32 %218, ptr %51, align 4, !tbaa !9
  br label %219

219:                                              ; preds = %256, %213
  %220 = load i32, ptr %51, align 4, !tbaa !9
  %221 = load i32, ptr %31, align 4, !tbaa !9
  %222 = icmp sle i32 %220, %221
  br i1 %222, label %223, label %259

223:                                              ; preds = %219
  %224 = load i32, ptr %51, align 4, !tbaa !9
  %225 = add nsw i32 %224, 2
  %226 = load i32, ptr %51, align 4, !tbaa !9
  %227 = load i32, ptr %27, align 4, !tbaa !9
  %228 = mul nsw i32 %226, %227
  %229 = add nsw i32 %225, %228
  store i32 %229, ptr %32, align 4, !tbaa !9
  %230 = load ptr, ptr %19, align 8, !tbaa !5
  %231 = load i32, ptr %32, align 4, !tbaa !9
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds %struct.complex, ptr %230, i64 %232
  %234 = getelementptr inbounds %struct.complex, ptr %233, i32 0, i32 0
  store float 0.000000e+00, ptr %234, align 4, !tbaa !11
  %235 = load ptr, ptr %19, align 8, !tbaa !5
  %236 = load i32, ptr %32, align 4, !tbaa !9
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds %struct.complex, ptr %235, i64 %237
  %239 = getelementptr inbounds %struct.complex, ptr %238, i32 0, i32 1
  store float 0.000000e+00, ptr %239, align 4, !tbaa !14
  %240 = load i32, ptr %51, align 4, !tbaa !9
  %241 = add nsw i32 %240, 3
  %242 = load i32, ptr %51, align 4, !tbaa !9
  %243 = load i32, ptr %27, align 4, !tbaa !9
  %244 = mul nsw i32 %242, %243
  %245 = add nsw i32 %241, %244
  store i32 %245, ptr %32, align 4, !tbaa !9
  %246 = load ptr, ptr %19, align 8, !tbaa !5
  %247 = load i32, ptr %32, align 4, !tbaa !9
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds %struct.complex, ptr %246, i64 %248
  %250 = getelementptr inbounds %struct.complex, ptr %249, i32 0, i32 0
  store float 0.000000e+00, ptr %250, align 4, !tbaa !11
  %251 = load ptr, ptr %19, align 8, !tbaa !5
  %252 = load i32, ptr %32, align 4, !tbaa !9
  %253 = sext i32 %252 to i64
  %254 = getelementptr inbounds %struct.complex, ptr %251, i64 %253
  %255 = getelementptr inbounds %struct.complex, ptr %254, i32 0, i32 1
  store float 0.000000e+00, ptr %255, align 4, !tbaa !14
  br label %256

256:                                              ; preds = %223
  %257 = load i32, ptr %51, align 4, !tbaa !9
  %258 = add nsw i32 %257, 1
  store i32 %258, ptr %51, align 4, !tbaa !9
  br label %219, !llvm.loop !15

259:                                              ; preds = %219
  %260 = load ptr, ptr %17, align 8, !tbaa !5
  %261 = load i32, ptr %260, align 4, !tbaa !9
  %262 = load ptr, ptr %18, align 8, !tbaa !5
  %263 = load i32, ptr %262, align 4, !tbaa !9
  %264 = sub nsw i32 %263, 2
  %265 = icmp sle i32 %261, %264
  br i1 %265, label %266, label %285

266:                                              ; preds = %259
  %267 = load ptr, ptr %18, align 8, !tbaa !5
  %268 = load i32, ptr %267, align 4, !tbaa !9
  %269 = load ptr, ptr %18, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = sub nsw i32 %270, 2
  %272 = load i32, ptr %27, align 4, !tbaa !9
  %273 = mul nsw i32 %271, %272
  %274 = add nsw i32 %268, %273
  store i32 %274, ptr %31, align 4, !tbaa !9
  %275 = load ptr, ptr %19, align 8, !tbaa !5
  %276 = load i32, ptr %31, align 4, !tbaa !9
  %277 = sext i32 %276 to i64
  %278 = getelementptr inbounds %struct.complex, ptr %275, i64 %277
  %279 = getelementptr inbounds %struct.complex, ptr %278, i32 0, i32 0
  store float 0.000000e+00, ptr %279, align 4, !tbaa !11
  %280 = load ptr, ptr %19, align 8, !tbaa !5
  %281 = load i32, ptr %31, align 4, !tbaa !9
  %282 = sext i32 %281 to i64
  %283 = getelementptr inbounds %struct.complex, ptr %280, i64 %282
  %284 = getelementptr inbounds %struct.complex, ptr %283, i32 0, i32 1
  store float 0.000000e+00, ptr %284, align 4, !tbaa !14
  br label %285

285:                                              ; preds = %266, %259
  %286 = load ptr, ptr %14, align 8, !tbaa !5
  %287 = load i32, ptr %286, align 4, !tbaa !9
  %288 = icmp ne i32 %287, 0
  br i1 %288, label %289, label %292

289:                                              ; preds = %285
  store i32 1, ptr %85, align 4, !tbaa !9
  %290 = load ptr, ptr %16, align 8, !tbaa !5
  %291 = load i32, ptr %290, align 4, !tbaa !9
  store i32 %291, ptr %83, align 4, !tbaa !9
  br label %297

292:                                              ; preds = %285
  %293 = load ptr, ptr %17, align 8, !tbaa !5
  %294 = load i32, ptr %293, align 4, !tbaa !9
  store i32 %294, ptr %85, align 4, !tbaa !9
  %295 = load ptr, ptr %18, align 8, !tbaa !5
  %296 = load i32, ptr %295, align 4, !tbaa !9
  store i32 %296, ptr %83, align 4, !tbaa !9
  br label %297

297:                                              ; preds = %292, %289
  %298 = load ptr, ptr %18, align 8, !tbaa !5
  %299 = load i32, ptr %298, align 4, !tbaa !9
  store i32 %299, ptr %31, align 4, !tbaa !9
  %300 = load ptr, ptr %17, align 8, !tbaa !5
  %301 = load i32, ptr %300, align 4, !tbaa !9
  %302 = add nsw i32 %301, 1
  store i32 %302, ptr %50, align 4, !tbaa !9
  br label %303

303:                                              ; preds = %543, %297
  %304 = load i32, ptr %50, align 4, !tbaa !9
  %305 = load i32, ptr %31, align 4, !tbaa !9
  %306 = icmp sle i32 %304, %305
  br i1 %306, label %307, label %546

307:                                              ; preds = %303
  %308 = load ptr, ptr %19, align 8, !tbaa !5
  %309 = load i32, ptr %50, align 4, !tbaa !9
  %310 = load i32, ptr %50, align 4, !tbaa !9
  %311 = sub nsw i32 %310, 1
  %312 = load i32, ptr %27, align 4, !tbaa !9
  %313 = mul nsw i32 %311, %312
  %314 = add nsw i32 %309, %313
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds %struct.complex, ptr %308, i64 %315
  %317 = call <2 x float> @Cf(ptr noundef %316)
  store <2 x float> %317, ptr %91, align 4
  %318 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 0
  %319 = load float, ptr %318, align 4
  %320 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 1
  %321 = load float, ptr %320, align 4
  %322 = fcmp une float %321, 0.000000e+00
  br i1 %322, label %323, label %542

323:                                              ; preds = %307
  %324 = load i32, ptr %50, align 4, !tbaa !9
  %325 = load i32, ptr %50, align 4, !tbaa !9
  %326 = sub nsw i32 %325, 1
  %327 = load i32, ptr %27, align 4, !tbaa !9
  %328 = mul nsw i32 %326, %327
  %329 = add nsw i32 %324, %328
  store i32 %329, ptr %32, align 4, !tbaa !9
  %330 = load i32, ptr %50, align 4, !tbaa !9
  %331 = load i32, ptr %50, align 4, !tbaa !9
  %332 = sub nsw i32 %331, 1
  %333 = load i32, ptr %27, align 4, !tbaa !9
  %334 = mul nsw i32 %332, %333
  %335 = add nsw i32 %330, %334
  store i32 %335, ptr %33, align 4, !tbaa !9
  %336 = load ptr, ptr %19, align 8, !tbaa !5
  %337 = load i32, ptr %33, align 4, !tbaa !9
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds %struct.complex, ptr %336, i64 %338
  %340 = getelementptr inbounds %struct.complex, ptr %339, i32 0, i32 0
  %341 = load float, ptr %340, align 4, !tbaa !11
  store float %341, ptr %36, align 4, !tbaa !17
  %342 = load float, ptr %36, align 4, !tbaa !17
  %343 = fcmp oge float %342, 0.000000e+00
  br i1 %343, label %344, label %346

344:                                              ; preds = %323
  %345 = load float, ptr %36, align 4, !tbaa !17
  br label %349

346:                                              ; preds = %323
  %347 = load float, ptr %36, align 4, !tbaa !17
  %348 = fneg float %347
  br label %349

349:                                              ; preds = %346, %344
  %350 = phi float [ %345, %344 ], [ %348, %346 ]
  %351 = load ptr, ptr %19, align 8, !tbaa !5
  %352 = load i32, ptr %50, align 4, !tbaa !9
  %353 = load i32, ptr %50, align 4, !tbaa !9
  %354 = sub nsw i32 %353, 1
  %355 = load i32, ptr %27, align 4, !tbaa !9
  %356 = mul nsw i32 %354, %355
  %357 = add nsw i32 %352, %356
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds %struct.complex, ptr %351, i64 %358
  %360 = call <2 x float> @Cf(ptr noundef %359)
  store <2 x float> %360, ptr %92, align 4
  %361 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 0
  %362 = load float, ptr %361, align 4
  %363 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 1
  %364 = load float, ptr %363, align 4
  store float %364, ptr %37, align 4, !tbaa !17
  %365 = load float, ptr %37, align 4, !tbaa !17
  %366 = fcmp oge float %365, 0.000000e+00
  br i1 %366, label %367, label %369

367:                                              ; preds = %349
  %368 = load float, ptr %37, align 4, !tbaa !17
  br label %372

369:                                              ; preds = %349
  %370 = load float, ptr %37, align 4, !tbaa !17
  %371 = fneg float %370
  br label %372

372:                                              ; preds = %369, %367
  %373 = phi float [ %368, %367 ], [ %371, %369 ]
  %374 = fadd float %350, %373
  store float %374, ptr %38, align 4, !tbaa !17
  %375 = load ptr, ptr %19, align 8, !tbaa !5
  %376 = load i32, ptr %32, align 4, !tbaa !9
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds %struct.complex, ptr %375, i64 %377
  %379 = getelementptr inbounds %struct.complex, ptr %378, i32 0, i32 0
  %380 = load float, ptr %379, align 4, !tbaa !11
  %381 = load float, ptr %38, align 4, !tbaa !17
  %382 = fdiv float %380, %381
  %383 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %382, ptr %383, align 4, !tbaa !11
  %384 = load ptr, ptr %19, align 8, !tbaa !5
  %385 = load i32, ptr %32, align 4, !tbaa !9
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds %struct.complex, ptr %384, i64 %386
  %388 = getelementptr inbounds %struct.complex, ptr %387, i32 0, i32 1
  %389 = load float, ptr %388, align 4, !tbaa !14
  %390 = load float, ptr %38, align 4, !tbaa !17
  %391 = fdiv float %389, %390
  %392 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %391, ptr %392, align 4, !tbaa !14
  %393 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %394 = load float, ptr %393, align 4, !tbaa !11
  %395 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 0
  store float %394, ptr %395, align 4, !tbaa !11
  %396 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %397 = load float, ptr %396, align 4, !tbaa !14
  %398 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 1
  store float %397, ptr %398, align 4, !tbaa !14
  %399 = call <2 x float> @Cf(ptr noundef %76)
  store <2 x float> %399, ptr %93, align 4
  %400 = getelementptr inbounds { float, float }, ptr %93, i32 0, i32 0
  %401 = load float, ptr %400, align 4
  %402 = getelementptr inbounds { float, float }, ptr %93, i32 0, i32 1
  %403 = load float, ptr %402, align 4
  %404 = fneg float %403
  %405 = call ptr @_pCf(ptr noundef %43)
  %406 = getelementptr inbounds { float, float }, ptr %405, i32 0, i32 0
  %407 = getelementptr inbounds { float, float }, ptr %405, i32 0, i32 1
  store float %401, ptr %406, align 4
  store float %404, ptr %407, align 4
  %408 = call <2 x float> @Cf(ptr noundef %76)
  store <2 x float> %408, ptr %94, align 4
  %409 = getelementptr inbounds { float, float }, ptr %94, i32 0, i32 0
  %410 = load float, ptr %409, align 4
  %411 = getelementptr inbounds { float, float }, ptr %94, i32 0, i32 1
  %412 = load float, ptr %411, align 4
  %413 = getelementptr inbounds { float, float }, ptr %95, i32 0, i32 0
  %414 = getelementptr inbounds { float, float }, ptr %95, i32 0, i32 1
  store float %410, ptr %413, align 4
  store float %412, ptr %414, align 4
  %415 = load <2 x float>, ptr %95, align 4
  %416 = call float @cabsf(<2 x float> noundef %415) #7
  store float %416, ptr %36, align 4, !tbaa !17
  %417 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %418 = load float, ptr %417, align 4, !tbaa !11
  %419 = load float, ptr %36, align 4, !tbaa !17
  %420 = fdiv float %418, %419
  %421 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %420, ptr %421, align 4, !tbaa !11
  %422 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %423 = load float, ptr %422, align 4, !tbaa !14
  %424 = load float, ptr %36, align 4, !tbaa !17
  %425 = fdiv float %423, %424
  %426 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %425, ptr %426, align 4, !tbaa !14
  %427 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %428 = load float, ptr %427, align 4, !tbaa !11
  %429 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 0
  store float %428, ptr %429, align 4, !tbaa !11
  %430 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %431 = load float, ptr %430, align 4, !tbaa !14
  %432 = getelementptr inbounds %struct.complex, ptr %76, i32 0, i32 1
  store float %431, ptr %432, align 4, !tbaa !14
  %433 = load i32, ptr %50, align 4, !tbaa !9
  %434 = load i32, ptr %50, align 4, !tbaa !9
  %435 = sub nsw i32 %434, 1
  %436 = load i32, ptr %27, align 4, !tbaa !9
  %437 = mul nsw i32 %435, %436
  %438 = add nsw i32 %433, %437
  store i32 %438, ptr %32, align 4, !tbaa !9
  %439 = load ptr, ptr %19, align 8, !tbaa !5
  %440 = load i32, ptr %50, align 4, !tbaa !9
  %441 = load i32, ptr %50, align 4, !tbaa !9
  %442 = sub nsw i32 %441, 1
  %443 = load i32, ptr %27, align 4, !tbaa !9
  %444 = mul nsw i32 %442, %443
  %445 = add nsw i32 %440, %444
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds %struct.complex, ptr %439, i64 %446
  %448 = call <2 x float> @Cf(ptr noundef %447)
  store <2 x float> %448, ptr %96, align 4
  %449 = getelementptr inbounds { float, float }, ptr %96, i32 0, i32 0
  %450 = load float, ptr %449, align 4
  %451 = getelementptr inbounds { float, float }, ptr %96, i32 0, i32 1
  %452 = load float, ptr %451, align 4
  %453 = getelementptr inbounds { float, float }, ptr %97, i32 0, i32 0
  %454 = getelementptr inbounds { float, float }, ptr %97, i32 0, i32 1
  store float %450, ptr %453, align 4
  store float %452, ptr %454, align 4
  %455 = load <2 x float>, ptr %97, align 4
  %456 = call float @cabsf(<2 x float> noundef %455) #7
  store float %456, ptr %36, align 4, !tbaa !17
  %457 = load float, ptr %36, align 4, !tbaa !17
  %458 = load ptr, ptr %19, align 8, !tbaa !5
  %459 = load i32, ptr %32, align 4, !tbaa !9
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds %struct.complex, ptr %458, i64 %460
  %462 = getelementptr inbounds %struct.complex, ptr %461, i32 0, i32 0
  store float %457, ptr %462, align 4, !tbaa !11
  %463 = load ptr, ptr %19, align 8, !tbaa !5
  %464 = load i32, ptr %32, align 4, !tbaa !9
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds %struct.complex, ptr %463, i64 %465
  %467 = getelementptr inbounds %struct.complex, ptr %466, i32 0, i32 1
  store float 0.000000e+00, ptr %467, align 4, !tbaa !14
  %468 = load i32, ptr %83, align 4, !tbaa !9
  %469 = load i32, ptr %50, align 4, !tbaa !9
  %470 = sub nsw i32 %468, %469
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr %32, align 4, !tbaa !9
  %472 = load ptr, ptr %19, align 8, !tbaa !5
  %473 = load i32, ptr %50, align 4, !tbaa !9
  %474 = load i32, ptr %50, align 4, !tbaa !9
  %475 = load i32, ptr %27, align 4, !tbaa !9
  %476 = mul nsw i32 %474, %475
  %477 = add nsw i32 %473, %476
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds %struct.complex, ptr %472, i64 %478
  %480 = load ptr, ptr %20, align 8, !tbaa !5
  call void @cscal_(ptr noundef %32, ptr noundef %76, ptr noundef %479, ptr noundef %480)
  %481 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %481, ptr %33, align 4, !tbaa !9
  %482 = load i32, ptr %50, align 4, !tbaa !9
  %483 = add nsw i32 %482, 1
  store i32 %483, ptr %34, align 4, !tbaa !9
  %484 = load i32, ptr %33, align 4, !tbaa !9
  %485 = load i32, ptr %34, align 4, !tbaa !9
  %486 = icmp sle i32 %484, %485
  br i1 %486, label %487, label %489

487:                                              ; preds = %372
  %488 = load i32, ptr %33, align 4, !tbaa !9
  br label %491

489:                                              ; preds = %372
  %490 = load i32, ptr %34, align 4, !tbaa !9
  br label %491

491:                                              ; preds = %489, %487
  %492 = phi i32 [ %488, %487 ], [ %490, %489 ]
  %493 = load i32, ptr %85, align 4, !tbaa !9
  %494 = sub nsw i32 %492, %493
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr %32, align 4, !tbaa !9
  %496 = call <2 x float> @Cf(ptr noundef %76)
  store <2 x float> %496, ptr %98, align 4
  %497 = getelementptr inbounds { float, float }, ptr %98, i32 0, i32 0
  %498 = load float, ptr %497, align 4
  %499 = getelementptr inbounds { float, float }, ptr %98, i32 0, i32 1
  %500 = load float, ptr %499, align 4
  %501 = fneg float %500
  %502 = call ptr @_pCf(ptr noundef %42)
  %503 = getelementptr inbounds { float, float }, ptr %502, i32 0, i32 0
  %504 = getelementptr inbounds { float, float }, ptr %502, i32 0, i32 1
  store float %498, ptr %503, align 4
  store float %501, ptr %504, align 4
  %505 = load ptr, ptr %19, align 8, !tbaa !5
  %506 = load i32, ptr %85, align 4, !tbaa !9
  %507 = load i32, ptr %50, align 4, !tbaa !9
  %508 = load i32, ptr %27, align 4, !tbaa !9
  %509 = mul nsw i32 %507, %508
  %510 = add nsw i32 %506, %509
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds %struct.complex, ptr %505, i64 %511
  call void @cscal_(ptr noundef %32, ptr noundef %42, ptr noundef %512, ptr noundef @c__1)
  %513 = load ptr, ptr %15, align 8, !tbaa !5
  %514 = load i32, ptr %513, align 4, !tbaa !9
  %515 = icmp ne i32 %514, 0
  br i1 %515, label %516, label %541

516:                                              ; preds = %491
  %517 = load ptr, ptr %23, align 8, !tbaa !5
  %518 = load i32, ptr %517, align 4, !tbaa !9
  %519 = load ptr, ptr %22, align 8, !tbaa !5
  %520 = load i32, ptr %519, align 4, !tbaa !9
  %521 = sub nsw i32 %518, %520
  %522 = add nsw i32 %521, 1
  store i32 %522, ptr %32, align 4, !tbaa !9
  %523 = call <2 x float> @Cf(ptr noundef %76)
  store <2 x float> %523, ptr %99, align 4
  %524 = getelementptr inbounds { float, float }, ptr %99, i32 0, i32 0
  %525 = load float, ptr %524, align 4
  %526 = getelementptr inbounds { float, float }, ptr %99, i32 0, i32 1
  %527 = load float, ptr %526, align 4
  %528 = fneg float %527
  %529 = call ptr @_pCf(ptr noundef %42)
  %530 = getelementptr inbounds { float, float }, ptr %529, i32 0, i32 0
  %531 = getelementptr inbounds { float, float }, ptr %529, i32 0, i32 1
  store float %525, ptr %530, align 4
  store float %528, ptr %531, align 4
  %532 = load ptr, ptr %24, align 8, !tbaa !5
  %533 = load ptr, ptr %22, align 8, !tbaa !5
  %534 = load i32, ptr %533, align 4, !tbaa !9
  %535 = load i32, ptr %50, align 4, !tbaa !9
  %536 = load i32, ptr %29, align 4, !tbaa !9
  %537 = mul nsw i32 %535, %536
  %538 = add nsw i32 %534, %537
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds %struct.complex, ptr %532, i64 %539
  call void @cscal_(ptr noundef %32, ptr noundef %42, ptr noundef %540, ptr noundef @c__1)
  br label %541

541:                                              ; preds = %516, %491
  br label %542

542:                                              ; preds = %541, %307
  br label %543

543:                                              ; preds = %542
  %544 = load i32, ptr %50, align 4, !tbaa !9
  %545 = add nsw i32 %544, 1
  store i32 %545, ptr %50, align 4, !tbaa !9
  br label %303, !llvm.loop !18

546:                                              ; preds = %303
  %547 = load ptr, ptr %18, align 8, !tbaa !5
  %548 = load i32, ptr %547, align 4, !tbaa !9
  %549 = load ptr, ptr %17, align 8, !tbaa !5
  %550 = load i32, ptr %549, align 4, !tbaa !9
  %551 = sub nsw i32 %548, %550
  %552 = add nsw i32 %551, 1
  store i32 %552, ptr %77, align 4, !tbaa !9
  %553 = load ptr, ptr %23, align 8, !tbaa !5
  %554 = load i32, ptr %553, align 4, !tbaa !9
  %555 = load ptr, ptr %22, align 8, !tbaa !5
  %556 = load i32, ptr %555, align 4, !tbaa !9
  %557 = sub nsw i32 %554, %556
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr %78, align 4, !tbaa !9
  %559 = call float @slamch_(ptr noundef @.str)
  store float %559, ptr %80, align 4, !tbaa !17
  %560 = load float, ptr %80, align 4, !tbaa !17
  %561 = fdiv float 1.000000e+00, %560
  store float %561, ptr %81, align 4, !tbaa !17
  call void @slabad_(ptr noundef %80, ptr noundef %81)
  %562 = call float @slamch_(ptr noundef @.str.1)
  store float %562, ptr %87, align 4, !tbaa !17
  %563 = load float, ptr %80, align 4, !tbaa !17
  %564 = load i32, ptr %77, align 4, !tbaa !9
  %565 = sitofp i32 %564 to float
  %566 = load float, ptr %87, align 4, !tbaa !17
  %567 = fdiv float %565, %566
  %568 = fmul float %563, %567
  store float %568, ptr %82, align 4, !tbaa !17
  %569 = load ptr, ptr %14, align 8, !tbaa !5
  %570 = load i32, ptr %569, align 4, !tbaa !9
  %571 = icmp ne i32 %570, 0
  br i1 %571, label %572, label %575

572:                                              ; preds = %546
  store i32 1, ptr %63, align 4, !tbaa !9
  %573 = load ptr, ptr %16, align 8, !tbaa !5
  %574 = load i32, ptr %573, align 4, !tbaa !9
  store i32 %574, ptr %64, align 4, !tbaa !9
  br label %575

575:                                              ; preds = %572, %546
  %576 = load i32, ptr %77, align 4, !tbaa !9
  %577 = icmp sge i32 10, %576
  br i1 %577, label %578, label %579

578:                                              ; preds = %575
  br label %581

579:                                              ; preds = %575
  %580 = load i32, ptr %77, align 4, !tbaa !9
  br label %581

581:                                              ; preds = %579, %578
  %582 = phi i32 [ 10, %578 ], [ %580, %579 ]
  %583 = mul nsw i32 %582, 30
  store i32 %583, ptr %61, align 4, !tbaa !9
  %584 = load ptr, ptr %18, align 8, !tbaa !5
  %585 = load i32, ptr %584, align 4, !tbaa !9
  store i32 %585, ptr %50, align 4, !tbaa !9
  br label %586

586:                                              ; preds = %3489, %581
  %587 = load i32, ptr %50, align 4, !tbaa !9
  %588 = load ptr, ptr %17, align 8, !tbaa !5
  %589 = load i32, ptr %588, align 4, !tbaa !9
  %590 = icmp slt i32 %587, %589
  br i1 %590, label %591, label %592

591:                                              ; preds = %586
  br label %3520

592:                                              ; preds = %586
  %593 = load ptr, ptr %17, align 8, !tbaa !5
  %594 = load i32, ptr %593, align 4, !tbaa !9
  store i32 %594, ptr %53, align 4, !tbaa !9
  %595 = load i32, ptr %61, align 4, !tbaa !9
  store i32 %595, ptr %31, align 4, !tbaa !9
  store i32 0, ptr %86, align 4, !tbaa !9
  br label %596

596:                                              ; preds = %3483, %592
  %597 = load i32, ptr %86, align 4, !tbaa !9
  %598 = load i32, ptr %31, align 4, !tbaa !9
  %599 = icmp sle i32 %597, %598
  br i1 %599, label %600, label %3486

600:                                              ; preds = %596
  %601 = load i32, ptr %53, align 4, !tbaa !9
  %602 = add nsw i32 %601, 1
  store i32 %602, ptr %32, align 4, !tbaa !9
  %603 = load i32, ptr %50, align 4, !tbaa !9
  store i32 %603, ptr %52, align 4, !tbaa !9
  br label %604

604:                                              ; preds = %1315, %600
  %605 = load i32, ptr %52, align 4, !tbaa !9
  %606 = load i32, ptr %32, align 4, !tbaa !9
  %607 = icmp sge i32 %605, %606
  br i1 %607, label %608, label %1318

608:                                              ; preds = %604
  %609 = load i32, ptr %52, align 4, !tbaa !9
  %610 = load i32, ptr %52, align 4, !tbaa !9
  %611 = sub nsw i32 %610, 1
  %612 = load i32, ptr %27, align 4, !tbaa !9
  %613 = mul nsw i32 %611, %612
  %614 = add nsw i32 %609, %613
  store i32 %614, ptr %33, align 4, !tbaa !9
  %615 = load ptr, ptr %19, align 8, !tbaa !5
  %616 = load i32, ptr %33, align 4, !tbaa !9
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds %struct.complex, ptr %615, i64 %617
  %619 = getelementptr inbounds %struct.complex, ptr %618, i32 0, i32 0
  %620 = load float, ptr %619, align 4, !tbaa !11
  store float %620, ptr %36, align 4, !tbaa !17
  %621 = load float, ptr %36, align 4, !tbaa !17
  %622 = fcmp oge float %621, 0.000000e+00
  br i1 %622, label %623, label %625

623:                                              ; preds = %608
  %624 = load float, ptr %36, align 4, !tbaa !17
  br label %628

625:                                              ; preds = %608
  %626 = load float, ptr %36, align 4, !tbaa !17
  %627 = fneg float %626
  br label %628

628:                                              ; preds = %625, %623
  %629 = phi float [ %624, %623 ], [ %627, %625 ]
  %630 = load ptr, ptr %19, align 8, !tbaa !5
  %631 = load i32, ptr %52, align 4, !tbaa !9
  %632 = load i32, ptr %52, align 4, !tbaa !9
  %633 = sub nsw i32 %632, 1
  %634 = load i32, ptr %27, align 4, !tbaa !9
  %635 = mul nsw i32 %633, %634
  %636 = add nsw i32 %631, %635
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds %struct.complex, ptr %630, i64 %637
  %639 = call <2 x float> @Cf(ptr noundef %638)
  store <2 x float> %639, ptr %100, align 4
  %640 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 0
  %641 = load float, ptr %640, align 4
  %642 = getelementptr inbounds { float, float }, ptr %100, i32 0, i32 1
  %643 = load float, ptr %642, align 4
  store float %643, ptr %37, align 4, !tbaa !17
  %644 = load float, ptr %37, align 4, !tbaa !17
  %645 = fcmp oge float %644, 0.000000e+00
  br i1 %645, label %646, label %648

646:                                              ; preds = %628
  %647 = load float, ptr %37, align 4, !tbaa !17
  br label %651

648:                                              ; preds = %628
  %649 = load float, ptr %37, align 4, !tbaa !17
  %650 = fneg float %649
  br label %651

651:                                              ; preds = %648, %646
  %652 = phi float [ %647, %646 ], [ %650, %648 ]
  %653 = fadd float %629, %652
  %654 = load float, ptr %82, align 4, !tbaa !17
  %655 = fcmp ole float %653, %654
  br i1 %655, label %656, label %657

656:                                              ; preds = %651
  br label %1319

657:                                              ; preds = %651
  %658 = load i32, ptr %52, align 4, !tbaa !9
  %659 = sub nsw i32 %658, 1
  %660 = load i32, ptr %52, align 4, !tbaa !9
  %661 = sub nsw i32 %660, 1
  %662 = load i32, ptr %27, align 4, !tbaa !9
  %663 = mul nsw i32 %661, %662
  %664 = add nsw i32 %659, %663
  store i32 %664, ptr %33, align 4, !tbaa !9
  %665 = load i32, ptr %52, align 4, !tbaa !9
  %666 = load i32, ptr %52, align 4, !tbaa !9
  %667 = load i32, ptr %27, align 4, !tbaa !9
  %668 = mul nsw i32 %666, %667
  %669 = add nsw i32 %665, %668
  store i32 %669, ptr %34, align 4, !tbaa !9
  %670 = load ptr, ptr %19, align 8, !tbaa !5
  %671 = load i32, ptr %33, align 4, !tbaa !9
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds %struct.complex, ptr %670, i64 %672
  %674 = getelementptr inbounds %struct.complex, ptr %673, i32 0, i32 0
  %675 = load float, ptr %674, align 4, !tbaa !11
  store float %675, ptr %36, align 4, !tbaa !17
  %676 = load float, ptr %36, align 4, !tbaa !17
  %677 = fcmp oge float %676, 0.000000e+00
  br i1 %677, label %678, label %680

678:                                              ; preds = %657
  %679 = load float, ptr %36, align 4, !tbaa !17
  br label %683

680:                                              ; preds = %657
  %681 = load float, ptr %36, align 4, !tbaa !17
  %682 = fneg float %681
  br label %683

683:                                              ; preds = %680, %678
  %684 = phi float [ %679, %678 ], [ %682, %680 ]
  %685 = load ptr, ptr %19, align 8, !tbaa !5
  %686 = load i32, ptr %52, align 4, !tbaa !9
  %687 = sub nsw i32 %686, 1
  %688 = load i32, ptr %52, align 4, !tbaa !9
  %689 = sub nsw i32 %688, 1
  %690 = load i32, ptr %27, align 4, !tbaa !9
  %691 = mul nsw i32 %689, %690
  %692 = add nsw i32 %687, %691
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds %struct.complex, ptr %685, i64 %693
  %695 = call <2 x float> @Cf(ptr noundef %694)
  store <2 x float> %695, ptr %101, align 4
  %696 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 0
  %697 = load float, ptr %696, align 4
  %698 = getelementptr inbounds { float, float }, ptr %101, i32 0, i32 1
  %699 = load float, ptr %698, align 4
  store float %699, ptr %37, align 4, !tbaa !17
  %700 = load float, ptr %37, align 4, !tbaa !17
  %701 = fcmp oge float %700, 0.000000e+00
  br i1 %701, label %702, label %704

702:                                              ; preds = %683
  %703 = load float, ptr %37, align 4, !tbaa !17
  br label %707

704:                                              ; preds = %683
  %705 = load float, ptr %37, align 4, !tbaa !17
  %706 = fneg float %705
  br label %707

707:                                              ; preds = %704, %702
  %708 = phi float [ %703, %702 ], [ %706, %704 ]
  %709 = fadd float %684, %708
  %710 = load ptr, ptr %19, align 8, !tbaa !5
  %711 = load i32, ptr %34, align 4, !tbaa !9
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds %struct.complex, ptr %710, i64 %712
  %714 = getelementptr inbounds %struct.complex, ptr %713, i32 0, i32 0
  %715 = load float, ptr %714, align 4, !tbaa !11
  store float %715, ptr %38, align 4, !tbaa !17
  %716 = load float, ptr %38, align 4, !tbaa !17
  %717 = fcmp oge float %716, 0.000000e+00
  br i1 %717, label %718, label %720

718:                                              ; preds = %707
  %719 = load float, ptr %38, align 4, !tbaa !17
  br label %723

720:                                              ; preds = %707
  %721 = load float, ptr %38, align 4, !tbaa !17
  %722 = fneg float %721
  br label %723

723:                                              ; preds = %720, %718
  %724 = phi float [ %719, %718 ], [ %722, %720 ]
  %725 = load ptr, ptr %19, align 8, !tbaa !5
  %726 = load i32, ptr %52, align 4, !tbaa !9
  %727 = load i32, ptr %52, align 4, !tbaa !9
  %728 = load i32, ptr %27, align 4, !tbaa !9
  %729 = mul nsw i32 %727, %728
  %730 = add nsw i32 %726, %729
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds %struct.complex, ptr %725, i64 %731
  %733 = call <2 x float> @Cf(ptr noundef %732)
  store <2 x float> %733, ptr %102, align 4
  %734 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 0
  %735 = load float, ptr %734, align 4
  %736 = getelementptr inbounds { float, float }, ptr %102, i32 0, i32 1
  %737 = load float, ptr %736, align 4
  store float %737, ptr %39, align 4, !tbaa !17
  %738 = load float, ptr %39, align 4, !tbaa !17
  %739 = fcmp oge float %738, 0.000000e+00
  br i1 %739, label %740, label %742

740:                                              ; preds = %723
  %741 = load float, ptr %39, align 4, !tbaa !17
  br label %745

742:                                              ; preds = %723
  %743 = load float, ptr %39, align 4, !tbaa !17
  %744 = fneg float %743
  br label %745

745:                                              ; preds = %742, %740
  %746 = phi float [ %741, %740 ], [ %744, %742 ]
  %747 = fadd float %724, %746
  %748 = fadd float %709, %747
  store float %748, ptr %89, align 4, !tbaa !17
  %749 = load float, ptr %89, align 4, !tbaa !17
  %750 = fcmp oeq float %749, 0.000000e+00
  br i1 %750, label %751, label %813

751:                                              ; preds = %745
  %752 = load i32, ptr %52, align 4, !tbaa !9
  %753 = sub nsw i32 %752, 2
  %754 = load ptr, ptr %17, align 8, !tbaa !5
  %755 = load i32, ptr %754, align 4, !tbaa !9
  %756 = icmp sge i32 %753, %755
  br i1 %756, label %757, label %782

757:                                              ; preds = %751
  %758 = load i32, ptr %52, align 4, !tbaa !9
  %759 = sub nsw i32 %758, 1
  %760 = load i32, ptr %52, align 4, !tbaa !9
  %761 = sub nsw i32 %760, 2
  %762 = load i32, ptr %27, align 4, !tbaa !9
  %763 = mul nsw i32 %761, %762
  %764 = add nsw i32 %759, %763
  store i32 %764, ptr %33, align 4, !tbaa !9
  %765 = load ptr, ptr %19, align 8, !tbaa !5
  %766 = load i32, ptr %33, align 4, !tbaa !9
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds %struct.complex, ptr %765, i64 %767
  %769 = getelementptr inbounds %struct.complex, ptr %768, i32 0, i32 0
  %770 = load float, ptr %769, align 4, !tbaa !11
  store float %770, ptr %36, align 4, !tbaa !17
  %771 = load float, ptr %36, align 4, !tbaa !17
  %772 = fcmp oge float %771, 0.000000e+00
  br i1 %772, label %773, label %775

773:                                              ; preds = %757
  %774 = load float, ptr %36, align 4, !tbaa !17
  br label %778

775:                                              ; preds = %757
  %776 = load float, ptr %36, align 4, !tbaa !17
  %777 = fneg float %776
  br label %778

778:                                              ; preds = %775, %773
  %779 = phi float [ %774, %773 ], [ %777, %775 ]
  %780 = load float, ptr %89, align 4, !tbaa !17
  %781 = fadd float %780, %779
  store float %781, ptr %89, align 4, !tbaa !17
  br label %782

782:                                              ; preds = %778, %751
  %783 = load i32, ptr %52, align 4, !tbaa !9
  %784 = add nsw i32 %783, 1
  %785 = load ptr, ptr %18, align 8, !tbaa !5
  %786 = load i32, ptr %785, align 4, !tbaa !9
  %787 = icmp sle i32 %784, %786
  br i1 %787, label %788, label %812

788:                                              ; preds = %782
  %789 = load i32, ptr %52, align 4, !tbaa !9
  %790 = add nsw i32 %789, 1
  %791 = load i32, ptr %52, align 4, !tbaa !9
  %792 = load i32, ptr %27, align 4, !tbaa !9
  %793 = mul nsw i32 %791, %792
  %794 = add nsw i32 %790, %793
  store i32 %794, ptr %33, align 4, !tbaa !9
  %795 = load ptr, ptr %19, align 8, !tbaa !5
  %796 = load i32, ptr %33, align 4, !tbaa !9
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds %struct.complex, ptr %795, i64 %797
  %799 = getelementptr inbounds %struct.complex, ptr %798, i32 0, i32 0
  %800 = load float, ptr %799, align 4, !tbaa !11
  store float %800, ptr %36, align 4, !tbaa !17
  %801 = load float, ptr %36, align 4, !tbaa !17
  %802 = fcmp oge float %801, 0.000000e+00
  br i1 %802, label %803, label %805

803:                                              ; preds = %788
  %804 = load float, ptr %36, align 4, !tbaa !17
  br label %808

805:                                              ; preds = %788
  %806 = load float, ptr %36, align 4, !tbaa !17
  %807 = fneg float %806
  br label %808

808:                                              ; preds = %805, %803
  %809 = phi float [ %804, %803 ], [ %807, %805 ]
  %810 = load float, ptr %89, align 4, !tbaa !17
  %811 = fadd float %810, %809
  store float %811, ptr %89, align 4, !tbaa !17
  br label %812

812:                                              ; preds = %808, %782
  br label %813

813:                                              ; preds = %812, %745
  %814 = load i32, ptr %52, align 4, !tbaa !9
  %815 = load i32, ptr %52, align 4, !tbaa !9
  %816 = sub nsw i32 %815, 1
  %817 = load i32, ptr %27, align 4, !tbaa !9
  %818 = mul nsw i32 %816, %817
  %819 = add nsw i32 %814, %818
  store i32 %819, ptr %33, align 4, !tbaa !9
  %820 = load ptr, ptr %19, align 8, !tbaa !5
  %821 = load i32, ptr %33, align 4, !tbaa !9
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds %struct.complex, ptr %820, i64 %822
  %824 = getelementptr inbounds %struct.complex, ptr %823, i32 0, i32 0
  %825 = load float, ptr %824, align 4, !tbaa !11
  store float %825, ptr %36, align 4, !tbaa !17
  %826 = load float, ptr %36, align 4, !tbaa !17
  %827 = fcmp oge float %826, 0.000000e+00
  br i1 %827, label %828, label %830

828:                                              ; preds = %813
  %829 = load float, ptr %36, align 4, !tbaa !17
  br label %833

830:                                              ; preds = %813
  %831 = load float, ptr %36, align 4, !tbaa !17
  %832 = fneg float %831
  br label %833

833:                                              ; preds = %830, %828
  %834 = phi float [ %829, %828 ], [ %832, %830 ]
  %835 = load float, ptr %87, align 4, !tbaa !17
  %836 = load float, ptr %89, align 4, !tbaa !17
  %837 = fmul float %835, %836
  %838 = fcmp ole float %834, %837
  br i1 %838, label %839, label %1314

839:                                              ; preds = %833
  %840 = load i32, ptr %52, align 4, !tbaa !9
  %841 = load i32, ptr %52, align 4, !tbaa !9
  %842 = sub nsw i32 %841, 1
  %843 = load i32, ptr %27, align 4, !tbaa !9
  %844 = mul nsw i32 %842, %843
  %845 = add nsw i32 %840, %844
  store i32 %845, ptr %33, align 4, !tbaa !9
  %846 = load i32, ptr %52, align 4, !tbaa !9
  %847 = sub nsw i32 %846, 1
  %848 = load i32, ptr %52, align 4, !tbaa !9
  %849 = load i32, ptr %27, align 4, !tbaa !9
  %850 = mul nsw i32 %848, %849
  %851 = add nsw i32 %847, %850
  store i32 %851, ptr %34, align 4, !tbaa !9
  %852 = load ptr, ptr %19, align 8, !tbaa !5
  %853 = load i32, ptr %33, align 4, !tbaa !9
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds %struct.complex, ptr %852, i64 %854
  %856 = getelementptr inbounds %struct.complex, ptr %855, i32 0, i32 0
  %857 = load float, ptr %856, align 4, !tbaa !11
  store float %857, ptr %36, align 4, !tbaa !17
  %858 = load float, ptr %36, align 4, !tbaa !17
  %859 = fcmp oge float %858, 0.000000e+00
  br i1 %859, label %860, label %862

860:                                              ; preds = %839
  %861 = load float, ptr %36, align 4, !tbaa !17
  br label %865

862:                                              ; preds = %839
  %863 = load float, ptr %36, align 4, !tbaa !17
  %864 = fneg float %863
  br label %865

865:                                              ; preds = %862, %860
  %866 = phi float [ %861, %860 ], [ %864, %862 ]
  %867 = load ptr, ptr %19, align 8, !tbaa !5
  %868 = load i32, ptr %52, align 4, !tbaa !9
  %869 = load i32, ptr %52, align 4, !tbaa !9
  %870 = sub nsw i32 %869, 1
  %871 = load i32, ptr %27, align 4, !tbaa !9
  %872 = mul nsw i32 %870, %871
  %873 = add nsw i32 %868, %872
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds %struct.complex, ptr %867, i64 %874
  %876 = call <2 x float> @Cf(ptr noundef %875)
  store <2 x float> %876, ptr %103, align 4
  %877 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 0
  %878 = load float, ptr %877, align 4
  %879 = getelementptr inbounds { float, float }, ptr %103, i32 0, i32 1
  %880 = load float, ptr %879, align 4
  store float %880, ptr %37, align 4, !tbaa !17
  %881 = load float, ptr %37, align 4, !tbaa !17
  %882 = fcmp oge float %881, 0.000000e+00
  br i1 %882, label %883, label %885

883:                                              ; preds = %865
  %884 = load float, ptr %37, align 4, !tbaa !17
  br label %888

885:                                              ; preds = %865
  %886 = load float, ptr %37, align 4, !tbaa !17
  %887 = fneg float %886
  br label %888

888:                                              ; preds = %885, %883
  %889 = phi float [ %884, %883 ], [ %887, %885 ]
  %890 = fadd float %866, %889
  store float %890, ptr %40, align 4, !tbaa !17
  %891 = load ptr, ptr %19, align 8, !tbaa !5
  %892 = load i32, ptr %34, align 4, !tbaa !9
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds %struct.complex, ptr %891, i64 %893
  %895 = getelementptr inbounds %struct.complex, ptr %894, i32 0, i32 0
  %896 = load float, ptr %895, align 4, !tbaa !11
  store float %896, ptr %38, align 4, !tbaa !17
  %897 = load float, ptr %38, align 4, !tbaa !17
  %898 = fcmp oge float %897, 0.000000e+00
  br i1 %898, label %899, label %901

899:                                              ; preds = %888
  %900 = load float, ptr %38, align 4, !tbaa !17
  br label %904

901:                                              ; preds = %888
  %902 = load float, ptr %38, align 4, !tbaa !17
  %903 = fneg float %902
  br label %904

904:                                              ; preds = %901, %899
  %905 = phi float [ %900, %899 ], [ %903, %901 ]
  %906 = load ptr, ptr %19, align 8, !tbaa !5
  %907 = load i32, ptr %52, align 4, !tbaa !9
  %908 = sub nsw i32 %907, 1
  %909 = load i32, ptr %52, align 4, !tbaa !9
  %910 = load i32, ptr %27, align 4, !tbaa !9
  %911 = mul nsw i32 %909, %910
  %912 = add nsw i32 %908, %911
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds %struct.complex, ptr %906, i64 %913
  %915 = call <2 x float> @Cf(ptr noundef %914)
  store <2 x float> %915, ptr %104, align 4
  %916 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 0
  %917 = load float, ptr %916, align 4
  %918 = getelementptr inbounds { float, float }, ptr %104, i32 0, i32 1
  %919 = load float, ptr %918, align 4
  store float %919, ptr %39, align 4, !tbaa !17
  %920 = load float, ptr %39, align 4, !tbaa !17
  %921 = fcmp oge float %920, 0.000000e+00
  br i1 %921, label %922, label %924

922:                                              ; preds = %904
  %923 = load float, ptr %39, align 4, !tbaa !17
  br label %927

924:                                              ; preds = %904
  %925 = load float, ptr %39, align 4, !tbaa !17
  %926 = fneg float %925
  br label %927

927:                                              ; preds = %924, %922
  %928 = phi float [ %923, %922 ], [ %926, %924 ]
  %929 = fadd float %905, %928
  store float %929, ptr %41, align 4, !tbaa !17
  %930 = load float, ptr %40, align 4, !tbaa !17
  %931 = load float, ptr %41, align 4, !tbaa !17
  %932 = fcmp oge float %930, %931
  br i1 %932, label %933, label %935

933:                                              ; preds = %927
  %934 = load float, ptr %40, align 4, !tbaa !17
  br label %937

935:                                              ; preds = %927
  %936 = load float, ptr %41, align 4, !tbaa !17
  br label %937

937:                                              ; preds = %935, %933
  %938 = phi float [ %934, %933 ], [ %936, %935 ]
  store float %938, ptr %69, align 4, !tbaa !17
  %939 = load i32, ptr %52, align 4, !tbaa !9
  %940 = load i32, ptr %52, align 4, !tbaa !9
  %941 = sub nsw i32 %940, 1
  %942 = load i32, ptr %27, align 4, !tbaa !9
  %943 = mul nsw i32 %941, %942
  %944 = add nsw i32 %939, %943
  store i32 %944, ptr %33, align 4, !tbaa !9
  %945 = load i32, ptr %52, align 4, !tbaa !9
  %946 = sub nsw i32 %945, 1
  %947 = load i32, ptr %52, align 4, !tbaa !9
  %948 = load i32, ptr %27, align 4, !tbaa !9
  %949 = mul nsw i32 %947, %948
  %950 = add nsw i32 %946, %949
  store i32 %950, ptr %34, align 4, !tbaa !9
  %951 = load ptr, ptr %19, align 8, !tbaa !5
  %952 = load i32, ptr %33, align 4, !tbaa !9
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds %struct.complex, ptr %951, i64 %953
  %955 = getelementptr inbounds %struct.complex, ptr %954, i32 0, i32 0
  %956 = load float, ptr %955, align 4, !tbaa !11
  store float %956, ptr %36, align 4, !tbaa !17
  %957 = load float, ptr %36, align 4, !tbaa !17
  %958 = fcmp oge float %957, 0.000000e+00
  br i1 %958, label %959, label %961

959:                                              ; preds = %937
  %960 = load float, ptr %36, align 4, !tbaa !17
  br label %964

961:                                              ; preds = %937
  %962 = load float, ptr %36, align 4, !tbaa !17
  %963 = fneg float %962
  br label %964

964:                                              ; preds = %961, %959
  %965 = phi float [ %960, %959 ], [ %963, %961 ]
  %966 = load ptr, ptr %19, align 8, !tbaa !5
  %967 = load i32, ptr %52, align 4, !tbaa !9
  %968 = load i32, ptr %52, align 4, !tbaa !9
  %969 = sub nsw i32 %968, 1
  %970 = load i32, ptr %27, align 4, !tbaa !9
  %971 = mul nsw i32 %969, %970
  %972 = add nsw i32 %967, %971
  %973 = sext i32 %972 to i64
  %974 = getelementptr inbounds %struct.complex, ptr %966, i64 %973
  %975 = call <2 x float> @Cf(ptr noundef %974)
  store <2 x float> %975, ptr %105, align 4
  %976 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 0
  %977 = load float, ptr %976, align 4
  %978 = getelementptr inbounds { float, float }, ptr %105, i32 0, i32 1
  %979 = load float, ptr %978, align 4
  store float %979, ptr %37, align 4, !tbaa !17
  %980 = load float, ptr %37, align 4, !tbaa !17
  %981 = fcmp oge float %980, 0.000000e+00
  br i1 %981, label %982, label %984

982:                                              ; preds = %964
  %983 = load float, ptr %37, align 4, !tbaa !17
  br label %987

984:                                              ; preds = %964
  %985 = load float, ptr %37, align 4, !tbaa !17
  %986 = fneg float %985
  br label %987

987:                                              ; preds = %984, %982
  %988 = phi float [ %983, %982 ], [ %986, %984 ]
  %989 = fadd float %965, %988
  store float %989, ptr %40, align 4, !tbaa !17
  %990 = load ptr, ptr %19, align 8, !tbaa !5
  %991 = load i32, ptr %34, 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 !11
  store float %995, ptr %38, align 4, !tbaa !17
  %996 = load float, ptr %38, align 4, !tbaa !17
  %997 = fcmp oge float %996, 0.000000e+00
  br i1 %997, label %998, label %1000

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

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

1003:                                             ; preds = %1000, %998
  %1004 = phi float [ %999, %998 ], [ %1002, %1000 ]
  %1005 = load ptr, ptr %19, align 8, !tbaa !5
  %1006 = load i32, ptr %52, align 4, !tbaa !9
  %1007 = sub nsw i32 %1006, 1
  %1008 = load i32, ptr %52, align 4, !tbaa !9
  %1009 = load i32, ptr %27, align 4, !tbaa !9
  %1010 = mul nsw i32 %1008, %1009
  %1011 = add nsw i32 %1007, %1010
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds %struct.complex, ptr %1005, i64 %1012
  %1014 = call <2 x float> @Cf(ptr noundef %1013)
  store <2 x float> %1014, ptr %106, align 4
  %1015 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 0
  %1016 = load float, ptr %1015, align 4
  %1017 = getelementptr inbounds { float, float }, ptr %106, i32 0, i32 1
  %1018 = load float, ptr %1017, align 4
  store float %1018, ptr %39, align 4, !tbaa !17
  %1019 = load float, ptr %39, align 4, !tbaa !17
  %1020 = fcmp oge float %1019, 0.000000e+00
  br i1 %1020, label %1021, label %1023

1021:                                             ; preds = %1003
  %1022 = load float, ptr %39, align 4, !tbaa !17
  br label %1026

1023:                                             ; preds = %1003
  %1024 = load float, ptr %39, align 4, !tbaa !17
  %1025 = fneg float %1024
  br label %1026

1026:                                             ; preds = %1023, %1021
  %1027 = phi float [ %1022, %1021 ], [ %1025, %1023 ]
  %1028 = fadd float %1004, %1027
  store float %1028, ptr %41, align 4, !tbaa !17
  %1029 = load float, ptr %40, align 4, !tbaa !17
  %1030 = load float, ptr %41, align 4, !tbaa !17
  %1031 = fcmp ole float %1029, %1030
  br i1 %1031, label %1032, label %1034

1032:                                             ; preds = %1026
  %1033 = load float, ptr %40, align 4, !tbaa !17
  br label %1036

1034:                                             ; preds = %1026
  %1035 = load float, ptr %41, align 4, !tbaa !17
  br label %1036

1036:                                             ; preds = %1034, %1032
  %1037 = phi float [ %1033, %1032 ], [ %1035, %1034 ]
  store float %1037, ptr %70, align 4, !tbaa !17
  %1038 = load i32, ptr %52, align 4, !tbaa !9
  %1039 = sub nsw i32 %1038, 1
  %1040 = load i32, ptr %52, align 4, !tbaa !9
  %1041 = sub nsw i32 %1040, 1
  %1042 = load i32, ptr %27, align 4, !tbaa !9
  %1043 = mul nsw i32 %1041, %1042
  %1044 = add nsw i32 %1039, %1043
  store i32 %1044, ptr %33, align 4, !tbaa !9
  %1045 = load i32, ptr %52, align 4, !tbaa !9
  %1046 = load i32, ptr %52, align 4, !tbaa !9
  %1047 = load i32, ptr %27, align 4, !tbaa !9
  %1048 = mul nsw i32 %1046, %1047
  %1049 = add nsw i32 %1045, %1048
  store i32 %1049, ptr %34, align 4, !tbaa !9
  %1050 = load ptr, ptr %19, align 8, !tbaa !5
  %1051 = load i32, ptr %33, align 4, !tbaa !9
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds %struct.complex, ptr %1050, i64 %1052
  %1054 = getelementptr inbounds %struct.complex, ptr %1053, i32 0, i32 0
  %1055 = load float, ptr %1054, align 4, !tbaa !11
  %1056 = load ptr, ptr %19, align 8, !tbaa !5
  %1057 = load i32, ptr %34, align 4, !tbaa !9
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds %struct.complex, ptr %1056, i64 %1058
  %1060 = getelementptr inbounds %struct.complex, ptr %1059, i32 0, i32 0
  %1061 = load float, ptr %1060, align 4, !tbaa !11
  %1062 = fsub float %1055, %1061
  %1063 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %1062, ptr %1063, align 4, !tbaa !11
  %1064 = load ptr, ptr %19, align 8, !tbaa !5
  %1065 = load i32, ptr %33, align 4, !tbaa !9
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds %struct.complex, ptr %1064, i64 %1066
  %1068 = getelementptr inbounds %struct.complex, ptr %1067, i32 0, i32 1
  %1069 = load float, ptr %1068, align 4, !tbaa !14
  %1070 = load ptr, ptr %19, align 8, !tbaa !5
  %1071 = load i32, ptr %34, align 4, !tbaa !9
  %1072 = sext i32 %1071 to i64
  %1073 = getelementptr inbounds %struct.complex, ptr %1070, i64 %1072
  %1074 = getelementptr inbounds %struct.complex, ptr %1073, i32 0, i32 1
  %1075 = load float, ptr %1074, align 4, !tbaa !14
  %1076 = fsub float %1069, %1075
  %1077 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %1076, ptr %1077, align 4, !tbaa !14
  %1078 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1079 = load float, ptr %1078, align 4, !tbaa !11
  %1080 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1079, ptr %1080, align 4, !tbaa !11
  %1081 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1082 = load float, ptr %1081, align 4, !tbaa !14
  %1083 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1082, ptr %1083, align 4, !tbaa !14
  %1084 = load i32, ptr %52, align 4, !tbaa !9
  %1085 = load i32, ptr %52, align 4, !tbaa !9
  %1086 = load i32, ptr %27, align 4, !tbaa !9
  %1087 = mul nsw i32 %1085, %1086
  %1088 = add nsw i32 %1084, %1087
  store i32 %1088, ptr %35, align 4, !tbaa !9
  %1089 = load ptr, ptr %19, align 8, !tbaa !5
  %1090 = load i32, ptr %35, align 4, !tbaa !9
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds %struct.complex, ptr %1089, i64 %1091
  %1093 = getelementptr inbounds %struct.complex, ptr %1092, i32 0, i32 0
  %1094 = load float, ptr %1093, align 4, !tbaa !11
  store float %1094, ptr %36, align 4, !tbaa !17
  %1095 = load float, ptr %36, align 4, !tbaa !17
  %1096 = fcmp oge float %1095, 0.000000e+00
  br i1 %1096, label %1097, label %1099

1097:                                             ; preds = %1036
  %1098 = load float, ptr %36, align 4, !tbaa !17
  br label %1102

1099:                                             ; preds = %1036
  %1100 = load float, ptr %36, align 4, !tbaa !17
  %1101 = fneg float %1100
  br label %1102

1102:                                             ; preds = %1099, %1097
  %1103 = phi float [ %1098, %1097 ], [ %1101, %1099 ]
  %1104 = load ptr, ptr %19, align 8, !tbaa !5
  %1105 = load i32, ptr %52, align 4, !tbaa !9
  %1106 = load i32, ptr %52, align 4, !tbaa !9
  %1107 = load i32, ptr %27, align 4, !tbaa !9
  %1108 = mul nsw i32 %1106, %1107
  %1109 = add nsw i32 %1105, %1108
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds %struct.complex, ptr %1104, i64 %1110
  %1112 = call <2 x float> @Cf(ptr noundef %1111)
  store <2 x float> %1112, ptr %107, align 4
  %1113 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 0
  %1114 = load float, ptr %1113, align 4
  %1115 = getelementptr inbounds { float, float }, ptr %107, i32 0, i32 1
  %1116 = load float, ptr %1115, align 4
  store float %1116, ptr %37, align 4, !tbaa !17
  %1117 = load float, ptr %37, align 4, !tbaa !17
  %1118 = fcmp oge float %1117, 0.000000e+00
  br i1 %1118, label %1119, label %1121

1119:                                             ; preds = %1102
  %1120 = load float, ptr %37, align 4, !tbaa !17
  br label %1124

1121:                                             ; preds = %1102
  %1122 = load float, ptr %37, align 4, !tbaa !17
  %1123 = fneg float %1122
  br label %1124

1124:                                             ; preds = %1121, %1119
  %1125 = phi float [ %1120, %1119 ], [ %1123, %1121 ]
  %1126 = fadd float %1103, %1125
  store float %1126, ptr %40, align 4, !tbaa !17
  %1127 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1128 = load float, ptr %1127, align 4, !tbaa !11
  store float %1128, ptr %38, align 4, !tbaa !17
  %1129 = load float, ptr %38, align 4, !tbaa !17
  %1130 = fcmp oge float %1129, 0.000000e+00
  br i1 %1130, label %1131, label %1133

1131:                                             ; preds = %1124
  %1132 = load float, ptr %38, align 4, !tbaa !17
  br label %1136

1133:                                             ; preds = %1124
  %1134 = load float, ptr %38, align 4, !tbaa !17
  %1135 = fneg float %1134
  br label %1136

1136:                                             ; preds = %1133, %1131
  %1137 = phi float [ %1132, %1131 ], [ %1135, %1133 ]
  %1138 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %1138, ptr %108, align 4
  %1139 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 0
  %1140 = load float, ptr %1139, align 4
  %1141 = getelementptr inbounds { float, float }, ptr %108, i32 0, i32 1
  %1142 = load float, ptr %1141, align 4
  store float %1142, ptr %39, align 4, !tbaa !17
  %1143 = load float, ptr %39, align 4, !tbaa !17
  %1144 = fcmp oge float %1143, 0.000000e+00
  br i1 %1144, label %1145, label %1147

1145:                                             ; preds = %1136
  %1146 = load float, ptr %39, align 4, !tbaa !17
  br label %1150

1147:                                             ; preds = %1136
  %1148 = load float, ptr %39, align 4, !tbaa !17
  %1149 = fneg float %1148
  br label %1150

1150:                                             ; preds = %1147, %1145
  %1151 = phi float [ %1146, %1145 ], [ %1149, %1147 ]
  %1152 = fadd float %1137, %1151
  store float %1152, ptr %41, align 4, !tbaa !17
  %1153 = load float, ptr %40, align 4, !tbaa !17
  %1154 = load float, ptr %41, align 4, !tbaa !17
  %1155 = fcmp oge float %1153, %1154
  br i1 %1155, label %1156, label %1158

1156:                                             ; preds = %1150
  %1157 = load float, ptr %40, align 4, !tbaa !17
  br label %1160

1158:                                             ; preds = %1150
  %1159 = load float, ptr %41, align 4, !tbaa !17
  br label %1160

1160:                                             ; preds = %1158, %1156
  %1161 = phi float [ %1157, %1156 ], [ %1159, %1158 ]
  store float %1161, ptr %68, align 4, !tbaa !17
  %1162 = load i32, ptr %52, align 4, !tbaa !9
  %1163 = sub nsw i32 %1162, 1
  %1164 = load i32, ptr %52, align 4, !tbaa !9
  %1165 = sub nsw i32 %1164, 1
  %1166 = load i32, ptr %27, align 4, !tbaa !9
  %1167 = mul nsw i32 %1165, %1166
  %1168 = add nsw i32 %1163, %1167
  store i32 %1168, ptr %33, align 4, !tbaa !9
  %1169 = load i32, ptr %52, align 4, !tbaa !9
  %1170 = load i32, ptr %52, align 4, !tbaa !9
  %1171 = load i32, ptr %27, align 4, !tbaa !9
  %1172 = mul nsw i32 %1170, %1171
  %1173 = add nsw i32 %1169, %1172
  store i32 %1173, ptr %34, align 4, !tbaa !9
  %1174 = load ptr, ptr %19, align 8, !tbaa !5
  %1175 = load i32, ptr %33, align 4, !tbaa !9
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds %struct.complex, ptr %1174, i64 %1176
  %1178 = getelementptr inbounds %struct.complex, ptr %1177, i32 0, i32 0
  %1179 = load float, ptr %1178, align 4, !tbaa !11
  %1180 = load ptr, ptr %19, align 8, !tbaa !5
  %1181 = load i32, ptr %34, align 4, !tbaa !9
  %1182 = sext i32 %1181 to i64
  %1183 = getelementptr inbounds %struct.complex, ptr %1180, i64 %1182
  %1184 = getelementptr inbounds %struct.complex, ptr %1183, i32 0, i32 0
  %1185 = load float, ptr %1184, align 4, !tbaa !11
  %1186 = fsub float %1179, %1185
  %1187 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %1186, ptr %1187, align 4, !tbaa !11
  %1188 = load ptr, ptr %19, align 8, !tbaa !5
  %1189 = load i32, ptr %33, align 4, !tbaa !9
  %1190 = sext i32 %1189 to i64
  %1191 = getelementptr inbounds %struct.complex, ptr %1188, i64 %1190
  %1192 = getelementptr inbounds %struct.complex, ptr %1191, i32 0, i32 1
  %1193 = load float, ptr %1192, align 4, !tbaa !14
  %1194 = load ptr, ptr %19, align 8, !tbaa !5
  %1195 = load i32, ptr %34, align 4, !tbaa !9
  %1196 = sext i32 %1195 to i64
  %1197 = getelementptr inbounds %struct.complex, ptr %1194, i64 %1196
  %1198 = getelementptr inbounds %struct.complex, ptr %1197, i32 0, i32 1
  %1199 = load float, ptr %1198, align 4, !tbaa !14
  %1200 = fsub float %1193, %1199
  %1201 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %1200, ptr %1201, align 4, !tbaa !14
  %1202 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1203 = load float, ptr %1202, align 4, !tbaa !11
  %1204 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1203, ptr %1204, align 4, !tbaa !11
  %1205 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1206 = load float, ptr %1205, align 4, !tbaa !14
  %1207 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1206, ptr %1207, align 4, !tbaa !14
  %1208 = load i32, ptr %52, align 4, !tbaa !9
  %1209 = load i32, ptr %52, align 4, !tbaa !9
  %1210 = load i32, ptr %27, align 4, !tbaa !9
  %1211 = mul nsw i32 %1209, %1210
  %1212 = add nsw i32 %1208, %1211
  store i32 %1212, ptr %35, align 4, !tbaa !9
  %1213 = load ptr, ptr %19, align 8, !tbaa !5
  %1214 = load i32, ptr %35, align 4, !tbaa !9
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds %struct.complex, ptr %1213, i64 %1215
  %1217 = getelementptr inbounds %struct.complex, ptr %1216, i32 0, i32 0
  %1218 = load float, ptr %1217, align 4, !tbaa !11
  store float %1218, ptr %36, align 4, !tbaa !17
  %1219 = load float, ptr %36, align 4, !tbaa !17
  %1220 = fcmp oge float %1219, 0.000000e+00
  br i1 %1220, label %1221, label %1223

1221:                                             ; preds = %1160
  %1222 = load float, ptr %36, align 4, !tbaa !17
  br label %1226

1223:                                             ; preds = %1160
  %1224 = load float, ptr %36, align 4, !tbaa !17
  %1225 = fneg float %1224
  br label %1226

1226:                                             ; preds = %1223, %1221
  %1227 = phi float [ %1222, %1221 ], [ %1225, %1223 ]
  %1228 = load ptr, ptr %19, align 8, !tbaa !5
  %1229 = load i32, ptr %52, align 4, !tbaa !9
  %1230 = load i32, ptr %52, align 4, !tbaa !9
  %1231 = load i32, ptr %27, align 4, !tbaa !9
  %1232 = mul nsw i32 %1230, %1231
  %1233 = add nsw i32 %1229, %1232
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds %struct.complex, ptr %1228, i64 %1234
  %1236 = call <2 x float> @Cf(ptr noundef %1235)
  store <2 x float> %1236, ptr %109, align 4
  %1237 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 0
  %1238 = load float, ptr %1237, align 4
  %1239 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 1
  %1240 = load float, ptr %1239, align 4
  store float %1240, ptr %37, align 4, !tbaa !17
  %1241 = load float, ptr %37, align 4, !tbaa !17
  %1242 = fcmp oge float %1241, 0.000000e+00
  br i1 %1242, label %1243, label %1245

1243:                                             ; preds = %1226
  %1244 = load float, ptr %37, align 4, !tbaa !17
  br label %1248

1245:                                             ; preds = %1226
  %1246 = load float, ptr %37, align 4, !tbaa !17
  %1247 = fneg float %1246
  br label %1248

1248:                                             ; preds = %1245, %1243
  %1249 = phi float [ %1244, %1243 ], [ %1247, %1245 ]
  %1250 = fadd float %1227, %1249
  store float %1250, ptr %40, align 4, !tbaa !17
  %1251 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1252 = load float, ptr %1251, align 4, !tbaa !11
  store float %1252, ptr %38, align 4, !tbaa !17
  %1253 = load float, ptr %38, align 4, !tbaa !17
  %1254 = fcmp oge float %1253, 0.000000e+00
  br i1 %1254, label %1255, label %1257

1255:                                             ; preds = %1248
  %1256 = load float, ptr %38, align 4, !tbaa !17
  br label %1260

1257:                                             ; preds = %1248
  %1258 = load float, ptr %38, align 4, !tbaa !17
  %1259 = fneg float %1258
  br label %1260

1260:                                             ; preds = %1257, %1255
  %1261 = phi float [ %1256, %1255 ], [ %1259, %1257 ]
  %1262 = call <2 x float> @Cf(ptr noundef %42)
  store <2 x float> %1262, ptr %110, align 4
  %1263 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 0
  %1264 = load float, ptr %1263, align 4
  %1265 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 1
  %1266 = load float, ptr %1265, align 4
  store float %1266, ptr %39, align 4, !tbaa !17
  %1267 = load float, ptr %39, align 4, !tbaa !17
  %1268 = fcmp oge float %1267, 0.000000e+00
  br i1 %1268, label %1269, label %1271

1269:                                             ; preds = %1260
  %1270 = load float, ptr %39, align 4, !tbaa !17
  br label %1274

1271:                                             ; preds = %1260
  %1272 = load float, ptr %39, align 4, !tbaa !17
  %1273 = fneg float %1272
  br label %1274

1274:                                             ; preds = %1271, %1269
  %1275 = phi float [ %1270, %1269 ], [ %1273, %1271 ]
  %1276 = fadd float %1261, %1275
  store float %1276, ptr %41, align 4, !tbaa !17
  %1277 = load float, ptr %40, align 4, !tbaa !17
  %1278 = load float, ptr %41, align 4, !tbaa !17
  %1279 = fcmp ole float %1277, %1278
  br i1 %1279, label %1280, label %1282

1280:                                             ; preds = %1274
  %1281 = load float, ptr %40, align 4, !tbaa !17
  br label %1284

1282:                                             ; preds = %1274
  %1283 = load float, ptr %41, align 4, !tbaa !17
  br label %1284

1284:                                             ; preds = %1282, %1280
  %1285 = phi float [ %1281, %1280 ], [ %1283, %1282 ]
  store float %1285, ptr %71, align 4, !tbaa !17
  %1286 = load float, ptr %68, align 4, !tbaa !17
  %1287 = load float, ptr %69, align 4, !tbaa !17
  %1288 = fadd float %1286, %1287
  store float %1288, ptr %55, align 4, !tbaa !17
  %1289 = load float, ptr %82, align 4, !tbaa !17
  store float %1289, ptr %36, align 4, !tbaa !17
  %1290 = load float, ptr %87, align 4, !tbaa !17
  %1291 = load float, ptr %71, align 4, !tbaa !17
  %1292 = load float, ptr %68, align 4, !tbaa !17
  %1293 = load float, ptr %55, align 4, !tbaa !17
  %1294 = fdiv float %1292, %1293
  %1295 = fmul float %1291, %1294
  %1296 = fmul float %1290, %1295
  store float %1296, ptr %37, align 4, !tbaa !17
  %1297 = load float, ptr %70, align 4, !tbaa !17
  %1298 = load float, ptr %69, align 4, !tbaa !17
  %1299 = load float, ptr %55, align 4, !tbaa !17
  %1300 = fdiv float %1298, %1299
  %1301 = fmul float %1297, %1300
  %1302 = load float, ptr %36, align 4, !tbaa !17
  %1303 = load float, ptr %37, align 4, !tbaa !17
  %1304 = fcmp oge float %1302, %1303
  br i1 %1304, label %1305, label %1307

1305:                                             ; preds = %1284
  %1306 = load float, ptr %36, align 4, !tbaa !17
  br label %1309

1307:                                             ; preds = %1284
  %1308 = load float, ptr %37, align 4, !tbaa !17
  br label %1309

1309:                                             ; preds = %1307, %1305
  %1310 = phi float [ %1306, %1305 ], [ %1308, %1307 ]
  %1311 = fcmp ole float %1301, %1310
  br i1 %1311, label %1312, label %1313

1312:                                             ; preds = %1309
  br label %1319

1313:                                             ; preds = %1309
  br label %1314

1314:                                             ; preds = %1313, %833
  br label %1315

1315:                                             ; preds = %1314
  %1316 = load i32, ptr %52, align 4, !tbaa !9
  %1317 = add nsw i32 %1316, -1
  store i32 %1317, ptr %52, align 4, !tbaa !9
  br label %604, !llvm.loop !19

1318:                                             ; preds = %604
  br label %1319

1319:                                             ; preds = %1318, %1312, %656
  %1320 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %1320, ptr %53, align 4, !tbaa !9
  %1321 = load i32, ptr %53, align 4, !tbaa !9
  %1322 = load ptr, ptr %17, align 8, !tbaa !5
  %1323 = load i32, ptr %1322, align 4, !tbaa !9
  %1324 = icmp sgt i32 %1321, %1323
  br i1 %1324, label %1325, label %1342

1325:                                             ; preds = %1319
  %1326 = load i32, ptr %53, align 4, !tbaa !9
  %1327 = load i32, ptr %53, align 4, !tbaa !9
  %1328 = sub nsw i32 %1327, 1
  %1329 = load i32, ptr %27, align 4, !tbaa !9
  %1330 = mul nsw i32 %1328, %1329
  %1331 = add nsw i32 %1326, %1330
  store i32 %1331, ptr %32, align 4, !tbaa !9
  %1332 = load ptr, ptr %19, align 8, !tbaa !5
  %1333 = load i32, ptr %32, align 4, !tbaa !9
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds %struct.complex, ptr %1332, i64 %1334
  %1336 = getelementptr inbounds %struct.complex, ptr %1335, i32 0, i32 0
  store float 0.000000e+00, ptr %1336, align 4, !tbaa !11
  %1337 = load ptr, ptr %19, align 8, !tbaa !5
  %1338 = load i32, ptr %32, align 4, !tbaa !9
  %1339 = sext i32 %1338 to i64
  %1340 = getelementptr inbounds %struct.complex, ptr %1337, i64 %1339
  %1341 = getelementptr inbounds %struct.complex, ptr %1340, i32 0, i32 1
  store float 0.000000e+00, ptr %1341, align 4, !tbaa !14
  br label %1342

1342:                                             ; preds = %1325, %1319
  %1343 = load i32, ptr %53, align 4, !tbaa !9
  %1344 = load i32, ptr %50, align 4, !tbaa !9
  %1345 = icmp sge i32 %1343, %1344
  br i1 %1345, label %1346, label %1347

1346:                                             ; preds = %1342
  br label %3489

1347:                                             ; preds = %1342
  %1348 = load ptr, ptr %14, align 8, !tbaa !5
  %1349 = load i32, ptr %1348, align 4, !tbaa !9
  %1350 = icmp ne i32 %1349, 0
  br i1 %1350, label %1354, label %1351

1351:                                             ; preds = %1347
  %1352 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %1352, ptr %63, align 4, !tbaa !9
  %1353 = load i32, ptr %50, align 4, !tbaa !9
  store i32 %1353, ptr %64, align 4, !tbaa !9
  br label %1354

1354:                                             ; preds = %1351, %1347
  %1355 = load i32, ptr %86, align 4, !tbaa !9
  %1356 = icmp eq i32 %1355, 10
  br i1 %1356, label %1357, label %1407

1357:                                             ; preds = %1354
  %1358 = load i32, ptr %53, align 4, !tbaa !9
  %1359 = add nsw i32 %1358, 1
  %1360 = load i32, ptr %53, align 4, !tbaa !9
  %1361 = load i32, ptr %27, align 4, !tbaa !9
  %1362 = mul nsw i32 %1360, %1361
  %1363 = add nsw i32 %1359, %1362
  store i32 %1363, ptr %32, align 4, !tbaa !9
  %1364 = load ptr, ptr %19, align 8, !tbaa !5
  %1365 = load i32, ptr %32, 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 !11
  store float %1369, ptr %36, align 4, !tbaa !17
  %1370 = load float, ptr %36, align 4, !tbaa !17
  %1371 = fcmp oge float %1370, 0.000000e+00
  br i1 %1371, label %1372, label %1374

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

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

1377:                                             ; preds = %1374, %1372
  %1378 = phi float [ %1373, %1372 ], [ %1376, %1374 ]
  %1379 = fmul float %1378, 7.500000e-01
  store float %1379, ptr %55, align 4, !tbaa !17
  %1380 = load i32, ptr %53, align 4, !tbaa !9
  %1381 = load i32, ptr %53, align 4, !tbaa !9
  %1382 = load i32, ptr %27, align 4, !tbaa !9
  %1383 = mul nsw i32 %1381, %1382
  %1384 = add nsw i32 %1380, %1383
  store i32 %1384, ptr %32, align 4, !tbaa !9
  %1385 = load float, ptr %55, align 4, !tbaa !17
  %1386 = load ptr, ptr %19, align 8, !tbaa !5
  %1387 = load i32, ptr %32, align 4, !tbaa !9
  %1388 = sext i32 %1387 to i64
  %1389 = getelementptr inbounds %struct.complex, ptr %1386, i64 %1388
  %1390 = getelementptr inbounds %struct.complex, ptr %1389, i32 0, i32 0
  %1391 = load float, ptr %1390, align 4, !tbaa !11
  %1392 = fadd float %1385, %1391
  %1393 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1392, ptr %1393, align 4, !tbaa !11
  %1394 = load ptr, ptr %19, align 8, !tbaa !5
  %1395 = load i32, ptr %32, align 4, !tbaa !9
  %1396 = sext i32 %1395 to i64
  %1397 = getelementptr inbounds %struct.complex, ptr %1394, i64 %1396
  %1398 = getelementptr inbounds %struct.complex, ptr %1397, i32 0, i32 1
  %1399 = load float, ptr %1398, align 4, !tbaa !14
  %1400 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1399, ptr %1400, align 4, !tbaa !14
  %1401 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1402 = load float, ptr %1401, align 4, !tbaa !11
  %1403 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1402, ptr %1403, align 4, !tbaa !11
  %1404 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1405 = load float, ptr %1404, align 4, !tbaa !14
  %1406 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1405, ptr %1406, align 4, !tbaa !14
  br label %1901

1407:                                             ; preds = %1354
  %1408 = load i32, ptr %86, align 4, !tbaa !9
  %1409 = icmp eq i32 %1408, 20
  br i1 %1409, label %1410, label %1460

1410:                                             ; preds = %1407
  %1411 = load i32, ptr %50, align 4, !tbaa !9
  %1412 = load i32, ptr %50, align 4, !tbaa !9
  %1413 = sub nsw i32 %1412, 1
  %1414 = load i32, ptr %27, align 4, !tbaa !9
  %1415 = mul nsw i32 %1413, %1414
  %1416 = add nsw i32 %1411, %1415
  store i32 %1416, ptr %32, align 4, !tbaa !9
  %1417 = load ptr, ptr %19, align 8, !tbaa !5
  %1418 = load i32, ptr %32, align 4, !tbaa !9
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds %struct.complex, ptr %1417, i64 %1419
  %1421 = getelementptr inbounds %struct.complex, ptr %1420, i32 0, i32 0
  %1422 = load float, ptr %1421, align 4, !tbaa !11
  store float %1422, ptr %36, align 4, !tbaa !17
  %1423 = load float, ptr %36, align 4, !tbaa !17
  %1424 = fcmp oge float %1423, 0.000000e+00
  br i1 %1424, label %1425, label %1427

1425:                                             ; preds = %1410
  %1426 = load float, ptr %36, align 4, !tbaa !17
  br label %1430

1427:                                             ; preds = %1410
  %1428 = load float, ptr %36, align 4, !tbaa !17
  %1429 = fneg float %1428
  br label %1430

1430:                                             ; preds = %1427, %1425
  %1431 = phi float [ %1426, %1425 ], [ %1429, %1427 ]
  %1432 = fmul float %1431, 7.500000e-01
  store float %1432, ptr %55, align 4, !tbaa !17
  %1433 = load i32, ptr %50, align 4, !tbaa !9
  %1434 = load i32, ptr %50, align 4, !tbaa !9
  %1435 = load i32, ptr %27, align 4, !tbaa !9
  %1436 = mul nsw i32 %1434, %1435
  %1437 = add nsw i32 %1433, %1436
  store i32 %1437, ptr %32, align 4, !tbaa !9
  %1438 = load float, ptr %55, align 4, !tbaa !17
  %1439 = load ptr, ptr %19, align 8, !tbaa !5
  %1440 = load i32, ptr %32, align 4, !tbaa !9
  %1441 = sext i32 %1440 to i64
  %1442 = getelementptr inbounds %struct.complex, ptr %1439, i64 %1441
  %1443 = getelementptr inbounds %struct.complex, ptr %1442, i32 0, i32 0
  %1444 = load float, ptr %1443, align 4, !tbaa !11
  %1445 = fadd float %1438, %1444
  %1446 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1445, ptr %1446, align 4, !tbaa !11
  %1447 = load ptr, ptr %19, align 8, !tbaa !5
  %1448 = load i32, ptr %32, align 4, !tbaa !9
  %1449 = sext i32 %1448 to i64
  %1450 = getelementptr inbounds %struct.complex, ptr %1447, i64 %1449
  %1451 = getelementptr inbounds %struct.complex, ptr %1450, i32 0, i32 1
  %1452 = load float, ptr %1451, align 4, !tbaa !14
  %1453 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1452, ptr %1453, align 4, !tbaa !14
  %1454 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1455 = load float, ptr %1454, align 4, !tbaa !11
  %1456 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1455, ptr %1456, align 4, !tbaa !11
  %1457 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1458 = load float, ptr %1457, align 4, !tbaa !14
  %1459 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1458, ptr %1459, align 4, !tbaa !14
  br label %1900

1460:                                             ; preds = %1407
  %1461 = load i32, ptr %50, align 4, !tbaa !9
  %1462 = load i32, ptr %50, align 4, !tbaa !9
  %1463 = load i32, ptr %27, align 4, !tbaa !9
  %1464 = mul nsw i32 %1462, %1463
  %1465 = add nsw i32 %1461, %1464
  store i32 %1465, ptr %32, align 4, !tbaa !9
  %1466 = load ptr, ptr %19, align 8, !tbaa !5
  %1467 = load i32, ptr %32, align 4, !tbaa !9
  %1468 = sext i32 %1467 to i64
  %1469 = getelementptr inbounds %struct.complex, ptr %1466, i64 %1468
  %1470 = getelementptr inbounds %struct.complex, ptr %1469, i32 0, i32 0
  %1471 = load float, ptr %1470, align 4, !tbaa !11
  %1472 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1471, ptr %1472, align 4, !tbaa !11
  %1473 = load ptr, ptr %19, align 8, !tbaa !5
  %1474 = load i32, ptr %32, align 4, !tbaa !9
  %1475 = sext i32 %1474 to i64
  %1476 = getelementptr inbounds %struct.complex, ptr %1473, i64 %1475
  %1477 = getelementptr inbounds %struct.complex, ptr %1476, i32 0, i32 1
  %1478 = load float, ptr %1477, align 4, !tbaa !14
  %1479 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1478, ptr %1479, align 4, !tbaa !14
  %1480 = load ptr, ptr %19, align 8, !tbaa !5
  %1481 = load i32, ptr %50, align 4, !tbaa !9
  %1482 = sub nsw i32 %1481, 1
  %1483 = load i32, ptr %50, align 4, !tbaa !9
  %1484 = load i32, ptr %27, align 4, !tbaa !9
  %1485 = mul nsw i32 %1483, %1484
  %1486 = add nsw i32 %1482, %1485
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds %struct.complex, ptr %1480, i64 %1487
  %1489 = call <2 x float> @Cf(ptr noundef %1488)
  store <2 x float> %1489, ptr %111, align 4
  %1490 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 0
  %1491 = load float, ptr %1490, align 4
  %1492 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 1
  %1493 = load float, ptr %1492, align 4
  %1494 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 0
  %1495 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 1
  store float %1491, ptr %1494, align 4
  store float %1493, ptr %1495, align 4
  %1496 = load <2 x float>, ptr %112, align 4
  %1497 = call <2 x float> @csqrtf(<2 x float> noundef %1496) #7
  store <2 x float> %1497, ptr %113, align 4
  %1498 = getelementptr inbounds { float, float }, ptr %113, i32 0, i32 0
  %1499 = load float, ptr %1498, align 4
  %1500 = getelementptr inbounds { float, float }, ptr %113, i32 0, i32 1
  %1501 = load float, ptr %1500, align 4
  %1502 = call ptr @_pCf(ptr noundef %43)
  %1503 = getelementptr inbounds { float, float }, ptr %1502, i32 0, i32 0
  %1504 = getelementptr inbounds { float, float }, ptr %1502, i32 0, i32 1
  store float %1499, ptr %1503, align 4
  store float %1501, ptr %1504, align 4
  %1505 = load ptr, ptr %19, align 8, !tbaa !5
  %1506 = load i32, ptr %50, align 4, !tbaa !9
  %1507 = load i32, ptr %50, align 4, !tbaa !9
  %1508 = sub nsw i32 %1507, 1
  %1509 = load i32, ptr %27, align 4, !tbaa !9
  %1510 = mul nsw i32 %1508, %1509
  %1511 = add nsw i32 %1506, %1510
  %1512 = sext i32 %1511 to i64
  %1513 = getelementptr inbounds %struct.complex, ptr %1505, i64 %1512
  %1514 = call <2 x float> @Cf(ptr noundef %1513)
  store <2 x float> %1514, ptr %114, align 4
  %1515 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 0
  %1516 = load float, ptr %1515, align 4
  %1517 = getelementptr inbounds { float, float }, ptr %114, i32 0, i32 1
  %1518 = load float, ptr %1517, align 4
  %1519 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 0
  %1520 = getelementptr inbounds { float, float }, ptr %115, i32 0, i32 1
  store float %1516, ptr %1519, align 4
  store float %1518, ptr %1520, align 4
  %1521 = load <2 x float>, ptr %115, align 4
  %1522 = call <2 x float> @csqrtf(<2 x float> noundef %1521) #7
  store <2 x float> %1522, ptr %116, align 4
  %1523 = getelementptr inbounds { float, float }, ptr %116, i32 0, i32 0
  %1524 = load float, ptr %1523, align 4
  %1525 = getelementptr inbounds { float, float }, ptr %116, i32 0, i32 1
  %1526 = load float, ptr %1525, align 4
  %1527 = call ptr @_pCf(ptr noundef %44)
  %1528 = getelementptr inbounds { float, float }, ptr %1527, i32 0, i32 0
  %1529 = getelementptr inbounds { float, float }, ptr %1527, i32 0, i32 1
  store float %1524, ptr %1528, align 4
  store float %1526, ptr %1529, align 4
  %1530 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1531 = load float, ptr %1530, align 4, !tbaa !11
  %1532 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1533 = load float, ptr %1532, align 4, !tbaa !11
  %1534 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1535 = load float, ptr %1534, align 4, !tbaa !14
  %1536 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1537 = load float, ptr %1536, align 4, !tbaa !14
  %1538 = fmul float %1535, %1537
  %1539 = fneg float %1538
  %1540 = call float @llvm.fmuladd.f32(float %1531, float %1533, float %1539)
  %1541 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1540, ptr %1541, align 4, !tbaa !11
  %1542 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1543 = load float, ptr %1542, align 4, !tbaa !11
  %1544 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1545 = load float, ptr %1544, align 4, !tbaa !14
  %1546 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1547 = load float, ptr %1546, align 4, !tbaa !14
  %1548 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1549 = load float, ptr %1548, align 4, !tbaa !11
  %1550 = fmul float %1547, %1549
  %1551 = call float @llvm.fmuladd.f32(float %1543, float %1545, float %1550)
  %1552 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1551, ptr %1552, align 4, !tbaa !14
  %1553 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1554 = load float, ptr %1553, align 4, !tbaa !11
  %1555 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  store float %1554, ptr %1555, align 4, !tbaa !11
  %1556 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1557 = load float, ptr %1556, align 4, !tbaa !14
  %1558 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  store float %1557, ptr %1558, align 4, !tbaa !14
  %1559 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  %1560 = load float, ptr %1559, align 4, !tbaa !11
  store float %1560, ptr %36, align 4, !tbaa !17
  %1561 = load float, ptr %36, align 4, !tbaa !17
  %1562 = fcmp oge float %1561, 0.000000e+00
  br i1 %1562, label %1563, label %1565

1563:                                             ; preds = %1460
  %1564 = load float, ptr %36, align 4, !tbaa !17
  br label %1568

1565:                                             ; preds = %1460
  %1566 = load float, ptr %36, align 4, !tbaa !17
  %1567 = fneg float %1566
  br label %1568

1568:                                             ; preds = %1565, %1563
  %1569 = phi float [ %1564, %1563 ], [ %1567, %1565 ]
  %1570 = call <2 x float> @Cf(ptr noundef %57)
  store <2 x float> %1570, ptr %117, align 4
  %1571 = getelementptr inbounds { float, float }, ptr %117, i32 0, i32 0
  %1572 = load float, ptr %1571, align 4
  %1573 = getelementptr inbounds { float, float }, ptr %117, i32 0, i32 1
  %1574 = load float, ptr %1573, align 4
  store float %1574, ptr %37, align 4, !tbaa !17
  %1575 = load float, ptr %37, align 4, !tbaa !17
  %1576 = fcmp oge float %1575, 0.000000e+00
  br i1 %1576, label %1577, label %1579

1577:                                             ; preds = %1568
  %1578 = load float, ptr %37, align 4, !tbaa !17
  br label %1582

1579:                                             ; preds = %1568
  %1580 = load float, ptr %37, align 4, !tbaa !17
  %1581 = fneg float %1580
  br label %1582

1582:                                             ; preds = %1579, %1577
  %1583 = phi float [ %1578, %1577 ], [ %1581, %1579 ]
  %1584 = fadd float %1569, %1583
  store float %1584, ptr %55, align 4, !tbaa !17
  %1585 = load float, ptr %55, align 4, !tbaa !17
  %1586 = fcmp une float %1585, 0.000000e+00
  br i1 %1586, label %1587, label %1899

1587:                                             ; preds = %1582
  %1588 = load i32, ptr %50, align 4, !tbaa !9
  %1589 = sub nsw i32 %1588, 1
  %1590 = load i32, ptr %50, align 4, !tbaa !9
  %1591 = sub nsw i32 %1590, 1
  %1592 = load i32, ptr %27, align 4, !tbaa !9
  %1593 = mul nsw i32 %1591, %1592
  %1594 = add nsw i32 %1589, %1593
  store i32 %1594, ptr %32, align 4, !tbaa !9
  %1595 = load ptr, ptr %19, align 8, !tbaa !5
  %1596 = load i32, ptr %32, align 4, !tbaa !9
  %1597 = sext i32 %1596 to i64
  %1598 = getelementptr inbounds %struct.complex, ptr %1595, i64 %1597
  %1599 = getelementptr inbounds %struct.complex, ptr %1598, i32 0, i32 0
  %1600 = load float, ptr %1599, align 4, !tbaa !11
  %1601 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %1602 = load float, ptr %1601, align 4, !tbaa !11
  %1603 = fsub float %1600, %1602
  %1604 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %1603, ptr %1604, align 4, !tbaa !11
  %1605 = load ptr, ptr %19, align 8, !tbaa !5
  %1606 = load i32, ptr %32, align 4, !tbaa !9
  %1607 = sext i32 %1606 to i64
  %1608 = getelementptr inbounds %struct.complex, ptr %1605, i64 %1607
  %1609 = getelementptr inbounds %struct.complex, ptr %1608, i32 0, i32 1
  %1610 = load float, ptr %1609, align 4, !tbaa !14
  %1611 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %1612 = load float, ptr %1611, align 4, !tbaa !14
  %1613 = fsub float %1610, %1612
  %1614 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %1613, ptr %1614, align 4, !tbaa !14
  %1615 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1616 = load float, ptr %1615, align 4, !tbaa !11
  %1617 = fmul float %1616, 5.000000e-01
  %1618 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1617, ptr %1618, align 4, !tbaa !11
  %1619 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1620 = load float, ptr %1619, align 4, !tbaa !14
  %1621 = fmul float %1620, 5.000000e-01
  %1622 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1621, ptr %1622, align 4, !tbaa !14
  %1623 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1624 = load float, ptr %1623, align 4, !tbaa !11
  %1625 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  store float %1624, ptr %1625, align 4, !tbaa !11
  %1626 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1627 = load float, ptr %1626, align 4, !tbaa !14
  %1628 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 1
  store float %1627, ptr %1628, align 4, !tbaa !14
  %1629 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  %1630 = load float, ptr %1629, align 4, !tbaa !11
  store float %1630, ptr %36, align 4, !tbaa !17
  %1631 = load float, ptr %36, align 4, !tbaa !17
  %1632 = fcmp oge float %1631, 0.000000e+00
  br i1 %1632, label %1633, label %1635

1633:                                             ; preds = %1587
  %1634 = load float, ptr %36, align 4, !tbaa !17
  br label %1638

1635:                                             ; preds = %1587
  %1636 = load float, ptr %36, align 4, !tbaa !17
  %1637 = fneg float %1636
  br label %1638

1638:                                             ; preds = %1635, %1633
  %1639 = phi float [ %1634, %1633 ], [ %1637, %1635 ]
  %1640 = call <2 x float> @Cf(ptr noundef %59)
  store <2 x float> %1640, ptr %118, align 4
  %1641 = getelementptr inbounds { float, float }, ptr %118, i32 0, i32 0
  %1642 = load float, ptr %1641, align 4
  %1643 = getelementptr inbounds { float, float }, ptr %118, i32 0, i32 1
  %1644 = load float, ptr %1643, align 4
  store float %1644, ptr %37, align 4, !tbaa !17
  %1645 = load float, ptr %37, align 4, !tbaa !17
  %1646 = fcmp oge float %1645, 0.000000e+00
  br i1 %1646, label %1647, label %1649

1647:                                             ; preds = %1638
  %1648 = load float, ptr %37, align 4, !tbaa !17
  br label %1652

1649:                                             ; preds = %1638
  %1650 = load float, ptr %37, align 4, !tbaa !17
  %1651 = fneg float %1650
  br label %1652

1652:                                             ; preds = %1649, %1647
  %1653 = phi float [ %1648, %1647 ], [ %1651, %1649 ]
  %1654 = fadd float %1639, %1653
  store float %1654, ptr %79, align 4, !tbaa !17
  %1655 = load float, ptr %55, align 4, !tbaa !17
  store float %1655, ptr %38, align 4, !tbaa !17
  %1656 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  %1657 = load float, ptr %1656, align 4, !tbaa !11
  store float %1657, ptr %36, align 4, !tbaa !17
  %1658 = load float, ptr %36, align 4, !tbaa !17
  %1659 = fcmp oge float %1658, 0.000000e+00
  br i1 %1659, label %1660, label %1662

1660:                                             ; preds = %1652
  %1661 = load float, ptr %36, align 4, !tbaa !17
  br label %1665

1662:                                             ; preds = %1652
  %1663 = load float, ptr %36, align 4, !tbaa !17
  %1664 = fneg float %1663
  br label %1665

1665:                                             ; preds = %1662, %1660
  %1666 = phi float [ %1661, %1660 ], [ %1664, %1662 ]
  %1667 = call <2 x float> @Cf(ptr noundef %59)
  store <2 x float> %1667, ptr %119, align 4
  %1668 = getelementptr inbounds { float, float }, ptr %119, i32 0, i32 0
  %1669 = load float, ptr %1668, align 4
  %1670 = getelementptr inbounds { float, float }, ptr %119, i32 0, i32 1
  %1671 = load float, ptr %1670, align 4
  store float %1671, ptr %37, align 4, !tbaa !17
  %1672 = load float, ptr %37, align 4, !tbaa !17
  %1673 = fcmp oge float %1672, 0.000000e+00
  br i1 %1673, label %1674, label %1676

1674:                                             ; preds = %1665
  %1675 = load float, ptr %37, align 4, !tbaa !17
  br label %1679

1676:                                             ; preds = %1665
  %1677 = load float, ptr %37, align 4, !tbaa !17
  %1678 = fneg float %1677
  br label %1679

1679:                                             ; preds = %1676, %1674
  %1680 = phi float [ %1675, %1674 ], [ %1678, %1676 ]
  %1681 = fadd float %1666, %1680
  store float %1681, ptr %39, align 4, !tbaa !17
  %1682 = load float, ptr %38, align 4, !tbaa !17
  %1683 = load float, ptr %39, align 4, !tbaa !17
  %1684 = fcmp oge float %1682, %1683
  br i1 %1684, label %1685, label %1687

1685:                                             ; preds = %1679
  %1686 = load float, ptr %38, align 4, !tbaa !17
  br label %1689

1687:                                             ; preds = %1679
  %1688 = load float, ptr %39, align 4, !tbaa !17
  br label %1689

1689:                                             ; preds = %1687, %1685
  %1690 = phi float [ %1686, %1685 ], [ %1688, %1687 ]
  store float %1690, ptr %55, align 4, !tbaa !17
  %1691 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  %1692 = load float, ptr %1691, align 4, !tbaa !11
  %1693 = load float, ptr %55, align 4, !tbaa !17
  %1694 = fdiv float %1692, %1693
  %1695 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %1694, ptr %1695, align 4, !tbaa !11
  %1696 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 1
  %1697 = load float, ptr %1696, align 4, !tbaa !14
  %1698 = load float, ptr %55, align 4, !tbaa !17
  %1699 = fdiv float %1697, %1698
  %1700 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %1699, ptr %1700, align 4, !tbaa !14
  %1701 = call <2 x float> @Cf(ptr noundef %46)
  store <2 x float> %1701, ptr %120, align 4
  %1702 = getelementptr inbounds { float, float }, ptr %120, i32 0, i32 0
  %1703 = load float, ptr %1702, align 4
  %1704 = getelementptr inbounds { float, float }, ptr %120, i32 0, i32 1
  %1705 = load float, ptr %1704, align 4
  %1706 = load i32, ptr @c__2, align 4, !tbaa !9
  %1707 = getelementptr inbounds { float, float }, ptr %121, i32 0, i32 0
  %1708 = getelementptr inbounds { float, float }, ptr %121, i32 0, i32 1
  store float %1703, ptr %1707, align 4
  store float %1705, ptr %1708, align 4
  %1709 = load <2 x float>, ptr %121, align 4
  %1710 = call <2 x float> @cpow_ui(<2 x float> noundef %1709, i32 noundef %1706)
  store <2 x float> %1710, ptr %122, align 4
  %1711 = getelementptr inbounds { float, float }, ptr %122, i32 0, i32 0
  %1712 = load float, ptr %1711, align 4
  %1713 = getelementptr inbounds { float, float }, ptr %122, i32 0, i32 1
  %1714 = load float, ptr %1713, align 4
  %1715 = call ptr @_pCf(ptr noundef %45)
  %1716 = getelementptr inbounds { float, float }, ptr %1715, i32 0, i32 0
  %1717 = getelementptr inbounds { float, float }, ptr %1715, i32 0, i32 1
  store float %1712, ptr %1716, align 4
  store float %1714, ptr %1717, align 4
  %1718 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  %1719 = load float, ptr %1718, align 4, !tbaa !11
  %1720 = load float, ptr %55, align 4, !tbaa !17
  %1721 = fdiv float %1719, %1720
  %1722 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1721, ptr %1722, align 4, !tbaa !11
  %1723 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  %1724 = load float, ptr %1723, align 4, !tbaa !14
  %1725 = load float, ptr %55, align 4, !tbaa !17
  %1726 = fdiv float %1724, %1725
  %1727 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1726, ptr %1727, align 4, !tbaa !14
  %1728 = call <2 x float> @Cf(ptr noundef %48)
  store <2 x float> %1728, ptr %123, align 4
  %1729 = getelementptr inbounds { float, float }, ptr %123, i32 0, i32 0
  %1730 = load float, ptr %1729, align 4
  %1731 = getelementptr inbounds { float, float }, ptr %123, i32 0, i32 1
  %1732 = load float, ptr %1731, align 4
  %1733 = load i32, ptr @c__2, align 4, !tbaa !9
  %1734 = getelementptr inbounds { float, float }, ptr %124, i32 0, i32 0
  %1735 = getelementptr inbounds { float, float }, ptr %124, i32 0, i32 1
  store float %1730, ptr %1734, align 4
  store float %1732, ptr %1735, align 4
  %1736 = load <2 x float>, ptr %124, align 4
  %1737 = call <2 x float> @cpow_ui(<2 x float> noundef %1736, i32 noundef %1733)
  store <2 x float> %1737, ptr %125, align 4
  %1738 = getelementptr inbounds { float, float }, ptr %125, i32 0, i32 0
  %1739 = load float, ptr %1738, align 4
  %1740 = getelementptr inbounds { float, float }, ptr %125, i32 0, i32 1
  %1741 = load float, ptr %1740, align 4
  %1742 = call ptr @_pCf(ptr noundef %47)
  %1743 = getelementptr inbounds { float, float }, ptr %1742, i32 0, i32 0
  %1744 = getelementptr inbounds { float, float }, ptr %1742, i32 0, i32 1
  store float %1739, ptr %1743, align 4
  store float %1741, ptr %1744, align 4
  %1745 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %1746 = load float, ptr %1745, align 4, !tbaa !11
  %1747 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %1748 = load float, ptr %1747, align 4, !tbaa !11
  %1749 = fadd float %1746, %1748
  %1750 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %1749, ptr %1750, align 4, !tbaa !11
  %1751 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %1752 = load float, ptr %1751, align 4, !tbaa !14
  %1753 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %1754 = load float, ptr %1753, align 4, !tbaa !14
  %1755 = fadd float %1752, %1754
  %1756 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %1755, ptr %1756, align 4, !tbaa !14
  %1757 = call <2 x float> @Cf(ptr noundef %44)
  store <2 x float> %1757, ptr %126, align 4
  %1758 = getelementptr inbounds { float, float }, ptr %126, i32 0, i32 0
  %1759 = load float, ptr %1758, align 4
  %1760 = getelementptr inbounds { float, float }, ptr %126, i32 0, i32 1
  %1761 = load float, ptr %1760, align 4
  %1762 = getelementptr inbounds { float, float }, ptr %127, i32 0, i32 0
  %1763 = getelementptr inbounds { float, float }, ptr %127, i32 0, i32 1
  store float %1759, ptr %1762, align 4
  store float %1761, ptr %1763, align 4
  %1764 = load <2 x float>, ptr %127, align 4
  %1765 = call <2 x float> @csqrtf(<2 x float> noundef %1764) #7
  store <2 x float> %1765, ptr %128, align 4
  %1766 = getelementptr inbounds { float, float }, ptr %128, i32 0, i32 0
  %1767 = load float, ptr %1766, align 4
  %1768 = getelementptr inbounds { float, float }, ptr %128, i32 0, i32 1
  %1769 = load float, ptr %1768, align 4
  %1770 = call ptr @_pCf(ptr noundef %43)
  %1771 = getelementptr inbounds { float, float }, ptr %1770, i32 0, i32 0
  %1772 = getelementptr inbounds { float, float }, ptr %1770, i32 0, i32 1
  store float %1767, ptr %1771, align 4
  store float %1769, ptr %1772, align 4
  %1773 = load float, ptr %55, align 4, !tbaa !17
  %1774 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1775 = load float, ptr %1774, align 4, !tbaa !11
  %1776 = fmul float %1773, %1775
  %1777 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1776, ptr %1777, align 4, !tbaa !11
  %1778 = load float, ptr %55, align 4, !tbaa !17
  %1779 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1780 = load float, ptr %1779, align 4, !tbaa !14
  %1781 = fmul float %1778, %1780
  %1782 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1781, ptr %1782, align 4, !tbaa !14
  %1783 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1784 = load float, ptr %1783, align 4, !tbaa !11
  %1785 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1784, ptr %1785, align 4, !tbaa !11
  %1786 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1787 = load float, ptr %1786, align 4, !tbaa !14
  %1788 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1787, ptr %1788, align 4, !tbaa !14
  %1789 = load float, ptr %79, align 4, !tbaa !17
  %1790 = fcmp ogt float %1789, 0.000000e+00
  br i1 %1790, label %1791, label %1845

1791:                                             ; preds = %1689
  %1792 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  %1793 = load float, ptr %1792, align 4, !tbaa !11
  %1794 = load float, ptr %79, align 4, !tbaa !17
  %1795 = fdiv float %1793, %1794
  %1796 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1795, ptr %1796, align 4, !tbaa !11
  %1797 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 1
  %1798 = load float, ptr %1797, align 4, !tbaa !14
  %1799 = load float, ptr %79, align 4, !tbaa !17
  %1800 = fdiv float %1798, %1799
  %1801 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1800, ptr %1801, align 4, !tbaa !14
  %1802 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  %1803 = load float, ptr %1802, align 4, !tbaa !11
  %1804 = load float, ptr %79, align 4, !tbaa !17
  %1805 = fdiv float %1803, %1804
  %1806 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %1805, ptr %1806, align 4, !tbaa !11
  %1807 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 1
  %1808 = load float, ptr %1807, align 4, !tbaa !14
  %1809 = load float, ptr %79, align 4, !tbaa !17
  %1810 = fdiv float %1808, %1809
  %1811 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %1810, ptr %1811, align 4, !tbaa !14
  %1812 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1813 = load float, ptr %1812, align 4, !tbaa !11
  %1814 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1815 = load float, ptr %1814, align 4, !tbaa !11
  %1816 = call <2 x float> @Cf(ptr noundef %43)
  store <2 x float> %1816, ptr %129, align 4
  %1817 = getelementptr inbounds { float, float }, ptr %129, i32 0, i32 0
  %1818 = load float, ptr %1817, align 4
  %1819 = getelementptr inbounds { float, float }, ptr %129, i32 0, i32 1
  %1820 = load float, ptr %1819, align 4
  %1821 = call <2 x float> @Cf(ptr noundef %60)
  store <2 x float> %1821, ptr %130, align 4
  %1822 = getelementptr inbounds { float, float }, ptr %130, i32 0, i32 0
  %1823 = load float, ptr %1822, align 4
  %1824 = getelementptr inbounds { float, float }, ptr %130, i32 0, i32 1
  %1825 = load float, ptr %1824, align 4
  %1826 = fmul float %1820, %1825
  %1827 = call float @llvm.fmuladd.f32(float %1813, float %1815, float %1826)
  %1828 = fcmp olt float %1827, 0.000000e+00
  br i1 %1828, label %1829, label %1844

1829:                                             ; preds = %1791
  %1830 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1831 = load float, ptr %1830, align 4, !tbaa !11
  %1832 = fneg float %1831
  %1833 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %1832, ptr %1833, align 4, !tbaa !11
  %1834 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1835 = load float, ptr %1834, align 4, !tbaa !14
  %1836 = fneg float %1835
  %1837 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %1836, ptr %1837, align 4, !tbaa !14
  %1838 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1839 = load float, ptr %1838, align 4, !tbaa !11
  %1840 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %1839, ptr %1840, align 4, !tbaa !11
  %1841 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1842 = load float, ptr %1841, align 4, !tbaa !14
  %1843 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %1842, ptr %1843, align 4, !tbaa !14
  br label %1844

1844:                                             ; preds = %1829, %1791
  br label %1845

1845:                                             ; preds = %1844, %1689
  %1846 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  %1847 = load float, ptr %1846, align 4, !tbaa !11
  %1848 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %1849 = load float, ptr %1848, align 4, !tbaa !11
  %1850 = fadd float %1847, %1849
  %1851 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %1850, ptr %1851, align 4, !tbaa !11
  %1852 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 1
  %1853 = load float, ptr %1852, align 4, !tbaa !14
  %1854 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %1855 = load float, ptr %1854, align 4, !tbaa !14
  %1856 = fadd float %1853, %1855
  %1857 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %1856, ptr %1857, align 4, !tbaa !14
  call void @cladiv_(ptr noundef %44, ptr noundef %57, ptr noundef %45)
  %1858 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  %1859 = load float, ptr %1858, align 4, !tbaa !11
  %1860 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1861 = load float, ptr %1860, align 4, !tbaa !11
  %1862 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  %1863 = load float, ptr %1862, align 4, !tbaa !14
  %1864 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1865 = load float, ptr %1864, align 4, !tbaa !14
  %1866 = fmul float %1863, %1865
  %1867 = fneg float %1866
  %1868 = call float @llvm.fmuladd.f32(float %1859, float %1861, float %1867)
  %1869 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %1868, ptr %1869, align 4, !tbaa !11
  %1870 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 0
  %1871 = load float, ptr %1870, align 4, !tbaa !11
  %1872 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1873 = load float, ptr %1872, align 4, !tbaa !14
  %1874 = getelementptr inbounds %struct.complex, ptr %57, i32 0, i32 1
  %1875 = load float, ptr %1874, align 4, !tbaa !14
  %1876 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1877 = load float, ptr %1876, align 4, !tbaa !11
  %1878 = fmul float %1875, %1877
  %1879 = call float @llvm.fmuladd.f32(float %1871, float %1873, float %1878)
  %1880 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %1879, ptr %1880, align 4, !tbaa !14
  %1881 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %1882 = load float, ptr %1881, align 4, !tbaa !11
  %1883 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1884 = load float, ptr %1883, align 4, !tbaa !11
  %1885 = fsub float %1882, %1884
  %1886 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1885, ptr %1886, align 4, !tbaa !11
  %1887 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %1888 = load float, ptr %1887, align 4, !tbaa !14
  %1889 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1890 = load float, ptr %1889, align 4, !tbaa !14
  %1891 = fsub float %1888, %1890
  %1892 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1891, ptr %1892, align 4, !tbaa !14
  %1893 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1894 = load float, ptr %1893, align 4, !tbaa !11
  %1895 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  store float %1894, ptr %1895, align 4, !tbaa !11
  %1896 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1897 = load float, ptr %1896, align 4, !tbaa !14
  %1898 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  store float %1897, ptr %1898, align 4, !tbaa !14
  br label %1899

1899:                                             ; preds = %1845, %1582
  br label %1900

1900:                                             ; preds = %1899, %1430
  br label %1901

1901:                                             ; preds = %1900, %1377
  %1902 = load i32, ptr %53, align 4, !tbaa !9
  %1903 = add nsw i32 %1902, 1
  store i32 %1903, ptr %32, align 4, !tbaa !9
  %1904 = load i32, ptr %50, align 4, !tbaa !9
  %1905 = sub nsw i32 %1904, 1
  store i32 %1905, ptr %54, align 4, !tbaa !9
  br label %1906

1906:                                             ; preds = %2165, %1901
  %1907 = load i32, ptr %54, align 4, !tbaa !9
  %1908 = load i32, ptr %32, align 4, !tbaa !9
  %1909 = icmp sge i32 %1907, %1908
  br i1 %1909, label %1910, label %2168

1910:                                             ; preds = %1906
  %1911 = load i32, ptr %54, align 4, !tbaa !9
  %1912 = load i32, ptr %54, align 4, !tbaa !9
  %1913 = load i32, ptr %27, align 4, !tbaa !9
  %1914 = mul nsw i32 %1912, %1913
  %1915 = add nsw i32 %1911, %1914
  store i32 %1915, ptr %33, align 4, !tbaa !9
  %1916 = load ptr, ptr %19, align 8, !tbaa !5
  %1917 = load i32, ptr %33, align 4, !tbaa !9
  %1918 = sext i32 %1917 to i64
  %1919 = getelementptr inbounds %struct.complex, ptr %1916, i64 %1918
  %1920 = getelementptr inbounds %struct.complex, ptr %1919, i32 0, i32 0
  %1921 = load float, ptr %1920, align 4, !tbaa !11
  %1922 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 0
  store float %1921, ptr %1922, align 4, !tbaa !11
  %1923 = load ptr, ptr %19, align 8, !tbaa !5
  %1924 = load i32, ptr %33, align 4, !tbaa !9
  %1925 = sext i32 %1924 to i64
  %1926 = getelementptr inbounds %struct.complex, ptr %1923, i64 %1925
  %1927 = getelementptr inbounds %struct.complex, ptr %1926, i32 0, i32 1
  %1928 = load float, ptr %1927, align 4, !tbaa !14
  %1929 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 1
  store float %1928, ptr %1929, align 4, !tbaa !14
  %1930 = load i32, ptr %54, align 4, !tbaa !9
  %1931 = add nsw i32 %1930, 1
  %1932 = load i32, ptr %54, align 4, !tbaa !9
  %1933 = add nsw i32 %1932, 1
  %1934 = load i32, ptr %27, align 4, !tbaa !9
  %1935 = mul nsw i32 %1933, %1934
  %1936 = add nsw i32 %1931, %1935
  store i32 %1936, ptr %33, align 4, !tbaa !9
  %1937 = load ptr, ptr %19, align 8, !tbaa !5
  %1938 = load i32, ptr %33, align 4, !tbaa !9
  %1939 = sext i32 %1938 to i64
  %1940 = getelementptr inbounds %struct.complex, ptr %1937, i64 %1939
  %1941 = getelementptr inbounds %struct.complex, ptr %1940, i32 0, i32 0
  %1942 = load float, ptr %1941, align 4, !tbaa !11
  %1943 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 0
  store float %1942, ptr %1943, align 4, !tbaa !11
  %1944 = load ptr, ptr %19, align 8, !tbaa !5
  %1945 = load i32, ptr %33, align 4, !tbaa !9
  %1946 = sext i32 %1945 to i64
  %1947 = getelementptr inbounds %struct.complex, ptr %1944, i64 %1946
  %1948 = getelementptr inbounds %struct.complex, ptr %1947, i32 0, i32 1
  %1949 = load float, ptr %1948, align 4, !tbaa !14
  %1950 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 1
  store float %1949, ptr %1950, align 4, !tbaa !14
  %1951 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 0
  %1952 = load float, ptr %1951, align 4, !tbaa !11
  %1953 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %1954 = load float, ptr %1953, align 4, !tbaa !11
  %1955 = fsub float %1952, %1954
  %1956 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1955, ptr %1956, align 4, !tbaa !11
  %1957 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 1
  %1958 = load float, ptr %1957, align 4, !tbaa !14
  %1959 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %1960 = load float, ptr %1959, align 4, !tbaa !14
  %1961 = fsub float %1958, %1960
  %1962 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1961, ptr %1962, align 4, !tbaa !14
  %1963 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1964 = load float, ptr %1963, align 4, !tbaa !11
  %1965 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %1964, ptr %1965, align 4, !tbaa !11
  %1966 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1967 = load float, ptr %1966, align 4, !tbaa !14
  %1968 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %1967, ptr %1968, align 4, !tbaa !14
  %1969 = load i32, ptr %54, align 4, !tbaa !9
  %1970 = add nsw i32 %1969, 1
  %1971 = load i32, ptr %54, align 4, !tbaa !9
  %1972 = load i32, ptr %27, align 4, !tbaa !9
  %1973 = mul nsw i32 %1971, %1972
  %1974 = add nsw i32 %1970, %1973
  store i32 %1974, ptr %33, align 4, !tbaa !9
  %1975 = load ptr, ptr %19, align 8, !tbaa !5
  %1976 = load i32, ptr %33, align 4, !tbaa !9
  %1977 = sext i32 %1976 to i64
  %1978 = getelementptr inbounds %struct.complex, ptr %1975, i64 %1977
  %1979 = getelementptr inbounds %struct.complex, ptr %1978, i32 0, i32 0
  %1980 = load float, ptr %1979, align 4, !tbaa !11
  store float %1980, ptr %74, align 4, !tbaa !17
  %1981 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %1982 = load float, ptr %1981, align 4, !tbaa !11
  store float %1982, ptr %36, align 4, !tbaa !17
  %1983 = load float, ptr %36, align 4, !tbaa !17
  %1984 = fcmp oge float %1983, 0.000000e+00
  br i1 %1984, label %1985, label %1987

1985:                                             ; preds = %1910
  %1986 = load float, ptr %36, align 4, !tbaa !17
  br label %1990

1987:                                             ; preds = %1910
  %1988 = load float, ptr %36, align 4, !tbaa !17
  %1989 = fneg float %1988
  br label %1990

1990:                                             ; preds = %1987, %1985
  %1991 = phi float [ %1986, %1985 ], [ %1989, %1987 ]
  %1992 = call <2 x float> @Cf(ptr noundef %84)
  store <2 x float> %1992, ptr %131, align 4
  %1993 = getelementptr inbounds { float, float }, ptr %131, i32 0, i32 0
  %1994 = load float, ptr %1993, align 4
  %1995 = getelementptr inbounds { float, float }, ptr %131, i32 0, i32 1
  %1996 = load float, ptr %1995, align 4
  store float %1996, ptr %37, align 4, !tbaa !17
  %1997 = load float, ptr %37, align 4, !tbaa !17
  %1998 = fcmp oge float %1997, 0.000000e+00
  br i1 %1998, label %1999, label %2001

1999:                                             ; preds = %1990
  %2000 = load float, ptr %37, align 4, !tbaa !17
  br label %2004

2001:                                             ; preds = %1990
  %2002 = load float, ptr %37, align 4, !tbaa !17
  %2003 = fneg float %2002
  br label %2004

2004:                                             ; preds = %2001, %1999
  %2005 = phi float [ %2000, %1999 ], [ %2003, %2001 ]
  %2006 = fadd float %1991, %2005
  %2007 = load float, ptr %74, align 4, !tbaa !17
  %2008 = fcmp oge float %2007, 0.000000e+00
  br i1 %2008, label %2009, label %2011

2009:                                             ; preds = %2004
  %2010 = load float, ptr %74, align 4, !tbaa !17
  br label %2014

2011:                                             ; preds = %2004
  %2012 = load float, ptr %74, align 4, !tbaa !17
  %2013 = fneg float %2012
  br label %2014

2014:                                             ; preds = %2011, %2009
  %2015 = phi float [ %2010, %2009 ], [ %2013, %2011 ]
  %2016 = fadd float %2006, %2015
  store float %2016, ptr %55, align 4, !tbaa !17
  %2017 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %2018 = load float, ptr %2017, align 4, !tbaa !11
  %2019 = load float, ptr %55, align 4, !tbaa !17
  %2020 = fdiv float %2018, %2019
  %2021 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2020, ptr %2021, align 4, !tbaa !11
  %2022 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  %2023 = load float, ptr %2022, align 4, !tbaa !14
  %2024 = load float, ptr %55, align 4, !tbaa !17
  %2025 = fdiv float %2023, %2024
  %2026 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2025, ptr %2026, align 4, !tbaa !14
  %2027 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2028 = load float, ptr %2027, align 4, !tbaa !11
  %2029 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %2028, ptr %2029, align 4, !tbaa !11
  %2030 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2031 = load float, ptr %2030, align 4, !tbaa !14
  %2032 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %2031, ptr %2032, align 4, !tbaa !14
  %2033 = load float, ptr %55, align 4, !tbaa !17
  %2034 = load float, ptr %74, align 4, !tbaa !17
  %2035 = fdiv float %2034, %2033
  store float %2035, ptr %74, align 4, !tbaa !17
  %2036 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %2037 = load float, ptr %2036, align 4, !tbaa !11
  %2038 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 0
  %2039 = getelementptr inbounds %struct.complex, ptr %2038, i32 0, i32 0
  store float %2037, ptr %2039, align 16, !tbaa !11
  %2040 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  %2041 = load float, ptr %2040, align 4, !tbaa !14
  %2042 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 0
  %2043 = getelementptr inbounds %struct.complex, ptr %2042, i32 0, i32 1
  store float %2041, ptr %2043, align 4, !tbaa !14
  %2044 = load float, ptr %74, align 4, !tbaa !17
  %2045 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 1
  %2046 = getelementptr inbounds %struct.complex, ptr %2045, i32 0, i32 0
  store float %2044, ptr %2046, align 8, !tbaa !11
  %2047 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 1
  %2048 = getelementptr inbounds %struct.complex, ptr %2047, i32 0, i32 1
  store float 0.000000e+00, ptr %2048, align 4, !tbaa !14
  %2049 = load i32, ptr %54, align 4, !tbaa !9
  %2050 = load i32, ptr %54, align 4, !tbaa !9
  %2051 = sub nsw i32 %2050, 1
  %2052 = load i32, ptr %27, align 4, !tbaa !9
  %2053 = mul nsw i32 %2051, %2052
  %2054 = add nsw i32 %2049, %2053
  store i32 %2054, ptr %33, align 4, !tbaa !9
  %2055 = load ptr, ptr %19, align 8, !tbaa !5
  %2056 = load i32, ptr %33, align 4, !tbaa !9
  %2057 = sext i32 %2056 to i64
  %2058 = getelementptr inbounds %struct.complex, ptr %2055, i64 %2057
  %2059 = getelementptr inbounds %struct.complex, ptr %2058, i32 0, i32 0
  %2060 = load float, ptr %2059, align 4, !tbaa !11
  store float %2060, ptr %72, align 4, !tbaa !17
  %2061 = load float, ptr %72, align 4, !tbaa !17
  %2062 = fcmp oge float %2061, 0.000000e+00
  br i1 %2062, label %2063, label %2065

2063:                                             ; preds = %2014
  %2064 = load float, ptr %72, align 4, !tbaa !17
  br label %2068

2065:                                             ; preds = %2014
  %2066 = load float, ptr %72, align 4, !tbaa !17
  %2067 = fneg float %2066
  br label %2068

2068:                                             ; preds = %2065, %2063
  %2069 = phi float [ %2064, %2063 ], [ %2067, %2065 ]
  %2070 = load float, ptr %74, align 4, !tbaa !17
  %2071 = fcmp oge float %2070, 0.000000e+00
  br i1 %2071, label %2072, label %2074

2072:                                             ; preds = %2068
  %2073 = load float, ptr %74, align 4, !tbaa !17
  br label %2077

2074:                                             ; preds = %2068
  %2075 = load float, ptr %74, align 4, !tbaa !17
  %2076 = fneg float %2075
  br label %2077

2077:                                             ; preds = %2074, %2072
  %2078 = phi float [ %2073, %2072 ], [ %2076, %2074 ]
  %2079 = fmul float %2069, %2078
  %2080 = load float, ptr %87, align 4, !tbaa !17
  %2081 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %2082 = load float, ptr %2081, align 4, !tbaa !11
  store float %2082, ptr %36, align 4, !tbaa !17
  %2083 = load float, ptr %36, align 4, !tbaa !17
  %2084 = fcmp oge float %2083, 0.000000e+00
  br i1 %2084, label %2085, label %2087

2085:                                             ; preds = %2077
  %2086 = load float, ptr %36, align 4, !tbaa !17
  br label %2090

2087:                                             ; preds = %2077
  %2088 = load float, ptr %36, align 4, !tbaa !17
  %2089 = fneg float %2088
  br label %2090

2090:                                             ; preds = %2087, %2085
  %2091 = phi float [ %2086, %2085 ], [ %2089, %2087 ]
  %2092 = call <2 x float> @Cf(ptr noundef %84)
  store <2 x float> %2092, ptr %132, align 4
  %2093 = getelementptr inbounds { float, float }, ptr %132, i32 0, i32 0
  %2094 = load float, ptr %2093, align 4
  %2095 = getelementptr inbounds { float, float }, ptr %132, i32 0, i32 1
  %2096 = load float, ptr %2095, align 4
  store float %2096, ptr %37, align 4, !tbaa !17
  %2097 = load float, ptr %37, align 4, !tbaa !17
  %2098 = fcmp oge float %2097, 0.000000e+00
  br i1 %2098, label %2099, label %2101

2099:                                             ; preds = %2090
  %2100 = load float, ptr %37, align 4, !tbaa !17
  br label %2104

2101:                                             ; preds = %2090
  %2102 = load float, ptr %37, align 4, !tbaa !17
  %2103 = fneg float %2102
  br label %2104

2104:                                             ; preds = %2101, %2099
  %2105 = phi float [ %2100, %2099 ], [ %2103, %2101 ]
  %2106 = fadd float %2091, %2105
  %2107 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 0
  %2108 = load float, ptr %2107, align 4, !tbaa !11
  store float %2108, ptr %38, align 4, !tbaa !17
  %2109 = load float, ptr %38, align 4, !tbaa !17
  %2110 = fcmp oge float %2109, 0.000000e+00
  br i1 %2110, label %2111, label %2113

2111:                                             ; preds = %2104
  %2112 = load float, ptr %38, align 4, !tbaa !17
  br label %2116

2113:                                             ; preds = %2104
  %2114 = load float, ptr %38, align 4, !tbaa !17
  %2115 = fneg float %2114
  br label %2116

2116:                                             ; preds = %2113, %2111
  %2117 = phi float [ %2112, %2111 ], [ %2115, %2113 ]
  %2118 = call <2 x float> @Cf(ptr noundef %73)
  store <2 x float> %2118, ptr %133, align 4
  %2119 = getelementptr inbounds { float, float }, ptr %133, i32 0, i32 0
  %2120 = load float, ptr %2119, align 4
  %2121 = getelementptr inbounds { float, float }, ptr %133, i32 0, i32 1
  %2122 = load float, ptr %2121, align 4
  store float %2122, ptr %39, align 4, !tbaa !17
  %2123 = load float, ptr %39, align 4, !tbaa !17
  %2124 = fcmp oge float %2123, 0.000000e+00
  br i1 %2124, label %2125, label %2127

2125:                                             ; preds = %2116
  %2126 = load float, ptr %39, align 4, !tbaa !17
  br label %2130

2127:                                             ; preds = %2116
  %2128 = load float, ptr %39, align 4, !tbaa !17
  %2129 = fneg float %2128
  br label %2130

2130:                                             ; preds = %2127, %2125
  %2131 = phi float [ %2126, %2125 ], [ %2129, %2127 ]
  %2132 = fadd float %2117, %2131
  %2133 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 0
  %2134 = load float, ptr %2133, align 4, !tbaa !11
  store float %2134, ptr %40, align 4, !tbaa !17
  %2135 = load float, ptr %40, align 4, !tbaa !17
  %2136 = fcmp oge float %2135, 0.000000e+00
  br i1 %2136, label %2137, label %2139

2137:                                             ; preds = %2130
  %2138 = load float, ptr %40, align 4, !tbaa !17
  br label %2142

2139:                                             ; preds = %2130
  %2140 = load float, ptr %40, align 4, !tbaa !17
  %2141 = fneg float %2140
  br label %2142

2142:                                             ; preds = %2139, %2137
  %2143 = phi float [ %2138, %2137 ], [ %2141, %2139 ]
  %2144 = call <2 x float> @Cf(ptr noundef %75)
  store <2 x float> %2144, ptr %134, align 4
  %2145 = getelementptr inbounds { float, float }, ptr %134, i32 0, i32 0
  %2146 = load float, ptr %2145, align 4
  %2147 = getelementptr inbounds { float, float }, ptr %134, i32 0, i32 1
  %2148 = load float, ptr %2147, align 4
  store float %2148, ptr %41, align 4, !tbaa !17
  %2149 = load float, ptr %41, align 4, !tbaa !17
  %2150 = fcmp oge float %2149, 0.000000e+00
  br i1 %2150, label %2151, label %2153

2151:                                             ; preds = %2142
  %2152 = load float, ptr %41, align 4, !tbaa !17
  br label %2156

2153:                                             ; preds = %2142
  %2154 = load float, ptr %41, align 4, !tbaa !17
  %2155 = fneg float %2154
  br label %2156

2156:                                             ; preds = %2153, %2151
  %2157 = phi float [ %2152, %2151 ], [ %2155, %2153 ]
  %2158 = fadd float %2143, %2157
  %2159 = fadd float %2132, %2158
  %2160 = fmul float %2106, %2159
  %2161 = fmul float %2080, %2160
  %2162 = fcmp ole float %2079, %2161
  br i1 %2162, label %2163, label %2164

2163:                                             ; preds = %2156
  br label %2307

2164:                                             ; preds = %2156
  br label %2165

2165:                                             ; preds = %2164
  %2166 = load i32, ptr %54, align 4, !tbaa !9
  %2167 = add nsw i32 %2166, -1
  store i32 %2167, ptr %54, align 4, !tbaa !9
  br label %1906, !llvm.loop !20

2168:                                             ; preds = %1906
  %2169 = load i32, ptr %53, align 4, !tbaa !9
  %2170 = load i32, ptr %53, align 4, !tbaa !9
  %2171 = load i32, ptr %27, align 4, !tbaa !9
  %2172 = mul nsw i32 %2170, %2171
  %2173 = add nsw i32 %2169, %2172
  store i32 %2173, ptr %32, align 4, !tbaa !9
  %2174 = load ptr, ptr %19, align 8, !tbaa !5
  %2175 = load i32, ptr %32, align 4, !tbaa !9
  %2176 = sext i32 %2175 to i64
  %2177 = getelementptr inbounds %struct.complex, ptr %2174, i64 %2176
  %2178 = getelementptr inbounds %struct.complex, ptr %2177, i32 0, i32 0
  %2179 = load float, ptr %2178, align 4, !tbaa !11
  %2180 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 0
  store float %2179, ptr %2180, align 4, !tbaa !11
  %2181 = load ptr, ptr %19, align 8, !tbaa !5
  %2182 = load i32, ptr %32, align 4, !tbaa !9
  %2183 = sext i32 %2182 to i64
  %2184 = getelementptr inbounds %struct.complex, ptr %2181, i64 %2183
  %2185 = getelementptr inbounds %struct.complex, ptr %2184, i32 0, i32 1
  %2186 = load float, ptr %2185, align 4, !tbaa !14
  %2187 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 1
  store float %2186, ptr %2187, align 4, !tbaa !14
  %2188 = load i32, ptr %53, align 4, !tbaa !9
  %2189 = add nsw i32 %2188, 1
  %2190 = load i32, ptr %53, align 4, !tbaa !9
  %2191 = add nsw i32 %2190, 1
  %2192 = load i32, ptr %27, align 4, !tbaa !9
  %2193 = mul nsw i32 %2191, %2192
  %2194 = add nsw i32 %2189, %2193
  store i32 %2194, ptr %32, align 4, !tbaa !9
  %2195 = load ptr, ptr %19, align 8, !tbaa !5
  %2196 = load i32, ptr %32, align 4, !tbaa !9
  %2197 = sext i32 %2196 to i64
  %2198 = getelementptr inbounds %struct.complex, ptr %2195, i64 %2197
  %2199 = getelementptr inbounds %struct.complex, ptr %2198, i32 0, i32 0
  %2200 = load float, ptr %2199, align 4, !tbaa !11
  %2201 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 0
  store float %2200, ptr %2201, align 4, !tbaa !11
  %2202 = load ptr, ptr %19, align 8, !tbaa !5
  %2203 = load i32, ptr %32, align 4, !tbaa !9
  %2204 = sext i32 %2203 to i64
  %2205 = getelementptr inbounds %struct.complex, ptr %2202, i64 %2204
  %2206 = getelementptr inbounds %struct.complex, ptr %2205, i32 0, i32 1
  %2207 = load float, ptr %2206, align 4, !tbaa !14
  %2208 = getelementptr inbounds %struct.complex, ptr %75, i32 0, i32 1
  store float %2207, ptr %2208, align 4, !tbaa !14
  %2209 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 0
  %2210 = load float, ptr %2209, align 4, !tbaa !11
  %2211 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 0
  %2212 = load float, ptr %2211, align 4, !tbaa !11
  %2213 = fsub float %2210, %2212
  %2214 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2213, ptr %2214, align 4, !tbaa !11
  %2215 = getelementptr inbounds %struct.complex, ptr %73, i32 0, i32 1
  %2216 = load float, ptr %2215, align 4, !tbaa !14
  %2217 = getelementptr inbounds %struct.complex, ptr %56, i32 0, i32 1
  %2218 = load float, ptr %2217, align 4, !tbaa !14
  %2219 = fsub float %2216, %2218
  %2220 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2219, ptr %2220, align 4, !tbaa !14
  %2221 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2222 = load float, ptr %2221, align 4, !tbaa !11
  %2223 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %2222, ptr %2223, align 4, !tbaa !11
  %2224 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2225 = load float, ptr %2224, align 4, !tbaa !14
  %2226 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %2225, ptr %2226, align 4, !tbaa !14
  %2227 = load i32, ptr %53, align 4, !tbaa !9
  %2228 = add nsw i32 %2227, 1
  %2229 = load i32, ptr %53, align 4, !tbaa !9
  %2230 = load i32, ptr %27, align 4, !tbaa !9
  %2231 = mul nsw i32 %2229, %2230
  %2232 = add nsw i32 %2228, %2231
  store i32 %2232, ptr %32, align 4, !tbaa !9
  %2233 = load ptr, ptr %19, align 8, !tbaa !5
  %2234 = load i32, ptr %32, align 4, !tbaa !9
  %2235 = sext i32 %2234 to i64
  %2236 = getelementptr inbounds %struct.complex, ptr %2233, i64 %2235
  %2237 = getelementptr inbounds %struct.complex, ptr %2236, i32 0, i32 0
  %2238 = load float, ptr %2237, align 4, !tbaa !11
  store float %2238, ptr %74, align 4, !tbaa !17
  %2239 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %2240 = load float, ptr %2239, align 4, !tbaa !11
  store float %2240, ptr %36, align 4, !tbaa !17
  %2241 = load float, ptr %36, align 4, !tbaa !17
  %2242 = fcmp oge float %2241, 0.000000e+00
  br i1 %2242, label %2243, label %2245

2243:                                             ; preds = %2168
  %2244 = load float, ptr %36, align 4, !tbaa !17
  br label %2248

2245:                                             ; preds = %2168
  %2246 = load float, ptr %36, align 4, !tbaa !17
  %2247 = fneg float %2246
  br label %2248

2248:                                             ; preds = %2245, %2243
  %2249 = phi float [ %2244, %2243 ], [ %2247, %2245 ]
  %2250 = call <2 x float> @Cf(ptr noundef %84)
  store <2 x float> %2250, ptr %135, align 4
  %2251 = getelementptr inbounds { float, float }, ptr %135, i32 0, i32 0
  %2252 = load float, ptr %2251, align 4
  %2253 = getelementptr inbounds { float, float }, ptr %135, i32 0, i32 1
  %2254 = load float, ptr %2253, align 4
  store float %2254, ptr %37, align 4, !tbaa !17
  %2255 = load float, ptr %37, align 4, !tbaa !17
  %2256 = fcmp oge float %2255, 0.000000e+00
  br i1 %2256, label %2257, label %2259

2257:                                             ; preds = %2248
  %2258 = load float, ptr %37, align 4, !tbaa !17
  br label %2262

2259:                                             ; preds = %2248
  %2260 = load float, ptr %37, align 4, !tbaa !17
  %2261 = fneg float %2260
  br label %2262

2262:                                             ; preds = %2259, %2257
  %2263 = phi float [ %2258, %2257 ], [ %2261, %2259 ]
  %2264 = fadd float %2249, %2263
  %2265 = load float, ptr %74, align 4, !tbaa !17
  %2266 = fcmp oge float %2265, 0.000000e+00
  br i1 %2266, label %2267, label %2269

2267:                                             ; preds = %2262
  %2268 = load float, ptr %74, align 4, !tbaa !17
  br label %2272

2269:                                             ; preds = %2262
  %2270 = load float, ptr %74, align 4, !tbaa !17
  %2271 = fneg float %2270
  br label %2272

2272:                                             ; preds = %2269, %2267
  %2273 = phi float [ %2268, %2267 ], [ %2271, %2269 ]
  %2274 = fadd float %2264, %2273
  store float %2274, ptr %55, align 4, !tbaa !17
  %2275 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %2276 = load float, ptr %2275, align 4, !tbaa !11
  %2277 = load float, ptr %55, align 4, !tbaa !17
  %2278 = fdiv float %2276, %2277
  %2279 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2278, ptr %2279, align 4, !tbaa !11
  %2280 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  %2281 = load float, ptr %2280, align 4, !tbaa !14
  %2282 = load float, ptr %55, align 4, !tbaa !17
  %2283 = fdiv float %2281, %2282
  %2284 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2283, ptr %2284, align 4, !tbaa !14
  %2285 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2286 = load float, ptr %2285, align 4, !tbaa !11
  %2287 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  store float %2286, ptr %2287, align 4, !tbaa !11
  %2288 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2289 = load float, ptr %2288, align 4, !tbaa !14
  %2290 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  store float %2289, ptr %2290, align 4, !tbaa !14
  %2291 = load float, ptr %55, align 4, !tbaa !17
  %2292 = load float, ptr %74, align 4, !tbaa !17
  %2293 = fdiv float %2292, %2291
  store float %2293, ptr %74, align 4, !tbaa !17
  %2294 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 0
  %2295 = load float, ptr %2294, align 4, !tbaa !11
  %2296 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 0
  %2297 = getelementptr inbounds %struct.complex, ptr %2296, i32 0, i32 0
  store float %2295, ptr %2297, align 16, !tbaa !11
  %2298 = getelementptr inbounds %struct.complex, ptr %84, i32 0, i32 1
  %2299 = load float, ptr %2298, align 4, !tbaa !14
  %2300 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 0
  %2301 = getelementptr inbounds %struct.complex, ptr %2300, i32 0, i32 1
  store float %2299, ptr %2301, align 4, !tbaa !14
  %2302 = load float, ptr %74, align 4, !tbaa !17
  %2303 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 1
  %2304 = getelementptr inbounds %struct.complex, ptr %2303, i32 0, i32 0
  store float %2302, ptr %2304, align 8, !tbaa !11
  %2305 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 1
  %2306 = getelementptr inbounds %struct.complex, ptr %2305, i32 0, i32 1
  store float 0.000000e+00, ptr %2306, align 4, !tbaa !14
  br label %2307

2307:                                             ; preds = %2272, %2163
  %2308 = load i32, ptr %50, align 4, !tbaa !9
  %2309 = sub nsw i32 %2308, 1
  store i32 %2309, ptr %32, align 4, !tbaa !9
  %2310 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %2310, ptr %52, align 4, !tbaa !9
  br label %2311

2311:                                             ; preds = %3357, %2307
  %2312 = load i32, ptr %52, align 4, !tbaa !9
  %2313 = load i32, ptr %32, align 4, !tbaa !9
  %2314 = icmp sle i32 %2312, %2313
  br i1 %2314, label %2315, label %3360

2315:                                             ; preds = %2311
  %2316 = load i32, ptr %52, align 4, !tbaa !9
  %2317 = load i32, ptr %54, align 4, !tbaa !9
  %2318 = icmp sgt i32 %2316, %2317
  br i1 %2318, label %2319, label %2330

2319:                                             ; preds = %2315
  %2320 = load ptr, ptr %19, align 8, !tbaa !5
  %2321 = load i32, ptr %52, align 4, !tbaa !9
  %2322 = load i32, ptr %52, align 4, !tbaa !9
  %2323 = sub nsw i32 %2322, 1
  %2324 = load i32, ptr %27, align 4, !tbaa !9
  %2325 = mul nsw i32 %2323, %2324
  %2326 = add nsw i32 %2321, %2325
  %2327 = sext i32 %2326 to i64
  %2328 = getelementptr inbounds %struct.complex, ptr %2320, i64 %2327
  %2329 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 0
  call void @ccopy_(ptr noundef @c__2, ptr noundef %2328, ptr noundef @c__1, ptr noundef %2329, ptr noundef @c__1)
  br label %2330

2330:                                             ; preds = %2319, %2315
  %2331 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 0
  %2332 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 1
  call void @clarfg_(ptr noundef @c__2, ptr noundef %2331, ptr noundef %2332, ptr noundef @c__1, ptr noundef %65)
  %2333 = load i32, ptr %52, align 4, !tbaa !9
  %2334 = load i32, ptr %54, align 4, !tbaa !9
  %2335 = icmp sgt i32 %2333, %2334
  br i1 %2335, label %2336, label %2376

2336:                                             ; preds = %2330
  %2337 = load i32, ptr %52, align 4, !tbaa !9
  %2338 = load i32, ptr %52, align 4, !tbaa !9
  %2339 = sub nsw i32 %2338, 1
  %2340 = load i32, ptr %27, align 4, !tbaa !9
  %2341 = mul nsw i32 %2339, %2340
  %2342 = add nsw i32 %2337, %2341
  store i32 %2342, ptr %33, align 4, !tbaa !9
  %2343 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 0
  %2344 = getelementptr inbounds %struct.complex, ptr %2343, i32 0, i32 0
  %2345 = load float, ptr %2344, align 16, !tbaa !11
  %2346 = load ptr, ptr %19, align 8, !tbaa !5
  %2347 = load i32, ptr %33, align 4, !tbaa !9
  %2348 = sext i32 %2347 to i64
  %2349 = getelementptr inbounds %struct.complex, ptr %2346, i64 %2348
  %2350 = getelementptr inbounds %struct.complex, ptr %2349, i32 0, i32 0
  store float %2345, ptr %2350, align 4, !tbaa !11
  %2351 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 0
  %2352 = getelementptr inbounds %struct.complex, ptr %2351, i32 0, i32 1
  %2353 = load float, ptr %2352, align 4, !tbaa !14
  %2354 = load ptr, ptr %19, align 8, !tbaa !5
  %2355 = load i32, ptr %33, align 4, !tbaa !9
  %2356 = sext i32 %2355 to i64
  %2357 = getelementptr inbounds %struct.complex, ptr %2354, i64 %2356
  %2358 = getelementptr inbounds %struct.complex, ptr %2357, i32 0, i32 1
  store float %2353, ptr %2358, align 4, !tbaa !14
  %2359 = load i32, ptr %52, align 4, !tbaa !9
  %2360 = add nsw i32 %2359, 1
  %2361 = load i32, ptr %52, align 4, !tbaa !9
  %2362 = sub nsw i32 %2361, 1
  %2363 = load i32, ptr %27, align 4, !tbaa !9
  %2364 = mul nsw i32 %2362, %2363
  %2365 = add nsw i32 %2360, %2364
  store i32 %2365, ptr %33, align 4, !tbaa !9
  %2366 = load ptr, ptr %19, align 8, !tbaa !5
  %2367 = load i32, ptr %33, align 4, !tbaa !9
  %2368 = sext i32 %2367 to i64
  %2369 = getelementptr inbounds %struct.complex, ptr %2366, i64 %2368
  %2370 = getelementptr inbounds %struct.complex, ptr %2369, i32 0, i32 0
  store float 0.000000e+00, ptr %2370, align 4, !tbaa !11
  %2371 = load ptr, ptr %19, align 8, !tbaa !5
  %2372 = load i32, ptr %33, align 4, !tbaa !9
  %2373 = sext i32 %2372 to i64
  %2374 = getelementptr inbounds %struct.complex, ptr %2371, i64 %2373
  %2375 = getelementptr inbounds %struct.complex, ptr %2374, i32 0, i32 1
  store float 0.000000e+00, ptr %2375, align 4, !tbaa !14
  br label %2376

2376:                                             ; preds = %2336, %2330
  %2377 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 1
  %2378 = getelementptr inbounds %struct.complex, ptr %2377, i32 0, i32 0
  %2379 = load float, ptr %2378, align 8, !tbaa !11
  %2380 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  store float %2379, ptr %2380, align 4, !tbaa !11
  %2381 = getelementptr inbounds [2 x %struct.complex], ptr %58, i64 0, i64 1
  %2382 = getelementptr inbounds %struct.complex, ptr %2381, i32 0, i32 1
  %2383 = load float, ptr %2382, align 4, !tbaa !14
  %2384 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  store float %2383, ptr %2384, align 4, !tbaa !14
  %2385 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2386 = load float, ptr %2385, align 4, !tbaa !11
  %2387 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  %2388 = load float, ptr %2387, align 4, !tbaa !11
  %2389 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2390 = load float, ptr %2389, align 4, !tbaa !14
  %2391 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  %2392 = load float, ptr %2391, align 4, !tbaa !14
  %2393 = fmul float %2390, %2392
  %2394 = fneg float %2393
  %2395 = call float @llvm.fmuladd.f32(float %2386, float %2388, float %2394)
  %2396 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2395, ptr %2396, align 4, !tbaa !11
  %2397 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2398 = load float, ptr %2397, align 4, !tbaa !11
  %2399 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  %2400 = load float, ptr %2399, align 4, !tbaa !14
  %2401 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2402 = load float, ptr %2401, align 4, !tbaa !14
  %2403 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  %2404 = load float, ptr %2403, align 4, !tbaa !11
  %2405 = fmul float %2402, %2404
  %2406 = call float @llvm.fmuladd.f32(float %2398, float %2400, float %2405)
  %2407 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2406, ptr %2407, align 4, !tbaa !14
  %2408 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2409 = load float, ptr %2408, align 4, !tbaa !11
  store float %2409, ptr %66, align 4, !tbaa !17
  %2410 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %2410, ptr %33, align 4, !tbaa !9
  %2411 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %2411, ptr %51, align 4, !tbaa !9
  br label %2412

2412:                                             ; preds = %2625, %2376
  %2413 = load i32, ptr %51, align 4, !tbaa !9
  %2414 = load i32, ptr %33, align 4, !tbaa !9
  %2415 = icmp sle i32 %2413, %2414
  br i1 %2415, label %2416, label %2628

2416:                                             ; preds = %2412
  %2417 = call <2 x float> @Cf(ptr noundef %65)
  store <2 x float> %2417, ptr %136, align 4
  %2418 = getelementptr inbounds { float, float }, ptr %136, i32 0, i32 0
  %2419 = load float, ptr %2418, align 4
  %2420 = getelementptr inbounds { float, float }, ptr %136, i32 0, i32 1
  %2421 = load float, ptr %2420, align 4
  %2422 = fneg float %2421
  %2423 = call ptr @_pCf(ptr noundef %44)
  %2424 = getelementptr inbounds { float, float }, ptr %2423, i32 0, i32 0
  %2425 = getelementptr inbounds { float, float }, ptr %2423, i32 0, i32 1
  store float %2419, ptr %2424, align 4
  store float %2422, ptr %2425, align 4
  %2426 = load i32, ptr %52, align 4, !tbaa !9
  %2427 = load i32, ptr %51, align 4, !tbaa !9
  %2428 = load i32, ptr %27, align 4, !tbaa !9
  %2429 = mul nsw i32 %2427, %2428
  %2430 = add nsw i32 %2426, %2429
  store i32 %2430, ptr %34, align 4, !tbaa !9
  %2431 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2432 = load float, ptr %2431, align 4, !tbaa !11
  %2433 = load ptr, ptr %19, align 8, !tbaa !5
  %2434 = load i32, ptr %34, align 4, !tbaa !9
  %2435 = sext i32 %2434 to i64
  %2436 = getelementptr inbounds %struct.complex, ptr %2433, i64 %2435
  %2437 = getelementptr inbounds %struct.complex, ptr %2436, i32 0, i32 0
  %2438 = load float, ptr %2437, align 4, !tbaa !11
  %2439 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2440 = load float, ptr %2439, align 4, !tbaa !14
  %2441 = load ptr, ptr %19, align 8, !tbaa !5
  %2442 = load i32, ptr %34, align 4, !tbaa !9
  %2443 = sext i32 %2442 to i64
  %2444 = getelementptr inbounds %struct.complex, ptr %2441, i64 %2443
  %2445 = getelementptr inbounds %struct.complex, ptr %2444, i32 0, i32 1
  %2446 = load float, ptr %2445, align 4, !tbaa !14
  %2447 = fmul float %2440, %2446
  %2448 = fneg float %2447
  %2449 = call float @llvm.fmuladd.f32(float %2432, float %2438, float %2448)
  %2450 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %2449, ptr %2450, align 4, !tbaa !11
  %2451 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2452 = load float, ptr %2451, align 4, !tbaa !11
  %2453 = load ptr, ptr %19, align 8, !tbaa !5
  %2454 = load i32, ptr %34, align 4, !tbaa !9
  %2455 = sext i32 %2454 to i64
  %2456 = getelementptr inbounds %struct.complex, ptr %2453, i64 %2455
  %2457 = getelementptr inbounds %struct.complex, ptr %2456, i32 0, i32 1
  %2458 = load float, ptr %2457, align 4, !tbaa !14
  %2459 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2460 = load float, ptr %2459, align 4, !tbaa !14
  %2461 = load ptr, ptr %19, align 8, !tbaa !5
  %2462 = load i32, ptr %34, align 4, !tbaa !9
  %2463 = sext i32 %2462 to i64
  %2464 = getelementptr inbounds %struct.complex, ptr %2461, i64 %2463
  %2465 = getelementptr inbounds %struct.complex, ptr %2464, i32 0, i32 0
  %2466 = load float, ptr %2465, align 4, !tbaa !11
  %2467 = fmul float %2460, %2466
  %2468 = call float @llvm.fmuladd.f32(float %2452, float %2458, float %2467)
  %2469 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %2468, ptr %2469, align 4, !tbaa !14
  %2470 = load i32, ptr %52, align 4, !tbaa !9
  %2471 = add nsw i32 %2470, 1
  %2472 = load i32, ptr %51, align 4, !tbaa !9
  %2473 = load i32, ptr %27, align 4, !tbaa !9
  %2474 = mul nsw i32 %2472, %2473
  %2475 = add nsw i32 %2471, %2474
  store i32 %2475, ptr %35, align 4, !tbaa !9
  %2476 = load float, ptr %66, align 4, !tbaa !17
  %2477 = load ptr, ptr %19, align 8, !tbaa !5
  %2478 = load i32, ptr %35, align 4, !tbaa !9
  %2479 = sext i32 %2478 to i64
  %2480 = getelementptr inbounds %struct.complex, ptr %2477, i64 %2479
  %2481 = getelementptr inbounds %struct.complex, ptr %2480, i32 0, i32 0
  %2482 = load float, ptr %2481, align 4, !tbaa !11
  %2483 = fmul float %2476, %2482
  %2484 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2483, ptr %2484, align 4, !tbaa !11
  %2485 = load float, ptr %66, align 4, !tbaa !17
  %2486 = load ptr, ptr %19, align 8, !tbaa !5
  %2487 = load i32, ptr %35, align 4, !tbaa !9
  %2488 = sext i32 %2487 to i64
  %2489 = getelementptr inbounds %struct.complex, ptr %2486, i64 %2488
  %2490 = getelementptr inbounds %struct.complex, ptr %2489, i32 0, i32 1
  %2491 = load float, ptr %2490, align 4, !tbaa !14
  %2492 = fmul float %2485, %2491
  %2493 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2492, ptr %2493, align 4, !tbaa !14
  %2494 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %2495 = load float, ptr %2494, align 4, !tbaa !11
  %2496 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2497 = load float, ptr %2496, align 4, !tbaa !11
  %2498 = fadd float %2495, %2497
  %2499 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2498, ptr %2499, align 4, !tbaa !11
  %2500 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %2501 = load float, ptr %2500, align 4, !tbaa !14
  %2502 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2503 = load float, ptr %2502, align 4, !tbaa !14
  %2504 = fadd float %2501, %2503
  %2505 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2504, ptr %2505, align 4, !tbaa !14
  %2506 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2507 = load float, ptr %2506, align 4, !tbaa !11
  %2508 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  store float %2507, ptr %2508, align 4, !tbaa !11
  %2509 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2510 = load float, ptr %2509, align 4, !tbaa !14
  %2511 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  store float %2510, ptr %2511, align 4, !tbaa !14
  %2512 = load i32, ptr %52, align 4, !tbaa !9
  %2513 = load i32, ptr %51, align 4, !tbaa !9
  %2514 = load i32, ptr %27, align 4, !tbaa !9
  %2515 = mul nsw i32 %2513, %2514
  %2516 = add nsw i32 %2512, %2515
  store i32 %2516, ptr %34, align 4, !tbaa !9
  %2517 = load i32, ptr %52, align 4, !tbaa !9
  %2518 = load i32, ptr %51, align 4, !tbaa !9
  %2519 = load i32, ptr %27, align 4, !tbaa !9
  %2520 = mul nsw i32 %2518, %2519
  %2521 = add nsw i32 %2517, %2520
  store i32 %2521, ptr %35, align 4, !tbaa !9
  %2522 = load ptr, ptr %19, align 8, !tbaa !5
  %2523 = load i32, ptr %35, align 4, !tbaa !9
  %2524 = sext i32 %2523 to i64
  %2525 = getelementptr inbounds %struct.complex, ptr %2522, i64 %2524
  %2526 = getelementptr inbounds %struct.complex, ptr %2525, i32 0, i32 0
  %2527 = load float, ptr %2526, align 4, !tbaa !11
  %2528 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %2529 = load float, ptr %2528, align 4, !tbaa !11
  %2530 = fsub float %2527, %2529
  %2531 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2530, ptr %2531, align 4, !tbaa !11
  %2532 = load ptr, ptr %19, align 8, !tbaa !5
  %2533 = load i32, ptr %35, align 4, !tbaa !9
  %2534 = sext i32 %2533 to i64
  %2535 = getelementptr inbounds %struct.complex, ptr %2532, i64 %2534
  %2536 = getelementptr inbounds %struct.complex, ptr %2535, i32 0, i32 1
  %2537 = load float, ptr %2536, align 4, !tbaa !14
  %2538 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %2539 = load float, ptr %2538, align 4, !tbaa !14
  %2540 = fsub float %2537, %2539
  %2541 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2540, ptr %2541, align 4, !tbaa !14
  %2542 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2543 = load float, ptr %2542, align 4, !tbaa !11
  %2544 = load ptr, ptr %19, align 8, !tbaa !5
  %2545 = load i32, ptr %34, align 4, !tbaa !9
  %2546 = sext i32 %2545 to i64
  %2547 = getelementptr inbounds %struct.complex, ptr %2544, i64 %2546
  %2548 = getelementptr inbounds %struct.complex, ptr %2547, i32 0, i32 0
  store float %2543, ptr %2548, align 4, !tbaa !11
  %2549 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2550 = load float, ptr %2549, align 4, !tbaa !14
  %2551 = load ptr, ptr %19, align 8, !tbaa !5
  %2552 = load i32, ptr %34, align 4, !tbaa !9
  %2553 = sext i32 %2552 to i64
  %2554 = getelementptr inbounds %struct.complex, ptr %2551, i64 %2553
  %2555 = getelementptr inbounds %struct.complex, ptr %2554, i32 0, i32 1
  store float %2550, ptr %2555, align 4, !tbaa !14
  %2556 = load i32, ptr %52, align 4, !tbaa !9
  %2557 = add nsw i32 %2556, 1
  %2558 = load i32, ptr %51, align 4, !tbaa !9
  %2559 = load i32, ptr %27, align 4, !tbaa !9
  %2560 = mul nsw i32 %2558, %2559
  %2561 = add nsw i32 %2557, %2560
  store i32 %2561, ptr %34, align 4, !tbaa !9
  %2562 = load i32, ptr %52, align 4, !tbaa !9
  %2563 = add nsw i32 %2562, 1
  %2564 = load i32, ptr %51, align 4, !tbaa !9
  %2565 = load i32, ptr %27, align 4, !tbaa !9
  %2566 = mul nsw i32 %2564, %2565
  %2567 = add nsw i32 %2563, %2566
  store i32 %2567, ptr %35, align 4, !tbaa !9
  %2568 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %2569 = load float, ptr %2568, align 4, !tbaa !11
  %2570 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  %2571 = load float, ptr %2570, align 4, !tbaa !11
  %2572 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %2573 = load float, ptr %2572, align 4, !tbaa !14
  %2574 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  %2575 = load float, ptr %2574, align 4, !tbaa !14
  %2576 = fmul float %2573, %2575
  %2577 = fneg float %2576
  %2578 = call float @llvm.fmuladd.f32(float %2569, float %2571, float %2577)
  %2579 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %2578, ptr %2579, align 4, !tbaa !11
  %2580 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %2581 = load float, ptr %2580, align 4, !tbaa !11
  %2582 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 1
  %2583 = load float, ptr %2582, align 4, !tbaa !14
  %2584 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %2585 = load float, ptr %2584, align 4, !tbaa !14
  %2586 = getelementptr inbounds %struct.complex, ptr %67, i32 0, i32 0
  %2587 = load float, ptr %2586, align 4, !tbaa !11
  %2588 = fmul float %2585, %2587
  %2589 = call float @llvm.fmuladd.f32(float %2581, float %2583, float %2588)
  %2590 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %2589, ptr %2590, align 4, !tbaa !14
  %2591 = load ptr, ptr %19, align 8, !tbaa !5
  %2592 = load i32, ptr %35, align 4, !tbaa !9
  %2593 = sext i32 %2592 to i64
  %2594 = getelementptr inbounds %struct.complex, ptr %2591, i64 %2593
  %2595 = getelementptr inbounds %struct.complex, ptr %2594, i32 0, i32 0
  %2596 = load float, ptr %2595, align 4, !tbaa !11
  %2597 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %2598 = load float, ptr %2597, align 4, !tbaa !11
  %2599 = fsub float %2596, %2598
  %2600 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2599, ptr %2600, align 4, !tbaa !11
  %2601 = load ptr, ptr %19, align 8, !tbaa !5
  %2602 = load i32, ptr %35, align 4, !tbaa !9
  %2603 = sext i32 %2602 to i64
  %2604 = getelementptr inbounds %struct.complex, ptr %2601, i64 %2603
  %2605 = getelementptr inbounds %struct.complex, ptr %2604, i32 0, i32 1
  %2606 = load float, ptr %2605, align 4, !tbaa !14
  %2607 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %2608 = load float, ptr %2607, align 4, !tbaa !14
  %2609 = fsub float %2606, %2608
  %2610 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2609, ptr %2610, align 4, !tbaa !14
  %2611 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2612 = load float, ptr %2611, align 4, !tbaa !11
  %2613 = load ptr, ptr %19, align 8, !tbaa !5
  %2614 = load i32, ptr %34, align 4, !tbaa !9
  %2615 = sext i32 %2614 to i64
  %2616 = getelementptr inbounds %struct.complex, ptr %2613, i64 %2615
  %2617 = getelementptr inbounds %struct.complex, ptr %2616, i32 0, i32 0
  store float %2612, ptr %2617, align 4, !tbaa !11
  %2618 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2619 = load float, ptr %2618, align 4, !tbaa !14
  %2620 = load ptr, ptr %19, align 8, !tbaa !5
  %2621 = load i32, ptr %34, align 4, !tbaa !9
  %2622 = sext i32 %2621 to i64
  %2623 = getelementptr inbounds %struct.complex, ptr %2620, i64 %2622
  %2624 = getelementptr inbounds %struct.complex, ptr %2623, i32 0, i32 1
  store float %2619, ptr %2624, align 4, !tbaa !14
  br label %2625

2625:                                             ; preds = %2416
  %2626 = load i32, ptr %51, align 4, !tbaa !9
  %2627 = add nsw i32 %2626, 1
  store i32 %2627, ptr %51, align 4, !tbaa !9
  br label %2412, !llvm.loop !21

2628:                                             ; preds = %2412
  %2629 = load i32, ptr %52, align 4, !tbaa !9
  %2630 = add nsw i32 %2629, 2
  store i32 %2630, ptr %34, align 4, !tbaa !9
  %2631 = load i32, ptr %34, align 4, !tbaa !9
  %2632 = load i32, ptr %50, align 4, !tbaa !9
  %2633 = icmp sle i32 %2631, %2632
  br i1 %2633, label %2634, label %2636

2634:                                             ; preds = %2628
  %2635 = load i32, ptr %34, align 4, !tbaa !9
  br label %2638

2636:                                             ; preds = %2628
  %2637 = load i32, ptr %50, align 4, !tbaa !9
  br label %2638

2638:                                             ; preds = %2636, %2634
  %2639 = phi i32 [ %2635, %2634 ], [ %2637, %2636 ]
  store i32 %2639, ptr %33, align 4, !tbaa !9
  %2640 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %2640, ptr %51, align 4, !tbaa !9
  br label %2641

2641:                                             ; preds = %2854, %2638
  %2642 = load i32, ptr %51, align 4, !tbaa !9
  %2643 = load i32, ptr %33, align 4, !tbaa !9
  %2644 = icmp sle i32 %2642, %2643
  br i1 %2644, label %2645, label %2857

2645:                                             ; preds = %2641
  %2646 = load i32, ptr %51, align 4, !tbaa !9
  %2647 = load i32, ptr %52, align 4, !tbaa !9
  %2648 = load i32, ptr %27, align 4, !tbaa !9
  %2649 = mul nsw i32 %2647, %2648
  %2650 = add nsw i32 %2646, %2649
  store i32 %2650, ptr %34, align 4, !tbaa !9
  %2651 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2652 = load float, ptr %2651, align 4, !tbaa !11
  %2653 = load ptr, ptr %19, align 8, !tbaa !5
  %2654 = load i32, ptr %34, align 4, !tbaa !9
  %2655 = sext i32 %2654 to i64
  %2656 = getelementptr inbounds %struct.complex, ptr %2653, i64 %2655
  %2657 = getelementptr inbounds %struct.complex, ptr %2656, i32 0, i32 0
  %2658 = load float, ptr %2657, align 4, !tbaa !11
  %2659 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2660 = load float, ptr %2659, align 4, !tbaa !14
  %2661 = load ptr, ptr %19, align 8, !tbaa !5
  %2662 = load i32, ptr %34, align 4, !tbaa !9
  %2663 = sext i32 %2662 to i64
  %2664 = getelementptr inbounds %struct.complex, ptr %2661, i64 %2663
  %2665 = getelementptr inbounds %struct.complex, ptr %2664, i32 0, i32 1
  %2666 = load float, ptr %2665, align 4, !tbaa !14
  %2667 = fmul float %2660, %2666
  %2668 = fneg float %2667
  %2669 = call float @llvm.fmuladd.f32(float %2652, float %2658, float %2668)
  %2670 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %2669, ptr %2670, align 4, !tbaa !11
  %2671 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2672 = load float, ptr %2671, align 4, !tbaa !11
  %2673 = load ptr, ptr %19, align 8, !tbaa !5
  %2674 = load i32, ptr %34, align 4, !tbaa !9
  %2675 = sext i32 %2674 to i64
  %2676 = getelementptr inbounds %struct.complex, ptr %2673, i64 %2675
  %2677 = getelementptr inbounds %struct.complex, ptr %2676, i32 0, i32 1
  %2678 = load float, ptr %2677, align 4, !tbaa !14
  %2679 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2680 = load float, ptr %2679, align 4, !tbaa !14
  %2681 = load ptr, ptr %19, align 8, !tbaa !5
  %2682 = load i32, ptr %34, align 4, !tbaa !9
  %2683 = sext i32 %2682 to i64
  %2684 = getelementptr inbounds %struct.complex, ptr %2681, i64 %2683
  %2685 = getelementptr inbounds %struct.complex, ptr %2684, i32 0, i32 0
  %2686 = load float, ptr %2685, align 4, !tbaa !11
  %2687 = fmul float %2680, %2686
  %2688 = call float @llvm.fmuladd.f32(float %2672, float %2678, float %2687)
  %2689 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %2688, ptr %2689, align 4, !tbaa !14
  %2690 = load i32, ptr %51, align 4, !tbaa !9
  %2691 = load i32, ptr %52, align 4, !tbaa !9
  %2692 = add nsw i32 %2691, 1
  %2693 = load i32, ptr %27, align 4, !tbaa !9
  %2694 = mul nsw i32 %2692, %2693
  %2695 = add nsw i32 %2690, %2694
  store i32 %2695, ptr %35, align 4, !tbaa !9
  %2696 = load float, ptr %66, align 4, !tbaa !17
  %2697 = load ptr, ptr %19, align 8, !tbaa !5
  %2698 = load i32, ptr %35, align 4, !tbaa !9
  %2699 = sext i32 %2698 to i64
  %2700 = getelementptr inbounds %struct.complex, ptr %2697, i64 %2699
  %2701 = getelementptr inbounds %struct.complex, ptr %2700, i32 0, i32 0
  %2702 = load float, ptr %2701, align 4, !tbaa !11
  %2703 = fmul float %2696, %2702
  %2704 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %2703, ptr %2704, align 4, !tbaa !11
  %2705 = load float, ptr %66, align 4, !tbaa !17
  %2706 = load ptr, ptr %19, align 8, !tbaa !5
  %2707 = load i32, ptr %35, align 4, !tbaa !9
  %2708 = sext i32 %2707 to i64
  %2709 = getelementptr inbounds %struct.complex, ptr %2706, i64 %2708
  %2710 = getelementptr inbounds %struct.complex, ptr %2709, i32 0, i32 1
  %2711 = load float, ptr %2710, align 4, !tbaa !14
  %2712 = fmul float %2705, %2711
  %2713 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %2712, ptr %2713, align 4, !tbaa !14
  %2714 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %2715 = load float, ptr %2714, align 4, !tbaa !11
  %2716 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2717 = load float, ptr %2716, align 4, !tbaa !11
  %2718 = fadd float %2715, %2717
  %2719 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2718, ptr %2719, align 4, !tbaa !11
  %2720 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %2721 = load float, ptr %2720, align 4, !tbaa !14
  %2722 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2723 = load float, ptr %2722, align 4, !tbaa !14
  %2724 = fadd float %2721, %2723
  %2725 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2724, ptr %2725, align 4, !tbaa !14
  %2726 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2727 = load float, ptr %2726, align 4, !tbaa !11
  %2728 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  store float %2727, ptr %2728, align 4, !tbaa !11
  %2729 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2730 = load float, ptr %2729, align 4, !tbaa !14
  %2731 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  store float %2730, ptr %2731, align 4, !tbaa !14
  %2732 = load i32, ptr %51, align 4, !tbaa !9
  %2733 = load i32, ptr %52, align 4, !tbaa !9
  %2734 = load i32, ptr %27, align 4, !tbaa !9
  %2735 = mul nsw i32 %2733, %2734
  %2736 = add nsw i32 %2732, %2735
  store i32 %2736, ptr %34, align 4, !tbaa !9
  %2737 = load i32, ptr %51, align 4, !tbaa !9
  %2738 = load i32, ptr %52, align 4, !tbaa !9
  %2739 = load i32, ptr %27, align 4, !tbaa !9
  %2740 = mul nsw i32 %2738, %2739
  %2741 = add nsw i32 %2737, %2740
  store i32 %2741, ptr %35, align 4, !tbaa !9
  %2742 = load ptr, ptr %19, align 8, !tbaa !5
  %2743 = load i32, ptr %35, align 4, !tbaa !9
  %2744 = sext i32 %2743 to i64
  %2745 = getelementptr inbounds %struct.complex, ptr %2742, i64 %2744
  %2746 = getelementptr inbounds %struct.complex, ptr %2745, i32 0, i32 0
  %2747 = load float, ptr %2746, align 4, !tbaa !11
  %2748 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %2749 = load float, ptr %2748, align 4, !tbaa !11
  %2750 = fsub float %2747, %2749
  %2751 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2750, ptr %2751, align 4, !tbaa !11
  %2752 = load ptr, ptr %19, align 8, !tbaa !5
  %2753 = load i32, ptr %35, align 4, !tbaa !9
  %2754 = sext i32 %2753 to i64
  %2755 = getelementptr inbounds %struct.complex, ptr %2752, i64 %2754
  %2756 = getelementptr inbounds %struct.complex, ptr %2755, i32 0, i32 1
  %2757 = load float, ptr %2756, align 4, !tbaa !14
  %2758 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %2759 = load float, ptr %2758, align 4, !tbaa !14
  %2760 = fsub float %2757, %2759
  %2761 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2760, ptr %2761, align 4, !tbaa !14
  %2762 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2763 = load float, ptr %2762, align 4, !tbaa !11
  %2764 = load ptr, ptr %19, align 8, !tbaa !5
  %2765 = load i32, ptr %34, align 4, !tbaa !9
  %2766 = sext i32 %2765 to i64
  %2767 = getelementptr inbounds %struct.complex, ptr %2764, i64 %2766
  %2768 = getelementptr inbounds %struct.complex, ptr %2767, i32 0, i32 0
  store float %2763, ptr %2768, align 4, !tbaa !11
  %2769 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2770 = load float, ptr %2769, align 4, !tbaa !14
  %2771 = load ptr, ptr %19, align 8, !tbaa !5
  %2772 = load i32, ptr %34, align 4, !tbaa !9
  %2773 = sext i32 %2772 to i64
  %2774 = getelementptr inbounds %struct.complex, ptr %2771, i64 %2773
  %2775 = getelementptr inbounds %struct.complex, ptr %2774, i32 0, i32 1
  store float %2770, ptr %2775, align 4, !tbaa !14
  %2776 = load i32, ptr %51, align 4, !tbaa !9
  %2777 = load i32, ptr %52, align 4, !tbaa !9
  %2778 = add nsw i32 %2777, 1
  %2779 = load i32, ptr %27, align 4, !tbaa !9
  %2780 = mul nsw i32 %2778, %2779
  %2781 = add nsw i32 %2776, %2780
  store i32 %2781, ptr %34, align 4, !tbaa !9
  %2782 = load i32, ptr %51, align 4, !tbaa !9
  %2783 = load i32, ptr %52, align 4, !tbaa !9
  %2784 = add nsw i32 %2783, 1
  %2785 = load i32, ptr %27, align 4, !tbaa !9
  %2786 = mul nsw i32 %2784, %2785
  %2787 = add nsw i32 %2782, %2786
  store i32 %2787, ptr %35, align 4, !tbaa !9
  %2788 = call <2 x float> @Cf(ptr noundef %67)
  store <2 x float> %2788, ptr %137, align 4
  %2789 = getelementptr inbounds { float, float }, ptr %137, i32 0, i32 0
  %2790 = load float, ptr %2789, align 4
  %2791 = getelementptr inbounds { float, float }, ptr %137, i32 0, i32 1
  %2792 = load float, ptr %2791, align 4
  %2793 = fneg float %2792
  %2794 = call ptr @_pCf(ptr noundef %44)
  %2795 = getelementptr inbounds { float, float }, ptr %2794, i32 0, i32 0
  %2796 = getelementptr inbounds { float, float }, ptr %2794, i32 0, i32 1
  store float %2790, ptr %2795, align 4
  store float %2793, ptr %2796, align 4
  %2797 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %2798 = load float, ptr %2797, align 4, !tbaa !11
  %2799 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2800 = load float, ptr %2799, align 4, !tbaa !11
  %2801 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %2802 = load float, ptr %2801, align 4, !tbaa !14
  %2803 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2804 = load float, ptr %2803, align 4, !tbaa !14
  %2805 = fmul float %2802, %2804
  %2806 = fneg float %2805
  %2807 = call float @llvm.fmuladd.f32(float %2798, float %2800, float %2806)
  %2808 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %2807, ptr %2808, align 4, !tbaa !11
  %2809 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %2810 = load float, ptr %2809, align 4, !tbaa !11
  %2811 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2812 = load float, ptr %2811, align 4, !tbaa !14
  %2813 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %2814 = load float, ptr %2813, align 4, !tbaa !14
  %2815 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2816 = load float, ptr %2815, align 4, !tbaa !11
  %2817 = fmul float %2814, %2816
  %2818 = call float @llvm.fmuladd.f32(float %2810, float %2812, float %2817)
  %2819 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %2818, ptr %2819, align 4, !tbaa !14
  %2820 = load ptr, ptr %19, align 8, !tbaa !5
  %2821 = load i32, ptr %35, align 4, !tbaa !9
  %2822 = sext i32 %2821 to i64
  %2823 = getelementptr inbounds %struct.complex, ptr %2820, i64 %2822
  %2824 = getelementptr inbounds %struct.complex, ptr %2823, i32 0, i32 0
  %2825 = load float, ptr %2824, align 4, !tbaa !11
  %2826 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %2827 = load float, ptr %2826, align 4, !tbaa !11
  %2828 = fsub float %2825, %2827
  %2829 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2828, ptr %2829, align 4, !tbaa !11
  %2830 = load ptr, ptr %19, align 8, !tbaa !5
  %2831 = load i32, ptr %35, align 4, !tbaa !9
  %2832 = sext i32 %2831 to i64
  %2833 = getelementptr inbounds %struct.complex, ptr %2830, i64 %2832
  %2834 = getelementptr inbounds %struct.complex, ptr %2833, i32 0, i32 1
  %2835 = load float, ptr %2834, align 4, !tbaa !14
  %2836 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %2837 = load float, ptr %2836, align 4, !tbaa !14
  %2838 = fsub float %2835, %2837
  %2839 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2838, ptr %2839, align 4, !tbaa !14
  %2840 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2841 = load float, ptr %2840, align 4, !tbaa !11
  %2842 = load ptr, ptr %19, align 8, !tbaa !5
  %2843 = load i32, ptr %34, align 4, !tbaa !9
  %2844 = sext i32 %2843 to i64
  %2845 = getelementptr inbounds %struct.complex, ptr %2842, i64 %2844
  %2846 = getelementptr inbounds %struct.complex, ptr %2845, i32 0, i32 0
  store float %2841, ptr %2846, align 4, !tbaa !11
  %2847 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2848 = load float, ptr %2847, align 4, !tbaa !14
  %2849 = load ptr, ptr %19, align 8, !tbaa !5
  %2850 = load i32, ptr %34, align 4, !tbaa !9
  %2851 = sext i32 %2850 to i64
  %2852 = getelementptr inbounds %struct.complex, ptr %2849, i64 %2851
  %2853 = getelementptr inbounds %struct.complex, ptr %2852, i32 0, i32 1
  store float %2848, ptr %2853, align 4, !tbaa !14
  br label %2854

2854:                                             ; preds = %2645
  %2855 = load i32, ptr %51, align 4, !tbaa !9
  %2856 = add nsw i32 %2855, 1
  store i32 %2856, ptr %51, align 4, !tbaa !9
  br label %2641, !llvm.loop !22

2857:                                             ; preds = %2641
  %2858 = load ptr, ptr %15, align 8, !tbaa !5
  %2859 = load i32, ptr %2858, align 4, !tbaa !9
  %2860 = icmp ne i32 %2859, 0
  br i1 %2860, label %2861, label %3083

2861:                                             ; preds = %2857
  %2862 = load ptr, ptr %23, align 8, !tbaa !5
  %2863 = load i32, ptr %2862, align 4, !tbaa !9
  store i32 %2863, ptr %33, align 4, !tbaa !9
  %2864 = load ptr, ptr %22, align 8, !tbaa !5
  %2865 = load i32, ptr %2864, align 4, !tbaa !9
  store i32 %2865, ptr %51, align 4, !tbaa !9
  br label %2866

2866:                                             ; preds = %3079, %2861
  %2867 = load i32, ptr %51, align 4, !tbaa !9
  %2868 = load i32, ptr %33, align 4, !tbaa !9
  %2869 = icmp sle i32 %2867, %2868
  br i1 %2869, label %2870, label %3082

2870:                                             ; preds = %2866
  %2871 = load i32, ptr %51, align 4, !tbaa !9
  %2872 = load i32, ptr %52, align 4, !tbaa !9
  %2873 = load i32, ptr %29, align 4, !tbaa !9
  %2874 = mul nsw i32 %2872, %2873
  %2875 = add nsw i32 %2871, %2874
  store i32 %2875, ptr %34, align 4, !tbaa !9
  %2876 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2877 = load float, ptr %2876, align 4, !tbaa !11
  %2878 = load ptr, ptr %24, align 8, !tbaa !5
  %2879 = load i32, ptr %34, align 4, !tbaa !9
  %2880 = sext i32 %2879 to i64
  %2881 = getelementptr inbounds %struct.complex, ptr %2878, i64 %2880
  %2882 = getelementptr inbounds %struct.complex, ptr %2881, i32 0, i32 0
  %2883 = load float, ptr %2882, align 4, !tbaa !11
  %2884 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2885 = load float, ptr %2884, align 4, !tbaa !14
  %2886 = load ptr, ptr %24, align 8, !tbaa !5
  %2887 = load i32, ptr %34, align 4, !tbaa !9
  %2888 = sext i32 %2887 to i64
  %2889 = getelementptr inbounds %struct.complex, ptr %2886, i64 %2888
  %2890 = getelementptr inbounds %struct.complex, ptr %2889, i32 0, i32 1
  %2891 = load float, ptr %2890, align 4, !tbaa !14
  %2892 = fmul float %2885, %2891
  %2893 = fneg float %2892
  %2894 = call float @llvm.fmuladd.f32(float %2877, float %2883, float %2893)
  %2895 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %2894, ptr %2895, align 4, !tbaa !11
  %2896 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %2897 = load float, ptr %2896, align 4, !tbaa !11
  %2898 = load ptr, ptr %24, align 8, !tbaa !5
  %2899 = load i32, ptr %34, align 4, !tbaa !9
  %2900 = sext i32 %2899 to i64
  %2901 = getelementptr inbounds %struct.complex, ptr %2898, i64 %2900
  %2902 = getelementptr inbounds %struct.complex, ptr %2901, i32 0, i32 1
  %2903 = load float, ptr %2902, align 4, !tbaa !14
  %2904 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %2905 = load float, ptr %2904, align 4, !tbaa !14
  %2906 = load ptr, ptr %24, align 8, !tbaa !5
  %2907 = load i32, ptr %34, align 4, !tbaa !9
  %2908 = sext i32 %2907 to i64
  %2909 = getelementptr inbounds %struct.complex, ptr %2906, i64 %2908
  %2910 = getelementptr inbounds %struct.complex, ptr %2909, i32 0, i32 0
  %2911 = load float, ptr %2910, align 4, !tbaa !11
  %2912 = fmul float %2905, %2911
  %2913 = call float @llvm.fmuladd.f32(float %2897, float %2903, float %2912)
  %2914 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %2913, ptr %2914, align 4, !tbaa !14
  %2915 = load i32, ptr %51, align 4, !tbaa !9
  %2916 = load i32, ptr %52, align 4, !tbaa !9
  %2917 = add nsw i32 %2916, 1
  %2918 = load i32, ptr %29, align 4, !tbaa !9
  %2919 = mul nsw i32 %2917, %2918
  %2920 = add nsw i32 %2915, %2919
  store i32 %2920, ptr %35, align 4, !tbaa !9
  %2921 = load float, ptr %66, align 4, !tbaa !17
  %2922 = load ptr, ptr %24, align 8, !tbaa !5
  %2923 = load i32, ptr %35, align 4, !tbaa !9
  %2924 = sext i32 %2923 to i64
  %2925 = getelementptr inbounds %struct.complex, ptr %2922, i64 %2924
  %2926 = getelementptr inbounds %struct.complex, ptr %2925, i32 0, i32 0
  %2927 = load float, ptr %2926, align 4, !tbaa !11
  %2928 = fmul float %2921, %2927
  %2929 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %2928, ptr %2929, align 4, !tbaa !11
  %2930 = load float, ptr %66, align 4, !tbaa !17
  %2931 = load ptr, ptr %24, align 8, !tbaa !5
  %2932 = load i32, ptr %35, align 4, !tbaa !9
  %2933 = sext i32 %2932 to i64
  %2934 = getelementptr inbounds %struct.complex, ptr %2931, i64 %2933
  %2935 = getelementptr inbounds %struct.complex, ptr %2934, i32 0, i32 1
  %2936 = load float, ptr %2935, align 4, !tbaa !14
  %2937 = fmul float %2930, %2936
  %2938 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %2937, ptr %2938, align 4, !tbaa !14
  %2939 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %2940 = load float, ptr %2939, align 4, !tbaa !11
  %2941 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2942 = load float, ptr %2941, align 4, !tbaa !11
  %2943 = fadd float %2940, %2942
  %2944 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2943, ptr %2944, align 4, !tbaa !11
  %2945 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %2946 = load float, ptr %2945, align 4, !tbaa !14
  %2947 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2948 = load float, ptr %2947, align 4, !tbaa !14
  %2949 = fadd float %2946, %2948
  %2950 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2949, ptr %2950, align 4, !tbaa !14
  %2951 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2952 = load float, ptr %2951, align 4, !tbaa !11
  %2953 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  store float %2952, ptr %2953, align 4, !tbaa !11
  %2954 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2955 = load float, ptr %2954, align 4, !tbaa !14
  %2956 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  store float %2955, ptr %2956, align 4, !tbaa !14
  %2957 = load i32, ptr %51, align 4, !tbaa !9
  %2958 = load i32, ptr %52, align 4, !tbaa !9
  %2959 = load i32, ptr %29, align 4, !tbaa !9
  %2960 = mul nsw i32 %2958, %2959
  %2961 = add nsw i32 %2957, %2960
  store i32 %2961, ptr %34, align 4, !tbaa !9
  %2962 = load i32, ptr %51, align 4, !tbaa !9
  %2963 = load i32, ptr %52, align 4, !tbaa !9
  %2964 = load i32, ptr %29, align 4, !tbaa !9
  %2965 = mul nsw i32 %2963, %2964
  %2966 = add nsw i32 %2962, %2965
  store i32 %2966, ptr %35, align 4, !tbaa !9
  %2967 = load ptr, ptr %24, align 8, !tbaa !5
  %2968 = load i32, ptr %35, align 4, !tbaa !9
  %2969 = sext i32 %2968 to i64
  %2970 = getelementptr inbounds %struct.complex, ptr %2967, i64 %2969
  %2971 = getelementptr inbounds %struct.complex, ptr %2970, i32 0, i32 0
  %2972 = load float, ptr %2971, align 4, !tbaa !11
  %2973 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %2974 = load float, ptr %2973, align 4, !tbaa !11
  %2975 = fsub float %2972, %2974
  %2976 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2975, ptr %2976, align 4, !tbaa !11
  %2977 = load ptr, ptr %24, align 8, !tbaa !5
  %2978 = load i32, ptr %35, align 4, !tbaa !9
  %2979 = sext i32 %2978 to i64
  %2980 = getelementptr inbounds %struct.complex, ptr %2977, i64 %2979
  %2981 = getelementptr inbounds %struct.complex, ptr %2980, i32 0, i32 1
  %2982 = load float, ptr %2981, align 4, !tbaa !14
  %2983 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %2984 = load float, ptr %2983, align 4, !tbaa !14
  %2985 = fsub float %2982, %2984
  %2986 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2985, ptr %2986, align 4, !tbaa !14
  %2987 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2988 = load float, ptr %2987, align 4, !tbaa !11
  %2989 = load ptr, ptr %24, align 8, !tbaa !5
  %2990 = load i32, ptr %34, align 4, !tbaa !9
  %2991 = sext i32 %2990 to i64
  %2992 = getelementptr inbounds %struct.complex, ptr %2989, i64 %2991
  %2993 = getelementptr inbounds %struct.complex, ptr %2992, i32 0, i32 0
  store float %2988, ptr %2993, align 4, !tbaa !11
  %2994 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2995 = load float, ptr %2994, align 4, !tbaa !14
  %2996 = load ptr, ptr %24, align 8, !tbaa !5
  %2997 = load i32, ptr %34, align 4, !tbaa !9
  %2998 = sext i32 %2997 to i64
  %2999 = getelementptr inbounds %struct.complex, ptr %2996, i64 %2998
  %3000 = getelementptr inbounds %struct.complex, ptr %2999, i32 0, i32 1
  store float %2995, ptr %3000, align 4, !tbaa !14
  %3001 = load i32, ptr %51, align 4, !tbaa !9
  %3002 = load i32, ptr %52, align 4, !tbaa !9
  %3003 = add nsw i32 %3002, 1
  %3004 = load i32, ptr %29, align 4, !tbaa !9
  %3005 = mul nsw i32 %3003, %3004
  %3006 = add nsw i32 %3001, %3005
  store i32 %3006, ptr %34, align 4, !tbaa !9
  %3007 = load i32, ptr %51, align 4, !tbaa !9
  %3008 = load i32, ptr %52, align 4, !tbaa !9
  %3009 = add nsw i32 %3008, 1
  %3010 = load i32, ptr %29, align 4, !tbaa !9
  %3011 = mul nsw i32 %3009, %3010
  %3012 = add nsw i32 %3007, %3011
  store i32 %3012, ptr %35, align 4, !tbaa !9
  %3013 = call <2 x float> @Cf(ptr noundef %67)
  store <2 x float> %3013, ptr %138, align 4
  %3014 = getelementptr inbounds { float, float }, ptr %138, i32 0, i32 0
  %3015 = load float, ptr %3014, align 4
  %3016 = getelementptr inbounds { float, float }, ptr %138, i32 0, i32 1
  %3017 = load float, ptr %3016, align 4
  %3018 = fneg float %3017
  %3019 = call ptr @_pCf(ptr noundef %44)
  %3020 = getelementptr inbounds { float, float }, ptr %3019, i32 0, i32 0
  %3021 = getelementptr inbounds { float, float }, ptr %3019, i32 0, i32 1
  store float %3015, ptr %3020, align 4
  store float %3018, ptr %3021, align 4
  %3022 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %3023 = load float, ptr %3022, align 4, !tbaa !11
  %3024 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %3025 = load float, ptr %3024, align 4, !tbaa !11
  %3026 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %3027 = load float, ptr %3026, align 4, !tbaa !14
  %3028 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %3029 = load float, ptr %3028, align 4, !tbaa !14
  %3030 = fmul float %3027, %3029
  %3031 = fneg float %3030
  %3032 = call float @llvm.fmuladd.f32(float %3023, float %3025, float %3031)
  %3033 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %3032, ptr %3033, align 4, !tbaa !11
  %3034 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 0
  %3035 = load float, ptr %3034, align 4, !tbaa !11
  %3036 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %3037 = load float, ptr %3036, align 4, !tbaa !14
  %3038 = getelementptr inbounds %struct.complex, ptr %88, i32 0, i32 1
  %3039 = load float, ptr %3038, align 4, !tbaa !14
  %3040 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %3041 = load float, ptr %3040, align 4, !tbaa !11
  %3042 = fmul float %3039, %3041
  %3043 = call float @llvm.fmuladd.f32(float %3035, float %3037, float %3042)
  %3044 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %3043, ptr %3044, align 4, !tbaa !14
  %3045 = load ptr, ptr %24, align 8, !tbaa !5
  %3046 = load i32, ptr %35, align 4, !tbaa !9
  %3047 = sext i32 %3046 to i64
  %3048 = getelementptr inbounds %struct.complex, ptr %3045, i64 %3047
  %3049 = getelementptr inbounds %struct.complex, ptr %3048, i32 0, i32 0
  %3050 = load float, ptr %3049, align 4, !tbaa !11
  %3051 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %3052 = load float, ptr %3051, align 4, !tbaa !11
  %3053 = fsub float %3050, %3052
  %3054 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %3053, ptr %3054, align 4, !tbaa !11
  %3055 = load ptr, ptr %24, align 8, !tbaa !5
  %3056 = load i32, ptr %35, align 4, !tbaa !9
  %3057 = sext i32 %3056 to i64
  %3058 = getelementptr inbounds %struct.complex, ptr %3055, i64 %3057
  %3059 = getelementptr inbounds %struct.complex, ptr %3058, i32 0, i32 1
  %3060 = load float, ptr %3059, align 4, !tbaa !14
  %3061 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %3062 = load float, ptr %3061, align 4, !tbaa !14
  %3063 = fsub float %3060, %3062
  %3064 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %3063, ptr %3064, align 4, !tbaa !14
  %3065 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3066 = load float, ptr %3065, align 4, !tbaa !11
  %3067 = load ptr, ptr %24, align 8, !tbaa !5
  %3068 = load i32, ptr %34, align 4, !tbaa !9
  %3069 = sext i32 %3068 to i64
  %3070 = getelementptr inbounds %struct.complex, ptr %3067, i64 %3069
  %3071 = getelementptr inbounds %struct.complex, ptr %3070, i32 0, i32 0
  store float %3066, ptr %3071, align 4, !tbaa !11
  %3072 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3073 = load float, ptr %3072, align 4, !tbaa !14
  %3074 = load ptr, ptr %24, align 8, !tbaa !5
  %3075 = load i32, ptr %34, align 4, !tbaa !9
  %3076 = sext i32 %3075 to i64
  %3077 = getelementptr inbounds %struct.complex, ptr %3074, i64 %3076
  %3078 = getelementptr inbounds %struct.complex, ptr %3077, i32 0, i32 1
  store float %3073, ptr %3078, align 4, !tbaa !14
  br label %3079

3079:                                             ; preds = %2870
  %3080 = load i32, ptr %51, align 4, !tbaa !9
  %3081 = add nsw i32 %3080, 1
  store i32 %3081, ptr %51, align 4, !tbaa !9
  br label %2866, !llvm.loop !23

3082:                                             ; preds = %2866
  br label %3083

3083:                                             ; preds = %3082, %2857
  %3084 = load i32, ptr %52, align 4, !tbaa !9
  %3085 = load i32, ptr %54, align 4, !tbaa !9
  %3086 = icmp eq i32 %3084, %3085
  br i1 %3086, label %3087, label %3356

3087:                                             ; preds = %3083
  %3088 = load i32, ptr %54, align 4, !tbaa !9
  %3089 = load i32, ptr %53, align 4, !tbaa !9
  %3090 = icmp sgt i32 %3088, %3089
  br i1 %3090, label %3091, label %3356

3091:                                             ; preds = %3087
  %3092 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 0
  %3093 = load float, ptr %3092, align 4, !tbaa !11
  %3094 = fsub float 1.000000e+00, %3093
  %3095 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %3094, ptr %3095, align 4, !tbaa !11
  %3096 = getelementptr inbounds %struct.complex, ptr %65, i32 0, i32 1
  %3097 = load float, ptr %3096, align 4, !tbaa !14
  %3098 = fsub float 0.000000e+00, %3097
  %3099 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %3098, ptr %3099, align 4, !tbaa !14
  %3100 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3101 = load float, ptr %3100, align 4, !tbaa !11
  %3102 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %3101, ptr %3102, align 4, !tbaa !11
  %3103 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3104 = load float, ptr %3103, align 4, !tbaa !14
  %3105 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %3104, ptr %3105, align 4, !tbaa !14
  %3106 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3106, ptr %139, align 4
  %3107 = getelementptr inbounds { float, float }, ptr %139, i32 0, i32 0
  %3108 = load float, ptr %3107, align 4
  %3109 = getelementptr inbounds { float, float }, ptr %139, i32 0, i32 1
  %3110 = load float, ptr %3109, align 4
  %3111 = getelementptr inbounds { float, float }, ptr %140, i32 0, i32 0
  %3112 = getelementptr inbounds { float, float }, ptr %140, i32 0, i32 1
  store float %3108, ptr %3111, align 4
  store float %3110, ptr %3112, align 4
  %3113 = load <2 x float>, ptr %140, align 4
  %3114 = call float @cabsf(<2 x float> noundef %3113) #7
  store float %3114, ptr %36, align 4, !tbaa !17
  %3115 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %3116 = load float, ptr %3115, align 4, !tbaa !11
  %3117 = load float, ptr %36, align 4, !tbaa !17
  %3118 = fdiv float %3116, %3117
  %3119 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %3118, ptr %3119, align 4, !tbaa !11
  %3120 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %3121 = load float, ptr %3120, align 4, !tbaa !14
  %3122 = load float, ptr %36, align 4, !tbaa !17
  %3123 = fdiv float %3121, %3122
  %3124 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %3123, ptr %3124, align 4, !tbaa !14
  %3125 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3126 = load float, ptr %3125, align 4, !tbaa !11
  %3127 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %3126, ptr %3127, align 4, !tbaa !11
  %3128 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3129 = load float, ptr %3128, align 4, !tbaa !14
  %3130 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %3129, ptr %3130, align 4, !tbaa !14
  %3131 = load i32, ptr %54, align 4, !tbaa !9
  %3132 = add nsw i32 %3131, 1
  %3133 = load i32, ptr %54, align 4, !tbaa !9
  %3134 = load i32, ptr %27, align 4, !tbaa !9
  %3135 = mul nsw i32 %3133, %3134
  %3136 = add nsw i32 %3132, %3135
  store i32 %3136, ptr %33, align 4, !tbaa !9
  %3137 = load i32, ptr %54, align 4, !tbaa !9
  %3138 = add nsw i32 %3137, 1
  %3139 = load i32, ptr %54, align 4, !tbaa !9
  %3140 = load i32, ptr %27, align 4, !tbaa !9
  %3141 = mul nsw i32 %3139, %3140
  %3142 = add nsw i32 %3138, %3141
  store i32 %3142, ptr %34, align 4, !tbaa !9
  %3143 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3143, ptr %141, align 4
  %3144 = getelementptr inbounds { float, float }, ptr %141, i32 0, i32 0
  %3145 = load float, ptr %3144, align 4
  %3146 = getelementptr inbounds { float, float }, ptr %141, i32 0, i32 1
  %3147 = load float, ptr %3146, align 4
  %3148 = fneg float %3147
  %3149 = call ptr @_pCf(ptr noundef %43)
  %3150 = getelementptr inbounds { float, float }, ptr %3149, i32 0, i32 0
  %3151 = getelementptr inbounds { float, float }, ptr %3149, i32 0, i32 1
  store float %3145, ptr %3150, align 4
  store float %3148, ptr %3151, align 4
  %3152 = load ptr, ptr %19, align 8, !tbaa !5
  %3153 = load i32, ptr %34, align 4, !tbaa !9
  %3154 = sext i32 %3153 to i64
  %3155 = getelementptr inbounds %struct.complex, ptr %3152, i64 %3154
  %3156 = getelementptr inbounds %struct.complex, ptr %3155, i32 0, i32 0
  %3157 = load float, ptr %3156, align 4, !tbaa !11
  %3158 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %3159 = load float, ptr %3158, align 4, !tbaa !11
  %3160 = load ptr, ptr %19, align 8, !tbaa !5
  %3161 = load i32, ptr %34, align 4, !tbaa !9
  %3162 = sext i32 %3161 to i64
  %3163 = getelementptr inbounds %struct.complex, ptr %3160, i64 %3162
  %3164 = getelementptr inbounds %struct.complex, ptr %3163, i32 0, i32 1
  %3165 = load float, ptr %3164, align 4, !tbaa !14
  %3166 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %3167 = load float, ptr %3166, align 4, !tbaa !14
  %3168 = fmul float %3165, %3167
  %3169 = fneg float %3168
  %3170 = call float @llvm.fmuladd.f32(float %3157, float %3159, float %3169)
  %3171 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %3170, ptr %3171, align 4, !tbaa !11
  %3172 = load ptr, ptr %19, align 8, !tbaa !5
  %3173 = load i32, ptr %34, align 4, !tbaa !9
  %3174 = sext i32 %3173 to i64
  %3175 = getelementptr inbounds %struct.complex, ptr %3172, i64 %3174
  %3176 = getelementptr inbounds %struct.complex, ptr %3175, i32 0, i32 0
  %3177 = load float, ptr %3176, align 4, !tbaa !11
  %3178 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %3179 = load float, ptr %3178, align 4, !tbaa !14
  %3180 = load ptr, ptr %19, align 8, !tbaa !5
  %3181 = load i32, ptr %34, align 4, !tbaa !9
  %3182 = sext i32 %3181 to i64
  %3183 = getelementptr inbounds %struct.complex, ptr %3180, i64 %3182
  %3184 = getelementptr inbounds %struct.complex, ptr %3183, i32 0, i32 1
  %3185 = load float, ptr %3184, align 4, !tbaa !14
  %3186 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %3187 = load float, ptr %3186, align 4, !tbaa !11
  %3188 = fmul float %3185, %3187
  %3189 = call float @llvm.fmuladd.f32(float %3177, float %3179, float %3188)
  %3190 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %3189, ptr %3190, align 4, !tbaa !14
  %3191 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3192 = load float, ptr %3191, align 4, !tbaa !11
  %3193 = load ptr, ptr %19, align 8, !tbaa !5
  %3194 = load i32, ptr %33, align 4, !tbaa !9
  %3195 = sext i32 %3194 to i64
  %3196 = getelementptr inbounds %struct.complex, ptr %3193, i64 %3195
  %3197 = getelementptr inbounds %struct.complex, ptr %3196, i32 0, i32 0
  store float %3192, ptr %3197, align 4, !tbaa !11
  %3198 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3199 = load float, ptr %3198, align 4, !tbaa !14
  %3200 = load ptr, ptr %19, align 8, !tbaa !5
  %3201 = load i32, ptr %33, align 4, !tbaa !9
  %3202 = sext i32 %3201 to i64
  %3203 = getelementptr inbounds %struct.complex, ptr %3200, i64 %3202
  %3204 = getelementptr inbounds %struct.complex, ptr %3203, i32 0, i32 1
  store float %3199, ptr %3204, align 4, !tbaa !14
  %3205 = load i32, ptr %54, align 4, !tbaa !9
  %3206 = add nsw i32 %3205, 2
  %3207 = load i32, ptr %50, align 4, !tbaa !9
  %3208 = icmp sle i32 %3206, %3207
  br i1 %3208, label %3209, label %3277

3209:                                             ; preds = %3091
  %3210 = load i32, ptr %54, align 4, !tbaa !9
  %3211 = add nsw i32 %3210, 2
  %3212 = load i32, ptr %54, align 4, !tbaa !9
  %3213 = add nsw i32 %3212, 1
  %3214 = load i32, ptr %27, align 4, !tbaa !9
  %3215 = mul nsw i32 %3213, %3214
  %3216 = add nsw i32 %3211, %3215
  store i32 %3216, ptr %33, align 4, !tbaa !9
  %3217 = load i32, ptr %54, align 4, !tbaa !9
  %3218 = add nsw i32 %3217, 2
  %3219 = load i32, ptr %54, align 4, !tbaa !9
  %3220 = add nsw i32 %3219, 1
  %3221 = load i32, ptr %27, align 4, !tbaa !9
  %3222 = mul nsw i32 %3220, %3221
  %3223 = add nsw i32 %3218, %3222
  store i32 %3223, ptr %34, align 4, !tbaa !9
  %3224 = load ptr, ptr %19, align 8, !tbaa !5
  %3225 = load i32, ptr %34, align 4, !tbaa !9
  %3226 = sext i32 %3225 to i64
  %3227 = getelementptr inbounds %struct.complex, ptr %3224, i64 %3226
  %3228 = getelementptr inbounds %struct.complex, ptr %3227, i32 0, i32 0
  %3229 = load float, ptr %3228, align 4, !tbaa !11
  %3230 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %3231 = load float, ptr %3230, align 4, !tbaa !11
  %3232 = load ptr, ptr %19, align 8, !tbaa !5
  %3233 = load i32, ptr %34, align 4, !tbaa !9
  %3234 = sext i32 %3233 to i64
  %3235 = getelementptr inbounds %struct.complex, ptr %3232, i64 %3234
  %3236 = getelementptr inbounds %struct.complex, ptr %3235, i32 0, i32 1
  %3237 = load float, ptr %3236, align 4, !tbaa !14
  %3238 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %3239 = load float, ptr %3238, align 4, !tbaa !14
  %3240 = fmul float %3237, %3239
  %3241 = fneg float %3240
  %3242 = call float @llvm.fmuladd.f32(float %3229, float %3231, float %3241)
  %3243 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %3242, ptr %3243, align 4, !tbaa !11
  %3244 = load ptr, ptr %19, align 8, !tbaa !5
  %3245 = load i32, ptr %34, align 4, !tbaa !9
  %3246 = sext i32 %3245 to i64
  %3247 = getelementptr inbounds %struct.complex, ptr %3244, i64 %3246
  %3248 = getelementptr inbounds %struct.complex, ptr %3247, i32 0, i32 0
  %3249 = load float, ptr %3248, align 4, !tbaa !11
  %3250 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %3251 = load float, ptr %3250, align 4, !tbaa !14
  %3252 = load ptr, ptr %19, align 8, !tbaa !5
  %3253 = load i32, ptr %34, align 4, !tbaa !9
  %3254 = sext i32 %3253 to i64
  %3255 = getelementptr inbounds %struct.complex, ptr %3252, i64 %3254
  %3256 = getelementptr inbounds %struct.complex, ptr %3255, i32 0, i32 1
  %3257 = load float, ptr %3256, align 4, !tbaa !14
  %3258 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %3259 = load float, ptr %3258, align 4, !tbaa !11
  %3260 = fmul float %3257, %3259
  %3261 = call float @llvm.fmuladd.f32(float %3249, float %3251, float %3260)
  %3262 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %3261, ptr %3262, align 4, !tbaa !14
  %3263 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3264 = load float, ptr %3263, align 4, !tbaa !11
  %3265 = load ptr, ptr %19, align 8, !tbaa !5
  %3266 = load i32, ptr %33, align 4, !tbaa !9
  %3267 = sext i32 %3266 to i64
  %3268 = getelementptr inbounds %struct.complex, ptr %3265, i64 %3267
  %3269 = getelementptr inbounds %struct.complex, ptr %3268, i32 0, i32 0
  store float %3264, ptr %3269, align 4, !tbaa !11
  %3270 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3271 = load float, ptr %3270, align 4, !tbaa !14
  %3272 = load ptr, ptr %19, align 8, !tbaa !5
  %3273 = load i32, ptr %33, align 4, !tbaa !9
  %3274 = sext i32 %3273 to i64
  %3275 = getelementptr inbounds %struct.complex, ptr %3272, i64 %3274
  %3276 = getelementptr inbounds %struct.complex, ptr %3275, i32 0, i32 1
  store float %3271, ptr %3276, align 4, !tbaa !14
  br label %3277

3277:                                             ; preds = %3209, %3091
  %3278 = load i32, ptr %50, align 4, !tbaa !9
  store i32 %3278, ptr %33, align 4, !tbaa !9
  %3279 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %3279, ptr %51, align 4, !tbaa !9
  br label %3280

3280:                                             ; preds = %3352, %3277
  %3281 = load i32, ptr %51, align 4, !tbaa !9
  %3282 = load i32, ptr %33, align 4, !tbaa !9
  %3283 = icmp sle i32 %3281, %3282
  br i1 %3283, label %3284, label %3355

3284:                                             ; preds = %3280
  %3285 = load i32, ptr %51, align 4, !tbaa !9
  %3286 = load i32, ptr %54, align 4, !tbaa !9
  %3287 = add nsw i32 %3286, 1
  %3288 = icmp ne i32 %3285, %3287
  br i1 %3288, label %3289, label %3351

3289:                                             ; preds = %3284
  %3290 = load i32, ptr %64, align 4, !tbaa !9
  %3291 = load i32, ptr %51, align 4, !tbaa !9
  %3292 = icmp sgt i32 %3290, %3291
  br i1 %3292, label %3293, label %3307

3293:                                             ; preds = %3289
  %3294 = load i32, ptr %64, align 4, !tbaa !9
  %3295 = load i32, ptr %51, align 4, !tbaa !9
  %3296 = sub nsw i32 %3294, %3295
  store i32 %3296, ptr %34, align 4, !tbaa !9
  %3297 = load ptr, ptr %19, align 8, !tbaa !5
  %3298 = load i32, ptr %51, align 4, !tbaa !9
  %3299 = load i32, ptr %51, align 4, !tbaa !9
  %3300 = add nsw i32 %3299, 1
  %3301 = load i32, ptr %27, align 4, !tbaa !9
  %3302 = mul nsw i32 %3300, %3301
  %3303 = add nsw i32 %3298, %3302
  %3304 = sext i32 %3303 to i64
  %3305 = getelementptr inbounds %struct.complex, ptr %3297, i64 %3304
  %3306 = load ptr, ptr %20, align 8, !tbaa !5
  call void @cscal_(ptr noundef %34, ptr noundef %49, ptr noundef %3305, ptr noundef %3306)
  br label %3307

3307:                                             ; preds = %3293, %3289
  %3308 = load i32, ptr %51, align 4, !tbaa !9
  %3309 = load i32, ptr %63, align 4, !tbaa !9
  %3310 = sub nsw i32 %3308, %3309
  store i32 %3310, ptr %34, align 4, !tbaa !9
  %3311 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3311, ptr %142, align 4
  %3312 = getelementptr inbounds { float, float }, ptr %142, i32 0, i32 0
  %3313 = load float, ptr %3312, align 4
  %3314 = getelementptr inbounds { float, float }, ptr %142, i32 0, i32 1
  %3315 = load float, ptr %3314, align 4
  %3316 = fneg float %3315
  %3317 = call ptr @_pCf(ptr noundef %42)
  %3318 = getelementptr inbounds { float, float }, ptr %3317, i32 0, i32 0
  %3319 = getelementptr inbounds { float, float }, ptr %3317, i32 0, i32 1
  store float %3313, ptr %3318, align 4
  store float %3316, ptr %3319, align 4
  %3320 = load ptr, ptr %19, align 8, !tbaa !5
  %3321 = load i32, ptr %63, align 4, !tbaa !9
  %3322 = load i32, ptr %51, align 4, !tbaa !9
  %3323 = load i32, ptr %27, align 4, !tbaa !9
  %3324 = mul nsw i32 %3322, %3323
  %3325 = add nsw i32 %3321, %3324
  %3326 = sext i32 %3325 to i64
  %3327 = getelementptr inbounds %struct.complex, ptr %3320, i64 %3326
  call void @cscal_(ptr noundef %34, ptr noundef %42, ptr noundef %3327, ptr noundef @c__1)
  %3328 = load ptr, ptr %15, align 8, !tbaa !5
  %3329 = load i32, ptr %3328, align 4, !tbaa !9
  %3330 = icmp ne i32 %3329, 0
  br i1 %3330, label %3331, label %3350

3331:                                             ; preds = %3307
  %3332 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3332, ptr %143, align 4
  %3333 = getelementptr inbounds { float, float }, ptr %143, i32 0, i32 0
  %3334 = load float, ptr %3333, align 4
  %3335 = getelementptr inbounds { float, float }, ptr %143, i32 0, i32 1
  %3336 = load float, ptr %3335, align 4
  %3337 = fneg float %3336
  %3338 = call ptr @_pCf(ptr noundef %42)
  %3339 = getelementptr inbounds { float, float }, ptr %3338, i32 0, i32 0
  %3340 = getelementptr inbounds { float, float }, ptr %3338, i32 0, i32 1
  store float %3334, ptr %3339, align 4
  store float %3337, ptr %3340, align 4
  %3341 = load ptr, ptr %24, align 8, !tbaa !5
  %3342 = load ptr, ptr %22, align 8, !tbaa !5
  %3343 = load i32, ptr %3342, align 4, !tbaa !9
  %3344 = load i32, ptr %51, align 4, !tbaa !9
  %3345 = load i32, ptr %29, align 4, !tbaa !9
  %3346 = mul nsw i32 %3344, %3345
  %3347 = add nsw i32 %3343, %3346
  %3348 = sext i32 %3347 to i64
  %3349 = getelementptr inbounds %struct.complex, ptr %3341, i64 %3348
  call void @cscal_(ptr noundef %78, ptr noundef %42, ptr noundef %3349, ptr noundef @c__1)
  br label %3350

3350:                                             ; preds = %3331, %3307
  br label %3351

3351:                                             ; preds = %3350, %3284
  br label %3352

3352:                                             ; preds = %3351
  %3353 = load i32, ptr %51, align 4, !tbaa !9
  %3354 = add nsw i32 %3353, 1
  store i32 %3354, ptr %51, align 4, !tbaa !9
  br label %3280, !llvm.loop !24

3355:                                             ; preds = %3280
  br label %3356

3356:                                             ; preds = %3355, %3087, %3083
  br label %3357

3357:                                             ; preds = %3356
  %3358 = load i32, ptr %52, align 4, !tbaa !9
  %3359 = add nsw i32 %3358, 1
  store i32 %3359, ptr %52, align 4, !tbaa !9
  br label %2311, !llvm.loop !25

3360:                                             ; preds = %2311
  %3361 = load i32, ptr %50, align 4, !tbaa !9
  %3362 = load i32, ptr %50, align 4, !tbaa !9
  %3363 = sub nsw i32 %3362, 1
  %3364 = load i32, ptr %27, align 4, !tbaa !9
  %3365 = mul nsw i32 %3363, %3364
  %3366 = add nsw i32 %3361, %3365
  store i32 %3366, ptr %32, align 4, !tbaa !9
  %3367 = load ptr, ptr %19, align 8, !tbaa !5
  %3368 = load i32, ptr %32, align 4, !tbaa !9
  %3369 = sext i32 %3368 to i64
  %3370 = getelementptr inbounds %struct.complex, ptr %3367, i64 %3369
  %3371 = getelementptr inbounds %struct.complex, ptr %3370, i32 0, i32 0
  %3372 = load float, ptr %3371, align 4, !tbaa !11
  %3373 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %3372, ptr %3373, align 4, !tbaa !11
  %3374 = load ptr, ptr %19, align 8, !tbaa !5
  %3375 = load i32, ptr %32, align 4, !tbaa !9
  %3376 = sext i32 %3375 to i64
  %3377 = getelementptr inbounds %struct.complex, ptr %3374, i64 %3376
  %3378 = getelementptr inbounds %struct.complex, ptr %3377, i32 0, i32 1
  %3379 = load float, ptr %3378, align 4, !tbaa !14
  %3380 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %3379, ptr %3380, align 4, !tbaa !14
  %3381 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3381, ptr %144, align 4
  %3382 = getelementptr inbounds { float, float }, ptr %144, i32 0, i32 0
  %3383 = load float, ptr %3382, align 4
  %3384 = getelementptr inbounds { float, float }, ptr %144, i32 0, i32 1
  %3385 = load float, ptr %3384, align 4
  %3386 = fcmp une float %3385, 0.000000e+00
  br i1 %3386, label %3387, label %3482

3387:                                             ; preds = %3360
  %3388 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3388, ptr %145, align 4
  %3389 = getelementptr inbounds { float, float }, ptr %145, i32 0, i32 0
  %3390 = load float, ptr %3389, align 4
  %3391 = getelementptr inbounds { float, float }, ptr %145, i32 0, i32 1
  %3392 = load float, ptr %3391, align 4
  %3393 = getelementptr inbounds { float, float }, ptr %146, i32 0, i32 0
  %3394 = getelementptr inbounds { float, float }, ptr %146, i32 0, i32 1
  store float %3390, ptr %3393, align 4
  store float %3392, ptr %3394, align 4
  %3395 = load <2 x float>, ptr %146, align 4
  %3396 = call float @cabsf(<2 x float> noundef %3395) #7
  store float %3396, ptr %62, align 4, !tbaa !17
  %3397 = load i32, ptr %50, align 4, !tbaa !9
  %3398 = load i32, ptr %50, align 4, !tbaa !9
  %3399 = sub nsw i32 %3398, 1
  %3400 = load i32, ptr %27, align 4, !tbaa !9
  %3401 = mul nsw i32 %3399, %3400
  %3402 = add nsw i32 %3397, %3401
  store i32 %3402, ptr %32, align 4, !tbaa !9
  %3403 = load float, ptr %62, align 4, !tbaa !17
  %3404 = load ptr, ptr %19, align 8, !tbaa !5
  %3405 = load i32, ptr %32, align 4, !tbaa !9
  %3406 = sext i32 %3405 to i64
  %3407 = getelementptr inbounds %struct.complex, ptr %3404, i64 %3406
  %3408 = getelementptr inbounds %struct.complex, ptr %3407, i32 0, i32 0
  store float %3403, ptr %3408, align 4, !tbaa !11
  %3409 = load ptr, ptr %19, align 8, !tbaa !5
  %3410 = load i32, ptr %32, align 4, !tbaa !9
  %3411 = sext i32 %3410 to i64
  %3412 = getelementptr inbounds %struct.complex, ptr %3409, i64 %3411
  %3413 = getelementptr inbounds %struct.complex, ptr %3412, i32 0, i32 1
  store float 0.000000e+00, ptr %3413, align 4, !tbaa !14
  %3414 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %3415 = load float, ptr %3414, align 4, !tbaa !11
  %3416 = load float, ptr %62, align 4, !tbaa !17
  %3417 = fdiv float %3415, %3416
  %3418 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %3417, ptr %3418, align 4, !tbaa !11
  %3419 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %3420 = load float, ptr %3419, align 4, !tbaa !14
  %3421 = load float, ptr %62, align 4, !tbaa !17
  %3422 = fdiv float %3420, %3421
  %3423 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %3422, ptr %3423, align 4, !tbaa !14
  %3424 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3425 = load float, ptr %3424, align 4, !tbaa !11
  %3426 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %3425, ptr %3426, align 4, !tbaa !11
  %3427 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3428 = load float, ptr %3427, align 4, !tbaa !14
  %3429 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %3428, ptr %3429, align 4, !tbaa !14
  %3430 = load i32, ptr %64, align 4, !tbaa !9
  %3431 = load i32, ptr %50, align 4, !tbaa !9
  %3432 = icmp sgt i32 %3430, %3431
  br i1 %3432, label %3433, label %3456

3433:                                             ; preds = %3387
  %3434 = load i32, ptr %64, align 4, !tbaa !9
  %3435 = load i32, ptr %50, align 4, !tbaa !9
  %3436 = sub nsw i32 %3434, %3435
  store i32 %3436, ptr %32, align 4, !tbaa !9
  %3437 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %3437, ptr %147, align 4
  %3438 = getelementptr inbounds { float, float }, ptr %147, i32 0, i32 0
  %3439 = load float, ptr %3438, align 4
  %3440 = getelementptr inbounds { float, float }, ptr %147, i32 0, i32 1
  %3441 = load float, ptr %3440, align 4
  %3442 = fneg float %3441
  %3443 = call ptr @_pCf(ptr noundef %42)
  %3444 = getelementptr inbounds { float, float }, ptr %3443, i32 0, i32 0
  %3445 = getelementptr inbounds { float, float }, ptr %3443, i32 0, i32 1
  store float %3439, ptr %3444, align 4
  store float %3442, ptr %3445, align 4
  %3446 = load ptr, ptr %19, align 8, !tbaa !5
  %3447 = load i32, ptr %50, align 4, !tbaa !9
  %3448 = load i32, ptr %50, align 4, !tbaa !9
  %3449 = add nsw i32 %3448, 1
  %3450 = load i32, ptr %27, align 4, !tbaa !9
  %3451 = mul nsw i32 %3449, %3450
  %3452 = add nsw i32 %3447, %3451
  %3453 = sext i32 %3452 to i64
  %3454 = getelementptr inbounds %struct.complex, ptr %3446, i64 %3453
  %3455 = load ptr, ptr %20, align 8, !tbaa !5
  call void @cscal_(ptr noundef %32, ptr noundef %42, ptr noundef %3454, ptr noundef %3455)
  br label %3456

3456:                                             ; preds = %3433, %3387
  %3457 = load i32, ptr %50, align 4, !tbaa !9
  %3458 = load i32, ptr %63, align 4, !tbaa !9
  %3459 = sub nsw i32 %3457, %3458
  store i32 %3459, ptr %32, align 4, !tbaa !9
  %3460 = load ptr, ptr %19, align 8, !tbaa !5
  %3461 = load i32, ptr %63, align 4, !tbaa !9
  %3462 = load i32, ptr %50, align 4, !tbaa !9
  %3463 = load i32, ptr %27, align 4, !tbaa !9
  %3464 = mul nsw i32 %3462, %3463
  %3465 = add nsw i32 %3461, %3464
  %3466 = sext i32 %3465 to i64
  %3467 = getelementptr inbounds %struct.complex, ptr %3460, i64 %3466
  call void @cscal_(ptr noundef %32, ptr noundef %49, ptr noundef %3467, ptr noundef @c__1)
  %3468 = load ptr, ptr %15, align 8, !tbaa !5
  %3469 = load i32, ptr %3468, align 4, !tbaa !9
  %3470 = icmp ne i32 %3469, 0
  br i1 %3470, label %3471, label %3481

3471:                                             ; preds = %3456
  %3472 = load ptr, ptr %24, align 8, !tbaa !5
  %3473 = load ptr, ptr %22, align 8, !tbaa !5
  %3474 = load i32, ptr %3473, align 4, !tbaa !9
  %3475 = load i32, ptr %50, align 4, !tbaa !9
  %3476 = load i32, ptr %29, align 4, !tbaa !9
  %3477 = mul nsw i32 %3475, %3476
  %3478 = add nsw i32 %3474, %3477
  %3479 = sext i32 %3478 to i64
  %3480 = getelementptr inbounds %struct.complex, ptr %3472, i64 %3479
  call void @cscal_(ptr noundef %78, ptr noundef %49, ptr noundef %3480, ptr noundef @c__1)
  br label %3481

3481:                                             ; preds = %3471, %3456
  br label %3482

3482:                                             ; preds = %3481, %3360
  br label %3483

3483:                                             ; preds = %3482
  %3484 = load i32, ptr %86, align 4, !tbaa !9
  %3485 = add nsw i32 %3484, 1
  store i32 %3485, ptr %86, align 4, !tbaa !9
  br label %596, !llvm.loop !26

3486:                                             ; preds = %596
  %3487 = load i32, ptr %50, align 4, !tbaa !9
  %3488 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 %3487, ptr %3488, align 4, !tbaa !9
  store i32 1, ptr %90, align 4
  br label %3521

3489:                                             ; preds = %1346
  %3490 = load i32, ptr %50, align 4, !tbaa !9
  store i32 %3490, ptr %31, align 4, !tbaa !9
  %3491 = load i32, ptr %50, align 4, !tbaa !9
  %3492 = load i32, ptr %50, align 4, !tbaa !9
  %3493 = load i32, ptr %27, align 4, !tbaa !9
  %3494 = mul nsw i32 %3492, %3493
  %3495 = add nsw i32 %3491, %3494
  store i32 %3495, ptr %32, align 4, !tbaa !9
  %3496 = load ptr, ptr %19, align 8, !tbaa !5
  %3497 = load i32, ptr %32, align 4, !tbaa !9
  %3498 = sext i32 %3497 to i64
  %3499 = getelementptr inbounds %struct.complex, ptr %3496, i64 %3498
  %3500 = getelementptr inbounds %struct.complex, ptr %3499, i32 0, i32 0
  %3501 = load float, ptr %3500, align 4, !tbaa !11
  %3502 = load ptr, ptr %21, align 8, !tbaa !5
  %3503 = load i32, ptr %31, align 4, !tbaa !9
  %3504 = sext i32 %3503 to i64
  %3505 = getelementptr inbounds %struct.complex, ptr %3502, i64 %3504
  %3506 = getelementptr inbounds %struct.complex, ptr %3505, i32 0, i32 0
  store float %3501, ptr %3506, align 4, !tbaa !11
  %3507 = load ptr, ptr %19, align 8, !tbaa !5
  %3508 = load i32, ptr %32, align 4, !tbaa !9
  %3509 = sext i32 %3508 to i64
  %3510 = getelementptr inbounds %struct.complex, ptr %3507, i64 %3509
  %3511 = getelementptr inbounds %struct.complex, ptr %3510, i32 0, i32 1
  %3512 = load float, ptr %3511, align 4, !tbaa !14
  %3513 = load ptr, ptr %21, align 8, !tbaa !5
  %3514 = load i32, ptr %31, align 4, !tbaa !9
  %3515 = sext i32 %3514 to i64
  %3516 = getelementptr inbounds %struct.complex, ptr %3513, i64 %3515
  %3517 = getelementptr inbounds %struct.complex, ptr %3516, i32 0, i32 1
  store float %3512, ptr %3517, align 4, !tbaa !14
  %3518 = load i32, ptr %53, align 4, !tbaa !9
  %3519 = sub nsw i32 %3518, 1
  store i32 %3519, ptr %50, align 4, !tbaa !9
  br label %586

3520:                                             ; preds = %591
  store i32 1, ptr %90, align 4
  br label %3521

3521:                                             ; preds = %3520, %3486, %181, %174
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  ret void
}

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

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

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

; Function Attrs: nounwind
declare float @cabsf(<2 x float> noundef) #4

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

declare float @slamch_(ptr noundef) #5

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

; Function Attrs: nounwind
declare <2 x float> @csqrtf(<2 x float> noundef) #4

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

; Function Attrs: nounwind uwtable
declare hidden <2 x float> @cpow_ui(<2 x float> noundef, i32 noundef) #0

declare void @cladiv_(ptr noundef, ptr noundef, ptr noundef) #5

declare void @ccopy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #5

declare void @clarfg_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #5

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

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

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


; 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 }

@c__1 = external hidden global i32, align 4
@.str = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@c__2 = external hidden global i32, align 4

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

46:                                               ; preds = %13
  %47 = load i32, ptr %3, align 4, !tbaa !5
  %48 = load i32, ptr %4, align 4, !tbaa !5
  %49 = icmp eq i32 %47, %48
  br i1 %49, label %50, label %58

50:                                               ; preds = %46
  %51 = add i32 %37, 1
  %52 = mul i32 %47, %51
  %53 = sext i32 %52 to i64
  %54 = getelementptr inbounds %struct.complex, ptr %39, i64 %53
  %55 = sext i32 %47 to i64
  %56 = getelementptr inbounds %struct.complex, ptr %40, i64 %55
  %57 = load <2 x float>, ptr %54, align 4, !tbaa !9
  store <2 x float> %57, ptr %56, align 4, !tbaa !9
  br label %.loopexit984

58:                                               ; preds = %46
  %59 = add nsw i32 %48, -3
  %.not997 = icmp sgt i32 %47, %59
  br i1 %.not997, label %._crit_edge1122, label %.lr.ph.preheader

._crit_edge1122:                                  ; preds = %58
  %.pre1123 = add nsw i32 %48, -2
  br label %80

.lr.ph.preheader:                                 ; preds = %58
  %60 = sext i32 %47 to i64
  %61 = sext i32 %37 to i64
  %62 = add i32 %48, -2
  %63 = sub i32 %62, %47
  %64 = add i32 %48, -3
  %65 = sub i32 %64, %47
  %xtraiter = and i32 %63, 3
  %lcmp.mod.not = icmp eq i32 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol.preheader

.lr.ph.prol.preheader:                            ; preds = %.lr.ph.preheader
  %invariant.gep1179 = getelementptr i8, ptr %39, i64 16
  br label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.prol, %.lr.ph.prol.preheader
  %indvars.iv.prol = phi i64 [ %60, %.lr.ph.prol.preheader ], [ %indvars.iv.next.prol, %.lr.ph.prol ]
  %prol.iter = phi i32 [ 0, %.lr.ph.prol.preheader ], [ %prol.iter.next, %.lr.ph.prol ]
  %66 = mul nsw i64 %indvars.iv.prol, %61
  %gep1180 = getelementptr %struct.complex, ptr %invariant.gep1179, i64 %indvars.iv.prol
  %67 = getelementptr %struct.complex, ptr %gep1180, i64 %66
  store <4 x float> zeroinitializer, ptr %67, align 4, !tbaa !9
  %indvars.iv.next.prol = add nsw i64 %indvars.iv.prol, 1
  %prol.iter.next = add i32 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i32 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol, !llvm.loop !11

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader
  %indvars.iv.lcssa.unr = phi i64 [ poison, %.lr.ph.preheader ], [ %indvars.iv.prol, %.lr.ph.prol ]
  %.lcssa1167.unr = phi i64 [ poison, %.lr.ph.preheader ], [ %66, %.lr.ph.prol ]
  %indvars.iv.unr = phi i64 [ %60, %.lr.ph.preheader ], [ %indvars.iv.next.prol, %.lr.ph.prol ]
  %68 = icmp ult i32 %65, 3
  br i1 %68, label %._crit_edge, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.prol.loopexit
  %invariant.gep1181 = getelementptr i8, ptr %39, i64 16
  %invariant.gep1183 = getelementptr i8, ptr %39, i64 16
  %invariant.gep1185 = getelementptr i8, ptr %39, i64 16
  %invariant.gep1187 = getelementptr i8, ptr %39, i64 16
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %indvars.iv = phi i64 [ %indvars.iv.unr, %.lr.ph.preheader.new ], [ %indvars.iv.next.3, %.lr.ph ]
  %69 = mul nsw i64 %indvars.iv, %61
  %gep1182 = getelementptr %struct.complex, ptr %invariant.gep1181, i64 %indvars.iv
  %70 = getelementptr %struct.complex, ptr %gep1182, i64 %69
  store <4 x float> zeroinitializer, ptr %70, align 4, !tbaa !9
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %71 = mul nsw i64 %indvars.iv.next, %61
  %gep1184 = getelementptr %struct.complex, ptr %invariant.gep1183, i64 %indvars.iv.next
  %72 = getelementptr %struct.complex, ptr %gep1184, i64 %71
  store <4 x float> zeroinitializer, ptr %72, align 4, !tbaa !9
  %indvars.iv.next.1 = add nsw i64 %indvars.iv, 2
  %73 = mul nsw i64 %indvars.iv.next.1, %61
  %gep1186 = getelementptr %struct.complex, ptr %invariant.gep1185, i64 %indvars.iv.next.1
  %74 = getelementptr %struct.complex, ptr %gep1186, i64 %73
  store <4 x float> zeroinitializer, ptr %74, align 4, !tbaa !9
  %indvars.iv.next.2 = add nsw i64 %indvars.iv, 3
  %75 = mul nsw i64 %indvars.iv.next.2, %61
  %gep1188 = getelementptr %struct.complex, ptr %invariant.gep1187, i64 %indvars.iv.next.2
  %76 = getelementptr %struct.complex, ptr %gep1188, i64 %75
  store <4 x float> zeroinitializer, ptr %76, align 4, !tbaa !9
  %indvars.iv.next.3 = add nsw i64 %indvars.iv, 4
  %lftr.wideiv.3 = trunc i64 %indvars.iv.next.3 to i32
  %exitcond.not.3 = icmp eq i32 %62, %lftr.wideiv.3
  br i1 %exitcond.not.3, label %._crit_edge, label %.lr.ph, !llvm.loop !13

._crit_edge:                                      ; preds = %.lr.ph, %.lr.ph.prol.loopexit
  %indvars.iv.lcssa = phi i64 [ %indvars.iv.lcssa.unr, %.lr.ph.prol.loopexit ], [ %indvars.iv.next.2, %.lr.ph ]
  %.lcssa1167 = phi i64 [ %.lcssa1167.unr, %.lr.ph.prol.loopexit ], [ %75, %.lr.ph ]
  %77 = add nsw i64 %indvars.iv.lcssa, 3
  %78 = add nsw i64 %77, %.lcssa1167
  %79 = trunc nsw i64 %78 to i32
  store i32 %79, ptr %14, align 4, !tbaa !5
  br label %80

80:                                               ; preds = %._crit_edge1122, %._crit_edge
  %.pre-phi = phi i32 [ %.pre1123, %._crit_edge1122 ], [ %62, %._crit_edge ]
  %.not954 = icmp sgt i32 %47, %.pre-phi
  br i1 %.not954, label %86, label %81

81:                                               ; preds = %80
  %82 = mul nsw i32 %.pre-phi, %37
  %83 = add nsw i32 %82, %48
  %84 = sext i32 %83 to i64
  %85 = getelementptr inbounds %struct.complex, ptr %39, i64 %84
  store <2 x float> zeroinitializer, ptr %85, align 4, !tbaa !9
  br label %86

86:                                               ; preds = %81, %80
  %87 = load i32, ptr %0, align 4, !tbaa !5
  %.not955 = icmp eq i32 %87, 0
  %spec.select979 = select i1 %.not955, i32 %47, i32 1
  %spec.select980 = select i1 %.not955, ptr %4, ptr %2
  %.0935 = load i32, ptr %spec.select980, align 4, !tbaa !5
  %.not956.not1000 = icmp slt i32 %47, %48
  br i1 %.not956.not1000, label %.lr.ph1004, label %._crit_edge1005

.lr.ph1004:                                       ; preds = %86
  %88 = sext i32 %47 to i64
  %89 = sext i32 %37 to i64
  %90 = sext i32 %spec.select979 to i64
  %91 = sext i32 %41 to i64
  %wide.trip.count = sext i32 %48 to i64
  %invariant.gep = getelementptr %struct.complex, ptr %39, i64 %90
  br label %92

92:                                               ; preds = %.lr.ph1004, %162
  %indvars.iv1081 = phi i64 [ %88, %.lr.ph1004 ], [ %indvars.iv.next1082, %162 ]
  %indvars.iv.next1082 = add nsw i64 %indvars.iv1081, 1
  %93 = mul nsw i64 %indvars.iv1081, %89
  %94 = add nsw i64 %indvars.iv.next1082, %93
  %95 = getelementptr inbounds %struct.complex, ptr %39, i64 %94
  %96 = call <2 x float> @Cf(ptr noundef %95)
  %.sroa.065.4.vec.extract = extractelement <2 x float> %96, i64 1
  %97 = fcmp une float %.sroa.065.4.vec.extract, 0.000000e+00
  br i1 %97, label %98, label %162

98:                                               ; preds = %92
  %indvars = trunc i64 %indvars.iv.next1082 to i32
  %99 = trunc nsw i64 %94 to i32
  store i32 %99, ptr %14, align 4, !tbaa !5
  %100 = load float, ptr %95, align 4, !tbaa !15
  %101 = fcmp oge float %100, 0.000000e+00
  %102 = fneg float %100
  %103 = select i1 %101, float %100, float %102
  %104 = call <2 x float> @Cf(ptr noundef nonnull %95)
  %.sroa.064.4.vec.extract = extractelement <2 x float> %104, i64 1
  %105 = fcmp oge float %.sroa.064.4.vec.extract, 0.000000e+00
  %106 = fneg float %.sroa.064.4.vec.extract
  %107 = select i1 %105, float %.sroa.064.4.vec.extract, float %106
  %108 = fadd float %103, %107
  %109 = load i32, ptr %14, align 4, !tbaa !5
  %110 = sext i32 %109 to i64
  %111 = getelementptr inbounds %struct.complex, ptr %39, i64 %110
  %112 = load <2 x float>, ptr %111, align 4, !tbaa !9
  %113 = insertelement <2 x float> poison, float %108, i64 0
  %114 = shufflevector <2 x float> %113, <2 x float> poison, <2 x i32> zeroinitializer
  %115 = fdiv <2 x float> %112, %114
  store <2 x float> %115, ptr %16, align 8, !tbaa !9
  store <2 x float> %115, ptr %32, align 8, !tbaa !9
  %116 = call <2 x float> @Cf(ptr noundef nonnull %32)
  %.sroa.063.0.vec.extract = extractelement <2 x float> %116, i64 0
  %.sroa.063.4.vec.extract = extractelement <2 x float> %116, i64 1
  %117 = fneg float %.sroa.063.4.vec.extract
  %118 = call ptr @_pCf(ptr noundef nonnull %17)
  %119 = getelementptr inbounds i8, ptr %118, i64 4
  store float %.sroa.063.0.vec.extract, ptr %118, align 4
  store float %117, ptr %119, align 4
  %120 = call <2 x float> @Cf(ptr noundef nonnull %32)
  %121 = call float @cabsf(<2 x float> noundef %120) #8
  %122 = load <2 x float>, ptr %17, align 8, !tbaa !9
  %123 = insertelement <2 x float> poison, float %121, i64 0
  %124 = shufflevector <2 x float> %123, <2 x float> poison, <2 x i32> zeroinitializer
  %125 = fdiv <2 x float> %122, %124
  store <2 x float> %125, ptr %16, align 8, !tbaa !9
  store <2 x float> %125, ptr %32, align 8, !tbaa !9
  store i32 %99, ptr %14, align 4, !tbaa !5
  %126 = call <2 x float> @Cf(ptr noundef nonnull %95)
  %127 = call float @cabsf(<2 x float> noundef %126) #8
  %128 = load i32, ptr %14, align 4, !tbaa !5
  %129 = sext i32 %128 to i64
  %130 = getelementptr inbounds %struct.complex, ptr %39, i64 %129
  store float %127, ptr %130, align 4, !tbaa !15
  %131 = getelementptr inbounds %struct.complex, ptr %39, i64 %129, i32 1
  store float 0.000000e+00, ptr %131, align 4, !tbaa !17
  %132 = trunc nsw i64 %indvars.iv1081 to i32
  %133 = sub i32 %.0935, %132
  store i32 %133, ptr %14, align 4, !tbaa !5
  %134 = mul nsw i64 %indvars.iv.next1082, %89
  %135 = mul nsw i32 %37, %indvars
  %136 = sext i32 %135 to i64
  %137 = getelementptr %struct.complex, ptr %39, i64 %indvars.iv.next1082
  %138 = getelementptr %struct.complex, ptr %137, i64 %136
  call void @cscal_(ptr noundef nonnull %14, ptr noundef nonnull %32, ptr noundef %138, ptr noundef nonnull %6) #8
  %139 = trunc i64 %indvars.iv1081 to i32
  %140 = add i32 %139, 2
  store i32 %140, ptr %15, align 4, !tbaa !5
  %141 = call i32 @llvm.smin.i32(i32 %.0935, i32 %140)
  %reass.sub = sub i32 %141, %spec.select979
  %142 = add i32 %reass.sub, 1
  store i32 %142, ptr %14, align 4, !tbaa !5
  %143 = call <2 x float> @Cf(ptr noundef nonnull %32)
  %.sroa.056.0.vec.extract = extractelement <2 x float> %143, i64 0
  %.sroa.056.4.vec.extract = extractelement <2 x float> %143, i64 1
  %144 = fneg float %.sroa.056.4.vec.extract
  %145 = call ptr @_pCf(ptr noundef nonnull %16)
  %146 = getelementptr inbounds i8, ptr %145, i64 4
  store float %.sroa.056.0.vec.extract, ptr %145, align 4
  store float %144, ptr %146, align 4
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %134
  call void @cscal_(ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef %gep, ptr noundef nonnull @c__1) #8
  %147 = load i32, ptr %1, align 4, !tbaa !5
  %.not977 = icmp eq i32 %147, 0
  br i1 %.not977, label %162, label %148

148:                                              ; preds = %98
  %149 = load i32, ptr %9, align 4, !tbaa !5
  %150 = load i32, ptr %8, align 4, !tbaa !5
  %151 = add i32 %149, 1
  %152 = sub i32 %151, %150
  store i32 %152, ptr %14, align 4, !tbaa !5
  %153 = call <2 x float> @Cf(ptr noundef nonnull %32)
  %.sroa.055.0.vec.extract = extractelement <2 x float> %153, i64 0
  %.sroa.055.4.vec.extract = extractelement <2 x float> %153, i64 1
  %154 = fneg float %.sroa.055.4.vec.extract
  %155 = call ptr @_pCf(ptr noundef nonnull %16)
  %156 = getelementptr inbounds i8, ptr %155, i64 4
  store float %.sroa.055.0.vec.extract, ptr %155, align 4
  store float %154, ptr %156, align 4
  %157 = load i32, ptr %8, align 4, !tbaa !5
  %158 = mul nsw i64 %indvars.iv.next1082, %91
  %159 = sext i32 %157 to i64
  %160 = getelementptr %struct.complex, ptr %43, i64 %158
  %161 = getelementptr %struct.complex, ptr %160, i64 %159
  call void @cscal_(ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef %161, ptr noundef nonnull @c__1) #8
  br label %162

162:                                              ; preds = %92, %148, %98
  %exitcond1084.not = icmp eq i64 %indvars.iv.next1082, %wide.trip.count
  br i1 %exitcond1084.not, label %._crit_edge1005.loopexit, label %92, !llvm.loop !18

._crit_edge1005.loopexit:                         ; preds = %162
  %.pre = load i32, ptr %4, align 4, !tbaa !5
  %.pre1119 = load i32, ptr %3, align 4, !tbaa !5
  br label %._crit_edge1005

._crit_edge1005:                                  ; preds = %._crit_edge1005.loopexit, %86
  %163 = phi i32 [ %.pre1119, %._crit_edge1005.loopexit ], [ %47, %86 ]
  %164 = phi i32 [ %.pre, %._crit_edge1005.loopexit ], [ %48, %86 ]
  %165 = sub nsw i32 %164, %163
  %166 = add nsw i32 %165, 1
  %167 = load i32, ptr %9, align 4, !tbaa !5
  %168 = load i32, ptr %8, align 4, !tbaa !5
  %169 = add i32 %167, 1
  %170 = sub i32 %169, %168
  store i32 %170, ptr %33, align 4, !tbaa !5
  %171 = call float @slamch_(ptr noundef nonnull @.str) #8
  store float %171, ptr %34, align 4, !tbaa !9
  %172 = fdiv float 1.000000e+00, %171
  store float %172, ptr %35, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %34, ptr noundef nonnull %35) #8
  %173 = call float @slamch_(ptr noundef nonnull @.str.1) #8
  %174 = load float, ptr %34, align 4, !tbaa !9
  %175 = sitofp i32 %166 to float
  %176 = fdiv float %175, %173
  %177 = fmul float %174, %176
  %178 = load i32, ptr %0, align 4, !tbaa !5
  %.not957 = icmp eq i32 %178, 0
  br i1 %.not957, label %181, label %179

179:                                              ; preds = %._crit_edge1005
  %180 = load i32, ptr %2, align 4, !tbaa !5
  br label %181

181:                                              ; preds = %179, %._crit_edge1005
  %.0931 = phi i32 [ %180, %179 ], [ undef, %._crit_edge1005 ]
  %182 = icmp slt i32 %165, 10
  %183 = mul nsw i32 %166, 30
  %184 = select i1 %182, i32 300, i32 %183
  %185 = load i32, ptr %4, align 4, !tbaa !5
  %186 = load i32, ptr %3, align 4, !tbaa !5
  %187 = icmp slt i32 %185, %186
  br i1 %187, label %.loopexit984, label %.preheader.lr.ph

.preheader.lr.ph:                                 ; preds = %181
  %.not9581041 = icmp slt i32 %184, 0
  %188 = getelementptr inbounds i8, ptr %17, i64 4
  %189 = add i32 %37, 1
  %190 = getelementptr inbounds i8, ptr %18, i64 4
  %191 = getelementptr inbounds i8, ptr %24, i64 4
  %192 = getelementptr inbounds i8, ptr %25, i64 8
  %193 = getelementptr inbounds i8, ptr %25, i64 12
  %194 = getelementptr inbounds i8, ptr %28, i64 4
  br i1 %.not9581041, label %.preheader._crit_edge, label %.preheader.preheader

.preheader.preheader:                             ; preds = %.preheader.lr.ph
  %195 = sext i32 %37 to i64
  %196 = sext i32 %41 to i64
  %indvars.iv.next10861124 = add nsw i64 %195, 1
  %invariant.gep1136 = getelementptr i8, ptr %39, i64 8
  %invariant.gep1140 = getelementptr i8, ptr %39, i64 8
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %915
  %197 = phi i32 [ %395, %915 ], [ %186, %.preheader.preheader ]
  %.11064 = phi i32 [ %918, %915 ], [ %185, %.preheader.preheader ]
  %.19281061 = phi i32 [ %.29291047, %915 ], [ 1, %.preheader.preheader ]
  %.19321060 = phi i32 [ %.29331046, %915 ], [ %.0931, %.preheader.preheader ]
  %198 = add i32 %.11064, -1
  %199 = mul nsw i32 %198, %37
  %200 = add nsw i32 %199, %.11064
  %201 = sext i32 %200 to i64
  %202 = getelementptr inbounds %struct.complex, ptr %39, i64 %201
  %203 = mul i32 %.11064, %189
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds %struct.complex, ptr %39, i64 %204
  %206 = getelementptr inbounds %struct.complex, ptr %39, i64 %204, i32 1
  %207 = mul nsw i32 %.11064, %37
  %208 = add nsw i32 %207, %.11064
  %209 = sext i32 %208 to i64
  %210 = getelementptr inbounds %struct.complex, ptr %39, i64 %209
  %211 = add nsw i32 %198, %207
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds %struct.complex, ptr %39, i64 %212
  %214 = add nsw i32 %199, %198
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds %struct.complex, ptr %39, i64 %215
  %217 = getelementptr inbounds %struct.complex, ptr %39, i64 %201, i32 1
  %218 = add i32 %.11064, 1
  %219 = mul nsw i32 %218, %37
  %220 = add nsw i32 %219, %.11064
  %221 = sext i32 %220 to i64
  %222 = getelementptr inbounds %struct.complex, ptr %39, i64 %221
  %223 = mul nsw i32 %.11064, %41
  %224 = sext i32 %.11064 to i64
  %225 = sext i32 %198 to i64
  br label %226

226:                                              ; preds = %.preheader, %913
  %.09251050 = phi i32 [ %197, %.preheader ], [ %.0923.lcssa, %913 ]
  %.29291047 = phi i32 [ %.19281061, %.preheader ], [ %spec.select978, %913 ]
  %.29331046 = phi i32 [ %.19321060, %.preheader ], [ %spec.select, %913 ]
  %.09371044 = phi i32 [ 0, %.preheader ], [ %914, %913 ]
  %227 = add nsw i32 %.09251050, 1
  store i32 %227, ptr %14, align 4, !tbaa !5
  %.not9591006.not = icmp sgt i32 %.11064, %.09251050
  br i1 %.not9591006.not, label %.lr.ph1009, label %._crit_edge1010

.lr.ph1009:                                       ; preds = %226, %392
  %indvars.iv1085 = phi i64 [ %indvars.iv.next1086, %392 ], [ %224, %226 ]
  %indvars1088 = trunc i64 %indvars.iv1085 to i32
  %indvars.iv.next1086 = add nsw i64 %indvars.iv1085, -1
  %indvars1087 = trunc i64 %indvars.iv.next1086 to i32
  %228 = mul nsw i32 %37, %indvars1087
  %229 = sext i32 %228 to i64
  %230 = getelementptr %struct.complex, ptr %39, i64 %indvars.iv1085
  %231 = getelementptr %struct.complex, ptr %230, i64 %229
  %232 = load float, ptr %231, align 4, !tbaa !15
  %233 = fcmp oge float %232, 0.000000e+00
  %234 = fneg float %232
  %235 = select i1 %233, float %232, float %234
  %236 = call <2 x float> @Cf(ptr noundef nonnull %231)
  %.sroa.054.4.vec.extract = extractelement <2 x float> %236, i64 1
  %237 = fcmp oge float %.sroa.054.4.vec.extract, 0.000000e+00
  %238 = fneg float %.sroa.054.4.vec.extract
  %239 = select i1 %237, float %.sroa.054.4.vec.extract, float %238
  %240 = fadd float %235, %239
  %241 = fcmp ugt float %240, %177
  br i1 %241, label %242, label %._crit_edge1010

242:                                              ; preds = %.lr.ph1009
  %243 = mul i64 %indvars.iv.next1086, %indvars.iv.next10861124
  %244 = mul nsw i64 %indvars.iv1085, %195
  %245 = mul nsw i32 %37, %indvars1088
  %246 = add nsw i32 %245, %indvars1088
  store i32 %246, ptr %15, align 4, !tbaa !5
  %247 = getelementptr inbounds %struct.complex, ptr %39, i64 %243
  %248 = load float, ptr %247, align 4, !tbaa !15
  %249 = call <2 x float> @Cf(ptr noundef nonnull %247)
  %250 = load i32, ptr %15, align 4, !tbaa !5
  %251 = sext i32 %250 to i64
  %252 = getelementptr inbounds %struct.complex, ptr %39, i64 %251
  %253 = load float, ptr %252, align 4, !tbaa !15
  %254 = sext i32 %246 to i64
  %255 = getelementptr inbounds %struct.complex, ptr %39, i64 %254
  %256 = call <2 x float> @Cf(ptr noundef %255)
  %257 = insertelement <2 x float> poison, float %248, i64 0
  %258 = insertelement <2 x float> %257, float %253, i64 1
  %259 = fcmp oge <2 x float> %258, zeroinitializer
  %260 = fneg <2 x float> %258
  %261 = select <2 x i1> %259, <2 x float> %258, <2 x float> %260
  %262 = shufflevector <2 x float> %249, <2 x float> %256, <2 x i32> <i32 1, i32 3>
  %263 = fcmp oge <2 x float> %262, zeroinitializer
  %264 = fneg <2 x float> %262
  %265 = select <2 x i1> %263, <2 x float> %262, <2 x float> %264
  %266 = fadd <2 x float> %261, %265
  %shift = shufflevector <2 x float> %266, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %267 = fadd <2 x float> %266, %shift
  %268 = extractelement <2 x float> %267, i64 0
  %269 = fcmp oeq float %268, 0.000000e+00
  br i1 %269, label %270, label %293

270:                                              ; preds = %242
  %271 = add nsw i64 %indvars.iv1085, -2
  %272 = load i32, ptr %3, align 4, !tbaa !5
  %273 = sext i32 %272 to i64
  %.not960 = icmp slt i64 %271, %273
  br i1 %.not960, label %283, label %274

274:                                              ; preds = %270
  %275 = mul nsw i64 %271, %195
  %276 = getelementptr %struct.complex, ptr %39, i64 %275
  %277 = getelementptr %struct.complex, ptr %276, i64 %indvars.iv.next1086
  %278 = load float, ptr %277, align 4, !tbaa !15
  %279 = fcmp oge float %278, 0.000000e+00
  %280 = fneg float %278
  %281 = select i1 %279, float %278, float %280
  %282 = fadd float %268, %281
  br label %283

283:                                              ; preds = %274, %270
  %.0938 = phi float [ %282, %274 ], [ %268, %270 ]
  %284 = load i32, ptr %4, align 4, !tbaa !5
  %285 = sext i32 %284 to i64
  %.not961.not = icmp slt i64 %indvars.iv1085, %285
  br i1 %.not961.not, label %286, label %293

286:                                              ; preds = %283
  %gep1137 = getelementptr %struct.complex, ptr %invariant.gep1136, i64 %indvars.iv1085
  %287 = getelementptr %struct.complex, ptr %gep1137, i64 %244
  %288 = load float, ptr %287, align 4, !tbaa !15
  %289 = fcmp oge float %288, 0.000000e+00
  %290 = fneg float %288
  %291 = select i1 %289, float %288, float %290
  %292 = fadd float %.0938, %291
  br label %293

293:                                              ; preds = %283, %286, %242
  %.1939 = phi float [ %292, %286 ], [ %.0938, %283 ], [ %268, %242 ]
  %294 = load float, ptr %231, align 4, !tbaa !15
  %295 = fcmp oge float %294, 0.000000e+00
  %296 = fneg float %294
  %297 = select i1 %295, float %294, float %296
  %298 = fmul float %173, %.1939
  %299 = fcmp ugt float %297, %298
  br i1 %299, label %392, label %300

300:                                              ; preds = %293
  %301 = add nsw i32 %245, %indvars1087
  store i32 %301, ptr %15, align 4, !tbaa !5
  %302 = call <2 x float> @Cf(ptr noundef nonnull %231)
  %303 = load i32, ptr %15, align 4, !tbaa !5
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds %struct.complex, ptr %39, i64 %304
  %306 = load float, ptr %305, align 4, !tbaa !15
  %307 = sext i32 %301 to i64
  %308 = getelementptr inbounds %struct.complex, ptr %39, i64 %307
  %309 = call <2 x float> @Cf(ptr noundef %308)
  store i32 %301, ptr %15, align 4, !tbaa !5
  %310 = load float, ptr %231, align 4, !tbaa !15
  %311 = call <2 x float> @Cf(ptr noundef nonnull %231)
  %312 = load i32, ptr %15, align 4, !tbaa !5
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds %struct.complex, ptr %39, i64 %313
  %315 = load float, ptr %314, align 4, !tbaa !15
  %316 = call <2 x float> @Cf(ptr noundef %308)
  %317 = insertelement <2 x float> poison, float %310, i64 0
  %318 = insertelement <2 x float> %317, float %315, i64 1
  %319 = fcmp oge <2 x float> %318, zeroinitializer
  %320 = fneg <2 x float> %318
  %321 = select <2 x i1> %319, <2 x float> %318, <2 x float> %320
  %322 = shufflevector <2 x float> %311, <2 x float> %316, <2 x i32> <i32 1, i32 3>
  %323 = fcmp oge <2 x float> %322, zeroinitializer
  %324 = fneg <2 x float> %322
  %325 = select <2 x i1> %323, <2 x float> %322, <2 x float> %324
  %326 = fadd <2 x float> %321, %325
  %327 = extractelement <2 x float> %326, i64 0
  %328 = extractelement <2 x float> %326, i64 1
  %329 = fcmp ole float %327, %328
  %330 = select i1 %329, float %327, float %328
  store i32 %246, ptr %15, align 4, !tbaa !5
  %331 = load <2 x float>, ptr %247, align 4, !tbaa !9
  %332 = load <2 x float>, ptr %255, align 4, !tbaa !9
  %333 = fsub <2 x float> %331, %332
  store <2 x float> %333, ptr %17, align 8, !tbaa !9
  store <2 x float> %333, ptr %16, align 8, !tbaa !9
  %334 = extractelement <2 x float> %332, i64 0
  %335 = fcmp oge float %334, 0.000000e+00
  %336 = fneg float %334
  %337 = select i1 %335, float %334, float %336
  %338 = call <2 x float> @Cf(ptr noundef nonnull %255)
  %339 = load float, ptr %16, align 8, !tbaa !15
  %340 = call <2 x float> @Cf(ptr noundef nonnull %16)
  %341 = shufflevector <2 x float> %302, <2 x float> %338, <2 x i32> <i32 1, i32 3>
  %342 = fcmp oge <2 x float> %341, zeroinitializer
  %343 = fneg <2 x float> %341
  %344 = select <2 x i1> %342, <2 x float> %341, <2 x float> %343
  %345 = insertelement <2 x float> poison, float %297, i64 0
  %346 = insertelement <2 x float> %345, float %337, i64 1
  %347 = fadd <2 x float> %346, %344
  %348 = insertelement <2 x float> poison, float %306, i64 0
  %349 = insertelement <2 x float> %348, float %339, i64 1
  %350 = fcmp oge <2 x float> %349, zeroinitializer
  %351 = fneg <2 x float> %349
  %352 = select <2 x i1> %350, <2 x float> %349, <2 x float> %351
  %353 = shufflevector <2 x float> %309, <2 x float> %340, <2 x i32> <i32 1, i32 3>
  %354 = fcmp oge <2 x float> %353, zeroinitializer
  %355 = fneg <2 x float> %353
  %356 = select <2 x i1> %354, <2 x float> %353, <2 x float> %355
  %357 = fadd <2 x float> %352, %356
  %358 = fcmp oge <2 x float> %347, %357
  %359 = select <2 x i1> %358, <2 x float> %347, <2 x float> %357
  store i32 %246, ptr %15, align 4, !tbaa !5
  %360 = load <2 x float>, ptr %247, align 4, !tbaa !9
  %361 = load <2 x float>, ptr %255, align 4, !tbaa !9
  %362 = fsub <2 x float> %360, %361
  store <2 x float> %362, ptr %17, align 8, !tbaa !9
  store <2 x float> %362, ptr %16, align 8, !tbaa !9
  %363 = call <2 x float> @Cf(ptr noundef nonnull %255)
  %364 = shufflevector <2 x float> %361, <2 x float> %363, <2 x i32> <i32 0, i32 3>
  %365 = fcmp oge <2 x float> %364, zeroinitializer
  %366 = fneg <2 x float> %364
  %367 = select <2 x i1> %365, <2 x float> %364, <2 x float> %366
  %shift1152 = shufflevector <2 x float> %367, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %368 = fadd <2 x float> %367, %shift1152
  %369 = extractelement <2 x float> %368, i64 0
  %370 = load float, ptr %16, align 8, !tbaa !15
  %371 = fcmp oge float %370, 0.000000e+00
  %372 = fneg float %370
  %373 = select i1 %371, float %370, float %372
  %374 = call <2 x float> @Cf(ptr noundef nonnull %16)
  %.sroa.044.4.vec.extract = extractelement <2 x float> %374, i64 1
  %375 = fcmp oge float %.sroa.044.4.vec.extract, 0.000000e+00
  %376 = fneg float %.sroa.044.4.vec.extract
  %377 = select i1 %375, float %.sroa.044.4.vec.extract, float %376
  %378 = fadd float %373, %377
  %379 = fcmp ole float %369, %378
  %380 = select i1 %379, float %369, float %378
  %381 = extractelement <2 x float> %359, i64 0
  %382 = extractelement <2 x float> %359, i64 1
  %383 = fadd float %381, %382
  %384 = fdiv float %382, %383
  %385 = fmul float %384, %380
  %386 = fmul float %173, %385
  %387 = fdiv float %381, %383
  %388 = fmul float %330, %387
  %389 = fcmp oge float %177, %386
  %390 = select i1 %389, float %177, float %386
  %391 = fcmp ugt float %388, %390
  br i1 %391, label %392, label %._crit_edge1010

392:                                              ; preds = %293, %300
  %393 = load i32, ptr %14, align 4, !tbaa !5
  %394 = sext i32 %393 to i64
  %.not959.not = icmp sgt i64 %indvars.iv1085, %394
  br i1 %.not959.not, label %.lr.ph1009, label %._crit_edge1010, !llvm.loop !19

._crit_edge1010:                                  ; preds = %.lr.ph1009, %300, %392, %226
  %.0923.lcssa = phi i32 [ %.11064, %226 ], [ %indvars1087, %392 ], [ %indvars1088, %300 ], [ %indvars1088, %.lr.ph1009 ]
  %395 = load i32, ptr %3, align 4, !tbaa !5
  %396 = icmp sgt i32 %.0923.lcssa, %395
  br i1 %396, label %397, label %403

397:                                              ; preds = %._crit_edge1010
  %398 = add nsw i32 %.0923.lcssa, -1
  %399 = mul nsw i32 %398, %37
  %400 = add nsw i32 %399, %.0923.lcssa
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds %struct.complex, ptr %39, i64 %401
  store <2 x float> zeroinitializer, ptr %402, align 4, !tbaa !9
  br label %403

403:                                              ; preds = %397, %._crit_edge1010
  %.not962 = icmp slt i32 %.0923.lcssa, %.11064
  br i1 %.not962, label %404, label %915

404:                                              ; preds = %403
  %405 = load i32, ptr %0, align 4, !tbaa !5
  %.not963 = icmp eq i32 %405, 0
  %spec.select = select i1 %.not963, i32 %.11064, i32 %.29331046
  %spec.select978 = select i1 %.not963, i32 %.0923.lcssa, i32 %.29291047
  switch i32 %.09371044, label %437 [
    i32 10, label %406
    i32 20, label %426
  ]

406:                                              ; preds = %404
  %407 = add nsw i32 %.0923.lcssa, 1
  %408 = mul nsw i32 %.0923.lcssa, %37
  %409 = add nsw i32 %407, %408
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds %struct.complex, ptr %39, i64 %410
  %412 = load float, ptr %411, align 4, !tbaa !15
  %413 = fcmp oge float %412, 0.000000e+00
  %414 = fneg float %412
  %415 = select i1 %413, float %412, float %414
  %416 = fmul float %415, 7.500000e-01
  %417 = add nsw i32 %408, %.0923.lcssa
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds %struct.complex, ptr %39, i64 %418
  %420 = load float, ptr %419, align 4, !tbaa !15
  %421 = fadd float %420, %416
  %422 = getelementptr inbounds %struct.complex, ptr %39, i64 %418, i32 1
  %423 = load float, ptr %422, align 4, !tbaa !17
  %424 = insertelement <2 x float> poison, float %421, i64 0
  %425 = insertelement <2 x float> %424, float %423, i64 1
  br label %540

426:                                              ; preds = %404
  %427 = load float, ptr %202, align 4, !tbaa !15
  %428 = fcmp oge float %427, 0.000000e+00
  %429 = fneg float %427
  %430 = select i1 %428, float %427, float %429
  %431 = fmul float %430, 7.500000e-01
  %432 = load float, ptr %205, align 4, !tbaa !15
  %433 = fadd float %432, %431
  %434 = load float, ptr %206, align 4, !tbaa !17
  %435 = insertelement <2 x float> poison, float %433, i64 0
  %436 = insertelement <2 x float> %435, float %434, i64 1
  br label %540

437:                                              ; preds = %404
  store i32 %208, ptr %14, align 4, !tbaa !5
  %438 = load <2 x float>, ptr %210, align 4, !tbaa !9
  %439 = call <2 x float> @Cf(ptr noundef %213)
  %440 = call <2 x float> @csqrtf(<2 x float> noundef %439) #8
  %441 = call ptr @_pCf(ptr noundef nonnull %17)
  store <2 x float> %440, ptr %441, align 4
  %442 = call <2 x float> @Cf(ptr noundef %202)
  %443 = call <2 x float> @csqrtf(<2 x float> noundef %442) #8
  %444 = call ptr @_pCf(ptr noundef nonnull %18)
  store <2 x float> %443, ptr %444, align 4
  %445 = load float, ptr %17, align 8, !tbaa !15
  %446 = load float, ptr %188, align 4, !tbaa !17
  %447 = fneg float %446
  %448 = load <2 x float>, ptr %18, align 8, !tbaa !9
  %449 = insertelement <2 x float> poison, float %446, i64 0
  %450 = insertelement <2 x float> %449, float %447, i64 1
  %451 = fmul <2 x float> %448, %450
  %452 = shufflevector <2 x float> %451, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %453 = insertelement <2 x float> poison, float %445, i64 0
  %454 = shufflevector <2 x float> %453, <2 x float> poison, <2 x i32> zeroinitializer
  %455 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %454, <2 x float> %448, <2 x float> %452)
  store <2 x float> %455, ptr %16, align 8, !tbaa !9
  store <2 x float> %455, ptr %24, align 8, !tbaa !9
  %456 = call <2 x float> @Cf(ptr noundef nonnull %24)
  %457 = shufflevector <2 x float> %455, <2 x float> %456, <2 x i32> <i32 0, i32 3>
  %458 = fcmp oge <2 x float> %457, zeroinitializer
  %459 = fneg <2 x float> %457
  %460 = select <2 x i1> %458, <2 x float> %457, <2 x float> %459
  %shift1153 = shufflevector <2 x float> %460, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %461 = fadd <2 x float> %460, %shift1153
  %462 = extractelement <2 x float> %461, i64 0
  %463 = fcmp une float %462, 0.000000e+00
  br i1 %463, label %464, label %540

464:                                              ; preds = %437
  store i32 %214, ptr %14, align 4, !tbaa !5
  %465 = load <2 x float>, ptr %216, align 4, !tbaa !9
  %466 = fsub <2 x float> %465, %438
  store <2 x float> %466, ptr %17, align 8, !tbaa !9
  %467 = fmul <2 x float> %466, <float 5.000000e-01, float 5.000000e-01>
  store <2 x float> %467, ptr %16, align 8, !tbaa !9
  store <2 x float> %467, ptr %26, align 8, !tbaa !9
  %468 = call <2 x float> @Cf(ptr noundef nonnull %26)
  %469 = shufflevector <2 x float> %467, <2 x float> %468, <2 x i32> <i32 0, i32 3>
  %470 = fcmp oge <2 x float> %469, zeroinitializer
  %471 = fneg <2 x float> %469
  %472 = select <2 x i1> %470, <2 x float> %469, <2 x float> %471
  %shift1154 = shufflevector <2 x float> %472, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %473 = fadd <2 x float> %472, %shift1154
  %474 = extractelement <2 x float> %473, i64 0
  %475 = load float, ptr %26, align 8, !tbaa !15
  %476 = fcmp oge float %475, 0.000000e+00
  %477 = fneg float %475
  %478 = select i1 %476, float %475, float %477
  %479 = call <2 x float> @Cf(ptr noundef nonnull %26)
  %.sroa.033.4.vec.extract = extractelement <2 x float> %479, i64 1
  %480 = fcmp oge float %.sroa.033.4.vec.extract, 0.000000e+00
  %481 = fneg float %.sroa.033.4.vec.extract
  %482 = select i1 %480, float %.sroa.033.4.vec.extract, float %481
  %483 = fadd float %478, %482
  %484 = fcmp oge float %462, %483
  %485 = select i1 %484, float %462, float %483
  %486 = load <2 x float>, ptr %26, align 8, !tbaa !9
  %487 = insertelement <2 x float> poison, float %485, i64 0
  %488 = shufflevector <2 x float> %487, <2 x float> poison, <2 x i32> zeroinitializer
  %489 = fdiv <2 x float> %486, %488
  store <2 x float> %489, ptr %20, align 8, !tbaa !9
  %490 = call <2 x float> @Cf(ptr noundef nonnull %20)
  %491 = load i32, ptr @c__2, align 4, !tbaa !5
  %492 = call <2 x float> @cpow_ui(<2 x float> noundef %490, i32 noundef %491)
  %493 = call ptr @_pCf(ptr noundef nonnull %19)
  store <2 x float> %492, ptr %493, align 4
  %494 = load <2 x float>, ptr %24, align 8, !tbaa !9
  %495 = fdiv <2 x float> %494, %488
  store <2 x float> %495, ptr %22, align 8, !tbaa !9
  %496 = call <2 x float> @Cf(ptr noundef nonnull %22)
  %497 = load i32, ptr @c__2, align 4, !tbaa !5
  %498 = call <2 x float> @cpow_ui(<2 x float> noundef %496, i32 noundef %497)
  %499 = call ptr @_pCf(ptr noundef nonnull %21)
  store <2 x float> %498, ptr %499, align 4
  %500 = load <2 x float>, ptr %19, align 8, !tbaa !9
  %501 = load <2 x float>, ptr %21, align 8, !tbaa !9
  %502 = fadd <2 x float> %500, %501
  store <2 x float> %502, ptr %18, align 8, !tbaa !9
  %503 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %504 = call <2 x float> @csqrtf(<2 x float> noundef %503) #8
  %505 = call ptr @_pCf(ptr noundef nonnull %17)
  store <2 x float> %504, ptr %505, align 4
  %506 = load <2 x float>, ptr %17, align 8, !tbaa !9
  %507 = fmul <2 x float> %488, %506
  store <2 x float> %507, ptr %16, align 8, !tbaa !9
  store <2 x float> %507, ptr %27, align 8, !tbaa !9
  %508 = fcmp ogt float %474, 0.000000e+00
  br i1 %508, label %509, label %524

509:                                              ; preds = %464
  %510 = load <2 x float>, ptr %26, align 8, !tbaa !9
  %511 = shufflevector <2 x float> %473, <2 x float> poison, <2 x i32> zeroinitializer
  %512 = fdiv <2 x float> %510, %511
  store <2 x float> %512, ptr %16, align 8, !tbaa !9
  store <2 x float> %512, ptr %17, align 8, !tbaa !9
  %513 = call <2 x float> @Cf(ptr noundef nonnull %17)
  %514 = call <2 x float> @Cf(ptr noundef nonnull %27)
  %515 = fmul <2 x float> %513, %514
  %516 = extractelement <2 x float> %515, i64 1
  %517 = extractelement <2 x float> %507, i64 0
  %518 = extractelement <2 x float> %512, i64 0
  %519 = call float @llvm.fmuladd.f32(float %518, float %517, float %516)
  %520 = fcmp olt float %519, 0.000000e+00
  %521 = load <2 x float>, ptr %27, align 8, !tbaa !9
  br i1 %520, label %522, label %524

522:                                              ; preds = %509
  %523 = fneg <2 x float> %521
  store <2 x float> %523, ptr %18, align 8, !tbaa !9
  store <2 x float> %523, ptr %27, align 8, !tbaa !9
  br label %524

524:                                              ; preds = %509, %522, %464
  %525 = phi <2 x float> [ %521, %509 ], [ %523, %522 ], [ %507, %464 ]
  %526 = load <2 x float>, ptr %26, align 8, !tbaa !9
  %527 = fadd <2 x float> %526, %525
  store <2 x float> %527, ptr %19, align 8, !tbaa !9
  call void @cladiv_(ptr noundef nonnull %18, ptr noundef nonnull %24, ptr noundef nonnull %19) #8
  %528 = load float, ptr %24, align 8, !tbaa !15
  %529 = load float, ptr %191, align 4, !tbaa !17
  %530 = fneg float %529
  %531 = load <2 x float>, ptr %18, align 8, !tbaa !9
  %532 = insertelement <2 x float> poison, float %529, i64 0
  %533 = insertelement <2 x float> %532, float %530, i64 1
  %534 = fmul <2 x float> %531, %533
  %535 = shufflevector <2 x float> %534, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %536 = insertelement <2 x float> poison, float %528, i64 0
  %537 = shufflevector <2 x float> %536, <2 x float> poison, <2 x i32> zeroinitializer
  %538 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %537, <2 x float> %531, <2 x float> %535)
  store <2 x float> %538, ptr %17, align 8, !tbaa !9
  %539 = fsub <2 x float> %438, %538
  br label %540

540:                                              ; preds = %426, %524, %437, %406
  %541 = phi <2 x float> [ %425, %406 ], [ %436, %426 ], [ %539, %524 ], [ %438, %437 ]
  %542 = add nsw i32 %.0923.lcssa, 1
  store i32 %542, ptr %14, align 4, !tbaa !5
  br label %543

543:                                              ; preds = %546, %540
  %indvars.iv1089 = phi i64 [ %indvars.iv.next1090, %546 ], [ %225, %540 ]
  %544 = load i32, ptr %14, align 4, !tbaa !5
  %545 = sext i32 %544 to i64
  %.not964 = icmp slt i64 %indvars.iv1089, %545
  br i1 %.not964, label %615, label %546

546:                                              ; preds = %543
  %547 = mul nsw i64 %indvars.iv1089, %195
  %548 = getelementptr %struct.complex, ptr %39, i64 %547
  %549 = getelementptr %struct.complex, ptr %548, i64 %indvars.iv1089
  %550 = load <2 x float>, ptr %549, align 4, !tbaa !9
  store <2 x float> %550, ptr %30, align 8, !tbaa !9
  %551 = add nsw i64 %indvars.iv1089, 1
  %552 = trunc nsw i64 %551 to i32
  %553 = mul i32 %189, %552
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds %struct.complex, ptr %39, i64 %554
  %556 = load <2 x float>, ptr %555, align 4, !tbaa !9
  store <2 x float> %556, ptr %31, align 8, !tbaa !9
  %557 = fsub <2 x float> %550, %541
  store <2 x float> %557, ptr %16, align 8, !tbaa !9
  store <2 x float> %557, ptr %36, align 8, !tbaa !9
  %558 = getelementptr %struct.complex, ptr %39, i64 %551
  %559 = getelementptr %struct.complex, ptr %558, i64 %547
  %560 = load float, ptr %559, align 4, !tbaa !15
  %561 = call <2 x float> @Cf(ptr noundef nonnull %36)
  %562 = shufflevector <2 x float> %557, <2 x float> %561, <2 x i32> <i32 0, i32 3>
  %563 = fcmp oge <2 x float> %562, zeroinitializer
  %564 = fneg <2 x float> %562
  %565 = select <2 x i1> %563, <2 x float> %562, <2 x float> %564
  %shift1155 = shufflevector <2 x float> %565, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %566 = fadd <2 x float> %565, %shift1155
  %567 = extractelement <2 x float> %566, i64 0
  %568 = fcmp oge float %560, 0.000000e+00
  %569 = fneg float %560
  %570 = select i1 %568, float %560, float %569
  %571 = fadd float %570, %567
  %572 = load <2 x float>, ptr %36, align 8, !tbaa !9
  %573 = insertelement <2 x float> poison, float %571, i64 0
  %574 = shufflevector <2 x float> %573, <2 x float> poison, <2 x i32> zeroinitializer
  %575 = fdiv <2 x float> %572, %574
  store <2 x float> %575, ptr %16, align 8, !tbaa !9
  store <2 x float> %575, ptr %36, align 8, !tbaa !9
  %576 = fdiv float %560, %571
  store <2 x float> %575, ptr %25, align 16, !tbaa !9
  store float %576, ptr %192, align 8, !tbaa !15
  store float 0.000000e+00, ptr %193, align 4, !tbaa !17
  %indvars.iv.next1090 = add nsw i64 %indvars.iv1089, -1
  %577 = mul nsw i64 %indvars.iv.next1090, %195
  %578 = getelementptr %struct.complex, ptr %39, i64 %577
  %579 = getelementptr %struct.complex, ptr %578, i64 %indvars.iv1089
  %580 = load float, ptr %579, align 4, !tbaa !15
  %581 = insertelement <2 x float> poison, float %576, i64 0
  %582 = insertelement <2 x float> %581, float %580, i64 1
  %583 = fcmp oge <2 x float> %582, zeroinitializer
  %584 = fneg <2 x float> %582
  %585 = select <2 x i1> %583, <2 x float> %582, <2 x float> %584
  %shift1156 = shufflevector <2 x float> %585, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %586 = fmul <2 x float> %585, %shift1156
  %587 = extractelement <2 x float> %586, i64 0
  %588 = call <2 x float> @Cf(ptr noundef nonnull %36)
  %589 = load float, ptr %30, align 8, !tbaa !15
  %590 = call <2 x float> @Cf(ptr noundef nonnull %30)
  %591 = insertelement <2 x float> %575, float %589, i64 1
  %592 = fcmp oge <2 x float> %591, zeroinitializer
  %593 = fneg <2 x float> %591
  %594 = select <2 x i1> %592, <2 x float> %591, <2 x float> %593
  %595 = shufflevector <2 x float> %588, <2 x float> %590, <2 x i32> <i32 1, i32 3>
  %596 = fcmp oge <2 x float> %595, zeroinitializer
  %597 = fneg <2 x float> %595
  %598 = select <2 x i1> %596, <2 x float> %595, <2 x float> %597
  %599 = fadd <2 x float> %594, %598
  %600 = load float, ptr %31, align 8, !tbaa !15
  %601 = fcmp oge float %600, 0.000000e+00
  %602 = fneg float %600
  %603 = select i1 %601, float %600, float %602
  %604 = call <2 x float> @Cf(ptr noundef nonnull %31)
  %.sroa.015.4.vec.extract = extractelement <2 x float> %604, i64 1
  %605 = fcmp oge float %.sroa.015.4.vec.extract, 0.000000e+00
  %606 = fneg float %.sroa.015.4.vec.extract
  %607 = select i1 %605, float %.sroa.015.4.vec.extract, float %606
  %608 = fadd float %603, %607
  %609 = extractelement <2 x float> %599, i64 1
  %610 = fadd float %609, %608
  %611 = extractelement <2 x float> %599, i64 0
  %612 = fmul float %611, %610
  %613 = fmul float %173, %612
  %614 = fcmp ugt float %587, %613
  br i1 %614, label %543, label %.loopexit983, !llvm.loop !20

615:                                              ; preds = %543
  %616 = mul nsw i32 %.0923.lcssa, %37
  %617 = add nsw i32 %616, %.0923.lcssa
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds %struct.complex, ptr %39, i64 %618
  %620 = load <2 x float>, ptr %619, align 4, !tbaa !9
  store <2 x float> %620, ptr %30, align 8, !tbaa !9
  %621 = mul i32 %542, %189
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds %struct.complex, ptr %39, i64 %622
  %624 = load <2 x float>, ptr %623, align 4, !tbaa !9
  store <2 x float> %624, ptr %31, align 8, !tbaa !9
  %625 = fsub <2 x float> %620, %541
  store <2 x float> %625, ptr %16, align 8, !tbaa !9
  store <2 x float> %625, ptr %36, align 8, !tbaa !9
  %626 = add nsw i32 %542, %616
  store i32 %626, ptr %14, align 4, !tbaa !5
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds %struct.complex, ptr %39, i64 %627
  %629 = load float, ptr %628, align 4, !tbaa !15
  %630 = call <2 x float> @Cf(ptr noundef nonnull %36)
  %631 = shufflevector <2 x float> %625, <2 x float> %630, <2 x i32> <i32 0, i32 3>
  %632 = fcmp oge <2 x float> %631, zeroinitializer
  %633 = fneg <2 x float> %631
  %634 = select <2 x i1> %632, <2 x float> %631, <2 x float> %633
  %shift1157 = shufflevector <2 x float> %634, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %635 = fadd <2 x float> %634, %shift1157
  %636 = extractelement <2 x float> %635, i64 0
  %637 = fcmp oge float %629, 0.000000e+00
  %638 = fneg float %629
  %639 = select i1 %637, float %629, float %638
  %640 = fadd float %639, %636
  %641 = load <2 x float>, ptr %36, align 8, !tbaa !9
  %642 = insertelement <2 x float> poison, float %640, i64 0
  %643 = shufflevector <2 x float> %642, <2 x float> poison, <2 x i32> zeroinitializer
  %644 = fdiv <2 x float> %641, %643
  store <2 x float> %644, ptr %16, align 8, !tbaa !9
  store <2 x float> %644, ptr %36, align 8, !tbaa !9
  %645 = fdiv float %629, %640
  store <2 x float> %644, ptr %25, align 16, !tbaa !9
  store float %645, ptr %192, align 8, !tbaa !15
  store float 0.000000e+00, ptr %193, align 4, !tbaa !17
  br label %.loopexit983

.loopexit983:                                     ; preds = %546, %615
  %.09261068 = trunc i64 %indvars.iv1089 to i32
  store i32 %198, ptr %14, align 4, !tbaa !5
  %.not9651033.not = icmp sgt i32 %.11064, %.09261068
  br i1 %.not9651033.not, label %.lr.ph1038, label %._crit_edge1039

.lr.ph1038:                                       ; preds = %.loopexit983
  %646 = icmp slt i32 %.0923.lcssa, %.09261068
  %647 = add nsw i32 %.09261068, 1
  %648 = mul nsw i32 %37, %.09261068
  %649 = add nsw i32 %647, %648
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds %struct.complex, ptr %39, i64 %650
  %652 = add nsw i32 %.09261068, 2
  %.not972 = icmp sgt i32 %652, %.11064
  %653 = mul nsw i32 %647, %37
  %654 = add nsw i32 %653, %652
  %655 = sext i32 %654 to i64
  %656 = getelementptr inbounds %struct.complex, ptr %39, i64 %655
  %657 = getelementptr inbounds i8, ptr %656, i64 4
  %sext1125 = shl i64 %indvars.iv1089, 32
  %658 = ashr exact i64 %sext1125, 32
  %659 = sext i32 %spec.select to i64
  %660 = sext i32 %spec.select978 to i64
  %sext = sext i32 %647 to i64
  %invariant.gep1138 = getelementptr %struct.complex, ptr %39, i64 %660
  br label %661

661:                                              ; preds = %.lr.ph1038, %.loopexit
  %indvars.iv1093 = phi i64 [ %658, %.lr.ph1038 ], [ %indvars.iv.next1094, %.loopexit ]
  %662 = icmp sgt i64 %indvars.iv1093, %658
  br i1 %662, label %664, label %663

663:                                              ; preds = %661
  call void @clarfg_(ptr noundef nonnull @c__2, ptr noundef nonnull %25, ptr noundef nonnull %192, ptr noundef nonnull @c__1, ptr noundef nonnull %28) #8
  br label %674

664:                                              ; preds = %661
  %indvars1117 = trunc i64 %indvars.iv1093 to i32
  %665 = add nsw i32 %indvars1117, -1
  %666 = mul nsw i32 %665, %37
  %667 = sext i32 %666 to i64
  %668 = getelementptr %struct.complex, ptr %39, i64 %indvars.iv1093
  %669 = getelementptr %struct.complex, ptr %668, i64 %667
  call void @ccopy_(ptr noundef nonnull @c__2, ptr noundef %669, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull @c__1) #8
  call void @clarfg_(ptr noundef nonnull @c__2, ptr noundef nonnull %25, ptr noundef nonnull %192, ptr noundef nonnull @c__1, ptr noundef nonnull %28) #8
  %670 = add nsw i64 %indvars.iv1093, -1
  %671 = mul nsw i64 %670, %195
  %672 = load <2 x float>, ptr %25, align 16, !tbaa !9
  store <2 x float> %672, ptr %669, align 4, !tbaa !9
  %gep1141 = getelementptr %struct.complex, ptr %invariant.gep1140, i64 %indvars.iv1093
  %673 = getelementptr %struct.complex, ptr %gep1141, i64 %671
  store <2 x float> zeroinitializer, ptr %673, align 4, !tbaa !9
  br label %674

674:                                              ; preds = %663, %664
  %675 = load <2 x float>, ptr %192, align 8, !tbaa !9
  store <2 x float> %675, ptr %29, align 8, !tbaa !9
  %676 = load float, ptr %28, align 8, !tbaa !15
  %677 = load float, ptr %194, align 4, !tbaa !17
  %678 = fneg float %677
  %679 = insertelement <2 x float> poison, float %677, i64 0
  %680 = insertelement <2 x float> %679, float %678, i64 1
  %681 = fmul <2 x float> %675, %680
  %682 = shufflevector <2 x float> %681, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %683 = insertelement <2 x float> poison, float %676, i64 0
  %684 = shufflevector <2 x float> %683, <2 x float> poison, <2 x i32> zeroinitializer
  %685 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %684, <2 x float> %675, <2 x float> %682)
  store <2 x float> %685, ptr %16, align 8, !tbaa !9
  %.not9671015 = icmp sgt i64 %indvars.iv1093, %659
  br i1 %.not9671015, label %._crit_edge1019, label %.lr.ph1018

.lr.ph1018:                                       ; preds = %674
  %686 = add nsw i64 %indvars.iv1093, 1
  %687 = shufflevector <2 x float> %685, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep1189 = getelementptr %struct.complex, ptr %39, i64 %indvars.iv1093
  br label %688

688:                                              ; preds = %.lr.ph1018, %688
  %indvars.iv1095 = phi i64 [ %indvars.iv1093, %.lr.ph1018 ], [ %indvars.iv.next1096, %688 ]
  %689 = call <2 x float> @Cf(ptr noundef nonnull %28)
  %.sroa.013.0.vec.extract = extractelement <2 x float> %689, i64 0
  %.sroa.013.4.vec.extract = extractelement <2 x float> %689, i64 1
  %690 = fneg float %.sroa.013.4.vec.extract
  %691 = call ptr @_pCf(ptr noundef nonnull %18)
  %692 = getelementptr inbounds i8, ptr %691, i64 4
  store float %.sroa.013.0.vec.extract, ptr %691, align 4
  store float %690, ptr %692, align 4
  %693 = mul nsw i64 %indvars.iv1095, %195
  %694 = load float, ptr %18, align 8, !tbaa !15
  %gep1190 = getelementptr %struct.complex, ptr %invariant.gep1189, i64 %693
  %695 = load float, ptr %190, align 4, !tbaa !17
  %696 = fneg float %695
  %697 = add nsw i64 %686, %693
  %698 = getelementptr inbounds %struct.complex, ptr %39, i64 %697
  %699 = load <2 x float>, ptr %698, align 4, !tbaa !9
  %700 = fmul <2 x float> %687, %699
  store <2 x float> %700, ptr %19, align 8, !tbaa !9
  %701 = load <2 x float>, ptr %gep1190, align 4, !tbaa !9
  %702 = insertelement <2 x float> poison, float %695, i64 0
  %703 = insertelement <2 x float> %702, float %696, i64 1
  %704 = fmul <2 x float> %701, %703
  %705 = shufflevector <2 x float> %704, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %706 = insertelement <2 x float> poison, float %694, i64 0
  %707 = shufflevector <2 x float> %706, <2 x float> poison, <2 x i32> zeroinitializer
  %708 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %707, <2 x float> %701, <2 x float> %705)
  %709 = fadd <2 x float> %708, %700
  %710 = fsub <2 x float> %701, %709
  store <2 x float> %710, ptr %gep1190, align 4, !tbaa !9
  %711 = trunc nsw i64 %697 to i32
  store i32 %711, ptr %15, align 4, !tbaa !5
  %712 = load <2 x float>, ptr %29, align 8, !tbaa !9
  %713 = shufflevector <2 x float> %709, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %714 = fneg <2 x float> %709
  %715 = shufflevector <2 x float> %713, <2 x float> %714, <2 x i32> <i32 0, i32 3>
  %716 = fmul <2 x float> %712, %715
  %717 = shufflevector <2 x float> %716, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %718 = shufflevector <2 x float> %709, <2 x float> poison, <2 x i32> zeroinitializer
  %719 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %718, <2 x float> %712, <2 x float> %717)
  store <2 x float> %719, ptr %17, align 8, !tbaa !9
  %720 = fsub <2 x float> %699, %719
  store <2 x float> %720, ptr %16, align 8, !tbaa !9
  store <2 x float> %720, ptr %698, align 4, !tbaa !9
  %indvars.iv.next1096 = add nsw i64 %indvars.iv1095, 1
  %.not967.not = icmp slt i64 %indvars.iv1095, %659
  br i1 %.not967.not, label %688, label %._crit_edge1019, !llvm.loop !21

._crit_edge1019:                                  ; preds = %688, %674
  %721 = trunc i64 %indvars.iv1093 to i32
  %722 = add i32 %721, 2
  store i32 %722, ptr %15, align 4, !tbaa !5
  %723 = call i32 @llvm.smin.i32(i32 %722, i32 %.11064)
  %.not9691020 = icmp sgt i32 %spec.select978, %723
  br i1 %.not9691020, label %._crit_edge1024, label %.lr.ph1023

.lr.ph1023:                                       ; preds = %._crit_edge1019
  %724 = mul nsw i64 %indvars.iv1093, %195
  %725 = add nsw i64 %indvars.iv1093, 1
  %726 = mul nsw i64 %725, %195
  %727 = sext i32 %723 to i64
  %728 = shufflevector <2 x float> %685, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep1191 = getelementptr %struct.complex, ptr %39, i64 %724
  br label %729

729:                                              ; preds = %.lr.ph1023, %729
  %indvars.iv1099 = phi i64 [ %660, %.lr.ph1023 ], [ %indvars.iv.next1100, %729 ]
  %730 = load float, ptr %28, align 8, !tbaa !15
  %gep1192 = getelementptr %struct.complex, ptr %invariant.gep1191, i64 %indvars.iv1099
  %731 = load float, ptr %194, align 4, !tbaa !17
  %732 = fneg float %731
  %733 = load <2 x float>, ptr %gep1192, align 4, !tbaa !9
  %734 = insertelement <2 x float> poison, float %731, i64 0
  %735 = insertelement <2 x float> %734, float %732, i64 1
  %736 = fmul <2 x float> %733, %735
  %737 = shufflevector <2 x float> %736, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %738 = insertelement <2 x float> poison, float %730, i64 0
  %739 = shufflevector <2 x float> %738, <2 x float> poison, <2 x i32> zeroinitializer
  %740 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %739, <2 x float> %733, <2 x float> %737)
  store <2 x float> %740, ptr %17, align 8, !tbaa !9
  %741 = add nsw i64 %indvars.iv1099, %726
  %742 = getelementptr inbounds %struct.complex, ptr %39, i64 %741
  %743 = load <2 x float>, ptr %742, align 4, !tbaa !9
  %744 = fmul <2 x float> %728, %743
  store <2 x float> %744, ptr %18, align 8, !tbaa !9
  %745 = fadd <2 x float> %740, %744
  %746 = fsub <2 x float> %733, %745
  store <2 x float> %746, ptr %16, align 8, !tbaa !9
  store <2 x float> %746, ptr %gep1192, align 4, !tbaa !9
  %747 = trunc nsw i64 %741 to i32
  store i32 %747, ptr %15, align 4, !tbaa !5
  %748 = call <2 x float> @Cf(ptr noundef nonnull %29)
  %.sroa.012.0.vec.extract = extractelement <2 x float> %748, i64 0
  %.sroa.012.4.vec.extract = extractelement <2 x float> %748, i64 1
  %749 = fneg float %.sroa.012.4.vec.extract
  %750 = call ptr @_pCf(ptr noundef nonnull %18)
  %751 = getelementptr inbounds i8, ptr %750, i64 4
  store float %.sroa.012.0.vec.extract, ptr %750, align 4
  store float %749, ptr %751, align 4
  %752 = load <2 x float>, ptr %18, align 8, !tbaa !9
  %753 = shufflevector <2 x float> %745, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %754 = fneg <2 x float> %745
  %755 = shufflevector <2 x float> %753, <2 x float> %754, <2 x i32> <i32 0, i32 3>
  %756 = fmul <2 x float> %752, %755
  %757 = shufflevector <2 x float> %756, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %758 = shufflevector <2 x float> %745, <2 x float> poison, <2 x i32> zeroinitializer
  %759 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %758, <2 x float> %752, <2 x float> %757)
  store <2 x float> %759, ptr %17, align 8, !tbaa !9
  %760 = load <2 x float>, ptr %742, align 4, !tbaa !9
  %761 = fsub <2 x float> %760, %759
  store <2 x float> %761, ptr %16, align 8, !tbaa !9
  %762 = load i32, ptr %15, align 4, !tbaa !5
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds %struct.complex, ptr %39, i64 %763
  store <2 x float> %761, ptr %764, align 4, !tbaa !9
  %indvars.iv.next1100 = add nsw i64 %indvars.iv1099, 1
  %.not969.not = icmp slt i64 %indvars.iv1099, %727
  br i1 %.not969.not, label %729, label %._crit_edge1024, !llvm.loop !22

._crit_edge1024:                                  ; preds = %729, %._crit_edge1019
  %765 = load i32, ptr %1, align 4, !tbaa !5
  %.not970 = icmp eq i32 %765, 0
  br i1 %.not970, label %.loopexit982, label %766

766:                                              ; preds = %._crit_edge1024
  %767 = load i32, ptr %9, align 4, !tbaa !5
  %768 = load i32, ptr %8, align 4, !tbaa !5
  %.not9711025 = icmp sgt i32 %768, %767
  br i1 %.not9711025, label %.loopexit982, label %.lr.ph1028

.lr.ph1028:                                       ; preds = %766
  %769 = mul nsw i64 %indvars.iv1093, %196
  %770 = add nsw i64 %indvars.iv1093, 1
  %771 = mul nsw i64 %770, %196
  %772 = sext i32 %768 to i64
  %773 = add i32 %767, 1
  %774 = shufflevector <2 x float> %685, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep1193 = getelementptr %struct.complex, ptr %43, i64 %769
  br label %775

775:                                              ; preds = %.lr.ph1028, %775
  %indvars.iv1103 = phi i64 [ %772, %.lr.ph1028 ], [ %indvars.iv.next1104, %775 ]
  %776 = load float, ptr %28, align 8, !tbaa !15
  %gep1194 = getelementptr %struct.complex, ptr %invariant.gep1193, i64 %indvars.iv1103
  %777 = load float, ptr %194, align 4, !tbaa !17
  %778 = fneg float %777
  %779 = load <2 x float>, ptr %gep1194, align 4, !tbaa !9
  %780 = insertelement <2 x float> poison, float %777, i64 0
  %781 = insertelement <2 x float> %780, float %778, i64 1
  %782 = fmul <2 x float> %779, %781
  %783 = shufflevector <2 x float> %782, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %784 = insertelement <2 x float> poison, float %776, i64 0
  %785 = shufflevector <2 x float> %784, <2 x float> poison, <2 x i32> zeroinitializer
  %786 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %785, <2 x float> %779, <2 x float> %783)
  store <2 x float> %786, ptr %17, align 8, !tbaa !9
  %787 = add nsw i64 %indvars.iv1103, %771
  %788 = getelementptr inbounds %struct.complex, ptr %43, i64 %787
  %789 = load <2 x float>, ptr %788, align 4, !tbaa !9
  %790 = fmul <2 x float> %774, %789
  store <2 x float> %790, ptr %18, align 8, !tbaa !9
  %791 = fadd <2 x float> %786, %790
  %792 = fsub <2 x float> %779, %791
  store <2 x float> %792, ptr %16, align 8, !tbaa !9
  store <2 x float> %792, ptr %gep1194, align 4, !tbaa !9
  %793 = trunc nsw i64 %787 to i32
  store i32 %793, ptr %15, align 4, !tbaa !5
  %794 = call <2 x float> @Cf(ptr noundef nonnull %29)
  %.sroa.011.0.vec.extract = extractelement <2 x float> %794, i64 0
  %.sroa.011.4.vec.extract = extractelement <2 x float> %794, i64 1
  %795 = fneg float %.sroa.011.4.vec.extract
  %796 = call ptr @_pCf(ptr noundef nonnull %18)
  %797 = getelementptr inbounds i8, ptr %796, i64 4
  store float %.sroa.011.0.vec.extract, ptr %796, align 4
  store float %795, ptr %797, align 4
  %798 = load <2 x float>, ptr %18, align 8, !tbaa !9
  %799 = shufflevector <2 x float> %791, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %800 = fneg <2 x float> %791
  %801 = shufflevector <2 x float> %799, <2 x float> %800, <2 x i32> <i32 0, i32 3>
  %802 = fmul <2 x float> %798, %801
  %803 = shufflevector <2 x float> %802, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %804 = shufflevector <2 x float> %791, <2 x float> poison, <2 x i32> zeroinitializer
  %805 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %804, <2 x float> %798, <2 x float> %803)
  store <2 x float> %805, ptr %17, align 8, !tbaa !9
  %806 = load <2 x float>, ptr %788, align 4, !tbaa !9
  %807 = fsub <2 x float> %806, %805
  store <2 x float> %807, ptr %16, align 8, !tbaa !9
  %808 = load i32, ptr %15, align 4, !tbaa !5
  %809 = sext i32 %808 to i64
  %810 = getelementptr inbounds %struct.complex, ptr %43, i64 %809
  store <2 x float> %807, ptr %810, align 4, !tbaa !9
  %indvars.iv.next1104 = add nsw i64 %indvars.iv1103, 1
  %lftr.wideiv1107 = trunc i64 %indvars.iv.next1104 to i32
  %exitcond1108.not = icmp eq i32 %773, %lftr.wideiv1107
  br i1 %exitcond1108.not, label %.loopexit982, label %775, !llvm.loop !23

.loopexit982:                                     ; preds = %775, %766, %._crit_edge1024
  %811 = icmp eq i64 %indvars.iv1093, %658
  %or.cond = and i1 %646, %811
  br i1 %or.cond, label %812, label %.loopexit

812:                                              ; preds = %.loopexit982
  %813 = load <2 x float>, ptr %28, align 8, !tbaa !9
  %814 = fsub <2 x float> <float 1.000000e+00, float 0.000000e+00>, %813
  store <2 x float> %814, ptr %16, align 8, !tbaa !9
  store <2 x float> %814, ptr %23, align 8, !tbaa !9
  %815 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %816 = call float @cabsf(<2 x float> noundef %815) #8
  %817 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %818 = insertelement <2 x float> poison, float %816, i64 0
  %819 = shufflevector <2 x float> %818, <2 x float> poison, <2 x i32> zeroinitializer
  %820 = fdiv <2 x float> %817, %819
  store <2 x float> %820, ptr %16, align 8, !tbaa !9
  store <2 x float> %820, ptr %23, align 8, !tbaa !9
  store i32 %649, ptr %15, align 4, !tbaa !5
  %821 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.07.0.vec.extract = extractelement <2 x float> %821, i64 0
  %.sroa.07.4.vec.extract = extractelement <2 x float> %821, i64 1
  %822 = fneg float %.sroa.07.4.vec.extract
  %823 = call ptr @_pCf(ptr noundef nonnull %17)
  %824 = getelementptr inbounds i8, ptr %823, i64 4
  store float %.sroa.07.0.vec.extract, ptr %823, align 4
  store float %822, ptr %824, align 4
  %825 = load i32, ptr %15, align 4, !tbaa !5
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds %struct.complex, ptr %39, i64 %826
  %828 = load float, ptr %827, align 4, !tbaa !15
  %829 = getelementptr inbounds i8, ptr %827, i64 4
  %830 = load float, ptr %829, align 4, !tbaa !17
  %831 = fneg float %830
  %832 = load <2 x float>, ptr %17, align 8, !tbaa !9
  %833 = insertelement <2 x float> poison, float %830, i64 0
  %834 = insertelement <2 x float> %833, float %831, i64 1
  %835 = fmul <2 x float> %832, %834
  %836 = shufflevector <2 x float> %835, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %837 = insertelement <2 x float> poison, float %828, i64 0
  %838 = shufflevector <2 x float> %837, <2 x float> poison, <2 x i32> zeroinitializer
  %839 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %838, <2 x float> %832, <2 x float> %836)
  store <2 x float> %839, ptr %16, align 8, !tbaa !9
  store <2 x float> %839, ptr %651, align 4, !tbaa !9
  br i1 %.not972, label %.lr.ph1032.preheader, label %840

840:                                              ; preds = %812
  store i32 %654, ptr %15, align 4, !tbaa !5
  %841 = load float, ptr %656, align 4, !tbaa !15
  %842 = load float, ptr %657, align 4, !tbaa !17
  %843 = fneg float %842
  %844 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %845 = insertelement <2 x float> poison, float %842, i64 0
  %846 = insertelement <2 x float> %845, float %843, i64 1
  %847 = fmul <2 x float> %844, %846
  %848 = shufflevector <2 x float> %847, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %849 = insertelement <2 x float> poison, float %841, i64 0
  %850 = shufflevector <2 x float> %849, <2 x float> poison, <2 x i32> zeroinitializer
  %851 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %850, <2 x float> %844, <2 x float> %848)
  store <2 x float> %851, ptr %16, align 8, !tbaa !9
  store <2 x float> %851, ptr %656, align 4, !tbaa !9
  br label %.lr.ph1032.preheader

.lr.ph1032.preheader:                             ; preds = %812, %840
  br label %.lr.ph1032

.lr.ph1032:                                       ; preds = %.lr.ph1032.preheader, %882
  %indvars.iv1109 = phi i64 [ %indvars.iv.next1110, %882 ], [ %658, %.lr.ph1032.preheader ]
  %indvars1112 = trunc i64 %indvars.iv1109 to i32
  %852 = icmp eq i64 %indvars.iv1109, %sext
  br i1 %852, label %882, label %853

853:                                              ; preds = %.lr.ph1032
  %854 = icmp slt i64 %indvars.iv1109, %659
  br i1 %854, label %855, label %863

855:                                              ; preds = %853
  %856 = trunc i64 %indvars.iv1109 to i32
  %857 = sub i32 %spec.select, %856
  store i32 %857, ptr %15, align 4, !tbaa !5
  %858 = add nsw i32 %indvars1112, 1
  %859 = mul nsw i32 %858, %37
  %860 = sext i32 %859 to i64
  %861 = getelementptr %struct.complex, ptr %39, i64 %indvars.iv1109
  %862 = getelementptr %struct.complex, ptr %861, i64 %860
  call void @cscal_(ptr noundef nonnull %15, ptr noundef nonnull %23, ptr noundef %862, ptr noundef nonnull %6) #8
  br label %863

863:                                              ; preds = %855, %853
  %864 = trunc i64 %indvars.iv1109 to i32
  %865 = sub i32 %864, %spec.select978
  store i32 %865, ptr %15, align 4, !tbaa !5
  %866 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.06.0.vec.extract = extractelement <2 x float> %866, i64 0
  %.sroa.06.4.vec.extract = extractelement <2 x float> %866, i64 1
  %867 = fneg float %.sroa.06.4.vec.extract
  %868 = call ptr @_pCf(ptr noundef nonnull %16)
  %869 = getelementptr inbounds i8, ptr %868, i64 4
  store float %.sroa.06.0.vec.extract, ptr %868, align 4
  store float %867, ptr %869, align 4
  %870 = mul nsw i64 %indvars.iv1109, %195
  %gep1139 = getelementptr %struct.complex, ptr %invariant.gep1138, i64 %870
  call void @cscal_(ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %gep1139, ptr noundef nonnull @c__1) #8
  %871 = load i32, ptr %1, align 4, !tbaa !5
  %.not975 = icmp eq i32 %871, 0
  br i1 %.not975, label %882, label %872

872:                                              ; preds = %863
  %873 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.05.0.vec.extract = extractelement <2 x float> %873, i64 0
  %.sroa.05.4.vec.extract = extractelement <2 x float> %873, i64 1
  %874 = fneg float %.sroa.05.4.vec.extract
  %875 = call ptr @_pCf(ptr noundef nonnull %16)
  %876 = getelementptr inbounds i8, ptr %875, i64 4
  store float %.sroa.05.0.vec.extract, ptr %875, align 4
  store float %874, ptr %876, align 4
  %877 = load i32, ptr %8, align 4, !tbaa !5
  %878 = mul nsw i64 %indvars.iv1109, %196
  %879 = sext i32 %877 to i64
  %880 = getelementptr %struct.complex, ptr %43, i64 %878
  %881 = getelementptr %struct.complex, ptr %880, i64 %879
  call void @cscal_(ptr noundef nonnull %33, ptr noundef nonnull %16, ptr noundef %881, ptr noundef nonnull @c__1) #8
  br label %882

882:                                              ; preds = %.lr.ph1032, %872, %863
  %indvars.iv.next1110 = add nsw i64 %indvars.iv1109, 1
  %lftr.wideiv1113 = trunc i64 %indvars.iv.next1110 to i32
  %exitcond1114.not = icmp eq i32 %218, %lftr.wideiv1113
  br i1 %exitcond1114.not, label %.loopexit, label %.lr.ph1032, !llvm.loop !24

.loopexit:                                        ; preds = %882, %.loopexit982
  %indvars.iv.next1094 = add nsw i64 %indvars.iv1093, 1
  %883 = load i32, ptr %14, align 4, !tbaa !5
  %884 = sext i32 %883 to i64
  %.not965.not = icmp slt i64 %indvars.iv1093, %884
  br i1 %.not965.not, label %661, label %._crit_edge1039, !llvm.loop !25

._crit_edge1039:                                  ; preds = %.loopexit, %.loopexit983
  store i32 %200, ptr %14, align 4, !tbaa !5
  %885 = load <2 x float>, ptr %202, align 4, !tbaa !9
  store <2 x float> %885, ptr %23, align 8, !tbaa !9
  %886 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.04.4.vec.extract = extractelement <2 x float> %886, i64 1
  %887 = fcmp une float %.sroa.04.4.vec.extract, 0.000000e+00
  br i1 %887, label %888, label %913

888:                                              ; preds = %._crit_edge1039
  %889 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %890 = call float @cabsf(<2 x float> noundef %889) #8
  store float %890, ptr %202, align 4, !tbaa !15
  store float 0.000000e+00, ptr %217, align 4, !tbaa !17
  %891 = load <2 x float>, ptr %23, align 8, !tbaa !9
  %892 = insertelement <2 x float> poison, float %890, i64 0
  %893 = shufflevector <2 x float> %892, <2 x float> poison, <2 x i32> zeroinitializer
  %894 = fdiv <2 x float> %891, %893
  store <2 x float> %894, ptr %16, align 8, !tbaa !9
  store <2 x float> %894, ptr %23, align 8, !tbaa !9
  %895 = icmp sgt i32 %spec.select, %.11064
  br i1 %895, label %896, label %902

896:                                              ; preds = %888
  %897 = sub nsw i32 %spec.select, %.11064
  store i32 %897, ptr %14, align 4, !tbaa !5
  %898 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %898, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %898, i64 1
  %899 = fneg float %.sroa.0.4.vec.extract
  %900 = call ptr @_pCf(ptr noundef nonnull %16)
  %901 = getelementptr inbounds i8, ptr %900, i64 4
  store float %.sroa.0.0.vec.extract, ptr %900, align 4
  store float %899, ptr %901, align 4
  call void @cscal_(ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %222, ptr noundef nonnull %6) #8
  br label %902

902:                                              ; preds = %896, %888
  %903 = sub nsw i32 %.11064, %spec.select978
  store i32 %903, ptr %14, align 4, !tbaa !5
  %904 = add nsw i32 %spec.select978, %207
  %905 = sext i32 %904 to i64
  %906 = getelementptr inbounds %struct.complex, ptr %39, i64 %905
  call void @cscal_(ptr noundef nonnull %14, ptr noundef nonnull %23, ptr noundef %906, ptr noundef nonnull @c__1) #8
  %907 = load i32, ptr %1, align 4, !tbaa !5
  %.not966 = icmp eq i32 %907, 0
  br i1 %.not966, label %913, label %908

908:                                              ; preds = %902
  %909 = load i32, ptr %8, align 4, !tbaa !5
  %910 = add nsw i32 %909, %223
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds %struct.complex, ptr %43, i64 %911
  call void @cscal_(ptr noundef nonnull %33, ptr noundef nonnull %23, ptr noundef %912, ptr noundef nonnull @c__1) #8
  br label %913

913:                                              ; preds = %._crit_edge1039, %908, %902
  %914 = add nuw nsw i32 %.09371044, 1
  %exitcond1118.not = icmp eq i32 %.09371044, %184
  br i1 %exitcond1118.not, label %.preheader._crit_edge, label %226, !llvm.loop !26

.preheader._crit_edge:                            ; preds = %913, %.preheader.lr.ph
  %.1.lcssa996 = phi i32 [ %185, %.preheader.lr.ph ], [ %.11064, %913 ]
  store i32 %.1.lcssa996, ptr %12, align 4, !tbaa !5
  br label %.loopexit984

915:                                              ; preds = %403
  store i32 %203, ptr %14, align 4, !tbaa !5
  %916 = getelementptr inbounds %struct.complex, ptr %40, i64 %224
  %917 = load <2 x float>, ptr %205, align 4, !tbaa !9
  store <2 x float> %917, ptr %916, align 4, !tbaa !9
  %918 = add nsw i32 %.0923.lcssa, -1
  br i1 %396, label %.preheader, label %.loopexit984

.loopexit984:                                     ; preds = %915, %181, %13, %.preheader._crit_edge, %50
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  ret void
}

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

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

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

; Function Attrs: nounwind
declare float @cabsf(<2 x float> noundef) local_unnamed_addr #4

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

declare float @slamch_(ptr noundef) local_unnamed_addr #5

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

; Function Attrs: nounwind
declare <2 x float> @csqrtf(<2 x float> noundef) local_unnamed_addr #4

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

; Function Attrs: nounwind uwtable
declare hidden <2 x float> @cpow_ui(<2 x float> noundef, i32 noundef) local_unnamed_addr #0

declare void @cladiv_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

declare void @ccopy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

declare void @clarfg_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

; 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.smin.i32(i32, i32) #7

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

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 = { 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 #3 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.unroll.disable"}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!16, !10, i64 0}
!16 = !{!"", !10, i64 0, !10, i64 4}
!17 = !{!16, !10, i64 4}
!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}


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