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

; 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 [7 x i8], align 1
@c__1 = external hidden global i32, align 4

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

93:                                               ; preds = %6
  %94 = load ptr, ptr %7, align 8, !tbaa !5
  %95 = call i32 @lsame_(ptr noundef %94, ptr noundef @.str.1)
  %96 = icmp ne i32 %95, 0
  br i1 %96, label %99, label %97

97:                                               ; preds = %93
  %98 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 -1, ptr %98, align 4, !tbaa !9
  br label %122

99:                                               ; preds = %93, %6
  %100 = load ptr, ptr %8, align 8, !tbaa !5
  %101 = load i32, ptr %100, align 4, !tbaa !9
  %102 = icmp slt i32 %101, 0
  br i1 %102, label %103, label %105

103:                                              ; preds = %99
  %104 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 -2, ptr %104, align 4, !tbaa !9
  br label %121

105:                                              ; preds = %99
  %106 = load ptr, ptr %10, align 8, !tbaa !5
  %107 = load i32, ptr %106, align 4, !tbaa !9
  %108 = load ptr, ptr %8, align 8, !tbaa !5
  %109 = load i32, ptr %108, align 4, !tbaa !9
  %110 = icmp sge i32 1, %109
  br i1 %110, label %111, label %112

111:                                              ; preds = %105
  br label %115

112:                                              ; preds = %105
  %113 = load ptr, ptr %8, align 8, !tbaa !5
  %114 = load i32, ptr %113, align 4, !tbaa !9
  br label %115

115:                                              ; preds = %112, %111
  %116 = phi i32 [ 1, %111 ], [ %114, %112 ]
  %117 = icmp slt i32 %107, %116
  br i1 %117, label %118, label %120

118:                                              ; preds = %115
  %119 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 -4, ptr %119, align 4, !tbaa !9
  br label %120

120:                                              ; preds = %118, %115
  br label %121

121:                                              ; preds = %120, %103
  br label %122

122:                                              ; preds = %121, %97
  %123 = load ptr, ptr %12, align 8, !tbaa !5
  %124 = load i32, ptr %123, align 4, !tbaa !9
  %125 = icmp ne i32 %124, 0
  br i1 %125, label %126, label %131

126:                                              ; preds = %122
  %127 = load ptr, ptr %12, align 8, !tbaa !5
  %128 = load i32, ptr %127, align 4, !tbaa !9
  %129 = sub nsw i32 0, %128
  store i32 %129, ptr %15, align 4, !tbaa !9
  %130 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef %15, i32 noundef 6)
  store i32 1, ptr %55, align 4
  br label %2808

131:                                              ; preds = %122
  %132 = call double @sqrt(double noundef 1.700000e+01) #7
  %133 = fadd double %132, 1.000000e+00
  %134 = fdiv double %133, 8.000000e+00
  %135 = fptrunc double %134 to float
  store float %135, ptr %38, align 4, !tbaa !11
  %136 = load i32, ptr %40, align 4, !tbaa !9
  %137 = icmp ne i32 %136, 0
  br i1 %137, label %138, label %1444

138:                                              ; preds = %131
  %139 = load ptr, ptr %8, align 8, !tbaa !5
  %140 = load i32, ptr %139, align 4, !tbaa !9
  store i32 %140, ptr %36, align 4, !tbaa !9
  br label %141

141:                                              ; preds = %1440, %138
  %142 = load i32, ptr %36, align 4, !tbaa !9
  %143 = icmp slt i32 %142, 1
  br i1 %143, label %144, label %145

144:                                              ; preds = %141
  br label %2807

145:                                              ; preds = %141
  store i32 1, ptr %39, align 4, !tbaa !9
  %146 = load i32, ptr %36, align 4, !tbaa !9
  %147 = load i32, ptr %36, align 4, !tbaa !9
  %148 = load i32, ptr %13, align 4, !tbaa !9
  %149 = mul nsw i32 %147, %148
  %150 = add nsw i32 %146, %149
  store i32 %150, ptr %15, align 4, !tbaa !9
  %151 = load ptr, ptr %9, align 8, !tbaa !5
  %152 = load i32, ptr %15, align 4, !tbaa !9
  %153 = sext i32 %152 to i64
  %154 = getelementptr inbounds %struct.complex, ptr %151, i64 %153
  %155 = getelementptr inbounds %struct.complex, ptr %154, i32 0, i32 0
  %156 = load float, ptr %155, align 4, !tbaa !13
  store float %156, ptr %21, align 4, !tbaa !11
  %157 = load float, ptr %21, align 4, !tbaa !11
  %158 = fcmp oge float %157, 0.000000e+00
  br i1 %158, label %159, label %161

159:                                              ; preds = %145
  %160 = load float, ptr %21, align 4, !tbaa !11
  br label %164

161:                                              ; preds = %145
  %162 = load float, ptr %21, align 4, !tbaa !11
  %163 = fneg float %162
  br label %164

164:                                              ; preds = %161, %159
  %165 = phi float [ %160, %159 ], [ %163, %161 ]
  store float %165, ptr %48, align 4, !tbaa !11
  %166 = load i32, ptr %36, align 4, !tbaa !9
  %167 = icmp sgt i32 %166, 1
  br i1 %167, label %168, label %222

168:                                              ; preds = %164
  %169 = load i32, ptr %36, align 4, !tbaa !9
  %170 = sub nsw i32 %169, 1
  store i32 %170, ptr %15, align 4, !tbaa !9
  %171 = load ptr, ptr %9, align 8, !tbaa !5
  %172 = load i32, ptr %36, align 4, !tbaa !9
  %173 = load i32, ptr %13, align 4, !tbaa !9
  %174 = mul nsw i32 %172, %173
  %175 = add nsw i32 %174, 1
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds %struct.complex, ptr %171, i64 %176
  %178 = call i32 @icamax_(ptr noundef %15, ptr noundef %177, ptr noundef @c__1)
  store i32 %178, ptr %31, align 4, !tbaa !9
  %179 = load i32, ptr %31, align 4, !tbaa !9
  %180 = load i32, ptr %36, align 4, !tbaa !9
  %181 = load i32, ptr %13, align 4, !tbaa !9
  %182 = mul nsw i32 %180, %181
  %183 = add nsw i32 %179, %182
  store i32 %183, ptr %15, align 4, !tbaa !9
  %184 = load ptr, ptr %9, align 8, !tbaa !5
  %185 = load i32, ptr %15, align 4, !tbaa !9
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds %struct.complex, ptr %184, i64 %186
  %188 = getelementptr inbounds %struct.complex, ptr %187, i32 0, i32 0
  %189 = load float, ptr %188, align 4, !tbaa !13
  store float %189, ptr %21, align 4, !tbaa !11
  %190 = load float, ptr %21, align 4, !tbaa !11
  %191 = fcmp oge float %190, 0.000000e+00
  br i1 %191, label %192, label %194

192:                                              ; preds = %168
  %193 = load float, ptr %21, align 4, !tbaa !11
  br label %197

194:                                              ; preds = %168
  %195 = load float, ptr %21, align 4, !tbaa !11
  %196 = fneg float %195
  br label %197

197:                                              ; preds = %194, %192
  %198 = phi float [ %193, %192 ], [ %196, %194 ]
  %199 = load ptr, ptr %9, align 8, !tbaa !5
  %200 = load i32, ptr %31, align 4, !tbaa !9
  %201 = load i32, ptr %36, align 4, !tbaa !9
  %202 = load i32, ptr %13, align 4, !tbaa !9
  %203 = mul nsw i32 %201, %202
  %204 = add nsw i32 %200, %203
  %205 = sext i32 %204 to i64
  %206 = getelementptr inbounds %struct.complex, ptr %199, i64 %205
  %207 = call <2 x float> @Cf(ptr noundef %206)
  store <2 x float> %207, ptr %56, align 4
  %208 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 0
  %209 = load float, ptr %208, align 4
  %210 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 1
  %211 = load float, ptr %210, align 4
  store float %211, ptr %22, align 4, !tbaa !11
  %212 = load float, ptr %22, align 4, !tbaa !11
  %213 = fcmp oge float %212, 0.000000e+00
  br i1 %213, label %214, label %216

214:                                              ; preds = %197
  %215 = load float, ptr %22, align 4, !tbaa !11
  br label %219

216:                                              ; preds = %197
  %217 = load float, ptr %22, align 4, !tbaa !11
  %218 = fneg float %217
  br label %219

219:                                              ; preds = %216, %214
  %220 = phi float [ %215, %214 ], [ %218, %216 ]
  %221 = fadd float %198, %220
  store float %221, ptr %51, align 4, !tbaa !11
  br label %223

222:                                              ; preds = %164
  store float 0.000000e+00, ptr %51, align 4, !tbaa !11
  br label %223

223:                                              ; preds = %222, %219
  %224 = load float, ptr %48, align 4, !tbaa !11
  %225 = load float, ptr %51, align 4, !tbaa !11
  %226 = fcmp oge float %224, %225
  br i1 %226, label %227, label %229

227:                                              ; preds = %223
  %228 = load float, ptr %48, align 4, !tbaa !11
  br label %231

229:                                              ; preds = %223
  %230 = load float, ptr %51, align 4, !tbaa !11
  br label %231

231:                                              ; preds = %229, %227
  %232 = phi float [ %228, %227 ], [ %230, %229 ]
  %233 = fcmp oeq float %232, 0.000000e+00
  br i1 %233, label %237, label %234

234:                                              ; preds = %231
  %235 = call i32 @sisnan_(ptr noundef %48)
  %236 = icmp ne i32 %235, 0
  br i1 %236, label %237, label %273

237:                                              ; preds = %234, %231
  %238 = load ptr, ptr %12, align 8, !tbaa !5
  %239 = load i32, ptr %238, align 4, !tbaa !9
  %240 = icmp eq i32 %239, 0
  br i1 %240, label %241, label %244

241:                                              ; preds = %237
  %242 = load i32, ptr %36, align 4, !tbaa !9
  %243 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %242, ptr %243, align 4, !tbaa !9
  br label %244

244:                                              ; preds = %241, %237
  %245 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %245, ptr %47, align 4, !tbaa !9
  %246 = load i32, ptr %36, align 4, !tbaa !9
  %247 = load i32, ptr %36, align 4, !tbaa !9
  %248 = load i32, ptr %13, align 4, !tbaa !9
  %249 = mul nsw i32 %247, %248
  %250 = add nsw i32 %246, %249
  store i32 %250, ptr %15, align 4, !tbaa !9
  %251 = load i32, ptr %36, align 4, !tbaa !9
  %252 = load i32, ptr %36, align 4, !tbaa !9
  %253 = load i32, ptr %13, align 4, !tbaa !9
  %254 = mul nsw i32 %252, %253
  %255 = add nsw i32 %251, %254
  store i32 %255, ptr %16, align 4, !tbaa !9
  %256 = load ptr, ptr %9, align 8, !tbaa !5
  %257 = load i32, ptr %16, align 4, !tbaa !9
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds %struct.complex, ptr %256, i64 %258
  %260 = getelementptr inbounds %struct.complex, ptr %259, i32 0, i32 0
  %261 = load float, ptr %260, align 4, !tbaa !13
  store float %261, ptr %21, align 4, !tbaa !11
  %262 = load float, ptr %21, align 4, !tbaa !11
  %263 = load ptr, ptr %9, align 8, !tbaa !5
  %264 = load i32, ptr %15, align 4, !tbaa !9
  %265 = sext i32 %264 to i64
  %266 = getelementptr inbounds %struct.complex, ptr %263, i64 %265
  %267 = getelementptr inbounds %struct.complex, ptr %266, i32 0, i32 0
  store float %262, ptr %267, align 4, !tbaa !13
  %268 = load ptr, ptr %9, align 8, !tbaa !5
  %269 = load i32, ptr %15, align 4, !tbaa !9
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds %struct.complex, ptr %268, i64 %270
  %272 = getelementptr inbounds %struct.complex, ptr %271, i32 0, i32 1
  store float 0.000000e+00, ptr %272, align 4, !tbaa !15
  br label %1417

273:                                              ; preds = %234
  %274 = load float, ptr %48, align 4, !tbaa !11
  %275 = load float, ptr %38, align 4, !tbaa !11
  %276 = load float, ptr %51, align 4, !tbaa !11
  %277 = fmul float %275, %276
  %278 = fcmp oge float %274, %277
  br i1 %278, label %279, label %281

279:                                              ; preds = %273
  %280 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %280, ptr %47, align 4, !tbaa !9
  br label %450

281:                                              ; preds = %273
  %282 = load i32, ptr %36, align 4, !tbaa !9
  %283 = load i32, ptr %31, align 4, !tbaa !9
  %284 = sub nsw i32 %282, %283
  store i32 %284, ptr %15, align 4, !tbaa !9
  %285 = load i32, ptr %31, align 4, !tbaa !9
  %286 = load ptr, ptr %9, align 8, !tbaa !5
  %287 = load i32, ptr %31, align 4, !tbaa !9
  %288 = load i32, ptr %31, align 4, !tbaa !9
  %289 = add nsw i32 %288, 1
  %290 = load i32, ptr %13, align 4, !tbaa !9
  %291 = mul nsw i32 %289, %290
  %292 = add nsw i32 %287, %291
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds %struct.complex, ptr %286, i64 %293
  %295 = load ptr, ptr %10, align 8, !tbaa !5
  %296 = call i32 @icamax_(ptr noundef %15, ptr noundef %294, ptr noundef %295)
  %297 = add nsw i32 %285, %296
  store i32 %297, ptr %32, align 4, !tbaa !9
  %298 = load i32, ptr %31, align 4, !tbaa !9
  %299 = load i32, ptr %32, align 4, !tbaa !9
  %300 = load i32, ptr %13, align 4, !tbaa !9
  %301 = mul nsw i32 %299, %300
  %302 = add nsw i32 %298, %301
  store i32 %302, ptr %15, align 4, !tbaa !9
  %303 = load ptr, ptr %9, align 8, !tbaa !5
  %304 = load i32, ptr %15, align 4, !tbaa !9
  %305 = sext i32 %304 to i64
  %306 = getelementptr inbounds %struct.complex, ptr %303, i64 %305
  %307 = getelementptr inbounds %struct.complex, ptr %306, i32 0, i32 0
  %308 = load float, ptr %307, align 4, !tbaa !13
  store float %308, ptr %21, align 4, !tbaa !11
  %309 = load float, ptr %21, align 4, !tbaa !11
  %310 = fcmp oge float %309, 0.000000e+00
  br i1 %310, label %311, label %313

311:                                              ; preds = %281
  %312 = load float, ptr %21, align 4, !tbaa !11
  br label %316

313:                                              ; preds = %281
  %314 = load float, ptr %21, align 4, !tbaa !11
  %315 = fneg float %314
  br label %316

316:                                              ; preds = %313, %311
  %317 = phi float [ %312, %311 ], [ %315, %313 ]
  %318 = load ptr, ptr %9, align 8, !tbaa !5
  %319 = load i32, ptr %31, align 4, !tbaa !9
  %320 = load i32, ptr %32, align 4, !tbaa !9
  %321 = load i32, ptr %13, align 4, !tbaa !9
  %322 = mul nsw i32 %320, %321
  %323 = add nsw i32 %319, %322
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds %struct.complex, ptr %318, i64 %324
  %326 = call <2 x float> @Cf(ptr noundef %325)
  store <2 x float> %326, ptr %57, align 4
  %327 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 0
  %328 = load float, ptr %327, align 4
  %329 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 1
  %330 = load float, ptr %329, align 4
  store float %330, ptr %22, align 4, !tbaa !11
  %331 = load float, ptr %22, align 4, !tbaa !11
  %332 = fcmp oge float %331, 0.000000e+00
  br i1 %332, label %333, label %335

333:                                              ; preds = %316
  %334 = load float, ptr %22, align 4, !tbaa !11
  br label %338

335:                                              ; preds = %316
  %336 = load float, ptr %22, align 4, !tbaa !11
  %337 = fneg float %336
  br label %338

338:                                              ; preds = %335, %333
  %339 = phi float [ %334, %333 ], [ %337, %335 ]
  %340 = fadd float %317, %339
  store float %340, ptr %52, align 4, !tbaa !11
  %341 = load i32, ptr %31, align 4, !tbaa !9
  %342 = icmp sgt i32 %341, 1
  br i1 %342, label %343, label %407

343:                                              ; preds = %338
  %344 = load i32, ptr %31, align 4, !tbaa !9
  %345 = sub nsw i32 %344, 1
  store i32 %345, ptr %15, align 4, !tbaa !9
  %346 = load ptr, ptr %9, align 8, !tbaa !5
  %347 = load i32, ptr %31, align 4, !tbaa !9
  %348 = load i32, ptr %13, align 4, !tbaa !9
  %349 = mul nsw i32 %347, %348
  %350 = add nsw i32 %349, 1
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds %struct.complex, ptr %346, i64 %351
  %353 = call i32 @icamax_(ptr noundef %15, ptr noundef %352, ptr noundef @c__1)
  store i32 %353, ptr %32, align 4, !tbaa !9
  %354 = load i32, ptr %32, align 4, !tbaa !9
  %355 = load i32, ptr %31, align 4, !tbaa !9
  %356 = load i32, ptr %13, align 4, !tbaa !9
  %357 = mul nsw i32 %355, %356
  %358 = add nsw i32 %354, %357
  store i32 %358, ptr %15, align 4, !tbaa !9
  %359 = load float, ptr %52, align 4, !tbaa !11
  store float %359, ptr %23, align 4, !tbaa !11
  %360 = load ptr, ptr %9, align 8, !tbaa !5
  %361 = load i32, ptr %15, align 4, !tbaa !9
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds %struct.complex, ptr %360, i64 %362
  %364 = getelementptr inbounds %struct.complex, ptr %363, i32 0, i32 0
  %365 = load float, ptr %364, align 4, !tbaa !13
  store float %365, ptr %21, align 4, !tbaa !11
  %366 = load float, ptr %21, align 4, !tbaa !11
  %367 = fcmp oge float %366, 0.000000e+00
  br i1 %367, label %368, label %370

368:                                              ; preds = %343
  %369 = load float, ptr %21, align 4, !tbaa !11
  br label %373

370:                                              ; preds = %343
  %371 = load float, ptr %21, align 4, !tbaa !11
  %372 = fneg float %371
  br label %373

373:                                              ; preds = %370, %368
  %374 = phi float [ %369, %368 ], [ %372, %370 ]
  %375 = load ptr, ptr %9, align 8, !tbaa !5
  %376 = load i32, ptr %32, align 4, !tbaa !9
  %377 = load i32, ptr %31, align 4, !tbaa !9
  %378 = load i32, ptr %13, align 4, !tbaa !9
  %379 = mul nsw i32 %377, %378
  %380 = add nsw i32 %376, %379
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds %struct.complex, ptr %375, i64 %381
  %383 = call <2 x float> @Cf(ptr noundef %382)
  store <2 x float> %383, ptr %58, align 4
  %384 = getelementptr inbounds { float, float }, ptr %58, i32 0, i32 0
  %385 = load float, ptr %384, align 4
  %386 = getelementptr inbounds { float, float }, ptr %58, i32 0, i32 1
  %387 = load float, ptr %386, align 4
  store float %387, ptr %22, align 4, !tbaa !11
  %388 = load float, ptr %22, align 4, !tbaa !11
  %389 = fcmp oge float %388, 0.000000e+00
  br i1 %389, label %390, label %392

390:                                              ; preds = %373
  %391 = load float, ptr %22, align 4, !tbaa !11
  br label %395

392:                                              ; preds = %373
  %393 = load float, ptr %22, align 4, !tbaa !11
  %394 = fneg float %393
  br label %395

395:                                              ; preds = %392, %390
  %396 = phi float [ %391, %390 ], [ %394, %392 ]
  %397 = fadd float %374, %396
  store float %397, ptr %24, align 4, !tbaa !11
  %398 = load float, ptr %23, align 4, !tbaa !11
  %399 = load float, ptr %24, align 4, !tbaa !11
  %400 = fcmp oge float %398, %399
  br i1 %400, label %401, label %403

401:                                              ; preds = %395
  %402 = load float, ptr %23, align 4, !tbaa !11
  br label %405

403:                                              ; preds = %395
  %404 = load float, ptr %24, align 4, !tbaa !11
  br label %405

405:                                              ; preds = %403, %401
  %406 = phi float [ %402, %401 ], [ %404, %403 ]
  store float %406, ptr %52, align 4, !tbaa !11
  br label %407

407:                                              ; preds = %405, %338
  %408 = load float, ptr %48, align 4, !tbaa !11
  %409 = load float, ptr %38, align 4, !tbaa !11
  %410 = load float, ptr %51, align 4, !tbaa !11
  %411 = fmul float %409, %410
  %412 = load float, ptr %51, align 4, !tbaa !11
  %413 = load float, ptr %52, align 4, !tbaa !11
  %414 = fdiv float %412, %413
  %415 = fmul float %411, %414
  %416 = fcmp oge float %408, %415
  br i1 %416, label %417, label %419

417:                                              ; preds = %407
  %418 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %418, ptr %47, align 4, !tbaa !9
  br label %449

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

433:                                              ; preds = %419
  %434 = load float, ptr %21, align 4, !tbaa !11
  br label %438

435:                                              ; preds = %419
  %436 = load float, ptr %21, align 4, !tbaa !11
  %437 = fneg float %436
  br label %438

438:                                              ; preds = %435, %433
  %439 = phi float [ %434, %433 ], [ %437, %435 ]
  %440 = load float, ptr %38, align 4, !tbaa !11
  %441 = load float, ptr %52, align 4, !tbaa !11
  %442 = fmul float %440, %441
  %443 = fcmp oge float %439, %442
  br i1 %443, label %444, label %446

444:                                              ; preds = %438
  %445 = load i32, ptr %31, align 4, !tbaa !9
  store i32 %445, ptr %47, align 4, !tbaa !9
  br label %448

446:                                              ; preds = %438
  %447 = load i32, ptr %31, align 4, !tbaa !9
  store i32 %447, ptr %47, align 4, !tbaa !9
  store i32 2, ptr %39, align 4, !tbaa !9
  br label %448

448:                                              ; preds = %446, %444
  br label %449

449:                                              ; preds = %448, %417
  br label %450

450:                                              ; preds = %449, %279
  %451 = load i32, ptr %36, align 4, !tbaa !9
  %452 = load i32, ptr %39, align 4, !tbaa !9
  %453 = sub nsw i32 %451, %452
  %454 = add nsw i32 %453, 1
  store i32 %454, ptr %46, align 4, !tbaa !9
  %455 = load i32, ptr %47, align 4, !tbaa !9
  %456 = load i32, ptr %46, align 4, !tbaa !9
  %457 = icmp ne i32 %455, %456
  br i1 %457, label %458, label %759

458:                                              ; preds = %450
  %459 = load i32, ptr %47, align 4, !tbaa !9
  %460 = sub nsw i32 %459, 1
  store i32 %460, ptr %15, align 4, !tbaa !9
  %461 = load ptr, ptr %9, align 8, !tbaa !5
  %462 = load i32, ptr %46, align 4, !tbaa !9
  %463 = load i32, ptr %13, align 4, !tbaa !9
  %464 = mul nsw i32 %462, %463
  %465 = add nsw i32 %464, 1
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds %struct.complex, ptr %461, i64 %466
  %468 = load ptr, ptr %9, align 8, !tbaa !5
  %469 = load i32, ptr %47, align 4, !tbaa !9
  %470 = load i32, ptr %13, align 4, !tbaa !9
  %471 = mul nsw i32 %469, %470
  %472 = add nsw i32 %471, 1
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds %struct.complex, ptr %468, i64 %473
  call void @cswap_(ptr noundef %15, ptr noundef %467, ptr noundef @c__1, ptr noundef %474, ptr noundef @c__1)
  %475 = load i32, ptr %46, align 4, !tbaa !9
  %476 = sub nsw i32 %475, 1
  store i32 %476, ptr %15, align 4, !tbaa !9
  %477 = load i32, ptr %47, align 4, !tbaa !9
  %478 = add nsw i32 %477, 1
  store i32 %478, ptr %35, align 4, !tbaa !9
  br label %479

479:                                              ; preds = %562, %458
  %480 = load i32, ptr %35, align 4, !tbaa !9
  %481 = load i32, ptr %15, align 4, !tbaa !9
  %482 = icmp sle i32 %480, %481
  br i1 %482, label %483, label %565

483:                                              ; preds = %479
  %484 = load ptr, ptr %9, align 8, !tbaa !5
  %485 = load i32, ptr %35, align 4, !tbaa !9
  %486 = load i32, ptr %46, align 4, !tbaa !9
  %487 = load i32, ptr %13, align 4, !tbaa !9
  %488 = mul nsw i32 %486, %487
  %489 = add nsw i32 %485, %488
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds %struct.complex, ptr %484, i64 %490
  %492 = call <2 x float> @Cf(ptr noundef %491)
  store <2 x float> %492, ptr %59, align 4
  %493 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 0
  %494 = load float, ptr %493, align 4
  %495 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 1
  %496 = load float, ptr %495, align 4
  %497 = fneg float %496
  %498 = call ptr @_pCf(ptr noundef %25)
  %499 = getelementptr inbounds { float, float }, ptr %498, i32 0, i32 0
  %500 = getelementptr inbounds { float, float }, ptr %498, i32 0, i32 1
  store float %494, ptr %499, align 4
  store float %497, ptr %500, align 4
  %501 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %502 = load float, ptr %501, align 4, !tbaa !13
  %503 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  store float %502, ptr %503, align 4, !tbaa !13
  %504 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %505 = load float, ptr %504, align 4, !tbaa !15
  %506 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  store float %505, ptr %506, align 4, !tbaa !15
  %507 = load i32, ptr %35, align 4, !tbaa !9
  %508 = load i32, ptr %46, align 4, !tbaa !9
  %509 = load i32, ptr %13, align 4, !tbaa !9
  %510 = mul nsw i32 %508, %509
  %511 = add nsw i32 %507, %510
  store i32 %511, ptr %16, align 4, !tbaa !9
  %512 = load ptr, ptr %9, align 8, !tbaa !5
  %513 = load i32, ptr %47, align 4, !tbaa !9
  %514 = load i32, ptr %35, align 4, !tbaa !9
  %515 = load i32, ptr %13, align 4, !tbaa !9
  %516 = mul nsw i32 %514, %515
  %517 = add nsw i32 %513, %516
  %518 = sext i32 %517 to i64
  %519 = getelementptr inbounds %struct.complex, ptr %512, i64 %518
  %520 = call <2 x float> @Cf(ptr noundef %519)
  store <2 x float> %520, ptr %60, align 4
  %521 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 0
  %522 = load float, ptr %521, align 4
  %523 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 1
  %524 = load float, ptr %523, align 4
  %525 = fneg float %524
  %526 = call ptr @_pCf(ptr noundef %25)
  %527 = getelementptr inbounds { float, float }, ptr %526, i32 0, i32 0
  %528 = getelementptr inbounds { float, float }, ptr %526, i32 0, i32 1
  store float %522, ptr %527, align 4
  store float %525, ptr %528, align 4
  %529 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %530 = load float, ptr %529, align 4, !tbaa !13
  %531 = load ptr, ptr %9, align 8, !tbaa !5
  %532 = load i32, ptr %16, align 4, !tbaa !9
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds %struct.complex, ptr %531, i64 %533
  %535 = getelementptr inbounds %struct.complex, ptr %534, i32 0, i32 0
  store float %530, ptr %535, align 4, !tbaa !13
  %536 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %537 = load float, ptr %536, align 4, !tbaa !15
  %538 = load ptr, ptr %9, align 8, !tbaa !5
  %539 = load i32, ptr %16, align 4, !tbaa !9
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds %struct.complex, ptr %538, i64 %540
  %542 = getelementptr inbounds %struct.complex, ptr %541, i32 0, i32 1
  store float %537, ptr %542, align 4, !tbaa !15
  %543 = load i32, ptr %47, align 4, !tbaa !9
  %544 = load i32, ptr %35, align 4, !tbaa !9
  %545 = load i32, ptr %13, align 4, !tbaa !9
  %546 = mul nsw i32 %544, %545
  %547 = add nsw i32 %543, %546
  store i32 %547, ptr %16, align 4, !tbaa !9
  %548 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  %549 = load float, ptr %548, align 4, !tbaa !13
  %550 = load ptr, ptr %9, align 8, !tbaa !5
  %551 = load i32, ptr %16, align 4, !tbaa !9
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds %struct.complex, ptr %550, i64 %552
  %554 = getelementptr inbounds %struct.complex, ptr %553, i32 0, i32 0
  store float %549, ptr %554, align 4, !tbaa !13
  %555 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  %556 = load float, ptr %555, align 4, !tbaa !15
  %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 1
  store float %556, ptr %561, align 4, !tbaa !15
  br label %562

562:                                              ; preds = %483
  %563 = load i32, ptr %35, align 4, !tbaa !9
  %564 = add nsw i32 %563, 1
  store i32 %564, ptr %35, align 4, !tbaa !9
  br label %479, !llvm.loop !16

