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

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

%struct.complex = type { float, float }

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

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

105:                                              ; preds = %6
  %106 = load ptr, ptr %7, align 8, !tbaa !5
  %107 = call i32 @lsame_(ptr noundef %106, ptr noundef @.str.1)
  %108 = icmp ne i32 %107, 0
  br i1 %108, label %111, label %109

109:                                              ; preds = %105
  %110 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 -1, ptr %110, align 4, !tbaa !9
  br label %134

111:                                              ; preds = %105, %6
  %112 = load ptr, ptr %8, align 8, !tbaa !5
  %113 = load i32, ptr %112, align 4, !tbaa !9
  %114 = icmp slt i32 %113, 0
  br i1 %114, label %115, label %117

115:                                              ; preds = %111
  %116 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 -2, ptr %116, align 4, !tbaa !9
  br label %133

117:                                              ; preds = %111
  %118 = load ptr, ptr %10, align 8, !tbaa !5
  %119 = load i32, ptr %118, align 4, !tbaa !9
  %120 = load ptr, ptr %8, align 8, !tbaa !5
  %121 = load i32, ptr %120, align 4, !tbaa !9
  %122 = icmp sge i32 1, %121
  br i1 %122, label %123, label %124

123:                                              ; preds = %117
  br label %127

124:                                              ; preds = %117
  %125 = load ptr, ptr %8, align 8, !tbaa !5
  %126 = load i32, ptr %125, align 4, !tbaa !9
  br label %127

127:                                              ; preds = %124, %123
  %128 = phi i32 [ 1, %123 ], [ %126, %124 ]
  %129 = icmp slt i32 %119, %128
  br i1 %129, label %130, label %132

130:                                              ; preds = %127
  %131 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 -4, ptr %131, align 4, !tbaa !9
  br label %132

132:                                              ; preds = %130, %127
  br label %133

133:                                              ; preds = %132, %115
  br label %134

134:                                              ; preds = %133, %109
  %135 = load ptr, ptr %12, align 8, !tbaa !5
  %136 = load i32, ptr %135, align 4, !tbaa !9
  %137 = icmp ne i32 %136, 0
  br i1 %137, label %138, label %143

138:                                              ; preds = %134
  %139 = load ptr, ptr %12, align 8, !tbaa !5
  %140 = load i32, ptr %139, align 4, !tbaa !9
  %141 = sub nsw i32 0, %140
  store i32 %141, ptr %15, align 4, !tbaa !9
  %142 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef %15, i32 noundef 11)
  store i32 1, ptr %61, align 4
  br label %3557

143:                                              ; preds = %134
  %144 = call double @sqrt(double noundef 1.700000e+01) #7
  %145 = fadd double %144, 1.000000e+00
  %146 = fdiv double %145, 8.000000e+00
  %147 = fptrunc double %146 to float
  store float %147, ptr %40, align 4, !tbaa !11
  %148 = call float @slamch_(ptr noundef @.str.3)
  store float %148, ptr %41, align 4, !tbaa !11
  %149 = load i32, ptr %45, align 4, !tbaa !9
  %150 = icmp ne i32 %149, 0
  br i1 %150, label %151, label %1831

151:                                              ; preds = %143
  %152 = load ptr, ptr %8, align 8, !tbaa !5
  %153 = load i32, ptr %152, align 4, !tbaa !9
  store i32 %153, ptr %37, align 4, !tbaa !9
  br label %154

154:                                              ; preds = %1827, %151
  %155 = load i32, ptr %37, align 4, !tbaa !9
  %156 = icmp slt i32 %155, 1
  br i1 %156, label %157, label %158

157:                                              ; preds = %154
  br label %3556

158:                                              ; preds = %154
  store i32 1, ptr %43, align 4, !tbaa !9
  %159 = load i32, ptr %37, align 4, !tbaa !9
  store i32 %159, ptr %38, align 4, !tbaa !9
  %160 = load i32, ptr %37, align 4, !tbaa !9
  %161 = load i32, ptr %37, align 4, !tbaa !9
  %162 = load i32, ptr %13, align 4, !tbaa !9
  %163 = mul nsw i32 %161, %162
  %164 = add nsw i32 %160, %163
  store i32 %164, ptr %15, align 4, !tbaa !9
  %165 = load ptr, ptr %9, align 8, !tbaa !5
  %166 = load i32, ptr %15, align 4, !tbaa !9
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds %struct.complex, ptr %165, i64 %167
  %169 = getelementptr inbounds %struct.complex, ptr %168, i32 0, i32 0
  %170 = load float, ptr %169, align 4, !tbaa !13
  store float %170, ptr %21, align 4, !tbaa !11
  %171 = load float, ptr %21, align 4, !tbaa !11
  %172 = fcmp oge float %171, 0.000000e+00
  br i1 %172, label %173, label %175

173:                                              ; preds = %158
  %174 = load float, ptr %21, align 4, !tbaa !11
  br label %178

175:                                              ; preds = %158
  %176 = load float, ptr %21, align 4, !tbaa !11
  %177 = fneg float %176
  br label %178

178:                                              ; preds = %175, %173
  %179 = phi float [ %174, %173 ], [ %177, %175 ]
  store float %179, ptr %54, align 4, !tbaa !11
  %180 = load i32, ptr %37, align 4, !tbaa !9
  %181 = icmp sgt i32 %180, 1
  br i1 %181, label %182, label %236

182:                                              ; preds = %178
  %183 = load i32, ptr %37, align 4, !tbaa !9
  %184 = sub nsw i32 %183, 1
  store i32 %184, ptr %15, align 4, !tbaa !9
  %185 = load ptr, ptr %9, align 8, !tbaa !5
  %186 = load i32, ptr %37, align 4, !tbaa !9
  %187 = load i32, ptr %13, align 4, !tbaa !9
  %188 = mul nsw i32 %186, %187
  %189 = add nsw i32 %188, 1
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds %struct.complex, ptr %185, i64 %190
  %192 = call i32 @icamax_(ptr noundef %15, ptr noundef %191, ptr noundef @c__1)
  store i32 %192, ptr %32, align 4, !tbaa !9
  %193 = load i32, ptr %32, align 4, !tbaa !9
  %194 = load i32, ptr %37, align 4, !tbaa !9
  %195 = load i32, ptr %13, align 4, !tbaa !9
  %196 = mul nsw i32 %194, %195
  %197 = add nsw i32 %193, %196
  store i32 %197, ptr %15, align 4, !tbaa !9
  %198 = load ptr, ptr %9, align 8, !tbaa !5
  %199 = load i32, ptr %15, align 4, !tbaa !9
  %200 = sext i32 %199 to i64
  %201 = getelementptr inbounds %struct.complex, ptr %198, i64 %200
  %202 = getelementptr inbounds %struct.complex, ptr %201, i32 0, i32 0
  %203 = load float, ptr %202, align 4, !tbaa !13
  store float %203, ptr %21, align 4, !tbaa !11
  %204 = load float, ptr %21, align 4, !tbaa !11
  %205 = fcmp oge float %204, 0.000000e+00
  br i1 %205, label %206, label %208

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

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

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

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

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

233:                                              ; preds = %230, %228
  %234 = phi float [ %229, %228 ], [ %232, %230 ]
  %235 = fadd float %212, %234
  store float %235, ptr %57, align 4, !tbaa !11
  br label %237

236:                                              ; preds = %178
  store float 0.000000e+00, ptr %57, align 4, !tbaa !11
  br label %237

237:                                              ; preds = %236, %233
  %238 = load float, ptr %54, align 4, !tbaa !11
  %239 = load float, ptr %57, align 4, !tbaa !11
  %240 = fcmp oge float %238, %239
  br i1 %240, label %241, label %243

241:                                              ; preds = %237
  %242 = load float, ptr %54, align 4, !tbaa !11
  br label %245

243:                                              ; preds = %237
  %244 = load float, ptr %57, align 4, !tbaa !11
  br label %245

245:                                              ; preds = %243, %241
  %246 = phi float [ %242, %241 ], [ %244, %243 ]
  %247 = fcmp oeq float %246, 0.000000e+00
  br i1 %247, label %248, label %284

248:                                              ; preds = %245
  %249 = load ptr, ptr %12, align 8, !tbaa !5
  %250 = load i32, ptr %249, align 4, !tbaa !9
  %251 = icmp eq i32 %250, 0
  br i1 %251, label %252, label %255

252:                                              ; preds = %248
  %253 = load i32, ptr %37, align 4, !tbaa !9
  %254 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %253, ptr %254, align 4, !tbaa !9
  br label %255

255:                                              ; preds = %252, %248
  %256 = load i32, ptr %37, align 4, !tbaa !9
  store i32 %256, ptr %53, align 4, !tbaa !9
  %257 = load i32, ptr %37, align 4, !tbaa !9
  %258 = load i32, ptr %37, align 4, !tbaa !9
  %259 = load i32, ptr %13, align 4, !tbaa !9
  %260 = mul nsw i32 %258, %259
  %261 = add nsw i32 %257, %260
  store i32 %261, ptr %15, align 4, !tbaa !9
  %262 = load i32, ptr %37, align 4, !tbaa !9
  %263 = load i32, ptr %37, align 4, !tbaa !9
  %264 = load i32, ptr %13, align 4, !tbaa !9
  %265 = mul nsw i32 %263, %264
  %266 = add nsw i32 %262, %265
  store i32 %266, ptr %16, align 4, !tbaa !9
  %267 = load ptr, ptr %9, align 8, !tbaa !5
  %268 = load i32, ptr %16, align 4, !tbaa !9
  %269 = sext i32 %268 to i64
  %270 = getelementptr inbounds %struct.complex, ptr %267, i64 %269
  %271 = getelementptr inbounds %struct.complex, ptr %270, i32 0, i32 0
  %272 = load float, ptr %271, align 4, !tbaa !13
  store float %272, ptr %21, align 4, !tbaa !11
  %273 = load float, ptr %21, align 4, !tbaa !11
  %274 = load ptr, ptr %9, align 8, !tbaa !5
  %275 = load i32, ptr %15, align 4, !tbaa !9
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds %struct.complex, ptr %274, i64 %276
  %278 = getelementptr inbounds %struct.complex, ptr %277, i32 0, i32 0
  store float %273, ptr %278, align 4, !tbaa !13
  %279 = load ptr, ptr %9, align 8, !tbaa !5
  %280 = load i32, ptr %15, align 4, !tbaa !9
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds %struct.complex, ptr %279, i64 %281
  %283 = getelementptr inbounds %struct.complex, ptr %282, i32 0, i32 1
  store float 0.000000e+00, ptr %283, align 4, !tbaa !15
  br label %1804

284:                                              ; preds = %245
  %285 = load float, ptr %54, align 4, !tbaa !11
  %286 = load float, ptr %40, align 4, !tbaa !11
  %287 = load float, ptr %57, align 4, !tbaa !11
  %288 = fmul float %286, %287
  %289 = fcmp olt float %285, %288
  br i1 %289, label %292, label %290

290:                                              ; preds = %284
  %291 = load i32, ptr %37, align 4, !tbaa !9
  store i32 %291, ptr %53, align 4, !tbaa !9
  br label %469

292:                                              ; preds = %284
  store i32 0, ptr %31, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %467, %292
  %294 = load i32, ptr %32, align 4, !tbaa !9
  %295 = load i32, ptr %37, align 4, !tbaa !9
  %296 = icmp ne i32 %294, %295
  br i1 %296, label %297, label %357

297:                                              ; preds = %293
  %298 = load i32, ptr %37, align 4, !tbaa !9
  %299 = load i32, ptr %32, align 4, !tbaa !9
  %300 = sub nsw i32 %298, %299
  store i32 %300, ptr %15, align 4, !tbaa !9
  %301 = load i32, ptr %32, align 4, !tbaa !9
  %302 = load ptr, ptr %9, align 8, !tbaa !5
  %303 = load i32, ptr %32, align 4, !tbaa !9
  %304 = load i32, ptr %32, align 4, !tbaa !9
  %305 = add nsw i32 %304, 1
  %306 = load i32, ptr %13, align 4, !tbaa !9
  %307 = mul nsw i32 %305, %306
  %308 = add nsw i32 %303, %307
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds %struct.complex, ptr %302, i64 %309
  %311 = load ptr, ptr %10, align 8, !tbaa !5
  %312 = call i32 @icamax_(ptr noundef %15, ptr noundef %310, ptr noundef %311)
  %313 = add nsw i32 %301, %312
  store i32 %313, ptr %33, align 4, !tbaa !9
  %314 = load i32, ptr %32, align 4, !tbaa !9
  %315 = load i32, ptr %33, align 4, !tbaa !9
  %316 = load i32, ptr %13, align 4, !tbaa !9
  %317 = mul nsw i32 %315, %316
  %318 = add nsw i32 %314, %317
  store i32 %318, ptr %15, align 4, !tbaa !9
  %319 = load ptr, ptr %9, align 8, !tbaa !5
  %320 = load i32, ptr %15, align 4, !tbaa !9
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds %struct.complex, ptr %319, i64 %321
  %323 = getelementptr inbounds %struct.complex, ptr %322, i32 0, i32 0
  %324 = load float, ptr %323, align 4, !tbaa !13
  store float %324, ptr %21, align 4, !tbaa !11
  %325 = load float, ptr %21, align 4, !tbaa !11
  %326 = fcmp oge float %325, 0.000000e+00
  br i1 %326, label %327, label %329

327:                                              ; preds = %297
  %328 = load float, ptr %21, align 4, !tbaa !11
  br label %332

329:                                              ; preds = %297
  %330 = load float, ptr %21, align 4, !tbaa !11
  %331 = fneg float %330
  br label %332

332:                                              ; preds = %329, %327
  %333 = phi float [ %328, %327 ], [ %331, %329 ]
  %334 = load ptr, ptr %9, align 8, !tbaa !5
  %335 = load i32, ptr %32, align 4, !tbaa !9
  %336 = load i32, ptr %33, align 4, !tbaa !9
  %337 = load i32, ptr %13, align 4, !tbaa !9
  %338 = mul nsw i32 %336, %337
  %339 = add nsw i32 %335, %338
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds %struct.complex, ptr %334, i64 %340
  %342 = call <2 x float> @Cf(ptr noundef %341)
  store <2 x float> %342, ptr %63, align 4
  %343 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 0
  %344 = load float, ptr %343, align 4
  %345 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 1
  %346 = load float, ptr %345, align 4
  store float %346, ptr %22, align 4, !tbaa !11
  %347 = load float, ptr %22, align 4, !tbaa !11
  %348 = fcmp oge float %347, 0.000000e+00
  br i1 %348, label %349, label %351

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

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

354:                                              ; preds = %351, %349
  %355 = phi float [ %350, %349 ], [ %353, %351 ]
  %356 = fadd float %333, %355
  store float %356, ptr %58, align 4, !tbaa !11
  br label %358

357:                                              ; preds = %293
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  br label %358

358:                                              ; preds = %357, %354
  %359 = load i32, ptr %32, align 4, !tbaa !9
  %360 = icmp sgt i32 %359, 1
  br i1 %360, label %361, label %422

361:                                              ; preds = %358
  %362 = load i32, ptr %32, align 4, !tbaa !9
  %363 = sub nsw i32 %362, 1
  store i32 %363, ptr %15, align 4, !tbaa !9
  %364 = load ptr, ptr %9, align 8, !tbaa !5
  %365 = load i32, ptr %32, align 4, !tbaa !9
  %366 = load i32, ptr %13, align 4, !tbaa !9
  %367 = mul nsw i32 %365, %366
  %368 = add nsw i32 %367, 1
  %369 = sext i32 %368 to i64
  %370 = getelementptr inbounds %struct.complex, ptr %364, i64 %369
  %371 = call i32 @icamax_(ptr noundef %15, ptr noundef %370, ptr noundef @c__1)
  store i32 %371, ptr %42, align 4, !tbaa !9
  %372 = load i32, ptr %42, align 4, !tbaa !9
  %373 = load i32, ptr %32, align 4, !tbaa !9
  %374 = load i32, ptr %13, align 4, !tbaa !9
  %375 = mul nsw i32 %373, %374
  %376 = add nsw i32 %372, %375
  store i32 %376, ptr %15, align 4, !tbaa !9
  %377 = load ptr, ptr %9, align 8, !tbaa !5
  %378 = load i32, ptr %15, align 4, !tbaa !9
  %379 = sext i32 %378 to i64
  %380 = getelementptr inbounds %struct.complex, ptr %377, i64 %379
  %381 = getelementptr inbounds %struct.complex, ptr %380, i32 0, i32 0
  %382 = load float, ptr %381, align 4, !tbaa !13
  store float %382, ptr %21, align 4, !tbaa !11
  %383 = load float, ptr %21, align 4, !tbaa !11
  %384 = fcmp oge float %383, 0.000000e+00
  br i1 %384, label %385, label %387

385:                                              ; preds = %361
  %386 = load float, ptr %21, align 4, !tbaa !11
  br label %390

387:                                              ; preds = %361
  %388 = load float, ptr %21, align 4, !tbaa !11
  %389 = fneg float %388
  br label %390

390:                                              ; preds = %387, %385
  %391 = phi float [ %386, %385 ], [ %389, %387 ]
  %392 = load ptr, ptr %9, align 8, !tbaa !5
  %393 = load i32, ptr %42, align 4, !tbaa !9
  %394 = load i32, ptr %32, align 4, !tbaa !9
  %395 = load i32, ptr %13, align 4, !tbaa !9
  %396 = mul nsw i32 %394, %395
  %397 = add nsw i32 %393, %396
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds %struct.complex, ptr %392, i64 %398
  %400 = call <2 x float> @Cf(ptr noundef %399)
  store <2 x float> %400, ptr %64, align 4
  %401 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 0
  %402 = load float, ptr %401, align 4
  %403 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 1
  %404 = load float, ptr %403, align 4
  store float %404, ptr %22, align 4, !tbaa !11
  %405 = load float, ptr %22, align 4, !tbaa !11
  %406 = fcmp oge float %405, 0.000000e+00
  br i1 %406, label %407, label %409

407:                                              ; preds = %390
  %408 = load float, ptr %22, align 4, !tbaa !11
  br label %412

409:                                              ; preds = %390
  %410 = load float, ptr %22, align 4, !tbaa !11
  %411 = fneg float %410
  br label %412

412:                                              ; preds = %409, %407
  %413 = phi float [ %408, %407 ], [ %411, %409 ]
  %414 = fadd float %391, %413
  store float %414, ptr %44, align 4, !tbaa !11
  %415 = load float, ptr %44, align 4, !tbaa !11
  %416 = load float, ptr %58, align 4, !tbaa !11
  %417 = fcmp ogt float %415, %416
  br i1 %417, label %418, label %421

418:                                              ; preds = %412
  %419 = load float, ptr %44, align 4, !tbaa !11
  store float %419, ptr %58, align 4, !tbaa !11
  %420 = load i32, ptr %42, align 4, !tbaa !9
  store i32 %420, ptr %33, align 4, !tbaa !9
  br label %421

421:                                              ; preds = %418, %412
  br label %422

422:                                              ; preds = %421, %358
  %423 = load i32, ptr %32, align 4, !tbaa !9
  %424 = load i32, ptr %32, align 4, !tbaa !9
  %425 = load i32, ptr %13, align 4, !tbaa !9
  %426 = mul nsw i32 %424, %425
  %427 = add nsw i32 %423, %426
  store i32 %427, ptr %15, align 4, !tbaa !9
  %428 = load ptr, ptr %9, align 8, !tbaa !5
  %429 = load i32, ptr %15, align 4, !tbaa !9
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds %struct.complex, ptr %428, i64 %430
  %432 = getelementptr inbounds %struct.complex, ptr %431, i32 0, i32 0
  %433 = load float, ptr %432, align 4, !tbaa !13
  store float %433, ptr %21, align 4, !tbaa !11
  %434 = load float, ptr %21, align 4, !tbaa !11
  %435 = fcmp oge float %434, 0.000000e+00
  br i1 %435, label %436, label %438

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

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

441:                                              ; preds = %438, %436
  %442 = phi float [ %437, %436 ], [ %440, %438 ]
  %443 = load float, ptr %40, align 4, !tbaa !11
  %444 = load float, ptr %58, align 4, !tbaa !11
  %445 = fmul float %443, %444
  %446 = fcmp olt float %442, %445
  br i1 %446, label %449, label %447

447:                                              ; preds = %441
  %448 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %448, ptr %53, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %464

449:                                              ; preds = %441
  %450 = load i32, ptr %38, align 4, !tbaa !9
  %451 = load i32, ptr %33, align 4, !tbaa !9
  %452 = icmp eq i32 %450, %451
  br i1 %452, label %457, label %453

453:                                              ; preds = %449
  %454 = load float, ptr %58, align 4, !tbaa !11
  %455 = load float, ptr %57, align 4, !tbaa !11
  %456 = fcmp ole float %454, %455
  br i1 %456, label %457, label %459

457:                                              ; preds = %453, %449
  %458 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %458, ptr %53, align 4, !tbaa !9
  store i32 2, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %463

459:                                              ; preds = %453
  %460 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %460, ptr %38, align 4, !tbaa !9
  %461 = load float, ptr %58, align 4, !tbaa !11
  store float %461, ptr %57, align 4, !tbaa !11
  %462 = load i32, ptr %33, align 4, !tbaa !9
  store i32 %462, ptr %32, align 4, !tbaa !9
  br label %463

463:                                              ; preds = %459, %457
  br label %464

464:                                              ; preds = %463, %447
  %465 = load i32, ptr %31, align 4, !tbaa !9
  %466 = icmp ne i32 %465, 0
  br i1 %466, label %468, label %467

467:                                              ; preds = %464
  br label %293

468:                                              ; preds = %464
  br label %469

469:                                              ; preds = %468, %290
  %470 = load i32, ptr %37, align 4, !tbaa !9
  %471 = load i32, ptr %43, align 4, !tbaa !9
  %472 = sub nsw i32 %470, %471
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr %52, align 4, !tbaa !9
  %474 = load i32, ptr %43, align 4, !tbaa !9
  %475 = icmp eq i32 %474, 2
  br i1 %475, label %476, label %682

476:                                              ; preds = %469
  %477 = load i32, ptr %38, align 4, !tbaa !9
  %478 = load i32, ptr %37, align 4, !tbaa !9
  %479 = icmp ne i32 %477, %478
  br i1 %479, label %480, label %682

480:                                              ; preds = %476
  %481 = load i32, ptr %38, align 4, !tbaa !9
  %482 = icmp sgt i32 %481, 1
  br i1 %482, label %483, label %500

483:                                              ; preds = %480
  %484 = load i32, ptr %38, align 4, !tbaa !9
  %485 = sub nsw i32 %484, 1
  store i32 %485, ptr %15, align 4, !tbaa !9
  %486 = load ptr, ptr %9, align 8, !tbaa !5
  %487 = load i32, ptr %37, align 4, !tbaa !9
  %488 = load i32, ptr %13, align 4, !tbaa !9
  %489 = mul nsw i32 %487, %488
  %490 = add nsw i32 %489, 1
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds %struct.complex, ptr %486, i64 %491
  %493 = load ptr, ptr %9, align 8, !tbaa !5
  %494 = load i32, ptr %38, align 4, !tbaa !9
  %495 = load i32, ptr %13, align 4, !tbaa !9
  %496 = mul nsw i32 %494, %495
  %497 = add nsw i32 %496, 1
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds %struct.complex, ptr %493, i64 %498
  call void @cswap_(ptr noundef %15, ptr noundef %492, ptr noundef @c__1, ptr noundef %499, ptr noundef @c__1)
  br label %500

500:                                              ; preds = %483, %480
  %501 = load i32, ptr %37, align 4, !tbaa !9
  %502 = sub nsw i32 %501, 1
  store i32 %502, ptr %15, align 4, !tbaa !9
  %503 = load i32, ptr %38, align 4, !tbaa !9
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr %36, align 4, !tbaa !9
  br label %505

505:                                              ; preds = %588, %500
  %506 = load i32, ptr %36, align 4, !tbaa !9
  %507 = load i32, ptr %15, align 4, !tbaa !9
  %508 = icmp sle i32 %506, %507
  br i1 %508, label %509, label %591

509:                                              ; preds = %505
  %510 = load ptr, ptr %9, align 8, !tbaa !5
  %511 = load i32, ptr %36, align 4, !tbaa !9
  %512 = load i32, ptr %37, align 4, !tbaa !9
  %513 = load i32, ptr %13, align 4, !tbaa !9
  %514 = mul nsw i32 %512, %513
  %515 = add nsw i32 %511, %514
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds %struct.complex, ptr %510, i64 %516
  %518 = call <2 x float> @Cf(ptr noundef %517)
  store <2 x float> %518, ptr %65, align 4
  %519 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 0
  %520 = load float, ptr %519, align 4
  %521 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 1
  %522 = load float, ptr %521, align 4
  %523 = fneg float %522
  %524 = call ptr @_pCf(ptr noundef %23)
  %525 = getelementptr inbounds { float, float }, ptr %524, i32 0, i32 0
  %526 = getelementptr inbounds { float, float }, ptr %524, i32 0, i32 1
  store float %520, ptr %525, align 4
  store float %523, ptr %526, align 4
  %527 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %528 = load float, ptr %527, align 4, !tbaa !13
  %529 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %528, ptr %529, align 4, !tbaa !13
  %530 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %531 = load float, ptr %530, align 4, !tbaa !15
  %532 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %531, ptr %532, align 4, !tbaa !15
  %533 = load i32, ptr %36, align 4, !tbaa !9
  %534 = load i32, ptr %37, align 4, !tbaa !9
  %535 = load i32, ptr %13, align 4, !tbaa !9
  %536 = mul nsw i32 %534, %535
  %537 = add nsw i32 %533, %536
  store i32 %537, ptr %16, align 4, !tbaa !9
  %538 = load ptr, ptr %9, align 8, !tbaa !5
  %539 = load i32, ptr %38, align 4, !tbaa !9
  %540 = load i32, ptr %36, align 4, !tbaa !9
  %541 = load i32, ptr %13, align 4, !tbaa !9
  %542 = mul nsw i32 %540, %541
  %543 = add nsw i32 %539, %542
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds %struct.complex, ptr %538, i64 %544
  %546 = call <2 x float> @Cf(ptr noundef %545)
  store <2 x float> %546, ptr %66, align 4
  %547 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 0
  %548 = load float, ptr %547, align 4
  %549 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 1
  %550 = load float, ptr %549, align 4
  %551 = fneg float %550
  %552 = call ptr @_pCf(ptr noundef %23)
  %553 = getelementptr inbounds { float, float }, ptr %552, i32 0, i32 0
  %554 = getelementptr inbounds { float, float }, ptr %552, i32 0, i32 1
  store float %548, ptr %553, align 4
  store float %551, ptr %554, align 4
  %555 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %556 = load float, ptr %555, align 4, !tbaa !13
  %557 = load ptr, ptr %9, align 8, !tbaa !5
  %558 = load i32, ptr %16, align 4, !tbaa !9
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds %struct.complex, ptr %557, i64 %559
  %561 = getelementptr inbounds %struct.complex, ptr %560, i32 0, i32 0
  store float %556, ptr %561, align 4, !tbaa !13
  %562 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %563 = load float, ptr %562, align 4, !tbaa !15
  %564 = load ptr, ptr %9, align 8, !tbaa !5
  %565 = load i32, ptr %16, align 4, !tbaa !9
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds %struct.complex, ptr %564, i64 %566
  %568 = getelementptr inbounds %struct.complex, ptr %567, i32 0, i32 1
  store float %563, ptr %568, align 4, !tbaa !15
  %569 = load i32, ptr %38, align 4, !tbaa !9
  %570 = load i32, ptr %36, align 4, !tbaa !9
  %571 = load i32, ptr %13, align 4, !tbaa !9
  %572 = mul nsw i32 %570, %571
  %573 = add nsw i32 %569, %572
  store i32 %573, ptr %16, align 4, !tbaa !9
  %574 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %575 = load float, ptr %574, align 4, !tbaa !13
  %576 = load ptr, ptr %9, align 8, !tbaa !5
  %577 = load i32, ptr %16, align 4, !tbaa !9
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds %struct.complex, ptr %576, i64 %578
  %580 = getelementptr inbounds %struct.complex, ptr %579, i32 0, i32 0
  store float %575, ptr %580, align 4, !tbaa !13
  %581 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %582 = load float, ptr %581, align 4, !tbaa !15
  %583 = load ptr, ptr %9, align 8, !tbaa !5
  %584 = load i32, ptr %16, align 4, !tbaa !9
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds %struct.complex, ptr %583, i64 %585
  %587 = getelementptr inbounds %struct.complex, ptr %586, i32 0, i32 1
  store float %582, ptr %587, align 4, !tbaa !15
  br label %588

588:                                              ; preds = %509
  %589 = load i32, ptr %36, align 4, !tbaa !9
  %590 = add nsw i32 %589, 1
  store i32 %590, ptr %36, align 4, !tbaa !9
  br label %505, !llvm.loop !16

591:                                              ; preds = %505
  %592 = load i32, ptr %38, align 4, !tbaa !9
  %593 = load i32, ptr %37, align 4, !tbaa !9
  %594 = load i32, ptr %13, align 4, !tbaa !9
  %595 = mul nsw i32 %593, %594
  %596 = add nsw i32 %592, %595
  store i32 %596, ptr %15, align 4, !tbaa !9
  %597 = load ptr, ptr %9, align 8, !tbaa !5
  %598 = load i32, ptr %38, align 4, !tbaa !9
  %599 = load i32, ptr %37, align 4, !tbaa !9
  %600 = load i32, ptr %13, align 4, !tbaa !9
  %601 = mul nsw i32 %599, %600
  %602 = add nsw i32 %598, %601
  %603 = sext i32 %602 to i64
  %604 = getelementptr inbounds %struct.complex, ptr %597, i64 %603
  %605 = call <2 x float> @Cf(ptr noundef %604)
  store <2 x float> %605, ptr %67, align 4
  %606 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 0
  %607 = load float, ptr %606, align 4
  %608 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 1
  %609 = load float, ptr %608, align 4
  %610 = fneg float %609
  %611 = call ptr @_pCf(ptr noundef %23)
  %612 = getelementptr inbounds { float, float }, ptr %611, i32 0, i32 0
  %613 = getelementptr inbounds { float, float }, ptr %611, i32 0, i32 1
  store float %607, ptr %612, align 4
  store float %610, ptr %613, align 4
  %614 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %615 = load float, ptr %614, align 4, !tbaa !13
  %616 = load ptr, ptr %9, align 8, !tbaa !5
  %617 = load i32, ptr %15, align 4, !tbaa !9
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds %struct.complex, ptr %616, i64 %618
  %620 = getelementptr inbounds %struct.complex, ptr %619, i32 0, i32 0
  store float %615, ptr %620, align 4, !tbaa !13
  %621 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %622 = load float, ptr %621, align 4, !tbaa !15
  %623 = load ptr, ptr %9, align 8, !tbaa !5
  %624 = load i32, ptr %15, align 4, !tbaa !9
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds %struct.complex, ptr %623, i64 %625
  %627 = getelementptr inbounds %struct.complex, ptr %626, i32 0, i32 1
  store float %622, ptr %627, align 4, !tbaa !15
  %628 = load i32, ptr %37, align 4, !tbaa !9
  %629 = load i32, ptr %37, align 4, !tbaa !9
  %630 = load i32, ptr %13, align 4, !tbaa !9
  %631 = mul nsw i32 %629, %630
  %632 = add nsw i32 %628, %631
  store i32 %632, ptr %15, align 4, !tbaa !9
  %633 = load ptr, ptr %9, align 8, !tbaa !5
  %634 = load i32, ptr %15, align 4, !tbaa !9
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds %struct.complex, ptr %633, i64 %635
  %637 = getelementptr inbounds %struct.complex, ptr %636, i32 0, i32 0
  %638 = load float, ptr %637, align 4, !tbaa !13
  store float %638, ptr %46, align 4, !tbaa !11
  %639 = load i32, ptr %37, align 4, !tbaa !9
  %640 = load i32, ptr %37, align 4, !tbaa !9
  %641 = load i32, ptr %13, align 4, !tbaa !9
  %642 = mul nsw i32 %640, %641
  %643 = add nsw i32 %639, %642
  store i32 %643, ptr %15, align 4, !tbaa !9
  %644 = load i32, ptr %38, align 4, !tbaa !9
  %645 = load i32, ptr %38, align 4, !tbaa !9
  %646 = load i32, ptr %13, align 4, !tbaa !9
  %647 = mul nsw i32 %645, %646
  %648 = add nsw i32 %644, %647
  store i32 %648, ptr %16, align 4, !tbaa !9
  %649 = load ptr, ptr %9, align 8, !tbaa !5
  %650 = load i32, ptr %16, align 4, !tbaa !9
  %651 = sext i32 %650 to i64
  %652 = getelementptr inbounds %struct.complex, ptr %649, i64 %651
  %653 = getelementptr inbounds %struct.complex, ptr %652, i32 0, i32 0
  %654 = load float, ptr %653, align 4, !tbaa !13
  store float %654, ptr %21, align 4, !tbaa !11
  %655 = load float, ptr %21, align 4, !tbaa !11
  %656 = load ptr, ptr %9, align 8, !tbaa !5
  %657 = load i32, ptr %15, align 4, !tbaa !9
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds %struct.complex, ptr %656, i64 %658
  %660 = getelementptr inbounds %struct.complex, ptr %659, i32 0, i32 0
  store float %655, ptr %660, align 4, !tbaa !13
  %661 = load ptr, ptr %9, align 8, !tbaa !5
  %662 = load i32, ptr %15, align 4, !tbaa !9
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds %struct.complex, ptr %661, i64 %663
  %665 = getelementptr inbounds %struct.complex, ptr %664, i32 0, i32 1
  store float 0.000000e+00, ptr %665, align 4, !tbaa !15
  %666 = load i32, ptr %38, align 4, !tbaa !9
  %667 = load i32, ptr %38, align 4, !tbaa !9
  %668 = load i32, ptr %13, align 4, !tbaa !9
  %669 = mul nsw i32 %667, %668
  %670 = add nsw i32 %666, %669
  store i32 %670, ptr %15, align 4, !tbaa !9
  %671 = load float, ptr %46, align 4, !tbaa !11
  %672 = load ptr, ptr %9, align 8, !tbaa !5
  %673 = load i32, ptr %15, align 4, !tbaa !9
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds %struct.complex, ptr %672, i64 %674
  %676 = getelementptr inbounds %struct.complex, ptr %675, i32 0, i32 0
  store float %671, ptr %676, align 4, !tbaa !13
  %677 = load ptr, ptr %9, align 8, !tbaa !5
  %678 = load i32, ptr %15, align 4, !tbaa !9
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds %struct.complex, ptr %677, i64 %679
  %681 = getelementptr inbounds %struct.complex, ptr %680, i32 0, i32 1
  store float 0.000000e+00, ptr %681, align 4, !tbaa !15
  br label %682

682:                                              ; preds = %591, %476, %469
  %683 = load i32, ptr %53, align 4, !tbaa !9
  %684 = load i32, ptr %52, align 4, !tbaa !9
  %685 = icmp ne i32 %683, %684
  br i1 %685, label %686, label %991

686:                                              ; preds = %682
  %687 = load i32, ptr %53, align 4, !tbaa !9
  %688 = icmp sgt i32 %687, 1
  br i1 %688, label %689, label %706

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

706:                                              ; preds = %689, %686
  %707 = load i32, ptr %52, align 4, !tbaa !9
  %708 = sub nsw i32 %707, 1
  store i32 %708, ptr %15, align 4, !tbaa !9
  %709 = load i32, ptr %53, align 4, !tbaa !9
  %710 = add nsw i32 %709, 1
  store i32 %710, ptr %36, align 4, !tbaa !9
  br label %711

711:                                              ; preds = %794, %706
  %712 = load i32, ptr %36, align 4, !tbaa !9
  %713 = load i32, ptr %15, align 4, !tbaa !9
  %714 = icmp sle i32 %712, %713
  br i1 %714, label %715, label %797

715:                                              ; preds = %711
  %716 = load ptr, ptr %9, align 8, !tbaa !5
  %717 = load i32, ptr %36, align 4, !tbaa !9
  %718 = load i32, ptr %52, align 4, !tbaa !9
  %719 = load i32, ptr %13, align 4, !tbaa !9
  %720 = mul nsw i32 %718, %719
  %721 = add nsw i32 %717, %720
  %722 = sext i32 %721 to i64
  %723 = getelementptr inbounds %struct.complex, ptr %716, i64 %722
  %724 = call <2 x float> @Cf(ptr noundef %723)
  store <2 x float> %724, ptr %68, align 4
  %725 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 0
  %726 = load float, ptr %725, align 4
  %727 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 1
  %728 = load float, ptr %727, align 4
  %729 = fneg float %728
  %730 = call ptr @_pCf(ptr noundef %23)
  %731 = getelementptr inbounds { float, float }, ptr %730, i32 0, i32 0
  %732 = getelementptr inbounds { float, float }, ptr %730, i32 0, i32 1
  store float %726, ptr %731, align 4
  store float %729, ptr %732, align 4
  %733 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %734 = load float, ptr %733, align 4, !tbaa !13
  %735 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %734, ptr %735, align 4, !tbaa !13
  %736 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %737 = load float, ptr %736, align 4, !tbaa !15
  %738 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %737, ptr %738, align 4, !tbaa !15
  %739 = load i32, ptr %36, align 4, !tbaa !9
  %740 = load i32, ptr %52, align 4, !tbaa !9
  %741 = load i32, ptr %13, align 4, !tbaa !9
  %742 = mul nsw i32 %740, %741
  %743 = add nsw i32 %739, %742
  store i32 %743, ptr %16, align 4, !tbaa !9
  %744 = load ptr, ptr %9, align 8, !tbaa !5
  %745 = load i32, ptr %53, align 4, !tbaa !9
  %746 = load i32, ptr %36, align 4, !tbaa !9
  %747 = load i32, ptr %13, align 4, !tbaa !9
  %748 = mul nsw i32 %746, %747
  %749 = add nsw i32 %745, %748
  %750 = sext i32 %749 to i64
  %751 = getelementptr inbounds %struct.complex, ptr %744, i64 %750
  %752 = call <2 x float> @Cf(ptr noundef %751)
  store <2 x float> %752, ptr %69, align 4
  %753 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 0
  %754 = load float, ptr %753, align 4
  %755 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 1
  %756 = load float, ptr %755, align 4
  %757 = fneg float %756
  %758 = call ptr @_pCf(ptr noundef %23)
  %759 = getelementptr inbounds { float, float }, ptr %758, i32 0, i32 0
  %760 = getelementptr inbounds { float, float }, ptr %758, i32 0, i32 1
  store float %754, ptr %759, align 4
  store float %757, ptr %760, align 4
  %761 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %762 = load float, ptr %761, align 4, !tbaa !13
  %763 = load ptr, ptr %9, align 8, !tbaa !5
  %764 = load i32, ptr %16, align 4, !tbaa !9
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds %struct.complex, ptr %763, i64 %765
  %767 = getelementptr inbounds %struct.complex, ptr %766, i32 0, i32 0
  store float %762, ptr %767, align 4, !tbaa !13
  %768 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %769 = load float, ptr %768, align 4, !tbaa !15
  %770 = load ptr, ptr %9, align 8, !tbaa !5
  %771 = load i32, ptr %16, align 4, !tbaa !9
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds %struct.complex, ptr %770, i64 %772
  %774 = getelementptr inbounds %struct.complex, ptr %773, i32 0, i32 1
  store float %769, ptr %774, align 4, !tbaa !15
  %775 = load i32, ptr %53, align 4, !tbaa !9
  %776 = load i32, ptr %36, align 4, !tbaa !9
  %777 = load i32, ptr %13, align 4, !tbaa !9
  %778 = mul nsw i32 %776, %777
  %779 = add nsw i32 %775, %778
  store i32 %779, ptr %16, align 4, !tbaa !9
  %780 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %781 = load float, ptr %780, align 4, !tbaa !13
  %782 = load ptr, ptr %9, align 8, !tbaa !5
  %783 = load i32, ptr %16, align 4, !tbaa !9
  %784 = sext i32 %783 to i64
  %785 = getelementptr inbounds %struct.complex, ptr %782, i64 %784
  %786 = getelementptr inbounds %struct.complex, ptr %785, i32 0, i32 0
  store float %781, ptr %786, align 4, !tbaa !13
  %787 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %788 = load float, ptr %787, align 4, !tbaa !15
  %789 = load ptr, ptr %9, align 8, !tbaa !5
  %790 = load i32, ptr %16, align 4, !tbaa !9
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds %struct.complex, ptr %789, i64 %791
  %793 = getelementptr inbounds %struct.complex, ptr %792, i32 0, i32 1
  store float %788, ptr %793, align 4, !tbaa !15
  br label %794

794:                                              ; preds = %715
  %795 = load i32, ptr %36, align 4, !tbaa !9
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr %36, align 4, !tbaa !9
  br label %711, !llvm.loop !18

797:                                              ; preds = %711
  %798 = load i32, ptr %53, align 4, !tbaa !9
  %799 = load i32, ptr %52, align 4, !tbaa !9
  %800 = load i32, ptr %13, align 4, !tbaa !9
  %801 = mul nsw i32 %799, %800
  %802 = add nsw i32 %798, %801
  store i32 %802, ptr %15, align 4, !tbaa !9
  %803 = load ptr, ptr %9, align 8, !tbaa !5
  %804 = load i32, ptr %53, align 4, !tbaa !9
  %805 = load i32, ptr %52, align 4, !tbaa !9
  %806 = load i32, ptr %13, align 4, !tbaa !9
  %807 = mul nsw i32 %805, %806
  %808 = add nsw i32 %804, %807
  %809 = sext i32 %808 to i64
  %810 = getelementptr inbounds %struct.complex, ptr %803, i64 %809
  %811 = call <2 x float> @Cf(ptr noundef %810)
  store <2 x float> %811, ptr %70, align 4
  %812 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 0
  %813 = load float, ptr %812, align 4
  %814 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 1
  %815 = load float, ptr %814, align 4
  %816 = fneg float %815
  %817 = call ptr @_pCf(ptr noundef %23)
  %818 = getelementptr inbounds { float, float }, ptr %817, i32 0, i32 0
  %819 = getelementptr inbounds { float, float }, ptr %817, i32 0, i32 1
  store float %813, ptr %818, align 4
  store float %816, ptr %819, align 4
  %820 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %821 = load float, ptr %820, align 4, !tbaa !13
  %822 = load ptr, ptr %9, align 8, !tbaa !5
  %823 = load i32, ptr %15, align 4, !tbaa !9
  %824 = sext i32 %823 to i64
  %825 = getelementptr inbounds %struct.complex, ptr %822, i64 %824
  %826 = getelementptr inbounds %struct.complex, ptr %825, i32 0, i32 0
  store float %821, ptr %826, align 4, !tbaa !13
  %827 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %828 = load float, ptr %827, align 4, !tbaa !15
  %829 = load ptr, ptr %9, align 8, !tbaa !5
  %830 = load i32, ptr %15, align 4, !tbaa !9
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds %struct.complex, ptr %829, i64 %831
  %833 = getelementptr inbounds %struct.complex, ptr %832, i32 0, i32 1
  store float %828, ptr %833, align 4, !tbaa !15
  %834 = load i32, ptr %52, align 4, !tbaa !9
  %835 = load i32, ptr %52, align 4, !tbaa !9
  %836 = load i32, ptr %13, align 4, !tbaa !9
  %837 = mul nsw i32 %835, %836
  %838 = add nsw i32 %834, %837
  store i32 %838, ptr %15, align 4, !tbaa !9
  %839 = load ptr, ptr %9, align 8, !tbaa !5
  %840 = load i32, ptr %15, align 4, !tbaa !9
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds %struct.complex, ptr %839, i64 %841
  %843 = getelementptr inbounds %struct.complex, ptr %842, i32 0, i32 0
  %844 = load float, ptr %843, align 4, !tbaa !13
  store float %844, ptr %46, align 4, !tbaa !11
  %845 = load i32, ptr %52, align 4, !tbaa !9
  %846 = load i32, ptr %52, align 4, !tbaa !9
  %847 = load i32, ptr %13, align 4, !tbaa !9
  %848 = mul nsw i32 %846, %847
  %849 = add nsw i32 %845, %848
  store i32 %849, ptr %15, align 4, !tbaa !9
  %850 = load i32, ptr %53, align 4, !tbaa !9
  %851 = load i32, ptr %53, align 4, !tbaa !9
  %852 = load i32, ptr %13, align 4, !tbaa !9
  %853 = mul nsw i32 %851, %852
  %854 = add nsw i32 %850, %853
  store i32 %854, ptr %16, align 4, !tbaa !9
  %855 = load ptr, ptr %9, align 8, !tbaa !5
  %856 = load i32, ptr %16, align 4, !tbaa !9
  %857 = sext i32 %856 to i64
  %858 = getelementptr inbounds %struct.complex, ptr %855, i64 %857
  %859 = getelementptr inbounds %struct.complex, ptr %858, i32 0, i32 0
  %860 = load float, ptr %859, align 4, !tbaa !13
  store float %860, ptr %21, align 4, !tbaa !11
  %861 = load float, ptr %21, align 4, !tbaa !11
  %862 = load ptr, ptr %9, align 8, !tbaa !5
  %863 = load i32, ptr %15, align 4, !tbaa !9
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds %struct.complex, ptr %862, i64 %864
  %866 = getelementptr inbounds %struct.complex, ptr %865, i32 0, i32 0
  store float %861, ptr %866, align 4, !tbaa !13
  %867 = load ptr, ptr %9, align 8, !tbaa !5
  %868 = load i32, ptr %15, align 4, !tbaa !9
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds %struct.complex, ptr %867, i64 %869
  %871 = getelementptr inbounds %struct.complex, ptr %870, i32 0, i32 1
  store float 0.000000e+00, ptr %871, align 4, !tbaa !15
  %872 = load i32, ptr %53, align 4, !tbaa !9
  %873 = load i32, ptr %53, align 4, !tbaa !9
  %874 = load i32, ptr %13, align 4, !tbaa !9
  %875 = mul nsw i32 %873, %874
  %876 = add nsw i32 %872, %875
  store i32 %876, ptr %15, align 4, !tbaa !9
  %877 = load float, ptr %46, align 4, !tbaa !11
  %878 = load ptr, ptr %9, align 8, !tbaa !5
  %879 = load i32, ptr %15, align 4, !tbaa !9
  %880 = sext i32 %879 to i64
  %881 = getelementptr inbounds %struct.complex, ptr %878, i64 %880
  %882 = getelementptr inbounds %struct.complex, ptr %881, i32 0, i32 0
  store float %877, ptr %882, align 4, !tbaa !13
  %883 = load ptr, ptr %9, align 8, !tbaa !5
  %884 = load i32, ptr %15, align 4, !tbaa !9
  %885 = sext i32 %884 to i64
  %886 = getelementptr inbounds %struct.complex, ptr %883, i64 %885
  %887 = getelementptr inbounds %struct.complex, ptr %886, i32 0, i32 1
  store float 0.000000e+00, ptr %887, align 4, !tbaa !15
  %888 = load i32, ptr %43, align 4, !tbaa !9
  %889 = icmp eq i32 %888, 2
  br i1 %889, label %890, label %990

890:                                              ; preds = %797
  %891 = load i32, ptr %37, align 4, !tbaa !9
  %892 = load i32, ptr %37, align 4, !tbaa !9
  %893 = load i32, ptr %13, align 4, !tbaa !9
  %894 = mul nsw i32 %892, %893
  %895 = add nsw i32 %891, %894
  store i32 %895, ptr %15, align 4, !tbaa !9
  %896 = load i32, ptr %37, align 4, !tbaa !9
  %897 = load i32, ptr %37, align 4, !tbaa !9
  %898 = load i32, ptr %13, align 4, !tbaa !9
  %899 = mul nsw i32 %897, %898
  %900 = add nsw i32 %896, %899
  store i32 %900, ptr %16, align 4, !tbaa !9
  %901 = load ptr, ptr %9, align 8, !tbaa !5
  %902 = load i32, ptr %16, align 4, !tbaa !9
  %903 = sext i32 %902 to i64
  %904 = getelementptr inbounds %struct.complex, ptr %901, i64 %903
  %905 = getelementptr inbounds %struct.complex, ptr %904, i32 0, i32 0
  %906 = load float, ptr %905, align 4, !tbaa !13
  store float %906, ptr %21, align 4, !tbaa !11
  %907 = load float, ptr %21, align 4, !tbaa !11
  %908 = load ptr, ptr %9, align 8, !tbaa !5
  %909 = load i32, ptr %15, align 4, !tbaa !9
  %910 = sext i32 %909 to i64
  %911 = getelementptr inbounds %struct.complex, ptr %908, i64 %910
  %912 = getelementptr inbounds %struct.complex, ptr %911, i32 0, i32 0
  store float %907, ptr %912, align 4, !tbaa !13
  %913 = load ptr, ptr %9, align 8, !tbaa !5
  %914 = load i32, ptr %15, align 4, !tbaa !9
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds %struct.complex, ptr %913, i64 %915
  %917 = getelementptr inbounds %struct.complex, ptr %916, i32 0, i32 1
  store float 0.000000e+00, ptr %917, align 4, !tbaa !15
  %918 = load i32, ptr %37, align 4, !tbaa !9
  %919 = sub nsw i32 %918, 1
  %920 = load i32, ptr %37, align 4, !tbaa !9
  %921 = load i32, ptr %13, align 4, !tbaa !9
  %922 = mul nsw i32 %920, %921
  %923 = add nsw i32 %919, %922
  store i32 %923, ptr %15, align 4, !tbaa !9
  %924 = load ptr, ptr %9, align 8, !tbaa !5
  %925 = load i32, ptr %15, align 4, !tbaa !9
  %926 = sext i32 %925 to i64
  %927 = getelementptr inbounds %struct.complex, ptr %924, i64 %926
  %928 = getelementptr inbounds %struct.complex, ptr %927, i32 0, i32 0
  %929 = load float, ptr %928, align 4, !tbaa !13
  %930 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %929, ptr %930, align 4, !tbaa !13
  %931 = load ptr, ptr %9, align 8, !tbaa !5
  %932 = load i32, ptr %15, align 4, !tbaa !9
  %933 = sext i32 %932 to i64
  %934 = getelementptr inbounds %struct.complex, ptr %931, i64 %933
  %935 = getelementptr inbounds %struct.complex, ptr %934, i32 0, i32 1
  %936 = load float, ptr %935, align 4, !tbaa !15
  %937 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %936, ptr %937, align 4, !tbaa !15
  %938 = load i32, ptr %37, align 4, !tbaa !9
  %939 = sub nsw i32 %938, 1
  %940 = load i32, ptr %37, align 4, !tbaa !9
  %941 = load i32, ptr %13, align 4, !tbaa !9
  %942 = mul nsw i32 %940, %941
  %943 = add nsw i32 %939, %942
  store i32 %943, ptr %15, align 4, !tbaa !9
  %944 = load i32, ptr %53, align 4, !tbaa !9
  %945 = load i32, ptr %37, align 4, !tbaa !9
  %946 = load i32, ptr %13, align 4, !tbaa !9
  %947 = mul nsw i32 %945, %946
  %948 = add nsw i32 %944, %947
  store i32 %948, ptr %16, align 4, !tbaa !9
  %949 = load ptr, ptr %9, align 8, !tbaa !5
  %950 = load i32, ptr %16, align 4, !tbaa !9
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds %struct.complex, ptr %949, i64 %951
  %953 = getelementptr inbounds %struct.complex, ptr %952, i32 0, i32 0
  %954 = load float, ptr %953, align 4, !tbaa !13
  %955 = load ptr, ptr %9, align 8, !tbaa !5
  %956 = load i32, ptr %15, align 4, !tbaa !9
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds %struct.complex, ptr %955, i64 %957
  %959 = getelementptr inbounds %struct.complex, ptr %958, i32 0, i32 0
  store float %954, ptr %959, align 4, !tbaa !13
  %960 = load ptr, ptr %9, align 8, !tbaa !5
  %961 = load i32, ptr %16, align 4, !tbaa !9
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds %struct.complex, ptr %960, i64 %962
  %964 = getelementptr inbounds %struct.complex, ptr %963, i32 0, i32 1
  %965 = load float, ptr %964, align 4, !tbaa !15
  %966 = load ptr, ptr %9, align 8, !tbaa !5
  %967 = load i32, ptr %15, align 4, !tbaa !9
  %968 = sext i32 %967 to i64
  %969 = getelementptr inbounds %struct.complex, ptr %966, i64 %968
  %970 = getelementptr inbounds %struct.complex, ptr %969, i32 0, i32 1
  store float %965, ptr %970, align 4, !tbaa !15
  %971 = load i32, ptr %53, align 4, !tbaa !9
  %972 = load i32, ptr %37, align 4, !tbaa !9
  %973 = load i32, ptr %13, align 4, !tbaa !9
  %974 = mul nsw i32 %972, %973
  %975 = add nsw i32 %971, %974
  store i32 %975, ptr %15, align 4, !tbaa !9
  %976 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %977 = load float, ptr %976, align 4, !tbaa !13
  %978 = load ptr, ptr %9, align 8, !tbaa !5
  %979 = load i32, ptr %15, align 4, !tbaa !9
  %980 = sext i32 %979 to i64
  %981 = getelementptr inbounds %struct.complex, ptr %978, i64 %980
  %982 = getelementptr inbounds %struct.complex, ptr %981, i32 0, i32 0
  store float %977, ptr %982, align 4, !tbaa !13
  %983 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %984 = load float, ptr %983, align 4, !tbaa !15
  %985 = load ptr, ptr %9, align 8, !tbaa !5
  %986 = load i32, ptr %15, align 4, !tbaa !9
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds %struct.complex, ptr %985, i64 %987
  %989 = getelementptr inbounds %struct.complex, ptr %988, i32 0, i32 1
  store float %984, ptr %989, align 4, !tbaa !15
  br label %990

990:                                              ; preds = %890, %797
  br label %1054

991:                                              ; preds = %682
  %992 = load i32, ptr %37, align 4, !tbaa !9
  %993 = load i32, ptr %37, align 4, !tbaa !9
  %994 = load i32, ptr %13, align 4, !tbaa !9
  %995 = mul nsw i32 %993, %994
  %996 = add nsw i32 %992, %995
  store i32 %996, ptr %15, align 4, !tbaa !9
  %997 = load i32, ptr %37, align 4, !tbaa !9
  %998 = load i32, ptr %37, align 4, !tbaa !9
  %999 = load i32, ptr %13, align 4, !tbaa !9
  %1000 = mul nsw i32 %998, %999
  %1001 = add nsw i32 %997, %1000
  store i32 %1001, ptr %16, align 4, !tbaa !9
  %1002 = load ptr, ptr %9, align 8, !tbaa !5
  %1003 = load i32, ptr %16, align 4, !tbaa !9
  %1004 = sext i32 %1003 to i64
  %1005 = getelementptr inbounds %struct.complex, ptr %1002, i64 %1004
  %1006 = getelementptr inbounds %struct.complex, ptr %1005, i32 0, i32 0
  %1007 = load float, ptr %1006, align 4, !tbaa !13
  store float %1007, ptr %21, align 4, !tbaa !11
  %1008 = load float, ptr %21, align 4, !tbaa !11
  %1009 = load ptr, ptr %9, align 8, !tbaa !5
  %1010 = load i32, ptr %15, align 4, !tbaa !9
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds %struct.complex, ptr %1009, i64 %1011
  %1013 = getelementptr inbounds %struct.complex, ptr %1012, i32 0, i32 0
  store float %1008, ptr %1013, align 4, !tbaa !13
  %1014 = load ptr, ptr %9, align 8, !tbaa !5
  %1015 = load i32, ptr %15, align 4, !tbaa !9
  %1016 = sext i32 %1015 to i64
  %1017 = getelementptr inbounds %struct.complex, ptr %1014, i64 %1016
  %1018 = getelementptr inbounds %struct.complex, ptr %1017, i32 0, i32 1
  store float 0.000000e+00, ptr %1018, align 4, !tbaa !15
  %1019 = load i32, ptr %43, align 4, !tbaa !9
  %1020 = icmp eq i32 %1019, 2
  br i1 %1020, label %1021, label %1053

1021:                                             ; preds = %991
  %1022 = load i32, ptr %37, align 4, !tbaa !9
  %1023 = sub nsw i32 %1022, 1
  %1024 = load i32, ptr %37, align 4, !tbaa !9
  %1025 = sub nsw i32 %1024, 1
  %1026 = load i32, ptr %13, align 4, !tbaa !9
  %1027 = mul nsw i32 %1025, %1026
  %1028 = add nsw i32 %1023, %1027
  store i32 %1028, ptr %15, align 4, !tbaa !9
  %1029 = load i32, ptr %37, align 4, !tbaa !9
  %1030 = sub nsw i32 %1029, 1
  %1031 = load i32, ptr %37, align 4, !tbaa !9
  %1032 = sub nsw i32 %1031, 1
  %1033 = load i32, ptr %13, align 4, !tbaa !9
  %1034 = mul nsw i32 %1032, %1033
  %1035 = add nsw i32 %1030, %1034
  store i32 %1035, ptr %16, align 4, !tbaa !9
  %1036 = load ptr, ptr %9, align 8, !tbaa !5
  %1037 = load i32, ptr %16, align 4, !tbaa !9
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds %struct.complex, ptr %1036, i64 %1038
  %1040 = getelementptr inbounds %struct.complex, ptr %1039, i32 0, i32 0
  %1041 = load float, ptr %1040, align 4, !tbaa !13
  store float %1041, ptr %21, align 4, !tbaa !11
  %1042 = load float, ptr %21, align 4, !tbaa !11
  %1043 = load ptr, ptr %9, align 8, !tbaa !5
  %1044 = load i32, ptr %15, align 4, !tbaa !9
  %1045 = sext i32 %1044 to i64
  %1046 = getelementptr inbounds %struct.complex, ptr %1043, i64 %1045
  %1047 = getelementptr inbounds %struct.complex, ptr %1046, i32 0, i32 0
  store float %1042, ptr %1047, align 4, !tbaa !13
  %1048 = load ptr, ptr %9, align 8, !tbaa !5
  %1049 = load i32, ptr %15, align 4, !tbaa !9
  %1050 = sext i32 %1049 to i64
  %1051 = getelementptr inbounds %struct.complex, ptr %1048, i64 %1050
  %1052 = getelementptr inbounds %struct.complex, ptr %1051, i32 0, i32 1
  store float 0.000000e+00, ptr %1052, align 4, !tbaa !15
  br label %1053

1053:                                             ; preds = %1021, %991
  br label %1054

1054:                                             ; preds = %1053, %990
  %1055 = load i32, ptr %43, align 4, !tbaa !9
  %1056 = icmp eq i32 %1055, 1
  br i1 %1056, label %1057, label %1206

1057:                                             ; preds = %1054
  %1058 = load i32, ptr %37, align 4, !tbaa !9
  %1059 = icmp sgt i32 %1058, 1
  br i1 %1059, label %1060, label %1205

1060:                                             ; preds = %1057
  %1061 = load i32, ptr %37, align 4, !tbaa !9
  %1062 = load i32, ptr %37, align 4, !tbaa !9
  %1063 = load i32, ptr %13, align 4, !tbaa !9
  %1064 = mul nsw i32 %1062, %1063
  %1065 = add nsw i32 %1061, %1064
  store i32 %1065, ptr %15, align 4, !tbaa !9
  %1066 = load ptr, ptr %9, align 8, !tbaa !5
  %1067 = load i32, ptr %15, align 4, !tbaa !9
  %1068 = sext i32 %1067 to i64
  %1069 = getelementptr inbounds %struct.complex, ptr %1066, i64 %1068
  %1070 = getelementptr inbounds %struct.complex, ptr %1069, i32 0, i32 0
  %1071 = load float, ptr %1070, align 4, !tbaa !13
  store float %1071, ptr %21, align 4, !tbaa !11
  %1072 = load float, ptr %21, align 4, !tbaa !11
  %1073 = fcmp oge float %1072, 0.000000e+00
  br i1 %1073, label %1074, label %1076

1074:                                             ; preds = %1060
  %1075 = load float, ptr %21, align 4, !tbaa !11
  br label %1079

1076:                                             ; preds = %1060
  %1077 = load float, ptr %21, align 4, !tbaa !11
  %1078 = fneg float %1077
  br label %1079

1079:                                             ; preds = %1076, %1074
  %1080 = phi float [ %1075, %1074 ], [ %1078, %1076 ]
  %1081 = load float, ptr %41, align 4, !tbaa !11
  %1082 = fcmp oge float %1080, %1081
  br i1 %1082, label %1083, label %1122

1083:                                             ; preds = %1079
  %1084 = load i32, ptr %37, align 4, !tbaa !9
  %1085 = load i32, ptr %37, align 4, !tbaa !9
  %1086 = load i32, ptr %13, align 4, !tbaa !9
  %1087 = mul nsw i32 %1085, %1086
  %1088 = add nsw i32 %1084, %1087
  store i32 %1088, ptr %15, align 4, !tbaa !9
  %1089 = load ptr, ptr %9, align 8, !tbaa !5
  %1090 = load i32, ptr %15, 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 !13
  %1095 = fdiv float 1.000000e+00, %1094
  store float %1095, ptr %47, align 4, !tbaa !11
  %1096 = load i32, ptr %37, align 4, !tbaa !9
  %1097 = sub nsw i32 %1096, 1
  store i32 %1097, ptr %15, align 4, !tbaa !9
  %1098 = load float, ptr %47, align 4, !tbaa !11
  %1099 = fneg float %1098
  store float %1099, ptr %21, align 4, !tbaa !11
  %1100 = load ptr, ptr %7, align 8, !tbaa !5
  %1101 = load ptr, ptr %9, align 8, !tbaa !5
  %1102 = load i32, ptr %37, align 4, !tbaa !9
  %1103 = load i32, ptr %13, align 4, !tbaa !9
  %1104 = mul nsw i32 %1102, %1103
  %1105 = add nsw i32 %1104, 1
  %1106 = sext i32 %1105 to i64
  %1107 = getelementptr inbounds %struct.complex, ptr %1101, i64 %1106
  %1108 = load ptr, ptr %9, align 8, !tbaa !5
  %1109 = load i32, ptr %14, align 4, !tbaa !9
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds %struct.complex, ptr %1108, i64 %1110
  %1112 = load ptr, ptr %10, align 8, !tbaa !5
  call void @cher_(ptr noundef %1100, ptr noundef %15, ptr noundef %21, ptr noundef %1107, ptr noundef @c__1, ptr noundef %1111, ptr noundef %1112)
  %1113 = load i32, ptr %37, align 4, !tbaa !9
  %1114 = sub nsw i32 %1113, 1
  store i32 %1114, ptr %15, align 4, !tbaa !9
  %1115 = load ptr, ptr %9, align 8, !tbaa !5
  %1116 = load i32, ptr %37, align 4, !tbaa !9
  %1117 = load i32, ptr %13, align 4, !tbaa !9
  %1118 = mul nsw i32 %1116, %1117
  %1119 = add nsw i32 %1118, 1
  %1120 = sext i32 %1119 to i64
  %1121 = getelementptr inbounds %struct.complex, ptr %1115, i64 %1120
  call void @csscal_(ptr noundef %15, ptr noundef %47, ptr noundef %1121, ptr noundef @c__1)
  br label %1204

1122:                                             ; preds = %1079
  %1123 = load i32, ptr %37, align 4, !tbaa !9
  %1124 = load i32, ptr %37, align 4, !tbaa !9
  %1125 = load i32, ptr %13, align 4, !tbaa !9
  %1126 = mul nsw i32 %1124, %1125
  %1127 = add nsw i32 %1123, %1126
  store i32 %1127, ptr %15, align 4, !tbaa !9
  %1128 = load ptr, ptr %9, align 8, !tbaa !5
  %1129 = load i32, ptr %15, align 4, !tbaa !9
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds %struct.complex, ptr %1128, i64 %1130
  %1132 = getelementptr inbounds %struct.complex, ptr %1131, i32 0, i32 0
  %1133 = load float, ptr %1132, align 4, !tbaa !13
  store float %1133, ptr %47, align 4, !tbaa !11
  %1134 = load i32, ptr %37, align 4, !tbaa !9
  %1135 = sub nsw i32 %1134, 1
  store i32 %1135, ptr %15, align 4, !tbaa !9
  store i32 1, ptr %51, align 4, !tbaa !9
  br label %1136

1136:                                             ; preds = %1183, %1122
  %1137 = load i32, ptr %51, align 4, !tbaa !9
  %1138 = load i32, ptr %15, align 4, !tbaa !9
  %1139 = icmp sle i32 %1137, %1138
  br i1 %1139, label %1140, label %1186

1140:                                             ; preds = %1136
  %1141 = load i32, ptr %51, align 4, !tbaa !9
  %1142 = load i32, ptr %37, align 4, !tbaa !9
  %1143 = load i32, ptr %13, align 4, !tbaa !9
  %1144 = mul nsw i32 %1142, %1143
  %1145 = add nsw i32 %1141, %1144
  store i32 %1145, ptr %16, align 4, !tbaa !9
  %1146 = load i32, ptr %51, align 4, !tbaa !9
  %1147 = load i32, ptr %37, align 4, !tbaa !9
  %1148 = load i32, ptr %13, align 4, !tbaa !9
  %1149 = mul nsw i32 %1147, %1148
  %1150 = add nsw i32 %1146, %1149
  store i32 %1150, ptr %17, align 4, !tbaa !9
  %1151 = load ptr, ptr %9, align 8, !tbaa !5
  %1152 = load i32, ptr %17, align 4, !tbaa !9
  %1153 = sext i32 %1152 to i64
  %1154 = getelementptr inbounds %struct.complex, ptr %1151, i64 %1153
  %1155 = getelementptr inbounds %struct.complex, ptr %1154, i32 0, i32 0
  %1156 = load float, ptr %1155, align 4, !tbaa !13
  %1157 = load float, ptr %47, align 4, !tbaa !11
  %1158 = fdiv float %1156, %1157
  %1159 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1158, ptr %1159, align 4, !tbaa !13
  %1160 = load ptr, ptr %9, align 8, !tbaa !5
  %1161 = load i32, ptr %17, align 4, !tbaa !9
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds %struct.complex, ptr %1160, i64 %1162
  %1164 = getelementptr inbounds %struct.complex, ptr %1163, i32 0, i32 1
  %1165 = load float, ptr %1164, align 4, !tbaa !15
  %1166 = load float, ptr %47, align 4, !tbaa !11
  %1167 = fdiv float %1165, %1166
  %1168 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1167, ptr %1168, align 4, !tbaa !15
  %1169 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1170 = load float, ptr %1169, align 4, !tbaa !13
  %1171 = load ptr, ptr %9, align 8, !tbaa !5
  %1172 = load i32, ptr %16, align 4, !tbaa !9
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds %struct.complex, ptr %1171, i64 %1173
  %1175 = getelementptr inbounds %struct.complex, ptr %1174, i32 0, i32 0
  store float %1170, ptr %1175, align 4, !tbaa !13
  %1176 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1177 = load float, ptr %1176, align 4, !tbaa !15
  %1178 = load ptr, ptr %9, align 8, !tbaa !5
  %1179 = load i32, ptr %16, align 4, !tbaa !9
  %1180 = sext i32 %1179 to i64
  %1181 = getelementptr inbounds %struct.complex, ptr %1178, i64 %1180
  %1182 = getelementptr inbounds %struct.complex, ptr %1181, i32 0, i32 1
  store float %1177, ptr %1182, align 4, !tbaa !15
  br label %1183

1183:                                             ; preds = %1140
  %1184 = load i32, ptr %51, align 4, !tbaa !9
  %1185 = add nsw i32 %1184, 1
  store i32 %1185, ptr %51, align 4, !tbaa !9
  br label %1136, !llvm.loop !19

1186:                                             ; preds = %1136
  %1187 = load i32, ptr %37, align 4, !tbaa !9
  %1188 = sub nsw i32 %1187, 1
  store i32 %1188, ptr %15, align 4, !tbaa !9
  %1189 = load float, ptr %47, align 4, !tbaa !11
  %1190 = fneg float %1189
  store float %1190, ptr %21, align 4, !tbaa !11
  %1191 = load ptr, ptr %7, align 8, !tbaa !5
  %1192 = load ptr, ptr %9, align 8, !tbaa !5
  %1193 = load i32, ptr %37, align 4, !tbaa !9
  %1194 = load i32, ptr %13, align 4, !tbaa !9
  %1195 = mul nsw i32 %1193, %1194
  %1196 = add nsw i32 %1195, 1
  %1197 = sext i32 %1196 to i64
  %1198 = getelementptr inbounds %struct.complex, ptr %1192, i64 %1197
  %1199 = load ptr, ptr %9, align 8, !tbaa !5
  %1200 = load i32, ptr %14, align 4, !tbaa !9
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds %struct.complex, ptr %1199, i64 %1201
  %1203 = load ptr, ptr %10, align 8, !tbaa !5
  call void @cher_(ptr noundef %1191, ptr noundef %15, ptr noundef %21, ptr noundef %1198, ptr noundef @c__1, ptr noundef %1202, ptr noundef %1203)
  br label %1204

1204:                                             ; preds = %1186, %1083
  br label %1205

1205:                                             ; preds = %1204, %1057
  br label %1803

1206:                                             ; preds = %1054
  %1207 = load i32, ptr %37, align 4, !tbaa !9
  %1208 = icmp sgt i32 %1207, 2
  br i1 %1208, label %1209, label %1802

1209:                                             ; preds = %1206
  %1210 = load i32, ptr %37, align 4, !tbaa !9
  %1211 = sub nsw i32 %1210, 1
  %1212 = load i32, ptr %37, align 4, !tbaa !9
  %1213 = load i32, ptr %13, align 4, !tbaa !9
  %1214 = mul nsw i32 %1212, %1213
  %1215 = add nsw i32 %1211, %1214
  store i32 %1215, ptr %15, align 4, !tbaa !9
  %1216 = load ptr, ptr %9, align 8, !tbaa !5
  %1217 = load i32, ptr %15, align 4, !tbaa !9
  %1218 = sext i32 %1217 to i64
  %1219 = getelementptr inbounds %struct.complex, ptr %1216, i64 %1218
  %1220 = getelementptr inbounds %struct.complex, ptr %1219, i32 0, i32 0
  %1221 = load float, ptr %1220, align 4, !tbaa !13
  store float %1221, ptr %21, align 4, !tbaa !11
  %1222 = load ptr, ptr %9, align 8, !tbaa !5
  %1223 = load i32, ptr %37, align 4, !tbaa !9
  %1224 = sub nsw i32 %1223, 1
  %1225 = load i32, ptr %37, align 4, !tbaa !9
  %1226 = load i32, ptr %13, align 4, !tbaa !9
  %1227 = mul nsw i32 %1225, %1226
  %1228 = add nsw i32 %1224, %1227
  %1229 = sext i32 %1228 to i64
  %1230 = getelementptr inbounds %struct.complex, ptr %1222, i64 %1229
  %1231 = call <2 x float> @Cf(ptr noundef %1230)
  store <2 x float> %1231, ptr %71, align 4
  %1232 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 0
  %1233 = load float, ptr %1232, align 4
  %1234 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 1
  %1235 = load float, ptr %1234, align 4
  store float %1235, ptr %22, align 4, !tbaa !11
  %1236 = call float @slapy2_(ptr noundef %21, ptr noundef %22)
  store float %1236, ptr %34, align 4, !tbaa !11
  %1237 = load i32, ptr %37, align 4, !tbaa !9
  %1238 = load i32, ptr %37, align 4, !tbaa !9
  %1239 = load i32, ptr %13, align 4, !tbaa !9
  %1240 = mul nsw i32 %1238, %1239
  %1241 = add nsw i32 %1237, %1240
  store i32 %1241, ptr %15, align 4, !tbaa !9
  %1242 = load ptr, ptr %9, align 8, !tbaa !5
  %1243 = load i32, ptr %15, align 4, !tbaa !9
  %1244 = sext i32 %1243 to i64
  %1245 = getelementptr inbounds %struct.complex, ptr %1242, i64 %1244
  %1246 = getelementptr inbounds %struct.complex, ptr %1245, i32 0, i32 0
  %1247 = load float, ptr %1246, align 4, !tbaa !13
  %1248 = load float, ptr %34, align 4, !tbaa !11
  %1249 = fdiv float %1247, %1248
  %1250 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1249, ptr %1250, align 4, !tbaa !13
  %1251 = load ptr, ptr %9, align 8, !tbaa !5
  %1252 = load i32, ptr %15, align 4, !tbaa !9
  %1253 = sext i32 %1252 to i64
  %1254 = getelementptr inbounds %struct.complex, ptr %1251, i64 %1253
  %1255 = getelementptr inbounds %struct.complex, ptr %1254, i32 0, i32 1
  %1256 = load float, ptr %1255, align 4, !tbaa !15
  %1257 = load float, ptr %34, align 4, !tbaa !11
  %1258 = fdiv float %1256, %1257
  %1259 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1258, ptr %1259, align 4, !tbaa !15
  %1260 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1261 = load float, ptr %1260, align 4, !tbaa !13
  store float %1261, ptr %47, align 4, !tbaa !11
  %1262 = load i32, ptr %37, align 4, !tbaa !9
  %1263 = sub nsw i32 %1262, 1
  %1264 = load i32, ptr %37, align 4, !tbaa !9
  %1265 = sub nsw i32 %1264, 1
  %1266 = load i32, ptr %13, align 4, !tbaa !9
  %1267 = mul nsw i32 %1265, %1266
  %1268 = add nsw i32 %1263, %1267
  store i32 %1268, ptr %15, align 4, !tbaa !9
  %1269 = load ptr, ptr %9, align 8, !tbaa !5
  %1270 = load i32, ptr %15, align 4, !tbaa !9
  %1271 = sext i32 %1270 to i64
  %1272 = getelementptr inbounds %struct.complex, ptr %1269, i64 %1271
  %1273 = getelementptr inbounds %struct.complex, ptr %1272, i32 0, i32 0
  %1274 = load float, ptr %1273, align 4, !tbaa !13
  %1275 = load float, ptr %34, align 4, !tbaa !11
  %1276 = fdiv float %1274, %1275
  %1277 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1276, ptr %1277, align 4, !tbaa !13
  %1278 = load ptr, ptr %9, align 8, !tbaa !5
  %1279 = load i32, ptr %15, align 4, !tbaa !9
  %1280 = sext i32 %1279 to i64
  %1281 = getelementptr inbounds %struct.complex, ptr %1278, i64 %1280
  %1282 = getelementptr inbounds %struct.complex, ptr %1281, i32 0, i32 1
  %1283 = load float, ptr %1282, align 4, !tbaa !15
  %1284 = load float, ptr %34, align 4, !tbaa !11
  %1285 = fdiv float %1283, %1284
  %1286 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1285, ptr %1286, align 4, !tbaa !15
  %1287 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1288 = load float, ptr %1287, align 4, !tbaa !13
  store float %1288, ptr %49, align 4, !tbaa !11
  %1289 = load i32, ptr %37, align 4, !tbaa !9
  %1290 = sub nsw i32 %1289, 1
  %1291 = load i32, ptr %37, align 4, !tbaa !9
  %1292 = load i32, ptr %13, align 4, !tbaa !9
  %1293 = mul nsw i32 %1291, %1292
  %1294 = add nsw i32 %1290, %1293
  store i32 %1294, ptr %15, align 4, !tbaa !9
  %1295 = load ptr, ptr %9, align 8, !tbaa !5
  %1296 = load i32, ptr %15, align 4, !tbaa !9
  %1297 = sext i32 %1296 to i64
  %1298 = getelementptr inbounds %struct.complex, ptr %1295, i64 %1297
  %1299 = getelementptr inbounds %struct.complex, ptr %1298, i32 0, i32 0
  %1300 = load float, ptr %1299, align 4, !tbaa !13
  %1301 = load float, ptr %34, align 4, !tbaa !11
  %1302 = fdiv float %1300, %1301
  %1303 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1302, ptr %1303, align 4, !tbaa !13
  %1304 = load ptr, ptr %9, align 8, !tbaa !5
  %1305 = load i32, ptr %15, align 4, !tbaa !9
  %1306 = sext i32 %1305 to i64
  %1307 = getelementptr inbounds %struct.complex, ptr %1304, i64 %1306
  %1308 = getelementptr inbounds %struct.complex, ptr %1307, i32 0, i32 1
  %1309 = load float, ptr %1308, align 4, !tbaa !15
  %1310 = load float, ptr %34, align 4, !tbaa !11
  %1311 = fdiv float %1309, %1310
  %1312 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1311, ptr %1312, align 4, !tbaa !15
  %1313 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1314 = load float, ptr %1313, align 4, !tbaa !13
  %1315 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  store float %1314, ptr %1315, align 4, !tbaa !13
  %1316 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1317 = load float, ptr %1316, align 4, !tbaa !15
  %1318 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  store float %1317, ptr %1318, align 4, !tbaa !15
  %1319 = load float, ptr %47, align 4, !tbaa !11
  %1320 = load float, ptr %49, align 4, !tbaa !11
  %1321 = call float @llvm.fmuladd.f32(float %1319, float %1320, float -1.000000e+00)
  %1322 = fdiv float 1.000000e+00, %1321
  store float %1322, ptr %56, align 4, !tbaa !11
  %1323 = load i32, ptr %37, align 4, !tbaa !9
  %1324 = sub nsw i32 %1323, 2
  store i32 %1324, ptr %36, align 4, !tbaa !9
  br label %1325

1325:                                             ; preds = %1798, %1209
  %1326 = load i32, ptr %36, align 4, !tbaa !9
  %1327 = icmp sge i32 %1326, 1
  br i1 %1327, label %1328, label %1801

1328:                                             ; preds = %1325
  %1329 = load i32, ptr %36, align 4, !tbaa !9
  %1330 = load i32, ptr %37, align 4, !tbaa !9
  %1331 = sub nsw i32 %1330, 1
  %1332 = load i32, ptr %13, align 4, !tbaa !9
  %1333 = mul nsw i32 %1331, %1332
  %1334 = add nsw i32 %1329, %1333
  store i32 %1334, ptr %15, align 4, !tbaa !9
  %1335 = load float, ptr %47, align 4, !tbaa !11
  %1336 = load ptr, ptr %9, align 8, !tbaa !5
  %1337 = load i32, ptr %15, align 4, !tbaa !9
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds %struct.complex, ptr %1336, i64 %1338
  %1340 = getelementptr inbounds %struct.complex, ptr %1339, i32 0, i32 0
  %1341 = load float, ptr %1340, align 4, !tbaa !13
  %1342 = fmul float %1335, %1341
  %1343 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1342, ptr %1343, align 4, !tbaa !13
  %1344 = load float, ptr %47, align 4, !tbaa !11
  %1345 = load ptr, ptr %9, align 8, !tbaa !5
  %1346 = load i32, ptr %15, align 4, !tbaa !9
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds %struct.complex, ptr %1345, i64 %1347
  %1349 = getelementptr inbounds %struct.complex, ptr %1348, i32 0, i32 1
  %1350 = load float, ptr %1349, align 4, !tbaa !15
  %1351 = fmul float %1344, %1350
  %1352 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1351, ptr %1352, align 4, !tbaa !15
  %1353 = call <2 x float> @Cf(ptr noundef %48)
  store <2 x float> %1353, ptr %72, align 4
  %1354 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 0
  %1355 = load float, ptr %1354, align 4
  %1356 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 1
  %1357 = load float, ptr %1356, align 4
  %1358 = fneg float %1357
  %1359 = call ptr @_pCf(ptr noundef %27)
  %1360 = getelementptr inbounds { float, float }, ptr %1359, i32 0, i32 0
  %1361 = getelementptr inbounds { float, float }, ptr %1359, i32 0, i32 1
  store float %1355, ptr %1360, align 4
  store float %1358, ptr %1361, align 4
  %1362 = load i32, ptr %36, align 4, !tbaa !9
  %1363 = load i32, ptr %37, align 4, !tbaa !9
  %1364 = load i32, ptr %13, align 4, !tbaa !9
  %1365 = mul nsw i32 %1363, %1364
  %1366 = add nsw i32 %1362, %1365
  store i32 %1366, ptr %16, align 4, !tbaa !9
  %1367 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1368 = load float, ptr %1367, align 4, !tbaa !13
  %1369 = load ptr, ptr %9, align 8, !tbaa !5
  %1370 = load i32, ptr %16, align 4, !tbaa !9
  %1371 = sext i32 %1370 to i64
  %1372 = getelementptr inbounds %struct.complex, ptr %1369, i64 %1371
  %1373 = getelementptr inbounds %struct.complex, ptr %1372, i32 0, i32 0
  %1374 = load float, ptr %1373, align 4, !tbaa !13
  %1375 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1376 = load float, ptr %1375, align 4, !tbaa !15
  %1377 = load ptr, ptr %9, align 8, !tbaa !5
  %1378 = load i32, ptr %16, align 4, !tbaa !9
  %1379 = sext i32 %1378 to i64
  %1380 = getelementptr inbounds %struct.complex, ptr %1377, i64 %1379
  %1381 = getelementptr inbounds %struct.complex, ptr %1380, i32 0, i32 1
  %1382 = load float, ptr %1381, align 4, !tbaa !15
  %1383 = fmul float %1376, %1382
  %1384 = fneg float %1383
  %1385 = call float @llvm.fmuladd.f32(float %1368, float %1374, float %1384)
  %1386 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1385, ptr %1386, align 4, !tbaa !13
  %1387 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1388 = load float, ptr %1387, align 4, !tbaa !13
  %1389 = load ptr, ptr %9, align 8, !tbaa !5
  %1390 = load i32, ptr %16, align 4, !tbaa !9
  %1391 = sext i32 %1390 to i64
  %1392 = getelementptr inbounds %struct.complex, ptr %1389, i64 %1391
  %1393 = getelementptr inbounds %struct.complex, ptr %1392, i32 0, i32 1
  %1394 = load float, ptr %1393, align 4, !tbaa !15
  %1395 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1396 = load float, ptr %1395, align 4, !tbaa !15
  %1397 = load ptr, ptr %9, align 8, !tbaa !5
  %1398 = load i32, ptr %16, align 4, !tbaa !9
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds %struct.complex, ptr %1397, i64 %1399
  %1401 = getelementptr inbounds %struct.complex, ptr %1400, i32 0, i32 0
  %1402 = load float, ptr %1401, align 4, !tbaa !13
  %1403 = fmul float %1396, %1402
  %1404 = call float @llvm.fmuladd.f32(float %1388, float %1394, float %1403)
  %1405 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1404, ptr %1405, align 4, !tbaa !15
  %1406 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1407 = load float, ptr %1406, align 4, !tbaa !13
  %1408 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1409 = load float, ptr %1408, align 4, !tbaa !13
  %1410 = fsub float %1407, %1409
  %1411 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  store float %1410, ptr %1411, align 4, !tbaa !13
  %1412 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1413 = load float, ptr %1412, align 4, !tbaa !15
  %1414 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1415 = load float, ptr %1414, align 4, !tbaa !15
  %1416 = fsub float %1413, %1415
  %1417 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  store float %1416, ptr %1417, align 4, !tbaa !15
  %1418 = load float, ptr %56, align 4, !tbaa !11
  %1419 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  %1420 = load float, ptr %1419, align 4, !tbaa !13
  %1421 = fmul float %1418, %1420
  %1422 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1421, ptr %1422, align 4, !tbaa !13
  %1423 = load float, ptr %56, align 4, !tbaa !11
  %1424 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  %1425 = load float, ptr %1424, align 4, !tbaa !15
  %1426 = fmul float %1423, %1425
  %1427 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1426, ptr %1427, align 4, !tbaa !15
  %1428 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1429 = load float, ptr %1428, align 4, !tbaa !13
  %1430 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  store float %1429, ptr %1430, align 4, !tbaa !13
  %1431 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1432 = load float, ptr %1431, align 4, !tbaa !15
  %1433 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 1
  store float %1432, ptr %1433, align 4, !tbaa !15
  %1434 = load i32, ptr %36, align 4, !tbaa !9
  %1435 = load i32, ptr %37, align 4, !tbaa !9
  %1436 = load i32, ptr %13, align 4, !tbaa !9
  %1437 = mul nsw i32 %1435, %1436
  %1438 = add nsw i32 %1434, %1437
  store i32 %1438, ptr %15, align 4, !tbaa !9
  %1439 = load float, ptr %49, align 4, !tbaa !11
  %1440 = load ptr, ptr %9, align 8, !tbaa !5
  %1441 = load i32, ptr %15, align 4, !tbaa !9
  %1442 = sext i32 %1441 to i64
  %1443 = getelementptr inbounds %struct.complex, ptr %1440, i64 %1442
  %1444 = getelementptr inbounds %struct.complex, ptr %1443, i32 0, i32 0
  %1445 = load float, ptr %1444, align 4, !tbaa !13
  %1446 = fmul float %1439, %1445
  %1447 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1446, ptr %1447, align 4, !tbaa !13
  %1448 = load float, ptr %49, align 4, !tbaa !11
  %1449 = load ptr, ptr %9, align 8, !tbaa !5
  %1450 = load i32, ptr %15, align 4, !tbaa !9
  %1451 = sext i32 %1450 to i64
  %1452 = getelementptr inbounds %struct.complex, ptr %1449, i64 %1451
  %1453 = getelementptr inbounds %struct.complex, ptr %1452, i32 0, i32 1
  %1454 = load float, ptr %1453, align 4, !tbaa !15
  %1455 = fmul float %1448, %1454
  %1456 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1455, ptr %1456, align 4, !tbaa !15
  %1457 = load i32, ptr %36, align 4, !tbaa !9
  %1458 = load i32, ptr %37, align 4, !tbaa !9
  %1459 = sub nsw i32 %1458, 1
  %1460 = load i32, ptr %13, align 4, !tbaa !9
  %1461 = mul nsw i32 %1459, %1460
  %1462 = add nsw i32 %1457, %1461
  store i32 %1462, ptr %16, align 4, !tbaa !9
  %1463 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1464 = load float, ptr %1463, align 4, !tbaa !13
  %1465 = load ptr, ptr %9, align 8, !tbaa !5
  %1466 = load i32, ptr %16, align 4, !tbaa !9
  %1467 = sext i32 %1466 to i64
  %1468 = getelementptr inbounds %struct.complex, ptr %1465, i64 %1467
  %1469 = getelementptr inbounds %struct.complex, ptr %1468, i32 0, i32 0
  %1470 = load float, ptr %1469, align 4, !tbaa !13
  %1471 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1472 = load float, ptr %1471, align 4, !tbaa !15
  %1473 = load ptr, ptr %9, align 8, !tbaa !5
  %1474 = load i32, ptr %16, 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 !15
  %1479 = fmul float %1472, %1478
  %1480 = fneg float %1479
  %1481 = call float @llvm.fmuladd.f32(float %1464, float %1470, float %1480)
  %1482 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1481, ptr %1482, align 4, !tbaa !13
  %1483 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 0
  %1484 = load float, ptr %1483, align 4, !tbaa !13
  %1485 = load ptr, ptr %9, align 8, !tbaa !5
  %1486 = load i32, ptr %16, align 4, !tbaa !9
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds %struct.complex, ptr %1485, i64 %1487
  %1489 = getelementptr inbounds %struct.complex, ptr %1488, i32 0, i32 1
  %1490 = load float, ptr %1489, align 4, !tbaa !15
  %1491 = getelementptr inbounds %struct.complex, ptr %48, i32 0, i32 1
  %1492 = load float, ptr %1491, align 4, !tbaa !15
  %1493 = load ptr, ptr %9, align 8, !tbaa !5
  %1494 = load i32, ptr %16, align 4, !tbaa !9
  %1495 = sext i32 %1494 to i64
  %1496 = getelementptr inbounds %struct.complex, ptr %1493, i64 %1495
  %1497 = getelementptr inbounds %struct.complex, ptr %1496, i32 0, i32 0
  %1498 = load float, ptr %1497, align 4, !tbaa !13
  %1499 = fmul float %1492, %1498
  %1500 = call float @llvm.fmuladd.f32(float %1484, float %1490, float %1499)
  %1501 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1500, ptr %1501, align 4, !tbaa !15
  %1502 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1503 = load float, ptr %1502, align 4, !tbaa !13
  %1504 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1505 = load float, ptr %1504, align 4, !tbaa !13
  %1506 = fsub float %1503, %1505
  %1507 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  store float %1506, ptr %1507, align 4, !tbaa !13
  %1508 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1509 = load float, ptr %1508, align 4, !tbaa !15
  %1510 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1511 = load float, ptr %1510, align 4, !tbaa !15
  %1512 = fsub float %1509, %1511
  %1513 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  store float %1512, ptr %1513, align 4, !tbaa !15
  %1514 = load float, ptr %56, align 4, !tbaa !11
  %1515 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  %1516 = load float, ptr %1515, align 4, !tbaa !13
  %1517 = fmul float %1514, %1516
  %1518 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1517, ptr %1518, align 4, !tbaa !13
  %1519 = load float, ptr %56, align 4, !tbaa !11
  %1520 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  %1521 = load float, ptr %1520, align 4, !tbaa !15
  %1522 = fmul float %1519, %1521
  %1523 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1522, ptr %1523, align 4, !tbaa !15
  %1524 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1525 = load float, ptr %1524, align 4, !tbaa !13
  %1526 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  store float %1525, ptr %1526, align 4, !tbaa !13
  %1527 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1528 = load float, ptr %1527, align 4, !tbaa !15
  %1529 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  store float %1528, ptr %1529, align 4, !tbaa !15
  %1530 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %1530, ptr %35, align 4, !tbaa !9
  br label %1531

1531:                                             ; preds = %1702, %1328
  %1532 = load i32, ptr %35, align 4, !tbaa !9
  %1533 = icmp sge i32 %1532, 1
  br i1 %1533, label %1534, label %1705

1534:                                             ; preds = %1531
  %1535 = load i32, ptr %35, align 4, !tbaa !9
  %1536 = load i32, ptr %36, align 4, !tbaa !9
  %1537 = load i32, ptr %13, align 4, !tbaa !9
  %1538 = mul nsw i32 %1536, %1537
  %1539 = add nsw i32 %1535, %1538
  store i32 %1539, ptr %15, align 4, !tbaa !9
  %1540 = load i32, ptr %35, align 4, !tbaa !9
  %1541 = load i32, ptr %36, align 4, !tbaa !9
  %1542 = load i32, ptr %13, align 4, !tbaa !9
  %1543 = mul nsw i32 %1541, %1542
  %1544 = add nsw i32 %1540, %1543
  store i32 %1544, ptr %16, align 4, !tbaa !9
  %1545 = load i32, ptr %35, align 4, !tbaa !9
  %1546 = load i32, ptr %37, align 4, !tbaa !9
  %1547 = load i32, ptr %13, align 4, !tbaa !9
  %1548 = mul nsw i32 %1546, %1547
  %1549 = add nsw i32 %1545, %1548
  store i32 %1549, ptr %17, align 4, !tbaa !9
  %1550 = load ptr, ptr %9, align 8, !tbaa !5
  %1551 = load i32, ptr %17, align 4, !tbaa !9
  %1552 = sext i32 %1551 to i64
  %1553 = getelementptr inbounds %struct.complex, ptr %1550, i64 %1552
  %1554 = getelementptr inbounds %struct.complex, ptr %1553, i32 0, i32 0
  %1555 = load float, ptr %1554, align 4, !tbaa !13
  %1556 = load float, ptr %34, align 4, !tbaa !11
  %1557 = fdiv float %1555, %1556
  %1558 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1557, ptr %1558, align 4, !tbaa !13
  %1559 = load ptr, ptr %9, align 8, !tbaa !5
  %1560 = load i32, ptr %17, align 4, !tbaa !9
  %1561 = sext i32 %1560 to i64
  %1562 = getelementptr inbounds %struct.complex, ptr %1559, i64 %1561
  %1563 = getelementptr inbounds %struct.complex, ptr %1562, i32 0, i32 1
  %1564 = load float, ptr %1563, align 4, !tbaa !15
  %1565 = load float, ptr %34, align 4, !tbaa !11
  %1566 = fdiv float %1564, %1565
  %1567 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1566, ptr %1567, align 4, !tbaa !15
  %1568 = call <2 x float> @Cf(ptr noundef %55)
  store <2 x float> %1568, ptr %73, align 4
  %1569 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 0
  %1570 = load float, ptr %1569, align 4
  %1571 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 1
  %1572 = load float, ptr %1571, align 4
  %1573 = fneg float %1572
  %1574 = call ptr @_pCf(ptr noundef %27)
  %1575 = getelementptr inbounds { float, float }, ptr %1574, i32 0, i32 0
  %1576 = getelementptr inbounds { float, float }, ptr %1574, i32 0, i32 1
  store float %1570, ptr %1575, align 4
  store float %1573, ptr %1576, align 4
  %1577 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1578 = load float, ptr %1577, align 4, !tbaa !13
  %1579 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1580 = load float, ptr %1579, align 4, !tbaa !13
  %1581 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1582 = load float, ptr %1581, align 4, !tbaa !15
  %1583 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1584 = load float, ptr %1583, align 4, !tbaa !15
  %1585 = fmul float %1582, %1584
  %1586 = fneg float %1585
  %1587 = call float @llvm.fmuladd.f32(float %1578, float %1580, float %1586)
  %1588 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1587, ptr %1588, align 4, !tbaa !13
  %1589 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1590 = load float, ptr %1589, align 4, !tbaa !13
  %1591 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1592 = load float, ptr %1591, align 4, !tbaa !15
  %1593 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1594 = load float, ptr %1593, align 4, !tbaa !15
  %1595 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1596 = load float, ptr %1595, align 4, !tbaa !13
  %1597 = fmul float %1594, %1596
  %1598 = call float @llvm.fmuladd.f32(float %1590, float %1592, float %1597)
  %1599 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1598, ptr %1599, align 4, !tbaa !15
  %1600 = load ptr, ptr %9, align 8, !tbaa !5
  %1601 = load i32, ptr %16, align 4, !tbaa !9
  %1602 = sext i32 %1601 to i64
  %1603 = getelementptr inbounds %struct.complex, ptr %1600, i64 %1602
  %1604 = getelementptr inbounds %struct.complex, ptr %1603, i32 0, i32 0
  %1605 = load float, ptr %1604, align 4, !tbaa !13
  %1606 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1607 = load float, ptr %1606, align 4, !tbaa !13
  %1608 = fsub float %1605, %1607
  %1609 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  store float %1608, ptr %1609, align 4, !tbaa !13
  %1610 = load ptr, ptr %9, align 8, !tbaa !5
  %1611 = load i32, ptr %16, align 4, !tbaa !9
  %1612 = sext i32 %1611 to i64
  %1613 = getelementptr inbounds %struct.complex, ptr %1610, i64 %1612
  %1614 = getelementptr inbounds %struct.complex, ptr %1613, i32 0, i32 1
  %1615 = load float, ptr %1614, align 4, !tbaa !15
  %1616 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1617 = load float, ptr %1616, align 4, !tbaa !15
  %1618 = fsub float %1615, %1617
  %1619 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  store float %1618, ptr %1619, align 4, !tbaa !15
  %1620 = load i32, ptr %35, align 4, !tbaa !9
  %1621 = load i32, ptr %37, align 4, !tbaa !9
  %1622 = sub nsw i32 %1621, 1
  %1623 = load i32, ptr %13, align 4, !tbaa !9
  %1624 = mul nsw i32 %1622, %1623
  %1625 = add nsw i32 %1620, %1624
  store i32 %1625, ptr %18, align 4, !tbaa !9
  %1626 = load ptr, ptr %9, align 8, !tbaa !5
  %1627 = load i32, ptr %18, align 4, !tbaa !9
  %1628 = sext i32 %1627 to i64
  %1629 = getelementptr inbounds %struct.complex, ptr %1626, i64 %1628
  %1630 = getelementptr inbounds %struct.complex, ptr %1629, i32 0, i32 0
  %1631 = load float, ptr %1630, align 4, !tbaa !13
  %1632 = load float, ptr %34, align 4, !tbaa !11
  %1633 = fdiv float %1631, %1632
  %1634 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %1633, ptr %1634, align 4, !tbaa !13
  %1635 = load ptr, ptr %9, align 8, !tbaa !5
  %1636 = load i32, ptr %18, align 4, !tbaa !9
  %1637 = sext i32 %1636 to i64
  %1638 = getelementptr inbounds %struct.complex, ptr %1635, i64 %1637
  %1639 = getelementptr inbounds %struct.complex, ptr %1638, i32 0, i32 1
  %1640 = load float, ptr %1639, align 4, !tbaa !15
  %1641 = load float, ptr %34, align 4, !tbaa !11
  %1642 = fdiv float %1640, %1641
  %1643 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %1642, ptr %1643, align 4, !tbaa !15
  %1644 = call <2 x float> @Cf(ptr noundef %59)
  store <2 x float> %1644, ptr %74, align 4
  %1645 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 0
  %1646 = load float, ptr %1645, align 4
  %1647 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 1
  %1648 = load float, ptr %1647, align 4
  %1649 = fneg float %1648
  %1650 = call ptr @_pCf(ptr noundef %30)
  %1651 = getelementptr inbounds { float, float }, ptr %1650, i32 0, i32 0
  %1652 = getelementptr inbounds { float, float }, ptr %1650, i32 0, i32 1
  store float %1646, ptr %1651, align 4
  store float %1649, ptr %1652, align 4
  %1653 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1654 = load float, ptr %1653, align 4, !tbaa !13
  %1655 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %1656 = load float, ptr %1655, align 4, !tbaa !13
  %1657 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1658 = load float, ptr %1657, align 4, !tbaa !15
  %1659 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %1660 = load float, ptr %1659, align 4, !tbaa !15
  %1661 = fmul float %1658, %1660
  %1662 = fneg float %1661
  %1663 = call float @llvm.fmuladd.f32(float %1654, float %1656, float %1662)
  %1664 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  store float %1663, ptr %1664, align 4, !tbaa !13
  %1665 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1666 = load float, ptr %1665, align 4, !tbaa !13
  %1667 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %1668 = load float, ptr %1667, align 4, !tbaa !15
  %1669 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1670 = load float, ptr %1669, align 4, !tbaa !15
  %1671 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %1672 = load float, ptr %1671, align 4, !tbaa !13
  %1673 = fmul float %1670, %1672
  %1674 = call float @llvm.fmuladd.f32(float %1666, float %1668, float %1673)
  %1675 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  store float %1674, ptr %1675, align 4, !tbaa !15
  %1676 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  %1677 = load float, ptr %1676, align 4, !tbaa !13
  %1678 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  %1679 = load float, ptr %1678, align 4, !tbaa !13
  %1680 = fsub float %1677, %1679
  %1681 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1680, ptr %1681, align 4, !tbaa !13
  %1682 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  %1683 = load float, ptr %1682, align 4, !tbaa !15
  %1684 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  %1685 = load float, ptr %1684, align 4, !tbaa !15
  %1686 = fsub float %1683, %1685
  %1687 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1686, ptr %1687, align 4, !tbaa !15
  %1688 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1689 = load float, ptr %1688, align 4, !tbaa !13
  %1690 = load ptr, ptr %9, align 8, !tbaa !5
  %1691 = load i32, ptr %15, align 4, !tbaa !9
  %1692 = sext i32 %1691 to i64
  %1693 = getelementptr inbounds %struct.complex, ptr %1690, i64 %1692
  %1694 = getelementptr inbounds %struct.complex, ptr %1693, i32 0, i32 0
  store float %1689, ptr %1694, align 4, !tbaa !13
  %1695 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1696 = load float, ptr %1695, align 4, !tbaa !15
  %1697 = load ptr, ptr %9, align 8, !tbaa !5
  %1698 = load i32, ptr %15, align 4, !tbaa !9
  %1699 = sext i32 %1698 to i64
  %1700 = getelementptr inbounds %struct.complex, ptr %1697, i64 %1699
  %1701 = getelementptr inbounds %struct.complex, ptr %1700, i32 0, i32 1
  store float %1696, ptr %1701, align 4, !tbaa !15
  br label %1702

1702:                                             ; preds = %1534
  %1703 = load i32, ptr %35, align 4, !tbaa !9
  %1704 = add nsw i32 %1703, -1
  store i32 %1704, ptr %35, align 4, !tbaa !9
  br label %1531, !llvm.loop !20

1705:                                             ; preds = %1531
  %1706 = load i32, ptr %36, align 4, !tbaa !9
  %1707 = load i32, ptr %37, align 4, !tbaa !9
  %1708 = load i32, ptr %13, align 4, !tbaa !9
  %1709 = mul nsw i32 %1707, %1708
  %1710 = add nsw i32 %1706, %1709
  store i32 %1710, ptr %15, align 4, !tbaa !9
  %1711 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  %1712 = load float, ptr %1711, align 4, !tbaa !13
  %1713 = load float, ptr %34, align 4, !tbaa !11
  %1714 = fdiv float %1712, %1713
  %1715 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1714, ptr %1715, align 4, !tbaa !13
  %1716 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  %1717 = load float, ptr %1716, align 4, !tbaa !15
  %1718 = load float, ptr %34, align 4, !tbaa !11
  %1719 = fdiv float %1717, %1718
  %1720 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1719, ptr %1720, align 4, !tbaa !15
  %1721 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1722 = load float, ptr %1721, align 4, !tbaa !13
  %1723 = load ptr, ptr %9, align 8, !tbaa !5
  %1724 = load i32, ptr %15, align 4, !tbaa !9
  %1725 = sext i32 %1724 to i64
  %1726 = getelementptr inbounds %struct.complex, ptr %1723, i64 %1725
  %1727 = getelementptr inbounds %struct.complex, ptr %1726, i32 0, i32 0
  store float %1722, ptr %1727, align 4, !tbaa !13
  %1728 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1729 = load float, ptr %1728, align 4, !tbaa !15
  %1730 = load ptr, ptr %9, align 8, !tbaa !5
  %1731 = load i32, ptr %15, align 4, !tbaa !9
  %1732 = sext i32 %1731 to i64
  %1733 = getelementptr inbounds %struct.complex, ptr %1730, i64 %1732
  %1734 = getelementptr inbounds %struct.complex, ptr %1733, i32 0, i32 1
  store float %1729, ptr %1734, align 4, !tbaa !15
  %1735 = load i32, ptr %36, align 4, !tbaa !9
  %1736 = load i32, ptr %37, align 4, !tbaa !9
  %1737 = sub nsw i32 %1736, 1
  %1738 = load i32, ptr %13, align 4, !tbaa !9
  %1739 = mul nsw i32 %1737, %1738
  %1740 = add nsw i32 %1735, %1739
  store i32 %1740, ptr %15, align 4, !tbaa !9
  %1741 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 0
  %1742 = load float, ptr %1741, align 4, !tbaa !13
  %1743 = load float, ptr %34, align 4, !tbaa !11
  %1744 = fdiv float %1742, %1743
  %1745 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1744, ptr %1745, align 4, !tbaa !13
  %1746 = getelementptr inbounds %struct.complex, ptr %59, i32 0, i32 1
  %1747 = load float, ptr %1746, align 4, !tbaa !15
  %1748 = load float, ptr %34, align 4, !tbaa !11
  %1749 = fdiv float %1747, %1748
  %1750 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %1749, ptr %1750, align 4, !tbaa !15
  %1751 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1752 = load float, ptr %1751, align 4, !tbaa !13
  %1753 = load ptr, ptr %9, align 8, !tbaa !5
  %1754 = load i32, ptr %15, align 4, !tbaa !9
  %1755 = sext i32 %1754 to i64
  %1756 = getelementptr inbounds %struct.complex, ptr %1753, i64 %1755
  %1757 = getelementptr inbounds %struct.complex, ptr %1756, i32 0, i32 0
  store float %1752, ptr %1757, align 4, !tbaa !13
  %1758 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1759 = load float, ptr %1758, align 4, !tbaa !15
  %1760 = load ptr, ptr %9, align 8, !tbaa !5
  %1761 = load i32, ptr %15, align 4, !tbaa !9
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds %struct.complex, ptr %1760, i64 %1762
  %1764 = getelementptr inbounds %struct.complex, ptr %1763, i32 0, i32 1
  store float %1759, ptr %1764, align 4, !tbaa !15
  %1765 = load i32, ptr %36, align 4, !tbaa !9
  %1766 = load i32, ptr %36, align 4, !tbaa !9
  %1767 = load i32, ptr %13, align 4, !tbaa !9
  %1768 = mul nsw i32 %1766, %1767
  %1769 = add nsw i32 %1765, %1768
  store i32 %1769, ptr %15, align 4, !tbaa !9
  %1770 = load i32, ptr %36, align 4, !tbaa !9
  %1771 = load i32, ptr %36, align 4, !tbaa !9
  %1772 = load i32, ptr %13, align 4, !tbaa !9
  %1773 = mul nsw i32 %1771, %1772
  %1774 = add nsw i32 %1770, %1773
  store i32 %1774, ptr %16, align 4, !tbaa !9
  %1775 = load ptr, ptr %9, align 8, !tbaa !5
  %1776 = load i32, ptr %16, align 4, !tbaa !9
  %1777 = sext i32 %1776 to i64
  %1778 = getelementptr inbounds %struct.complex, ptr %1775, i64 %1777
  %1779 = getelementptr inbounds %struct.complex, ptr %1778, i32 0, i32 0
  %1780 = load float, ptr %1779, align 4, !tbaa !13
  store float %1780, ptr %21, align 4, !tbaa !11
  %1781 = load float, ptr %21, align 4, !tbaa !11
  %1782 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %1781, ptr %1782, align 4, !tbaa !13
  %1783 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float 0.000000e+00, ptr %1783, align 4, !tbaa !15
  %1784 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %1785 = load float, ptr %1784, align 4, !tbaa !13
  %1786 = load ptr, ptr %9, align 8, !tbaa !5
  %1787 = load i32, ptr %15, align 4, !tbaa !9
  %1788 = sext i32 %1787 to i64
  %1789 = getelementptr inbounds %struct.complex, ptr %1786, i64 %1788
  %1790 = getelementptr inbounds %struct.complex, ptr %1789, i32 0, i32 0
  store float %1785, ptr %1790, align 4, !tbaa !13
  %1791 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %1792 = load float, ptr %1791, align 4, !tbaa !15
  %1793 = load ptr, ptr %9, align 8, !tbaa !5
  %1794 = load i32, ptr %15, align 4, !tbaa !9
  %1795 = sext i32 %1794 to i64
  %1796 = getelementptr inbounds %struct.complex, ptr %1793, i64 %1795
  %1797 = getelementptr inbounds %struct.complex, ptr %1796, i32 0, i32 1
  store float %1792, ptr %1797, align 4, !tbaa !15
  br label %1798

1798:                                             ; preds = %1705
  %1799 = load i32, ptr %36, align 4, !tbaa !9
  %1800 = add nsw i32 %1799, -1
  store i32 %1800, ptr %36, align 4, !tbaa !9
  br label %1325, !llvm.loop !21

1801:                                             ; preds = %1325
  br label %1802

1802:                                             ; preds = %1801, %1206
  br label %1803

1803:                                             ; preds = %1802, %1205
  br label %1804

1804:                                             ; preds = %1803, %255
  %1805 = load i32, ptr %43, align 4, !tbaa !9
  %1806 = icmp eq i32 %1805, 1
  br i1 %1806, label %1807, label %1813

1807:                                             ; preds = %1804
  %1808 = load i32, ptr %53, align 4, !tbaa !9
  %1809 = load ptr, ptr %11, align 8, !tbaa !5
  %1810 = load i32, ptr %37, align 4, !tbaa !9
  %1811 = sext i32 %1810 to i64
  %1812 = getelementptr inbounds i32, ptr %1809, i64 %1811
  store i32 %1808, ptr %1812, align 4, !tbaa !9
  br label %1827

1813:                                             ; preds = %1804
  %1814 = load i32, ptr %38, align 4, !tbaa !9
  %1815 = sub nsw i32 0, %1814
  %1816 = load ptr, ptr %11, align 8, !tbaa !5
  %1817 = load i32, ptr %37, align 4, !tbaa !9
  %1818 = sext i32 %1817 to i64
  %1819 = getelementptr inbounds i32, ptr %1816, i64 %1818
  store i32 %1815, ptr %1819, align 4, !tbaa !9
  %1820 = load i32, ptr %53, align 4, !tbaa !9
  %1821 = sub nsw i32 0, %1820
  %1822 = load ptr, ptr %11, align 8, !tbaa !5
  %1823 = load i32, ptr %37, align 4, !tbaa !9
  %1824 = sub nsw i32 %1823, 1
  %1825 = sext i32 %1824 to i64
  %1826 = getelementptr inbounds i32, ptr %1822, i64 %1825
  store i32 %1821, ptr %1826, align 4, !tbaa !9
  br label %1827

1827:                                             ; preds = %1813, %1807
  %1828 = load i32, ptr %43, align 4, !tbaa !9
  %1829 = load i32, ptr %37, align 4, !tbaa !9
  %1830 = sub nsw i32 %1829, %1828
  store i32 %1830, ptr %37, align 4, !tbaa !9
  br label %154

1831:                                             ; preds = %143
  store i32 1, ptr %37, align 4, !tbaa !9
  br label %1832

1832:                                             ; preds = %3552, %1831
  %1833 = load i32, ptr %37, align 4, !tbaa !9
  %1834 = load ptr, ptr %8, align 8, !tbaa !5
  %1835 = load i32, ptr %1834, align 4, !tbaa !9
  %1836 = icmp sgt i32 %1833, %1835
  br i1 %1836, label %1837, label %1838

1837:                                             ; preds = %1832
  br label %3556

1838:                                             ; preds = %1832
  store i32 1, ptr %43, align 4, !tbaa !9
  %1839 = load i32, ptr %37, align 4, !tbaa !9
  store i32 %1839, ptr %38, align 4, !tbaa !9
  %1840 = load i32, ptr %37, align 4, !tbaa !9
  %1841 = load i32, ptr %37, align 4, !tbaa !9
  %1842 = load i32, ptr %13, align 4, !tbaa !9
  %1843 = mul nsw i32 %1841, %1842
  %1844 = add nsw i32 %1840, %1843
  store i32 %1844, ptr %15, align 4, !tbaa !9
  %1845 = load ptr, ptr %9, align 8, !tbaa !5
  %1846 = load i32, ptr %15, align 4, !tbaa !9
  %1847 = sext i32 %1846 to i64
  %1848 = getelementptr inbounds %struct.complex, ptr %1845, i64 %1847
  %1849 = getelementptr inbounds %struct.complex, ptr %1848, i32 0, i32 0
  %1850 = load float, ptr %1849, align 4, !tbaa !13
  store float %1850, ptr %21, align 4, !tbaa !11
  %1851 = load float, ptr %21, align 4, !tbaa !11
  %1852 = fcmp oge float %1851, 0.000000e+00
  br i1 %1852, label %1853, label %1855

1853:                                             ; preds = %1838
  %1854 = load float, ptr %21, align 4, !tbaa !11
  br label %1858

1855:                                             ; preds = %1838
  %1856 = load float, ptr %21, align 4, !tbaa !11
  %1857 = fneg float %1856
  br label %1858

1858:                                             ; preds = %1855, %1853
  %1859 = phi float [ %1854, %1853 ], [ %1857, %1855 ]
  store float %1859, ptr %54, align 4, !tbaa !11
  %1860 = load i32, ptr %37, align 4, !tbaa !9
  %1861 = load ptr, ptr %8, align 8, !tbaa !5
  %1862 = load i32, ptr %1861, align 4, !tbaa !9
  %1863 = icmp slt i32 %1860, %1862
  br i1 %1863, label %1864, label %1924

1864:                                             ; preds = %1858
  %1865 = load ptr, ptr %8, align 8, !tbaa !5
  %1866 = load i32, ptr %1865, align 4, !tbaa !9
  %1867 = load i32, ptr %37, align 4, !tbaa !9
  %1868 = sub nsw i32 %1866, %1867
  store i32 %1868, ptr %15, align 4, !tbaa !9
  %1869 = load i32, ptr %37, align 4, !tbaa !9
  %1870 = load ptr, ptr %9, align 8, !tbaa !5
  %1871 = load i32, ptr %37, align 4, !tbaa !9
  %1872 = add nsw i32 %1871, 1
  %1873 = load i32, ptr %37, align 4, !tbaa !9
  %1874 = load i32, ptr %13, align 4, !tbaa !9
  %1875 = mul nsw i32 %1873, %1874
  %1876 = add nsw i32 %1872, %1875
  %1877 = sext i32 %1876 to i64
  %1878 = getelementptr inbounds %struct.complex, ptr %1870, i64 %1877
  %1879 = call i32 @icamax_(ptr noundef %15, ptr noundef %1878, ptr noundef @c__1)
  %1880 = add nsw i32 %1869, %1879
  store i32 %1880, ptr %32, align 4, !tbaa !9
  %1881 = load i32, ptr %32, align 4, !tbaa !9
  %1882 = load i32, ptr %37, align 4, !tbaa !9
  %1883 = load i32, ptr %13, align 4, !tbaa !9
  %1884 = mul nsw i32 %1882, %1883
  %1885 = add nsw i32 %1881, %1884
  store i32 %1885, ptr %15, align 4, !tbaa !9
  %1886 = load ptr, ptr %9, align 8, !tbaa !5
  %1887 = load i32, ptr %15, align 4, !tbaa !9
  %1888 = sext i32 %1887 to i64
  %1889 = getelementptr inbounds %struct.complex, ptr %1886, i64 %1888
  %1890 = getelementptr inbounds %struct.complex, ptr %1889, i32 0, i32 0
  %1891 = load float, ptr %1890, align 4, !tbaa !13
  store float %1891, ptr %21, align 4, !tbaa !11
  %1892 = load float, ptr %21, align 4, !tbaa !11
  %1893 = fcmp oge float %1892, 0.000000e+00
  br i1 %1893, label %1894, label %1896

1894:                                             ; preds = %1864
  %1895 = load float, ptr %21, align 4, !tbaa !11
  br label %1899

1896:                                             ; preds = %1864
  %1897 = load float, ptr %21, align 4, !tbaa !11
  %1898 = fneg float %1897
  br label %1899

1899:                                             ; preds = %1896, %1894
  %1900 = phi float [ %1895, %1894 ], [ %1898, %1896 ]
  %1901 = load ptr, ptr %9, align 8, !tbaa !5
  %1902 = load i32, ptr %32, align 4, !tbaa !9
  %1903 = load i32, ptr %37, align 4, !tbaa !9
  %1904 = load i32, ptr %13, align 4, !tbaa !9
  %1905 = mul nsw i32 %1903, %1904
  %1906 = add nsw i32 %1902, %1905
  %1907 = sext i32 %1906 to i64
  %1908 = getelementptr inbounds %struct.complex, ptr %1901, i64 %1907
  %1909 = call <2 x float> @Cf(ptr noundef %1908)
  store <2 x float> %1909, ptr %75, align 4
  %1910 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 0
  %1911 = load float, ptr %1910, align 4
  %1912 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 1
  %1913 = load float, ptr %1912, align 4
  store float %1913, ptr %22, align 4, !tbaa !11
  %1914 = load float, ptr %22, align 4, !tbaa !11
  %1915 = fcmp oge float %1914, 0.000000e+00
  br i1 %1915, label %1916, label %1918

1916:                                             ; preds = %1899
  %1917 = load float, ptr %22, align 4, !tbaa !11
  br label %1921

1918:                                             ; preds = %1899
  %1919 = load float, ptr %22, align 4, !tbaa !11
  %1920 = fneg float %1919
  br label %1921

1921:                                             ; preds = %1918, %1916
  %1922 = phi float [ %1917, %1916 ], [ %1920, %1918 ]
  %1923 = fadd float %1900, %1922
  store float %1923, ptr %57, align 4, !tbaa !11
  br label %1925

1924:                                             ; preds = %1858
  store float 0.000000e+00, ptr %57, align 4, !tbaa !11
  br label %1925

1925:                                             ; preds = %1924, %1921
  %1926 = load float, ptr %54, align 4, !tbaa !11
  %1927 = load float, ptr %57, align 4, !tbaa !11
  %1928 = fcmp oge float %1926, %1927
  br i1 %1928, label %1929, label %1931

1929:                                             ; preds = %1925
  %1930 = load float, ptr %54, align 4, !tbaa !11
  br label %1933

1931:                                             ; preds = %1925
  %1932 = load float, ptr %57, align 4, !tbaa !11
  br label %1933

1933:                                             ; preds = %1931, %1929
  %1934 = phi float [ %1930, %1929 ], [ %1932, %1931 ]
  %1935 = fcmp oeq float %1934, 0.000000e+00
  br i1 %1935, label %1936, label %1972

1936:                                             ; preds = %1933
  %1937 = load ptr, ptr %12, align 8, !tbaa !5
  %1938 = load i32, ptr %1937, align 4, !tbaa !9
  %1939 = icmp eq i32 %1938, 0
  br i1 %1939, label %1940, label %1943

1940:                                             ; preds = %1936
  %1941 = load i32, ptr %37, align 4, !tbaa !9
  %1942 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %1941, ptr %1942, align 4, !tbaa !9
  br label %1943

1943:                                             ; preds = %1940, %1936
  %1944 = load i32, ptr %37, align 4, !tbaa !9
  store i32 %1944, ptr %53, align 4, !tbaa !9
  %1945 = load i32, ptr %37, align 4, !tbaa !9
  %1946 = load i32, ptr %37, align 4, !tbaa !9
  %1947 = load i32, ptr %13, align 4, !tbaa !9
  %1948 = mul nsw i32 %1946, %1947
  %1949 = add nsw i32 %1945, %1948
  store i32 %1949, ptr %15, align 4, !tbaa !9
  %1950 = load i32, ptr %37, align 4, !tbaa !9
  %1951 = load i32, ptr %37, align 4, !tbaa !9
  %1952 = load i32, ptr %13, align 4, !tbaa !9
  %1953 = mul nsw i32 %1951, %1952
  %1954 = add nsw i32 %1950, %1953
  store i32 %1954, ptr %16, align 4, !tbaa !9
  %1955 = load ptr, ptr %9, align 8, !tbaa !5
  %1956 = load i32, ptr %16, align 4, !tbaa !9
  %1957 = sext i32 %1956 to i64
  %1958 = getelementptr inbounds %struct.complex, ptr %1955, i64 %1957
  %1959 = getelementptr inbounds %struct.complex, ptr %1958, i32 0, i32 0
  %1960 = load float, ptr %1959, align 4, !tbaa !13
  store float %1960, ptr %21, align 4, !tbaa !11
  %1961 = load float, ptr %21, align 4, !tbaa !11
  %1962 = load ptr, ptr %9, align 8, !tbaa !5
  %1963 = load i32, ptr %15, align 4, !tbaa !9
  %1964 = sext i32 %1963 to i64
  %1965 = getelementptr inbounds %struct.complex, ptr %1962, i64 %1964
  %1966 = getelementptr inbounds %struct.complex, ptr %1965, i32 0, i32 0
  store float %1961, ptr %1966, align 4, !tbaa !13
  %1967 = load ptr, ptr %9, align 8, !tbaa !5
  %1968 = load i32, ptr %15, align 4, !tbaa !9
  %1969 = sext i32 %1968 to i64
  %1970 = getelementptr inbounds %struct.complex, ptr %1967, i64 %1969
  %1971 = getelementptr inbounds %struct.complex, ptr %1970, i32 0, i32 1
  store float 0.000000e+00, ptr %1971, align 4, !tbaa !15
  br label %3529

1972:                                             ; preds = %1933
  %1973 = load float, ptr %54, align 4, !tbaa !11
  %1974 = load float, ptr %40, align 4, !tbaa !11
  %1975 = load float, ptr %57, align 4, !tbaa !11
  %1976 = fmul float %1974, %1975
  %1977 = fcmp olt float %1973, %1976
  br i1 %1977, label %1980, label %1978

1978:                                             ; preds = %1972
  %1979 = load i32, ptr %37, align 4, !tbaa !9
  store i32 %1979, ptr %53, align 4, !tbaa !9
  br label %2165

1980:                                             ; preds = %1972
  store i32 0, ptr %31, align 4, !tbaa !9
  br label %1981

1981:                                             ; preds = %2163, %1980
  %1982 = load i32, ptr %32, align 4, !tbaa !9
  %1983 = load i32, ptr %37, align 4, !tbaa !9
  %1984 = icmp ne i32 %1982, %1983
  br i1 %1984, label %1985, label %2045

1985:                                             ; preds = %1981
  %1986 = load i32, ptr %32, align 4, !tbaa !9
  %1987 = load i32, ptr %37, align 4, !tbaa !9
  %1988 = sub nsw i32 %1986, %1987
  store i32 %1988, ptr %15, align 4, !tbaa !9
  %1989 = load i32, ptr %37, align 4, !tbaa !9
  %1990 = sub nsw i32 %1989, 1
  %1991 = load ptr, ptr %9, align 8, !tbaa !5
  %1992 = load i32, ptr %32, align 4, !tbaa !9
  %1993 = load i32, ptr %37, align 4, !tbaa !9
  %1994 = load i32, ptr %13, align 4, !tbaa !9
  %1995 = mul nsw i32 %1993, %1994
  %1996 = add nsw i32 %1992, %1995
  %1997 = sext i32 %1996 to i64
  %1998 = getelementptr inbounds %struct.complex, ptr %1991, i64 %1997
  %1999 = load ptr, ptr %10, align 8, !tbaa !5
  %2000 = call i32 @icamax_(ptr noundef %15, ptr noundef %1998, ptr noundef %1999)
  %2001 = add nsw i32 %1990, %2000
  store i32 %2001, ptr %33, align 4, !tbaa !9
  %2002 = load i32, ptr %32, align 4, !tbaa !9
  %2003 = load i32, ptr %33, align 4, !tbaa !9
  %2004 = load i32, ptr %13, align 4, !tbaa !9
  %2005 = mul nsw i32 %2003, %2004
  %2006 = add nsw i32 %2002, %2005
  store i32 %2006, ptr %15, align 4, !tbaa !9
  %2007 = load ptr, ptr %9, align 8, !tbaa !5
  %2008 = load i32, ptr %15, align 4, !tbaa !9
  %2009 = sext i32 %2008 to i64
  %2010 = getelementptr inbounds %struct.complex, ptr %2007, i64 %2009
  %2011 = getelementptr inbounds %struct.complex, ptr %2010, i32 0, i32 0
  %2012 = load float, ptr %2011, align 4, !tbaa !13
  store float %2012, ptr %21, align 4, !tbaa !11
  %2013 = load float, ptr %21, align 4, !tbaa !11
  %2014 = fcmp oge float %2013, 0.000000e+00
  br i1 %2014, label %2015, label %2017

2015:                                             ; preds = %1985
  %2016 = load float, ptr %21, align 4, !tbaa !11
  br label %2020

2017:                                             ; preds = %1985
  %2018 = load float, ptr %21, align 4, !tbaa !11
  %2019 = fneg float %2018
  br label %2020

2020:                                             ; preds = %2017, %2015
  %2021 = phi float [ %2016, %2015 ], [ %2019, %2017 ]
  %2022 = load ptr, ptr %9, align 8, !tbaa !5
  %2023 = load i32, ptr %32, align 4, !tbaa !9
  %2024 = load i32, ptr %33, align 4, !tbaa !9
  %2025 = load i32, ptr %13, align 4, !tbaa !9
  %2026 = mul nsw i32 %2024, %2025
  %2027 = add nsw i32 %2023, %2026
  %2028 = sext i32 %2027 to i64
  %2029 = getelementptr inbounds %struct.complex, ptr %2022, i64 %2028
  %2030 = call <2 x float> @Cf(ptr noundef %2029)
  store <2 x float> %2030, ptr %76, align 4
  %2031 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 0
  %2032 = load float, ptr %2031, align 4
  %2033 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 1
  %2034 = load float, ptr %2033, align 4
  store float %2034, ptr %22, align 4, !tbaa !11
  %2035 = load float, ptr %22, align 4, !tbaa !11
  %2036 = fcmp oge float %2035, 0.000000e+00
  br i1 %2036, label %2037, label %2039

2037:                                             ; preds = %2020
  %2038 = load float, ptr %22, align 4, !tbaa !11
  br label %2042

2039:                                             ; preds = %2020
  %2040 = load float, ptr %22, align 4, !tbaa !11
  %2041 = fneg float %2040
  br label %2042

2042:                                             ; preds = %2039, %2037
  %2043 = phi float [ %2038, %2037 ], [ %2041, %2039 ]
  %2044 = fadd float %2021, %2043
  store float %2044, ptr %58, align 4, !tbaa !11
  br label %2046

2045:                                             ; preds = %1981
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  br label %2046

2046:                                             ; preds = %2045, %2042
  %2047 = load i32, ptr %32, align 4, !tbaa !9
  %2048 = load ptr, ptr %8, align 8, !tbaa !5
  %2049 = load i32, ptr %2048, align 4, !tbaa !9
  %2050 = icmp slt i32 %2047, %2049
  br i1 %2050, label %2051, label %2118

2051:                                             ; preds = %2046
  %2052 = load ptr, ptr %8, align 8, !tbaa !5
  %2053 = load i32, ptr %2052, align 4, !tbaa !9
  %2054 = load i32, ptr %32, align 4, !tbaa !9
  %2055 = sub nsw i32 %2053, %2054
  store i32 %2055, ptr %15, align 4, !tbaa !9
  %2056 = load i32, ptr %32, align 4, !tbaa !9
  %2057 = load ptr, ptr %9, align 8, !tbaa !5
  %2058 = load i32, ptr %32, align 4, !tbaa !9
  %2059 = add nsw i32 %2058, 1
  %2060 = load i32, ptr %32, align 4, !tbaa !9
  %2061 = load i32, ptr %13, align 4, !tbaa !9
  %2062 = mul nsw i32 %2060, %2061
  %2063 = add nsw i32 %2059, %2062
  %2064 = sext i32 %2063 to i64
  %2065 = getelementptr inbounds %struct.complex, ptr %2057, i64 %2064
  %2066 = call i32 @icamax_(ptr noundef %15, ptr noundef %2065, ptr noundef @c__1)
  %2067 = add nsw i32 %2056, %2066
  store i32 %2067, ptr %42, align 4, !tbaa !9
  %2068 = load i32, ptr %42, align 4, !tbaa !9
  %2069 = load i32, ptr %32, align 4, !tbaa !9
  %2070 = load i32, ptr %13, align 4, !tbaa !9
  %2071 = mul nsw i32 %2069, %2070
  %2072 = add nsw i32 %2068, %2071
  store i32 %2072, ptr %15, align 4, !tbaa !9
  %2073 = load ptr, ptr %9, align 8, !tbaa !5
  %2074 = load i32, ptr %15, align 4, !tbaa !9
  %2075 = sext i32 %2074 to i64
  %2076 = getelementptr inbounds %struct.complex, ptr %2073, i64 %2075
  %2077 = getelementptr inbounds %struct.complex, ptr %2076, i32 0, i32 0
  %2078 = load float, ptr %2077, align 4, !tbaa !13
  store float %2078, ptr %21, align 4, !tbaa !11
  %2079 = load float, ptr %21, align 4, !tbaa !11
  %2080 = fcmp oge float %2079, 0.000000e+00
  br i1 %2080, label %2081, label %2083

2081:                                             ; preds = %2051
  %2082 = load float, ptr %21, align 4, !tbaa !11
  br label %2086

2083:                                             ; preds = %2051
  %2084 = load float, ptr %21, align 4, !tbaa !11
  %2085 = fneg float %2084
  br label %2086

2086:                                             ; preds = %2083, %2081
  %2087 = phi float [ %2082, %2081 ], [ %2085, %2083 ]
  %2088 = load ptr, ptr %9, align 8, !tbaa !5
  %2089 = load i32, ptr %42, align 4, !tbaa !9
  %2090 = load i32, ptr %32, align 4, !tbaa !9
  %2091 = load i32, ptr %13, align 4, !tbaa !9
  %2092 = mul nsw i32 %2090, %2091
  %2093 = add nsw i32 %2089, %2092
  %2094 = sext i32 %2093 to i64
  %2095 = getelementptr inbounds %struct.complex, ptr %2088, i64 %2094
  %2096 = call <2 x float> @Cf(ptr noundef %2095)
  store <2 x float> %2096, ptr %77, align 4
  %2097 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 0
  %2098 = load float, ptr %2097, align 4
  %2099 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 1
  %2100 = load float, ptr %2099, align 4
  store float %2100, ptr %22, align 4, !tbaa !11
  %2101 = load float, ptr %22, align 4, !tbaa !11
  %2102 = fcmp oge float %2101, 0.000000e+00
  br i1 %2102, label %2103, label %2105

2103:                                             ; preds = %2086
  %2104 = load float, ptr %22, align 4, !tbaa !11
  br label %2108

2105:                                             ; preds = %2086
  %2106 = load float, ptr %22, align 4, !tbaa !11
  %2107 = fneg float %2106
  br label %2108

2108:                                             ; preds = %2105, %2103
  %2109 = phi float [ %2104, %2103 ], [ %2107, %2105 ]
  %2110 = fadd float %2087, %2109
  store float %2110, ptr %44, align 4, !tbaa !11
  %2111 = load float, ptr %44, align 4, !tbaa !11
  %2112 = load float, ptr %58, align 4, !tbaa !11
  %2113 = fcmp ogt float %2111, %2112
  br i1 %2113, label %2114, label %2117

2114:                                             ; preds = %2108
  %2115 = load float, ptr %44, align 4, !tbaa !11
  store float %2115, ptr %58, align 4, !tbaa !11
  %2116 = load i32, ptr %42, align 4, !tbaa !9
  store i32 %2116, ptr %33, align 4, !tbaa !9
  br label %2117

2117:                                             ; preds = %2114, %2108
  br label %2118

2118:                                             ; preds = %2117, %2046
  %2119 = load i32, ptr %32, align 4, !tbaa !9
  %2120 = load i32, ptr %32, align 4, !tbaa !9
  %2121 = load i32, ptr %13, align 4, !tbaa !9
  %2122 = mul nsw i32 %2120, %2121
  %2123 = add nsw i32 %2119, %2122
  store i32 %2123, ptr %15, align 4, !tbaa !9
  %2124 = load ptr, ptr %9, align 8, !tbaa !5
  %2125 = load i32, ptr %15, align 4, !tbaa !9
  %2126 = sext i32 %2125 to i64
  %2127 = getelementptr inbounds %struct.complex, ptr %2124, i64 %2126
  %2128 = getelementptr inbounds %struct.complex, ptr %2127, i32 0, i32 0
  %2129 = load float, ptr %2128, align 4, !tbaa !13
  store float %2129, ptr %21, align 4, !tbaa !11
  %2130 = load float, ptr %21, align 4, !tbaa !11
  %2131 = fcmp oge float %2130, 0.000000e+00
  br i1 %2131, label %2132, label %2134

2132:                                             ; preds = %2118
  %2133 = load float, ptr %21, align 4, !tbaa !11
  br label %2137

2134:                                             ; preds = %2118
  %2135 = load float, ptr %21, align 4, !tbaa !11
  %2136 = fneg float %2135
  br label %2137

2137:                                             ; preds = %2134, %2132
  %2138 = phi float [ %2133, %2132 ], [ %2136, %2134 ]
  %2139 = load float, ptr %40, align 4, !tbaa !11
  %2140 = load float, ptr %58, align 4, !tbaa !11
  %2141 = fmul float %2139, %2140
  %2142 = fcmp olt float %2138, %2141
  br i1 %2142, label %2145, label %2143

2143:                                             ; preds = %2137
  %2144 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %2144, ptr %53, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %2160

2145:                                             ; preds = %2137
  %2146 = load i32, ptr %38, align 4, !tbaa !9
  %2147 = load i32, ptr %33, align 4, !tbaa !9
  %2148 = icmp eq i32 %2146, %2147
  br i1 %2148, label %2153, label %2149

2149:                                             ; preds = %2145
  %2150 = load float, ptr %58, align 4, !tbaa !11
  %2151 = load float, ptr %57, align 4, !tbaa !11
  %2152 = fcmp ole float %2150, %2151
  br i1 %2152, label %2153, label %2155

2153:                                             ; preds = %2149, %2145
  %2154 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %2154, ptr %53, align 4, !tbaa !9
  store i32 2, ptr %43, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %2159

2155:                                             ; preds = %2149
  %2156 = load i32, ptr %32, align 4, !tbaa !9
  store i32 %2156, ptr %38, align 4, !tbaa !9
  %2157 = load float, ptr %58, align 4, !tbaa !11
  store float %2157, ptr %57, align 4, !tbaa !11
  %2158 = load i32, ptr %33, align 4, !tbaa !9
  store i32 %2158, ptr %32, align 4, !tbaa !9
  br label %2159

2159:                                             ; preds = %2155, %2153
  br label %2160

2160:                                             ; preds = %2159, %2143
  %2161 = load i32, ptr %31, align 4, !tbaa !9
  %2162 = icmp ne i32 %2161, 0
  br i1 %2162, label %2164, label %2163

2163:                                             ; preds = %2160
  br label %1981

2164:                                             ; preds = %2160
  br label %2165

2165:                                             ; preds = %2164, %1978
  %2166 = load i32, ptr %37, align 4, !tbaa !9
  %2167 = load i32, ptr %43, align 4, !tbaa !9
  %2168 = add nsw i32 %2166, %2167
  %2169 = sub nsw i32 %2168, 1
  store i32 %2169, ptr %52, align 4, !tbaa !9
  %2170 = load i32, ptr %43, align 4, !tbaa !9
  %2171 = icmp eq i32 %2170, 2
  br i1 %2171, label %2172, label %2386

2172:                                             ; preds = %2165
  %2173 = load i32, ptr %38, align 4, !tbaa !9
  %2174 = load i32, ptr %37, align 4, !tbaa !9
  %2175 = icmp ne i32 %2173, %2174
  br i1 %2175, label %2176, label %2386

2176:                                             ; preds = %2172
  %2177 = load i32, ptr %38, align 4, !tbaa !9
  %2178 = load ptr, ptr %8, align 8, !tbaa !5
  %2179 = load i32, ptr %2178, align 4, !tbaa !9
  %2180 = icmp slt i32 %2177, %2179
  br i1 %2180, label %2181, label %2204

2181:                                             ; preds = %2176
  %2182 = load ptr, ptr %8, align 8, !tbaa !5
  %2183 = load i32, ptr %2182, align 4, !tbaa !9
  %2184 = load i32, ptr %38, align 4, !tbaa !9
  %2185 = sub nsw i32 %2183, %2184
  store i32 %2185, ptr %15, align 4, !tbaa !9
  %2186 = load ptr, ptr %9, align 8, !tbaa !5
  %2187 = load i32, ptr %38, align 4, !tbaa !9
  %2188 = add nsw i32 %2187, 1
  %2189 = load i32, ptr %37, align 4, !tbaa !9
  %2190 = load i32, ptr %13, align 4, !tbaa !9
  %2191 = mul nsw i32 %2189, %2190
  %2192 = add nsw i32 %2188, %2191
  %2193 = sext i32 %2192 to i64
  %2194 = getelementptr inbounds %struct.complex, ptr %2186, i64 %2193
  %2195 = load ptr, ptr %9, align 8, !tbaa !5
  %2196 = load i32, ptr %38, align 4, !tbaa !9
  %2197 = add nsw i32 %2196, 1
  %2198 = load i32, ptr %38, align 4, !tbaa !9
  %2199 = load i32, ptr %13, align 4, !tbaa !9
  %2200 = mul nsw i32 %2198, %2199
  %2201 = add nsw i32 %2197, %2200
  %2202 = sext i32 %2201 to i64
  %2203 = getelementptr inbounds %struct.complex, ptr %2195, i64 %2202
  call void @cswap_(ptr noundef %15, ptr noundef %2194, ptr noundef @c__1, ptr noundef %2203, ptr noundef @c__1)
  br label %2204

2204:                                             ; preds = %2181, %2176
  %2205 = load i32, ptr %38, align 4, !tbaa !9
  %2206 = sub nsw i32 %2205, 1
  store i32 %2206, ptr %15, align 4, !tbaa !9
  %2207 = load i32, ptr %37, align 4, !tbaa !9
  %2208 = add nsw i32 %2207, 1
  store i32 %2208, ptr %36, align 4, !tbaa !9
  br label %2209

2209:                                             ; preds = %2292, %2204
  %2210 = load i32, ptr %36, align 4, !tbaa !9
  %2211 = load i32, ptr %15, align 4, !tbaa !9
  %2212 = icmp sle i32 %2210, %2211
  br i1 %2212, label %2213, label %2295

2213:                                             ; preds = %2209
  %2214 = load ptr, ptr %9, align 8, !tbaa !5
  %2215 = load i32, ptr %36, align 4, !tbaa !9
  %2216 = load i32, ptr %37, align 4, !tbaa !9
  %2217 = load i32, ptr %13, align 4, !tbaa !9
  %2218 = mul nsw i32 %2216, %2217
  %2219 = add nsw i32 %2215, %2218
  %2220 = sext i32 %2219 to i64
  %2221 = getelementptr inbounds %struct.complex, ptr %2214, i64 %2220
  %2222 = call <2 x float> @Cf(ptr noundef %2221)
  store <2 x float> %2222, ptr %78, align 4
  %2223 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 0
  %2224 = load float, ptr %2223, align 4
  %2225 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 1
  %2226 = load float, ptr %2225, align 4
  %2227 = fneg float %2226
  %2228 = call ptr @_pCf(ptr noundef %23)
  %2229 = getelementptr inbounds { float, float }, ptr %2228, i32 0, i32 0
  %2230 = getelementptr inbounds { float, float }, ptr %2228, i32 0, i32 1
  store float %2224, ptr %2229, align 4
  store float %2227, ptr %2230, align 4
  %2231 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %2232 = load float, ptr %2231, align 4, !tbaa !13
  %2233 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2232, ptr %2233, align 4, !tbaa !13
  %2234 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %2235 = load float, ptr %2234, align 4, !tbaa !15
  %2236 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %2235, ptr %2236, align 4, !tbaa !15
  %2237 = load i32, ptr %36, align 4, !tbaa !9
  %2238 = load i32, ptr %37, align 4, !tbaa !9
  %2239 = load i32, ptr %13, align 4, !tbaa !9
  %2240 = mul nsw i32 %2238, %2239
  %2241 = add nsw i32 %2237, %2240
  store i32 %2241, ptr %16, align 4, !tbaa !9
  %2242 = load ptr, ptr %9, align 8, !tbaa !5
  %2243 = load i32, ptr %38, align 4, !tbaa !9
  %2244 = load i32, ptr %36, align 4, !tbaa !9
  %2245 = load i32, ptr %13, align 4, !tbaa !9
  %2246 = mul nsw i32 %2244, %2245
  %2247 = add nsw i32 %2243, %2246
  %2248 = sext i32 %2247 to i64
  %2249 = getelementptr inbounds %struct.complex, ptr %2242, i64 %2248
  %2250 = call <2 x float> @Cf(ptr noundef %2249)
  store <2 x float> %2250, ptr %79, align 4
  %2251 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 0
  %2252 = load float, ptr %2251, align 4
  %2253 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 1
  %2254 = load float, ptr %2253, align 4
  %2255 = fneg float %2254
  %2256 = call ptr @_pCf(ptr noundef %23)
  %2257 = getelementptr inbounds { float, float }, ptr %2256, i32 0, i32 0
  %2258 = getelementptr inbounds { float, float }, ptr %2256, i32 0, i32 1
  store float %2252, ptr %2257, align 4
  store float %2255, ptr %2258, align 4
  %2259 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %2260 = load float, ptr %2259, align 4, !tbaa !13
  %2261 = load ptr, ptr %9, align 8, !tbaa !5
  %2262 = load i32, ptr %16, align 4, !tbaa !9
  %2263 = sext i32 %2262 to i64
  %2264 = getelementptr inbounds %struct.complex, ptr %2261, i64 %2263
  %2265 = getelementptr inbounds %struct.complex, ptr %2264, i32 0, i32 0
  store float %2260, ptr %2265, align 4, !tbaa !13
  %2266 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %2267 = load float, ptr %2266, align 4, !tbaa !15
  %2268 = load ptr, ptr %9, align 8, !tbaa !5
  %2269 = load i32, ptr %16, align 4, !tbaa !9
  %2270 = sext i32 %2269 to i64
  %2271 = getelementptr inbounds %struct.complex, ptr %2268, i64 %2270
  %2272 = getelementptr inbounds %struct.complex, ptr %2271, i32 0, i32 1
  store float %2267, ptr %2272, align 4, !tbaa !15
  %2273 = load i32, ptr %38, align 4, !tbaa !9
  %2274 = load i32, ptr %36, align 4, !tbaa !9
  %2275 = load i32, ptr %13, align 4, !tbaa !9
  %2276 = mul nsw i32 %2274, %2275
  %2277 = add nsw i32 %2273, %2276
  store i32 %2277, ptr %16, align 4, !tbaa !9
  %2278 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %2279 = load float, ptr %2278, align 4, !tbaa !13
  %2280 = load ptr, ptr %9, align 8, !tbaa !5
  %2281 = load i32, ptr %16, align 4, !tbaa !9
  %2282 = sext i32 %2281 to i64
  %2283 = getelementptr inbounds %struct.complex, ptr %2280, i64 %2282
  %2284 = getelementptr inbounds %struct.complex, ptr %2283, i32 0, i32 0
  store float %2279, ptr %2284, align 4, !tbaa !13
  %2285 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %2286 = load float, ptr %2285, align 4, !tbaa !15
  %2287 = load ptr, ptr %9, align 8, !tbaa !5
  %2288 = load i32, ptr %16, align 4, !tbaa !9
  %2289 = sext i32 %2288 to i64
  %2290 = getelementptr inbounds %struct.complex, ptr %2287, i64 %2289
  %2291 = getelementptr inbounds %struct.complex, ptr %2290, i32 0, i32 1
  store float %2286, ptr %2291, align 4, !tbaa !15
  br label %2292

2292:                                             ; preds = %2213
  %2293 = load i32, ptr %36, align 4, !tbaa !9
  %2294 = add nsw i32 %2293, 1
  store i32 %2294, ptr %36, align 4, !tbaa !9
  br label %2209, !llvm.loop !22

2295:                                             ; preds = %2209
  %2296 = load i32, ptr %38, align 4, !tbaa !9
  %2297 = load i32, ptr %37, align 4, !tbaa !9
  %2298 = load i32, ptr %13, align 4, !tbaa !9
  %2299 = mul nsw i32 %2297, %2298
  %2300 = add nsw i32 %2296, %2299
  store i32 %2300, ptr %15, align 4, !tbaa !9
  %2301 = load ptr, ptr %9, align 8, !tbaa !5
  %2302 = load i32, ptr %38, align 4, !tbaa !9
  %2303 = load i32, ptr %37, align 4, !tbaa !9
  %2304 = load i32, ptr %13, align 4, !tbaa !9
  %2305 = mul nsw i32 %2303, %2304
  %2306 = add nsw i32 %2302, %2305
  %2307 = sext i32 %2306 to i64
  %2308 = getelementptr inbounds %struct.complex, ptr %2301, i64 %2307
  %2309 = call <2 x float> @Cf(ptr noundef %2308)
  store <2 x float> %2309, ptr %80, align 4
  %2310 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 0
  %2311 = load float, ptr %2310, align 4
  %2312 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 1
  %2313 = load float, ptr %2312, align 4
  %2314 = fneg float %2313
  %2315 = call ptr @_pCf(ptr noundef %23)
  %2316 = getelementptr inbounds { float, float }, ptr %2315, i32 0, i32 0
  %2317 = getelementptr inbounds { float, float }, ptr %2315, i32 0, i32 1
  store float %2311, ptr %2316, align 4
  store float %2314, ptr %2317, align 4
  %2318 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %2319 = load float, ptr %2318, align 4, !tbaa !13
  %2320 = load ptr, ptr %9, align 8, !tbaa !5
  %2321 = load i32, ptr %15, align 4, !tbaa !9
  %2322 = sext i32 %2321 to i64
  %2323 = getelementptr inbounds %struct.complex, ptr %2320, i64 %2322
  %2324 = getelementptr inbounds %struct.complex, ptr %2323, i32 0, i32 0
  store float %2319, ptr %2324, align 4, !tbaa !13
  %2325 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %2326 = load float, ptr %2325, align 4, !tbaa !15
  %2327 = load ptr, ptr %9, align 8, !tbaa !5
  %2328 = load i32, ptr %15, align 4, !tbaa !9
  %2329 = sext i32 %2328 to i64
  %2330 = getelementptr inbounds %struct.complex, ptr %2327, i64 %2329
  %2331 = getelementptr inbounds %struct.complex, ptr %2330, i32 0, i32 1
  store float %2326, ptr %2331, align 4, !tbaa !15
  %2332 = load i32, ptr %37, align 4, !tbaa !9
  %2333 = load i32, ptr %37, align 4, !tbaa !9
  %2334 = load i32, ptr %13, align 4, !tbaa !9
  %2335 = mul nsw i32 %2333, %2334
  %2336 = add nsw i32 %2332, %2335
  store i32 %2336, ptr %15, align 4, !tbaa !9
  %2337 = load ptr, ptr %9, align 8, !tbaa !5
  %2338 = load i32, ptr %15, align 4, !tbaa !9
  %2339 = sext i32 %2338 to i64
  %2340 = getelementptr inbounds %struct.complex, ptr %2337, i64 %2339
  %2341 = getelementptr inbounds %struct.complex, ptr %2340, i32 0, i32 0
  %2342 = load float, ptr %2341, align 4, !tbaa !13
  store float %2342, ptr %46, align 4, !tbaa !11
  %2343 = load i32, ptr %37, align 4, !tbaa !9
  %2344 = load i32, ptr %37, align 4, !tbaa !9
  %2345 = load i32, ptr %13, align 4, !tbaa !9
  %2346 = mul nsw i32 %2344, %2345
  %2347 = add nsw i32 %2343, %2346
  store i32 %2347, ptr %15, align 4, !tbaa !9
  %2348 = load i32, ptr %38, align 4, !tbaa !9
  %2349 = load i32, ptr %38, align 4, !tbaa !9
  %2350 = load i32, ptr %13, align 4, !tbaa !9
  %2351 = mul nsw i32 %2349, %2350
  %2352 = add nsw i32 %2348, %2351
  store i32 %2352, ptr %16, align 4, !tbaa !9
  %2353 = load ptr, ptr %9, align 8, !tbaa !5
  %2354 = load i32, ptr %16, align 4, !tbaa !9
  %2355 = sext i32 %2354 to i64
  %2356 = getelementptr inbounds %struct.complex, ptr %2353, i64 %2355
  %2357 = getelementptr inbounds %struct.complex, ptr %2356, i32 0, i32 0
  %2358 = load float, ptr %2357, align 4, !tbaa !13
  store float %2358, ptr %21, align 4, !tbaa !11
  %2359 = load float, ptr %21, align 4, !tbaa !11
  %2360 = load ptr, ptr %9, align 8, !tbaa !5
  %2361 = load i32, ptr %15, align 4, !tbaa !9
  %2362 = sext i32 %2361 to i64
  %2363 = getelementptr inbounds %struct.complex, ptr %2360, i64 %2362
  %2364 = getelementptr inbounds %struct.complex, ptr %2363, i32 0, i32 0
  store float %2359, ptr %2364, align 4, !tbaa !13
  %2365 = load ptr, ptr %9, align 8, !tbaa !5
  %2366 = load i32, ptr %15, align 4, !tbaa !9
  %2367 = sext i32 %2366 to i64
  %2368 = getelementptr inbounds %struct.complex, ptr %2365, i64 %2367
  %2369 = getelementptr inbounds %struct.complex, ptr %2368, i32 0, i32 1
  store float 0.000000e+00, ptr %2369, align 4, !tbaa !15
  %2370 = load i32, ptr %38, align 4, !tbaa !9
  %2371 = load i32, ptr %38, align 4, !tbaa !9
  %2372 = load i32, ptr %13, align 4, !tbaa !9
  %2373 = mul nsw i32 %2371, %2372
  %2374 = add nsw i32 %2370, %2373
  store i32 %2374, ptr %15, align 4, !tbaa !9
  %2375 = load float, ptr %46, align 4, !tbaa !11
  %2376 = load ptr, ptr %9, align 8, !tbaa !5
  %2377 = load i32, ptr %15, align 4, !tbaa !9
  %2378 = sext i32 %2377 to i64
  %2379 = getelementptr inbounds %struct.complex, ptr %2376, i64 %2378
  %2380 = getelementptr inbounds %struct.complex, ptr %2379, i32 0, i32 0
  store float %2375, ptr %2380, align 4, !tbaa !13
  %2381 = load ptr, ptr %9, align 8, !tbaa !5
  %2382 = load i32, ptr %15, align 4, !tbaa !9
  %2383 = sext i32 %2382 to i64
  %2384 = getelementptr inbounds %struct.complex, ptr %2381, i64 %2383
  %2385 = getelementptr inbounds %struct.complex, ptr %2384, i32 0, i32 1
  store float 0.000000e+00, ptr %2385, align 4, !tbaa !15
  br label %2386

2386:                                             ; preds = %2295, %2172, %2165
  %2387 = load i32, ptr %53, align 4, !tbaa !9
  %2388 = load i32, ptr %52, align 4, !tbaa !9
  %2389 = icmp ne i32 %2387, %2388
  br i1 %2389, label %2390, label %2703

2390:                                             ; preds = %2386
  %2391 = load i32, ptr %53, align 4, !tbaa !9
  %2392 = load ptr, ptr %8, align 8, !tbaa !5
  %2393 = load i32, ptr %2392, align 4, !tbaa !9
  %2394 = icmp slt i32 %2391, %2393
  br i1 %2394, label %2395, label %2418

2395:                                             ; preds = %2390
  %2396 = load ptr, ptr %8, align 8, !tbaa !5
  %2397 = load i32, ptr %2396, align 4, !tbaa !9
  %2398 = load i32, ptr %53, align 4, !tbaa !9
  %2399 = sub nsw i32 %2397, %2398
  store i32 %2399, ptr %15, align 4, !tbaa !9
  %2400 = load ptr, ptr %9, align 8, !tbaa !5
  %2401 = load i32, ptr %53, align 4, !tbaa !9
  %2402 = add nsw i32 %2401, 1
  %2403 = load i32, ptr %52, align 4, !tbaa !9
  %2404 = load i32, ptr %13, align 4, !tbaa !9
  %2405 = mul nsw i32 %2403, %2404
  %2406 = add nsw i32 %2402, %2405
  %2407 = sext i32 %2406 to i64
  %2408 = getelementptr inbounds %struct.complex, ptr %2400, i64 %2407
  %2409 = load ptr, ptr %9, align 8, !tbaa !5
  %2410 = load i32, ptr %53, align 4, !tbaa !9
  %2411 = add nsw i32 %2410, 1
  %2412 = load i32, ptr %53, align 4, !tbaa !9
  %2413 = load i32, ptr %13, align 4, !tbaa !9
  %2414 = mul nsw i32 %2412, %2413
  %2415 = add nsw i32 %2411, %2414
  %2416 = sext i32 %2415 to i64
  %2417 = getelementptr inbounds %struct.complex, ptr %2409, i64 %2416
  call void @cswap_(ptr noundef %15, ptr noundef %2408, ptr noundef @c__1, ptr noundef %2417, ptr noundef @c__1)
  br label %2418

2418:                                             ; preds = %2395, %2390
  %2419 = load i32, ptr %53, align 4, !tbaa !9
  %2420 = sub nsw i32 %2419, 1
  store i32 %2420, ptr %15, align 4, !tbaa !9
  %2421 = load i32, ptr %52, align 4, !tbaa !9
  %2422 = add nsw i32 %2421, 1
  store i32 %2422, ptr %36, align 4, !tbaa !9
  br label %2423

2423:                                             ; preds = %2506, %2418
  %2424 = load i32, ptr %36, align 4, !tbaa !9
  %2425 = load i32, ptr %15, align 4, !tbaa !9
  %2426 = icmp sle i32 %2424, %2425
  br i1 %2426, label %2427, label %2509

2427:                                             ; preds = %2423
  %2428 = load ptr, ptr %9, align 8, !tbaa !5
  %2429 = load i32, ptr %36, align 4, !tbaa !9
  %2430 = load i32, ptr %52, align 4, !tbaa !9
  %2431 = load i32, ptr %13, align 4, !tbaa !9
  %2432 = mul nsw i32 %2430, %2431
  %2433 = add nsw i32 %2429, %2432
  %2434 = sext i32 %2433 to i64
  %2435 = getelementptr inbounds %struct.complex, ptr %2428, i64 %2434
  %2436 = call <2 x float> @Cf(ptr noundef %2435)
  store <2 x float> %2436, ptr %81, align 4
  %2437 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 0
  %2438 = load float, ptr %2437, align 4
  %2439 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 1
  %2440 = load float, ptr %2439, align 4
  %2441 = fneg float %2440
  %2442 = call ptr @_pCf(ptr noundef %23)
  %2443 = getelementptr inbounds { float, float }, ptr %2442, i32 0, i32 0
  %2444 = getelementptr inbounds { float, float }, ptr %2442, i32 0, i32 1
  store float %2438, ptr %2443, align 4
  store float %2441, ptr %2444, align 4
  %2445 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %2446 = load float, ptr %2445, align 4, !tbaa !13
  %2447 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2446, ptr %2447, align 4, !tbaa !13
  %2448 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %2449 = load float, ptr %2448, align 4, !tbaa !15
  %2450 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %2449, ptr %2450, align 4, !tbaa !15
  %2451 = load i32, ptr %36, align 4, !tbaa !9
  %2452 = load i32, ptr %52, align 4, !tbaa !9
  %2453 = load i32, ptr %13, align 4, !tbaa !9
  %2454 = mul nsw i32 %2452, %2453
  %2455 = add nsw i32 %2451, %2454
  store i32 %2455, ptr %16, align 4, !tbaa !9
  %2456 = load ptr, ptr %9, align 8, !tbaa !5
  %2457 = load i32, ptr %53, align 4, !tbaa !9
  %2458 = load i32, ptr %36, align 4, !tbaa !9
  %2459 = load i32, ptr %13, align 4, !tbaa !9
  %2460 = mul nsw i32 %2458, %2459
  %2461 = add nsw i32 %2457, %2460
  %2462 = sext i32 %2461 to i64
  %2463 = getelementptr inbounds %struct.complex, ptr %2456, i64 %2462
  %2464 = call <2 x float> @Cf(ptr noundef %2463)
  store <2 x float> %2464, ptr %82, align 4
  %2465 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 0
  %2466 = load float, ptr %2465, align 4
  %2467 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 1
  %2468 = load float, ptr %2467, align 4
  %2469 = fneg float %2468
  %2470 = call ptr @_pCf(ptr noundef %23)
  %2471 = getelementptr inbounds { float, float }, ptr %2470, i32 0, i32 0
  %2472 = getelementptr inbounds { float, float }, ptr %2470, i32 0, i32 1
  store float %2466, ptr %2471, align 4
  store float %2469, ptr %2472, align 4
  %2473 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %2474 = load float, ptr %2473, align 4, !tbaa !13
  %2475 = load ptr, ptr %9, align 8, !tbaa !5
  %2476 = load i32, ptr %16, align 4, !tbaa !9
  %2477 = sext i32 %2476 to i64
  %2478 = getelementptr inbounds %struct.complex, ptr %2475, i64 %2477
  %2479 = getelementptr inbounds %struct.complex, ptr %2478, i32 0, i32 0
  store float %2474, ptr %2479, align 4, !tbaa !13
  %2480 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %2481 = load float, ptr %2480, align 4, !tbaa !15
  %2482 = load ptr, ptr %9, align 8, !tbaa !5
  %2483 = load i32, ptr %16, align 4, !tbaa !9
  %2484 = sext i32 %2483 to i64
  %2485 = getelementptr inbounds %struct.complex, ptr %2482, i64 %2484
  %2486 = getelementptr inbounds %struct.complex, ptr %2485, i32 0, i32 1
  store float %2481, ptr %2486, align 4, !tbaa !15
  %2487 = load i32, ptr %53, align 4, !tbaa !9
  %2488 = load i32, ptr %36, align 4, !tbaa !9
  %2489 = load i32, ptr %13, align 4, !tbaa !9
  %2490 = mul nsw i32 %2488, %2489
  %2491 = add nsw i32 %2487, %2490
  store i32 %2491, ptr %16, align 4, !tbaa !9
  %2492 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %2493 = load float, ptr %2492, align 4, !tbaa !13
  %2494 = load ptr, ptr %9, align 8, !tbaa !5
  %2495 = load i32, ptr %16, align 4, !tbaa !9
  %2496 = sext i32 %2495 to i64
  %2497 = getelementptr inbounds %struct.complex, ptr %2494, i64 %2496
  %2498 = getelementptr inbounds %struct.complex, ptr %2497, i32 0, i32 0
  store float %2493, ptr %2498, align 4, !tbaa !13
  %2499 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %2500 = load float, ptr %2499, align 4, !tbaa !15
  %2501 = load ptr, ptr %9, align 8, !tbaa !5
  %2502 = load i32, ptr %16, align 4, !tbaa !9
  %2503 = sext i32 %2502 to i64
  %2504 = getelementptr inbounds %struct.complex, ptr %2501, i64 %2503
  %2505 = getelementptr inbounds %struct.complex, ptr %2504, i32 0, i32 1
  store float %2500, ptr %2505, align 4, !tbaa !15
  br label %2506

2506:                                             ; preds = %2427
  %2507 = load i32, ptr %36, align 4, !tbaa !9
  %2508 = add nsw i32 %2507, 1
  store i32 %2508, ptr %36, align 4, !tbaa !9
  br label %2423, !llvm.loop !23

2509:                                             ; preds = %2423
  %2510 = load i32, ptr %53, align 4, !tbaa !9
  %2511 = load i32, ptr %52, align 4, !tbaa !9
  %2512 = load i32, ptr %13, align 4, !tbaa !9
  %2513 = mul nsw i32 %2511, %2512
  %2514 = add nsw i32 %2510, %2513
  store i32 %2514, ptr %15, align 4, !tbaa !9
  %2515 = load ptr, ptr %9, align 8, !tbaa !5
  %2516 = load i32, ptr %53, align 4, !tbaa !9
  %2517 = load i32, ptr %52, align 4, !tbaa !9
  %2518 = load i32, ptr %13, align 4, !tbaa !9
  %2519 = mul nsw i32 %2517, %2518
  %2520 = add nsw i32 %2516, %2519
  %2521 = sext i32 %2520 to i64
  %2522 = getelementptr inbounds %struct.complex, ptr %2515, i64 %2521
  %2523 = call <2 x float> @Cf(ptr noundef %2522)
  store <2 x float> %2523, ptr %83, align 4
  %2524 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 0
  %2525 = load float, ptr %2524, align 4
  %2526 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 1
  %2527 = load float, ptr %2526, align 4
  %2528 = fneg float %2527
  %2529 = call ptr @_pCf(ptr noundef %23)
  %2530 = getelementptr inbounds { float, float }, ptr %2529, i32 0, i32 0
  %2531 = getelementptr inbounds { float, float }, ptr %2529, i32 0, i32 1
  store float %2525, ptr %2530, align 4
  store float %2528, ptr %2531, align 4
  %2532 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %2533 = load float, ptr %2532, align 4, !tbaa !13
  %2534 = load ptr, ptr %9, align 8, !tbaa !5
  %2535 = load i32, ptr %15, align 4, !tbaa !9
  %2536 = sext i32 %2535 to i64
  %2537 = getelementptr inbounds %struct.complex, ptr %2534, i64 %2536
  %2538 = getelementptr inbounds %struct.complex, ptr %2537, i32 0, i32 0
  store float %2533, ptr %2538, align 4, !tbaa !13
  %2539 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %2540 = load float, ptr %2539, align 4, !tbaa !15
  %2541 = load ptr, ptr %9, align 8, !tbaa !5
  %2542 = load i32, ptr %15, align 4, !tbaa !9
  %2543 = sext i32 %2542 to i64
  %2544 = getelementptr inbounds %struct.complex, ptr %2541, i64 %2543
  %2545 = getelementptr inbounds %struct.complex, ptr %2544, i32 0, i32 1
  store float %2540, ptr %2545, align 4, !tbaa !15
  %2546 = load i32, ptr %52, align 4, !tbaa !9
  %2547 = load i32, ptr %52, align 4, !tbaa !9
  %2548 = load i32, ptr %13, align 4, !tbaa !9
  %2549 = mul nsw i32 %2547, %2548
  %2550 = add nsw i32 %2546, %2549
  store i32 %2550, ptr %15, align 4, !tbaa !9
  %2551 = load ptr, ptr %9, align 8, !tbaa !5
  %2552 = load i32, ptr %15, 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 0
  %2556 = load float, ptr %2555, align 4, !tbaa !13
  store float %2556, ptr %46, align 4, !tbaa !11
  %2557 = load i32, ptr %52, align 4, !tbaa !9
  %2558 = load i32, ptr %52, align 4, !tbaa !9
  %2559 = load i32, ptr %13, align 4, !tbaa !9
  %2560 = mul nsw i32 %2558, %2559
  %2561 = add nsw i32 %2557, %2560
  store i32 %2561, ptr %15, align 4, !tbaa !9
  %2562 = load i32, ptr %53, align 4, !tbaa !9
  %2563 = load i32, ptr %53, align 4, !tbaa !9
  %2564 = load i32, ptr %13, align 4, !tbaa !9
  %2565 = mul nsw i32 %2563, %2564
  %2566 = add nsw i32 %2562, %2565
  store i32 %2566, ptr %16, align 4, !tbaa !9
  %2567 = load ptr, ptr %9, align 8, !tbaa !5
  %2568 = load i32, ptr %16, align 4, !tbaa !9
  %2569 = sext i32 %2568 to i64
  %2570 = getelementptr inbounds %struct.complex, ptr %2567, i64 %2569
  %2571 = getelementptr inbounds %struct.complex, ptr %2570, i32 0, i32 0
  %2572 = load float, ptr %2571, align 4, !tbaa !13
  store float %2572, ptr %21, align 4, !tbaa !11
  %2573 = load float, ptr %21, align 4, !tbaa !11
  %2574 = load ptr, ptr %9, align 8, !tbaa !5
  %2575 = load i32, ptr %15, align 4, !tbaa !9
  %2576 = sext i32 %2575 to i64
  %2577 = getelementptr inbounds %struct.complex, ptr %2574, i64 %2576
  %2578 = getelementptr inbounds %struct.complex, ptr %2577, i32 0, i32 0
  store float %2573, ptr %2578, align 4, !tbaa !13
  %2579 = load ptr, ptr %9, align 8, !tbaa !5
  %2580 = load i32, ptr %15, align 4, !tbaa !9
  %2581 = sext i32 %2580 to i64
  %2582 = getelementptr inbounds %struct.complex, ptr %2579, i64 %2581
  %2583 = getelementptr inbounds %struct.complex, ptr %2582, i32 0, i32 1
  store float 0.000000e+00, ptr %2583, align 4, !tbaa !15
  %2584 = load i32, ptr %53, align 4, !tbaa !9
  %2585 = load i32, ptr %53, align 4, !tbaa !9
  %2586 = load i32, ptr %13, align 4, !tbaa !9
  %2587 = mul nsw i32 %2585, %2586
  %2588 = add nsw i32 %2584, %2587
  store i32 %2588, ptr %15, align 4, !tbaa !9
  %2589 = load float, ptr %46, align 4, !tbaa !11
  %2590 = load ptr, ptr %9, align 8, !tbaa !5
  %2591 = load i32, ptr %15, align 4, !tbaa !9
  %2592 = sext i32 %2591 to i64
  %2593 = getelementptr inbounds %struct.complex, ptr %2590, i64 %2592
  %2594 = getelementptr inbounds %struct.complex, ptr %2593, i32 0, i32 0
  store float %2589, ptr %2594, align 4, !tbaa !13
  %2595 = load ptr, ptr %9, align 8, !tbaa !5
  %2596 = load i32, ptr %15, align 4, !tbaa !9
  %2597 = sext i32 %2596 to i64
  %2598 = getelementptr inbounds %struct.complex, ptr %2595, i64 %2597
  %2599 = getelementptr inbounds %struct.complex, ptr %2598, i32 0, i32 1
  store float 0.000000e+00, ptr %2599, align 4, !tbaa !15
  %2600 = load i32, ptr %43, align 4, !tbaa !9
  %2601 = icmp eq i32 %2600, 2
  br i1 %2601, label %2602, label %2702

2602:                                             ; preds = %2509
  %2603 = load i32, ptr %37, align 4, !tbaa !9
  %2604 = load i32, ptr %37, align 4, !tbaa !9
  %2605 = load i32, ptr %13, align 4, !tbaa !9
  %2606 = mul nsw i32 %2604, %2605
  %2607 = add nsw i32 %2603, %2606
  store i32 %2607, ptr %15, align 4, !tbaa !9
  %2608 = load i32, ptr %37, align 4, !tbaa !9
  %2609 = load i32, ptr %37, align 4, !tbaa !9
  %2610 = load i32, ptr %13, align 4, !tbaa !9
  %2611 = mul nsw i32 %2609, %2610
  %2612 = add nsw i32 %2608, %2611
  store i32 %2612, ptr %16, align 4, !tbaa !9
  %2613 = load ptr, ptr %9, align 8, !tbaa !5
  %2614 = load i32, ptr %16, 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
  %2618 = load float, ptr %2617, align 4, !tbaa !13
  store float %2618, ptr %21, align 4, !tbaa !11
  %2619 = load float, ptr %21, align 4, !tbaa !11
  %2620 = load ptr, ptr %9, align 8, !tbaa !5
  %2621 = load i32, ptr %15, 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 0
  store float %2619, ptr %2624, align 4, !tbaa !13
  %2625 = load ptr, ptr %9, align 8, !tbaa !5
  %2626 = load i32, ptr %15, align 4, !tbaa !9
  %2627 = sext i32 %2626 to i64
  %2628 = getelementptr inbounds %struct.complex, ptr %2625, i64 %2627
  %2629 = getelementptr inbounds %struct.complex, ptr %2628, i32 0, i32 1
  store float 0.000000e+00, ptr %2629, align 4, !tbaa !15
  %2630 = load i32, ptr %37, align 4, !tbaa !9
  %2631 = add nsw i32 %2630, 1
  %2632 = load i32, ptr %37, align 4, !tbaa !9
  %2633 = load i32, ptr %13, align 4, !tbaa !9
  %2634 = mul nsw i32 %2632, %2633
  %2635 = add nsw i32 %2631, %2634
  store i32 %2635, ptr %15, align 4, !tbaa !9
  %2636 = load ptr, ptr %9, align 8, !tbaa !5
  %2637 = load i32, ptr %15, align 4, !tbaa !9
  %2638 = sext i32 %2637 to i64
  %2639 = getelementptr inbounds %struct.complex, ptr %2636, i64 %2638
  %2640 = getelementptr inbounds %struct.complex, ptr %2639, i32 0, i32 0
  %2641 = load float, ptr %2640, align 4, !tbaa !13
  %2642 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2641, ptr %2642, align 4, !tbaa !13
  %2643 = load ptr, ptr %9, align 8, !tbaa !5
  %2644 = load i32, ptr %15, align 4, !tbaa !9
  %2645 = sext i32 %2644 to i64
  %2646 = getelementptr inbounds %struct.complex, ptr %2643, i64 %2645
  %2647 = getelementptr inbounds %struct.complex, ptr %2646, i32 0, i32 1
  %2648 = load float, ptr %2647, align 4, !tbaa !15
  %2649 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %2648, ptr %2649, align 4, !tbaa !15
  %2650 = load i32, ptr %37, align 4, !tbaa !9
  %2651 = add nsw i32 %2650, 1
  %2652 = load i32, ptr %37, align 4, !tbaa !9
  %2653 = load i32, ptr %13, align 4, !tbaa !9
  %2654 = mul nsw i32 %2652, %2653
  %2655 = add nsw i32 %2651, %2654
  store i32 %2655, ptr %15, align 4, !tbaa !9
  %2656 = load i32, ptr %53, align 4, !tbaa !9
  %2657 = load i32, ptr %37, align 4, !tbaa !9
  %2658 = load i32, ptr %13, align 4, !tbaa !9
  %2659 = mul nsw i32 %2657, %2658
  %2660 = add nsw i32 %2656, %2659
  store i32 %2660, ptr %16, align 4, !tbaa !9
  %2661 = load ptr, ptr %9, align 8, !tbaa !5
  %2662 = load i32, ptr %16, 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 0
  %2666 = load float, ptr %2665, align 4, !tbaa !13
  %2667 = load ptr, ptr %9, align 8, !tbaa !5
  %2668 = load i32, ptr %15, align 4, !tbaa !9
  %2669 = sext i32 %2668 to i64
  %2670 = getelementptr inbounds %struct.complex, ptr %2667, i64 %2669
  %2671 = getelementptr inbounds %struct.complex, ptr %2670, i32 0, i32 0
  store float %2666, ptr %2671, align 4, !tbaa !13
  %2672 = load ptr, ptr %9, align 8, !tbaa !5
  %2673 = load i32, ptr %16, align 4, !tbaa !9
  %2674 = sext i32 %2673 to i64
  %2675 = getelementptr inbounds %struct.complex, ptr %2672, i64 %2674
  %2676 = getelementptr inbounds %struct.complex, ptr %2675, i32 0, i32 1
  %2677 = load float, ptr %2676, align 4, !tbaa !15
  %2678 = load ptr, ptr %9, align 8, !tbaa !5
  %2679 = load i32, ptr %15, align 4, !tbaa !9
  %2680 = sext i32 %2679 to i64
  %2681 = getelementptr inbounds %struct.complex, ptr %2678, i64 %2680
  %2682 = getelementptr inbounds %struct.complex, ptr %2681, i32 0, i32 1
  store float %2677, ptr %2682, align 4, !tbaa !15
  %2683 = load i32, ptr %53, align 4, !tbaa !9
  %2684 = load i32, ptr %37, align 4, !tbaa !9
  %2685 = load i32, ptr %13, align 4, !tbaa !9
  %2686 = mul nsw i32 %2684, %2685
  %2687 = add nsw i32 %2683, %2686
  store i32 %2687, ptr %15, align 4, !tbaa !9
  %2688 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %2689 = load float, ptr %2688, align 4, !tbaa !13
  %2690 = load ptr, ptr %9, align 8, !tbaa !5
  %2691 = load i32, ptr %15, align 4, !tbaa !9
  %2692 = sext i32 %2691 to i64
  %2693 = getelementptr inbounds %struct.complex, ptr %2690, i64 %2692
  %2694 = getelementptr inbounds %struct.complex, ptr %2693, i32 0, i32 0
  store float %2689, ptr %2694, align 4, !tbaa !13
  %2695 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %2696 = load float, ptr %2695, align 4, !tbaa !15
  %2697 = load ptr, ptr %9, align 8, !tbaa !5
  %2698 = load i32, ptr %15, 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 1
  store float %2696, ptr %2701, align 4, !tbaa !15
  br label %2702

2702:                                             ; preds = %2602, %2509
  br label %2766

2703:                                             ; preds = %2386
  %2704 = load i32, ptr %37, align 4, !tbaa !9
  %2705 = load i32, ptr %37, align 4, !tbaa !9
  %2706 = load i32, ptr %13, align 4, !tbaa !9
  %2707 = mul nsw i32 %2705, %2706
  %2708 = add nsw i32 %2704, %2707
  store i32 %2708, ptr %15, align 4, !tbaa !9
  %2709 = load i32, ptr %37, align 4, !tbaa !9
  %2710 = load i32, ptr %37, align 4, !tbaa !9
  %2711 = load i32, ptr %13, align 4, !tbaa !9
  %2712 = mul nsw i32 %2710, %2711
  %2713 = add nsw i32 %2709, %2712
  store i32 %2713, ptr %16, align 4, !tbaa !9
  %2714 = load ptr, ptr %9, align 8, !tbaa !5
  %2715 = load i32, ptr %16, align 4, !tbaa !9
  %2716 = sext i32 %2715 to i64
  %2717 = getelementptr inbounds %struct.complex, ptr %2714, i64 %2716
  %2718 = getelementptr inbounds %struct.complex, ptr %2717, i32 0, i32 0
  %2719 = load float, ptr %2718, align 4, !tbaa !13
  store float %2719, ptr %21, align 4, !tbaa !11
  %2720 = load float, ptr %21, align 4, !tbaa !11
  %2721 = load ptr, ptr %9, align 8, !tbaa !5
  %2722 = load i32, ptr %15, align 4, !tbaa !9
  %2723 = sext i32 %2722 to i64
  %2724 = getelementptr inbounds %struct.complex, ptr %2721, i64 %2723
  %2725 = getelementptr inbounds %struct.complex, ptr %2724, i32 0, i32 0
  store float %2720, ptr %2725, align 4, !tbaa !13
  %2726 = load ptr, ptr %9, align 8, !tbaa !5
  %2727 = load i32, ptr %15, align 4, !tbaa !9
  %2728 = sext i32 %2727 to i64
  %2729 = getelementptr inbounds %struct.complex, ptr %2726, i64 %2728
  %2730 = getelementptr inbounds %struct.complex, ptr %2729, i32 0, i32 1
  store float 0.000000e+00, ptr %2730, align 4, !tbaa !15
  %2731 = load i32, ptr %43, align 4, !tbaa !9
  %2732 = icmp eq i32 %2731, 2
  br i1 %2732, label %2733, label %2765

2733:                                             ; preds = %2703
  %2734 = load i32, ptr %37, align 4, !tbaa !9
  %2735 = add nsw i32 %2734, 1
  %2736 = load i32, ptr %37, align 4, !tbaa !9
  %2737 = add nsw i32 %2736, 1
  %2738 = load i32, ptr %13, align 4, !tbaa !9
  %2739 = mul nsw i32 %2737, %2738
  %2740 = add nsw i32 %2735, %2739
  store i32 %2740, ptr %15, align 4, !tbaa !9
  %2741 = load i32, ptr %37, align 4, !tbaa !9
  %2742 = add nsw i32 %2741, 1
  %2743 = load i32, ptr %37, align 4, !tbaa !9
  %2744 = add nsw i32 %2743, 1
  %2745 = load i32, ptr %13, align 4, !tbaa !9
  %2746 = mul nsw i32 %2744, %2745
  %2747 = add nsw i32 %2742, %2746
  store i32 %2747, ptr %16, align 4, !tbaa !9
  %2748 = load ptr, ptr %9, align 8, !tbaa !5
  %2749 = load i32, ptr %16, align 4, !tbaa !9
  %2750 = sext i32 %2749 to i64
  %2751 = getelementptr inbounds %struct.complex, ptr %2748, i64 %2750
  %2752 = getelementptr inbounds %struct.complex, ptr %2751, i32 0, i32 0
  %2753 = load float, ptr %2752, align 4, !tbaa !13
  store float %2753, ptr %21, align 4, !tbaa !11
  %2754 = load float, ptr %21, align 4, !tbaa !11
  %2755 = load ptr, ptr %9, align 8, !tbaa !5
  %2756 = load i32, ptr %15, align 4, !tbaa !9
  %2757 = sext i32 %2756 to i64
  %2758 = getelementptr inbounds %struct.complex, ptr %2755, i64 %2757
  %2759 = getelementptr inbounds %struct.complex, ptr %2758, i32 0, i32 0
  store float %2754, ptr %2759, align 4, !tbaa !13
  %2760 = load ptr, ptr %9, align 8, !tbaa !5
  %2761 = load i32, ptr %15, align 4, !tbaa !9
  %2762 = sext i32 %2761 to i64
  %2763 = getelementptr inbounds %struct.complex, ptr %2760, i64 %2762
  %2764 = getelementptr inbounds %struct.complex, ptr %2763, i32 0, i32 1
  store float 0.000000e+00, ptr %2764, align 4, !tbaa !15
  br label %2765

2765:                                             ; preds = %2733, %2703
  br label %2766

2766:                                             ; preds = %2765, %2702
  %2767 = load i32, ptr %43, align 4, !tbaa !9
  %2768 = icmp eq i32 %2767, 1
  br i1 %2768, label %2769, label %2946

2769:                                             ; preds = %2766
  %2770 = load i32, ptr %37, align 4, !tbaa !9
  %2771 = load ptr, ptr %8, align 8, !tbaa !5
  %2772 = load i32, ptr %2771, align 4, !tbaa !9
  %2773 = icmp slt i32 %2770, %2772
  br i1 %2773, label %2774, label %2945

2774:                                             ; preds = %2769
  %2775 = load i32, ptr %37, align 4, !tbaa !9
  %2776 = load i32, ptr %37, align 4, !tbaa !9
  %2777 = load i32, ptr %13, align 4, !tbaa !9
  %2778 = mul nsw i32 %2776, %2777
  %2779 = add nsw i32 %2775, %2778
  store i32 %2779, ptr %15, align 4, !tbaa !9
  %2780 = load ptr, ptr %9, align 8, !tbaa !5
  %2781 = load i32, ptr %15, align 4, !tbaa !9
  %2782 = sext i32 %2781 to i64
  %2783 = getelementptr inbounds %struct.complex, ptr %2780, i64 %2782
  %2784 = getelementptr inbounds %struct.complex, ptr %2783, i32 0, i32 0
  %2785 = load float, ptr %2784, align 4, !tbaa !13
  store float %2785, ptr %21, align 4, !tbaa !11
  %2786 = load float, ptr %21, align 4, !tbaa !11
  %2787 = fcmp oge float %2786, 0.000000e+00
  br i1 %2787, label %2788, label %2790

2788:                                             ; preds = %2774
  %2789 = load float, ptr %21, align 4, !tbaa !11
  br label %2793

2790:                                             ; preds = %2774
  %2791 = load float, ptr %21, align 4, !tbaa !11
  %2792 = fneg float %2791
  br label %2793

2793:                                             ; preds = %2790, %2788
  %2794 = phi float [ %2789, %2788 ], [ %2792, %2790 ]
  %2795 = load float, ptr %41, align 4, !tbaa !11
  %2796 = fcmp oge float %2794, %2795
  br i1 %2796, label %2797, label %2850

2797:                                             ; preds = %2793
  %2798 = load i32, ptr %37, align 4, !tbaa !9
  %2799 = load i32, ptr %37, align 4, !tbaa !9
  %2800 = load i32, ptr %13, align 4, !tbaa !9
  %2801 = mul nsw i32 %2799, %2800
  %2802 = add nsw i32 %2798, %2801
  store i32 %2802, ptr %15, align 4, !tbaa !9
  %2803 = load ptr, ptr %9, align 8, !tbaa !5
  %2804 = load i32, ptr %15, align 4, !tbaa !9
  %2805 = sext i32 %2804 to i64
  %2806 = getelementptr inbounds %struct.complex, ptr %2803, i64 %2805
  %2807 = getelementptr inbounds %struct.complex, ptr %2806, i32 0, i32 0
  %2808 = load float, ptr %2807, align 4, !tbaa !13
  %2809 = fdiv float 1.000000e+00, %2808
  store float %2809, ptr %47, align 4, !tbaa !11
  %2810 = load ptr, ptr %8, align 8, !tbaa !5
  %2811 = load i32, ptr %2810, align 4, !tbaa !9
  %2812 = load i32, ptr %37, align 4, !tbaa !9
  %2813 = sub nsw i32 %2811, %2812
  store i32 %2813, ptr %15, align 4, !tbaa !9
  %2814 = load float, ptr %47, align 4, !tbaa !11
  %2815 = fneg float %2814
  store float %2815, ptr %21, align 4, !tbaa !11
  %2816 = load ptr, ptr %7, align 8, !tbaa !5
  %2817 = load ptr, ptr %9, align 8, !tbaa !5
  %2818 = load i32, ptr %37, align 4, !tbaa !9
  %2819 = add nsw i32 %2818, 1
  %2820 = load i32, ptr %37, align 4, !tbaa !9
  %2821 = load i32, ptr %13, align 4, !tbaa !9
  %2822 = mul nsw i32 %2820, %2821
  %2823 = add nsw i32 %2819, %2822
  %2824 = sext i32 %2823 to i64
  %2825 = getelementptr inbounds %struct.complex, ptr %2817, i64 %2824
  %2826 = load ptr, ptr %9, align 8, !tbaa !5
  %2827 = load i32, ptr %37, align 4, !tbaa !9
  %2828 = add nsw i32 %2827, 1
  %2829 = load i32, ptr %37, align 4, !tbaa !9
  %2830 = add nsw i32 %2829, 1
  %2831 = load i32, ptr %13, align 4, !tbaa !9
  %2832 = mul nsw i32 %2830, %2831
  %2833 = add nsw i32 %2828, %2832
  %2834 = sext i32 %2833 to i64
  %2835 = getelementptr inbounds %struct.complex, ptr %2826, i64 %2834
  %2836 = load ptr, ptr %10, align 8, !tbaa !5
  call void @cher_(ptr noundef %2816, ptr noundef %15, ptr noundef %21, ptr noundef %2825, ptr noundef @c__1, ptr noundef %2835, ptr noundef %2836)
  %2837 = load ptr, ptr %8, align 8, !tbaa !5
  %2838 = load i32, ptr %2837, align 4, !tbaa !9
  %2839 = load i32, ptr %37, align 4, !tbaa !9
  %2840 = sub nsw i32 %2838, %2839
  store i32 %2840, ptr %15, align 4, !tbaa !9
  %2841 = load ptr, ptr %9, align 8, !tbaa !5
  %2842 = load i32, ptr %37, align 4, !tbaa !9
  %2843 = add nsw i32 %2842, 1
  %2844 = load i32, ptr %37, align 4, !tbaa !9
  %2845 = load i32, ptr %13, align 4, !tbaa !9
  %2846 = mul nsw i32 %2844, %2845
  %2847 = add nsw i32 %2843, %2846
  %2848 = sext i32 %2847 to i64
  %2849 = getelementptr inbounds %struct.complex, ptr %2841, i64 %2848
  call void @csscal_(ptr noundef %15, ptr noundef %47, ptr noundef %2849, ptr noundef @c__1)
  br label %2944

2850:                                             ; preds = %2793
  %2851 = load i32, ptr %37, align 4, !tbaa !9
  %2852 = load i32, ptr %37, align 4, !tbaa !9
  %2853 = load i32, ptr %13, align 4, !tbaa !9
  %2854 = mul nsw i32 %2852, %2853
  %2855 = add nsw i32 %2851, %2854
  store i32 %2855, ptr %15, align 4, !tbaa !9
  %2856 = load ptr, ptr %9, align 8, !tbaa !5
  %2857 = load i32, ptr %15, align 4, !tbaa !9
  %2858 = sext i32 %2857 to i64
  %2859 = getelementptr inbounds %struct.complex, ptr %2856, i64 %2858
  %2860 = getelementptr inbounds %struct.complex, ptr %2859, i32 0, i32 0
  %2861 = load float, ptr %2860, align 4, !tbaa !13
  store float %2861, ptr %47, align 4, !tbaa !11
  %2862 = load ptr, ptr %8, align 8, !tbaa !5
  %2863 = load i32, ptr %2862, align 4, !tbaa !9
  store i32 %2863, ptr %15, align 4, !tbaa !9
  %2864 = load i32, ptr %37, align 4, !tbaa !9
  %2865 = add nsw i32 %2864, 1
  store i32 %2865, ptr %51, align 4, !tbaa !9
  br label %2866

2866:                                             ; preds = %2913, %2850
  %2867 = load i32, ptr %51, align 4, !tbaa !9
  %2868 = load i32, ptr %15, align 4, !tbaa !9
  %2869 = icmp sle i32 %2867, %2868
  br i1 %2869, label %2870, label %2916

2870:                                             ; preds = %2866
  %2871 = load i32, ptr %51, align 4, !tbaa !9
  %2872 = load i32, ptr %37, align 4, !tbaa !9
  %2873 = load i32, ptr %13, align 4, !tbaa !9
  %2874 = mul nsw i32 %2872, %2873
  %2875 = add nsw i32 %2871, %2874
  store i32 %2875, ptr %16, align 4, !tbaa !9
  %2876 = load i32, ptr %51, align 4, !tbaa !9
  %2877 = load i32, ptr %37, align 4, !tbaa !9
  %2878 = load i32, ptr %13, align 4, !tbaa !9
  %2879 = mul nsw i32 %2877, %2878
  %2880 = add nsw i32 %2876, %2879
  store i32 %2880, ptr %17, align 4, !tbaa !9
  %2881 = load ptr, ptr %9, align 8, !tbaa !5
  %2882 = load i32, ptr %17, align 4, !tbaa !9
  %2883 = sext i32 %2882 to i64
  %2884 = getelementptr inbounds %struct.complex, ptr %2881, i64 %2883
  %2885 = getelementptr inbounds %struct.complex, ptr %2884, i32 0, i32 0
  %2886 = load float, ptr %2885, align 4, !tbaa !13
  %2887 = load float, ptr %47, align 4, !tbaa !11
  %2888 = fdiv float %2886, %2887
  %2889 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %2888, ptr %2889, align 4, !tbaa !13
  %2890 = load ptr, ptr %9, align 8, !tbaa !5
  %2891 = load i32, ptr %17, align 4, !tbaa !9
  %2892 = sext i32 %2891 to i64
  %2893 = getelementptr inbounds %struct.complex, ptr %2890, i64 %2892
  %2894 = getelementptr inbounds %struct.complex, ptr %2893, i32 0, i32 1
  %2895 = load float, ptr %2894, align 4, !tbaa !15
  %2896 = load float, ptr %47, align 4, !tbaa !11
  %2897 = fdiv float %2895, %2896
  %2898 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %2897, ptr %2898, align 4, !tbaa !15
  %2899 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %2900 = load float, ptr %2899, align 4, !tbaa !13
  %2901 = load ptr, ptr %9, align 8, !tbaa !5
  %2902 = load i32, ptr %16, align 4, !tbaa !9
  %2903 = sext i32 %2902 to i64
  %2904 = getelementptr inbounds %struct.complex, ptr %2901, i64 %2903
  %2905 = getelementptr inbounds %struct.complex, ptr %2904, i32 0, i32 0
  store float %2900, ptr %2905, align 4, !tbaa !13
  %2906 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %2907 = load float, ptr %2906, align 4, !tbaa !15
  %2908 = load ptr, ptr %9, align 8, !tbaa !5
  %2909 = load i32, ptr %16, align 4, !tbaa !9
  %2910 = sext i32 %2909 to i64
  %2911 = getelementptr inbounds %struct.complex, ptr %2908, i64 %2910
  %2912 = getelementptr inbounds %struct.complex, ptr %2911, i32 0, i32 1
  store float %2907, ptr %2912, align 4, !tbaa !15
  br label %2913

2913:                                             ; preds = %2870
  %2914 = load i32, ptr %51, align 4, !tbaa !9
  %2915 = add nsw i32 %2914, 1
  store i32 %2915, ptr %51, align 4, !tbaa !9
  br label %2866, !llvm.loop !24

2916:                                             ; preds = %2866
  %2917 = load ptr, ptr %8, align 8, !tbaa !5
  %2918 = load i32, ptr %2917, align 4, !tbaa !9
  %2919 = load i32, ptr %37, align 4, !tbaa !9
  %2920 = sub nsw i32 %2918, %2919
  store i32 %2920, ptr %15, align 4, !tbaa !9
  %2921 = load float, ptr %47, align 4, !tbaa !11
  %2922 = fneg float %2921
  store float %2922, ptr %21, align 4, !tbaa !11
  %2923 = load ptr, ptr %7, align 8, !tbaa !5
  %2924 = load ptr, ptr %9, align 8, !tbaa !5
  %2925 = load i32, ptr %37, align 4, !tbaa !9
  %2926 = add nsw i32 %2925, 1
  %2927 = load i32, ptr %37, align 4, !tbaa !9
  %2928 = load i32, ptr %13, align 4, !tbaa !9
  %2929 = mul nsw i32 %2927, %2928
  %2930 = add nsw i32 %2926, %2929
  %2931 = sext i32 %2930 to i64
  %2932 = getelementptr inbounds %struct.complex, ptr %2924, i64 %2931
  %2933 = load ptr, ptr %9, align 8, !tbaa !5
  %2934 = load i32, ptr %37, align 4, !tbaa !9
  %2935 = add nsw i32 %2934, 1
  %2936 = load i32, ptr %37, align 4, !tbaa !9
  %2937 = add nsw i32 %2936, 1
  %2938 = load i32, ptr %13, align 4, !tbaa !9
  %2939 = mul nsw i32 %2937, %2938
  %2940 = add nsw i32 %2935, %2939
  %2941 = sext i32 %2940 to i64
  %2942 = getelementptr inbounds %struct.complex, ptr %2933, i64 %2941
  %2943 = load ptr, ptr %10, align 8, !tbaa !5
  call void @cher_(ptr noundef %2923, ptr noundef %15, ptr noundef %21, ptr noundef %2932, ptr noundef @c__1, ptr noundef %2942, ptr noundef %2943)
  br label %2944

2944:                                             ; preds = %2916, %2797
  br label %2945

2945:                                             ; preds = %2944, %2769
  br label %3528

2946:                                             ; preds = %2766
  %2947 = load i32, ptr %37, align 4, !tbaa !9
  %2948 = load ptr, ptr %8, align 8, !tbaa !5
  %2949 = load i32, ptr %2948, align 4, !tbaa !9
  %2950 = sub nsw i32 %2949, 1
  %2951 = icmp slt i32 %2947, %2950
  br i1 %2951, label %2952, label %3527

2952:                                             ; preds = %2946
  %2953 = load i32, ptr %37, align 4, !tbaa !9
  %2954 = add nsw i32 %2953, 1
  %2955 = load i32, ptr %37, align 4, !tbaa !9
  %2956 = load i32, ptr %13, align 4, !tbaa !9
  %2957 = mul nsw i32 %2955, %2956
  %2958 = add nsw i32 %2954, %2957
  store i32 %2958, ptr %15, align 4, !tbaa !9
  %2959 = load ptr, ptr %9, align 8, !tbaa !5
  %2960 = load i32, ptr %15, align 4, !tbaa !9
  %2961 = sext i32 %2960 to i64
  %2962 = getelementptr inbounds %struct.complex, ptr %2959, i64 %2961
  %2963 = getelementptr inbounds %struct.complex, ptr %2962, i32 0, i32 0
  %2964 = load float, ptr %2963, align 4, !tbaa !13
  store float %2964, ptr %21, align 4, !tbaa !11
  %2965 = load ptr, ptr %9, align 8, !tbaa !5
  %2966 = load i32, ptr %37, align 4, !tbaa !9
  %2967 = add nsw i32 %2966, 1
  %2968 = load i32, ptr %37, align 4, !tbaa !9
  %2969 = load i32, ptr %13, align 4, !tbaa !9
  %2970 = mul nsw i32 %2968, %2969
  %2971 = add nsw i32 %2967, %2970
  %2972 = sext i32 %2971 to i64
  %2973 = getelementptr inbounds %struct.complex, ptr %2965, i64 %2972
  %2974 = call <2 x float> @Cf(ptr noundef %2973)
  store <2 x float> %2974, ptr %84, align 4
  %2975 = getelementptr inbounds { float, float }, ptr %84, i32 0, i32 0
  %2976 = load float, ptr %2975, align 4
  %2977 = getelementptr inbounds { float, float }, ptr %84, i32 0, i32 1
  %2978 = load float, ptr %2977, align 4
  store float %2978, ptr %22, align 4, !tbaa !11
  %2979 = call float @slapy2_(ptr noundef %21, ptr noundef %22)
  store float %2979, ptr %34, align 4, !tbaa !11
  %2980 = load i32, ptr %37, align 4, !tbaa !9
  %2981 = add nsw i32 %2980, 1
  %2982 = load i32, ptr %37, align 4, !tbaa !9
  %2983 = add nsw i32 %2982, 1
  %2984 = load i32, ptr %13, align 4, !tbaa !9
  %2985 = mul nsw i32 %2983, %2984
  %2986 = add nsw i32 %2981, %2985
  store i32 %2986, ptr %15, align 4, !tbaa !9
  %2987 = load ptr, ptr %9, align 8, !tbaa !5
  %2988 = load i32, ptr %15, align 4, !tbaa !9
  %2989 = sext i32 %2988 to i64
  %2990 = getelementptr inbounds %struct.complex, ptr %2987, i64 %2989
  %2991 = getelementptr inbounds %struct.complex, ptr %2990, i32 0, i32 0
  %2992 = load float, ptr %2991, align 4, !tbaa !13
  %2993 = load float, ptr %34, align 4, !tbaa !11
  %2994 = fdiv float %2992, %2993
  store float %2994, ptr %47, align 4, !tbaa !11
  %2995 = load i32, ptr %37, align 4, !tbaa !9
  %2996 = load i32, ptr %37, align 4, !tbaa !9
  %2997 = load i32, ptr %13, align 4, !tbaa !9
  %2998 = mul nsw i32 %2996, %2997
  %2999 = add nsw i32 %2995, %2998
  store i32 %2999, ptr %15, align 4, !tbaa !9
  %3000 = load ptr, ptr %9, align 8, !tbaa !5
  %3001 = load i32, ptr %15, align 4, !tbaa !9
  %3002 = sext i32 %3001 to i64
  %3003 = getelementptr inbounds %struct.complex, ptr %3000, i64 %3002
  %3004 = getelementptr inbounds %struct.complex, ptr %3003, i32 0, i32 0
  %3005 = load float, ptr %3004, align 4, !tbaa !13
  %3006 = load float, ptr %34, align 4, !tbaa !11
  %3007 = fdiv float %3005, %3006
  store float %3007, ptr %49, align 4, !tbaa !11
  %3008 = load i32, ptr %37, align 4, !tbaa !9
  %3009 = add nsw i32 %3008, 1
  %3010 = load i32, ptr %37, align 4, !tbaa !9
  %3011 = load i32, ptr %13, align 4, !tbaa !9
  %3012 = mul nsw i32 %3010, %3011
  %3013 = add nsw i32 %3009, %3012
  store i32 %3013, ptr %15, align 4, !tbaa !9
  %3014 = load ptr, ptr %9, align 8, !tbaa !5
  %3015 = load i32, ptr %15, align 4, !tbaa !9
  %3016 = sext i32 %3015 to i64
  %3017 = getelementptr inbounds %struct.complex, ptr %3014, i64 %3016
  %3018 = getelementptr inbounds %struct.complex, ptr %3017, i32 0, i32 0
  %3019 = load float, ptr %3018, align 4, !tbaa !13
  %3020 = load float, ptr %34, align 4, !tbaa !11
  %3021 = fdiv float %3019, %3020
  %3022 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %3021, ptr %3022, align 4, !tbaa !13
  %3023 = load ptr, ptr %9, align 8, !tbaa !5
  %3024 = load i32, ptr %15, align 4, !tbaa !9
  %3025 = sext i32 %3024 to i64
  %3026 = getelementptr inbounds %struct.complex, ptr %3023, i64 %3025
  %3027 = getelementptr inbounds %struct.complex, ptr %3026, i32 0, i32 1
  %3028 = load float, ptr %3027, align 4, !tbaa !15
  %3029 = load float, ptr %34, align 4, !tbaa !11
  %3030 = fdiv float %3028, %3029
  %3031 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %3030, ptr %3031, align 4, !tbaa !15
  %3032 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %3033 = load float, ptr %3032, align 4, !tbaa !13
  %3034 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %3033, ptr %3034, align 4, !tbaa !13
  %3035 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %3036 = load float, ptr %3035, align 4, !tbaa !15
  %3037 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %3036, ptr %3037, align 4, !tbaa !15
  %3038 = load float, ptr %47, align 4, !tbaa !11
  %3039 = load float, ptr %49, align 4, !tbaa !11
  %3040 = call float @llvm.fmuladd.f32(float %3038, float %3039, float -1.000000e+00)
  %3041 = fdiv float 1.000000e+00, %3040
  store float %3041, ptr %56, align 4, !tbaa !11
  %3042 = load ptr, ptr %8, align 8, !tbaa !5
  %3043 = load i32, ptr %3042, align 4, !tbaa !9
  store i32 %3043, ptr %15, align 4, !tbaa !9
  %3044 = load i32, ptr %37, align 4, !tbaa !9
  %3045 = add nsw i32 %3044, 2
  store i32 %3045, ptr %36, align 4, !tbaa !9
  br label %3046

3046:                                             ; preds = %3523, %2952
  %3047 = load i32, ptr %36, align 4, !tbaa !9
  %3048 = load i32, ptr %15, align 4, !tbaa !9
  %3049 = icmp sle i32 %3047, %3048
  br i1 %3049, label %3050, label %3526

3050:                                             ; preds = %3046
  %3051 = load i32, ptr %36, align 4, !tbaa !9
  %3052 = load i32, ptr %37, align 4, !tbaa !9
  %3053 = load i32, ptr %13, align 4, !tbaa !9
  %3054 = mul nsw i32 %3052, %3053
  %3055 = add nsw i32 %3051, %3054
  store i32 %3055, ptr %16, align 4, !tbaa !9
  %3056 = load float, ptr %47, align 4, !tbaa !11
  %3057 = load ptr, ptr %9, align 8, !tbaa !5
  %3058 = load i32, ptr %16, align 4, !tbaa !9
  %3059 = sext i32 %3058 to i64
  %3060 = getelementptr inbounds %struct.complex, ptr %3057, i64 %3059
  %3061 = getelementptr inbounds %struct.complex, ptr %3060, i32 0, i32 0
  %3062 = load float, ptr %3061, align 4, !tbaa !13
  %3063 = fmul float %3056, %3062
  %3064 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %3063, ptr %3064, align 4, !tbaa !13
  %3065 = load float, ptr %47, align 4, !tbaa !11
  %3066 = load ptr, ptr %9, align 8, !tbaa !5
  %3067 = load i32, ptr %16, align 4, !tbaa !9
  %3068 = sext i32 %3067 to i64
  %3069 = getelementptr inbounds %struct.complex, ptr %3066, i64 %3068
  %3070 = getelementptr inbounds %struct.complex, ptr %3069, i32 0, i32 1
  %3071 = load float, ptr %3070, align 4, !tbaa !15
  %3072 = fmul float %3065, %3071
  %3073 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %3072, ptr %3073, align 4, !tbaa !15
  %3074 = load i32, ptr %36, align 4, !tbaa !9
  %3075 = load i32, ptr %37, align 4, !tbaa !9
  %3076 = add nsw i32 %3075, 1
  %3077 = load i32, ptr %13, align 4, !tbaa !9
  %3078 = mul nsw i32 %3076, %3077
  %3079 = add nsw i32 %3074, %3078
  store i32 %3079, ptr %17, align 4, !tbaa !9
  %3080 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %3081 = load float, ptr %3080, align 4, !tbaa !13
  %3082 = load ptr, ptr %9, align 8, !tbaa !5
  %3083 = load i32, ptr %17, align 4, !tbaa !9
  %3084 = sext i32 %3083 to i64
  %3085 = getelementptr inbounds %struct.complex, ptr %3082, i64 %3084
  %3086 = getelementptr inbounds %struct.complex, ptr %3085, i32 0, i32 0
  %3087 = load float, ptr %3086, align 4, !tbaa !13
  %3088 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %3089 = load float, ptr %3088, align 4, !tbaa !15
  %3090 = load ptr, ptr %9, align 8, !tbaa !5
  %3091 = load i32, ptr %17, align 4, !tbaa !9
  %3092 = sext i32 %3091 to i64
  %3093 = getelementptr inbounds %struct.complex, ptr %3090, i64 %3092
  %3094 = getelementptr inbounds %struct.complex, ptr %3093, i32 0, i32 1
  %3095 = load float, ptr %3094, align 4, !tbaa !15
  %3096 = fmul float %3089, %3095
  %3097 = fneg float %3096
  %3098 = call float @llvm.fmuladd.f32(float %3081, float %3087, float %3097)
  %3099 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %3098, ptr %3099, align 4, !tbaa !13
  %3100 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %3101 = load float, ptr %3100, align 4, !tbaa !13
  %3102 = load ptr, ptr %9, align 8, !tbaa !5
  %3103 = load i32, ptr %17, align 4, !tbaa !9
  %3104 = sext i32 %3103 to i64
  %3105 = getelementptr inbounds %struct.complex, ptr %3102, i64 %3104
  %3106 = getelementptr inbounds %struct.complex, ptr %3105, i32 0, i32 1
  %3107 = load float, ptr %3106, align 4, !tbaa !15
  %3108 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %3109 = load float, ptr %3108, align 4, !tbaa !15
  %3110 = load ptr, ptr %9, align 8, !tbaa !5
  %3111 = load i32, ptr %17, align 4, !tbaa !9
  %3112 = sext i32 %3111 to i64
  %3113 = getelementptr inbounds %struct.complex, ptr %3110, i64 %3112
  %3114 = getelementptr inbounds %struct.complex, ptr %3113, i32 0, i32 0
  %3115 = load float, ptr %3114, align 4, !tbaa !13
  %3116 = fmul float %3109, %3115
  %3117 = call float @llvm.fmuladd.f32(float %3101, float %3107, float %3116)
  %3118 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %3117, ptr %3118, align 4, !tbaa !15
  %3119 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %3120 = load float, ptr %3119, align 4, !tbaa !13
  %3121 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %3122 = load float, ptr %3121, align 4, !tbaa !13
  %3123 = fsub float %3120, %3122
  %3124 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  store float %3123, ptr %3124, align 4, !tbaa !13
  %3125 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %3126 = load float, ptr %3125, align 4, !tbaa !15
  %3127 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %3128 = load float, ptr %3127, align 4, !tbaa !15
  %3129 = fsub float %3126, %3128
  %3130 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  store float %3129, ptr %3130, align 4, !tbaa !15
  %3131 = load float, ptr %56, align 4, !tbaa !11
  %3132 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  %3133 = load float, ptr %3132, align 4, !tbaa !13
  %3134 = fmul float %3131, %3133
  %3135 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %3134, ptr %3135, align 4, !tbaa !13
  %3136 = load float, ptr %56, align 4, !tbaa !11
  %3137 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  %3138 = load float, ptr %3137, align 4, !tbaa !15
  %3139 = fmul float %3136, %3138
  %3140 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %3139, ptr %3140, align 4, !tbaa !15
  %3141 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %3142 = load float, ptr %3141, align 4, !tbaa !13
  %3143 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  store float %3142, ptr %3143, align 4, !tbaa !13
  %3144 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %3145 = load float, ptr %3144, align 4, !tbaa !15
  %3146 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  store float %3145, ptr %3146, align 4, !tbaa !15
  %3147 = load i32, ptr %36, align 4, !tbaa !9
  %3148 = load i32, ptr %37, align 4, !tbaa !9
  %3149 = add nsw i32 %3148, 1
  %3150 = load i32, ptr %13, align 4, !tbaa !9
  %3151 = mul nsw i32 %3149, %3150
  %3152 = add nsw i32 %3147, %3151
  store i32 %3152, ptr %16, align 4, !tbaa !9
  %3153 = load float, ptr %49, align 4, !tbaa !11
  %3154 = load ptr, ptr %9, align 8, !tbaa !5
  %3155 = load i32, ptr %16, align 4, !tbaa !9
  %3156 = sext i32 %3155 to i64
  %3157 = getelementptr inbounds %struct.complex, ptr %3154, i64 %3156
  %3158 = getelementptr inbounds %struct.complex, ptr %3157, i32 0, i32 0
  %3159 = load float, ptr %3158, align 4, !tbaa !13
  %3160 = fmul float %3153, %3159
  %3161 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %3160, ptr %3161, align 4, !tbaa !13
  %3162 = load float, ptr %49, align 4, !tbaa !11
  %3163 = load ptr, ptr %9, align 8, !tbaa !5
  %3164 = load i32, ptr %16, align 4, !tbaa !9
  %3165 = sext i32 %3164 to i64
  %3166 = getelementptr inbounds %struct.complex, ptr %3163, i64 %3165
  %3167 = getelementptr inbounds %struct.complex, ptr %3166, i32 0, i32 1
  %3168 = load float, ptr %3167, align 4, !tbaa !15
  %3169 = fmul float %3162, %3168
  %3170 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %3169, ptr %3170, align 4, !tbaa !15
  %3171 = call <2 x float> @Cf(ptr noundef %50)
  store <2 x float> %3171, ptr %85, align 4
  %3172 = getelementptr inbounds { float, float }, ptr %85, i32 0, i32 0
  %3173 = load float, ptr %3172, align 4
  %3174 = getelementptr inbounds { float, float }, ptr %85, i32 0, i32 1
  %3175 = load float, ptr %3174, align 4
  %3176 = fneg float %3175
  %3177 = call ptr @_pCf(ptr noundef %27)
  %3178 = getelementptr inbounds { float, float }, ptr %3177, i32 0, i32 0
  %3179 = getelementptr inbounds { float, float }, ptr %3177, i32 0, i32 1
  store float %3173, ptr %3178, align 4
  store float %3176, ptr %3179, align 4
  %3180 = load i32, ptr %36, align 4, !tbaa !9
  %3181 = load i32, ptr %37, align 4, !tbaa !9
  %3182 = load i32, ptr %13, align 4, !tbaa !9
  %3183 = mul nsw i32 %3181, %3182
  %3184 = add nsw i32 %3180, %3183
  store i32 %3184, ptr %17, align 4, !tbaa !9
  %3185 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %3186 = load float, ptr %3185, align 4, !tbaa !13
  %3187 = load ptr, ptr %9, align 8, !tbaa !5
  %3188 = load i32, ptr %17, align 4, !tbaa !9
  %3189 = sext i32 %3188 to i64
  %3190 = getelementptr inbounds %struct.complex, ptr %3187, i64 %3189
  %3191 = getelementptr inbounds %struct.complex, ptr %3190, i32 0, i32 0
  %3192 = load float, ptr %3191, align 4, !tbaa !13
  %3193 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %3194 = load float, ptr %3193, align 4, !tbaa !15
  %3195 = load ptr, ptr %9, align 8, !tbaa !5
  %3196 = load i32, ptr %17, align 4, !tbaa !9
  %3197 = sext i32 %3196 to i64
  %3198 = getelementptr inbounds %struct.complex, ptr %3195, i64 %3197
  %3199 = getelementptr inbounds %struct.complex, ptr %3198, i32 0, i32 1
  %3200 = load float, ptr %3199, align 4, !tbaa !15
  %3201 = fmul float %3194, %3200
  %3202 = fneg float %3201
  %3203 = call float @llvm.fmuladd.f32(float %3186, float %3192, float %3202)
  %3204 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %3203, ptr %3204, align 4, !tbaa !13
  %3205 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %3206 = load float, ptr %3205, align 4, !tbaa !13
  %3207 = load ptr, ptr %9, align 8, !tbaa !5
  %3208 = load i32, ptr %17, align 4, !tbaa !9
  %3209 = sext i32 %3208 to i64
  %3210 = getelementptr inbounds %struct.complex, ptr %3207, i64 %3209
  %3211 = getelementptr inbounds %struct.complex, ptr %3210, i32 0, i32 1
  %3212 = load float, ptr %3211, align 4, !tbaa !15
  %3213 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %3214 = load float, ptr %3213, align 4, !tbaa !15
  %3215 = load ptr, ptr %9, align 8, !tbaa !5
  %3216 = load i32, ptr %17, align 4, !tbaa !9
  %3217 = sext i32 %3216 to i64
  %3218 = getelementptr inbounds %struct.complex, ptr %3215, i64 %3217
  %3219 = getelementptr inbounds %struct.complex, ptr %3218, i32 0, i32 0
  %3220 = load float, ptr %3219, align 4, !tbaa !13
  %3221 = fmul float %3214, %3220
  %3222 = call float @llvm.fmuladd.f32(float %3206, float %3212, float %3221)
  %3223 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %3222, ptr %3223, align 4, !tbaa !15
  %3224 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %3225 = load float, ptr %3224, align 4, !tbaa !13
  %3226 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %3227 = load float, ptr %3226, align 4, !tbaa !13
  %3228 = fsub float %3225, %3227
  %3229 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  store float %3228, ptr %3229, align 4, !tbaa !13
  %3230 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %3231 = load float, ptr %3230, align 4, !tbaa !15
  %3232 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %3233 = load float, ptr %3232, align 4, !tbaa !15
  %3234 = fsub float %3231, %3233
  %3235 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  store float %3234, ptr %3235, align 4, !tbaa !15
  %3236 = load float, ptr %56, align 4, !tbaa !11
  %3237 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  %3238 = load float, ptr %3237, align 4, !tbaa !13
  %3239 = fmul float %3236, %3238
  %3240 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %3239, ptr %3240, align 4, !tbaa !13
  %3241 = load float, ptr %56, align 4, !tbaa !11
  %3242 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  %3243 = load float, ptr %3242, align 4, !tbaa !15
  %3244 = fmul float %3241, %3243
  %3245 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %3244, ptr %3245, align 4, !tbaa !15
  %3246 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %3247 = load float, ptr %3246, align 4, !tbaa !13
  %3248 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  store float %3247, ptr %3248, align 4, !tbaa !13
  %3249 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %3250 = load float, ptr %3249, align 4, !tbaa !15
  %3251 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  store float %3250, ptr %3251, align 4, !tbaa !15
  %3252 = load ptr, ptr %8, align 8, !tbaa !5
  %3253 = load i32, ptr %3252, align 4, !tbaa !9
  store i32 %3253, ptr %16, align 4, !tbaa !9
  %3254 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %3254, ptr %35, align 4, !tbaa !9
  br label %3255

3255:                                             ; preds = %3427, %3050
  %3256 = load i32, ptr %35, align 4, !tbaa !9
  %3257 = load i32, ptr %16, align 4, !tbaa !9
  %3258 = icmp sle i32 %3256, %3257
  br i1 %3258, label %3259, label %3430

3259:                                             ; preds = %3255
  %3260 = load i32, ptr %35, align 4, !tbaa !9
  %3261 = load i32, ptr %36, align 4, !tbaa !9
  %3262 = load i32, ptr %13, align 4, !tbaa !9
  %3263 = mul nsw i32 %3261, %3262
  %3264 = add nsw i32 %3260, %3263
  store i32 %3264, ptr %17, align 4, !tbaa !9
  %3265 = load i32, ptr %35, align 4, !tbaa !9
  %3266 = load i32, ptr %36, align 4, !tbaa !9
  %3267 = load i32, ptr %13, align 4, !tbaa !9
  %3268 = mul nsw i32 %3266, %3267
  %3269 = add nsw i32 %3265, %3268
  store i32 %3269, ptr %18, align 4, !tbaa !9
  %3270 = load i32, ptr %35, align 4, !tbaa !9
  %3271 = load i32, ptr %37, align 4, !tbaa !9
  %3272 = load i32, ptr %13, align 4, !tbaa !9
  %3273 = mul nsw i32 %3271, %3272
  %3274 = add nsw i32 %3270, %3273
  store i32 %3274, ptr %19, align 4, !tbaa !9
  %3275 = load ptr, ptr %9, align 8, !tbaa !5
  %3276 = load i32, ptr %19, align 4, !tbaa !9
  %3277 = sext i32 %3276 to i64
  %3278 = getelementptr inbounds %struct.complex, ptr %3275, i64 %3277
  %3279 = getelementptr inbounds %struct.complex, ptr %3278, i32 0, i32 0
  %3280 = load float, ptr %3279, align 4, !tbaa !13
  %3281 = load float, ptr %34, align 4, !tbaa !11
  %3282 = fdiv float %3280, %3281
  %3283 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %3282, ptr %3283, align 4, !tbaa !13
  %3284 = load ptr, ptr %9, align 8, !tbaa !5
  %3285 = load i32, ptr %19, align 4, !tbaa !9
  %3286 = sext i32 %3285 to i64
  %3287 = getelementptr inbounds %struct.complex, ptr %3284, i64 %3286
  %3288 = getelementptr inbounds %struct.complex, ptr %3287, i32 0, i32 1
  %3289 = load float, ptr %3288, align 4, !tbaa !15
  %3290 = load float, ptr %34, align 4, !tbaa !11
  %3291 = fdiv float %3289, %3290
  %3292 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %3291, ptr %3292, align 4, !tbaa !15
  %3293 = call <2 x float> @Cf(ptr noundef %55)
  store <2 x float> %3293, ptr %86, align 4
  %3294 = getelementptr inbounds { float, float }, ptr %86, i32 0, i32 0
  %3295 = load float, ptr %3294, align 4
  %3296 = getelementptr inbounds { float, float }, ptr %86, i32 0, i32 1
  %3297 = load float, ptr %3296, align 4
  %3298 = fneg float %3297
  %3299 = call ptr @_pCf(ptr noundef %27)
  %3300 = getelementptr inbounds { float, float }, ptr %3299, i32 0, i32 0
  %3301 = getelementptr inbounds { float, float }, ptr %3299, i32 0, i32 1
  store float %3295, ptr %3300, align 4
  store float %3298, ptr %3301, align 4
  %3302 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %3303 = load float, ptr %3302, align 4, !tbaa !13
  %3304 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %3305 = load float, ptr %3304, align 4, !tbaa !13
  %3306 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %3307 = load float, ptr %3306, align 4, !tbaa !15
  %3308 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %3309 = load float, ptr %3308, align 4, !tbaa !15
  %3310 = fmul float %3307, %3309
  %3311 = fneg float %3310
  %3312 = call float @llvm.fmuladd.f32(float %3303, float %3305, float %3311)
  %3313 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %3312, ptr %3313, align 4, !tbaa !13
  %3314 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %3315 = load float, ptr %3314, align 4, !tbaa !13
  %3316 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %3317 = load float, ptr %3316, align 4, !tbaa !15
  %3318 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %3319 = load float, ptr %3318, align 4, !tbaa !15
  %3320 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %3321 = load float, ptr %3320, align 4, !tbaa !13
  %3322 = fmul float %3319, %3321
  %3323 = call float @llvm.fmuladd.f32(float %3315, float %3317, float %3322)
  %3324 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %3323, ptr %3324, align 4, !tbaa !15
  %3325 = load ptr, ptr %9, align 8, !tbaa !5
  %3326 = load i32, ptr %18, align 4, !tbaa !9
  %3327 = sext i32 %3326 to i64
  %3328 = getelementptr inbounds %struct.complex, ptr %3325, i64 %3327
  %3329 = getelementptr inbounds %struct.complex, ptr %3328, i32 0, i32 0
  %3330 = load float, ptr %3329, align 4, !tbaa !13
  %3331 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %3332 = load float, ptr %3331, align 4, !tbaa !13
  %3333 = fsub float %3330, %3332
  %3334 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  store float %3333, ptr %3334, align 4, !tbaa !13
  %3335 = load ptr, ptr %9, align 8, !tbaa !5
  %3336 = load i32, ptr %18, align 4, !tbaa !9
  %3337 = sext i32 %3336 to i64
  %3338 = getelementptr inbounds %struct.complex, ptr %3335, i64 %3337
  %3339 = getelementptr inbounds %struct.complex, ptr %3338, i32 0, i32 1
  %3340 = load float, ptr %3339, align 4, !tbaa !15
  %3341 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %3342 = load float, ptr %3341, align 4, !tbaa !15
  %3343 = fsub float %3340, %3342
  %3344 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  store float %3343, ptr %3344, align 4, !tbaa !15
  %3345 = load i32, ptr %35, align 4, !tbaa !9
  %3346 = load i32, ptr %37, align 4, !tbaa !9
  %3347 = add nsw i32 %3346, 1
  %3348 = load i32, ptr %13, align 4, !tbaa !9
  %3349 = mul nsw i32 %3347, %3348
  %3350 = add nsw i32 %3345, %3349
  store i32 %3350, ptr %20, align 4, !tbaa !9
  %3351 = load ptr, ptr %9, align 8, !tbaa !5
  %3352 = load i32, ptr %20, align 4, !tbaa !9
  %3353 = sext i32 %3352 to i64
  %3354 = getelementptr inbounds %struct.complex, ptr %3351, i64 %3353
  %3355 = getelementptr inbounds %struct.complex, ptr %3354, i32 0, i32 0
  %3356 = load float, ptr %3355, align 4, !tbaa !13
  %3357 = load float, ptr %34, align 4, !tbaa !11
  %3358 = fdiv float %3356, %3357
  %3359 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %3358, ptr %3359, align 4, !tbaa !13
  %3360 = load ptr, ptr %9, align 8, !tbaa !5
  %3361 = load i32, ptr %20, align 4, !tbaa !9
  %3362 = sext i32 %3361 to i64
  %3363 = getelementptr inbounds %struct.complex, ptr %3360, i64 %3362
  %3364 = getelementptr inbounds %struct.complex, ptr %3363, i32 0, i32 1
  %3365 = load float, ptr %3364, align 4, !tbaa !15
  %3366 = load float, ptr %34, align 4, !tbaa !11
  %3367 = fdiv float %3365, %3366
  %3368 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %3367, ptr %3368, align 4, !tbaa !15
  %3369 = call <2 x float> @Cf(ptr noundef %60)
  store <2 x float> %3369, ptr %87, align 4
  %3370 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 0
  %3371 = load float, ptr %3370, align 4
  %3372 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 1
  %3373 = load float, ptr %3372, align 4
  %3374 = fneg float %3373
  %3375 = call ptr @_pCf(ptr noundef %30)
  %3376 = getelementptr inbounds { float, float }, ptr %3375, i32 0, i32 0
  %3377 = getelementptr inbounds { float, float }, ptr %3375, i32 0, i32 1
  store float %3371, ptr %3376, align 4
  store float %3374, ptr %3377, align 4
  %3378 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %3379 = load float, ptr %3378, align 4, !tbaa !13
  %3380 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %3381 = load float, ptr %3380, align 4, !tbaa !13
  %3382 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %3383 = load float, ptr %3382, align 4, !tbaa !15
  %3384 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %3385 = load float, ptr %3384, align 4, !tbaa !15
  %3386 = fmul float %3383, %3385
  %3387 = fneg float %3386
  %3388 = call float @llvm.fmuladd.f32(float %3379, float %3381, float %3387)
  %3389 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  store float %3388, ptr %3389, align 4, !tbaa !13
  %3390 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %3391 = load float, ptr %3390, align 4, !tbaa !13
  %3392 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %3393 = load float, ptr %3392, align 4, !tbaa !15
  %3394 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %3395 = load float, ptr %3394, align 4, !tbaa !15
  %3396 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %3397 = load float, ptr %3396, align 4, !tbaa !13
  %3398 = fmul float %3395, %3397
  %3399 = call float @llvm.fmuladd.f32(float %3391, float %3393, float %3398)
  %3400 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  store float %3399, ptr %3400, align 4, !tbaa !15
  %3401 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 0
  %3402 = load float, ptr %3401, align 4, !tbaa !13
  %3403 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  %3404 = load float, ptr %3403, align 4, !tbaa !13
  %3405 = fsub float %3402, %3404
  %3406 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %3405, ptr %3406, align 4, !tbaa !13
  %3407 = getelementptr inbounds %struct.complex, ptr %24, i32 0, i32 1
  %3408 = load float, ptr %3407, align 4, !tbaa !15
  %3409 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  %3410 = load float, ptr %3409, align 4, !tbaa !15
  %3411 = fsub float %3408, %3410
  %3412 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %3411, ptr %3412, align 4, !tbaa !15
  %3413 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %3414 = load float, ptr %3413, align 4, !tbaa !13
  %3415 = load ptr, ptr %9, align 8, !tbaa !5
  %3416 = load i32, ptr %17, align 4, !tbaa !9
  %3417 = sext i32 %3416 to i64
  %3418 = getelementptr inbounds %struct.complex, ptr %3415, i64 %3417
  %3419 = getelementptr inbounds %struct.complex, ptr %3418, i32 0, i32 0
  store float %3414, ptr %3419, align 4, !tbaa !13
  %3420 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %3421 = load float, ptr %3420, align 4, !tbaa !15
  %3422 = load ptr, ptr %9, align 8, !tbaa !5
  %3423 = load i32, ptr %17, align 4, !tbaa !9
  %3424 = sext i32 %3423 to i64
  %3425 = getelementptr inbounds %struct.complex, ptr %3422, i64 %3424
  %3426 = getelementptr inbounds %struct.complex, ptr %3425, i32 0, i32 1
  store float %3421, ptr %3426, align 4, !tbaa !15
  br label %3427

3427:                                             ; preds = %3259
  %3428 = load i32, ptr %35, align 4, !tbaa !9
  %3429 = add nsw i32 %3428, 1
  store i32 %3429, ptr %35, align 4, !tbaa !9
  br label %3255, !llvm.loop !25

3430:                                             ; preds = %3255
  %3431 = load i32, ptr %36, align 4, !tbaa !9
  %3432 = load i32, ptr %37, align 4, !tbaa !9
  %3433 = load i32, ptr %13, align 4, !tbaa !9
  %3434 = mul nsw i32 %3432, %3433
  %3435 = add nsw i32 %3431, %3434
  store i32 %3435, ptr %16, align 4, !tbaa !9
  %3436 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 0
  %3437 = load float, ptr %3436, align 4, !tbaa !13
  %3438 = load float, ptr %34, align 4, !tbaa !11
  %3439 = fdiv float %3437, %3438
  %3440 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %3439, ptr %3440, align 4, !tbaa !13
  %3441 = getelementptr inbounds %struct.complex, ptr %55, i32 0, i32 1
  %3442 = load float, ptr %3441, align 4, !tbaa !15
  %3443 = load float, ptr %34, align 4, !tbaa !11
  %3444 = fdiv float %3442, %3443
  %3445 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %3444, ptr %3445, align 4, !tbaa !15
  %3446 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %3447 = load float, ptr %3446, align 4, !tbaa !13
  %3448 = load ptr, ptr %9, align 8, !tbaa !5
  %3449 = load i32, ptr %16, align 4, !tbaa !9
  %3450 = sext i32 %3449 to i64
  %3451 = getelementptr inbounds %struct.complex, ptr %3448, i64 %3450
  %3452 = getelementptr inbounds %struct.complex, ptr %3451, i32 0, i32 0
  store float %3447, ptr %3452, align 4, !tbaa !13
  %3453 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %3454 = load float, ptr %3453, align 4, !tbaa !15
  %3455 = load ptr, ptr %9, align 8, !tbaa !5
  %3456 = load i32, ptr %16, align 4, !tbaa !9
  %3457 = sext i32 %3456 to i64
  %3458 = getelementptr inbounds %struct.complex, ptr %3455, i64 %3457
  %3459 = getelementptr inbounds %struct.complex, ptr %3458, i32 0, i32 1
  store float %3454, ptr %3459, align 4, !tbaa !15
  %3460 = load i32, ptr %36, align 4, !tbaa !9
  %3461 = load i32, ptr %37, align 4, !tbaa !9
  %3462 = add nsw i32 %3461, 1
  %3463 = load i32, ptr %13, align 4, !tbaa !9
  %3464 = mul nsw i32 %3462, %3463
  %3465 = add nsw i32 %3460, %3464
  store i32 %3465, ptr %16, align 4, !tbaa !9
  %3466 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 0
  %3467 = load float, ptr %3466, align 4, !tbaa !13
  %3468 = load float, ptr %34, align 4, !tbaa !11
  %3469 = fdiv float %3467, %3468
  %3470 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %3469, ptr %3470, align 4, !tbaa !13
  %3471 = getelementptr inbounds %struct.complex, ptr %60, i32 0, i32 1
  %3472 = load float, ptr %3471, align 4, !tbaa !15
  %3473 = load float, ptr %34, align 4, !tbaa !11
  %3474 = fdiv float %3472, %3473
  %3475 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float %3474, ptr %3475, align 4, !tbaa !15
  %3476 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %3477 = load float, ptr %3476, align 4, !tbaa !13
  %3478 = load ptr, ptr %9, align 8, !tbaa !5
  %3479 = load i32, ptr %16, align 4, !tbaa !9
  %3480 = sext i32 %3479 to i64
  %3481 = getelementptr inbounds %struct.complex, ptr %3478, i64 %3480
  %3482 = getelementptr inbounds %struct.complex, ptr %3481, i32 0, i32 0
  store float %3477, ptr %3482, align 4, !tbaa !13
  %3483 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %3484 = load float, ptr %3483, align 4, !tbaa !15
  %3485 = load ptr, ptr %9, align 8, !tbaa !5
  %3486 = load i32, ptr %16, align 4, !tbaa !9
  %3487 = sext i32 %3486 to i64
  %3488 = getelementptr inbounds %struct.complex, ptr %3485, i64 %3487
  %3489 = getelementptr inbounds %struct.complex, ptr %3488, i32 0, i32 1
  store float %3484, ptr %3489, align 4, !tbaa !15
  %3490 = load i32, ptr %36, align 4, !tbaa !9
  %3491 = load i32, ptr %36, align 4, !tbaa !9
  %3492 = load i32, ptr %13, align 4, !tbaa !9
  %3493 = mul nsw i32 %3491, %3492
  %3494 = add nsw i32 %3490, %3493
  store i32 %3494, ptr %16, align 4, !tbaa !9
  %3495 = load i32, ptr %36, align 4, !tbaa !9
  %3496 = load i32, ptr %36, align 4, !tbaa !9
  %3497 = load i32, ptr %13, align 4, !tbaa !9
  %3498 = mul nsw i32 %3496, %3497
  %3499 = add nsw i32 %3495, %3498
  store i32 %3499, ptr %17, align 4, !tbaa !9
  %3500 = load ptr, ptr %9, align 8, !tbaa !5
  %3501 = load i32, ptr %17, align 4, !tbaa !9
  %3502 = sext i32 %3501 to i64
  %3503 = getelementptr inbounds %struct.complex, ptr %3500, i64 %3502
  %3504 = getelementptr inbounds %struct.complex, ptr %3503, i32 0, i32 0
  %3505 = load float, ptr %3504, align 4, !tbaa !13
  store float %3505, ptr %21, align 4, !tbaa !11
  %3506 = load float, ptr %21, align 4, !tbaa !11
  %3507 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  store float %3506, ptr %3507, align 4, !tbaa !13
  %3508 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  store float 0.000000e+00, ptr %3508, align 4, !tbaa !15
  %3509 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 0
  %3510 = load float, ptr %3509, align 4, !tbaa !13
  %3511 = load ptr, ptr %9, align 8, !tbaa !5
  %3512 = load i32, ptr %16, align 4, !tbaa !9
  %3513 = sext i32 %3512 to i64
  %3514 = getelementptr inbounds %struct.complex, ptr %3511, i64 %3513
  %3515 = getelementptr inbounds %struct.complex, ptr %3514, i32 0, i32 0
  store float %3510, ptr %3515, align 4, !tbaa !13
  %3516 = getelementptr inbounds %struct.complex, ptr %23, i32 0, i32 1
  %3517 = load float, ptr %3516, align 4, !tbaa !15
  %3518 = load ptr, ptr %9, align 8, !tbaa !5
  %3519 = load i32, ptr %16, align 4, !tbaa !9
  %3520 = sext i32 %3519 to i64
  %3521 = getelementptr inbounds %struct.complex, ptr %3518, i64 %3520
  %3522 = getelementptr inbounds %struct.complex, ptr %3521, i32 0, i32 1
  store float %3517, ptr %3522, align 4, !tbaa !15
  br label %3523

3523:                                             ; preds = %3430
  %3524 = load i32, ptr %36, align 4, !tbaa !9
  %3525 = add nsw i32 %3524, 1
  store i32 %3525, ptr %36, align 4, !tbaa !9
  br label %3046, !llvm.loop !26

3526:                                             ; preds = %3046
  br label %3527

3527:                                             ; preds = %3526, %2946
  br label %3528

3528:                                             ; preds = %3527, %2945
  br label %3529

3529:                                             ; preds = %3528, %1943
  %3530 = load i32, ptr %43, align 4, !tbaa !9
  %3531 = icmp eq i32 %3530, 1
  br i1 %3531, label %3532, label %3538

3532:                                             ; preds = %3529
  %3533 = load i32, ptr %53, align 4, !tbaa !9
  %3534 = load ptr, ptr %11, align 8, !tbaa !5
  %3535 = load i32, ptr %37, align 4, !tbaa !9
  %3536 = sext i32 %3535 to i64
  %3537 = getelementptr inbounds i32, ptr %3534, i64 %3536
  store i32 %3533, ptr %3537, align 4, !tbaa !9
  br label %3552

3538:                                             ; preds = %3529
  %3539 = load i32, ptr %38, align 4, !tbaa !9
  %3540 = sub nsw i32 0, %3539
  %3541 = load ptr, ptr %11, align 8, !tbaa !5
  %3542 = load i32, ptr %37, align 4, !tbaa !9
  %3543 = sext i32 %3542 to i64
  %3544 = getelementptr inbounds i32, ptr %3541, i64 %3543
  store i32 %3540, ptr %3544, align 4, !tbaa !9
  %3545 = load i32, ptr %53, align 4, !tbaa !9
  %3546 = sub nsw i32 0, %3545
  %3547 = load ptr, ptr %11, align 8, !tbaa !5
  %3548 = load i32, ptr %37, align 4, !tbaa !9
  %3549 = add nsw i32 %3548, 1
  %3550 = sext i32 %3549 to i64
  %3551 = getelementptr inbounds i32, ptr %3547, i64 %3550
  store i32 %3546, ptr %3551, align 4, !tbaa !9
  br label %3552

3552:                                             ; preds = %3538, %3532
  %3553 = load i32, ptr %43, align 4, !tbaa !9
  %3554 = load i32, ptr %37, align 4, !tbaa !9
  %3555 = add nsw i32 %3554, %3553
  store i32 %3555, ptr %37, align 4, !tbaa !9
  br label %1832

3556:                                             ; preds = %1837, %157
  store i32 1, ptr %61, align 4
  br label %3557

3557:                                             ; preds = %3556, %138
  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 4, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, 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 8, 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 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  ret void
}

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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


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

%struct.complex = type { float, float }

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

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

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

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

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

32:                                               ; preds = %29
  %.pr = load i32, ptr %5, align 4, !tbaa !5
  %.not1164 = icmp eq i32 %.pr, 0
  br i1 %.not1164, label %36, label %.thread

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

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

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

.preheader1340:                                   ; preds = %36
  %39 = icmp slt i32 %38, 1
  br i1 %39, label %.loopexit1341, label %.lr.ph1432

.lr.ph1432:                                       ; preds = %.preheader1340
  %40 = add i32 %19, 1
  %41 = getelementptr inbounds i8, ptr %10, i64 4
  %42 = getelementptr inbounds i8, ptr %15, i64 4
  %43 = getelementptr inbounds i8, ptr %11, i64 4
  %44 = sext i32 %19 to i64
  br label %430

45:                                               ; preds = %36
  %invariant.gep1378 = getelementptr i8, ptr %21, i64 8
  %46 = icmp slt i32 %38, 1
  br i1 %46, label %.loopexit1341, label %.lr.ph1398

.lr.ph1398:                                       ; preds = %45
  %47 = add i32 %19, 1
  %48 = getelementptr inbounds i8, ptr %10, i64 4
  %49 = getelementptr inbounds i8, ptr %14, i64 4
  %50 = getelementptr inbounds i8, ptr %11, i64 4
  %51 = sext i32 %19 to i64
  br label %52

52:                                               ; preds = %.lr.ph1398, %427
  %.010891396 = phi i32 [ undef, %.lr.ph1398 ], [ %.51261, %427 ]
  %.010931395 = phi i32 [ undef, %.lr.ph1398 ], [ %.510981259, %427 ]
  %.011131392 = phi i32 [ %38, %.lr.ph1398 ], [ %428, %427 ]
  %53 = mul nsw i32 %.011131392, %19
  %54 = add nsw i32 %53, %.011131392
  %55 = sext i32 %54 to i64
  %56 = getelementptr inbounds %struct.complex, ptr %21, i64 %55
  %57 = load float, ptr %56, align 4, !tbaa !9
  store float %57, ptr %8, align 4, !tbaa !12
  %58 = fcmp oge float %57, 0.000000e+00
  %59 = fneg float %57
  %60 = select i1 %58, float %57, float %59
  %.not1174 = icmp eq i32 %.011131392, 1
  br i1 %.not1174, label %77, label %61

61:                                               ; preds = %52
  %62 = add nsw i32 %.011131392, -1
  store i32 %62, ptr %7, align 4, !tbaa !5
  %63 = sext i32 %53 to i64
  %gep1379 = getelementptr %struct.complex, ptr %invariant.gep1378, i64 %63
  %64 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %gep1379, ptr noundef nonnull @c__1) #7
  %65 = add nsw i32 %64, %53
  store i32 %65, ptr %7, align 4, !tbaa !5
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds %struct.complex, ptr %21, i64 %66
  %68 = load float, ptr %67, align 4, !tbaa !9
  store float %68, ptr %8, align 4, !tbaa !12
  %69 = fcmp oge float %68, 0.000000e+00
  %70 = fneg float %68
  %71 = select i1 %69, float %68, float %70
  %72 = call <2 x float> @Cf(ptr noundef nonnull %67)
  %.sroa.025.4.vec.extract = extractelement <2 x float> %72, i64 1
  store float %.sroa.025.4.vec.extract, ptr %9, align 4, !tbaa !12
  %73 = fcmp oge float %.sroa.025.4.vec.extract, 0.000000e+00
  %74 = fneg float %.sroa.025.4.vec.extract
  %75 = select i1 %73, float %.sroa.025.4.vec.extract, float %74
  %76 = fadd float %71, %75
  br label %77

77:                                               ; preds = %52, %61
  %.01127 = phi float [ %76, %61 ], [ 0.000000e+00, %52 ]
  %.11090 = phi i32 [ %64, %61 ], [ %.010891396, %52 ]
  %78 = fcmp oge float %60, %.01127
  %79 = select i1 %78, float %60, float %.01127
  %80 = fcmp oeq float %79, 0.000000e+00
  br i1 %80, label %81, label %88

81:                                               ; preds = %77
  %82 = load i32, ptr %5, align 4, !tbaa !5
  %83 = icmp eq i32 %82, 0
  br i1 %83, label %84, label %85

84:                                               ; preds = %81
  store i32 %.011131392, ptr %5, align 4, !tbaa !5
  br label %85

85:                                               ; preds = %84, %81
  store i32 %54, ptr %7, align 4, !tbaa !5
  %86 = load float, ptr %56, align 4, !tbaa !9
  store float %86, ptr %8, align 4, !tbaa !12
  %87 = getelementptr inbounds %struct.complex, ptr %21, i64 %55, i32 1
  store float 0.000000e+00, ptr %87, align 4, !tbaa !13
  br label %419

88:                                               ; preds = %77
  %89 = fmul float %.01127, 0x3FE47E0F60000000
  %90 = fcmp olt float %60, %89
  br i1 %90, label %.preheader1343, label %.critedge.sink.split

.preheader1343:                                   ; preds = %88, %144
  %.11128 = phi float [ %.11124, %144 ], [ %.01127, %88 ]
  %.01115 = phi i32 [ %.21091, %144 ], [ %.011131392, %88 ]
  %.11094 = phi i32 [ %.31096, %144 ], [ %.010931395, %88 ]
  %.21091 = phi i32 [ %.31096, %144 ], [ %.11090, %88 ]
  %.not1175 = icmp eq i32 %.21091, %.011131392
  br i1 %.not1175, label %113, label %91

91:                                               ; preds = %.preheader1343
  %92 = sub nsw i32 %.011131392, %.21091
  store i32 %92, ptr %7, align 4, !tbaa !5
  %93 = add nsw i32 %.21091, 1
  %94 = mul nsw i32 %93, %19
  %95 = add nsw i32 %94, %.21091
  %96 = sext i32 %95 to i64
  %97 = getelementptr inbounds %struct.complex, ptr %21, i64 %96
  %98 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %97, ptr noundef nonnull %3) #7
  %99 = add nsw i32 %98, %.21091
  %100 = mul nsw i32 %99, %19
  %101 = add nsw i32 %100, %.21091
  store i32 %101, ptr %7, align 4, !tbaa !5
  %102 = sext i32 %101 to i64
  %103 = getelementptr inbounds %struct.complex, ptr %21, i64 %102
  %104 = load float, ptr %103, align 4, !tbaa !9
  store float %104, ptr %8, align 4, !tbaa !12
  %105 = fcmp oge float %104, 0.000000e+00
  %106 = fneg float %104
  %107 = select i1 %105, float %104, float %106
  %108 = call <2 x float> @Cf(ptr noundef nonnull %103)
  %.sroa.024.4.vec.extract = extractelement <2 x float> %108, i64 1
  store float %.sroa.024.4.vec.extract, ptr %9, align 4, !tbaa !12
  %109 = fcmp oge float %.sroa.024.4.vec.extract, 0.000000e+00
  %110 = fneg float %.sroa.024.4.vec.extract
  %111 = select i1 %109, float %.sroa.024.4.vec.extract, float %110
  %112 = fadd float %107, %111
  br label %113

113:                                              ; preds = %.preheader1343, %91
  %.01123 = phi float [ %112, %91 ], [ 0.000000e+00, %.preheader1343 ]
  %.21095 = phi i32 [ %99, %91 ], [ %.11094, %.preheader1343 ]
  %114 = icmp sgt i32 %.21091, 1
  br i1 %114, label %115, label %134

115:                                              ; preds = %113
  %116 = add nsw i32 %.21091, -1
  store i32 %116, ptr %7, align 4, !tbaa !5
  %117 = mul nsw i32 %.21091, %19
  %118 = sext i32 %117 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep1378, i64 %118
  %119 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %gep, ptr noundef nonnull @c__1) #7
  %120 = add nsw i32 %119, %117
  store i32 %120, ptr %7, align 4, !tbaa !5
  %121 = sext i32 %120 to i64
  %122 = getelementptr inbounds %struct.complex, ptr %21, i64 %121
  %123 = load float, ptr %122, align 4, !tbaa !9
  store float %123, ptr %8, align 4, !tbaa !12
  %124 = fcmp oge float %123, 0.000000e+00
  %125 = fneg float %123
  %126 = select i1 %124, float %123, float %125
  %127 = call <2 x float> @Cf(ptr noundef nonnull %122)
  %.sroa.023.4.vec.extract = extractelement <2 x float> %127, i64 1
  store float %.sroa.023.4.vec.extract, ptr %9, align 4, !tbaa !12
  %128 = fcmp oge float %.sroa.023.4.vec.extract, 0.000000e+00
  %129 = fneg float %.sroa.023.4.vec.extract
  %130 = select i1 %128, float %.sroa.023.4.vec.extract, float %129
  %131 = fadd float %126, %130
  %132 = fcmp ogt float %131, %.01123
  br i1 %132, label %133, label %134

133:                                              ; preds = %115
  br label %134

134:                                              ; preds = %115, %133, %113
  %.11124 = phi float [ %131, %133 ], [ %.01123, %115 ], [ %.01123, %113 ]
  %.31096 = phi i32 [ %119, %133 ], [ %.21095, %115 ], [ %.21095, %113 ]
  %135 = mul i32 %.21091, %47
  store i32 %135, ptr %7, align 4, !tbaa !5
  %136 = sext i32 %135 to i64
  %137 = getelementptr inbounds %struct.complex, ptr %21, i64 %136
  %138 = load float, ptr %137, align 4, !tbaa !9
  store float %138, ptr %8, align 4, !tbaa !12
  %139 = fcmp oge float %138, 0.000000e+00
  %140 = fneg float %138
  %141 = select i1 %139, float %138, float %140
  %142 = fmul float %.11124, 0x3FE47E0F60000000
  %143 = fcmp uge float %141, %142
  br i1 %143, label %.thread1500, label %144

144:                                              ; preds = %134
  %145 = icmp ne i32 %.01115, %.31096
  %146 = fcmp ugt float %.11124, %.11128
  %or.cond = and i1 %146, %145
  br i1 %or.cond, label %.preheader1343, label %147

147:                                              ; preds = %144
  %148 = add nsw i32 %.011131392, -2
  %149 = add nsw i32 %.011131392, -1
  %.not1177 = icmp eq i32 %.01115, %.011131392
  br i1 %.not1177, label %.thread1491, label %150

150:                                              ; preds = %147
  %151 = icmp sgt i32 %.01115, 1
  br i1 %151, label %152, label %157

152:                                              ; preds = %150
  %153 = add nsw i32 %.01115, -1
  store i32 %153, ptr %7, align 4, !tbaa !5
  %154 = sext i32 %53 to i64
  %gep1381 = getelementptr %struct.complex, ptr %invariant.gep1378, i64 %154
  %155 = mul nsw i32 %.01115, %19
  %156 = sext i32 %155 to i64
  %gep1383 = getelementptr %struct.complex, ptr %invariant.gep1378, i64 %156
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %gep1381, ptr noundef nonnull @c__1, ptr noundef %gep1383, ptr noundef nonnull @c__1) #7
  br label %157

157:                                              ; preds = %152, %150
  store i32 %149, ptr %7, align 4, !tbaa !5
  %.not1178.not1360 = icmp slt i32 %.01115, %149
  br i1 %.not1178.not1360, label %.lr.ph.preheader, label %.loopexit1518

.lr.ph.preheader:                                 ; preds = %157
  %158 = sext i32 %.01115 to i64
  %159 = sext i32 %53 to i64
  %invariant.gep = getelementptr %struct.complex, ptr %21, i64 %159
  %invariant.gep1558 = getelementptr %struct.complex, ptr %21, i64 %158
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ %158, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %gep1557 = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv.next
  %160 = call <2 x float> @Cf(ptr noundef %gep1557)
  %.sroa.022.0.vec.extract = extractelement <2 x float> %160, i64 0
  %.sroa.022.4.vec.extract = extractelement <2 x float> %160, i64 1
  %161 = fneg float %.sroa.022.4.vec.extract
  %162 = call ptr @_pCf(ptr noundef nonnull %10)
  %163 = getelementptr inbounds i8, ptr %162, i64 4
  store float %.sroa.022.0.vec.extract, ptr %162, align 4
  store float %161, ptr %163, align 4
  %164 = mul nsw i64 %indvars.iv.next, %51
  %gep1559 = getelementptr %struct.complex, ptr %invariant.gep1558, i64 %164
  %165 = load <2 x float>, ptr %10, align 8, !tbaa !12
  %166 = call <2 x float> @Cf(ptr noundef %gep1559)
  %.sroa.021.0.vec.extract = extractelement <2 x float> %166, i64 0
  %.sroa.021.4.vec.extract = extractelement <2 x float> %166, i64 1
  %167 = fneg float %.sroa.021.4.vec.extract
  %168 = call ptr @_pCf(ptr noundef nonnull %10)
  %169 = getelementptr inbounds i8, ptr %168, i64 4
  store float %.sroa.021.0.vec.extract, ptr %168, align 4
  store float %167, ptr %169, align 4
  %170 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %170, ptr %gep1557, align 4, !tbaa !12
  store <2 x float> %165, ptr %gep1559, align 4, !tbaa !12
  %171 = load i32, ptr %7, align 4, !tbaa !5
  %172 = sext i32 %171 to i64
  %.not1178.not = icmp slt i64 %indvars.iv.next, %172
  br i1 %.not1178.not, label %.lr.ph, label %.loopexit1518, !llvm.loop !14

.loopexit1518:                                    ; preds = %.lr.ph, %157
  %173 = add nsw i32 %.01115, %53
  store i32 %173, ptr %7, align 4, !tbaa !5
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds %struct.complex, ptr %21, i64 %174
  %176 = call <2 x float> @Cf(ptr noundef %175)
  %.sroa.020.0.vec.extract = extractelement <2 x float> %176, i64 0
  %.sroa.020.4.vec.extract = extractelement <2 x float> %176, i64 1
  %177 = fneg float %.sroa.020.4.vec.extract
  %178 = call ptr @_pCf(ptr noundef nonnull %10)
  %179 = getelementptr inbounds i8, ptr %178, i64 4
  store float %.sroa.020.0.vec.extract, ptr %178, align 4
  store float %177, ptr %179, align 4
  %180 = load i32, ptr %7, align 4, !tbaa !5
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds %struct.complex, ptr %21, i64 %181
  %183 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %183, ptr %182, align 4, !tbaa !12
  %184 = load float, ptr %56, align 4, !tbaa !9
  %185 = mul i32 %.01115, %47
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds %struct.complex, ptr %21, i64 %186
  %188 = load float, ptr %187, align 4, !tbaa !9
  store float %188, ptr %8, align 4, !tbaa !12
  store float %188, ptr %56, align 4, !tbaa !9
  %189 = getelementptr inbounds %struct.complex, ptr %21, i64 %55, i32 1
  store float 0.000000e+00, ptr %189, align 4, !tbaa !13
  store float %184, ptr %187, align 4, !tbaa !9
  %190 = getelementptr inbounds %struct.complex, ptr %21, i64 %186, i32 1
  store float 0.000000e+00, ptr %190, align 4, !tbaa !13
  %.not1179 = icmp eq i32 %.21091, %149
  br i1 %.not1179, label %253, label %193

.thread1500:                                      ; preds = %134
  %191 = add nsw i32 %.011131392, -1
  %.not11791501 = icmp eq i32 %.21091, %.011131392
  br i1 %.not11791501, label %.critedge.sink.split, label %193

.thread1491:                                      ; preds = %147
  %.not11791493 = icmp eq i32 %.21091, %149
  br i1 %.not11791493, label %.thread1497, label %193

.thread1497:                                      ; preds = %.thread1491
  %192 = getelementptr inbounds %struct.complex, ptr %21, i64 %55, i32 1
  store float 0.000000e+00, ptr %192, align 4, !tbaa !13
  br label %256

193:                                              ; preds = %.thread1500, %.thread1491, %.loopexit1518
  %194 = phi i32 [ %148, %.thread1491 ], [ %148, %.loopexit1518 ], [ %191, %.thread1500 ]
  %195 = phi i32 [ %149, %.thread1491 ], [ %149, %.loopexit1518 ], [ %.011131392, %.thread1500 ]
  %.0111514461495 = phi i32 [ %.011131392, %.thread1491 ], [ %.01115, %.loopexit1518 ], [ %.01115, %.thread1500 ]
  %196 = getelementptr inbounds %struct.complex, ptr %21, i64 %136
  br i1 %114, label %197, label %203

197:                                              ; preds = %193
  %198 = add nsw i32 %.21091, -1
  store i32 %198, ptr %7, align 4, !tbaa !5
  %199 = mul nsw i32 %195, %19
  %200 = sext i32 %199 to i64
  %gep1385 = getelementptr %struct.complex, ptr %invariant.gep1378, i64 %200
  %201 = mul nsw i32 %.21091, %19
  %202 = sext i32 %201 to i64
  %gep1387 = getelementptr %struct.complex, ptr %invariant.gep1378, i64 %202
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %gep1385, ptr noundef nonnull @c__1, ptr noundef %gep1387, ptr noundef nonnull @c__1) #7
  br label %203

203:                                              ; preds = %197, %193
  store i32 %194, ptr %7, align 4, !tbaa !5
  %.not1180.not1362 = icmp slt i32 %.21091, %194
  %204 = mul nsw i32 %195, %19
  br i1 %.not1180.not1362, label %.lr.ph1365, label %._crit_edge1366

.lr.ph1365:                                       ; preds = %203
  %205 = sext i32 %.21091 to i64
  %206 = sext i32 %204 to i64
  %invariant.gep1560 = getelementptr %struct.complex, ptr %21, i64 %206
  %invariant.gep1562 = getelementptr %struct.complex, ptr %21, i64 %205
  br label %207

207:                                              ; preds = %.lr.ph1365, %207
  %indvars.iv1454 = phi i64 [ %205, %.lr.ph1365 ], [ %indvars.iv.next1455, %207 ]
  %indvars.iv.next1455 = add nsw i64 %indvars.iv1454, 1
  %gep1561 = getelementptr %struct.complex, ptr %invariant.gep1560, i64 %indvars.iv.next1455
  %208 = call <2 x float> @Cf(ptr noundef %gep1561)
  %.sroa.019.0.vec.extract = extractelement <2 x float> %208, i64 0
  %.sroa.019.4.vec.extract = extractelement <2 x float> %208, i64 1
  %209 = fneg float %.sroa.019.4.vec.extract
  %210 = call ptr @_pCf(ptr noundef nonnull %10)
  %211 = getelementptr inbounds i8, ptr %210, i64 4
  store float %.sroa.019.0.vec.extract, ptr %210, align 4
  store float %209, ptr %211, align 4
  %212 = mul nsw i64 %indvars.iv.next1455, %51
  %gep1563 = getelementptr %struct.complex, ptr %invariant.gep1562, i64 %212
  %213 = load <2 x float>, ptr %10, align 8, !tbaa !12
  %214 = call <2 x float> @Cf(ptr noundef %gep1563)
  %.sroa.018.0.vec.extract = extractelement <2 x float> %214, i64 0
  %.sroa.018.4.vec.extract = extractelement <2 x float> %214, i64 1
  %215 = fneg float %.sroa.018.4.vec.extract
  %216 = call ptr @_pCf(ptr noundef nonnull %10)
  %217 = getelementptr inbounds i8, ptr %216, i64 4
  store float %.sroa.018.0.vec.extract, ptr %216, align 4
  store float %215, ptr %217, align 4
  %218 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %218, ptr %gep1561, align 4, !tbaa !12
  store <2 x float> %213, ptr %gep1563, align 4, !tbaa !12
  %219 = load i32, ptr %7, align 4, !tbaa !5
  %220 = sext i32 %219 to i64
  %.not1180.not = icmp slt i64 %indvars.iv.next1455, %220
  br i1 %.not1180.not, label %207, label %._crit_edge1366, !llvm.loop !16

._crit_edge1366:                                  ; preds = %207, %203
  %221 = add nsw i32 %204, %.21091
  store i32 %221, ptr %7, align 4, !tbaa !5
  %222 = sext i32 %221 to i64
  %223 = getelementptr inbounds %struct.complex, ptr %21, i64 %222
  %224 = call <2 x float> @Cf(ptr noundef %223)
  %.sroa.017.0.vec.extract = extractelement <2 x float> %224, i64 0
  %.sroa.017.4.vec.extract = extractelement <2 x float> %224, i64 1
  %225 = fneg float %.sroa.017.4.vec.extract
  %226 = call ptr @_pCf(ptr noundef nonnull %10)
  %227 = getelementptr inbounds i8, ptr %226, i64 4
  store float %.sroa.017.0.vec.extract, ptr %226, align 4
  store float %225, ptr %227, align 4
  %228 = load i32, ptr %7, align 4, !tbaa !5
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds %struct.complex, ptr %21, i64 %229
  %231 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %231, ptr %230, align 4, !tbaa !12
  %232 = add nsw i32 %204, %195
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds %struct.complex, ptr %21, i64 %233
  %235 = load float, ptr %234, align 4, !tbaa !9
  %236 = load float, ptr %196, align 4, !tbaa !9
  store float %236, ptr %8, align 4, !tbaa !12
  store float %236, ptr %234, align 4, !tbaa !9
  %237 = getelementptr inbounds %struct.complex, ptr %21, i64 %233, i32 1
  store float 0.000000e+00, ptr %237, align 4, !tbaa !13
  store i32 %135, ptr %7, align 4, !tbaa !5
  store float %235, ptr %196, align 4, !tbaa !9
  %238 = getelementptr inbounds %struct.complex, ptr %21, i64 %136, i32 1
  store float 0.000000e+00, ptr %238, align 4, !tbaa !13
  br i1 %143, label %.critedge, label %239

239:                                              ; preds = %._crit_edge1366
  %240 = load float, ptr %56, align 4, !tbaa !9
  store float %240, ptr %8, align 4, !tbaa !12
  %241 = getelementptr inbounds %struct.complex, ptr %21, i64 %55, i32 1
  store float 0.000000e+00, ptr %241, align 4, !tbaa !13
  %242 = add nsw i32 %.011131392, -1
  %243 = add nsw i32 %242, %53
  %244 = sext i32 %243 to i64
  %245 = getelementptr inbounds %struct.complex, ptr %21, i64 %244
  %246 = load float, ptr %245, align 4, !tbaa !9
  %247 = getelementptr inbounds i8, ptr %245, i64 4
  %248 = load float, ptr %247, align 4, !tbaa !13
  %249 = add nsw i32 %.21091, %53
  %250 = sext i32 %249 to i64
  %251 = getelementptr inbounds %struct.complex, ptr %21, i64 %250
  %252 = load <2 x float>, ptr %251, align 4, !tbaa !12
  store <2 x float> %252, ptr %245, align 4, !tbaa !12
  store i32 %249, ptr %7, align 4, !tbaa !5
  store float %246, ptr %251, align 4, !tbaa !9
  br label %288

253:                                              ; preds = %.loopexit1518
  store i32 %54, ptr %7, align 4, !tbaa !5
  %254 = load float, ptr %56, align 4, !tbaa !9
  store float %254, ptr %8, align 4, !tbaa !12
  %255 = getelementptr inbounds %struct.complex, ptr %21, i64 %55, i32 1
  store float 0.000000e+00, ptr %255, align 4, !tbaa !13
  br i1 %143, label %.critedge, label %256

256:                                              ; preds = %.thread1497, %253
  %.01115144614961499 = phi i32 [ %.011131392, %.thread1497 ], [ %.01115, %253 ]
  %257 = add nsw i32 %.011131392, -1
  %258 = mul i32 %257, %47
  store i32 %258, ptr %7, align 4, !tbaa !5
  %259 = sext i32 %258 to i64
  %260 = getelementptr inbounds %struct.complex, ptr %21, i64 %259
  %261 = load float, ptr %260, align 4, !tbaa !9
  store float %261, ptr %8, align 4, !tbaa !12
  br label %288

.critedge.sink.split:                             ; preds = %.thread1500, %88
  %.4120912221247.ph = phi i32 [ %.11090, %88 ], [ %.21091, %.thread1500 ]
  %.41097120812241246.ph = phi i32 [ %.010931395, %88 ], [ %.31096, %.thread1500 ]
  %.31136120612281244.ph = phi i32 [ %.011131392, %88 ], [ %.21091, %.thread1500 ]
  store i32 %54, ptr %7, align 4, !tbaa !5
  %storemerge = load float, ptr %56, align 4, !tbaa !9
  store float %storemerge, ptr %8, align 4, !tbaa !12
  %262 = getelementptr inbounds %struct.complex, ptr %21, i64 %55, i32 1
  store float 0.000000e+00, ptr %262, align 4, !tbaa !13
  br label %.critedge

.critedge:                                        ; preds = %.critedge.sink.split, %253, %._crit_edge1366
  %.4120912221247 = phi i32 [ %.21091, %._crit_edge1366 ], [ %.21091, %253 ], [ %.4120912221247.ph, %.critedge.sink.split ]
  %.41097120812241246 = phi i32 [ %.31096, %._crit_edge1366 ], [ %.31096, %253 ], [ %.41097120812241246.ph, %.critedge.sink.split ]
  %.31136120612281244 = phi i32 [ %.21091, %._crit_edge1366 ], [ %.21091, %253 ], [ %.31136120612281244.ph, %.critedge.sink.split ]
  br i1 %.not1174, label %419, label %263

263:                                              ; preds = %.critedge
  %264 = load float, ptr %56, align 4, !tbaa !9
  %265 = fcmp oge float %264, 0.000000e+00
  %266 = fneg float %264
  %267 = select i1 %265, float %264, float %266
  %268 = fcmp ult float %267, %37
  br i1 %268, label %274, label %269

269:                                              ; preds = %263
  %270 = fdiv float 1.000000e+00, %264
  store float %270, ptr %13, align 4, !tbaa !12
  %271 = add nsw i32 %.011131392, -1
  store i32 %271, ptr %7, align 4, !tbaa !5
  %272 = fneg float %270
  store float %272, ptr %8, align 4, !tbaa !12
  %273 = sext i32 %53 to i64
  %gep1389 = getelementptr %struct.complex, ptr %invariant.gep1378, i64 %273
  call void @cher_(ptr noundef %0, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %gep1389, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull %3) #7
  store i32 %271, ptr %7, align 4, !tbaa !5
  call void @csscal_(ptr noundef nonnull %7, ptr noundef nonnull %13, ptr noundef %gep1389, ptr noundef nonnull @c__1) #7
  br label %419

274:                                              ; preds = %263
  store float %264, ptr %13, align 4, !tbaa !12
  %275 = add nsw i32 %.011131392, -1
  %.not1181.not1371 = icmp sgt i32 %.011131392, 1
  %276 = sext i32 %53 to i64
  br i1 %.not1181.not1371, label %.lr.ph1374.preheader, label %._crit_edge1484

.lr.ph1374.preheader:                             ; preds = %274
  %wide.trip.count = zext nneg i32 %.011131392 to i64
  %invariant.gep1568 = getelementptr %struct.complex, ptr %21, i64 %276
  %277 = add nsw i64 %wide.trip.count, -1
  %min.iters.check = icmp ult i32 %.011131392, 5
  br i1 %min.iters.check, label %.lr.ph1374.preheader1670, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph1374.preheader
  %n.vec = and i64 %277, -4
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %264, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %278 = getelementptr %struct.complex, ptr %invariant.gep1568, i64 %offset.idx
  %wide.vec = load <8 x float>, ptr %278, align 4, !tbaa !12
  %strided.vec = shufflevector <8 x float> %wide.vec, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1633 = shufflevector <8 x float> %wide.vec, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %279 = fdiv <4 x float> %strided.vec, %broadcast.splat
  %280 = fdiv <4 x float> %strided.vec1633, %broadcast.splat
  %interleaved.vec = shufflevector <4 x float> %279, <4 x float> %280, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec, ptr %278, align 4, !tbaa !12
  %index.next = add nuw i64 %index, 4
  %281 = icmp eq i64 %index.next, %n.vec
  br i1 %281, label %middle.block, label %vector.body, !llvm.loop !17

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %277, %n.vec
  %282 = shufflevector <4 x float> %279, <4 x float> %280, <2 x i32> <i32 3, i32 7>
  br i1 %cmp.n, label %._crit_edge1375, label %.lr.ph1374.preheader1670

.lr.ph1374.preheader1670:                         ; preds = %middle.block, %.lr.ph1374.preheader
  %indvars.iv1463.ph = phi i64 [ 1, %.lr.ph1374.preheader ], [ %ind.end, %middle.block ]
  %283 = insertelement <2 x float> poison, float %264, i64 0
  %284 = shufflevector <2 x float> %283, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph1374

.lr.ph1374:                                       ; preds = %.lr.ph1374.preheader1670, %.lr.ph1374
  %indvars.iv1463 = phi i64 [ %indvars.iv.next1464, %.lr.ph1374 ], [ %indvars.iv1463.ph, %.lr.ph1374.preheader1670 ]
  %gep1569 = getelementptr %struct.complex, ptr %invariant.gep1568, i64 %indvars.iv1463
  %285 = load <2 x float>, ptr %gep1569, align 4, !tbaa !12
  %286 = fdiv <2 x float> %285, %284
  store <2 x float> %286, ptr %gep1569, align 4, !tbaa !12
  %indvars.iv.next1464 = add nuw nsw i64 %indvars.iv1463, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next1464, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge1375, label %.lr.ph1374, !llvm.loop !20

._crit_edge1375:                                  ; preds = %.lr.ph1374, %middle.block
  %287 = phi <2 x float> [ %282, %middle.block ], [ %286, %.lr.ph1374 ]
  store <2 x float> %287, ptr %10, align 8, !tbaa !12
  br label %._crit_edge1484

._crit_edge1484:                                  ; preds = %274, %._crit_edge1375
  store i32 %275, ptr %7, align 4, !tbaa !5
  store float %266, ptr %8, align 4, !tbaa !12
  %gep1391 = getelementptr %struct.complex, ptr %invariant.gep1378, i64 %276
  call void @cher_(ptr noundef %0, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %gep1391, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull %3) #7
  br label %419

288:                                              ; preds = %239, %256
  %.sink1595 = phi i64 [ %250, %239 ], [ %259, %256 ]
  %.sink1593 = phi float [ %248, %239 ], [ 0.000000e+00, %256 ]
  %.0111514461494 = phi i32 [ %.0111514461495, %239 ], [ %.01115144614961499, %256 ]
  %289 = getelementptr inbounds %struct.complex, ptr %21, i64 %.sink1595, i32 1
  store float %.sink1593, ptr %289, align 4, !tbaa !13
  %290 = icmp sgt i32 %.011131392, 2
  br i1 %290, label %.lr.ph1370.preheader, label %.loopexit1342

.lr.ph1370.preheader:                             ; preds = %288
  %291 = add nsw i32 %.011131392, -1
  %292 = add nsw i32 %291, %53
  store i32 %292, ptr %7, align 4, !tbaa !5
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds %struct.complex, ptr %21, i64 %293
  %295 = load float, ptr %294, align 4, !tbaa !9
  store float %295, ptr %8, align 4, !tbaa !12
  %296 = call <2 x float> @Cf(ptr noundef nonnull %294)
  %.sroa.016.4.vec.extract = extractelement <2 x float> %296, i64 1
  store float %.sroa.016.4.vec.extract, ptr %9, align 4, !tbaa !12
  %297 = call float @slapy2_(ptr noundef nonnull %8, ptr noundef nonnull %9) #7
  %298 = load float, ptr %56, align 4, !tbaa !9
  %299 = fdiv float %298, %297
  store float %299, ptr %13, align 4, !tbaa !12
  %300 = mul nsw i32 %291, %19
  %301 = add nsw i32 %300, %291
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds %struct.complex, ptr %21, i64 %302
  %304 = load float, ptr %303, align 4, !tbaa !9
  %305 = fdiv float %304, %297
  %306 = load <2 x float>, ptr %294, align 4, !tbaa !12
  %307 = insertelement <2 x float> poison, float %297, i64 0
  %308 = shufflevector <2 x float> %307, <2 x float> poison, <2 x i32> zeroinitializer
  %309 = fdiv <2 x float> %306, %308
  store <2 x float> %309, ptr %10, align 8, !tbaa !12
  store <2 x float> %309, ptr %14, align 8, !tbaa !12
  %310 = call float @llvm.fmuladd.f32(float %299, float %305, float -1.000000e+00)
  %311 = fdiv float 1.000000e+00, %310
  %312 = add nsw i32 %.011131392, -2
  %313 = zext nneg i32 %312 to i64
  %314 = sext i32 %53 to i64
  %315 = sext i32 %300 to i64
  %invariant.gep1564 = getelementptr %struct.complex, ptr %21, i64 %314
  %invariant.gep1566 = getelementptr %struct.complex, ptr %21, i64 %315
  %316 = insertelement <2 x float> poison, float %311, i64 0
  %317 = shufflevector <2 x float> %316, <2 x float> poison, <2 x i32> zeroinitializer
  %318 = insertelement <2 x float> poison, float %305, i64 0
  %319 = shufflevector <2 x float> %318, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep1723 = getelementptr %struct.complex, ptr %21, i64 %314
  br label %.lr.ph1370

.lr.ph1370:                                       ; preds = %.lr.ph1370.preheader, %407
  %indvars.iv1457 = phi i64 [ %313, %.lr.ph1370.preheader ], [ %indvars.iv.next1458, %407 ]
  %320 = add nsw i64 %indvars.iv1457, %315
  %321 = trunc nsw i64 %320 to i32
  store i32 %321, ptr %7, align 4, !tbaa !5
  %322 = load float, ptr %13, align 4, !tbaa !12
  %323 = getelementptr inbounds %struct.complex, ptr %21, i64 %320
  %gep1724 = getelementptr %struct.complex, ptr %invariant.gep1723, i64 %indvars.iv1457
  %324 = load <2 x float>, ptr %323, align 4, !tbaa !12
  %325 = insertelement <2 x float> poison, float %322, i64 0
  %326 = shufflevector <2 x float> %325, <2 x float> poison, <2 x i32> zeroinitializer
  %327 = fmul <2 x float> %326, %324
  %328 = call <2 x float> @Cf(ptr noundef nonnull %14)
  %.sroa.015.0.vec.extract = extractelement <2 x float> %328, i64 0
  %.sroa.015.4.vec.extract = extractelement <2 x float> %328, i64 1
  %329 = fneg float %.sroa.015.4.vec.extract
  %330 = call ptr @_pCf(ptr noundef nonnull %11)
  %331 = getelementptr inbounds i8, ptr %330, i64 4
  store float %.sroa.015.0.vec.extract, ptr %330, align 4
  store float %329, ptr %331, align 4
  %332 = load float, ptr %11, align 8, !tbaa !9
  %333 = load float, ptr %50, align 4, !tbaa !13
  %334 = load <2 x float>, ptr %gep1724, align 4, !tbaa !12
  %335 = fneg float %333
  %336 = insertelement <2 x float> poison, float %333, i64 0
  %337 = insertelement <2 x float> %336, float %335, i64 1
  %338 = fmul <2 x float> %334, %337
  %339 = shufflevector <2 x float> %338, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %340 = insertelement <2 x float> poison, float %332, i64 0
  %341 = shufflevector <2 x float> %340, <2 x float> poison, <2 x i32> zeroinitializer
  %342 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %341, <2 x float> %334, <2 x float> %339)
  %343 = fsub <2 x float> %327, %342
  %344 = fmul <2 x float> %317, %343
  store <2 x float> %344, ptr %17, align 8, !tbaa !12
  %345 = load float, ptr %14, align 8, !tbaa !9
  %346 = load float, ptr %49, align 4, !tbaa !13
  %347 = fneg float %346
  %348 = fmul <2 x float> %319, %334
  %349 = load <2 x float>, ptr %323, align 4, !tbaa !12
  %350 = insertelement <2 x float> poison, float %346, i64 0
  %351 = insertelement <2 x float> %350, float %347, i64 1
  %352 = fmul <2 x float> %349, %351
  %353 = shufflevector <2 x float> %352, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %354 = insertelement <2 x float> poison, float %345, i64 0
  %355 = shufflevector <2 x float> %354, <2 x float> poison, <2 x i32> zeroinitializer
  %356 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %355, <2 x float> %349, <2 x float> %353)
  %357 = fsub <2 x float> %348, %356
  %358 = fmul <2 x float> %317, %357
  store <2 x float> %358, ptr %10, align 8, !tbaa !12
  store <2 x float> %358, ptr %16, align 8, !tbaa !12
  %359 = mul nsw i64 %indvars.iv1457, %51
  br label %360

360:                                              ; preds = %.lr.ph1370, %360
  %indvars.iv1459 = phi i64 [ %indvars.iv1457, %.lr.ph1370 ], [ %indvars.iv.next1460, %360 ]
  %361 = add nsw i64 %indvars.iv1459, %359
  %362 = trunc nsw i64 %361 to i32
  store i32 %362, ptr %7, align 4, !tbaa !5
  %gep1565 = getelementptr %struct.complex, ptr %invariant.gep1564, i64 %indvars.iv1459
  %363 = load float, ptr %gep1565, align 4, !tbaa !9
  %364 = fdiv float %363, %297
  %365 = getelementptr inbounds i8, ptr %gep1565, i64 4
  %366 = load float, ptr %365, align 4, !tbaa !13
  %367 = fdiv float %366, %297
  %368 = call <2 x float> @Cf(ptr noundef nonnull %16)
  %.sroa.014.0.vec.extract = extractelement <2 x float> %368, i64 0
  %.sroa.014.4.vec.extract = extractelement <2 x float> %368, i64 1
  %369 = fneg float %.sroa.014.4.vec.extract
  %370 = call ptr @_pCf(ptr noundef nonnull %11)
  %371 = getelementptr inbounds i8, ptr %370, i64 4
  store float %.sroa.014.0.vec.extract, ptr %370, align 4
  store float %369, ptr %371, align 4
  %372 = fneg float %367
  %373 = getelementptr inbounds %struct.complex, ptr %21, i64 %361
  %gep1567 = getelementptr %struct.complex, ptr %invariant.gep1566, i64 %indvars.iv1459
  %374 = load float, ptr %gep1567, align 4, !tbaa !9
  %375 = fdiv float %374, %297
  %376 = getelementptr inbounds i8, ptr %gep1567, i64 4
  %377 = load float, ptr %376, align 4, !tbaa !13
  %378 = fdiv float %377, %297
  %379 = fneg float %378
  %380 = load <2 x float>, ptr %11, align 8, !tbaa !12
  %381 = insertelement <2 x float> poison, float %367, i64 0
  %382 = insertelement <2 x float> %381, float %372, i64 1
  %383 = fmul <2 x float> %380, %382
  %384 = shufflevector <2 x float> %383, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %385 = insertelement <2 x float> poison, float %364, i64 0
  %386 = shufflevector <2 x float> %385, <2 x float> poison, <2 x i32> zeroinitializer
  %387 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %386, <2 x float> %380, <2 x float> %384)
  %388 = load <2 x float>, ptr %373, align 4, !tbaa !12
  %389 = fsub <2 x float> %388, %387
  %390 = call <2 x float> @Cf(ptr noundef nonnull %17)
  %.sroa.013.0.vec.extract = extractelement <2 x float> %390, i64 0
  %.sroa.013.4.vec.extract = extractelement <2 x float> %390, i64 1
  %391 = fneg float %.sroa.013.4.vec.extract
  %392 = call ptr @_pCf(ptr noundef nonnull %12)
  %393 = getelementptr inbounds i8, ptr %392, i64 4
  store float %.sroa.013.0.vec.extract, ptr %392, align 4
  store float %391, ptr %393, align 4
  %394 = load <2 x float>, ptr %12, align 8, !tbaa !12
  %395 = insertelement <2 x float> poison, float %378, i64 0
  %396 = insertelement <2 x float> %395, float %379, i64 1
  %397 = fmul <2 x float> %394, %396
  %398 = shufflevector <2 x float> %397, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %399 = insertelement <2 x float> poison, float %375, i64 0
  %400 = shufflevector <2 x float> %399, <2 x float> poison, <2 x i32> zeroinitializer
  %401 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %400, <2 x float> %394, <2 x float> %398)
  %402 = fsub <2 x float> %389, %401
  store <2 x float> %402, ptr %10, align 8, !tbaa !12
  %403 = load i32, ptr %7, align 4, !tbaa !5
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds %struct.complex, ptr %21, i64 %404
  store <2 x float> %402, ptr %405, align 4, !tbaa !12
  %indvars.iv.next1460 = add nsw i64 %indvars.iv1459, -1
  %406 = icmp ugt i64 %indvars.iv1459, 1
  br i1 %406, label %360, label %407, !llvm.loop !21

407:                                              ; preds = %360
  %408 = load <2 x float>, ptr %16, align 8, !tbaa !12
  %409 = fdiv <2 x float> %408, %308
  store <2 x float> %409, ptr %gep1724, align 4, !tbaa !12
  %410 = load <2 x float>, ptr %17, align 8, !tbaa !12
  %411 = fdiv <2 x float> %410, %308
  store <2 x float> %411, ptr %323, align 4, !tbaa !12
  %412 = trunc nuw nsw i64 %indvars.iv1457 to i32
  %413 = mul i32 %47, %412
  store i32 %413, ptr %7, align 4, !tbaa !5
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds %struct.complex, ptr %21, i64 %414
  %416 = load float, ptr %415, align 4, !tbaa !9
  store float %416, ptr %8, align 4, !tbaa !12
  store float %416, ptr %10, align 8, !tbaa !9
  store float 0.000000e+00, ptr %48, align 4, !tbaa !13
  %417 = getelementptr inbounds %struct.complex, ptr %21, i64 %414, i32 1
  store float 0.000000e+00, ptr %417, align 4, !tbaa !13
  %indvars.iv.next1458 = add nsw i64 %indvars.iv1457, -1
  %418 = icmp sgt i64 %indvars.iv1457, 1
  br i1 %418, label %.lr.ph1370, label %.loopexit1342, !llvm.loop !22

419:                                              ; preds = %85, %269, %._crit_edge1484, %.critedge
  %.41137.ph = phi i32 [ %.31136120612281244, %.critedge ], [ %.31136120612281244, %._crit_edge1484 ], [ %.31136120612281244, %269 ], [ %.011131392, %85 ]
  %.51098.ph = phi i32 [ %.41097120812241246, %.critedge ], [ %.41097120812241246, %._crit_edge1484 ], [ %.41097120812241246, %269 ], [ %.010931395, %85 ]
  %.5.ph = phi i32 [ %.4120912221247, %.critedge ], [ %.4120912221247, %._crit_edge1484 ], [ %.4120912221247, %269 ], [ %.11090, %85 ]
  %420 = zext nneg i32 %.011131392 to i64
  %421 = getelementptr inbounds i32, ptr %22, i64 %420
  store i32 %.41137.ph, ptr %421, align 4, !tbaa !5
  br label %427

.loopexit1342:                                    ; preds = %407, %288
  %422 = sub nsw i32 0, %.0111514461494
  %423 = zext nneg i32 %.011131392 to i64
  %424 = getelementptr inbounds i32, ptr %22, i64 %423
  store i32 %422, ptr %424, align 4, !tbaa !5
  %425 = sub nsw i32 0, %.21091
  %426 = getelementptr i8, ptr %424, i64 -4
  store i32 %425, ptr %426, align 4, !tbaa !5
  br label %427

427:                                              ; preds = %.loopexit1342, %419
  %.51261 = phi i32 [ %.21091, %.loopexit1342 ], [ %.5.ph, %419 ]
  %.510981259 = phi i32 [ %.31096, %.loopexit1342 ], [ %.51098.ph, %419 ]
  %.31148.neg1255 = phi i32 [ -2, %.loopexit1342 ], [ -1, %419 ]
  %428 = add nsw i32 %.31148.neg1255, %.011131392
  %429 = icmp slt i32 %428, 1
  br i1 %429, label %.loopexit1341, label %52

430:                                              ; preds = %.lr.ph1432, %850
  %431 = phi i32 [ %38, %.lr.ph1432 ], [ %852, %850 ]
  %.61431 = phi i32 [ undef, %.lr.ph1432 ], [ %.111336, %850 ]
  %.610991430 = phi i32 [ undef, %.lr.ph1432 ], [ %.1111041334, %850 ]
  %.111141425 = phi i32 [ 1, %.lr.ph1432 ], [ %851, %850 ]
  %432 = mul nsw i32 %.111141425, %19
  %433 = add nsw i32 %432, %.111141425
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds %struct.complex, ptr %21, i64 %434
  %436 = load float, ptr %435, align 4, !tbaa !9
  store float %436, ptr %8, align 4, !tbaa !12
  %437 = fcmp oge float %436, 0.000000e+00
  %438 = fneg float %436
  %439 = select i1 %437, float %436, float %438
  %440 = icmp slt i32 %.111141425, %431
  br i1 %440, label %441, label %461

441:                                              ; preds = %430
  %442 = sub nsw i32 %431, %.111141425
  store i32 %442, ptr %7, align 4, !tbaa !5
  %443 = add nuw nsw i32 %.111141425, 1
  %444 = add nsw i32 %443, %432
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds %struct.complex, ptr %21, i64 %445
  %447 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %446, ptr noundef nonnull @c__1) #7
  %448 = add nsw i32 %447, %.111141425
  %449 = add nsw i32 %448, %432
  store i32 %449, ptr %7, align 4, !tbaa !5
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds %struct.complex, ptr %21, i64 %450
  %452 = load float, ptr %451, align 4, !tbaa !9
  store float %452, ptr %8, align 4, !tbaa !12
  %453 = fcmp oge float %452, 0.000000e+00
  %454 = fneg float %452
  %455 = select i1 %453, float %452, float %454
  %456 = call <2 x float> @Cf(ptr noundef nonnull %451)
  %.sroa.012.4.vec.extract = extractelement <2 x float> %456, i64 1
  store float %.sroa.012.4.vec.extract, ptr %9, align 4, !tbaa !12
  %457 = fcmp oge float %.sroa.012.4.vec.extract, 0.000000e+00
  %458 = fneg float %.sroa.012.4.vec.extract
  %459 = select i1 %457, float %.sroa.012.4.vec.extract, float %458
  %460 = fadd float %455, %459
  br label %461

461:                                              ; preds = %430, %441
  %.31130 = phi float [ %460, %441 ], [ 0.000000e+00, %430 ]
  %.7 = phi i32 [ %448, %441 ], [ %.61431, %430 ]
  %462 = fcmp oge float %439, %.31130
  %463 = select i1 %462, float %439, float %.31130
  %464 = fcmp oeq float %463, 0.000000e+00
  br i1 %464, label %465, label %472

465:                                              ; preds = %461
  %466 = load i32, ptr %5, align 4, !tbaa !5
  %467 = icmp eq i32 %466, 0
  br i1 %467, label %468, label %469

468:                                              ; preds = %465
  store i32 %.111141425, ptr %5, align 4, !tbaa !5
  br label %469

469:                                              ; preds = %468, %465
  store i32 %433, ptr %7, align 4, !tbaa !5
  %470 = load float, ptr %435, align 4, !tbaa !9
  store float %470, ptr %8, align 4, !tbaa !12
  %471 = getelementptr inbounds %struct.complex, ptr %21, i64 %434, i32 1
  store float 0.000000e+00, ptr %471, align 4, !tbaa !13
  br label %842

472:                                              ; preds = %461
  %473 = fmul float %.31130, 0x3FE47E0F60000000
  %474 = fcmp olt float %439, %473
  br i1 %474, label %.preheader, label %.critedge1339.sink.split

.preheader:                                       ; preds = %472
  %475 = add nsw i32 %.111141425, -1
  br label %476

476:                                              ; preds = %.preheader, %533
  %.41131 = phi float [ %.31126, %533 ], [ %.31130, %.preheader ]
  %.41119 = phi i32 [ %.8, %533 ], [ %.111141425, %.preheader ]
  %.71100 = phi i32 [ %.91102, %533 ], [ %.610991430, %.preheader ]
  %.8 = phi i32 [ %.91102, %533 ], [ %.7, %.preheader ]
  %.not1165 = icmp eq i32 %.8, %.111141425
  br i1 %.not1165, label %497, label %477

477:                                              ; preds = %476
  %478 = sub nsw i32 %.8, %.111141425
  store i32 %478, ptr %7, align 4, !tbaa !5
  %479 = add nsw i32 %.8, %432
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds %struct.complex, ptr %21, i64 %480
  %482 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %481, ptr noundef nonnull %3) #7
  %483 = add nsw i32 %475, %482
  %484 = mul nsw i32 %483, %19
  %485 = add nsw i32 %484, %.8
  store i32 %485, ptr %7, align 4, !tbaa !5
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds %struct.complex, ptr %21, i64 %486
  %488 = load float, ptr %487, align 4, !tbaa !9
  store float %488, ptr %8, align 4, !tbaa !12
  %489 = fcmp oge float %488, 0.000000e+00
  %490 = fneg float %488
  %491 = select i1 %489, float %488, float %490
  %492 = call <2 x float> @Cf(ptr noundef nonnull %487)
  %.sroa.011.4.vec.extract = extractelement <2 x float> %492, i64 1
  store float %.sroa.011.4.vec.extract, ptr %9, align 4, !tbaa !12
  %493 = fcmp oge float %.sroa.011.4.vec.extract, 0.000000e+00
  %494 = fneg float %.sroa.011.4.vec.extract
  %495 = select i1 %493, float %.sroa.011.4.vec.extract, float %494
  %496 = fadd float %491, %495
  br label %497

497:                                              ; preds = %476, %477
  %.21125 = phi float [ %496, %477 ], [ 0.000000e+00, %476 ]
  %.81101 = phi i32 [ %483, %477 ], [ %.71100, %476 ]
  %498 = load i32, ptr %1, align 4, !tbaa !5
  %499 = icmp slt i32 %.8, %498
  br i1 %499, label %500, label %523

500:                                              ; preds = %497
  %501 = sub nsw i32 %498, %.8
  store i32 %501, ptr %7, align 4, !tbaa !5
  %502 = add nsw i32 %.8, 1
  %503 = mul nsw i32 %.8, %19
  %504 = add nsw i32 %502, %503
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds %struct.complex, ptr %21, i64 %505
  %507 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %506, ptr noundef nonnull @c__1) #7
  %508 = add nsw i32 %507, %.8
  %509 = add nsw i32 %508, %503
  store i32 %509, ptr %7, align 4, !tbaa !5
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds %struct.complex, ptr %21, i64 %510
  %512 = load float, ptr %511, align 4, !tbaa !9
  store float %512, ptr %8, align 4, !tbaa !12
  %513 = fcmp oge float %512, 0.000000e+00
  %514 = fneg float %512
  %515 = select i1 %513, float %512, float %514
  %516 = call <2 x float> @Cf(ptr noundef nonnull %511)
  %.sroa.010.4.vec.extract = extractelement <2 x float> %516, i64 1
  store float %.sroa.010.4.vec.extract, ptr %9, align 4, !tbaa !12
  %517 = fcmp oge float %.sroa.010.4.vec.extract, 0.000000e+00
  %518 = fneg float %.sroa.010.4.vec.extract
  %519 = select i1 %517, float %.sroa.010.4.vec.extract, float %518
  %520 = fadd float %515, %519
  %521 = fcmp ogt float %520, %.21125
  br i1 %521, label %522, label %523

522:                                              ; preds = %500
  br label %523

523:                                              ; preds = %500, %522, %497
  %.31126 = phi float [ %520, %522 ], [ %.21125, %500 ], [ %.21125, %497 ]
  %.91102 = phi i32 [ %508, %522 ], [ %.81101, %500 ], [ %.81101, %497 ]
  %524 = mul i32 %.8, %40
  store i32 %524, ptr %7, align 4, !tbaa !5
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds %struct.complex, ptr %21, i64 %525
  %527 = load float, ptr %526, align 4, !tbaa !9
  store float %527, ptr %8, align 4, !tbaa !12
  %528 = fcmp oge float %527, 0.000000e+00
  %529 = fneg float %527
  %530 = select i1 %528, float %527, float %529
  %531 = fmul float %.31126, 0x3FE47E0F60000000
  %532 = fcmp uge float %530, %531
  br i1 %532, label %.thread1513, label %533

533:                                              ; preds = %523
  %534 = icmp ne i32 %.41119, %.91102
  %535 = fcmp ugt float %.31126, %.41131
  %or.cond1184 = and i1 %535, %534
  br i1 %or.cond1184, label %476, label %536

536:                                              ; preds = %533
  %537 = add nuw nsw i32 %.111141425, 2
  %538 = add nuw nsw i32 %.111141425, 1
  %.not1167 = icmp eq i32 %.41119, %.111141425
  br i1 %.not1167, label %.thread1504, label %539

539:                                              ; preds = %536
  %540 = load i32, ptr %1, align 4, !tbaa !5
  %541 = icmp slt i32 %.41119, %540
  br i1 %541, label %542, label %552

542:                                              ; preds = %539
  %543 = sub nsw i32 %540, %.41119
  store i32 %543, ptr %7, align 4, !tbaa !5
  %544 = add nsw i32 %.41119, 1
  %545 = add nsw i32 %544, %432
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds %struct.complex, ptr %21, i64 %546
  %548 = mul nsw i32 %.41119, %19
  %549 = add nsw i32 %544, %548
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds %struct.complex, ptr %21, i64 %550
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %547, ptr noundef nonnull @c__1, ptr noundef %551, ptr noundef nonnull @c__1) #7
  br label %552

552:                                              ; preds = %542, %539
  %553 = add nsw i32 %.41119, -1
  store i32 %553, ptr %7, align 4, !tbaa !5
  %.not1168.not1399 = icmp slt i32 %.111141425, %553
  br i1 %.not1168.not1399, label %.lr.ph1402.preheader, label %.loopexit1517

.lr.ph1402.preheader:                             ; preds = %552
  %554 = zext nneg i32 %.111141425 to i64
  %555 = sext i32 %432 to i64
  %556 = sext i32 %.41119 to i64
  %invariant.gep1572 = getelementptr %struct.complex, ptr %21, i64 %555
  %invariant.gep1574 = getelementptr %struct.complex, ptr %21, i64 %556
  br label %.lr.ph1402

.lr.ph1402:                                       ; preds = %.lr.ph1402.preheader, %.lr.ph1402
  %indvars.iv1466 = phi i64 [ %554, %.lr.ph1402.preheader ], [ %indvars.iv.next1467, %.lr.ph1402 ]
  %indvars.iv.next1467 = add nuw nsw i64 %indvars.iv1466, 1
  %gep1573 = getelementptr %struct.complex, ptr %invariant.gep1572, i64 %indvars.iv.next1467
  %557 = call <2 x float> @Cf(ptr noundef %gep1573)
  %.sroa.09.0.vec.extract = extractelement <2 x float> %557, i64 0
  %.sroa.09.4.vec.extract = extractelement <2 x float> %557, i64 1
  %558 = fneg float %.sroa.09.4.vec.extract
  %559 = call ptr @_pCf(ptr noundef nonnull %10)
  %560 = getelementptr inbounds i8, ptr %559, i64 4
  store float %.sroa.09.0.vec.extract, ptr %559, align 4
  store float %558, ptr %560, align 4
  %561 = mul nsw i64 %indvars.iv.next1467, %44
  %gep1575 = getelementptr %struct.complex, ptr %invariant.gep1574, i64 %561
  %562 = load <2 x float>, ptr %10, align 8, !tbaa !12
  %563 = call <2 x float> @Cf(ptr noundef %gep1575)
  %.sroa.08.0.vec.extract = extractelement <2 x float> %563, i64 0
  %.sroa.08.4.vec.extract = extractelement <2 x float> %563, i64 1
  %564 = fneg float %.sroa.08.4.vec.extract
  %565 = call ptr @_pCf(ptr noundef nonnull %10)
  %566 = getelementptr inbounds i8, ptr %565, i64 4
  store float %.sroa.08.0.vec.extract, ptr %565, align 4
  store float %564, ptr %566, align 4
  %567 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %567, ptr %gep1573, align 4, !tbaa !12
  store <2 x float> %562, ptr %gep1575, align 4, !tbaa !12
  %568 = load i32, ptr %7, align 4, !tbaa !5
  %569 = sext i32 %568 to i64
  %.not1168.not = icmp slt i64 %indvars.iv.next1467, %569
  br i1 %.not1168.not, label %.lr.ph1402, label %.loopexit1517, !llvm.loop !23

.loopexit1517:                                    ; preds = %.lr.ph1402, %552
  %570 = add nsw i32 %.41119, %432
  store i32 %570, ptr %7, align 4, !tbaa !5
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds %struct.complex, ptr %21, i64 %571
  %573 = call <2 x float> @Cf(ptr noundef %572)
  %.sroa.07.0.vec.extract = extractelement <2 x float> %573, i64 0
  %.sroa.07.4.vec.extract = extractelement <2 x float> %573, i64 1
  %574 = fneg float %.sroa.07.4.vec.extract
  %575 = call ptr @_pCf(ptr noundef nonnull %10)
  %576 = getelementptr inbounds i8, ptr %575, i64 4
  store float %.sroa.07.0.vec.extract, ptr %575, align 4
  store float %574, ptr %576, align 4
  %577 = load i32, ptr %7, align 4, !tbaa !5
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds %struct.complex, ptr %21, i64 %578
  %580 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %580, ptr %579, align 4, !tbaa !12
  %581 = load float, ptr %435, align 4, !tbaa !9
  %582 = mul i32 %.41119, %40
  %583 = sext i32 %582 to i64
  %584 = getelementptr inbounds %struct.complex, ptr %21, i64 %583
  %585 = load float, ptr %584, align 4, !tbaa !9
  store float %585, ptr %8, align 4, !tbaa !12
  store float %585, ptr %435, align 4, !tbaa !9
  %586 = getelementptr inbounds %struct.complex, ptr %21, i64 %434, i32 1
  store float 0.000000e+00, ptr %586, align 4, !tbaa !13
  store float %581, ptr %584, align 4, !tbaa !9
  %587 = getelementptr inbounds %struct.complex, ptr %21, i64 %583, i32 1
  store float 0.000000e+00, ptr %587, align 4, !tbaa !13
  %.not1169 = icmp eq i32 %.8, %538
  br i1 %.not1169, label %659, label %590

.thread1513:                                      ; preds = %523
  %588 = add nuw nsw i32 %.111141425, 1
  %.not11691514 = icmp eq i32 %.8, %.111141425
  br i1 %.not11691514, label %.critedge1339.sink.split, label %590

.thread1504:                                      ; preds = %536
  %.not11691506 = icmp eq i32 %.8, %538
  br i1 %.not11691506, label %.thread1510, label %590

.thread1510:                                      ; preds = %.thread1504
  %589 = getelementptr inbounds %struct.complex, ptr %21, i64 %434, i32 1
  store float 0.000000e+00, ptr %589, align 4, !tbaa !13
  br label %662

590:                                              ; preds = %.thread1513, %.thread1504, %.loopexit1517
  %591 = phi i32 [ %537, %.thread1504 ], [ %537, %.loopexit1517 ], [ %588, %.thread1513 ]
  %592 = phi i32 [ %538, %.thread1504 ], [ %538, %.loopexit1517 ], [ %.111141425, %.thread1513 ]
  %.4111914371508 = phi i32 [ %.111141425, %.thread1504 ], [ %.41119, %.loopexit1517 ], [ %.41119, %.thread1513 ]
  %593 = getelementptr inbounds %struct.complex, ptr %21, i64 %525
  %594 = load i32, ptr %1, align 4, !tbaa !5
  %595 = icmp slt i32 %.8, %594
  br i1 %595, label %596, label %607

596:                                              ; preds = %590
  %597 = sub nsw i32 %594, %.8
  store i32 %597, ptr %7, align 4, !tbaa !5
  %598 = add nsw i32 %.8, 1
  %599 = mul nsw i32 %592, %19
  %600 = add nsw i32 %599, %598
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds %struct.complex, ptr %21, i64 %601
  %603 = mul nsw i32 %.8, %19
  %604 = add nsw i32 %598, %603
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds %struct.complex, ptr %21, i64 %605
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %602, ptr noundef nonnull @c__1, ptr noundef %606, ptr noundef nonnull @c__1) #7
  br label %607

607:                                              ; preds = %596, %590
  %608 = add nsw i32 %.8, -1
  store i32 %608, ptr %7, align 4, !tbaa !5
  %.not11701404.not = icmp slt i32 %591, %.8
  %609 = mul nsw i32 %592, %19
  br i1 %.not11701404.not, label %.lr.ph1407, label %._crit_edge1408

.lr.ph1407:                                       ; preds = %607
  %610 = sext i32 %591 to i64
  %611 = sext i32 %609 to i64
  %612 = sext i32 %.8 to i64
  %invariant.gep1576 = getelementptr %struct.complex, ptr %21, i64 %611
  %invariant.gep1578 = getelementptr %struct.complex, ptr %21, i64 %612
  br label %613

613:                                              ; preds = %.lr.ph1407, %613
  %indvars.iv1469 = phi i64 [ %610, %.lr.ph1407 ], [ %indvars.iv.next1470, %613 ]
  %gep1577 = getelementptr %struct.complex, ptr %invariant.gep1576, i64 %indvars.iv1469
  %614 = call <2 x float> @Cf(ptr noundef %gep1577)
  %.sroa.06.0.vec.extract = extractelement <2 x float> %614, i64 0
  %.sroa.06.4.vec.extract = extractelement <2 x float> %614, i64 1
  %615 = fneg float %.sroa.06.4.vec.extract
  %616 = call ptr @_pCf(ptr noundef nonnull %10)
  %617 = getelementptr inbounds i8, ptr %616, i64 4
  store float %.sroa.06.0.vec.extract, ptr %616, align 4
  store float %615, ptr %617, align 4
  %618 = mul nsw i64 %indvars.iv1469, %44
  %gep1579 = getelementptr %struct.complex, ptr %invariant.gep1578, i64 %618
  %619 = load <2 x float>, ptr %10, align 8, !tbaa !12
  %620 = call <2 x float> @Cf(ptr noundef %gep1579)
  %.sroa.05.0.vec.extract = extractelement <2 x float> %620, i64 0
  %.sroa.05.4.vec.extract = extractelement <2 x float> %620, i64 1
  %621 = fneg float %.sroa.05.4.vec.extract
  %622 = call ptr @_pCf(ptr noundef nonnull %10)
  %623 = getelementptr inbounds i8, ptr %622, i64 4
  store float %.sroa.05.0.vec.extract, ptr %622, align 4
  store float %621, ptr %623, align 4
  %624 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %624, ptr %gep1577, align 4, !tbaa !12
  store <2 x float> %619, ptr %gep1579, align 4, !tbaa !12
  %indvars.iv.next1470 = add nsw i64 %indvars.iv1469, 1
  %625 = load i32, ptr %7, align 4, !tbaa !5
  %626 = sext i32 %625 to i64
  %.not1170.not = icmp slt i64 %indvars.iv1469, %626
  br i1 %.not1170.not, label %613, label %._crit_edge1408, !llvm.loop !24

._crit_edge1408:                                  ; preds = %613, %607
  %627 = add nsw i32 %609, %.8
  store i32 %627, ptr %7, align 4, !tbaa !5
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds %struct.complex, ptr %21, i64 %628
  %630 = call <2 x float> @Cf(ptr noundef %629)
  %.sroa.04.0.vec.extract = extractelement <2 x float> %630, i64 0
  %.sroa.04.4.vec.extract = extractelement <2 x float> %630, i64 1
  %631 = fneg float %.sroa.04.4.vec.extract
  %632 = call ptr @_pCf(ptr noundef nonnull %10)
  %633 = getelementptr inbounds i8, ptr %632, i64 4
  store float %.sroa.04.0.vec.extract, ptr %632, align 4
  store float %631, ptr %633, align 4
  %634 = load i32, ptr %7, align 4, !tbaa !5
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds %struct.complex, ptr %21, i64 %635
  %637 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %637, ptr %636, align 4, !tbaa !12
  %638 = add nsw i32 %609, %592
  %639 = sext i32 %638 to i64
  %640 = getelementptr inbounds %struct.complex, ptr %21, i64 %639
  %641 = load float, ptr %640, align 4, !tbaa !9
  %642 = load float, ptr %593, align 4, !tbaa !9
  store float %642, ptr %8, align 4, !tbaa !12
  store float %642, ptr %640, align 4, !tbaa !9
  %643 = getelementptr inbounds %struct.complex, ptr %21, i64 %639, i32 1
  store float 0.000000e+00, ptr %643, align 4, !tbaa !13
  store i32 %524, ptr %7, align 4, !tbaa !5
  store float %641, ptr %593, align 4, !tbaa !9
  %644 = getelementptr inbounds %struct.complex, ptr %21, i64 %525, i32 1
  store float 0.000000e+00, ptr %644, align 4, !tbaa !13
  br i1 %532, label %.critedge1339, label %645

645:                                              ; preds = %._crit_edge1408
  %646 = load float, ptr %435, align 4, !tbaa !9
  store float %646, ptr %8, align 4, !tbaa !12
  %647 = getelementptr inbounds %struct.complex, ptr %21, i64 %434, i32 1
  store float 0.000000e+00, ptr %647, align 4, !tbaa !13
  %648 = add nuw nsw i32 %.111141425, 1
  %649 = add nsw i32 %648, %432
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds %struct.complex, ptr %21, i64 %650
  %652 = load float, ptr %651, align 4, !tbaa !9
  %653 = getelementptr inbounds i8, ptr %651, i64 4
  %654 = load float, ptr %653, align 4, !tbaa !13
  %655 = add nsw i32 %.8, %432
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds %struct.complex, ptr %21, i64 %656
  %658 = load <2 x float>, ptr %657, align 4, !tbaa !12
  store <2 x float> %658, ptr %651, align 4, !tbaa !12
  store i32 %655, ptr %7, align 4, !tbaa !5
  store float %652, ptr %657, align 4, !tbaa !9
  br label %714

659:                                              ; preds = %.loopexit1517
  store i32 %433, ptr %7, align 4, !tbaa !5
  %660 = load float, ptr %435, align 4, !tbaa !9
  store float %660, ptr %8, align 4, !tbaa !12
  %661 = getelementptr inbounds %struct.complex, ptr %21, i64 %434, i32 1
  store float 0.000000e+00, ptr %661, align 4, !tbaa !13
  br i1 %532, label %.critedge1339, label %662

662:                                              ; preds = %.thread1510, %659
  %.41119143715091512 = phi i32 [ %.111141425, %.thread1510 ], [ %.41119, %659 ]
  %663 = add nuw nsw i32 %.111141425, 1
  %664 = mul i32 %663, %40
  store i32 %664, ptr %7, align 4, !tbaa !5
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds %struct.complex, ptr %21, i64 %665
  %667 = load float, ptr %666, align 4, !tbaa !9
  store float %667, ptr %8, align 4, !tbaa !12
  br label %714

.critedge1339.sink.split:                         ; preds = %.thread1513, %472
  %.10128412971322.ph = phi i32 [ %.7, %472 ], [ %.8, %.thread1513 ]
  %.101103128312991321.ph = phi i32 [ %.610991430, %472 ], [ %.91102, %.thread1513 ]
  %.81141128113031319.ph = phi i32 [ %.111141425, %472 ], [ %.8, %.thread1513 ]
  store i32 %433, ptr %7, align 4, !tbaa !5
  %storemerge1600 = load float, ptr %435, align 4, !tbaa !9
  store float %storemerge1600, ptr %8, align 4, !tbaa !12
  %668 = getelementptr inbounds %struct.complex, ptr %21, i64 %434, i32 1
  store float 0.000000e+00, ptr %668, align 4, !tbaa !13
  br label %.critedge1339

.critedge1339:                                    ; preds = %.critedge1339.sink.split, %659, %._crit_edge1408
  %.10128412971322 = phi i32 [ %.8, %._crit_edge1408 ], [ %.8, %659 ], [ %.10128412971322.ph, %.critedge1339.sink.split ]
  %.101103128312991321 = phi i32 [ %.91102, %._crit_edge1408 ], [ %.91102, %659 ], [ %.101103128312991321.ph, %.critedge1339.sink.split ]
  %.81141128113031319 = phi i32 [ %.8, %._crit_edge1408 ], [ %.8, %659 ], [ %.81141128113031319.ph, %.critedge1339.sink.split ]
  %669 = load i32, ptr %1, align 4, !tbaa !5
  %670 = icmp slt i32 %.111141425, %669
  br i1 %670, label %671, label %842

671:                                              ; preds = %.critedge1339
  %672 = load float, ptr %435, align 4, !tbaa !9
  %673 = fcmp oge float %672, 0.000000e+00
  %674 = fneg float %672
  %675 = select i1 %673, float %672, float %674
  %676 = fcmp ult float %675, %37
  br i1 %676, label %.lr.ph1421.preheader, label %677

677:                                              ; preds = %671
  %678 = fdiv float 1.000000e+00, %672
  store float %678, ptr %13, align 4, !tbaa !12
  %679 = sub nsw i32 %669, %.111141425
  store i32 %679, ptr %7, align 4, !tbaa !5
  %680 = fneg float %678
  store float %680, ptr %8, align 4, !tbaa !12
  %681 = add nuw nsw i32 %.111141425, 1
  %682 = add nsw i32 %681, %432
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds %struct.complex, ptr %21, i64 %683
  %685 = mul i32 %681, %40
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds %struct.complex, ptr %21, i64 %686
  call void @cher_(ptr noundef %0, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %684, ptr noundef nonnull @c__1, ptr noundef %687, ptr noundef nonnull %3) #7
  %688 = load i32, ptr %1, align 4, !tbaa !5
  %689 = sub nsw i32 %688, %.111141425
  store i32 %689, ptr %7, align 4, !tbaa !5
  call void @csscal_(ptr noundef nonnull %7, ptr noundef nonnull %13, ptr noundef %684, ptr noundef nonnull @c__1) #7
  br label %842

.lr.ph1421.preheader:                             ; preds = %671
  store float %672, ptr %13, align 4, !tbaa !12
  %690 = add nuw nsw i32 %.111141425, 1
  %narrow1490 = add nuw nsw i32 %.111141425, 1
  %691 = zext nneg i32 %narrow1490 to i64
  %692 = sext i32 %432 to i64
  %693 = add i32 %669, 1
  %invariant.gep1590 = getelementptr %struct.complex, ptr %21, i64 %692
  %694 = xor i32 %.111141425, -1
  %695 = add i32 %669, %694
  %696 = zext i32 %695 to i64
  %697 = add nuw nsw i64 %696, 1
  %min.iters.check1636 = icmp ult i32 %695, 3
  br i1 %min.iters.check1636, label %.lr.ph1421.preheader1654, label %vector.ph1637

vector.ph1637:                                    ; preds = %.lr.ph1421.preheader
  %n.vec1639 = and i64 %697, 8589934588
  %ind.end1640 = add nuw nsw i64 %n.vec1639, %691
  %broadcast.splatinsert1648 = insertelement <4 x float> poison, float %672, i64 0
  %broadcast.splat1649 = shufflevector <4 x float> %broadcast.splatinsert1648, <4 x float> poison, <4 x i32> zeroinitializer
  %invariant.gep1725 = getelementptr %struct.complex, ptr %invariant.gep1590, i64 %691
  br label %vector.body1642

vector.body1642:                                  ; preds = %vector.body1642, %vector.ph1637
  %index1643 = phi i64 [ 0, %vector.ph1637 ], [ %index.next1651, %vector.body1642 ]
  %gep1726 = getelementptr %struct.complex, ptr %invariant.gep1725, i64 %index1643
  %wide.vec1645 = load <8 x float>, ptr %gep1726, align 4, !tbaa !12
  %strided.vec1646 = shufflevector <8 x float> %wide.vec1645, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1647 = shufflevector <8 x float> %wide.vec1645, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %698 = fdiv <4 x float> %strided.vec1646, %broadcast.splat1649
  %699 = fdiv <4 x float> %strided.vec1647, %broadcast.splat1649
  %interleaved.vec1650 = shufflevector <4 x float> %698, <4 x float> %699, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec1650, ptr %gep1726, align 4, !tbaa !12
  %index.next1651 = add nuw i64 %index1643, 4
  %700 = icmp eq i64 %index.next1651, %n.vec1639
  br i1 %700, label %middle.block1634, label %vector.body1642, !llvm.loop !25

middle.block1634:                                 ; preds = %vector.body1642
  %cmp.n1652 = icmp eq i64 %697, %n.vec1639
  %701 = shufflevector <4 x float> %698, <4 x float> %699, <2 x i32> <i32 3, i32 7>
  br i1 %cmp.n1652, label %.loopexit1653, label %.lr.ph1421.preheader1654

.lr.ph1421.preheader1654:                         ; preds = %middle.block1634, %.lr.ph1421.preheader
  %indvars.iv1478.ph = phi i64 [ %691, %.lr.ph1421.preheader ], [ %ind.end1640, %middle.block1634 ]
  %702 = insertelement <2 x float> poison, float %672, i64 0
  %703 = shufflevector <2 x float> %702, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph1421

.lr.ph1421:                                       ; preds = %.lr.ph1421.preheader1654, %.lr.ph1421
  %indvars.iv1478 = phi i64 [ %indvars.iv.next1479, %.lr.ph1421 ], [ %indvars.iv1478.ph, %.lr.ph1421.preheader1654 ]
  %gep1591 = getelementptr %struct.complex, ptr %invariant.gep1590, i64 %indvars.iv1478
  %704 = load <2 x float>, ptr %gep1591, align 4, !tbaa !12
  %705 = fdiv <2 x float> %704, %703
  store <2 x float> %705, ptr %gep1591, align 4, !tbaa !12
  %indvars.iv.next1479 = add nuw nsw i64 %indvars.iv1478, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next1479 to i32
  %exitcond1481.not = icmp eq i32 %693, %lftr.wideiv
  br i1 %exitcond1481.not, label %.loopexit1653, label %.lr.ph1421, !llvm.loop !26

.loopexit1653:                                    ; preds = %.lr.ph1421, %middle.block1634
  %706 = phi <2 x float> [ %701, %middle.block1634 ], [ %705, %.lr.ph1421 ]
  store <2 x float> %706, ptr %10, align 8, !tbaa !12
  %707 = sub nsw i32 %669, %.111141425
  store i32 %707, ptr %7, align 4, !tbaa !5
  store float %674, ptr %8, align 4, !tbaa !12
  %708 = add nsw i32 %690, %432
  %709 = sext i32 %708 to i64
  %710 = getelementptr inbounds %struct.complex, ptr %21, i64 %709
  %711 = mul i32 %690, %40
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds %struct.complex, ptr %21, i64 %712
  call void @cher_(ptr noundef %0, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %710, ptr noundef nonnull @c__1, ptr noundef %713, ptr noundef nonnull %3) #7
  br label %842

714:                                              ; preds = %645, %662
  %.sink1599 = phi i64 [ %656, %645 ], [ %665, %662 ]
  %.sink1597 = phi float [ %654, %645 ], [ 0.000000e+00, %662 ]
  %.4111914371507 = phi i32 [ %.4111914371508, %645 ], [ %.41119143715091512, %662 ]
  %715 = getelementptr inbounds %struct.complex, ptr %21, i64 %.sink1599, i32 1
  store float %.sink1597, ptr %715, align 4, !tbaa !13
  %716 = load i32, ptr %1, align 4, !tbaa !5
  %717 = add nsw i32 %716, -1
  %718 = icmp slt i32 %.111141425, %717
  br i1 %718, label %719, label %.loopexit

719:                                              ; preds = %714
  %720 = add nuw nsw i32 %.111141425, 1
  %721 = add nsw i32 %720, %432
  store i32 %721, ptr %7, align 4, !tbaa !5
  %722 = sext i32 %721 to i64
  %723 = getelementptr inbounds %struct.complex, ptr %21, i64 %722
  %724 = load float, ptr %723, align 4, !tbaa !9
  store float %724, ptr %8, align 4, !tbaa !12
  %725 = call <2 x float> @Cf(ptr noundef nonnull %723)
  %.sroa.03.4.vec.extract = extractelement <2 x float> %725, i64 1
  store float %.sroa.03.4.vec.extract, ptr %9, align 4, !tbaa !12
  %726 = call float @slapy2_(ptr noundef nonnull %8, ptr noundef nonnull %9) #7
  %727 = mul nsw i32 %720, %19
  %728 = add nsw i32 %727, %720
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds %struct.complex, ptr %21, i64 %729
  %731 = load float, ptr %730, align 4, !tbaa !9
  %732 = fdiv float %731, %726
  store float %732, ptr %13, align 4, !tbaa !12
  %733 = load float, ptr %435, align 4, !tbaa !9
  %734 = load <2 x float>, ptr %723, align 4, !tbaa !12
  %735 = insertelement <2 x float> poison, float %726, i64 0
  %736 = shufflevector <2 x float> %735, <2 x float> poison, <2 x i32> zeroinitializer
  %737 = fdiv <2 x float> %734, %736
  store <2 x float> %737, ptr %10, align 8, !tbaa !12
  store <2 x float> %737, ptr %15, align 8, !tbaa !12
  %738 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %738, ptr %7, align 4, !tbaa !5
  %739 = add nuw nsw i32 %.111141425, 2
  %.not11711414 = icmp sgt i32 %739, %738
  br i1 %.not11711414, label %.loopexit, label %.lr.ph1417.preheader

.lr.ph1417.preheader:                             ; preds = %719
  %740 = fdiv float %733, %726
  %741 = call float @llvm.fmuladd.f32(float %732, float %740, float -1.000000e+00)
  %742 = fdiv float 1.000000e+00, %741
  %743 = zext nneg i32 %739 to i64
  %744 = sext i32 %432 to i64
  %745 = sext i32 %727 to i64
  %invariant.gep1586 = getelementptr %struct.complex, ptr %21, i64 %744
  %invariant.gep1588 = getelementptr %struct.complex, ptr %21, i64 %745
  %invariant.gep1580 = getelementptr %struct.complex, ptr %21, i64 %744
  %invariant.gep1584 = getelementptr %struct.complex, ptr %21, i64 %745
  %746 = insertelement <2 x float> poison, float %742, i64 0
  %747 = shufflevector <2 x float> %746, <2 x float> poison, <2 x i32> zeroinitializer
  %748 = insertelement <2 x float> poison, float %740, i64 0
  %749 = shufflevector <2 x float> %748, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph1417

.lr.ph1417:                                       ; preds = %.lr.ph1417.preheader, %._crit_edge1413
  %indvars.iv1472 = phi i64 [ %743, %.lr.ph1417.preheader ], [ %indvars.iv.next1473, %._crit_edge1413 ]
  %750 = load float, ptr %13, align 4, !tbaa !12
  %gep1587 = getelementptr %struct.complex, ptr %invariant.gep1586, i64 %indvars.iv1472
  %751 = load float, ptr %15, align 8, !tbaa !9
  %gep1589 = getelementptr %struct.complex, ptr %invariant.gep1588, i64 %indvars.iv1472
  %752 = load float, ptr %42, align 4, !tbaa !13
  %753 = fneg float %752
  %754 = load <2 x float>, ptr %gep1589, align 4, !tbaa !12
  %755 = load <2 x float>, ptr %gep1587, align 4, !tbaa !12
  %756 = insertelement <2 x float> poison, float %750, i64 0
  %757 = shufflevector <2 x float> %756, <2 x float> poison, <2 x i32> zeroinitializer
  %758 = fmul <2 x float> %757, %755
  %759 = insertelement <2 x float> poison, float %752, i64 0
  %760 = insertelement <2 x float> %759, float %753, i64 1
  %761 = fmul <2 x float> %754, %760
  %762 = shufflevector <2 x float> %761, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %763 = insertelement <2 x float> poison, float %751, i64 0
  %764 = shufflevector <2 x float> %763, <2 x float> poison, <2 x i32> zeroinitializer
  %765 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %764, <2 x float> %754, <2 x float> %762)
  %766 = fsub <2 x float> %758, %765
  %767 = fmul <2 x float> %747, %766
  store <2 x float> %767, ptr %10, align 8, !tbaa !12
  store <2 x float> %767, ptr %16, align 8, !tbaa !12
  %768 = fmul <2 x float> %749, %754
  %769 = call <2 x float> @Cf(ptr noundef nonnull %15)
  %.sroa.02.0.vec.extract = extractelement <2 x float> %769, i64 0
  %.sroa.02.4.vec.extract = extractelement <2 x float> %769, i64 1
  %770 = fneg float %.sroa.02.4.vec.extract
  %771 = call ptr @_pCf(ptr noundef nonnull %11)
  %772 = getelementptr inbounds i8, ptr %771, i64 4
  store float %.sroa.02.0.vec.extract, ptr %771, align 4
  store float %770, ptr %772, align 4
  %773 = load float, ptr %11, align 8, !tbaa !9
  %774 = load float, ptr %43, align 4, !tbaa !13
  %775 = load <2 x float>, ptr %gep1587, align 4, !tbaa !12
  %776 = fneg float %774
  %777 = insertelement <2 x float> poison, float %774, i64 0
  %778 = insertelement <2 x float> %777, float %776, i64 1
  %779 = fmul <2 x float> %775, %778
  %780 = shufflevector <2 x float> %779, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %781 = insertelement <2 x float> poison, float %773, i64 0
  %782 = shufflevector <2 x float> %781, <2 x float> poison, <2 x i32> zeroinitializer
  %783 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %782, <2 x float> %775, <2 x float> %780)
  %784 = fsub <2 x float> %768, %783
  %785 = fmul <2 x float> %747, %784
  store <2 x float> %785, ptr %10, align 8, !tbaa !12
  store <2 x float> %785, ptr %18, align 8, !tbaa !12
  %786 = load i32, ptr %1, align 4, !tbaa !5
  %787 = sext i32 %786 to i64
  %.not11721409 = icmp sgt i64 %indvars.iv1472, %787
  br i1 %.not11721409, label %._crit_edge1413, label %.lr.ph1412

.lr.ph1412:                                       ; preds = %.lr.ph1417
  %788 = mul nsw i64 %indvars.iv1472, %44
  %invariant.gep1582 = getelementptr %struct.complex, ptr %21, i64 %788
  br label %789

789:                                              ; preds = %.lr.ph1412, %789
  %indvars.iv1474 = phi i64 [ %indvars.iv1472, %.lr.ph1412 ], [ %indvars.iv.next1475, %789 ]
  %gep1581 = getelementptr %struct.complex, ptr %invariant.gep1580, i64 %indvars.iv1474
  %790 = load float, ptr %gep1581, align 4, !tbaa !9
  %791 = fdiv float %790, %726
  %792 = getelementptr inbounds i8, ptr %gep1581, i64 4
  %793 = load float, ptr %792, align 4, !tbaa !13
  %794 = fdiv float %793, %726
  %795 = call <2 x float> @Cf(ptr noundef nonnull %16)
  %.sroa.01.0.vec.extract = extractelement <2 x float> %795, i64 0
  %.sroa.01.4.vec.extract = extractelement <2 x float> %795, i64 1
  %796 = fneg float %.sroa.01.4.vec.extract
  %797 = call ptr @_pCf(ptr noundef nonnull %11)
  %798 = getelementptr inbounds i8, ptr %797, i64 4
  store float %.sroa.01.0.vec.extract, ptr %797, align 4
  store float %796, ptr %798, align 4
  %799 = fneg float %794
  %gep1583 = getelementptr %struct.complex, ptr %invariant.gep1582, i64 %indvars.iv1474
  %gep1585 = getelementptr %struct.complex, ptr %invariant.gep1584, i64 %indvars.iv1474
  %800 = load float, ptr %gep1585, align 4, !tbaa !9
  %801 = fdiv float %800, %726
  %802 = getelementptr inbounds i8, ptr %gep1585, i64 4
  %803 = load float, ptr %802, align 4, !tbaa !13
  %804 = fdiv float %803, %726
  %805 = fneg float %804
  %806 = load <2 x float>, ptr %11, align 8, !tbaa !12
  %807 = insertelement <2 x float> poison, float %794, i64 0
  %808 = insertelement <2 x float> %807, float %799, i64 1
  %809 = fmul <2 x float> %806, %808
  %810 = shufflevector <2 x float> %809, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %811 = insertelement <2 x float> poison, float %791, i64 0
  %812 = shufflevector <2 x float> %811, <2 x float> poison, <2 x i32> zeroinitializer
  %813 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %812, <2 x float> %806, <2 x float> %810)
  %814 = load <2 x float>, ptr %gep1583, align 4, !tbaa !12
  %815 = fsub <2 x float> %814, %813
  %816 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %816, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %816, i64 1
  %817 = fneg float %.sroa.0.4.vec.extract
  %818 = call ptr @_pCf(ptr noundef nonnull %12)
  %819 = getelementptr inbounds i8, ptr %818, i64 4
  store float %.sroa.0.0.vec.extract, ptr %818, align 4
  store float %817, ptr %819, align 4
  %820 = load <2 x float>, ptr %12, align 8, !tbaa !12
  %821 = insertelement <2 x float> poison, float %804, i64 0
  %822 = insertelement <2 x float> %821, float %805, i64 1
  %823 = fmul <2 x float> %820, %822
  %824 = shufflevector <2 x float> %823, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %825 = insertelement <2 x float> poison, float %801, i64 0
  %826 = shufflevector <2 x float> %825, <2 x float> poison, <2 x i32> zeroinitializer
  %827 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %826, <2 x float> %820, <2 x float> %824)
  %828 = fsub <2 x float> %815, %827
  store <2 x float> %828, ptr %10, align 8, !tbaa !12
  store <2 x float> %828, ptr %gep1583, align 4, !tbaa !12
  %indvars.iv.next1475 = add nuw nsw i64 %indvars.iv1474, 1
  %.not1172.not = icmp slt i64 %indvars.iv1474, %787
  br i1 %.not1172.not, label %789, label %._crit_edge1413.loopexit, !llvm.loop !27

._crit_edge1413.loopexit:                         ; preds = %789
  %829 = load <2 x float>, ptr %18, align 8, !tbaa !12
  br label %._crit_edge1413

._crit_edge1413:                                  ; preds = %._crit_edge1413.loopexit, %.lr.ph1417
  %830 = phi <2 x float> [ %829, %._crit_edge1413.loopexit ], [ %785, %.lr.ph1417 ]
  %831 = load <2 x float>, ptr %16, align 8, !tbaa !12
  %832 = fdiv <2 x float> %831, %736
  store <2 x float> %832, ptr %gep1587, align 4, !tbaa !12
  %833 = fdiv <2 x float> %830, %736
  store <2 x float> %833, ptr %gep1589, align 4, !tbaa !12
  %834 = trunc nsw i64 %indvars.iv1472 to i32
  %835 = mul i32 %40, %834
  %836 = sext i32 %835 to i64
  %837 = getelementptr inbounds %struct.complex, ptr %21, i64 %836
  %838 = load float, ptr %837, align 4, !tbaa !9
  store float %838, ptr %8, align 4, !tbaa !12
  store float %838, ptr %10, align 8, !tbaa !9
  store float 0.000000e+00, ptr %41, align 4, !tbaa !13
  %839 = getelementptr inbounds i8, ptr %837, i64 4
  store float 0.000000e+00, ptr %839, align 4, !tbaa !13
  %indvars.iv.next1473 = add nuw nsw i64 %indvars.iv1472, 1
  %840 = load i32, ptr %7, align 4, !tbaa !5
  %841 = sext i32 %840 to i64
  %.not1171.not = icmp slt i64 %indvars.iv1472, %841
  br i1 %.not1171.not, label %.lr.ph1417, label %.loopexit, !llvm.loop !28

842:                                              ; preds = %469, %677, %.loopexit1653, %.critedge1339
  %.91142.ph = phi i32 [ %.81141128113031319, %.critedge1339 ], [ %.81141128113031319, %.loopexit1653 ], [ %.81141128113031319, %677 ], [ %.111141425, %469 ]
  %.111104.ph = phi i32 [ %.101103128312991321, %.critedge1339 ], [ %.101103128312991321, %.loopexit1653 ], [ %.101103128312991321, %677 ], [ %.610991430, %469 ]
  %.11.ph = phi i32 [ %.10128412971322, %.critedge1339 ], [ %.10128412971322, %.loopexit1653 ], [ %.10128412971322, %677 ], [ %.7, %469 ]
  %843 = zext nneg i32 %.111141425 to i64
  %844 = getelementptr inbounds i32, ptr %22, i64 %843
  store i32 %.91142.ph, ptr %844, align 4, !tbaa !5
  br label %850

.loopexit:                                        ; preds = %._crit_edge1413, %719, %714
  %845 = sub nsw i32 0, %.4111914371507
  %846 = zext nneg i32 %.111141425 to i64
  %847 = getelementptr inbounds i32, ptr %22, i64 %846
  store i32 %845, ptr %847, align 4, !tbaa !5
  %848 = sub nsw i32 0, %.8
  %849 = getelementptr inbounds i8, ptr %847, i64 4
  store i32 %848, ptr %849, align 4, !tbaa !5
  br label %850

850:                                              ; preds = %.loopexit, %842
  %.111336 = phi i32 [ %.8, %.loopexit ], [ %.11.ph, %842 ]
  %.1111041334 = phi i32 [ %.91102, %.loopexit ], [ %.111104.ph, %842 ]
  %.711521330 = phi i32 [ 2, %.loopexit ], [ 1, %842 ]
  %851 = add nuw nsw i32 %.711521330, %.111141425
  %852 = load i32, ptr %1, align 4, !tbaa !5
  %853 = icmp sgt i32 %851, %852
  br i1 %853, label %.loopexit1341, label %430

.loopexit1341:                                    ; preds = %427, %850, %45, %.preheader1340, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  ret void
}

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

; 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>) #6

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


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