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

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

%struct.complex = type { float, float }

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

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

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

133:                                              ; preds = %1736, %130
  %134 = load ptr, ptr %13, align 8, !tbaa !5
  %135 = load i32, ptr %134, align 4, !tbaa !9
  %136 = load i32, ptr %41, align 4, !tbaa !9
  %137 = add nsw i32 %135, %136
  %138 = load ptr, ptr %12, align 8, !tbaa !5
  %139 = load i32, ptr %138, align 4, !tbaa !9
  %140 = sub nsw i32 %137, %139
  store i32 %140, ptr %59, align 4, !tbaa !9
  %141 = load i32, ptr %41, align 4, !tbaa !9
  %142 = load ptr, ptr %12, align 8, !tbaa !5
  %143 = load i32, ptr %142, align 4, !tbaa !9
  %144 = load ptr, ptr %13, align 8, !tbaa !5
  %145 = load i32, ptr %144, align 4, !tbaa !9
  %146 = sub nsw i32 %143, %145
  %147 = add nsw i32 %146, 1
  %148 = icmp sle i32 %141, %147
  br i1 %148, label %149, label %155

149:                                              ; preds = %133
  %150 = load ptr, ptr %13, align 8, !tbaa !5
  %151 = load i32, ptr %150, align 4, !tbaa !9
  %152 = load ptr, ptr %12, align 8, !tbaa !5
  %153 = load i32, ptr %152, align 4, !tbaa !9
  %154 = icmp slt i32 %151, %153
  br i1 %154, label %158, label %155

155:                                              ; preds = %149, %133
  %156 = load i32, ptr %41, align 4, !tbaa !9
  %157 = icmp slt i32 %156, 1
  br i1 %157, label %158, label %159

158:                                              ; preds = %155, %149
  br label %1740

159:                                              ; preds = %155
  store i32 1, ptr %47, align 4, !tbaa !9
  %160 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %160, ptr %42, align 4, !tbaa !9
  %161 = load i32, ptr %41, align 4, !tbaa !9
  %162 = icmp sgt i32 %161, 1
  br i1 %162, label %163, label %180

163:                                              ; preds = %159
  %164 = load i32, ptr %41, align 4, !tbaa !9
  %165 = sub nsw i32 %164, 1
  store i32 %165, ptr %25, align 4, !tbaa !9
  %166 = load ptr, ptr %15, align 8, !tbaa !5
  %167 = load i32, ptr %41, align 4, !tbaa !9
  %168 = load i32, ptr %21, align 4, !tbaa !9
  %169 = mul nsw i32 %167, %168
  %170 = add nsw i32 %169, 1
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds %struct.complex, ptr %166, i64 %171
  %173 = load ptr, ptr %18, align 8, !tbaa !5
  %174 = load i32, ptr %59, align 4, !tbaa !9
  %175 = load i32, ptr %23, align 4, !tbaa !9
  %176 = mul nsw i32 %174, %175
  %177 = add nsw i32 %176, 1
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds %struct.complex, ptr %173, i64 %178
  call void @ccopy_(ptr noundef %25, ptr noundef %172, ptr noundef @c__1, ptr noundef %179, ptr noundef @c__1)
  br label %180

180:                                              ; preds = %163, %159
  %181 = load i32, ptr %41, align 4, !tbaa !9
  %182 = load i32, ptr %59, align 4, !tbaa !9
  %183 = load i32, ptr %23, align 4, !tbaa !9
  %184 = mul nsw i32 %182, %183
  %185 = add nsw i32 %181, %184
  store i32 %185, ptr %25, align 4, !tbaa !9
  %186 = load i32, ptr %41, align 4, !tbaa !9
  %187 = load i32, ptr %41, align 4, !tbaa !9
  %188 = load i32, ptr %21, align 4, !tbaa !9
  %189 = mul nsw i32 %187, %188
  %190 = add nsw i32 %186, %189
  store i32 %190, ptr %26, align 4, !tbaa !9
  %191 = load ptr, ptr %15, align 8, !tbaa !5
  %192 = load i32, ptr %26, align 4, !tbaa !9
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds %struct.complex, ptr %191, i64 %193
  %195 = getelementptr inbounds %struct.complex, ptr %194, i32 0, i32 0
  %196 = load float, ptr %195, align 4, !tbaa !13
  store float %196, ptr %30, align 4, !tbaa !11
  %197 = load float, ptr %30, align 4, !tbaa !11
  %198 = load ptr, ptr %18, align 8, !tbaa !5
  %199 = load i32, ptr %25, align 4, !tbaa !9
  %200 = sext i32 %199 to i64
  %201 = getelementptr inbounds %struct.complex, ptr %198, i64 %200
  %202 = getelementptr inbounds %struct.complex, ptr %201, i32 0, i32 0
  store float %197, ptr %202, align 4, !tbaa !13
  %203 = load ptr, ptr %18, align 8, !tbaa !5
  %204 = load i32, ptr %25, align 4, !tbaa !9
  %205 = sext i32 %204 to i64
  %206 = getelementptr inbounds %struct.complex, ptr %203, i64 %205
  %207 = getelementptr inbounds %struct.complex, ptr %206, i32 0, i32 1
  store float 0.000000e+00, ptr %207, align 4, !tbaa !15
  %208 = load i32, ptr %41, align 4, !tbaa !9
  %209 = load ptr, ptr %12, align 8, !tbaa !5
  %210 = load i32, ptr %209, align 4, !tbaa !9
  %211 = icmp slt i32 %208, %210
  br i1 %211, label %212, label %272

212:                                              ; preds = %180
  %213 = load ptr, ptr %12, align 8, !tbaa !5
  %214 = load i32, ptr %213, align 4, !tbaa !9
  %215 = load i32, ptr %41, align 4, !tbaa !9
  %216 = sub nsw i32 %214, %215
  store i32 %216, ptr %25, align 4, !tbaa !9
  %217 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float -1.000000e+00, ptr %217, align 4, !tbaa !13
  %218 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float 0.000000e+00, ptr %218, align 4, !tbaa !15
  %219 = load ptr, ptr %15, align 8, !tbaa !5
  %220 = load i32, ptr %41, align 4, !tbaa !9
  %221 = add nsw i32 %220, 1
  %222 = load i32, ptr %21, align 4, !tbaa !9
  %223 = mul nsw i32 %221, %222
  %224 = add nsw i32 %223, 1
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds %struct.complex, ptr %219, i64 %225
  %227 = load ptr, ptr %16, align 8, !tbaa !5
  %228 = load ptr, ptr %18, align 8, !tbaa !5
  %229 = load i32, ptr %41, align 4, !tbaa !9
  %230 = load i32, ptr %59, align 4, !tbaa !9
  %231 = add nsw i32 %230, 1
  %232 = load i32, ptr %23, align 4, !tbaa !9
  %233 = mul nsw i32 %231, %232
  %234 = add nsw i32 %229, %233
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds %struct.complex, ptr %228, i64 %235
  %237 = load ptr, ptr %19, align 8, !tbaa !5
  %238 = load ptr, ptr %18, align 8, !tbaa !5
  %239 = load i32, ptr %59, align 4, !tbaa !9
  %240 = load i32, ptr %23, align 4, !tbaa !9
  %241 = mul nsw i32 %239, %240
  %242 = add nsw i32 %241, 1
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds %struct.complex, ptr %238, i64 %243
  call void @cgemv_(ptr noundef @.str.2, ptr noundef %41, ptr noundef %25, ptr noundef %32, ptr noundef %226, ptr noundef %227, ptr noundef %236, ptr noundef %237, ptr noundef @c_b1, ptr noundef %244, ptr noundef @c__1)
  %245 = load i32, ptr %41, align 4, !tbaa !9
  %246 = load i32, ptr %59, align 4, !tbaa !9
  %247 = load i32, ptr %23, align 4, !tbaa !9
  %248 = mul nsw i32 %246, %247
  %249 = add nsw i32 %245, %248
  store i32 %249, ptr %25, align 4, !tbaa !9
  %250 = load i32, ptr %41, align 4, !tbaa !9
  %251 = load i32, ptr %59, align 4, !tbaa !9
  %252 = load i32, ptr %23, align 4, !tbaa !9
  %253 = mul nsw i32 %251, %252
  %254 = add nsw i32 %250, %253
  store i32 %254, ptr %26, align 4, !tbaa !9
  %255 = load ptr, ptr %18, align 8, !tbaa !5
  %256 = load i32, ptr %26, align 4, !tbaa !9
  %257 = sext i32 %256 to i64
  %258 = getelementptr inbounds %struct.complex, ptr %255, i64 %257
  %259 = getelementptr inbounds %struct.complex, ptr %258, i32 0, i32 0
  %260 = load float, ptr %259, align 4, !tbaa !13
  store float %260, ptr %30, align 4, !tbaa !11
  %261 = load float, ptr %30, align 4, !tbaa !11
  %262 = load ptr, ptr %18, align 8, !tbaa !5
  %263 = load i32, ptr %25, align 4, !tbaa !9
  %264 = sext i32 %263 to i64
  %265 = getelementptr inbounds %struct.complex, ptr %262, i64 %264
  %266 = getelementptr inbounds %struct.complex, ptr %265, i32 0, i32 0
  store float %261, ptr %266, align 4, !tbaa !13
  %267 = load ptr, ptr %18, align 8, !tbaa !5
  %268 = load i32, ptr %25, align 4, !tbaa !9
  %269 = sext i32 %268 to i64
  %270 = getelementptr inbounds %struct.complex, ptr %267, i64 %269
  %271 = getelementptr inbounds %struct.complex, ptr %270, i32 0, i32 1
  store float 0.000000e+00, ptr %271, align 4, !tbaa !15
  br label %272

272:                                              ; preds = %212, %180
  %273 = load i32, ptr %41, align 4, !tbaa !9
  %274 = load i32, ptr %59, align 4, !tbaa !9
  %275 = load i32, ptr %23, align 4, !tbaa !9
  %276 = mul nsw i32 %274, %275
  %277 = add nsw i32 %273, %276
  store i32 %277, ptr %25, align 4, !tbaa !9
  %278 = load ptr, ptr %18, align 8, !tbaa !5
  %279 = load i32, ptr %25, align 4, !tbaa !9
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds %struct.complex, ptr %278, i64 %280
  %282 = getelementptr inbounds %struct.complex, ptr %281, i32 0, i32 0
  %283 = load float, ptr %282, align 4, !tbaa !13
  store float %283, ptr %30, align 4, !tbaa !11
  %284 = load float, ptr %30, align 4, !tbaa !11
  %285 = fcmp oge float %284, 0.000000e+00
  br i1 %285, label %286, label %288

286:                                              ; preds = %272
  %287 = load float, ptr %30, align 4, !tbaa !11
  br label %291

288:                                              ; preds = %272
  %289 = load float, ptr %30, align 4, !tbaa !11
  %290 = fneg float %289
  br label %291

291:                                              ; preds = %288, %286
  %292 = phi float [ %287, %286 ], [ %290, %288 ]
  store float %292, ptr %58, align 4, !tbaa !11
  %293 = load i32, ptr %41, align 4, !tbaa !9
  %294 = icmp sgt i32 %293, 1
  br i1 %294, label %295, label %349

295:                                              ; preds = %291
  %296 = load i32, ptr %41, align 4, !tbaa !9
  %297 = sub nsw i32 %296, 1
  store i32 %297, ptr %25, align 4, !tbaa !9
  %298 = load ptr, ptr %18, align 8, !tbaa !5
  %299 = load i32, ptr %59, align 4, !tbaa !9
  %300 = load i32, ptr %23, align 4, !tbaa !9
  %301 = mul nsw i32 %299, %300
  %302 = add nsw i32 %301, 1
  %303 = sext i32 %302 to i64
  %304 = getelementptr inbounds %struct.complex, ptr %298, i64 %303
  %305 = call i32 @icamax_(ptr noundef %25, ptr noundef %304, ptr noundef @c__1)
  store i32 %305, ptr %38, align 4, !tbaa !9
  %306 = load i32, ptr %38, align 4, !tbaa !9
  %307 = load i32, ptr %59, align 4, !tbaa !9
  %308 = load i32, ptr %23, align 4, !tbaa !9
  %309 = mul nsw i32 %307, %308
  %310 = add nsw i32 %306, %309
  store i32 %310, ptr %25, align 4, !tbaa !9
  %311 = load ptr, ptr %18, align 8, !tbaa !5
  %312 = load i32, ptr %25, align 4, !tbaa !9
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds %struct.complex, ptr %311, i64 %313
  %315 = getelementptr inbounds %struct.complex, ptr %314, i32 0, i32 0
  %316 = load float, ptr %315, align 4, !tbaa !13
  store float %316, ptr %30, align 4, !tbaa !11
  %317 = load float, ptr %30, align 4, !tbaa !11
  %318 = fcmp oge float %317, 0.000000e+00
  br i1 %318, label %319, label %321

319:                                              ; preds = %295
  %320 = load float, ptr %30, align 4, !tbaa !11
  br label %324

321:                                              ; preds = %295
  %322 = load float, ptr %30, align 4, !tbaa !11
  %323 = fneg float %322
  br label %324

324:                                              ; preds = %321, %319
  %325 = phi float [ %320, %319 ], [ %323, %321 ]
  %326 = load ptr, ptr %18, align 8, !tbaa !5
  %327 = load i32, ptr %38, align 4, !tbaa !9
  %328 = load i32, ptr %59, align 4, !tbaa !9
  %329 = load i32, ptr %23, align 4, !tbaa !9
  %330 = mul nsw i32 %328, %329
  %331 = add nsw i32 %327, %330
  %332 = sext i32 %331 to i64
  %333 = getelementptr inbounds %struct.complex, ptr %326, i64 %332
  %334 = call <2 x float> @Cf(ptr noundef %333)
  store <2 x float> %334, ptr %65, align 4
  %335 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 0
  %336 = load float, ptr %335, align 4
  %337 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 1
  %338 = load float, ptr %337, align 4
  store float %338, ptr %31, align 4, !tbaa !11
  %339 = load float, ptr %31, align 4, !tbaa !11
  %340 = fcmp oge float %339, 0.000000e+00
  br i1 %340, label %341, label %343

341:                                              ; preds = %324
  %342 = load float, ptr %31, align 4, !tbaa !11
  br label %346

343:                                              ; preds = %324
  %344 = load float, ptr %31, align 4, !tbaa !11
  %345 = fneg float %344
  br label %346

346:                                              ; preds = %343, %341
  %347 = phi float [ %342, %341 ], [ %345, %343 ]
  %348 = fadd float %325, %347
  store float %348, ptr %60, align 4, !tbaa !11
  br label %350

349:                                              ; preds = %291
  store float 0.000000e+00, ptr %60, align 4, !tbaa !11
  br label %350

350:                                              ; preds = %349, %346
  %351 = load float, ptr %58, align 4, !tbaa !11
  %352 = load float, ptr %60, align 4, !tbaa !11
  %353 = fcmp oge float %351, %352
  br i1 %353, label %354, label %356

354:                                              ; preds = %350
  %355 = load float, ptr %58, align 4, !tbaa !11
  br label %358

356:                                              ; preds = %350
  %357 = load float, ptr %60, align 4, !tbaa !11
  br label %358

358:                                              ; preds = %356, %354
  %359 = phi float [ %355, %354 ], [ %357, %356 ]
  %360 = fcmp oeq float %359, 0.000000e+00
  br i1 %360, label %361, label %417

361:                                              ; preds = %358
  %362 = load ptr, ptr %20, align 8, !tbaa !5
  %363 = load i32, ptr %362, align 4, !tbaa !9
  %364 = icmp eq i32 %363, 0
  br i1 %364, label %365, label %368

365:                                              ; preds = %361
  %366 = load i32, ptr %41, align 4, !tbaa !9
  %367 = load ptr, ptr %20, align 8, !tbaa !5
  store i32 %366, ptr %367, align 4, !tbaa !9
  br label %368

368:                                              ; preds = %365, %361
  %369 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %369, ptr %57, align 4, !tbaa !9
  %370 = load i32, ptr %41, align 4, !tbaa !9
  %371 = load i32, ptr %41, align 4, !tbaa !9
  %372 = load i32, ptr %21, align 4, !tbaa !9
  %373 = mul nsw i32 %371, %372
  %374 = add nsw i32 %370, %373
  store i32 %374, ptr %25, align 4, !tbaa !9
  %375 = load i32, ptr %41, align 4, !tbaa !9
  %376 = load i32, ptr %59, align 4, !tbaa !9
  %377 = load i32, ptr %23, align 4, !tbaa !9
  %378 = mul nsw i32 %376, %377
  %379 = add nsw i32 %375, %378
  store i32 %379, ptr %26, align 4, !tbaa !9
  %380 = load ptr, ptr %18, align 8, !tbaa !5
  %381 = load i32, ptr %26, align 4, !tbaa !9
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds %struct.complex, ptr %380, i64 %382
  %384 = getelementptr inbounds %struct.complex, ptr %383, i32 0, i32 0
  %385 = load float, ptr %384, align 4, !tbaa !13
  store float %385, ptr %30, align 4, !tbaa !11
  %386 = load float, ptr %30, align 4, !tbaa !11
  %387 = load ptr, ptr %15, align 8, !tbaa !5
  %388 = load i32, ptr %25, align 4, !tbaa !9
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds %struct.complex, ptr %387, i64 %389
  %391 = getelementptr inbounds %struct.complex, ptr %390, i32 0, i32 0
  store float %386, ptr %391, align 4, !tbaa !13
  %392 = load ptr, ptr %15, align 8, !tbaa !5
  %393 = load i32, ptr %25, align 4, !tbaa !9
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds %struct.complex, ptr %392, i64 %394
  %396 = getelementptr inbounds %struct.complex, ptr %395, i32 0, i32 1
  store float 0.000000e+00, ptr %396, align 4, !tbaa !15
  %397 = load i32, ptr %41, align 4, !tbaa !9
  %398 = icmp sgt i32 %397, 1
  br i1 %398, label %399, label %416

399:                                              ; preds = %368
  %400 = load i32, ptr %41, align 4, !tbaa !9
  %401 = sub nsw i32 %400, 1
  store i32 %401, ptr %25, align 4, !tbaa !9
  %402 = load ptr, ptr %18, align 8, !tbaa !5
  %403 = load i32, ptr %59, align 4, !tbaa !9
  %404 = load i32, ptr %23, align 4, !tbaa !9
  %405 = mul nsw i32 %403, %404
  %406 = add nsw i32 %405, 1
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds %struct.complex, ptr %402, i64 %407
  %409 = load ptr, ptr %15, align 8, !tbaa !5
  %410 = load i32, ptr %41, align 4, !tbaa !9
  %411 = load i32, ptr %21, align 4, !tbaa !9
  %412 = mul nsw i32 %410, %411
  %413 = add nsw i32 %412, 1
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds %struct.complex, ptr %409, i64 %414
  call void @ccopy_(ptr noundef %25, ptr noundef %408, ptr noundef @c__1, ptr noundef %415, ptr noundef @c__1)
  br label %416

416:                                              ; preds = %399, %368
  br label %1713

417:                                              ; preds = %358
  %418 = load float, ptr %58, align 4, !tbaa !11
  %419 = load float, ptr %44, align 4, !tbaa !11
  %420 = load float, ptr %60, align 4, !tbaa !11
  %421 = fmul float %419, %420
  %422 = fcmp olt float %418, %421
  br i1 %422, label %425, label %423

423:                                              ; preds = %417
  %424 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %424, ptr %57, align 4, !tbaa !9
  br label %791

425:                                              ; preds = %417
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %426

426:                                              ; preds = %789, %425
  %427 = load i32, ptr %38, align 4, !tbaa !9
  %428 = icmp sgt i32 %427, 1
  br i1 %428, label %429, label %447

429:                                              ; preds = %426
  %430 = load i32, ptr %38, align 4, !tbaa !9
  %431 = sub nsw i32 %430, 1
  store i32 %431, ptr %25, align 4, !tbaa !9
  %432 = load ptr, ptr %15, align 8, !tbaa !5
  %433 = load i32, ptr %38, align 4, !tbaa !9
  %434 = load i32, ptr %21, align 4, !tbaa !9
  %435 = mul nsw i32 %433, %434
  %436 = add nsw i32 %435, 1
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds %struct.complex, ptr %432, i64 %437
  %439 = load ptr, ptr %18, align 8, !tbaa !5
  %440 = load i32, ptr %59, align 4, !tbaa !9
  %441 = sub nsw i32 %440, 1
  %442 = load i32, ptr %23, align 4, !tbaa !9
  %443 = mul nsw i32 %441, %442
  %444 = add nsw i32 %443, 1
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds %struct.complex, ptr %439, i64 %445
  call void @ccopy_(ptr noundef %25, ptr noundef %438, ptr noundef @c__1, ptr noundef %446, ptr noundef @c__1)
  br label %447

447:                                              ; preds = %429, %426
  %448 = load i32, ptr %38, align 4, !tbaa !9
  %449 = load i32, ptr %59, align 4, !tbaa !9
  %450 = sub nsw i32 %449, 1
  %451 = load i32, ptr %23, align 4, !tbaa !9
  %452 = mul nsw i32 %450, %451
  %453 = add nsw i32 %448, %452
  store i32 %453, ptr %25, align 4, !tbaa !9
  %454 = load i32, ptr %38, align 4, !tbaa !9
  %455 = load i32, ptr %38, align 4, !tbaa !9
  %456 = load i32, ptr %21, align 4, !tbaa !9
  %457 = mul nsw i32 %455, %456
  %458 = add nsw i32 %454, %457
  store i32 %458, ptr %26, align 4, !tbaa !9
  %459 = load ptr, ptr %15, align 8, !tbaa !5
  %460 = load i32, ptr %26, align 4, !tbaa !9
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds %struct.complex, ptr %459, i64 %461
  %463 = getelementptr inbounds %struct.complex, ptr %462, i32 0, i32 0
  %464 = load float, ptr %463, align 4, !tbaa !13
  store float %464, ptr %30, align 4, !tbaa !11
  %465 = load float, ptr %30, align 4, !tbaa !11
  %466 = load ptr, ptr %18, align 8, !tbaa !5
  %467 = load i32, ptr %25, align 4, !tbaa !9
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds %struct.complex, ptr %466, i64 %468
  %470 = getelementptr inbounds %struct.complex, ptr %469, i32 0, i32 0
  store float %465, ptr %470, align 4, !tbaa !13
  %471 = load ptr, ptr %18, align 8, !tbaa !5
  %472 = load i32, ptr %25, align 4, !tbaa !9
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds %struct.complex, ptr %471, i64 %473
  %475 = getelementptr inbounds %struct.complex, ptr %474, i32 0, i32 1
  store float 0.000000e+00, ptr %475, align 4, !tbaa !15
  %476 = load i32, ptr %41, align 4, !tbaa !9
  %477 = load i32, ptr %38, align 4, !tbaa !9
  %478 = sub nsw i32 %476, %477
  store i32 %478, ptr %25, align 4, !tbaa !9
  %479 = load ptr, ptr %15, align 8, !tbaa !5
  %480 = load i32, ptr %38, align 4, !tbaa !9
  %481 = load i32, ptr %38, align 4, !tbaa !9
  %482 = add nsw i32 %481, 1
  %483 = load i32, ptr %21, align 4, !tbaa !9
  %484 = mul nsw i32 %482, %483
  %485 = add nsw i32 %480, %484
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds %struct.complex, ptr %479, i64 %486
  %488 = load ptr, ptr %16, align 8, !tbaa !5
  %489 = load ptr, ptr %18, align 8, !tbaa !5
  %490 = load i32, ptr %38, align 4, !tbaa !9
  %491 = add nsw i32 %490, 1
  %492 = load i32, ptr %59, align 4, !tbaa !9
  %493 = sub nsw i32 %492, 1
  %494 = load i32, ptr %23, align 4, !tbaa !9
  %495 = mul nsw i32 %493, %494
  %496 = add nsw i32 %491, %495
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds %struct.complex, ptr %489, i64 %497
  call void @ccopy_(ptr noundef %25, ptr noundef %487, ptr noundef %488, ptr noundef %498, ptr noundef @c__1)
  %499 = load i32, ptr %41, align 4, !tbaa !9
  %500 = load i32, ptr %38, align 4, !tbaa !9
  %501 = sub nsw i32 %499, %500
  store i32 %501, ptr %25, align 4, !tbaa !9
  %502 = load ptr, ptr %18, align 8, !tbaa !5
  %503 = load i32, ptr %38, align 4, !tbaa !9
  %504 = add nsw i32 %503, 1
  %505 = load i32, ptr %59, align 4, !tbaa !9
  %506 = sub nsw i32 %505, 1
  %507 = load i32, ptr %23, align 4, !tbaa !9
  %508 = mul nsw i32 %506, %507
  %509 = add nsw i32 %504, %508
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds %struct.complex, ptr %502, i64 %510
  call void @clacgv_(ptr noundef %25, ptr noundef %511, ptr noundef @c__1)
  %512 = load i32, ptr %41, align 4, !tbaa !9
  %513 = load ptr, ptr %12, align 8, !tbaa !5
  %514 = load i32, ptr %513, align 4, !tbaa !9
  %515 = icmp slt i32 %512, %514
  br i1 %515, label %516, label %579

516:                                              ; preds = %447
  %517 = load ptr, ptr %12, align 8, !tbaa !5
  %518 = load i32, ptr %517, align 4, !tbaa !9
  %519 = load i32, ptr %41, align 4, !tbaa !9
  %520 = sub nsw i32 %518, %519
  store i32 %520, ptr %25, align 4, !tbaa !9
  %521 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float -1.000000e+00, ptr %521, align 4, !tbaa !13
  %522 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float 0.000000e+00, ptr %522, align 4, !tbaa !15
  %523 = load ptr, ptr %15, align 8, !tbaa !5
  %524 = load i32, ptr %41, align 4, !tbaa !9
  %525 = add nsw i32 %524, 1
  %526 = load i32, ptr %21, align 4, !tbaa !9
  %527 = mul nsw i32 %525, %526
  %528 = add nsw i32 %527, 1
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds %struct.complex, ptr %523, i64 %529
  %531 = load ptr, ptr %16, align 8, !tbaa !5
  %532 = load ptr, ptr %18, align 8, !tbaa !5
  %533 = load i32, ptr %38, align 4, !tbaa !9
  %534 = load i32, ptr %59, align 4, !tbaa !9
  %535 = add nsw i32 %534, 1
  %536 = load i32, ptr %23, align 4, !tbaa !9
  %537 = mul nsw i32 %535, %536
  %538 = add nsw i32 %533, %537
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds %struct.complex, ptr %532, i64 %539
  %541 = load ptr, ptr %19, align 8, !tbaa !5
  %542 = load ptr, ptr %18, align 8, !tbaa !5
  %543 = load i32, ptr %59, align 4, !tbaa !9
  %544 = sub nsw i32 %543, 1
  %545 = load i32, ptr %23, align 4, !tbaa !9
  %546 = mul nsw i32 %544, %545
  %547 = add nsw i32 %546, 1
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds %struct.complex, ptr %542, i64 %548
  call void @cgemv_(ptr noundef @.str.2, ptr noundef %41, ptr noundef %25, ptr noundef %32, ptr noundef %530, ptr noundef %531, ptr noundef %540, ptr noundef %541, ptr noundef @c_b1, ptr noundef %549, ptr noundef @c__1)
  %550 = load i32, ptr %38, align 4, !tbaa !9
  %551 = load i32, ptr %59, align 4, !tbaa !9
  %552 = sub nsw i32 %551, 1
  %553 = load i32, ptr %23, align 4, !tbaa !9
  %554 = mul nsw i32 %552, %553
  %555 = add nsw i32 %550, %554
  store i32 %555, ptr %25, align 4, !tbaa !9
  %556 = load i32, ptr %38, align 4, !tbaa !9
  %557 = load i32, ptr %59, align 4, !tbaa !9
  %558 = sub nsw i32 %557, 1
  %559 = load i32, ptr %23, align 4, !tbaa !9
  %560 = mul nsw i32 %558, %559
  %561 = add nsw i32 %556, %560
  store i32 %561, ptr %26, align 4, !tbaa !9
  %562 = load ptr, ptr %18, align 8, !tbaa !5
  %563 = load i32, ptr %26, align 4, !tbaa !9
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds %struct.complex, ptr %562, i64 %564
  %566 = getelementptr inbounds %struct.complex, ptr %565, i32 0, i32 0
  %567 = load float, ptr %566, align 4, !tbaa !13
  store float %567, ptr %30, align 4, !tbaa !11
  %568 = load float, ptr %30, align 4, !tbaa !11
  %569 = load ptr, ptr %18, align 8, !tbaa !5
  %570 = load i32, ptr %25, align 4, !tbaa !9
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds %struct.complex, ptr %569, i64 %571
  %573 = getelementptr inbounds %struct.complex, ptr %572, i32 0, i32 0
  store float %568, ptr %573, align 4, !tbaa !13
  %574 = load ptr, ptr %18, align 8, !tbaa !5
  %575 = load i32, ptr %25, align 4, !tbaa !9
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds %struct.complex, ptr %574, i64 %576
  %578 = getelementptr inbounds %struct.complex, ptr %577, i32 0, i32 1
  store float 0.000000e+00, ptr %578, align 4, !tbaa !15
  br label %579

579:                                              ; preds = %516, %447
  %580 = load i32, ptr %38, align 4, !tbaa !9
  %581 = load i32, ptr %41, align 4, !tbaa !9
  %582 = icmp ne i32 %580, %581
  br i1 %582, label %583, label %645

583:                                              ; preds = %579
  %584 = load i32, ptr %41, align 4, !tbaa !9
  %585 = load i32, ptr %38, align 4, !tbaa !9
  %586 = sub nsw i32 %584, %585
  store i32 %586, ptr %25, align 4, !tbaa !9
  %587 = load i32, ptr %38, align 4, !tbaa !9
  %588 = load ptr, ptr %18, align 8, !tbaa !5
  %589 = load i32, ptr %38, align 4, !tbaa !9
  %590 = add nsw i32 %589, 1
  %591 = load i32, ptr %59, align 4, !tbaa !9
  %592 = sub nsw i32 %591, 1
  %593 = load i32, ptr %23, align 4, !tbaa !9
  %594 = mul nsw i32 %592, %593
  %595 = add nsw i32 %590, %594
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds %struct.complex, ptr %588, i64 %596
  %598 = call i32 @icamax_(ptr noundef %25, ptr noundef %597, ptr noundef @c__1)
  %599 = add nsw i32 %587, %598
  store i32 %599, ptr %39, align 4, !tbaa !9
  %600 = load i32, ptr %39, align 4, !tbaa !9
  %601 = load i32, ptr %59, align 4, !tbaa !9
  %602 = sub nsw i32 %601, 1
  %603 = load i32, ptr %23, align 4, !tbaa !9
  %604 = mul nsw i32 %602, %603
  %605 = add nsw i32 %600, %604
  store i32 %605, ptr %25, align 4, !tbaa !9
  %606 = load ptr, ptr %18, align 8, !tbaa !5
  %607 = load i32, ptr %25, align 4, !tbaa !9
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds %struct.complex, ptr %606, i64 %608
  %610 = getelementptr inbounds %struct.complex, ptr %609, i32 0, i32 0
  %611 = load float, ptr %610, align 4, !tbaa !13
  store float %611, ptr %30, align 4, !tbaa !11
  %612 = load float, ptr %30, align 4, !tbaa !11
  %613 = fcmp oge float %612, 0.000000e+00
  br i1 %613, label %614, label %616

614:                                              ; preds = %583
  %615 = load float, ptr %30, align 4, !tbaa !11
  br label %619

616:                                              ; preds = %583
  %617 = load float, ptr %30, align 4, !tbaa !11
  %618 = fneg float %617
  br label %619

619:                                              ; preds = %616, %614
  %620 = phi float [ %615, %614 ], [ %618, %616 ]
  %621 = load ptr, ptr %18, align 8, !tbaa !5
  %622 = load i32, ptr %39, align 4, !tbaa !9
  %623 = load i32, ptr %59, align 4, !tbaa !9
  %624 = sub nsw i32 %623, 1
  %625 = load i32, ptr %23, align 4, !tbaa !9
  %626 = mul nsw i32 %624, %625
  %627 = add nsw i32 %622, %626
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds %struct.complex, ptr %621, i64 %628
  %630 = call <2 x float> @Cf(ptr noundef %629)
  store <2 x float> %630, ptr %66, align 4
  %631 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 0
  %632 = load float, ptr %631, align 4
  %633 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 1
  %634 = load float, ptr %633, align 4
  store float %634, ptr %31, align 4, !tbaa !11
  %635 = load float, ptr %31, align 4, !tbaa !11
  %636 = fcmp oge float %635, 0.000000e+00
  br i1 %636, label %637, label %639

637:                                              ; preds = %619
  %638 = load float, ptr %31, align 4, !tbaa !11
  br label %642

639:                                              ; preds = %619
  %640 = load float, ptr %31, align 4, !tbaa !11
  %641 = fneg float %640
  br label %642

642:                                              ; preds = %639, %637
  %643 = phi float [ %638, %637 ], [ %641, %639 ]
  %644 = fadd float %620, %643
  store float %644, ptr %63, align 4, !tbaa !11
  br label %646

645:                                              ; preds = %579
  store float 0.000000e+00, ptr %63, align 4, !tbaa !11
  br label %646

646:                                              ; preds = %645, %642
  %647 = load i32, ptr %38, align 4, !tbaa !9
  %648 = icmp sgt i32 %647, 1
  br i1 %648, label %649, label %713

649:                                              ; preds = %646
  %650 = load i32, ptr %38, align 4, !tbaa !9
  %651 = sub nsw i32 %650, 1
  store i32 %651, ptr %25, align 4, !tbaa !9
  %652 = load ptr, ptr %18, align 8, !tbaa !5
  %653 = load i32, ptr %59, align 4, !tbaa !9
  %654 = sub nsw i32 %653, 1
  %655 = load i32, ptr %23, align 4, !tbaa !9
  %656 = mul nsw i32 %654, %655
  %657 = add nsw i32 %656, 1
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds %struct.complex, ptr %652, i64 %658
  %660 = call i32 @icamax_(ptr noundef %25, ptr noundef %659, ptr noundef @c__1)
  store i32 %660, ptr %46, align 4, !tbaa !9
  %661 = load i32, ptr %46, align 4, !tbaa !9
  %662 = load i32, ptr %59, align 4, !tbaa !9
  %663 = sub nsw i32 %662, 1
  %664 = load i32, ptr %23, align 4, !tbaa !9
  %665 = mul nsw i32 %663, %664
  %666 = add nsw i32 %661, %665
  store i32 %666, ptr %25, align 4, !tbaa !9
  %667 = load ptr, ptr %18, align 8, !tbaa !5
  %668 = load i32, ptr %25, align 4, !tbaa !9
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds %struct.complex, ptr %667, i64 %669
  %671 = getelementptr inbounds %struct.complex, ptr %670, i32 0, i32 0
  %672 = load float, ptr %671, align 4, !tbaa !13
  store float %672, ptr %30, align 4, !tbaa !11
  %673 = load float, ptr %30, align 4, !tbaa !11
  %674 = fcmp oge float %673, 0.000000e+00
  br i1 %674, label %675, label %677

675:                                              ; preds = %649
  %676 = load float, ptr %30, align 4, !tbaa !11
  br label %680

677:                                              ; preds = %649
  %678 = load float, ptr %30, align 4, !tbaa !11
  %679 = fneg float %678
  br label %680

680:                                              ; preds = %677, %675
  %681 = phi float [ %676, %675 ], [ %679, %677 ]
  %682 = load ptr, ptr %18, align 8, !tbaa !5
  %683 = load i32, ptr %46, align 4, !tbaa !9
  %684 = load i32, ptr %59, align 4, !tbaa !9
  %685 = sub nsw i32 %684, 1
  %686 = load i32, ptr %23, align 4, !tbaa !9
  %687 = mul nsw i32 %685, %686
  %688 = add nsw i32 %683, %687
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds %struct.complex, ptr %682, i64 %689
  %691 = call <2 x float> @Cf(ptr noundef %690)
  store <2 x float> %691, ptr %67, align 4
  %692 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 0
  %693 = load float, ptr %692, align 4
  %694 = getelementptr inbounds { float, float }, ptr %67, i32 0, i32 1
  %695 = load float, ptr %694, align 4
  store float %695, ptr %31, align 4, !tbaa !11
  %696 = load float, ptr %31, align 4, !tbaa !11
  %697 = fcmp oge float %696, 0.000000e+00
  br i1 %697, label %698, label %700

698:                                              ; preds = %680
  %699 = load float, ptr %31, align 4, !tbaa !11
  br label %703

700:                                              ; preds = %680
  %701 = load float, ptr %31, align 4, !tbaa !11
  %702 = fneg float %701
  br label %703

703:                                              ; preds = %700, %698
  %704 = phi float [ %699, %698 ], [ %702, %700 ]
  %705 = fadd float %681, %704
  store float %705, ptr %48, align 4, !tbaa !11
  %706 = load float, ptr %48, align 4, !tbaa !11
  %707 = load float, ptr %63, align 4, !tbaa !11
  %708 = fcmp ogt float %706, %707
  br i1 %708, label %709, label %712

709:                                              ; preds = %703
  %710 = load float, ptr %48, align 4, !tbaa !11
  store float %710, ptr %63, align 4, !tbaa !11
  %711 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %711, ptr %39, align 4, !tbaa !9
  br label %712

712:                                              ; preds = %709, %703
  br label %713

713:                                              ; preds = %712, %646
  %714 = load i32, ptr %38, align 4, !tbaa !9
  %715 = load i32, ptr %59, align 4, !tbaa !9
  %716 = sub nsw i32 %715, 1
  %717 = load i32, ptr %23, align 4, !tbaa !9
  %718 = mul nsw i32 %716, %717
  %719 = add nsw i32 %714, %718
  store i32 %719, ptr %25, align 4, !tbaa !9
  %720 = load ptr, ptr %18, align 8, !tbaa !5
  %721 = load i32, ptr %25, align 4, !tbaa !9
  %722 = sext i32 %721 to i64
  %723 = getelementptr inbounds %struct.complex, ptr %720, i64 %722
  %724 = getelementptr inbounds %struct.complex, ptr %723, i32 0, i32 0
  %725 = load float, ptr %724, align 4, !tbaa !13
  store float %725, ptr %30, align 4, !tbaa !11
  %726 = load float, ptr %30, align 4, !tbaa !11
  %727 = fcmp oge float %726, 0.000000e+00
  br i1 %727, label %728, label %730

728:                                              ; preds = %713
  %729 = load float, ptr %30, align 4, !tbaa !11
  br label %733

730:                                              ; preds = %713
  %731 = load float, ptr %30, align 4, !tbaa !11
  %732 = fneg float %731
  br label %733

733:                                              ; preds = %730, %728
  %734 = phi float [ %729, %728 ], [ %732, %730 ]
  %735 = load float, ptr %44, align 4, !tbaa !11
  %736 = load float, ptr %63, align 4, !tbaa !11
  %737 = fmul float %735, %736
  %738 = fcmp olt float %734, %737
  br i1 %738, label %756, label %739

739:                                              ; preds = %733
  %740 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %740, ptr %57, align 4, !tbaa !9
  %741 = load ptr, ptr %18, align 8, !tbaa !5
  %742 = load i32, ptr %59, align 4, !tbaa !9
  %743 = sub nsw i32 %742, 1
  %744 = load i32, ptr %23, align 4, !tbaa !9
  %745 = mul nsw i32 %743, %744
  %746 = add nsw i32 %745, 1
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds %struct.complex, ptr %741, i64 %747
  %749 = load ptr, ptr %18, align 8, !tbaa !5
  %750 = load i32, ptr %59, align 4, !tbaa !9
  %751 = load i32, ptr %23, align 4, !tbaa !9
  %752 = mul nsw i32 %750, %751
  %753 = add nsw i32 %752, 1
  %754 = sext i32 %753 to i64
  %755 = getelementptr inbounds %struct.complex, ptr %749, i64 %754
  call void @ccopy_(ptr noundef %41, ptr noundef %748, ptr noundef @c__1, ptr noundef %755, ptr noundef @c__1)
  store i32 1, ptr %37, align 4, !tbaa !9
  br label %786

756:                                              ; preds = %733
  %757 = load i32, ptr %42, align 4, !tbaa !9
  %758 = load i32, ptr %39, align 4, !tbaa !9
  %759 = icmp eq i32 %757, %758
  br i1 %759, label %764, label %760

760:                                              ; preds = %756
  %761 = load float, ptr %63, align 4, !tbaa !11
  %762 = load float, ptr %60, align 4, !tbaa !11
  %763 = fcmp ole float %761, %762
  br i1 %763, label %764, label %766

764:                                              ; preds = %760, %756
  %765 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %765, ptr %57, align 4, !tbaa !9
  store i32 2, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %37, align 4, !tbaa !9
  br label %785

766:                                              ; preds = %760
  %767 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %767, ptr %42, align 4, !tbaa !9
  %768 = load float, ptr %63, align 4, !tbaa !11
  store float %768, ptr %60, align 4, !tbaa !11
  %769 = load i32, ptr %39, align 4, !tbaa !9
  store i32 %769, ptr %38, align 4, !tbaa !9
  %770 = load ptr, ptr %18, align 8, !tbaa !5
  %771 = load i32, ptr %59, align 4, !tbaa !9
  %772 = sub nsw i32 %771, 1
  %773 = load i32, ptr %23, align 4, !tbaa !9
  %774 = mul nsw i32 %772, %773
  %775 = add nsw i32 %774, 1
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds %struct.complex, ptr %770, i64 %776
  %778 = load ptr, ptr %18, align 8, !tbaa !5
  %779 = load i32, ptr %59, align 4, !tbaa !9
  %780 = load i32, ptr %23, align 4, !tbaa !9
  %781 = mul nsw i32 %779, %780
  %782 = add nsw i32 %781, 1
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds %struct.complex, ptr %778, i64 %783
  call void @ccopy_(ptr noundef %41, ptr noundef %777, ptr noundef @c__1, ptr noundef %784, ptr noundef @c__1)
  br label %785

785:                                              ; preds = %766, %764
  br label %786

786:                                              ; preds = %785, %739
  %787 = load i32, ptr %37, align 4, !tbaa !9
  %788 = icmp ne i32 %787, 0
  br i1 %788, label %790, label %789

789:                                              ; preds = %786
  br label %426

790:                                              ; preds = %786
  br label %791

791:                                              ; preds = %790, %423
  %792 = load i32, ptr %41, align 4, !tbaa !9
  %793 = load i32, ptr %47, align 4, !tbaa !9
  %794 = sub nsw i32 %792, %793
  %795 = add nsw i32 %794, 1
  store i32 %795, ptr %56, align 4, !tbaa !9
  %796 = load ptr, ptr %13, align 8, !tbaa !5
  %797 = load i32, ptr %796, align 4, !tbaa !9
  %798 = load i32, ptr %56, align 4, !tbaa !9
  %799 = add nsw i32 %797, %798
  %800 = load ptr, ptr %12, align 8, !tbaa !5
  %801 = load i32, ptr %800, align 4, !tbaa !9
  %802 = sub nsw i32 %799, %801
  store i32 %802, ptr %64, align 4, !tbaa !9
  %803 = load i32, ptr %47, align 4, !tbaa !9
  %804 = icmp eq i32 %803, 2
  br i1 %804, label %805, label %947

805:                                              ; preds = %791
  %806 = load i32, ptr %42, align 4, !tbaa !9
  %807 = load i32, ptr %41, align 4, !tbaa !9
  %808 = icmp ne i32 %806, %807
  br i1 %808, label %809, label %947

809:                                              ; preds = %805
  %810 = load i32, ptr %42, align 4, !tbaa !9
  %811 = load i32, ptr %42, align 4, !tbaa !9
  %812 = load i32, ptr %21, align 4, !tbaa !9
  %813 = mul nsw i32 %811, %812
  %814 = add nsw i32 %810, %813
  store i32 %814, ptr %25, align 4, !tbaa !9
  %815 = load i32, ptr %41, align 4, !tbaa !9
  %816 = load i32, ptr %41, align 4, !tbaa !9
  %817 = load i32, ptr %21, align 4, !tbaa !9
  %818 = mul nsw i32 %816, %817
  %819 = add nsw i32 %815, %818
  store i32 %819, ptr %26, align 4, !tbaa !9
  %820 = load ptr, ptr %15, align 8, !tbaa !5
  %821 = load i32, ptr %26, align 4, !tbaa !9
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds %struct.complex, ptr %820, i64 %822
  %824 = getelementptr inbounds %struct.complex, ptr %823, i32 0, i32 0
  %825 = load float, ptr %824, align 4, !tbaa !13
  store float %825, ptr %30, align 4, !tbaa !11
  %826 = load float, ptr %30, align 4, !tbaa !11
  %827 = load ptr, ptr %15, align 8, !tbaa !5
  %828 = load i32, ptr %25, align 4, !tbaa !9
  %829 = sext i32 %828 to i64
  %830 = getelementptr inbounds %struct.complex, ptr %827, i64 %829
  %831 = getelementptr inbounds %struct.complex, ptr %830, i32 0, i32 0
  store float %826, ptr %831, align 4, !tbaa !13
  %832 = load ptr, ptr %15, align 8, !tbaa !5
  %833 = load i32, ptr %25, align 4, !tbaa !9
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds %struct.complex, ptr %832, i64 %834
  %836 = getelementptr inbounds %struct.complex, ptr %835, i32 0, i32 1
  store float 0.000000e+00, ptr %836, align 4, !tbaa !15
  %837 = load i32, ptr %41, align 4, !tbaa !9
  %838 = sub nsw i32 %837, 1
  %839 = load i32, ptr %42, align 4, !tbaa !9
  %840 = sub nsw i32 %838, %839
  store i32 %840, ptr %25, align 4, !tbaa !9
  %841 = load ptr, ptr %15, align 8, !tbaa !5
  %842 = load i32, ptr %42, align 4, !tbaa !9
  %843 = add nsw i32 %842, 1
  %844 = load i32, ptr %41, align 4, !tbaa !9
  %845 = load i32, ptr %21, align 4, !tbaa !9
  %846 = mul nsw i32 %844, %845
  %847 = add nsw i32 %843, %846
  %848 = sext i32 %847 to i64
  %849 = getelementptr inbounds %struct.complex, ptr %841, i64 %848
  %850 = load ptr, ptr %15, align 8, !tbaa !5
  %851 = load i32, ptr %42, align 4, !tbaa !9
  %852 = load i32, ptr %42, align 4, !tbaa !9
  %853 = add nsw i32 %852, 1
  %854 = load i32, ptr %21, align 4, !tbaa !9
  %855 = mul nsw i32 %853, %854
  %856 = add nsw i32 %851, %855
  %857 = sext i32 %856 to i64
  %858 = getelementptr inbounds %struct.complex, ptr %850, i64 %857
  %859 = load ptr, ptr %16, align 8, !tbaa !5
  call void @ccopy_(ptr noundef %25, ptr noundef %849, ptr noundef @c__1, ptr noundef %858, ptr noundef %859)
  %860 = load i32, ptr %41, align 4, !tbaa !9
  %861 = sub nsw i32 %860, 1
  %862 = load i32, ptr %42, align 4, !tbaa !9
  %863 = sub nsw i32 %861, %862
  store i32 %863, ptr %25, align 4, !tbaa !9
  %864 = load ptr, ptr %15, align 8, !tbaa !5
  %865 = load i32, ptr %42, align 4, !tbaa !9
  %866 = load i32, ptr %42, align 4, !tbaa !9
  %867 = add nsw i32 %866, 1
  %868 = load i32, ptr %21, align 4, !tbaa !9
  %869 = mul nsw i32 %867, %868
  %870 = add nsw i32 %865, %869
  %871 = sext i32 %870 to i64
  %872 = getelementptr inbounds %struct.complex, ptr %864, i64 %871
  %873 = load ptr, ptr %16, align 8, !tbaa !5
  call void @clacgv_(ptr noundef %25, ptr noundef %872, ptr noundef %873)
  %874 = load i32, ptr %42, align 4, !tbaa !9
  %875 = icmp sgt i32 %874, 1
  br i1 %875, label %876, label %893

876:                                              ; preds = %809
  %877 = load i32, ptr %42, align 4, !tbaa !9
  %878 = sub nsw i32 %877, 1
  store i32 %878, ptr %25, align 4, !tbaa !9
  %879 = load ptr, ptr %15, align 8, !tbaa !5
  %880 = load i32, ptr %41, align 4, !tbaa !9
  %881 = load i32, ptr %21, align 4, !tbaa !9
  %882 = mul nsw i32 %880, %881
  %883 = add nsw i32 %882, 1
  %884 = sext i32 %883 to i64
  %885 = getelementptr inbounds %struct.complex, ptr %879, i64 %884
  %886 = load ptr, ptr %15, align 8, !tbaa !5
  %887 = load i32, ptr %42, align 4, !tbaa !9
  %888 = load i32, ptr %21, align 4, !tbaa !9
  %889 = mul nsw i32 %887, %888
  %890 = add nsw i32 %889, 1
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds %struct.complex, ptr %886, i64 %891
  call void @ccopy_(ptr noundef %25, ptr noundef %885, ptr noundef @c__1, ptr noundef %892, ptr noundef @c__1)
  br label %893

893:                                              ; preds = %876, %809
  %894 = load i32, ptr %41, align 4, !tbaa !9
  %895 = load ptr, ptr %12, align 8, !tbaa !5
  %896 = load i32, ptr %895, align 4, !tbaa !9
  %897 = icmp slt i32 %894, %896
  br i1 %897, label %898, label %923

898:                                              ; preds = %893
  %899 = load ptr, ptr %12, align 8, !tbaa !5
  %900 = load i32, ptr %899, align 4, !tbaa !9
  %901 = load i32, ptr %41, align 4, !tbaa !9
  %902 = sub nsw i32 %900, %901
  store i32 %902, ptr %25, align 4, !tbaa !9
  %903 = load ptr, ptr %15, align 8, !tbaa !5
  %904 = load i32, ptr %41, align 4, !tbaa !9
  %905 = load i32, ptr %41, align 4, !tbaa !9
  %906 = add nsw i32 %905, 1
  %907 = load i32, ptr %21, align 4, !tbaa !9
  %908 = mul nsw i32 %906, %907
  %909 = add nsw i32 %904, %908
  %910 = sext i32 %909 to i64
  %911 = getelementptr inbounds %struct.complex, ptr %903, i64 %910
  %912 = load ptr, ptr %16, align 8, !tbaa !5
  %913 = load ptr, ptr %15, align 8, !tbaa !5
  %914 = load i32, ptr %42, align 4, !tbaa !9
  %915 = load i32, ptr %41, align 4, !tbaa !9
  %916 = add nsw i32 %915, 1
  %917 = load i32, ptr %21, align 4, !tbaa !9
  %918 = mul nsw i32 %916, %917
  %919 = add nsw i32 %914, %918
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds %struct.complex, ptr %913, i64 %920
  %922 = load ptr, ptr %16, align 8, !tbaa !5
  call void @cswap_(ptr noundef %25, ptr noundef %911, ptr noundef %912, ptr noundef %921, ptr noundef %922)
  br label %923

923:                                              ; preds = %898, %893
  %924 = load ptr, ptr %12, align 8, !tbaa !5
  %925 = load i32, ptr %924, align 4, !tbaa !9
  %926 = load i32, ptr %56, align 4, !tbaa !9
  %927 = sub nsw i32 %925, %926
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr %25, align 4, !tbaa !9
  %929 = load ptr, ptr %18, align 8, !tbaa !5
  %930 = load i32, ptr %41, align 4, !tbaa !9
  %931 = load i32, ptr %64, align 4, !tbaa !9
  %932 = load i32, ptr %23, align 4, !tbaa !9
  %933 = mul nsw i32 %931, %932
  %934 = add nsw i32 %930, %933
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds %struct.complex, ptr %929, i64 %935
  %937 = load ptr, ptr %19, align 8, !tbaa !5
  %938 = load ptr, ptr %18, align 8, !tbaa !5
  %939 = load i32, ptr %42, align 4, !tbaa !9
  %940 = load i32, ptr %64, align 4, !tbaa !9
  %941 = load i32, ptr %23, align 4, !tbaa !9
  %942 = mul nsw i32 %940, %941
  %943 = add nsw i32 %939, %942
  %944 = sext i32 %943 to i64
  %945 = getelementptr inbounds %struct.complex, ptr %938, i64 %944
  %946 = load ptr, ptr %19, align 8, !tbaa !5
  call void @cswap_(ptr noundef %25, ptr noundef %936, ptr noundef %937, ptr noundef %945, ptr noundef %946)
  br label %947

947:                                              ; preds = %923, %805, %791
  %948 = load i32, ptr %57, align 4, !tbaa !9
  %949 = load i32, ptr %56, align 4, !tbaa !9
  %950 = icmp ne i32 %948, %949
  br i1 %950, label %951, label %1089

951:                                              ; preds = %947
  %952 = load i32, ptr %57, align 4, !tbaa !9
  %953 = load i32, ptr %57, align 4, !tbaa !9
  %954 = load i32, ptr %21, align 4, !tbaa !9
  %955 = mul nsw i32 %953, %954
  %956 = add nsw i32 %952, %955
  store i32 %956, ptr %25, align 4, !tbaa !9
  %957 = load i32, ptr %56, align 4, !tbaa !9
  %958 = load i32, ptr %56, align 4, !tbaa !9
  %959 = load i32, ptr %21, align 4, !tbaa !9
  %960 = mul nsw i32 %958, %959
  %961 = add nsw i32 %957, %960
  store i32 %961, ptr %26, align 4, !tbaa !9
  %962 = load ptr, ptr %15, align 8, !tbaa !5
  %963 = load i32, ptr %26, align 4, !tbaa !9
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds %struct.complex, ptr %962, i64 %964
  %966 = getelementptr inbounds %struct.complex, ptr %965, i32 0, i32 0
  %967 = load float, ptr %966, align 4, !tbaa !13
  store float %967, ptr %30, align 4, !tbaa !11
  %968 = load float, ptr %30, align 4, !tbaa !11
  %969 = load ptr, ptr %15, align 8, !tbaa !5
  %970 = load i32, ptr %25, align 4, !tbaa !9
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds %struct.complex, ptr %969, i64 %971
  %973 = getelementptr inbounds %struct.complex, ptr %972, i32 0, i32 0
  store float %968, ptr %973, align 4, !tbaa !13
  %974 = load ptr, ptr %15, align 8, !tbaa !5
  %975 = load i32, ptr %25, align 4, !tbaa !9
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds %struct.complex, ptr %974, i64 %976
  %978 = getelementptr inbounds %struct.complex, ptr %977, i32 0, i32 1
  store float 0.000000e+00, ptr %978, align 4, !tbaa !15
  %979 = load i32, ptr %56, align 4, !tbaa !9
  %980 = sub nsw i32 %979, 1
  %981 = load i32, ptr %57, align 4, !tbaa !9
  %982 = sub nsw i32 %980, %981
  store i32 %982, ptr %25, align 4, !tbaa !9
  %983 = load ptr, ptr %15, align 8, !tbaa !5
  %984 = load i32, ptr %57, align 4, !tbaa !9
  %985 = add nsw i32 %984, 1
  %986 = load i32, ptr %56, align 4, !tbaa !9
  %987 = load i32, ptr %21, align 4, !tbaa !9
  %988 = mul nsw i32 %986, %987
  %989 = add nsw i32 %985, %988
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds %struct.complex, ptr %983, i64 %990
  %992 = load ptr, ptr %15, align 8, !tbaa !5
  %993 = load i32, ptr %57, align 4, !tbaa !9
  %994 = load i32, ptr %57, align 4, !tbaa !9
  %995 = add nsw i32 %994, 1
  %996 = load i32, ptr %21, align 4, !tbaa !9
  %997 = mul nsw i32 %995, %996
  %998 = add nsw i32 %993, %997
  %999 = sext i32 %998 to i64
  %1000 = getelementptr inbounds %struct.complex, ptr %992, i64 %999
  %1001 = load ptr, ptr %16, align 8, !tbaa !5
  call void @ccopy_(ptr noundef %25, ptr noundef %991, ptr noundef @c__1, ptr noundef %1000, ptr noundef %1001)
  %1002 = load i32, ptr %56, align 4, !tbaa !9
  %1003 = sub nsw i32 %1002, 1
  %1004 = load i32, ptr %57, align 4, !tbaa !9
  %1005 = sub nsw i32 %1003, %1004
  store i32 %1005, ptr %25, align 4, !tbaa !9
  %1006 = load ptr, ptr %15, align 8, !tbaa !5
  %1007 = load i32, ptr %57, align 4, !tbaa !9
  %1008 = load i32, ptr %57, align 4, !tbaa !9
  %1009 = add nsw i32 %1008, 1
  %1010 = load i32, ptr %21, align 4, !tbaa !9
  %1011 = mul nsw i32 %1009, %1010
  %1012 = add nsw i32 %1007, %1011
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds %struct.complex, ptr %1006, i64 %1013
  %1015 = load ptr, ptr %16, align 8, !tbaa !5
  call void @clacgv_(ptr noundef %25, ptr noundef %1014, ptr noundef %1015)
  %1016 = load i32, ptr %57, align 4, !tbaa !9
  %1017 = icmp sgt i32 %1016, 1
  br i1 %1017, label %1018, label %1035

1018:                                             ; preds = %951
  %1019 = load i32, ptr %57, align 4, !tbaa !9
  %1020 = sub nsw i32 %1019, 1
  store i32 %1020, ptr %25, align 4, !tbaa !9
  %1021 = load ptr, ptr %15, align 8, !tbaa !5
  %1022 = load i32, ptr %56, align 4, !tbaa !9
  %1023 = load i32, ptr %21, align 4, !tbaa !9
  %1024 = mul nsw i32 %1022, %1023
  %1025 = add nsw i32 %1024, 1
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds %struct.complex, ptr %1021, i64 %1026
  %1028 = load ptr, ptr %15, align 8, !tbaa !5
  %1029 = load i32, ptr %57, align 4, !tbaa !9
  %1030 = load i32, ptr %21, align 4, !tbaa !9
  %1031 = mul nsw i32 %1029, %1030
  %1032 = add nsw i32 %1031, 1
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds %struct.complex, ptr %1028, i64 %1033
  call void @ccopy_(ptr noundef %25, ptr noundef %1027, ptr noundef @c__1, ptr noundef %1034, ptr noundef @c__1)
  br label %1035

1035:                                             ; preds = %1018, %951
  %1036 = load i32, ptr %41, align 4, !tbaa !9
  %1037 = load ptr, ptr %12, align 8, !tbaa !5
  %1038 = load i32, ptr %1037, align 4, !tbaa !9
  %1039 = icmp slt i32 %1036, %1038
  br i1 %1039, label %1040, label %1065

1040:                                             ; preds = %1035
  %1041 = load ptr, ptr %12, align 8, !tbaa !5
  %1042 = load i32, ptr %1041, align 4, !tbaa !9
  %1043 = load i32, ptr %41, align 4, !tbaa !9
  %1044 = sub nsw i32 %1042, %1043
  store i32 %1044, ptr %25, align 4, !tbaa !9
  %1045 = load ptr, ptr %15, align 8, !tbaa !5
  %1046 = load i32, ptr %56, align 4, !tbaa !9
  %1047 = load i32, ptr %41, align 4, !tbaa !9
  %1048 = add nsw i32 %1047, 1
  %1049 = load i32, ptr %21, align 4, !tbaa !9
  %1050 = mul nsw i32 %1048, %1049
  %1051 = add nsw i32 %1046, %1050
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds %struct.complex, ptr %1045, i64 %1052
  %1054 = load ptr, ptr %16, align 8, !tbaa !5
  %1055 = load ptr, ptr %15, align 8, !tbaa !5
  %1056 = load i32, ptr %57, align 4, !tbaa !9
  %1057 = load i32, ptr %41, align 4, !tbaa !9
  %1058 = add nsw i32 %1057, 1
  %1059 = load i32, ptr %21, align 4, !tbaa !9
  %1060 = mul nsw i32 %1058, %1059
  %1061 = add nsw i32 %1056, %1060
  %1062 = sext i32 %1061 to i64
  %1063 = getelementptr inbounds %struct.complex, ptr %1055, i64 %1062
  %1064 = load ptr, ptr %16, align 8, !tbaa !5
  call void @cswap_(ptr noundef %25, ptr noundef %1053, ptr noundef %1054, ptr noundef %1063, ptr noundef %1064)
  br label %1065

1065:                                             ; preds = %1040, %1035
  %1066 = load ptr, ptr %12, align 8, !tbaa !5
  %1067 = load i32, ptr %1066, align 4, !tbaa !9
  %1068 = load i32, ptr %56, align 4, !tbaa !9
  %1069 = sub nsw i32 %1067, %1068
  %1070 = add nsw i32 %1069, 1
  store i32 %1070, ptr %25, align 4, !tbaa !9
  %1071 = load ptr, ptr %18, align 8, !tbaa !5
  %1072 = load i32, ptr %56, align 4, !tbaa !9
  %1073 = load i32, ptr %64, align 4, !tbaa !9
  %1074 = load i32, ptr %23, align 4, !tbaa !9
  %1075 = mul nsw i32 %1073, %1074
  %1076 = add nsw i32 %1072, %1075
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds %struct.complex, ptr %1071, i64 %1077
  %1079 = load ptr, ptr %19, align 8, !tbaa !5
  %1080 = load ptr, ptr %18, align 8, !tbaa !5
  %1081 = load i32, ptr %57, align 4, !tbaa !9
  %1082 = load i32, ptr %64, align 4, !tbaa !9
  %1083 = load i32, ptr %23, align 4, !tbaa !9
  %1084 = mul nsw i32 %1082, %1083
  %1085 = add nsw i32 %1081, %1084
  %1086 = sext i32 %1085 to i64
  %1087 = getelementptr inbounds %struct.complex, ptr %1080, i64 %1086
  %1088 = load ptr, ptr %19, align 8, !tbaa !5
  call void @cswap_(ptr noundef %25, ptr noundef %1078, ptr noundef %1079, ptr noundef %1087, ptr noundef %1088)
  br label %1089

1089:                                             ; preds = %1065, %947
  %1090 = load i32, ptr %47, align 4, !tbaa !9
  %1091 = icmp eq i32 %1090, 1
  br i1 %1091, label %1092, label %1209

1092:                                             ; preds = %1089
  %1093 = load ptr, ptr %18, align 8, !tbaa !5
  %1094 = load i32, ptr %59, align 4, !tbaa !9
  %1095 = load i32, ptr %23, align 4, !tbaa !9
  %1096 = mul nsw i32 %1094, %1095
  %1097 = add nsw i32 %1096, 1
  %1098 = sext i32 %1097 to i64
  %1099 = getelementptr inbounds %struct.complex, ptr %1093, i64 %1098
  %1100 = load ptr, ptr %15, align 8, !tbaa !5
  %1101 = load i32, ptr %41, align 4, !tbaa !9
  %1102 = load i32, ptr %21, align 4, !tbaa !9
  %1103 = mul nsw i32 %1101, %1102
  %1104 = add nsw i32 %1103, 1
  %1105 = sext i32 %1104 to i64
  %1106 = getelementptr inbounds %struct.complex, ptr %1100, i64 %1105
  call void @ccopy_(ptr noundef %41, ptr noundef %1099, ptr noundef @c__1, ptr noundef %1106, ptr noundef @c__1)
  %1107 = load i32, ptr %41, align 4, !tbaa !9
  %1108 = icmp sgt i32 %1107, 1
  br i1 %1108, label %1109, label %1208

1109:                                             ; preds = %1092
  %1110 = load i32, ptr %41, align 4, !tbaa !9
  %1111 = load i32, ptr %41, align 4, !tbaa !9
  %1112 = load i32, ptr %21, align 4, !tbaa !9
  %1113 = mul nsw i32 %1111, %1112
  %1114 = add nsw i32 %1110, %1113
  store i32 %1114, ptr %25, align 4, !tbaa !9
  %1115 = load ptr, ptr %15, align 8, !tbaa !5
  %1116 = load i32, ptr %25, align 4, !tbaa !9
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds %struct.complex, ptr %1115, i64 %1117
  %1119 = getelementptr inbounds %struct.complex, ptr %1118, i32 0, i32 0
  %1120 = load float, ptr %1119, align 4, !tbaa !13
  store float %1120, ptr %43, align 4, !tbaa !11
  %1121 = load float, ptr %43, align 4, !tbaa !11
  %1122 = fcmp oge float %1121, 0.000000e+00
  br i1 %1122, label %1123, label %1125

1123:                                             ; preds = %1109
  %1124 = load float, ptr %43, align 4, !tbaa !11
  br label %1128

1125:                                             ; preds = %1109
  %1126 = load float, ptr %43, align 4, !tbaa !11
  %1127 = fneg float %1126
  br label %1128

1128:                                             ; preds = %1125, %1123
  %1129 = phi float [ %1124, %1123 ], [ %1127, %1125 ]
  %1130 = load float, ptr %45, align 4, !tbaa !11
  %1131 = fcmp oge float %1129, %1130
  br i1 %1131, label %1132, label %1144

1132:                                             ; preds = %1128
  %1133 = load float, ptr %43, align 4, !tbaa !11
  %1134 = fdiv float 1.000000e+00, %1133
  store float %1134, ptr %49, align 4, !tbaa !11
  %1135 = load i32, ptr %41, align 4, !tbaa !9
  %1136 = sub nsw i32 %1135, 1
  store i32 %1136, ptr %25, align 4, !tbaa !9
  %1137 = load ptr, ptr %15, align 8, !tbaa !5
  %1138 = load i32, ptr %41, align 4, !tbaa !9
  %1139 = load i32, ptr %21, align 4, !tbaa !9
  %1140 = mul nsw i32 %1138, %1139
  %1141 = add nsw i32 %1140, 1
  %1142 = sext i32 %1141 to i64
  %1143 = getelementptr inbounds %struct.complex, ptr %1137, i64 %1142
  call void @csscal_(ptr noundef %25, ptr noundef %49, ptr noundef %1143, ptr noundef @c__1)
  br label %1198

1144:                                             ; preds = %1128
  %1145 = load i32, ptr %41, align 4, !tbaa !9
  %1146 = sub nsw i32 %1145, 1
  store i32 %1146, ptr %25, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %1147

1147:                                             ; preds = %1194, %1144
  %1148 = load i32, ptr %54, align 4, !tbaa !9
  %1149 = load i32, ptr %25, align 4, !tbaa !9
  %1150 = icmp sle i32 %1148, %1149
  br i1 %1150, label %1151, label %1197

1151:                                             ; preds = %1147
  %1152 = load i32, ptr %54, align 4, !tbaa !9
  %1153 = load i32, ptr %41, align 4, !tbaa !9
  %1154 = load i32, ptr %21, align 4, !tbaa !9
  %1155 = mul nsw i32 %1153, %1154
  %1156 = add nsw i32 %1152, %1155
  store i32 %1156, ptr %26, align 4, !tbaa !9
  %1157 = load i32, ptr %54, align 4, !tbaa !9
  %1158 = load i32, ptr %41, align 4, !tbaa !9
  %1159 = load i32, ptr %21, align 4, !tbaa !9
  %1160 = mul nsw i32 %1158, %1159
  %1161 = add nsw i32 %1157, %1160
  store i32 %1161, ptr %27, align 4, !tbaa !9
  %1162 = load ptr, ptr %15, align 8, !tbaa !5
  %1163 = load i32, ptr %27, align 4, !tbaa !9
  %1164 = sext i32 %1163 to i64
  %1165 = getelementptr inbounds %struct.complex, ptr %1162, i64 %1164
  %1166 = getelementptr inbounds %struct.complex, ptr %1165, i32 0, i32 0
  %1167 = load float, ptr %1166, align 4, !tbaa !13
  %1168 = load float, ptr %43, align 4, !tbaa !11
  %1169 = fdiv float %1167, %1168
  %1170 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %1169, ptr %1170, align 4, !tbaa !13
  %1171 = load ptr, ptr %15, align 8, !tbaa !5
  %1172 = load i32, ptr %27, align 4, !tbaa !9
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds %struct.complex, ptr %1171, i64 %1173
  %1175 = getelementptr inbounds %struct.complex, ptr %1174, i32 0, i32 1
  %1176 = load float, ptr %1175, align 4, !tbaa !15
  %1177 = load float, ptr %43, align 4, !tbaa !11
  %1178 = fdiv float %1176, %1177
  %1179 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %1178, ptr %1179, align 4, !tbaa !15
  %1180 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %1181 = load float, ptr %1180, align 4, !tbaa !13
  %1182 = load ptr, ptr %15, align 8, !tbaa !5
  %1183 = load i32, ptr %26, align 4, !tbaa !9
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds %struct.complex, ptr %1182, i64 %1184
  %1186 = getelementptr inbounds %struct.complex, ptr %1185, i32 0, i32 0
  store float %1181, ptr %1186, align 4, !tbaa !13
  %1187 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %1188 = load float, ptr %1187, align 4, !tbaa !15
  %1189 = load ptr, ptr %15, align 8, !tbaa !5
  %1190 = load i32, ptr %26, align 4, !tbaa !9
  %1191 = sext i32 %1190 to i64
  %1192 = getelementptr inbounds %struct.complex, ptr %1189, i64 %1191
  %1193 = getelementptr inbounds %struct.complex, ptr %1192, i32 0, i32 1
  store float %1188, ptr %1193, align 4, !tbaa !15
  br label %1194

1194:                                             ; preds = %1151
  %1195 = load i32, ptr %54, align 4, !tbaa !9
  %1196 = add nsw i32 %1195, 1
  store i32 %1196, ptr %54, align 4, !tbaa !9
  br label %1147, !llvm.loop !16

1197:                                             ; preds = %1147
  br label %1198

1198:                                             ; preds = %1197, %1132
  %1199 = load i32, ptr %41, align 4, !tbaa !9
  %1200 = sub nsw i32 %1199, 1
  store i32 %1200, ptr %25, align 4, !tbaa !9
  %1201 = load ptr, ptr %18, align 8, !tbaa !5
  %1202 = load i32, ptr %59, align 4, !tbaa !9
  %1203 = load i32, ptr %23, align 4, !tbaa !9
  %1204 = mul nsw i32 %1202, %1203
  %1205 = add nsw i32 %1204, 1
  %1206 = sext i32 %1205 to i64
  %1207 = getelementptr inbounds %struct.complex, ptr %1201, i64 %1206
  call void @clacgv_(ptr noundef %25, ptr noundef %1207, ptr noundef @c__1)
  br label %1208

1208:                                             ; preds = %1198, %1092
  br label %1712

1209:                                             ; preds = %1089
  %1210 = load i32, ptr %41, align 4, !tbaa !9
  %1211 = icmp sgt i32 %1210, 2
  br i1 %1211, label %1212, label %1590

1212:                                             ; preds = %1209
  %1213 = load i32, ptr %41, align 4, !tbaa !9
  %1214 = sub nsw i32 %1213, 1
  %1215 = load i32, ptr %59, align 4, !tbaa !9
  %1216 = load i32, ptr %23, align 4, !tbaa !9
  %1217 = mul nsw i32 %1215, %1216
  %1218 = add nsw i32 %1214, %1217
  store i32 %1218, ptr %25, align 4, !tbaa !9
  %1219 = load ptr, ptr %18, align 8, !tbaa !5
  %1220 = load i32, ptr %25, align 4, !tbaa !9
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds %struct.complex, ptr %1219, i64 %1221
  %1223 = getelementptr inbounds %struct.complex, ptr %1222, i32 0, i32 0
  %1224 = load float, ptr %1223, align 4, !tbaa !13
  %1225 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %1224, ptr %1225, align 4, !tbaa !13
  %1226 = load ptr, ptr %18, align 8, !tbaa !5
  %1227 = load i32, ptr %25, align 4, !tbaa !9
  %1228 = sext i32 %1227 to i64
  %1229 = getelementptr inbounds %struct.complex, ptr %1226, i64 %1228
  %1230 = getelementptr inbounds %struct.complex, ptr %1229, i32 0, i32 1
  %1231 = load float, ptr %1230, align 4, !tbaa !15
  %1232 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %1231, ptr %1232, align 4, !tbaa !15
  %1233 = call <2 x float> @Cf(ptr noundef %51)
  store <2 x float> %1233, ptr %68, align 4
  %1234 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 0
  %1235 = load float, ptr %1234, align 4
  %1236 = getelementptr inbounds { float, float }, ptr %68, i32 0, i32 1
  %1237 = load float, ptr %1236, align 4
  %1238 = fneg float %1237
  %1239 = call ptr @_pCf(ptr noundef %33)
  %1240 = getelementptr inbounds { float, float }, ptr %1239, i32 0, i32 0
  %1241 = getelementptr inbounds { float, float }, ptr %1239, i32 0, i32 1
  store float %1235, ptr %1240, align 4
  store float %1238, ptr %1241, align 4
  %1242 = load ptr, ptr %18, align 8, !tbaa !5
  %1243 = load i32, ptr %41, align 4, !tbaa !9
  %1244 = load i32, ptr %59, align 4, !tbaa !9
  %1245 = load i32, ptr %23, align 4, !tbaa !9
  %1246 = mul nsw i32 %1244, %1245
  %1247 = add nsw i32 %1243, %1246
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds %struct.complex, ptr %1242, i64 %1248
  %1250 = call <2 x float> @Cf(ptr noundef %1249)
  store <2 x float> %1250, ptr %69, align 4
  %1251 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 0
  %1252 = load float, ptr %1251, align 4
  %1253 = getelementptr inbounds { float, float }, ptr %69, i32 0, i32 1
  %1254 = load float, ptr %1253, align 4
  %1255 = call <2 x float> @Cf(ptr noundef %33)
  store <2 x float> %1255, ptr %70, align 4
  %1256 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 0
  %1257 = load float, ptr %1256, align 4
  %1258 = getelementptr inbounds { float, float }, ptr %70, i32 0, i32 1
  %1259 = load float, ptr %1258, align 4
  %1260 = call <2 x float> @__divsc3(float noundef %1252, float noundef %1254, float noundef %1257, float noundef %1259) #7
  store <2 x float> %1260, ptr %71, align 4
  %1261 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 0
  %1262 = load float, ptr %1261, align 4
  %1263 = getelementptr inbounds { float, float }, ptr %71, i32 0, i32 1
  %1264 = load float, ptr %1263, align 4
  %1265 = call ptr @_pCf(ptr noundef %32)
  %1266 = getelementptr inbounds { float, float }, ptr %1265, i32 0, i32 0
  %1267 = getelementptr inbounds { float, float }, ptr %1265, i32 0, i32 1
  store float %1262, ptr %1266, align 4
  store float %1264, ptr %1267, align 4
  %1268 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %1269 = load float, ptr %1268, align 4, !tbaa !13
  %1270 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %1269, ptr %1270, align 4, !tbaa !13
  %1271 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %1272 = load float, ptr %1271, align 4, !tbaa !15
  %1273 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %1272, ptr %1273, align 4, !tbaa !15
  %1274 = load ptr, ptr %18, align 8, !tbaa !5
  %1275 = load i32, ptr %41, align 4, !tbaa !9
  %1276 = sub nsw i32 %1275, 1
  %1277 = load i32, ptr %59, align 4, !tbaa !9
  %1278 = sub nsw i32 %1277, 1
  %1279 = load i32, ptr %23, align 4, !tbaa !9
  %1280 = mul nsw i32 %1278, %1279
  %1281 = add nsw i32 %1276, %1280
  %1282 = sext i32 %1281 to i64
  %1283 = getelementptr inbounds %struct.complex, ptr %1274, i64 %1282
  %1284 = call <2 x float> @Cf(ptr noundef %1283)
  store <2 x float> %1284, ptr %72, align 4
  %1285 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 0
  %1286 = load float, ptr %1285, align 4
  %1287 = getelementptr inbounds { float, float }, ptr %72, i32 0, i32 1
  %1288 = load float, ptr %1287, align 4
  %1289 = call <2 x float> @Cf(ptr noundef %51)
  store <2 x float> %1289, ptr %73, align 4
  %1290 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 0
  %1291 = load float, ptr %1290, align 4
  %1292 = getelementptr inbounds { float, float }, ptr %73, i32 0, i32 1
  %1293 = load float, ptr %1292, align 4
  %1294 = call <2 x float> @__divsc3(float noundef %1286, float noundef %1288, float noundef %1291, float noundef %1293) #7
  store <2 x float> %1294, ptr %74, align 4
  %1295 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 0
  %1296 = load float, ptr %1295, align 4
  %1297 = getelementptr inbounds { float, float }, ptr %74, i32 0, i32 1
  %1298 = load float, ptr %1297, align 4
  %1299 = call ptr @_pCf(ptr noundef %32)
  %1300 = getelementptr inbounds { float, float }, ptr %1299, i32 0, i32 0
  %1301 = getelementptr inbounds { float, float }, ptr %1299, i32 0, i32 1
  store float %1296, ptr %1300, align 4
  store float %1298, ptr %1301, align 4
  %1302 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %1303 = load float, ptr %1302, align 4, !tbaa !13
  %1304 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %1303, ptr %1304, align 4, !tbaa !13
  %1305 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %1306 = load float, ptr %1305, align 4, !tbaa !15
  %1307 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %1306, ptr %1307, align 4, !tbaa !15
  %1308 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1309 = load float, ptr %1308, align 4, !tbaa !13
  %1310 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1311 = load float, ptr %1310, align 4, !tbaa !13
  %1312 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1313 = load float, ptr %1312, align 4, !tbaa !15
  %1314 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1315 = load float, ptr %1314, align 4, !tbaa !15
  %1316 = fmul float %1313, %1315
  %1317 = fneg float %1316
  %1318 = call float @llvm.fmuladd.f32(float %1309, float %1311, float %1317)
  %1319 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %1318, ptr %1319, align 4, !tbaa !13
  %1320 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1321 = load float, ptr %1320, align 4, !tbaa !13
  %1322 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1323 = load float, ptr %1322, align 4, !tbaa !15
  %1324 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1325 = load float, ptr %1324, align 4, !tbaa !15
  %1326 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1327 = load float, ptr %1326, align 4, !tbaa !13
  %1328 = fmul float %1325, %1327
  %1329 = call float @llvm.fmuladd.f32(float %1321, float %1323, float %1328)
  %1330 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %1329, ptr %1330, align 4, !tbaa !15
  %1331 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %1332 = load float, ptr %1331, align 4, !tbaa !13
  %1333 = fsub float %1332, 1.000000e+00
  %1334 = fdiv float 1.000000e+00, %1333
  store float %1334, ptr %43, align 4, !tbaa !11
  %1335 = load i32, ptr %41, align 4, !tbaa !9
  %1336 = sub nsw i32 %1335, 2
  store i32 %1336, ptr %25, align 4, !tbaa !9
  store i32 1, ptr %40, align 4, !tbaa !9
  br label %1337

1337:                                             ; preds = %1586, %1212
  %1338 = load i32, ptr %40, align 4, !tbaa !9
  %1339 = load i32, ptr %25, align 4, !tbaa !9
  %1340 = icmp sle i32 %1338, %1339
  br i1 %1340, label %1341, label %1589

1341:                                             ; preds = %1337
  %1342 = load i32, ptr %40, align 4, !tbaa !9
  %1343 = load i32, ptr %41, align 4, !tbaa !9
  %1344 = sub nsw i32 %1343, 1
  %1345 = load i32, ptr %21, align 4, !tbaa !9
  %1346 = mul nsw i32 %1344, %1345
  %1347 = add nsw i32 %1342, %1346
  store i32 %1347, ptr %26, align 4, !tbaa !9
  %1348 = load i32, ptr %40, align 4, !tbaa !9
  %1349 = load i32, ptr %59, align 4, !tbaa !9
  %1350 = sub nsw i32 %1349, 1
  %1351 = load i32, ptr %23, align 4, !tbaa !9
  %1352 = mul nsw i32 %1350, %1351
  %1353 = add nsw i32 %1348, %1352
  store i32 %1353, ptr %27, align 4, !tbaa !9
  %1354 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1355 = load float, ptr %1354, align 4, !tbaa !13
  %1356 = load ptr, ptr %18, align 8, !tbaa !5
  %1357 = load i32, ptr %27, align 4, !tbaa !9
  %1358 = sext i32 %1357 to i64
  %1359 = getelementptr inbounds %struct.complex, ptr %1356, i64 %1358
  %1360 = getelementptr inbounds %struct.complex, ptr %1359, i32 0, i32 0
  %1361 = load float, ptr %1360, align 4, !tbaa !13
  %1362 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1363 = load float, ptr %1362, align 4, !tbaa !15
  %1364 = load ptr, ptr %18, align 8, !tbaa !5
  %1365 = load i32, ptr %27, align 4, !tbaa !9
  %1366 = sext i32 %1365 to i64
  %1367 = getelementptr inbounds %struct.complex, ptr %1364, i64 %1366
  %1368 = getelementptr inbounds %struct.complex, ptr %1367, i32 0, i32 1
  %1369 = load float, ptr %1368, align 4, !tbaa !15
  %1370 = fmul float %1363, %1369
  %1371 = fneg float %1370
  %1372 = call float @llvm.fmuladd.f32(float %1355, float %1361, float %1371)
  %1373 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  store float %1372, ptr %1373, align 4, !tbaa !13
  %1374 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %1375 = load float, ptr %1374, align 4, !tbaa !13
  %1376 = load ptr, ptr %18, align 8, !tbaa !5
  %1377 = load i32, ptr %27, align 4, !tbaa !9
  %1378 = sext i32 %1377 to i64
  %1379 = getelementptr inbounds %struct.complex, ptr %1376, i64 %1378
  %1380 = getelementptr inbounds %struct.complex, ptr %1379, i32 0, i32 1
  %1381 = load float, ptr %1380, align 4, !tbaa !15
  %1382 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %1383 = load float, ptr %1382, align 4, !tbaa !15
  %1384 = load ptr, ptr %18, align 8, !tbaa !5
  %1385 = load i32, ptr %27, align 4, !tbaa !9
  %1386 = sext i32 %1385 to i64
  %1387 = getelementptr inbounds %struct.complex, ptr %1384, i64 %1386
  %1388 = getelementptr inbounds %struct.complex, ptr %1387, i32 0, i32 0
  %1389 = load float, ptr %1388, align 4, !tbaa !13
  %1390 = fmul float %1383, %1389
  %1391 = call float @llvm.fmuladd.f32(float %1375, float %1381, float %1390)
  %1392 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  store float %1391, ptr %1392, align 4, !tbaa !15
  %1393 = load i32, ptr %40, align 4, !tbaa !9
  %1394 = load i32, ptr %59, align 4, !tbaa !9
  %1395 = load i32, ptr %23, align 4, !tbaa !9
  %1396 = mul nsw i32 %1394, %1395
  %1397 = add nsw i32 %1393, %1396
  store i32 %1397, ptr %28, align 4, !tbaa !9
  %1398 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %1399 = load float, ptr %1398, align 4, !tbaa !13
  %1400 = load ptr, ptr %18, align 8, !tbaa !5
  %1401 = load i32, ptr %28, align 4, !tbaa !9
  %1402 = sext i32 %1401 to i64
  %1403 = getelementptr inbounds %struct.complex, ptr %1400, i64 %1402
  %1404 = getelementptr inbounds %struct.complex, ptr %1403, i32 0, i32 0
  %1405 = load float, ptr %1404, align 4, !tbaa !13
  %1406 = fsub float %1399, %1405
  %1407 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1406, ptr %1407, align 4, !tbaa !13
  %1408 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %1409 = load float, ptr %1408, align 4, !tbaa !15
  %1410 = load ptr, ptr %18, align 8, !tbaa !5
  %1411 = load i32, ptr %28, align 4, !tbaa !9
  %1412 = sext i32 %1411 to i64
  %1413 = getelementptr inbounds %struct.complex, ptr %1410, i64 %1412
  %1414 = getelementptr inbounds %struct.complex, ptr %1413, i32 0, i32 1
  %1415 = load float, ptr %1414, align 4, !tbaa !15
  %1416 = fsub float %1409, %1415
  %1417 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %1416, ptr %1417, align 4, !tbaa !15
  %1418 = call <2 x float> @Cf(ptr noundef %34)
  store <2 x float> %1418, ptr %75, align 4
  %1419 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 0
  %1420 = load float, ptr %1419, align 4
  %1421 = getelementptr inbounds { float, float }, ptr %75, i32 0, i32 1
  %1422 = load float, ptr %1421, align 4
  %1423 = call <2 x float> @Cf(ptr noundef %51)
  store <2 x float> %1423, ptr %76, align 4
  %1424 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 0
  %1425 = load float, ptr %1424, align 4
  %1426 = getelementptr inbounds { float, float }, ptr %76, i32 0, i32 1
  %1427 = load float, ptr %1426, align 4
  %1428 = call <2 x float> @__divsc3(float noundef %1420, float noundef %1422, float noundef %1425, float noundef %1427) #7
  store <2 x float> %1428, ptr %77, align 4
  %1429 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 0
  %1430 = load float, ptr %1429, align 4
  %1431 = getelementptr inbounds { float, float }, ptr %77, i32 0, i32 1
  %1432 = load float, ptr %1431, align 4
  %1433 = call ptr @_pCf(ptr noundef %33)
  %1434 = getelementptr inbounds { float, float }, ptr %1433, i32 0, i32 0
  %1435 = getelementptr inbounds { float, float }, ptr %1433, i32 0, i32 1
  store float %1430, ptr %1434, align 4
  store float %1432, ptr %1435, align 4
  %1436 = load float, ptr %43, align 4, !tbaa !11
  %1437 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %1438 = load float, ptr %1437, align 4, !tbaa !13
  %1439 = fmul float %1436, %1438
  %1440 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %1439, ptr %1440, align 4, !tbaa !13
  %1441 = load float, ptr %43, align 4, !tbaa !11
  %1442 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %1443 = load float, ptr %1442, align 4, !tbaa !15
  %1444 = fmul float %1441, %1443
  %1445 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %1444, ptr %1445, align 4, !tbaa !15
  %1446 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %1447 = load float, ptr %1446, align 4, !tbaa !13
  %1448 = load ptr, ptr %15, align 8, !tbaa !5
  %1449 = load i32, ptr %26, align 4, !tbaa !9
  %1450 = sext i32 %1449 to i64
  %1451 = getelementptr inbounds %struct.complex, ptr %1448, i64 %1450
  %1452 = getelementptr inbounds %struct.complex, ptr %1451, i32 0, i32 0
  store float %1447, ptr %1452, align 4, !tbaa !13
  %1453 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %1454 = load float, ptr %1453, align 4, !tbaa !15
  %1455 = load ptr, ptr %15, align 8, !tbaa !5
  %1456 = load i32, ptr %26, align 4, !tbaa !9
  %1457 = sext i32 %1456 to i64
  %1458 = getelementptr inbounds %struct.complex, ptr %1455, i64 %1457
  %1459 = getelementptr inbounds %struct.complex, ptr %1458, i32 0, i32 1
  store float %1454, ptr %1459, align 4, !tbaa !15
  %1460 = load i32, ptr %40, align 4, !tbaa !9
  %1461 = load i32, ptr %41, align 4, !tbaa !9
  %1462 = load i32, ptr %21, align 4, !tbaa !9
  %1463 = mul nsw i32 %1461, %1462
  %1464 = add nsw i32 %1460, %1463
  store i32 %1464, ptr %26, align 4, !tbaa !9
  %1465 = load i32, ptr %40, align 4, !tbaa !9
  %1466 = load i32, ptr %59, align 4, !tbaa !9
  %1467 = load i32, ptr %23, align 4, !tbaa !9
  %1468 = mul nsw i32 %1466, %1467
  %1469 = add nsw i32 %1465, %1468
  store i32 %1469, ptr %27, align 4, !tbaa !9
  %1470 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1471 = load float, ptr %1470, align 4, !tbaa !13
  %1472 = load ptr, ptr %18, align 8, !tbaa !5
  %1473 = load i32, ptr %27, align 4, !tbaa !9
  %1474 = sext i32 %1473 to i64
  %1475 = getelementptr inbounds %struct.complex, ptr %1472, i64 %1474
  %1476 = getelementptr inbounds %struct.complex, ptr %1475, i32 0, i32 0
  %1477 = load float, ptr %1476, align 4, !tbaa !13
  %1478 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1479 = load float, ptr %1478, align 4, !tbaa !15
  %1480 = load ptr, ptr %18, align 8, !tbaa !5
  %1481 = load i32, ptr %27, align 4, !tbaa !9
  %1482 = sext i32 %1481 to i64
  %1483 = getelementptr inbounds %struct.complex, ptr %1480, i64 %1482
  %1484 = getelementptr inbounds %struct.complex, ptr %1483, i32 0, i32 1
  %1485 = load float, ptr %1484, align 4, !tbaa !15
  %1486 = fmul float %1479, %1485
  %1487 = fneg float %1486
  %1488 = call float @llvm.fmuladd.f32(float %1471, float %1477, float %1487)
  %1489 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  store float %1488, ptr %1489, align 4, !tbaa !13
  %1490 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %1491 = load float, ptr %1490, align 4, !tbaa !13
  %1492 = load ptr, ptr %18, align 8, !tbaa !5
  %1493 = load i32, ptr %27, align 4, !tbaa !9
  %1494 = sext i32 %1493 to i64
  %1495 = getelementptr inbounds %struct.complex, ptr %1492, i64 %1494
  %1496 = getelementptr inbounds %struct.complex, ptr %1495, i32 0, i32 1
  %1497 = load float, ptr %1496, align 4, !tbaa !15
  %1498 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %1499 = load float, ptr %1498, align 4, !tbaa !15
  %1500 = load ptr, ptr %18, align 8, !tbaa !5
  %1501 = load i32, ptr %27, align 4, !tbaa !9
  %1502 = sext i32 %1501 to i64
  %1503 = getelementptr inbounds %struct.complex, ptr %1500, i64 %1502
  %1504 = getelementptr inbounds %struct.complex, ptr %1503, i32 0, i32 0
  %1505 = load float, ptr %1504, align 4, !tbaa !13
  %1506 = fmul float %1499, %1505
  %1507 = call float @llvm.fmuladd.f32(float %1491, float %1497, float %1506)
  %1508 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  store float %1507, ptr %1508, align 4, !tbaa !15
  %1509 = load i32, ptr %40, align 4, !tbaa !9
  %1510 = load i32, ptr %59, align 4, !tbaa !9
  %1511 = sub nsw i32 %1510, 1
  %1512 = load i32, ptr %23, align 4, !tbaa !9
  %1513 = mul nsw i32 %1511, %1512
  %1514 = add nsw i32 %1509, %1513
  store i32 %1514, ptr %28, align 4, !tbaa !9
  %1515 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %1516 = load float, ptr %1515, align 4, !tbaa !13
  %1517 = load ptr, ptr %18, align 8, !tbaa !5
  %1518 = load i32, ptr %28, align 4, !tbaa !9
  %1519 = sext i32 %1518 to i64
  %1520 = getelementptr inbounds %struct.complex, ptr %1517, i64 %1519
  %1521 = getelementptr inbounds %struct.complex, ptr %1520, i32 0, i32 0
  %1522 = load float, ptr %1521, align 4, !tbaa !13
  %1523 = fsub float %1516, %1522
  %1524 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %1523, ptr %1524, align 4, !tbaa !13
  %1525 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %1526 = load float, ptr %1525, align 4, !tbaa !15
  %1527 = load ptr, ptr %18, align 8, !tbaa !5
  %1528 = load i32, ptr %28, align 4, !tbaa !9
  %1529 = sext i32 %1528 to i64
  %1530 = getelementptr inbounds %struct.complex, ptr %1527, i64 %1529
  %1531 = getelementptr inbounds %struct.complex, ptr %1530, i32 0, i32 1
  %1532 = load float, ptr %1531, align 4, !tbaa !15
  %1533 = fsub float %1526, %1532
  %1534 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %1533, ptr %1534, align 4, !tbaa !15
  %1535 = call <2 x float> @Cf(ptr noundef %51)
  store <2 x float> %1535, ptr %78, align 4
  %1536 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 0
  %1537 = load float, ptr %1536, align 4
  %1538 = getelementptr inbounds { float, float }, ptr %78, i32 0, i32 1
  %1539 = load float, ptr %1538, align 4
  %1540 = fneg float %1539
  %1541 = call ptr @_pCf(ptr noundef %36)
  %1542 = getelementptr inbounds { float, float }, ptr %1541, i32 0, i32 0
  %1543 = getelementptr inbounds { float, float }, ptr %1541, i32 0, i32 1
  store float %1537, ptr %1542, align 4
  store float %1540, ptr %1543, align 4
  %1544 = call <2 x float> @Cf(ptr noundef %34)
  store <2 x float> %1544, ptr %79, align 4
  %1545 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 0
  %1546 = load float, ptr %1545, align 4
  %1547 = getelementptr inbounds { float, float }, ptr %79, i32 0, i32 1
  %1548 = load float, ptr %1547, align 4
  %1549 = call <2 x float> @Cf(ptr noundef %36)
  store <2 x float> %1549, ptr %80, align 4
  %1550 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 0
  %1551 = load float, ptr %1550, align 4
  %1552 = getelementptr inbounds { float, float }, ptr %80, i32 0, i32 1
  %1553 = load float, ptr %1552, align 4
  %1554 = call <2 x float> @__divsc3(float noundef %1546, float noundef %1548, float noundef %1551, float noundef %1553) #7
  store <2 x float> %1554, ptr %81, align 4
  %1555 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 0
  %1556 = load float, ptr %1555, align 4
  %1557 = getelementptr inbounds { float, float }, ptr %81, i32 0, i32 1
  %1558 = load float, ptr %1557, align 4
  %1559 = call ptr @_pCf(ptr noundef %33)
  %1560 = getelementptr inbounds { float, float }, ptr %1559, i32 0, i32 0
  %1561 = getelementptr inbounds { float, float }, ptr %1559, i32 0, i32 1
  store float %1556, ptr %1560, align 4
  store float %1558, ptr %1561, align 4
  %1562 = load float, ptr %43, align 4, !tbaa !11
  %1563 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %1564 = load float, ptr %1563, align 4, !tbaa !13
  %1565 = fmul float %1562, %1564
  %1566 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %1565, ptr %1566, align 4, !tbaa !13
  %1567 = load float, ptr %43, align 4, !tbaa !11
  %1568 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %1569 = load float, ptr %1568, align 4, !tbaa !15
  %1570 = fmul float %1567, %1569
  %1571 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %1570, ptr %1571, align 4, !tbaa !15
  %1572 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %1573 = load float, ptr %1572, align 4, !tbaa !13
  %1574 = load ptr, ptr %15, align 8, !tbaa !5
  %1575 = load i32, ptr %26, align 4, !tbaa !9
  %1576 = sext i32 %1575 to i64
  %1577 = getelementptr inbounds %struct.complex, ptr %1574, i64 %1576
  %1578 = getelementptr inbounds %struct.complex, ptr %1577, i32 0, i32 0
  store float %1573, ptr %1578, align 4, !tbaa !13
  %1579 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %1580 = load float, ptr %1579, align 4, !tbaa !15
  %1581 = load ptr, ptr %15, align 8, !tbaa !5
  %1582 = load i32, ptr %26, align 4, !tbaa !9
  %1583 = sext i32 %1582 to i64
  %1584 = getelementptr inbounds %struct.complex, ptr %1581, i64 %1583
  %1585 = getelementptr inbounds %struct.complex, ptr %1584, i32 0, i32 1
  store float %1580, ptr %1585, align 4, !tbaa !15
  br label %1586

1586:                                             ; preds = %1341
  %1587 = load i32, ptr %40, align 4, !tbaa !9
  %1588 = add nsw i32 %1587, 1
  store i32 %1588, ptr %40, align 4, !tbaa !9
  br label %1337, !llvm.loop !18

1589:                                             ; preds = %1337
  br label %1590

1590:                                             ; preds = %1589, %1209
  %1591 = load i32, ptr %41, align 4, !tbaa !9
  %1592 = sub nsw i32 %1591, 1
  %1593 = load i32, ptr %41, align 4, !tbaa !9
  %1594 = sub nsw i32 %1593, 1
  %1595 = load i32, ptr %21, align 4, !tbaa !9
  %1596 = mul nsw i32 %1594, %1595
  %1597 = add nsw i32 %1592, %1596
  store i32 %1597, ptr %25, align 4, !tbaa !9
  %1598 = load i32, ptr %41, align 4, !tbaa !9
  %1599 = sub nsw i32 %1598, 1
  %1600 = load i32, ptr %59, align 4, !tbaa !9
  %1601 = sub nsw i32 %1600, 1
  %1602 = load i32, ptr %23, align 4, !tbaa !9
  %1603 = mul nsw i32 %1601, %1602
  %1604 = add nsw i32 %1599, %1603
  store i32 %1604, ptr %26, align 4, !tbaa !9
  %1605 = load ptr, ptr %18, align 8, !tbaa !5
  %1606 = load i32, ptr %26, align 4, !tbaa !9
  %1607 = sext i32 %1606 to i64
  %1608 = getelementptr inbounds %struct.complex, ptr %1605, i64 %1607
  %1609 = getelementptr inbounds %struct.complex, ptr %1608, i32 0, i32 0
  %1610 = load float, ptr %1609, align 4, !tbaa !13
  %1611 = load ptr, ptr %15, align 8, !tbaa !5
  %1612 = load i32, ptr %25, align 4, !tbaa !9
  %1613 = sext i32 %1612 to i64
  %1614 = getelementptr inbounds %struct.complex, ptr %1611, i64 %1613
  %1615 = getelementptr inbounds %struct.complex, ptr %1614, i32 0, i32 0
  store float %1610, ptr %1615, align 4, !tbaa !13
  %1616 = load ptr, ptr %18, align 8, !tbaa !5
  %1617 = load i32, ptr %26, align 4, !tbaa !9
  %1618 = sext i32 %1617 to i64
  %1619 = getelementptr inbounds %struct.complex, ptr %1616, i64 %1618
  %1620 = getelementptr inbounds %struct.complex, ptr %1619, i32 0, i32 1
  %1621 = load float, ptr %1620, align 4, !tbaa !15
  %1622 = load ptr, ptr %15, align 8, !tbaa !5
  %1623 = load i32, ptr %25, align 4, !tbaa !9
  %1624 = sext i32 %1623 to i64
  %1625 = getelementptr inbounds %struct.complex, ptr %1622, i64 %1624
  %1626 = getelementptr inbounds %struct.complex, ptr %1625, i32 0, i32 1
  store float %1621, ptr %1626, align 4, !tbaa !15
  %1627 = load i32, ptr %41, align 4, !tbaa !9
  %1628 = sub nsw i32 %1627, 1
  %1629 = load i32, ptr %41, align 4, !tbaa !9
  %1630 = load i32, ptr %21, align 4, !tbaa !9
  %1631 = mul nsw i32 %1629, %1630
  %1632 = add nsw i32 %1628, %1631
  store i32 %1632, ptr %25, align 4, !tbaa !9
  %1633 = load i32, ptr %41, align 4, !tbaa !9
  %1634 = sub nsw i32 %1633, 1
  %1635 = load i32, ptr %59, align 4, !tbaa !9
  %1636 = load i32, ptr %23, align 4, !tbaa !9
  %1637 = mul nsw i32 %1635, %1636
  %1638 = add nsw i32 %1634, %1637
  store i32 %1638, ptr %26, align 4, !tbaa !9
  %1639 = load ptr, ptr %18, align 8, !tbaa !5
  %1640 = load i32, ptr %26, align 4, !tbaa !9
  %1641 = sext i32 %1640 to i64
  %1642 = getelementptr inbounds %struct.complex, ptr %1639, i64 %1641
  %1643 = getelementptr inbounds %struct.complex, ptr %1642, i32 0, i32 0
  %1644 = load float, ptr %1643, align 4, !tbaa !13
  %1645 = load ptr, ptr %15, align 8, !tbaa !5
  %1646 = load i32, ptr %25, align 4, !tbaa !9
  %1647 = sext i32 %1646 to i64
  %1648 = getelementptr inbounds %struct.complex, ptr %1645, i64 %1647
  %1649 = getelementptr inbounds %struct.complex, ptr %1648, i32 0, i32 0
  store float %1644, ptr %1649, align 4, !tbaa !13
  %1650 = load ptr, ptr %18, align 8, !tbaa !5
  %1651 = load i32, ptr %26, align 4, !tbaa !9
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds %struct.complex, ptr %1650, i64 %1652
  %1654 = getelementptr inbounds %struct.complex, ptr %1653, i32 0, i32 1
  %1655 = load float, ptr %1654, align 4, !tbaa !15
  %1656 = load ptr, ptr %15, align 8, !tbaa !5
  %1657 = load i32, ptr %25, align 4, !tbaa !9
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds %struct.complex, ptr %1656, i64 %1658
  %1660 = getelementptr inbounds %struct.complex, ptr %1659, i32 0, i32 1
  store float %1655, ptr %1660, align 4, !tbaa !15
  %1661 = load i32, ptr %41, align 4, !tbaa !9
  %1662 = load i32, ptr %41, align 4, !tbaa !9
  %1663 = load i32, ptr %21, align 4, !tbaa !9
  %1664 = mul nsw i32 %1662, %1663
  %1665 = add nsw i32 %1661, %1664
  store i32 %1665, ptr %25, align 4, !tbaa !9
  %1666 = load i32, ptr %41, align 4, !tbaa !9
  %1667 = load i32, ptr %59, align 4, !tbaa !9
  %1668 = load i32, ptr %23, align 4, !tbaa !9
  %1669 = mul nsw i32 %1667, %1668
  %1670 = add nsw i32 %1666, %1669
  store i32 %1670, ptr %26, align 4, !tbaa !9
  %1671 = load ptr, ptr %18, align 8, !tbaa !5
  %1672 = load i32, ptr %26, align 4, !tbaa !9
  %1673 = sext i32 %1672 to i64
  %1674 = getelementptr inbounds %struct.complex, ptr %1671, i64 %1673
  %1675 = getelementptr inbounds %struct.complex, ptr %1674, i32 0, i32 0
  %1676 = load float, ptr %1675, align 4, !tbaa !13
  %1677 = load ptr, ptr %15, align 8, !tbaa !5
  %1678 = load i32, ptr %25, align 4, !tbaa !9
  %1679 = sext i32 %1678 to i64
  %1680 = getelementptr inbounds %struct.complex, ptr %1677, i64 %1679
  %1681 = getelementptr inbounds %struct.complex, ptr %1680, i32 0, i32 0
  store float %1676, ptr %1681, align 4, !tbaa !13
  %1682 = load ptr, ptr %18, align 8, !tbaa !5
  %1683 = load i32, ptr %26, 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 1
  %1687 = load float, ptr %1686, align 4, !tbaa !15
  %1688 = load ptr, ptr %15, align 8, !tbaa !5
  %1689 = load i32, ptr %25, align 4, !tbaa !9
  %1690 = sext i32 %1689 to i64
  %1691 = getelementptr inbounds %struct.complex, ptr %1688, i64 %1690
  %1692 = getelementptr inbounds %struct.complex, ptr %1691, i32 0, i32 1
  store float %1687, ptr %1692, align 4, !tbaa !15
  %1693 = load i32, ptr %41, align 4, !tbaa !9
  %1694 = sub nsw i32 %1693, 1
  store i32 %1694, ptr %25, align 4, !tbaa !9
  %1695 = load ptr, ptr %18, align 8, !tbaa !5
  %1696 = load i32, ptr %59, align 4, !tbaa !9
  %1697 = load i32, ptr %23, align 4, !tbaa !9
  %1698 = mul nsw i32 %1696, %1697
  %1699 = add nsw i32 %1698, 1
  %1700 = sext i32 %1699 to i64
  %1701 = getelementptr inbounds %struct.complex, ptr %1695, i64 %1700
  call void @clacgv_(ptr noundef %25, ptr noundef %1701, ptr noundef @c__1)
  %1702 = load i32, ptr %41, align 4, !tbaa !9
  %1703 = sub nsw i32 %1702, 2
  store i32 %1703, ptr %25, align 4, !tbaa !9
  %1704 = load ptr, ptr %18, align 8, !tbaa !5
  %1705 = load i32, ptr %59, align 4, !tbaa !9
  %1706 = sub nsw i32 %1705, 1
  %1707 = load i32, ptr %23, align 4, !tbaa !9
  %1708 = mul nsw i32 %1706, %1707
  %1709 = add nsw i32 %1708, 1
  %1710 = sext i32 %1709 to i64
  %1711 = getelementptr inbounds %struct.complex, ptr %1704, i64 %1710
  call void @clacgv_(ptr noundef %25, ptr noundef %1711, ptr noundef @c__1)
  br label %1712

1712:                                             ; preds = %1590, %1208
  br label %1713

1713:                                             ; preds = %1712, %416
  %1714 = load i32, ptr %47, align 4, !tbaa !9
  %1715 = icmp eq i32 %1714, 1
  br i1 %1715, label %1716, label %1722

1716:                                             ; preds = %1713
  %1717 = load i32, ptr %57, align 4, !tbaa !9
  %1718 = load ptr, ptr %17, align 8, !tbaa !5
  %1719 = load i32, ptr %41, align 4, !tbaa !9
  %1720 = sext i32 %1719 to i64
  %1721 = getelementptr inbounds i32, ptr %1718, i64 %1720
  store i32 %1717, ptr %1721, align 4, !tbaa !9
  br label %1736

1722:                                             ; preds = %1713
  %1723 = load i32, ptr %42, align 4, !tbaa !9
  %1724 = sub nsw i32 0, %1723
  %1725 = load ptr, ptr %17, align 8, !tbaa !5
  %1726 = load i32, ptr %41, align 4, !tbaa !9
  %1727 = sext i32 %1726 to i64
  %1728 = getelementptr inbounds i32, ptr %1725, i64 %1727
  store i32 %1724, ptr %1728, align 4, !tbaa !9
  %1729 = load i32, ptr %57, align 4, !tbaa !9
  %1730 = sub nsw i32 0, %1729
  %1731 = load ptr, ptr %17, align 8, !tbaa !5
  %1732 = load i32, ptr %41, align 4, !tbaa !9
  %1733 = sub nsw i32 %1732, 1
  %1734 = sext i32 %1733 to i64
  %1735 = getelementptr inbounds i32, ptr %1731, i64 %1734
  store i32 %1730, ptr %1735, align 4, !tbaa !9
  br label %1736

1736:                                             ; preds = %1722, %1716
  %1737 = load i32, ptr %47, align 4, !tbaa !9
  %1738 = load i32, ptr %41, align 4, !tbaa !9
  %1739 = sub nsw i32 %1738, %1737
  store i32 %1739, ptr %41, align 4, !tbaa !9
  br label %133

1740:                                             ; preds = %158
  %1741 = load ptr, ptr %13, align 8, !tbaa !5
  %1742 = load i32, ptr %1741, align 4, !tbaa !9
  %1743 = sub nsw i32 0, %1742
  store i32 %1743, ptr %25, align 4, !tbaa !9
  %1744 = load i32, ptr %41, align 4, !tbaa !9
  %1745 = sub nsw i32 %1744, 1
  %1746 = load ptr, ptr %13, align 8, !tbaa !5
  %1747 = load i32, ptr %1746, align 4, !tbaa !9
  %1748 = sdiv i32 %1745, %1747
  %1749 = load ptr, ptr %13, align 8, !tbaa !5
  %1750 = load i32, ptr %1749, align 4, !tbaa !9
  %1751 = mul nsw i32 %1748, %1750
  %1752 = add nsw i32 %1751, 1
  store i32 %1752, ptr %40, align 4, !tbaa !9
  br label %1753

1753:                                             ; preds = %1928, %1740
  %1754 = load i32, ptr %25, align 4, !tbaa !9
  %1755 = icmp slt i32 %1754, 0
  br i1 %1755, label %1756, label %1760

1756:                                             ; preds = %1753
  %1757 = load i32, ptr %40, align 4, !tbaa !9
  %1758 = icmp sge i32 %1757, 1
  %1759 = zext i1 %1758 to i32
  br label %1764

1760:                                             ; preds = %1753
  %1761 = load i32, ptr %40, align 4, !tbaa !9
  %1762 = icmp sle i32 %1761, 1
  %1763 = zext i1 %1762 to i32
  br label %1764

1764:                                             ; preds = %1760, %1756
  %1765 = phi i32 [ %1759, %1756 ], [ %1763, %1760 ]
  %1766 = icmp ne i32 %1765, 0
  br i1 %1766, label %1767, label %1932

1767:                                             ; preds = %1764
  %1768 = load ptr, ptr %13, align 8, !tbaa !5
  %1769 = load i32, ptr %1768, align 4, !tbaa !9
  store i32 %1769, ptr %26, align 4, !tbaa !9
  %1770 = load i32, ptr %41, align 4, !tbaa !9
  %1771 = load i32, ptr %40, align 4, !tbaa !9
  %1772 = sub nsw i32 %1770, %1771
  %1773 = add nsw i32 %1772, 1
  store i32 %1773, ptr %27, align 4, !tbaa !9
  %1774 = load i32, ptr %26, align 4, !tbaa !9
  %1775 = load i32, ptr %27, align 4, !tbaa !9
  %1776 = icmp sle i32 %1774, %1775
  br i1 %1776, label %1777, label %1779

1777:                                             ; preds = %1767
  %1778 = load i32, ptr %26, align 4, !tbaa !9
  br label %1781

1779:                                             ; preds = %1767
  %1780 = load i32, ptr %27, align 4, !tbaa !9
  br label %1781

1781:                                             ; preds = %1779, %1777
  %1782 = phi i32 [ %1778, %1777 ], [ %1780, %1779 ]
  store i32 %1782, ptr %53, align 4, !tbaa !9
  %1783 = load i32, ptr %40, align 4, !tbaa !9
  %1784 = load i32, ptr %53, align 4, !tbaa !9
  %1785 = add nsw i32 %1783, %1784
  %1786 = sub nsw i32 %1785, 1
  store i32 %1786, ptr %26, align 4, !tbaa !9
  %1787 = load i32, ptr %40, align 4, !tbaa !9
  store i32 %1787, ptr %55, align 4, !tbaa !9
  br label %1788

1788:                                             ; preds = %1885, %1781
  %1789 = load i32, ptr %55, align 4, !tbaa !9
  %1790 = load i32, ptr %26, align 4, !tbaa !9
  %1791 = icmp sle i32 %1789, %1790
  br i1 %1791, label %1792, label %1888

1792:                                             ; preds = %1788
  %1793 = load i32, ptr %55, align 4, !tbaa !9
  %1794 = load i32, ptr %55, align 4, !tbaa !9
  %1795 = load i32, ptr %21, align 4, !tbaa !9
  %1796 = mul nsw i32 %1794, %1795
  %1797 = add nsw i32 %1793, %1796
  store i32 %1797, ptr %27, align 4, !tbaa !9
  %1798 = load i32, ptr %55, align 4, !tbaa !9
  %1799 = load i32, ptr %55, align 4, !tbaa !9
  %1800 = load i32, ptr %21, align 4, !tbaa !9
  %1801 = mul nsw i32 %1799, %1800
  %1802 = add nsw i32 %1798, %1801
  store i32 %1802, ptr %28, align 4, !tbaa !9
  %1803 = load ptr, ptr %15, align 8, !tbaa !5
  %1804 = load i32, ptr %28, align 4, !tbaa !9
  %1805 = sext i32 %1804 to i64
  %1806 = getelementptr inbounds %struct.complex, ptr %1803, i64 %1805
  %1807 = getelementptr inbounds %struct.complex, ptr %1806, i32 0, i32 0
  %1808 = load float, ptr %1807, align 4, !tbaa !13
  store float %1808, ptr %30, align 4, !tbaa !11
  %1809 = load float, ptr %30, align 4, !tbaa !11
  %1810 = load ptr, ptr %15, align 8, !tbaa !5
  %1811 = load i32, ptr %27, align 4, !tbaa !9
  %1812 = sext i32 %1811 to i64
  %1813 = getelementptr inbounds %struct.complex, ptr %1810, i64 %1812
  %1814 = getelementptr inbounds %struct.complex, ptr %1813, i32 0, i32 0
  store float %1809, ptr %1814, align 4, !tbaa !13
  %1815 = load ptr, ptr %15, align 8, !tbaa !5
  %1816 = load i32, ptr %27, align 4, !tbaa !9
  %1817 = sext i32 %1816 to i64
  %1818 = getelementptr inbounds %struct.complex, ptr %1815, i64 %1817
  %1819 = getelementptr inbounds %struct.complex, ptr %1818, i32 0, i32 1
  store float 0.000000e+00, ptr %1819, align 4, !tbaa !15
  %1820 = load i32, ptr %55, align 4, !tbaa !9
  %1821 = load i32, ptr %40, align 4, !tbaa !9
  %1822 = sub nsw i32 %1820, %1821
  %1823 = add nsw i32 %1822, 1
  store i32 %1823, ptr %27, align 4, !tbaa !9
  %1824 = load ptr, ptr %12, align 8, !tbaa !5
  %1825 = load i32, ptr %1824, align 4, !tbaa !9
  %1826 = load i32, ptr %41, align 4, !tbaa !9
  %1827 = sub nsw i32 %1825, %1826
  store i32 %1827, ptr %28, align 4, !tbaa !9
  %1828 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float -1.000000e+00, ptr %1828, align 4, !tbaa !13
  %1829 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float 0.000000e+00, ptr %1829, align 4, !tbaa !15
  %1830 = load ptr, ptr %15, align 8, !tbaa !5
  %1831 = load i32, ptr %40, align 4, !tbaa !9
  %1832 = load i32, ptr %41, align 4, !tbaa !9
  %1833 = add nsw i32 %1832, 1
  %1834 = load i32, ptr %21, align 4, !tbaa !9
  %1835 = mul nsw i32 %1833, %1834
  %1836 = add nsw i32 %1831, %1835
  %1837 = sext i32 %1836 to i64
  %1838 = getelementptr inbounds %struct.complex, ptr %1830, i64 %1837
  %1839 = load ptr, ptr %16, align 8, !tbaa !5
  %1840 = load ptr, ptr %18, align 8, !tbaa !5
  %1841 = load i32, ptr %55, align 4, !tbaa !9
  %1842 = load i32, ptr %59, align 4, !tbaa !9
  %1843 = add nsw i32 %1842, 1
  %1844 = load i32, ptr %23, align 4, !tbaa !9
  %1845 = mul nsw i32 %1843, %1844
  %1846 = add nsw i32 %1841, %1845
  %1847 = sext i32 %1846 to i64
  %1848 = getelementptr inbounds %struct.complex, ptr %1840, i64 %1847
  %1849 = load ptr, ptr %19, align 8, !tbaa !5
  %1850 = load ptr, ptr %15, align 8, !tbaa !5
  %1851 = load i32, ptr %40, align 4, !tbaa !9
  %1852 = load i32, ptr %55, align 4, !tbaa !9
  %1853 = load i32, ptr %21, align 4, !tbaa !9
  %1854 = mul nsw i32 %1852, %1853
  %1855 = add nsw i32 %1851, %1854
  %1856 = sext i32 %1855 to i64
  %1857 = getelementptr inbounds %struct.complex, ptr %1850, i64 %1856
  call void @cgemv_(ptr noundef @.str.2, ptr noundef %27, ptr noundef %28, ptr noundef %32, ptr noundef %1838, ptr noundef %1839, ptr noundef %1848, ptr noundef %1849, ptr noundef @c_b1, ptr noundef %1857, ptr noundef @c__1)
  %1858 = load i32, ptr %55, align 4, !tbaa !9
  %1859 = load i32, ptr %55, align 4, !tbaa !9
  %1860 = load i32, ptr %21, align 4, !tbaa !9
  %1861 = mul nsw i32 %1859, %1860
  %1862 = add nsw i32 %1858, %1861
  store i32 %1862, ptr %27, align 4, !tbaa !9
  %1863 = load i32, ptr %55, align 4, !tbaa !9
  %1864 = load i32, ptr %55, align 4, !tbaa !9
  %1865 = load i32, ptr %21, align 4, !tbaa !9
  %1866 = mul nsw i32 %1864, %1865
  %1867 = add nsw i32 %1863, %1866
  store i32 %1867, ptr %28, align 4, !tbaa !9
  %1868 = load ptr, ptr %15, align 8, !tbaa !5
  %1869 = load i32, ptr %28, align 4, !tbaa !9
  %1870 = sext i32 %1869 to i64
  %1871 = getelementptr inbounds %struct.complex, ptr %1868, i64 %1870
  %1872 = getelementptr inbounds %struct.complex, ptr %1871, i32 0, i32 0
  %1873 = load float, ptr %1872, align 4, !tbaa !13
  store float %1873, ptr %30, align 4, !tbaa !11
  %1874 = load float, ptr %30, align 4, !tbaa !11
  %1875 = load ptr, ptr %15, align 8, !tbaa !5
  %1876 = load i32, ptr %27, align 4, !tbaa !9
  %1877 = sext i32 %1876 to i64
  %1878 = getelementptr inbounds %struct.complex, ptr %1875, i64 %1877
  %1879 = getelementptr inbounds %struct.complex, ptr %1878, i32 0, i32 0
  store float %1874, ptr %1879, align 4, !tbaa !13
  %1880 = load ptr, ptr %15, align 8, !tbaa !5
  %1881 = load i32, ptr %27, align 4, !tbaa !9
  %1882 = sext i32 %1881 to i64
  %1883 = getelementptr inbounds %struct.complex, ptr %1880, i64 %1882
  %1884 = getelementptr inbounds %struct.complex, ptr %1883, i32 0, i32 1
  store float 0.000000e+00, ptr %1884, align 4, !tbaa !15
  br label %1885

1885:                                             ; preds = %1792
  %1886 = load i32, ptr %55, align 4, !tbaa !9
  %1887 = add nsw i32 %1886, 1
  store i32 %1887, ptr %55, align 4, !tbaa !9
  br label %1788, !llvm.loop !19

1888:                                             ; preds = %1788
  %1889 = load i32, ptr %40, align 4, !tbaa !9
  %1890 = icmp sge i32 %1889, 2
  br i1 %1890, label %1891, label %1927

1891:                                             ; preds = %1888
  %1892 = load i32, ptr %40, align 4, !tbaa !9
  %1893 = sub nsw i32 %1892, 1
  store i32 %1893, ptr %26, align 4, !tbaa !9
  %1894 = load ptr, ptr %12, align 8, !tbaa !5
  %1895 = load i32, ptr %1894, align 4, !tbaa !9
  %1896 = load i32, ptr %41, align 4, !tbaa !9
  %1897 = sub nsw i32 %1895, %1896
  store i32 %1897, ptr %27, align 4, !tbaa !9
  %1898 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float -1.000000e+00, ptr %1898, align 4, !tbaa !13
  %1899 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float 0.000000e+00, ptr %1899, align 4, !tbaa !15
  %1900 = load ptr, ptr %15, align 8, !tbaa !5
  %1901 = load i32, ptr %41, align 4, !tbaa !9
  %1902 = add nsw i32 %1901, 1
  %1903 = load i32, ptr %21, align 4, !tbaa !9
  %1904 = mul nsw i32 %1902, %1903
  %1905 = add nsw i32 %1904, 1
  %1906 = sext i32 %1905 to i64
  %1907 = getelementptr inbounds %struct.complex, ptr %1900, i64 %1906
  %1908 = load ptr, ptr %16, align 8, !tbaa !5
  %1909 = load ptr, ptr %18, align 8, !tbaa !5
  %1910 = load i32, ptr %40, align 4, !tbaa !9
  %1911 = load i32, ptr %59, align 4, !tbaa !9
  %1912 = add nsw i32 %1911, 1
  %1913 = load i32, ptr %23, align 4, !tbaa !9
  %1914 = mul nsw i32 %1912, %1913
  %1915 = add nsw i32 %1910, %1914
  %1916 = sext i32 %1915 to i64
  %1917 = getelementptr inbounds %struct.complex, ptr %1909, i64 %1916
  %1918 = load ptr, ptr %19, align 8, !tbaa !5
  %1919 = load ptr, ptr %15, align 8, !tbaa !5
  %1920 = load i32, ptr %40, align 4, !tbaa !9
  %1921 = load i32, ptr %21, align 4, !tbaa !9
  %1922 = mul nsw i32 %1920, %1921
  %1923 = add nsw i32 %1922, 1
  %1924 = sext i32 %1923 to i64
  %1925 = getelementptr inbounds %struct.complex, ptr %1919, i64 %1924
  %1926 = load ptr, ptr %16, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %26, ptr noundef %53, ptr noundef %27, ptr noundef %32, ptr noundef %1907, ptr noundef %1908, ptr noundef %1917, ptr noundef %1918, ptr noundef @c_b1, ptr noundef %1925, ptr noundef %1926)
  br label %1927

1927:                                             ; preds = %1891, %1888
  br label %1928

1928:                                             ; preds = %1927
  %1929 = load i32, ptr %25, align 4, !tbaa !9
  %1930 = load i32, ptr %40, align 4, !tbaa !9
  %1931 = add nsw i32 %1930, %1929
  store i32 %1931, ptr %40, align 4, !tbaa !9
  br label %1753, !llvm.loop !20

1932:                                             ; preds = %1764
  %1933 = load i32, ptr %41, align 4, !tbaa !9
  %1934 = add nsw i32 %1933, 1
  store i32 %1934, ptr %40, align 4, !tbaa !9
  br label %1935

1935:                                             ; preds = %2033, %1932
  store i32 1, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %61, align 4, !tbaa !9
  %1936 = load i32, ptr %40, align 4, !tbaa !9
  store i32 %1936, ptr %55, align 4, !tbaa !9
  %1937 = load ptr, ptr %17, align 8, !tbaa !5
  %1938 = load i32, ptr %40, align 4, !tbaa !9
  %1939 = sext i32 %1938 to i64
  %1940 = getelementptr inbounds i32, ptr %1937, i64 %1939
  %1941 = load i32, ptr %1940, align 4, !tbaa !9
  store i32 %1941, ptr %62, align 4, !tbaa !9
  %1942 = load i32, ptr %62, align 4, !tbaa !9
  %1943 = icmp slt i32 %1942, 0
  br i1 %1943, label %1944, label %1955

1944:                                             ; preds = %1935
  %1945 = load i32, ptr %62, align 4, !tbaa !9
  %1946 = sub nsw i32 0, %1945
  store i32 %1946, ptr %62, align 4, !tbaa !9
  %1947 = load i32, ptr %40, align 4, !tbaa !9
  %1948 = add nsw i32 %1947, 1
  store i32 %1948, ptr %40, align 4, !tbaa !9
  %1949 = load ptr, ptr %17, align 8, !tbaa !5
  %1950 = load i32, ptr %40, align 4, !tbaa !9
  %1951 = sext i32 %1950 to i64
  %1952 = getelementptr inbounds i32, ptr %1949, i64 %1951
  %1953 = load i32, ptr %1952, align 4, !tbaa !9
  %1954 = sub nsw i32 0, %1953
  store i32 %1954, ptr %61, align 4, !tbaa !9
  store i32 2, ptr %47, align 4, !tbaa !9
  br label %1955

1955:                                             ; preds = %1944, %1935
  %1956 = load i32, ptr %40, align 4, !tbaa !9
  %1957 = add nsw i32 %1956, 1
  store i32 %1957, ptr %40, align 4, !tbaa !9
  %1958 = load i32, ptr %62, align 4, !tbaa !9
  %1959 = load i32, ptr %55, align 4, !tbaa !9
  %1960 = icmp ne i32 %1958, %1959
  br i1 %1960, label %1961, label %1990

1961:                                             ; preds = %1955
  %1962 = load i32, ptr %40, align 4, !tbaa !9
  %1963 = load ptr, ptr %12, align 8, !tbaa !5
  %1964 = load i32, ptr %1963, align 4, !tbaa !9
  %1965 = icmp sle i32 %1962, %1964
  br i1 %1965, label %1966, label %1990

1966:                                             ; preds = %1961
  %1967 = load ptr, ptr %12, align 8, !tbaa !5
  %1968 = load i32, ptr %1967, align 4, !tbaa !9
  %1969 = load i32, ptr %40, align 4, !tbaa !9
  %1970 = sub nsw i32 %1968, %1969
  %1971 = add nsw i32 %1970, 1
  store i32 %1971, ptr %25, align 4, !tbaa !9
  %1972 = load ptr, ptr %15, align 8, !tbaa !5
  %1973 = load i32, ptr %62, align 4, !tbaa !9
  %1974 = load i32, ptr %40, align 4, !tbaa !9
  %1975 = load i32, ptr %21, align 4, !tbaa !9
  %1976 = mul nsw i32 %1974, %1975
  %1977 = add nsw i32 %1973, %1976
  %1978 = sext i32 %1977 to i64
  %1979 = getelementptr inbounds %struct.complex, ptr %1972, i64 %1978
  %1980 = load ptr, ptr %16, align 8, !tbaa !5
  %1981 = load ptr, ptr %15, align 8, !tbaa !5
  %1982 = load i32, ptr %55, align 4, !tbaa !9
  %1983 = load i32, ptr %40, align 4, !tbaa !9
  %1984 = load i32, ptr %21, align 4, !tbaa !9
  %1985 = mul nsw i32 %1983, %1984
  %1986 = add nsw i32 %1982, %1985
  %1987 = sext i32 %1986 to i64
  %1988 = getelementptr inbounds %struct.complex, ptr %1981, i64 %1987
  %1989 = load ptr, ptr %16, align 8, !tbaa !5
  call void @cswap_(ptr noundef %25, ptr noundef %1979, ptr noundef %1980, ptr noundef %1988, ptr noundef %1989)
  br label %1990

1990:                                             ; preds = %1966, %1961, %1955
  %1991 = load i32, ptr %55, align 4, !tbaa !9
  %1992 = add nsw i32 %1991, 1
  store i32 %1992, ptr %55, align 4, !tbaa !9
  %1993 = load i32, ptr %47, align 4, !tbaa !9
  %1994 = icmp eq i32 %1993, 2
  br i1 %1994, label %1995, label %2028

1995:                                             ; preds = %1990
  %1996 = load i32, ptr %61, align 4, !tbaa !9
  %1997 = load i32, ptr %55, align 4, !tbaa !9
  %1998 = icmp ne i32 %1996, %1997
  br i1 %1998, label %1999, label %2028

1999:                                             ; preds = %1995
  %2000 = load i32, ptr %40, align 4, !tbaa !9
  %2001 = load ptr, ptr %12, align 8, !tbaa !5
  %2002 = load i32, ptr %2001, align 4, !tbaa !9
  %2003 = icmp sle i32 %2000, %2002
  br i1 %2003, label %2004, label %2028

2004:                                             ; preds = %1999
  %2005 = load ptr, ptr %12, align 8, !tbaa !5
  %2006 = load i32, ptr %2005, align 4, !tbaa !9
  %2007 = load i32, ptr %40, align 4, !tbaa !9
  %2008 = sub nsw i32 %2006, %2007
  %2009 = add nsw i32 %2008, 1
  store i32 %2009, ptr %25, align 4, !tbaa !9
  %2010 = load ptr, ptr %15, align 8, !tbaa !5
  %2011 = load i32, ptr %61, align 4, !tbaa !9
  %2012 = load i32, ptr %40, align 4, !tbaa !9
  %2013 = load i32, ptr %21, align 4, !tbaa !9
  %2014 = mul nsw i32 %2012, %2013
  %2015 = add nsw i32 %2011, %2014
  %2016 = sext i32 %2015 to i64
  %2017 = getelementptr inbounds %struct.complex, ptr %2010, i64 %2016
  %2018 = load ptr, ptr %16, align 8, !tbaa !5
  %2019 = load ptr, ptr %15, align 8, !tbaa !5
  %2020 = load i32, ptr %55, align 4, !tbaa !9
  %2021 = load i32, ptr %40, align 4, !tbaa !9
  %2022 = load i32, ptr %21, align 4, !tbaa !9
  %2023 = mul nsw i32 %2021, %2022
  %2024 = add nsw i32 %2020, %2023
  %2025 = sext i32 %2024 to i64
  %2026 = getelementptr inbounds %struct.complex, ptr %2019, i64 %2025
  %2027 = load ptr, ptr %16, align 8, !tbaa !5
  call void @cswap_(ptr noundef %25, ptr noundef %2017, ptr noundef %2018, ptr noundef %2026, ptr noundef %2027)
  br label %2028

2028:                                             ; preds = %2004, %1999, %1995, %1990
  %2029 = load i32, ptr %40, align 4, !tbaa !9
  %2030 = load ptr, ptr %12, align 8, !tbaa !5
  %2031 = load i32, ptr %2030, align 4, !tbaa !9
  %2032 = icmp slt i32 %2029, %2031
  br i1 %2032, label %2033, label %2034

2033:                                             ; preds = %2028
  br label %1935

2034:                                             ; preds = %2028
  %2035 = load ptr, ptr %12, align 8, !tbaa !5
  %2036 = load i32, ptr %2035, align 4, !tbaa !9
  %2037 = load i32, ptr %41, align 4, !tbaa !9
  %2038 = sub nsw i32 %2036, %2037
  %2039 = load ptr, ptr %14, align 8, !tbaa !5
  store i32 %2038, ptr %2039, align 4, !tbaa !9
  br label %3958

2040:                                             ; preds = %10
  store i32 1, ptr %41, align 4, !tbaa !9
  br label %2041

2041:                                             ; preds = %3684, %2040
  %2042 = load i32, ptr %41, align 4, !tbaa !9
  %2043 = load ptr, ptr %13, align 8, !tbaa !5
  %2044 = load i32, ptr %2043, align 4, !tbaa !9
  %2045 = icmp sge i32 %2042, %2044
  br i1 %2045, label %2046, label %2052

2046:                                             ; preds = %2041
  %2047 = load ptr, ptr %13, align 8, !tbaa !5
  %2048 = load i32, ptr %2047, align 4, !tbaa !9
  %2049 = load ptr, ptr %12, align 8, !tbaa !5
  %2050 = load i32, ptr %2049, align 4, !tbaa !9
  %2051 = icmp slt i32 %2048, %2050
  br i1 %2051, label %2057, label %2052

2052:                                             ; preds = %2046, %2041
  %2053 = load i32, ptr %41, align 4, !tbaa !9
  %2054 = load ptr, ptr %12, align 8, !tbaa !5
  %2055 = load i32, ptr %2054, align 4, !tbaa !9
  %2056 = icmp sgt i32 %2053, %2055
  br i1 %2056, label %2057, label %2058

2057:                                             ; preds = %2052, %2046
  br label %3688

2058:                                             ; preds = %2052
  store i32 1, ptr %47, align 4, !tbaa !9
  %2059 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %2059, ptr %42, align 4, !tbaa !9
  %2060 = load i32, ptr %41, align 4, !tbaa !9
  %2061 = load i32, ptr %41, align 4, !tbaa !9
  %2062 = load i32, ptr %23, align 4, !tbaa !9
  %2063 = mul nsw i32 %2061, %2062
  %2064 = add nsw i32 %2060, %2063
  store i32 %2064, ptr %25, align 4, !tbaa !9
  %2065 = load i32, ptr %41, align 4, !tbaa !9
  %2066 = load i32, ptr %41, align 4, !tbaa !9
  %2067 = load i32, ptr %21, align 4, !tbaa !9
  %2068 = mul nsw i32 %2066, %2067
  %2069 = add nsw i32 %2065, %2068
  store i32 %2069, ptr %26, align 4, !tbaa !9
  %2070 = load ptr, ptr %15, align 8, !tbaa !5
  %2071 = load i32, ptr %26, align 4, !tbaa !9
  %2072 = sext i32 %2071 to i64
  %2073 = getelementptr inbounds %struct.complex, ptr %2070, i64 %2072
  %2074 = getelementptr inbounds %struct.complex, ptr %2073, i32 0, i32 0
  %2075 = load float, ptr %2074, align 4, !tbaa !13
  store float %2075, ptr %30, align 4, !tbaa !11
  %2076 = load float, ptr %30, align 4, !tbaa !11
  %2077 = load ptr, ptr %18, align 8, !tbaa !5
  %2078 = load i32, ptr %25, align 4, !tbaa !9
  %2079 = sext i32 %2078 to i64
  %2080 = getelementptr inbounds %struct.complex, ptr %2077, i64 %2079
  %2081 = getelementptr inbounds %struct.complex, ptr %2080, i32 0, i32 0
  store float %2076, ptr %2081, align 4, !tbaa !13
  %2082 = load ptr, ptr %18, align 8, !tbaa !5
  %2083 = load i32, ptr %25, align 4, !tbaa !9
  %2084 = sext i32 %2083 to i64
  %2085 = getelementptr inbounds %struct.complex, ptr %2082, i64 %2084
  %2086 = getelementptr inbounds %struct.complex, ptr %2085, i32 0, i32 1
  store float 0.000000e+00, ptr %2086, align 4, !tbaa !15
  %2087 = load i32, ptr %41, align 4, !tbaa !9
  %2088 = load ptr, ptr %12, align 8, !tbaa !5
  %2089 = load i32, ptr %2088, align 4, !tbaa !9
  %2090 = icmp slt i32 %2087, %2089
  br i1 %2090, label %2091, label %2114

2091:                                             ; preds = %2058
  %2092 = load ptr, ptr %12, align 8, !tbaa !5
  %2093 = load i32, ptr %2092, align 4, !tbaa !9
  %2094 = load i32, ptr %41, align 4, !tbaa !9
  %2095 = sub nsw i32 %2093, %2094
  store i32 %2095, ptr %25, align 4, !tbaa !9
  %2096 = load ptr, ptr %15, align 8, !tbaa !5
  %2097 = load i32, ptr %41, align 4, !tbaa !9
  %2098 = add nsw i32 %2097, 1
  %2099 = load i32, ptr %41, align 4, !tbaa !9
  %2100 = load i32, ptr %21, align 4, !tbaa !9
  %2101 = mul nsw i32 %2099, %2100
  %2102 = add nsw i32 %2098, %2101
  %2103 = sext i32 %2102 to i64
  %2104 = getelementptr inbounds %struct.complex, ptr %2096, i64 %2103
  %2105 = load ptr, ptr %18, align 8, !tbaa !5
  %2106 = load i32, ptr %41, align 4, !tbaa !9
  %2107 = add nsw i32 %2106, 1
  %2108 = load i32, ptr %41, align 4, !tbaa !9
  %2109 = load i32, ptr %23, align 4, !tbaa !9
  %2110 = mul nsw i32 %2108, %2109
  %2111 = add nsw i32 %2107, %2110
  %2112 = sext i32 %2111 to i64
  %2113 = getelementptr inbounds %struct.complex, ptr %2105, i64 %2112
  call void @ccopy_(ptr noundef %25, ptr noundef %2104, ptr noundef @c__1, ptr noundef %2113, ptr noundef @c__1)
  br label %2114

2114:                                             ; preds = %2091, %2058
  %2115 = load i32, ptr %41, align 4, !tbaa !9
  %2116 = icmp sgt i32 %2115, 1
  br i1 %2116, label %2117, label %2176

2117:                                             ; preds = %2114
  %2118 = load ptr, ptr %12, align 8, !tbaa !5
  %2119 = load i32, ptr %2118, align 4, !tbaa !9
  %2120 = load i32, ptr %41, align 4, !tbaa !9
  %2121 = sub nsw i32 %2119, %2120
  %2122 = add nsw i32 %2121, 1
  store i32 %2122, ptr %25, align 4, !tbaa !9
  %2123 = load i32, ptr %41, align 4, !tbaa !9
  %2124 = sub nsw i32 %2123, 1
  store i32 %2124, ptr %26, align 4, !tbaa !9
  %2125 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float -1.000000e+00, ptr %2125, align 4, !tbaa !13
  %2126 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float 0.000000e+00, ptr %2126, align 4, !tbaa !15
  %2127 = load ptr, ptr %15, align 8, !tbaa !5
  %2128 = load i32, ptr %41, align 4, !tbaa !9
  %2129 = load i32, ptr %21, align 4, !tbaa !9
  %2130 = add nsw i32 %2128, %2129
  %2131 = sext i32 %2130 to i64
  %2132 = getelementptr inbounds %struct.complex, ptr %2127, i64 %2131
  %2133 = load ptr, ptr %16, align 8, !tbaa !5
  %2134 = load ptr, ptr %18, align 8, !tbaa !5
  %2135 = load i32, ptr %41, align 4, !tbaa !9
  %2136 = load i32, ptr %23, align 4, !tbaa !9
  %2137 = add nsw i32 %2135, %2136
  %2138 = sext i32 %2137 to i64
  %2139 = getelementptr inbounds %struct.complex, ptr %2134, i64 %2138
  %2140 = load ptr, ptr %19, align 8, !tbaa !5
  %2141 = load ptr, ptr %18, align 8, !tbaa !5
  %2142 = load i32, ptr %41, align 4, !tbaa !9
  %2143 = load i32, ptr %41, align 4, !tbaa !9
  %2144 = load i32, ptr %23, align 4, !tbaa !9
  %2145 = mul nsw i32 %2143, %2144
  %2146 = add nsw i32 %2142, %2145
  %2147 = sext i32 %2146 to i64
  %2148 = getelementptr inbounds %struct.complex, ptr %2141, i64 %2147
  call void @cgemv_(ptr noundef @.str.2, ptr noundef %25, ptr noundef %26, ptr noundef %32, ptr noundef %2132, ptr noundef %2133, ptr noundef %2139, ptr noundef %2140, ptr noundef @c_b1, ptr noundef %2148, ptr noundef @c__1)
  %2149 = load i32, ptr %41, align 4, !tbaa !9
  %2150 = load i32, ptr %41, align 4, !tbaa !9
  %2151 = load i32, ptr %23, align 4, !tbaa !9
  %2152 = mul nsw i32 %2150, %2151
  %2153 = add nsw i32 %2149, %2152
  store i32 %2153, ptr %25, align 4, !tbaa !9
  %2154 = load i32, ptr %41, align 4, !tbaa !9
  %2155 = load i32, ptr %41, align 4, !tbaa !9
  %2156 = load i32, ptr %23, align 4, !tbaa !9
  %2157 = mul nsw i32 %2155, %2156
  %2158 = add nsw i32 %2154, %2157
  store i32 %2158, ptr %26, align 4, !tbaa !9
  %2159 = load ptr, ptr %18, align 8, !tbaa !5
  %2160 = load i32, ptr %26, align 4, !tbaa !9
  %2161 = sext i32 %2160 to i64
  %2162 = getelementptr inbounds %struct.complex, ptr %2159, i64 %2161
  %2163 = getelementptr inbounds %struct.complex, ptr %2162, i32 0, i32 0
  %2164 = load float, ptr %2163, align 4, !tbaa !13
  store float %2164, ptr %30, align 4, !tbaa !11
  %2165 = load float, ptr %30, align 4, !tbaa !11
  %2166 = load ptr, ptr %18, align 8, !tbaa !5
  %2167 = load i32, ptr %25, align 4, !tbaa !9
  %2168 = sext i32 %2167 to i64
  %2169 = getelementptr inbounds %struct.complex, ptr %2166, i64 %2168
  %2170 = getelementptr inbounds %struct.complex, ptr %2169, i32 0, i32 0
  store float %2165, ptr %2170, align 4, !tbaa !13
  %2171 = load ptr, ptr %18, align 8, !tbaa !5
  %2172 = load i32, ptr %25, align 4, !tbaa !9
  %2173 = sext i32 %2172 to i64
  %2174 = getelementptr inbounds %struct.complex, ptr %2171, i64 %2173
  %2175 = getelementptr inbounds %struct.complex, ptr %2174, i32 0, i32 1
  store float 0.000000e+00, ptr %2175, align 4, !tbaa !15
  br label %2176

2176:                                             ; preds = %2117, %2114
  %2177 = load i32, ptr %41, align 4, !tbaa !9
  %2178 = load i32, ptr %41, align 4, !tbaa !9
  %2179 = load i32, ptr %23, align 4, !tbaa !9
  %2180 = mul nsw i32 %2178, %2179
  %2181 = add nsw i32 %2177, %2180
  store i32 %2181, ptr %25, align 4, !tbaa !9
  %2182 = load ptr, ptr %18, align 8, !tbaa !5
  %2183 = load i32, ptr %25, align 4, !tbaa !9
  %2184 = sext i32 %2183 to i64
  %2185 = getelementptr inbounds %struct.complex, ptr %2182, i64 %2184
  %2186 = getelementptr inbounds %struct.complex, ptr %2185, i32 0, i32 0
  %2187 = load float, ptr %2186, align 4, !tbaa !13
  store float %2187, ptr %30, align 4, !tbaa !11
  %2188 = load float, ptr %30, align 4, !tbaa !11
  %2189 = fcmp oge float %2188, 0.000000e+00
  br i1 %2189, label %2190, label %2192

2190:                                             ; preds = %2176
  %2191 = load float, ptr %30, align 4, !tbaa !11
  br label %2195

2192:                                             ; preds = %2176
  %2193 = load float, ptr %30, align 4, !tbaa !11
  %2194 = fneg float %2193
  br label %2195

2195:                                             ; preds = %2192, %2190
  %2196 = phi float [ %2191, %2190 ], [ %2194, %2192 ]
  store float %2196, ptr %58, align 4, !tbaa !11
  %2197 = load i32, ptr %41, align 4, !tbaa !9
  %2198 = load ptr, ptr %12, align 8, !tbaa !5
  %2199 = load i32, ptr %2198, align 4, !tbaa !9
  %2200 = icmp slt i32 %2197, %2199
  br i1 %2200, label %2201, label %2261

2201:                                             ; preds = %2195
  %2202 = load ptr, ptr %12, align 8, !tbaa !5
  %2203 = load i32, ptr %2202, align 4, !tbaa !9
  %2204 = load i32, ptr %41, align 4, !tbaa !9
  %2205 = sub nsw i32 %2203, %2204
  store i32 %2205, ptr %25, align 4, !tbaa !9
  %2206 = load i32, ptr %41, align 4, !tbaa !9
  %2207 = load ptr, ptr %18, align 8, !tbaa !5
  %2208 = load i32, ptr %41, align 4, !tbaa !9
  %2209 = add nsw i32 %2208, 1
  %2210 = load i32, ptr %41, align 4, !tbaa !9
  %2211 = load i32, ptr %23, align 4, !tbaa !9
  %2212 = mul nsw i32 %2210, %2211
  %2213 = add nsw i32 %2209, %2212
  %2214 = sext i32 %2213 to i64
  %2215 = getelementptr inbounds %struct.complex, ptr %2207, i64 %2214
  %2216 = call i32 @icamax_(ptr noundef %25, ptr noundef %2215, ptr noundef @c__1)
  %2217 = add nsw i32 %2206, %2216
  store i32 %2217, ptr %38, align 4, !tbaa !9
  %2218 = load i32, ptr %38, align 4, !tbaa !9
  %2219 = load i32, ptr %41, align 4, !tbaa !9
  %2220 = load i32, ptr %23, align 4, !tbaa !9
  %2221 = mul nsw i32 %2219, %2220
  %2222 = add nsw i32 %2218, %2221
  store i32 %2222, ptr %25, align 4, !tbaa !9
  %2223 = load ptr, ptr %18, align 8, !tbaa !5
  %2224 = load i32, ptr %25, align 4, !tbaa !9
  %2225 = sext i32 %2224 to i64
  %2226 = getelementptr inbounds %struct.complex, ptr %2223, i64 %2225
  %2227 = getelementptr inbounds %struct.complex, ptr %2226, i32 0, i32 0
  %2228 = load float, ptr %2227, align 4, !tbaa !13
  store float %2228, ptr %30, align 4, !tbaa !11
  %2229 = load float, ptr %30, align 4, !tbaa !11
  %2230 = fcmp oge float %2229, 0.000000e+00
  br i1 %2230, label %2231, label %2233

2231:                                             ; preds = %2201
  %2232 = load float, ptr %30, align 4, !tbaa !11
  br label %2236

2233:                                             ; preds = %2201
  %2234 = load float, ptr %30, align 4, !tbaa !11
  %2235 = fneg float %2234
  br label %2236

2236:                                             ; preds = %2233, %2231
  %2237 = phi float [ %2232, %2231 ], [ %2235, %2233 ]
  %2238 = load ptr, ptr %18, align 8, !tbaa !5
  %2239 = load i32, ptr %38, align 4, !tbaa !9
  %2240 = load i32, ptr %41, align 4, !tbaa !9
  %2241 = load i32, ptr %23, 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 %2238, i64 %2244
  %2246 = call <2 x float> @Cf(ptr noundef %2245)
  store <2 x float> %2246, ptr %82, align 4
  %2247 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 0
  %2248 = load float, ptr %2247, align 4
  %2249 = getelementptr inbounds { float, float }, ptr %82, i32 0, i32 1
  %2250 = load float, ptr %2249, align 4
  store float %2250, ptr %31, align 4, !tbaa !11
  %2251 = load float, ptr %31, align 4, !tbaa !11
  %2252 = fcmp oge float %2251, 0.000000e+00
  br i1 %2252, label %2253, label %2255

2253:                                             ; preds = %2236
  %2254 = load float, ptr %31, align 4, !tbaa !11
  br label %2258

2255:                                             ; preds = %2236
  %2256 = load float, ptr %31, align 4, !tbaa !11
  %2257 = fneg float %2256
  br label %2258

2258:                                             ; preds = %2255, %2253
  %2259 = phi float [ %2254, %2253 ], [ %2257, %2255 ]
  %2260 = fadd float %2237, %2259
  store float %2260, ptr %60, align 4, !tbaa !11
  br label %2262

2261:                                             ; preds = %2195
  store float 0.000000e+00, ptr %60, align 4, !tbaa !11
  br label %2262

2262:                                             ; preds = %2261, %2258
  %2263 = load float, ptr %58, align 4, !tbaa !11
  %2264 = load float, ptr %60, align 4, !tbaa !11
  %2265 = fcmp oge float %2263, %2264
  br i1 %2265, label %2266, label %2268

2266:                                             ; preds = %2262
  %2267 = load float, ptr %58, align 4, !tbaa !11
  br label %2270

2268:                                             ; preds = %2262
  %2269 = load float, ptr %60, align 4, !tbaa !11
  br label %2270

2270:                                             ; preds = %2268, %2266
  %2271 = phi float [ %2267, %2266 ], [ %2269, %2268 ]
  %2272 = fcmp oeq float %2271, 0.000000e+00
  br i1 %2272, label %2273, label %2337

2273:                                             ; preds = %2270
  %2274 = load ptr, ptr %20, align 8, !tbaa !5
  %2275 = load i32, ptr %2274, align 4, !tbaa !9
  %2276 = icmp eq i32 %2275, 0
  br i1 %2276, label %2277, label %2280

2277:                                             ; preds = %2273
  %2278 = load i32, ptr %41, align 4, !tbaa !9
  %2279 = load ptr, ptr %20, align 8, !tbaa !5
  store i32 %2278, ptr %2279, align 4, !tbaa !9
  br label %2280

2280:                                             ; preds = %2277, %2273
  %2281 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %2281, ptr %57, align 4, !tbaa !9
  %2282 = load i32, ptr %41, align 4, !tbaa !9
  %2283 = load i32, ptr %41, align 4, !tbaa !9
  %2284 = load i32, ptr %21, align 4, !tbaa !9
  %2285 = mul nsw i32 %2283, %2284
  %2286 = add nsw i32 %2282, %2285
  store i32 %2286, ptr %25, align 4, !tbaa !9
  %2287 = load i32, ptr %41, align 4, !tbaa !9
  %2288 = load i32, ptr %41, align 4, !tbaa !9
  %2289 = load i32, ptr %23, align 4, !tbaa !9
  %2290 = mul nsw i32 %2288, %2289
  %2291 = add nsw i32 %2287, %2290
  store i32 %2291, ptr %26, align 4, !tbaa !9
  %2292 = load ptr, ptr %18, align 8, !tbaa !5
  %2293 = load i32, ptr %26, align 4, !tbaa !9
  %2294 = sext i32 %2293 to i64
  %2295 = getelementptr inbounds %struct.complex, ptr %2292, i64 %2294
  %2296 = getelementptr inbounds %struct.complex, ptr %2295, i32 0, i32 0
  %2297 = load float, ptr %2296, align 4, !tbaa !13
  store float %2297, ptr %30, align 4, !tbaa !11
  %2298 = load float, ptr %30, align 4, !tbaa !11
  %2299 = load ptr, ptr %15, align 8, !tbaa !5
  %2300 = load i32, ptr %25, 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 0
  store float %2298, ptr %2303, align 4, !tbaa !13
  %2304 = load ptr, ptr %15, align 8, !tbaa !5
  %2305 = load i32, ptr %25, align 4, !tbaa !9
  %2306 = sext i32 %2305 to i64
  %2307 = getelementptr inbounds %struct.complex, ptr %2304, i64 %2306
  %2308 = getelementptr inbounds %struct.complex, ptr %2307, i32 0, i32 1
  store float 0.000000e+00, ptr %2308, align 4, !tbaa !15
  %2309 = load i32, ptr %41, align 4, !tbaa !9
  %2310 = load ptr, ptr %12, align 8, !tbaa !5
  %2311 = load i32, ptr %2310, align 4, !tbaa !9
  %2312 = icmp slt i32 %2309, %2311
  br i1 %2312, label %2313, label %2336

2313:                                             ; preds = %2280
  %2314 = load ptr, ptr %12, align 8, !tbaa !5
  %2315 = load i32, ptr %2314, align 4, !tbaa !9
  %2316 = load i32, ptr %41, align 4, !tbaa !9
  %2317 = sub nsw i32 %2315, %2316
  store i32 %2317, ptr %25, align 4, !tbaa !9
  %2318 = load ptr, ptr %18, align 8, !tbaa !5
  %2319 = load i32, ptr %41, align 4, !tbaa !9
  %2320 = add nsw i32 %2319, 1
  %2321 = load i32, ptr %41, align 4, !tbaa !9
  %2322 = load i32, ptr %23, align 4, !tbaa !9
  %2323 = mul nsw i32 %2321, %2322
  %2324 = add nsw i32 %2320, %2323
  %2325 = sext i32 %2324 to i64
  %2326 = getelementptr inbounds %struct.complex, ptr %2318, i64 %2325
  %2327 = load ptr, ptr %15, align 8, !tbaa !5
  %2328 = load i32, ptr %41, align 4, !tbaa !9
  %2329 = add nsw i32 %2328, 1
  %2330 = load i32, ptr %41, align 4, !tbaa !9
  %2331 = load i32, ptr %21, align 4, !tbaa !9
  %2332 = mul nsw i32 %2330, %2331
  %2333 = add nsw i32 %2329, %2332
  %2334 = sext i32 %2333 to i64
  %2335 = getelementptr inbounds %struct.complex, ptr %2327, i64 %2334
  call void @ccopy_(ptr noundef %25, ptr noundef %2326, ptr noundef @c__1, ptr noundef %2335, ptr noundef @c__1)
  br label %2336

2336:                                             ; preds = %2313, %2280
  br label %3661

2337:                                             ; preds = %2270
  %2338 = load float, ptr %58, align 4, !tbaa !11
  %2339 = load float, ptr %44, align 4, !tbaa !11
  %2340 = load float, ptr %60, align 4, !tbaa !11
  %2341 = fmul float %2339, %2340
  %2342 = fcmp olt float %2338, %2341
  br i1 %2342, label %2345, label %2343

2343:                                             ; preds = %2337
  %2344 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %2344, ptr %57, align 4, !tbaa !9
  br label %2735

2345:                                             ; preds = %2337
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %2346

2346:                                             ; preds = %2733, %2345
  %2347 = load i32, ptr %38, align 4, !tbaa !9
  %2348 = load i32, ptr %41, align 4, !tbaa !9
  %2349 = sub nsw i32 %2347, %2348
  store i32 %2349, ptr %25, align 4, !tbaa !9
  %2350 = load ptr, ptr %15, align 8, !tbaa !5
  %2351 = load i32, ptr %38, align 4, !tbaa !9
  %2352 = load i32, ptr %41, align 4, !tbaa !9
  %2353 = load i32, ptr %21, align 4, !tbaa !9
  %2354 = mul nsw i32 %2352, %2353
  %2355 = add nsw i32 %2351, %2354
  %2356 = sext i32 %2355 to i64
  %2357 = getelementptr inbounds %struct.complex, ptr %2350, i64 %2356
  %2358 = load ptr, ptr %16, align 8, !tbaa !5
  %2359 = load ptr, ptr %18, align 8, !tbaa !5
  %2360 = load i32, ptr %41, align 4, !tbaa !9
  %2361 = load i32, ptr %41, align 4, !tbaa !9
  %2362 = add nsw i32 %2361, 1
  %2363 = load i32, ptr %23, align 4, !tbaa !9
  %2364 = mul nsw i32 %2362, %2363
  %2365 = add nsw i32 %2360, %2364
  %2366 = sext i32 %2365 to i64
  %2367 = getelementptr inbounds %struct.complex, ptr %2359, i64 %2366
  call void @ccopy_(ptr noundef %25, ptr noundef %2357, ptr noundef %2358, ptr noundef %2367, ptr noundef @c__1)
  %2368 = load i32, ptr %38, align 4, !tbaa !9
  %2369 = load i32, ptr %41, align 4, !tbaa !9
  %2370 = sub nsw i32 %2368, %2369
  store i32 %2370, ptr %25, align 4, !tbaa !9
  %2371 = load ptr, ptr %18, align 8, !tbaa !5
  %2372 = load i32, ptr %41, align 4, !tbaa !9
  %2373 = load i32, ptr %41, align 4, !tbaa !9
  %2374 = add nsw i32 %2373, 1
  %2375 = load i32, ptr %23, align 4, !tbaa !9
  %2376 = mul nsw i32 %2374, %2375
  %2377 = add nsw i32 %2372, %2376
  %2378 = sext i32 %2377 to i64
  %2379 = getelementptr inbounds %struct.complex, ptr %2371, i64 %2378
  call void @clacgv_(ptr noundef %25, ptr noundef %2379, ptr noundef @c__1)
  %2380 = load i32, ptr %38, align 4, !tbaa !9
  %2381 = load i32, ptr %41, align 4, !tbaa !9
  %2382 = add nsw i32 %2381, 1
  %2383 = load i32, ptr %23, align 4, !tbaa !9
  %2384 = mul nsw i32 %2382, %2383
  %2385 = add nsw i32 %2380, %2384
  store i32 %2385, ptr %25, align 4, !tbaa !9
  %2386 = load i32, ptr %38, align 4, !tbaa !9
  %2387 = load i32, ptr %38, align 4, !tbaa !9
  %2388 = load i32, ptr %21, align 4, !tbaa !9
  %2389 = mul nsw i32 %2387, %2388
  %2390 = add nsw i32 %2386, %2389
  store i32 %2390, ptr %26, align 4, !tbaa !9
  %2391 = load ptr, ptr %15, align 8, !tbaa !5
  %2392 = load i32, ptr %26, align 4, !tbaa !9
  %2393 = sext i32 %2392 to i64
  %2394 = getelementptr inbounds %struct.complex, ptr %2391, i64 %2393
  %2395 = getelementptr inbounds %struct.complex, ptr %2394, i32 0, i32 0
  %2396 = load float, ptr %2395, align 4, !tbaa !13
  store float %2396, ptr %30, align 4, !tbaa !11
  %2397 = load float, ptr %30, align 4, !tbaa !11
  %2398 = load ptr, ptr %18, align 8, !tbaa !5
  %2399 = load i32, ptr %25, align 4, !tbaa !9
  %2400 = sext i32 %2399 to i64
  %2401 = getelementptr inbounds %struct.complex, ptr %2398, i64 %2400
  %2402 = getelementptr inbounds %struct.complex, ptr %2401, i32 0, i32 0
  store float %2397, ptr %2402, align 4, !tbaa !13
  %2403 = load ptr, ptr %18, align 8, !tbaa !5
  %2404 = load i32, ptr %25, align 4, !tbaa !9
  %2405 = sext i32 %2404 to i64
  %2406 = getelementptr inbounds %struct.complex, ptr %2403, i64 %2405
  %2407 = getelementptr inbounds %struct.complex, ptr %2406, i32 0, i32 1
  store float 0.000000e+00, ptr %2407, align 4, !tbaa !15
  %2408 = load i32, ptr %38, align 4, !tbaa !9
  %2409 = load ptr, ptr %12, align 8, !tbaa !5
  %2410 = load i32, ptr %2409, align 4, !tbaa !9
  %2411 = icmp slt i32 %2408, %2410
  br i1 %2411, label %2412, label %2436

2412:                                             ; preds = %2346
  %2413 = load ptr, ptr %12, align 8, !tbaa !5
  %2414 = load i32, ptr %2413, align 4, !tbaa !9
  %2415 = load i32, ptr %38, align 4, !tbaa !9
  %2416 = sub nsw i32 %2414, %2415
  store i32 %2416, ptr %25, align 4, !tbaa !9
  %2417 = load ptr, ptr %15, align 8, !tbaa !5
  %2418 = load i32, ptr %38, align 4, !tbaa !9
  %2419 = add nsw i32 %2418, 1
  %2420 = load i32, ptr %38, align 4, !tbaa !9
  %2421 = load i32, ptr %21, align 4, !tbaa !9
  %2422 = mul nsw i32 %2420, %2421
  %2423 = add nsw i32 %2419, %2422
  %2424 = sext i32 %2423 to i64
  %2425 = getelementptr inbounds %struct.complex, ptr %2417, i64 %2424
  %2426 = load ptr, ptr %18, align 8, !tbaa !5
  %2427 = load i32, ptr %38, align 4, !tbaa !9
  %2428 = add nsw i32 %2427, 1
  %2429 = load i32, ptr %41, align 4, !tbaa !9
  %2430 = add nsw i32 %2429, 1
  %2431 = load i32, ptr %23, align 4, !tbaa !9
  %2432 = mul nsw i32 %2430, %2431
  %2433 = add nsw i32 %2428, %2432
  %2434 = sext i32 %2433 to i64
  %2435 = getelementptr inbounds %struct.complex, ptr %2426, i64 %2434
  call void @ccopy_(ptr noundef %25, ptr noundef %2425, ptr noundef @c__1, ptr noundef %2435, ptr noundef @c__1)
  br label %2436

2436:                                             ; preds = %2412, %2346
  %2437 = load i32, ptr %41, align 4, !tbaa !9
  %2438 = icmp sgt i32 %2437, 1
  br i1 %2438, label %2439, label %2501

2439:                                             ; preds = %2436
  %2440 = load ptr, ptr %12, align 8, !tbaa !5
  %2441 = load i32, ptr %2440, align 4, !tbaa !9
  %2442 = load i32, ptr %41, align 4, !tbaa !9
  %2443 = sub nsw i32 %2441, %2442
  %2444 = add nsw i32 %2443, 1
  store i32 %2444, ptr %25, align 4, !tbaa !9
  %2445 = load i32, ptr %41, align 4, !tbaa !9
  %2446 = sub nsw i32 %2445, 1
  store i32 %2446, ptr %26, align 4, !tbaa !9
  %2447 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float -1.000000e+00, ptr %2447, align 4, !tbaa !13
  %2448 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float 0.000000e+00, ptr %2448, align 4, !tbaa !15
  %2449 = load ptr, ptr %15, align 8, !tbaa !5
  %2450 = load i32, ptr %41, align 4, !tbaa !9
  %2451 = load i32, ptr %21, align 4, !tbaa !9
  %2452 = add nsw i32 %2450, %2451
  %2453 = sext i32 %2452 to i64
  %2454 = getelementptr inbounds %struct.complex, ptr %2449, i64 %2453
  %2455 = load ptr, ptr %16, align 8, !tbaa !5
  %2456 = load ptr, ptr %18, align 8, !tbaa !5
  %2457 = load i32, ptr %38, align 4, !tbaa !9
  %2458 = load i32, ptr %23, align 4, !tbaa !9
  %2459 = add nsw i32 %2457, %2458
  %2460 = sext i32 %2459 to i64
  %2461 = getelementptr inbounds %struct.complex, ptr %2456, i64 %2460
  %2462 = load ptr, ptr %19, align 8, !tbaa !5
  %2463 = load ptr, ptr %18, align 8, !tbaa !5
  %2464 = load i32, ptr %41, align 4, !tbaa !9
  %2465 = load i32, ptr %41, align 4, !tbaa !9
  %2466 = add nsw i32 %2465, 1
  %2467 = load i32, ptr %23, align 4, !tbaa !9
  %2468 = mul nsw i32 %2466, %2467
  %2469 = add nsw i32 %2464, %2468
  %2470 = sext i32 %2469 to i64
  %2471 = getelementptr inbounds %struct.complex, ptr %2463, i64 %2470
  call void @cgemv_(ptr noundef @.str.2, ptr noundef %25, ptr noundef %26, ptr noundef %32, ptr noundef %2454, ptr noundef %2455, ptr noundef %2461, ptr noundef %2462, ptr noundef @c_b1, ptr noundef %2471, ptr noundef @c__1)
  %2472 = load i32, ptr %38, align 4, !tbaa !9
  %2473 = load i32, ptr %41, align 4, !tbaa !9
  %2474 = add nsw i32 %2473, 1
  %2475 = load i32, ptr %23, align 4, !tbaa !9
  %2476 = mul nsw i32 %2474, %2475
  %2477 = add nsw i32 %2472, %2476
  store i32 %2477, ptr %25, align 4, !tbaa !9
  %2478 = load i32, ptr %38, align 4, !tbaa !9
  %2479 = load i32, ptr %41, align 4, !tbaa !9
  %2480 = add nsw i32 %2479, 1
  %2481 = load i32, ptr %23, align 4, !tbaa !9
  %2482 = mul nsw i32 %2480, %2481
  %2483 = add nsw i32 %2478, %2482
  store i32 %2483, ptr %26, align 4, !tbaa !9
  %2484 = load ptr, ptr %18, align 8, !tbaa !5
  %2485 = load i32, ptr %26, align 4, !tbaa !9
  %2486 = sext i32 %2485 to i64
  %2487 = getelementptr inbounds %struct.complex, ptr %2484, i64 %2486
  %2488 = getelementptr inbounds %struct.complex, ptr %2487, i32 0, i32 0
  %2489 = load float, ptr %2488, align 4, !tbaa !13
  store float %2489, ptr %30, align 4, !tbaa !11
  %2490 = load float, ptr %30, align 4, !tbaa !11
  %2491 = load ptr, ptr %18, align 8, !tbaa !5
  %2492 = load i32, ptr %25, align 4, !tbaa !9
  %2493 = sext i32 %2492 to i64
  %2494 = getelementptr inbounds %struct.complex, ptr %2491, i64 %2493
  %2495 = getelementptr inbounds %struct.complex, ptr %2494, i32 0, i32 0
  store float %2490, ptr %2495, align 4, !tbaa !13
  %2496 = load ptr, ptr %18, align 8, !tbaa !5
  %2497 = load i32, ptr %25, align 4, !tbaa !9
  %2498 = sext i32 %2497 to i64
  %2499 = getelementptr inbounds %struct.complex, ptr %2496, i64 %2498
  %2500 = getelementptr inbounds %struct.complex, ptr %2499, i32 0, i32 1
  store float 0.000000e+00, ptr %2500, align 4, !tbaa !15
  br label %2501

2501:                                             ; preds = %2439, %2436
  %2502 = load i32, ptr %38, align 4, !tbaa !9
  %2503 = load i32, ptr %41, align 4, !tbaa !9
  %2504 = icmp ne i32 %2502, %2503
  br i1 %2504, label %2505, label %2567

2505:                                             ; preds = %2501
  %2506 = load i32, ptr %38, align 4, !tbaa !9
  %2507 = load i32, ptr %41, align 4, !tbaa !9
  %2508 = sub nsw i32 %2506, %2507
  store i32 %2508, ptr %25, align 4, !tbaa !9
  %2509 = load i32, ptr %41, align 4, !tbaa !9
  %2510 = sub nsw i32 %2509, 1
  %2511 = load ptr, ptr %18, align 8, !tbaa !5
  %2512 = load i32, ptr %41, align 4, !tbaa !9
  %2513 = load i32, ptr %41, align 4, !tbaa !9
  %2514 = add nsw i32 %2513, 1
  %2515 = load i32, ptr %23, align 4, !tbaa !9
  %2516 = mul nsw i32 %2514, %2515
  %2517 = add nsw i32 %2512, %2516
  %2518 = sext i32 %2517 to i64
  %2519 = getelementptr inbounds %struct.complex, ptr %2511, i64 %2518
  %2520 = call i32 @icamax_(ptr noundef %25, ptr noundef %2519, ptr noundef @c__1)
  %2521 = add nsw i32 %2510, %2520
  store i32 %2521, ptr %39, align 4, !tbaa !9
  %2522 = load i32, ptr %39, align 4, !tbaa !9
  %2523 = load i32, ptr %41, align 4, !tbaa !9
  %2524 = add nsw i32 %2523, 1
  %2525 = load i32, ptr %23, align 4, !tbaa !9
  %2526 = mul nsw i32 %2524, %2525
  %2527 = add nsw i32 %2522, %2526
  store i32 %2527, ptr %25, align 4, !tbaa !9
  %2528 = load ptr, ptr %18, align 8, !tbaa !5
  %2529 = load i32, ptr %25, align 4, !tbaa !9
  %2530 = sext i32 %2529 to i64
  %2531 = getelementptr inbounds %struct.complex, ptr %2528, i64 %2530
  %2532 = getelementptr inbounds %struct.complex, ptr %2531, i32 0, i32 0
  %2533 = load float, ptr %2532, align 4, !tbaa !13
  store float %2533, ptr %30, align 4, !tbaa !11
  %2534 = load float, ptr %30, align 4, !tbaa !11
  %2535 = fcmp oge float %2534, 0.000000e+00
  br i1 %2535, label %2536, label %2538

2536:                                             ; preds = %2505
  %2537 = load float, ptr %30, align 4, !tbaa !11
  br label %2541

2538:                                             ; preds = %2505
  %2539 = load float, ptr %30, align 4, !tbaa !11
  %2540 = fneg float %2539
  br label %2541

2541:                                             ; preds = %2538, %2536
  %2542 = phi float [ %2537, %2536 ], [ %2540, %2538 ]
  %2543 = load ptr, ptr %18, align 8, !tbaa !5
  %2544 = load i32, ptr %39, align 4, !tbaa !9
  %2545 = load i32, ptr %41, align 4, !tbaa !9
  %2546 = add nsw i32 %2545, 1
  %2547 = load i32, ptr %23, align 4, !tbaa !9
  %2548 = mul nsw i32 %2546, %2547
  %2549 = add nsw i32 %2544, %2548
  %2550 = sext i32 %2549 to i64
  %2551 = getelementptr inbounds %struct.complex, ptr %2543, i64 %2550
  %2552 = call <2 x float> @Cf(ptr noundef %2551)
  store <2 x float> %2552, ptr %83, align 4
  %2553 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 0
  %2554 = load float, ptr %2553, align 4
  %2555 = getelementptr inbounds { float, float }, ptr %83, i32 0, i32 1
  %2556 = load float, ptr %2555, align 4
  store float %2556, ptr %31, align 4, !tbaa !11
  %2557 = load float, ptr %31, align 4, !tbaa !11
  %2558 = fcmp oge float %2557, 0.000000e+00
  br i1 %2558, label %2559, label %2561

2559:                                             ; preds = %2541
  %2560 = load float, ptr %31, align 4, !tbaa !11
  br label %2564

2561:                                             ; preds = %2541
  %2562 = load float, ptr %31, align 4, !tbaa !11
  %2563 = fneg float %2562
  br label %2564

2564:                                             ; preds = %2561, %2559
  %2565 = phi float [ %2560, %2559 ], [ %2563, %2561 ]
  %2566 = fadd float %2542, %2565
  store float %2566, ptr %63, align 4, !tbaa !11
  br label %2568

2567:                                             ; preds = %2501
  store float 0.000000e+00, ptr %63, align 4, !tbaa !11
  br label %2568

2568:                                             ; preds = %2567, %2564
  %2569 = load i32, ptr %38, align 4, !tbaa !9
  %2570 = load ptr, ptr %12, align 8, !tbaa !5
  %2571 = load i32, ptr %2570, align 4, !tbaa !9
  %2572 = icmp slt i32 %2569, %2571
  br i1 %2572, label %2573, label %2643

2573:                                             ; preds = %2568
  %2574 = load ptr, ptr %12, align 8, !tbaa !5
  %2575 = load i32, ptr %2574, align 4, !tbaa !9
  %2576 = load i32, ptr %38, align 4, !tbaa !9
  %2577 = sub nsw i32 %2575, %2576
  store i32 %2577, ptr %25, align 4, !tbaa !9
  %2578 = load i32, ptr %38, align 4, !tbaa !9
  %2579 = load ptr, ptr %18, align 8, !tbaa !5
  %2580 = load i32, ptr %38, align 4, !tbaa !9
  %2581 = add nsw i32 %2580, 1
  %2582 = load i32, ptr %41, align 4, !tbaa !9
  %2583 = add nsw i32 %2582, 1
  %2584 = load i32, ptr %23, align 4, !tbaa !9
  %2585 = mul nsw i32 %2583, %2584
  %2586 = add nsw i32 %2581, %2585
  %2587 = sext i32 %2586 to i64
  %2588 = getelementptr inbounds %struct.complex, ptr %2579, i64 %2587
  %2589 = call i32 @icamax_(ptr noundef %25, ptr noundef %2588, ptr noundef @c__1)
  %2590 = add nsw i32 %2578, %2589
  store i32 %2590, ptr %46, align 4, !tbaa !9
  %2591 = load i32, ptr %46, align 4, !tbaa !9
  %2592 = load i32, ptr %41, align 4, !tbaa !9
  %2593 = add nsw i32 %2592, 1
  %2594 = load i32, ptr %23, align 4, !tbaa !9
  %2595 = mul nsw i32 %2593, %2594
  %2596 = add nsw i32 %2591, %2595
  store i32 %2596, ptr %25, align 4, !tbaa !9
  %2597 = load ptr, ptr %18, align 8, !tbaa !5
  %2598 = load i32, ptr %25, align 4, !tbaa !9
  %2599 = sext i32 %2598 to i64
  %2600 = getelementptr inbounds %struct.complex, ptr %2597, i64 %2599
  %2601 = getelementptr inbounds %struct.complex, ptr %2600, i32 0, i32 0
  %2602 = load float, ptr %2601, align 4, !tbaa !13
  store float %2602, ptr %30, align 4, !tbaa !11
  %2603 = load float, ptr %30, align 4, !tbaa !11
  %2604 = fcmp oge float %2603, 0.000000e+00
  br i1 %2604, label %2605, label %2607

2605:                                             ; preds = %2573
  %2606 = load float, ptr %30, align 4, !tbaa !11
  br label %2610

2607:                                             ; preds = %2573
  %2608 = load float, ptr %30, align 4, !tbaa !11
  %2609 = fneg float %2608
  br label %2610

2610:                                             ; preds = %2607, %2605
  %2611 = phi float [ %2606, %2605 ], [ %2609, %2607 ]
  %2612 = load ptr, ptr %18, align 8, !tbaa !5
  %2613 = load i32, ptr %46, align 4, !tbaa !9
  %2614 = load i32, ptr %41, align 4, !tbaa !9
  %2615 = add nsw i32 %2614, 1
  %2616 = load i32, ptr %23, align 4, !tbaa !9
  %2617 = mul nsw i32 %2615, %2616
  %2618 = add nsw i32 %2613, %2617
  %2619 = sext i32 %2618 to i64
  %2620 = getelementptr inbounds %struct.complex, ptr %2612, i64 %2619
  %2621 = call <2 x float> @Cf(ptr noundef %2620)
  store <2 x float> %2621, ptr %84, align 4
  %2622 = getelementptr inbounds { float, float }, ptr %84, i32 0, i32 0
  %2623 = load float, ptr %2622, align 4
  %2624 = getelementptr inbounds { float, float }, ptr %84, i32 0, i32 1
  %2625 = load float, ptr %2624, align 4
  store float %2625, ptr %31, align 4, !tbaa !11
  %2626 = load float, ptr %31, align 4, !tbaa !11
  %2627 = fcmp oge float %2626, 0.000000e+00
  br i1 %2627, label %2628, label %2630

2628:                                             ; preds = %2610
  %2629 = load float, ptr %31, align 4, !tbaa !11
  br label %2633

2630:                                             ; preds = %2610
  %2631 = load float, ptr %31, align 4, !tbaa !11
  %2632 = fneg float %2631
  br label %2633

2633:                                             ; preds = %2630, %2628
  %2634 = phi float [ %2629, %2628 ], [ %2632, %2630 ]
  %2635 = fadd float %2611, %2634
  store float %2635, ptr %48, align 4, !tbaa !11
  %2636 = load float, ptr %48, align 4, !tbaa !11
  %2637 = load float, ptr %63, align 4, !tbaa !11
  %2638 = fcmp ogt float %2636, %2637
  br i1 %2638, label %2639, label %2642

2639:                                             ; preds = %2633
  %2640 = load float, ptr %48, align 4, !tbaa !11
  store float %2640, ptr %63, align 4, !tbaa !11
  %2641 = load i32, ptr %46, align 4, !tbaa !9
  store i32 %2641, ptr %39, align 4, !tbaa !9
  br label %2642

2642:                                             ; preds = %2639, %2633
  br label %2643

2643:                                             ; preds = %2642, %2568
  %2644 = load i32, ptr %38, align 4, !tbaa !9
  %2645 = load i32, ptr %41, align 4, !tbaa !9
  %2646 = add nsw i32 %2645, 1
  %2647 = load i32, ptr %23, align 4, !tbaa !9
  %2648 = mul nsw i32 %2646, %2647
  %2649 = add nsw i32 %2644, %2648
  store i32 %2649, ptr %25, align 4, !tbaa !9
  %2650 = load ptr, ptr %18, align 8, !tbaa !5
  %2651 = load i32, ptr %25, align 4, !tbaa !9
  %2652 = sext i32 %2651 to i64
  %2653 = getelementptr inbounds %struct.complex, ptr %2650, i64 %2652
  %2654 = getelementptr inbounds %struct.complex, ptr %2653, i32 0, i32 0
  %2655 = load float, ptr %2654, align 4, !tbaa !13
  store float %2655, ptr %30, align 4, !tbaa !11
  %2656 = load float, ptr %30, align 4, !tbaa !11
  %2657 = fcmp oge float %2656, 0.000000e+00
  br i1 %2657, label %2658, label %2660

2658:                                             ; preds = %2643
  %2659 = load float, ptr %30, align 4, !tbaa !11
  br label %2663

2660:                                             ; preds = %2643
  %2661 = load float, ptr %30, align 4, !tbaa !11
  %2662 = fneg float %2661
  br label %2663

2663:                                             ; preds = %2660, %2658
  %2664 = phi float [ %2659, %2658 ], [ %2662, %2660 ]
  %2665 = load float, ptr %44, align 4, !tbaa !11
  %2666 = load float, ptr %63, align 4, !tbaa !11
  %2667 = fmul float %2665, %2666
  %2668 = fcmp olt float %2664, %2667
  br i1 %2668, label %2693, label %2669

2669:                                             ; preds = %2663
  %2670 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %2670, ptr %57, align 4, !tbaa !9
  %2671 = load ptr, ptr %12, align 8, !tbaa !5
  %2672 = load i32, ptr %2671, align 4, !tbaa !9
  %2673 = load i32, ptr %41, align 4, !tbaa !9
  %2674 = sub nsw i32 %2672, %2673
  %2675 = add nsw i32 %2674, 1
  store i32 %2675, ptr %25, align 4, !tbaa !9
  %2676 = load ptr, ptr %18, align 8, !tbaa !5
  %2677 = load i32, ptr %41, align 4, !tbaa !9
  %2678 = load i32, ptr %41, align 4, !tbaa !9
  %2679 = add nsw i32 %2678, 1
  %2680 = load i32, ptr %23, align 4, !tbaa !9
  %2681 = mul nsw i32 %2679, %2680
  %2682 = add nsw i32 %2677, %2681
  %2683 = sext i32 %2682 to i64
  %2684 = getelementptr inbounds %struct.complex, ptr %2676, i64 %2683
  %2685 = load ptr, ptr %18, align 8, !tbaa !5
  %2686 = load i32, ptr %41, align 4, !tbaa !9
  %2687 = load i32, ptr %41, align 4, !tbaa !9
  %2688 = load i32, ptr %23, align 4, !tbaa !9
  %2689 = mul nsw i32 %2687, %2688
  %2690 = add nsw i32 %2686, %2689
  %2691 = sext i32 %2690 to i64
  %2692 = getelementptr inbounds %struct.complex, ptr %2685, i64 %2691
  call void @ccopy_(ptr noundef %25, ptr noundef %2684, ptr noundef @c__1, ptr noundef %2692, ptr noundef @c__1)
  store i32 1, ptr %37, align 4, !tbaa !9
  br label %2730

2693:                                             ; preds = %2663
  %2694 = load i32, ptr %42, align 4, !tbaa !9
  %2695 = load i32, ptr %39, align 4, !tbaa !9
  %2696 = icmp eq i32 %2694, %2695
  br i1 %2696, label %2701, label %2697

2697:                                             ; preds = %2693
  %2698 = load float, ptr %63, align 4, !tbaa !11
  %2699 = load float, ptr %60, align 4, !tbaa !11
  %2700 = fcmp ole float %2698, %2699
  br i1 %2700, label %2701, label %2703

2701:                                             ; preds = %2697, %2693
  %2702 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %2702, ptr %57, align 4, !tbaa !9
  store i32 2, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %37, align 4, !tbaa !9
  br label %2729

2703:                                             ; preds = %2697
  %2704 = load i32, ptr %38, align 4, !tbaa !9
  store i32 %2704, ptr %42, align 4, !tbaa !9
  %2705 = load float, ptr %63, align 4, !tbaa !11
  store float %2705, ptr %60, align 4, !tbaa !11
  %2706 = load i32, ptr %39, align 4, !tbaa !9
  store i32 %2706, ptr %38, align 4, !tbaa !9
  %2707 = load ptr, ptr %12, align 8, !tbaa !5
  %2708 = load i32, ptr %2707, align 4, !tbaa !9
  %2709 = load i32, ptr %41, align 4, !tbaa !9
  %2710 = sub nsw i32 %2708, %2709
  %2711 = add nsw i32 %2710, 1
  store i32 %2711, ptr %25, align 4, !tbaa !9
  %2712 = load ptr, ptr %18, align 8, !tbaa !5
  %2713 = load i32, ptr %41, align 4, !tbaa !9
  %2714 = load i32, ptr %41, align 4, !tbaa !9
  %2715 = add nsw i32 %2714, 1
  %2716 = load i32, ptr %23, align 4, !tbaa !9
  %2717 = mul nsw i32 %2715, %2716
  %2718 = add nsw i32 %2713, %2717
  %2719 = sext i32 %2718 to i64
  %2720 = getelementptr inbounds %struct.complex, ptr %2712, i64 %2719
  %2721 = load ptr, ptr %18, align 8, !tbaa !5
  %2722 = load i32, ptr %41, align 4, !tbaa !9
  %2723 = load i32, ptr %41, align 4, !tbaa !9
  %2724 = load i32, ptr %23, align 4, !tbaa !9
  %2725 = mul nsw i32 %2723, %2724
  %2726 = add nsw i32 %2722, %2725
  %2727 = sext i32 %2726 to i64
  %2728 = getelementptr inbounds %struct.complex, ptr %2721, i64 %2727
  call void @ccopy_(ptr noundef %25, ptr noundef %2720, ptr noundef @c__1, ptr noundef %2728, ptr noundef @c__1)
  br label %2729

2729:                                             ; preds = %2703, %2701
  br label %2730

2730:                                             ; preds = %2729, %2669
  %2731 = load i32, ptr %37, align 4, !tbaa !9
  %2732 = icmp ne i32 %2731, 0
  br i1 %2732, label %2734, label %2733

2733:                                             ; preds = %2730
  br label %2346

2734:                                             ; preds = %2730
  br label %2735

2735:                                             ; preds = %2734, %2343
  %2736 = load i32, ptr %41, align 4, !tbaa !9
  %2737 = load i32, ptr %47, align 4, !tbaa !9
  %2738 = add nsw i32 %2736, %2737
  %2739 = sub nsw i32 %2738, 1
  store i32 %2739, ptr %56, align 4, !tbaa !9
  %2740 = load i32, ptr %47, align 4, !tbaa !9
  %2741 = icmp eq i32 %2740, 2
  br i1 %2741, label %2742, label %2873

2742:                                             ; preds = %2735
  %2743 = load i32, ptr %42, align 4, !tbaa !9
  %2744 = load i32, ptr %41, align 4, !tbaa !9
  %2745 = icmp ne i32 %2743, %2744
  br i1 %2745, label %2746, label %2873

2746:                                             ; preds = %2742
  %2747 = load i32, ptr %42, align 4, !tbaa !9
  %2748 = load i32, ptr %42, align 4, !tbaa !9
  %2749 = load i32, ptr %21, align 4, !tbaa !9
  %2750 = mul nsw i32 %2748, %2749
  %2751 = add nsw i32 %2747, %2750
  store i32 %2751, ptr %25, align 4, !tbaa !9
  %2752 = load i32, ptr %41, align 4, !tbaa !9
  %2753 = load i32, ptr %41, align 4, !tbaa !9
  %2754 = load i32, ptr %21, align 4, !tbaa !9
  %2755 = mul nsw i32 %2753, %2754
  %2756 = add nsw i32 %2752, %2755
  store i32 %2756, ptr %26, align 4, !tbaa !9
  %2757 = load ptr, ptr %15, align 8, !tbaa !5
  %2758 = load i32, ptr %26, align 4, !tbaa !9
  %2759 = sext i32 %2758 to i64
  %2760 = getelementptr inbounds %struct.complex, ptr %2757, i64 %2759
  %2761 = getelementptr inbounds %struct.complex, ptr %2760, i32 0, i32 0
  %2762 = load float, ptr %2761, align 4, !tbaa !13
  store float %2762, ptr %30, align 4, !tbaa !11
  %2763 = load float, ptr %30, align 4, !tbaa !11
  %2764 = load ptr, ptr %15, align 8, !tbaa !5
  %2765 = load i32, ptr %25, align 4, !tbaa !9
  %2766 = sext i32 %2765 to i64
  %2767 = getelementptr inbounds %struct.complex, ptr %2764, i64 %2766
  %2768 = getelementptr inbounds %struct.complex, ptr %2767, i32 0, i32 0
  store float %2763, ptr %2768, align 4, !tbaa !13
  %2769 = load ptr, ptr %15, align 8, !tbaa !5
  %2770 = load i32, ptr %25, 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 0.000000e+00, ptr %2773, align 4, !tbaa !15
  %2774 = load i32, ptr %42, align 4, !tbaa !9
  %2775 = load i32, ptr %41, align 4, !tbaa !9
  %2776 = sub nsw i32 %2774, %2775
  %2777 = sub nsw i32 %2776, 1
  store i32 %2777, ptr %25, align 4, !tbaa !9
  %2778 = load ptr, ptr %15, align 8, !tbaa !5
  %2779 = load i32, ptr %41, align 4, !tbaa !9
  %2780 = add nsw i32 %2779, 1
  %2781 = load i32, ptr %41, align 4, !tbaa !9
  %2782 = load i32, ptr %21, align 4, !tbaa !9
  %2783 = mul nsw i32 %2781, %2782
  %2784 = add nsw i32 %2780, %2783
  %2785 = sext i32 %2784 to i64
  %2786 = getelementptr inbounds %struct.complex, ptr %2778, i64 %2785
  %2787 = load ptr, ptr %15, align 8, !tbaa !5
  %2788 = load i32, ptr %42, align 4, !tbaa !9
  %2789 = load i32, ptr %41, align 4, !tbaa !9
  %2790 = add nsw i32 %2789, 1
  %2791 = load i32, ptr %21, align 4, !tbaa !9
  %2792 = mul nsw i32 %2790, %2791
  %2793 = add nsw i32 %2788, %2792
  %2794 = sext i32 %2793 to i64
  %2795 = getelementptr inbounds %struct.complex, ptr %2787, i64 %2794
  %2796 = load ptr, ptr %16, align 8, !tbaa !5
  call void @ccopy_(ptr noundef %25, ptr noundef %2786, ptr noundef @c__1, ptr noundef %2795, ptr noundef %2796)
  %2797 = load i32, ptr %42, align 4, !tbaa !9
  %2798 = load i32, ptr %41, align 4, !tbaa !9
  %2799 = sub nsw i32 %2797, %2798
  %2800 = sub nsw i32 %2799, 1
  store i32 %2800, ptr %25, align 4, !tbaa !9
  %2801 = load ptr, ptr %15, align 8, !tbaa !5
  %2802 = load i32, ptr %42, align 4, !tbaa !9
  %2803 = load i32, ptr %41, align 4, !tbaa !9
  %2804 = add nsw i32 %2803, 1
  %2805 = load i32, ptr %21, align 4, !tbaa !9
  %2806 = mul nsw i32 %2804, %2805
  %2807 = add nsw i32 %2802, %2806
  %2808 = sext i32 %2807 to i64
  %2809 = getelementptr inbounds %struct.complex, ptr %2801, i64 %2808
  %2810 = load ptr, ptr %16, align 8, !tbaa !5
  call void @clacgv_(ptr noundef %25, ptr noundef %2809, ptr noundef %2810)
  %2811 = load i32, ptr %42, align 4, !tbaa !9
  %2812 = load ptr, ptr %12, align 8, !tbaa !5
  %2813 = load i32, ptr %2812, align 4, !tbaa !9
  %2814 = icmp slt i32 %2811, %2813
  br i1 %2814, label %2815, label %2838

2815:                                             ; preds = %2746
  %2816 = load ptr, ptr %12, align 8, !tbaa !5
  %2817 = load i32, ptr %2816, align 4, !tbaa !9
  %2818 = load i32, ptr %42, align 4, !tbaa !9
  %2819 = sub nsw i32 %2817, %2818
  store i32 %2819, ptr %25, align 4, !tbaa !9
  %2820 = load ptr, ptr %15, align 8, !tbaa !5
  %2821 = load i32, ptr %42, align 4, !tbaa !9
  %2822 = add nsw i32 %2821, 1
  %2823 = load i32, ptr %41, align 4, !tbaa !9
  %2824 = load i32, ptr %21, align 4, !tbaa !9
  %2825 = mul nsw i32 %2823, %2824
  %2826 = add nsw i32 %2822, %2825
  %2827 = sext i32 %2826 to i64
  %2828 = getelementptr inbounds %struct.complex, ptr %2820, i64 %2827
  %2829 = load ptr, ptr %15, align 8, !tbaa !5
  %2830 = load i32, ptr %42, align 4, !tbaa !9
  %2831 = add nsw i32 %2830, 1
  %2832 = load i32, ptr %42, align 4, !tbaa !9
  %2833 = load i32, ptr %21, align 4, !tbaa !9
  %2834 = mul nsw i32 %2832, %2833
  %2835 = add nsw i32 %2831, %2834
  %2836 = sext i32 %2835 to i64
  %2837 = getelementptr inbounds %struct.complex, ptr %2829, i64 %2836
  call void @ccopy_(ptr noundef %25, ptr noundef %2828, ptr noundef @c__1, ptr noundef %2837, ptr noundef @c__1)
  br label %2838

2838:                                             ; preds = %2815, %2746
  %2839 = load i32, ptr %41, align 4, !tbaa !9
  %2840 = icmp sgt i32 %2839, 1
  br i1 %2840, label %2841, label %2858

2841:                                             ; preds = %2838
  %2842 = load i32, ptr %41, align 4, !tbaa !9
  %2843 = sub nsw i32 %2842, 1
  store i32 %2843, ptr %25, align 4, !tbaa !9
  %2844 = load ptr, ptr %15, align 8, !tbaa !5
  %2845 = load i32, ptr %41, align 4, !tbaa !9
  %2846 = load i32, ptr %21, align 4, !tbaa !9
  %2847 = add nsw i32 %2845, %2846
  %2848 = sext i32 %2847 to i64
  %2849 = getelementptr inbounds %struct.complex, ptr %2844, i64 %2848
  %2850 = load ptr, ptr %16, align 8, !tbaa !5
  %2851 = load ptr, ptr %15, align 8, !tbaa !5
  %2852 = load i32, ptr %42, align 4, !tbaa !9
  %2853 = load i32, ptr %21, align 4, !tbaa !9
  %2854 = add nsw i32 %2852, %2853
  %2855 = sext i32 %2854 to i64
  %2856 = getelementptr inbounds %struct.complex, ptr %2851, i64 %2855
  %2857 = load ptr, ptr %16, align 8, !tbaa !5
  call void @cswap_(ptr noundef %25, ptr noundef %2849, ptr noundef %2850, ptr noundef %2856, ptr noundef %2857)
  br label %2858

2858:                                             ; preds = %2841, %2838
  %2859 = load ptr, ptr %18, align 8, !tbaa !5
  %2860 = load i32, ptr %41, align 4, !tbaa !9
  %2861 = load i32, ptr %23, align 4, !tbaa !9
  %2862 = add nsw i32 %2860, %2861
  %2863 = sext i32 %2862 to i64
  %2864 = getelementptr inbounds %struct.complex, ptr %2859, i64 %2863
  %2865 = load ptr, ptr %19, align 8, !tbaa !5
  %2866 = load ptr, ptr %18, align 8, !tbaa !5
  %2867 = load i32, ptr %42, align 4, !tbaa !9
  %2868 = load i32, ptr %23, align 4, !tbaa !9
  %2869 = add nsw i32 %2867, %2868
  %2870 = sext i32 %2869 to i64
  %2871 = getelementptr inbounds %struct.complex, ptr %2866, i64 %2870
  %2872 = load ptr, ptr %19, align 8, !tbaa !5
  call void @cswap_(ptr noundef %56, ptr noundef %2864, ptr noundef %2865, ptr noundef %2871, ptr noundef %2872)
  br label %2873

2873:                                             ; preds = %2858, %2742, %2735
  %2874 = load i32, ptr %57, align 4, !tbaa !9
  %2875 = load i32, ptr %56, align 4, !tbaa !9
  %2876 = icmp ne i32 %2874, %2875
  br i1 %2876, label %2877, label %3004

2877:                                             ; preds = %2873
  %2878 = load i32, ptr %57, align 4, !tbaa !9
  %2879 = load i32, ptr %57, align 4, !tbaa !9
  %2880 = load i32, ptr %21, align 4, !tbaa !9
  %2881 = mul nsw i32 %2879, %2880
  %2882 = add nsw i32 %2878, %2881
  store i32 %2882, ptr %25, align 4, !tbaa !9
  %2883 = load i32, ptr %56, align 4, !tbaa !9
  %2884 = load i32, ptr %56, align 4, !tbaa !9
  %2885 = load i32, ptr %21, align 4, !tbaa !9
  %2886 = mul nsw i32 %2884, %2885
  %2887 = add nsw i32 %2883, %2886
  store i32 %2887, ptr %26, align 4, !tbaa !9
  %2888 = load ptr, ptr %15, align 8, !tbaa !5
  %2889 = load i32, ptr %26, align 4, !tbaa !9
  %2890 = sext i32 %2889 to i64
  %2891 = getelementptr inbounds %struct.complex, ptr %2888, i64 %2890
  %2892 = getelementptr inbounds %struct.complex, ptr %2891, i32 0, i32 0
  %2893 = load float, ptr %2892, align 4, !tbaa !13
  store float %2893, ptr %30, align 4, !tbaa !11
  %2894 = load float, ptr %30, align 4, !tbaa !11
  %2895 = load ptr, ptr %15, align 8, !tbaa !5
  %2896 = load i32, ptr %25, align 4, !tbaa !9
  %2897 = sext i32 %2896 to i64
  %2898 = getelementptr inbounds %struct.complex, ptr %2895, i64 %2897
  %2899 = getelementptr inbounds %struct.complex, ptr %2898, i32 0, i32 0
  store float %2894, ptr %2899, align 4, !tbaa !13
  %2900 = load ptr, ptr %15, align 8, !tbaa !5
  %2901 = load i32, ptr %25, align 4, !tbaa !9
  %2902 = sext i32 %2901 to i64
  %2903 = getelementptr inbounds %struct.complex, ptr %2900, i64 %2902
  %2904 = getelementptr inbounds %struct.complex, ptr %2903, i32 0, i32 1
  store float 0.000000e+00, ptr %2904, align 4, !tbaa !15
  %2905 = load i32, ptr %57, align 4, !tbaa !9
  %2906 = load i32, ptr %56, align 4, !tbaa !9
  %2907 = sub nsw i32 %2905, %2906
  %2908 = sub nsw i32 %2907, 1
  store i32 %2908, ptr %25, align 4, !tbaa !9
  %2909 = load ptr, ptr %15, align 8, !tbaa !5
  %2910 = load i32, ptr %56, align 4, !tbaa !9
  %2911 = add nsw i32 %2910, 1
  %2912 = load i32, ptr %56, align 4, !tbaa !9
  %2913 = load i32, ptr %21, align 4, !tbaa !9
  %2914 = mul nsw i32 %2912, %2913
  %2915 = add nsw i32 %2911, %2914
  %2916 = sext i32 %2915 to i64
  %2917 = getelementptr inbounds %struct.complex, ptr %2909, i64 %2916
  %2918 = load ptr, ptr %15, align 8, !tbaa !5
  %2919 = load i32, ptr %57, align 4, !tbaa !9
  %2920 = load i32, ptr %56, align 4, !tbaa !9
  %2921 = add nsw i32 %2920, 1
  %2922 = load i32, ptr %21, align 4, !tbaa !9
  %2923 = mul nsw i32 %2921, %2922
  %2924 = add nsw i32 %2919, %2923
  %2925 = sext i32 %2924 to i64
  %2926 = getelementptr inbounds %struct.complex, ptr %2918, i64 %2925
  %2927 = load ptr, ptr %16, align 8, !tbaa !5
  call void @ccopy_(ptr noundef %25, ptr noundef %2917, ptr noundef @c__1, ptr noundef %2926, ptr noundef %2927)
  %2928 = load i32, ptr %57, align 4, !tbaa !9
  %2929 = load i32, ptr %56, align 4, !tbaa !9
  %2930 = sub nsw i32 %2928, %2929
  %2931 = sub nsw i32 %2930, 1
  store i32 %2931, ptr %25, align 4, !tbaa !9
  %2932 = load ptr, ptr %15, align 8, !tbaa !5
  %2933 = load i32, ptr %57, align 4, !tbaa !9
  %2934 = load i32, ptr %56, align 4, !tbaa !9
  %2935 = add nsw i32 %2934, 1
  %2936 = load i32, ptr %21, align 4, !tbaa !9
  %2937 = mul nsw i32 %2935, %2936
  %2938 = add nsw i32 %2933, %2937
  %2939 = sext i32 %2938 to i64
  %2940 = getelementptr inbounds %struct.complex, ptr %2932, i64 %2939
  %2941 = load ptr, ptr %16, align 8, !tbaa !5
  call void @clacgv_(ptr noundef %25, ptr noundef %2940, ptr noundef %2941)
  %2942 = load i32, ptr %57, align 4, !tbaa !9
  %2943 = load ptr, ptr %12, align 8, !tbaa !5
  %2944 = load i32, ptr %2943, align 4, !tbaa !9
  %2945 = icmp slt i32 %2942, %2944
  br i1 %2945, label %2946, label %2969

2946:                                             ; preds = %2877
  %2947 = load ptr, ptr %12, align 8, !tbaa !5
  %2948 = load i32, ptr %2947, align 4, !tbaa !9
  %2949 = load i32, ptr %57, align 4, !tbaa !9
  %2950 = sub nsw i32 %2948, %2949
  store i32 %2950, ptr %25, align 4, !tbaa !9
  %2951 = load ptr, ptr %15, align 8, !tbaa !5
  %2952 = load i32, ptr %57, align 4, !tbaa !9
  %2953 = add nsw i32 %2952, 1
  %2954 = load i32, ptr %56, align 4, !tbaa !9
  %2955 = load i32, ptr %21, align 4, !tbaa !9
  %2956 = mul nsw i32 %2954, %2955
  %2957 = add nsw i32 %2953, %2956
  %2958 = sext i32 %2957 to i64
  %2959 = getelementptr inbounds %struct.complex, ptr %2951, i64 %2958
  %2960 = load ptr, ptr %15, align 8, !tbaa !5
  %2961 = load i32, ptr %57, align 4, !tbaa !9
  %2962 = add nsw i32 %2961, 1
  %2963 = load i32, ptr %57, align 4, !tbaa !9
  %2964 = load i32, ptr %21, align 4, !tbaa !9
  %2965 = mul nsw i32 %2963, %2964
  %2966 = add nsw i32 %2962, %2965
  %2967 = sext i32 %2966 to i64
  %2968 = getelementptr inbounds %struct.complex, ptr %2960, i64 %2967
  call void @ccopy_(ptr noundef %25, ptr noundef %2959, ptr noundef @c__1, ptr noundef %2968, ptr noundef @c__1)
  br label %2969

2969:                                             ; preds = %2946, %2877
  %2970 = load i32, ptr %41, align 4, !tbaa !9
  %2971 = icmp sgt i32 %2970, 1
  br i1 %2971, label %2972, label %2989

2972:                                             ; preds = %2969
  %2973 = load i32, ptr %41, align 4, !tbaa !9
  %2974 = sub nsw i32 %2973, 1
  store i32 %2974, ptr %25, align 4, !tbaa !9
  %2975 = load ptr, ptr %15, align 8, !tbaa !5
  %2976 = load i32, ptr %56, align 4, !tbaa !9
  %2977 = load i32, ptr %21, align 4, !tbaa !9
  %2978 = add nsw i32 %2976, %2977
  %2979 = sext i32 %2978 to i64
  %2980 = getelementptr inbounds %struct.complex, ptr %2975, i64 %2979
  %2981 = load ptr, ptr %16, align 8, !tbaa !5
  %2982 = load ptr, ptr %15, align 8, !tbaa !5
  %2983 = load i32, ptr %57, align 4, !tbaa !9
  %2984 = load i32, ptr %21, align 4, !tbaa !9
  %2985 = add nsw i32 %2983, %2984
  %2986 = sext i32 %2985 to i64
  %2987 = getelementptr inbounds %struct.complex, ptr %2982, i64 %2986
  %2988 = load ptr, ptr %16, align 8, !tbaa !5
  call void @cswap_(ptr noundef %25, ptr noundef %2980, ptr noundef %2981, ptr noundef %2987, ptr noundef %2988)
  br label %2989

2989:                                             ; preds = %2972, %2969
  %2990 = load ptr, ptr %18, align 8, !tbaa !5
  %2991 = load i32, ptr %56, align 4, !tbaa !9
  %2992 = load i32, ptr %23, align 4, !tbaa !9
  %2993 = add nsw i32 %2991, %2992
  %2994 = sext i32 %2993 to i64
  %2995 = getelementptr inbounds %struct.complex, ptr %2990, i64 %2994
  %2996 = load ptr, ptr %19, align 8, !tbaa !5
  %2997 = load ptr, ptr %18, align 8, !tbaa !5
  %2998 = load i32, ptr %57, align 4, !tbaa !9
  %2999 = load i32, ptr %23, align 4, !tbaa !9
  %3000 = add nsw i32 %2998, %2999
  %3001 = sext i32 %3000 to i64
  %3002 = getelementptr inbounds %struct.complex, ptr %2997, i64 %3001
  %3003 = load ptr, ptr %19, align 8, !tbaa !5
  call void @cswap_(ptr noundef %56, ptr noundef %2995, ptr noundef %2996, ptr noundef %3002, ptr noundef %3003)
  br label %3004

3004:                                             ; preds = %2989, %2873
  %3005 = load i32, ptr %47, align 4, !tbaa !9
  %3006 = icmp eq i32 %3005, 1
  br i1 %3006, label %3007, label %3143

3007:                                             ; preds = %3004
  %3008 = load ptr, ptr %12, align 8, !tbaa !5
  %3009 = load i32, ptr %3008, align 4, !tbaa !9
  %3010 = load i32, ptr %41, align 4, !tbaa !9
  %3011 = sub nsw i32 %3009, %3010
  %3012 = add nsw i32 %3011, 1
  store i32 %3012, ptr %25, align 4, !tbaa !9
  %3013 = load ptr, ptr %18, align 8, !tbaa !5
  %3014 = load i32, ptr %41, align 4, !tbaa !9
  %3015 = load i32, ptr %41, align 4, !tbaa !9
  %3016 = load i32, ptr %23, align 4, !tbaa !9
  %3017 = mul nsw i32 %3015, %3016
  %3018 = add nsw i32 %3014, %3017
  %3019 = sext i32 %3018 to i64
  %3020 = getelementptr inbounds %struct.complex, ptr %3013, i64 %3019
  %3021 = load ptr, ptr %15, align 8, !tbaa !5
  %3022 = load i32, ptr %41, align 4, !tbaa !9
  %3023 = load i32, ptr %41, align 4, !tbaa !9
  %3024 = load i32, ptr %21, align 4, !tbaa !9
  %3025 = mul nsw i32 %3023, %3024
  %3026 = add nsw i32 %3022, %3025
  %3027 = sext i32 %3026 to i64
  %3028 = getelementptr inbounds %struct.complex, ptr %3021, i64 %3027
  call void @ccopy_(ptr noundef %25, ptr noundef %3020, ptr noundef @c__1, ptr noundef %3028, ptr noundef @c__1)
  %3029 = load i32, ptr %41, align 4, !tbaa !9
  %3030 = load ptr, ptr %12, align 8, !tbaa !5
  %3031 = load i32, ptr %3030, align 4, !tbaa !9
  %3032 = icmp slt i32 %3029, %3031
  br i1 %3032, label %3033, label %3142

3033:                                             ; preds = %3007
  %3034 = load i32, ptr %41, align 4, !tbaa !9
  %3035 = load i32, ptr %41, align 4, !tbaa !9
  %3036 = load i32, ptr %21, align 4, !tbaa !9
  %3037 = mul nsw i32 %3035, %3036
  %3038 = add nsw i32 %3034, %3037
  store i32 %3038, ptr %25, align 4, !tbaa !9
  %3039 = load ptr, ptr %15, align 8, !tbaa !5
  %3040 = load i32, ptr %25, align 4, !tbaa !9
  %3041 = sext i32 %3040 to i64
  %3042 = getelementptr inbounds %struct.complex, ptr %3039, i64 %3041
  %3043 = getelementptr inbounds %struct.complex, ptr %3042, i32 0, i32 0
  %3044 = load float, ptr %3043, align 4, !tbaa !13
  store float %3044, ptr %43, align 4, !tbaa !11
  %3045 = load float, ptr %43, align 4, !tbaa !11
  %3046 = fcmp oge float %3045, 0.000000e+00
  br i1 %3046, label %3047, label %3049

3047:                                             ; preds = %3033
  %3048 = load float, ptr %43, align 4, !tbaa !11
  br label %3052

3049:                                             ; preds = %3033
  %3050 = load float, ptr %43, align 4, !tbaa !11
  %3051 = fneg float %3050
  br label %3052

3052:                                             ; preds = %3049, %3047
  %3053 = phi float [ %3048, %3047 ], [ %3051, %3049 ]
  %3054 = load float, ptr %45, align 4, !tbaa !11
  %3055 = fcmp oge float %3053, %3054
  br i1 %3055, label %3056, label %3072

3056:                                             ; preds = %3052
  %3057 = load float, ptr %43, align 4, !tbaa !11
  %3058 = fdiv float 1.000000e+00, %3057
  store float %3058, ptr %49, align 4, !tbaa !11
  %3059 = load ptr, ptr %12, align 8, !tbaa !5
  %3060 = load i32, ptr %3059, align 4, !tbaa !9
  %3061 = load i32, ptr %41, align 4, !tbaa !9
  %3062 = sub nsw i32 %3060, %3061
  store i32 %3062, ptr %25, align 4, !tbaa !9
  %3063 = load ptr, ptr %15, align 8, !tbaa !5
  %3064 = load i32, ptr %41, align 4, !tbaa !9
  %3065 = add nsw i32 %3064, 1
  %3066 = load i32, ptr %41, align 4, !tbaa !9
  %3067 = load i32, ptr %21, align 4, !tbaa !9
  %3068 = mul nsw i32 %3066, %3067
  %3069 = add nsw i32 %3065, %3068
  %3070 = sext i32 %3069 to i64
  %3071 = getelementptr inbounds %struct.complex, ptr %3063, i64 %3070
  call void @csscal_(ptr noundef %25, ptr noundef %49, ptr noundef %3071, ptr noundef @c__1)
  br label %3128

3072:                                             ; preds = %3052
  %3073 = load ptr, ptr %12, align 8, !tbaa !5
  %3074 = load i32, ptr %3073, align 4, !tbaa !9
  store i32 %3074, ptr %25, align 4, !tbaa !9
  %3075 = load i32, ptr %41, align 4, !tbaa !9
  %3076 = add nsw i32 %3075, 1
  store i32 %3076, ptr %54, align 4, !tbaa !9
  br label %3077

3077:                                             ; preds = %3124, %3072
  %3078 = load i32, ptr %54, align 4, !tbaa !9
  %3079 = load i32, ptr %25, align 4, !tbaa !9
  %3080 = icmp sle i32 %3078, %3079
  br i1 %3080, label %3081, label %3127

3081:                                             ; preds = %3077
  %3082 = load i32, ptr %54, align 4, !tbaa !9
  %3083 = load i32, ptr %41, align 4, !tbaa !9
  %3084 = load i32, ptr %21, align 4, !tbaa !9
  %3085 = mul nsw i32 %3083, %3084
  %3086 = add nsw i32 %3082, %3085
  store i32 %3086, ptr %26, align 4, !tbaa !9
  %3087 = load i32, ptr %54, align 4, !tbaa !9
  %3088 = load i32, ptr %41, align 4, !tbaa !9
  %3089 = load i32, ptr %21, align 4, !tbaa !9
  %3090 = mul nsw i32 %3088, %3089
  %3091 = add nsw i32 %3087, %3090
  store i32 %3091, ptr %27, align 4, !tbaa !9
  %3092 = load ptr, ptr %15, align 8, !tbaa !5
  %3093 = load i32, ptr %27, align 4, !tbaa !9
  %3094 = sext i32 %3093 to i64
  %3095 = getelementptr inbounds %struct.complex, ptr %3092, i64 %3094
  %3096 = getelementptr inbounds %struct.complex, ptr %3095, i32 0, i32 0
  %3097 = load float, ptr %3096, align 4, !tbaa !13
  %3098 = load float, ptr %43, align 4, !tbaa !11
  %3099 = fdiv float %3097, %3098
  %3100 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %3099, ptr %3100, align 4, !tbaa !13
  %3101 = load ptr, ptr %15, align 8, !tbaa !5
  %3102 = load i32, ptr %27, align 4, !tbaa !9
  %3103 = sext i32 %3102 to i64
  %3104 = getelementptr inbounds %struct.complex, ptr %3101, i64 %3103
  %3105 = getelementptr inbounds %struct.complex, ptr %3104, i32 0, i32 1
  %3106 = load float, ptr %3105, align 4, !tbaa !15
  %3107 = load float, ptr %43, align 4, !tbaa !11
  %3108 = fdiv float %3106, %3107
  %3109 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %3108, ptr %3109, align 4, !tbaa !15
  %3110 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %3111 = load float, ptr %3110, align 4, !tbaa !13
  %3112 = load ptr, ptr %15, align 8, !tbaa !5
  %3113 = load i32, ptr %26, align 4, !tbaa !9
  %3114 = sext i32 %3113 to i64
  %3115 = getelementptr inbounds %struct.complex, ptr %3112, i64 %3114
  %3116 = getelementptr inbounds %struct.complex, ptr %3115, i32 0, i32 0
  store float %3111, ptr %3116, align 4, !tbaa !13
  %3117 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %3118 = load float, ptr %3117, align 4, !tbaa !15
  %3119 = load ptr, ptr %15, align 8, !tbaa !5
  %3120 = load i32, ptr %26, align 4, !tbaa !9
  %3121 = sext i32 %3120 to i64
  %3122 = getelementptr inbounds %struct.complex, ptr %3119, i64 %3121
  %3123 = getelementptr inbounds %struct.complex, ptr %3122, i32 0, i32 1
  store float %3118, ptr %3123, align 4, !tbaa !15
  br label %3124

3124:                                             ; preds = %3081
  %3125 = load i32, ptr %54, align 4, !tbaa !9
  %3126 = add nsw i32 %3125, 1
  store i32 %3126, ptr %54, align 4, !tbaa !9
  br label %3077, !llvm.loop !21

3127:                                             ; preds = %3077
  br label %3128

3128:                                             ; preds = %3127, %3056
  %3129 = load ptr, ptr %12, align 8, !tbaa !5
  %3130 = load i32, ptr %3129, align 4, !tbaa !9
  %3131 = load i32, ptr %41, align 4, !tbaa !9
  %3132 = sub nsw i32 %3130, %3131
  store i32 %3132, ptr %25, align 4, !tbaa !9
  %3133 = load ptr, ptr %18, align 8, !tbaa !5
  %3134 = load i32, ptr %41, align 4, !tbaa !9
  %3135 = add nsw i32 %3134, 1
  %3136 = load i32, ptr %41, align 4, !tbaa !9
  %3137 = load i32, ptr %23, align 4, !tbaa !9
  %3138 = mul nsw i32 %3136, %3137
  %3139 = add nsw i32 %3135, %3138
  %3140 = sext i32 %3139 to i64
  %3141 = getelementptr inbounds %struct.complex, ptr %3133, i64 %3140
  call void @clacgv_(ptr noundef %25, ptr noundef %3141, ptr noundef @c__1)
  br label %3142

3142:                                             ; preds = %3128, %3007
  br label %3660

3143:                                             ; preds = %3004
  %3144 = load i32, ptr %41, align 4, !tbaa !9
  %3145 = load ptr, ptr %12, align 8, !tbaa !5
  %3146 = load i32, ptr %3145, align 4, !tbaa !9
  %3147 = sub nsw i32 %3146, 1
  %3148 = icmp slt i32 %3144, %3147
  br i1 %3148, label %3149, label %3529

3149:                                             ; preds = %3143
  %3150 = load i32, ptr %41, align 4, !tbaa !9
  %3151 = add nsw i32 %3150, 1
  %3152 = load i32, ptr %41, align 4, !tbaa !9
  %3153 = load i32, ptr %23, align 4, !tbaa !9
  %3154 = mul nsw i32 %3152, %3153
  %3155 = add nsw i32 %3151, %3154
  store i32 %3155, ptr %25, align 4, !tbaa !9
  %3156 = load ptr, ptr %18, align 8, !tbaa !5
  %3157 = load i32, ptr %25, align 4, !tbaa !9
  %3158 = sext i32 %3157 to i64
  %3159 = getelementptr inbounds %struct.complex, ptr %3156, i64 %3158
  %3160 = getelementptr inbounds %struct.complex, ptr %3159, i32 0, i32 0
  %3161 = load float, ptr %3160, align 4, !tbaa !13
  %3162 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 0
  store float %3161, ptr %3162, align 4, !tbaa !13
  %3163 = load ptr, ptr %18, align 8, !tbaa !5
  %3164 = load i32, ptr %25, align 4, !tbaa !9
  %3165 = sext i32 %3164 to i64
  %3166 = getelementptr inbounds %struct.complex, ptr %3163, i64 %3165
  %3167 = getelementptr inbounds %struct.complex, ptr %3166, i32 0, i32 1
  %3168 = load float, ptr %3167, align 4, !tbaa !15
  %3169 = getelementptr inbounds %struct.complex, ptr %51, i32 0, i32 1
  store float %3168, ptr %3169, align 4, !tbaa !15
  %3170 = load ptr, ptr %18, align 8, !tbaa !5
  %3171 = load i32, ptr %41, align 4, !tbaa !9
  %3172 = add nsw i32 %3171, 1
  %3173 = load i32, ptr %41, align 4, !tbaa !9
  %3174 = add nsw i32 %3173, 1
  %3175 = load i32, ptr %23, align 4, !tbaa !9
  %3176 = mul nsw i32 %3174, %3175
  %3177 = add nsw i32 %3172, %3176
  %3178 = sext i32 %3177 to i64
  %3179 = getelementptr inbounds %struct.complex, ptr %3170, i64 %3178
  %3180 = call <2 x float> @Cf(ptr noundef %3179)
  store <2 x float> %3180, ptr %85, align 4
  %3181 = getelementptr inbounds { float, float }, ptr %85, i32 0, i32 0
  %3182 = load float, ptr %3181, align 4
  %3183 = getelementptr inbounds { float, float }, ptr %85, i32 0, i32 1
  %3184 = load float, ptr %3183, align 4
  %3185 = call <2 x float> @Cf(ptr noundef %51)
  store <2 x float> %3185, ptr %86, align 4
  %3186 = getelementptr inbounds { float, float }, ptr %86, i32 0, i32 0
  %3187 = load float, ptr %3186, align 4
  %3188 = getelementptr inbounds { float, float }, ptr %86, i32 0, i32 1
  %3189 = load float, ptr %3188, align 4
  %3190 = call <2 x float> @__divsc3(float noundef %3182, float noundef %3184, float noundef %3187, float noundef %3189) #7
  store <2 x float> %3190, ptr %87, align 4
  %3191 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 0
  %3192 = load float, ptr %3191, align 4
  %3193 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 1
  %3194 = load float, ptr %3193, align 4
  %3195 = call ptr @_pCf(ptr noundef %32)
  %3196 = getelementptr inbounds { float, float }, ptr %3195, i32 0, i32 0
  %3197 = getelementptr inbounds { float, float }, ptr %3195, i32 0, i32 1
  store float %3192, ptr %3196, align 4
  store float %3194, ptr %3197, align 4
  %3198 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %3199 = load float, ptr %3198, align 4, !tbaa !13
  %3200 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  store float %3199, ptr %3200, align 4, !tbaa !13
  %3201 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %3202 = load float, ptr %3201, align 4, !tbaa !15
  %3203 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  store float %3202, ptr %3203, align 4, !tbaa !15
  %3204 = call <2 x float> @Cf(ptr noundef %51)
  store <2 x float> %3204, ptr %88, align 4
  %3205 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 0
  %3206 = load float, ptr %3205, align 4
  %3207 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 1
  %3208 = load float, ptr %3207, align 4
  %3209 = fneg float %3208
  %3210 = call ptr @_pCf(ptr noundef %33)
  %3211 = getelementptr inbounds { float, float }, ptr %3210, i32 0, i32 0
  %3212 = getelementptr inbounds { float, float }, ptr %3210, i32 0, i32 1
  store float %3206, ptr %3211, align 4
  store float %3209, ptr %3212, align 4
  %3213 = load ptr, ptr %18, align 8, !tbaa !5
  %3214 = load i32, ptr %41, align 4, !tbaa !9
  %3215 = load i32, ptr %41, align 4, !tbaa !9
  %3216 = load i32, ptr %23, align 4, !tbaa !9
  %3217 = mul nsw i32 %3215, %3216
  %3218 = add nsw i32 %3214, %3217
  %3219 = sext i32 %3218 to i64
  %3220 = getelementptr inbounds %struct.complex, ptr %3213, i64 %3219
  %3221 = call <2 x float> @Cf(ptr noundef %3220)
  store <2 x float> %3221, ptr %89, align 4
  %3222 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 0
  %3223 = load float, ptr %3222, align 4
  %3224 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 1
  %3225 = load float, ptr %3224, align 4
  %3226 = call <2 x float> @Cf(ptr noundef %33)
  store <2 x float> %3226, ptr %90, align 4
  %3227 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 0
  %3228 = load float, ptr %3227, align 4
  %3229 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 1
  %3230 = load float, ptr %3229, align 4
  %3231 = call <2 x float> @__divsc3(float noundef %3223, float noundef %3225, float noundef %3228, float noundef %3230) #7
  store <2 x float> %3231, ptr %91, align 4
  %3232 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 0
  %3233 = load float, ptr %3232, align 4
  %3234 = getelementptr inbounds { float, float }, ptr %91, i32 0, i32 1
  %3235 = load float, ptr %3234, align 4
  %3236 = call ptr @_pCf(ptr noundef %32)
  %3237 = getelementptr inbounds { float, float }, ptr %3236, i32 0, i32 0
  %3238 = getelementptr inbounds { float, float }, ptr %3236, i32 0, i32 1
  store float %3233, ptr %3237, align 4
  store float %3235, ptr %3238, align 4
  %3239 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %3240 = load float, ptr %3239, align 4, !tbaa !13
  %3241 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  store float %3240, ptr %3241, align 4, !tbaa !13
  %3242 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %3243 = load float, ptr %3242, align 4, !tbaa !15
  %3244 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  store float %3243, ptr %3244, align 4, !tbaa !15
  %3245 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %3246 = load float, ptr %3245, align 4, !tbaa !13
  %3247 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %3248 = load float, ptr %3247, align 4, !tbaa !13
  %3249 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %3250 = load float, ptr %3249, align 4, !tbaa !15
  %3251 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %3252 = load float, ptr %3251, align 4, !tbaa !15
  %3253 = fmul float %3250, %3252
  %3254 = fneg float %3253
  %3255 = call float @llvm.fmuladd.f32(float %3246, float %3248, float %3254)
  %3256 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %3255, ptr %3256, align 4, !tbaa !13
  %3257 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %3258 = load float, ptr %3257, align 4, !tbaa !13
  %3259 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %3260 = load float, ptr %3259, align 4, !tbaa !15
  %3261 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %3262 = load float, ptr %3261, align 4, !tbaa !15
  %3263 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %3264 = load float, ptr %3263, align 4, !tbaa !13
  %3265 = fmul float %3262, %3264
  %3266 = call float @llvm.fmuladd.f32(float %3258, float %3260, float %3265)
  %3267 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %3266, ptr %3267, align 4, !tbaa !15
  %3268 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %3269 = load float, ptr %3268, align 4, !tbaa !13
  %3270 = fsub float %3269, 1.000000e+00
  %3271 = fdiv float 1.000000e+00, %3270
  store float %3271, ptr %43, align 4, !tbaa !11
  %3272 = load ptr, ptr %12, align 8, !tbaa !5
  %3273 = load i32, ptr %3272, align 4, !tbaa !9
  store i32 %3273, ptr %25, align 4, !tbaa !9
  %3274 = load i32, ptr %41, align 4, !tbaa !9
  %3275 = add nsw i32 %3274, 2
  store i32 %3275, ptr %40, align 4, !tbaa !9
  br label %3276

3276:                                             ; preds = %3525, %3149
  %3277 = load i32, ptr %40, align 4, !tbaa !9
  %3278 = load i32, ptr %25, align 4, !tbaa !9
  %3279 = icmp sle i32 %3277, %3278
  br i1 %3279, label %3280, label %3528

3280:                                             ; preds = %3276
  %3281 = load i32, ptr %40, align 4, !tbaa !9
  %3282 = load i32, ptr %41, align 4, !tbaa !9
  %3283 = load i32, ptr %21, align 4, !tbaa !9
  %3284 = mul nsw i32 %3282, %3283
  %3285 = add nsw i32 %3281, %3284
  store i32 %3285, ptr %26, align 4, !tbaa !9
  %3286 = load i32, ptr %40, align 4, !tbaa !9
  %3287 = load i32, ptr %41, align 4, !tbaa !9
  %3288 = load i32, ptr %23, align 4, !tbaa !9
  %3289 = mul nsw i32 %3287, %3288
  %3290 = add nsw i32 %3286, %3289
  store i32 %3290, ptr %27, align 4, !tbaa !9
  %3291 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %3292 = load float, ptr %3291, align 4, !tbaa !13
  %3293 = load ptr, ptr %18, align 8, !tbaa !5
  %3294 = load i32, ptr %27, align 4, !tbaa !9
  %3295 = sext i32 %3294 to i64
  %3296 = getelementptr inbounds %struct.complex, ptr %3293, i64 %3295
  %3297 = getelementptr inbounds %struct.complex, ptr %3296, i32 0, i32 0
  %3298 = load float, ptr %3297, align 4, !tbaa !13
  %3299 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %3300 = load float, ptr %3299, align 4, !tbaa !15
  %3301 = load ptr, ptr %18, align 8, !tbaa !5
  %3302 = load i32, ptr %27, align 4, !tbaa !9
  %3303 = sext i32 %3302 to i64
  %3304 = getelementptr inbounds %struct.complex, ptr %3301, i64 %3303
  %3305 = getelementptr inbounds %struct.complex, ptr %3304, i32 0, i32 1
  %3306 = load float, ptr %3305, align 4, !tbaa !15
  %3307 = fmul float %3300, %3306
  %3308 = fneg float %3307
  %3309 = call float @llvm.fmuladd.f32(float %3292, float %3298, float %3308)
  %3310 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  store float %3309, ptr %3310, align 4, !tbaa !13
  %3311 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 0
  %3312 = load float, ptr %3311, align 4, !tbaa !13
  %3313 = load ptr, ptr %18, align 8, !tbaa !5
  %3314 = load i32, ptr %27, align 4, !tbaa !9
  %3315 = sext i32 %3314 to i64
  %3316 = getelementptr inbounds %struct.complex, ptr %3313, i64 %3315
  %3317 = getelementptr inbounds %struct.complex, ptr %3316, i32 0, i32 1
  %3318 = load float, ptr %3317, align 4, !tbaa !15
  %3319 = getelementptr inbounds %struct.complex, ptr %50, i32 0, i32 1
  %3320 = load float, ptr %3319, align 4, !tbaa !15
  %3321 = load ptr, ptr %18, align 8, !tbaa !5
  %3322 = load i32, ptr %27, align 4, !tbaa !9
  %3323 = sext i32 %3322 to i64
  %3324 = getelementptr inbounds %struct.complex, ptr %3321, i64 %3323
  %3325 = getelementptr inbounds %struct.complex, ptr %3324, i32 0, i32 0
  %3326 = load float, ptr %3325, align 4, !tbaa !13
  %3327 = fmul float %3320, %3326
  %3328 = call float @llvm.fmuladd.f32(float %3312, float %3318, float %3327)
  %3329 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  store float %3328, ptr %3329, align 4, !tbaa !15
  %3330 = load i32, ptr %40, align 4, !tbaa !9
  %3331 = load i32, ptr %41, align 4, !tbaa !9
  %3332 = add nsw i32 %3331, 1
  %3333 = load i32, ptr %23, align 4, !tbaa !9
  %3334 = mul nsw i32 %3332, %3333
  %3335 = add nsw i32 %3330, %3334
  store i32 %3335, ptr %28, align 4, !tbaa !9
  %3336 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %3337 = load float, ptr %3336, align 4, !tbaa !13
  %3338 = load ptr, ptr %18, align 8, !tbaa !5
  %3339 = load i32, ptr %28, align 4, !tbaa !9
  %3340 = sext i32 %3339 to i64
  %3341 = getelementptr inbounds %struct.complex, ptr %3338, i64 %3340
  %3342 = getelementptr inbounds %struct.complex, ptr %3341, i32 0, i32 0
  %3343 = load float, ptr %3342, align 4, !tbaa !13
  %3344 = fsub float %3337, %3343
  %3345 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %3344, ptr %3345, align 4, !tbaa !13
  %3346 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %3347 = load float, ptr %3346, align 4, !tbaa !15
  %3348 = load ptr, ptr %18, align 8, !tbaa !5
  %3349 = load i32, ptr %28, align 4, !tbaa !9
  %3350 = sext i32 %3349 to i64
  %3351 = getelementptr inbounds %struct.complex, ptr %3348, i64 %3350
  %3352 = getelementptr inbounds %struct.complex, ptr %3351, i32 0, i32 1
  %3353 = load float, ptr %3352, align 4, !tbaa !15
  %3354 = fsub float %3347, %3353
  %3355 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %3354, ptr %3355, align 4, !tbaa !15
  %3356 = call <2 x float> @Cf(ptr noundef %51)
  store <2 x float> %3356, ptr %92, align 4
  %3357 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 0
  %3358 = load float, ptr %3357, align 4
  %3359 = getelementptr inbounds { float, float }, ptr %92, i32 0, i32 1
  %3360 = load float, ptr %3359, align 4
  %3361 = fneg float %3360
  %3362 = call ptr @_pCf(ptr noundef %36)
  %3363 = getelementptr inbounds { float, float }, ptr %3362, i32 0, i32 0
  %3364 = getelementptr inbounds { float, float }, ptr %3362, i32 0, i32 1
  store float %3358, ptr %3363, align 4
  store float %3361, ptr %3364, align 4
  %3365 = call <2 x float> @Cf(ptr noundef %34)
  store <2 x float> %3365, ptr %93, align 4
  %3366 = getelementptr inbounds { float, float }, ptr %93, i32 0, i32 0
  %3367 = load float, ptr %3366, align 4
  %3368 = getelementptr inbounds { float, float }, ptr %93, i32 0, i32 1
  %3369 = load float, ptr %3368, align 4
  %3370 = call <2 x float> @Cf(ptr noundef %36)
  store <2 x float> %3370, ptr %94, align 4
  %3371 = getelementptr inbounds { float, float }, ptr %94, i32 0, i32 0
  %3372 = load float, ptr %3371, align 4
  %3373 = getelementptr inbounds { float, float }, ptr %94, i32 0, i32 1
  %3374 = load float, ptr %3373, align 4
  %3375 = call <2 x float> @__divsc3(float noundef %3367, float noundef %3369, float noundef %3372, float noundef %3374) #7
  store <2 x float> %3375, ptr %95, align 4
  %3376 = getelementptr inbounds { float, float }, ptr %95, i32 0, i32 0
  %3377 = load float, ptr %3376, align 4
  %3378 = getelementptr inbounds { float, float }, ptr %95, i32 0, i32 1
  %3379 = load float, ptr %3378, align 4
  %3380 = call ptr @_pCf(ptr noundef %33)
  %3381 = getelementptr inbounds { float, float }, ptr %3380, i32 0, i32 0
  %3382 = getelementptr inbounds { float, float }, ptr %3380, i32 0, i32 1
  store float %3377, ptr %3381, align 4
  store float %3379, ptr %3382, align 4
  %3383 = load float, ptr %43, align 4, !tbaa !11
  %3384 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %3385 = load float, ptr %3384, align 4, !tbaa !13
  %3386 = fmul float %3383, %3385
  %3387 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %3386, ptr %3387, align 4, !tbaa !13
  %3388 = load float, ptr %43, align 4, !tbaa !11
  %3389 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %3390 = load float, ptr %3389, align 4, !tbaa !15
  %3391 = fmul float %3388, %3390
  %3392 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %3391, ptr %3392, align 4, !tbaa !15
  %3393 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %3394 = load float, ptr %3393, align 4, !tbaa !13
  %3395 = load ptr, ptr %15, align 8, !tbaa !5
  %3396 = load i32, ptr %26, align 4, !tbaa !9
  %3397 = sext i32 %3396 to i64
  %3398 = getelementptr inbounds %struct.complex, ptr %3395, i64 %3397
  %3399 = getelementptr inbounds %struct.complex, ptr %3398, i32 0, i32 0
  store float %3394, ptr %3399, align 4, !tbaa !13
  %3400 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %3401 = load float, ptr %3400, align 4, !tbaa !15
  %3402 = load ptr, ptr %15, align 8, !tbaa !5
  %3403 = load i32, ptr %26, align 4, !tbaa !9
  %3404 = sext i32 %3403 to i64
  %3405 = getelementptr inbounds %struct.complex, ptr %3402, i64 %3404
  %3406 = getelementptr inbounds %struct.complex, ptr %3405, i32 0, i32 1
  store float %3401, ptr %3406, align 4, !tbaa !15
  %3407 = load i32, ptr %40, align 4, !tbaa !9
  %3408 = load i32, ptr %41, align 4, !tbaa !9
  %3409 = add nsw i32 %3408, 1
  %3410 = load i32, ptr %21, align 4, !tbaa !9
  %3411 = mul nsw i32 %3409, %3410
  %3412 = add nsw i32 %3407, %3411
  store i32 %3412, ptr %26, align 4, !tbaa !9
  %3413 = load i32, ptr %40, align 4, !tbaa !9
  %3414 = load i32, ptr %41, align 4, !tbaa !9
  %3415 = add nsw i32 %3414, 1
  %3416 = load i32, ptr %23, align 4, !tbaa !9
  %3417 = mul nsw i32 %3415, %3416
  %3418 = add nsw i32 %3413, %3417
  store i32 %3418, ptr %27, align 4, !tbaa !9
  %3419 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %3420 = load float, ptr %3419, align 4, !tbaa !13
  %3421 = load ptr, ptr %18, align 8, !tbaa !5
  %3422 = load i32, ptr %27, align 4, !tbaa !9
  %3423 = sext i32 %3422 to i64
  %3424 = getelementptr inbounds %struct.complex, ptr %3421, i64 %3423
  %3425 = getelementptr inbounds %struct.complex, ptr %3424, i32 0, i32 0
  %3426 = load float, ptr %3425, align 4, !tbaa !13
  %3427 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %3428 = load float, ptr %3427, align 4, !tbaa !15
  %3429 = load ptr, ptr %18, align 8, !tbaa !5
  %3430 = load i32, ptr %27, align 4, !tbaa !9
  %3431 = sext i32 %3430 to i64
  %3432 = getelementptr inbounds %struct.complex, ptr %3429, i64 %3431
  %3433 = getelementptr inbounds %struct.complex, ptr %3432, i32 0, i32 1
  %3434 = load float, ptr %3433, align 4, !tbaa !15
  %3435 = fmul float %3428, %3434
  %3436 = fneg float %3435
  %3437 = call float @llvm.fmuladd.f32(float %3420, float %3426, float %3436)
  %3438 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  store float %3437, ptr %3438, align 4, !tbaa !13
  %3439 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 0
  %3440 = load float, ptr %3439, align 4, !tbaa !13
  %3441 = load ptr, ptr %18, align 8, !tbaa !5
  %3442 = load i32, ptr %27, align 4, !tbaa !9
  %3443 = sext i32 %3442 to i64
  %3444 = getelementptr inbounds %struct.complex, ptr %3441, i64 %3443
  %3445 = getelementptr inbounds %struct.complex, ptr %3444, i32 0, i32 1
  %3446 = load float, ptr %3445, align 4, !tbaa !15
  %3447 = getelementptr inbounds %struct.complex, ptr %52, i32 0, i32 1
  %3448 = load float, ptr %3447, align 4, !tbaa !15
  %3449 = load ptr, ptr %18, align 8, !tbaa !5
  %3450 = load i32, ptr %27, align 4, !tbaa !9
  %3451 = sext i32 %3450 to i64
  %3452 = getelementptr inbounds %struct.complex, ptr %3449, i64 %3451
  %3453 = getelementptr inbounds %struct.complex, ptr %3452, i32 0, i32 0
  %3454 = load float, ptr %3453, align 4, !tbaa !13
  %3455 = fmul float %3448, %3454
  %3456 = call float @llvm.fmuladd.f32(float %3440, float %3446, float %3455)
  %3457 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  store float %3456, ptr %3457, align 4, !tbaa !15
  %3458 = load i32, ptr %40, align 4, !tbaa !9
  %3459 = load i32, ptr %41, align 4, !tbaa !9
  %3460 = load i32, ptr %23, align 4, !tbaa !9
  %3461 = mul nsw i32 %3459, %3460
  %3462 = add nsw i32 %3458, %3461
  store i32 %3462, ptr %28, align 4, !tbaa !9
  %3463 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 0
  %3464 = load float, ptr %3463, align 4, !tbaa !13
  %3465 = load ptr, ptr %18, align 8, !tbaa !5
  %3466 = load i32, ptr %28, align 4, !tbaa !9
  %3467 = sext i32 %3466 to i64
  %3468 = getelementptr inbounds %struct.complex, ptr %3465, i64 %3467
  %3469 = getelementptr inbounds %struct.complex, ptr %3468, i32 0, i32 0
  %3470 = load float, ptr %3469, align 4, !tbaa !13
  %3471 = fsub float %3464, %3470
  %3472 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 0
  store float %3471, ptr %3472, align 4, !tbaa !13
  %3473 = getelementptr inbounds %struct.complex, ptr %35, i32 0, i32 1
  %3474 = load float, ptr %3473, align 4, !tbaa !15
  %3475 = load ptr, ptr %18, align 8, !tbaa !5
  %3476 = load i32, ptr %28, align 4, !tbaa !9
  %3477 = sext i32 %3476 to i64
  %3478 = getelementptr inbounds %struct.complex, ptr %3475, i64 %3477
  %3479 = getelementptr inbounds %struct.complex, ptr %3478, i32 0, i32 1
  %3480 = load float, ptr %3479, align 4, !tbaa !15
  %3481 = fsub float %3474, %3480
  %3482 = getelementptr inbounds %struct.complex, ptr %34, i32 0, i32 1
  store float %3481, ptr %3482, align 4, !tbaa !15
  %3483 = call <2 x float> @Cf(ptr noundef %34)
  store <2 x float> %3483, ptr %96, align 4
  %3484 = getelementptr inbounds { float, float }, ptr %96, i32 0, i32 0
  %3485 = load float, ptr %3484, align 4
  %3486 = getelementptr inbounds { float, float }, ptr %96, i32 0, i32 1
  %3487 = load float, ptr %3486, align 4
  %3488 = call <2 x float> @Cf(ptr noundef %51)
  store <2 x float> %3488, ptr %97, align 4
  %3489 = getelementptr inbounds { float, float }, ptr %97, i32 0, i32 0
  %3490 = load float, ptr %3489, align 4
  %3491 = getelementptr inbounds { float, float }, ptr %97, i32 0, i32 1
  %3492 = load float, ptr %3491, align 4
  %3493 = call <2 x float> @__divsc3(float noundef %3485, float noundef %3487, float noundef %3490, float noundef %3492) #7
  store <2 x float> %3493, ptr %98, align 4
  %3494 = getelementptr inbounds { float, float }, ptr %98, i32 0, i32 0
  %3495 = load float, ptr %3494, align 4
  %3496 = getelementptr inbounds { float, float }, ptr %98, i32 0, i32 1
  %3497 = load float, ptr %3496, align 4
  %3498 = call ptr @_pCf(ptr noundef %33)
  %3499 = getelementptr inbounds { float, float }, ptr %3498, i32 0, i32 0
  %3500 = getelementptr inbounds { float, float }, ptr %3498, i32 0, i32 1
  store float %3495, ptr %3499, align 4
  store float %3497, ptr %3500, align 4
  %3501 = load float, ptr %43, align 4, !tbaa !11
  %3502 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 0
  %3503 = load float, ptr %3502, align 4, !tbaa !13
  %3504 = fmul float %3501, %3503
  %3505 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %3504, ptr %3505, align 4, !tbaa !13
  %3506 = load float, ptr %43, align 4, !tbaa !11
  %3507 = getelementptr inbounds %struct.complex, ptr %33, i32 0, i32 1
  %3508 = load float, ptr %3507, align 4, !tbaa !15
  %3509 = fmul float %3506, %3508
  %3510 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %3509, ptr %3510, align 4, !tbaa !15
  %3511 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  %3512 = load float, ptr %3511, align 4, !tbaa !13
  %3513 = load ptr, ptr %15, align 8, !tbaa !5
  %3514 = load i32, ptr %26, align 4, !tbaa !9
  %3515 = sext i32 %3514 to i64
  %3516 = getelementptr inbounds %struct.complex, ptr %3513, i64 %3515
  %3517 = getelementptr inbounds %struct.complex, ptr %3516, i32 0, i32 0
  store float %3512, ptr %3517, align 4, !tbaa !13
  %3518 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  %3519 = load float, ptr %3518, align 4, !tbaa !15
  %3520 = load ptr, ptr %15, align 8, !tbaa !5
  %3521 = load i32, ptr %26, align 4, !tbaa !9
  %3522 = sext i32 %3521 to i64
  %3523 = getelementptr inbounds %struct.complex, ptr %3520, i64 %3522
  %3524 = getelementptr inbounds %struct.complex, ptr %3523, i32 0, i32 1
  store float %3519, ptr %3524, align 4, !tbaa !15
  br label %3525

3525:                                             ; preds = %3280
  %3526 = load i32, ptr %40, align 4, !tbaa !9
  %3527 = add nsw i32 %3526, 1
  store i32 %3527, ptr %40, align 4, !tbaa !9
  br label %3276, !llvm.loop !22

3528:                                             ; preds = %3276
  br label %3529

3529:                                             ; preds = %3528, %3143
  %3530 = load i32, ptr %41, align 4, !tbaa !9
  %3531 = load i32, ptr %41, align 4, !tbaa !9
  %3532 = load i32, ptr %21, align 4, !tbaa !9
  %3533 = mul nsw i32 %3531, %3532
  %3534 = add nsw i32 %3530, %3533
  store i32 %3534, ptr %25, align 4, !tbaa !9
  %3535 = load i32, ptr %41, align 4, !tbaa !9
  %3536 = load i32, ptr %41, align 4, !tbaa !9
  %3537 = load i32, ptr %23, align 4, !tbaa !9
  %3538 = mul nsw i32 %3536, %3537
  %3539 = add nsw i32 %3535, %3538
  store i32 %3539, ptr %26, align 4, !tbaa !9
  %3540 = load ptr, ptr %18, align 8, !tbaa !5
  %3541 = load i32, ptr %26, align 4, !tbaa !9
  %3542 = sext i32 %3541 to i64
  %3543 = getelementptr inbounds %struct.complex, ptr %3540, i64 %3542
  %3544 = getelementptr inbounds %struct.complex, ptr %3543, i32 0, i32 0
  %3545 = load float, ptr %3544, align 4, !tbaa !13
  %3546 = load ptr, ptr %15, align 8, !tbaa !5
  %3547 = load i32, ptr %25, align 4, !tbaa !9
  %3548 = sext i32 %3547 to i64
  %3549 = getelementptr inbounds %struct.complex, ptr %3546, i64 %3548
  %3550 = getelementptr inbounds %struct.complex, ptr %3549, i32 0, i32 0
  store float %3545, ptr %3550, align 4, !tbaa !13
  %3551 = load ptr, ptr %18, align 8, !tbaa !5
  %3552 = load i32, ptr %26, align 4, !tbaa !9
  %3553 = sext i32 %3552 to i64
  %3554 = getelementptr inbounds %struct.complex, ptr %3551, i64 %3553
  %3555 = getelementptr inbounds %struct.complex, ptr %3554, i32 0, i32 1
  %3556 = load float, ptr %3555, align 4, !tbaa !15
  %3557 = load ptr, ptr %15, align 8, !tbaa !5
  %3558 = load i32, ptr %25, align 4, !tbaa !9
  %3559 = sext i32 %3558 to i64
  %3560 = getelementptr inbounds %struct.complex, ptr %3557, i64 %3559
  %3561 = getelementptr inbounds %struct.complex, ptr %3560, i32 0, i32 1
  store float %3556, ptr %3561, align 4, !tbaa !15
  %3562 = load i32, ptr %41, align 4, !tbaa !9
  %3563 = add nsw i32 %3562, 1
  %3564 = load i32, ptr %41, align 4, !tbaa !9
  %3565 = load i32, ptr %21, align 4, !tbaa !9
  %3566 = mul nsw i32 %3564, %3565
  %3567 = add nsw i32 %3563, %3566
  store i32 %3567, ptr %25, align 4, !tbaa !9
  %3568 = load i32, ptr %41, align 4, !tbaa !9
  %3569 = add nsw i32 %3568, 1
  %3570 = load i32, ptr %41, align 4, !tbaa !9
  %3571 = load i32, ptr %23, align 4, !tbaa !9
  %3572 = mul nsw i32 %3570, %3571
  %3573 = add nsw i32 %3569, %3572
  store i32 %3573, ptr %26, align 4, !tbaa !9
  %3574 = load ptr, ptr %18, align 8, !tbaa !5
  %3575 = load i32, ptr %26, align 4, !tbaa !9
  %3576 = sext i32 %3575 to i64
  %3577 = getelementptr inbounds %struct.complex, ptr %3574, i64 %3576
  %3578 = getelementptr inbounds %struct.complex, ptr %3577, i32 0, i32 0
  %3579 = load float, ptr %3578, align 4, !tbaa !13
  %3580 = load ptr, ptr %15, align 8, !tbaa !5
  %3581 = load i32, ptr %25, align 4, !tbaa !9
  %3582 = sext i32 %3581 to i64
  %3583 = getelementptr inbounds %struct.complex, ptr %3580, i64 %3582
  %3584 = getelementptr inbounds %struct.complex, ptr %3583, i32 0, i32 0
  store float %3579, ptr %3584, align 4, !tbaa !13
  %3585 = load ptr, ptr %18, align 8, !tbaa !5
  %3586 = load i32, ptr %26, align 4, !tbaa !9
  %3587 = sext i32 %3586 to i64
  %3588 = getelementptr inbounds %struct.complex, ptr %3585, i64 %3587
  %3589 = getelementptr inbounds %struct.complex, ptr %3588, i32 0, i32 1
  %3590 = load float, ptr %3589, align 4, !tbaa !15
  %3591 = load ptr, ptr %15, align 8, !tbaa !5
  %3592 = load i32, ptr %25, align 4, !tbaa !9
  %3593 = sext i32 %3592 to i64
  %3594 = getelementptr inbounds %struct.complex, ptr %3591, i64 %3593
  %3595 = getelementptr inbounds %struct.complex, ptr %3594, i32 0, i32 1
  store float %3590, ptr %3595, align 4, !tbaa !15
  %3596 = load i32, ptr %41, align 4, !tbaa !9
  %3597 = add nsw i32 %3596, 1
  %3598 = load i32, ptr %41, align 4, !tbaa !9
  %3599 = add nsw i32 %3598, 1
  %3600 = load i32, ptr %21, align 4, !tbaa !9
  %3601 = mul nsw i32 %3599, %3600
  %3602 = add nsw i32 %3597, %3601
  store i32 %3602, ptr %25, align 4, !tbaa !9
  %3603 = load i32, ptr %41, align 4, !tbaa !9
  %3604 = add nsw i32 %3603, 1
  %3605 = load i32, ptr %41, align 4, !tbaa !9
  %3606 = add nsw i32 %3605, 1
  %3607 = load i32, ptr %23, align 4, !tbaa !9
  %3608 = mul nsw i32 %3606, %3607
  %3609 = add nsw i32 %3604, %3608
  store i32 %3609, ptr %26, align 4, !tbaa !9
  %3610 = load ptr, ptr %18, align 8, !tbaa !5
  %3611 = load i32, ptr %26, align 4, !tbaa !9
  %3612 = sext i32 %3611 to i64
  %3613 = getelementptr inbounds %struct.complex, ptr %3610, i64 %3612
  %3614 = getelementptr inbounds %struct.complex, ptr %3613, i32 0, i32 0
  %3615 = load float, ptr %3614, align 4, !tbaa !13
  %3616 = load ptr, ptr %15, align 8, !tbaa !5
  %3617 = load i32, ptr %25, align 4, !tbaa !9
  %3618 = sext i32 %3617 to i64
  %3619 = getelementptr inbounds %struct.complex, ptr %3616, i64 %3618
  %3620 = getelementptr inbounds %struct.complex, ptr %3619, i32 0, i32 0
  store float %3615, ptr %3620, align 4, !tbaa !13
  %3621 = load ptr, ptr %18, align 8, !tbaa !5
  %3622 = load i32, ptr %26, align 4, !tbaa !9
  %3623 = sext i32 %3622 to i64
  %3624 = getelementptr inbounds %struct.complex, ptr %3621, i64 %3623
  %3625 = getelementptr inbounds %struct.complex, ptr %3624, i32 0, i32 1
  %3626 = load float, ptr %3625, align 4, !tbaa !15
  %3627 = load ptr, ptr %15, align 8, !tbaa !5
  %3628 = load i32, ptr %25, align 4, !tbaa !9
  %3629 = sext i32 %3628 to i64
  %3630 = getelementptr inbounds %struct.complex, ptr %3627, i64 %3629
  %3631 = getelementptr inbounds %struct.complex, ptr %3630, i32 0, i32 1
  store float %3626, ptr %3631, align 4, !tbaa !15
  %3632 = load ptr, ptr %12, align 8, !tbaa !5
  %3633 = load i32, ptr %3632, align 4, !tbaa !9
  %3634 = load i32, ptr %41, align 4, !tbaa !9
  %3635 = sub nsw i32 %3633, %3634
  store i32 %3635, ptr %25, align 4, !tbaa !9
  %3636 = load ptr, ptr %18, align 8, !tbaa !5
  %3637 = load i32, ptr %41, align 4, !tbaa !9
  %3638 = add nsw i32 %3637, 1
  %3639 = load i32, ptr %41, align 4, !tbaa !9
  %3640 = load i32, ptr %23, align 4, !tbaa !9
  %3641 = mul nsw i32 %3639, %3640
  %3642 = add nsw i32 %3638, %3641
  %3643 = sext i32 %3642 to i64
  %3644 = getelementptr inbounds %struct.complex, ptr %3636, i64 %3643
  call void @clacgv_(ptr noundef %25, ptr noundef %3644, ptr noundef @c__1)
  %3645 = load ptr, ptr %12, align 8, !tbaa !5
  %3646 = load i32, ptr %3645, align 4, !tbaa !9
  %3647 = load i32, ptr %41, align 4, !tbaa !9
  %3648 = sub nsw i32 %3646, %3647
  %3649 = sub nsw i32 %3648, 1
  store i32 %3649, ptr %25, align 4, !tbaa !9
  %3650 = load ptr, ptr %18, align 8, !tbaa !5
  %3651 = load i32, ptr %41, align 4, !tbaa !9
  %3652 = add nsw i32 %3651, 2
  %3653 = load i32, ptr %41, align 4, !tbaa !9
  %3654 = add nsw i32 %3653, 1
  %3655 = load i32, ptr %23, align 4, !tbaa !9
  %3656 = mul nsw i32 %3654, %3655
  %3657 = add nsw i32 %3652, %3656
  %3658 = sext i32 %3657 to i64
  %3659 = getelementptr inbounds %struct.complex, ptr %3650, i64 %3658
  call void @clacgv_(ptr noundef %25, ptr noundef %3659, ptr noundef @c__1)
  br label %3660

3660:                                             ; preds = %3529, %3142
  br label %3661

3661:                                             ; preds = %3660, %2336
  %3662 = load i32, ptr %47, align 4, !tbaa !9
  %3663 = icmp eq i32 %3662, 1
  br i1 %3663, label %3664, label %3670

3664:                                             ; preds = %3661
  %3665 = load i32, ptr %57, align 4, !tbaa !9
  %3666 = load ptr, ptr %17, align 8, !tbaa !5
  %3667 = load i32, ptr %41, align 4, !tbaa !9
  %3668 = sext i32 %3667 to i64
  %3669 = getelementptr inbounds i32, ptr %3666, i64 %3668
  store i32 %3665, ptr %3669, align 4, !tbaa !9
  br label %3684

3670:                                             ; preds = %3661
  %3671 = load i32, ptr %42, align 4, !tbaa !9
  %3672 = sub nsw i32 0, %3671
  %3673 = load ptr, ptr %17, align 8, !tbaa !5
  %3674 = load i32, ptr %41, align 4, !tbaa !9
  %3675 = sext i32 %3674 to i64
  %3676 = getelementptr inbounds i32, ptr %3673, i64 %3675
  store i32 %3672, ptr %3676, align 4, !tbaa !9
  %3677 = load i32, ptr %57, align 4, !tbaa !9
  %3678 = sub nsw i32 0, %3677
  %3679 = load ptr, ptr %17, align 8, !tbaa !5
  %3680 = load i32, ptr %41, align 4, !tbaa !9
  %3681 = add nsw i32 %3680, 1
  %3682 = sext i32 %3681 to i64
  %3683 = getelementptr inbounds i32, ptr %3679, i64 %3682
  store i32 %3678, ptr %3683, align 4, !tbaa !9
  br label %3684

3684:                                             ; preds = %3670, %3664
  %3685 = load i32, ptr %47, align 4, !tbaa !9
  %3686 = load i32, ptr %41, align 4, !tbaa !9
  %3687 = add nsw i32 %3686, %3685
  store i32 %3687, ptr %41, align 4, !tbaa !9
  br label %2041

3688:                                             ; preds = %2057
  %3689 = load ptr, ptr %12, align 8, !tbaa !5
  %3690 = load i32, ptr %3689, align 4, !tbaa !9
  store i32 %3690, ptr %25, align 4, !tbaa !9
  %3691 = load ptr, ptr %13, align 8, !tbaa !5
  %3692 = load i32, ptr %3691, align 4, !tbaa !9
  store i32 %3692, ptr %26, align 4, !tbaa !9
  %3693 = load i32, ptr %41, align 4, !tbaa !9
  store i32 %3693, ptr %40, align 4, !tbaa !9
  br label %3694

3694:                                             ; preds = %3872, %3688
  %3695 = load i32, ptr %26, align 4, !tbaa !9
  %3696 = icmp slt i32 %3695, 0
  br i1 %3696, label %3697, label %3702

3697:                                             ; preds = %3694
  %3698 = load i32, ptr %40, align 4, !tbaa !9
  %3699 = load i32, ptr %25, align 4, !tbaa !9
  %3700 = icmp sge i32 %3698, %3699
  %3701 = zext i1 %3700 to i32
  br label %3707

3702:                                             ; preds = %3694
  %3703 = load i32, ptr %40, align 4, !tbaa !9
  %3704 = load i32, ptr %25, align 4, !tbaa !9
  %3705 = icmp sle i32 %3703, %3704
  %3706 = zext i1 %3705 to i32
  br label %3707

3707:                                             ; preds = %3702, %3697
  %3708 = phi i32 [ %3701, %3697 ], [ %3706, %3702 ]
  %3709 = icmp ne i32 %3708, 0
  br i1 %3709, label %3710, label %3876

3710:                                             ; preds = %3707
  %3711 = load ptr, ptr %13, align 8, !tbaa !5
  %3712 = load i32, ptr %3711, align 4, !tbaa !9
  store i32 %3712, ptr %27, align 4, !tbaa !9
  %3713 = load ptr, ptr %12, align 8, !tbaa !5
  %3714 = load i32, ptr %3713, align 4, !tbaa !9
  %3715 = load i32, ptr %40, align 4, !tbaa !9
  %3716 = sub nsw i32 %3714, %3715
  %3717 = add nsw i32 %3716, 1
  store i32 %3717, ptr %28, align 4, !tbaa !9
  %3718 = load i32, ptr %27, align 4, !tbaa !9
  %3719 = load i32, ptr %28, align 4, !tbaa !9
  %3720 = icmp sle i32 %3718, %3719
  br i1 %3720, label %3721, label %3723

3721:                                             ; preds = %3710
  %3722 = load i32, ptr %27, align 4, !tbaa !9
  br label %3725

3723:                                             ; preds = %3710
  %3724 = load i32, ptr %28, align 4, !tbaa !9
  br label %3725

3725:                                             ; preds = %3723, %3721
  %3726 = phi i32 [ %3722, %3721 ], [ %3724, %3723 ]
  store i32 %3726, ptr %53, align 4, !tbaa !9
  %3727 = load i32, ptr %40, align 4, !tbaa !9
  %3728 = load i32, ptr %53, align 4, !tbaa !9
  %3729 = add nsw i32 %3727, %3728
  %3730 = sub nsw i32 %3729, 1
  store i32 %3730, ptr %27, align 4, !tbaa !9
  %3731 = load i32, ptr %40, align 4, !tbaa !9
  store i32 %3731, ptr %55, align 4, !tbaa !9
  br label %3732

3732:                                             ; preds = %3822, %3725
  %3733 = load i32, ptr %55, align 4, !tbaa !9
  %3734 = load i32, ptr %27, align 4, !tbaa !9
  %3735 = icmp sle i32 %3733, %3734
  br i1 %3735, label %3736, label %3825

3736:                                             ; preds = %3732
  %3737 = load i32, ptr %55, align 4, !tbaa !9
  %3738 = load i32, ptr %55, align 4, !tbaa !9
  %3739 = load i32, ptr %21, align 4, !tbaa !9
  %3740 = mul nsw i32 %3738, %3739
  %3741 = add nsw i32 %3737, %3740
  store i32 %3741, ptr %28, align 4, !tbaa !9
  %3742 = load i32, ptr %55, align 4, !tbaa !9
  %3743 = load i32, ptr %55, align 4, !tbaa !9
  %3744 = load i32, ptr %21, align 4, !tbaa !9
  %3745 = mul nsw i32 %3743, %3744
  %3746 = add nsw i32 %3742, %3745
  store i32 %3746, ptr %29, align 4, !tbaa !9
  %3747 = load ptr, ptr %15, align 8, !tbaa !5
  %3748 = load i32, ptr %29, align 4, !tbaa !9
  %3749 = sext i32 %3748 to i64
  %3750 = getelementptr inbounds %struct.complex, ptr %3747, i64 %3749
  %3751 = getelementptr inbounds %struct.complex, ptr %3750, i32 0, i32 0
  %3752 = load float, ptr %3751, align 4, !tbaa !13
  store float %3752, ptr %30, align 4, !tbaa !11
  %3753 = load float, ptr %30, align 4, !tbaa !11
  %3754 = load ptr, ptr %15, align 8, !tbaa !5
  %3755 = load i32, ptr %28, align 4, !tbaa !9
  %3756 = sext i32 %3755 to i64
  %3757 = getelementptr inbounds %struct.complex, ptr %3754, i64 %3756
  %3758 = getelementptr inbounds %struct.complex, ptr %3757, i32 0, i32 0
  store float %3753, ptr %3758, align 4, !tbaa !13
  %3759 = load ptr, ptr %15, align 8, !tbaa !5
  %3760 = load i32, ptr %28, align 4, !tbaa !9
  %3761 = sext i32 %3760 to i64
  %3762 = getelementptr inbounds %struct.complex, ptr %3759, i64 %3761
  %3763 = getelementptr inbounds %struct.complex, ptr %3762, i32 0, i32 1
  store float 0.000000e+00, ptr %3763, align 4, !tbaa !15
  %3764 = load i32, ptr %40, align 4, !tbaa !9
  %3765 = load i32, ptr %53, align 4, !tbaa !9
  %3766 = add nsw i32 %3764, %3765
  %3767 = load i32, ptr %55, align 4, !tbaa !9
  %3768 = sub nsw i32 %3766, %3767
  store i32 %3768, ptr %28, align 4, !tbaa !9
  %3769 = load i32, ptr %41, align 4, !tbaa !9
  %3770 = sub nsw i32 %3769, 1
  store i32 %3770, ptr %29, align 4, !tbaa !9
  %3771 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float -1.000000e+00, ptr %3771, align 4, !tbaa !13
  %3772 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float 0.000000e+00, ptr %3772, align 4, !tbaa !15
  %3773 = load ptr, ptr %15, align 8, !tbaa !5
  %3774 = load i32, ptr %55, align 4, !tbaa !9
  %3775 = load i32, ptr %21, align 4, !tbaa !9
  %3776 = add nsw i32 %3774, %3775
  %3777 = sext i32 %3776 to i64
  %3778 = getelementptr inbounds %struct.complex, ptr %3773, i64 %3777
  %3779 = load ptr, ptr %16, align 8, !tbaa !5
  %3780 = load ptr, ptr %18, align 8, !tbaa !5
  %3781 = load i32, ptr %55, align 4, !tbaa !9
  %3782 = load i32, ptr %23, align 4, !tbaa !9
  %3783 = add nsw i32 %3781, %3782
  %3784 = sext i32 %3783 to i64
  %3785 = getelementptr inbounds %struct.complex, ptr %3780, i64 %3784
  %3786 = load ptr, ptr %19, align 8, !tbaa !5
  %3787 = load ptr, ptr %15, align 8, !tbaa !5
  %3788 = load i32, ptr %55, align 4, !tbaa !9
  %3789 = load i32, ptr %55, align 4, !tbaa !9
  %3790 = load i32, ptr %21, align 4, !tbaa !9
  %3791 = mul nsw i32 %3789, %3790
  %3792 = add nsw i32 %3788, %3791
  %3793 = sext i32 %3792 to i64
  %3794 = getelementptr inbounds %struct.complex, ptr %3787, i64 %3793
  call void @cgemv_(ptr noundef @.str.2, ptr noundef %28, ptr noundef %29, ptr noundef %32, ptr noundef %3778, ptr noundef %3779, ptr noundef %3785, ptr noundef %3786, ptr noundef @c_b1, ptr noundef %3794, ptr noundef @c__1)
  %3795 = load i32, ptr %55, align 4, !tbaa !9
  %3796 = load i32, ptr %55, align 4, !tbaa !9
  %3797 = load i32, ptr %21, align 4, !tbaa !9
  %3798 = mul nsw i32 %3796, %3797
  %3799 = add nsw i32 %3795, %3798
  store i32 %3799, ptr %28, align 4, !tbaa !9
  %3800 = load i32, ptr %55, align 4, !tbaa !9
  %3801 = load i32, ptr %55, align 4, !tbaa !9
  %3802 = load i32, ptr %21, align 4, !tbaa !9
  %3803 = mul nsw i32 %3801, %3802
  %3804 = add nsw i32 %3800, %3803
  store i32 %3804, ptr %29, align 4, !tbaa !9
  %3805 = load ptr, ptr %15, align 8, !tbaa !5
  %3806 = load i32, ptr %29, align 4, !tbaa !9
  %3807 = sext i32 %3806 to i64
  %3808 = getelementptr inbounds %struct.complex, ptr %3805, i64 %3807
  %3809 = getelementptr inbounds %struct.complex, ptr %3808, i32 0, i32 0
  %3810 = load float, ptr %3809, align 4, !tbaa !13
  store float %3810, ptr %30, align 4, !tbaa !11
  %3811 = load float, ptr %30, align 4, !tbaa !11
  %3812 = load ptr, ptr %15, align 8, !tbaa !5
  %3813 = load i32, ptr %28, align 4, !tbaa !9
  %3814 = sext i32 %3813 to i64
  %3815 = getelementptr inbounds %struct.complex, ptr %3812, i64 %3814
  %3816 = getelementptr inbounds %struct.complex, ptr %3815, i32 0, i32 0
  store float %3811, ptr %3816, align 4, !tbaa !13
  %3817 = load ptr, ptr %15, align 8, !tbaa !5
  %3818 = load i32, ptr %28, align 4, !tbaa !9
  %3819 = sext i32 %3818 to i64
  %3820 = getelementptr inbounds %struct.complex, ptr %3817, i64 %3819
  %3821 = getelementptr inbounds %struct.complex, ptr %3820, i32 0, i32 1
  store float 0.000000e+00, ptr %3821, align 4, !tbaa !15
  br label %3822

3822:                                             ; preds = %3736
  %3823 = load i32, ptr %55, align 4, !tbaa !9
  %3824 = add nsw i32 %3823, 1
  store i32 %3824, ptr %55, align 4, !tbaa !9
  br label %3732, !llvm.loop !23

3825:                                             ; preds = %3732
  %3826 = load i32, ptr %40, align 4, !tbaa !9
  %3827 = load i32, ptr %53, align 4, !tbaa !9
  %3828 = add nsw i32 %3826, %3827
  %3829 = load ptr, ptr %12, align 8, !tbaa !5
  %3830 = load i32, ptr %3829, align 4, !tbaa !9
  %3831 = icmp sle i32 %3828, %3830
  br i1 %3831, label %3832, label %3871

3832:                                             ; preds = %3825
  %3833 = load ptr, ptr %12, align 8, !tbaa !5
  %3834 = load i32, ptr %3833, align 4, !tbaa !9
  %3835 = load i32, ptr %40, align 4, !tbaa !9
  %3836 = sub nsw i32 %3834, %3835
  %3837 = load i32, ptr %53, align 4, !tbaa !9
  %3838 = sub nsw i32 %3836, %3837
  %3839 = add nsw i32 %3838, 1
  store i32 %3839, ptr %27, align 4, !tbaa !9
  %3840 = load i32, ptr %41, align 4, !tbaa !9
  %3841 = sub nsw i32 %3840, 1
  store i32 %3841, ptr %28, align 4, !tbaa !9
  %3842 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float -1.000000e+00, ptr %3842, align 4, !tbaa !13
  %3843 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float 0.000000e+00, ptr %3843, align 4, !tbaa !15
  %3844 = load ptr, ptr %15, align 8, !tbaa !5
  %3845 = load i32, ptr %40, align 4, !tbaa !9
  %3846 = load i32, ptr %53, align 4, !tbaa !9
  %3847 = add nsw i32 %3845, %3846
  %3848 = load i32, ptr %21, align 4, !tbaa !9
  %3849 = add nsw i32 %3847, %3848
  %3850 = sext i32 %3849 to i64
  %3851 = getelementptr inbounds %struct.complex, ptr %3844, i64 %3850
  %3852 = load ptr, ptr %16, align 8, !tbaa !5
  %3853 = load ptr, ptr %18, align 8, !tbaa !5
  %3854 = load i32, ptr %40, align 4, !tbaa !9
  %3855 = load i32, ptr %23, align 4, !tbaa !9
  %3856 = add nsw i32 %3854, %3855
  %3857 = sext i32 %3856 to i64
  %3858 = getelementptr inbounds %struct.complex, ptr %3853, i64 %3857
  %3859 = load ptr, ptr %19, align 8, !tbaa !5
  %3860 = load ptr, ptr %15, align 8, !tbaa !5
  %3861 = load i32, ptr %40, align 4, !tbaa !9
  %3862 = load i32, ptr %53, align 4, !tbaa !9
  %3863 = add nsw i32 %3861, %3862
  %3864 = load i32, ptr %40, align 4, !tbaa !9
  %3865 = load i32, ptr %21, align 4, !tbaa !9
  %3866 = mul nsw i32 %3864, %3865
  %3867 = add nsw i32 %3863, %3866
  %3868 = sext i32 %3867 to i64
  %3869 = getelementptr inbounds %struct.complex, ptr %3860, i64 %3868
  %3870 = load ptr, ptr %16, align 8, !tbaa !5
  call void @cgemm_(ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %27, ptr noundef %53, ptr noundef %28, ptr noundef %32, ptr noundef %3851, ptr noundef %3852, ptr noundef %3858, ptr noundef %3859, ptr noundef @c_b1, ptr noundef %3869, ptr noundef %3870)
  br label %3871

3871:                                             ; preds = %3832, %3825
  br label %3872

3872:                                             ; preds = %3871
  %3873 = load i32, ptr %26, align 4, !tbaa !9
  %3874 = load i32, ptr %40, align 4, !tbaa !9
  %3875 = add nsw i32 %3874, %3873
  store i32 %3875, ptr %40, align 4, !tbaa !9
  br label %3694, !llvm.loop !24

3876:                                             ; preds = %3707
  %3877 = load i32, ptr %41, align 4, !tbaa !9
  %3878 = sub nsw i32 %3877, 1
  store i32 %3878, ptr %40, align 4, !tbaa !9
  br label %3879

3879:                                             ; preds = %3953, %3876
  store i32 1, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %61, align 4, !tbaa !9
  %3880 = load i32, ptr %40, align 4, !tbaa !9
  store i32 %3880, ptr %55, align 4, !tbaa !9
  %3881 = load ptr, ptr %17, align 8, !tbaa !5
  %3882 = load i32, ptr %40, align 4, !tbaa !9
  %3883 = sext i32 %3882 to i64
  %3884 = getelementptr inbounds i32, ptr %3881, i64 %3883
  %3885 = load i32, ptr %3884, align 4, !tbaa !9
  store i32 %3885, ptr %62, align 4, !tbaa !9
  %3886 = load i32, ptr %62, align 4, !tbaa !9
  %3887 = icmp slt i32 %3886, 0
  br i1 %3887, label %3888, label %3899

3888:                                             ; preds = %3879
  %3889 = load i32, ptr %62, align 4, !tbaa !9
  %3890 = sub nsw i32 0, %3889
  store i32 %3890, ptr %62, align 4, !tbaa !9
  %3891 = load i32, ptr %40, align 4, !tbaa !9
  %3892 = add nsw i32 %3891, -1
  store i32 %3892, ptr %40, align 4, !tbaa !9
  %3893 = load ptr, ptr %17, align 8, !tbaa !5
  %3894 = load i32, ptr %40, align 4, !tbaa !9
  %3895 = sext i32 %3894 to i64
  %3896 = getelementptr inbounds i32, ptr %3893, i64 %3895
  %3897 = load i32, ptr %3896, align 4, !tbaa !9
  %3898 = sub nsw i32 0, %3897
  store i32 %3898, ptr %61, align 4, !tbaa !9
  store i32 2, ptr %47, align 4, !tbaa !9
  br label %3899

3899:                                             ; preds = %3888, %3879
  %3900 = load i32, ptr %40, align 4, !tbaa !9
  %3901 = add nsw i32 %3900, -1
  store i32 %3901, ptr %40, align 4, !tbaa !9
  %3902 = load i32, ptr %62, align 4, !tbaa !9
  %3903 = load i32, ptr %55, align 4, !tbaa !9
  %3904 = icmp ne i32 %3902, %3903
  br i1 %3904, label %3905, label %3923

3905:                                             ; preds = %3899
  %3906 = load i32, ptr %40, align 4, !tbaa !9
  %3907 = icmp sge i32 %3906, 1
  br i1 %3907, label %3908, label %3923

3908:                                             ; preds = %3905
  %3909 = load ptr, ptr %15, align 8, !tbaa !5
  %3910 = load i32, ptr %62, align 4, !tbaa !9
  %3911 = load i32, ptr %21, align 4, !tbaa !9
  %3912 = add nsw i32 %3910, %3911
  %3913 = sext i32 %3912 to i64
  %3914 = getelementptr inbounds %struct.complex, ptr %3909, i64 %3913
  %3915 = load ptr, ptr %16, align 8, !tbaa !5
  %3916 = load ptr, ptr %15, align 8, !tbaa !5
  %3917 = load i32, ptr %55, align 4, !tbaa !9
  %3918 = load i32, ptr %21, align 4, !tbaa !9
  %3919 = add nsw i32 %3917, %3918
  %3920 = sext i32 %3919 to i64
  %3921 = getelementptr inbounds %struct.complex, ptr %3916, i64 %3920
  %3922 = load ptr, ptr %16, align 8, !tbaa !5
  call void @cswap_(ptr noundef %40, ptr noundef %3914, ptr noundef %3915, ptr noundef %3921, ptr noundef %3922)
  br label %3923

3923:                                             ; preds = %3908, %3905, %3899
  %3924 = load i32, ptr %55, align 4, !tbaa !9
  %3925 = add nsw i32 %3924, -1
  store i32 %3925, ptr %55, align 4, !tbaa !9
  %3926 = load i32, ptr %47, align 4, !tbaa !9
  %3927 = icmp eq i32 %3926, 2
  br i1 %3927, label %3928, label %3950

3928:                                             ; preds = %3923
  %3929 = load i32, ptr %61, align 4, !tbaa !9
  %3930 = load i32, ptr %55, align 4, !tbaa !9
  %3931 = icmp ne i32 %3929, %3930
  br i1 %3931, label %3932, label %3950

3932:                                             ; preds = %3928
  %3933 = load i32, ptr %40, align 4, !tbaa !9
  %3934 = icmp sge i32 %3933, 1
  br i1 %3934, label %3935, label %3950

3935:                                             ; preds = %3932
  %3936 = load ptr, ptr %15, align 8, !tbaa !5
  %3937 = load i32, ptr %61, align 4, !tbaa !9
  %3938 = load i32, ptr %21, align 4, !tbaa !9
  %3939 = add nsw i32 %3937, %3938
  %3940 = sext i32 %3939 to i64
  %3941 = getelementptr inbounds %struct.complex, ptr %3936, i64 %3940
  %3942 = load ptr, ptr %16, align 8, !tbaa !5
  %3943 = load ptr, ptr %15, align 8, !tbaa !5
  %3944 = load i32, ptr %55, align 4, !tbaa !9
  %3945 = load i32, ptr %21, align 4, !tbaa !9
  %3946 = add nsw i32 %3944, %3945
  %3947 = sext i32 %3946 to i64
  %3948 = getelementptr inbounds %struct.complex, ptr %3943, i64 %3947
  %3949 = load ptr, ptr %16, align 8, !tbaa !5
  call void @cswap_(ptr noundef %40, ptr noundef %3941, ptr noundef %3942, ptr noundef %3948, ptr noundef %3949)
  br label %3950

3950:                                             ; preds = %3935, %3932, %3928, %3923
  %3951 = load i32, ptr %40, align 4, !tbaa !9
  %3952 = icmp sgt i32 %3951, 1
  br i1 %3952, label %3953, label %3954

3953:                                             ; preds = %3950
  br label %3879

3954:                                             ; preds = %3950
  %3955 = load i32, ptr %41, align 4, !tbaa !9
  %3956 = sub nsw i32 %3955, 1
  %3957 = load ptr, ptr %14, align 8, !tbaa !5
  store i32 %3956, ptr %3957, align 4, !tbaa !9
  br label %3958

3958:                                             ; preds = %3954, %2034
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 4, 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
  ret void
}

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

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

declare float @slamch_(ptr noundef) #3

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

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

declare void @cgemv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

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

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

declare void @clacgv_(ptr noundef, ptr noundef, ptr noundef) #3

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

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

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

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

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

declare void @cgemm_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

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

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

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

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


; 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
@c__1 = external hidden global i32, align 4
@.str.2 = external hidden unnamed_addr constant [13 x i8], align 1
@c_b1 = external hidden global %struct.complex, align 4
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1

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

.preheader1269:                                   ; preds = %10
  %35 = add i32 %30, 1
  %36 = add i32 %26, 1
  %37 = getelementptr inbounds i8, ptr %16, i64 4
  store i32 1, ptr %21, align 4, !tbaa !5
  %38 = load i32, ptr %2, align 4, !tbaa !5
  %.not11711531 = icmp slt i32 %38, 2
  %.pre14291532 = load i32, ptr %1, align 4, !tbaa !5
  %39 = icmp slt i32 %38, %.pre14291532
  %or.cond14781533 = select i1 %.not11711531, i1 %39, i1 false
  %40 = icmp slt i32 %.pre14291532, 1
  %or.cond14791534 = select i1 %or.cond14781533, i1 true, i1 %40
  br i1 %or.cond14791534, label %._crit_edge1540, label %.lr.ph1539

41:                                               ; preds = %10
  %42 = load i32, ptr %1, align 4, !tbaa !5
  %invariant.gep1311 = getelementptr i8, ptr %28, i64 8
  %invariant.gep1313 = getelementptr i8, ptr %32, i64 8
  %43 = add i32 %26, 1
  %44 = getelementptr inbounds i8, ptr %16, i64 4
  br label %45

45:                                               ; preds = %543, %41
  %46 = phi i32 [ %42, %41 ], [ %.pre, %543 ]
  %storemerge1184 = phi i32 [ %42, %41 ], [ %545, %543 ]
  %.01058 = phi i32 [ undef, %41 ], [ %.510631225, %543 ]
  %.01054 = phi i32 [ undef, %41 ], [ %.51227, %543 ]
  %.fr1193 = freeze i32 %storemerge1184
  store i32 %.fr1193, ptr %21, align 4, !tbaa !5
  %47 = load i32, ptr %2, align 4, !tbaa !5
  %48 = add nsw i32 %47, %.fr1193
  %49 = sub i32 %48, %46
  %reass.sub = sub i32 %46, %47
  %50 = add i32 %reass.sub, 1
  %.not1185 = icmp sgt i32 %.fr1193, %50
  br i1 %.not1185, label %54, label %51

51:                                               ; preds = %45
  %52 = icmp slt i32 %47, %46
  %53 = icmp slt i32 %.fr1193, 1
  %or.cond = or i1 %53, %52
  br i1 %or.cond, label %546, label %55

54:                                               ; preds = %45
  %.old1 = icmp slt i32 %.fr1193, 1
  br i1 %.old1, label %546, label %55

55:                                               ; preds = %51, %54
  %56 = icmp ugt i32 %.fr1193, 1
  br i1 %56, label %57, label %._crit_edge1455

._crit_edge1455:                                  ; preds = %55
  %.pre1461 = mul nsw i32 %49, %30
  br label %63

57:                                               ; preds = %55
  %58 = add nsw i32 %.fr1193, -1
  store i32 %58, ptr %11, align 4, !tbaa !5
  %59 = mul nsw i32 %.fr1193, %26
  %60 = sext i32 %59 to i64
  %gep1312 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %60
  %61 = mul nsw i32 %49, %30
  %62 = sext i32 %61 to i64
  %gep1314 = getelementptr %struct.complex, ptr %invariant.gep1313, i64 %62
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %gep1312, ptr noundef nonnull @c__1, ptr noundef %gep1314, ptr noundef nonnull @c__1) #6
  %.pre1416 = load i32, ptr %21, align 4, !tbaa !5
  %.pre1417 = load i32, ptr %1, align 4, !tbaa !5
  br label %63

63:                                               ; preds = %._crit_edge1455, %57
  %.pre-phi1462 = phi i32 [ %.pre1461, %._crit_edge1455 ], [ %61, %57 ]
  %64 = phi i32 [ %46, %._crit_edge1455 ], [ %.pre1417, %57 ]
  %65 = phi i32 [ 1, %._crit_edge1455 ], [ %.pre1416, %57 ]
  %66 = add nsw i32 %65, %.pre-phi1462
  %67 = mul i32 %65, %43
  store i32 %67, ptr %12, align 4, !tbaa !5
  %68 = sext i32 %67 to i64
  %69 = getelementptr inbounds %struct.complex, ptr %28, i64 %68
  %70 = load float, ptr %69, align 4, !tbaa !9
  %71 = sext i32 %66 to i64
  %72 = getelementptr inbounds %struct.complex, ptr %32, i64 %71
  store float %70, ptr %72, align 4, !tbaa !9
  %73 = getelementptr inbounds %struct.complex, ptr %32, i64 %71, i32 1
  store float 0.000000e+00, ptr %73, align 4, !tbaa !12
  %74 = icmp slt i32 %65, %64
  br i1 %74, label %75, label %90

75:                                               ; preds = %63
  %76 = sub nsw i32 %64, %65
  store i32 %76, ptr %11, align 4, !tbaa !5
  store <2 x float> <float -1.000000e+00, float 0.000000e+00>, ptr %16, align 8, !tbaa !13
  %77 = add nsw i32 %65, 1
  %78 = mul nsw i32 %77, %26
  %79 = sext i32 %78 to i64
  %gep1316 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %79
  %80 = add nsw i32 %49, 1
  %81 = mul nsw i32 %80, %30
  %82 = add nsw i32 %65, %81
  %83 = sext i32 %82 to i64
  %84 = getelementptr inbounds %struct.complex, ptr %32, i64 %83
  %85 = sext i32 %.pre-phi1462 to i64
  %gep1318 = getelementptr %struct.complex, ptr %invariant.gep1313, i64 %85
  call void @cgemv_(ptr noundef nonnull @.str.2, ptr noundef nonnull %21, ptr noundef nonnull %11, ptr noundef nonnull %16, ptr noundef %gep1316, ptr noundef nonnull %5, ptr noundef %84, ptr noundef nonnull %8, ptr noundef nonnull @c_b1, ptr noundef %gep1318, ptr noundef nonnull @c__1) #6
  %86 = load i32, ptr %21, align 4, !tbaa !5
  %87 = add nsw i32 %86, %.pre-phi1462
  store i32 %87, ptr %12, align 4, !tbaa !5
  %88 = sext i32 %87 to i64
  %89 = getelementptr inbounds %struct.complex, ptr %32, i64 %88, i32 1
  store float 0.000000e+00, ptr %89, align 4, !tbaa !12
  %.phi.trans.insert = getelementptr inbounds %struct.complex, ptr %32, i64 %88
  %.pre1447 = load float, ptr %.phi.trans.insert, align 4, !tbaa !9
  br label %90

90:                                               ; preds = %75, %63
  %.pre-phi1452 = phi i32 [ %87, %75 ], [ %66, %63 ]
  %91 = phi float [ %.pre1447, %75 ], [ %70, %63 ]
  %92 = phi i32 [ %86, %75 ], [ %65, %63 ]
  store i32 %.pre-phi1452, ptr %11, align 4, !tbaa !5
  %93 = fcmp oge float %91, 0.000000e+00
  %94 = fneg float %91
  %95 = select i1 %93, float %91, float %94
  %96 = icmp sgt i32 %92, 1
  br i1 %96, label %97, label %113

97:                                               ; preds = %90
  %98 = add nsw i32 %92, -1
  store i32 %98, ptr %11, align 4, !tbaa !5
  %99 = sext i32 %.pre-phi1462 to i64
  %gep1320 = getelementptr %struct.complex, ptr %invariant.gep1313, i64 %99
  %100 = call i32 @icamax_(ptr noundef nonnull %11, ptr noundef %gep1320, ptr noundef nonnull @c__1) #6
  %101 = add nsw i32 %100, %.pre-phi1462
  store i32 %101, ptr %11, align 4, !tbaa !5
  %102 = sext i32 %101 to i64
  %103 = getelementptr inbounds %struct.complex, ptr %32, i64 %102
  %104 = load float, ptr %103, align 4, !tbaa !9
  %105 = fcmp oge float %104, 0.000000e+00
  %106 = fneg float %104
  %107 = select i1 %105, float %104, float %106
  %108 = call <2 x float> @Cf(ptr noundef nonnull %103)
  %.sroa.040.4.vec.extract = extractelement <2 x float> %108, i64 1
  %109 = fcmp oge float %.sroa.040.4.vec.extract, 0.000000e+00
  %110 = fneg float %.sroa.040.4.vec.extract
  %111 = select i1 %109, float %.sroa.040.4.vec.extract, float %110
  %112 = fadd float %107, %111
  br label %113

113:                                              ; preds = %90, %97
  %.01102 = phi float [ %112, %97 ], [ 0.000000e+00, %90 ]
  %.11055 = phi i32 [ %100, %97 ], [ %.01054, %90 ]
  %114 = fcmp oge float %95, %.01102
  %115 = select i1 %114, float %95, float %.01102
  %116 = fcmp oeq float %115, 0.000000e+00
  br i1 %116, label %117, label %136

117:                                              ; preds = %113
  %118 = load i32, ptr %9, align 4, !tbaa !5
  %119 = icmp eq i32 %118, 0
  %120 = load i32, ptr %21, align 4, !tbaa !5
  br i1 %119, label %121, label %thread-pre-split

121:                                              ; preds = %117
  store i32 %120, ptr %9, align 4, !tbaa !5
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %117, %121
  %122 = mul i32 %120, %43
  store i32 %122, ptr %11, align 4, !tbaa !5
  %123 = add nsw i32 %120, %.pre-phi1462
  store i32 %123, ptr %12, align 4, !tbaa !5
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds %struct.complex, ptr %32, i64 %124
  %126 = load float, ptr %125, align 4, !tbaa !9
  %127 = sext i32 %122 to i64
  %128 = getelementptr inbounds %struct.complex, ptr %28, i64 %127
  store float %126, ptr %128, align 4, !tbaa !9
  %129 = getelementptr inbounds %struct.complex, ptr %28, i64 %127, i32 1
  store float 0.000000e+00, ptr %129, align 4, !tbaa !12
  %130 = icmp sgt i32 %120, 1
  br i1 %130, label %131, label %505

131:                                              ; preds = %thread-pre-split
  %132 = add nsw i32 %120, -1
  store i32 %132, ptr %11, align 4, !tbaa !5
  %133 = sext i32 %.pre-phi1462 to i64
  %gep1344 = getelementptr %struct.complex, ptr %invariant.gep1313, i64 %133
  %134 = mul nsw i32 %120, %26
  %135 = sext i32 %134 to i64
  %gep1346 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %135
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %gep1344, ptr noundef nonnull @c__1, ptr noundef %gep1346, ptr noundef nonnull @c__1) #6
  br label %505

136:                                              ; preds = %113
  %137 = fmul float %.01102, 0x3FE47E0F60000000
  %138 = fcmp olt float %95, %137
  br i1 %138, label %.preheader1272, label %145

.preheader1272:                                   ; preds = %136
  %139 = add nsw i32 %49, -1
  %140 = mul nsw i32 %139, %30
  %141 = sext i32 %140 to i64
  %gep1291 = getelementptr %struct.complex, ptr %invariant.gep1313, i64 %141
  %142 = add nsw i32 %49, 1
  %143 = mul nsw i32 %142, %30
  %144 = sext i32 %.pre-phi1462 to i64
  %gep1301 = getelementptr %struct.complex, ptr %invariant.gep1313, i64 %144
  br label %147

145:                                              ; preds = %136
  %146 = load i32, ptr %21, align 4, !tbaa !5
  br label %.thread

147:                                              ; preds = %.preheader1272, %232
  %.11103 = phi float [ %.11113, %232 ], [ %.01102, %.preheader1272 ]
  %.01070 = phi i32 [ %.21056, %232 ], [ %.fr1193, %.preheader1272 ]
  %.11059 = phi i32 [ %.31061, %232 ], [ %.01058, %.preheader1272 ]
  %.21056 = phi i32 [ %.31061, %232 ], [ %.11055, %.preheader1272 ]
  %148 = icmp sgt i32 %.21056, 1
  br i1 %148, label %149, label %153

149:                                              ; preds = %147
  %150 = add nsw i32 %.21056, -1
  store i32 %150, ptr %11, align 4, !tbaa !5
  %151 = mul nsw i32 %.21056, %26
  %152 = sext i32 %151 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %152
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1291, ptr noundef nonnull @c__1) #6
  br label %153

153:                                              ; preds = %149, %147
  %154 = add nsw i32 %.21056, %140
  %155 = mul i32 %.21056, %43
  store i32 %155, ptr %12, align 4, !tbaa !5
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds %struct.complex, ptr %28, i64 %156
  %158 = load float, ptr %157, align 4, !tbaa !9
  %159 = sext i32 %154 to i64
  %160 = getelementptr inbounds %struct.complex, ptr %32, i64 %159
  store float %158, ptr %160, align 4, !tbaa !9
  %161 = getelementptr inbounds %struct.complex, ptr %32, i64 %159, i32 1
  store float 0.000000e+00, ptr %161, align 4, !tbaa !12
  %162 = load i32, ptr %21, align 4, !tbaa !5
  %163 = sub nsw i32 %162, %.21056
  store i32 %163, ptr %11, align 4, !tbaa !5
  %164 = add nsw i32 %.21056, 1
  %165 = mul nsw i32 %164, %26
  %166 = add nsw i32 %165, %.21056
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds %struct.complex, ptr %28, i64 %167
  %169 = add nsw i32 %164, %140
  %170 = sext i32 %169 to i64
  %171 = getelementptr inbounds %struct.complex, ptr %32, i64 %170
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %168, ptr noundef nonnull %5, ptr noundef %171, ptr noundef nonnull @c__1) #6
  %172 = load i32, ptr %21, align 4, !tbaa !5
  %173 = sub nsw i32 %172, %.21056
  store i32 %173, ptr %11, align 4, !tbaa !5
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %171, ptr noundef nonnull @c__1) #6
  %174 = load i32, ptr %21, align 4, !tbaa !5
  %175 = load i32, ptr %1, align 4, !tbaa !5
  %176 = icmp slt i32 %174, %175
  br i1 %176, label %177, label %185

177:                                              ; preds = %153
  %178 = sub nsw i32 %175, %174
  store i32 %178, ptr %11, align 4, !tbaa !5
  store <2 x float> <float -1.000000e+00, float 0.000000e+00>, ptr %16, align 8, !tbaa !13
  %179 = add nsw i32 %174, 1
  %180 = mul nsw i32 %179, %26
  %181 = sext i32 %180 to i64
  %gep1293 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %181
  %182 = add nsw i32 %.21056, %143
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds %struct.complex, ptr %32, i64 %183
  call void @cgemv_(ptr noundef nonnull @.str.2, ptr noundef nonnull %21, ptr noundef nonnull %11, ptr noundef nonnull %16, ptr noundef %gep1293, ptr noundef nonnull %5, ptr noundef %184, ptr noundef nonnull %8, ptr noundef nonnull @c_b1, ptr noundef %gep1291, ptr noundef nonnull @c__1) #6
  store i32 %154, ptr %12, align 4, !tbaa !5
  store float 0.000000e+00, ptr %161, align 4, !tbaa !12
  %.pre1418 = load i32, ptr %21, align 4, !tbaa !5
  br label %185

185:                                              ; preds = %177, %153
  %186 = phi i32 [ %.pre1418, %177 ], [ %174, %153 ]
  %.not1186 = icmp eq i32 %.21056, %186
  br i1 %.not1186, label %203, label %187

187:                                              ; preds = %185
  %188 = sub nsw i32 %186, %.21056
  store i32 %188, ptr %11, align 4, !tbaa !5
  %189 = call i32 @icamax_(ptr noundef nonnull %11, ptr noundef nonnull %171, ptr noundef nonnull @c__1) #6
  %190 = add nsw i32 %189, %.21056
  %191 = add nsw i32 %190, %140
  store i32 %191, ptr %11, align 4, !tbaa !5
  %192 = sext i32 %191 to i64
  %193 = getelementptr inbounds %struct.complex, ptr %32, i64 %192
  %194 = load float, ptr %193, align 4, !tbaa !9
  %195 = fcmp oge float %194, 0.000000e+00
  %196 = fneg float %194
  %197 = select i1 %195, float %194, float %196
  %198 = call <2 x float> @Cf(ptr noundef nonnull %193)
  %.sroa.039.4.vec.extract = extractelement <2 x float> %198, i64 1
  %199 = fcmp oge float %.sroa.039.4.vec.extract, 0.000000e+00
  %200 = fneg float %.sroa.039.4.vec.extract
  %201 = select i1 %199, float %.sroa.039.4.vec.extract, float %200
  %202 = fadd float %197, %201
  br label %203

203:                                              ; preds = %185, %187
  %.01112 = phi float [ %202, %187 ], [ 0.000000e+00, %185 ]
  %.21060 = phi i32 [ %190, %187 ], [ %.11059, %185 ]
  br i1 %148, label %204, label %221

204:                                              ; preds = %203
  %205 = add nsw i32 %.21056, -1
  store i32 %205, ptr %11, align 4, !tbaa !5
  %206 = call i32 @icamax_(ptr noundef nonnull %11, ptr noundef %gep1291, ptr noundef nonnull @c__1) #6
  %207 = add nsw i32 %206, %140
  store i32 %207, ptr %11, align 4, !tbaa !5
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds %struct.complex, ptr %32, i64 %208
  %210 = load float, ptr %209, align 4, !tbaa !9
  %211 = fcmp oge float %210, 0.000000e+00
  %212 = fneg float %210
  %213 = select i1 %211, float %210, float %212
  %214 = call <2 x float> @Cf(ptr noundef nonnull %209)
  %.sroa.038.4.vec.extract = extractelement <2 x float> %214, i64 1
  %215 = fcmp oge float %.sroa.038.4.vec.extract, 0.000000e+00
  %216 = fneg float %.sroa.038.4.vec.extract
  %217 = select i1 %215, float %.sroa.038.4.vec.extract, float %216
  %218 = fadd float %213, %217
  %219 = fcmp ogt float %218, %.01112
  br i1 %219, label %220, label %221

220:                                              ; preds = %204
  br label %221

221:                                              ; preds = %204, %220, %203
  %.11113 = phi float [ %218, %220 ], [ %.01112, %204 ], [ %.01112, %203 ]
  %.31061 = phi i32 [ %206, %220 ], [ %.21060, %204 ], [ %.21060, %203 ]
  store i32 %154, ptr %11, align 4, !tbaa !5
  %222 = load float, ptr %160, align 4, !tbaa !9
  %223 = fcmp oge float %222, 0.000000e+00
  %224 = fneg float %222
  %225 = select i1 %223, float %222, float %224
  %226 = fmul float %.11113, 0x3FE47E0F60000000
  %227 = fcmp olt float %225, %226
  br i1 %227, label %229, label %228

228:                                              ; preds = %221
  call void @ccopy_(ptr noundef nonnull %21, ptr noundef %gep1291, ptr noundef nonnull @c__1, ptr noundef %gep1301, ptr noundef nonnull @c__1) #6
  br label %.thread

229:                                              ; preds = %221
  %230 = icmp ne i32 %.01070, %.31061
  %231 = fcmp ugt float %.11113, %.11103
  %or.cond1202 = and i1 %231, %230
  br i1 %or.cond1202, label %232, label %.thread

232:                                              ; preds = %229
  call void @ccopy_(ptr noundef nonnull %21, ptr noundef %gep1291, ptr noundef nonnull @c__1, ptr noundef %gep1301, ptr noundef nonnull @c__1) #6
  br label %147

.thread:                                          ; preds = %229, %228, %145
  %.31095 = phi i32 [ %146, %145 ], [ %.21056, %228 ], [ %.21056, %229 ]
  %233 = phi i1 [ true, %145 ], [ true, %228 ], [ false, %229 ]
  %.21080.neg = phi i32 [ 0, %145 ], [ 0, %228 ], [ -1, %229 ]
  %.21072 = phi i32 [ %.fr1193, %145 ], [ %.01070, %228 ], [ %.01070, %229 ]
  %.41062 = phi i32 [ %.01058, %145 ], [ %.31061, %228 ], [ %.31061, %229 ]
  %.4 = phi i32 [ %.11055, %145 ], [ %.21056, %228 ], [ %.21056, %229 ]
  %234 = load i32, ptr %21, align 4
  %235 = add i32 %.21080.neg, %234
  store i32 %235, ptr %25, align 4, !tbaa !5
  %236 = load i32, ptr %2, align 4, !tbaa !5
  %237 = add nsw i32 %236, %235
  %238 = load i32, ptr %1, align 4, !tbaa !5
  %239 = sub i32 %237, %238
  %.not1188 = icmp eq i32 %.21072, %234
  %or.cond1203 = select i1 %233, i1 true, i1 %.not1188
  br i1 %or.cond1203, label %297, label %240

240:                                              ; preds = %.thread
  %241 = mul nsw i32 %.21072, %26
  %242 = add nsw i32 %241, %.21072
  %243 = mul i32 %234, %43
  store i32 %243, ptr %12, align 4, !tbaa !5
  %244 = sext i32 %243 to i64
  %245 = getelementptr inbounds %struct.complex, ptr %28, i64 %244
  %246 = load float, ptr %245, align 4, !tbaa !9
  %247 = sext i32 %242 to i64
  %248 = getelementptr inbounds %struct.complex, ptr %28, i64 %247
  store float %246, ptr %248, align 4, !tbaa !9
  %249 = getelementptr inbounds %struct.complex, ptr %28, i64 %247, i32 1
  store float 0.000000e+00, ptr %249, align 4, !tbaa !12
  %250 = xor i32 %.21072, -1
  %251 = add i32 %234, %250
  store i32 %251, ptr %11, align 4, !tbaa !5
  %252 = add nsw i32 %.21072, 1
  %253 = mul nsw i32 %234, %26
  %254 = add nsw i32 %253, %252
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds %struct.complex, ptr %28, i64 %255
  %257 = mul nsw i32 %252, %26
  %258 = add nsw i32 %257, %.21072
  %259 = sext i32 %258 to i64
  %260 = getelementptr inbounds %struct.complex, ptr %28, i64 %259
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %256, ptr noundef nonnull @c__1, ptr noundef %260, ptr noundef nonnull %5) #6
  %261 = load i32, ptr %21, align 4, !tbaa !5
  %262 = add i32 %261, %250
  store i32 %262, ptr %11, align 4, !tbaa !5
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %260, ptr noundef nonnull %5) #6
  %263 = icmp sgt i32 %.21072, 1
  br i1 %263, label %264, label %270

264:                                              ; preds = %240
  %265 = add nsw i32 %.21072, -1
  store i32 %265, ptr %11, align 4, !tbaa !5
  %266 = load i32, ptr %21, align 4, !tbaa !5
  %267 = mul nsw i32 %266, %26
  %268 = sext i32 %267 to i64
  %gep1326 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %268
  %269 = sext i32 %241 to i64
  %gep1328 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %269
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %gep1326, ptr noundef nonnull @c__1, ptr noundef %gep1328, ptr noundef nonnull @c__1) #6
  br label %270

270:                                              ; preds = %264, %240
  %271 = load i32, ptr %21, align 4, !tbaa !5
  %272 = load i32, ptr %1, align 4, !tbaa !5
  %273 = icmp slt i32 %271, %272
  br i1 %273, label %274, label %284

274:                                              ; preds = %270
  %275 = sub nsw i32 %272, %271
  store i32 %275, ptr %11, align 4, !tbaa !5
  %276 = add nsw i32 %271, 1
  %277 = mul nsw i32 %276, %26
  %278 = add nsw i32 %277, %271
  %279 = sext i32 %278 to i64
  %280 = getelementptr inbounds %struct.complex, ptr %28, i64 %279
  %281 = add nsw i32 %277, %.21072
  %282 = sext i32 %281 to i64
  %283 = getelementptr inbounds %struct.complex, ptr %28, i64 %282
  call void @cswap_(ptr noundef nonnull %11, ptr noundef %280, ptr noundef nonnull %5, ptr noundef %283, ptr noundef nonnull %5) #6
  %.pre1419 = load i32, ptr %1, align 4, !tbaa !5
  %.pre1420 = load i32, ptr %21, align 4, !tbaa !5
  br label %284

284:                                              ; preds = %274, %270
  %285 = phi i32 [ %.pre1420, %274 ], [ %271, %270 ]
  %286 = phi i32 [ %.pre1419, %274 ], [ %272, %270 ]
  %287 = load i32, ptr %25, align 4, !tbaa !5
  %288 = add i32 %286, 1
  %289 = sub i32 %288, %287
  store i32 %289, ptr %11, align 4, !tbaa !5
  %290 = mul nsw i32 %239, %30
  %291 = add nsw i32 %285, %290
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds %struct.complex, ptr %32, i64 %292
  %294 = add nsw i32 %290, %.21072
  %295 = sext i32 %294 to i64
  %296 = getelementptr inbounds %struct.complex, ptr %32, i64 %295
  call void @cswap_(ptr noundef nonnull %11, ptr noundef %293, ptr noundef nonnull %8, ptr noundef %296, ptr noundef nonnull %8) #6
  %.pre1421 = load i32, ptr %25, align 4, !tbaa !5
  br label %297

297:                                              ; preds = %284, %.thread
  %298 = phi i32 [ %.pre1421, %284 ], [ %235, %.thread ]
  %.not1189 = icmp eq i32 %.31095, %298
  br i1 %.not1189, label %356, label %299

299:                                              ; preds = %297
  %300 = mul nsw i32 %.31095, %26
  %301 = add nsw i32 %300, %.31095
  %302 = mul i32 %298, %43
  store i32 %302, ptr %12, align 4, !tbaa !5
  %303 = sext i32 %302 to i64
  %304 = getelementptr inbounds %struct.complex, ptr %28, i64 %303
  %305 = load float, ptr %304, align 4, !tbaa !9
  %306 = sext i32 %301 to i64
  %307 = getelementptr inbounds %struct.complex, ptr %28, i64 %306
  store float %305, ptr %307, align 4, !tbaa !9
  %308 = getelementptr inbounds %struct.complex, ptr %28, i64 %306, i32 1
  store float 0.000000e+00, ptr %308, align 4, !tbaa !12
  %309 = xor i32 %.31095, -1
  %310 = add i32 %298, %309
  store i32 %310, ptr %11, align 4, !tbaa !5
  %311 = add nsw i32 %.31095, 1
  %312 = mul nsw i32 %298, %26
  %313 = add nsw i32 %312, %311
  %314 = sext i32 %313 to i64
  %315 = getelementptr inbounds %struct.complex, ptr %28, i64 %314
  %316 = mul nsw i32 %311, %26
  %317 = add nsw i32 %316, %.31095
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds %struct.complex, ptr %28, i64 %318
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %315, ptr noundef nonnull @c__1, ptr noundef %319, ptr noundef nonnull %5) #6
  %320 = load i32, ptr %25, align 4, !tbaa !5
  %321 = add i32 %320, %309
  store i32 %321, ptr %11, align 4, !tbaa !5
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %319, ptr noundef nonnull %5) #6
  %322 = icmp sgt i32 %.31095, 1
  br i1 %322, label %323, label %329

323:                                              ; preds = %299
  %324 = add nsw i32 %.31095, -1
  store i32 %324, ptr %11, align 4, !tbaa !5
  %325 = load i32, ptr %25, align 4, !tbaa !5
  %326 = mul nsw i32 %325, %26
  %327 = sext i32 %326 to i64
  %gep1330 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %327
  %328 = sext i32 %300 to i64
  %gep1332 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %328
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %gep1330, ptr noundef nonnull @c__1, ptr noundef %gep1332, ptr noundef nonnull @c__1) #6
  br label %329

329:                                              ; preds = %323, %299
  %330 = load i32, ptr %21, align 4, !tbaa !5
  %331 = load i32, ptr %1, align 4, !tbaa !5
  %332 = icmp slt i32 %330, %331
  br i1 %332, label %333, label %344

333:                                              ; preds = %329
  %334 = sub nsw i32 %331, %330
  store i32 %334, ptr %11, align 4, !tbaa !5
  %335 = load i32, ptr %25, align 4, !tbaa !5
  %336 = add nsw i32 %330, 1
  %337 = mul nsw i32 %336, %26
  %338 = add nsw i32 %335, %337
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds %struct.complex, ptr %28, i64 %339
  %341 = add nsw i32 %337, %.31095
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds %struct.complex, ptr %28, i64 %342
  call void @cswap_(ptr noundef nonnull %11, ptr noundef %340, ptr noundef nonnull %5, ptr noundef %343, ptr noundef nonnull %5) #6
  %.pre1422 = load i32, ptr %1, align 4, !tbaa !5
  br label %344

344:                                              ; preds = %333, %329
  %345 = phi i32 [ %.pre1422, %333 ], [ %331, %329 ]
  %346 = load i32, ptr %25, align 4, !tbaa !5
  %347 = add i32 %345, 1
  %348 = sub i32 %347, %346
  store i32 %348, ptr %11, align 4, !tbaa !5
  %349 = mul nsw i32 %239, %30
  %350 = add nsw i32 %346, %349
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds %struct.complex, ptr %32, i64 %351
  %353 = add nsw i32 %349, %.31095
  %354 = sext i32 %353 to i64
  %355 = getelementptr inbounds %struct.complex, ptr %32, i64 %354
  call void @cswap_(ptr noundef nonnull %11, ptr noundef %352, ptr noundef nonnull %8, ptr noundef %355, ptr noundef nonnull %8) #6
  br label %356

356:                                              ; preds = %344, %297
  br i1 %233, label %357, label %399

357:                                              ; preds = %356
  %358 = sext i32 %.pre-phi1462 to i64
  %gep1338 = getelementptr %struct.complex, ptr %invariant.gep1313, i64 %358
  %359 = load i32, ptr %21, align 4, !tbaa !5
  %360 = mul nsw i32 %359, %26
  %361 = sext i32 %360 to i64
  %gep1340 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %361
  call void @ccopy_(ptr noundef nonnull %21, ptr noundef %gep1338, ptr noundef nonnull @c__1, ptr noundef %gep1340, ptr noundef nonnull @c__1) #6
  %362 = load i32, ptr %21, align 4, !tbaa !5
  %363 = icmp sgt i32 %362, 1
  br i1 %363, label %364, label %505

364:                                              ; preds = %357
  %365 = mul i32 %362, %43
  %366 = sext i32 %365 to i64
  %367 = getelementptr inbounds %struct.complex, ptr %28, i64 %366
  %368 = load float, ptr %367, align 4, !tbaa !9
  %369 = fcmp oge float %368, 0.000000e+00
  %370 = fneg float %368
  %371 = select i1 %369, float %368, float %370
  %372 = fcmp ult float %371, %33
  br i1 %372, label %.lr.ph1307, label %373

373:                                              ; preds = %364
  %374 = fdiv float 1.000000e+00, %368
  store float %374, ptr %22, align 4, !tbaa !13
  %375 = add nsw i32 %362, -1
  store i32 %375, ptr %11, align 4, !tbaa !5
  %376 = mul nsw i32 %362, %26
  %377 = sext i32 %376 to i64
  %gep1342 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %377
  call void @csscal_(ptr noundef nonnull %11, ptr noundef nonnull %22, ptr noundef %gep1342, ptr noundef nonnull @c__1) #6
  %.pre1425 = load i32, ptr %21, align 4, !tbaa !5
  br label %398

.lr.ph1307:                                       ; preds = %364
  %378 = mul nsw i32 %362, %26
  %379 = sext i32 %378 to i64
  %wide.trip.count = zext nneg i32 %362 to i64
  %380 = add nsw i64 %wide.trip.count, -1
  %min.iters.check = icmp ult i32 %362, 5
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

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

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %381 = add nsw i64 %offset.idx, %379
  %382 = getelementptr inbounds %struct.complex, ptr %28, i64 %381
  %wide.vec = load <8 x float>, ptr %382, align 4, !tbaa !13
  %strided.vec = shufflevector <8 x float> %wide.vec, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1543 = shufflevector <8 x float> %wide.vec, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %383 = fdiv <4 x float> %strided.vec, %broadcast.splat
  %384 = fdiv <4 x float> %strided.vec1543, %broadcast.splat
  %385 = getelementptr inbounds %struct.complex, ptr %28, i64 %381
  %interleaved.vec = shufflevector <4 x float> %383, <4 x float> %384, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec, ptr %385, align 4, !tbaa !13
  %index.next = add nuw i64 %index, 4
  %386 = icmp eq i64 %index.next, %n.vec
  br i1 %386, label %middle.block, label %vector.body, !llvm.loop !14

middle.block:                                     ; preds = %vector.body
  %387 = add i64 %index, 4
  %388 = add nsw i64 %387, %379
  %cmp.n = icmp eq i64 %380, %n.vec
  %389 = shufflevector <4 x float> %383, <4 x float> %384, <2 x i32> <i32 3, i32 7>
  br i1 %cmp.n, label %.loopexit1270, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph1307
  %indvars.iv.ph = phi i64 [ 1, %.lr.ph1307 ], [ %ind.end, %middle.block ]
  %390 = insertelement <2 x float> poison, float %368, i64 0
  %391 = shufflevector <2 x float> %390, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %scalar.ph ], [ %indvars.iv.ph, %scalar.ph.preheader ]
  %392 = add nsw i64 %indvars.iv, %379
  %393 = getelementptr inbounds %struct.complex, ptr %28, i64 %392
  %394 = load <2 x float>, ptr %393, align 4, !tbaa !13
  %395 = fdiv <2 x float> %394, %391
  store <2 x float> %395, ptr %393, align 4, !tbaa !13
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit1270, label %scalar.ph, !llvm.loop !18

.loopexit1270:                                    ; preds = %scalar.ph, %middle.block
  %.lcssa1528 = phi i64 [ %388, %middle.block ], [ %392, %scalar.ph ]
  %396 = phi <2 x float> [ %389, %middle.block ], [ %395, %scalar.ph ]
  %397 = trunc nsw i64 %.lcssa1528 to i32
  store i32 %397, ptr %12, align 4, !tbaa !5
  store <2 x float> %396, ptr %16, align 8, !tbaa !13
  store i32 %397, ptr %13, align 4, !tbaa !5
  br label %398

398:                                              ; preds = %.loopexit1270, %373
  %.pre-phi1454.in = phi i32 [ %362, %.loopexit1270 ], [ %.pre1425, %373 ]
  %.pre-phi1454 = add nsw i32 %.pre-phi1454.in, -1
  store i32 %.pre-phi1454, ptr %11, align 4, !tbaa !5
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %gep1338, ptr noundef nonnull @c__1) #6
  br label %505

399:                                              ; preds = %356
  %400 = load i32, ptr %21, align 4, !tbaa !5
  %401 = icmp sgt i32 %400, 2
  br i1 %401, label %402, label %..loopexit1271_crit_edge

..loopexit1271_crit_edge:                         ; preds = %399
  %.pre1463 = add nsw i32 %49, -1
  %.pre1465 = mul nsw i32 %.pre1463, %30
  br label %.loopexit1271

402:                                              ; preds = %399
  %403 = add i32 %.pre-phi1462, -1
  %404 = add i32 %403, %400
  store i32 %404, ptr %11, align 4, !tbaa !5
  %405 = sext i32 %404 to i64
  %406 = getelementptr inbounds %struct.complex, ptr %32, i64 %405
  %407 = load <2 x float>, ptr %406, align 4, !tbaa !13
  store <2 x float> %407, ptr %23, align 8, !tbaa !13
  %408 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.037.0.vec.extract = extractelement <2 x float> %408, i64 0
  %.sroa.037.4.vec.extract = extractelement <2 x float> %408, i64 1
  %409 = fneg float %.sroa.037.4.vec.extract
  %410 = call ptr @_pCf(ptr noundef nonnull %17)
  %411 = getelementptr inbounds i8, ptr %410, i64 4
  store float %.sroa.037.0.vec.extract, ptr %410, align 4
  store float %409, ptr %411, align 4
  %412 = load i32, ptr %21, align 4, !tbaa !5
  %413 = add nsw i32 %412, %.pre-phi1462
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds %struct.complex, ptr %32, i64 %414
  %416 = call <2 x float> @Cf(ptr noundef %415)
  %.sroa.036.0.vec.extract = extractelement <2 x float> %416, i64 0
  %.sroa.036.4.vec.extract = extractelement <2 x float> %416, i64 1
  %417 = call <2 x float> @Cf(ptr noundef nonnull %17)
  %.sroa.035.0.vec.extract = extractelement <2 x float> %417, i64 0
  %.sroa.035.4.vec.extract = extractelement <2 x float> %417, i64 1
  %418 = call <2 x float> @__divsc3(float noundef %.sroa.036.0.vec.extract, float noundef %.sroa.036.4.vec.extract, float noundef %.sroa.035.0.vec.extract, float noundef %.sroa.035.4.vec.extract) #6
  %419 = call ptr @_pCf(ptr noundef nonnull %16)
  store <2 x float> %418, ptr %419, align 4
  %420 = load float, ptr %16, align 8, !tbaa !9
  %421 = load float, ptr %44, align 4, !tbaa !12
  %422 = load i32, ptr %21, align 4, !tbaa !5
  %423 = add nsw i32 %49, -1
  %424 = mul nsw i32 %423, %30
  %425 = add i32 %424, -1
  %426 = add i32 %425, %422
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds %struct.complex, ptr %32, i64 %427
  %429 = call <2 x float> @Cf(ptr noundef %428)
  %.sroa.033.0.vec.extract = extractelement <2 x float> %429, i64 0
  %.sroa.033.4.vec.extract = extractelement <2 x float> %429, i64 1
  %430 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.032.0.vec.extract = extractelement <2 x float> %430, i64 0
  %.sroa.032.4.vec.extract = extractelement <2 x float> %430, i64 1
  %431 = call <2 x float> @__divsc3(float noundef %.sroa.033.0.vec.extract, float noundef %.sroa.033.4.vec.extract, float noundef %.sroa.032.0.vec.extract, float noundef %.sroa.032.4.vec.extract) #6
  %432 = call ptr @_pCf(ptr noundef nonnull %16)
  store <2 x float> %431, ptr %432, align 4
  %433 = fneg float %421
  %434 = load <2 x float>, ptr %16, align 8, !tbaa !13
  %435 = insertelement <2 x float> poison, float %421, i64 0
  %436 = insertelement <2 x float> %435, float %433, i64 1
  %437 = fmul <2 x float> %434, %436
  %438 = shufflevector <2 x float> %437, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %439 = insertelement <2 x float> poison, float %420, i64 0
  %440 = shufflevector <2 x float> %439, <2 x float> poison, <2 x i32> zeroinitializer
  %441 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %440, <2 x float> %434, <2 x float> %438)
  store <2 x float> %441, ptr %16, align 8, !tbaa !13
  %442 = load i32, ptr %21, align 4, !tbaa !5
  %443 = add nsw i32 %442, -2
  store i32 %443, ptr %11, align 4, !tbaa !5
  store i32 1, ptr %20, align 4, !tbaa !5
  %.not11911302 = icmp slt i32 %442, 3
  br i1 %.not11911302, label %.loopexit1271, label %.lr.ph

.lr.ph:                                           ; preds = %402
  %444 = extractelement <2 x float> %441, i64 0
  %445 = fadd float %444, -1.000000e+00
  %446 = fdiv float 1.000000e+00, %445
  %447 = shufflevector <2 x float> %434, <2 x float> poison, <2 x i32> zeroinitializer
  %448 = insertelement <2 x float> poison, float %446, i64 0
  %449 = shufflevector <2 x float> %448, <2 x float> poison, <2 x i32> zeroinitializer
  %450 = shufflevector <2 x float> %434, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %451 = fneg <2 x float> %434
  %452 = shufflevector <2 x float> %450, <2 x float> %451, <2 x i32> <i32 0, i32 3>
  br label %453

453:                                              ; preds = %.lr.ph, %453
  %454 = phi i32 [ 1, %.lr.ph ], [ %503, %453 ]
  %455 = load i32, ptr %21, align 4, !tbaa !5
  %456 = add nsw i32 %455, -1
  %457 = mul nsw i32 %456, %26
  %458 = add nsw i32 %457, %454
  store i32 %458, ptr %12, align 4, !tbaa !5
  %459 = add nsw i32 %454, %424
  store i32 %459, ptr %13, align 4, !tbaa !5
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds %struct.complex, ptr %32, i64 %460
  %462 = add nsw i32 %454, %.pre-phi1462
  store i32 %462, ptr %14, align 4, !tbaa !5
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds %struct.complex, ptr %32, i64 %463
  %465 = load <2 x float>, ptr %461, align 4, !tbaa !13
  %466 = fmul <2 x float> %465, %436
  %467 = shufflevector <2 x float> %466, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %468 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %440, <2 x float> %465, <2 x float> %467)
  %469 = load <2 x float>, ptr %464, align 4, !tbaa !13
  %470 = fsub <2 x float> %468, %469
  store <2 x float> %470, ptr %18, align 8, !tbaa !13
  %471 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %.sroa.030.0.vec.extract = extractelement <2 x float> %471, i64 0
  %.sroa.030.4.vec.extract = extractelement <2 x float> %471, i64 1
  %472 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.029.0.vec.extract = extractelement <2 x float> %472, i64 0
  %.sroa.029.4.vec.extract = extractelement <2 x float> %472, i64 1
  %473 = call <2 x float> @__divsc3(float noundef %.sroa.030.0.vec.extract, float noundef %.sroa.030.4.vec.extract, float noundef %.sroa.029.0.vec.extract, float noundef %.sroa.029.4.vec.extract) #6
  %474 = call ptr @_pCf(ptr noundef nonnull %17)
  store <2 x float> %473, ptr %474, align 4
  %475 = load <2 x float>, ptr %17, align 8, !tbaa !13
  %476 = fmul <2 x float> %449, %475
  store <2 x float> %476, ptr %16, align 8, !tbaa !13
  %477 = load i32, ptr %12, align 4, !tbaa !5
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds %struct.complex, ptr %28, i64 %478
  store <2 x float> %476, ptr %479, align 4, !tbaa !13
  %480 = load i32, ptr %21, align 4, !tbaa !5
  %481 = mul nsw i32 %480, %26
  %482 = add nsw i32 %481, %454
  store i32 %482, ptr %12, align 4, !tbaa !5
  store i32 %462, ptr %13, align 4, !tbaa !5
  store i32 %459, ptr %14, align 4, !tbaa !5
  %483 = load <2 x float>, ptr %464, align 4, !tbaa !13
  %484 = fmul <2 x float> %483, %452
  %485 = shufflevector <2 x float> %484, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %486 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %447, <2 x float> %483, <2 x float> %485)
  %487 = load <2 x float>, ptr %461, align 4, !tbaa !13
  %488 = fsub <2 x float> %486, %487
  store <2 x float> %488, ptr %18, align 8, !tbaa !13
  %489 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.027.0.vec.extract = extractelement <2 x float> %489, i64 0
  %.sroa.027.4.vec.extract = extractelement <2 x float> %489, i64 1
  %490 = fneg float %.sroa.027.4.vec.extract
  %491 = call ptr @_pCf(ptr noundef nonnull %19)
  %492 = getelementptr inbounds i8, ptr %491, i64 4
  store float %.sroa.027.0.vec.extract, ptr %491, align 4
  store float %490, ptr %492, align 4
  %493 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %.sroa.026.0.vec.extract = extractelement <2 x float> %493, i64 0
  %.sroa.026.4.vec.extract = extractelement <2 x float> %493, i64 1
  %494 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %.sroa.025.0.vec.extract = extractelement <2 x float> %494, i64 0
  %.sroa.025.4.vec.extract = extractelement <2 x float> %494, i64 1
  %495 = call <2 x float> @__divsc3(float noundef %.sroa.026.0.vec.extract, float noundef %.sroa.026.4.vec.extract, float noundef %.sroa.025.0.vec.extract, float noundef %.sroa.025.4.vec.extract) #6
  %496 = call ptr @_pCf(ptr noundef nonnull %17)
  store <2 x float> %495, ptr %496, align 4
  %497 = load <2 x float>, ptr %17, align 8, !tbaa !13
  %498 = fmul <2 x float> %449, %497
  store <2 x float> %498, ptr %16, align 8, !tbaa !13
  %499 = load i32, ptr %12, align 4, !tbaa !5
  %500 = sext i32 %499 to i64
  %501 = getelementptr inbounds %struct.complex, ptr %28, i64 %500
  store <2 x float> %498, ptr %501, align 4, !tbaa !13
  %502 = load i32, ptr %20, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr %20, align 4, !tbaa !5
  %504 = load i32, ptr %11, align 4, !tbaa !5
  %.not1191.not = icmp slt i32 %502, %504
  br i1 %.not1191.not, label %453, label %.loopexit1271.loopexit, !llvm.loop !19

505:                                              ; preds = %131, %thread-pre-split, %398, %357
  %.41096.ph = phi i32 [ %.31095, %357 ], [ %.31095, %398 ], [ %120, %thread-pre-split ], [ %120, %131 ]
  %.51063.ph = phi i32 [ %.41062, %357 ], [ %.41062, %398 ], [ %.01058, %thread-pre-split ], [ %.01058, %131 ]
  %.5.ph = phi i32 [ %.4, %357 ], [ %.4, %398 ], [ %.11055, %thread-pre-split ], [ %.11055, %131 ]
  %506 = load i32, ptr %21, align 4, !tbaa !5
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds i32, ptr %29, i64 %507
  store i32 %.41096.ph, ptr %508, align 4, !tbaa !5
  br label %543

.loopexit1271.loopexit:                           ; preds = %453
  %.pre1423 = load i32, ptr %21, align 4, !tbaa !5
  br label %.loopexit1271

.loopexit1271:                                    ; preds = %..loopexit1271_crit_edge, %.loopexit1271.loopexit, %402
  %.pre-phi1466 = phi i32 [ %.pre1465, %..loopexit1271_crit_edge ], [ %424, %.loopexit1271.loopexit ], [ %424, %402 ]
  %509 = phi i32 [ %400, %..loopexit1271_crit_edge ], [ %.pre1423, %.loopexit1271.loopexit ], [ %442, %402 ]
  %510 = add nsw i32 %509, -1
  %511 = mul i32 %510, %43
  %512 = add nsw i32 %510, %.pre-phi1466
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds %struct.complex, ptr %32, i64 %513
  %515 = sext i32 %511 to i64
  %516 = getelementptr inbounds %struct.complex, ptr %28, i64 %515
  %517 = load <2 x float>, ptr %514, align 4, !tbaa !13
  store <2 x float> %517, ptr %516, align 4, !tbaa !13
  %518 = mul nsw i32 %509, %26
  %519 = add nsw i32 %510, %518
  %520 = add nsw i32 %510, %.pre-phi1462
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds %struct.complex, ptr %32, i64 %521
  %523 = sext i32 %519 to i64
  %524 = getelementptr inbounds %struct.complex, ptr %28, i64 %523
  %525 = load <2 x float>, ptr %522, align 4, !tbaa !13
  store <2 x float> %525, ptr %524, align 4, !tbaa !13
  %526 = mul i32 %509, %43
  %527 = add nsw i32 %509, %.pre-phi1462
  store i32 %527, ptr %12, align 4, !tbaa !5
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds %struct.complex, ptr %32, i64 %528
  %530 = sext i32 %526 to i64
  %531 = getelementptr inbounds %struct.complex, ptr %28, i64 %530
  %532 = load <2 x float>, ptr %529, align 4, !tbaa !13
  store <2 x float> %532, ptr %531, align 4, !tbaa !13
  store i32 %510, ptr %11, align 4, !tbaa !5
  %533 = sext i32 %.pre-phi1462 to i64
  %gep1334 = getelementptr %struct.complex, ptr %invariant.gep1313, i64 %533
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %gep1334, ptr noundef nonnull @c__1) #6
  %534 = load i32, ptr %21, align 4, !tbaa !5
  %535 = add nsw i32 %534, -2
  store i32 %535, ptr %11, align 4, !tbaa !5
  %536 = sext i32 %.pre-phi1466 to i64
  %gep1336 = getelementptr %struct.complex, ptr %invariant.gep1313, i64 %536
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %gep1336, ptr noundef nonnull @c__1) #6
  %537 = sub nsw i32 0, %.21072
  %538 = load i32, ptr %21, align 4, !tbaa !5
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds i32, ptr %29, i64 %539
  store i32 %537, ptr %540, align 4, !tbaa !5
  %541 = sub nsw i32 0, %.31095
  %542 = getelementptr i8, ptr %540, i64 -4
  store i32 %541, ptr %542, align 4, !tbaa !5
  br label %543

543:                                              ; preds = %.loopexit1271, %505
  %544 = phi i32 [ %538, %.loopexit1271 ], [ %506, %505 ]
  %.51227 = phi i32 [ %.4, %.loopexit1271 ], [ %.5.ph, %505 ]
  %.510631225 = phi i32 [ %.41062, %.loopexit1271 ], [ %.51063.ph, %505 ]
  %.31081.neg1223 = phi i32 [ -2, %.loopexit1271 ], [ -1, %505 ]
  %545 = add i32 %544, %.31081.neg1223
  %.pre = load i32, ptr %1, align 4, !tbaa !5
  br label %45

546:                                              ; preds = %51, %54
  %547 = sub i32 0, %47
  store i32 %547, ptr %11, align 4, !tbaa !5
  %548 = add i32 %.fr1193, -1
  %549 = srem i32 %548, %47
  %550 = sub i32 %.fr1193, %549
  %551 = icmp slt i32 %547, 0
  %552 = icmp sgt i32 %550, 0
  %553 = icmp slt i32 %550, 2
  %.in11951354 = select i1 %551, i1 %552, i1 %553
  br i1 %.in11951354, label %.lr.ph1357, label %._crit_edge1358

.lr.ph1357:                                       ; preds = %546
  %554 = add nsw i32 %49, 1
  %555 = mul nsw i32 %554, %30
  %556 = sext i32 %26 to i64
  %557 = sext i32 %555 to i64
  %558 = add i32 %26, 1
  %invariant.gep = getelementptr %struct.complex, ptr %32, i64 %557
  br label %559

559:                                              ; preds = %.lr.ph1357, %598
  %560 = phi i32 [ %550, %.lr.ph1357 ], [ %600, %598 ]
  %561 = load i32, ptr %2, align 4, !tbaa !5
  %562 = load i32, ptr %21, align 4, !tbaa !5
  %563 = sub nsw i32 %562, %560
  %564 = add nsw i32 %563, 1
  store i32 %564, ptr %13, align 4, !tbaa !5
  %565 = call i32 @llvm.smin.i32(i32 %561, i32 %564)
  store i32 %565, ptr %24, align 4, !tbaa !5
  %566 = add i32 %560, -1
  %567 = add i32 %566, %565
  store i32 %567, ptr %12, align 4, !tbaa !5
  %.not12011347 = icmp sgt i32 %560, %567
  br i1 %.not12011347, label %._crit_edge, label %.lr.ph1349.preheader

.lr.ph1349.preheader:                             ; preds = %559
  %568 = sext i32 %560 to i64
  %invariant.gep1502 = getelementptr %struct.complex, ptr %28, i64 %568
  br label %.lr.ph1349

.lr.ph1349:                                       ; preds = %.lr.ph1349.preheader, %.lr.ph1349
  %indvars.iv1405 = phi i64 [ %568, %.lr.ph1349.preheader ], [ %indvars.iv.next1406, %.lr.ph1349 ]
  %indvars1407 = trunc i64 %indvars.iv1405 to i32
  %569 = mul nsw i64 %indvars.iv1405, %556
  %570 = mul i32 %558, %indvars1407
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds %struct.complex, ptr %28, i64 %571, i32 1
  store float 0.000000e+00, ptr %572, align 4, !tbaa !12
  %573 = add i32 %indvars1407, 1
  %574 = sub i32 %573, %560
  store i32 %574, ptr %13, align 4, !tbaa !5
  %575 = load i32, ptr %1, align 4, !tbaa !5
  %576 = load i32, ptr %21, align 4, !tbaa !5
  %577 = sub nsw i32 %575, %576
  store i32 %577, ptr %14, align 4, !tbaa !5
  store <2 x float> <float -1.000000e+00, float 0.000000e+00>, ptr %16, align 8, !tbaa !13
  %578 = add nsw i32 %576, 1
  %579 = mul nsw i32 %578, %26
  %580 = add nsw i32 %579, %560
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds %struct.complex, ptr %28, i64 %581
  %gep1501 = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv1405
  %gep1503 = getelementptr %struct.complex, ptr %invariant.gep1502, i64 %569
  call void @cgemv_(ptr noundef nonnull @.str.2, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef %582, ptr noundef nonnull %5, ptr noundef %gep1501, ptr noundef nonnull %8, ptr noundef nonnull @c_b1, ptr noundef %gep1503, ptr noundef nonnull @c__1) #6
  store i32 %570, ptr %13, align 4, !tbaa !5
  store i32 %570, ptr %14, align 4, !tbaa !5
  store float 0.000000e+00, ptr %572, align 4, !tbaa !12
  %indvars.iv.next1406 = add nsw i64 %indvars.iv1405, 1
  %583 = load i32, ptr %12, align 4, !tbaa !5
  %584 = sext i32 %583 to i64
  %.not1201.not = icmp slt i64 %indvars.iv1405, %584
  br i1 %.not1201.not, label %.lr.ph1349, label %._crit_edge, !llvm.loop !20

._crit_edge:                                      ; preds = %.lr.ph1349, %559
  %585 = icmp sgt i32 %560, 1
  br i1 %585, label %586, label %598

586:                                              ; preds = %._crit_edge
  store i32 %566, ptr %12, align 4, !tbaa !5
  %587 = load i32, ptr %1, align 4, !tbaa !5
  %588 = load i32, ptr %21, align 4, !tbaa !5
  %589 = sub nsw i32 %587, %588
  store i32 %589, ptr %13, align 4, !tbaa !5
  store <2 x float> <float -1.000000e+00, float 0.000000e+00>, ptr %16, align 8, !tbaa !13
  %590 = add nsw i32 %588, 1
  %591 = mul nsw i32 %590, %26
  %592 = sext i32 %591 to i64
  %gep1351 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %592
  %593 = add nsw i32 %560, %555
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds %struct.complex, ptr %32, i64 %594
  %596 = mul nsw i32 %560, %26
  %597 = sext i32 %596 to i64
  %gep1353 = getelementptr %struct.complex, ptr %invariant.gep1311, i64 %597
  call void @cgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %12, ptr noundef nonnull %24, ptr noundef nonnull %13, ptr noundef nonnull %16, ptr noundef %gep1351, ptr noundef nonnull %5, ptr noundef %595, ptr noundef nonnull %8, ptr noundef nonnull @c_b1, ptr noundef %gep1353, ptr noundef nonnull %5) #6
  br label %598

598:                                              ; preds = %._crit_edge, %586
  %599 = load i32, ptr %11, align 4, !tbaa !5
  %600 = add nsw i32 %560, %599
  %601 = icmp slt i32 %599, 0
  %602 = icmp sgt i32 %600, 0
  %603 = icmp slt i32 %600, 2
  %.in1195 = select i1 %601, i1 %602, i1 %603
  br i1 %.in1195, label %559, label %._crit_edge1358.loopexit, !llvm.loop !21

._crit_edge1358.loopexit:                         ; preds = %598
  %.pre1426 = load i32, ptr %21, align 4, !tbaa !5
  br label %._crit_edge1358

._crit_edge1358:                                  ; preds = %._crit_edge1358.loopexit, %546
  %604 = phi i32 [ %.pre1426, %._crit_edge1358.loopexit ], [ %.fr1193, %546 ]
  %605 = add nsw i32 %604, 1
  br label %606

606:                                              ; preds = %642, %._crit_edge1358
  %607 = phi i32 [ %621, %642 ], [ %605, %._crit_edge1358 ]
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds i32, ptr %29, i64 %608
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = icmp slt i32 %610, 0
  br i1 %611, label %612, label %619

612:                                              ; preds = %606
  %613 = sub nsw i32 0, %610
  %614 = add nsw i32 %607, 1
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds i32, ptr %29, i64 %615
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = sub nsw i32 0, %617
  br label %619

619:                                              ; preds = %612, %606
  %620 = phi i32 [ %614, %612 ], [ %607, %606 ]
  %.01110 = phi i32 [ %613, %612 ], [ %610, %606 ]
  %.01108 = phi i32 [ %618, %612 ], [ 1, %606 ]
  %621 = add nsw i32 %620, 1
  %.not1196 = icmp ne i32 %.01110, %607
  %.pre1428.pre1448 = load i32, ptr %1, align 4, !tbaa !5
  %.not1197.not = icmp slt i32 %620, %.pre1428.pre1448
  %or.cond1508 = select i1 %.not1196, i1 %.not1197.not, i1 false
  br i1 %or.cond1508, label %622, label %631

622:                                              ; preds = %619
  %623 = sub i32 %.pre1428.pre1448, %620
  store i32 %623, ptr %11, align 4, !tbaa !5
  %624 = mul nsw i32 %621, %26
  %625 = add nsw i32 %624, %.01110
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds %struct.complex, ptr %28, i64 %626
  %628 = add nsw i32 %624, %607
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds %struct.complex, ptr %28, i64 %629
  call void @cswap_(ptr noundef nonnull %11, ptr noundef %627, ptr noundef nonnull %5, ptr noundef %630, ptr noundef nonnull %5) #6
  %.pre1428.pre = load i32, ptr %1, align 4, !tbaa !5
  br label %631

631:                                              ; preds = %622, %619
  %.pre1428 = phi i32 [ %.pre1428.pre, %622 ], [ %.pre1428.pre1448, %619 ]
  %632 = add nsw i32 %607, 1
  %.not1198 = icmp ne i32 %.01108, %632
  %or.cond1205.not1511 = select i1 %611, i1 %.not1198, i1 false
  %.not1199.not = icmp slt i32 %620, %.pre1428
  %or.cond1509 = select i1 %or.cond1205.not1511, i1 %.not1199.not, i1 false
  br i1 %or.cond1509, label %633, label %642

633:                                              ; preds = %631
  %reass.sub1378 = sub i32 %.pre1428, %621
  %634 = add i32 %reass.sub1378, 1
  store i32 %634, ptr %11, align 4, !tbaa !5
  %635 = mul nsw i32 %621, %26
  %636 = add nsw i32 %635, %.01108
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds %struct.complex, ptr %28, i64 %637
  %639 = add nsw i32 %635, %632
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds %struct.complex, ptr %28, i64 %640
  call void @cswap_(ptr noundef nonnull %11, ptr noundef %638, ptr noundef nonnull %5, ptr noundef %641, ptr noundef nonnull %5) #6
  %.pre1427 = load i32, ptr %1, align 4, !tbaa !5
  br label %642

642:                                              ; preds = %633, %631
  %643 = phi i32 [ %.pre1427, %633 ], [ %.pre1428, %631 ]
  %644 = icmp slt i32 %621, %643
  br i1 %644, label %606, label %645

645:                                              ; preds = %642
  %646 = load i32, ptr %21, align 4, !tbaa !5
  %647 = sub nsw i32 %643, %646
  br label %1366

.lr.ph1539:                                       ; preds = %.preheader1269, %1265
  %.pre14291538 = phi i32 [ %.pre1429, %1265 ], [ %.pre14291532, %.preheader1269 ]
  %.61537 = phi i32 [ %.111250, %1265 ], [ undef, %.preheader1269 ]
  %.610641536 = phi i32 [ %.1110691248, %1265 ], [ undef, %.preheader1269 ]
  %storemerge1535 = phi i32 [ %1267, %1265 ], [ 1, %.preheader1269 ]
  %648 = mul i32 %storemerge1535, %35
  %649 = mul i32 %storemerge1535, %36
  store i32 %649, ptr %12, align 4, !tbaa !5
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds %struct.complex, ptr %28, i64 %650
  %652 = load float, ptr %651, align 4, !tbaa !9
  %653 = sext i32 %648 to i64
  %654 = getelementptr inbounds %struct.complex, ptr %32, i64 %653
  store float %652, ptr %654, align 4, !tbaa !9
  %655 = getelementptr inbounds %struct.complex, ptr %32, i64 %653, i32 1
  store float 0.000000e+00, ptr %655, align 4, !tbaa !12
  %656 = icmp slt i32 %storemerge1535, %.pre14291538
  br i1 %656, label %657, label %668

657:                                              ; preds = %.lr.ph1539
  %658 = sub nsw i32 %.pre14291538, %storemerge1535
  store i32 %658, ptr %11, align 4, !tbaa !5
  %659 = add nsw i32 %storemerge1535, 1
  %660 = mul nsw i32 %storemerge1535, %26
  %661 = add nsw i32 %659, %660
  %662 = sext i32 %661 to i64
  %663 = getelementptr inbounds %struct.complex, ptr %28, i64 %662
  %664 = mul nsw i32 %storemerge1535, %30
  %665 = add nsw i32 %659, %664
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds %struct.complex, ptr %32, i64 %666
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %663, ptr noundef nonnull @c__1, ptr noundef %667, ptr noundef nonnull @c__1) #6
  %.pre1430 = load i32, ptr %21, align 4, !tbaa !5
  %.pre1432.pre = load i32, ptr %1, align 4, !tbaa !5
  br label %668

668:                                              ; preds = %657, %.lr.ph1539
  %.pre1432 = phi i32 [ %.pre1432.pre, %657 ], [ %.pre14291538, %.lr.ph1539 ]
  %669 = phi i32 [ %.pre1430, %657 ], [ %storemerge1535, %.lr.ph1539 ]
  %670 = icmp sgt i32 %669, 1
  br i1 %670, label %671, label %._crit_edge1456

._crit_edge1456:                                  ; preds = %668
  %.pre1457 = mul i32 %669, %35
  %.pre1459 = sext i32 %.pre1457 to i64
  br label %687

671:                                              ; preds = %668
  %reass.sub1379 = sub i32 %.pre1432, %669
  %672 = add i32 %reass.sub1379, 1
  store i32 %672, ptr %11, align 4, !tbaa !5
  %673 = add nsw i32 %669, -1
  store i32 %673, ptr %12, align 4, !tbaa !5
  store <2 x float> <float -1.000000e+00, float 0.000000e+00>, ptr %16, align 8, !tbaa !13
  %674 = add nsw i32 %669, %26
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds %struct.complex, ptr %28, i64 %675
  %677 = add nsw i32 %669, %30
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds %struct.complex, ptr %32, i64 %678
  %680 = mul i32 %669, %35
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds %struct.complex, ptr %32, i64 %681
  call void @cgemv_(ptr noundef nonnull @.str.2, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %16, ptr noundef %676, ptr noundef nonnull %5, ptr noundef %679, ptr noundef nonnull %8, ptr noundef nonnull @c_b1, ptr noundef %682, ptr noundef nonnull @c__1) #6
  %683 = load i32, ptr %21, align 4, !tbaa !5
  %684 = mul i32 %683, %35
  store i32 %684, ptr %12, align 4, !tbaa !5
  %685 = sext i32 %684 to i64
  %686 = getelementptr inbounds %struct.complex, ptr %32, i64 %685, i32 1
  store float 0.000000e+00, ptr %686, align 4, !tbaa !12
  %.pre1431 = load i32, ptr %1, align 4, !tbaa !5
  br label %687

687:                                              ; preds = %._crit_edge1456, %671
  %.pre-phi1460 = phi i64 [ %.pre1459, %._crit_edge1456 ], [ %685, %671 ]
  %688 = phi i32 [ %.pre1432, %._crit_edge1456 ], [ %.pre1431, %671 ]
  %689 = phi i32 [ %669, %._crit_edge1456 ], [ %683, %671 ]
  %690 = getelementptr inbounds %struct.complex, ptr %32, i64 %.pre-phi1460
  %691 = load float, ptr %690, align 4, !tbaa !9
  %692 = fcmp oge float %691, 0.000000e+00
  %693 = fneg float %691
  %694 = select i1 %692, float %691, float %693
  %695 = icmp slt i32 %689, %688
  br i1 %695, label %696, label %719

696:                                              ; preds = %687
  %697 = sub nsw i32 %688, %689
  store i32 %697, ptr %11, align 4, !tbaa !5
  %698 = add nsw i32 %689, 1
  %699 = mul nsw i32 %689, %30
  %700 = add nsw i32 %698, %699
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds %struct.complex, ptr %32, i64 %701
  %703 = call i32 @icamax_(ptr noundef nonnull %11, ptr noundef %702, ptr noundef nonnull @c__1) #6
  %704 = add nsw i32 %703, %689
  %705 = load i32, ptr %21, align 4, !tbaa !5
  %706 = mul nsw i32 %705, %30
  %707 = add nsw i32 %706, %704
  store i32 %707, ptr %11, align 4, !tbaa !5
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds %struct.complex, ptr %32, i64 %708
  %710 = load float, ptr %709, align 4, !tbaa !9
  %711 = fcmp oge float %710, 0.000000e+00
  %712 = fneg float %710
  %713 = select i1 %711, float %710, float %712
  %714 = call <2 x float> @Cf(ptr noundef nonnull %709)
  %.sroa.023.4.vec.extract = extractelement <2 x float> %714, i64 1
  %715 = fcmp oge float %.sroa.023.4.vec.extract, 0.000000e+00
  %716 = fneg float %.sroa.023.4.vec.extract
  %717 = select i1 %715, float %.sroa.023.4.vec.extract, float %716
  %718 = fadd float %713, %717
  br label %719

719:                                              ; preds = %687, %696
  %.31105 = phi float [ %718, %696 ], [ 0.000000e+00, %687 ]
  %.7 = phi i32 [ %704, %696 ], [ %.61537, %687 ]
  %720 = fcmp oge float %694, %.31105
  %721 = select i1 %720, float %694, float %.31105
  %722 = fcmp oeq float %721, 0.000000e+00
  br i1 %722, label %723, label %749

723:                                              ; preds = %719
  %724 = load i32, ptr %9, align 4, !tbaa !5
  %725 = icmp eq i32 %724, 0
  %.pre1442 = load i32, ptr %21, align 4, !tbaa !5
  br i1 %725, label %726, label %727

726:                                              ; preds = %723
  store i32 %.pre1442, ptr %9, align 4, !tbaa !5
  br label %727

727:                                              ; preds = %726, %723
  %728 = mul i32 %.pre1442, %36
  store i32 %728, ptr %11, align 4, !tbaa !5
  %729 = mul i32 %.pre1442, %35
  store i32 %729, ptr %12, align 4, !tbaa !5
  %730 = sext i32 %729 to i64
  %731 = getelementptr inbounds %struct.complex, ptr %32, i64 %730
  %732 = load float, ptr %731, align 4, !tbaa !9
  %733 = sext i32 %728 to i64
  %734 = getelementptr inbounds %struct.complex, ptr %28, i64 %733
  store float %732, ptr %734, align 4, !tbaa !9
  %735 = getelementptr inbounds %struct.complex, ptr %28, i64 %733, i32 1
  store float 0.000000e+00, ptr %735, align 4, !tbaa !12
  %736 = load i32, ptr %1, align 4, !tbaa !5
  %737 = icmp slt i32 %.pre1442, %736
  br i1 %737, label %738, label %1218

738:                                              ; preds = %727
  %739 = sub nsw i32 %736, %.pre1442
  store i32 %739, ptr %11, align 4, !tbaa !5
  %740 = add nsw i32 %.pre1442, 1
  %741 = mul nsw i32 %.pre1442, %30
  %742 = add nsw i32 %740, %741
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds %struct.complex, ptr %32, i64 %743
  %745 = mul nsw i32 %.pre1442, %26
  %746 = add nsw i32 %740, %745
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds %struct.complex, ptr %28, i64 %747
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %744, ptr noundef nonnull @c__1, ptr noundef %748, ptr noundef nonnull @c__1) #6
  br label %1218

749:                                              ; preds = %719
  %750 = fmul float %.31105, 0x3FE47E0F60000000
  %751 = fcmp olt float %694, %750
  br i1 %751, label %.preheader, label %752

752:                                              ; preds = %749
  %753 = load i32, ptr %21, align 4
  br label %.thread1230.thread

.preheader:                                       ; preds = %749, %902
  %.41106 = phi float [ %.31115, %902 ], [ %.31105, %749 ]
  %.41074 = phi i32 [ %.8, %902 ], [ %storemerge1535, %749 ]
  %.71065 = phi i32 [ %.91067, %902 ], [ %.610641536, %749 ]
  %.8 = phi i32 [ %.91067, %902 ], [ %.7, %749 ]
  %754 = load i32, ptr %21, align 4, !tbaa !5
  %755 = sub nsw i32 %.8, %754
  store i32 %755, ptr %11, align 4, !tbaa !5
  %756 = mul nsw i32 %754, %26
  %757 = add nsw i32 %756, %.8
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds %struct.complex, ptr %28, i64 %758
  %760 = add nsw i32 %754, 1
  %761 = mul nsw i32 %760, %30
  %762 = add nsw i32 %761, %754
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds %struct.complex, ptr %32, i64 %763
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %759, ptr noundef nonnull %5, ptr noundef %764, ptr noundef nonnull @c__1) #6
  %765 = load i32, ptr %21, align 4, !tbaa !5
  %766 = sub nsw i32 %.8, %765
  store i32 %766, ptr %11, align 4, !tbaa !5
  %767 = add nsw i32 %765, 1
  %768 = mul nsw i32 %767, %30
  %769 = add nsw i32 %768, %765
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds %struct.complex, ptr %32, i64 %770
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %771, ptr noundef nonnull @c__1) #6
  %772 = load i32, ptr %21, align 4, !tbaa !5
  %773 = add nsw i32 %772, 1
  %774 = mul nsw i32 %773, %30
  %775 = add nsw i32 %774, %.8
  %776 = mul nsw i32 %.8, %26
  %777 = add nsw i32 %776, %.8
  store i32 %777, ptr %12, align 4, !tbaa !5
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds %struct.complex, ptr %28, i64 %778
  %780 = load float, ptr %779, align 4, !tbaa !9
  %781 = sext i32 %775 to i64
  %782 = getelementptr inbounds %struct.complex, ptr %32, i64 %781
  store float %780, ptr %782, align 4, !tbaa !9
  %783 = getelementptr inbounds %struct.complex, ptr %32, i64 %781, i32 1
  store float 0.000000e+00, ptr %783, align 4, !tbaa !12
  %784 = load i32, ptr %1, align 4, !tbaa !5
  %785 = icmp slt i32 %.8, %784
  br i1 %785, label %786, label %795

786:                                              ; preds = %.preheader
  %787 = sub nsw i32 %784, %.8
  store i32 %787, ptr %11, align 4, !tbaa !5
  %788 = add nsw i32 %.8, 1
  %789 = add nsw i32 %788, %776
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds %struct.complex, ptr %28, i64 %790
  %792 = add nsw i32 %774, %788
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds %struct.complex, ptr %32, i64 %793
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %791, ptr noundef nonnull @c__1, ptr noundef %794, ptr noundef nonnull @c__1) #6
  %.pre1433 = load i32, ptr %21, align 4, !tbaa !5
  br label %795

795:                                              ; preds = %786, %.preheader
  %796 = phi i32 [ %.pre1433, %786 ], [ %772, %.preheader ]
  %797 = icmp sgt i32 %796, 1
  br i1 %797, label %798, label %819

798:                                              ; preds = %795
  %799 = load i32, ptr %1, align 4, !tbaa !5
  %reass.sub1380 = sub i32 %799, %796
  %800 = add i32 %reass.sub1380, 1
  store i32 %800, ptr %11, align 4, !tbaa !5
  %801 = add nsw i32 %796, -1
  store i32 %801, ptr %12, align 4, !tbaa !5
  store <2 x float> <float -1.000000e+00, float 0.000000e+00>, ptr %16, align 8, !tbaa !13
  %802 = add nsw i32 %796, %26
  %803 = sext i32 %802 to i64
  %804 = getelementptr inbounds %struct.complex, ptr %28, i64 %803
  %805 = add nsw i32 %.8, %30
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds %struct.complex, ptr %32, i64 %806
  %808 = add nuw nsw i32 %796, 1
  %809 = mul nsw i32 %808, %30
  %810 = add nsw i32 %809, %796
  %811 = sext i32 %810 to i64
  %812 = getelementptr inbounds %struct.complex, ptr %32, i64 %811
  call void @cgemv_(ptr noundef nonnull @.str.2, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %16, ptr noundef %804, ptr noundef nonnull %5, ptr noundef %807, ptr noundef nonnull %8, ptr noundef nonnull @c_b1, ptr noundef %812, ptr noundef nonnull @c__1) #6
  %813 = load i32, ptr %21, align 4, !tbaa !5
  %814 = add nsw i32 %813, 1
  %815 = mul nsw i32 %814, %30
  %816 = add nsw i32 %815, %.8
  store i32 %816, ptr %12, align 4, !tbaa !5
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds %struct.complex, ptr %32, i64 %817, i32 1
  store float 0.000000e+00, ptr %818, align 4, !tbaa !12
  br label %819

819:                                              ; preds = %798, %795
  %820 = phi i32 [ %813, %798 ], [ %796, %795 ]
  %.not1172 = icmp eq i32 %.8, %820
  br i1 %.not1172, label %846, label %821

821:                                              ; preds = %819
  %822 = sub nsw i32 %.8, %820
  store i32 %822, ptr %11, align 4, !tbaa !5
  %823 = add nsw i32 %820, -1
  %824 = add nsw i32 %820, 1
  %825 = mul nsw i32 %824, %30
  %826 = add nsw i32 %825, %820
  %827 = sext i32 %826 to i64
  %828 = getelementptr inbounds %struct.complex, ptr %32, i64 %827
  %829 = call i32 @icamax_(ptr noundef nonnull %11, ptr noundef %828, ptr noundef nonnull @c__1) #6
  %830 = add nsw i32 %823, %829
  %831 = load i32, ptr %21, align 4, !tbaa !5
  %832 = add nsw i32 %831, 1
  %833 = mul nsw i32 %832, %30
  %834 = add nsw i32 %833, %830
  store i32 %834, ptr %11, align 4, !tbaa !5
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds %struct.complex, ptr %32, i64 %835
  %837 = load float, ptr %836, align 4, !tbaa !9
  %838 = fcmp oge float %837, 0.000000e+00
  %839 = fneg float %837
  %840 = select i1 %838, float %837, float %839
  %841 = call <2 x float> @Cf(ptr noundef nonnull %836)
  %.sroa.022.4.vec.extract = extractelement <2 x float> %841, i64 1
  %842 = fcmp oge float %.sroa.022.4.vec.extract, 0.000000e+00
  %843 = fneg float %.sroa.022.4.vec.extract
  %844 = select i1 %842, float %.sroa.022.4.vec.extract, float %843
  %845 = fadd float %840, %844
  br label %846

846:                                              ; preds = %819, %821
  %.21114 = phi float [ %845, %821 ], [ 0.000000e+00, %819 ]
  %.81066 = phi i32 [ %830, %821 ], [ %.71065, %819 ]
  %847 = load i32, ptr %1, align 4, !tbaa !5
  %848 = icmp slt i32 %.8, %847
  br i1 %848, label %849, label %877

849:                                              ; preds = %846
  %850 = sub nsw i32 %847, %.8
  store i32 %850, ptr %11, align 4, !tbaa !5
  %851 = add nsw i32 %.8, 1
  %852 = load i32, ptr %21, align 4, !tbaa !5
  %853 = add nsw i32 %852, 1
  %854 = mul nsw i32 %853, %30
  %855 = add nsw i32 %851, %854
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds %struct.complex, ptr %32, i64 %856
  %858 = call i32 @icamax_(ptr noundef nonnull %11, ptr noundef %857, ptr noundef nonnull @c__1) #6
  %859 = add nsw i32 %858, %.8
  %860 = load i32, ptr %21, align 4, !tbaa !5
  %861 = add nsw i32 %860, 1
  %862 = mul nsw i32 %861, %30
  %863 = add nsw i32 %862, %859
  store i32 %863, ptr %11, align 4, !tbaa !5
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds %struct.complex, ptr %32, i64 %864
  %866 = load float, ptr %865, align 4, !tbaa !9
  %867 = fcmp oge float %866, 0.000000e+00
  %868 = fneg float %866
  %869 = select i1 %867, float %866, float %868
  %870 = call <2 x float> @Cf(ptr noundef nonnull %865)
  %.sroa.021.4.vec.extract = extractelement <2 x float> %870, i64 1
  %871 = fcmp oge float %.sroa.021.4.vec.extract, 0.000000e+00
  %872 = fneg float %.sroa.021.4.vec.extract
  %873 = select i1 %871, float %.sroa.021.4.vec.extract, float %872
  %874 = fadd float %869, %873
  %875 = fcmp ogt float %874, %.21114
  br i1 %875, label %876, label %877

876:                                              ; preds = %849
  br label %877

877:                                              ; preds = %849, %876, %846
  %.31115 = phi float [ %874, %876 ], [ %.21114, %849 ], [ %.21114, %846 ]
  %.91067 = phi i32 [ %859, %876 ], [ %.81066, %849 ], [ %.81066, %846 ]
  %878 = load i32, ptr %21, align 4
  %879 = add nsw i32 %878, 1
  %880 = mul nsw i32 %879, %30
  %881 = add nsw i32 %880, %.8
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds %struct.complex, ptr %32, i64 %882
  %884 = load float, ptr %883, align 4, !tbaa !9
  %885 = fcmp oge float %884, 0.000000e+00
  %886 = fneg float %884
  %887 = select i1 %885, float %884, float %886
  %888 = fmul float %.31115, 0x3FE47E0F60000000
  %889 = fcmp olt float %887, %888
  br i1 %889, label %899, label %890

890:                                              ; preds = %877
  %891 = load i32, ptr %1, align 4, !tbaa !5
  %reass.sub1381 = sub i32 %891, %878
  %892 = add i32 %reass.sub1381, 1
  store i32 %892, ptr %11, align 4, !tbaa !5
  %893 = add nsw i32 %880, %878
  %894 = sext i32 %893 to i64
  %895 = getelementptr inbounds %struct.complex, ptr %32, i64 %894
  %896 = mul i32 %878, %35
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds %struct.complex, ptr %32, i64 %897
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %895, ptr noundef nonnull @c__1, ptr noundef %898, ptr noundef nonnull @c__1) #6
  %.pre1434 = load i32, ptr %21, align 4
  br label %.thread1230.thread

899:                                              ; preds = %877
  %900 = icmp ne i32 %.41074, %.91067
  %901 = fcmp ugt float %.31115, %.41106
  %or.cond1206 = and i1 %901, %900
  br i1 %or.cond1206, label %902, label %.thread1230

902:                                              ; preds = %899
  %903 = load i32, ptr %1, align 4, !tbaa !5
  %reass.sub1382 = sub i32 %903, %878
  %904 = add i32 %reass.sub1382, 1
  store i32 %904, ptr %11, align 4, !tbaa !5
  %905 = add nsw i32 %880, %878
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds %struct.complex, ptr %32, i64 %906
  %908 = mul i32 %878, %35
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds %struct.complex, ptr %32, i64 %909
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %907, ptr noundef nonnull @c__1, ptr noundef %910, ptr noundef nonnull @c__1) #6
  br label %.preheader

.thread1230.thread:                               ; preds = %752, %890
  %.ph = phi i32 [ %.pre1434, %890 ], [ %753, %752 ]
  %.81100.ph = phi i32 [ %.8, %890 ], [ %753, %752 ]
  %.61076.ph = phi i32 [ %.41074, %890 ], [ %storemerge1535, %752 ]
  %.101068.ph = phi i32 [ %.91067, %890 ], [ %.610641536, %752 ]
  %.10.ph = phi i32 [ %.8, %890 ], [ %.7, %752 ]
  store i32 %.ph, ptr %25, align 4, !tbaa !5
  br label %973

.thread1230:                                      ; preds = %899
  %911 = add i32 %878, 1
  store i32 %911, ptr %25, align 4, !tbaa !5
  %.not1174 = icmp eq i32 %.41074, %878
  br i1 %.not1174, label %973, label %912

912:                                              ; preds = %.thread1230
  %913 = mul nsw i32 %.41074, %26
  %914 = add nsw i32 %913, %.41074
  %915 = mul i32 %878, %36
  store i32 %915, ptr %12, align 4, !tbaa !5
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds %struct.complex, ptr %28, i64 %916
  %918 = load float, ptr %917, align 4, !tbaa !9
  %919 = sext i32 %914 to i64
  %920 = getelementptr inbounds %struct.complex, ptr %28, i64 %919
  store float %918, ptr %920, align 4, !tbaa !9
  %921 = getelementptr inbounds %struct.complex, ptr %28, i64 %919, i32 1
  store float 0.000000e+00, ptr %921, align 4, !tbaa !12
  %922 = xor i32 %878, -1
  %923 = add i32 %.41074, %922
  store i32 %923, ptr %11, align 4, !tbaa !5
  %924 = add nsw i32 %878, 1
  %925 = mul nsw i32 %878, %26
  %926 = add nsw i32 %924, %925
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds %struct.complex, ptr %28, i64 %927
  %929 = mul nsw i32 %924, %26
  %930 = add nsw i32 %929, %.41074
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds %struct.complex, ptr %28, i64 %931
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %928, ptr noundef nonnull @c__1, ptr noundef %932, ptr noundef nonnull %5) #6
  %933 = load i32, ptr %21, align 4, !tbaa !5
  %934 = xor i32 %933, -1
  %935 = add i32 %.41074, %934
  store i32 %935, ptr %11, align 4, !tbaa !5
  %936 = add nsw i32 %933, 1
  %937 = mul nsw i32 %936, %26
  %938 = add nsw i32 %937, %.41074
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds %struct.complex, ptr %28, i64 %939
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %940, ptr noundef nonnull %5) #6
  %941 = load i32, ptr %1, align 4, !tbaa !5
  %942 = icmp slt i32 %.41074, %941
  br i1 %942, label %943, label %954

943:                                              ; preds = %912
  %944 = sub nsw i32 %941, %.41074
  store i32 %944, ptr %11, align 4, !tbaa !5
  %945 = add nsw i32 %.41074, 1
  %946 = load i32, ptr %21, align 4, !tbaa !5
  %947 = mul nsw i32 %946, %26
  %948 = add nsw i32 %947, %945
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds %struct.complex, ptr %28, i64 %949
  %951 = add nsw i32 %945, %913
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds %struct.complex, ptr %28, i64 %952
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %950, ptr noundef nonnull @c__1, ptr noundef %953, ptr noundef nonnull @c__1) #6
  br label %954

954:                                              ; preds = %943, %912
  %955 = load i32, ptr %21, align 4, !tbaa !5
  %956 = icmp sgt i32 %955, 1
  br i1 %956, label %957, label %965

957:                                              ; preds = %954
  %958 = add nsw i32 %955, -1
  store i32 %958, ptr %11, align 4, !tbaa !5
  %959 = add nsw i32 %955, %26
  %960 = sext i32 %959 to i64
  %961 = getelementptr inbounds %struct.complex, ptr %28, i64 %960
  %962 = add nsw i32 %.41074, %26
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds %struct.complex, ptr %28, i64 %963
  call void @cswap_(ptr noundef nonnull %11, ptr noundef %961, ptr noundef nonnull %5, ptr noundef %964, ptr noundef nonnull %5) #6
  %.pre1435 = load i32, ptr %21, align 4, !tbaa !5
  br label %965

965:                                              ; preds = %957, %954
  %966 = phi i32 [ %.pre1435, %957 ], [ %955, %954 ]
  %967 = add nsw i32 %966, %30
  %968 = sext i32 %967 to i64
  %969 = getelementptr inbounds %struct.complex, ptr %32, i64 %968
  %970 = add nsw i32 %.41074, %30
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds %struct.complex, ptr %32, i64 %971
  call void @cswap_(ptr noundef nonnull %25, ptr noundef %969, ptr noundef nonnull %8, ptr noundef %972, ptr noundef nonnull %8) #6
  %.pre1436 = load i32, ptr %25, align 4, !tbaa !5
  br label %973

973:                                              ; preds = %.thread1230.thread, %965, %.thread1230
  %.101477 = phi i32 [ %.8, %965 ], [ %.8, %.thread1230 ], [ %.10.ph, %.thread1230.thread ]
  %.1010681476 = phi i32 [ %.91067, %965 ], [ %.91067, %.thread1230 ], [ %.101068.ph, %.thread1230.thread ]
  %.610761475 = phi i32 [ %.41074, %965 ], [ %.41074, %.thread1230 ], [ %.61076.ph, %.thread1230.thread ]
  %974 = phi i1 [ false, %965 ], [ false, %.thread1230 ], [ true, %.thread1230.thread ]
  %.811001474 = phi i32 [ %.8, %965 ], [ %.8, %.thread1230 ], [ %.81100.ph, %.thread1230.thread ]
  %975 = phi i32 [ %.pre1436, %965 ], [ %911, %.thread1230 ], [ %.ph, %.thread1230.thread ]
  %.not1175 = icmp eq i32 %.811001474, %975
  br i1 %.not1175, label %1038, label %976

976:                                              ; preds = %973
  %977 = mul nsw i32 %.811001474, %26
  %978 = add nsw i32 %977, %.811001474
  %979 = mul i32 %975, %36
  store i32 %979, ptr %12, align 4, !tbaa !5
  %980 = sext i32 %979 to i64
  %981 = getelementptr inbounds %struct.complex, ptr %28, i64 %980
  %982 = load float, ptr %981, align 4, !tbaa !9
  %983 = sext i32 %978 to i64
  %984 = getelementptr inbounds %struct.complex, ptr %28, i64 %983
  store float %982, ptr %984, align 4, !tbaa !9
  %985 = getelementptr inbounds %struct.complex, ptr %28, i64 %983, i32 1
  store float 0.000000e+00, ptr %985, align 4, !tbaa !12
  %986 = xor i32 %975, -1
  %987 = add i32 %.811001474, %986
  store i32 %987, ptr %11, align 4, !tbaa !5
  %988 = add nsw i32 %975, 1
  %989 = mul nsw i32 %975, %26
  %990 = add nsw i32 %988, %989
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds %struct.complex, ptr %28, i64 %991
  %993 = mul nsw i32 %988, %26
  %994 = add nsw i32 %993, %.811001474
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds %struct.complex, ptr %28, i64 %995
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %992, ptr noundef nonnull @c__1, ptr noundef %996, ptr noundef nonnull %5) #6
  %997 = load i32, ptr %25, align 4, !tbaa !5
  %998 = xor i32 %997, -1
  %999 = add i32 %.811001474, %998
  store i32 %999, ptr %11, align 4, !tbaa !5
  %1000 = add nsw i32 %997, 1
  %1001 = mul nsw i32 %1000, %26
  %1002 = add nsw i32 %1001, %.811001474
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds %struct.complex, ptr %28, i64 %1003
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %1004, ptr noundef nonnull %5) #6
  %1005 = load i32, ptr %1, align 4, !tbaa !5
  %1006 = icmp slt i32 %.811001474, %1005
  br i1 %1006, label %1007, label %1018

1007:                                             ; preds = %976
  %1008 = sub nsw i32 %1005, %.811001474
  store i32 %1008, ptr %11, align 4, !tbaa !5
  %1009 = add nsw i32 %.811001474, 1
  %1010 = load i32, ptr %25, align 4, !tbaa !5
  %1011 = mul nsw i32 %1010, %26
  %1012 = add nsw i32 %1011, %1009
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds %struct.complex, ptr %28, i64 %1013
  %1015 = add nsw i32 %1009, %977
  %1016 = sext i32 %1015 to i64
  %1017 = getelementptr inbounds %struct.complex, ptr %28, i64 %1016
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %1014, ptr noundef nonnull @c__1, ptr noundef %1017, ptr noundef nonnull @c__1) #6
  br label %1018

1018:                                             ; preds = %1007, %976
  %1019 = load i32, ptr %21, align 4, !tbaa !5
  %1020 = icmp sgt i32 %1019, 1
  br i1 %1020, label %1021, label %1030

1021:                                             ; preds = %1018
  %1022 = add nsw i32 %1019, -1
  store i32 %1022, ptr %11, align 4, !tbaa !5
  %1023 = load i32, ptr %25, align 4, !tbaa !5
  %1024 = add nsw i32 %1023, %26
  %1025 = sext i32 %1024 to i64
  %1026 = getelementptr inbounds %struct.complex, ptr %28, i64 %1025
  %1027 = add nsw i32 %.811001474, %26
  %1028 = sext i32 %1027 to i64
  %1029 = getelementptr inbounds %struct.complex, ptr %28, i64 %1028
  call void @cswap_(ptr noundef nonnull %11, ptr noundef %1026, ptr noundef nonnull %5, ptr noundef %1029, ptr noundef nonnull %5) #6
  br label %1030

1030:                                             ; preds = %1021, %1018
  %1031 = load i32, ptr %25, align 4, !tbaa !5
  %1032 = add nsw i32 %1031, %30
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds %struct.complex, ptr %32, i64 %1033
  %1035 = add nsw i32 %.811001474, %30
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds %struct.complex, ptr %32, i64 %1036
  call void @cswap_(ptr noundef nonnull %25, ptr noundef %1034, ptr noundef nonnull %8, ptr noundef %1037, ptr noundef nonnull %8) #6
  br label %1038

1038:                                             ; preds = %1030, %973
  br i1 %974, label %1039, label %1101

1039:                                             ; preds = %1038
  %1040 = load i32, ptr %1, align 4, !tbaa !5
  %1041 = load i32, ptr %21, align 4, !tbaa !5
  %1042 = add i32 %1040, 1
  %1043 = sub i32 %1042, %1041
  store i32 %1043, ptr %11, align 4, !tbaa !5
  %1044 = mul i32 %1041, %35
  %1045 = sext i32 %1044 to i64
  %1046 = getelementptr inbounds %struct.complex, ptr %32, i64 %1045
  %1047 = mul i32 %1041, %36
  %1048 = sext i32 %1047 to i64
  %1049 = getelementptr inbounds %struct.complex, ptr %28, i64 %1048
  call void @ccopy_(ptr noundef nonnull %11, ptr noundef %1046, ptr noundef nonnull @c__1, ptr noundef %1049, ptr noundef nonnull @c__1) #6
  %1050 = load i32, ptr %21, align 4, !tbaa !5
  %1051 = load i32, ptr %1, align 4, !tbaa !5
  %1052 = icmp slt i32 %1050, %1051
  br i1 %1052, label %1053, label %1218

1053:                                             ; preds = %1039
  %1054 = mul i32 %1050, %36
  %1055 = sext i32 %1054 to i64
  %1056 = getelementptr inbounds %struct.complex, ptr %28, i64 %1055
  %1057 = load float, ptr %1056, align 4, !tbaa !9
  %1058 = fcmp oge float %1057, 0.000000e+00
  %1059 = fneg float %1057
  %1060 = select i1 %1058, float %1057, float %1059
  %1061 = fcmp ult float %1060, %33
  br i1 %1061, label %.lr.ph1368, label %1062

1062:                                             ; preds = %1053
  %1063 = fdiv float 1.000000e+00, %1057
  store float %1063, ptr %22, align 4, !tbaa !13
  %1064 = sub nsw i32 %1051, %1050
  store i32 %1064, ptr %11, align 4, !tbaa !5
  %1065 = add nsw i32 %1050, 1
  %1066 = mul nsw i32 %1050, %26
  %1067 = add nsw i32 %1065, %1066
  %1068 = sext i32 %1067 to i64
  %1069 = getelementptr inbounds %struct.complex, ptr %28, i64 %1068
  call void @csscal_(ptr noundef nonnull %11, ptr noundef nonnull %22, ptr noundef %1069, ptr noundef nonnull @c__1) #6
  %.pre1440 = load i32, ptr %1, align 4, !tbaa !5
  %.pre1441 = load i32, ptr %21, align 4, !tbaa !5
  br label %1092

.lr.ph1368:                                       ; preds = %1053
  %1070 = mul nsw i32 %1050, %26
  %1071 = sext i32 %1050 to i64
  %1072 = sext i32 %1070 to i64
  %wide.trip.count1411 = sext i32 %1051 to i64
  %1073 = sub nsw i64 %wide.trip.count1411, %1071
  %min.iters.check1546 = icmp ult i64 %1073, 4
  br i1 %min.iters.check1546, label %scalar.ph1545.preheader, label %vector.ph1547

vector.ph1547:                                    ; preds = %.lr.ph1368
  %n.vec1549 = and i64 %1073, -4
  %ind.end1550 = add nsw i64 %n.vec1549, %1071
  %broadcast.splatinsert1558 = insertelement <4 x float> poison, float %1057, i64 0
  %broadcast.splat1559 = shufflevector <4 x float> %broadcast.splatinsert1558, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1552

vector.body1552:                                  ; preds = %vector.body1552, %vector.ph1547
  %index1553 = phi i64 [ 0, %vector.ph1547 ], [ %index.next1561, %vector.body1552 ]
  %offset.idx1554 = add i64 %index1553, %1071
  %1074 = add nsw i64 %offset.idx1554, 1
  %1075 = add nsw i64 %1074, %1072
  %1076 = getelementptr inbounds %struct.complex, ptr %28, i64 %1075
  %wide.vec1555 = load <8 x float>, ptr %1076, align 4, !tbaa !13
  %strided.vec1556 = shufflevector <8 x float> %wide.vec1555, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1557 = shufflevector <8 x float> %wide.vec1555, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %1077 = fdiv <4 x float> %strided.vec1556, %broadcast.splat1559
  %1078 = fdiv <4 x float> %strided.vec1557, %broadcast.splat1559
  %1079 = getelementptr inbounds %struct.complex, ptr %28, i64 %1075
  %interleaved.vec1560 = shufflevector <4 x float> %1077, <4 x float> %1078, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec1560, ptr %1079, align 4, !tbaa !13
  %index.next1561 = add nuw i64 %index1553, 4
  %1080 = icmp eq i64 %index.next1561, %n.vec1549
  br i1 %1080, label %middle.block1544, label %vector.body1552, !llvm.loop !22

middle.block1544:                                 ; preds = %vector.body1552
  %1081 = add i64 %offset.idx1554, 4
  %1082 = add nsw i64 %1081, %1072
  %cmp.n1562 = icmp eq i64 %1073, %n.vec1549
  %1083 = shufflevector <4 x float> %1077, <4 x float> %1078, <2 x i32> <i32 3, i32 7>
  br i1 %cmp.n1562, label %.loopexit, label %scalar.ph1545.preheader

scalar.ph1545.preheader:                          ; preds = %middle.block1544, %.lr.ph1368
  %indvars.iv1408.ph = phi i64 [ %1071, %.lr.ph1368 ], [ %ind.end1550, %middle.block1544 ]
  %1084 = insertelement <2 x float> poison, float %1057, i64 0
  %1085 = shufflevector <2 x float> %1084, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph1545

scalar.ph1545:                                    ; preds = %scalar.ph1545.preheader, %scalar.ph1545
  %indvars.iv1408 = phi i64 [ %indvars.iv.next1409, %scalar.ph1545 ], [ %indvars.iv1408.ph, %scalar.ph1545.preheader ]
  %indvars.iv.next1409 = add nsw i64 %indvars.iv1408, 1
  %1086 = add nsw i64 %indvars.iv.next1409, %1072
  %1087 = getelementptr inbounds %struct.complex, ptr %28, i64 %1086
  %1088 = load <2 x float>, ptr %1087, align 4, !tbaa !13
  %1089 = fdiv <2 x float> %1088, %1085
  store <2 x float> %1089, ptr %1087, align 4, !tbaa !13
  %exitcond1412.not = icmp eq i64 %indvars.iv.next1409, %wide.trip.count1411
  br i1 %exitcond1412.not, label %.loopexit, label %scalar.ph1545, !llvm.loop !23

.loopexit:                                        ; preds = %scalar.ph1545, %middle.block1544
  %.lcssa1520 = phi i64 [ %1082, %middle.block1544 ], [ %1086, %scalar.ph1545 ]
  %1090 = phi <2 x float> [ %1083, %middle.block1544 ], [ %1089, %scalar.ph1545 ]
  %1091 = trunc nsw i64 %.lcssa1520 to i32
  store i32 %1091, ptr %12, align 4, !tbaa !5
  store <2 x float> %1090, ptr %16, align 8, !tbaa !13
  store i32 %1091, ptr %13, align 4, !tbaa !5
  br label %1092

1092:                                             ; preds = %.loopexit, %1062
  %1093 = phi i32 [ %1050, %.loopexit ], [ %.pre1441, %1062 ]
  %1094 = phi i32 [ %1051, %.loopexit ], [ %.pre1440, %1062 ]
  %1095 = sub nsw i32 %1094, %1093
  store i32 %1095, ptr %11, align 4, !tbaa !5
  %1096 = add nsw i32 %1093, 1
  %1097 = mul nsw i32 %1093, %30
  %1098 = add nsw i32 %1096, %1097
  %1099 = sext i32 %1098 to i64
  %1100 = getelementptr inbounds %struct.complex, ptr %32, i64 %1099
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %1100, ptr noundef nonnull @c__1) #6
  br label %1218

1101:                                             ; preds = %1038
  %1102 = load i32, ptr %21, align 4, !tbaa !5
  %1103 = load i32, ptr %1, align 4, !tbaa !5
  %1104 = add nsw i32 %1103, -1
  %1105 = icmp slt i32 %1102, %1104
  br i1 %1105, label %1106, label %.loopexit1268

1106:                                             ; preds = %1101
  %1107 = add nsw i32 %1102, 1
  %1108 = mul nsw i32 %1102, %30
  %1109 = add nsw i32 %1107, %1108
  store i32 %1109, ptr %11, align 4, !tbaa !5
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds %struct.complex, ptr %32, i64 %1110
  %1112 = load <2 x float>, ptr %1111, align 4, !tbaa !13
  store <2 x float> %1112, ptr %23, align 8, !tbaa !13
  %1113 = mul i32 %1107, %35
  %1114 = sext i32 %1113 to i64
  %1115 = getelementptr inbounds %struct.complex, ptr %32, i64 %1114
  %1116 = call <2 x float> @Cf(ptr noundef %1115)
  %.sroa.020.0.vec.extract = extractelement <2 x float> %1116, i64 0
  %.sroa.020.4.vec.extract = extractelement <2 x float> %1116, i64 1
  %1117 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.019.0.vec.extract = extractelement <2 x float> %1117, i64 0
  %.sroa.019.4.vec.extract = extractelement <2 x float> %1117, i64 1
  %1118 = call <2 x float> @__divsc3(float noundef %.sroa.020.0.vec.extract, float noundef %.sroa.020.4.vec.extract, float noundef %.sroa.019.0.vec.extract, float noundef %.sroa.019.4.vec.extract) #6
  %1119 = call ptr @_pCf(ptr noundef nonnull %16)
  store <2 x float> %1118, ptr %1119, align 4
  %1120 = load float, ptr %16, align 8, !tbaa !9
  %1121 = load float, ptr %37, align 4, !tbaa !12
  %1122 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.017.0.vec.extract = extractelement <2 x float> %1122, i64 0
  %.sroa.017.4.vec.extract = extractelement <2 x float> %1122, i64 1
  %1123 = fneg float %.sroa.017.4.vec.extract
  %1124 = call ptr @_pCf(ptr noundef nonnull %17)
  %1125 = getelementptr inbounds i8, ptr %1124, i64 4
  store float %.sroa.017.0.vec.extract, ptr %1124, align 4
  store float %1123, ptr %1125, align 4
  %1126 = load i32, ptr %21, align 4, !tbaa !5
  %1127 = mul i32 %1126, %35
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds %struct.complex, ptr %32, i64 %1128
  %1130 = call <2 x float> @Cf(ptr noundef %1129)
  %.sroa.016.0.vec.extract = extractelement <2 x float> %1130, i64 0
  %.sroa.016.4.vec.extract = extractelement <2 x float> %1130, i64 1
  %1131 = call <2 x float> @Cf(ptr noundef nonnull %17)
  %.sroa.015.0.vec.extract = extractelement <2 x float> %1131, i64 0
  %.sroa.015.4.vec.extract = extractelement <2 x float> %1131, i64 1
  %1132 = call <2 x float> @__divsc3(float noundef %.sroa.016.0.vec.extract, float noundef %.sroa.016.4.vec.extract, float noundef %.sroa.015.0.vec.extract, float noundef %.sroa.015.4.vec.extract) #6
  %1133 = call ptr @_pCf(ptr noundef nonnull %16)
  store <2 x float> %1132, ptr %1133, align 4
  %1134 = fneg float %1121
  %1135 = load <2 x float>, ptr %16, align 8, !tbaa !13
  %1136 = insertelement <2 x float> poison, float %1121, i64 0
  %1137 = insertelement <2 x float> %1136, float %1134, i64 1
  %1138 = fmul <2 x float> %1135, %1137
  %1139 = shufflevector <2 x float> %1138, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1140 = insertelement <2 x float> poison, float %1120, i64 0
  %1141 = shufflevector <2 x float> %1140, <2 x float> poison, <2 x i32> zeroinitializer
  %1142 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1141, <2 x float> %1135, <2 x float> %1139)
  store <2 x float> %1142, ptr %16, align 8, !tbaa !13
  %1143 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %1143, ptr %11, align 4, !tbaa !5
  %1144 = load i32, ptr %21, align 4, !tbaa !5
  %1145 = add nsw i32 %1144, 2
  store i32 %1145, ptr %20, align 4, !tbaa !5
  %.not11771359 = icmp sgt i32 %1145, %1143
  br i1 %.not11771359, label %.loopexit1268, label %.lr.ph1362

.lr.ph1362:                                       ; preds = %1106
  %1146 = extractelement <2 x float> %1142, i64 0
  %1147 = fadd float %1146, -1.000000e+00
  %1148 = fdiv float 1.000000e+00, %1147
  %1149 = shufflevector <2 x float> %1135, <2 x float> poison, <2 x i32> zeroinitializer
  %1150 = insertelement <2 x float> poison, float %1148, i64 0
  %1151 = shufflevector <2 x float> %1150, <2 x float> poison, <2 x i32> zeroinitializer
  %1152 = shufflevector <2 x float> %1135, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %1153 = fneg <2 x float> %1135
  %1154 = shufflevector <2 x float> %1152, <2 x float> %1153, <2 x i32> <i32 0, i32 3>
  br label %1155

1155:                                             ; preds = %.lr.ph1362, %1155
  %1156 = phi i32 [ %1145, %.lr.ph1362 ], [ %1216, %1155 ]
  %1157 = load i32, ptr %21, align 4, !tbaa !5
  %1158 = mul nsw i32 %1157, %26
  %1159 = add nsw i32 %1158, %1156
  store i32 %1159, ptr %12, align 4, !tbaa !5
  %1160 = mul nsw i32 %1157, %30
  %1161 = add nsw i32 %1160, %1156
  store i32 %1161, ptr %13, align 4, !tbaa !5
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds %struct.complex, ptr %32, i64 %1162
  %1164 = add nsw i32 %1157, 1
  %1165 = mul nsw i32 %1164, %30
  %1166 = add nsw i32 %1165, %1156
  store i32 %1166, ptr %14, align 4, !tbaa !5
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds %struct.complex, ptr %32, i64 %1167
  %1169 = load <2 x float>, ptr %1163, align 4, !tbaa !13
  %1170 = fmul <2 x float> %1169, %1137
  %1171 = shufflevector <2 x float> %1170, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1172 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1141, <2 x float> %1169, <2 x float> %1171)
  %1173 = load <2 x float>, ptr %1168, align 4, !tbaa !13
  %1174 = fsub <2 x float> %1172, %1173
  store <2 x float> %1174, ptr %18, align 8, !tbaa !13
  %1175 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.013.0.vec.extract = extractelement <2 x float> %1175, i64 0
  %.sroa.013.4.vec.extract = extractelement <2 x float> %1175, i64 1
  %1176 = fneg float %.sroa.013.4.vec.extract
  %1177 = call ptr @_pCf(ptr noundef nonnull %19)
  %1178 = getelementptr inbounds i8, ptr %1177, i64 4
  store float %.sroa.013.0.vec.extract, ptr %1177, align 4
  store float %1176, ptr %1178, align 4
  %1179 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %.sroa.012.0.vec.extract = extractelement <2 x float> %1179, i64 0
  %.sroa.012.4.vec.extract = extractelement <2 x float> %1179, i64 1
  %1180 = call <2 x float> @Cf(ptr noundef nonnull %19)
  %.sroa.011.0.vec.extract = extractelement <2 x float> %1180, i64 0
  %.sroa.011.4.vec.extract = extractelement <2 x float> %1180, i64 1
  %1181 = call <2 x float> @__divsc3(float noundef %.sroa.012.0.vec.extract, float noundef %.sroa.012.4.vec.extract, float noundef %.sroa.011.0.vec.extract, float noundef %.sroa.011.4.vec.extract) #6
  %1182 = call ptr @_pCf(ptr noundef nonnull %17)
  store <2 x float> %1181, ptr %1182, align 4
  %1183 = load <2 x float>, ptr %17, align 8, !tbaa !13
  %1184 = fmul <2 x float> %1151, %1183
  store <2 x float> %1184, ptr %16, align 8, !tbaa !13
  %1185 = load i32, ptr %12, align 4, !tbaa !5
  %1186 = sext i32 %1185 to i64
  %1187 = getelementptr inbounds %struct.complex, ptr %28, i64 %1186
  store <2 x float> %1184, ptr %1187, align 4, !tbaa !13
  %1188 = load i32, ptr %21, align 4, !tbaa !5
  %1189 = add nsw i32 %1188, 1
  %1190 = mul nsw i32 %1189, %26
  %1191 = add nsw i32 %1190, %1156
  store i32 %1191, ptr %12, align 4, !tbaa !5
  %1192 = mul nsw i32 %1189, %30
  %1193 = add nsw i32 %1192, %1156
  store i32 %1193, ptr %13, align 4, !tbaa !5
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds %struct.complex, ptr %32, i64 %1194
  %1196 = mul nsw i32 %1188, %30
  %1197 = add nsw i32 %1196, %1156
  store i32 %1197, ptr %14, align 4, !tbaa !5
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds %struct.complex, ptr %32, i64 %1198
  %1200 = load <2 x float>, ptr %1195, align 4, !tbaa !13
  %1201 = fmul <2 x float> %1200, %1154
  %1202 = shufflevector <2 x float> %1201, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1203 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1149, <2 x float> %1200, <2 x float> %1202)
  %1204 = load <2 x float>, ptr %1199, align 4, !tbaa !13
  %1205 = fsub <2 x float> %1203, %1204
  store <2 x float> %1205, ptr %18, align 8, !tbaa !13
  %1206 = call <2 x float> @Cf(ptr noundef nonnull %18)
  %.sroa.09.0.vec.extract = extractelement <2 x float> %1206, i64 0
  %.sroa.09.4.vec.extract = extractelement <2 x float> %1206, i64 1
  %1207 = call <2 x float> @Cf(ptr noundef nonnull %23)
  %.sroa.08.0.vec.extract = extractelement <2 x float> %1207, i64 0
  %.sroa.08.4.vec.extract = extractelement <2 x float> %1207, i64 1
  %1208 = call <2 x float> @__divsc3(float noundef %.sroa.09.0.vec.extract, float noundef %.sroa.09.4.vec.extract, float noundef %.sroa.08.0.vec.extract, float noundef %.sroa.08.4.vec.extract) #6
  %1209 = call ptr @_pCf(ptr noundef nonnull %17)
  store <2 x float> %1208, ptr %1209, align 4
  %1210 = load <2 x float>, ptr %17, align 8, !tbaa !13
  %1211 = fmul <2 x float> %1151, %1210
  store <2 x float> %1211, ptr %16, align 8, !tbaa !13
  %1212 = load i32, ptr %12, align 4, !tbaa !5
  %1213 = sext i32 %1212 to i64
  %1214 = getelementptr inbounds %struct.complex, ptr %28, i64 %1213
  store <2 x float> %1211, ptr %1214, align 4, !tbaa !13
  %1215 = load i32, ptr %20, align 4, !tbaa !5
  %1216 = add nsw i32 %1215, 1
  store i32 %1216, ptr %20, align 4, !tbaa !5
  %1217 = load i32, ptr %11, align 4, !tbaa !5
  %.not1177.not = icmp slt i32 %1215, %1217
  br i1 %.not1177.not, label %1155, label %.loopexit1268.loopexit, !llvm.loop !24

1218:                                             ; preds = %738, %727, %1092, %1039
  %.91101.ph = phi i32 [ %.811001474, %1039 ], [ %.811001474, %1092 ], [ %.pre1442, %727 ], [ %.pre1442, %738 ]
  %.111069.ph = phi i32 [ %.1010681476, %1039 ], [ %.1010681476, %1092 ], [ %.610641536, %727 ], [ %.610641536, %738 ]
  %.11.ph = phi i32 [ %.101477, %1039 ], [ %.101477, %1092 ], [ %.7, %727 ], [ %.7, %738 ]
  %1219 = load i32, ptr %21, align 4, !tbaa !5
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds i32, ptr %29, i64 %1220
  store i32 %.91101.ph, ptr %1221, align 4, !tbaa !5
  br label %1265

.loopexit1268.loopexit:                           ; preds = %1155
  %.pre1437 = load i32, ptr %21, align 4, !tbaa !5
  %.pre1438 = load i32, ptr %1, align 4, !tbaa !5
  br label %.loopexit1268

.loopexit1268:                                    ; preds = %.loopexit1268.loopexit, %1106, %1101
  %1222 = phi i32 [ %.pre1438, %.loopexit1268.loopexit ], [ %1143, %1106 ], [ %1103, %1101 ]
  %1223 = phi i32 [ %.pre1437, %.loopexit1268.loopexit ], [ %1144, %1106 ], [ %1102, %1101 ]
  %1224 = mul i32 %1223, %36
  %1225 = mul i32 %1223, %35
  %1226 = sext i32 %1225 to i64
  %1227 = getelementptr inbounds %struct.complex, ptr %32, i64 %1226
  %1228 = sext i32 %1224 to i64
  %1229 = getelementptr inbounds %struct.complex, ptr %28, i64 %1228
  %1230 = load <2 x float>, ptr %1227, align 4, !tbaa !13
  store <2 x float> %1230, ptr %1229, align 4, !tbaa !13
  %1231 = add nsw i32 %1223, 1
  %1232 = mul nsw i32 %1223, %26
  %1233 = add nsw i32 %1231, %1232
  %1234 = mul nsw i32 %1223, %30
  %1235 = add nsw i32 %1231, %1234
  %1236 = sext i32 %1235 to i64
  %1237 = getelementptr inbounds %struct.complex, ptr %32, i64 %1236
  %1238 = sext i32 %1233 to i64
  %1239 = getelementptr inbounds %struct.complex, ptr %28, i64 %1238
  %1240 = load <2 x float>, ptr %1237, align 4, !tbaa !13
  store <2 x float> %1240, ptr %1239, align 4, !tbaa !13
  %1241 = mul i32 %1231, %36
  %1242 = mul i32 %1231, %35
  store i32 %1242, ptr %12, align 4, !tbaa !5
  %1243 = sext i32 %1242 to i64
  %1244 = getelementptr inbounds %struct.complex, ptr %32, i64 %1243
  %1245 = sext i32 %1241 to i64
  %1246 = getelementptr inbounds %struct.complex, ptr %28, i64 %1245
  %1247 = load <2 x float>, ptr %1244, align 4, !tbaa !13
  store <2 x float> %1247, ptr %1246, align 4, !tbaa !13
  %1248 = sub nsw i32 %1222, %1223
  store i32 %1248, ptr %11, align 4, !tbaa !5
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef nonnull %1237, ptr noundef nonnull @c__1) #6
  %1249 = load i32, ptr %1, align 4, !tbaa !5
  %1250 = load i32, ptr %21, align 4, !tbaa !5
  %1251 = xor i32 %1250, -1
  %1252 = add i32 %1249, %1251
  store i32 %1252, ptr %11, align 4, !tbaa !5
  %1253 = add nsw i32 %1250, 2
  %1254 = add nsw i32 %1250, 1
  %1255 = mul nsw i32 %1254, %30
  %1256 = add nsw i32 %1253, %1255
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds %struct.complex, ptr %32, i64 %1257
  call void @clacgv_(ptr noundef nonnull %11, ptr noundef %1258, ptr noundef nonnull @c__1) #6
  %1259 = sub nsw i32 0, %.610761475
  %1260 = load i32, ptr %21, align 4, !tbaa !5
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds i32, ptr %29, i64 %1261
  store i32 %1259, ptr %1262, align 4, !tbaa !5
  %1263 = sub nsw i32 0, %.811001474
  %1264 = getelementptr i8, ptr %1262, i64 4
  store i32 %1263, ptr %1264, align 4, !tbaa !5
  br label %1265

1265:                                             ; preds = %.loopexit1268, %1218
  %1266 = phi i32 [ %1260, %.loopexit1268 ], [ %1219, %1218 ]
  %.111250 = phi i32 [ %.101477, %.loopexit1268 ], [ %.11.ph, %1218 ]
  %.1110691248 = phi i32 [ %.1010681476, %.loopexit1268 ], [ %.111069.ph, %1218 ]
  %.810861246 = phi i32 [ 2, %.loopexit1268 ], [ 1, %1218 ]
  %1267 = add nsw i32 %1266, %.810861246
  store i32 %1267, ptr %21, align 4, !tbaa !5
  %1268 = load i32, ptr %2, align 4, !tbaa !5
  %.not1171 = icmp sge i32 %1267, %1268
  %.pre1429 = load i32, ptr %1, align 4, !tbaa !5
  %1269 = icmp slt i32 %1268, %.pre1429
  %or.cond1478 = select i1 %.not1171, i1 %1269, i1 false
  %1270 = icmp sgt i32 %1267, %.pre1429
  %or.cond1479 = select i1 %or.cond1478, i1 true, i1 %1270
  br i1 %or.cond1479, label %._crit_edge1540, label %.lr.ph1539

._crit_edge1540:                                  ; preds = %1265, %.preheader1269
  %storemerge.lcssa = phi i32 [ 1, %.preheader1269 ], [ %1267, %1265 ]
  %.lcssa1521 = phi i32 [ %38, %.preheader1269 ], [ %1268, %1265 ]
  %.pre1429.lcssa = phi i32 [ %.pre14291532, %.preheader1269 ], [ %.pre1429, %1265 ]
  store i32 %.pre1429.lcssa, ptr %11, align 4, !tbaa !5
  store i32 %.lcssa1521, ptr %12, align 4, !tbaa !5
  %1271 = sext i32 %26 to i64
  %1272 = sext i32 %30 to i64
  %invariant.gep1504 = getelementptr %struct.complex, ptr %28, i64 %1271
  %invariant.gep1506 = getelementptr %struct.complex, ptr %32, i64 %1272
  br label %1273

1273:                                             ; preds = %1318, %._crit_edge1540
  %1274 = phi i32 [ %1319, %1318 ], [ %.lcssa1521, %._crit_edge1540 ]
  %1275 = phi i32 [ %1320, %1318 ], [ %storemerge.lcssa, %._crit_edge1540 ]
  %1276 = icmp slt i32 %1274, 0
  %1277 = load i32, ptr %11, align 4, !tbaa !5
  br i1 %1276, label %1278, label %1279

1278:                                             ; preds = %1273
  %.not1255 = icmp slt i32 %1275, %1277
  br i1 %.not1255, label %1321, label %1280

1279:                                             ; preds = %1273
  %.not1254 = icmp sgt i32 %1275, %1277
  br i1 %.not1254, label %1321, label %1280

1280:                                             ; preds = %1278, %1279
  %1281 = load i32, ptr %2, align 4, !tbaa !5
  %1282 = load i32, ptr %1, align 4, !tbaa !5
  %1283 = sub nsw i32 %1282, %1275
  %1284 = add nsw i32 %1283, 1
  store i32 %1284, ptr %14, align 4, !tbaa !5
  %1285 = call i32 @llvm.smin.i32(i32 %1281, i32 %1284)
  store i32 %1285, ptr %24, align 4, !tbaa !5
  %1286 = add i32 %1275, -1
  %1287 = add i32 %1286, %1285
  store i32 %1287, ptr %13, align 4, !tbaa !5
  %.not11821373 = icmp sgt i32 %1275, %1287
  br i1 %.not11821373, label %._crit_edge1377, label %.lr.ph1376.preheader

.lr.ph1376.preheader:                             ; preds = %1280
  %1288 = sext i32 %1275 to i64
  br label %.lr.ph1376

.lr.ph1376:                                       ; preds = %.lr.ph1376.preheader, %.lr.ph1376
  %indvars.iv1413 = phi i64 [ %1288, %.lr.ph1376.preheader ], [ %indvars.iv.next1414, %.lr.ph1376 ]
  %1289 = trunc nsw i64 %indvars.iv1413 to i32
  %1290 = mul i32 %36, %1289
  %1291 = sext i32 %1290 to i64
  %1292 = getelementptr inbounds %struct.complex, ptr %28, i64 %1291
  %1293 = getelementptr inbounds %struct.complex, ptr %28, i64 %1291, i32 1
  store float 0.000000e+00, ptr %1293, align 4, !tbaa !12
  %1294 = load i32, ptr %24, align 4, !tbaa !5
  %1295 = sub i32 %1275, %1289
  %1296 = add i32 %1295, %1294
  store i32 %1296, ptr %14, align 4, !tbaa !5
  %1297 = load i32, ptr %21, align 4, !tbaa !5
  %1298 = add nsw i32 %1297, -1
  store i32 %1298, ptr %15, align 4, !tbaa !5
  store <2 x float> <float -1.000000e+00, float 0.000000e+00>, ptr %16, align 8, !tbaa !13
  %gep1505 = getelementptr %struct.complex, ptr %invariant.gep1504, i64 %indvars.iv1413
  %gep1507 = getelementptr %struct.complex, ptr %invariant.gep1506, i64 %indvars.iv1413
  call void @cgemv_(ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef %gep1505, ptr noundef nonnull %5, ptr noundef %gep1507, ptr noundef nonnull %8, ptr noundef nonnull @c_b1, ptr noundef nonnull %1292, ptr noundef nonnull @c__1) #6
  store i32 %1290, ptr %14, align 4, !tbaa !5
  store i32 %1290, ptr %15, align 4, !tbaa !5
  store float 0.000000e+00, ptr %1293, align 4, !tbaa !12
  %indvars.iv.next1414 = add nsw i64 %indvars.iv1413, 1
  %1299 = load i32, ptr %13, align 4, !tbaa !5
  %1300 = sext i32 %1299 to i64
  %.not1182.not = icmp slt i64 %indvars.iv1413, %1300
  br i1 %.not1182.not, label %.lr.ph1376, label %._crit_edge1377.loopexit, !llvm.loop !25

._crit_edge1377.loopexit:                         ; preds = %.lr.ph1376
  %.pre1443 = load i32, ptr %24, align 4, !tbaa !5
  %.pre1444 = load i32, ptr %1, align 4, !tbaa !5
  br label %._crit_edge1377

._crit_edge1377:                                  ; preds = %._crit_edge1377.loopexit, %1280
  %1301 = phi i32 [ %.pre1444, %._crit_edge1377.loopexit ], [ %1282, %1280 ]
  %1302 = phi i32 [ %.pre1443, %._crit_edge1377.loopexit ], [ %1285, %1280 ]
  %1303 = add nsw i32 %1302, %1275
  %.not1183 = icmp sgt i32 %1303, %1301
  br i1 %.not1183, label %1318, label %1304

1304:                                             ; preds = %._crit_edge1377
  %reass.sub1383 = sub i32 %1301, %1303
  %1305 = add i32 %reass.sub1383, 1
  store i32 %1305, ptr %13, align 4, !tbaa !5
  %1306 = load i32, ptr %21, align 4, !tbaa !5
  %1307 = add nsw i32 %1306, -1
  store i32 %1307, ptr %14, align 4, !tbaa !5
  store <2 x float> <float -1.000000e+00, float 0.000000e+00>, ptr %16, align 8, !tbaa !13
  %1308 = add nsw i32 %1303, %26
  %1309 = sext i32 %1308 to i64
  %1310 = getelementptr inbounds %struct.complex, ptr %28, i64 %1309
  %1311 = add nsw i32 %1275, %30
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds %struct.complex, ptr %32, i64 %1312
  %1314 = mul nsw i32 %1275, %26
  %1315 = add nsw i32 %1303, %1314
  %1316 = sext i32 %1315 to i64
  %1317 = getelementptr inbounds %struct.complex, ptr %28, i64 %1316
  call void @cgemm_(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef nonnull %13, ptr noundef nonnull %24, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef %1310, ptr noundef nonnull %5, ptr noundef %1313, ptr noundef nonnull %8, ptr noundef nonnull @c_b1, ptr noundef %1317, ptr noundef nonnull %5) #6
  br label %1318

1318:                                             ; preds = %._crit_edge1377, %1304
  %1319 = load i32, ptr %12, align 4, !tbaa !5
  %1320 = add nsw i32 %1275, %1319
  br label %1273, !llvm.loop !26

1321:                                             ; preds = %1278, %1279
  %1322 = load i32, ptr %21, align 4, !tbaa !5
  %1323 = add nsw i32 %1322, -1
  br label %1324

1324:                                             ; preds = %thread-pre-split1252, %1321
  %1325 = phi i32 [ %1361, %thread-pre-split1252 ], [ %1323, %1321 ]
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds i32, ptr %29, i64 %1326
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = icmp slt i32 %1328, 0
  br i1 %1329, label %1330, label %1337

1330:                                             ; preds = %1324
  %1331 = sub nsw i32 0, %1328
  %1332 = add nsw i32 %1325, -1
  %1333 = sext i32 %1332 to i64
  %1334 = getelementptr inbounds i32, ptr %29, i64 %1333
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = sub nsw i32 0, %1335
  br label %1337

1337:                                             ; preds = %1330, %1324
  %1338 = phi i32 [ %1332, %1330 ], [ %1325, %1324 ]
  %.11111 = phi i32 [ %1331, %1330 ], [ %1328, %1324 ]
  %.11109 = phi i32 [ %1336, %1330 ], [ 1, %1324 ]
  %1339 = add nsw i32 %1338, -1
  store i32 %1339, ptr %20, align 4, !tbaa !5
  %1340 = icmp ne i32 %.11111, %1325
  %1341 = icmp sgt i32 %1338, 1
  %or.cond4 = and i1 %1340, %1341
  br i1 %or.cond4, label %1342, label %1349

1342:                                             ; preds = %1337
  %1343 = add nsw i32 %.11111, %26
  %1344 = sext i32 %1343 to i64
  %1345 = getelementptr inbounds %struct.complex, ptr %28, i64 %1344
  %1346 = add nsw i32 %1325, %26
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds %struct.complex, ptr %28, i64 %1347
  call void @cswap_(ptr noundef nonnull %20, ptr noundef %1345, ptr noundef nonnull %5, ptr noundef %1348, ptr noundef nonnull %5) #6
  %.pr1253.pre1445.pre = load i32, ptr %20, align 4
  br label %1349

1349:                                             ; preds = %1342, %1337
  %.pr1253.pre1445 = phi i32 [ %.pr1253.pre1445.pre, %1342 ], [ %1339, %1337 ]
  %1350 = add nsw i32 %1325, -1
  br i1 %1329, label %1351, label %thread-pre-split1252

1351:                                             ; preds = %1349
  %1352 = icmp ne i32 %.11109, %1350
  %1353 = icmp sgt i32 %.pr1253.pre1445, 0
  %or.cond7 = select i1 %1352, i1 %1353, i1 false
  br i1 %or.cond7, label %1354, label %thread-pre-split1252

1354:                                             ; preds = %1351
  %1355 = add nsw i32 %.11109, %26
  %1356 = sext i32 %1355 to i64
  %1357 = getelementptr inbounds %struct.complex, ptr %28, i64 %1356
  %1358 = add nsw i32 %1350, %26
  %1359 = sext i32 %1358 to i64
  %1360 = getelementptr inbounds %struct.complex, ptr %28, i64 %1359
  call void @cswap_(ptr noundef nonnull %20, ptr noundef %1357, ptr noundef nonnull %5, ptr noundef %1360, ptr noundef nonnull %5) #6
  %.pr1253.pre = load i32, ptr %20, align 4, !tbaa !5
  br label %thread-pre-split1252

thread-pre-split1252:                             ; preds = %1354, %1349, %1351
  %1361 = phi i32 [ %.pr1253.pre1445, %1351 ], [ %.pr1253.pre1445, %1349 ], [ %.pr1253.pre, %1354 ]
  %1362 = icmp sgt i32 %1361, 1
  br i1 %1362, label %1324, label %1363

1363:                                             ; preds = %thread-pre-split1252
  %1364 = load i32, ptr %21, align 4, !tbaa !5
  %1365 = add nsw i32 %1364, -1
  br label %1366

1366:                                             ; preds = %1363, %645
  %storemerge1180 = phi i32 [ %1365, %1363 ], [ %647, %645 ]
  store i32 %storemerge1180, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  ret void
}

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

declare void @csscal_(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 <2 x float> @__divsc3(float, float, float, float) local_unnamed_addr

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

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

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

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

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

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

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


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