565:                                              ; preds = %479
  %566 = load i32, ptr %47, align 4, !tbaa !9
  %567 = load i32, ptr %46, align 4, !tbaa !9
  %568 = load i32, ptr %13, align 4, !tbaa !9
  %569 = mul nsw i32 %567, %568
  %570 = add nsw i32 %566, %569
  store i32 %570, ptr %15, align 4, !tbaa !9
  %571 = load ptr, ptr %9, align 8, !tbaa !5
  %572 = load i32, ptr %47, align 4, !tbaa !9
  %573 = load i32, ptr %46, align 4, !tbaa !9
  %574 = load i32, ptr %13, align 4, !tbaa !9
  %575 = mul nsw i32 %573, %574
  %576 = add nsw i32 %572, %575
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds %struct.complex, ptr %571, i64 %577
  %579 = call <2 x float> @Cf(ptr noundef %578)
  store <2 x float> %579, ptr %61, align 4
  %580 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 0
  %581 = load float, ptr %580, align 4
  %582 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 1
  %583 = load float, ptr %582, align 4
  %584 = fneg float %583
  %585 = call ptr @_pCf(ptr noundef %25)
  %586 = getelementptr inbounds { float, float }, ptr %585, i32 0, i32 0
  %587 = getelementptr inbounds { float, float }, ptr %585, i32 0, i32 1
  store float %581, ptr %586, align 4
  store float %584, ptr %587, align 4
  %588 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %589 = load float, ptr %588, align 4, !tbaa !13
  %590 = load ptr, ptr %9, align 8, !tbaa !5
  %591 = load i32, ptr %15, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds %struct.complex, ptr %590, i64 %592
  %594 = getelementptr inbounds %struct.complex, ptr %593, i32 0, i32 0
  store float %589, ptr %594, align 4, !tbaa !13
  %595 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %596 = load float, ptr %595, align 4, !tbaa !15
  %597 = load ptr, ptr %9, align 8, !tbaa !5
  %598 = load i32, ptr %15, align 4, !tbaa !9
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds %struct.complex, ptr %597, i64 %599
  %601 = getelementptr inbounds %struct.complex, ptr %600, i32 0, i32 1
  store float %596, ptr %601, align 4, !tbaa !15
  %602 = load i32, ptr %46, align 4, !tbaa !9
  %603 = load i32, ptr %46, align 4, !tbaa !9
  %604 = load i32, ptr %13, align 4, !tbaa !9
  %605 = mul nsw i32 %603, %604
  %606 = add nsw i32 %602, %605
  store i32 %606, ptr %15, align 4, !tbaa !9
  %607 = load ptr, ptr %9, align 8, !tbaa !5
  %608 = load i32, ptr %15, align 4, !tbaa !9
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds %struct.complex, ptr %607, i64 %609
  %611 = getelementptr inbounds %struct.complex, ptr %610, i32 0, i32 0
  %612 = load float, ptr %611, align 4, !tbaa !13
  store float %612, ptr %41, align 4, !tbaa !11
  %613 = load i32, ptr %46, align 4, !tbaa !9
  %614 = load i32, ptr %46, align 4, !tbaa !9
  %615 = load i32, ptr %13, align 4, !tbaa !9
  %616 = mul nsw i32 %614, %615
  %617 = add nsw i32 %613, %616
  store i32 %617, ptr %15, align 4, !tbaa !9
  %618 = load i32, ptr %47, align 4, !tbaa !9
  %619 = load i32, ptr %47, align 4, !tbaa !9
  %620 = load i32, ptr %13, align 4, !tbaa !9
  %621 = mul nsw i32 %619, %620
  %622 = add nsw i32 %618, %621
  store i32 %622, ptr %16, align 4, !tbaa !9
  %623 = load ptr, ptr %9, align 8, !tbaa !5
  %624 = load i32, ptr %16, 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 0
  %628 = load float, ptr %627, align 4, !tbaa !13
  store float %628, ptr %21, align 4, !tbaa !11
  %629 = load float, ptr %21, align 4, !tbaa !11
  %630 = load ptr, ptr %9, align 8, !tbaa !5
  %631 = load i32, ptr %15, align 4, !tbaa !9
  %632 = sext i32 %631 to i64
  %633 = getelementptr inbounds %struct.complex, ptr %630, i64 %632
  %634 = getelementptr inbounds %struct.complex, ptr %633, i32 0, i32 0
  store float %629, ptr %634, align 4, !tbaa !13
  %635 = load ptr, ptr %9, align 8, !tbaa !5
  %636 = load i32, ptr %15, align 4, !tbaa !9
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds %struct.complex, ptr %635, i64 %637
  %639 = getelementptr inbounds %struct.complex, ptr %638, i32 0, i32 1
  store float 0.000000e+00, ptr %639, align 4, !tbaa !15
  %640 = load i32, ptr %47, align 4, !tbaa !9
  %641 = load i32, ptr %47, align 4, !tbaa !9
  %642 = load i32, ptr %13, align 4, !tbaa !9
  %643 = mul nsw i32 %641, %642
  %644 = add nsw i32 %640, %643
  store i32 %644, ptr %15, align 4, !tbaa !9
  %645 = load float, ptr %41, align 4, !tbaa !11
  %646 = load ptr, ptr %9, align 8, !tbaa !5
  %647 = load i32, ptr %15, align 4, !tbaa !9
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds %struct.complex, ptr %646, i64 %648
  %650 = getelementptr inbounds %struct.complex, ptr %649, i32 0, i32 0
  store float %645, ptr %650, align 4, !tbaa !13
  %651 = load ptr, ptr %9, align 8, !tbaa !5
  %652 = load i32, ptr %15, align 4, !tbaa !9
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds %struct.complex, ptr %651, i64 %653
  %655 = getelementptr inbounds %struct.complex, ptr %654, i32 0, i32 1
  store float 0.000000e+00, ptr %655, align 4, !tbaa !15
  %656 = load i32, ptr %39, align 4, !tbaa !9
  %657 = icmp eq i32 %656, 2
  br i1 %657, label %658, label %758

658:                                              ; preds = %565
  %659 = load i32, ptr %36, align 4, !tbaa !9
  %660 = load i32, ptr %36, align 4, !tbaa !9
  %661 = load i32, ptr %13, align 4, !tbaa !9
  %662 = mul nsw i32 %660, %661
  %663 = add nsw i32 %659, %662
  store i32 %663, ptr %15, align 4, !tbaa !9
  %664 = load i32, ptr %36, align 4, !tbaa !9
  %665 = load i32, ptr %36, align 4, !tbaa !9
  %666 = load i32, ptr %13, align 4, !tbaa !9
  %667 = mul nsw i32 %665, %666
  %668 = add nsw i32 %664, %667
  store i32 %668, ptr %16, align 4, !tbaa !9
  %669 = load ptr, ptr %9, align 8, !tbaa !5
  %670 = load i32, ptr %16, align 4, !tbaa !9
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds %struct.complex, ptr %669, i64 %671
  %673 = getelementptr inbounds %struct.complex, ptr %672, i32 0, i32 0
  %674 = load float, ptr %673, align 4, !tbaa !13
  store float %674, ptr %21, align 4, !tbaa !11
  %675 = load float, ptr %21, align 4, !tbaa !11
  %676 = load ptr, ptr %9, align 8, !tbaa !5
  %677 = load i32, ptr %15, align 4, !tbaa !9
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds %struct.complex, ptr %676, i64 %678
  %680 = getelementptr inbounds %struct.complex, ptr %679, i32 0, i32 0
  store float %675, ptr %680, align 4, !tbaa !13
  %681 = load ptr, ptr %9, align 8, !tbaa !5
  %682 = load i32, ptr %15, align 4, !tbaa !9
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds %struct.complex, ptr %681, i64 %683
  %685 = getelementptr inbounds %struct.complex, ptr %684, i32 0, i32 1
  store float 0.000000e+00, ptr %685, align 4, !tbaa !15
  %686 = load i32, ptr %36, align 4, !tbaa !9
  %687 = sub nsw i32 %686, 1
  %688 = load i32, ptr %36, align 4, !tbaa !9
  %689 = load i32, ptr %13, align 4, !tbaa !9
  %690 = mul nsw i32 %688, %689
  %691 = add nsw i32 %687, %690
  store i32 %691, ptr %15, align 4, !tbaa !9
  %692 = load ptr, ptr %9, align 8, !tbaa !5
  %693 = load i32, ptr %15, align 4, !tbaa !9
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds %struct.complex, ptr %692, i64 %694
  %696 = getelementptr inbounds %struct.complex, ptr %695, i32 0, i32 0
  %697 = load float, ptr %696, align 4, !tbaa !13
  %698 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  store float %697, ptr %698, align 4, !tbaa !13
  %699 = load ptr, ptr %9, align 8, !tbaa !5
  %700 = load i32, ptr %15, align 4, !tbaa !9
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds %struct.complex, ptr %699, i64 %701
  %703 = getelementptr inbounds %struct.complex, ptr %702, i32 0, i32 1
  %704 = load float, ptr %703, align 4, !tbaa !15
  %705 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  store float %704, ptr %705, align 4, !tbaa !15
  %706 = load i32, ptr %36, align 4, !tbaa !9
  %707 = sub nsw i32 %706, 1
  %708 = load i32, ptr %36, align 4, !tbaa !9
  %709 = load i32, ptr %13, align 4, !tbaa !9
  %710 = mul nsw i32 %708, %709
  %711 = add nsw i32 %707, %710
  store i32 %711, ptr %15, align 4, !tbaa !9
  %712 = load i32, ptr %47, align 4, !tbaa !9
  %713 = load i32, ptr %36, align 4, !tbaa !9
  %714 = load i32, ptr %13, align 4, !tbaa !9
  %715 = mul nsw i32 %713, %714
  %716 = add nsw i32 %712, %715
  store i32 %716, ptr %16, align 4, !tbaa !9
  %717 = load ptr, ptr %9, align 8, !tbaa !5
  %718 = load i32, ptr %16, align 4, !tbaa !9
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds %struct.complex, ptr %717, i64 %719
  %721 = getelementptr inbounds %struct.complex, ptr %720, i32 0, i32 0
  %722 = load float, ptr %721, align 4, !tbaa !13
  %723 = load ptr, ptr %9, align 8, !tbaa !5
  %724 = load i32, ptr %15, align 4, !tbaa !9
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds %struct.complex, ptr %723, i64 %725
  %727 = getelementptr inbounds %struct.complex, ptr %726, i32 0, i32 0
  store float %722, ptr %727, align 4, !tbaa !13
  %728 = load ptr, ptr %9, align 8, !tbaa !5
  %729 = load i32, ptr %16, align 4, !tbaa !9
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds %struct.complex, ptr %728, i64 %730
  %732 = getelementptr inbounds %struct.complex, ptr %731, i32 0, i32 1
  %733 = load float, ptr %732, align 4, !tbaa !15
  %734 = load ptr, ptr %9, align 8, !tbaa !5
  %735 = load i32, ptr %15, align 4, !tbaa !9
  %736 = sext i32 %735 to i64
  %737 = getelementptr inbounds %struct.complex, ptr %734, i64 %736
  %738 = getelementptr inbounds %struct.complex, ptr %737, i32 0, i32 1
  store float %733, ptr %738, align 4, !tbaa !15
  %739 = load i32, ptr %47, align 4, !tbaa !9
  %740 = load i32, ptr %36, 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 %15, align 4, !tbaa !9
  %744 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  %745 = load float, ptr %744, align 4, !tbaa !13
  %746 = load ptr, ptr %9, align 8, !tbaa !5
  %747 = load i32, ptr %15, align 4, !tbaa !9
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds %struct.complex, ptr %746, i64 %748
  %750 = getelementptr inbounds %struct.complex, ptr %749, i32 0, i32 0
  store float %745, ptr %750, align 4, !tbaa !13
  %751 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  %752 = load float, ptr %751, align 4, !tbaa !15
  %753 = load ptr, ptr %9, align 8, !tbaa !5
  %754 = load i32, ptr %15, align 4, !tbaa !9
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds %struct.complex, ptr %753, i64 %755
  %757 = getelementptr inbounds %struct.complex, ptr %756, i32 0, i32 1
  store float %752, ptr %757, align 4, !tbaa !15
  br label %758

758:                                              ; preds = %658, %565
  br label %822

759:                                              ; preds = %450
  %760 = load i32, ptr %36, align 4, !tbaa !9
  %761 = load i32, ptr %36, align 4, !tbaa !9
  %762 = load i32, ptr %13, align 4, !tbaa !9
  %763 = mul nsw i32 %761, %762
  %764 = add nsw i32 %760, %763
  store i32 %764, ptr %15, align 4, !tbaa !9
  %765 = load i32, ptr %36, align 4, !tbaa !9
  %766 = load i32, ptr %36, align 4, !tbaa !9
  %767 = load i32, ptr %13, align 4, !tbaa !9
  %768 = mul nsw i32 %766, %767
  %769 = add nsw i32 %765, %768
  store i32 %769, ptr %16, align 4, !tbaa !9
  %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 0
  %775 = load float, ptr %774, align 4, !tbaa !13
  store float %775, ptr %21, align 4, !tbaa !11
  %776 = load float, ptr %21, align 4, !tbaa !11
  %777 = load ptr, ptr %9, align 8, !tbaa !5
  %778 = load i32, ptr %15, align 4, !tbaa !9
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds %struct.complex, ptr %777, i64 %779
  %781 = getelementptr inbounds %struct.complex, ptr %780, i32 0, i32 0
  store float %776, ptr %781, align 4, !tbaa !13
  %782 = load ptr, ptr %9, align 8, !tbaa !5
  %783 = load i32, ptr %15, 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 1
  store float 0.000000e+00, ptr %786, align 4, !tbaa !15
  %787 = load i32, ptr %39, align 4, !tbaa !9
  %788 = icmp eq i32 %787, 2
  br i1 %788, label %789, label %821

789:                                              ; preds = %759
  %790 = load i32, ptr %36, align 4, !tbaa !9
  %791 = sub nsw i32 %790, 1
  %792 = load i32, ptr %36, align 4, !tbaa !9
  %793 = sub nsw i32 %792, 1
  %794 = load i32, ptr %13, align 4, !tbaa !9
  %795 = mul nsw i32 %793, %794
  %796 = add nsw i32 %791, %795
  store i32 %796, ptr %15, align 4, !tbaa !9
  %797 = load i32, ptr %36, align 4, !tbaa !9
  %798 = sub nsw i32 %797, 1
  %799 = load i32, ptr %36, align 4, !tbaa !9
  %800 = sub nsw i32 %799, 1
  %801 = load i32, ptr %13, align 4, !tbaa !9
  %802 = mul nsw i32 %800, %801
  %803 = add nsw i32 %798, %802
  store i32 %803, ptr %16, align 4, !tbaa !9
  %804 = load ptr, ptr %9, align 8, !tbaa !5
  %805 = load i32, ptr %16, align 4, !tbaa !9
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds %struct.complex, ptr %804, i64 %806
  %808 = getelementptr inbounds %struct.complex, ptr %807, i32 0, i32 0
  %809 = load float, ptr %808, align 4, !tbaa !13
  store float %809, ptr %21, align 4, !tbaa !11
  %810 = load float, ptr %21, align 4, !tbaa !11
  %811 = load ptr, ptr %9, align 8, !tbaa !5
  %812 = load i32, ptr %15, align 4, !tbaa !9
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds %struct.complex, ptr %811, i64 %813
  %815 = getelementptr inbounds %struct.complex, ptr %814, i32 0, i32 0
  store float %810, ptr %815, align 4, !tbaa !13
  %816 = load ptr, ptr %9, align 8, !tbaa !5
  %817 = load i32, ptr %15, align 4, !tbaa !9
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds %struct.complex, ptr %816, i64 %818
  %820 = getelementptr inbounds %struct.complex, ptr %819, i32 0, i32 1
  store float 0.000000e+00, ptr %820, align 4, !tbaa !15
  br label %821

821:                                              ; preds = %789, %759
  br label %822

822:                                              ; preds = %821, %758
  %823 = load i32, ptr %39, align 4, !tbaa !9
  %824 = icmp eq i32 %823, 1
  br i1 %824, label %825, label %864

825:                                              ; preds = %822
  %826 = load i32, ptr %36, align 4, !tbaa !9
  %827 = load i32, ptr %36, align 4, !tbaa !9
  %828 = load i32, ptr %13, align 4, !tbaa !9
  %829 = mul nsw i32 %827, %828
  %830 = add nsw i32 %826, %829
  store i32 %830, ptr %15, align 4, !tbaa !9
  %831 = load ptr, ptr %9, align 8, !tbaa !5
  %832 = load i32, ptr %15, align 4, !tbaa !9
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds %struct.complex, ptr %831, i64 %833
  %835 = getelementptr inbounds %struct.complex, ptr %834, i32 0, i32 0
  %836 = load float, ptr %835, align 4, !tbaa !13
  %837 = fdiv float 1.000000e+00, %836
  store float %837, ptr %41, align 4, !tbaa !11
  %838 = load i32, ptr %36, align 4, !tbaa !9
  %839 = sub nsw i32 %838, 1
  store i32 %839, ptr %15, align 4, !tbaa !9
  %840 = load float, ptr %41, align 4, !tbaa !11
  %841 = fneg float %840
  store float %841, ptr %21, align 4, !tbaa !11
  %842 = load ptr, ptr %7, align 8, !tbaa !5
  %843 = load ptr, ptr %9, align 8, !tbaa !5
  %844 = load i32, ptr %36, align 4, !tbaa !9
  %845 = load i32, ptr %13, align 4, !tbaa !9
  %846 = mul nsw i32 %844, %845
  %847 = add nsw i32 %846, 1
  %848 = sext i32 %847 to i64
  %849 = getelementptr inbounds %struct.complex, ptr %843, i64 %848
  %850 = load ptr, ptr %9, align 8, !tbaa !5
  %851 = load i32, ptr %14, align 4, !tbaa !9
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds %struct.complex, ptr %850, i64 %852
  %854 = load ptr, ptr %10, align 8, !tbaa !5
  call void @cher_(ptr noundef %842, ptr noundef %15, ptr noundef %21, ptr noundef %849, ptr noundef @c__1, ptr noundef %853, ptr noundef %854)
  %855 = load i32, ptr %36, align 4, !tbaa !9
  %856 = sub nsw i32 %855, 1
  store i32 %856, ptr %15, align 4, !tbaa !9
  %857 = load ptr, ptr %9, align 8, !tbaa !5
  %858 = load i32, ptr %36, align 4, !tbaa !9
  %859 = load i32, ptr %13, align 4, !tbaa !9
  %860 = mul nsw i32 %858, %859
  %861 = add nsw i32 %860, 1
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds %struct.complex, ptr %857, i64 %862
  call void @csscal_(ptr noundef %15, ptr noundef %41, ptr noundef %863, ptr noundef @c__1)
  br label %1416

864:                                              ; preds = %822
  %865 = load i32, ptr %36, align 4, !tbaa !9
  %866 = icmp sgt i32 %865, 2
  br i1 %866, label %867, label %1415

867:                                              ; preds = %864
  %868 = load i32, ptr %36, align 4, !tbaa !9
  %869 = sub nsw i32 %868, 1
  %870 = load i32, ptr %36, align 4, !tbaa !9
  %871 = load i32, ptr %13, align 4, !tbaa !9
  %872 = mul nsw i32 %870, %871
  %873 = add nsw i32 %869, %872
  store i32 %873, ptr %15, align 4, !tbaa !9
  %874 = load ptr, ptr %9, align 8, !tbaa !5
  %875 = load i32, ptr %15, align 4, !tbaa !9
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds %struct.complex, ptr %874, i64 %876
  %878 = getelementptr inbounds %struct.complex, ptr %877, i32 0, i32 0
  %879 = load float, ptr %878, align 4, !tbaa !13
  store float %879, ptr %21, align 4, !tbaa !11
  %880 = load ptr, ptr %9, align 8, !tbaa !5
  %881 = load i32, ptr %36, align 4, !tbaa !9
  %882 = sub nsw i32 %881, 1
  %883 = load i32, ptr %36, align 4, !tbaa !9
  %884 = load i32, ptr %13, align 4, !tbaa !9
  %885 = mul nsw i32 %883, %884
  %886 = add nsw i32 %882, %885
  %887 = sext i32 %886 to i64
  %888 = getelementptr inbounds %struct.complex, ptr %880, i64 %887
  %889 = call <2 x float> @Cf(ptr noundef %888)
  store <2 x float> %889, ptr %62, align 4
  %890 = getelementptr inbounds { float, float }, ptr %62, i32 0, i32 0
  %891 = load float, ptr %890, align 4
  %892 = getelementptr inbounds { float, float }, ptr %62, i32 0, i32 1
  %893 = load float, ptr %892, align 4
  store float %893, ptr %22, align 4, !tbaa !11
  %894 = call float @slapy2_(ptr noundef %21, ptr noundef %22)
  store float %894, ptr %33, align 4, !tbaa !11
  %895 = load i32, ptr %36, align 4, !tbaa !9
  %896 = sub nsw i32 %895, 1
  %897 = load i32, ptr %36, align 4, !tbaa !9
  %898 = sub nsw i32 %897, 1
  %899 = load i32, ptr %13, align 4, !tbaa !9
  %900 = mul nsw i32 %898, %899
  %901 = add nsw i32 %896, %900
  store i32 %901, ptr %15, align 4, !tbaa !9
  %902 = load ptr, ptr %9, align 8, !tbaa !5
  %903 = load i32, ptr %15, align 4, !tbaa !9
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds %struct.complex, ptr %902, i64 %904
  %906 = getelementptr inbounds %struct.complex, ptr %905, i32 0, i32 0
  %907 = load float, ptr %906, align 4, !tbaa !13
  %908 = load float, ptr %33, align 4, !tbaa !11
  %909 = fdiv float %907, %908
  store float %909, ptr %44, align 4, !tbaa !11
  %910 = load i32, ptr %36, align 4, !tbaa !9
  %911 = load i32, ptr %36, align 4, !tbaa !9
  %912 = load i32, ptr %13, align 4, !tbaa !9
  %913 = mul nsw i32 %911, %912
  %914 = add nsw i32 %910, %913
  store i32 %914, ptr %15, align 4, !tbaa !9
  %915 = load ptr, ptr %9, align 8, !tbaa !5
  %916 = load i32, ptr %15, align 4, !tbaa !9
  %917 = sext i32 %916 to i64
  %918 = getelementptr inbounds %struct.complex, ptr %915, i64 %917
  %919 = getelementptr inbounds %struct.complex, ptr %918, i32 0, i32 0
  %920 = load float, ptr %919, align 4, !tbaa !13
  %921 = load float, ptr %33, align 4, !tbaa !11
  %922 = fdiv float %920, %921
  store float %922, ptr %42, align 4, !tbaa !11
  %923 = load float, ptr %42, align 4, !tbaa !11
  %924 = load float, ptr %44, align 4, !tbaa !11
  %925 = call float @llvm.fmuladd.f32(float %923, float %924, float -1.000000e+00)
  %926 = fdiv float 1.000000e+00, %925
  store float %926, ptr %50, align 4, !tbaa !11
  %927 = load i32, ptr %36, align 4, !tbaa !9
  %928 = sub nsw i32 %927, 1
  %929 = load i32, ptr %36, align 4, !tbaa !9
  %930 = load i32, ptr %13, align 4, !tbaa !9
  %931 = mul nsw i32 %929, %930
  %932 = add nsw i32 %928, %931
  store i32 %932, ptr %15, align 4, !tbaa !9
  %933 = load ptr, ptr %9, align 8, !tbaa !5
  %934 = load i32, ptr %15, align 4, !tbaa !9
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds %struct.complex, ptr %933, i64 %935
  %937 = getelementptr inbounds %struct.complex, ptr %936, i32 0, i32 0
  %938 = load float, ptr %937, align 4, !tbaa !13
  %939 = load float, ptr %33, align 4, !tbaa !11
  %940 = fdiv float %938, %939
  %941 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %940, ptr %941, align 4, !tbaa !13
  %942 = load ptr, ptr %9, align 8, !tbaa !5
  %943 = load i32, ptr %15, align 4, !tbaa !9
  %944 = sext i32 %943 to i64
  %945 = getelementptr inbounds %struct.complex, ptr %942, i64 %944
  %946 = getelementptr inbounds %struct.complex, ptr %945, i32 0, i32 1
  %947 = load float, ptr %946, align 4, !tbaa !15
  %948 = load float, ptr %33, align 4, !tbaa !11
  %949 = fdiv float %947, %948
  %950 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %949, ptr %950, align 4, !tbaa !15
  %951 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %952 = load float, ptr %951, align 4, !tbaa !13
  %953 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %952, ptr %953, align 4, !tbaa !13
  %954 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %955 = load float, ptr %954, align 4, !tbaa !15
  %956 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %955, ptr %956, align 4, !tbaa !15
  %957 = load float, ptr %50, align 4, !tbaa !11
  %958 = load float, ptr %33, align 4, !tbaa !11
  %959 = fdiv float %957, %958
  store float %959, ptr %33, align 4, !tbaa !11
  %960 = load i32, ptr %36, align 4, !tbaa !9
  %961 = sub nsw i32 %960, 2
  store i32 %961, ptr %35, align 4, !tbaa !9
  br label %962

962:                                              ; preds = %1411, %867
  %963 = load i32, ptr %35, align 4, !tbaa !9
  %964 = icmp sge i32 %963, 1
  br i1 %964, label %965, label %1414

965:                                              ; preds = %962
  %966 = load i32, ptr %35, align 4, !tbaa !9
  %967 = load i32, ptr %36, align 4, !tbaa !9
  %968 = sub nsw i32 %967, 1
  %969 = load i32, ptr %13, align 4, !tbaa !9
  %970 = mul nsw i32 %968, %969
  %971 = add nsw i32 %966, %970
  store i32 %971, ptr %15, align 4, !tbaa !9
  %972 = load float, ptr %42, align 4, !tbaa !11
  %973 = load ptr, ptr %9, align 8, !tbaa !5
  %974 = load i32, ptr %15, align 4, !tbaa !9
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds %struct.complex, ptr %973, i64 %975
  %977 = getelementptr inbounds %struct.complex, ptr %976, i32 0, i32 0
  %978 = load float, ptr %977, align 4, !tbaa !13
  %979 = fmul float %972, %978
  %980 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %979, ptr %980, align 4, !tbaa !13
  %981 = load float, ptr %42, align 4, !tbaa !11
  %982 = load ptr, ptr %9, align 8, !tbaa !5
  %983 = load i32, ptr %15, align 4, !tbaa !9
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds %struct.complex, ptr %982, i64 %984
  %986 = getelementptr inbounds %struct.complex, ptr %985, i32 0, i32 1
  %987 = load float, ptr %986, align 4, !tbaa !15
  %988 = fmul float %981, %987
  %989 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %988, ptr %989, align 4, !tbaa !15
  %990 = call <2 x float> @Cf(ptr noundef %43)
  store <2 x float> %990, ptr %63, align 4
  %991 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 0
  %992 = load float, ptr %991, align 4
  %993 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 1
  %994 = load float, ptr %993, align 4
  %995 = fneg float %994
  %996 = call ptr @_pCf(ptr noundef %29)
  %997 = getelementptr inbounds { float, float }, ptr %996, i32 0, i32 0
  %998 = getelementptr inbounds { float, float }, ptr %996, i32 0, i32 1
  store float %992, ptr %997, align 4
  store float %995, ptr %998, align 4
  %999 = load i32, ptr %35, align 4, !tbaa !9
  %1000 = load i32, ptr %36, align 4, !tbaa !9
  %1001 = load i32, ptr %13, align 4, !tbaa !9
  %1002 = mul nsw i32 %1000, %1001
  %1003 = add nsw i32 %999, %1002
  store i32 %1003, ptr %16, align 4, !tbaa !9
  %1004 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1005 = load float, ptr %1004, align 4, !tbaa !13
  %1006 = load ptr, ptr %9, align 8, !tbaa !5
  %1007 = load i32, ptr %16, align 4, !tbaa !9
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds %struct.complex, ptr %1006, i64 %1008
  %1010 = getelementptr inbounds %struct.complex, ptr %1009, i32 0, i32 0
  %1011 = load float, ptr %1010, align 4, !tbaa !13
  %1012 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1013 = load float, ptr %1012, align 4, !tbaa !15
  %1014 = load ptr, ptr %9, align 8, !tbaa !5
  %1015 = load i32, ptr %16, 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
  %1019 = load float, ptr %1018, align 4, !tbaa !15
  %1020 = fmul float %1013, %1019
  %1021 = fneg float %1020
  %1022 = call float @llvm.fmuladd.f32(float %1005, float %1011, float %1021)
  %1023 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  store float %1022, ptr %1023, align 4, !tbaa !13
  %1024 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1025 = load float, ptr %1024, align 4, !tbaa !13
  %1026 = load ptr, ptr %9, align 8, !tbaa !5
  %1027 = load i32, ptr %16, align 4, !tbaa !9
  %1028 = sext i32 %1027 to i64
  %1029 = getelementptr inbounds %struct.complex, ptr %1026, i64 %1028
  %1030 = getelementptr inbounds %struct.complex, ptr %1029, i32 0, i32 1
  %1031 = load float, ptr %1030, align 4, !tbaa !15
  %1032 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1033 = load float, ptr %1032, align 4, !tbaa !15
  %1034 = load ptr, ptr %9, align 8, !tbaa !5
  %1035 = load i32, ptr %16, align 4, !tbaa !9
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds %struct.complex, ptr %1034, i64 %1036
  %1038 = getelementptr inbounds %struct.complex, ptr %1037, i32 0, i32 0
  %1039 = load float, ptr %1038, align 4, !tbaa !13
  %1040 = fmul float %1033, %1039
  %1041 = call float @llvm.fmuladd.f32(float %1025, float %1031, float %1040)
  %1042 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  store float %1041, ptr %1042, align 4, !tbaa !15
  %1043 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1044 = load float, ptr %1043, align 4, !tbaa !13
  %1045 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  %1046 = load float, ptr %1045, align 4, !tbaa !13
  %1047 = fsub float %1044, %1046
  %1048 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1047, ptr %1048, align 4, !tbaa !13
  %1049 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1050 = load float, ptr %1049, align 4, !tbaa !15
  %1051 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  %1052 = load float, ptr %1051, align 4, !tbaa !15
  %1053 = fsub float %1050, %1052
  %1054 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1053, ptr %1054, align 4, !tbaa !15
  %1055 = load float, ptr %33, align 4, !tbaa !11
  %1056 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1057 = load float, ptr %1056, align 4, !tbaa !13
  %1058 = fmul float %1055, %1057
  %1059 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1058, ptr %1059, align 4, !tbaa !13
  %1060 = load float, ptr %33, align 4, !tbaa !11
  %1061 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1062 = load float, ptr %1061, align 4, !tbaa !15
  %1063 = fmul float %1060, %1062
  %1064 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1063, ptr %1064, align 4, !tbaa !15
  %1065 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1066 = load float, ptr %1065, align 4, !tbaa !13
  %1067 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  store float %1066, ptr %1067, align 4, !tbaa !13
  %1068 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1069 = load float, ptr %1068, align 4, !tbaa !15
  %1070 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  store float %1069, ptr %1070, align 4, !tbaa !15
  %1071 = load i32, ptr %35, align 4, !tbaa !9
  %1072 = load i32, ptr %36, align 4, !tbaa !9
  %1073 = load i32, ptr %13, align 4, !tbaa !9
  %1074 = mul nsw i32 %1072, %1073
  %1075 = add nsw i32 %1071, %1074
  store i32 %1075, ptr %15, align 4, !tbaa !9
  %1076 = load float, ptr %44, align 4, !tbaa !11
  %1077 = load ptr, ptr %9, align 8, !tbaa !5
  %1078 = load i32, ptr %15, align 4, !tbaa !9
  %1079 = sext i32 %1078 to i64
  %1080 = getelementptr inbounds %struct.complex, ptr %1077, i64 %1079
  %1081 = getelementptr inbounds %struct.complex, ptr %1080, i32 0, i32 0
  %1082 = load float, ptr %1081, align 4, !tbaa !13
  %1083 = fmul float %1076, %1082
  %1084 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1083, ptr %1084, align 4, !tbaa !13
  %1085 = load float, ptr %44, align 4, !tbaa !11
  %1086 = load ptr, ptr %9, align 8, !tbaa !5
  %1087 = load i32, ptr %15, align 4, !tbaa !9
  %1088 = sext i32 %1087 to i64
  %1089 = getelementptr inbounds %struct.complex, ptr %1086, i64 %1088
  %1090 = getelementptr inbounds %struct.complex, ptr %1089, i32 0, i32 1
  %1091 = load float, ptr %1090, align 4, !tbaa !15
  %1092 = fmul float %1085, %1091
  %1093 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1092, ptr %1093, align 4, !tbaa !15
  %1094 = load i32, ptr %35, align 4, !tbaa !9
  %1095 = load i32, ptr %36, align 4, !tbaa !9
  %1096 = sub nsw i32 %1095, 1
  %1097 = load i32, ptr %13, align 4, !tbaa !9
  %1098 = mul nsw i32 %1096, %1097
  %1099 = add nsw i32 %1094, %1098
  store i32 %1099, ptr %16, align 4, !tbaa !9
  %1100 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1101 = load float, ptr %1100, align 4, !tbaa !13
  %1102 = load ptr, ptr %9, align 8, !tbaa !5
  %1103 = load i32, ptr %16, align 4, !tbaa !9
  %1104 = sext i32 %1103 to i64
  %1105 = getelementptr inbounds %struct.complex, ptr %1102, i64 %1104
  %1106 = getelementptr inbounds %struct.complex, ptr %1105, i32 0, i32 0
  %1107 = load float, ptr %1106, align 4, !tbaa !13
  %1108 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1109 = load float, ptr %1108, align 4, !tbaa !15
  %1110 = load ptr, ptr %9, align 8, !tbaa !5
  %1111 = load i32, ptr %16, align 4, !tbaa !9
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds %struct.complex, ptr %1110, i64 %1112
  %1114 = getelementptr inbounds %struct.complex, ptr %1113, i32 0, i32 1
  %1115 = load float, ptr %1114, align 4, !tbaa !15
  %1116 = fmul float %1109, %1115
  %1117 = fneg float %1116
  %1118 = call float @llvm.fmuladd.f32(float %1101, float %1107, float %1117)
  %1119 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  store float %1118, ptr %1119, align 4, !tbaa !13
  %1120 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1121 = load float, ptr %1120, align 4, !tbaa !13
  %1122 = load ptr, ptr %9, align 8, !tbaa !5
  %1123 = load i32, ptr %16, align 4, !tbaa !9
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds %struct.complex, ptr %1122, i64 %1124
  %1126 = getelementptr inbounds %struct.complex, ptr %1125, i32 0, i32 1
  %1127 = load float, ptr %1126, align 4, !tbaa !15
  %1128 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1129 = load float, ptr %1128, align 4, !tbaa !15
  %1130 = load ptr, ptr %9, align 8, !tbaa !5
  %1131 = load i32, ptr %16, align 4, !tbaa !9
  %1132 = sext i32 %1131 to i64
  %1133 = getelementptr inbounds %struct.complex, ptr %1130, i64 %1132
  %1134 = getelementptr inbounds %struct.complex, ptr %1133, i32 0, i32 0
  %1135 = load float, ptr %1134, align 4, !tbaa !13
  %1136 = fmul float %1129, %1135
  %1137 = call float @llvm.fmuladd.f32(float %1121, float %1127, float %1136)
  %1138 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  store float %1137, ptr %1138, align 4, !tbaa !15
  %1139 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1140 = load float, ptr %1139, align 4, !tbaa !13
  %1141 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  %1142 = load float, ptr %1141, align 4, !tbaa !13
  %1143 = fsub float %1140, %1142
  %1144 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1143, ptr %1144, align 4, !tbaa !13
  %1145 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1146 = load float, ptr %1145, align 4, !tbaa !15
  %1147 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  %1148 = load float, ptr %1147, align 4, !tbaa !15
  %1149 = fsub float %1146, %1148
  %1150 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1149, ptr %1150, align 4, !tbaa !15
  %1151 = load float, ptr %33, align 4, !tbaa !11
  %1152 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1153 = load float, ptr %1152, align 4, !tbaa !13
  %1154 = fmul float %1151, %1153
  %1155 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1154, ptr %1155, align 4, !tbaa !13
  %1156 = load float, ptr %33, align 4, !tbaa !11
  %1157 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1158 = load float, ptr %1157, align 4, !tbaa !15
  %1159 = fmul float %1156, %1158
  %1160 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1159, ptr %1160, align 4, !tbaa !15
  %1161 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1162 = load float, ptr %1161, align 4, !tbaa !13
  %1163 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %1162, ptr %1163, align 4, !tbaa !13
  %1164 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1165 = load float, ptr %1164, align 4, !tbaa !15
  %1166 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %1165, ptr %1166, align 4, !tbaa !15
  %1167 = load i32, ptr %35, align 4, !tbaa !9
  store i32 %1167, ptr %34, align 4, !tbaa !9
  br label %1168

1168:                                             ; preds = %1335, %965
  %1169 = load i32, ptr %34, align 4, !tbaa !9
  %1170 = icmp sge i32 %1169, 1
  br i1 %1170, label %1171, label %1338

1171:                                             ; preds = %1168
  %1172 = load i32, ptr %34, align 4, !tbaa !9
  %1173 = load i32, ptr %35, align 4, !tbaa !9
  %1174 = load i32, ptr %13, align 4, !tbaa !9
  %1175 = mul nsw i32 %1173, %1174
  %1176 = add nsw i32 %1172, %1175
  store i32 %1176, ptr %15, align 4, !tbaa !9
  %1177 = load i32, ptr %34, align 4, !tbaa !9
  %1178 = load i32, ptr %35, align 4, !tbaa !9
  %1179 = load i32, ptr %13, align 4, !tbaa !9
  %1180 = mul nsw i32 %1178, %1179
  %1181 = add nsw i32 %1177, %1180
  store i32 %1181, ptr %16, align 4, !tbaa !9
  %1182 = load i32, ptr %34, align 4, !tbaa !9
  %1183 = load i32, ptr %36, align 4, !tbaa !9
  %1184 = load i32, ptr %13, align 4, !tbaa !9
  %1185 = mul nsw i32 %1183, %1184
  %1186 = add nsw i32 %1182, %1185
  store i32 %1186, ptr %17, align 4, !tbaa !9
  %1187 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %1187, ptr %64, align 4
  %1188 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 0
  %1189 = load float, ptr %1188, align 4
  %1190 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 1
  %1191 = load float, ptr %1190, align 4
  %1192 = fneg float %1191
  %1193 = call ptr @_pCf(ptr noundef %28)
  %1194 = getelementptr inbounds { float, float }, ptr %1193, i32 0, i32 0
  %1195 = getelementptr inbounds { float, float }, ptr %1193, i32 0, i32 1
  store float %1189, ptr %1194, align 4
  store float %1192, ptr %1195, align 4
  %1196 = load ptr, ptr %9, align 8, !tbaa !5
  %1197 = load i32, ptr %17, align 4, !tbaa !9
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds %struct.complex, ptr %1196, i64 %1198
  %1200 = getelementptr inbounds %struct.complex, ptr %1199, i32 0, i32 0
  %1201 = load float, ptr %1200, align 4, !tbaa !13
  %1202 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  %1203 = load float, ptr %1202, align 4, !tbaa !13
  %1204 = load ptr, ptr %9, align 8, !tbaa !5
  %1205 = load i32, ptr %17, align 4, !tbaa !9
  %1206 = sext i32 %1205 to i64
  %1207 = getelementptr inbounds %struct.complex, ptr %1204, i64 %1206
  %1208 = getelementptr inbounds %struct.complex, ptr %1207, i32 0, i32 1
  %1209 = load float, ptr %1208, align 4, !tbaa !15
  %1210 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  %1211 = load float, ptr %1210, align 4, !tbaa !15
  %1212 = fmul float %1209, %1211
  %1213 = fneg float %1212
  %1214 = call float @llvm.fmuladd.f32(float %1201, float %1203, float %1213)
  %1215 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1214, ptr %1215, align 4, !tbaa !13
  %1216 = load ptr, ptr %9, align 8, !tbaa !5
  %1217 = load i32, ptr %17, 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
  %1222 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  %1223 = load float, ptr %1222, align 4, !tbaa !15
  %1224 = load ptr, ptr %9, align 8, !tbaa !5
  %1225 = load i32, ptr %17, align 4, !tbaa !9
  %1226 = sext i32 %1225 to i64
  %1227 = getelementptr inbounds %struct.complex, ptr %1224, i64 %1226
  %1228 = getelementptr inbounds %struct.complex, ptr %1227, i32 0, i32 1
  %1229 = load float, ptr %1228, align 4, !tbaa !15
  %1230 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  %1231 = load float, ptr %1230, align 4, !tbaa !13
  %1232 = fmul float %1229, %1231
  %1233 = call float @llvm.fmuladd.f32(float %1221, float %1223, float %1232)
  %1234 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1233, ptr %1234, align 4, !tbaa !15
  %1235 = load ptr, ptr %9, align 8, !tbaa !5
  %1236 = load i32, ptr %16, align 4, !tbaa !9
  %1237 = sext i32 %1236 to i64
  %1238 = getelementptr inbounds %struct.complex, ptr %1235, i64 %1237
  %1239 = getelementptr inbounds %struct.complex, ptr %1238, i32 0, i32 0
  %1240 = load float, ptr %1239, align 4, !tbaa !13
  %1241 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1242 = load float, ptr %1241, align 4, !tbaa !13
  %1243 = fsub float %1240, %1242
  %1244 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1243, ptr %1244, align 4, !tbaa !13
  %1245 = load ptr, ptr %9, align 8, !tbaa !5
  %1246 = load i32, ptr %16, align 4, !tbaa !9
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds %struct.complex, ptr %1245, i64 %1247
  %1249 = getelementptr inbounds %struct.complex, ptr %1248, i32 0, i32 1
  %1250 = load float, ptr %1249, align 4, !tbaa !15
  %1251 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1252 = load float, ptr %1251, align 4, !tbaa !15
  %1253 = fsub float %1250, %1252
  %1254 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1253, ptr %1254, align 4, !tbaa !15
  %1255 = load i32, ptr %34, align 4, !tbaa !9
  %1256 = load i32, ptr %36, align 4, !tbaa !9
  %1257 = sub nsw i32 %1256, 1
  %1258 = load i32, ptr %13, align 4, !tbaa !9
  %1259 = mul nsw i32 %1257, %1258
  %1260 = add nsw i32 %1255, %1259
  store i32 %1260, ptr %18, align 4, !tbaa !9
  %1261 = call <2 x float> @Cf(ptr noundef %53)
  store <2 x float> %1261, ptr %65, align 4
  %1262 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 0
  %1263 = load float, ptr %1262, align 4
  %1264 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 1
  %1265 = load float, ptr %1264, align 4
  %1266 = fneg float %1265
  %1267 = call ptr @_pCf(ptr noundef %30)
  %1268 = getelementptr inbounds { float, float }, ptr %1267, i32 0, i32 0
  %1269 = getelementptr inbounds { float, float }, ptr %1267, i32 0, i32 1
  store float %1263, ptr %1268, align 4
  store float %1266, ptr %1269, align 4
  %1270 = load ptr, ptr %9, align 8, !tbaa !5
  %1271 = load i32, ptr %18, align 4, !tbaa !9
  %1272 = sext i32 %1271 to i64
  %1273 = getelementptr inbounds %struct.complex, ptr %1270, i64 %1272
  %1274 = getelementptr inbounds %struct.complex, ptr %1273, i32 0, i32 0
  %1275 = load float, ptr %1274, align 4, !tbaa !13
  %1276 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %1277 = load float, ptr %1276, align 4, !tbaa !13
  %1278 = load ptr, ptr %9, align 8, !tbaa !5
  %1279 = load i32, ptr %18, 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 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %1285 = load float, ptr %1284, align 4, !tbaa !15
  %1286 = fmul float %1283, %1285
  %1287 = fneg float %1286
  %1288 = call float @llvm.fmuladd.f32(float %1275, float %1277, float %1287)
  %1289 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %1288, ptr %1289, align 4, !tbaa !13
  %1290 = load ptr, ptr %9, align 8, !tbaa !5
  %1291 = load i32, ptr %18, align 4, !tbaa !9
  %1292 = sext i32 %1291 to i64
  %1293 = getelementptr inbounds %struct.complex, ptr %1290, i64 %1292
  %1294 = getelementptr inbounds %struct.complex, ptr %1293, i32 0, i32 0
  %1295 = load float, ptr %1294, align 4, !tbaa !13
  %1296 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %1297 = load float, ptr %1296, align 4, !tbaa !15
  %1298 = load ptr, ptr %9, align 8, !tbaa !5
  %1299 = load i32, ptr %18, align 4, !tbaa !9
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds %struct.complex, ptr %1298, i64 %1300
  %1302 = getelementptr inbounds %struct.complex, ptr %1301, i32 0, i32 1
  %1303 = load float, ptr %1302, align 4, !tbaa !15
  %1304 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %1305 = load float, ptr %1304, align 4, !tbaa !13
  %1306 = fmul float %1303, %1305
  %1307 = call float @llvm.fmuladd.f32(float %1295, float %1297, float %1306)
  %1308 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %1307, ptr %1308, align 4, !tbaa !15
  %1309 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1310 = load float, ptr %1309, align 4, !tbaa !13
  %1311 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1312 = load float, ptr %1311, align 4, !tbaa !13
  %1313 = fsub float %1310, %1312
  %1314 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1313, ptr %1314, align 4, !tbaa !13
  %1315 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1316 = load float, ptr %1315, align 4, !tbaa !15
  %1317 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1318 = load float, ptr %1317, align 4, !tbaa !15
  %1319 = fsub float %1316, %1318
  %1320 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1319, ptr %1320, align 4, !tbaa !15
  %1321 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1322 = load float, ptr %1321, align 4, !tbaa !13
  %1323 = load ptr, ptr %9, align 8, !tbaa !5
  %1324 = load i32, ptr %15, align 4, !tbaa !9
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds %struct.complex, ptr %1323, i64 %1325
  %1327 = getelementptr inbounds %struct.complex, ptr %1326, i32 0, i32 0
  store float %1322, ptr %1327, align 4, !tbaa !13
  %1328 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1329 = load float, ptr %1328, align 4, !tbaa !15
  %1330 = load ptr, ptr %9, align 8, !tbaa !5
  %1331 = load i32, ptr %15, align 4, !tbaa !9
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds %struct.complex, ptr %1330, i64 %1332
  %1334 = getelementptr inbounds %struct.complex, ptr %1333, i32 0, i32 1
  store float %1329, ptr %1334, align 4, !tbaa !15
  br label %1335

1335:                                             ; preds = %1171
  %1336 = load i32, ptr %34, align 4, !tbaa !9
  %1337 = add nsw i32 %1336, -1
  store i32 %1337, ptr %34, align 4, !tbaa !9
  br label %1168, !llvm.loop !18

1338:                                             ; preds = %1168
  %1339 = load i32, ptr %35, align 4, !tbaa !9
  %1340 = load i32, ptr %36, align 4, !tbaa !9
  %1341 = load i32, ptr %13, align 4, !tbaa !9
  %1342 = mul nsw i32 %1340, %1341
  %1343 = add nsw i32 %1339, %1342
  store i32 %1343, ptr %15, align 4, !tbaa !9
  %1344 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %1345 = load float, ptr %1344, align 4, !tbaa !13
  %1346 = load ptr, ptr %9, align 8, !tbaa !5
  %1347 = load i32, ptr %15, align 4, !tbaa !9
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds %struct.complex, ptr %1346, i64 %1348
  %1350 = getelementptr inbounds %struct.complex, ptr %1349, i32 0, i32 0
  store float %1345, ptr %1350, align 4, !tbaa !13
  %1351 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %1352 = load float, ptr %1351, align 4, !tbaa !15
  %1353 = load ptr, ptr %9, align 8, !tbaa !5
  %1354 = load i32, ptr %15, align 4, !tbaa !9
  %1355 = sext i32 %1354 to i64
  %1356 = getelementptr inbounds %struct.complex, ptr %1353, i64 %1355
  %1357 = getelementptr inbounds %struct.complex, ptr %1356, i32 0, i32 1
  store float %1352, ptr %1357, align 4, !tbaa !15
  %1358 = load i32, ptr %35, align 4, !tbaa !9
  %1359 = load i32, ptr %36, align 4, !tbaa !9
  %1360 = sub nsw i32 %1359, 1
  %1361 = load i32, ptr %13, align 4, !tbaa !9
  %1362 = mul nsw i32 %1360, %1361
  %1363 = add nsw i32 %1358, %1362
  store i32 %1363, ptr %15, align 4, !tbaa !9
  %1364 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 0
  %1365 = load float, ptr %1364, align 4, !tbaa !13
  %1366 = load ptr, ptr %9, align 8, !tbaa !5
  %1367 = load i32, ptr %15, align 4, !tbaa !9
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds %struct.complex, ptr %1366, i64 %1368
  %1370 = getelementptr inbounds %struct.complex, ptr %1369, i32 0, i32 0
  store float %1365, ptr %1370, align 4, !tbaa !13
  %1371 = getelementptr inbounds %struct.complex, ptr %53, i32 0, i32 1
  %1372 = load float, ptr %1371, align 4, !tbaa !15
  %1373 = load ptr, ptr %9, align 8, !tbaa !5
  %1374 = load i32, ptr %15, align 4, !tbaa !9
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds %struct.complex, ptr %1373, i64 %1375
  %1377 = getelementptr inbounds %struct.complex, ptr %1376, i32 0, i32 1
  store float %1372, ptr %1377, align 4, !tbaa !15
  %1378 = load i32, ptr %35, align 4, !tbaa !9
  %1379 = load i32, ptr %35, align 4, !tbaa !9
  %1380 = load i32, ptr %13, align 4, !tbaa !9
  %1381 = mul nsw i32 %1379, %1380
  %1382 = add nsw i32 %1378, %1381
  store i32 %1382, ptr %15, align 4, !tbaa !9
  %1383 = load i32, ptr %35, align 4, !tbaa !9
  %1384 = load i32, ptr %35, align 4, !tbaa !9
  %1385 = load i32, ptr %13, align 4, !tbaa !9
  %1386 = mul nsw i32 %1384, %1385
  %1387 = add nsw i32 %1383, %1386
  store i32 %1387, ptr %16, align 4, !tbaa !9
  %1388 = load ptr, ptr %9, align 8, !tbaa !5
  %1389 = load i32, ptr %16, align 4, !tbaa !9
  %1390 = sext i32 %1389 to i64
  %1391 = getelementptr inbounds %struct.complex, ptr %1388, i64 %1390
  %1392 = getelementptr inbounds %struct.complex, ptr %1391, i32 0, i32 0
  %1393 = load float, ptr %1392, align 4, !tbaa !13
  store float %1393, ptr %21, align 4, !tbaa !11
  %1394 = load float, ptr %21, align 4, !tbaa !11
  %1395 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1394, ptr %1395, align 4, !tbaa !13
  %1396 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float 0.000000e+00, ptr %1396, align 4, !tbaa !15
  %1397 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1398 = load float, ptr %1397, align 4, !tbaa !13
  %1399 = load ptr, ptr %9, align 8, !tbaa !5
  %1400 = load i32, ptr %15, align 4, !tbaa !9
  %1401 = sext i32 %1400 to i64
  %1402 = getelementptr inbounds %struct.complex, ptr %1399, i64 %1401
  %1403 = getelementptr inbounds %struct.complex, ptr %1402, i32 0, i32 0
  store float %1398, ptr %1403, align 4, !tbaa !13
  %1404 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1405 = load float, ptr %1404, align 4, !tbaa !15
  %1406 = load ptr, ptr %9, align 8, !tbaa !5
  %1407 = load i32, ptr %15, align 4, !tbaa !9
  %1408 = sext i32 %1407 to i64
  %1409 = getelementptr inbounds %struct.complex, ptr %1406, i64 %1408
  %1410 = getelementptr inbounds %struct.complex, ptr %1409, i32 0, i32 1
  store float %1405, ptr %1410, align 4, !tbaa !15
  br label %1411

1411:                                             ; preds = %1338
  %1412 = load i32, ptr %35, align 4, !tbaa !9
  %1413 = add nsw i32 %1412, -1
  store i32 %1413, ptr %35, align 4, !tbaa !9
  br label %962, !llvm.loop !19

1414:                                             ; preds = %962
  br label %1415

1415:                                             ; preds = %1414, %864
  br label %1416

1416:                                             ; preds = %1415, %825
  br label %1417

1417:                                             ; preds = %1416, %244
  %1418 = load i32, ptr %39, align 4, !tbaa !9
  %1419 = icmp eq i32 %1418, 1
  br i1 %1419, label %1420, label %1426

1420:                                             ; preds = %1417
  %1421 = load i32, ptr %47, align 4, !tbaa !9
  %1422 = load ptr, ptr %11, align 8, !tbaa !5
  %1423 = load i32, ptr %36, align 4, !tbaa !9
  %1424 = sext i32 %1423 to i64
  %1425 = getelementptr inbounds i32, ptr %1422, i64 %1424
  store i32 %1421, ptr %1425, align 4, !tbaa !9
  br label %1440

1426:                                             ; preds = %1417
  %1427 = load i32, ptr %47, align 4, !tbaa !9
  %1428 = sub nsw i32 0, %1427
  %1429 = load ptr, ptr %11, align 8, !tbaa !5
  %1430 = load i32, ptr %36, align 4, !tbaa !9
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds i32, ptr %1429, i64 %1431
  store i32 %1428, ptr %1432, align 4, !tbaa !9
  %1433 = load i32, ptr %47, align 4, !tbaa !9
  %1434 = sub nsw i32 0, %1433
  %1435 = load ptr, ptr %11, align 8, !tbaa !5
  %1436 = load i32, ptr %36, align 4, !tbaa !9
  %1437 = sub nsw i32 %1436, 1
  %1438 = sext i32 %1437 to i64
  %1439 = getelementptr inbounds i32, ptr %1435, i64 %1438
  store i32 %1434, ptr %1439, align 4, !tbaa !9
  br label %1440

1440:                                             ; preds = %1426, %1420
  %1441 = load i32, ptr %39, align 4, !tbaa !9
  %1442 = load i32, ptr %36, align 4, !tbaa !9
  %1443 = sub nsw i32 %1442, %1441
  store i32 %1443, ptr %36, align 4, !tbaa !9
  br label %141

1444:                                             ; preds = %131
  store i32 1, ptr %36, align 4, !tbaa !9
  br label %1445

1445:                                             ; preds = %2803, %1444
  %1446 = load i32, ptr %36, align 4, !tbaa !9
  %1447 = load ptr, ptr %8, align 8, !tbaa !5
  %1448 = load i32, ptr %1447, align 4, !tbaa !9
  %1449 = icmp sgt i32 %1446, %1448
  br i1 %1449, label %1450, label %1451

1450:                                             ; preds = %1445
  br label %2807

1451:                                             ; preds = %1445
  store i32 1, ptr %39, align 4, !tbaa !9
  %1452 = load i32, ptr %36, align 4, !tbaa !9
  %1453 = load i32, ptr %36, align 4, !tbaa !9
  %1454 = load i32, ptr %13, align 4, !tbaa !9
  %1455 = mul nsw i32 %1453, %1454
  %1456 = add nsw i32 %1452, %1455
  store i32 %1456, ptr %15, align 4, !tbaa !9
  %1457 = load ptr, ptr %9, align 8, !tbaa !5
  %1458 = load i32, ptr %15, align 4, !tbaa !9
  %1459 = sext i32 %1458 to i64
  %1460 = getelementptr inbounds %struct.complex, ptr %1457, i64 %1459
  %1461 = getelementptr inbounds %struct.complex, ptr %1460, i32 0, i32 0
  %1462 = load float, ptr %1461, align 4, !tbaa !13
  store float %1462, ptr %21, align 4, !tbaa !11
  %1463 = load float, ptr %21, align 4, !tbaa !11
  %1464 = fcmp oge float %1463, 0.000000e+00
  br i1 %1464, label %1465, label %1467

1465:                                             ; preds = %1451
  %1466 = load float, ptr %21, align 4, !tbaa !11
  br label %1470

1467:                                             ; preds = %1451
  %1468 = load float, ptr %21, align 4, !tbaa !11
  %1469 = fneg float %1468
  br label %1470

1470:                                             ; preds = %1467, %1465
  %1471 = phi float [ %1466, %1465 ], [ %1469, %1467 ]
  store float %1471, ptr %48, align 4, !tbaa !11
  %1472 = load i32, ptr %36, align 4, !tbaa !9
  %1473 = load ptr, ptr %8, align 8, !tbaa !5
  %1474 = load i32, ptr %1473, align 4, !tbaa !9
  %1475 = icmp slt i32 %1472, %1474
  br i1 %1475, label %1476, label %1536

1476:                                             ; preds = %1470
  %1477 = load ptr, ptr %8, align 8, !tbaa !5
  %1478 = load i32, ptr %1477, align 4, !tbaa !9
  %1479 = load i32, ptr %36, align 4, !tbaa !9
  %1480 = sub nsw i32 %1478, %1479
  store i32 %1480, ptr %15, align 4, !tbaa !9
  %1481 = load i32, ptr %36, align 4, !tbaa !9
  %1482 = load ptr, ptr %9, align 8, !tbaa !5
  %1483 = load i32, ptr %36, align 4, !tbaa !9
  %1484 = add nsw i32 %1483, 1
  %1485 = load i32, ptr %36, align 4, !tbaa !9
  %1486 = load i32, ptr %13, align 4, !tbaa !9
  %1487 = mul nsw i32 %1485, %1486
  %1488 = add nsw i32 %1484, %1487
  %1489 = sext i32 %1488 to i64
  %1490 = getelementptr inbounds %struct.complex, ptr %1482, i64 %1489
  %1491 = call i32 @icamax_(ptr noundef %15, ptr noundef %1490, ptr noundef @c__1)
  %1492 = add nsw i32 %1481, %1491
  store i32 %1492, ptr %31, align 4, !tbaa !9
  %1493 = load i32, ptr %31, align 4, !tbaa !9
  %1494 = load i32, ptr %36, align 4, !tbaa !9
  %1495 = load i32, ptr %13, align 4, !tbaa !9
  %1496 = mul nsw i32 %1494, %1495
  %1497 = add nsw i32 %1493, %1496
  store i32 %1497, ptr %15, align 4, !tbaa !9
  %1498 = load ptr, ptr %9, align 8, !tbaa !5
  %1499 = load i32, ptr %15, align 4, !tbaa !9
  %1500 = sext i32 %1499 to i64
  %1501 = getelementptr inbounds %struct.complex, ptr %1498, i64 %1500
  %1502 = getelementptr inbounds %struct.complex, ptr %1501, i32 0, i32 0
  %1503 = load float, ptr %1502, align 4, !tbaa !13
  store float %1503, ptr %21, align 4, !tbaa !11
  %1504 = load float, ptr %21, align 4, !tbaa !11
  %1505 = fcmp oge float %1504, 0.000000e+00
  br i1 %1505, label %1506, label %1508

1506:                                             ; preds = %1476
  %1507 = load float, ptr %21, align 4, !tbaa !11
  br label %1511

1508:                                             ; preds = %1476
  %1509 = load float, ptr %21, align 4, !tbaa !11
  %1510 = fneg float %1509
  br label %1511

1511:                                             ; preds = %1508, %1506
  %1512 = phi float [ %1507, %1506 ], [ %1510, %1508 ]
  %1513 = load ptr, ptr %9, align 8, !tbaa !5
  %1514 = load i32, ptr %31, align 4, !tbaa !9
  %1515 = load i32, ptr %36, align 4, !tbaa !9
  %1516 = load i32, ptr %13, align 4, !tbaa !9
  %1517 = mul nsw i32 %1515, %1516
  %1518 = add nsw i32 %1514, %1517
  %1519 = sext i32 %1518 to i64
  %1520 = getelementptr inbounds %struct.complex, ptr %1513, i64 %1519
  %1521 = call <2 x float> @Cf(ptr noundef %1520)
  store <2 x float> %1521, ptr %66, align 4
  %1522 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 0
  %1523 = load float, ptr %1522, align 4
  %1524 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 1
  %1525 = load float, ptr %1524, align 4
  store float %1525, ptr %22, align 4, !tbaa !11
  %1526 = load float, ptr %22, align 4, !tbaa !11
  %1527 = fcmp oge float %1526, 0.000000e+00
  br i1 %1527, label %1528, label %1530

1528:                                             ; preds = %1511
  %1529 = load float, ptr %22, align 4, !tbaa !11
  br label %1533

1530:                                             ; preds = %1511
  %1531 = load float, ptr %22, align 4, !tbaa !11
  %1532 = fneg float %1531
  br label %1533

1533:                                             ; preds = %1530, %1528
  %1534 = phi float [ %1529, %1528 ], [ %1532, %1530 ]
  %1535 = fadd float %1512, %1534
  store float %1535, ptr %51, align 4, !tbaa !11
  br label %1537

1536:                                             ; preds = %1470
  store float 0.000000e+00, ptr %51, align 4, !tbaa !11
  br label %1537

1537:                                             ; preds = %1536, %1533
  %1538 = load float, ptr %48, align 4, !tbaa !11
  %1539 = load float, ptr %51, align 4, !tbaa !11
  %1540 = fcmp oge float %1538, %1539
  br i1 %1540, label %1541, label %1543

1541:                                             ; preds = %1537
  %1542 = load float, ptr %48, align 4, !tbaa !11
  br label %1545

1543:                                             ; preds = %1537
  %1544 = load float, ptr %51, align 4, !tbaa !11
  br label %1545

1545:                                             ; preds = %1543, %1541
  %1546 = phi float [ %1542, %1541 ], [ %1544, %1543 ]
  %1547 = fcmp oeq float %1546, 0.000000e+00
  br i1 %1547, label %1551, label %1548

1548:                                             ; preds = %1545
  %1549 = call i32 @sisnan_(ptr noundef %48)
  %1550 = icmp ne i32 %1549, 0
  br i1 %1550, label %1551, label %1587

1551:                                             ; preds = %1548, %1545
  %1552 = load ptr, ptr %12, align 8, !tbaa !5
  %1553 = load i32, ptr %1552, align 4, !tbaa !9
  %1554 = icmp eq i32 %1553, 0
  br i1 %1554, label %1555, label %1558

1555:                                             ; preds = %1551
  %1556 = load i32, ptr %36, align 4, !tbaa !9
  %1557 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %1556, ptr %1557, align 4, !tbaa !9
  br label %1558

1558:                                             ; preds = %1555, %1551
  %1559 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %1559, ptr %47, align 4, !tbaa !9
  %1560 = load i32, ptr %36, align 4, !tbaa !9
  %1561 = load i32, ptr %36, align 4, !tbaa !9
  %1562 = load i32, ptr %13, align 4, !tbaa !9
  %1563 = mul nsw i32 %1561, %1562
  %1564 = add nsw i32 %1560, %1563
  store i32 %1564, ptr %15, align 4, !tbaa !9
  %1565 = load i32, ptr %36, align 4, !tbaa !9
  %1566 = load i32, ptr %36, align 4, !tbaa !9
  %1567 = load i32, ptr %13, align 4, !tbaa !9
  %1568 = mul nsw i32 %1566, %1567
  %1569 = add nsw i32 %1565, %1568
  store i32 %1569, ptr %16, align 4, !tbaa !9
  %1570 = load ptr, ptr %9, align 8, !tbaa !5
  %1571 = load i32, ptr %16, align 4, !tbaa !9
  %1572 = sext i32 %1571 to i64
  %1573 = getelementptr inbounds %struct.complex, ptr %1570, i64 %1572
  %1574 = getelementptr inbounds %struct.complex, ptr %1573, i32 0, i32 0
  %1575 = load float, ptr %1574, align 4, !tbaa !13
  store float %1575, ptr %21, align 4, !tbaa !11
  %1576 = load float, ptr %21, align 4, !tbaa !11
  %1577 = load ptr, ptr %9, align 8, !tbaa !5
  %1578 = load i32, ptr %15, align 4, !tbaa !9
  %1579 = sext i32 %1578 to i64
  %1580 = getelementptr inbounds %struct.complex, ptr %1577, i64 %1579
  %1581 = getelementptr inbounds %struct.complex, ptr %1580, i32 0, i32 0
  store float %1576, ptr %1581, align 4, !tbaa !13
  %1582 = load ptr, ptr %9, align 8, !tbaa !5
  %1583 = load i32, ptr %15, align 4, !tbaa !9
  %1584 = sext i32 %1583 to i64
  %1585 = getelementptr inbounds %struct.complex, ptr %1582, i64 %1584
  %1586 = getelementptr inbounds %struct.complex, ptr %1585, i32 0, i32 1
  store float 0.000000e+00, ptr %1586, align 4, !tbaa !15
  br label %2780

1587:                                             ; preds = %1548
  %1588 = load float, ptr %48, align 4, !tbaa !11
  %1589 = load float, ptr %38, align 4, !tbaa !11
  %1590 = load float, ptr %51, align 4, !tbaa !11
  %1591 = fmul float %1589, %1590
  %1592 = fcmp oge float %1588, %1591
  br i1 %1592, label %1593, label %1595

1593:                                             ; preds = %1587
  %1594 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %1594, ptr %47, align 4, !tbaa !9
  br label %1772

1595:                                             ; preds = %1587
  %1596 = load i32, ptr %31, align 4, !tbaa !9
  %1597 = load i32, ptr %36, align 4, !tbaa !9
  %1598 = sub nsw i32 %1596, %1597
  store i32 %1598, ptr %15, align 4, !tbaa !9
  %1599 = load i32, ptr %36, align 4, !tbaa !9
  %1600 = sub nsw i32 %1599, 1
  %1601 = load ptr, ptr %9, align 8, !tbaa !5
  %1602 = load i32, ptr %31, align 4, !tbaa !9
  %1603 = load i32, ptr %36, align 4, !tbaa !9
  %1604 = load i32, ptr %13, align 4, !tbaa !9
  %1605 = mul nsw i32 %1603, %1604
  %1606 = add nsw i32 %1602, %1605
  %1607 = sext i32 %1606 to i64
  %1608 = getelementptr inbounds %struct.complex, ptr %1601, i64 %1607
  %1609 = load ptr, ptr %10, align 8, !tbaa !5
  %1610 = call i32 @icamax_(ptr noundef %15, ptr noundef %1608, ptr noundef %1609)
  %1611 = add nsw i32 %1600, %1610
  store i32 %1611, ptr %32, align 4, !tbaa !9
  %1612 = load i32, ptr %31, align 4, !tbaa !9
  %1613 = load i32, ptr %32, align 4, !tbaa !9
  %1614 = load i32, ptr %13, align 4, !tbaa !9
  %1615 = mul nsw i32 %1613, %1614
  %1616 = add nsw i32 %1612, %1615
  store i32 %1616, ptr %15, align 4, !tbaa !9
  %1617 = load ptr, ptr %9, align 8, !tbaa !5
  %1618 = load i32, ptr %15, align 4, !tbaa !9
  %1619 = sext i32 %1618 to i64
  %1620 = getelementptr inbounds %struct.complex, ptr %1617, i64 %1619
  %1621 = getelementptr inbounds %struct.complex, ptr %1620, i32 0, i32 0
  %1622 = load float, ptr %1621, align 4, !tbaa !13
  store float %1622, ptr %21, align 4, !tbaa !11
  %1623 = load float, ptr %21, align 4, !tbaa !11
  %1624 = fcmp oge float %1623, 0.000000e+00
  br i1 %1624, label %1625, label %1627

1625:                                             ; preds = %1595
  %1626 = load float, ptr %21, align 4, !tbaa !11
  br label %1630

1627:                                             ; preds = %1595
  %1628 = load float, ptr %21, align 4, !tbaa !11
  %1629 = fneg float %1628
  br label %1630

1630:                                             ; preds = %1627, %1625
  %1631 = phi float [ %1626, %1625 ], [ %1629, %1627 ]
  %1632 = load ptr, ptr %9, align 8, !tbaa !5
  %1633 = load i32, ptr %31, align 4, !tbaa !9
  %1634 = load i32, ptr %32, align 4, !tbaa !9
  %1635 = load i32, ptr %13, align 4, !tbaa !9
  %1636 = mul nsw i32 %1634, %1635
  %1637 = add nsw i32 %1633, %1636
  %1638 = sext i32 %1637 to i64
  %1639 = getelementptr inbounds %struct.complex, ptr %1632, i64 %1638
  %1640 = call <2 x float> @Cf(ptr noundef %1639)
  store <2 x float> %1640, ptr %67, align 4
  %1641 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 0
  %1642 = load float, ptr %1641, align 4
  %1643 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 1
  %1644 = load float, ptr %1643, align 4
  store float %1644, ptr %22, align 4, !tbaa !11
  %1645 = load float, ptr %22, align 4, !tbaa !11
  %1646 = fcmp oge float %1645, 0.000000e+00
  br i1 %1646, label %1647, label %1649

1647:                                             ; preds = %1630
  %1648 = load float, ptr %22, align 4, !tbaa !11
  br label %1652

1649:                                             ; preds = %1630
  %1650 = load float, ptr %22, align 4, !tbaa !11
  %1651 = fneg float %1650
  br label %1652

1652:                                             ; preds = %1649, %1647
  %1653 = phi float [ %1648, %1647 ], [ %1651, %1649 ]
  %1654 = fadd float %1631, %1653
  store float %1654, ptr %52, align 4, !tbaa !11
  %1655 = load i32, ptr %31, align 4, !tbaa !9
  %1656 = load ptr, ptr %8, align 8, !tbaa !5
  %1657 = load i32, ptr %1656, align 4, !tbaa !9
  %1658 = icmp slt i32 %1655, %1657
  br i1 %1658, label %1659, label %1729

1659:                                             ; preds = %1652
  %1660 = load ptr, ptr %8, align 8, !tbaa !5
  %1661 = load i32, ptr %1660, align 4, !tbaa !9
  %1662 = load i32, ptr %31, align 4, !tbaa !9
  %1663 = sub nsw i32 %1661, %1662
  store i32 %1663, ptr %15, align 4, !tbaa !9
  %1664 = load i32, ptr %31, align 4, !tbaa !9
  %1665 = load ptr, ptr %9, align 8, !tbaa !5
  %1666 = load i32, ptr %31, align 4, !tbaa !9
  %1667 = add nsw i32 %1666, 1
  %1668 = load i32, ptr %31, align 4, !tbaa !9
  %1669 = load i32, ptr %13, align 4, !tbaa !9
  %1670 = mul nsw i32 %1668, %1669
  %1671 = add nsw i32 %1667, %1670
  %1672 = sext i32 %1671 to i64
  %1673 = getelementptr inbounds %struct.complex, ptr %1665, i64 %1672
  %1674 = call i32 @icamax_(ptr noundef %15, ptr noundef %1673, ptr noundef @c__1)
  %1675 = add nsw i32 %1664, %1674
  store i32 %1675, ptr %32, align 4, !tbaa !9
  %1676 = load i32, ptr %32, align 4, !tbaa !9
  %1677 = load i32, ptr %31, align 4, !tbaa !9
  %1678 = load i32, ptr %13, align 4, !tbaa !9
  %1679 = mul nsw i32 %1677, %1678
  %1680 = add nsw i32 %1676, %1679
  store i32 %1680, ptr %15, align 4, !tbaa !9
  %1681 = load float, ptr %52, align 4, !tbaa !11
  store float %1681, ptr %23, align 4, !tbaa !11
  %1682 = load ptr, ptr %9, align 8, !tbaa !5
  %1683 = load i32, ptr %15, align 4, !tbaa !9
  %1684 = sext i32 %1683 to i64
  %1685 = getelementptr inbounds %struct.complex, ptr %1682, i64 %1684
  %1686 = getelementptr inbounds %struct.complex, ptr %1685, i32 0, i32 0
  %1687 = load float, ptr %1686, align 4, !tbaa !13
  store float %1687, ptr %21, align 4, !tbaa !11
  %1688 = load float, ptr %21, align 4, !tbaa !11
  %1689 = fcmp oge float %1688, 0.000000e+00
  br i1 %1689, label %1690, label %1692

1690:                                             ; preds = %1659
  %1691 = load float, ptr %21, align 4, !tbaa !11
  br label %1695

1692:                                             ; preds = %1659
  %1693 = load float, ptr %21, align 4, !tbaa !11
  %1694 = fneg float %1693
  br label %1695

1695:                                             ; preds = %1692, %1690
  %1696 = phi float [ %1691, %1690 ], [ %1694, %1692 ]
  %1697 = load ptr, ptr %9, align 8, !tbaa !5
  %1698 = load i32, ptr %32, align 4, !tbaa !9
  %1699 = load i32, ptr %31, align 4, !tbaa !9
  %1700 = load i32, ptr %13, align 4, !tbaa !9
  %1701 = mul nsw i32 %1699, %1700
  %1702 = add nsw i32 %1698, %1701
  %1703 = sext i32 %1702 to i64
  %1704 = getelementptr inbounds %struct.complex, ptr %1697, i64 %1703
  %1705 = call <2 x float> @Cf(ptr noundef %1704)
  store <2 x float> %1705, ptr %68, align 4
  %1706 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 0
  %1707 = load float, ptr %1706, align 4
  %1708 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 1
  %1709 = load float, ptr %1708, align 4
  store float %1709, ptr %22, align 4, !tbaa !11
  %1710 = load float, ptr %22, align 4, !tbaa !11
  %1711 = fcmp oge float %1710, 0.000000e+00
  br i1 %1711, label %1712, label %1714

1712:                                             ; preds = %1695
  %1713 = load float, ptr %22, align 4, !tbaa !11
  br label %1717

1714:                                             ; preds = %1695
  %1715 = load float, ptr %22, align 4, !tbaa !11
  %1716 = fneg float %1715
  br label %1717

1717:                                             ; preds = %1714, %1712
  %1718 = phi float [ %1713, %1712 ], [ %1716, %1714 ]
  %1719 = fadd float %1696, %1718
  store float %1719, ptr %24, align 4, !tbaa !11
  %1720 = load float, ptr %23, align 4, !tbaa !11
  %1721 = load float, ptr %24, align 4, !tbaa !11
  %1722 = fcmp oge float %1720, %1721
  br i1 %1722, label %1723, label %1725

1723:                                             ; preds = %1717
  %1724 = load float, ptr %23, align 4, !tbaa !11
  br label %1727

1725:                                             ; preds = %1717
  %1726 = load float, ptr %24, align 4, !tbaa !11
  br label %1727

1727:                                             ; preds = %1725, %1723
  %1728 = phi float [ %1724, %1723 ], [ %1726, %1725 ]
  store float %1728, ptr %52, align 4, !tbaa !11
  br label %1729

1729:                                             ; preds = %1727, %1652
  %1730 = load float, ptr %48, align 4, !tbaa !11
  %1731 = load float, ptr %38, align 4, !tbaa !11
  %1732 = load float, ptr %51, align 4, !tbaa !11
  %1733 = fmul float %1731, %1732
  %1734 = load float, ptr %51, align 4, !tbaa !11
  %1735 = load float, ptr %52, align 4, !tbaa !11
  %1736 = fdiv float %1734, %1735
  %1737 = fmul float %1733, %1736
  %1738 = fcmp oge float %1730, %1737
  br i1 %1738, label %1739, label %1741

1739:                                             ; preds = %1729
  %1740 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %1740, ptr %47, align 4, !tbaa !9
  br label %1771

1741:                                             ; preds = %1729
  %1742 = load i32, ptr %31, align 4, !tbaa !9
  %1743 = load i32, ptr %31, align 4, !tbaa !9
  %1744 = load i32, ptr %13, align 4, !tbaa !9
  %1745 = mul nsw i32 %1743, %1744
  %1746 = add nsw i32 %1742, %1745
  store i32 %1746, ptr %15, align 4, !tbaa !9
  %1747 = load ptr, ptr %9, align 8, !tbaa !5
  %1748 = load i32, ptr %15, align 4, !tbaa !9
  %1749 = sext i32 %1748 to i64
  %1750 = getelementptr inbounds %struct.complex, ptr %1747, i64 %1749
  %1751 = getelementptr inbounds %struct.complex, ptr %1750, i32 0, i32 0
  %1752 = load float, ptr %1751, align 4, !tbaa !13
  store float %1752, ptr %21, align 4, !tbaa !11
  %1753 = load float, ptr %21, align 4, !tbaa !11
  %1754 = fcmp oge float %1753, 0.000000e+00
  br i1 %1754, label %1755, label %1757

1755:                                             ; preds = %1741
  %1756 = load float, ptr %21, align 4, !tbaa !11
  br label %1760

1757:                                             ; preds = %1741
  %1758 = load float, ptr %21, align 4, !tbaa !11
  %1759 = fneg float %1758
  br label %1760

1760:                                             ; preds = %1757, %1755
  %1761 = phi float [ %1756, %1755 ], [ %1759, %1757 ]
  %1762 = load float, ptr %38, align 4, !tbaa !11
  %1763 = load float, ptr %52, align 4, !tbaa !11
  %1764 = fmul float %1762, %1763
  %1765 = fcmp oge float %1761, %1764
  br i1 %1765, label %1766, label %1768

1766:                                             ; preds = %1760
  %1767 = load i32, ptr %31, align 4, !tbaa !9
  store i32 %1767, ptr %47, align 4, !tbaa !9
  br label %1770

1768:                                             ; preds = %1760
  %1769 = load i32, ptr %31, align 4, !tbaa !9
  store i32 %1769, ptr %47, align 4, !tbaa !9
  store i32 2, ptr %39, align 4, !tbaa !9
  br label %1770

1770:                                             ; preds = %1768, %1766
  br label %1771

1771:                                             ; preds = %1770, %1739
  br label %1772

1772:                                             ; preds = %1771, %1593
  %1773 = load i32, ptr %36, align 4, !tbaa !9
  %1774 = load i32, ptr %39, align 4, !tbaa !9
  %1775 = add nsw i32 %1773, %1774
  %1776 = sub nsw i32 %1775, 1
  store i32 %1776, ptr %46, align 4, !tbaa !9
  %1777 = load i32, ptr %47, align 4, !tbaa !9
  %1778 = load i32, ptr %46, align 4, !tbaa !9
  %1779 = icmp ne i32 %1777, %1778
  br i1 %1779, label %1780, label %2093

1780:                                             ; preds = %1772
  %1781 = load i32, ptr %47, align 4, !tbaa !9
  %1782 = load ptr, ptr %8, align 8, !tbaa !5
  %1783 = load i32, ptr %1782, align 4, !tbaa !9
  %1784 = icmp slt i32 %1781, %1783
  br i1 %1784, label %1785, label %1808

1785:                                             ; preds = %1780
  %1786 = load ptr, ptr %8, align 8, !tbaa !5
  %1787 = load i32, ptr %1786, align 4, !tbaa !9
  %1788 = load i32, ptr %47, align 4, !tbaa !9
  %1789 = sub nsw i32 %1787, %1788
  store i32 %1789, ptr %15, align 4, !tbaa !9
  %1790 = load ptr, ptr %9, align 8, !tbaa !5
  %1791 = load i32, ptr %47, align 4, !tbaa !9
  %1792 = add nsw i32 %1791, 1
  %1793 = load i32, ptr %46, align 4, !tbaa !9
  %1794 = load i32, ptr %13, align 4, !tbaa !9
  %1795 = mul nsw i32 %1793, %1794
  %1796 = add nsw i32 %1792, %1795
  %1797 = sext i32 %1796 to i64
  %1798 = getelementptr inbounds %struct.complex, ptr %1790, i64 %1797
  %1799 = load ptr, ptr %9, align 8, !tbaa !5
  %1800 = load i32, ptr %47, align 4, !tbaa !9
  %1801 = add nsw i32 %1800, 1
  %1802 = load i32, ptr %47, align 4, !tbaa !9
  %1803 = load i32, ptr %13, align 4, !tbaa !9
  %1804 = mul nsw i32 %1802, %1803
  %1805 = add nsw i32 %1801, %1804
  %1806 = sext i32 %1805 to i64
  %1807 = getelementptr inbounds %struct.complex, ptr %1799, i64 %1806
  call void @cswap_(ptr noundef %15, ptr noundef %1798, ptr noundef @c__1, ptr noundef %1807, ptr noundef @c__1)
  br label %1808

1808:                                             ; preds = %1785, %1780
  %1809 = load i32, ptr %47, align 4, !tbaa !9
  %1810 = sub nsw i32 %1809, 1
  store i32 %1810, ptr %15, align 4, !tbaa !9
  %1811 = load i32, ptr %46, align 4, !tbaa !9
  %1812 = add nsw i32 %1811, 1
  store i32 %1812, ptr %35, align 4, !tbaa !9
  br label %1813

1813:                                             ; preds = %1896, %1808
  %1814 = load i32, ptr %35, align 4, !tbaa !9
  %1815 = load i32, ptr %15, align 4, !tbaa !9
  %1816 = icmp sle i32 %1814, %1815
  br i1 %1816, label %1817, label %1899

1817:                                             ; preds = %1813
  %1818 = load ptr, ptr %9, align 8, !tbaa !5
  %1819 = load i32, ptr %35, align 4, !tbaa !9
  %1820 = load i32, ptr %46, align 4, !tbaa !9
  %1821 = load i32, ptr %13, align 4, !tbaa !9
  %1822 = mul nsw i32 %1820, %1821
  %1823 = add nsw i32 %1819, %1822
  %1824 = sext i32 %1823 to i64
  %1825 = getelementptr inbounds %struct.complex, ptr %1818, i64 %1824
  %1826 = call <2 x float> @Cf(ptr noundef %1825)
  store <2 x float> %1826, ptr %69, align 4
  %1827 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 0
  %1828 = load float, ptr %1827, align 4
  %1829 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 1
  %1830 = load float, ptr %1829, align 4
  %1831 = fneg float %1830
  %1832 = call ptr @_pCf(ptr noundef %25)
  %1833 = getelementptr inbounds { float, float }, ptr %1832, i32 0, i32 0
  %1834 = getelementptr inbounds { float, float }, ptr %1832, i32 0, i32 1
  store float %1828, ptr %1833, align 4
  store float %1831, ptr %1834, align 4
  %1835 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1836 = load float, ptr %1835, align 4, !tbaa !13
  %1837 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  store float %1836, ptr %1837, align 4, !tbaa !13
  %1838 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1839 = load float, ptr %1838, align 4, !tbaa !15
  %1840 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  store float %1839, ptr %1840, align 4, !tbaa !15
  %1841 = load i32, ptr %35, align 4, !tbaa !9
  %1842 = load i32, ptr %46, align 4, !tbaa !9
  %1843 = load i32, ptr %13, align 4, !tbaa !9
  %1844 = mul nsw i32 %1842, %1843
  %1845 = add nsw i32 %1841, %1844
  store i32 %1845, ptr %16, align 4, !tbaa !9
  %1846 = load ptr, ptr %9, align 8, !tbaa !5
  %1847 = load i32, ptr %47, align 4, !tbaa !9
  %1848 = load i32, ptr %35, align 4, !tbaa !9
  %1849 = load i32, ptr %13, align 4, !tbaa !9
  %1850 = mul nsw i32 %1848, %1849
  %1851 = add nsw i32 %1847, %1850
  %1852 = sext i32 %1851 to i64
  %1853 = getelementptr inbounds %struct.complex, ptr %1846, i64 %1852
  %1854 = call <2 x float> @Cf(ptr noundef %1853)
  store <2 x float> %1854, ptr %70, align 4
  %1855 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 0
  %1856 = load float, ptr %1855, align 4
  %1857 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 1
  %1858 = load float, ptr %1857, align 4
  %1859 = fneg float %1858
  %1860 = call ptr @_pCf(ptr noundef %25)
  %1861 = getelementptr inbounds { float, float }, ptr %1860, i32 0, i32 0
  %1862 = getelementptr inbounds { float, float }, ptr %1860, i32 0, i32 1
  store float %1856, ptr %1861, align 4
  store float %1859, ptr %1862, align 4
  %1863 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1864 = load float, ptr %1863, align 4, !tbaa !13
  %1865 = load ptr, ptr %9, align 8, !tbaa !5
  %1866 = load i32, ptr %16, align 4, !tbaa !9
  %1867 = sext i32 %1866 to i64
  %1868 = getelementptr inbounds %struct.complex, ptr %1865, i64 %1867
  %1869 = getelementptr inbounds %struct.complex, ptr %1868, i32 0, i32 0
  store float %1864, ptr %1869, align 4, !tbaa !13
  %1870 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1871 = load float, ptr %1870, align 4, !tbaa !15
  %1872 = load ptr, ptr %9, align 8, !tbaa !5
  %1873 = load i32, ptr %16, align 4, !tbaa !9
  %1874 = sext i32 %1873 to i64
  %1875 = getelementptr inbounds %struct.complex, ptr %1872, i64 %1874
  %1876 = getelementptr inbounds %struct.complex, ptr %1875, i32 0, i32 1
  store float %1871, ptr %1876, align 4, !tbaa !15
  %1877 = load i32, ptr %47, align 4, !tbaa !9
  %1878 = load i32, ptr %35, align 4, !tbaa !9
  %1879 = load i32, ptr %13, align 4, !tbaa !9
  %1880 = mul nsw i32 %1878, %1879
  %1881 = add nsw i32 %1877, %1880
  store i32 %1881, ptr %16, align 4, !tbaa !9
  %1882 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  %1883 = load float, ptr %1882, align 4, !tbaa !13
  %1884 = load ptr, ptr %9, align 8, !tbaa !5
  %1885 = load i32, ptr %16, align 4, !tbaa !9
  %1886 = sext i32 %1885 to i64
  %1887 = getelementptr inbounds %struct.complex, ptr %1884, i64 %1886
  %1888 = getelementptr inbounds %struct.complex, ptr %1887, i32 0, i32 0
  store float %1883, ptr %1888, align 4, !tbaa !13
  %1889 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  %1890 = load float, ptr %1889, align 4, !tbaa !15
  %1891 = load ptr, ptr %9, align 8, !tbaa !5
  %1892 = load i32, ptr %16, align 4, !tbaa !9
  %1893 = sext i32 %1892 to i64
  %1894 = getelementptr inbounds %struct.complex, ptr %1891, i64 %1893
  %1895 = getelementptr inbounds %struct.complex, ptr %1894, i32 0, i32 1
  store float %1890, ptr %1895, align 4, !tbaa !15
  br label %1896

1896:                                             ; preds = %1817
  %1897 = load i32, ptr %35, align 4, !tbaa !9
  %1898 = add nsw i32 %1897, 1
  store i32 %1898, ptr %35, align 4, !tbaa !9
  br label %1813, !llvm.loop !20

1899:                                             ; preds = %1813
  %1900 = load i32, ptr %47, align 4, !tbaa !9
  %1901 = load i32, ptr %46, align 4, !tbaa !9
  %1902 = load i32, ptr %13, align 4, !tbaa !9
  %1903 = mul nsw i32 %1901, %1902
  %1904 = add nsw i32 %1900, %1903
  store i32 %1904, ptr %15, align 4, !tbaa !9
  %1905 = load ptr, ptr %9, align 8, !tbaa !5
  %1906 = load i32, ptr %47, align 4, !tbaa !9
  %1907 = load i32, ptr %46, align 4, !tbaa !9
  %1908 = load i32, ptr %13, align 4, !tbaa !9
  %1909 = mul nsw i32 %1907, %1908
  %1910 = add nsw i32 %1906, %1909
  %1911 = sext i32 %1910 to i64
  %1912 = getelementptr inbounds %struct.complex, ptr %1905, i64 %1911
  %1913 = call <2 x float> @Cf(ptr noundef %1912)
  store <2 x float> %1913, ptr %71, align 4
  %1914 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 0
  %1915 = load float, ptr %1914, align 4
  %1916 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 1
  %1917 = load float, ptr %1916, align 4
  %1918 = fneg float %1917
  %1919 = call ptr @_pCf(ptr noundef %25)
  %1920 = getelementptr inbounds { float, float }, ptr %1919, i32 0, i32 0
  %1921 = getelementptr inbounds { float, float }, ptr %1919, i32 0, i32 1
  store float %1915, ptr %1920, align 4
  store float %1918, ptr %1921, align 4
  %1922 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1923 = load float, ptr %1922, align 4, !tbaa !13
  %1924 = load ptr, ptr %9, align 8, !tbaa !5
  %1925 = load i32, ptr %15, align 4, !tbaa !9
  %1926 = sext i32 %1925 to i64
  %1927 = getelementptr inbounds %struct.complex, ptr %1924, i64 %1926
  %1928 = getelementptr inbounds %struct.complex, ptr %1927, i32 0, i32 0
  store float %1923, ptr %1928, align 4, !tbaa !13
  %1929 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1930 = load float, ptr %1929, align 4, !tbaa !15
  %1931 = load ptr, ptr %9, align 8, !tbaa !5
  %1932 = load i32, ptr %15, align 4, !tbaa !9
  %1933 = sext i32 %1932 to i64
  %1934 = getelementptr inbounds %struct.complex, ptr %1931, i64 %1933
  %1935 = getelementptr inbounds %struct.complex, ptr %1934, i32 0, i32 1
  store float %1930, ptr %1935, align 4, !tbaa !15
  %1936 = load i32, ptr %46, align 4, !tbaa !9
  %1937 = load i32, ptr %46, align 4, !tbaa !9
  %1938 = load i32, ptr %13, align 4, !tbaa !9
  %1939 = mul nsw i32 %1937, %1938
  %1940 = add nsw i32 %1936, %1939
  store i32 %1940, ptr %15, align 4, !tbaa !9
  %1941 = load ptr, ptr %9, align 8, !tbaa !5
  %1942 = load i32, ptr %15, align 4, !tbaa !9
  %1943 = sext i32 %1942 to i64
  %1944 = getelementptr inbounds %struct.complex, ptr %1941, i64 %1943
  %1945 = getelementptr inbounds %struct.complex, ptr %1944, i32 0, i32 0
  %1946 = load float, ptr %1945, align 4, !tbaa !13
  store float %1946, ptr %41, align 4, !tbaa !11
  %1947 = load i32, ptr %46, align 4, !tbaa !9
  %1948 = load i32, ptr %46, align 4, !tbaa !9
  %1949 = load i32, ptr %13, align 4, !tbaa !9
  %1950 = mul nsw i32 %1948, %1949
  %1951 = add nsw i32 %1947, %1950
  store i32 %1951, ptr %15, align 4, !tbaa !9
  %1952 = load i32, ptr %47, align 4, !tbaa !9
  %1953 = load i32, ptr %47, align 4, !tbaa !9
  %1954 = load i32, ptr %13, align 4, !tbaa !9
  %1955 = mul nsw i32 %1953, %1954
  %1956 = add nsw i32 %1952, %1955
  store i32 %1956, ptr %16, align 4, !tbaa !9
  %1957 = load ptr, ptr %9, align 8, !tbaa !5
  %1958 = load i32, ptr %16, align 4, !tbaa !9
  %1959 = sext i32 %1958 to i64
  %1960 = getelementptr inbounds %struct.complex, ptr %1957, i64 %1959
  %1961 = getelementptr inbounds %struct.complex, ptr %1960, i32 0, i32 0
  %1962 = load float, ptr %1961, align 4, !tbaa !13
  store float %1962, ptr %21, align 4, !tbaa !11
  %1963 = load float, ptr %21, align 4, !tbaa !11
  %1964 = load ptr, ptr %9, align 8, !tbaa !5
  %1965 = load i32, ptr %15, align 4, !tbaa !9
  %1966 = sext i32 %1965 to i64
  %1967 = getelementptr inbounds %struct.complex, ptr %1964, i64 %1966
  %1968 = getelementptr inbounds %struct.complex, ptr %1967, i32 0, i32 0
  store float %1963, ptr %1968, align 4, !tbaa !13
  %1969 = load ptr, ptr %9, align 8, !tbaa !5
  %1970 = load i32, ptr %15, align 4, !tbaa !9
  %1971 = sext i32 %1970 to i64
  %1972 = getelementptr inbounds %struct.complex, ptr %1969, i64 %1971
  %1973 = getelementptr inbounds %struct.complex, ptr %1972, i32 0, i32 1
  store float 0.000000e+00, ptr %1973, align 4, !tbaa !15
  %1974 = load i32, ptr %47, align 4, !tbaa !9
  %1975 = load i32, ptr %47, align 4, !tbaa !9
  %1976 = load i32, ptr %13, align 4, !tbaa !9
  %1977 = mul nsw i32 %1975, %1976
  %1978 = add nsw i32 %1974, %1977
  store i32 %1978, ptr %15, align 4, !tbaa !9
  %1979 = load float, ptr %41, align 4, !tbaa !11
  %1980 = load ptr, ptr %9, align 8, !tbaa !5
  %1981 = load i32, ptr %15, align 4, !tbaa !9
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds %struct.complex, ptr %1980, i64 %1982
  %1984 = getelementptr inbounds %struct.complex, ptr %1983, i32 0, i32 0
  store float %1979, ptr %1984, align 4, !tbaa !13
  %1985 = load ptr, ptr %9, align 8, !tbaa !5
  %1986 = load i32, ptr %15, align 4, !tbaa !9
  %1987 = sext i32 %1986 to i64
  %1988 = getelementptr inbounds %struct.complex, ptr %1985, i64 %1987
  %1989 = getelementptr inbounds %struct.complex, ptr %1988, i32 0, i32 1
  store float 0.000000e+00, ptr %1989, align 4, !tbaa !15
  %1990 = load i32, ptr %39, align 4, !tbaa !9
  %1991 = icmp eq i32 %1990, 2
  br i1 %1991, label %1992, label %2092

1992:                                             ; preds = %1899
  %1993 = load i32, ptr %36, align 4, !tbaa !9
  %1994 = load i32, ptr %36, align 4, !tbaa !9
  %1995 = load i32, ptr %13, align 4, !tbaa !9
  %1996 = mul nsw i32 %1994, %1995
  %1997 = add nsw i32 %1993, %1996
  store i32 %1997, ptr %15, align 4, !tbaa !9
  %1998 = load i32, ptr %36, align 4, !tbaa !9
  %1999 = load i32, ptr %36, align 4, !tbaa !9
  %2000 = load i32, ptr %13, align 4, !tbaa !9
  %2001 = mul nsw i32 %1999, %2000
  %2002 = add nsw i32 %1998, %2001
  store i32 %2002, ptr %16, align 4, !tbaa !9
  %2003 = load ptr, ptr %9, align 8, !tbaa !5
  %2004 = load i32, ptr %16, align 4, !tbaa !9
  %2005 = sext i32 %2004 to i64
  %2006 = getelementptr inbounds %struct.complex, ptr %2003, i64 %2005
  %2007 = getelementptr inbounds %struct.complex, ptr %2006, i32 0, i32 0
  %2008 = load float, ptr %2007, align 4, !tbaa !13
  store float %2008, ptr %21, align 4, !tbaa !11
  %2009 = load float, ptr %21, align 4, !tbaa !11
  %2010 = load ptr, ptr %9, align 8, !tbaa !5
  %2011 = load i32, ptr %15, align 4, !tbaa !9
  %2012 = sext i32 %2011 to i64
  %2013 = getelementptr inbounds %struct.complex, ptr %2010, i64 %2012
  %2014 = getelementptr inbounds %struct.complex, ptr %2013, i32 0, i32 0
  store float %2009, ptr %2014, align 4, !tbaa !13
  %2015 = load ptr, ptr %9, align 8, !tbaa !5
  %2016 = load i32, ptr %15, align 4, !tbaa !9
  %2017 = sext i32 %2016 to i64
  %2018 = getelementptr inbounds %struct.complex, ptr %2015, i64 %2017
  %2019 = getelementptr inbounds %struct.complex, ptr %2018, i32 0, i32 1
  store float 0.000000e+00, ptr %2019, align 4, !tbaa !15
  %2020 = load i32, ptr %36, align 4, !tbaa !9
  %2021 = add nsw i32 %2020, 1
  %2022 = load i32, ptr %36, align 4, !tbaa !9
  %2023 = load i32, ptr %13, align 4, !tbaa !9
  %2024 = mul nsw i32 %2022, %2023
  %2025 = add nsw i32 %2021, %2024
  store i32 %2025, ptr %15, align 4, !tbaa !9
  %2026 = load ptr, ptr %9, align 8, !tbaa !5
  %2027 = load i32, ptr %15, align 4, !tbaa !9
  %2028 = sext i32 %2027 to i64
  %2029 = getelementptr inbounds %struct.complex, ptr %2026, i64 %2028
  %2030 = getelementptr inbounds %struct.complex, ptr %2029, i32 0, i32 0
  %2031 = load float, ptr %2030, align 4, !tbaa !13
  %2032 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  store float %2031, ptr %2032, align 4, !tbaa !13
  %2033 = load ptr, ptr %9, align 8, !tbaa !5
  %2034 = load i32, ptr %15, align 4, !tbaa !9
  %2035 = sext i32 %2034 to i64
  %2036 = getelementptr inbounds %struct.complex, ptr %2033, i64 %2035
  %2037 = getelementptr inbounds %struct.complex, ptr %2036, i32 0, i32 1
  %2038 = load float, ptr %2037, align 4, !tbaa !15
  %2039 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  store float %2038, ptr %2039, align 4, !tbaa !15
  %2040 = load i32, ptr %36, align 4, !tbaa !9
  %2041 = add nsw i32 %2040, 1
  %2042 = load i32, ptr %36, align 4, !tbaa !9
  %2043 = load i32, ptr %13, align 4, !tbaa !9
  %2044 = mul nsw i32 %2042, %2043
  %2045 = add nsw i32 %2041, %2044
  store i32 %2045, ptr %15, align 4, !tbaa !9
  %2046 = load i32, ptr %47, align 4, !tbaa !9
  %2047 = load i32, ptr %36, align 4, !tbaa !9
  %2048 = load i32, ptr %13, align 4, !tbaa !9
  %2049 = mul nsw i32 %2047, %2048
  %2050 = add nsw i32 %2046, %2049
  store i32 %2050, ptr %16, align 4, !tbaa !9
  %2051 = load ptr, ptr %9, align 8, !tbaa !5
  %2052 = load i32, ptr %16, align 4, !tbaa !9
  %2053 = sext i32 %2052 to i64
  %2054 = getelementptr inbounds %struct.complex, ptr %2051, i64 %2053
  %2055 = getelementptr inbounds %struct.complex, ptr %2054, i32 0, i32 0
  %2056 = load float, ptr %2055, align 4, !tbaa !13
  %2057 = load ptr, ptr %9, align 8, !tbaa !5
  %2058 = load i32, ptr %15, align 4, !tbaa !9
  %2059 = sext i32 %2058 to i64
  %2060 = getelementptr inbounds %struct.complex, ptr %2057, i64 %2059
  %2061 = getelementptr inbounds %struct.complex, ptr %2060, i32 0, i32 0
  store float %2056, ptr %2061, align 4, !tbaa !13
  %2062 = load ptr, ptr %9, align 8, !tbaa !5
  %2063 = load i32, ptr %16, align 4, !tbaa !9
  %2064 = sext i32 %2063 to i64
  %2065 = getelementptr inbounds %struct.complex, ptr %2062, i64 %2064
  %2066 = getelementptr inbounds %struct.complex, ptr %2065, i32 0, i32 1
  %2067 = load float, ptr %2066, align 4, !tbaa !15
  %2068 = load ptr, ptr %9, align 8, !tbaa !5
  %2069 = load i32, ptr %15, align 4, !tbaa !9
  %2070 = sext i32 %2069 to i64
  %2071 = getelementptr inbounds %struct.complex, ptr %2068, i64 %2070
  %2072 = getelementptr inbounds %struct.complex, ptr %2071, i32 0, i32 1
  store float %2067, ptr %2072, align 4, !tbaa !15
  %2073 = load i32, ptr %47, align 4, !tbaa !9
  %2074 = load i32, ptr %36, align 4, !tbaa !9
  %2075 = load i32, ptr %13, align 4, !tbaa !9
  %2076 = mul nsw i32 %2074, %2075
  %2077 = add nsw i32 %2073, %2076
  store i32 %2077, ptr %15, align 4, !tbaa !9
  %2078 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 0
  %2079 = load float, ptr %2078, align 4, !tbaa !13
  %2080 = load ptr, ptr %9, align 8, !tbaa !5
  %2081 = load i32, ptr %15, align 4, !tbaa !9
  %2082 = sext i32 %2081 to i64
  %2083 = getelementptr inbounds %struct.complex, ptr %2080, i64 %2082
  %2084 = getelementptr inbounds %struct.complex, ptr %2083, i32 0, i32 0
  store float %2079, ptr %2084, align 4, !tbaa !13
  %2085 = getelementptr inbounds %struct.complex, ptr %37, i32 0, i32 1
  %2086 = load float, ptr %2085, align 4, !tbaa !15
  %2087 = load ptr, ptr %9, align 8, !tbaa !5
  %2088 = load i32, ptr %15, align 4, !tbaa !9
  %2089 = sext i32 %2088 to i64
  %2090 = getelementptr inbounds %struct.complex, ptr %2087, i64 %2089
  %2091 = getelementptr inbounds %struct.complex, ptr %2090, i32 0, i32 1
  store float %2086, ptr %2091, align 4, !tbaa !15
  br label %2092

2092:                                             ; preds = %1992, %1899
  br label %2156

2093:                                             ; preds = %1772
  %2094 = load i32, ptr %36, align 4, !tbaa !9
  %2095 = load i32, ptr %36, align 4, !tbaa !9
  %2096 = load i32, ptr %13, align 4, !tbaa !9
  %2097 = mul nsw i32 %2095, %2096
  %2098 = add nsw i32 %2094, %2097
  store i32 %2098, ptr %15, align 4, !tbaa !9
  %2099 = load i32, ptr %36, align 4, !tbaa !9
  %2100 = load i32, ptr %36, align 4, !tbaa !9
  %2101 = load i32, ptr %13, align 4, !tbaa !9
  %2102 = mul nsw i32 %2100, %2101
  %2103 = add nsw i32 %2099, %2102
  store i32 %2103, ptr %16, align 4, !tbaa !9
  %2104 = load ptr, ptr %9, align 8, !tbaa !5
  %2105 = load i32, ptr %16, align 4, !tbaa !9
  %2106 = sext i32 %2105 to i64
  %2107 = getelementptr inbounds %struct.complex, ptr %2104, i64 %2106
  %2108 = getelementptr inbounds %struct.complex, ptr %2107, i32 0, i32 0
  %2109 = load float, ptr %2108, align 4, !tbaa !13
  store float %2109, ptr %21, align 4, !tbaa !11
  %2110 = load float, ptr %21, align 4, !tbaa !11
  %2111 = load ptr, ptr %9, align 8, !tbaa !5
  %2112 = load i32, ptr %15, align 4, !tbaa !9
  %2113 = sext i32 %2112 to i64
  %2114 = getelementptr inbounds %struct.complex, ptr %2111, i64 %2113
  %2115 = getelementptr inbounds %struct.complex, ptr %2114, i32 0, i32 0
  store float %2110, ptr %2115, align 4, !tbaa !13
  %2116 = load ptr, ptr %9, align 8, !tbaa !5
  %2117 = load i32, ptr %15, align 4, !tbaa !9
  %2118 = sext i32 %2117 to i64
  %2119 = getelementptr inbounds %struct.complex, ptr %2116, i64 %2118
  %2120 = getelementptr inbounds %struct.complex, ptr %2119, i32 0, i32 1
  store float 0.000000e+00, ptr %2120, align 4, !tbaa !15
  %2121 = load i32, ptr %39, align 4, !tbaa !9
  %2122 = icmp eq i32 %2121, 2
  br i1 %2122, label %2123, label %2155

2123:                                             ; preds = %2093
  %2124 = load i32, ptr %36, align 4, !tbaa !9
  %2125 = add nsw i32 %2124, 1
  %2126 = load i32, ptr %36, align 4, !tbaa !9
  %2127 = add nsw i32 %2126, 1
  %2128 = load i32, ptr %13, align 4, !tbaa !9
  %2129 = mul nsw i32 %2127, %2128
  %2130 = add nsw i32 %2125, %2129
  store i32 %2130, ptr %15, align 4, !tbaa !9
  %2131 = load i32, ptr %36, align 4, !tbaa !9
  %2132 = add nsw i32 %2131, 1
  %2133 = load i32, ptr %36, align 4, !tbaa !9
  %2134 = add nsw i32 %2133, 1
  %2135 = load i32, ptr %13, align 4, !tbaa !9
  %2136 = mul nsw i32 %2134, %2135
  %2137 = add nsw i32 %2132, %2136
  store i32 %2137, ptr %16, align 4, !tbaa !9
  %2138 = load ptr, ptr %9, align 8, !tbaa !5
  %2139 = load i32, ptr %16, align 4, !tbaa !9
  %2140 = sext i32 %2139 to i64
  %2141 = getelementptr inbounds %struct.complex, ptr %2138, i64 %2140
  %2142 = getelementptr inbounds %struct.complex, ptr %2141, i32 0, i32 0
  %2143 = load float, ptr %2142, align 4, !tbaa !13
  store float %2143, ptr %21, align 4, !tbaa !11
  %2144 = load float, ptr %21, align 4, !tbaa !11
  %2145 = load ptr, ptr %9, align 8, !tbaa !5
  %2146 = load i32, ptr %15, align 4, !tbaa !9
  %2147 = sext i32 %2146 to i64
  %2148 = getelementptr inbounds %struct.complex, ptr %2145, i64 %2147
  %2149 = getelementptr inbounds %struct.complex, ptr %2148, i32 0, i32 0
  store float %2144, ptr %2149, align 4, !tbaa !13
  %2150 = load ptr, ptr %9, align 8, !tbaa !5
  %2151 = load i32, ptr %15, align 4, !tbaa !9
  %2152 = sext i32 %2151 to i64
  %2153 = getelementptr inbounds %struct.complex, ptr %2150, i64 %2152
  %2154 = getelementptr inbounds %struct.complex, ptr %2153, i32 0, i32 1
  store float 0.000000e+00, ptr %2154, align 4, !tbaa !15
  br label %2155

2155:                                             ; preds = %2123, %2093
  br label %2156

2156:                                             ; preds = %2155, %2092
  %2157 = load i32, ptr %39, align 4, !tbaa !9
  %2158 = icmp eq i32 %2157, 1
  br i1 %2158, label %2159, label %2218

2159:                                             ; preds = %2156
  %2160 = load i32, ptr %36, align 4, !tbaa !9
  %2161 = load ptr, ptr %8, align 8, !tbaa !5
  %2162 = load i32, ptr %2161, align 4, !tbaa !9
  %2163 = icmp slt i32 %2160, %2162
  br i1 %2163, label %2164, label %2217

2164:                                             ; preds = %2159
  %2165 = load i32, ptr %36, align 4, !tbaa !9
  %2166 = load i32, ptr %36, align 4, !tbaa !9
  %2167 = load i32, ptr %13, align 4, !tbaa !9
  %2168 = mul nsw i32 %2166, %2167
  %2169 = add nsw i32 %2165, %2168
  store i32 %2169, ptr %15, align 4, !tbaa !9
  %2170 = load ptr, ptr %9, align 8, !tbaa !5
  %2171 = load i32, ptr %15, align 4, !tbaa !9
  %2172 = sext i32 %2171 to i64
  %2173 = getelementptr inbounds %struct.complex, ptr %2170, i64 %2172
  %2174 = getelementptr inbounds %struct.complex, ptr %2173, i32 0, i32 0
  %2175 = load float, ptr %2174, align 4, !tbaa !13
  %2176 = fdiv float 1.000000e+00, %2175
  store float %2176, ptr %41, align 4, !tbaa !11
  %2177 = load ptr, ptr %8, align 8, !tbaa !5
  %2178 = load i32, ptr %2177, align 4, !tbaa !9
  %2179 = load i32, ptr %36, align 4, !tbaa !9
  %2180 = sub nsw i32 %2178, %2179
  store i32 %2180, ptr %15, align 4, !tbaa !9
  %2181 = load float, ptr %41, align 4, !tbaa !11
  %2182 = fneg float %2181
  store float %2182, ptr %21, align 4, !tbaa !11
  %2183 = load ptr, ptr %7, align 8, !tbaa !5
  %2184 = load ptr, ptr %9, align 8, !tbaa !5
  %2185 = load i32, ptr %36, align 4, !tbaa !9
  %2186 = add nsw i32 %2185, 1
  %2187 = load i32, ptr %36, align 4, !tbaa !9
  %2188 = load i32, ptr %13, align 4, !tbaa !9
  %2189 = mul nsw i32 %2187, %2188
  %2190 = add nsw i32 %2186, %2189
  %2191 = sext i32 %2190 to i64
  %2192 = getelementptr inbounds %struct.complex, ptr %2184, i64 %2191
  %2193 = load ptr, ptr %9, align 8, !tbaa !5
  %2194 = load i32, ptr %36, align 4, !tbaa !9
  %2195 = add nsw i32 %2194, 1
  %2196 = load i32, ptr %36, align 4, !tbaa !9
  %2197 = add nsw i32 %2196, 1
  %2198 = load i32, ptr %13, align 4, !tbaa !9
  %2199 = mul nsw i32 %2197, %2198
  %2200 = add nsw i32 %2195, %2199
  %2201 = sext i32 %2200 to i64
  %2202 = getelementptr inbounds %struct.complex, ptr %2193, i64 %2201
  %2203 = load ptr, ptr %10, align 8, !tbaa !5
  call void @cher_(ptr noundef %2183, ptr noundef %15, ptr noundef %21, ptr noundef %2192, ptr noundef @c__1, ptr noundef %2202, ptr noundef %2203)
  %2204 = load ptr, ptr %8, align 8, !tbaa !5
  %2205 = load i32, ptr %2204, align 4, !tbaa !9
  %2206 = load i32, ptr %36, align 4, !tbaa !9
  %2207 = sub nsw i32 %2205, %2206
  store i32 %2207, ptr %15, align 4, !tbaa !9
  %2208 = load ptr, ptr %9, align 8, !tbaa !5
  %2209 = load i32, ptr %36, align 4, !tbaa !9
  %2210 = add nsw i32 %2209, 1
  %2211 = load i32, ptr %36, align 4, !tbaa !9
  %2212 = load i32, ptr %13, align 4, !tbaa !9
  %2213 = mul nsw i32 %2211, %2212
  %2214 = add nsw i32 %2210, %2213
  %2215 = sext i32 %2214 to i64
  %2216 = getelementptr inbounds %struct.complex, ptr %2208, i64 %2215
  call void @csscal_(ptr noundef %15, ptr noundef %41, ptr noundef %2216, ptr noundef @c__1)
  br label %2217

2217:                                             ; preds = %2164, %2159
  br label %2779

2218:                                             ; preds = %2156
  %2219 = load i32, ptr %36, align 4, !tbaa !9
  %2220 = load ptr, ptr %8, align 8, !tbaa !5
  %2221 = load i32, ptr %2220, align 4, !tbaa !9
  %2222 = sub nsw i32 %2221, 1
  %2223 = icmp slt i32 %2219, %2222
  br i1 %2223, label %2224, label %2778

2224:                                             ; preds = %2218
  %2225 = load i32, ptr %36, align 4, !tbaa !9
  %2226 = add nsw i32 %2225, 1
  %2227 = load i32, ptr %36, align 4, !tbaa !9
  %2228 = load i32, ptr %13, align 4, !tbaa !9
  %2229 = mul nsw i32 %2227, %2228
  %2230 = add nsw i32 %2226, %2229
  store i32 %2230, ptr %15, align 4, !tbaa !9
  %2231 = load ptr, ptr %9, align 8, !tbaa !5
  %2232 = load i32, ptr %15, align 4, !tbaa !9
  %2233 = sext i32 %2232 to i64
  %2234 = getelementptr inbounds %struct.complex, ptr %2231, i64 %2233
  %2235 = getelementptr inbounds %struct.complex, ptr %2234, i32 0, i32 0
  %2236 = load float, ptr %2235, align 4, !tbaa !13
  store float %2236, ptr %21, align 4, !tbaa !11
  %2237 = load ptr, ptr %9, align 8, !tbaa !5
  %2238 = load i32, ptr %36, align 4, !tbaa !9
  %2239 = add nsw i32 %2238, 1
  %2240 = load i32, ptr %36, align 4, !tbaa !9
  %2241 = load i32, ptr %13, align 4, !tbaa !9
  %2242 = mul nsw i32 %2240, %2241
  %2243 = add nsw i32 %2239, %2242
  %2244 = sext i32 %2243 to i64
  %2245 = getelementptr inbounds %struct.complex, ptr %2237, i64 %2244
  %2246 = call <2 x float> @Cf(ptr noundef %2245)
  store <2 x float> %2246, ptr %72, align 4
  %2247 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 0
  %2248 = load float, ptr %2247, align 4
  %2249 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 1
  %2250 = load float, ptr %2249, align 4
  store float %2250, ptr %22, align 4, !tbaa !11
  %2251 = call float @slapy2_(ptr noundef %21, ptr noundef %22)
  store float %2251, ptr %33, align 4, !tbaa !11
  %2252 = load i32, ptr %36, align 4, !tbaa !9
  %2253 = add nsw i32 %2252, 1
  %2254 = load i32, ptr %36, align 4, !tbaa !9
  %2255 = add nsw i32 %2254, 1
  %2256 = load i32, ptr %13, align 4, !tbaa !9
  %2257 = mul nsw i32 %2255, %2256
  %2258 = add nsw i32 %2253, %2257
  store i32 %2258, ptr %15, align 4, !tbaa !9
  %2259 = load ptr, ptr %9, align 8, !tbaa !5
  %2260 = load i32, ptr %15, align 4, !tbaa !9
  %2261 = sext i32 %2260 to i64
  %2262 = getelementptr inbounds %struct.complex, ptr %2259, i64 %2261
  %2263 = getelementptr inbounds %struct.complex, ptr %2262, i32 0, i32 0
  %2264 = load float, ptr %2263, align 4, !tbaa !13
  %2265 = load float, ptr %33, align 4, !tbaa !11
  %2266 = fdiv float %2264, %2265
  store float %2266, ptr %42, align 4, !tbaa !11
  %2267 = load i32, ptr %36, align 4, !tbaa !9
  %2268 = load i32, ptr %36, align 4, !tbaa !9
  %2269 = load i32, ptr %13, align 4, !tbaa !9
  %2270 = mul nsw i32 %2268, %2269
  %2271 = add nsw i32 %2267, %2270
  store i32 %2271, ptr %15, align 4, !tbaa !9
  %2272 = load ptr, ptr %9, align 8, !tbaa !5
  %2273 = load i32, ptr %15, align 4, !tbaa !9
  %2274 = sext i32 %2273 to i64
  %2275 = getelementptr inbounds %struct.complex, ptr %2272, i64 %2274
  %2276 = getelementptr inbounds %struct.complex, ptr %2275, i32 0, i32 0
  %2277 = load float, ptr %2276, align 4, !tbaa !13
  %2278 = load float, ptr %33, align 4, !tbaa !11
  %2279 = fdiv float %2277, %2278
  store float %2279, ptr %44, align 4, !tbaa !11
  %2280 = load float, ptr %42, align 4, !tbaa !11
  %2281 = load float, ptr %44, align 4, !tbaa !11
  %2282 = call float @llvm.fmuladd.f32(float %2280, float %2281, float -1.000000e+00)
  %2283 = fdiv float 1.000000e+00, %2282
  store float %2283, ptr %50, align 4, !tbaa !11
  %2284 = load i32, ptr %36, align 4, !tbaa !9
  %2285 = add nsw i32 %2284, 1
  %2286 = load i32, ptr %36, align 4, !tbaa !9
  %2287 = load i32, ptr %13, align 4, !tbaa !9
  %2288 = mul nsw i32 %2286, %2287
  %2289 = add nsw i32 %2285, %2288
  store i32 %2289, ptr %15, align 4, !tbaa !9
  %2290 = load ptr, ptr %9, align 8, !tbaa !5
  %2291 = load i32, ptr %15, align 4, !tbaa !9
  %2292 = sext i32 %2291 to i64
  %2293 = getelementptr inbounds %struct.complex, ptr %2290, i64 %2292
  %2294 = getelementptr inbounds %struct.complex, ptr %2293, i32 0, i32 0
  %2295 = load float, ptr %2294, align 4, !tbaa !13
  %2296 = load float, ptr %33, align 4, !tbaa !11
  %2297 = fdiv float %2295, %2296
  %2298 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %2297, ptr %2298, align 4, !tbaa !13
  %2299 = load ptr, ptr %9, align 8, !tbaa !5
  %2300 = load i32, ptr %15, align 4, !tbaa !9
  %2301 = sext i32 %2300 to i64
  %2302 = getelementptr inbounds %struct.complex, ptr %2299, i64 %2301
  %2303 = getelementptr inbounds %struct.complex, ptr %2302, i32 0, i32 1
  %2304 = load float, ptr %2303, align 4, !tbaa !15
  %2305 = load float, ptr %33, align 4, !tbaa !11
  %2306 = fdiv float %2304, %2305
  %2307 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %2306, ptr %2307, align 4, !tbaa !15
  %2308 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %2309 = load float, ptr %2308, align 4, !tbaa !13
  %2310 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  store float %2309, ptr %2310, align 4, !tbaa !13
  %2311 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2312 = load float, ptr %2311, align 4, !tbaa !15
  %2313 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  store float %2312, ptr %2313, align 4, !tbaa !15
  %2314 = load float, ptr %50, align 4, !tbaa !11
  %2315 = load float, ptr %33, align 4, !tbaa !11
  %2316 = fdiv float %2314, %2315
  store float %2316, ptr %33, align 4, !tbaa !11
  %2317 = load ptr, ptr %8, align 8, !tbaa !5
  %2318 = load i32, ptr %2317, align 4, !tbaa !9
  store i32 %2318, ptr %15, align 4, !tbaa !9
  %2319 = load i32, ptr %36, align 4, !tbaa !9
  %2320 = add nsw i32 %2319, 2
  store i32 %2320, ptr %35, align 4, !tbaa !9
  br label %2321

2321:                                             ; preds = %2774, %2224
  %2322 = load i32, ptr %35, align 4, !tbaa !9
  %2323 = load i32, ptr %15, align 4, !tbaa !9
  %2324 = icmp sle i32 %2322, %2323
  br i1 %2324, label %2325, label %2777

2325:                                             ; preds = %2321
  %2326 = load i32, ptr %35, align 4, !tbaa !9
  %2327 = load i32, ptr %36, align 4, !tbaa !9
  %2328 = load i32, ptr %13, align 4, !tbaa !9
  %2329 = mul nsw i32 %2327, %2328
  %2330 = add nsw i32 %2326, %2329
  store i32 %2330, ptr %16, align 4, !tbaa !9
  %2331 = load float, ptr %42, align 4, !tbaa !11
  %2332 = load ptr, ptr %9, align 8, !tbaa !5
  %2333 = load i32, ptr %16, align 4, !tbaa !9
  %2334 = sext i32 %2333 to i64
  %2335 = getelementptr inbounds %struct.complex, ptr %2332, i64 %2334
  %2336 = getelementptr inbounds %struct.complex, ptr %2335, i32 0, i32 0
  %2337 = load float, ptr %2336, align 4, !tbaa !13
  %2338 = fmul float %2331, %2337
  %2339 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %2338, ptr %2339, align 4, !tbaa !13
  %2340 = load float, ptr %42, align 4, !tbaa !11
  %2341 = load ptr, ptr %9, align 8, !tbaa !5
  %2342 = load i32, ptr %16, align 4, !tbaa !9
  %2343 = sext i32 %2342 to i64
  %2344 = getelementptr inbounds %struct.complex, ptr %2341, i64 %2343
  %2345 = getelementptr inbounds %struct.complex, ptr %2344, i32 0, i32 1
  %2346 = load float, ptr %2345, align 4, !tbaa !15
  %2347 = fmul float %2340, %2346
  %2348 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %2347, ptr %2348, align 4, !tbaa !15
  %2349 = load i32, ptr %35, align 4, !tbaa !9
  %2350 = load i32, ptr %36, align 4, !tbaa !9
  %2351 = add nsw i32 %2350, 1
  %2352 = load i32, ptr %13, align 4, !tbaa !9
  %2353 = mul nsw i32 %2351, %2352
  %2354 = add nsw i32 %2349, %2353
  store i32 %2354, ptr %17, align 4, !tbaa !9
  %2355 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2356 = load float, ptr %2355, align 4, !tbaa !13
  %2357 = load ptr, ptr %9, align 8, !tbaa !5
  %2358 = load i32, ptr %17, align 4, !tbaa !9
  %2359 = sext i32 %2358 to i64
  %2360 = getelementptr inbounds %struct.complex, ptr %2357, i64 %2359
  %2361 = getelementptr inbounds %struct.complex, ptr %2360, i32 0, i32 0
  %2362 = load float, ptr %2361, align 4, !tbaa !13
  %2363 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2364 = load float, ptr %2363, align 4, !tbaa !15
  %2365 = load ptr, ptr %9, align 8, !tbaa !5
  %2366 = load i32, ptr %17, 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
  %2370 = load float, ptr %2369, align 4, !tbaa !15
  %2371 = fmul float %2364, %2370
  %2372 = fneg float %2371
  %2373 = call float @llvm.fmuladd.f32(float %2356, float %2362, float %2372)
  %2374 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  store float %2373, ptr %2374, align 4, !tbaa !13
  %2375 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2376 = load float, ptr %2375, align 4, !tbaa !13
  %2377 = load ptr, ptr %9, align 8, !tbaa !5
  %2378 = load i32, ptr %17, align 4, !tbaa !9
  %2379 = sext i32 %2378 to i64
  %2380 = getelementptr inbounds %struct.complex, ptr %2377, i64 %2379
  %2381 = getelementptr inbounds %struct.complex, ptr %2380, i32 0, i32 1
  %2382 = load float, ptr %2381, align 4, !tbaa !15
  %2383 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2384 = load float, ptr %2383, align 4, !tbaa !15
  %2385 = load ptr, ptr %9, align 8, !tbaa !5
  %2386 = load i32, ptr %17, align 4, !tbaa !9
  %2387 = sext i32 %2386 to i64
  %2388 = getelementptr inbounds %struct.complex, ptr %2385, i64 %2387
  %2389 = getelementptr inbounds %struct.complex, ptr %2388, i32 0, i32 0
  %2390 = load float, ptr %2389, align 4, !tbaa !13
  %2391 = fmul float %2384, %2390
  %2392 = call float @llvm.fmuladd.f32(float %2376, float %2382, float %2391)
  %2393 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  store float %2392, ptr %2393, align 4, !tbaa !15
  %2394 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %2395 = load float, ptr %2394, align 4, !tbaa !13
  %2396 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  %2397 = load float, ptr %2396, align 4, !tbaa !13
  %2398 = fsub float %2395, %2397
  %2399 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %2398, ptr %2399, align 4, !tbaa !13
  %2400 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %2401 = load float, ptr %2400, align 4, !tbaa !15
  %2402 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  %2403 = load float, ptr %2402, align 4, !tbaa !15
  %2404 = fsub float %2401, %2403
  %2405 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %2404, ptr %2405, align 4, !tbaa !15
  %2406 = load float, ptr %33, align 4, !tbaa !11
  %2407 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %2408 = load float, ptr %2407, align 4, !tbaa !13
  %2409 = fmul float %2406, %2408
  %2410 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %2409, ptr %2410, align 4, !tbaa !13
  %2411 = load float, ptr %33, align 4, !tbaa !11
  %2412 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %2413 = load float, ptr %2412, align 4, !tbaa !15
  %2414 = fmul float %2411, %2413
  %2415 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %2414, ptr %2415, align 4, !tbaa !15
  %2416 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %2417 = load float, ptr %2416, align 4, !tbaa !13
  %2418 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  store float %2417, ptr %2418, align 4, !tbaa !13
  %2419 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2420 = load float, ptr %2419, align 4, !tbaa !15
  %2421 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  store float %2420, ptr %2421, align 4, !tbaa !15
  %2422 = load i32, ptr %35, align 4, !tbaa !9
  %2423 = load i32, ptr %36, align 4, !tbaa !9
  %2424 = add nsw i32 %2423, 1
  %2425 = load i32, ptr %13, align 4, !tbaa !9
  %2426 = mul nsw i32 %2424, %2425
  %2427 = add nsw i32 %2422, %2426
  store i32 %2427, ptr %16, align 4, !tbaa !9
  %2428 = load float, ptr %44, align 4, !tbaa !11
  %2429 = load ptr, ptr %9, align 8, !tbaa !5
  %2430 = load i32, ptr %16, align 4, !tbaa !9
  %2431 = sext i32 %2430 to i64
  %2432 = getelementptr inbounds %struct.complex, ptr %2429, i64 %2431
  %2433 = getelementptr inbounds %struct.complex, ptr %2432, i32 0, i32 0
  %2434 = load float, ptr %2433, align 4, !tbaa !13
  %2435 = fmul float %2428, %2434
  %2436 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %2435, ptr %2436, align 4, !tbaa !13
  %2437 = load float, ptr %44, align 4, !tbaa !11
  %2438 = load ptr, ptr %9, align 8, !tbaa !5
  %2439 = load i32, ptr %16, align 4, !tbaa !9
  %2440 = sext i32 %2439 to i64
  %2441 = getelementptr inbounds %struct.complex, ptr %2438, i64 %2440
  %2442 = getelementptr inbounds %struct.complex, ptr %2441, i32 0, i32 1
  %2443 = load float, ptr %2442, align 4, !tbaa !15
  %2444 = fmul float %2437, %2443
  %2445 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %2444, ptr %2445, align 4, !tbaa !15
  %2446 = call <2 x float> @Cf(ptr noundef %45)
  store <2 x float> %2446, ptr %73, align 4
  %2447 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 0
  %2448 = load float, ptr %2447, align 4
  %2449 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 1
  %2450 = load float, ptr %2449, align 4
  %2451 = fneg float %2450
  %2452 = call ptr @_pCf(ptr noundef %29)
  %2453 = getelementptr inbounds { float, float }, ptr %2452, i32 0, i32 0
  %2454 = getelementptr inbounds { float, float }, ptr %2452, i32 0, i32 1
  store float %2448, ptr %2453, align 4
  store float %2451, ptr %2454, align 4
  %2455 = load i32, ptr %35, align 4, !tbaa !9
  %2456 = load i32, ptr %36, align 4, !tbaa !9
  %2457 = load i32, ptr %13, align 4, !tbaa !9
  %2458 = mul nsw i32 %2456, %2457
  %2459 = add nsw i32 %2455, %2458
  store i32 %2459, ptr %17, align 4, !tbaa !9
  %2460 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %2461 = load float, ptr %2460, align 4, !tbaa !13
  %2462 = load ptr, ptr %9, align 8, !tbaa !5
  %2463 = load i32, ptr %17, align 4, !tbaa !9
  %2464 = sext i32 %2463 to i64
  %2465 = getelementptr inbounds %struct.complex, ptr %2462, i64 %2464
  %2466 = getelementptr inbounds %struct.complex, ptr %2465, i32 0, i32 0
  %2467 = load float, ptr %2466, align 4, !tbaa !13
  %2468 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %2469 = load float, ptr %2468, align 4, !tbaa !15
  %2470 = load ptr, ptr %9, align 8, !tbaa !5
  %2471 = load i32, ptr %17, align 4, !tbaa !9
  %2472 = sext i32 %2471 to i64
  %2473 = getelementptr inbounds %struct.complex, ptr %2470, i64 %2472
  %2474 = getelementptr inbounds %struct.complex, ptr %2473, i32 0, i32 1
  %2475 = load float, ptr %2474, align 4, !tbaa !15
  %2476 = fmul float %2469, %2475
  %2477 = fneg float %2476
  %2478 = call float @llvm.fmuladd.f32(float %2461, float %2467, float %2477)
  %2479 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  store float %2478, ptr %2479, align 4, !tbaa !13
  %2480 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %2481 = load float, ptr %2480, align 4, !tbaa !13
  %2482 = load ptr, ptr %9, align 8, !tbaa !5
  %2483 = load i32, ptr %17, 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
  %2487 = load float, ptr %2486, align 4, !tbaa !15
  %2488 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %2489 = load float, ptr %2488, align 4, !tbaa !15
  %2490 = load ptr, ptr %9, align 8, !tbaa !5
  %2491 = load i32, ptr %17, align 4, !tbaa !9
  %2492 = sext i32 %2491 to i64
  %2493 = getelementptr inbounds %struct.complex, ptr %2490, i64 %2492
  %2494 = getelementptr inbounds %struct.complex, ptr %2493, i32 0, i32 0
  %2495 = load float, ptr %2494, align 4, !tbaa !13
  %2496 = fmul float %2489, %2495
  %2497 = call float @llvm.fmuladd.f32(float %2481, float %2487, float %2496)
  %2498 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  store float %2497, ptr %2498, align 4, !tbaa !15
  %2499 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %2500 = load float, ptr %2499, align 4, !tbaa !13
  %2501 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  %2502 = load float, ptr %2501, align 4, !tbaa !13
  %2503 = fsub float %2500, %2502
  %2504 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %2503, ptr %2504, align 4, !tbaa !13
  %2505 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %2506 = load float, ptr %2505, align 4, !tbaa !15
  %2507 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  %2508 = load float, ptr %2507, align 4, !tbaa !15
  %2509 = fsub float %2506, %2508
  %2510 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %2509, ptr %2510, align 4, !tbaa !15
  %2511 = load float, ptr %33, align 4, !tbaa !11
  %2512 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %2513 = load float, ptr %2512, align 4, !tbaa !13
  %2514 = fmul float %2511, %2513
  %2515 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %2514, ptr %2515, align 4, !tbaa !13
  %2516 = load float, ptr %33, align 4, !tbaa !11
  %2517 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %2518 = load float, ptr %2517, align 4, !tbaa !15
  %2519 = fmul float %2516, %2518
  %2520 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %2519, ptr %2520, align 4, !tbaa !15
  %2521 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %2522 = load float, ptr %2521, align 4, !tbaa !13
  %2523 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  store float %2522, ptr %2523, align 4, !tbaa !13
  %2524 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2525 = load float, ptr %2524, align 4, !tbaa !15
  %2526 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  store float %2525, ptr %2526, align 4, !tbaa !15
  %2527 = load ptr, ptr %8, align 8, !tbaa !5
  %2528 = load i32, ptr %2527, align 4, !tbaa !9
  store i32 %2528, ptr %16, align 4, !tbaa !9
  %2529 = load i32, ptr %35, align 4, !tbaa !9
  store i32 %2529, ptr %34, align 4, !tbaa !9
  br label %2530

2530:                                             ; preds = %2698, %2325
  %2531 = load i32, ptr %34, align 4, !tbaa !9
  %2532 = load i32, ptr %16, align 4, !tbaa !9
  %2533 = icmp sle i32 %2531, %2532
  br i1 %2533, label %2534, label %2701

2534:                                             ; preds = %2530
  %2535 = load i32, ptr %34, align 4, !tbaa !9
  %2536 = load i32, ptr %35, align 4, !tbaa !9
  %2537 = load i32, ptr %13, align 4, !tbaa !9
  %2538 = mul nsw i32 %2536, %2537
  %2539 = add nsw i32 %2535, %2538
  store i32 %2539, ptr %17, align 4, !tbaa !9
  %2540 = load i32, ptr %34, align 4, !tbaa !9
  %2541 = load i32, ptr %35, align 4, !tbaa !9
  %2542 = load i32, ptr %13, align 4, !tbaa !9
  %2543 = mul nsw i32 %2541, %2542
  %2544 = add nsw i32 %2540, %2543
  store i32 %2544, ptr %18, align 4, !tbaa !9
  %2545 = load i32, ptr %34, align 4, !tbaa !9
  %2546 = load i32, ptr %36, align 4, !tbaa !9
  %2547 = load i32, ptr %13, align 4, !tbaa !9
  %2548 = mul nsw i32 %2546, %2547
  %2549 = add nsw i32 %2545, %2548
  store i32 %2549, ptr %19, align 4, !tbaa !9
  %2550 = call <2 x float> @Cf(ptr noundef %49)
  store <2 x float> %2550, ptr %74, align 4
  %2551 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 0
  %2552 = load float, ptr %2551, align 4
  %2553 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 1
  %2554 = load float, ptr %2553, align 4
  %2555 = fneg float %2554
  %2556 = call ptr @_pCf(ptr noundef %28)
  %2557 = getelementptr inbounds { float, float }, ptr %2556, i32 0, i32 0
  %2558 = getelementptr inbounds { float, float }, ptr %2556, i32 0, i32 1
  store float %2552, ptr %2557, align 4
  store float %2555, ptr %2558, align 4
  %2559 = load ptr, ptr %9, align 8, !tbaa !5
  %2560 = load i32, ptr %19, align 4, !tbaa !9
  %2561 = sext i32 %2560 to i64
  %2562 = getelementptr inbounds %struct.complex, ptr %2559, i64 %2561
  %2563 = getelementptr inbounds %struct.complex, ptr %2562, i32 0, i32 0
  %2564 = load float, ptr %2563, align 4, !tbaa !13
  %2565 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  %2566 = load float, ptr %2565, align 4, !tbaa !13
  %2567 = load ptr, ptr %9, align 8, !tbaa !5
  %2568 = load i32, ptr %19, 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 1
  %2572 = load float, ptr %2571, align 4, !tbaa !15
  %2573 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  %2574 = load float, ptr %2573, align 4, !tbaa !15
  %2575 = fmul float %2572, %2574
  %2576 = fneg float %2575
  %2577 = call float @llvm.fmuladd.f32(float %2564, float %2566, float %2576)
  %2578 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %2577, ptr %2578, align 4, !tbaa !13
  %2579 = load ptr, ptr %9, align 8, !tbaa !5
  %2580 = load i32, ptr %19, 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 0
  %2584 = load float, ptr %2583, align 4, !tbaa !13
  %2585 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 1
  %2586 = load float, ptr %2585, align 4, !tbaa !15
  %2587 = load ptr, ptr %9, align 8, !tbaa !5
  %2588 = load i32, ptr %19, align 4, !tbaa !9
  %2589 = sext i32 %2588 to i64
  %2590 = getelementptr inbounds %struct.complex, ptr %2587, i64 %2589
  %2591 = getelementptr inbounds %struct.complex, ptr %2590, i32 0, i32 1
  %2592 = load float, ptr %2591, align 4, !tbaa !15
  %2593 = getelementptr inbounds %struct.complex, ptr %28, i32 0, i32 0
  %2594 = load float, ptr %2593, align 4, !tbaa !13
  %2595 = fmul float %2592, %2594
  %2596 = call float @llvm.fmuladd.f32(float %2584, float %2586, float %2595)
  %2597 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %2596, ptr %2597, align 4, !tbaa !15
  %2598 = load ptr, ptr %9, align 8, !tbaa !5
  %2599 = load i32, ptr %18, align 4, !tbaa !9
  %2600 = sext i32 %2599 to i64
  %2601 = getelementptr inbounds %struct.complex, ptr %2598, i64 %2600
  %2602 = getelementptr inbounds %struct.complex, ptr %2601, i32 0, i32 0
  %2603 = load float, ptr %2602, align 4, !tbaa !13
  %2604 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %2605 = load float, ptr %2604, align 4, !tbaa !13
  %2606 = fsub float %2603, %2605
  %2607 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %2606, ptr %2607, align 4, !tbaa !13
  %2608 = load ptr, ptr %9, align 8, !tbaa !5
  %2609 = load i32, ptr %18, align 4, !tbaa !9
  %2610 = sext i32 %2609 to i64
  %2611 = getelementptr inbounds %struct.complex, ptr %2608, i64 %2610
  %2612 = getelementptr inbounds %struct.complex, ptr %2611, i32 0, i32 1
  %2613 = load float, ptr %2612, align 4, !tbaa !15
  %2614 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %2615 = load float, ptr %2614, align 4, !tbaa !15
  %2616 = fsub float %2613, %2615
  %2617 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %2616, ptr %2617, align 4, !tbaa !15
  %2618 = load i32, ptr %34, align 4, !tbaa !9
  %2619 = load i32, ptr %36, align 4, !tbaa !9
  %2620 = add nsw i32 %2619, 1
  %2621 = load i32, ptr %13, align 4, !tbaa !9
  %2622 = mul nsw i32 %2620, %2621
  %2623 = add nsw i32 %2618, %2622
  store i32 %2623, ptr %20, align 4, !tbaa !9
  %2624 = call <2 x float> @Cf(ptr noundef %54)
  store <2 x float> %2624, ptr %75, align 4
  %2625 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 0
  %2626 = load float, ptr %2625, align 4
  %2627 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 1
  %2628 = load float, ptr %2627, align 4
  %2629 = fneg float %2628
  %2630 = call ptr @_pCf(ptr noundef %30)
  %2631 = getelementptr inbounds { float, float }, ptr %2630, i32 0, i32 0
  %2632 = getelementptr inbounds { float, float }, ptr %2630, i32 0, i32 1
  store float %2626, ptr %2631, align 4
  store float %2629, ptr %2632, align 4
  %2633 = load ptr, ptr %9, align 8, !tbaa !5
  %2634 = load i32, ptr %20, align 4, !tbaa !9
  %2635 = sext i32 %2634 to i64
  %2636 = getelementptr inbounds %struct.complex, ptr %2633, i64 %2635
  %2637 = getelementptr inbounds %struct.complex, ptr %2636, i32 0, i32 0
  %2638 = load float, ptr %2637, align 4, !tbaa !13
  %2639 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2640 = load float, ptr %2639, align 4, !tbaa !13
  %2641 = load ptr, ptr %9, align 8, !tbaa !5
  %2642 = load i32, ptr %20, align 4, !tbaa !9
  %2643 = sext i32 %2642 to i64
  %2644 = getelementptr inbounds %struct.complex, ptr %2641, i64 %2643
  %2645 = getelementptr inbounds %struct.complex, ptr %2644, i32 0, i32 1
  %2646 = load float, ptr %2645, align 4, !tbaa !15
  %2647 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2648 = load float, ptr %2647, align 4, !tbaa !15
  %2649 = fmul float %2646, %2648
  %2650 = fneg float %2649
  %2651 = call float @llvm.fmuladd.f32(float %2638, float %2640, float %2650)
  %2652 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %2651, ptr %2652, align 4, !tbaa !13
  %2653 = load ptr, ptr %9, align 8, !tbaa !5
  %2654 = load i32, ptr %20, align 4, !tbaa !9
  %2655 = sext i32 %2654 to i64
  %2656 = getelementptr inbounds %struct.complex, ptr %2653, i64 %2655
  %2657 = getelementptr inbounds %struct.complex, ptr %2656, i32 0, i32 0
  %2658 = load float, ptr %2657, align 4, !tbaa !13
  %2659 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 1
  %2660 = load float, ptr %2659, align 4, !tbaa !15
  %2661 = load ptr, ptr %9, align 8, !tbaa !5
  %2662 = load i32, ptr %20, align 4, !tbaa !9
  %2663 = sext i32 %2662 to i64
  %2664 = getelementptr inbounds %struct.complex, ptr %2661, i64 %2663
  %2665 = getelementptr inbounds %struct.complex, ptr %2664, i32 0, i32 1
  %2666 = load float, ptr %2665, align 4, !tbaa !15
  %2667 = getelementptr inbounds %struct.complex, ptr %30, i32 0, i32 0
  %2668 = load float, ptr %2667, align 4, !tbaa !13
  %2669 = fmul float %2666, %2668
  %2670 = call float @llvm.fmuladd.f32(float %2658, float %2660, float %2669)
  %2671 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %2670, ptr %2671, align 4, !tbaa !15
  %2672 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %2673 = load float, ptr %2672, align 4, !tbaa !13
  %2674 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %2675 = load float, ptr %2674, align 4, !tbaa !13
  %2676 = fsub float %2673, %2675
  %2677 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %2676, ptr %2677, align 4, !tbaa !13
  %2678 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %2679 = load float, ptr %2678, align 4, !tbaa !15
  %2680 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %2681 = load float, ptr %2680, align 4, !tbaa !15
  %2682 = fsub float %2679, %2681
  %2683 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %2682, ptr %2683, align 4, !tbaa !15
  %2684 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %2685 = load float, ptr %2684, align 4, !tbaa !13
  %2686 = load ptr, ptr %9, align 8, !tbaa !5
  %2687 = load i32, ptr %17, align 4, !tbaa !9
  %2688 = sext i32 %2687 to i64
  %2689 = getelementptr inbounds %struct.complex, ptr %2686, i64 %2688
  %2690 = getelementptr inbounds %struct.complex, ptr %2689, i32 0, i32 0
  store float %2685, ptr %2690, align 4, !tbaa !13
  %2691 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2692 = load float, ptr %2691, align 4, !tbaa !15
  %2693 = load ptr, ptr %9, align 8, !tbaa !5
  %2694 = load i32, ptr %17, align 4, !tbaa !9
  %2695 = sext i32 %2694 to i64
  %2696 = getelementptr inbounds %struct.complex, ptr %2693, i64 %2695
  %2697 = getelementptr inbounds %struct.complex, ptr %2696, i32 0, i32 1
  store float %2692, ptr %2697, align 4, !tbaa !15
  br label %2698

2698:                                             ; preds = %2534
  %2699 = load i32, ptr %34, align 4, !tbaa !9
  %2700 = add nsw i32 %2699, 1
  store i32 %2700, ptr %34, align 4, !tbaa !9
  br label %2530, !llvm.loop !21

2701:                                             ; preds = %2530
  %2702 = load i32, ptr %35, align 4, !tbaa !9
  %2703 = load i32, ptr %36, align 4, !tbaa !9
  %2704 = load i32, ptr %13, align 4, !tbaa !9
  %2705 = mul nsw i32 %2703, %2704
  %2706 = add nsw i32 %2702, %2705
  store i32 %2706, ptr %16, align 4, !tbaa !9
  %2707 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 0
  %2708 = load float, ptr %2707, align 4, !tbaa !13
  %2709 = load ptr, ptr %9, align 8, !tbaa !5
  %2710 = load i32, ptr %16, align 4, !tbaa !9
  %2711 = sext i32 %2710 to i64
  %2712 = getelementptr inbounds %struct.complex, ptr %2709, i64 %2711
  %2713 = getelementptr inbounds %struct.complex, ptr %2712, i32 0, i32 0
  store float %2708, ptr %2713, align 4, !tbaa !13
  %2714 = getelementptr inbounds %struct.complex, ptr %49, i32 0, i32 1
  %2715 = load float, ptr %2714, align 4, !tbaa !15
  %2716 = load ptr, ptr %9, align 8, !tbaa !5
  %2717 = load i32, ptr %16, align 4, !tbaa !9
  %2718 = sext i32 %2717 to i64
  %2719 = getelementptr inbounds %struct.complex, ptr %2716, i64 %2718
  %2720 = getelementptr inbounds %struct.complex, ptr %2719, i32 0, i32 1
  store float %2715, ptr %2720, align 4, !tbaa !15
  %2721 = load i32, ptr %35, align 4, !tbaa !9
  %2722 = load i32, ptr %36, align 4, !tbaa !9
  %2723 = add nsw i32 %2722, 1
  %2724 = load i32, ptr %13, align 4, !tbaa !9
  %2725 = mul nsw i32 %2723, %2724
  %2726 = add nsw i32 %2721, %2725
  store i32 %2726, ptr %16, align 4, !tbaa !9
  %2727 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 0
  %2728 = load float, ptr %2727, align 4, !tbaa !13
  %2729 = load ptr, ptr %9, align 8, !tbaa !5
  %2730 = load i32, ptr %16, align 4, !tbaa !9
  %2731 = sext i32 %2730 to i64
  %2732 = getelementptr inbounds %struct.complex, ptr %2729, i64 %2731
  %2733 = getelementptr inbounds %struct.complex, ptr %2732, i32 0, i32 0
  store float %2728, ptr %2733, align 4, !tbaa !13
  %2734 = getelementptr inbounds %struct.complex, ptr %54, i32 0, i32 1
  %2735 = load float, ptr %2734, align 4, !tbaa !15
  %2736 = load ptr, ptr %9, align 8, !tbaa !5
  %2737 = load i32, ptr %16, align 4, !tbaa !9
  %2738 = sext i32 %2737 to i64
  %2739 = getelementptr inbounds %struct.complex, ptr %2736, i64 %2738
  %2740 = getelementptr inbounds %struct.complex, ptr %2739, i32 0, i32 1
  store float %2735, ptr %2740, align 4, !tbaa !15
  %2741 = load i32, ptr %35, align 4, !tbaa !9
  %2742 = load i32, ptr %35, align 4, !tbaa !9
  %2743 = load i32, ptr %13, align 4, !tbaa !9
  %2744 = mul nsw i32 %2742, %2743
  %2745 = add nsw i32 %2741, %2744
  store i32 %2745, ptr %16, align 4, !tbaa !9
  %2746 = load i32, ptr %35, align 4, !tbaa !9
  %2747 = load i32, ptr %35, align 4, !tbaa !9
  %2748 = load i32, ptr %13, align 4, !tbaa !9
  %2749 = mul nsw i32 %2747, %2748
  %2750 = add nsw i32 %2746, %2749
  store i32 %2750, ptr %17, align 4, !tbaa !9
  %2751 = load ptr, ptr %9, align 8, !tbaa !5
  %2752 = load i32, ptr %17, align 4, !tbaa !9
  %2753 = sext i32 %2752 to i64
  %2754 = getelementptr inbounds %struct.complex, ptr %2751, i64 %2753
  %2755 = getelementptr inbounds %struct.complex, ptr %2754, i32 0, i32 0
  %2756 = load float, ptr %2755, align 4, !tbaa !13
  store float %2756, ptr %21, align 4, !tbaa !11
  %2757 = load float, ptr %21, align 4, !tbaa !11
  %2758 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %2757, ptr %2758, align 4, !tbaa !13
  %2759 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float 0.000000e+00, ptr %2759, align 4, !tbaa !15
  %2760 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %2761 = load float, ptr %2760, align 4, !tbaa !13
  %2762 = load ptr, ptr %9, align 8, !tbaa !5
  %2763 = load i32, ptr %16, align 4, !tbaa !9
  %2764 = sext i32 %2763 to i64
  %2765 = getelementptr inbounds %struct.complex, ptr %2762, i64 %2764
  %2766 = getelementptr inbounds %struct.complex, ptr %2765, i32 0, i32 0
  store float %2761, ptr %2766, align 4, !tbaa !13
  %2767 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2768 = load float, ptr %2767, align 4, !tbaa !15
  %2769 = load ptr, ptr %9, align 8, !tbaa !5
  %2770 = load i32, ptr %16, align 4, !tbaa !9
  %2771 = sext i32 %2770 to i64
  %2772 = getelementptr inbounds %struct.complex, ptr %2769, i64 %2771
  %2773 = getelementptr inbounds %struct.complex, ptr %2772, i32 0, i32 1
  store float %2768, ptr %2773, align 4, !tbaa !15
  br label %2774

2774:                                             ; preds = %2701
  %2775 = load i32, ptr %35, align 4, !tbaa !9
  %2776 = add nsw i32 %2775, 1
  store i32 %2776, ptr %35, align 4, !tbaa !9
  br label %2321, !llvm.loop !22

2777:                                             ; preds = %2321
  br label %2778

2778:                                             ; preds = %2777, %2218
  br label %2779

2779:                                             ; preds = %2778, %2217
  br label %2780

2780:                                             ; preds = %2779, %1558
  %2781 = load i32, ptr %39, align 4, !tbaa !9
  %2782 = icmp eq i32 %2781, 1
  br i1 %2782, label %2783, label %2789

2783:                                             ; preds = %2780
  %2784 = load i32, ptr %47, align 4, !tbaa !9
  %2785 = load ptr, ptr %11, align 8, !tbaa !5
  %2786 = load i32, ptr %36, align 4, !tbaa !9
  %2787 = sext i32 %2786 to i64
  %2788 = getelementptr inbounds i32, ptr %2785, i64 %2787
  store i32 %2784, ptr %2788, align 4, !tbaa !9
  br label %2803

2789:                                             ; preds = %2780
  %2790 = load i32, ptr %47, align 4, !tbaa !9
  %2791 = sub nsw i32 0, %2790
  %2792 = load ptr, ptr %11, align 8, !tbaa !5
  %2793 = load i32, ptr %36, align 4, !tbaa !9
  %2794 = sext i32 %2793 to i64
  %2795 = getelementptr inbounds i32, ptr %2792, i64 %2794
  store i32 %2791, ptr %2795, align 4, !tbaa !9
  %2796 = load i32, ptr %47, align 4, !tbaa !9
  %2797 = sub nsw i32 0, %2796
  %2798 = load ptr, ptr %11, align 8, !tbaa !5
  %2799 = load i32, ptr %36, align 4, !tbaa !9
  %2800 = add nsw i32 %2799, 1
  %2801 = sext i32 %2800 to i64
  %2802 = getelementptr inbounds i32, ptr %2798, i64 %2801
  store i32 %2797, ptr %2802, align 4, !tbaa !9
  br label %2803

2803:                                             ; preds = %2789, %2783
  %2804 = load i32, ptr %39, align 4, !tbaa !9
  %2805 = load i32, ptr %36, align 4, !tbaa !9
  %2806 = add nsw i32 %2805, %2804
  store i32 %2806, ptr %36, align 4, !tbaa !9
  br label %1445

2807:                                             ; preds = %1450, %144
  store i32 1, ptr %55, align 4
  br label %2808

2808:                                             ; preds = %2807, %126
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 4, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 4, 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 i32 @icamax_(ptr noundef, ptr noundef, ptr noundef) #2

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

declare i32 @sisnan_(ptr noundef) #2

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}


; 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 [7 x i8], align 1
@c__1 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @chetf2_(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 %struct.complex, align 8
  %14 = alloca float, align 4
  %15 = alloca %struct.complex, align 8
  %16 = alloca %struct.complex, align 8
  %17 = alloca float, align 4
  %18 = alloca %struct.complex, align 8
  %19 = alloca %struct.complex, align 8
  %20 = 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 8, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  %21 = load i32, ptr %3, align 4, !tbaa !5
  %narrow = xor i32 %21, -1
  %22 = sext i32 %narrow to i64
  %23 = getelementptr inbounds %struct.complex, ptr %2, i64 %22
  %24 = getelementptr inbounds i8, ptr %4, i64 -4
  store i32 0, ptr %5, align 4, !tbaa !5
  %25 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #7
  %.not = icmp eq i32 %25, 0
  br i1 %.not, label %26, label %28

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

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

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

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

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

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

38:                                               ; preds = %34
  br i1 %.not, label %.preheader, label %45

.preheader:                                       ; preds = %38
  %39 = icmp eq i32 %29, 0
  br i1 %39, label %.loopexit891, label %.lr.ph932

.lr.ph932:                                        ; preds = %.preheader
  %40 = add i32 %21, 1
  %41 = getelementptr inbounds i8, ptr %10, i64 4
  %42 = getelementptr inbounds i8, ptr %16, i64 4
  %43 = getelementptr inbounds i8, ptr %12, i64 4
  %44 = sext i32 %21 to i64
  br label %363

45:                                               ; preds = %38
  %invariant.gep = getelementptr i8, ptr %23, i64 8
  %46 = icmp eq i32 %29, 0
  br i1 %46, label %.loopexit891, label %.lr.ph913

.lr.ph913:                                        ; preds = %45
  %47 = add i32 %21, 1
  %48 = getelementptr inbounds i8, ptr %10, i64 4
  %49 = getelementptr inbounds i8, ptr %15, i64 4
  %50 = getelementptr inbounds i8, ptr %12, i64 4
  %51 = sext i32 %21 to i64
  br label %52

52:                                               ; preds = %.lr.ph913, %360
  %.0911 = phi i32 [ undef, %.lr.ph913 ], [ %.1, %360 ]
  %.0836908 = phi i32 [ %29, %.lr.ph913 ], [ %361, %360 ]
  %53 = mul nsw i32 %.0836908, %21
  %54 = add nsw i32 %53, %.0836908
  store i32 %54, ptr %7, align 4, !tbaa !5
  %55 = sext i32 %54 to i64
  %56 = getelementptr inbounds %struct.complex, ptr %23, 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
  store float %60, ptr %17, align 4, !tbaa !12
  %.not866 = icmp eq i32 %.0836908, 1
  br i1 %.not866, label %77, label %61

61:                                               ; preds = %52
  %62 = add nsw i32 %.0836908, -1
  store i32 %62, ptr %7, align 4, !tbaa !5
  %63 = sext i32 %53 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %63
  %64 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %gep, 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 %23, 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.019.4.vec.extract = extractelement <2 x float> %72, i64 1
  store float %.sroa.019.4.vec.extract, ptr %9, align 4, !tbaa !12
  %73 = fcmp oge float %.sroa.019.4.vec.extract, 0.000000e+00
  %74 = fneg float %.sroa.019.4.vec.extract
  %75 = select i1 %73, float %.sroa.019.4.vec.extract, float %74
  %76 = fadd float %71, %75
  %.pre = load float, ptr %17, align 4
  br label %77

77:                                               ; preds = %52, %61
  %78 = phi float [ %.pre, %61 ], [ %60, %52 ]
  %.0844 = phi float [ %76, %61 ], [ 0.000000e+00, %52 ]
  %.1 = phi i32 [ %64, %61 ], [ %.0911, %52 ]
  %79 = fcmp oge float %78, %.0844
  %80 = select i1 %79, float %78, float %.0844
  %81 = fcmp oeq float %80, 0.000000e+00
  br i1 %81, label %84, label %82

82:                                               ; preds = %77
  %83 = call i32 @sisnan_(ptr noundef nonnull %17) #7
  %.not867 = icmp eq i32 %83, 0
  br i1 %.not867, label %91, label %84

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

87:                                               ; preds = %84
  store i32 %.0836908, ptr %5, align 4, !tbaa !5
  br label %88

88:                                               ; preds = %87, %84
  store i32 %54, ptr %7, align 4, !tbaa !5
  %89 = load float, ptr %56, align 4, !tbaa !9
  store float %89, ptr %8, align 4, !tbaa !12
  %90 = getelementptr inbounds %struct.complex, ptr %23, i64 %55, i32 1
  store float 0.000000e+00, ptr %90, align 4, !tbaa !13
  br label %353

91:                                               ; preds = %82
  %92 = load float, ptr %17, align 4, !tbaa !12
  %93 = fmul float %.0844, 0x3FE47E0F60000000
  %94 = fcmp ult float %92, %93
  br i1 %94, label %95, label %152

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

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

137:                                              ; preds = %118, %95
  %.0842 = phi float [ %136, %118 ], [ %116, %95 ]
  %138 = load float, ptr %17, align 4, !tbaa !12
  %139 = fdiv float %.0844, %.0842
  %140 = fmul float %93, %139
  %141 = fcmp ult float %138, %140
  br i1 %141, label %142, label %152

142:                                              ; preds = %137
  %143 = mul i32 %.1, %47
  %144 = sext i32 %143 to i64
  %145 = getelementptr inbounds %struct.complex, ptr %23, i64 %144
  %146 = load float, ptr %145, align 4, !tbaa !9
  store float %146, ptr %8, align 4, !tbaa !12
  %147 = fcmp oge float %146, 0.000000e+00
  %148 = fneg float %146
  %149 = select i1 %147, float %146, float %148
  %150 = fmul float %.0842, 0x3FE47E0F60000000
  %151 = fcmp ult float %149, %150
  %not. = xor i1 %151, true
  %.871 = select i1 %151, i32 -2, i32 -1
  br label %152

152:                                              ; preds = %142, %137, %91
  %.0846 = phi i32 [ %.0836908, %91 ], [ %.0836908, %137 ], [ %.1, %142 ]
  %153 = phi i1 [ false, %91 ], [ false, %137 ], [ %151, %142 ]
  %154 = phi i1 [ true, %91 ], [ true, %137 ], [ %not., %142 ]
  %.0838.neg = phi i32 [ -1, %91 ], [ -1, %137 ], [ %.871, %142 ]
  %155 = add nsw i32 %.0838.neg, %.0836908
  %156 = add nsw i32 %155, 1
  %.not868 = icmp eq i32 %.0846, %156
  br i1 %.not868, label %212, label %157

157:                                              ; preds = %152
  %158 = add nsw i32 %.0846, -1
  store i32 %158, ptr %7, align 4, !tbaa !5
  %159 = mul nsw i32 %156, %21
  %160 = sext i32 %159 to i64
  %gep903 = getelementptr %struct.complex, ptr %invariant.gep, i64 %160
  %161 = mul nsw i32 %.0846, %21
  %162 = sext i32 %161 to i64
  %gep905 = getelementptr %struct.complex, ptr %invariant.gep, i64 %162
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %gep903, ptr noundef nonnull @c__1, ptr noundef %gep905, ptr noundef nonnull @c__1) #7
  store i32 %155, ptr %7, align 4, !tbaa !5
  %.not869.not894 = icmp slt i32 %.0846, %155
  br i1 %.not869.not894, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %157
  %163 = sext i32 %.0846 to i64
  %invariant.gep956 = getelementptr %struct.complex, ptr %23, i64 %160
  %invariant.gep958 = getelementptr %struct.complex, ptr %23, i64 %163
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ %163, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %gep957 = getelementptr %struct.complex, ptr %invariant.gep956, i64 %indvars.iv.next
  %164 = call <2 x float> @Cf(ptr noundef %gep957)
  %.sroa.016.0.vec.extract = extractelement <2 x float> %164, i64 0
  %.sroa.016.4.vec.extract = extractelement <2 x float> %164, i64 1
  %165 = fneg float %.sroa.016.4.vec.extract
  %166 = call ptr @_pCf(ptr noundef nonnull %10)
  %167 = getelementptr inbounds i8, ptr %166, i64 4
  store float %.sroa.016.0.vec.extract, ptr %166, align 4
  store float %165, ptr %167, align 4
  %168 = mul nsw i64 %indvars.iv.next, %51
  %gep959 = getelementptr %struct.complex, ptr %invariant.gep958, i64 %168
  %169 = load <2 x float>, ptr %10, align 8, !tbaa !12
  %170 = call <2 x float> @Cf(ptr noundef %gep959)
  %.sroa.015.0.vec.extract = extractelement <2 x float> %170, i64 0
  %.sroa.015.4.vec.extract = extractelement <2 x float> %170, i64 1
  %171 = fneg float %.sroa.015.4.vec.extract
  %172 = call ptr @_pCf(ptr noundef nonnull %10)
  %173 = getelementptr inbounds i8, ptr %172, i64 4
  store float %.sroa.015.0.vec.extract, ptr %172, align 4
  store float %171, ptr %173, align 4
  %174 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %174, ptr %gep957, align 4, !tbaa !12
  store <2 x float> %169, ptr %gep959, align 4, !tbaa !12
  %175 = load i32, ptr %7, align 4, !tbaa !5
  %176 = sext i32 %175 to i64
  %.not869.not = icmp slt i64 %indvars.iv.next, %176
  br i1 %.not869.not, label %.lr.ph, label %._crit_edge, !llvm.loop !14

._crit_edge:                                      ; preds = %.lr.ph, %157
  %177 = add nsw i32 %159, %.0846
  store i32 %177, ptr %7, align 4, !tbaa !5
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds %struct.complex, ptr %23, i64 %178
  %180 = call <2 x float> @Cf(ptr noundef %179)
  %.sroa.014.0.vec.extract = extractelement <2 x float> %180, i64 0
  %.sroa.014.4.vec.extract = extractelement <2 x float> %180, i64 1
  %181 = fneg float %.sroa.014.4.vec.extract
  %182 = call ptr @_pCf(ptr noundef nonnull %10)
  %183 = getelementptr inbounds i8, ptr %182, i64 4
  store float %.sroa.014.0.vec.extract, ptr %182, align 4
  store float %181, ptr %183, align 4
  %184 = load i32, ptr %7, align 4, !tbaa !5
  %185 = sext i32 %184 to i64
  %186 = getelementptr inbounds %struct.complex, ptr %23, i64 %185
  %187 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %187, ptr %186, align 4, !tbaa !12
  %188 = add nsw i32 %159, %156
  %189 = sext i32 %188 to i64
  %190 = getelementptr inbounds %struct.complex, ptr %23, i64 %189
  %191 = load float, ptr %190, align 4, !tbaa !9
  store float %191, ptr %14, align 4, !tbaa !12
  %192 = add nsw i32 %161, %.0846
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds %struct.complex, ptr %23, i64 %193
  %195 = load float, ptr %194, align 4, !tbaa !9
  store float %195, ptr %8, align 4, !tbaa !12
  store float %195, ptr %190, align 4, !tbaa !9
  %196 = getelementptr inbounds %struct.complex, ptr %23, i64 %189, i32 1
  store float 0.000000e+00, ptr %196, align 4, !tbaa !13
  store i32 %192, ptr %7, align 4, !tbaa !5
  store float %191, ptr %194, align 4, !tbaa !9
  %197 = getelementptr inbounds %struct.complex, ptr %23, i64 %193, i32 1
  store float 0.000000e+00, ptr %197, align 4, !tbaa !13
  br i1 %153, label %198, label %222

198:                                              ; preds = %._crit_edge
  %199 = load float, ptr %56, align 4, !tbaa !9
  store float %199, ptr %8, align 4, !tbaa !12
  %200 = getelementptr inbounds %struct.complex, ptr %23, i64 %55, i32 1
  store float 0.000000e+00, ptr %200, align 4, !tbaa !13
  %201 = add nsw i32 %.0836908, -1
  %202 = add nsw i32 %201, %53
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds %struct.complex, ptr %23, i64 %203
  %205 = load float, ptr %204, align 4, !tbaa !9
  %206 = getelementptr inbounds i8, ptr %204, i64 4
  %207 = load float, ptr %206, align 4, !tbaa !13
  %208 = add nsw i32 %.0846, %53
  %209 = sext i32 %208 to i64
  %210 = getelementptr inbounds %struct.complex, ptr %23, i64 %209
  %211 = load <2 x float>, ptr %210, align 4, !tbaa !12
  store <2 x float> %211, ptr %204, align 4, !tbaa !12
  store i32 %208, ptr %7, align 4, !tbaa !5
  store float %205, ptr %210, align 4, !tbaa !9
  br label %.sink.split

212:                                              ; preds = %152
  store i32 %54, ptr %7, align 4, !tbaa !5
  %213 = load float, ptr %56, align 4, !tbaa !9
  store float %213, ptr %8, align 4, !tbaa !12
  %214 = getelementptr inbounds %struct.complex, ptr %23, i64 %55, i32 1
  store float 0.000000e+00, ptr %214, align 4, !tbaa !13
  br i1 %153, label %215, label %222

215:                                              ; preds = %212
  %216 = add nsw i32 %.0836908, -1
  %217 = mul i32 %216, %47
  store i32 %217, ptr %7, align 4, !tbaa !5
  %218 = sext i32 %217 to i64
  %219 = getelementptr inbounds %struct.complex, ptr %23, i64 %218
  %220 = load float, ptr %219, align 4, !tbaa !9
  store float %220, ptr %8, align 4, !tbaa !12
  br label %.sink.split

.sink.split:                                      ; preds = %198, %215
  %.sink980 = phi i64 [ %218, %215 ], [ %209, %198 ]
  %.sink978 = phi float [ 0.000000e+00, %215 ], [ %207, %198 ]
  %221 = getelementptr inbounds %struct.complex, ptr %23, i64 %.sink980, i32 1
  store float %.sink978, ptr %221, align 4, !tbaa !13
  br label %222

222:                                              ; preds = %.sink.split, %212, %._crit_edge
  br i1 %154, label %223, label %229

223:                                              ; preds = %222
  %224 = load float, ptr %56, align 4, !tbaa !9
  %225 = fdiv float 1.000000e+00, %224
  store float %225, ptr %14, align 4, !tbaa !12
  %226 = add nsw i32 %.0836908, -1
  store i32 %226, ptr %7, align 4, !tbaa !5
  %227 = fneg float %225
  store float %227, ptr %8, align 4, !tbaa !12
  %228 = sext i32 %53 to i64
  %gep907 = getelementptr %struct.complex, ptr %invariant.gep, i64 %228
  call void @cher_(ptr noundef %0, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %gep907, ptr noundef nonnull @c__1, ptr noundef nonnull %2, ptr noundef nonnull %3) #7
  store i32 %226, ptr %7, align 4, !tbaa !5
  call void @csscal_(ptr noundef nonnull %7, ptr noundef nonnull %14, ptr noundef %gep907, ptr noundef nonnull @c__1) #7
  br label %353

229:                                              ; preds = %222
  %230 = icmp sgt i32 %.0836908, 2
  br i1 %230, label %.lr.ph899.preheader, label %.loopexit892

.lr.ph899.preheader:                              ; preds = %229
  %231 = add nsw i32 %.0836908, -1
  %232 = add nsw i32 %231, %53
  store i32 %232, ptr %7, align 4, !tbaa !5
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds %struct.complex, ptr %23, i64 %233
  %235 = load float, ptr %234, align 4, !tbaa !9
  store float %235, ptr %8, align 4, !tbaa !12
  %236 = call <2 x float> @Cf(ptr noundef nonnull %234)
  %.sroa.013.4.vec.extract = extractelement <2 x float> %236, i64 1
  store float %.sroa.013.4.vec.extract, ptr %9, align 4, !tbaa !12
  %237 = call float @slapy2_(ptr noundef nonnull %8, ptr noundef nonnull %9) #7
  %238 = mul nsw i32 %231, %21
  %239 = add nsw i32 %238, %231
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds %struct.complex, ptr %23, i64 %240
  %242 = load float, ptr %241, align 4, !tbaa !9
  %243 = fdiv float %242, %237
  %244 = load float, ptr %56, align 4, !tbaa !9
  %245 = fdiv float %244, %237
  %246 = call float @llvm.fmuladd.f32(float %245, float %243, float -1.000000e+00)
  %247 = fdiv float 1.000000e+00, %246
  %248 = load <2 x float>, ptr %234, align 4, !tbaa !12
  %249 = insertelement <2 x float> poison, float %237, i64 0
  %250 = shufflevector <2 x float> %249, <2 x float> poison, <2 x i32> zeroinitializer
  %251 = fdiv <2 x float> %248, %250
  store <2 x float> %251, ptr %10, align 8, !tbaa !12
  store <2 x float> %251, ptr %15, align 8, !tbaa !12
  %252 = fdiv float %247, %237
  %253 = add nsw i32 %.0836908, -2
  %254 = zext nneg i32 %253 to i64
  %255 = sext i32 %53 to i64
  %256 = sext i32 %238 to i64
  %invariant.gep960 = getelementptr %struct.complex, ptr %23, i64 %255
  %invariant.gep962 = getelementptr %struct.complex, ptr %23, i64 %256
  %257 = insertelement <2 x float> poison, float %252, i64 0
  %258 = shufflevector <2 x float> %257, <2 x float> poison, <2 x i32> zeroinitializer
  %259 = insertelement <2 x float> poison, float %245, i64 0
  %260 = shufflevector <2 x float> %259, <2 x float> poison, <2 x i32> zeroinitializer
  %261 = insertelement <2 x float> poison, float %243, i64 0
  %262 = shufflevector <2 x float> %261, <2 x float> poison, <2 x i32> zeroinitializer
  %invariant.gep987 = getelementptr %struct.complex, ptr %23, i64 %255
  br label %.lr.ph899

.lr.ph899:                                        ; preds = %.lr.ph899.preheader, %343
  %indvars.iv935 = phi i64 [ %254, %.lr.ph899.preheader ], [ %indvars.iv.next936, %343 ]
  %263 = add nsw i64 %indvars.iv935, %256
  %264 = trunc nsw i64 %263 to i32
  store i32 %264, ptr %7, align 4, !tbaa !5
  %265 = getelementptr inbounds %struct.complex, ptr %23, i64 %263
  %gep988 = getelementptr %struct.complex, ptr %invariant.gep987, i64 %indvars.iv935
  %266 = load <2 x float>, ptr %265, align 4, !tbaa !12
  %267 = fmul <2 x float> %260, %266
  %268 = call <2 x float> @Cf(ptr noundef nonnull %15)
  %.sroa.012.0.vec.extract = extractelement <2 x float> %268, i64 0
  %.sroa.012.4.vec.extract = extractelement <2 x float> %268, i64 1
  %269 = fneg float %.sroa.012.4.vec.extract
  %270 = call ptr @_pCf(ptr noundef nonnull %12)
  %271 = getelementptr inbounds i8, ptr %270, i64 4
  store float %.sroa.012.0.vec.extract, ptr %270, align 4
  store float %269, ptr %271, align 4
  %272 = load float, ptr %12, align 8, !tbaa !9
  %273 = load float, ptr %50, align 4, !tbaa !13
  %274 = load <2 x float>, ptr %gep988, align 4, !tbaa !12
  %275 = fneg float %273
  %276 = insertelement <2 x float> poison, float %273, i64 0
  %277 = insertelement <2 x float> %276, float %275, i64 1
  %278 = fmul <2 x float> %274, %277
  %279 = shufflevector <2 x float> %278, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %280 = insertelement <2 x float> poison, float %272, i64 0
  %281 = shufflevector <2 x float> %280, <2 x float> poison, <2 x i32> zeroinitializer
  %282 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %281, <2 x float> %274, <2 x float> %279)
  %283 = fsub <2 x float> %267, %282
  %284 = fmul <2 x float> %258, %283
  store <2 x float> %284, ptr %19, align 8, !tbaa !12
  %285 = load float, ptr %15, align 8, !tbaa !9
  %286 = load float, ptr %49, align 4, !tbaa !13
  %287 = fneg float %286
  %288 = load <2 x float>, ptr %265, align 4, !tbaa !12
  %289 = insertelement <2 x float> poison, float %286, i64 0
  %290 = insertelement <2 x float> %289, float %287, i64 1
  %291 = fmul <2 x float> %288, %290
  %292 = shufflevector <2 x float> %291, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %293 = insertelement <2 x float> poison, float %285, i64 0
  %294 = shufflevector <2 x float> %293, <2 x float> poison, <2 x i32> zeroinitializer
  %295 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %294, <2 x float> %288, <2 x float> %292)
  store <2 x float> %295, ptr %11, align 8, !tbaa !12
  %296 = fmul <2 x float> %262, %274
  %297 = fsub <2 x float> %296, %295
  %298 = fmul <2 x float> %258, %297
  store <2 x float> %298, ptr %10, align 8, !tbaa !12
  store <2 x float> %298, ptr %18, align 8, !tbaa !12
  %299 = mul nsw i64 %indvars.iv935, %51
  br label %300

300:                                              ; preds = %.lr.ph899, %300
  %indvars.iv937 = phi i64 [ %indvars.iv935, %.lr.ph899 ], [ %indvars.iv.next938, %300 ]
  %301 = add nsw i64 %indvars.iv937, %299
  %302 = trunc nsw i64 %301 to i32
  store i32 %302, ptr %7, align 4, !tbaa !5
  %303 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %.sroa.011.0.vec.extract = extractelement <2 x float> %303, i64 0
  %.sroa.011.4.vec.extract = extractelement <2 x float> %303, i64 1
  %304 = fneg float %.sroa.011.4.vec.extract
  %305 = call ptr @_pCf(ptr noundef nonnull %11)
  %306 = getelementptr inbounds i8, ptr %305, i64 4
  store float %.sroa.011.0.vec.extract, ptr %305, align 4
  store float %304, ptr %306, align 4
  %gep961 = getelementptr %struct.complex, ptr %invariant.gep960, i64 %indvars.iv937
  %307 = load float, ptr %gep961, align 4, !tbaa !9
  %308 = getelementptr inbounds i8, ptr %gep961, i64 4
  %309 = load float, ptr %308, align 4, !tbaa !13
  %310 = fneg float %309
  %311 = getelementptr inbounds %struct.complex, ptr %23, i64 %301
  %gep963 = getelementptr %struct.complex, ptr %invariant.gep962, i64 %indvars.iv937
  %312 = getelementptr inbounds i8, ptr %gep963, i64 4
  %313 = load <2 x float>, ptr %11, align 8, !tbaa !12
  %314 = insertelement <2 x float> poison, float %309, i64 0
  %315 = insertelement <2 x float> %314, float %310, i64 1
  %316 = fmul <2 x float> %313, %315
  %317 = shufflevector <2 x float> %316, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %318 = insertelement <2 x float> poison, float %307, i64 0
  %319 = shufflevector <2 x float> %318, <2 x float> poison, <2 x i32> zeroinitializer
  %320 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %319, <2 x float> %313, <2 x float> %317)
  %321 = load <2 x float>, ptr %311, align 4, !tbaa !12
  %322 = fsub <2 x float> %321, %320
  %323 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %.sroa.010.0.vec.extract = extractelement <2 x float> %323, i64 0
  %.sroa.010.4.vec.extract = extractelement <2 x float> %323, i64 1
  %324 = fneg float %.sroa.010.4.vec.extract
  %325 = call ptr @_pCf(ptr noundef nonnull %13)
  %326 = getelementptr inbounds i8, ptr %325, i64 4
  store float %.sroa.010.0.vec.extract, ptr %325, align 4
  store float %324, ptr %326, align 4
  %327 = load float, ptr %gep963, align 4, !tbaa !9
  %328 = load float, ptr %312, align 4, !tbaa !13
  %329 = fneg float %328
  %330 = load <2 x float>, ptr %13, align 8, !tbaa !12
  %331 = insertelement <2 x float> poison, float %328, i64 0
  %332 = insertelement <2 x float> %331, float %329, i64 1
  %333 = fmul <2 x float> %330, %332
  %334 = shufflevector <2 x float> %333, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %335 = insertelement <2 x float> poison, float %327, i64 0
  %336 = shufflevector <2 x float> %335, <2 x float> poison, <2 x i32> zeroinitializer
  %337 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %336, <2 x float> %330, <2 x float> %334)
  store <2 x float> %337, ptr %12, align 8, !tbaa !12
  %338 = fsub <2 x float> %322, %337
  store <2 x float> %338, ptr %10, align 8, !tbaa !12
  %339 = load i32, ptr %7, align 4, !tbaa !5
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds %struct.complex, ptr %23, i64 %340
  store <2 x float> %338, ptr %341, align 4, !tbaa !12
  %indvars.iv.next938 = add nsw i64 %indvars.iv937, -1
  %342 = icmp ugt i64 %indvars.iv937, 1
  br i1 %342, label %300, label %343, !llvm.loop !16

343:                                              ; preds = %300
  %344 = load <2 x float>, ptr %18, align 8, !tbaa !12
  store <2 x float> %344, ptr %gep988, align 4, !tbaa !12
  %345 = load <2 x float>, ptr %19, align 8, !tbaa !12
  store <2 x float> %345, ptr %265, align 4, !tbaa !12
  %346 = trunc nuw nsw i64 %indvars.iv935 to i32
  %347 = mul i32 %47, %346
  store i32 %347, ptr %7, align 4, !tbaa !5
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds %struct.complex, ptr %23, i64 %348
  %350 = load float, ptr %349, align 4, !tbaa !9
  store float %350, ptr %8, align 4, !tbaa !12
  store float %350, ptr %10, align 8, !tbaa !9
  store float 0.000000e+00, ptr %48, align 4, !tbaa !13
  %351 = getelementptr inbounds %struct.complex, ptr %23, i64 %348, i32 1
  store float 0.000000e+00, ptr %351, align 4, !tbaa !13
  %indvars.iv.next936 = add nsw i64 %indvars.iv935, -1
  %352 = icmp sgt i64 %indvars.iv935, 1
  br i1 %352, label %.lr.ph899, label %.loopexit892, !llvm.loop !17

353:                                              ; preds = %88, %223
  %.1847.ph = phi i32 [ %.0846, %223 ], [ %.0836908, %88 ]
  %354 = zext nneg i32 %.0836908 to i64
  %355 = getelementptr inbounds i32, ptr %24, i64 %354
  store i32 %.1847.ph, ptr %355, align 4, !tbaa !5
  br label %360

.loopexit892:                                     ; preds = %343, %229
  %356 = sub nsw i32 0, %.0846
  %357 = zext nneg i32 %.0836908 to i64
  %358 = getelementptr inbounds i32, ptr %24, i64 %357
  store i32 %356, ptr %358, align 4, !tbaa !5
  %359 = getelementptr i8, ptr %358, i64 -4
  store i32 %356, ptr %359, align 4, !tbaa !5
  br label %360

360:                                              ; preds = %.loopexit892, %353
  %.1839.neg881 = phi i32 [ -2, %.loopexit892 ], [ -1, %353 ]
  %361 = add nsw i32 %.1839.neg881, %.0836908
  %362 = icmp slt i32 %361, 1
  br i1 %362, label %.loopexit891, label %52

363:                                              ; preds = %.lr.ph932, %702
  %364 = phi i32 [ %29, %.lr.ph932 ], [ %704, %702 ]
  %.2931 = phi i32 [ undef, %.lr.ph932 ], [ %.3, %702 ]
  %.1837928 = phi i32 [ 1, %.lr.ph932 ], [ %703, %702 ]
  %365 = mul nsw i32 %.1837928, %21
  %366 = add nsw i32 %365, %.1837928
  store i32 %366, ptr %7, align 4, !tbaa !5
  %367 = sext i32 %366 to i64
  %368 = getelementptr inbounds %struct.complex, ptr %23, i64 %367
  %369 = load float, ptr %368, align 4, !tbaa !9
  store float %369, ptr %8, align 4, !tbaa !12
  %370 = fcmp oge float %369, 0.000000e+00
  %371 = fneg float %369
  %372 = select i1 %370, float %369, float %371
  store float %372, ptr %17, align 4, !tbaa !12
  %373 = icmp slt i32 %.1837928, %364
  br i1 %373, label %374, label %394

374:                                              ; preds = %363
  %375 = sub nsw i32 %364, %.1837928
  store i32 %375, ptr %7, align 4, !tbaa !5
  %376 = add nuw nsw i32 %.1837928, 1
  %377 = add nsw i32 %376, %365
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds %struct.complex, ptr %23, i64 %378
  %380 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %379, ptr noundef nonnull @c__1) #7
  %381 = add nsw i32 %380, %.1837928
  %382 = add nsw i32 %381, %365
  store i32 %382, ptr %7, align 4, !tbaa !5
  %383 = sext i32 %382 to i64
  %384 = getelementptr inbounds %struct.complex, ptr %23, i64 %383
  %385 = load float, ptr %384, align 4, !tbaa !9
  store float %385, ptr %8, align 4, !tbaa !12
  %386 = fcmp oge float %385, 0.000000e+00
  %387 = fneg float %385
  %388 = select i1 %386, float %385, float %387
  %389 = call <2 x float> @Cf(ptr noundef nonnull %384)
  %.sroa.09.4.vec.extract = extractelement <2 x float> %389, i64 1
  store float %.sroa.09.4.vec.extract, ptr %9, align 4, !tbaa !12
  %390 = fcmp oge float %.sroa.09.4.vec.extract, 0.000000e+00
  %391 = fneg float %.sroa.09.4.vec.extract
  %392 = select i1 %390, float %.sroa.09.4.vec.extract, float %391
  %393 = fadd float %388, %392
  %.pre950 = load float, ptr %17, align 4
  br label %394

394:                                              ; preds = %363, %374
  %395 = phi float [ %.pre950, %374 ], [ %372, %363 ]
  %.1845 = phi float [ %393, %374 ], [ 0.000000e+00, %363 ]
  %.3 = phi i32 [ %381, %374 ], [ %.2931, %363 ]
  %396 = fcmp oge float %395, %.1845
  %397 = select i1 %396, float %395, float %.1845
  %398 = fcmp oeq float %397, 0.000000e+00
  br i1 %398, label %401, label %399

399:                                              ; preds = %394
  %400 = call i32 @sisnan_(ptr noundef nonnull %17) #7
  %.not861 = icmp eq i32 %400, 0
  br i1 %.not861, label %408, label %401

401:                                              ; preds = %399, %394
  %402 = load i32, ptr %5, align 4, !tbaa !5
  %403 = icmp eq i32 %402, 0
  br i1 %403, label %404, label %405

404:                                              ; preds = %401
  store i32 %.1837928, ptr %5, align 4, !tbaa !5
  br label %405

405:                                              ; preds = %404, %401
  store i32 %366, ptr %7, align 4, !tbaa !5
  %406 = load float, ptr %368, align 4, !tbaa !9
  store float %406, ptr %8, align 4, !tbaa !12
  %407 = getelementptr inbounds %struct.complex, ptr %23, i64 %367, i32 1
  store float 0.000000e+00, ptr %407, align 4, !tbaa !13
  br label %695

408:                                              ; preds = %399
  %409 = load float, ptr %17, align 4, !tbaa !12
  %410 = fmul float %.1845, 0x3FE47E0F60000000
  %411 = fcmp ult float %409, %410
  br i1 %411, label %412, label %473

412:                                              ; preds = %408
  %413 = sub nsw i32 %.3, %.1837928
  store i32 %413, ptr %7, align 4, !tbaa !5
  %414 = add nsw i32 %.1837928, -1
  %415 = add nsw i32 %.3, %365
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds %struct.complex, ptr %23, i64 %416
  %418 = call i32 @icamax_(ptr noundef nonnull %7, ptr noundef %417, ptr noundef nonnull %3) #7
  %419 = add nsw i32 %414, %418
  %420 = mul nsw i32 %419, %21
  %421 = add nsw i32 %420, %.3
  store i32 %421, ptr %7, align 4, !tbaa !5
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds %struct.complex, ptr %23, i64 %422
  %424 = load float, ptr %423, align 4, !tbaa !9
  store float %424, ptr %8, align 4, !tbaa !12
  %425 = fcmp oge float %424, 0.000000e+00
  %426 = fneg float %424
  %427 = select i1 %425, float %424, float %426
  %428 = call <2 x float> @Cf(ptr noundef nonnull %423)
  %.sroa.08.4.vec.extract = extractelement <2 x float> %428, i64 1
  store float %.sroa.08.4.vec.extract, ptr %9, align 4, !tbaa !12
  %429 = fcmp oge float %.sroa.08.4.vec.extract, 0.000000e+00
  %430 = fneg float %.sroa.08.4.vec.extract
  %431 = select i1 %429, float %.sroa.08.4.vec.extract, float %430
  %432 = fadd float %427, %431
  %433 = load i32, ptr %1, align 4, !tbaa !5
  %434 = icmp slt i32 %.3, %433
  br i1 %434, label %435, label %458

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

458:                                              ; preds = %435, %412
  %.1843 = phi float [ %457, %435 ], [ %432, %412 ]
  %459 = load float, ptr %17, align 4, !tbaa !12
  %460 = fdiv float %.1845, %.1843
  %461 = fmul float %410, %460
  %462 = fcmp ult float %459, %461
  br i1 %462, label %463, label %473

463:                                              ; preds = %458
  %464 = mul i32 %.3, %40
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds %struct.complex, ptr %23, i64 %465
  %467 = load float, ptr %466, align 4, !tbaa !9
  store float %467, ptr %8, align 4, !tbaa !12
  %468 = fcmp oge float %467, 0.000000e+00
  %469 = fneg float %467
  %470 = select i1 %468, float %467, float %469
  %471 = fmul float %.1843, 0x3FE47E0F60000000
  %472 = fcmp ult float %470, %471
  %not.890 = xor i1 %472, true
  %.874 = select i1 %472, i32 2, i32 1
  br label %473

473:                                              ; preds = %463, %458, %408
  %.2848 = phi i32 [ %.1837928, %408 ], [ %.1837928, %458 ], [ %.3, %463 ]
  %474 = phi i1 [ false, %408 ], [ false, %458 ], [ %472, %463 ]
  %475 = phi i1 [ true, %408 ], [ true, %458 ], [ %not.890, %463 ]
  %.2840 = phi i32 [ 1, %408 ], [ 1, %458 ], [ %.874, %463 ]
  %476 = add nuw nsw i32 %.2840, %.1837928
  %477 = add nsw i32 %476, -1
  %.not862 = icmp eq i32 %.2848, %477
  br i1 %.not862, label %547, label %478

478:                                              ; preds = %473
  %479 = load i32, ptr %1, align 4, !tbaa !5
  %480 = icmp slt i32 %.2848, %479
  br i1 %480, label %481, label %492

481:                                              ; preds = %478
  %482 = sub nsw i32 %479, %.2848
  store i32 %482, ptr %7, align 4, !tbaa !5
  %483 = add nsw i32 %.2848, 1
  %484 = mul nsw i32 %477, %21
  %485 = add nsw i32 %484, %483
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds %struct.complex, ptr %23, i64 %486
  %488 = mul nsw i32 %.2848, %21
  %489 = add nsw i32 %483, %488
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds %struct.complex, ptr %23, i64 %490
  call void @cswap_(ptr noundef nonnull %7, ptr noundef %487, ptr noundef nonnull @c__1, ptr noundef %491, ptr noundef nonnull @c__1) #7
  br label %492

492:                                              ; preds = %481, %478
  %493 = add nsw i32 %.2848, -1
  store i32 %493, ptr %7, align 4, !tbaa !5
  %.not863914.not = icmp slt i32 %476, %.2848
  %494 = mul nsw i32 %477, %21
  br i1 %.not863914.not, label %.lr.ph917, label %._crit_edge918

.lr.ph917:                                        ; preds = %492
  %narrow954 = add nuw i32 %.2840, %.1837928
  %495 = zext i32 %narrow954 to i64
  %496 = sext i32 %494 to i64
  %497 = sext i32 %.2848 to i64
  %invariant.gep964 = getelementptr %struct.complex, ptr %23, i64 %496
  %invariant.gep966 = getelementptr %struct.complex, ptr %23, i64 %497
  br label %498

498:                                              ; preds = %.lr.ph917, %498
  %indvars.iv941 = phi i64 [ %495, %.lr.ph917 ], [ %indvars.iv.next942, %498 ]
  %gep965 = getelementptr %struct.complex, ptr %invariant.gep964, i64 %indvars.iv941
  %499 = call <2 x float> @Cf(ptr noundef %gep965)
  %.sroa.06.0.vec.extract = extractelement <2 x float> %499, i64 0
  %.sroa.06.4.vec.extract = extractelement <2 x float> %499, i64 1
  %500 = fneg float %.sroa.06.4.vec.extract
  %501 = call ptr @_pCf(ptr noundef nonnull %10)
  %502 = getelementptr inbounds i8, ptr %501, i64 4
  store float %.sroa.06.0.vec.extract, ptr %501, align 4
  store float %500, ptr %502, align 4
  %503 = mul nsw i64 %indvars.iv941, %44
  %gep967 = getelementptr %struct.complex, ptr %invariant.gep966, i64 %503
  %504 = load <2 x float>, ptr %10, align 8, !tbaa !12
  %505 = call <2 x float> @Cf(ptr noundef %gep967)
  %.sroa.05.0.vec.extract = extractelement <2 x float> %505, i64 0
  %.sroa.05.4.vec.extract = extractelement <2 x float> %505, i64 1
  %506 = fneg float %.sroa.05.4.vec.extract
  %507 = call ptr @_pCf(ptr noundef nonnull %10)
  %508 = getelementptr inbounds i8, ptr %507, i64 4
  store float %.sroa.05.0.vec.extract, ptr %507, align 4
  store float %506, ptr %508, align 4
  %509 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %509, ptr %gep965, align 4, !tbaa !12
  store <2 x float> %504, ptr %gep967, align 4, !tbaa !12
  %indvars.iv.next942 = add nuw nsw i64 %indvars.iv941, 1
  %510 = load i32, ptr %7, align 4, !tbaa !5
  %511 = sext i32 %510 to i64
  %.not863.not = icmp slt i64 %indvars.iv941, %511
  br i1 %.not863.not, label %498, label %._crit_edge918, !llvm.loop !18

._crit_edge918:                                   ; preds = %498, %492
  %512 = add nsw i32 %494, %.2848
  store i32 %512, ptr %7, align 4, !tbaa !5
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds %struct.complex, ptr %23, i64 %513
  %515 = call <2 x float> @Cf(ptr noundef %514)
  %.sroa.04.0.vec.extract = extractelement <2 x float> %515, i64 0
  %.sroa.04.4.vec.extract = extractelement <2 x float> %515, i64 1
  %516 = fneg float %.sroa.04.4.vec.extract
  %517 = call ptr @_pCf(ptr noundef nonnull %10)
  %518 = getelementptr inbounds i8, ptr %517, i64 4
  store float %.sroa.04.0.vec.extract, ptr %517, align 4
  store float %516, ptr %518, align 4
  %519 = load i32, ptr %7, align 4, !tbaa !5
  %520 = sext i32 %519 to i64
  %521 = getelementptr inbounds %struct.complex, ptr %23, i64 %520
  %522 = load <2 x float>, ptr %10, align 8, !tbaa !12
  store <2 x float> %522, ptr %521, align 4, !tbaa !12
  %523 = add nsw i32 %494, %477
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds %struct.complex, ptr %23, i64 %524
  %526 = load float, ptr %525, align 4, !tbaa !9
  store float %526, ptr %14, align 4, !tbaa !12
  %527 = mul i32 %.2848, %40
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds %struct.complex, ptr %23, i64 %528
  %530 = load float, ptr %529, align 4, !tbaa !9
  store float %530, ptr %8, align 4, !tbaa !12
  store float %530, ptr %525, align 4, !tbaa !9
  %531 = getelementptr inbounds %struct.complex, ptr %23, i64 %524, i32 1
  store float 0.000000e+00, ptr %531, align 4, !tbaa !13
  store i32 %527, ptr %7, align 4, !tbaa !5
  store float %526, ptr %529, align 4, !tbaa !9
  %532 = getelementptr inbounds %struct.complex, ptr %23, i64 %528, i32 1
  store float 0.000000e+00, ptr %532, align 4, !tbaa !13
  br i1 %474, label %533, label %557

533:                                              ; preds = %._crit_edge918
  %534 = load float, ptr %368, align 4, !tbaa !9
  store float %534, ptr %8, align 4, !tbaa !12
  %535 = getelementptr inbounds %struct.complex, ptr %23, i64 %367, i32 1
  store float 0.000000e+00, ptr %535, align 4, !tbaa !13
  %536 = add nuw nsw i32 %.1837928, 1
  %537 = add nsw i32 %536, %365
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds %struct.complex, ptr %23, i64 %538
  %540 = load float, ptr %539, align 4, !tbaa !9
  %541 = getelementptr inbounds i8, ptr %539, i64 4
  %542 = load float, ptr %541, align 4, !tbaa !13
  %543 = add nsw i32 %.2848, %365
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds %struct.complex, ptr %23, i64 %544
  %546 = load <2 x float>, ptr %545, align 4, !tbaa !12
  store <2 x float> %546, ptr %539, align 4, !tbaa !12
  store i32 %543, ptr %7, align 4, !tbaa !5
  store float %540, ptr %545, align 4, !tbaa !9
  br label %.sink.split981

547:                                              ; preds = %473
  store i32 %366, ptr %7, align 4, !tbaa !5
  %548 = load float, ptr %368, align 4, !tbaa !9
  store float %548, ptr %8, align 4, !tbaa !12
  %549 = getelementptr inbounds %struct.complex, ptr %23, i64 %367, i32 1
  store float 0.000000e+00, ptr %549, align 4, !tbaa !13
  br i1 %474, label %550, label %557

550:                                              ; preds = %547
  %551 = add nuw nsw i32 %.1837928, 1
  %552 = mul i32 %551, %40
  store i32 %552, ptr %7, align 4, !tbaa !5
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds %struct.complex, ptr %23, i64 %553
  %555 = load float, ptr %554, align 4, !tbaa !9
  store float %555, ptr %8, align 4, !tbaa !12
  br label %.sink.split981

.sink.split981:                                   ; preds = %533, %550
  %.sink984 = phi i64 [ %553, %550 ], [ %544, %533 ]
  %.sink982 = phi float [ 0.000000e+00, %550 ], [ %542, %533 ]
  %556 = getelementptr inbounds %struct.complex, ptr %23, i64 %.sink984, i32 1
  store float %.sink982, ptr %556, align 4, !tbaa !13
  br label %557

557:                                              ; preds = %.sink.split981, %547, %._crit_edge918
  %558 = load i32, ptr %1, align 4, !tbaa !5
  br i1 %475, label %559, label %575

559:                                              ; preds = %557
  %560 = icmp slt i32 %.1837928, %558
  br i1 %560, label %561, label %695

561:                                              ; preds = %559
  %562 = load float, ptr %368, align 4, !tbaa !9
  %563 = fdiv float 1.000000e+00, %562
  store float %563, ptr %14, align 4, !tbaa !12
  %564 = sub nsw i32 %558, %.1837928
  store i32 %564, ptr %7, align 4, !tbaa !5
  %565 = fneg float %563
  store float %565, ptr %8, align 4, !tbaa !12
  %566 = add nuw nsw i32 %.1837928, 1
  %567 = add nsw i32 %566, %365
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds %struct.complex, ptr %23, i64 %568
  %570 = mul i32 %566, %40
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds %struct.complex, ptr %23, i64 %571
  call void @cher_(ptr noundef %0, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %569, ptr noundef nonnull @c__1, ptr noundef %572, ptr noundef nonnull %3) #7
  %573 = load i32, ptr %1, align 4, !tbaa !5
  %574 = sub nsw i32 %573, %.1837928
  store i32 %574, ptr %7, align 4, !tbaa !5
  call void @csscal_(ptr noundef nonnull %7, ptr noundef nonnull %14, ptr noundef %569, ptr noundef nonnull @c__1) #7
  br label %695

575:                                              ; preds = %557
  %576 = add nsw i32 %558, -1
  %577 = icmp slt i32 %.1837928, %576
  br i1 %577, label %578, label %.loopexit

578:                                              ; preds = %575
  %579 = add nuw nsw i32 %.1837928, 1
  %580 = add nsw i32 %579, %365
  store i32 %580, ptr %7, align 4, !tbaa !5
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds %struct.complex, ptr %23, i64 %581
  %583 = load float, ptr %582, align 4, !tbaa !9
  store float %583, ptr %8, align 4, !tbaa !12
  %584 = call <2 x float> @Cf(ptr noundef nonnull %582)
  %.sroa.03.4.vec.extract = extractelement <2 x float> %584, i64 1
  store float %.sroa.03.4.vec.extract, ptr %9, align 4, !tbaa !12
  %585 = call float @slapy2_(ptr noundef nonnull %8, ptr noundef nonnull %9) #7
  %586 = mul nsw i32 %579, %21
  %587 = add nsw i32 %586, %579
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds %struct.complex, ptr %23, i64 %588
  %590 = load float, ptr %589, align 4, !tbaa !9
  %591 = load float, ptr %368, align 4, !tbaa !9
  %592 = load <2 x float>, ptr %582, align 4, !tbaa !12
  %593 = insertelement <2 x float> poison, float %585, i64 0
  %594 = shufflevector <2 x float> %593, <2 x float> poison, <2 x i32> zeroinitializer
  %595 = fdiv <2 x float> %592, %594
  store <2 x float> %595, ptr %10, align 8, !tbaa !12
  store <2 x float> %595, ptr %16, align 8, !tbaa !12
  %596 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %596, ptr %7, align 4, !tbaa !5
  %597 = add nuw nsw i32 %.1837928, 2
  %.not864924 = icmp sgt i32 %597, %596
  br i1 %.not864924, label %.loopexit, label %.lr.ph927.preheader

.lr.ph927.preheader:                              ; preds = %578
  %598 = fdiv float %590, %585
  %599 = fdiv float %591, %585
  %600 = call float @llvm.fmuladd.f32(float %598, float %599, float -1.000000e+00)
  %601 = fdiv float 1.000000e+00, %600
  %602 = fdiv float %601, %585
  %603 = zext nneg i32 %597 to i64
  %604 = sext i32 %365 to i64
  %605 = sext i32 %586 to i64
  %invariant.gep974 = getelementptr %struct.complex, ptr %23, i64 %604
  %invariant.gep976 = getelementptr %struct.complex, ptr %23, i64 %605
  %invariant.gep968 = getelementptr %struct.complex, ptr %23, i64 %604
  %invariant.gep972 = getelementptr %struct.complex, ptr %23, i64 %605
  %606 = insertelement <2 x float> poison, float %602, i64 0
  %607 = shufflevector <2 x float> %606, <2 x float> poison, <2 x i32> zeroinitializer
  %608 = insertelement <2 x float> poison, float %599, i64 0
  %609 = shufflevector <2 x float> %608, <2 x float> poison, <2 x i32> zeroinitializer
  %610 = insertelement <2 x float> poison, float %598, i64 0
  %611 = shufflevector <2 x float> %610, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph927

.lr.ph927:                                        ; preds = %.lr.ph927.preheader, %._crit_edge923
  %indvars.iv944 = phi i64 [ %603, %.lr.ph927.preheader ], [ %indvars.iv.next945, %._crit_edge923 ]
  %gep975 = getelementptr %struct.complex, ptr %invariant.gep974, i64 %indvars.iv944
  %612 = load float, ptr %16, align 8, !tbaa !9
  %gep977 = getelementptr %struct.complex, ptr %invariant.gep976, i64 %indvars.iv944
  %613 = load float, ptr %42, align 4, !tbaa !13
  %614 = fneg float %613
  %615 = load <2 x float>, ptr %gep977, align 4, !tbaa !12
  %616 = insertelement <2 x float> poison, float %613, i64 0
  %617 = insertelement <2 x float> %616, float %614, i64 1
  %618 = fmul <2 x float> %615, %617
  %619 = shufflevector <2 x float> %618, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %620 = insertelement <2 x float> poison, float %612, i64 0
  %621 = shufflevector <2 x float> %620, <2 x float> poison, <2 x i32> zeroinitializer
  %622 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %621, <2 x float> %615, <2 x float> %619)
  store <2 x float> %622, ptr %11, align 8, !tbaa !12
  %623 = load <2 x float>, ptr %gep975, align 4, !tbaa !12
  %624 = fmul <2 x float> %611, %623
  %625 = fsub <2 x float> %624, %622
  %626 = fmul <2 x float> %607, %625
  store <2 x float> %626, ptr %10, align 8, !tbaa !12
  store <2 x float> %626, ptr %18, align 8, !tbaa !12
  %627 = fmul <2 x float> %609, %615
  %628 = call <2 x float> @Cf(ptr noundef nonnull %16)
  %.sroa.02.0.vec.extract = extractelement <2 x float> %628, i64 0
  %.sroa.02.4.vec.extract = extractelement <2 x float> %628, i64 1
  %629 = fneg float %.sroa.02.4.vec.extract
  %630 = call ptr @_pCf(ptr noundef nonnull %12)
  %631 = getelementptr inbounds i8, ptr %630, i64 4
  store float %.sroa.02.0.vec.extract, ptr %630, align 4
  store float %629, ptr %631, align 4
  %632 = load float, ptr %12, align 8, !tbaa !9
  %633 = load float, ptr %43, align 4, !tbaa !13
  %634 = load <2 x float>, ptr %gep975, align 4, !tbaa !12
  %635 = fneg float %633
  %636 = insertelement <2 x float> poison, float %633, i64 0
  %637 = insertelement <2 x float> %636, float %635, i64 1
  %638 = fmul <2 x float> %634, %637
  %639 = shufflevector <2 x float> %638, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %640 = insertelement <2 x float> poison, float %632, i64 0
  %641 = shufflevector <2 x float> %640, <2 x float> poison, <2 x i32> zeroinitializer
  %642 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %641, <2 x float> %634, <2 x float> %639)
  store <2 x float> %642, ptr %11, align 8, !tbaa !12
  %643 = fsub <2 x float> %627, %642
  %644 = fmul <2 x float> %607, %643
  store <2 x float> %644, ptr %10, align 8, !tbaa !12
  store <2 x float> %644, ptr %20, align 8, !tbaa !12
  %645 = load i32, ptr %1, align 4, !tbaa !5
  %646 = sext i32 %645 to i64
  %.not865919 = icmp sgt i64 %indvars.iv944, %646
  br i1 %.not865919, label %._crit_edge923, label %.lr.ph922

.lr.ph922:                                        ; preds = %.lr.ph927
  %647 = mul nsw i64 %indvars.iv944, %44
  %invariant.gep970 = getelementptr %struct.complex, ptr %23, i64 %647
  br label %648

648:                                              ; preds = %.lr.ph922, %648
  %indvars.iv946 = phi i64 [ %indvars.iv944, %.lr.ph922 ], [ %indvars.iv.next947, %648 ]
  %649 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %.sroa.01.0.vec.extract = extractelement <2 x float> %649, i64 0
  %.sroa.01.4.vec.extract = extractelement <2 x float> %649, i64 1
  %650 = fneg float %.sroa.01.4.vec.extract
  %651 = call ptr @_pCf(ptr noundef nonnull %11)
  %652 = getelementptr inbounds i8, ptr %651, i64 4
  store float %.sroa.01.0.vec.extract, ptr %651, align 4
  store float %650, ptr %652, align 4
  %gep969 = getelementptr %struct.complex, ptr %invariant.gep968, i64 %indvars.iv946
  %653 = load float, ptr %gep969, align 4, !tbaa !9
  %654 = getelementptr inbounds i8, ptr %gep969, i64 4
  %655 = load float, ptr %654, align 4, !tbaa !13
  %656 = fneg float %655
  %gep971 = getelementptr %struct.complex, ptr %invariant.gep970, i64 %indvars.iv946
  %gep973 = getelementptr %struct.complex, ptr %invariant.gep972, i64 %indvars.iv946
  %657 = getelementptr inbounds i8, ptr %gep973, i64 4
  %658 = load <2 x float>, ptr %11, align 8, !tbaa !12
  %659 = insertelement <2 x float> poison, float %655, i64 0
  %660 = insertelement <2 x float> %659, float %656, i64 1
  %661 = fmul <2 x float> %658, %660
  %662 = shufflevector <2 x float> %661, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %663 = insertelement <2 x float> poison, float %653, i64 0
  %664 = shufflevector <2 x float> %663, <2 x float> poison, <2 x i32> zeroinitializer
  %665 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %664, <2 x float> %658, <2 x float> %662)
  %666 = load <2 x float>, ptr %gep971, align 4, !tbaa !12
  %667 = fsub <2 x float> %666, %665
  %668 = call <2 x float> @Cf(ptr noundef nonnull %20)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %668, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %668, i64 1
  %669 = fneg float %.sroa.0.4.vec.extract
  %670 = call ptr @_pCf(ptr noundef nonnull %13)
  %671 = getelementptr inbounds i8, ptr %670, i64 4
  store float %.sroa.0.0.vec.extract, ptr %670, align 4
  store float %669, ptr %671, align 4
  %672 = load float, ptr %gep973, align 4, !tbaa !9
  %673 = load float, ptr %657, align 4, !tbaa !13
  %674 = fneg float %673
  %675 = load <2 x float>, ptr %13, align 8, !tbaa !12
  %676 = insertelement <2 x float> poison, float %673, i64 0
  %677 = insertelement <2 x float> %676, float %674, i64 1
  %678 = fmul <2 x float> %675, %677
  %679 = shufflevector <2 x float> %678, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %680 = insertelement <2 x float> poison, float %672, i64 0
  %681 = shufflevector <2 x float> %680, <2 x float> poison, <2 x i32> zeroinitializer
  %682 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %681, <2 x float> %675, <2 x float> %679)
  store <2 x float> %682, ptr %12, align 8, !tbaa !12
  %683 = fsub <2 x float> %667, %682
  store <2 x float> %683, ptr %10, align 8, !tbaa !12
  store <2 x float> %683, ptr %gep971, align 4, !tbaa !12
  %indvars.iv.next947 = add nuw nsw i64 %indvars.iv946, 1
  %.not865.not = icmp slt i64 %indvars.iv946, %646
  br i1 %.not865.not, label %648, label %._crit_edge923.loopexit, !llvm.loop !19

._crit_edge923.loopexit:                          ; preds = %648
  %684 = load <2 x float>, ptr %20, align 8, !tbaa !12
  br label %._crit_edge923

._crit_edge923:                                   ; preds = %._crit_edge923.loopexit, %.lr.ph927
  %685 = phi <2 x float> [ %684, %._crit_edge923.loopexit ], [ %644, %.lr.ph927 ]
  %686 = load <2 x float>, ptr %18, align 8, !tbaa !12
  store <2 x float> %686, ptr %gep975, align 4, !tbaa !12
  store <2 x float> %685, ptr %gep977, align 4, !tbaa !12
  %687 = trunc nsw i64 %indvars.iv944 to i32
  %688 = mul i32 %40, %687
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds %struct.complex, ptr %23, i64 %689
  %691 = load float, ptr %690, align 4, !tbaa !9
  store float %691, ptr %8, align 4, !tbaa !12
  store float %691, ptr %10, align 8, !tbaa !9
  store float 0.000000e+00, ptr %41, align 4, !tbaa !13
  %692 = getelementptr inbounds i8, ptr %690, i64 4
  store float 0.000000e+00, ptr %692, align 4, !tbaa !13
  %indvars.iv.next945 = add nuw nsw i64 %indvars.iv944, 1
  %693 = load i32, ptr %7, align 4, !tbaa !5
  %694 = sext i32 %693 to i64
  %.not864.not = icmp slt i64 %indvars.iv944, %694
  br i1 %.not864.not, label %.lr.ph927, label %.loopexit, !llvm.loop !20

695:                                              ; preds = %405, %561, %559
  %.3849.ph = phi i32 [ %.2848, %559 ], [ %.2848, %561 ], [ %.1837928, %405 ]
  %696 = zext nneg i32 %.1837928 to i64
  %697 = getelementptr inbounds i32, ptr %24, i64 %696
  store i32 %.3849.ph, ptr %697, align 4, !tbaa !5
  br label %702

.loopexit:                                        ; preds = %._crit_edge923, %578, %575
  %698 = sub nsw i32 0, %.2848
  %699 = zext nneg i32 %.1837928 to i64
  %700 = getelementptr inbounds i32, ptr %24, i64 %699
  store i32 %698, ptr %700, align 4, !tbaa !5
  %701 = getelementptr inbounds i8, ptr %700, i64 4
  store i32 %698, ptr %701, align 4, !tbaa !5
  br label %702

702:                                              ; preds = %.loopexit, %695
  %.3841888 = phi i32 [ 2, %.loopexit ], [ 1, %695 ]
  %703 = add nuw nsw i32 %.3841888, %.1837928
  %704 = load i32, ptr %1, align 4, !tbaa !5
  %705 = icmp sgt i32 %703, %704
  br i1 %705, label %.loopexit891, label %363

.loopexit891:                                     ; preds = %360, %702, %45, %.preheader, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, 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 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 i32 @sisnan_(ptr noundef) local_unnamed_addr #2

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 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}


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