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

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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1

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

96:                                               ; preds = %12
  store i32 1, ptr %50, align 4
  br label %4539

97:                                               ; preds = %12
  %98 = load ptr, ptr %22, align 8, !tbaa !5
  %99 = load float, ptr %98, align 4, !tbaa !11
  %100 = fcmp oeq float %99, 0.000000e+00
  br i1 %100, label %101, label %139

101:                                              ; preds = %97
  %102 = load ptr, ptr %15, align 8, !tbaa !5
  %103 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %103, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %104

104:                                              ; preds = %135, %101
  %105 = load i32, ptr %49, align 4, !tbaa !9
  %106 = load i32, ptr %29, align 4, !tbaa !9
  %107 = icmp sle i32 %105, %106
  br i1 %107, label %108, label %138

108:                                              ; preds = %104
  %109 = load ptr, ptr %14, align 8, !tbaa !5
  %110 = load i32, ptr %109, align 4, !tbaa !9
  store i32 %110, ptr %30, align 4, !tbaa !9
  store i32 1, ptr %48, align 4, !tbaa !9
  br label %111

111:                                              ; preds = %131, %108
  %112 = load i32, ptr %48, align 4, !tbaa !9
  %113 = load i32, ptr %30, align 4, !tbaa !9
  %114 = icmp sle i32 %112, %113
  br i1 %114, label %115, label %134

115:                                              ; preds = %111
  %116 = load i32, ptr %48, align 4, !tbaa !9
  %117 = load i32, ptr %49, align 4, !tbaa !9
  %118 = load i32, ptr %25, align 4, !tbaa !9
  %119 = mul nsw i32 %117, %118
  %120 = add nsw i32 %116, %119
  store i32 %120, ptr %31, align 4, !tbaa !9
  %121 = load ptr, ptr %23, align 8, !tbaa !5
  %122 = load i32, ptr %31, align 4, !tbaa !9
  %123 = sext i32 %122 to i64
  %124 = getelementptr inbounds %struct.complex, ptr %121, i64 %123
  %125 = getelementptr inbounds %struct.complex, ptr %124, i32 0, i32 0
  store float 0.000000e+00, ptr %125, align 4, !tbaa !13
  %126 = load ptr, ptr %23, align 8, !tbaa !5
  %127 = load i32, ptr %31, align 4, !tbaa !9
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds %struct.complex, ptr %126, i64 %128
  %130 = getelementptr inbounds %struct.complex, ptr %129, i32 0, i32 1
  store float 0.000000e+00, ptr %130, align 4, !tbaa !15
  br label %131

131:                                              ; preds = %115
  %132 = load i32, ptr %48, align 4, !tbaa !9
  %133 = add nsw i32 %132, 1
  store i32 %133, ptr %48, align 4, !tbaa !9
  br label %111, !llvm.loop !16

134:                                              ; preds = %111
  br label %135

135:                                              ; preds = %134
  %136 = load i32, ptr %49, align 4, !tbaa !9
  %137 = add nsw i32 %136, 1
  store i32 %137, ptr %49, align 4, !tbaa !9
  br label %104, !llvm.loop !18

138:                                              ; preds = %104
  br label %207

139:                                              ; preds = %97
  %140 = load ptr, ptr %22, align 8, !tbaa !5
  %141 = load float, ptr %140, align 4, !tbaa !11
  %142 = fcmp oeq float %141, -1.000000e+00
  br i1 %142, label %143, label %206

143:                                              ; preds = %139
  %144 = load ptr, ptr %15, align 8, !tbaa !5
  %145 = load i32, ptr %144, align 4, !tbaa !9
  store i32 %145, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %146

146:                                              ; preds = %202, %143
  %147 = load i32, ptr %49, align 4, !tbaa !9
  %148 = load i32, ptr %29, align 4, !tbaa !9
  %149 = icmp sle i32 %147, %148
  br i1 %149, label %150, label %205

150:                                              ; preds = %146
  %151 = load ptr, ptr %14, align 8, !tbaa !5
  %152 = load i32, ptr %151, align 4, !tbaa !9
  store i32 %152, ptr %30, align 4, !tbaa !9
  store i32 1, ptr %48, align 4, !tbaa !9
  br label %153

153:                                              ; preds = %198, %150
  %154 = load i32, ptr %48, align 4, !tbaa !9
  %155 = load i32, ptr %30, align 4, !tbaa !9
  %156 = icmp sle i32 %154, %155
  br i1 %156, label %157, label %201

157:                                              ; preds = %153
  %158 = load i32, ptr %48, align 4, !tbaa !9
  %159 = load i32, ptr %49, align 4, !tbaa !9
  %160 = load i32, ptr %25, align 4, !tbaa !9
  %161 = mul nsw i32 %159, %160
  %162 = add nsw i32 %158, %161
  store i32 %162, ptr %31, align 4, !tbaa !9
  %163 = load i32, ptr %48, align 4, !tbaa !9
  %164 = load i32, ptr %49, align 4, !tbaa !9
  %165 = load i32, ptr %25, align 4, !tbaa !9
  %166 = mul nsw i32 %164, %165
  %167 = add nsw i32 %163, %166
  store i32 %167, ptr %32, align 4, !tbaa !9
  %168 = load ptr, ptr %23, align 8, !tbaa !5
  %169 = load i32, ptr %32, align 4, !tbaa !9
  %170 = sext i32 %169 to i64
  %171 = getelementptr inbounds %struct.complex, ptr %168, i64 %170
  %172 = getelementptr inbounds %struct.complex, ptr %171, i32 0, i32 0
  %173 = load float, ptr %172, align 4, !tbaa !13
  %174 = fneg float %173
  %175 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %174, ptr %175, align 4, !tbaa !13
  %176 = load ptr, ptr %23, align 8, !tbaa !5
  %177 = load i32, ptr %32, align 4, !tbaa !9
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds %struct.complex, ptr %176, i64 %178
  %180 = getelementptr inbounds %struct.complex, ptr %179, i32 0, i32 1
  %181 = load float, ptr %180, align 4, !tbaa !15
  %182 = fneg float %181
  %183 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %182, ptr %183, align 4, !tbaa !15
  %184 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %185 = load float, ptr %184, align 4, !tbaa !13
  %186 = load ptr, ptr %23, align 8, !tbaa !5
  %187 = load i32, ptr %31, align 4, !tbaa !9
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds %struct.complex, ptr %186, i64 %188
  %190 = getelementptr inbounds %struct.complex, ptr %189, i32 0, i32 0
  store float %185, ptr %190, align 4, !tbaa !13
  %191 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %192 = load float, ptr %191, align 4, !tbaa !15
  %193 = load ptr, ptr %23, align 8, !tbaa !5
  %194 = load i32, ptr %31, align 4, !tbaa !9
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds %struct.complex, ptr %193, i64 %195
  %197 = getelementptr inbounds %struct.complex, ptr %196, i32 0, i32 1
  store float %192, ptr %197, align 4, !tbaa !15
  br label %198

198:                                              ; preds = %157
  %199 = load i32, ptr %48, align 4, !tbaa !9
  %200 = add nsw i32 %199, 1
  store i32 %200, ptr %48, align 4, !tbaa !9
  br label %153, !llvm.loop !19

201:                                              ; preds = %153
  br label %202

202:                                              ; preds = %201
  %203 = load i32, ptr %49, align 4, !tbaa !9
  %204 = add nsw i32 %203, 1
  store i32 %204, ptr %49, align 4, !tbaa !9
  br label %146, !llvm.loop !20

205:                                              ; preds = %146
  br label %206

206:                                              ; preds = %205, %139
  br label %207

207:                                              ; preds = %206, %138
  %208 = load ptr, ptr %16, align 8, !tbaa !5
  %209 = load float, ptr %208, align 4, !tbaa !11
  %210 = fcmp oeq float %209, 1.000000e+00
  br i1 %210, label %211, label %2372

211:                                              ; preds = %207
  %212 = load ptr, ptr %13, align 8, !tbaa !5
  %213 = call i32 @lsame_(ptr noundef %212, ptr noundef @.str)
  %214 = icmp ne i32 %213, 0
  br i1 %214, label %215, label %934

215:                                              ; preds = %211
  %216 = load ptr, ptr %15, align 8, !tbaa !5
  %217 = load i32, ptr %216, align 4, !tbaa !9
  store i32 %217, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %218

218:                                              ; preds = %930, %215
  %219 = load i32, ptr %49, align 4, !tbaa !9
  %220 = load i32, ptr %29, align 4, !tbaa !9
  %221 = icmp sle i32 %219, %220
  br i1 %221, label %222, label %933

222:                                              ; preds = %218
  %223 = load ptr, ptr %14, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !9
  %225 = icmp eq i32 %224, 1
  br i1 %225, label %226, label %320

226:                                              ; preds = %222
  %227 = load i32, ptr %49, align 4, !tbaa !9
  %228 = load i32, ptr %25, align 4, !tbaa !9
  %229 = mul nsw i32 %227, %228
  %230 = add nsw i32 %229, 1
  store i32 %230, ptr %30, align 4, !tbaa !9
  %231 = load i32, ptr %49, align 4, !tbaa !9
  %232 = load i32, ptr %25, align 4, !tbaa !9
  %233 = mul nsw i32 %231, %232
  %234 = add nsw i32 %233, 1
  store i32 %234, ptr %31, align 4, !tbaa !9
  %235 = load i32, ptr %49, align 4, !tbaa !9
  %236 = load i32, ptr %27, align 4, !tbaa !9
  %237 = mul nsw i32 %235, %236
  %238 = add nsw i32 %237, 1
  store i32 %238, ptr %32, align 4, !tbaa !9
  %239 = load ptr, ptr %18, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.complex, ptr %239, i64 1
  %241 = getelementptr inbounds %struct.complex, ptr %240, i32 0, i32 0
  %242 = load float, ptr %241, align 4, !tbaa !13
  %243 = load ptr, ptr %20, align 8, !tbaa !5
  %244 = load i32, ptr %32, align 4, !tbaa !9
  %245 = sext i32 %244 to i64
  %246 = getelementptr inbounds %struct.complex, ptr %243, i64 %245
  %247 = getelementptr inbounds %struct.complex, ptr %246, i32 0, i32 0
  %248 = load float, ptr %247, align 4, !tbaa !13
  %249 = load ptr, ptr %18, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.complex, ptr %249, i64 1
  %251 = getelementptr inbounds %struct.complex, ptr %250, i32 0, i32 1
  %252 = load float, ptr %251, align 4, !tbaa !15
  %253 = load ptr, ptr %20, align 8, !tbaa !5
  %254 = load i32, ptr %32, align 4, !tbaa !9
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds %struct.complex, ptr %253, i64 %255
  %257 = getelementptr inbounds %struct.complex, ptr %256, i32 0, i32 1
  %258 = load float, ptr %257, align 4, !tbaa !15
  %259 = fmul float %252, %258
  %260 = fneg float %259
  %261 = call float @llvm.fmuladd.f32(float %242, float %248, float %260)
  %262 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %261, ptr %262, align 4, !tbaa !13
  %263 = load ptr, ptr %18, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.complex, ptr %263, i64 1
  %265 = getelementptr inbounds %struct.complex, ptr %264, i32 0, i32 0
  %266 = load float, ptr %265, align 4, !tbaa !13
  %267 = load ptr, ptr %20, align 8, !tbaa !5
  %268 = load i32, ptr %32, 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
  %272 = load float, ptr %271, align 4, !tbaa !15
  %273 = load ptr, ptr %18, align 8, !tbaa !5
  %274 = getelementptr inbounds %struct.complex, ptr %273, i64 1
  %275 = getelementptr inbounds %struct.complex, ptr %274, i32 0, i32 1
  %276 = load float, ptr %275, align 4, !tbaa !15
  %277 = load ptr, ptr %20, align 8, !tbaa !5
  %278 = load i32, ptr %32, align 4, !tbaa !9
  %279 = sext i32 %278 to i64
  %280 = getelementptr inbounds %struct.complex, ptr %277, i64 %279
  %281 = getelementptr inbounds %struct.complex, ptr %280, i32 0, i32 0
  %282 = load float, ptr %281, align 4, !tbaa !13
  %283 = fmul float %276, %282
  %284 = call float @llvm.fmuladd.f32(float %266, float %272, float %283)
  %285 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %284, ptr %285, align 4, !tbaa !15
  %286 = load ptr, ptr %23, align 8, !tbaa !5
  %287 = load i32, ptr %31, align 4, !tbaa !9
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds %struct.complex, ptr %286, i64 %288
  %290 = getelementptr inbounds %struct.complex, ptr %289, i32 0, i32 0
  %291 = load float, ptr %290, align 4, !tbaa !13
  %292 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %293 = load float, ptr %292, align 4, !tbaa !13
  %294 = fadd float %291, %293
  %295 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %294, ptr %295, align 4, !tbaa !13
  %296 = load ptr, ptr %23, align 8, !tbaa !5
  %297 = load i32, ptr %31, align 4, !tbaa !9
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds %struct.complex, ptr %296, i64 %298
  %300 = getelementptr inbounds %struct.complex, ptr %299, i32 0, i32 1
  %301 = load float, ptr %300, align 4, !tbaa !15
  %302 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %303 = load float, ptr %302, align 4, !tbaa !15
  %304 = fadd float %301, %303
  %305 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %304, ptr %305, align 4, !tbaa !15
  %306 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %307 = load float, ptr %306, align 4, !tbaa !13
  %308 = load ptr, ptr %23, align 8, !tbaa !5
  %309 = load i32, ptr %30, align 4, !tbaa !9
  %310 = sext i32 %309 to i64
  %311 = getelementptr inbounds %struct.complex, ptr %308, i64 %310
  %312 = getelementptr inbounds %struct.complex, ptr %311, i32 0, i32 0
  store float %307, ptr %312, align 4, !tbaa !13
  %313 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %314 = load float, ptr %313, align 4, !tbaa !15
  %315 = load ptr, ptr %23, align 8, !tbaa !5
  %316 = load i32, ptr %30, align 4, !tbaa !9
  %317 = sext i32 %316 to i64
  %318 = getelementptr inbounds %struct.complex, ptr %315, i64 %317
  %319 = getelementptr inbounds %struct.complex, ptr %318, i32 0, i32 1
  store float %314, ptr %319, align 4, !tbaa !15
  br label %929

320:                                              ; preds = %222
  %321 = load i32, ptr %49, align 4, !tbaa !9
  %322 = load i32, ptr %25, align 4, !tbaa !9
  %323 = mul nsw i32 %321, %322
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr %30, align 4, !tbaa !9
  %325 = load i32, ptr %49, align 4, !tbaa !9
  %326 = load i32, ptr %25, align 4, !tbaa !9
  %327 = mul nsw i32 %325, %326
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr %31, align 4, !tbaa !9
  %329 = load i32, ptr %49, align 4, !tbaa !9
  %330 = load i32, ptr %27, align 4, !tbaa !9
  %331 = mul nsw i32 %329, %330
  %332 = add nsw i32 %331, 1
  store i32 %332, ptr %32, align 4, !tbaa !9
  %333 = load ptr, ptr %18, align 8, !tbaa !5
  %334 = getelementptr inbounds %struct.complex, ptr %333, i64 1
  %335 = getelementptr inbounds %struct.complex, ptr %334, i32 0, i32 0
  %336 = load float, ptr %335, align 4, !tbaa !13
  %337 = load ptr, ptr %20, align 8, !tbaa !5
  %338 = load i32, ptr %32, align 4, !tbaa !9
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds %struct.complex, ptr %337, i64 %339
  %341 = getelementptr inbounds %struct.complex, ptr %340, i32 0, i32 0
  %342 = load float, ptr %341, align 4, !tbaa !13
  %343 = load ptr, ptr %18, align 8, !tbaa !5
  %344 = getelementptr inbounds %struct.complex, ptr %343, i64 1
  %345 = getelementptr inbounds %struct.complex, ptr %344, i32 0, i32 1
  %346 = load float, ptr %345, align 4, !tbaa !15
  %347 = load ptr, ptr %20, align 8, !tbaa !5
  %348 = load i32, ptr %32, align 4, !tbaa !9
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds %struct.complex, ptr %347, i64 %349
  %351 = getelementptr inbounds %struct.complex, ptr %350, i32 0, i32 1
  %352 = load float, ptr %351, align 4, !tbaa !15
  %353 = fmul float %346, %352
  %354 = fneg float %353
  %355 = call float @llvm.fmuladd.f32(float %336, float %342, float %354)
  %356 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %355, ptr %356, align 4, !tbaa !13
  %357 = load ptr, ptr %18, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.complex, ptr %357, i64 1
  %359 = getelementptr inbounds %struct.complex, ptr %358, i32 0, i32 0
  %360 = load float, ptr %359, align 4, !tbaa !13
  %361 = load ptr, ptr %20, align 8, !tbaa !5
  %362 = load i32, ptr %32, align 4, !tbaa !9
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds %struct.complex, ptr %361, i64 %363
  %365 = getelementptr inbounds %struct.complex, ptr %364, i32 0, i32 1
  %366 = load float, ptr %365, align 4, !tbaa !15
  %367 = load ptr, ptr %18, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.complex, ptr %367, i64 1
  %369 = getelementptr inbounds %struct.complex, ptr %368, i32 0, i32 1
  %370 = load float, ptr %369, align 4, !tbaa !15
  %371 = load ptr, ptr %20, align 8, !tbaa !5
  %372 = load i32, ptr %32, align 4, !tbaa !9
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds %struct.complex, ptr %371, i64 %373
  %375 = getelementptr inbounds %struct.complex, ptr %374, i32 0, i32 0
  %376 = load float, ptr %375, align 4, !tbaa !13
  %377 = fmul float %370, %376
  %378 = call float @llvm.fmuladd.f32(float %360, float %366, float %377)
  %379 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %378, ptr %379, align 4, !tbaa !15
  %380 = load ptr, ptr %23, align 8, !tbaa !5
  %381 = load i32, ptr %31, 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
  %386 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %387 = load float, ptr %386, align 4, !tbaa !13
  %388 = fadd float %385, %387
  %389 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %388, ptr %389, align 4, !tbaa !13
  %390 = load ptr, ptr %23, align 8, !tbaa !5
  %391 = load i32, ptr %31, align 4, !tbaa !9
  %392 = sext i32 %391 to i64
  %393 = getelementptr inbounds %struct.complex, ptr %390, i64 %392
  %394 = getelementptr inbounds %struct.complex, ptr %393, i32 0, i32 1
  %395 = load float, ptr %394, align 4, !tbaa !15
  %396 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %397 = load float, ptr %396, align 4, !tbaa !15
  %398 = fadd float %395, %397
  %399 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %398, ptr %399, align 4, !tbaa !15
  %400 = load i32, ptr %49, align 4, !tbaa !9
  %401 = load i32, ptr %27, align 4, !tbaa !9
  %402 = mul nsw i32 %400, %401
  %403 = add nsw i32 %402, 2
  store i32 %403, ptr %33, align 4, !tbaa !9
  %404 = load ptr, ptr %19, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.complex, ptr %404, i64 1
  %406 = getelementptr inbounds %struct.complex, ptr %405, i32 0, i32 0
  %407 = load float, ptr %406, align 4, !tbaa !13
  %408 = load ptr, ptr %20, align 8, !tbaa !5
  %409 = load i32, ptr %33, align 4, !tbaa !9
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds %struct.complex, ptr %408, i64 %410
  %412 = getelementptr inbounds %struct.complex, ptr %411, i32 0, i32 0
  %413 = load float, ptr %412, align 4, !tbaa !13
  %414 = load ptr, ptr %19, align 8, !tbaa !5
  %415 = getelementptr inbounds %struct.complex, ptr %414, i64 1
  %416 = getelementptr inbounds %struct.complex, ptr %415, i32 0, i32 1
  %417 = load float, ptr %416, align 4, !tbaa !15
  %418 = load ptr, ptr %20, align 8, !tbaa !5
  %419 = load i32, ptr %33, align 4, !tbaa !9
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds %struct.complex, ptr %418, i64 %420
  %422 = getelementptr inbounds %struct.complex, ptr %421, i32 0, i32 1
  %423 = load float, ptr %422, align 4, !tbaa !15
  %424 = fmul float %417, %423
  %425 = fneg float %424
  %426 = call float @llvm.fmuladd.f32(float %407, float %413, float %425)
  %427 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %426, ptr %427, align 4, !tbaa !13
  %428 = load ptr, ptr %19, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.complex, ptr %428, i64 1
  %430 = getelementptr inbounds %struct.complex, ptr %429, i32 0, i32 0
  %431 = load float, ptr %430, align 4, !tbaa !13
  %432 = load ptr, ptr %20, align 8, !tbaa !5
  %433 = load i32, ptr %33, align 4, !tbaa !9
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds %struct.complex, ptr %432, i64 %434
  %436 = getelementptr inbounds %struct.complex, ptr %435, i32 0, i32 1
  %437 = load float, ptr %436, align 4, !tbaa !15
  %438 = load ptr, ptr %19, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.complex, ptr %438, i64 1
  %440 = getelementptr inbounds %struct.complex, ptr %439, i32 0, i32 1
  %441 = load float, ptr %440, align 4, !tbaa !15
  %442 = load ptr, ptr %20, align 8, !tbaa !5
  %443 = load i32, ptr %33, align 4, !tbaa !9
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds %struct.complex, ptr %442, i64 %444
  %446 = getelementptr inbounds %struct.complex, ptr %445, i32 0, i32 0
  %447 = load float, ptr %446, align 4, !tbaa !13
  %448 = fmul float %441, %447
  %449 = call float @llvm.fmuladd.f32(float %431, float %437, float %448)
  %450 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %449, ptr %450, align 4, !tbaa !15
  %451 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %452 = load float, ptr %451, align 4, !tbaa !13
  %453 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %454 = load float, ptr %453, align 4, !tbaa !13
  %455 = fadd float %452, %454
  %456 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %455, ptr %456, align 4, !tbaa !13
  %457 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %458 = load float, ptr %457, align 4, !tbaa !15
  %459 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %460 = load float, ptr %459, align 4, !tbaa !15
  %461 = fadd float %458, %460
  %462 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %461, ptr %462, align 4, !tbaa !15
  %463 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %464 = load float, ptr %463, align 4, !tbaa !13
  %465 = load ptr, ptr %23, align 8, !tbaa !5
  %466 = load i32, ptr %30, align 4, !tbaa !9
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds %struct.complex, ptr %465, i64 %467
  %469 = getelementptr inbounds %struct.complex, ptr %468, i32 0, i32 0
  store float %464, ptr %469, align 4, !tbaa !13
  %470 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %471 = load float, ptr %470, align 4, !tbaa !15
  %472 = load ptr, ptr %23, align 8, !tbaa !5
  %473 = load i32, ptr %30, align 4, !tbaa !9
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds %struct.complex, ptr %472, i64 %474
  %476 = getelementptr inbounds %struct.complex, ptr %475, i32 0, i32 1
  store float %471, ptr %476, align 4, !tbaa !15
  %477 = load ptr, ptr %14, align 8, !tbaa !5
  %478 = load i32, ptr %477, align 4, !tbaa !9
  %479 = load i32, ptr %49, align 4, !tbaa !9
  %480 = load i32, ptr %25, align 4, !tbaa !9
  %481 = mul nsw i32 %479, %480
  %482 = add nsw i32 %478, %481
  store i32 %482, ptr %30, align 4, !tbaa !9
  %483 = load ptr, ptr %14, align 8, !tbaa !5
  %484 = load i32, ptr %483, align 4, !tbaa !9
  %485 = load i32, ptr %49, align 4, !tbaa !9
  %486 = load i32, ptr %25, align 4, !tbaa !9
  %487 = mul nsw i32 %485, %486
  %488 = add nsw i32 %484, %487
  store i32 %488, ptr %31, align 4, !tbaa !9
  %489 = load ptr, ptr %14, align 8, !tbaa !5
  %490 = load i32, ptr %489, align 4, !tbaa !9
  %491 = sub nsw i32 %490, 1
  store i32 %491, ptr %32, align 4, !tbaa !9
  %492 = load ptr, ptr %14, align 8, !tbaa !5
  %493 = load i32, ptr %492, align 4, !tbaa !9
  %494 = sub nsw i32 %493, 1
  %495 = load i32, ptr %49, align 4, !tbaa !9
  %496 = load i32, ptr %27, align 4, !tbaa !9
  %497 = mul nsw i32 %495, %496
  %498 = add nsw i32 %494, %497
  store i32 %498, ptr %33, align 4, !tbaa !9
  %499 = load ptr, ptr %17, align 8, !tbaa !5
  %500 = load i32, ptr %32, align 4, !tbaa !9
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds %struct.complex, ptr %499, i64 %501
  %503 = getelementptr inbounds %struct.complex, ptr %502, i32 0, i32 0
  %504 = load float, ptr %503, align 4, !tbaa !13
  %505 = load ptr, ptr %20, align 8, !tbaa !5
  %506 = load i32, ptr %33, align 4, !tbaa !9
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds %struct.complex, ptr %505, i64 %507
  %509 = getelementptr inbounds %struct.complex, ptr %508, i32 0, i32 0
  %510 = load float, ptr %509, align 4, !tbaa !13
  %511 = load ptr, ptr %17, align 8, !tbaa !5
  %512 = load i32, ptr %32, align 4, !tbaa !9
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds %struct.complex, ptr %511, i64 %513
  %515 = getelementptr inbounds %struct.complex, ptr %514, i32 0, i32 1
  %516 = load float, ptr %515, align 4, !tbaa !15
  %517 = load ptr, ptr %20, align 8, !tbaa !5
  %518 = load i32, ptr %33, align 4, !tbaa !9
  %519 = sext i32 %518 to i64
  %520 = getelementptr inbounds %struct.complex, ptr %517, i64 %519
  %521 = getelementptr inbounds %struct.complex, ptr %520, i32 0, i32 1
  %522 = load float, ptr %521, align 4, !tbaa !15
  %523 = fmul float %516, %522
  %524 = fneg float %523
  %525 = call float @llvm.fmuladd.f32(float %504, float %510, float %524)
  %526 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %525, ptr %526, align 4, !tbaa !13
  %527 = load ptr, ptr %17, align 8, !tbaa !5
  %528 = load i32, ptr %32, align 4, !tbaa !9
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds %struct.complex, ptr %527, i64 %529
  %531 = getelementptr inbounds %struct.complex, ptr %530, i32 0, i32 0
  %532 = load float, ptr %531, align 4, !tbaa !13
  %533 = load ptr, ptr %20, align 8, !tbaa !5
  %534 = load i32, ptr %33, align 4, !tbaa !9
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds %struct.complex, ptr %533, i64 %535
  %537 = getelementptr inbounds %struct.complex, ptr %536, i32 0, i32 1
  %538 = load float, ptr %537, align 4, !tbaa !15
  %539 = load ptr, ptr %17, align 8, !tbaa !5
  %540 = load i32, ptr %32, align 4, !tbaa !9
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds %struct.complex, ptr %539, i64 %541
  %543 = getelementptr inbounds %struct.complex, ptr %542, i32 0, i32 1
  %544 = load float, ptr %543, align 4, !tbaa !15
  %545 = load ptr, ptr %20, align 8, !tbaa !5
  %546 = load i32, ptr %33, align 4, !tbaa !9
  %547 = sext i32 %546 to i64
  %548 = getelementptr inbounds %struct.complex, ptr %545, i64 %547
  %549 = getelementptr inbounds %struct.complex, ptr %548, i32 0, i32 0
  %550 = load float, ptr %549, align 4, !tbaa !13
  %551 = fmul float %544, %550
  %552 = call float @llvm.fmuladd.f32(float %532, float %538, float %551)
  %553 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %552, ptr %553, align 4, !tbaa !15
  %554 = load ptr, ptr %23, align 8, !tbaa !5
  %555 = load i32, ptr %31, align 4, !tbaa !9
  %556 = sext i32 %555 to i64
  %557 = getelementptr inbounds %struct.complex, ptr %554, i64 %556
  %558 = getelementptr inbounds %struct.complex, ptr %557, i32 0, i32 0
  %559 = load float, ptr %558, align 4, !tbaa !13
  %560 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %561 = load float, ptr %560, align 4, !tbaa !13
  %562 = fadd float %559, %561
  %563 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %562, ptr %563, align 4, !tbaa !13
  %564 = load ptr, ptr %23, align 8, !tbaa !5
  %565 = load i32, ptr %31, align 4, !tbaa !9
  %566 = sext i32 %565 to i64
  %567 = getelementptr inbounds %struct.complex, ptr %564, i64 %566
  %568 = getelementptr inbounds %struct.complex, ptr %567, i32 0, i32 1
  %569 = load float, ptr %568, align 4, !tbaa !15
  %570 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %571 = load float, ptr %570, align 4, !tbaa !15
  %572 = fadd float %569, %571
  %573 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %572, ptr %573, align 4, !tbaa !15
  %574 = load ptr, ptr %14, align 8, !tbaa !5
  %575 = load i32, ptr %574, align 4, !tbaa !9
  store i32 %575, ptr %34, align 4, !tbaa !9
  %576 = load ptr, ptr %14, align 8, !tbaa !5
  %577 = load i32, ptr %576, align 4, !tbaa !9
  %578 = load i32, ptr %49, align 4, !tbaa !9
  %579 = load i32, ptr %27, align 4, !tbaa !9
  %580 = mul nsw i32 %578, %579
  %581 = add nsw i32 %577, %580
  store i32 %581, ptr %35, align 4, !tbaa !9
  %582 = load ptr, ptr %18, align 8, !tbaa !5
  %583 = load i32, ptr %34, align 4, !tbaa !9
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds %struct.complex, ptr %582, i64 %584
  %586 = getelementptr inbounds %struct.complex, ptr %585, i32 0, i32 0
  %587 = load float, ptr %586, align 4, !tbaa !13
  %588 = load ptr, ptr %20, align 8, !tbaa !5
  %589 = load i32, ptr %35, align 4, !tbaa !9
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds %struct.complex, ptr %588, i64 %590
  %592 = getelementptr inbounds %struct.complex, ptr %591, i32 0, i32 0
  %593 = load float, ptr %592, align 4, !tbaa !13
  %594 = load ptr, ptr %18, align 8, !tbaa !5
  %595 = load i32, ptr %34, align 4, !tbaa !9
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds %struct.complex, ptr %594, i64 %596
  %598 = getelementptr inbounds %struct.complex, ptr %597, i32 0, i32 1
  %599 = load float, ptr %598, align 4, !tbaa !15
  %600 = load ptr, ptr %20, align 8, !tbaa !5
  %601 = load i32, ptr %35, align 4, !tbaa !9
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds %struct.complex, ptr %600, i64 %602
  %604 = getelementptr inbounds %struct.complex, ptr %603, i32 0, i32 1
  %605 = load float, ptr %604, align 4, !tbaa !15
  %606 = fmul float %599, %605
  %607 = fneg float %606
  %608 = call float @llvm.fmuladd.f32(float %587, float %593, float %607)
  %609 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %608, ptr %609, align 4, !tbaa !13
  %610 = load ptr, ptr %18, align 8, !tbaa !5
  %611 = load i32, ptr %34, align 4, !tbaa !9
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds %struct.complex, ptr %610, i64 %612
  %614 = getelementptr inbounds %struct.complex, ptr %613, i32 0, i32 0
  %615 = load float, ptr %614, align 4, !tbaa !13
  %616 = load ptr, ptr %20, align 8, !tbaa !5
  %617 = load i32, ptr %35, align 4, !tbaa !9
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds %struct.complex, ptr %616, i64 %618
  %620 = getelementptr inbounds %struct.complex, ptr %619, i32 0, i32 1
  %621 = load float, ptr %620, align 4, !tbaa !15
  %622 = load ptr, ptr %18, align 8, !tbaa !5
  %623 = load i32, ptr %34, align 4, !tbaa !9
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds %struct.complex, ptr %622, i64 %624
  %626 = getelementptr inbounds %struct.complex, ptr %625, i32 0, i32 1
  %627 = load float, ptr %626, align 4, !tbaa !15
  %628 = load ptr, ptr %20, align 8, !tbaa !5
  %629 = load i32, ptr %35, align 4, !tbaa !9
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds %struct.complex, ptr %628, i64 %630
  %632 = getelementptr inbounds %struct.complex, ptr %631, i32 0, i32 0
  %633 = load float, ptr %632, align 4, !tbaa !13
  %634 = fmul float %627, %633
  %635 = call float @llvm.fmuladd.f32(float %615, float %621, float %634)
  %636 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %635, ptr %636, align 4, !tbaa !15
  %637 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %638 = load float, ptr %637, align 4, !tbaa !13
  %639 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %640 = load float, ptr %639, align 4, !tbaa !13
  %641 = fadd float %638, %640
  %642 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %641, ptr %642, align 4, !tbaa !13
  %643 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %644 = load float, ptr %643, align 4, !tbaa !15
  %645 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %646 = load float, ptr %645, align 4, !tbaa !15
  %647 = fadd float %644, %646
  %648 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %647, ptr %648, align 4, !tbaa !15
  %649 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %650 = load float, ptr %649, align 4, !tbaa !13
  %651 = load ptr, ptr %23, align 8, !tbaa !5
  %652 = load i32, ptr %30, align 4, !tbaa !9
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds %struct.complex, ptr %651, i64 %653
  %655 = getelementptr inbounds %struct.complex, ptr %654, i32 0, i32 0
  store float %650, ptr %655, align 4, !tbaa !13
  %656 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %657 = load float, ptr %656, align 4, !tbaa !15
  %658 = load ptr, ptr %23, align 8, !tbaa !5
  %659 = load i32, ptr %30, align 4, !tbaa !9
  %660 = sext i32 %659 to i64
  %661 = getelementptr inbounds %struct.complex, ptr %658, i64 %660
  %662 = getelementptr inbounds %struct.complex, ptr %661, i32 0, i32 1
  store float %657, ptr %662, align 4, !tbaa !15
  %663 = load ptr, ptr %14, align 8, !tbaa !5
  %664 = load i32, ptr %663, align 4, !tbaa !9
  %665 = sub nsw i32 %664, 1
  store i32 %665, ptr %30, align 4, !tbaa !9
  store i32 2, ptr %48, align 4, !tbaa !9
  br label %666

666:                                              ; preds = %925, %320
  %667 = load i32, ptr %48, align 4, !tbaa !9
  %668 = load i32, ptr %30, align 4, !tbaa !9
  %669 = icmp sle i32 %667, %668
  br i1 %669, label %670, label %928

670:                                              ; preds = %666
  %671 = load i32, ptr %48, align 4, !tbaa !9
  %672 = load i32, ptr %49, align 4, !tbaa !9
  %673 = load i32, ptr %25, align 4, !tbaa !9
  %674 = mul nsw i32 %672, %673
  %675 = add nsw i32 %671, %674
  store i32 %675, ptr %31, align 4, !tbaa !9
  %676 = load i32, ptr %48, align 4, !tbaa !9
  %677 = load i32, ptr %49, align 4, !tbaa !9
  %678 = load i32, ptr %25, align 4, !tbaa !9
  %679 = mul nsw i32 %677, %678
  %680 = add nsw i32 %676, %679
  store i32 %680, ptr %32, align 4, !tbaa !9
  %681 = load i32, ptr %48, align 4, !tbaa !9
  %682 = sub nsw i32 %681, 1
  store i32 %682, ptr %33, align 4, !tbaa !9
  %683 = load i32, ptr %48, align 4, !tbaa !9
  %684 = sub nsw i32 %683, 1
  %685 = load i32, ptr %49, align 4, !tbaa !9
  %686 = load i32, ptr %27, align 4, !tbaa !9
  %687 = mul nsw i32 %685, %686
  %688 = add nsw i32 %684, %687
  store i32 %688, ptr %34, align 4, !tbaa !9
  %689 = load ptr, ptr %17, align 8, !tbaa !5
  %690 = load i32, ptr %33, align 4, !tbaa !9
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds %struct.complex, ptr %689, i64 %691
  %693 = getelementptr inbounds %struct.complex, ptr %692, i32 0, i32 0
  %694 = load float, ptr %693, align 4, !tbaa !13
  %695 = load ptr, ptr %20, align 8, !tbaa !5
  %696 = load i32, ptr %34, align 4, !tbaa !9
  %697 = sext i32 %696 to i64
  %698 = getelementptr inbounds %struct.complex, ptr %695, i64 %697
  %699 = getelementptr inbounds %struct.complex, ptr %698, i32 0, i32 0
  %700 = load float, ptr %699, align 4, !tbaa !13
  %701 = load ptr, ptr %17, align 8, !tbaa !5
  %702 = load i32, ptr %33, align 4, !tbaa !9
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds %struct.complex, ptr %701, i64 %703
  %705 = getelementptr inbounds %struct.complex, ptr %704, i32 0, i32 1
  %706 = load float, ptr %705, align 4, !tbaa !15
  %707 = load ptr, ptr %20, align 8, !tbaa !5
  %708 = load i32, ptr %34, align 4, !tbaa !9
  %709 = sext i32 %708 to i64
  %710 = getelementptr inbounds %struct.complex, ptr %707, i64 %709
  %711 = getelementptr inbounds %struct.complex, ptr %710, i32 0, i32 1
  %712 = load float, ptr %711, align 4, !tbaa !15
  %713 = fmul float %706, %712
  %714 = fneg float %713
  %715 = call float @llvm.fmuladd.f32(float %694, float %700, float %714)
  %716 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %715, ptr %716, align 4, !tbaa !13
  %717 = load ptr, ptr %17, align 8, !tbaa !5
  %718 = load i32, ptr %33, align 4, !tbaa !9
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds %struct.complex, ptr %717, i64 %719
  %721 = getelementptr inbounds %struct.complex, ptr %720, i32 0, i32 0
  %722 = load float, ptr %721, align 4, !tbaa !13
  %723 = load ptr, ptr %20, align 8, !tbaa !5
  %724 = load i32, ptr %34, align 4, !tbaa !9
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds %struct.complex, ptr %723, i64 %725
  %727 = getelementptr inbounds %struct.complex, ptr %726, i32 0, i32 1
  %728 = load float, ptr %727, align 4, !tbaa !15
  %729 = load ptr, ptr %17, align 8, !tbaa !5
  %730 = load i32, ptr %33, align 4, !tbaa !9
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds %struct.complex, ptr %729, i64 %731
  %733 = getelementptr inbounds %struct.complex, ptr %732, i32 0, i32 1
  %734 = load float, ptr %733, align 4, !tbaa !15
  %735 = load ptr, ptr %20, align 8, !tbaa !5
  %736 = load i32, ptr %34, align 4, !tbaa !9
  %737 = sext i32 %736 to i64
  %738 = getelementptr inbounds %struct.complex, ptr %735, i64 %737
  %739 = getelementptr inbounds %struct.complex, ptr %738, i32 0, i32 0
  %740 = load float, ptr %739, align 4, !tbaa !13
  %741 = fmul float %734, %740
  %742 = call float @llvm.fmuladd.f32(float %722, float %728, float %741)
  %743 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %742, ptr %743, align 4, !tbaa !15
  %744 = load ptr, ptr %23, align 8, !tbaa !5
  %745 = load i32, ptr %32, align 4, !tbaa !9
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds %struct.complex, ptr %744, i64 %746
  %748 = getelementptr inbounds %struct.complex, ptr %747, i32 0, i32 0
  %749 = load float, ptr %748, align 4, !tbaa !13
  %750 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %751 = load float, ptr %750, align 4, !tbaa !13
  %752 = fadd float %749, %751
  %753 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %752, ptr %753, align 4, !tbaa !13
  %754 = load ptr, ptr %23, align 8, !tbaa !5
  %755 = load i32, ptr %32, align 4, !tbaa !9
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds %struct.complex, ptr %754, i64 %756
  %758 = getelementptr inbounds %struct.complex, ptr %757, i32 0, i32 1
  %759 = load float, ptr %758, align 4, !tbaa !15
  %760 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %761 = load float, ptr %760, align 4, !tbaa !15
  %762 = fadd float %759, %761
  %763 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %762, ptr %763, align 4, !tbaa !15
  %764 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %764, ptr %35, align 4, !tbaa !9
  %765 = load i32, ptr %48, align 4, !tbaa !9
  %766 = load i32, ptr %49, align 4, !tbaa !9
  %767 = load i32, ptr %27, align 4, !tbaa !9
  %768 = mul nsw i32 %766, %767
  %769 = add nsw i32 %765, %768
  store i32 %769, ptr %36, align 4, !tbaa !9
  %770 = load ptr, ptr %18, align 8, !tbaa !5
  %771 = load i32, ptr %35, align 4, !tbaa !9
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds %struct.complex, ptr %770, i64 %772
  %774 = getelementptr inbounds %struct.complex, ptr %773, i32 0, i32 0
  %775 = load float, ptr %774, align 4, !tbaa !13
  %776 = load ptr, ptr %20, align 8, !tbaa !5
  %777 = load i32, ptr %36, align 4, !tbaa !9
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds %struct.complex, ptr %776, i64 %778
  %780 = getelementptr inbounds %struct.complex, ptr %779, i32 0, i32 0
  %781 = load float, ptr %780, align 4, !tbaa !13
  %782 = load ptr, ptr %18, align 8, !tbaa !5
  %783 = load i32, ptr %35, align 4, !tbaa !9
  %784 = sext i32 %783 to i64
  %785 = getelementptr inbounds %struct.complex, ptr %782, i64 %784
  %786 = getelementptr inbounds %struct.complex, ptr %785, i32 0, i32 1
  %787 = load float, ptr %786, align 4, !tbaa !15
  %788 = load ptr, ptr %20, align 8, !tbaa !5
  %789 = load i32, ptr %36, align 4, !tbaa !9
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds %struct.complex, ptr %788, i64 %790
  %792 = getelementptr inbounds %struct.complex, ptr %791, i32 0, i32 1
  %793 = load float, ptr %792, align 4, !tbaa !15
  %794 = fmul float %787, %793
  %795 = fneg float %794
  %796 = call float @llvm.fmuladd.f32(float %775, float %781, float %795)
  %797 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %796, ptr %797, align 4, !tbaa !13
  %798 = load ptr, ptr %18, align 8, !tbaa !5
  %799 = load i32, ptr %35, align 4, !tbaa !9
  %800 = sext i32 %799 to i64
  %801 = getelementptr inbounds %struct.complex, ptr %798, i64 %800
  %802 = getelementptr inbounds %struct.complex, ptr %801, i32 0, i32 0
  %803 = load float, ptr %802, align 4, !tbaa !13
  %804 = load ptr, ptr %20, align 8, !tbaa !5
  %805 = load i32, ptr %36, align 4, !tbaa !9
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds %struct.complex, ptr %804, i64 %806
  %808 = getelementptr inbounds %struct.complex, ptr %807, i32 0, i32 1
  %809 = load float, ptr %808, align 4, !tbaa !15
  %810 = load ptr, ptr %18, align 8, !tbaa !5
  %811 = load i32, ptr %35, align 4, !tbaa !9
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds %struct.complex, ptr %810, i64 %812
  %814 = getelementptr inbounds %struct.complex, ptr %813, i32 0, i32 1
  %815 = load float, ptr %814, align 4, !tbaa !15
  %816 = load ptr, ptr %20, align 8, !tbaa !5
  %817 = load i32, ptr %36, align 4, !tbaa !9
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds %struct.complex, ptr %816, i64 %818
  %820 = getelementptr inbounds %struct.complex, ptr %819, i32 0, i32 0
  %821 = load float, ptr %820, align 4, !tbaa !13
  %822 = fmul float %815, %821
  %823 = call float @llvm.fmuladd.f32(float %803, float %809, float %822)
  %824 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %823, ptr %824, align 4, !tbaa !15
  %825 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %826 = load float, ptr %825, align 4, !tbaa !13
  %827 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %828 = load float, ptr %827, align 4, !tbaa !13
  %829 = fadd float %826, %828
  %830 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %829, ptr %830, align 4, !tbaa !13
  %831 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %832 = load float, ptr %831, align 4, !tbaa !15
  %833 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %834 = load float, ptr %833, align 4, !tbaa !15
  %835 = fadd float %832, %834
  %836 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %835, ptr %836, align 4, !tbaa !15
  %837 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %837, ptr %37, align 4, !tbaa !9
  %838 = load i32, ptr %48, align 4, !tbaa !9
  %839 = add nsw i32 %838, 1
  %840 = load i32, ptr %49, align 4, !tbaa !9
  %841 = load i32, ptr %27, align 4, !tbaa !9
  %842 = mul nsw i32 %840, %841
  %843 = add nsw i32 %839, %842
  store i32 %843, ptr %38, align 4, !tbaa !9
  %844 = load ptr, ptr %19, align 8, !tbaa !5
  %845 = load i32, ptr %37, align 4, !tbaa !9
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds %struct.complex, ptr %844, i64 %846
  %848 = getelementptr inbounds %struct.complex, ptr %847, i32 0, i32 0
  %849 = load float, ptr %848, align 4, !tbaa !13
  %850 = load ptr, ptr %20, align 8, !tbaa !5
  %851 = load i32, ptr %38, align 4, !tbaa !9
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds %struct.complex, ptr %850, i64 %852
  %854 = getelementptr inbounds %struct.complex, ptr %853, i32 0, i32 0
  %855 = load float, ptr %854, align 4, !tbaa !13
  %856 = load ptr, ptr %19, align 8, !tbaa !5
  %857 = load i32, ptr %37, align 4, !tbaa !9
  %858 = sext i32 %857 to i64
  %859 = getelementptr inbounds %struct.complex, ptr %856, i64 %858
  %860 = getelementptr inbounds %struct.complex, ptr %859, i32 0, i32 1
  %861 = load float, ptr %860, align 4, !tbaa !15
  %862 = load ptr, ptr %20, align 8, !tbaa !5
  %863 = load i32, ptr %38, align 4, !tbaa !9
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds %struct.complex, ptr %862, i64 %864
  %866 = getelementptr inbounds %struct.complex, ptr %865, i32 0, i32 1
  %867 = load float, ptr %866, align 4, !tbaa !15
  %868 = fmul float %861, %867
  %869 = fneg float %868
  %870 = call float @llvm.fmuladd.f32(float %849, float %855, float %869)
  %871 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %870, ptr %871, align 4, !tbaa !13
  %872 = load ptr, ptr %19, align 8, !tbaa !5
  %873 = load i32, ptr %37, align 4, !tbaa !9
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds %struct.complex, ptr %872, i64 %874
  %876 = getelementptr inbounds %struct.complex, ptr %875, i32 0, i32 0
  %877 = load float, ptr %876, align 4, !tbaa !13
  %878 = load ptr, ptr %20, align 8, !tbaa !5
  %879 = load i32, ptr %38, align 4, !tbaa !9
  %880 = sext i32 %879 to i64
  %881 = getelementptr inbounds %struct.complex, ptr %878, i64 %880
  %882 = getelementptr inbounds %struct.complex, ptr %881, i32 0, i32 1
  %883 = load float, ptr %882, align 4, !tbaa !15
  %884 = load ptr, ptr %19, align 8, !tbaa !5
  %885 = load i32, ptr %37, align 4, !tbaa !9
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds %struct.complex, ptr %884, i64 %886
  %888 = getelementptr inbounds %struct.complex, ptr %887, i32 0, i32 1
  %889 = load float, ptr %888, align 4, !tbaa !15
  %890 = load ptr, ptr %20, align 8, !tbaa !5
  %891 = load i32, ptr %38, align 4, !tbaa !9
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds %struct.complex, ptr %890, i64 %892
  %894 = getelementptr inbounds %struct.complex, ptr %893, i32 0, i32 0
  %895 = load float, ptr %894, align 4, !tbaa !13
  %896 = fmul float %889, %895
  %897 = call float @llvm.fmuladd.f32(float %877, float %883, float %896)
  %898 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %897, ptr %898, align 4, !tbaa !15
  %899 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %900 = load float, ptr %899, align 4, !tbaa !13
  %901 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %902 = load float, ptr %901, align 4, !tbaa !13
  %903 = fadd float %900, %902
  %904 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %903, ptr %904, align 4, !tbaa !13
  %905 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %906 = load float, ptr %905, align 4, !tbaa !15
  %907 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %908 = load float, ptr %907, align 4, !tbaa !15
  %909 = fadd float %906, %908
  %910 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %909, ptr %910, align 4, !tbaa !15
  %911 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %912 = load float, ptr %911, align 4, !tbaa !13
  %913 = load ptr, ptr %23, align 8, !tbaa !5
  %914 = load i32, ptr %31, align 4, !tbaa !9
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds %struct.complex, ptr %913, i64 %915
  %917 = getelementptr inbounds %struct.complex, ptr %916, i32 0, i32 0
  store float %912, ptr %917, align 4, !tbaa !13
  %918 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %919 = load float, ptr %918, align 4, !tbaa !15
  %920 = load ptr, ptr %23, align 8, !tbaa !5
  %921 = load i32, ptr %31, align 4, !tbaa !9
  %922 = sext i32 %921 to i64
  %923 = getelementptr inbounds %struct.complex, ptr %920, i64 %922
  %924 = getelementptr inbounds %struct.complex, ptr %923, i32 0, i32 1
  store float %919, ptr %924, align 4, !tbaa !15
  br label %925

925:                                              ; preds = %670
  %926 = load i32, ptr %48, align 4, !tbaa !9
  %927 = add nsw i32 %926, 1
  store i32 %927, ptr %48, align 4, !tbaa !9
  br label %666, !llvm.loop !21

928:                                              ; preds = %666
  br label %929

929:                                              ; preds = %928, %226
  br label %930

930:                                              ; preds = %929
  %931 = load i32, ptr %49, align 4, !tbaa !9
  %932 = add nsw i32 %931, 1
  store i32 %932, ptr %49, align 4, !tbaa !9
  br label %218, !llvm.loop !22

933:                                              ; preds = %218
  br label %2371

934:                                              ; preds = %211
  %935 = load ptr, ptr %13, align 8, !tbaa !5
  %936 = call i32 @lsame_(ptr noundef %935, ptr noundef @.str.1)
  %937 = icmp ne i32 %936, 0
  br i1 %937, label %938, label %1657

938:                                              ; preds = %934
  %939 = load ptr, ptr %15, align 8, !tbaa !5
  %940 = load i32, ptr %939, align 4, !tbaa !9
  store i32 %940, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %941

941:                                              ; preds = %1653, %938
  %942 = load i32, ptr %49, align 4, !tbaa !9
  %943 = load i32, ptr %29, align 4, !tbaa !9
  %944 = icmp sle i32 %942, %943
  br i1 %944, label %945, label %1656

945:                                              ; preds = %941
  %946 = load ptr, ptr %14, align 8, !tbaa !5
  %947 = load i32, ptr %946, align 4, !tbaa !9
  %948 = icmp eq i32 %947, 1
  br i1 %948, label %949, label %1043

949:                                              ; preds = %945
  %950 = load i32, ptr %49, align 4, !tbaa !9
  %951 = load i32, ptr %25, align 4, !tbaa !9
  %952 = mul nsw i32 %950, %951
  %953 = add nsw i32 %952, 1
  store i32 %953, ptr %30, align 4, !tbaa !9
  %954 = load i32, ptr %49, align 4, !tbaa !9
  %955 = load i32, ptr %25, align 4, !tbaa !9
  %956 = mul nsw i32 %954, %955
  %957 = add nsw i32 %956, 1
  store i32 %957, ptr %31, align 4, !tbaa !9
  %958 = load i32, ptr %49, align 4, !tbaa !9
  %959 = load i32, ptr %27, align 4, !tbaa !9
  %960 = mul nsw i32 %958, %959
  %961 = add nsw i32 %960, 1
  store i32 %961, ptr %32, align 4, !tbaa !9
  %962 = load ptr, ptr %18, align 8, !tbaa !5
  %963 = getelementptr inbounds %struct.complex, ptr %962, i64 1
  %964 = getelementptr inbounds %struct.complex, ptr %963, i32 0, i32 0
  %965 = load float, ptr %964, align 4, !tbaa !13
  %966 = load ptr, ptr %20, align 8, !tbaa !5
  %967 = load i32, ptr %32, align 4, !tbaa !9
  %968 = sext i32 %967 to i64
  %969 = getelementptr inbounds %struct.complex, ptr %966, i64 %968
  %970 = getelementptr inbounds %struct.complex, ptr %969, i32 0, i32 0
  %971 = load float, ptr %970, align 4, !tbaa !13
  %972 = load ptr, ptr %18, align 8, !tbaa !5
  %973 = getelementptr inbounds %struct.complex, ptr %972, i64 1
  %974 = getelementptr inbounds %struct.complex, ptr %973, i32 0, i32 1
  %975 = load float, ptr %974, align 4, !tbaa !15
  %976 = load ptr, ptr %20, align 8, !tbaa !5
  %977 = load i32, ptr %32, align 4, !tbaa !9
  %978 = sext i32 %977 to i64
  %979 = getelementptr inbounds %struct.complex, ptr %976, i64 %978
  %980 = getelementptr inbounds %struct.complex, ptr %979, i32 0, i32 1
  %981 = load float, ptr %980, align 4, !tbaa !15
  %982 = fmul float %975, %981
  %983 = fneg float %982
  %984 = call float @llvm.fmuladd.f32(float %965, float %971, float %983)
  %985 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %984, ptr %985, align 4, !tbaa !13
  %986 = load ptr, ptr %18, align 8, !tbaa !5
  %987 = getelementptr inbounds %struct.complex, ptr %986, i64 1
  %988 = getelementptr inbounds %struct.complex, ptr %987, i32 0, i32 0
  %989 = load float, ptr %988, align 4, !tbaa !13
  %990 = load ptr, ptr %20, align 8, !tbaa !5
  %991 = load i32, ptr %32, align 4, !tbaa !9
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds %struct.complex, ptr %990, i64 %992
  %994 = getelementptr inbounds %struct.complex, ptr %993, i32 0, i32 1
  %995 = load float, ptr %994, align 4, !tbaa !15
  %996 = load ptr, ptr %18, align 8, !tbaa !5
  %997 = getelementptr inbounds %struct.complex, ptr %996, i64 1
  %998 = getelementptr inbounds %struct.complex, ptr %997, i32 0, i32 1
  %999 = load float, ptr %998, align 4, !tbaa !15
  %1000 = load ptr, ptr %20, align 8, !tbaa !5
  %1001 = load i32, ptr %32, align 4, !tbaa !9
  %1002 = sext i32 %1001 to i64
  %1003 = getelementptr inbounds %struct.complex, ptr %1000, i64 %1002
  %1004 = getelementptr inbounds %struct.complex, ptr %1003, i32 0, i32 0
  %1005 = load float, ptr %1004, align 4, !tbaa !13
  %1006 = fmul float %999, %1005
  %1007 = call float @llvm.fmuladd.f32(float %989, float %995, float %1006)
  %1008 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %1007, ptr %1008, align 4, !tbaa !15
  %1009 = load ptr, ptr %23, align 8, !tbaa !5
  %1010 = load i32, ptr %31, align 4, !tbaa !9
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds %struct.complex, ptr %1009, i64 %1011
  %1013 = getelementptr inbounds %struct.complex, ptr %1012, i32 0, i32 0
  %1014 = load float, ptr %1013, align 4, !tbaa !13
  %1015 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %1016 = load float, ptr %1015, align 4, !tbaa !13
  %1017 = fadd float %1014, %1016
  %1018 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %1017, ptr %1018, align 4, !tbaa !13
  %1019 = load ptr, ptr %23, align 8, !tbaa !5
  %1020 = load i32, ptr %31, align 4, !tbaa !9
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds %struct.complex, ptr %1019, i64 %1021
  %1023 = getelementptr inbounds %struct.complex, ptr %1022, i32 0, i32 1
  %1024 = load float, ptr %1023, align 4, !tbaa !15
  %1025 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %1026 = load float, ptr %1025, align 4, !tbaa !15
  %1027 = fadd float %1024, %1026
  %1028 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %1027, ptr %1028, align 4, !tbaa !15
  %1029 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %1030 = load float, ptr %1029, align 4, !tbaa !13
  %1031 = load ptr, ptr %23, align 8, !tbaa !5
  %1032 = load i32, ptr %30, align 4, !tbaa !9
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds %struct.complex, ptr %1031, i64 %1033
  %1035 = getelementptr inbounds %struct.complex, ptr %1034, i32 0, i32 0
  store float %1030, ptr %1035, align 4, !tbaa !13
  %1036 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %1037 = load float, ptr %1036, align 4, !tbaa !15
  %1038 = load ptr, ptr %23, align 8, !tbaa !5
  %1039 = load i32, ptr %30, align 4, !tbaa !9
  %1040 = sext i32 %1039 to i64
  %1041 = getelementptr inbounds %struct.complex, ptr %1038, i64 %1040
  %1042 = getelementptr inbounds %struct.complex, ptr %1041, i32 0, i32 1
  store float %1037, ptr %1042, align 4, !tbaa !15
  br label %1652

1043:                                             ; preds = %945
  %1044 = load i32, ptr %49, align 4, !tbaa !9
  %1045 = load i32, ptr %25, align 4, !tbaa !9
  %1046 = mul nsw i32 %1044, %1045
  %1047 = add nsw i32 %1046, 1
  store i32 %1047, ptr %30, align 4, !tbaa !9
  %1048 = load i32, ptr %49, align 4, !tbaa !9
  %1049 = load i32, ptr %25, align 4, !tbaa !9
  %1050 = mul nsw i32 %1048, %1049
  %1051 = add nsw i32 %1050, 1
  store i32 %1051, ptr %31, align 4, !tbaa !9
  %1052 = load i32, ptr %49, align 4, !tbaa !9
  %1053 = load i32, ptr %27, align 4, !tbaa !9
  %1054 = mul nsw i32 %1052, %1053
  %1055 = add nsw i32 %1054, 1
  store i32 %1055, ptr %32, align 4, !tbaa !9
  %1056 = load ptr, ptr %18, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.complex, ptr %1056, i64 1
  %1058 = getelementptr inbounds %struct.complex, ptr %1057, i32 0, i32 0
  %1059 = load float, ptr %1058, align 4, !tbaa !13
  %1060 = load ptr, ptr %20, align 8, !tbaa !5
  %1061 = load i32, ptr %32, align 4, !tbaa !9
  %1062 = sext i32 %1061 to i64
  %1063 = getelementptr inbounds %struct.complex, ptr %1060, i64 %1062
  %1064 = getelementptr inbounds %struct.complex, ptr %1063, i32 0, i32 0
  %1065 = load float, ptr %1064, align 4, !tbaa !13
  %1066 = load ptr, ptr %18, align 8, !tbaa !5
  %1067 = getelementptr inbounds %struct.complex, ptr %1066, i64 1
  %1068 = getelementptr inbounds %struct.complex, ptr %1067, i32 0, i32 1
  %1069 = load float, ptr %1068, align 4, !tbaa !15
  %1070 = load ptr, ptr %20, align 8, !tbaa !5
  %1071 = load i32, ptr %32, align 4, !tbaa !9
  %1072 = sext i32 %1071 to i64
  %1073 = getelementptr inbounds %struct.complex, ptr %1070, i64 %1072
  %1074 = getelementptr inbounds %struct.complex, ptr %1073, i32 0, i32 1
  %1075 = load float, ptr %1074, align 4, !tbaa !15
  %1076 = fmul float %1069, %1075
  %1077 = fneg float %1076
  %1078 = call float @llvm.fmuladd.f32(float %1059, float %1065, float %1077)
  %1079 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %1078, ptr %1079, align 4, !tbaa !13
  %1080 = load ptr, ptr %18, align 8, !tbaa !5
  %1081 = getelementptr inbounds %struct.complex, ptr %1080, i64 1
  %1082 = getelementptr inbounds %struct.complex, ptr %1081, i32 0, i32 0
  %1083 = load float, ptr %1082, align 4, !tbaa !13
  %1084 = load ptr, ptr %20, align 8, !tbaa !5
  %1085 = load i32, ptr %32, align 4, !tbaa !9
  %1086 = sext i32 %1085 to i64
  %1087 = getelementptr inbounds %struct.complex, ptr %1084, i64 %1086
  %1088 = getelementptr inbounds %struct.complex, ptr %1087, i32 0, i32 1
  %1089 = load float, ptr %1088, align 4, !tbaa !15
  %1090 = load ptr, ptr %18, align 8, !tbaa !5
  %1091 = getelementptr inbounds %struct.complex, ptr %1090, i64 1
  %1092 = getelementptr inbounds %struct.complex, ptr %1091, i32 0, i32 1
  %1093 = load float, ptr %1092, align 4, !tbaa !15
  %1094 = load ptr, ptr %20, align 8, !tbaa !5
  %1095 = load i32, ptr %32, align 4, !tbaa !9
  %1096 = sext i32 %1095 to i64
  %1097 = getelementptr inbounds %struct.complex, ptr %1094, i64 %1096
  %1098 = getelementptr inbounds %struct.complex, ptr %1097, i32 0, i32 0
  %1099 = load float, ptr %1098, align 4, !tbaa !13
  %1100 = fmul float %1093, %1099
  %1101 = call float @llvm.fmuladd.f32(float %1083, float %1089, float %1100)
  %1102 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %1101, ptr %1102, align 4, !tbaa !15
  %1103 = load ptr, ptr %23, align 8, !tbaa !5
  %1104 = load i32, ptr %31, align 4, !tbaa !9
  %1105 = sext i32 %1104 to i64
  %1106 = getelementptr inbounds %struct.complex, ptr %1103, i64 %1105
  %1107 = getelementptr inbounds %struct.complex, ptr %1106, i32 0, i32 0
  %1108 = load float, ptr %1107, align 4, !tbaa !13
  %1109 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1110 = load float, ptr %1109, align 4, !tbaa !13
  %1111 = fadd float %1108, %1110
  %1112 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %1111, ptr %1112, align 4, !tbaa !13
  %1113 = load ptr, ptr %23, align 8, !tbaa !5
  %1114 = load i32, ptr %31, align 4, !tbaa !9
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds %struct.complex, ptr %1113, i64 %1115
  %1117 = getelementptr inbounds %struct.complex, ptr %1116, i32 0, i32 1
  %1118 = load float, ptr %1117, align 4, !tbaa !15
  %1119 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1120 = load float, ptr %1119, align 4, !tbaa !15
  %1121 = fadd float %1118, %1120
  %1122 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %1121, ptr %1122, align 4, !tbaa !15
  %1123 = load i32, ptr %49, align 4, !tbaa !9
  %1124 = load i32, ptr %27, align 4, !tbaa !9
  %1125 = mul nsw i32 %1123, %1124
  %1126 = add nsw i32 %1125, 2
  store i32 %1126, ptr %33, align 4, !tbaa !9
  %1127 = load ptr, ptr %17, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.complex, ptr %1127, i64 1
  %1129 = getelementptr inbounds %struct.complex, ptr %1128, i32 0, i32 0
  %1130 = load float, ptr %1129, align 4, !tbaa !13
  %1131 = load ptr, ptr %20, align 8, !tbaa !5
  %1132 = load i32, ptr %33, align 4, !tbaa !9
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds %struct.complex, ptr %1131, i64 %1133
  %1135 = getelementptr inbounds %struct.complex, ptr %1134, i32 0, i32 0
  %1136 = load float, ptr %1135, align 4, !tbaa !13
  %1137 = load ptr, ptr %17, align 8, !tbaa !5
  %1138 = getelementptr inbounds %struct.complex, ptr %1137, i64 1
  %1139 = getelementptr inbounds %struct.complex, ptr %1138, i32 0, i32 1
  %1140 = load float, ptr %1139, align 4, !tbaa !15
  %1141 = load ptr, ptr %20, align 8, !tbaa !5
  %1142 = load i32, ptr %33, align 4, !tbaa !9
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds %struct.complex, ptr %1141, i64 %1143
  %1145 = getelementptr inbounds %struct.complex, ptr %1144, i32 0, i32 1
  %1146 = load float, ptr %1145, align 4, !tbaa !15
  %1147 = fmul float %1140, %1146
  %1148 = fneg float %1147
  %1149 = call float @llvm.fmuladd.f32(float %1130, float %1136, float %1148)
  %1150 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1149, ptr %1150, align 4, !tbaa !13
  %1151 = load ptr, ptr %17, align 8, !tbaa !5
  %1152 = getelementptr inbounds %struct.complex, ptr %1151, i64 1
  %1153 = getelementptr inbounds %struct.complex, ptr %1152, i32 0, i32 0
  %1154 = load float, ptr %1153, align 4, !tbaa !13
  %1155 = load ptr, ptr %20, align 8, !tbaa !5
  %1156 = load i32, ptr %33, align 4, !tbaa !9
  %1157 = sext i32 %1156 to i64
  %1158 = getelementptr inbounds %struct.complex, ptr %1155, i64 %1157
  %1159 = getelementptr inbounds %struct.complex, ptr %1158, i32 0, i32 1
  %1160 = load float, ptr %1159, align 4, !tbaa !15
  %1161 = load ptr, ptr %17, align 8, !tbaa !5
  %1162 = getelementptr inbounds %struct.complex, ptr %1161, i64 1
  %1163 = getelementptr inbounds %struct.complex, ptr %1162, i32 0, i32 1
  %1164 = load float, ptr %1163, align 4, !tbaa !15
  %1165 = load ptr, ptr %20, align 8, !tbaa !5
  %1166 = load i32, ptr %33, align 4, !tbaa !9
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds %struct.complex, ptr %1165, i64 %1167
  %1169 = getelementptr inbounds %struct.complex, ptr %1168, i32 0, i32 0
  %1170 = load float, ptr %1169, align 4, !tbaa !13
  %1171 = fmul float %1164, %1170
  %1172 = call float @llvm.fmuladd.f32(float %1154, float %1160, float %1171)
  %1173 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1172, ptr %1173, align 4, !tbaa !15
  %1174 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %1175 = load float, ptr %1174, align 4, !tbaa !13
  %1176 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1177 = load float, ptr %1176, align 4, !tbaa !13
  %1178 = fadd float %1175, %1177
  %1179 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %1178, ptr %1179, align 4, !tbaa !13
  %1180 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %1181 = load float, ptr %1180, align 4, !tbaa !15
  %1182 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1183 = load float, ptr %1182, align 4, !tbaa !15
  %1184 = fadd float %1181, %1183
  %1185 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %1184, ptr %1185, align 4, !tbaa !15
  %1186 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %1187 = load float, ptr %1186, align 4, !tbaa !13
  %1188 = load ptr, ptr %23, align 8, !tbaa !5
  %1189 = load i32, ptr %30, align 4, !tbaa !9
  %1190 = sext i32 %1189 to i64
  %1191 = getelementptr inbounds %struct.complex, ptr %1188, i64 %1190
  %1192 = getelementptr inbounds %struct.complex, ptr %1191, i32 0, i32 0
  store float %1187, ptr %1192, align 4, !tbaa !13
  %1193 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %1194 = load float, ptr %1193, align 4, !tbaa !15
  %1195 = load ptr, ptr %23, align 8, !tbaa !5
  %1196 = load i32, ptr %30, align 4, !tbaa !9
  %1197 = sext i32 %1196 to i64
  %1198 = getelementptr inbounds %struct.complex, ptr %1195, i64 %1197
  %1199 = getelementptr inbounds %struct.complex, ptr %1198, i32 0, i32 1
  store float %1194, ptr %1199, align 4, !tbaa !15
  %1200 = load ptr, ptr %14, align 8, !tbaa !5
  %1201 = load i32, ptr %1200, align 4, !tbaa !9
  %1202 = load i32, ptr %49, align 4, !tbaa !9
  %1203 = load i32, ptr %25, align 4, !tbaa !9
  %1204 = mul nsw i32 %1202, %1203
  %1205 = add nsw i32 %1201, %1204
  store i32 %1205, ptr %30, align 4, !tbaa !9
  %1206 = load ptr, ptr %14, align 8, !tbaa !5
  %1207 = load i32, ptr %1206, align 4, !tbaa !9
  %1208 = load i32, ptr %49, align 4, !tbaa !9
  %1209 = load i32, ptr %25, align 4, !tbaa !9
  %1210 = mul nsw i32 %1208, %1209
  %1211 = add nsw i32 %1207, %1210
  store i32 %1211, ptr %31, align 4, !tbaa !9
  %1212 = load ptr, ptr %14, align 8, !tbaa !5
  %1213 = load i32, ptr %1212, align 4, !tbaa !9
  %1214 = sub nsw i32 %1213, 1
  store i32 %1214, ptr %32, align 4, !tbaa !9
  %1215 = load ptr, ptr %14, align 8, !tbaa !5
  %1216 = load i32, ptr %1215, align 4, !tbaa !9
  %1217 = sub nsw i32 %1216, 1
  %1218 = load i32, ptr %49, align 4, !tbaa !9
  %1219 = load i32, ptr %27, align 4, !tbaa !9
  %1220 = mul nsw i32 %1218, %1219
  %1221 = add nsw i32 %1217, %1220
  store i32 %1221, ptr %33, align 4, !tbaa !9
  %1222 = load ptr, ptr %19, align 8, !tbaa !5
  %1223 = load i32, ptr %32, align 4, !tbaa !9
  %1224 = sext i32 %1223 to i64
  %1225 = getelementptr inbounds %struct.complex, ptr %1222, i64 %1224
  %1226 = getelementptr inbounds %struct.complex, ptr %1225, i32 0, i32 0
  %1227 = load float, ptr %1226, align 4, !tbaa !13
  %1228 = load ptr, ptr %20, align 8, !tbaa !5
  %1229 = load i32, ptr %33, align 4, !tbaa !9
  %1230 = sext i32 %1229 to i64
  %1231 = getelementptr inbounds %struct.complex, ptr %1228, i64 %1230
  %1232 = getelementptr inbounds %struct.complex, ptr %1231, i32 0, i32 0
  %1233 = load float, ptr %1232, align 4, !tbaa !13
  %1234 = load ptr, ptr %19, align 8, !tbaa !5
  %1235 = load i32, ptr %32, align 4, !tbaa !9
  %1236 = sext i32 %1235 to i64
  %1237 = getelementptr inbounds %struct.complex, ptr %1234, i64 %1236
  %1238 = getelementptr inbounds %struct.complex, ptr %1237, i32 0, i32 1
  %1239 = load float, ptr %1238, align 4, !tbaa !15
  %1240 = load ptr, ptr %20, align 8, !tbaa !5
  %1241 = load i32, ptr %33, align 4, !tbaa !9
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds %struct.complex, ptr %1240, i64 %1242
  %1244 = getelementptr inbounds %struct.complex, ptr %1243, i32 0, i32 1
  %1245 = load float, ptr %1244, align 4, !tbaa !15
  %1246 = fmul float %1239, %1245
  %1247 = fneg float %1246
  %1248 = call float @llvm.fmuladd.f32(float %1227, float %1233, float %1247)
  %1249 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %1248, ptr %1249, align 4, !tbaa !13
  %1250 = load ptr, ptr %19, align 8, !tbaa !5
  %1251 = load i32, ptr %32, align 4, !tbaa !9
  %1252 = sext i32 %1251 to i64
  %1253 = getelementptr inbounds %struct.complex, ptr %1250, i64 %1252
  %1254 = getelementptr inbounds %struct.complex, ptr %1253, i32 0, i32 0
  %1255 = load float, ptr %1254, align 4, !tbaa !13
  %1256 = load ptr, ptr %20, align 8, !tbaa !5
  %1257 = load i32, ptr %33, align 4, !tbaa !9
  %1258 = sext i32 %1257 to i64
  %1259 = getelementptr inbounds %struct.complex, ptr %1256, i64 %1258
  %1260 = getelementptr inbounds %struct.complex, ptr %1259, i32 0, i32 1
  %1261 = load float, ptr %1260, align 4, !tbaa !15
  %1262 = load ptr, ptr %19, align 8, !tbaa !5
  %1263 = load i32, ptr %32, align 4, !tbaa !9
  %1264 = sext i32 %1263 to i64
  %1265 = getelementptr inbounds %struct.complex, ptr %1262, i64 %1264
  %1266 = getelementptr inbounds %struct.complex, ptr %1265, i32 0, i32 1
  %1267 = load float, ptr %1266, align 4, !tbaa !15
  %1268 = load ptr, ptr %20, align 8, !tbaa !5
  %1269 = load i32, ptr %33, align 4, !tbaa !9
  %1270 = sext i32 %1269 to i64
  %1271 = getelementptr inbounds %struct.complex, ptr %1268, i64 %1270
  %1272 = getelementptr inbounds %struct.complex, ptr %1271, i32 0, i32 0
  %1273 = load float, ptr %1272, align 4, !tbaa !13
  %1274 = fmul float %1267, %1273
  %1275 = call float @llvm.fmuladd.f32(float %1255, float %1261, float %1274)
  %1276 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %1275, ptr %1276, align 4, !tbaa !15
  %1277 = load ptr, ptr %23, align 8, !tbaa !5
  %1278 = load i32, ptr %31, align 4, !tbaa !9
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds %struct.complex, ptr %1277, i64 %1279
  %1281 = getelementptr inbounds %struct.complex, ptr %1280, i32 0, i32 0
  %1282 = load float, ptr %1281, align 4, !tbaa !13
  %1283 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1284 = load float, ptr %1283, align 4, !tbaa !13
  %1285 = fadd float %1282, %1284
  %1286 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %1285, ptr %1286, align 4, !tbaa !13
  %1287 = load ptr, ptr %23, align 8, !tbaa !5
  %1288 = load i32, ptr %31, align 4, !tbaa !9
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds %struct.complex, ptr %1287, i64 %1289
  %1291 = getelementptr inbounds %struct.complex, ptr %1290, i32 0, i32 1
  %1292 = load float, ptr %1291, align 4, !tbaa !15
  %1293 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1294 = load float, ptr %1293, align 4, !tbaa !15
  %1295 = fadd float %1292, %1294
  %1296 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %1295, ptr %1296, align 4, !tbaa !15
  %1297 = load ptr, ptr %14, align 8, !tbaa !5
  %1298 = load i32, ptr %1297, align 4, !tbaa !9
  store i32 %1298, ptr %34, align 4, !tbaa !9
  %1299 = load ptr, ptr %14, align 8, !tbaa !5
  %1300 = load i32, ptr %1299, align 4, !tbaa !9
  %1301 = load i32, ptr %49, align 4, !tbaa !9
  %1302 = load i32, ptr %27, align 4, !tbaa !9
  %1303 = mul nsw i32 %1301, %1302
  %1304 = add nsw i32 %1300, %1303
  store i32 %1304, ptr %35, align 4, !tbaa !9
  %1305 = load ptr, ptr %18, align 8, !tbaa !5
  %1306 = load i32, ptr %34, align 4, !tbaa !9
  %1307 = sext i32 %1306 to i64
  %1308 = getelementptr inbounds %struct.complex, ptr %1305, i64 %1307
  %1309 = getelementptr inbounds %struct.complex, ptr %1308, i32 0, i32 0
  %1310 = load float, ptr %1309, align 4, !tbaa !13
  %1311 = load ptr, ptr %20, align 8, !tbaa !5
  %1312 = load i32, ptr %35, align 4, !tbaa !9
  %1313 = sext i32 %1312 to i64
  %1314 = getelementptr inbounds %struct.complex, ptr %1311, i64 %1313
  %1315 = getelementptr inbounds %struct.complex, ptr %1314, i32 0, i32 0
  %1316 = load float, ptr %1315, align 4, !tbaa !13
  %1317 = load ptr, ptr %18, align 8, !tbaa !5
  %1318 = load i32, ptr %34, align 4, !tbaa !9
  %1319 = sext i32 %1318 to i64
  %1320 = getelementptr inbounds %struct.complex, ptr %1317, i64 %1319
  %1321 = getelementptr inbounds %struct.complex, ptr %1320, i32 0, i32 1
  %1322 = load float, ptr %1321, align 4, !tbaa !15
  %1323 = load ptr, ptr %20, align 8, !tbaa !5
  %1324 = load i32, ptr %35, align 4, !tbaa !9
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds %struct.complex, ptr %1323, i64 %1325
  %1327 = getelementptr inbounds %struct.complex, ptr %1326, i32 0, i32 1
  %1328 = load float, ptr %1327, align 4, !tbaa !15
  %1329 = fmul float %1322, %1328
  %1330 = fneg float %1329
  %1331 = call float @llvm.fmuladd.f32(float %1310, float %1316, float %1330)
  %1332 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1331, ptr %1332, align 4, !tbaa !13
  %1333 = load ptr, ptr %18, align 8, !tbaa !5
  %1334 = load i32, ptr %34, align 4, !tbaa !9
  %1335 = sext i32 %1334 to i64
  %1336 = getelementptr inbounds %struct.complex, ptr %1333, i64 %1335
  %1337 = getelementptr inbounds %struct.complex, ptr %1336, i32 0, i32 0
  %1338 = load float, ptr %1337, align 4, !tbaa !13
  %1339 = load ptr, ptr %20, align 8, !tbaa !5
  %1340 = load i32, ptr %35, align 4, !tbaa !9
  %1341 = sext i32 %1340 to i64
  %1342 = getelementptr inbounds %struct.complex, ptr %1339, i64 %1341
  %1343 = getelementptr inbounds %struct.complex, ptr %1342, i32 0, i32 1
  %1344 = load float, ptr %1343, align 4, !tbaa !15
  %1345 = load ptr, ptr %18, align 8, !tbaa !5
  %1346 = load i32, ptr %34, align 4, !tbaa !9
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds %struct.complex, ptr %1345, i64 %1347
  %1349 = getelementptr inbounds %struct.complex, ptr %1348, i32 0, i32 1
  %1350 = load float, ptr %1349, align 4, !tbaa !15
  %1351 = load ptr, ptr %20, align 8, !tbaa !5
  %1352 = load i32, ptr %35, align 4, !tbaa !9
  %1353 = sext i32 %1352 to i64
  %1354 = getelementptr inbounds %struct.complex, ptr %1351, i64 %1353
  %1355 = getelementptr inbounds %struct.complex, ptr %1354, i32 0, i32 0
  %1356 = load float, ptr %1355, align 4, !tbaa !13
  %1357 = fmul float %1350, %1356
  %1358 = call float @llvm.fmuladd.f32(float %1338, float %1344, float %1357)
  %1359 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1358, ptr %1359, align 4, !tbaa !15
  %1360 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %1361 = load float, ptr %1360, align 4, !tbaa !13
  %1362 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1363 = load float, ptr %1362, align 4, !tbaa !13
  %1364 = fadd float %1361, %1363
  %1365 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %1364, ptr %1365, align 4, !tbaa !13
  %1366 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %1367 = load float, ptr %1366, align 4, !tbaa !15
  %1368 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1369 = load float, ptr %1368, align 4, !tbaa !15
  %1370 = fadd float %1367, %1369
  %1371 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %1370, ptr %1371, align 4, !tbaa !15
  %1372 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %1373 = load float, ptr %1372, align 4, !tbaa !13
  %1374 = load ptr, ptr %23, align 8, !tbaa !5
  %1375 = load i32, ptr %30, align 4, !tbaa !9
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds %struct.complex, ptr %1374, i64 %1376
  %1378 = getelementptr inbounds %struct.complex, ptr %1377, i32 0, i32 0
  store float %1373, ptr %1378, align 4, !tbaa !13
  %1379 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %1380 = load float, ptr %1379, align 4, !tbaa !15
  %1381 = load ptr, ptr %23, align 8, !tbaa !5
  %1382 = load i32, ptr %30, align 4, !tbaa !9
  %1383 = sext i32 %1382 to i64
  %1384 = getelementptr inbounds %struct.complex, ptr %1381, i64 %1383
  %1385 = getelementptr inbounds %struct.complex, ptr %1384, i32 0, i32 1
  store float %1380, ptr %1385, align 4, !tbaa !15
  %1386 = load ptr, ptr %14, align 8, !tbaa !5
  %1387 = load i32, ptr %1386, align 4, !tbaa !9
  %1388 = sub nsw i32 %1387, 1
  store i32 %1388, ptr %30, align 4, !tbaa !9
  store i32 2, ptr %48, align 4, !tbaa !9
  br label %1389

1389:                                             ; preds = %1648, %1043
  %1390 = load i32, ptr %48, align 4, !tbaa !9
  %1391 = load i32, ptr %30, align 4, !tbaa !9
  %1392 = icmp sle i32 %1390, %1391
  br i1 %1392, label %1393, label %1651

1393:                                             ; preds = %1389
  %1394 = load i32, ptr %48, align 4, !tbaa !9
  %1395 = load i32, ptr %49, align 4, !tbaa !9
  %1396 = load i32, ptr %25, align 4, !tbaa !9
  %1397 = mul nsw i32 %1395, %1396
  %1398 = add nsw i32 %1394, %1397
  store i32 %1398, ptr %31, align 4, !tbaa !9
  %1399 = load i32, ptr %48, align 4, !tbaa !9
  %1400 = load i32, ptr %49, align 4, !tbaa !9
  %1401 = load i32, ptr %25, align 4, !tbaa !9
  %1402 = mul nsw i32 %1400, %1401
  %1403 = add nsw i32 %1399, %1402
  store i32 %1403, ptr %32, align 4, !tbaa !9
  %1404 = load i32, ptr %48, align 4, !tbaa !9
  %1405 = sub nsw i32 %1404, 1
  store i32 %1405, ptr %33, align 4, !tbaa !9
  %1406 = load i32, ptr %48, align 4, !tbaa !9
  %1407 = sub nsw i32 %1406, 1
  %1408 = load i32, ptr %49, align 4, !tbaa !9
  %1409 = load i32, ptr %27, align 4, !tbaa !9
  %1410 = mul nsw i32 %1408, %1409
  %1411 = add nsw i32 %1407, %1410
  store i32 %1411, ptr %34, align 4, !tbaa !9
  %1412 = load ptr, ptr %19, align 8, !tbaa !5
  %1413 = load i32, ptr %33, align 4, !tbaa !9
  %1414 = sext i32 %1413 to i64
  %1415 = getelementptr inbounds %struct.complex, ptr %1412, i64 %1414
  %1416 = getelementptr inbounds %struct.complex, ptr %1415, i32 0, i32 0
  %1417 = load float, ptr %1416, align 4, !tbaa !13
  %1418 = load ptr, ptr %20, align 8, !tbaa !5
  %1419 = load i32, ptr %34, align 4, !tbaa !9
  %1420 = sext i32 %1419 to i64
  %1421 = getelementptr inbounds %struct.complex, ptr %1418, i64 %1420
  %1422 = getelementptr inbounds %struct.complex, ptr %1421, i32 0, i32 0
  %1423 = load float, ptr %1422, align 4, !tbaa !13
  %1424 = load ptr, ptr %19, align 8, !tbaa !5
  %1425 = load i32, ptr %33, align 4, !tbaa !9
  %1426 = sext i32 %1425 to i64
  %1427 = getelementptr inbounds %struct.complex, ptr %1424, i64 %1426
  %1428 = getelementptr inbounds %struct.complex, ptr %1427, i32 0, i32 1
  %1429 = load float, ptr %1428, align 4, !tbaa !15
  %1430 = load ptr, ptr %20, align 8, !tbaa !5
  %1431 = load i32, ptr %34, align 4, !tbaa !9
  %1432 = sext i32 %1431 to i64
  %1433 = getelementptr inbounds %struct.complex, ptr %1430, i64 %1432
  %1434 = getelementptr inbounds %struct.complex, ptr %1433, i32 0, i32 1
  %1435 = load float, ptr %1434, align 4, !tbaa !15
  %1436 = fmul float %1429, %1435
  %1437 = fneg float %1436
  %1438 = call float @llvm.fmuladd.f32(float %1417, float %1423, float %1437)
  %1439 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %1438, ptr %1439, align 4, !tbaa !13
  %1440 = load ptr, ptr %19, align 8, !tbaa !5
  %1441 = load i32, ptr %33, align 4, !tbaa !9
  %1442 = sext i32 %1441 to i64
  %1443 = getelementptr inbounds %struct.complex, ptr %1440, i64 %1442
  %1444 = getelementptr inbounds %struct.complex, ptr %1443, i32 0, i32 0
  %1445 = load float, ptr %1444, align 4, !tbaa !13
  %1446 = load ptr, ptr %20, align 8, !tbaa !5
  %1447 = load i32, ptr %34, align 4, !tbaa !9
  %1448 = sext i32 %1447 to i64
  %1449 = getelementptr inbounds %struct.complex, ptr %1446, i64 %1448
  %1450 = getelementptr inbounds %struct.complex, ptr %1449, i32 0, i32 1
  %1451 = load float, ptr %1450, align 4, !tbaa !15
  %1452 = load ptr, ptr %19, align 8, !tbaa !5
  %1453 = load i32, ptr %33, align 4, !tbaa !9
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds %struct.complex, ptr %1452, i64 %1454
  %1456 = getelementptr inbounds %struct.complex, ptr %1455, i32 0, i32 1
  %1457 = load float, ptr %1456, align 4, !tbaa !15
  %1458 = load ptr, ptr %20, align 8, !tbaa !5
  %1459 = load i32, ptr %34, align 4, !tbaa !9
  %1460 = sext i32 %1459 to i64
  %1461 = getelementptr inbounds %struct.complex, ptr %1458, i64 %1460
  %1462 = getelementptr inbounds %struct.complex, ptr %1461, i32 0, i32 0
  %1463 = load float, ptr %1462, align 4, !tbaa !13
  %1464 = fmul float %1457, %1463
  %1465 = call float @llvm.fmuladd.f32(float %1445, float %1451, float %1464)
  %1466 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %1465, ptr %1466, align 4, !tbaa !15
  %1467 = load ptr, ptr %23, align 8, !tbaa !5
  %1468 = load i32, ptr %32, align 4, !tbaa !9
  %1469 = sext i32 %1468 to i64
  %1470 = getelementptr inbounds %struct.complex, ptr %1467, i64 %1469
  %1471 = getelementptr inbounds %struct.complex, ptr %1470, i32 0, i32 0
  %1472 = load float, ptr %1471, align 4, !tbaa !13
  %1473 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1474 = load float, ptr %1473, align 4, !tbaa !13
  %1475 = fadd float %1472, %1474
  %1476 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %1475, ptr %1476, align 4, !tbaa !13
  %1477 = load ptr, ptr %23, align 8, !tbaa !5
  %1478 = load i32, ptr %32, align 4, !tbaa !9
  %1479 = sext i32 %1478 to i64
  %1480 = getelementptr inbounds %struct.complex, ptr %1477, i64 %1479
  %1481 = getelementptr inbounds %struct.complex, ptr %1480, i32 0, i32 1
  %1482 = load float, ptr %1481, align 4, !tbaa !15
  %1483 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1484 = load float, ptr %1483, align 4, !tbaa !15
  %1485 = fadd float %1482, %1484
  %1486 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %1485, ptr %1486, align 4, !tbaa !15
  %1487 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %1487, ptr %35, align 4, !tbaa !9
  %1488 = load i32, ptr %48, align 4, !tbaa !9
  %1489 = load i32, ptr %49, align 4, !tbaa !9
  %1490 = load i32, ptr %27, align 4, !tbaa !9
  %1491 = mul nsw i32 %1489, %1490
  %1492 = add nsw i32 %1488, %1491
  store i32 %1492, ptr %36, align 4, !tbaa !9
  %1493 = load ptr, ptr %18, align 8, !tbaa !5
  %1494 = load i32, ptr %35, align 4, !tbaa !9
  %1495 = sext i32 %1494 to i64
  %1496 = getelementptr inbounds %struct.complex, ptr %1493, i64 %1495
  %1497 = getelementptr inbounds %struct.complex, ptr %1496, i32 0, i32 0
  %1498 = load float, ptr %1497, align 4, !tbaa !13
  %1499 = load ptr, ptr %20, align 8, !tbaa !5
  %1500 = load i32, ptr %36, align 4, !tbaa !9
  %1501 = sext i32 %1500 to i64
  %1502 = getelementptr inbounds %struct.complex, ptr %1499, i64 %1501
  %1503 = getelementptr inbounds %struct.complex, ptr %1502, i32 0, i32 0
  %1504 = load float, ptr %1503, align 4, !tbaa !13
  %1505 = load ptr, ptr %18, align 8, !tbaa !5
  %1506 = load i32, ptr %35, align 4, !tbaa !9
  %1507 = sext i32 %1506 to i64
  %1508 = getelementptr inbounds %struct.complex, ptr %1505, i64 %1507
  %1509 = getelementptr inbounds %struct.complex, ptr %1508, i32 0, i32 1
  %1510 = load float, ptr %1509, align 4, !tbaa !15
  %1511 = load ptr, ptr %20, align 8, !tbaa !5
  %1512 = load i32, ptr %36, align 4, !tbaa !9
  %1513 = sext i32 %1512 to i64
  %1514 = getelementptr inbounds %struct.complex, ptr %1511, i64 %1513
  %1515 = getelementptr inbounds %struct.complex, ptr %1514, i32 0, i32 1
  %1516 = load float, ptr %1515, align 4, !tbaa !15
  %1517 = fmul float %1510, %1516
  %1518 = fneg float %1517
  %1519 = call float @llvm.fmuladd.f32(float %1498, float %1504, float %1518)
  %1520 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %1519, ptr %1520, align 4, !tbaa !13
  %1521 = load ptr, ptr %18, align 8, !tbaa !5
  %1522 = load i32, ptr %35, align 4, !tbaa !9
  %1523 = sext i32 %1522 to i64
  %1524 = getelementptr inbounds %struct.complex, ptr %1521, i64 %1523
  %1525 = getelementptr inbounds %struct.complex, ptr %1524, i32 0, i32 0
  %1526 = load float, ptr %1525, align 4, !tbaa !13
  %1527 = load ptr, ptr %20, align 8, !tbaa !5
  %1528 = load i32, ptr %36, 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 = load ptr, ptr %18, align 8, !tbaa !5
  %1534 = load i32, ptr %35, align 4, !tbaa !9
  %1535 = sext i32 %1534 to i64
  %1536 = getelementptr inbounds %struct.complex, ptr %1533, i64 %1535
  %1537 = getelementptr inbounds %struct.complex, ptr %1536, i32 0, i32 1
  %1538 = load float, ptr %1537, align 4, !tbaa !15
  %1539 = load ptr, ptr %20, align 8, !tbaa !5
  %1540 = load i32, ptr %36, align 4, !tbaa !9
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds %struct.complex, ptr %1539, i64 %1541
  %1543 = getelementptr inbounds %struct.complex, ptr %1542, i32 0, i32 0
  %1544 = load float, ptr %1543, align 4, !tbaa !13
  %1545 = fmul float %1538, %1544
  %1546 = call float @llvm.fmuladd.f32(float %1526, float %1532, float %1545)
  %1547 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %1546, ptr %1547, align 4, !tbaa !15
  %1548 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1549 = load float, ptr %1548, align 4, !tbaa !13
  %1550 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1551 = load float, ptr %1550, align 4, !tbaa !13
  %1552 = fadd float %1549, %1551
  %1553 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %1552, ptr %1553, align 4, !tbaa !13
  %1554 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1555 = load float, ptr %1554, align 4, !tbaa !15
  %1556 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1557 = load float, ptr %1556, align 4, !tbaa !15
  %1558 = fadd float %1555, %1557
  %1559 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %1558, ptr %1559, align 4, !tbaa !15
  %1560 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %1560, ptr %37, align 4, !tbaa !9
  %1561 = load i32, ptr %48, align 4, !tbaa !9
  %1562 = add nsw i32 %1561, 1
  %1563 = load i32, ptr %49, align 4, !tbaa !9
  %1564 = load i32, ptr %27, align 4, !tbaa !9
  %1565 = mul nsw i32 %1563, %1564
  %1566 = add nsw i32 %1562, %1565
  store i32 %1566, ptr %38, align 4, !tbaa !9
  %1567 = load ptr, ptr %17, align 8, !tbaa !5
  %1568 = load i32, ptr %37, align 4, !tbaa !9
  %1569 = sext i32 %1568 to i64
  %1570 = getelementptr inbounds %struct.complex, ptr %1567, i64 %1569
  %1571 = getelementptr inbounds %struct.complex, ptr %1570, i32 0, i32 0
  %1572 = load float, ptr %1571, align 4, !tbaa !13
  %1573 = load ptr, ptr %20, align 8, !tbaa !5
  %1574 = load i32, ptr %38, align 4, !tbaa !9
  %1575 = sext i32 %1574 to i64
  %1576 = getelementptr inbounds %struct.complex, ptr %1573, i64 %1575
  %1577 = getelementptr inbounds %struct.complex, ptr %1576, i32 0, i32 0
  %1578 = load float, ptr %1577, align 4, !tbaa !13
  %1579 = load ptr, ptr %17, align 8, !tbaa !5
  %1580 = load i32, ptr %37, align 4, !tbaa !9
  %1581 = sext i32 %1580 to i64
  %1582 = getelementptr inbounds %struct.complex, ptr %1579, i64 %1581
  %1583 = getelementptr inbounds %struct.complex, ptr %1582, i32 0, i32 1
  %1584 = load float, ptr %1583, align 4, !tbaa !15
  %1585 = load ptr, ptr %20, align 8, !tbaa !5
  %1586 = load i32, ptr %38, align 4, !tbaa !9
  %1587 = sext i32 %1586 to i64
  %1588 = getelementptr inbounds %struct.complex, ptr %1585, i64 %1587
  %1589 = getelementptr inbounds %struct.complex, ptr %1588, i32 0, i32 1
  %1590 = load float, ptr %1589, align 4, !tbaa !15
  %1591 = fmul float %1584, %1590
  %1592 = fneg float %1591
  %1593 = call float @llvm.fmuladd.f32(float %1572, float %1578, float %1592)
  %1594 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %1593, ptr %1594, align 4, !tbaa !13
  %1595 = load ptr, ptr %17, align 8, !tbaa !5
  %1596 = load i32, ptr %37, align 4, !tbaa !9
  %1597 = sext i32 %1596 to i64
  %1598 = getelementptr inbounds %struct.complex, ptr %1595, i64 %1597
  %1599 = getelementptr inbounds %struct.complex, ptr %1598, i32 0, i32 0
  %1600 = load float, ptr %1599, align 4, !tbaa !13
  %1601 = load ptr, ptr %20, align 8, !tbaa !5
  %1602 = load i32, ptr %38, align 4, !tbaa !9
  %1603 = sext i32 %1602 to i64
  %1604 = getelementptr inbounds %struct.complex, ptr %1601, i64 %1603
  %1605 = getelementptr inbounds %struct.complex, ptr %1604, i32 0, i32 1
  %1606 = load float, ptr %1605, align 4, !tbaa !15
  %1607 = load ptr, ptr %17, align 8, !tbaa !5
  %1608 = load i32, ptr %37, align 4, !tbaa !9
  %1609 = sext i32 %1608 to i64
  %1610 = getelementptr inbounds %struct.complex, ptr %1607, i64 %1609
  %1611 = getelementptr inbounds %struct.complex, ptr %1610, i32 0, i32 1
  %1612 = load float, ptr %1611, align 4, !tbaa !15
  %1613 = load ptr, ptr %20, align 8, !tbaa !5
  %1614 = load i32, ptr %38, align 4, !tbaa !9
  %1615 = sext i32 %1614 to i64
  %1616 = getelementptr inbounds %struct.complex, ptr %1613, i64 %1615
  %1617 = getelementptr inbounds %struct.complex, ptr %1616, i32 0, i32 0
  %1618 = load float, ptr %1617, align 4, !tbaa !13
  %1619 = fmul float %1612, %1618
  %1620 = call float @llvm.fmuladd.f32(float %1600, float %1606, float %1619)
  %1621 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %1620, ptr %1621, align 4, !tbaa !15
  %1622 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %1623 = load float, ptr %1622, align 4, !tbaa !13
  %1624 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1625 = load float, ptr %1624, align 4, !tbaa !13
  %1626 = fadd float %1623, %1625
  %1627 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %1626, ptr %1627, align 4, !tbaa !13
  %1628 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %1629 = load float, ptr %1628, align 4, !tbaa !15
  %1630 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1631 = load float, ptr %1630, align 4, !tbaa !15
  %1632 = fadd float %1629, %1631
  %1633 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %1632, ptr %1633, align 4, !tbaa !15
  %1634 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %1635 = load float, ptr %1634, align 4, !tbaa !13
  %1636 = load ptr, ptr %23, align 8, !tbaa !5
  %1637 = load i32, ptr %31, align 4, !tbaa !9
  %1638 = sext i32 %1637 to i64
  %1639 = getelementptr inbounds %struct.complex, ptr %1636, i64 %1638
  %1640 = getelementptr inbounds %struct.complex, ptr %1639, i32 0, i32 0
  store float %1635, ptr %1640, align 4, !tbaa !13
  %1641 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %1642 = load float, ptr %1641, align 4, !tbaa !15
  %1643 = load ptr, ptr %23, align 8, !tbaa !5
  %1644 = load i32, ptr %31, align 4, !tbaa !9
  %1645 = sext i32 %1644 to i64
  %1646 = getelementptr inbounds %struct.complex, ptr %1643, i64 %1645
  %1647 = getelementptr inbounds %struct.complex, ptr %1646, i32 0, i32 1
  store float %1642, ptr %1647, align 4, !tbaa !15
  br label %1648

1648:                                             ; preds = %1393
  %1649 = load i32, ptr %48, align 4, !tbaa !9
  %1650 = add nsw i32 %1649, 1
  store i32 %1650, ptr %48, align 4, !tbaa !9
  br label %1389, !llvm.loop !23

1651:                                             ; preds = %1389
  br label %1652

1652:                                             ; preds = %1651, %949
  br label %1653

1653:                                             ; preds = %1652
  %1654 = load i32, ptr %49, align 4, !tbaa !9
  %1655 = add nsw i32 %1654, 1
  store i32 %1655, ptr %49, align 4, !tbaa !9
  br label %941, !llvm.loop !24

1656:                                             ; preds = %941
  br label %2370

1657:                                             ; preds = %934
  %1658 = load ptr, ptr %13, align 8, !tbaa !5
  %1659 = call i32 @lsame_(ptr noundef %1658, ptr noundef @.str.2)
  %1660 = icmp ne i32 %1659, 0
  br i1 %1660, label %1661, label %2369

1661:                                             ; preds = %1657
  %1662 = load ptr, ptr %15, align 8, !tbaa !5
  %1663 = load i32, ptr %1662, align 4, !tbaa !9
  store i32 %1663, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %1664

1664:                                             ; preds = %2365, %1661
  %1665 = load i32, ptr %49, align 4, !tbaa !9
  %1666 = load i32, ptr %29, align 4, !tbaa !9
  %1667 = icmp sle i32 %1665, %1666
  br i1 %1667, label %1668, label %2368

1668:                                             ; preds = %1664
  %1669 = load ptr, ptr %14, align 8, !tbaa !5
  %1670 = load i32, ptr %1669, align 4, !tbaa !9
  %1671 = icmp eq i32 %1670, 1
  br i1 %1671, label %1672, label %1769

1672:                                             ; preds = %1668
  %1673 = load i32, ptr %49, align 4, !tbaa !9
  %1674 = load i32, ptr %25, align 4, !tbaa !9
  %1675 = mul nsw i32 %1673, %1674
  %1676 = add nsw i32 %1675, 1
  store i32 %1676, ptr %30, align 4, !tbaa !9
  %1677 = load i32, ptr %49, align 4, !tbaa !9
  %1678 = load i32, ptr %25, align 4, !tbaa !9
  %1679 = mul nsw i32 %1677, %1678
  %1680 = add nsw i32 %1679, 1
  store i32 %1680, ptr %31, align 4, !tbaa !9
  %1681 = load ptr, ptr %18, align 8, !tbaa !5
  %1682 = getelementptr inbounds %struct.complex, ptr %1681, i64 1
  %1683 = call <2 x float> @Cf(ptr noundef %1682)
  store <2 x float> %1683, ptr %51, align 4
  %1684 = getelementptr inbounds { float, float }, ptr %51, i32 0, i32 0
  %1685 = load float, ptr %1684, align 4
  %1686 = getelementptr inbounds { float, float }, ptr %51, i32 0, i32 1
  %1687 = load float, ptr %1686, align 4
  %1688 = fneg float %1687
  %1689 = call ptr @_pCf(ptr noundef %41)
  %1690 = getelementptr inbounds { float, float }, ptr %1689, i32 0, i32 0
  %1691 = getelementptr inbounds { float, float }, ptr %1689, i32 0, i32 1
  store float %1685, ptr %1690, align 4
  store float %1688, ptr %1691, align 4
  %1692 = load i32, ptr %49, align 4, !tbaa !9
  %1693 = load i32, ptr %27, align 4, !tbaa !9
  %1694 = mul nsw i32 %1692, %1693
  %1695 = add nsw i32 %1694, 1
  store i32 %1695, ptr %32, align 4, !tbaa !9
  %1696 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1697 = load float, ptr %1696, align 4, !tbaa !13
  %1698 = load ptr, ptr %20, align 8, !tbaa !5
  %1699 = load i32, ptr %32, align 4, !tbaa !9
  %1700 = sext i32 %1699 to i64
  %1701 = getelementptr inbounds %struct.complex, ptr %1698, i64 %1700
  %1702 = getelementptr inbounds %struct.complex, ptr %1701, i32 0, i32 0
  %1703 = load float, ptr %1702, align 4, !tbaa !13
  %1704 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1705 = load float, ptr %1704, align 4, !tbaa !15
  %1706 = load ptr, ptr %20, align 8, !tbaa !5
  %1707 = load i32, ptr %32, align 4, !tbaa !9
  %1708 = sext i32 %1707 to i64
  %1709 = getelementptr inbounds %struct.complex, ptr %1706, i64 %1708
  %1710 = getelementptr inbounds %struct.complex, ptr %1709, i32 0, i32 1
  %1711 = load float, ptr %1710, align 4, !tbaa !15
  %1712 = fmul float %1705, %1711
  %1713 = fneg float %1712
  %1714 = call float @llvm.fmuladd.f32(float %1697, float %1703, float %1713)
  %1715 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %1714, ptr %1715, align 4, !tbaa !13
  %1716 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1717 = load float, ptr %1716, align 4, !tbaa !13
  %1718 = load ptr, ptr %20, align 8, !tbaa !5
  %1719 = load i32, ptr %32, align 4, !tbaa !9
  %1720 = sext i32 %1719 to i64
  %1721 = getelementptr inbounds %struct.complex, ptr %1718, i64 %1720
  %1722 = getelementptr inbounds %struct.complex, ptr %1721, i32 0, i32 1
  %1723 = load float, ptr %1722, align 4, !tbaa !15
  %1724 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1725 = load float, ptr %1724, align 4, !tbaa !15
  %1726 = load ptr, ptr %20, align 8, !tbaa !5
  %1727 = load i32, ptr %32, align 4, !tbaa !9
  %1728 = sext i32 %1727 to i64
  %1729 = getelementptr inbounds %struct.complex, ptr %1726, i64 %1728
  %1730 = getelementptr inbounds %struct.complex, ptr %1729, i32 0, i32 0
  %1731 = load float, ptr %1730, align 4, !tbaa !13
  %1732 = fmul float %1725, %1731
  %1733 = call float @llvm.fmuladd.f32(float %1717, float %1723, float %1732)
  %1734 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %1733, ptr %1734, align 4, !tbaa !15
  %1735 = load ptr, ptr %23, align 8, !tbaa !5
  %1736 = load i32, ptr %31, align 4, !tbaa !9
  %1737 = sext i32 %1736 to i64
  %1738 = getelementptr inbounds %struct.complex, ptr %1735, i64 %1737
  %1739 = getelementptr inbounds %struct.complex, ptr %1738, i32 0, i32 0
  %1740 = load float, ptr %1739, align 4, !tbaa !13
  %1741 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %1742 = load float, ptr %1741, align 4, !tbaa !13
  %1743 = fadd float %1740, %1742
  %1744 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %1743, ptr %1744, align 4, !tbaa !13
  %1745 = load ptr, ptr %23, align 8, !tbaa !5
  %1746 = load i32, ptr %31, align 4, !tbaa !9
  %1747 = sext i32 %1746 to i64
  %1748 = getelementptr inbounds %struct.complex, ptr %1745, i64 %1747
  %1749 = getelementptr inbounds %struct.complex, ptr %1748, i32 0, i32 1
  %1750 = load float, ptr %1749, align 4, !tbaa !15
  %1751 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %1752 = load float, ptr %1751, align 4, !tbaa !15
  %1753 = fadd float %1750, %1752
  %1754 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %1753, ptr %1754, align 4, !tbaa !15
  %1755 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %1756 = load float, ptr %1755, align 4, !tbaa !13
  %1757 = load ptr, ptr %23, align 8, !tbaa !5
  %1758 = load i32, ptr %30, align 4, !tbaa !9
  %1759 = sext i32 %1758 to i64
  %1760 = getelementptr inbounds %struct.complex, ptr %1757, i64 %1759
  %1761 = getelementptr inbounds %struct.complex, ptr %1760, i32 0, i32 0
  store float %1756, ptr %1761, align 4, !tbaa !13
  %1762 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %1763 = load float, ptr %1762, align 4, !tbaa !15
  %1764 = load ptr, ptr %23, align 8, !tbaa !5
  %1765 = load i32, ptr %30, align 4, !tbaa !9
  %1766 = sext i32 %1765 to i64
  %1767 = getelementptr inbounds %struct.complex, ptr %1764, i64 %1766
  %1768 = getelementptr inbounds %struct.complex, ptr %1767, i32 0, i32 1
  store float %1763, ptr %1768, align 4, !tbaa !15
  br label %2364

1769:                                             ; preds = %1668
  %1770 = load i32, ptr %49, align 4, !tbaa !9
  %1771 = load i32, ptr %25, align 4, !tbaa !9
  %1772 = mul nsw i32 %1770, %1771
  %1773 = add nsw i32 %1772, 1
  store i32 %1773, ptr %30, align 4, !tbaa !9
  %1774 = load i32, ptr %49, align 4, !tbaa !9
  %1775 = load i32, ptr %25, align 4, !tbaa !9
  %1776 = mul nsw i32 %1774, %1775
  %1777 = add nsw i32 %1776, 1
  store i32 %1777, ptr %31, align 4, !tbaa !9
  %1778 = load ptr, ptr %18, align 8, !tbaa !5
  %1779 = getelementptr inbounds %struct.complex, ptr %1778, i64 1
  %1780 = call <2 x float> @Cf(ptr noundef %1779)
  store <2 x float> %1780, ptr %52, align 4
  %1781 = getelementptr inbounds { float, float }, ptr %52, i32 0, i32 0
  %1782 = load float, ptr %1781, align 4
  %1783 = getelementptr inbounds { float, float }, ptr %52, i32 0, i32 1
  %1784 = load float, ptr %1783, align 4
  %1785 = fneg float %1784
  %1786 = call ptr @_pCf(ptr noundef %42)
  %1787 = getelementptr inbounds { float, float }, ptr %1786, i32 0, i32 0
  %1788 = getelementptr inbounds { float, float }, ptr %1786, i32 0, i32 1
  store float %1782, ptr %1787, align 4
  store float %1785, ptr %1788, align 4
  %1789 = load i32, ptr %49, align 4, !tbaa !9
  %1790 = load i32, ptr %27, align 4, !tbaa !9
  %1791 = mul nsw i32 %1789, %1790
  %1792 = add nsw i32 %1791, 1
  store i32 %1792, ptr %32, align 4, !tbaa !9
  %1793 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1794 = load float, ptr %1793, align 4, !tbaa !13
  %1795 = load ptr, ptr %20, align 8, !tbaa !5
  %1796 = load i32, ptr %32, align 4, !tbaa !9
  %1797 = sext i32 %1796 to i64
  %1798 = getelementptr inbounds %struct.complex, ptr %1795, i64 %1797
  %1799 = getelementptr inbounds %struct.complex, ptr %1798, i32 0, i32 0
  %1800 = load float, ptr %1799, align 4, !tbaa !13
  %1801 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1802 = load float, ptr %1801, align 4, !tbaa !15
  %1803 = load ptr, ptr %20, align 8, !tbaa !5
  %1804 = load i32, ptr %32, 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 1
  %1808 = load float, ptr %1807, align 4, !tbaa !15
  %1809 = fmul float %1802, %1808
  %1810 = fneg float %1809
  %1811 = call float @llvm.fmuladd.f32(float %1794, float %1800, float %1810)
  %1812 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %1811, ptr %1812, align 4, !tbaa !13
  %1813 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1814 = load float, ptr %1813, align 4, !tbaa !13
  %1815 = load ptr, ptr %20, align 8, !tbaa !5
  %1816 = load i32, ptr %32, 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
  %1820 = load float, ptr %1819, align 4, !tbaa !15
  %1821 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1822 = load float, ptr %1821, align 4, !tbaa !15
  %1823 = load ptr, ptr %20, align 8, !tbaa !5
  %1824 = load i32, ptr %32, align 4, !tbaa !9
  %1825 = sext i32 %1824 to i64
  %1826 = getelementptr inbounds %struct.complex, ptr %1823, i64 %1825
  %1827 = getelementptr inbounds %struct.complex, ptr %1826, i32 0, i32 0
  %1828 = load float, ptr %1827, align 4, !tbaa !13
  %1829 = fmul float %1822, %1828
  %1830 = call float @llvm.fmuladd.f32(float %1814, float %1820, float %1829)
  %1831 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %1830, ptr %1831, align 4, !tbaa !15
  %1832 = load ptr, ptr %23, align 8, !tbaa !5
  %1833 = load i32, ptr %31, align 4, !tbaa !9
  %1834 = sext i32 %1833 to i64
  %1835 = getelementptr inbounds %struct.complex, ptr %1832, i64 %1834
  %1836 = getelementptr inbounds %struct.complex, ptr %1835, i32 0, i32 0
  %1837 = load float, ptr %1836, align 4, !tbaa !13
  %1838 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %1839 = load float, ptr %1838, align 4, !tbaa !13
  %1840 = fadd float %1837, %1839
  %1841 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %1840, ptr %1841, align 4, !tbaa !13
  %1842 = load ptr, ptr %23, align 8, !tbaa !5
  %1843 = load i32, ptr %31, align 4, !tbaa !9
  %1844 = sext i32 %1843 to i64
  %1845 = getelementptr inbounds %struct.complex, ptr %1842, i64 %1844
  %1846 = getelementptr inbounds %struct.complex, ptr %1845, i32 0, i32 1
  %1847 = load float, ptr %1846, align 4, !tbaa !15
  %1848 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %1849 = load float, ptr %1848, align 4, !tbaa !15
  %1850 = fadd float %1847, %1849
  %1851 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %1850, ptr %1851, align 4, !tbaa !15
  %1852 = load ptr, ptr %17, align 8, !tbaa !5
  %1853 = getelementptr inbounds %struct.complex, ptr %1852, i64 1
  %1854 = call <2 x float> @Cf(ptr noundef %1853)
  store <2 x float> %1854, ptr %53, align 4
  %1855 = getelementptr inbounds { float, float }, ptr %53, i32 0, i32 0
  %1856 = load float, ptr %1855, align 4
  %1857 = getelementptr inbounds { float, float }, ptr %53, i32 0, i32 1
  %1858 = load float, ptr %1857, align 4
  %1859 = fneg float %1858
  %1860 = call ptr @_pCf(ptr noundef %44)
  %1861 = getelementptr inbounds { float, float }, ptr %1860, i32 0, i32 0
  %1862 = getelementptr inbounds { float, float }, ptr %1860, i32 0, i32 1
  store float %1856, ptr %1861, align 4
  store float %1859, ptr %1862, align 4
  %1863 = load i32, ptr %49, align 4, !tbaa !9
  %1864 = load i32, ptr %27, align 4, !tbaa !9
  %1865 = mul nsw i32 %1863, %1864
  %1866 = add nsw i32 %1865, 2
  store i32 %1866, ptr %33, align 4, !tbaa !9
  %1867 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1868 = load float, ptr %1867, align 4, !tbaa !13
  %1869 = load ptr, ptr %20, align 8, !tbaa !5
  %1870 = load i32, ptr %33, align 4, !tbaa !9
  %1871 = sext i32 %1870 to i64
  %1872 = getelementptr inbounds %struct.complex, ptr %1869, i64 %1871
  %1873 = getelementptr inbounds %struct.complex, ptr %1872, i32 0, i32 0
  %1874 = load float, ptr %1873, align 4, !tbaa !13
  %1875 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1876 = load float, ptr %1875, align 4, !tbaa !15
  %1877 = load ptr, ptr %20, align 8, !tbaa !5
  %1878 = load i32, ptr %33, align 4, !tbaa !9
  %1879 = sext i32 %1878 to i64
  %1880 = getelementptr inbounds %struct.complex, ptr %1877, i64 %1879
  %1881 = getelementptr inbounds %struct.complex, ptr %1880, i32 0, i32 1
  %1882 = load float, ptr %1881, align 4, !tbaa !15
  %1883 = fmul float %1876, %1882
  %1884 = fneg float %1883
  %1885 = call float @llvm.fmuladd.f32(float %1868, float %1874, float %1884)
  %1886 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %1885, ptr %1886, align 4, !tbaa !13
  %1887 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %1888 = load float, ptr %1887, align 4, !tbaa !13
  %1889 = load ptr, ptr %20, align 8, !tbaa !5
  %1890 = load i32, ptr %33, align 4, !tbaa !9
  %1891 = sext i32 %1890 to i64
  %1892 = getelementptr inbounds %struct.complex, ptr %1889, i64 %1891
  %1893 = getelementptr inbounds %struct.complex, ptr %1892, i32 0, i32 1
  %1894 = load float, ptr %1893, align 4, !tbaa !15
  %1895 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %1896 = load float, ptr %1895, align 4, !tbaa !15
  %1897 = load ptr, ptr %20, align 8, !tbaa !5
  %1898 = load i32, ptr %33, align 4, !tbaa !9
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds %struct.complex, ptr %1897, i64 %1899
  %1901 = getelementptr inbounds %struct.complex, ptr %1900, i32 0, i32 0
  %1902 = load float, ptr %1901, align 4, !tbaa !13
  %1903 = fmul float %1896, %1902
  %1904 = call float @llvm.fmuladd.f32(float %1888, float %1894, float %1903)
  %1905 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %1904, ptr %1905, align 4, !tbaa !15
  %1906 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %1907 = load float, ptr %1906, align 4, !tbaa !13
  %1908 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %1909 = load float, ptr %1908, align 4, !tbaa !13
  %1910 = fadd float %1907, %1909
  %1911 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %1910, ptr %1911, align 4, !tbaa !13
  %1912 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %1913 = load float, ptr %1912, align 4, !tbaa !15
  %1914 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %1915 = load float, ptr %1914, align 4, !tbaa !15
  %1916 = fadd float %1913, %1915
  %1917 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %1916, ptr %1917, align 4, !tbaa !15
  %1918 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %1919 = load float, ptr %1918, align 4, !tbaa !13
  %1920 = load ptr, ptr %23, align 8, !tbaa !5
  %1921 = load i32, ptr %30, align 4, !tbaa !9
  %1922 = sext i32 %1921 to i64
  %1923 = getelementptr inbounds %struct.complex, ptr %1920, i64 %1922
  %1924 = getelementptr inbounds %struct.complex, ptr %1923, i32 0, i32 0
  store float %1919, ptr %1924, align 4, !tbaa !13
  %1925 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %1926 = load float, ptr %1925, align 4, !tbaa !15
  %1927 = load ptr, ptr %23, align 8, !tbaa !5
  %1928 = load i32, ptr %30, align 4, !tbaa !9
  %1929 = sext i32 %1928 to i64
  %1930 = getelementptr inbounds %struct.complex, ptr %1927, i64 %1929
  %1931 = getelementptr inbounds %struct.complex, ptr %1930, i32 0, i32 1
  store float %1926, ptr %1931, align 4, !tbaa !15
  %1932 = load ptr, ptr %14, align 8, !tbaa !5
  %1933 = load i32, ptr %1932, align 4, !tbaa !9
  %1934 = load i32, ptr %49, align 4, !tbaa !9
  %1935 = load i32, ptr %25, align 4, !tbaa !9
  %1936 = mul nsw i32 %1934, %1935
  %1937 = add nsw i32 %1933, %1936
  store i32 %1937, ptr %30, align 4, !tbaa !9
  %1938 = load ptr, ptr %14, align 8, !tbaa !5
  %1939 = load i32, ptr %1938, align 4, !tbaa !9
  %1940 = load i32, ptr %49, align 4, !tbaa !9
  %1941 = load i32, ptr %25, align 4, !tbaa !9
  %1942 = mul nsw i32 %1940, %1941
  %1943 = add nsw i32 %1939, %1942
  store i32 %1943, ptr %31, align 4, !tbaa !9
  %1944 = load ptr, ptr %19, align 8, !tbaa !5
  %1945 = load ptr, ptr %14, align 8, !tbaa !5
  %1946 = load i32, ptr %1945, align 4, !tbaa !9
  %1947 = sub nsw i32 %1946, 1
  %1948 = sext i32 %1947 to i64
  %1949 = getelementptr inbounds %struct.complex, ptr %1944, i64 %1948
  %1950 = call <2 x float> @Cf(ptr noundef %1949)
  store <2 x float> %1950, ptr %54, align 4
  %1951 = getelementptr inbounds { float, float }, ptr %54, i32 0, i32 0
  %1952 = load float, ptr %1951, align 4
  %1953 = getelementptr inbounds { float, float }, ptr %54, i32 0, i32 1
  %1954 = load float, ptr %1953, align 4
  %1955 = fneg float %1954
  %1956 = call ptr @_pCf(ptr noundef %42)
  %1957 = getelementptr inbounds { float, float }, ptr %1956, i32 0, i32 0
  %1958 = getelementptr inbounds { float, float }, ptr %1956, i32 0, i32 1
  store float %1952, ptr %1957, align 4
  store float %1955, ptr %1958, align 4
  %1959 = load ptr, ptr %14, align 8, !tbaa !5
  %1960 = load i32, ptr %1959, align 4, !tbaa !9
  %1961 = sub nsw i32 %1960, 1
  %1962 = load i32, ptr %49, align 4, !tbaa !9
  %1963 = load i32, ptr %27, align 4, !tbaa !9
  %1964 = mul nsw i32 %1962, %1963
  %1965 = add nsw i32 %1961, %1964
  store i32 %1965, ptr %32, align 4, !tbaa !9
  %1966 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1967 = load float, ptr %1966, align 4, !tbaa !13
  %1968 = load ptr, ptr %20, align 8, !tbaa !5
  %1969 = load i32, ptr %32, align 4, !tbaa !9
  %1970 = sext i32 %1969 to i64
  %1971 = getelementptr inbounds %struct.complex, ptr %1968, i64 %1970
  %1972 = getelementptr inbounds %struct.complex, ptr %1971, i32 0, i32 0
  %1973 = load float, ptr %1972, align 4, !tbaa !13
  %1974 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1975 = load float, ptr %1974, align 4, !tbaa !15
  %1976 = load ptr, ptr %20, align 8, !tbaa !5
  %1977 = load i32, ptr %32, align 4, !tbaa !9
  %1978 = sext i32 %1977 to i64
  %1979 = getelementptr inbounds %struct.complex, ptr %1976, i64 %1978
  %1980 = getelementptr inbounds %struct.complex, ptr %1979, i32 0, i32 1
  %1981 = load float, ptr %1980, align 4, !tbaa !15
  %1982 = fmul float %1975, %1981
  %1983 = fneg float %1982
  %1984 = call float @llvm.fmuladd.f32(float %1967, float %1973, float %1983)
  %1985 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %1984, ptr %1985, align 4, !tbaa !13
  %1986 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %1987 = load float, ptr %1986, align 4, !tbaa !13
  %1988 = load ptr, ptr %20, align 8, !tbaa !5
  %1989 = load i32, ptr %32, align 4, !tbaa !9
  %1990 = sext i32 %1989 to i64
  %1991 = getelementptr inbounds %struct.complex, ptr %1988, i64 %1990
  %1992 = getelementptr inbounds %struct.complex, ptr %1991, i32 0, i32 1
  %1993 = load float, ptr %1992, align 4, !tbaa !15
  %1994 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %1995 = load float, ptr %1994, align 4, !tbaa !15
  %1996 = load ptr, ptr %20, align 8, !tbaa !5
  %1997 = load i32, ptr %32, align 4, !tbaa !9
  %1998 = sext i32 %1997 to i64
  %1999 = getelementptr inbounds %struct.complex, ptr %1996, i64 %1998
  %2000 = getelementptr inbounds %struct.complex, ptr %1999, i32 0, i32 0
  %2001 = load float, ptr %2000, align 4, !tbaa !13
  %2002 = fmul float %1995, %2001
  %2003 = call float @llvm.fmuladd.f32(float %1987, float %1993, float %2002)
  %2004 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %2003, ptr %2004, align 4, !tbaa !15
  %2005 = load ptr, ptr %23, align 8, !tbaa !5
  %2006 = load i32, ptr %31, align 4, !tbaa !9
  %2007 = sext i32 %2006 to i64
  %2008 = getelementptr inbounds %struct.complex, ptr %2005, i64 %2007
  %2009 = getelementptr inbounds %struct.complex, ptr %2008, i32 0, i32 0
  %2010 = load float, ptr %2009, align 4, !tbaa !13
  %2011 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2012 = load float, ptr %2011, align 4, !tbaa !13
  %2013 = fadd float %2010, %2012
  %2014 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %2013, ptr %2014, align 4, !tbaa !13
  %2015 = load ptr, ptr %23, align 8, !tbaa !5
  %2016 = load i32, ptr %31, align 4, !tbaa !9
  %2017 = sext i32 %2016 to i64
  %2018 = getelementptr inbounds %struct.complex, ptr %2015, i64 %2017
  %2019 = getelementptr inbounds %struct.complex, ptr %2018, i32 0, i32 1
  %2020 = load float, ptr %2019, align 4, !tbaa !15
  %2021 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2022 = load float, ptr %2021, align 4, !tbaa !15
  %2023 = fadd float %2020, %2022
  %2024 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %2023, ptr %2024, align 4, !tbaa !15
  %2025 = load ptr, ptr %18, align 8, !tbaa !5
  %2026 = load ptr, ptr %14, align 8, !tbaa !5
  %2027 = load i32, ptr %2026, align 4, !tbaa !9
  %2028 = sext i32 %2027 to i64
  %2029 = getelementptr inbounds %struct.complex, ptr %2025, i64 %2028
  %2030 = call <2 x float> @Cf(ptr noundef %2029)
  store <2 x float> %2030, ptr %55, align 4
  %2031 = getelementptr inbounds { float, float }, ptr %55, i32 0, i32 0
  %2032 = load float, ptr %2031, align 4
  %2033 = getelementptr inbounds { float, float }, ptr %55, i32 0, i32 1
  %2034 = load float, ptr %2033, align 4
  %2035 = fneg float %2034
  %2036 = call ptr @_pCf(ptr noundef %44)
  %2037 = getelementptr inbounds { float, float }, ptr %2036, i32 0, i32 0
  %2038 = getelementptr inbounds { float, float }, ptr %2036, i32 0, i32 1
  store float %2032, ptr %2037, align 4
  store float %2035, ptr %2038, align 4
  %2039 = load ptr, ptr %14, align 8, !tbaa !5
  %2040 = load i32, ptr %2039, align 4, !tbaa !9
  %2041 = load i32, ptr %49, align 4, !tbaa !9
  %2042 = load i32, ptr %27, align 4, !tbaa !9
  %2043 = mul nsw i32 %2041, %2042
  %2044 = add nsw i32 %2040, %2043
  store i32 %2044, ptr %33, align 4, !tbaa !9
  %2045 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2046 = load float, ptr %2045, align 4, !tbaa !13
  %2047 = load ptr, ptr %20, align 8, !tbaa !5
  %2048 = load i32, ptr %33, align 4, !tbaa !9
  %2049 = sext i32 %2048 to i64
  %2050 = getelementptr inbounds %struct.complex, ptr %2047, i64 %2049
  %2051 = getelementptr inbounds %struct.complex, ptr %2050, i32 0, i32 0
  %2052 = load float, ptr %2051, align 4, !tbaa !13
  %2053 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2054 = load float, ptr %2053, align 4, !tbaa !15
  %2055 = load ptr, ptr %20, align 8, !tbaa !5
  %2056 = load i32, ptr %33, align 4, !tbaa !9
  %2057 = sext i32 %2056 to i64
  %2058 = getelementptr inbounds %struct.complex, ptr %2055, i64 %2057
  %2059 = getelementptr inbounds %struct.complex, ptr %2058, i32 0, i32 1
  %2060 = load float, ptr %2059, align 4, !tbaa !15
  %2061 = fmul float %2054, %2060
  %2062 = fneg float %2061
  %2063 = call float @llvm.fmuladd.f32(float %2046, float %2052, float %2062)
  %2064 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %2063, ptr %2064, align 4, !tbaa !13
  %2065 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2066 = load float, ptr %2065, align 4, !tbaa !13
  %2067 = load ptr, ptr %20, align 8, !tbaa !5
  %2068 = load i32, ptr %33, align 4, !tbaa !9
  %2069 = sext i32 %2068 to i64
  %2070 = getelementptr inbounds %struct.complex, ptr %2067, i64 %2069
  %2071 = getelementptr inbounds %struct.complex, ptr %2070, i32 0, i32 1
  %2072 = load float, ptr %2071, align 4, !tbaa !15
  %2073 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2074 = load float, ptr %2073, align 4, !tbaa !15
  %2075 = load ptr, ptr %20, align 8, !tbaa !5
  %2076 = load i32, ptr %33, align 4, !tbaa !9
  %2077 = sext i32 %2076 to i64
  %2078 = getelementptr inbounds %struct.complex, ptr %2075, i64 %2077
  %2079 = getelementptr inbounds %struct.complex, ptr %2078, i32 0, i32 0
  %2080 = load float, ptr %2079, align 4, !tbaa !13
  %2081 = fmul float %2074, %2080
  %2082 = call float @llvm.fmuladd.f32(float %2066, float %2072, float %2081)
  %2083 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %2082, ptr %2083, align 4, !tbaa !15
  %2084 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %2085 = load float, ptr %2084, align 4, !tbaa !13
  %2086 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %2087 = load float, ptr %2086, align 4, !tbaa !13
  %2088 = fadd float %2085, %2087
  %2089 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2088, ptr %2089, align 4, !tbaa !13
  %2090 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %2091 = load float, ptr %2090, align 4, !tbaa !15
  %2092 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %2093 = load float, ptr %2092, align 4, !tbaa !15
  %2094 = fadd float %2091, %2093
  %2095 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %2094, ptr %2095, align 4, !tbaa !15
  %2096 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %2097 = load float, ptr %2096, align 4, !tbaa !13
  %2098 = load ptr, ptr %23, align 8, !tbaa !5
  %2099 = load i32, ptr %30, align 4, !tbaa !9
  %2100 = sext i32 %2099 to i64
  %2101 = getelementptr inbounds %struct.complex, ptr %2098, i64 %2100
  %2102 = getelementptr inbounds %struct.complex, ptr %2101, i32 0, i32 0
  store float %2097, ptr %2102, align 4, !tbaa !13
  %2103 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %2104 = load float, ptr %2103, align 4, !tbaa !15
  %2105 = load ptr, ptr %23, align 8, !tbaa !5
  %2106 = load i32, ptr %30, align 4, !tbaa !9
  %2107 = sext i32 %2106 to i64
  %2108 = getelementptr inbounds %struct.complex, ptr %2105, i64 %2107
  %2109 = getelementptr inbounds %struct.complex, ptr %2108, i32 0, i32 1
  store float %2104, ptr %2109, align 4, !tbaa !15
  %2110 = load ptr, ptr %14, align 8, !tbaa !5
  %2111 = load i32, ptr %2110, align 4, !tbaa !9
  %2112 = sub nsw i32 %2111, 1
  store i32 %2112, ptr %30, align 4, !tbaa !9
  store i32 2, ptr %48, align 4, !tbaa !9
  br label %2113

2113:                                             ; preds = %2360, %1769
  %2114 = load i32, ptr %48, align 4, !tbaa !9
  %2115 = load i32, ptr %30, align 4, !tbaa !9
  %2116 = icmp sle i32 %2114, %2115
  br i1 %2116, label %2117, label %2363

2117:                                             ; preds = %2113
  %2118 = load i32, ptr %48, align 4, !tbaa !9
  %2119 = load i32, ptr %49, align 4, !tbaa !9
  %2120 = load i32, ptr %25, align 4, !tbaa !9
  %2121 = mul nsw i32 %2119, %2120
  %2122 = add nsw i32 %2118, %2121
  store i32 %2122, ptr %31, align 4, !tbaa !9
  %2123 = load i32, ptr %48, align 4, !tbaa !9
  %2124 = load i32, ptr %49, align 4, !tbaa !9
  %2125 = load i32, ptr %25, align 4, !tbaa !9
  %2126 = mul nsw i32 %2124, %2125
  %2127 = add nsw i32 %2123, %2126
  store i32 %2127, ptr %32, align 4, !tbaa !9
  %2128 = load ptr, ptr %19, align 8, !tbaa !5
  %2129 = load i32, ptr %48, align 4, !tbaa !9
  %2130 = sub nsw i32 %2129, 1
  %2131 = sext i32 %2130 to i64
  %2132 = getelementptr inbounds %struct.complex, ptr %2128, i64 %2131
  %2133 = call <2 x float> @Cf(ptr noundef %2132)
  store <2 x float> %2133, ptr %56, align 4
  %2134 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 0
  %2135 = load float, ptr %2134, align 4
  %2136 = getelementptr inbounds { float, float }, ptr %56, i32 0, i32 1
  %2137 = load float, ptr %2136, align 4
  %2138 = fneg float %2137
  %2139 = call ptr @_pCf(ptr noundef %43)
  %2140 = getelementptr inbounds { float, float }, ptr %2139, i32 0, i32 0
  %2141 = getelementptr inbounds { float, float }, ptr %2139, i32 0, i32 1
  store float %2135, ptr %2140, align 4
  store float %2138, ptr %2141, align 4
  %2142 = load i32, ptr %48, align 4, !tbaa !9
  %2143 = sub nsw i32 %2142, 1
  %2144 = load i32, ptr %49, align 4, !tbaa !9
  %2145 = load i32, ptr %27, align 4, !tbaa !9
  %2146 = mul nsw i32 %2144, %2145
  %2147 = add nsw i32 %2143, %2146
  store i32 %2147, ptr %33, align 4, !tbaa !9
  %2148 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %2149 = load float, ptr %2148, align 4, !tbaa !13
  %2150 = load ptr, ptr %20, align 8, !tbaa !5
  %2151 = load i32, ptr %33, align 4, !tbaa !9
  %2152 = sext i32 %2151 to i64
  %2153 = getelementptr inbounds %struct.complex, ptr %2150, i64 %2152
  %2154 = getelementptr inbounds %struct.complex, ptr %2153, i32 0, i32 0
  %2155 = load float, ptr %2154, align 4, !tbaa !13
  %2156 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %2157 = load float, ptr %2156, align 4, !tbaa !15
  %2158 = load ptr, ptr %20, align 8, !tbaa !5
  %2159 = load i32, ptr %33, align 4, !tbaa !9
  %2160 = sext i32 %2159 to i64
  %2161 = getelementptr inbounds %struct.complex, ptr %2158, i64 %2160
  %2162 = getelementptr inbounds %struct.complex, ptr %2161, i32 0, i32 1
  %2163 = load float, ptr %2162, align 4, !tbaa !15
  %2164 = fmul float %2157, %2163
  %2165 = fneg float %2164
  %2166 = call float @llvm.fmuladd.f32(float %2149, float %2155, float %2165)
  %2167 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2166, ptr %2167, align 4, !tbaa !13
  %2168 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %2169 = load float, ptr %2168, align 4, !tbaa !13
  %2170 = load ptr, ptr %20, align 8, !tbaa !5
  %2171 = load i32, ptr %33, align 4, !tbaa !9
  %2172 = sext i32 %2171 to i64
  %2173 = getelementptr inbounds %struct.complex, ptr %2170, i64 %2172
  %2174 = getelementptr inbounds %struct.complex, ptr %2173, i32 0, i32 1
  %2175 = load float, ptr %2174, align 4, !tbaa !15
  %2176 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %2177 = load float, ptr %2176, align 4, !tbaa !15
  %2178 = load ptr, ptr %20, align 8, !tbaa !5
  %2179 = load i32, ptr %33, align 4, !tbaa !9
  %2180 = sext i32 %2179 to i64
  %2181 = getelementptr inbounds %struct.complex, ptr %2178, i64 %2180
  %2182 = getelementptr inbounds %struct.complex, ptr %2181, i32 0, i32 0
  %2183 = load float, ptr %2182, align 4, !tbaa !13
  %2184 = fmul float %2177, %2183
  %2185 = call float @llvm.fmuladd.f32(float %2169, float %2175, float %2184)
  %2186 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2185, ptr %2186, align 4, !tbaa !15
  %2187 = load ptr, ptr %23, align 8, !tbaa !5
  %2188 = load i32, ptr %32, align 4, !tbaa !9
  %2189 = sext i32 %2188 to i64
  %2190 = getelementptr inbounds %struct.complex, ptr %2187, i64 %2189
  %2191 = getelementptr inbounds %struct.complex, ptr %2190, i32 0, i32 0
  %2192 = load float, ptr %2191, align 4, !tbaa !13
  %2193 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2194 = load float, ptr %2193, align 4, !tbaa !13
  %2195 = fadd float %2192, %2194
  %2196 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %2195, ptr %2196, align 4, !tbaa !13
  %2197 = load ptr, ptr %23, align 8, !tbaa !5
  %2198 = load i32, ptr %32, align 4, !tbaa !9
  %2199 = sext i32 %2198 to i64
  %2200 = getelementptr inbounds %struct.complex, ptr %2197, i64 %2199
  %2201 = getelementptr inbounds %struct.complex, ptr %2200, i32 0, i32 1
  %2202 = load float, ptr %2201, align 4, !tbaa !15
  %2203 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2204 = load float, ptr %2203, align 4, !tbaa !15
  %2205 = fadd float %2202, %2204
  %2206 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %2205, ptr %2206, align 4, !tbaa !15
  %2207 = load ptr, ptr %18, align 8, !tbaa !5
  %2208 = load i32, ptr %48, align 4, !tbaa !9
  %2209 = sext i32 %2208 to i64
  %2210 = getelementptr inbounds %struct.complex, ptr %2207, i64 %2209
  %2211 = call <2 x float> @Cf(ptr noundef %2210)
  store <2 x float> %2211, ptr %57, align 4
  %2212 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 0
  %2213 = load float, ptr %2212, align 4
  %2214 = getelementptr inbounds { float, float }, ptr %57, i32 0, i32 1
  %2215 = load float, ptr %2214, align 4
  %2216 = fneg float %2215
  %2217 = call ptr @_pCf(ptr noundef %45)
  %2218 = getelementptr inbounds { float, float }, ptr %2217, i32 0, i32 0
  %2219 = getelementptr inbounds { float, float }, ptr %2217, i32 0, i32 1
  store float %2213, ptr %2218, align 4
  store float %2216, ptr %2219, align 4
  %2220 = load i32, ptr %48, align 4, !tbaa !9
  %2221 = load i32, ptr %49, align 4, !tbaa !9
  %2222 = load i32, ptr %27, align 4, !tbaa !9
  %2223 = mul nsw i32 %2221, %2222
  %2224 = add nsw i32 %2220, %2223
  store i32 %2224, ptr %34, align 4, !tbaa !9
  %2225 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2226 = load float, ptr %2225, align 4, !tbaa !13
  %2227 = load ptr, ptr %20, align 8, !tbaa !5
  %2228 = load i32, ptr %34, align 4, !tbaa !9
  %2229 = sext i32 %2228 to i64
  %2230 = getelementptr inbounds %struct.complex, ptr %2227, i64 %2229
  %2231 = getelementptr inbounds %struct.complex, ptr %2230, i32 0, i32 0
  %2232 = load float, ptr %2231, align 4, !tbaa !13
  %2233 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2234 = load float, ptr %2233, align 4, !tbaa !15
  %2235 = load ptr, ptr %20, align 8, !tbaa !5
  %2236 = load i32, ptr %34, align 4, !tbaa !9
  %2237 = sext i32 %2236 to i64
  %2238 = getelementptr inbounds %struct.complex, ptr %2235, i64 %2237
  %2239 = getelementptr inbounds %struct.complex, ptr %2238, i32 0, i32 1
  %2240 = load float, ptr %2239, align 4, !tbaa !15
  %2241 = fmul float %2234, %2240
  %2242 = fneg float %2241
  %2243 = call float @llvm.fmuladd.f32(float %2226, float %2232, float %2242)
  %2244 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %2243, ptr %2244, align 4, !tbaa !13
  %2245 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %2246 = load float, ptr %2245, align 4, !tbaa !13
  %2247 = load ptr, ptr %20, align 8, !tbaa !5
  %2248 = load i32, ptr %34, align 4, !tbaa !9
  %2249 = sext i32 %2248 to i64
  %2250 = getelementptr inbounds %struct.complex, ptr %2247, i64 %2249
  %2251 = getelementptr inbounds %struct.complex, ptr %2250, i32 0, i32 1
  %2252 = load float, ptr %2251, align 4, !tbaa !15
  %2253 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %2254 = load float, ptr %2253, align 4, !tbaa !15
  %2255 = load ptr, ptr %20, align 8, !tbaa !5
  %2256 = load i32, ptr %34, align 4, !tbaa !9
  %2257 = sext i32 %2256 to i64
  %2258 = getelementptr inbounds %struct.complex, ptr %2255, i64 %2257
  %2259 = getelementptr inbounds %struct.complex, ptr %2258, i32 0, i32 0
  %2260 = load float, ptr %2259, align 4, !tbaa !13
  %2261 = fmul float %2254, %2260
  %2262 = call float @llvm.fmuladd.f32(float %2246, float %2252, float %2261)
  %2263 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %2262, ptr %2263, align 4, !tbaa !15
  %2264 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2265 = load float, ptr %2264, align 4, !tbaa !13
  %2266 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %2267 = load float, ptr %2266, align 4, !tbaa !13
  %2268 = fadd float %2265, %2267
  %2269 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %2268, ptr %2269, align 4, !tbaa !13
  %2270 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2271 = load float, ptr %2270, align 4, !tbaa !15
  %2272 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %2273 = load float, ptr %2272, align 4, !tbaa !15
  %2274 = fadd float %2271, %2273
  %2275 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %2274, ptr %2275, align 4, !tbaa !15
  %2276 = load ptr, ptr %17, align 8, !tbaa !5
  %2277 = load i32, ptr %48, align 4, !tbaa !9
  %2278 = sext i32 %2277 to i64
  %2279 = getelementptr inbounds %struct.complex, ptr %2276, i64 %2278
  %2280 = call <2 x float> @Cf(ptr noundef %2279)
  store <2 x float> %2280, ptr %58, align 4
  %2281 = getelementptr inbounds { float, float }, ptr %58, i32 0, i32 0
  %2282 = load float, ptr %2281, align 4
  %2283 = getelementptr inbounds { float, float }, ptr %58, i32 0, i32 1
  %2284 = load float, ptr %2283, align 4
  %2285 = fneg float %2284
  %2286 = call ptr @_pCf(ptr noundef %47)
  %2287 = getelementptr inbounds { float, float }, ptr %2286, i32 0, i32 0
  %2288 = getelementptr inbounds { float, float }, ptr %2286, i32 0, i32 1
  store float %2282, ptr %2287, align 4
  store float %2285, ptr %2288, align 4
  %2289 = load i32, ptr %48, align 4, !tbaa !9
  %2290 = add nsw i32 %2289, 1
  %2291 = load i32, ptr %49, align 4, !tbaa !9
  %2292 = load i32, ptr %27, align 4, !tbaa !9
  %2293 = mul nsw i32 %2291, %2292
  %2294 = add nsw i32 %2290, %2293
  store i32 %2294, ptr %35, align 4, !tbaa !9
  %2295 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %2296 = load float, ptr %2295, align 4, !tbaa !13
  %2297 = load ptr, ptr %20, align 8, !tbaa !5
  %2298 = load i32, ptr %35, align 4, !tbaa !9
  %2299 = sext i32 %2298 to i64
  %2300 = getelementptr inbounds %struct.complex, ptr %2297, i64 %2299
  %2301 = getelementptr inbounds %struct.complex, ptr %2300, i32 0, i32 0
  %2302 = load float, ptr %2301, align 4, !tbaa !13
  %2303 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %2304 = load float, ptr %2303, align 4, !tbaa !15
  %2305 = load ptr, ptr %20, align 8, !tbaa !5
  %2306 = load i32, ptr %35, align 4, !tbaa !9
  %2307 = sext i32 %2306 to i64
  %2308 = getelementptr inbounds %struct.complex, ptr %2305, i64 %2307
  %2309 = getelementptr inbounds %struct.complex, ptr %2308, i32 0, i32 1
  %2310 = load float, ptr %2309, align 4, !tbaa !15
  %2311 = fmul float %2304, %2310
  %2312 = fneg float %2311
  %2313 = call float @llvm.fmuladd.f32(float %2296, float %2302, float %2312)
  %2314 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %2313, ptr %2314, align 4, !tbaa !13
  %2315 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %2316 = load float, ptr %2315, align 4, !tbaa !13
  %2317 = load ptr, ptr %20, align 8, !tbaa !5
  %2318 = load i32, ptr %35, align 4, !tbaa !9
  %2319 = sext i32 %2318 to i64
  %2320 = getelementptr inbounds %struct.complex, ptr %2317, i64 %2319
  %2321 = getelementptr inbounds %struct.complex, ptr %2320, i32 0, i32 1
  %2322 = load float, ptr %2321, align 4, !tbaa !15
  %2323 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %2324 = load float, ptr %2323, align 4, !tbaa !15
  %2325 = load ptr, ptr %20, align 8, !tbaa !5
  %2326 = load i32, ptr %35, align 4, !tbaa !9
  %2327 = sext i32 %2326 to i64
  %2328 = getelementptr inbounds %struct.complex, ptr %2325, i64 %2327
  %2329 = getelementptr inbounds %struct.complex, ptr %2328, i32 0, i32 0
  %2330 = load float, ptr %2329, align 4, !tbaa !13
  %2331 = fmul float %2324, %2330
  %2332 = call float @llvm.fmuladd.f32(float %2316, float %2322, float %2331)
  %2333 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %2332, ptr %2333, align 4, !tbaa !15
  %2334 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %2335 = load float, ptr %2334, align 4, !tbaa !13
  %2336 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %2337 = load float, ptr %2336, align 4, !tbaa !13
  %2338 = fadd float %2335, %2337
  %2339 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2338, ptr %2339, align 4, !tbaa !13
  %2340 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %2341 = load float, ptr %2340, align 4, !tbaa !15
  %2342 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %2343 = load float, ptr %2342, align 4, !tbaa !15
  %2344 = fadd float %2341, %2343
  %2345 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %2344, ptr %2345, align 4, !tbaa !15
  %2346 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %2347 = load float, ptr %2346, align 4, !tbaa !13
  %2348 = load ptr, ptr %23, align 8, !tbaa !5
  %2349 = load i32, ptr %31, align 4, !tbaa !9
  %2350 = sext i32 %2349 to i64
  %2351 = getelementptr inbounds %struct.complex, ptr %2348, i64 %2350
  %2352 = getelementptr inbounds %struct.complex, ptr %2351, i32 0, i32 0
  store float %2347, ptr %2352, align 4, !tbaa !13
  %2353 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %2354 = load float, ptr %2353, align 4, !tbaa !15
  %2355 = load ptr, ptr %23, align 8, !tbaa !5
  %2356 = load i32, ptr %31, align 4, !tbaa !9
  %2357 = sext i32 %2356 to i64
  %2358 = getelementptr inbounds %struct.complex, ptr %2355, i64 %2357
  %2359 = getelementptr inbounds %struct.complex, ptr %2358, i32 0, i32 1
  store float %2354, ptr %2359, align 4, !tbaa !15
  br label %2360

2360:                                             ; preds = %2117
  %2361 = load i32, ptr %48, align 4, !tbaa !9
  %2362 = add nsw i32 %2361, 1
  store i32 %2362, ptr %48, align 4, !tbaa !9
  br label %2113, !llvm.loop !25

2363:                                             ; preds = %2113
  br label %2364

2364:                                             ; preds = %2363, %1672
  br label %2365

2365:                                             ; preds = %2364
  %2366 = load i32, ptr %49, align 4, !tbaa !9
  %2367 = add nsw i32 %2366, 1
  store i32 %2367, ptr %49, align 4, !tbaa !9
  br label %1664, !llvm.loop !26

2368:                                             ; preds = %1664
  br label %2369

2369:                                             ; preds = %2368, %1657
  br label %2370

2370:                                             ; preds = %2369, %1656
  br label %2371

2371:                                             ; preds = %2370, %933
  br label %4538

2372:                                             ; preds = %207
  %2373 = load ptr, ptr %16, align 8, !tbaa !5
  %2374 = load float, ptr %2373, align 4, !tbaa !11
  %2375 = fcmp oeq float %2374, -1.000000e+00
  br i1 %2375, label %2376, label %4537

2376:                                             ; preds = %2372
  %2377 = load ptr, ptr %13, align 8, !tbaa !5
  %2378 = call i32 @lsame_(ptr noundef %2377, ptr noundef @.str)
  %2379 = icmp ne i32 %2378, 0
  br i1 %2379, label %2380, label %3099

2380:                                             ; preds = %2376
  %2381 = load ptr, ptr %15, align 8, !tbaa !5
  %2382 = load i32, ptr %2381, align 4, !tbaa !9
  store i32 %2382, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %2383

2383:                                             ; preds = %3095, %2380
  %2384 = load i32, ptr %49, align 4, !tbaa !9
  %2385 = load i32, ptr %29, align 4, !tbaa !9
  %2386 = icmp sle i32 %2384, %2385
  br i1 %2386, label %2387, label %3098

2387:                                             ; preds = %2383
  %2388 = load ptr, ptr %14, align 8, !tbaa !5
  %2389 = load i32, ptr %2388, align 4, !tbaa !9
  %2390 = icmp eq i32 %2389, 1
  br i1 %2390, label %2391, label %2485

2391:                                             ; preds = %2387
  %2392 = load i32, ptr %49, align 4, !tbaa !9
  %2393 = load i32, ptr %25, align 4, !tbaa !9
  %2394 = mul nsw i32 %2392, %2393
  %2395 = add nsw i32 %2394, 1
  store i32 %2395, ptr %30, align 4, !tbaa !9
  %2396 = load i32, ptr %49, align 4, !tbaa !9
  %2397 = load i32, ptr %25, align 4, !tbaa !9
  %2398 = mul nsw i32 %2396, %2397
  %2399 = add nsw i32 %2398, 1
  store i32 %2399, ptr %31, align 4, !tbaa !9
  %2400 = load i32, ptr %49, align 4, !tbaa !9
  %2401 = load i32, ptr %27, align 4, !tbaa !9
  %2402 = mul nsw i32 %2400, %2401
  %2403 = add nsw i32 %2402, 1
  store i32 %2403, ptr %32, align 4, !tbaa !9
  %2404 = load ptr, ptr %18, align 8, !tbaa !5
  %2405 = getelementptr inbounds %struct.complex, ptr %2404, i64 1
  %2406 = getelementptr inbounds %struct.complex, ptr %2405, i32 0, i32 0
  %2407 = load float, ptr %2406, align 4, !tbaa !13
  %2408 = load ptr, ptr %20, align 8, !tbaa !5
  %2409 = load i32, ptr %32, align 4, !tbaa !9
  %2410 = sext i32 %2409 to i64
  %2411 = getelementptr inbounds %struct.complex, ptr %2408, i64 %2410
  %2412 = getelementptr inbounds %struct.complex, ptr %2411, i32 0, i32 0
  %2413 = load float, ptr %2412, align 4, !tbaa !13
  %2414 = load ptr, ptr %18, align 8, !tbaa !5
  %2415 = getelementptr inbounds %struct.complex, ptr %2414, i64 1
  %2416 = getelementptr inbounds %struct.complex, ptr %2415, i32 0, i32 1
  %2417 = load float, ptr %2416, align 4, !tbaa !15
  %2418 = load ptr, ptr %20, align 8, !tbaa !5
  %2419 = load i32, ptr %32, align 4, !tbaa !9
  %2420 = sext i32 %2419 to i64
  %2421 = getelementptr inbounds %struct.complex, ptr %2418, i64 %2420
  %2422 = getelementptr inbounds %struct.complex, ptr %2421, i32 0, i32 1
  %2423 = load float, ptr %2422, align 4, !tbaa !15
  %2424 = fmul float %2417, %2423
  %2425 = fneg float %2424
  %2426 = call float @llvm.fmuladd.f32(float %2407, float %2413, float %2425)
  %2427 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %2426, ptr %2427, align 4, !tbaa !13
  %2428 = load ptr, ptr %18, align 8, !tbaa !5
  %2429 = getelementptr inbounds %struct.complex, ptr %2428, i64 1
  %2430 = getelementptr inbounds %struct.complex, ptr %2429, i32 0, i32 0
  %2431 = load float, ptr %2430, align 4, !tbaa !13
  %2432 = load ptr, ptr %20, align 8, !tbaa !5
  %2433 = load i32, ptr %32, align 4, !tbaa !9
  %2434 = sext i32 %2433 to i64
  %2435 = getelementptr inbounds %struct.complex, ptr %2432, i64 %2434
  %2436 = getelementptr inbounds %struct.complex, ptr %2435, i32 0, i32 1
  %2437 = load float, ptr %2436, align 4, !tbaa !15
  %2438 = load ptr, ptr %18, align 8, !tbaa !5
  %2439 = getelementptr inbounds %struct.complex, ptr %2438, i64 1
  %2440 = getelementptr inbounds %struct.complex, ptr %2439, i32 0, i32 1
  %2441 = load float, ptr %2440, align 4, !tbaa !15
  %2442 = load ptr, ptr %20, align 8, !tbaa !5
  %2443 = load i32, ptr %32, align 4, !tbaa !9
  %2444 = sext i32 %2443 to i64
  %2445 = getelementptr inbounds %struct.complex, ptr %2442, i64 %2444
  %2446 = getelementptr inbounds %struct.complex, ptr %2445, i32 0, i32 0
  %2447 = load float, ptr %2446, align 4, !tbaa !13
  %2448 = fmul float %2441, %2447
  %2449 = call float @llvm.fmuladd.f32(float %2431, float %2437, float %2448)
  %2450 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %2449, ptr %2450, align 4, !tbaa !15
  %2451 = load ptr, ptr %23, align 8, !tbaa !5
  %2452 = load i32, ptr %31, align 4, !tbaa !9
  %2453 = sext i32 %2452 to i64
  %2454 = getelementptr inbounds %struct.complex, ptr %2451, i64 %2453
  %2455 = getelementptr inbounds %struct.complex, ptr %2454, i32 0, i32 0
  %2456 = load float, ptr %2455, align 4, !tbaa !13
  %2457 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %2458 = load float, ptr %2457, align 4, !tbaa !13
  %2459 = fsub float %2456, %2458
  %2460 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2459, ptr %2460, align 4, !tbaa !13
  %2461 = load ptr, ptr %23, align 8, !tbaa !5
  %2462 = load i32, ptr %31, align 4, !tbaa !9
  %2463 = sext i32 %2462 to i64
  %2464 = getelementptr inbounds %struct.complex, ptr %2461, i64 %2463
  %2465 = getelementptr inbounds %struct.complex, ptr %2464, i32 0, i32 1
  %2466 = load float, ptr %2465, align 4, !tbaa !15
  %2467 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %2468 = load float, ptr %2467, align 4, !tbaa !15
  %2469 = fsub float %2466, %2468
  %2470 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %2469, ptr %2470, align 4, !tbaa !15
  %2471 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %2472 = load float, ptr %2471, align 4, !tbaa !13
  %2473 = load ptr, ptr %23, align 8, !tbaa !5
  %2474 = load i32, ptr %30, align 4, !tbaa !9
  %2475 = sext i32 %2474 to i64
  %2476 = getelementptr inbounds %struct.complex, ptr %2473, i64 %2475
  %2477 = getelementptr inbounds %struct.complex, ptr %2476, i32 0, i32 0
  store float %2472, ptr %2477, align 4, !tbaa !13
  %2478 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %2479 = load float, ptr %2478, align 4, !tbaa !15
  %2480 = load ptr, ptr %23, align 8, !tbaa !5
  %2481 = load i32, ptr %30, align 4, !tbaa !9
  %2482 = sext i32 %2481 to i64
  %2483 = getelementptr inbounds %struct.complex, ptr %2480, i64 %2482
  %2484 = getelementptr inbounds %struct.complex, ptr %2483, i32 0, i32 1
  store float %2479, ptr %2484, align 4, !tbaa !15
  br label %3094

2485:                                             ; preds = %2387
  %2486 = load i32, ptr %49, align 4, !tbaa !9
  %2487 = load i32, ptr %25, align 4, !tbaa !9
  %2488 = mul nsw i32 %2486, %2487
  %2489 = add nsw i32 %2488, 1
  store i32 %2489, ptr %30, align 4, !tbaa !9
  %2490 = load i32, ptr %49, align 4, !tbaa !9
  %2491 = load i32, ptr %25, align 4, !tbaa !9
  %2492 = mul nsw i32 %2490, %2491
  %2493 = add nsw i32 %2492, 1
  store i32 %2493, ptr %31, align 4, !tbaa !9
  %2494 = load i32, ptr %49, align 4, !tbaa !9
  %2495 = load i32, ptr %27, align 4, !tbaa !9
  %2496 = mul nsw i32 %2494, %2495
  %2497 = add nsw i32 %2496, 1
  store i32 %2497, ptr %32, align 4, !tbaa !9
  %2498 = load ptr, ptr %18, align 8, !tbaa !5
  %2499 = getelementptr inbounds %struct.complex, ptr %2498, i64 1
  %2500 = getelementptr inbounds %struct.complex, ptr %2499, i32 0, i32 0
  %2501 = load float, ptr %2500, align 4, !tbaa !13
  %2502 = load ptr, ptr %20, align 8, !tbaa !5
  %2503 = load i32, ptr %32, align 4, !tbaa !9
  %2504 = sext i32 %2503 to i64
  %2505 = getelementptr inbounds %struct.complex, ptr %2502, i64 %2504
  %2506 = getelementptr inbounds %struct.complex, ptr %2505, i32 0, i32 0
  %2507 = load float, ptr %2506, align 4, !tbaa !13
  %2508 = load ptr, ptr %18, align 8, !tbaa !5
  %2509 = getelementptr inbounds %struct.complex, ptr %2508, i64 1
  %2510 = getelementptr inbounds %struct.complex, ptr %2509, i32 0, i32 1
  %2511 = load float, ptr %2510, align 4, !tbaa !15
  %2512 = load ptr, ptr %20, align 8, !tbaa !5
  %2513 = load i32, ptr %32, align 4, !tbaa !9
  %2514 = sext i32 %2513 to i64
  %2515 = getelementptr inbounds %struct.complex, ptr %2512, i64 %2514
  %2516 = getelementptr inbounds %struct.complex, ptr %2515, i32 0, i32 1
  %2517 = load float, ptr %2516, align 4, !tbaa !15
  %2518 = fmul float %2511, %2517
  %2519 = fneg float %2518
  %2520 = call float @llvm.fmuladd.f32(float %2501, float %2507, float %2519)
  %2521 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %2520, ptr %2521, align 4, !tbaa !13
  %2522 = load ptr, ptr %18, align 8, !tbaa !5
  %2523 = getelementptr inbounds %struct.complex, ptr %2522, i64 1
  %2524 = getelementptr inbounds %struct.complex, ptr %2523, i32 0, i32 0
  %2525 = load float, ptr %2524, align 4, !tbaa !13
  %2526 = load ptr, ptr %20, align 8, !tbaa !5
  %2527 = load i32, ptr %32, align 4, !tbaa !9
  %2528 = sext i32 %2527 to i64
  %2529 = getelementptr inbounds %struct.complex, ptr %2526, i64 %2528
  %2530 = getelementptr inbounds %struct.complex, ptr %2529, i32 0, i32 1
  %2531 = load float, ptr %2530, align 4, !tbaa !15
  %2532 = load ptr, ptr %18, align 8, !tbaa !5
  %2533 = getelementptr inbounds %struct.complex, ptr %2532, i64 1
  %2534 = getelementptr inbounds %struct.complex, ptr %2533, i32 0, i32 1
  %2535 = load float, ptr %2534, align 4, !tbaa !15
  %2536 = load ptr, ptr %20, align 8, !tbaa !5
  %2537 = load i32, ptr %32, align 4, !tbaa !9
  %2538 = sext i32 %2537 to i64
  %2539 = getelementptr inbounds %struct.complex, ptr %2536, i64 %2538
  %2540 = getelementptr inbounds %struct.complex, ptr %2539, i32 0, i32 0
  %2541 = load float, ptr %2540, align 4, !tbaa !13
  %2542 = fmul float %2535, %2541
  %2543 = call float @llvm.fmuladd.f32(float %2525, float %2531, float %2542)
  %2544 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %2543, ptr %2544, align 4, !tbaa !15
  %2545 = load ptr, ptr %23, align 8, !tbaa !5
  %2546 = load i32, ptr %31, align 4, !tbaa !9
  %2547 = sext i32 %2546 to i64
  %2548 = getelementptr inbounds %struct.complex, ptr %2545, i64 %2547
  %2549 = getelementptr inbounds %struct.complex, ptr %2548, i32 0, i32 0
  %2550 = load float, ptr %2549, align 4, !tbaa !13
  %2551 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2552 = load float, ptr %2551, align 4, !tbaa !13
  %2553 = fsub float %2550, %2552
  %2554 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %2553, ptr %2554, align 4, !tbaa !13
  %2555 = load ptr, ptr %23, align 8, !tbaa !5
  %2556 = load i32, ptr %31, align 4, !tbaa !9
  %2557 = sext i32 %2556 to i64
  %2558 = getelementptr inbounds %struct.complex, ptr %2555, i64 %2557
  %2559 = getelementptr inbounds %struct.complex, ptr %2558, i32 0, i32 1
  %2560 = load float, ptr %2559, align 4, !tbaa !15
  %2561 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2562 = load float, ptr %2561, align 4, !tbaa !15
  %2563 = fsub float %2560, %2562
  %2564 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %2563, ptr %2564, align 4, !tbaa !15
  %2565 = load i32, ptr %49, align 4, !tbaa !9
  %2566 = load i32, ptr %27, align 4, !tbaa !9
  %2567 = mul nsw i32 %2565, %2566
  %2568 = add nsw i32 %2567, 2
  store i32 %2568, ptr %33, align 4, !tbaa !9
  %2569 = load ptr, ptr %19, align 8, !tbaa !5
  %2570 = getelementptr inbounds %struct.complex, ptr %2569, i64 1
  %2571 = getelementptr inbounds %struct.complex, ptr %2570, i32 0, i32 0
  %2572 = load float, ptr %2571, align 4, !tbaa !13
  %2573 = load ptr, ptr %20, align 8, !tbaa !5
  %2574 = load i32, ptr %33, align 4, !tbaa !9
  %2575 = sext i32 %2574 to i64
  %2576 = getelementptr inbounds %struct.complex, ptr %2573, i64 %2575
  %2577 = getelementptr inbounds %struct.complex, ptr %2576, i32 0, i32 0
  %2578 = load float, ptr %2577, align 4, !tbaa !13
  %2579 = load ptr, ptr %19, align 8, !tbaa !5
  %2580 = getelementptr inbounds %struct.complex, ptr %2579, i64 1
  %2581 = getelementptr inbounds %struct.complex, ptr %2580, i32 0, i32 1
  %2582 = load float, ptr %2581, align 4, !tbaa !15
  %2583 = load ptr, ptr %20, align 8, !tbaa !5
  %2584 = load i32, ptr %33, align 4, !tbaa !9
  %2585 = sext i32 %2584 to i64
  %2586 = getelementptr inbounds %struct.complex, ptr %2583, i64 %2585
  %2587 = getelementptr inbounds %struct.complex, ptr %2586, i32 0, i32 1
  %2588 = load float, ptr %2587, align 4, !tbaa !15
  %2589 = fmul float %2582, %2588
  %2590 = fneg float %2589
  %2591 = call float @llvm.fmuladd.f32(float %2572, float %2578, float %2590)
  %2592 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2591, ptr %2592, align 4, !tbaa !13
  %2593 = load ptr, ptr %19, align 8, !tbaa !5
  %2594 = getelementptr inbounds %struct.complex, ptr %2593, i64 1
  %2595 = getelementptr inbounds %struct.complex, ptr %2594, i32 0, i32 0
  %2596 = load float, ptr %2595, align 4, !tbaa !13
  %2597 = load ptr, ptr %20, align 8, !tbaa !5
  %2598 = load i32, ptr %33, 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 1
  %2602 = load float, ptr %2601, align 4, !tbaa !15
  %2603 = load ptr, ptr %19, align 8, !tbaa !5
  %2604 = getelementptr inbounds %struct.complex, ptr %2603, i64 1
  %2605 = getelementptr inbounds %struct.complex, ptr %2604, i32 0, i32 1
  %2606 = load float, ptr %2605, align 4, !tbaa !15
  %2607 = load ptr, ptr %20, align 8, !tbaa !5
  %2608 = load i32, ptr %33, align 4, !tbaa !9
  %2609 = sext i32 %2608 to i64
  %2610 = getelementptr inbounds %struct.complex, ptr %2607, i64 %2609
  %2611 = getelementptr inbounds %struct.complex, ptr %2610, i32 0, i32 0
  %2612 = load float, ptr %2611, align 4, !tbaa !13
  %2613 = fmul float %2606, %2612
  %2614 = call float @llvm.fmuladd.f32(float %2596, float %2602, float %2613)
  %2615 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2614, ptr %2615, align 4, !tbaa !15
  %2616 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %2617 = load float, ptr %2616, align 4, !tbaa !13
  %2618 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2619 = load float, ptr %2618, align 4, !tbaa !13
  %2620 = fsub float %2617, %2619
  %2621 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2620, ptr %2621, align 4, !tbaa !13
  %2622 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %2623 = load float, ptr %2622, align 4, !tbaa !15
  %2624 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2625 = load float, ptr %2624, align 4, !tbaa !15
  %2626 = fsub float %2623, %2625
  %2627 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %2626, ptr %2627, align 4, !tbaa !15
  %2628 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %2629 = load float, ptr %2628, align 4, !tbaa !13
  %2630 = load ptr, ptr %23, align 8, !tbaa !5
  %2631 = load i32, ptr %30, align 4, !tbaa !9
  %2632 = sext i32 %2631 to i64
  %2633 = getelementptr inbounds %struct.complex, ptr %2630, i64 %2632
  %2634 = getelementptr inbounds %struct.complex, ptr %2633, i32 0, i32 0
  store float %2629, ptr %2634, align 4, !tbaa !13
  %2635 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %2636 = load float, ptr %2635, align 4, !tbaa !15
  %2637 = load ptr, ptr %23, align 8, !tbaa !5
  %2638 = load i32, ptr %30, align 4, !tbaa !9
  %2639 = sext i32 %2638 to i64
  %2640 = getelementptr inbounds %struct.complex, ptr %2637, i64 %2639
  %2641 = getelementptr inbounds %struct.complex, ptr %2640, i32 0, i32 1
  store float %2636, ptr %2641, align 4, !tbaa !15
  %2642 = load ptr, ptr %14, align 8, !tbaa !5
  %2643 = load i32, ptr %2642, align 4, !tbaa !9
  %2644 = load i32, ptr %49, align 4, !tbaa !9
  %2645 = load i32, ptr %25, align 4, !tbaa !9
  %2646 = mul nsw i32 %2644, %2645
  %2647 = add nsw i32 %2643, %2646
  store i32 %2647, ptr %30, align 4, !tbaa !9
  %2648 = load ptr, ptr %14, align 8, !tbaa !5
  %2649 = load i32, ptr %2648, align 4, !tbaa !9
  %2650 = load i32, ptr %49, align 4, !tbaa !9
  %2651 = load i32, ptr %25, align 4, !tbaa !9
  %2652 = mul nsw i32 %2650, %2651
  %2653 = add nsw i32 %2649, %2652
  store i32 %2653, ptr %31, align 4, !tbaa !9
  %2654 = load ptr, ptr %14, align 8, !tbaa !5
  %2655 = load i32, ptr %2654, align 4, !tbaa !9
  %2656 = sub nsw i32 %2655, 1
  store i32 %2656, ptr %32, align 4, !tbaa !9
  %2657 = load ptr, ptr %14, align 8, !tbaa !5
  %2658 = load i32, ptr %2657, align 4, !tbaa !9
  %2659 = sub nsw i32 %2658, 1
  %2660 = load i32, ptr %49, align 4, !tbaa !9
  %2661 = load i32, ptr %27, align 4, !tbaa !9
  %2662 = mul nsw i32 %2660, %2661
  %2663 = add nsw i32 %2659, %2662
  store i32 %2663, ptr %33, align 4, !tbaa !9
  %2664 = load ptr, ptr %17, align 8, !tbaa !5
  %2665 = load i32, ptr %32, align 4, !tbaa !9
  %2666 = sext i32 %2665 to i64
  %2667 = getelementptr inbounds %struct.complex, ptr %2664, i64 %2666
  %2668 = getelementptr inbounds %struct.complex, ptr %2667, i32 0, i32 0
  %2669 = load float, ptr %2668, align 4, !tbaa !13
  %2670 = load ptr, ptr %20, align 8, !tbaa !5
  %2671 = load i32, ptr %33, align 4, !tbaa !9
  %2672 = sext i32 %2671 to i64
  %2673 = getelementptr inbounds %struct.complex, ptr %2670, i64 %2672
  %2674 = getelementptr inbounds %struct.complex, ptr %2673, i32 0, i32 0
  %2675 = load float, ptr %2674, align 4, !tbaa !13
  %2676 = load ptr, ptr %17, align 8, !tbaa !5
  %2677 = load i32, ptr %32, align 4, !tbaa !9
  %2678 = sext i32 %2677 to i64
  %2679 = getelementptr inbounds %struct.complex, ptr %2676, i64 %2678
  %2680 = getelementptr inbounds %struct.complex, ptr %2679, i32 0, i32 1
  %2681 = load float, ptr %2680, align 4, !tbaa !15
  %2682 = load ptr, ptr %20, align 8, !tbaa !5
  %2683 = load i32, ptr %33, align 4, !tbaa !9
  %2684 = sext i32 %2683 to i64
  %2685 = getelementptr inbounds %struct.complex, ptr %2682, i64 %2684
  %2686 = getelementptr inbounds %struct.complex, ptr %2685, i32 0, i32 1
  %2687 = load float, ptr %2686, align 4, !tbaa !15
  %2688 = fmul float %2681, %2687
  %2689 = fneg float %2688
  %2690 = call float @llvm.fmuladd.f32(float %2669, float %2675, float %2689)
  %2691 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %2690, ptr %2691, align 4, !tbaa !13
  %2692 = load ptr, ptr %17, align 8, !tbaa !5
  %2693 = load i32, ptr %32, align 4, !tbaa !9
  %2694 = sext i32 %2693 to i64
  %2695 = getelementptr inbounds %struct.complex, ptr %2692, i64 %2694
  %2696 = getelementptr inbounds %struct.complex, ptr %2695, i32 0, i32 0
  %2697 = load float, ptr %2696, align 4, !tbaa !13
  %2698 = load ptr, ptr %20, align 8, !tbaa !5
  %2699 = load i32, ptr %33, align 4, !tbaa !9
  %2700 = sext i32 %2699 to i64
  %2701 = getelementptr inbounds %struct.complex, ptr %2698, i64 %2700
  %2702 = getelementptr inbounds %struct.complex, ptr %2701, i32 0, i32 1
  %2703 = load float, ptr %2702, align 4, !tbaa !15
  %2704 = load ptr, ptr %17, align 8, !tbaa !5
  %2705 = load i32, ptr %32, align 4, !tbaa !9
  %2706 = sext i32 %2705 to i64
  %2707 = getelementptr inbounds %struct.complex, ptr %2704, i64 %2706
  %2708 = getelementptr inbounds %struct.complex, ptr %2707, i32 0, i32 1
  %2709 = load float, ptr %2708, align 4, !tbaa !15
  %2710 = load ptr, ptr %20, align 8, !tbaa !5
  %2711 = load i32, ptr %33, align 4, !tbaa !9
  %2712 = sext i32 %2711 to i64
  %2713 = getelementptr inbounds %struct.complex, ptr %2710, i64 %2712
  %2714 = getelementptr inbounds %struct.complex, ptr %2713, i32 0, i32 0
  %2715 = load float, ptr %2714, align 4, !tbaa !13
  %2716 = fmul float %2709, %2715
  %2717 = call float @llvm.fmuladd.f32(float %2697, float %2703, float %2716)
  %2718 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %2717, ptr %2718, align 4, !tbaa !15
  %2719 = load ptr, ptr %23, align 8, !tbaa !5
  %2720 = load i32, ptr %31, align 4, !tbaa !9
  %2721 = sext i32 %2720 to i64
  %2722 = getelementptr inbounds %struct.complex, ptr %2719, i64 %2721
  %2723 = getelementptr inbounds %struct.complex, ptr %2722, i32 0, i32 0
  %2724 = load float, ptr %2723, align 4, !tbaa !13
  %2725 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2726 = load float, ptr %2725, align 4, !tbaa !13
  %2727 = fsub float %2724, %2726
  %2728 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %2727, ptr %2728, align 4, !tbaa !13
  %2729 = load ptr, ptr %23, align 8, !tbaa !5
  %2730 = load i32, ptr %31, align 4, !tbaa !9
  %2731 = sext i32 %2730 to i64
  %2732 = getelementptr inbounds %struct.complex, ptr %2729, i64 %2731
  %2733 = getelementptr inbounds %struct.complex, ptr %2732, i32 0, i32 1
  %2734 = load float, ptr %2733, align 4, !tbaa !15
  %2735 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2736 = load float, ptr %2735, align 4, !tbaa !15
  %2737 = fsub float %2734, %2736
  %2738 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %2737, ptr %2738, align 4, !tbaa !15
  %2739 = load ptr, ptr %14, align 8, !tbaa !5
  %2740 = load i32, ptr %2739, align 4, !tbaa !9
  store i32 %2740, ptr %34, align 4, !tbaa !9
  %2741 = load ptr, ptr %14, align 8, !tbaa !5
  %2742 = load i32, ptr %2741, align 4, !tbaa !9
  %2743 = load i32, ptr %49, align 4, !tbaa !9
  %2744 = load i32, ptr %27, align 4, !tbaa !9
  %2745 = mul nsw i32 %2743, %2744
  %2746 = add nsw i32 %2742, %2745
  store i32 %2746, ptr %35, align 4, !tbaa !9
  %2747 = load ptr, ptr %18, align 8, !tbaa !5
  %2748 = load i32, ptr %34, align 4, !tbaa !9
  %2749 = sext i32 %2748 to i64
  %2750 = getelementptr inbounds %struct.complex, ptr %2747, i64 %2749
  %2751 = getelementptr inbounds %struct.complex, ptr %2750, i32 0, i32 0
  %2752 = load float, ptr %2751, align 4, !tbaa !13
  %2753 = load ptr, ptr %20, align 8, !tbaa !5
  %2754 = load i32, ptr %35, align 4, !tbaa !9
  %2755 = sext i32 %2754 to i64
  %2756 = getelementptr inbounds %struct.complex, ptr %2753, i64 %2755
  %2757 = getelementptr inbounds %struct.complex, ptr %2756, i32 0, i32 0
  %2758 = load float, ptr %2757, align 4, !tbaa !13
  %2759 = load ptr, ptr %18, align 8, !tbaa !5
  %2760 = load i32, ptr %34, align 4, !tbaa !9
  %2761 = sext i32 %2760 to i64
  %2762 = getelementptr inbounds %struct.complex, ptr %2759, i64 %2761
  %2763 = getelementptr inbounds %struct.complex, ptr %2762, i32 0, i32 1
  %2764 = load float, ptr %2763, align 4, !tbaa !15
  %2765 = load ptr, ptr %20, align 8, !tbaa !5
  %2766 = load i32, ptr %35, align 4, !tbaa !9
  %2767 = sext i32 %2766 to i64
  %2768 = getelementptr inbounds %struct.complex, ptr %2765, i64 %2767
  %2769 = getelementptr inbounds %struct.complex, ptr %2768, i32 0, i32 1
  %2770 = load float, ptr %2769, align 4, !tbaa !15
  %2771 = fmul float %2764, %2770
  %2772 = fneg float %2771
  %2773 = call float @llvm.fmuladd.f32(float %2752, float %2758, float %2772)
  %2774 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2773, ptr %2774, align 4, !tbaa !13
  %2775 = load ptr, ptr %18, align 8, !tbaa !5
  %2776 = load i32, ptr %34, align 4, !tbaa !9
  %2777 = sext i32 %2776 to i64
  %2778 = getelementptr inbounds %struct.complex, ptr %2775, i64 %2777
  %2779 = getelementptr inbounds %struct.complex, ptr %2778, i32 0, i32 0
  %2780 = load float, ptr %2779, align 4, !tbaa !13
  %2781 = load ptr, ptr %20, align 8, !tbaa !5
  %2782 = load i32, ptr %35, align 4, !tbaa !9
  %2783 = sext i32 %2782 to i64
  %2784 = getelementptr inbounds %struct.complex, ptr %2781, i64 %2783
  %2785 = getelementptr inbounds %struct.complex, ptr %2784, i32 0, i32 1
  %2786 = load float, ptr %2785, align 4, !tbaa !15
  %2787 = load ptr, ptr %18, align 8, !tbaa !5
  %2788 = load i32, ptr %34, align 4, !tbaa !9
  %2789 = sext i32 %2788 to i64
  %2790 = getelementptr inbounds %struct.complex, ptr %2787, i64 %2789
  %2791 = getelementptr inbounds %struct.complex, ptr %2790, i32 0, i32 1
  %2792 = load float, ptr %2791, align 4, !tbaa !15
  %2793 = load ptr, ptr %20, align 8, !tbaa !5
  %2794 = load i32, ptr %35, align 4, !tbaa !9
  %2795 = sext i32 %2794 to i64
  %2796 = getelementptr inbounds %struct.complex, ptr %2793, i64 %2795
  %2797 = getelementptr inbounds %struct.complex, ptr %2796, i32 0, i32 0
  %2798 = load float, ptr %2797, align 4, !tbaa !13
  %2799 = fmul float %2792, %2798
  %2800 = call float @llvm.fmuladd.f32(float %2780, float %2786, float %2799)
  %2801 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2800, ptr %2801, align 4, !tbaa !15
  %2802 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %2803 = load float, ptr %2802, align 4, !tbaa !13
  %2804 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2805 = load float, ptr %2804, align 4, !tbaa !13
  %2806 = fsub float %2803, %2805
  %2807 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %2806, ptr %2807, align 4, !tbaa !13
  %2808 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %2809 = load float, ptr %2808, align 4, !tbaa !15
  %2810 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2811 = load float, ptr %2810, align 4, !tbaa !15
  %2812 = fsub float %2809, %2811
  %2813 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %2812, ptr %2813, align 4, !tbaa !15
  %2814 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %2815 = load float, ptr %2814, align 4, !tbaa !13
  %2816 = load ptr, ptr %23, align 8, !tbaa !5
  %2817 = load i32, ptr %30, align 4, !tbaa !9
  %2818 = sext i32 %2817 to i64
  %2819 = getelementptr inbounds %struct.complex, ptr %2816, i64 %2818
  %2820 = getelementptr inbounds %struct.complex, ptr %2819, i32 0, i32 0
  store float %2815, ptr %2820, align 4, !tbaa !13
  %2821 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %2822 = load float, ptr %2821, align 4, !tbaa !15
  %2823 = load ptr, ptr %23, align 8, !tbaa !5
  %2824 = load i32, ptr %30, align 4, !tbaa !9
  %2825 = sext i32 %2824 to i64
  %2826 = getelementptr inbounds %struct.complex, ptr %2823, i64 %2825
  %2827 = getelementptr inbounds %struct.complex, ptr %2826, i32 0, i32 1
  store float %2822, ptr %2827, align 4, !tbaa !15
  %2828 = load ptr, ptr %14, align 8, !tbaa !5
  %2829 = load i32, ptr %2828, align 4, !tbaa !9
  %2830 = sub nsw i32 %2829, 1
  store i32 %2830, ptr %30, align 4, !tbaa !9
  store i32 2, ptr %48, align 4, !tbaa !9
  br label %2831

2831:                                             ; preds = %3090, %2485
  %2832 = load i32, ptr %48, align 4, !tbaa !9
  %2833 = load i32, ptr %30, align 4, !tbaa !9
  %2834 = icmp sle i32 %2832, %2833
  br i1 %2834, label %2835, label %3093

2835:                                             ; preds = %2831
  %2836 = load i32, ptr %48, align 4, !tbaa !9
  %2837 = load i32, ptr %49, align 4, !tbaa !9
  %2838 = load i32, ptr %25, align 4, !tbaa !9
  %2839 = mul nsw i32 %2837, %2838
  %2840 = add nsw i32 %2836, %2839
  store i32 %2840, ptr %31, align 4, !tbaa !9
  %2841 = load i32, ptr %48, align 4, !tbaa !9
  %2842 = load i32, ptr %49, align 4, !tbaa !9
  %2843 = load i32, ptr %25, align 4, !tbaa !9
  %2844 = mul nsw i32 %2842, %2843
  %2845 = add nsw i32 %2841, %2844
  store i32 %2845, ptr %32, align 4, !tbaa !9
  %2846 = load i32, ptr %48, align 4, !tbaa !9
  %2847 = sub nsw i32 %2846, 1
  store i32 %2847, ptr %33, align 4, !tbaa !9
  %2848 = load i32, ptr %48, align 4, !tbaa !9
  %2849 = sub nsw i32 %2848, 1
  %2850 = load i32, ptr %49, align 4, !tbaa !9
  %2851 = load i32, ptr %27, align 4, !tbaa !9
  %2852 = mul nsw i32 %2850, %2851
  %2853 = add nsw i32 %2849, %2852
  store i32 %2853, ptr %34, align 4, !tbaa !9
  %2854 = load ptr, ptr %17, align 8, !tbaa !5
  %2855 = load i32, ptr %33, align 4, !tbaa !9
  %2856 = sext i32 %2855 to i64
  %2857 = getelementptr inbounds %struct.complex, ptr %2854, i64 %2856
  %2858 = getelementptr inbounds %struct.complex, ptr %2857, i32 0, i32 0
  %2859 = load float, ptr %2858, align 4, !tbaa !13
  %2860 = load ptr, ptr %20, align 8, !tbaa !5
  %2861 = load i32, ptr %34, align 4, !tbaa !9
  %2862 = sext i32 %2861 to i64
  %2863 = getelementptr inbounds %struct.complex, ptr %2860, i64 %2862
  %2864 = getelementptr inbounds %struct.complex, ptr %2863, i32 0, i32 0
  %2865 = load float, ptr %2864, align 4, !tbaa !13
  %2866 = load ptr, ptr %17, align 8, !tbaa !5
  %2867 = load i32, ptr %33, align 4, !tbaa !9
  %2868 = sext i32 %2867 to i64
  %2869 = getelementptr inbounds %struct.complex, ptr %2866, i64 %2868
  %2870 = getelementptr inbounds %struct.complex, ptr %2869, i32 0, i32 1
  %2871 = load float, ptr %2870, align 4, !tbaa !15
  %2872 = load ptr, ptr %20, align 8, !tbaa !5
  %2873 = load i32, ptr %34, align 4, !tbaa !9
  %2874 = sext i32 %2873 to i64
  %2875 = getelementptr inbounds %struct.complex, ptr %2872, i64 %2874
  %2876 = getelementptr inbounds %struct.complex, ptr %2875, i32 0, i32 1
  %2877 = load float, ptr %2876, align 4, !tbaa !15
  %2878 = fmul float %2871, %2877
  %2879 = fneg float %2878
  %2880 = call float @llvm.fmuladd.f32(float %2859, float %2865, float %2879)
  %2881 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %2880, ptr %2881, align 4, !tbaa !13
  %2882 = load ptr, ptr %17, align 8, !tbaa !5
  %2883 = load i32, ptr %33, align 4, !tbaa !9
  %2884 = sext i32 %2883 to i64
  %2885 = getelementptr inbounds %struct.complex, ptr %2882, i64 %2884
  %2886 = getelementptr inbounds %struct.complex, ptr %2885, i32 0, i32 0
  %2887 = load float, ptr %2886, align 4, !tbaa !13
  %2888 = load ptr, ptr %20, align 8, !tbaa !5
  %2889 = load i32, ptr %34, 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 1
  %2893 = load float, ptr %2892, align 4, !tbaa !15
  %2894 = load ptr, ptr %17, align 8, !tbaa !5
  %2895 = load i32, ptr %33, align 4, !tbaa !9
  %2896 = sext i32 %2895 to i64
  %2897 = getelementptr inbounds %struct.complex, ptr %2894, i64 %2896
  %2898 = getelementptr inbounds %struct.complex, ptr %2897, i32 0, i32 1
  %2899 = load float, ptr %2898, align 4, !tbaa !15
  %2900 = load ptr, ptr %20, align 8, !tbaa !5
  %2901 = load i32, ptr %34, 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 0
  %2905 = load float, ptr %2904, align 4, !tbaa !13
  %2906 = fmul float %2899, %2905
  %2907 = call float @llvm.fmuladd.f32(float %2887, float %2893, float %2906)
  %2908 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %2907, ptr %2908, align 4, !tbaa !15
  %2909 = load ptr, ptr %23, align 8, !tbaa !5
  %2910 = load i32, ptr %32, align 4, !tbaa !9
  %2911 = sext i32 %2910 to i64
  %2912 = getelementptr inbounds %struct.complex, ptr %2909, i64 %2911
  %2913 = getelementptr inbounds %struct.complex, ptr %2912, i32 0, i32 0
  %2914 = load float, ptr %2913, align 4, !tbaa !13
  %2915 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %2916 = load float, ptr %2915, align 4, !tbaa !13
  %2917 = fsub float %2914, %2916
  %2918 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %2917, ptr %2918, align 4, !tbaa !13
  %2919 = load ptr, ptr %23, align 8, !tbaa !5
  %2920 = load i32, ptr %32, align 4, !tbaa !9
  %2921 = sext i32 %2920 to i64
  %2922 = getelementptr inbounds %struct.complex, ptr %2919, i64 %2921
  %2923 = getelementptr inbounds %struct.complex, ptr %2922, i32 0, i32 1
  %2924 = load float, ptr %2923, align 4, !tbaa !15
  %2925 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %2926 = load float, ptr %2925, align 4, !tbaa !15
  %2927 = fsub float %2924, %2926
  %2928 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %2927, ptr %2928, align 4, !tbaa !15
  %2929 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %2929, ptr %35, align 4, !tbaa !9
  %2930 = load i32, ptr %48, align 4, !tbaa !9
  %2931 = load i32, ptr %49, align 4, !tbaa !9
  %2932 = load i32, ptr %27, align 4, !tbaa !9
  %2933 = mul nsw i32 %2931, %2932
  %2934 = add nsw i32 %2930, %2933
  store i32 %2934, ptr %36, align 4, !tbaa !9
  %2935 = load ptr, ptr %18, align 8, !tbaa !5
  %2936 = load i32, ptr %35, align 4, !tbaa !9
  %2937 = sext i32 %2936 to i64
  %2938 = getelementptr inbounds %struct.complex, ptr %2935, i64 %2937
  %2939 = getelementptr inbounds %struct.complex, ptr %2938, i32 0, i32 0
  %2940 = load float, ptr %2939, align 4, !tbaa !13
  %2941 = load ptr, ptr %20, align 8, !tbaa !5
  %2942 = load i32, ptr %36, align 4, !tbaa !9
  %2943 = sext i32 %2942 to i64
  %2944 = getelementptr inbounds %struct.complex, ptr %2941, i64 %2943
  %2945 = getelementptr inbounds %struct.complex, ptr %2944, i32 0, i32 0
  %2946 = load float, ptr %2945, align 4, !tbaa !13
  %2947 = load ptr, ptr %18, align 8, !tbaa !5
  %2948 = load i32, ptr %35, align 4, !tbaa !9
  %2949 = sext i32 %2948 to i64
  %2950 = getelementptr inbounds %struct.complex, ptr %2947, i64 %2949
  %2951 = getelementptr inbounds %struct.complex, ptr %2950, i32 0, i32 1
  %2952 = load float, ptr %2951, align 4, !tbaa !15
  %2953 = load ptr, ptr %20, align 8, !tbaa !5
  %2954 = load i32, ptr %36, align 4, !tbaa !9
  %2955 = sext i32 %2954 to i64
  %2956 = getelementptr inbounds %struct.complex, ptr %2953, i64 %2955
  %2957 = getelementptr inbounds %struct.complex, ptr %2956, i32 0, i32 1
  %2958 = load float, ptr %2957, align 4, !tbaa !15
  %2959 = fmul float %2952, %2958
  %2960 = fneg float %2959
  %2961 = call float @llvm.fmuladd.f32(float %2940, float %2946, float %2960)
  %2962 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %2961, ptr %2962, align 4, !tbaa !13
  %2963 = load ptr, ptr %18, align 8, !tbaa !5
  %2964 = load i32, ptr %35, align 4, !tbaa !9
  %2965 = sext i32 %2964 to i64
  %2966 = getelementptr inbounds %struct.complex, ptr %2963, i64 %2965
  %2967 = getelementptr inbounds %struct.complex, ptr %2966, i32 0, i32 0
  %2968 = load float, ptr %2967, align 4, !tbaa !13
  %2969 = load ptr, ptr %20, align 8, !tbaa !5
  %2970 = load i32, ptr %36, align 4, !tbaa !9
  %2971 = sext i32 %2970 to i64
  %2972 = getelementptr inbounds %struct.complex, ptr %2969, i64 %2971
  %2973 = getelementptr inbounds %struct.complex, ptr %2972, i32 0, i32 1
  %2974 = load float, ptr %2973, align 4, !tbaa !15
  %2975 = load ptr, ptr %18, align 8, !tbaa !5
  %2976 = load i32, ptr %35, align 4, !tbaa !9
  %2977 = sext i32 %2976 to i64
  %2978 = getelementptr inbounds %struct.complex, ptr %2975, i64 %2977
  %2979 = getelementptr inbounds %struct.complex, ptr %2978, i32 0, i32 1
  %2980 = load float, ptr %2979, align 4, !tbaa !15
  %2981 = load ptr, ptr %20, align 8, !tbaa !5
  %2982 = load i32, ptr %36, align 4, !tbaa !9
  %2983 = sext i32 %2982 to i64
  %2984 = getelementptr inbounds %struct.complex, ptr %2981, i64 %2983
  %2985 = getelementptr inbounds %struct.complex, ptr %2984, i32 0, i32 0
  %2986 = load float, ptr %2985, align 4, !tbaa !13
  %2987 = fmul float %2980, %2986
  %2988 = call float @llvm.fmuladd.f32(float %2968, float %2974, float %2987)
  %2989 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %2988, ptr %2989, align 4, !tbaa !15
  %2990 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %2991 = load float, ptr %2990, align 4, !tbaa !13
  %2992 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %2993 = load float, ptr %2992, align 4, !tbaa !13
  %2994 = fsub float %2991, %2993
  %2995 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %2994, ptr %2995, align 4, !tbaa !13
  %2996 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %2997 = load float, ptr %2996, align 4, !tbaa !15
  %2998 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %2999 = load float, ptr %2998, align 4, !tbaa !15
  %3000 = fsub float %2997, %2999
  %3001 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %3000, ptr %3001, align 4, !tbaa !15
  %3002 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %3002, ptr %37, align 4, !tbaa !9
  %3003 = load i32, ptr %48, align 4, !tbaa !9
  %3004 = add nsw i32 %3003, 1
  %3005 = load i32, ptr %49, align 4, !tbaa !9
  %3006 = load i32, ptr %27, align 4, !tbaa !9
  %3007 = mul nsw i32 %3005, %3006
  %3008 = add nsw i32 %3004, %3007
  store i32 %3008, ptr %38, align 4, !tbaa !9
  %3009 = load ptr, ptr %19, align 8, !tbaa !5
  %3010 = load i32, ptr %37, align 4, !tbaa !9
  %3011 = sext i32 %3010 to i64
  %3012 = getelementptr inbounds %struct.complex, ptr %3009, i64 %3011
  %3013 = getelementptr inbounds %struct.complex, ptr %3012, i32 0, i32 0
  %3014 = load float, ptr %3013, align 4, !tbaa !13
  %3015 = load ptr, ptr %20, align 8, !tbaa !5
  %3016 = load i32, ptr %38, align 4, !tbaa !9
  %3017 = sext i32 %3016 to i64
  %3018 = getelementptr inbounds %struct.complex, ptr %3015, i64 %3017
  %3019 = getelementptr inbounds %struct.complex, ptr %3018, i32 0, i32 0
  %3020 = load float, ptr %3019, align 4, !tbaa !13
  %3021 = load ptr, ptr %19, align 8, !tbaa !5
  %3022 = load i32, ptr %37, align 4, !tbaa !9
  %3023 = sext i32 %3022 to i64
  %3024 = getelementptr inbounds %struct.complex, ptr %3021, i64 %3023
  %3025 = getelementptr inbounds %struct.complex, ptr %3024, i32 0, i32 1
  %3026 = load float, ptr %3025, align 4, !tbaa !15
  %3027 = load ptr, ptr %20, align 8, !tbaa !5
  %3028 = load i32, ptr %38, align 4, !tbaa !9
  %3029 = sext i32 %3028 to i64
  %3030 = getelementptr inbounds %struct.complex, ptr %3027, i64 %3029
  %3031 = getelementptr inbounds %struct.complex, ptr %3030, i32 0, i32 1
  %3032 = load float, ptr %3031, align 4, !tbaa !15
  %3033 = fmul float %3026, %3032
  %3034 = fneg float %3033
  %3035 = call float @llvm.fmuladd.f32(float %3014, float %3020, float %3034)
  %3036 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %3035, ptr %3036, align 4, !tbaa !13
  %3037 = load ptr, ptr %19, align 8, !tbaa !5
  %3038 = load i32, ptr %37, align 4, !tbaa !9
  %3039 = sext i32 %3038 to i64
  %3040 = getelementptr inbounds %struct.complex, ptr %3037, i64 %3039
  %3041 = getelementptr inbounds %struct.complex, ptr %3040, i32 0, i32 0
  %3042 = load float, ptr %3041, align 4, !tbaa !13
  %3043 = load ptr, ptr %20, align 8, !tbaa !5
  %3044 = load i32, ptr %38, align 4, !tbaa !9
  %3045 = sext i32 %3044 to i64
  %3046 = getelementptr inbounds %struct.complex, ptr %3043, i64 %3045
  %3047 = getelementptr inbounds %struct.complex, ptr %3046, i32 0, i32 1
  %3048 = load float, ptr %3047, align 4, !tbaa !15
  %3049 = load ptr, ptr %19, align 8, !tbaa !5
  %3050 = load i32, ptr %37, align 4, !tbaa !9
  %3051 = sext i32 %3050 to i64
  %3052 = getelementptr inbounds %struct.complex, ptr %3049, i64 %3051
  %3053 = getelementptr inbounds %struct.complex, ptr %3052, i32 0, i32 1
  %3054 = load float, ptr %3053, align 4, !tbaa !15
  %3055 = load ptr, ptr %20, align 8, !tbaa !5
  %3056 = load i32, ptr %38, align 4, !tbaa !9
  %3057 = sext i32 %3056 to i64
  %3058 = getelementptr inbounds %struct.complex, ptr %3055, i64 %3057
  %3059 = getelementptr inbounds %struct.complex, ptr %3058, i32 0, i32 0
  %3060 = load float, ptr %3059, align 4, !tbaa !13
  %3061 = fmul float %3054, %3060
  %3062 = call float @llvm.fmuladd.f32(float %3042, float %3048, float %3061)
  %3063 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %3062, ptr %3063, align 4, !tbaa !15
  %3064 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %3065 = load float, ptr %3064, align 4, !tbaa !13
  %3066 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %3067 = load float, ptr %3066, align 4, !tbaa !13
  %3068 = fsub float %3065, %3067
  %3069 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %3068, ptr %3069, align 4, !tbaa !13
  %3070 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %3071 = load float, ptr %3070, align 4, !tbaa !15
  %3072 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %3073 = load float, ptr %3072, align 4, !tbaa !15
  %3074 = fsub float %3071, %3073
  %3075 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %3074, ptr %3075, align 4, !tbaa !15
  %3076 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %3077 = load float, ptr %3076, align 4, !tbaa !13
  %3078 = load ptr, ptr %23, align 8, !tbaa !5
  %3079 = load i32, ptr %31, align 4, !tbaa !9
  %3080 = sext i32 %3079 to i64
  %3081 = getelementptr inbounds %struct.complex, ptr %3078, i64 %3080
  %3082 = getelementptr inbounds %struct.complex, ptr %3081, i32 0, i32 0
  store float %3077, ptr %3082, align 4, !tbaa !13
  %3083 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %3084 = load float, ptr %3083, align 4, !tbaa !15
  %3085 = load ptr, ptr %23, align 8, !tbaa !5
  %3086 = load i32, ptr %31, align 4, !tbaa !9
  %3087 = sext i32 %3086 to i64
  %3088 = getelementptr inbounds %struct.complex, ptr %3085, i64 %3087
  %3089 = getelementptr inbounds %struct.complex, ptr %3088, i32 0, i32 1
  store float %3084, ptr %3089, align 4, !tbaa !15
  br label %3090

3090:                                             ; preds = %2835
  %3091 = load i32, ptr %48, align 4, !tbaa !9
  %3092 = add nsw i32 %3091, 1
  store i32 %3092, ptr %48, align 4, !tbaa !9
  br label %2831, !llvm.loop !27

3093:                                             ; preds = %2831
  br label %3094

3094:                                             ; preds = %3093, %2391
  br label %3095

3095:                                             ; preds = %3094
  %3096 = load i32, ptr %49, align 4, !tbaa !9
  %3097 = add nsw i32 %3096, 1
  store i32 %3097, ptr %49, align 4, !tbaa !9
  br label %2383, !llvm.loop !28

3098:                                             ; preds = %2383
  br label %4536

3099:                                             ; preds = %2376
  %3100 = load ptr, ptr %13, align 8, !tbaa !5
  %3101 = call i32 @lsame_(ptr noundef %3100, ptr noundef @.str.1)
  %3102 = icmp ne i32 %3101, 0
  br i1 %3102, label %3103, label %3822

3103:                                             ; preds = %3099
  %3104 = load ptr, ptr %15, align 8, !tbaa !5
  %3105 = load i32, ptr %3104, align 4, !tbaa !9
  store i32 %3105, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %3106

3106:                                             ; preds = %3818, %3103
  %3107 = load i32, ptr %49, align 4, !tbaa !9
  %3108 = load i32, ptr %29, align 4, !tbaa !9
  %3109 = icmp sle i32 %3107, %3108
  br i1 %3109, label %3110, label %3821

3110:                                             ; preds = %3106
  %3111 = load ptr, ptr %14, align 8, !tbaa !5
  %3112 = load i32, ptr %3111, align 4, !tbaa !9
  %3113 = icmp eq i32 %3112, 1
  br i1 %3113, label %3114, label %3208

3114:                                             ; preds = %3110
  %3115 = load i32, ptr %49, align 4, !tbaa !9
  %3116 = load i32, ptr %25, align 4, !tbaa !9
  %3117 = mul nsw i32 %3115, %3116
  %3118 = add nsw i32 %3117, 1
  store i32 %3118, ptr %30, align 4, !tbaa !9
  %3119 = load i32, ptr %49, align 4, !tbaa !9
  %3120 = load i32, ptr %25, align 4, !tbaa !9
  %3121 = mul nsw i32 %3119, %3120
  %3122 = add nsw i32 %3121, 1
  store i32 %3122, ptr %31, align 4, !tbaa !9
  %3123 = load i32, ptr %49, align 4, !tbaa !9
  %3124 = load i32, ptr %27, align 4, !tbaa !9
  %3125 = mul nsw i32 %3123, %3124
  %3126 = add nsw i32 %3125, 1
  store i32 %3126, ptr %32, align 4, !tbaa !9
  %3127 = load ptr, ptr %18, align 8, !tbaa !5
  %3128 = getelementptr inbounds %struct.complex, ptr %3127, i64 1
  %3129 = getelementptr inbounds %struct.complex, ptr %3128, i32 0, i32 0
  %3130 = load float, ptr %3129, align 4, !tbaa !13
  %3131 = load ptr, ptr %20, align 8, !tbaa !5
  %3132 = load i32, ptr %32, align 4, !tbaa !9
  %3133 = sext i32 %3132 to i64
  %3134 = getelementptr inbounds %struct.complex, ptr %3131, i64 %3133
  %3135 = getelementptr inbounds %struct.complex, ptr %3134, i32 0, i32 0
  %3136 = load float, ptr %3135, align 4, !tbaa !13
  %3137 = load ptr, ptr %18, align 8, !tbaa !5
  %3138 = getelementptr inbounds %struct.complex, ptr %3137, i64 1
  %3139 = getelementptr inbounds %struct.complex, ptr %3138, i32 0, i32 1
  %3140 = load float, ptr %3139, align 4, !tbaa !15
  %3141 = load ptr, ptr %20, align 8, !tbaa !5
  %3142 = load i32, ptr %32, align 4, !tbaa !9
  %3143 = sext i32 %3142 to i64
  %3144 = getelementptr inbounds %struct.complex, ptr %3141, i64 %3143
  %3145 = getelementptr inbounds %struct.complex, ptr %3144, i32 0, i32 1
  %3146 = load float, ptr %3145, align 4, !tbaa !15
  %3147 = fmul float %3140, %3146
  %3148 = fneg float %3147
  %3149 = call float @llvm.fmuladd.f32(float %3130, float %3136, float %3148)
  %3150 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %3149, ptr %3150, align 4, !tbaa !13
  %3151 = load ptr, ptr %18, align 8, !tbaa !5
  %3152 = getelementptr inbounds %struct.complex, ptr %3151, i64 1
  %3153 = getelementptr inbounds %struct.complex, ptr %3152, i32 0, i32 0
  %3154 = load float, ptr %3153, align 4, !tbaa !13
  %3155 = load ptr, ptr %20, align 8, !tbaa !5
  %3156 = load i32, ptr %32, align 4, !tbaa !9
  %3157 = sext i32 %3156 to i64
  %3158 = getelementptr inbounds %struct.complex, ptr %3155, i64 %3157
  %3159 = getelementptr inbounds %struct.complex, ptr %3158, i32 0, i32 1
  %3160 = load float, ptr %3159, align 4, !tbaa !15
  %3161 = load ptr, ptr %18, align 8, !tbaa !5
  %3162 = getelementptr inbounds %struct.complex, ptr %3161, i64 1
  %3163 = getelementptr inbounds %struct.complex, ptr %3162, i32 0, i32 1
  %3164 = load float, ptr %3163, align 4, !tbaa !15
  %3165 = load ptr, ptr %20, align 8, !tbaa !5
  %3166 = load i32, ptr %32, align 4, !tbaa !9
  %3167 = sext i32 %3166 to i64
  %3168 = getelementptr inbounds %struct.complex, ptr %3165, i64 %3167
  %3169 = getelementptr inbounds %struct.complex, ptr %3168, i32 0, i32 0
  %3170 = load float, ptr %3169, align 4, !tbaa !13
  %3171 = fmul float %3164, %3170
  %3172 = call float @llvm.fmuladd.f32(float %3154, float %3160, float %3171)
  %3173 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %3172, ptr %3173, align 4, !tbaa !15
  %3174 = load ptr, ptr %23, align 8, !tbaa !5
  %3175 = load i32, ptr %31, align 4, !tbaa !9
  %3176 = sext i32 %3175 to i64
  %3177 = getelementptr inbounds %struct.complex, ptr %3174, i64 %3176
  %3178 = getelementptr inbounds %struct.complex, ptr %3177, i32 0, i32 0
  %3179 = load float, ptr %3178, align 4, !tbaa !13
  %3180 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %3181 = load float, ptr %3180, align 4, !tbaa !13
  %3182 = fsub float %3179, %3181
  %3183 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %3182, ptr %3183, align 4, !tbaa !13
  %3184 = load ptr, ptr %23, align 8, !tbaa !5
  %3185 = load i32, ptr %31, align 4, !tbaa !9
  %3186 = sext i32 %3185 to i64
  %3187 = getelementptr inbounds %struct.complex, ptr %3184, i64 %3186
  %3188 = getelementptr inbounds %struct.complex, ptr %3187, i32 0, i32 1
  %3189 = load float, ptr %3188, align 4, !tbaa !15
  %3190 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %3191 = load float, ptr %3190, align 4, !tbaa !15
  %3192 = fsub float %3189, %3191
  %3193 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %3192, ptr %3193, align 4, !tbaa !15
  %3194 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %3195 = load float, ptr %3194, align 4, !tbaa !13
  %3196 = load ptr, ptr %23, align 8, !tbaa !5
  %3197 = load i32, ptr %30, align 4, !tbaa !9
  %3198 = sext i32 %3197 to i64
  %3199 = getelementptr inbounds %struct.complex, ptr %3196, i64 %3198
  %3200 = getelementptr inbounds %struct.complex, ptr %3199, i32 0, i32 0
  store float %3195, ptr %3200, align 4, !tbaa !13
  %3201 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %3202 = load float, ptr %3201, align 4, !tbaa !15
  %3203 = load ptr, ptr %23, align 8, !tbaa !5
  %3204 = load i32, ptr %30, align 4, !tbaa !9
  %3205 = sext i32 %3204 to i64
  %3206 = getelementptr inbounds %struct.complex, ptr %3203, i64 %3205
  %3207 = getelementptr inbounds %struct.complex, ptr %3206, i32 0, i32 1
  store float %3202, ptr %3207, align 4, !tbaa !15
  br label %3817

3208:                                             ; preds = %3110
  %3209 = load i32, ptr %49, align 4, !tbaa !9
  %3210 = load i32, ptr %25, align 4, !tbaa !9
  %3211 = mul nsw i32 %3209, %3210
  %3212 = add nsw i32 %3211, 1
  store i32 %3212, ptr %30, align 4, !tbaa !9
  %3213 = load i32, ptr %49, align 4, !tbaa !9
  %3214 = load i32, ptr %25, align 4, !tbaa !9
  %3215 = mul nsw i32 %3213, %3214
  %3216 = add nsw i32 %3215, 1
  store i32 %3216, ptr %31, align 4, !tbaa !9
  %3217 = load i32, ptr %49, align 4, !tbaa !9
  %3218 = load i32, ptr %27, align 4, !tbaa !9
  %3219 = mul nsw i32 %3217, %3218
  %3220 = add nsw i32 %3219, 1
  store i32 %3220, ptr %32, align 4, !tbaa !9
  %3221 = load ptr, ptr %18, align 8, !tbaa !5
  %3222 = getelementptr inbounds %struct.complex, ptr %3221, i64 1
  %3223 = getelementptr inbounds %struct.complex, ptr %3222, i32 0, i32 0
  %3224 = load float, ptr %3223, align 4, !tbaa !13
  %3225 = load ptr, ptr %20, align 8, !tbaa !5
  %3226 = load i32, ptr %32, align 4, !tbaa !9
  %3227 = sext i32 %3226 to i64
  %3228 = getelementptr inbounds %struct.complex, ptr %3225, i64 %3227
  %3229 = getelementptr inbounds %struct.complex, ptr %3228, i32 0, i32 0
  %3230 = load float, ptr %3229, align 4, !tbaa !13
  %3231 = load ptr, ptr %18, align 8, !tbaa !5
  %3232 = getelementptr inbounds %struct.complex, ptr %3231, i64 1
  %3233 = getelementptr inbounds %struct.complex, ptr %3232, i32 0, i32 1
  %3234 = load float, ptr %3233, align 4, !tbaa !15
  %3235 = load ptr, ptr %20, align 8, !tbaa !5
  %3236 = load i32, ptr %32, align 4, !tbaa !9
  %3237 = sext i32 %3236 to i64
  %3238 = getelementptr inbounds %struct.complex, ptr %3235, i64 %3237
  %3239 = getelementptr inbounds %struct.complex, ptr %3238, i32 0, i32 1
  %3240 = load float, ptr %3239, align 4, !tbaa !15
  %3241 = fmul float %3234, %3240
  %3242 = fneg float %3241
  %3243 = call float @llvm.fmuladd.f32(float %3224, float %3230, float %3242)
  %3244 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %3243, ptr %3244, align 4, !tbaa !13
  %3245 = load ptr, ptr %18, align 8, !tbaa !5
  %3246 = getelementptr inbounds %struct.complex, ptr %3245, i64 1
  %3247 = getelementptr inbounds %struct.complex, ptr %3246, i32 0, i32 0
  %3248 = load float, ptr %3247, align 4, !tbaa !13
  %3249 = load ptr, ptr %20, align 8, !tbaa !5
  %3250 = load i32, ptr %32, align 4, !tbaa !9
  %3251 = sext i32 %3250 to i64
  %3252 = getelementptr inbounds %struct.complex, ptr %3249, i64 %3251
  %3253 = getelementptr inbounds %struct.complex, ptr %3252, i32 0, i32 1
  %3254 = load float, ptr %3253, align 4, !tbaa !15
  %3255 = load ptr, ptr %18, align 8, !tbaa !5
  %3256 = getelementptr inbounds %struct.complex, ptr %3255, i64 1
  %3257 = getelementptr inbounds %struct.complex, ptr %3256, i32 0, i32 1
  %3258 = load float, ptr %3257, align 4, !tbaa !15
  %3259 = load ptr, ptr %20, align 8, !tbaa !5
  %3260 = load i32, ptr %32, align 4, !tbaa !9
  %3261 = sext i32 %3260 to i64
  %3262 = getelementptr inbounds %struct.complex, ptr %3259, i64 %3261
  %3263 = getelementptr inbounds %struct.complex, ptr %3262, i32 0, i32 0
  %3264 = load float, ptr %3263, align 4, !tbaa !13
  %3265 = fmul float %3258, %3264
  %3266 = call float @llvm.fmuladd.f32(float %3248, float %3254, float %3265)
  %3267 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %3266, ptr %3267, align 4, !tbaa !15
  %3268 = load ptr, ptr %23, align 8, !tbaa !5
  %3269 = load i32, ptr %31, align 4, !tbaa !9
  %3270 = sext i32 %3269 to i64
  %3271 = getelementptr inbounds %struct.complex, ptr %3268, i64 %3270
  %3272 = getelementptr inbounds %struct.complex, ptr %3271, i32 0, i32 0
  %3273 = load float, ptr %3272, align 4, !tbaa !13
  %3274 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %3275 = load float, ptr %3274, align 4, !tbaa !13
  %3276 = fsub float %3273, %3275
  %3277 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %3276, ptr %3277, align 4, !tbaa !13
  %3278 = load ptr, ptr %23, align 8, !tbaa !5
  %3279 = load i32, ptr %31, align 4, !tbaa !9
  %3280 = sext i32 %3279 to i64
  %3281 = getelementptr inbounds %struct.complex, ptr %3278, i64 %3280
  %3282 = getelementptr inbounds %struct.complex, ptr %3281, i32 0, i32 1
  %3283 = load float, ptr %3282, align 4, !tbaa !15
  %3284 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %3285 = load float, ptr %3284, align 4, !tbaa !15
  %3286 = fsub float %3283, %3285
  %3287 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %3286, ptr %3287, align 4, !tbaa !15
  %3288 = load i32, ptr %49, align 4, !tbaa !9
  %3289 = load i32, ptr %27, align 4, !tbaa !9
  %3290 = mul nsw i32 %3288, %3289
  %3291 = add nsw i32 %3290, 2
  store i32 %3291, ptr %33, align 4, !tbaa !9
  %3292 = load ptr, ptr %17, align 8, !tbaa !5
  %3293 = getelementptr inbounds %struct.complex, ptr %3292, i64 1
  %3294 = getelementptr inbounds %struct.complex, ptr %3293, i32 0, i32 0
  %3295 = load float, ptr %3294, align 4, !tbaa !13
  %3296 = load ptr, ptr %20, align 8, !tbaa !5
  %3297 = load i32, ptr %33, align 4, !tbaa !9
  %3298 = sext i32 %3297 to i64
  %3299 = getelementptr inbounds %struct.complex, ptr %3296, i64 %3298
  %3300 = getelementptr inbounds %struct.complex, ptr %3299, i32 0, i32 0
  %3301 = load float, ptr %3300, align 4, !tbaa !13
  %3302 = load ptr, ptr %17, align 8, !tbaa !5
  %3303 = getelementptr inbounds %struct.complex, ptr %3302, i64 1
  %3304 = getelementptr inbounds %struct.complex, ptr %3303, i32 0, i32 1
  %3305 = load float, ptr %3304, align 4, !tbaa !15
  %3306 = load ptr, ptr %20, align 8, !tbaa !5
  %3307 = load i32, ptr %33, align 4, !tbaa !9
  %3308 = sext i32 %3307 to i64
  %3309 = getelementptr inbounds %struct.complex, ptr %3306, i64 %3308
  %3310 = getelementptr inbounds %struct.complex, ptr %3309, i32 0, i32 1
  %3311 = load float, ptr %3310, align 4, !tbaa !15
  %3312 = fmul float %3305, %3311
  %3313 = fneg float %3312
  %3314 = call float @llvm.fmuladd.f32(float %3295, float %3301, float %3313)
  %3315 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %3314, ptr %3315, align 4, !tbaa !13
  %3316 = load ptr, ptr %17, align 8, !tbaa !5
  %3317 = getelementptr inbounds %struct.complex, ptr %3316, i64 1
  %3318 = getelementptr inbounds %struct.complex, ptr %3317, i32 0, i32 0
  %3319 = load float, ptr %3318, align 4, !tbaa !13
  %3320 = load ptr, ptr %20, align 8, !tbaa !5
  %3321 = load i32, ptr %33, align 4, !tbaa !9
  %3322 = sext i32 %3321 to i64
  %3323 = getelementptr inbounds %struct.complex, ptr %3320, i64 %3322
  %3324 = getelementptr inbounds %struct.complex, ptr %3323, i32 0, i32 1
  %3325 = load float, ptr %3324, align 4, !tbaa !15
  %3326 = load ptr, ptr %17, align 8, !tbaa !5
  %3327 = getelementptr inbounds %struct.complex, ptr %3326, i64 1
  %3328 = getelementptr inbounds %struct.complex, ptr %3327, i32 0, i32 1
  %3329 = load float, ptr %3328, align 4, !tbaa !15
  %3330 = load ptr, ptr %20, align 8, !tbaa !5
  %3331 = load i32, ptr %33, align 4, !tbaa !9
  %3332 = sext i32 %3331 to i64
  %3333 = getelementptr inbounds %struct.complex, ptr %3330, i64 %3332
  %3334 = getelementptr inbounds %struct.complex, ptr %3333, i32 0, i32 0
  %3335 = load float, ptr %3334, align 4, !tbaa !13
  %3336 = fmul float %3329, %3335
  %3337 = call float @llvm.fmuladd.f32(float %3319, float %3325, float %3336)
  %3338 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %3337, ptr %3338, align 4, !tbaa !15
  %3339 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %3340 = load float, ptr %3339, align 4, !tbaa !13
  %3341 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3342 = load float, ptr %3341, align 4, !tbaa !13
  %3343 = fsub float %3340, %3342
  %3344 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %3343, ptr %3344, align 4, !tbaa !13
  %3345 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %3346 = load float, ptr %3345, align 4, !tbaa !15
  %3347 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3348 = load float, ptr %3347, align 4, !tbaa !15
  %3349 = fsub float %3346, %3348
  %3350 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %3349, ptr %3350, align 4, !tbaa !15
  %3351 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %3352 = load float, ptr %3351, align 4, !tbaa !13
  %3353 = load ptr, ptr %23, align 8, !tbaa !5
  %3354 = load i32, ptr %30, align 4, !tbaa !9
  %3355 = sext i32 %3354 to i64
  %3356 = getelementptr inbounds %struct.complex, ptr %3353, i64 %3355
  %3357 = getelementptr inbounds %struct.complex, ptr %3356, i32 0, i32 0
  store float %3352, ptr %3357, align 4, !tbaa !13
  %3358 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %3359 = load float, ptr %3358, align 4, !tbaa !15
  %3360 = load ptr, ptr %23, align 8, !tbaa !5
  %3361 = load i32, ptr %30, align 4, !tbaa !9
  %3362 = sext i32 %3361 to i64
  %3363 = getelementptr inbounds %struct.complex, ptr %3360, i64 %3362
  %3364 = getelementptr inbounds %struct.complex, ptr %3363, i32 0, i32 1
  store float %3359, ptr %3364, align 4, !tbaa !15
  %3365 = load ptr, ptr %14, align 8, !tbaa !5
  %3366 = load i32, ptr %3365, align 4, !tbaa !9
  %3367 = load i32, ptr %49, align 4, !tbaa !9
  %3368 = load i32, ptr %25, align 4, !tbaa !9
  %3369 = mul nsw i32 %3367, %3368
  %3370 = add nsw i32 %3366, %3369
  store i32 %3370, ptr %30, align 4, !tbaa !9
  %3371 = load ptr, ptr %14, align 8, !tbaa !5
  %3372 = load i32, ptr %3371, align 4, !tbaa !9
  %3373 = load i32, ptr %49, align 4, !tbaa !9
  %3374 = load i32, ptr %25, align 4, !tbaa !9
  %3375 = mul nsw i32 %3373, %3374
  %3376 = add nsw i32 %3372, %3375
  store i32 %3376, ptr %31, align 4, !tbaa !9
  %3377 = load ptr, ptr %14, align 8, !tbaa !5
  %3378 = load i32, ptr %3377, align 4, !tbaa !9
  %3379 = sub nsw i32 %3378, 1
  store i32 %3379, ptr %32, align 4, !tbaa !9
  %3380 = load ptr, ptr %14, align 8, !tbaa !5
  %3381 = load i32, ptr %3380, align 4, !tbaa !9
  %3382 = sub nsw i32 %3381, 1
  %3383 = load i32, ptr %49, align 4, !tbaa !9
  %3384 = load i32, ptr %27, align 4, !tbaa !9
  %3385 = mul nsw i32 %3383, %3384
  %3386 = add nsw i32 %3382, %3385
  store i32 %3386, ptr %33, align 4, !tbaa !9
  %3387 = load ptr, ptr %19, align 8, !tbaa !5
  %3388 = load i32, ptr %32, align 4, !tbaa !9
  %3389 = sext i32 %3388 to i64
  %3390 = getelementptr inbounds %struct.complex, ptr %3387, i64 %3389
  %3391 = getelementptr inbounds %struct.complex, ptr %3390, i32 0, i32 0
  %3392 = load float, ptr %3391, align 4, !tbaa !13
  %3393 = load ptr, ptr %20, align 8, !tbaa !5
  %3394 = load i32, ptr %33, align 4, !tbaa !9
  %3395 = sext i32 %3394 to i64
  %3396 = getelementptr inbounds %struct.complex, ptr %3393, i64 %3395
  %3397 = getelementptr inbounds %struct.complex, ptr %3396, i32 0, i32 0
  %3398 = load float, ptr %3397, align 4, !tbaa !13
  %3399 = load ptr, ptr %19, align 8, !tbaa !5
  %3400 = load i32, ptr %32, align 4, !tbaa !9
  %3401 = sext i32 %3400 to i64
  %3402 = getelementptr inbounds %struct.complex, ptr %3399, i64 %3401
  %3403 = getelementptr inbounds %struct.complex, ptr %3402, i32 0, i32 1
  %3404 = load float, ptr %3403, align 4, !tbaa !15
  %3405 = load ptr, ptr %20, align 8, !tbaa !5
  %3406 = load i32, ptr %33, align 4, !tbaa !9
  %3407 = sext i32 %3406 to i64
  %3408 = getelementptr inbounds %struct.complex, ptr %3405, i64 %3407
  %3409 = getelementptr inbounds %struct.complex, ptr %3408, i32 0, i32 1
  %3410 = load float, ptr %3409, align 4, !tbaa !15
  %3411 = fmul float %3404, %3410
  %3412 = fneg float %3411
  %3413 = call float @llvm.fmuladd.f32(float %3392, float %3398, float %3412)
  %3414 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %3413, ptr %3414, align 4, !tbaa !13
  %3415 = load ptr, ptr %19, align 8, !tbaa !5
  %3416 = load i32, ptr %32, align 4, !tbaa !9
  %3417 = sext i32 %3416 to i64
  %3418 = getelementptr inbounds %struct.complex, ptr %3415, i64 %3417
  %3419 = getelementptr inbounds %struct.complex, ptr %3418, i32 0, i32 0
  %3420 = load float, ptr %3419, align 4, !tbaa !13
  %3421 = load ptr, ptr %20, align 8, !tbaa !5
  %3422 = load i32, ptr %33, 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 1
  %3426 = load float, ptr %3425, align 4, !tbaa !15
  %3427 = load ptr, ptr %19, align 8, !tbaa !5
  %3428 = load i32, ptr %32, align 4, !tbaa !9
  %3429 = sext i32 %3428 to i64
  %3430 = getelementptr inbounds %struct.complex, ptr %3427, i64 %3429
  %3431 = getelementptr inbounds %struct.complex, ptr %3430, i32 0, i32 1
  %3432 = load float, ptr %3431, align 4, !tbaa !15
  %3433 = load ptr, ptr %20, align 8, !tbaa !5
  %3434 = load i32, ptr %33, align 4, !tbaa !9
  %3435 = sext i32 %3434 to i64
  %3436 = getelementptr inbounds %struct.complex, ptr %3433, i64 %3435
  %3437 = getelementptr inbounds %struct.complex, ptr %3436, i32 0, i32 0
  %3438 = load float, ptr %3437, align 4, !tbaa !13
  %3439 = fmul float %3432, %3438
  %3440 = call float @llvm.fmuladd.f32(float %3420, float %3426, float %3439)
  %3441 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %3440, ptr %3441, align 4, !tbaa !15
  %3442 = load ptr, ptr %23, align 8, !tbaa !5
  %3443 = load i32, ptr %31, align 4, !tbaa !9
  %3444 = sext i32 %3443 to i64
  %3445 = getelementptr inbounds %struct.complex, ptr %3442, i64 %3444
  %3446 = getelementptr inbounds %struct.complex, ptr %3445, i32 0, i32 0
  %3447 = load float, ptr %3446, align 4, !tbaa !13
  %3448 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %3449 = load float, ptr %3448, align 4, !tbaa !13
  %3450 = fsub float %3447, %3449
  %3451 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %3450, ptr %3451, align 4, !tbaa !13
  %3452 = load ptr, ptr %23, align 8, !tbaa !5
  %3453 = load i32, ptr %31, align 4, !tbaa !9
  %3454 = sext i32 %3453 to i64
  %3455 = getelementptr inbounds %struct.complex, ptr %3452, i64 %3454
  %3456 = getelementptr inbounds %struct.complex, ptr %3455, i32 0, i32 1
  %3457 = load float, ptr %3456, align 4, !tbaa !15
  %3458 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %3459 = load float, ptr %3458, align 4, !tbaa !15
  %3460 = fsub float %3457, %3459
  %3461 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %3460, ptr %3461, align 4, !tbaa !15
  %3462 = load ptr, ptr %14, align 8, !tbaa !5
  %3463 = load i32, ptr %3462, align 4, !tbaa !9
  store i32 %3463, ptr %34, align 4, !tbaa !9
  %3464 = load ptr, ptr %14, align 8, !tbaa !5
  %3465 = load i32, ptr %3464, align 4, !tbaa !9
  %3466 = load i32, ptr %49, align 4, !tbaa !9
  %3467 = load i32, ptr %27, align 4, !tbaa !9
  %3468 = mul nsw i32 %3466, %3467
  %3469 = add nsw i32 %3465, %3468
  store i32 %3469, ptr %35, align 4, !tbaa !9
  %3470 = load ptr, ptr %18, align 8, !tbaa !5
  %3471 = load i32, ptr %34, align 4, !tbaa !9
  %3472 = sext i32 %3471 to i64
  %3473 = getelementptr inbounds %struct.complex, ptr %3470, i64 %3472
  %3474 = getelementptr inbounds %struct.complex, ptr %3473, i32 0, i32 0
  %3475 = load float, ptr %3474, align 4, !tbaa !13
  %3476 = load ptr, ptr %20, align 8, !tbaa !5
  %3477 = load i32, ptr %35, align 4, !tbaa !9
  %3478 = sext i32 %3477 to i64
  %3479 = getelementptr inbounds %struct.complex, ptr %3476, i64 %3478
  %3480 = getelementptr inbounds %struct.complex, ptr %3479, i32 0, i32 0
  %3481 = load float, ptr %3480, align 4, !tbaa !13
  %3482 = load ptr, ptr %18, align 8, !tbaa !5
  %3483 = load i32, ptr %34, align 4, !tbaa !9
  %3484 = sext i32 %3483 to i64
  %3485 = getelementptr inbounds %struct.complex, ptr %3482, i64 %3484
  %3486 = getelementptr inbounds %struct.complex, ptr %3485, i32 0, i32 1
  %3487 = load float, ptr %3486, align 4, !tbaa !15
  %3488 = load ptr, ptr %20, align 8, !tbaa !5
  %3489 = load i32, ptr %35, align 4, !tbaa !9
  %3490 = sext i32 %3489 to i64
  %3491 = getelementptr inbounds %struct.complex, ptr %3488, i64 %3490
  %3492 = getelementptr inbounds %struct.complex, ptr %3491, i32 0, i32 1
  %3493 = load float, ptr %3492, align 4, !tbaa !15
  %3494 = fmul float %3487, %3493
  %3495 = fneg float %3494
  %3496 = call float @llvm.fmuladd.f32(float %3475, float %3481, float %3495)
  %3497 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %3496, ptr %3497, align 4, !tbaa !13
  %3498 = load ptr, ptr %18, align 8, !tbaa !5
  %3499 = load i32, ptr %34, align 4, !tbaa !9
  %3500 = sext i32 %3499 to i64
  %3501 = getelementptr inbounds %struct.complex, ptr %3498, i64 %3500
  %3502 = getelementptr inbounds %struct.complex, ptr %3501, i32 0, i32 0
  %3503 = load float, ptr %3502, align 4, !tbaa !13
  %3504 = load ptr, ptr %20, align 8, !tbaa !5
  %3505 = load i32, ptr %35, align 4, !tbaa !9
  %3506 = sext i32 %3505 to i64
  %3507 = getelementptr inbounds %struct.complex, ptr %3504, i64 %3506
  %3508 = getelementptr inbounds %struct.complex, ptr %3507, i32 0, i32 1
  %3509 = load float, ptr %3508, align 4, !tbaa !15
  %3510 = load ptr, ptr %18, align 8, !tbaa !5
  %3511 = load i32, ptr %34, align 4, !tbaa !9
  %3512 = sext i32 %3511 to i64
  %3513 = getelementptr inbounds %struct.complex, ptr %3510, i64 %3512
  %3514 = getelementptr inbounds %struct.complex, ptr %3513, i32 0, i32 1
  %3515 = load float, ptr %3514, align 4, !tbaa !15
  %3516 = load ptr, ptr %20, align 8, !tbaa !5
  %3517 = load i32, ptr %35, align 4, !tbaa !9
  %3518 = sext i32 %3517 to i64
  %3519 = getelementptr inbounds %struct.complex, ptr %3516, i64 %3518
  %3520 = getelementptr inbounds %struct.complex, ptr %3519, i32 0, i32 0
  %3521 = load float, ptr %3520, align 4, !tbaa !13
  %3522 = fmul float %3515, %3521
  %3523 = call float @llvm.fmuladd.f32(float %3503, float %3509, float %3522)
  %3524 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %3523, ptr %3524, align 4, !tbaa !15
  %3525 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %3526 = load float, ptr %3525, align 4, !tbaa !13
  %3527 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3528 = load float, ptr %3527, align 4, !tbaa !13
  %3529 = fsub float %3526, %3528
  %3530 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %3529, ptr %3530, align 4, !tbaa !13
  %3531 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %3532 = load float, ptr %3531, align 4, !tbaa !15
  %3533 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3534 = load float, ptr %3533, align 4, !tbaa !15
  %3535 = fsub float %3532, %3534
  %3536 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %3535, ptr %3536, align 4, !tbaa !15
  %3537 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %3538 = load float, ptr %3537, align 4, !tbaa !13
  %3539 = load ptr, ptr %23, align 8, !tbaa !5
  %3540 = load i32, ptr %30, align 4, !tbaa !9
  %3541 = sext i32 %3540 to i64
  %3542 = getelementptr inbounds %struct.complex, ptr %3539, i64 %3541
  %3543 = getelementptr inbounds %struct.complex, ptr %3542, i32 0, i32 0
  store float %3538, ptr %3543, align 4, !tbaa !13
  %3544 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %3545 = load float, ptr %3544, align 4, !tbaa !15
  %3546 = load ptr, ptr %23, align 8, !tbaa !5
  %3547 = load i32, ptr %30, 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 1
  store float %3545, ptr %3550, align 4, !tbaa !15
  %3551 = load ptr, ptr %14, align 8, !tbaa !5
  %3552 = load i32, ptr %3551, align 4, !tbaa !9
  %3553 = sub nsw i32 %3552, 1
  store i32 %3553, ptr %30, align 4, !tbaa !9
  store i32 2, ptr %48, align 4, !tbaa !9
  br label %3554

3554:                                             ; preds = %3813, %3208
  %3555 = load i32, ptr %48, align 4, !tbaa !9
  %3556 = load i32, ptr %30, align 4, !tbaa !9
  %3557 = icmp sle i32 %3555, %3556
  br i1 %3557, label %3558, label %3816

3558:                                             ; preds = %3554
  %3559 = load i32, ptr %48, align 4, !tbaa !9
  %3560 = load i32, ptr %49, align 4, !tbaa !9
  %3561 = load i32, ptr %25, align 4, !tbaa !9
  %3562 = mul nsw i32 %3560, %3561
  %3563 = add nsw i32 %3559, %3562
  store i32 %3563, ptr %31, align 4, !tbaa !9
  %3564 = load i32, ptr %48, align 4, !tbaa !9
  %3565 = load i32, ptr %49, align 4, !tbaa !9
  %3566 = load i32, ptr %25, align 4, !tbaa !9
  %3567 = mul nsw i32 %3565, %3566
  %3568 = add nsw i32 %3564, %3567
  store i32 %3568, ptr %32, align 4, !tbaa !9
  %3569 = load i32, ptr %48, align 4, !tbaa !9
  %3570 = sub nsw i32 %3569, 1
  store i32 %3570, ptr %33, align 4, !tbaa !9
  %3571 = load i32, ptr %48, align 4, !tbaa !9
  %3572 = sub nsw i32 %3571, 1
  %3573 = load i32, ptr %49, align 4, !tbaa !9
  %3574 = load i32, ptr %27, align 4, !tbaa !9
  %3575 = mul nsw i32 %3573, %3574
  %3576 = add nsw i32 %3572, %3575
  store i32 %3576, ptr %34, align 4, !tbaa !9
  %3577 = load ptr, ptr %19, align 8, !tbaa !5
  %3578 = load i32, ptr %33, align 4, !tbaa !9
  %3579 = sext i32 %3578 to i64
  %3580 = getelementptr inbounds %struct.complex, ptr %3577, i64 %3579
  %3581 = getelementptr inbounds %struct.complex, ptr %3580, i32 0, i32 0
  %3582 = load float, ptr %3581, align 4, !tbaa !13
  %3583 = load ptr, ptr %20, align 8, !tbaa !5
  %3584 = load i32, ptr %34, align 4, !tbaa !9
  %3585 = sext i32 %3584 to i64
  %3586 = getelementptr inbounds %struct.complex, ptr %3583, i64 %3585
  %3587 = getelementptr inbounds %struct.complex, ptr %3586, i32 0, i32 0
  %3588 = load float, ptr %3587, align 4, !tbaa !13
  %3589 = load ptr, ptr %19, align 8, !tbaa !5
  %3590 = load i32, ptr %33, align 4, !tbaa !9
  %3591 = sext i32 %3590 to i64
  %3592 = getelementptr inbounds %struct.complex, ptr %3589, i64 %3591
  %3593 = getelementptr inbounds %struct.complex, ptr %3592, i32 0, i32 1
  %3594 = load float, ptr %3593, align 4, !tbaa !15
  %3595 = load ptr, ptr %20, align 8, !tbaa !5
  %3596 = load i32, ptr %34, align 4, !tbaa !9
  %3597 = sext i32 %3596 to i64
  %3598 = getelementptr inbounds %struct.complex, ptr %3595, i64 %3597
  %3599 = getelementptr inbounds %struct.complex, ptr %3598, i32 0, i32 1
  %3600 = load float, ptr %3599, align 4, !tbaa !15
  %3601 = fmul float %3594, %3600
  %3602 = fneg float %3601
  %3603 = call float @llvm.fmuladd.f32(float %3582, float %3588, float %3602)
  %3604 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %3603, ptr %3604, align 4, !tbaa !13
  %3605 = load ptr, ptr %19, align 8, !tbaa !5
  %3606 = load i32, ptr %33, align 4, !tbaa !9
  %3607 = sext i32 %3606 to i64
  %3608 = getelementptr inbounds %struct.complex, ptr %3605, i64 %3607
  %3609 = getelementptr inbounds %struct.complex, ptr %3608, i32 0, i32 0
  %3610 = load float, ptr %3609, align 4, !tbaa !13
  %3611 = load ptr, ptr %20, align 8, !tbaa !5
  %3612 = load i32, ptr %34, align 4, !tbaa !9
  %3613 = sext i32 %3612 to i64
  %3614 = getelementptr inbounds %struct.complex, ptr %3611, i64 %3613
  %3615 = getelementptr inbounds %struct.complex, ptr %3614, i32 0, i32 1
  %3616 = load float, ptr %3615, align 4, !tbaa !15
  %3617 = load ptr, ptr %19, align 8, !tbaa !5
  %3618 = load i32, ptr %33, align 4, !tbaa !9
  %3619 = sext i32 %3618 to i64
  %3620 = getelementptr inbounds %struct.complex, ptr %3617, i64 %3619
  %3621 = getelementptr inbounds %struct.complex, ptr %3620, i32 0, i32 1
  %3622 = load float, ptr %3621, align 4, !tbaa !15
  %3623 = load ptr, ptr %20, align 8, !tbaa !5
  %3624 = load i32, ptr %34, align 4, !tbaa !9
  %3625 = sext i32 %3624 to i64
  %3626 = getelementptr inbounds %struct.complex, ptr %3623, i64 %3625
  %3627 = getelementptr inbounds %struct.complex, ptr %3626, i32 0, i32 0
  %3628 = load float, ptr %3627, align 4, !tbaa !13
  %3629 = fmul float %3622, %3628
  %3630 = call float @llvm.fmuladd.f32(float %3610, float %3616, float %3629)
  %3631 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %3630, ptr %3631, align 4, !tbaa !15
  %3632 = load ptr, ptr %23, align 8, !tbaa !5
  %3633 = load i32, ptr %32, align 4, !tbaa !9
  %3634 = sext i32 %3633 to i64
  %3635 = getelementptr inbounds %struct.complex, ptr %3632, i64 %3634
  %3636 = getelementptr inbounds %struct.complex, ptr %3635, i32 0, i32 0
  %3637 = load float, ptr %3636, align 4, !tbaa !13
  %3638 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3639 = load float, ptr %3638, align 4, !tbaa !13
  %3640 = fsub float %3637, %3639
  %3641 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %3640, ptr %3641, align 4, !tbaa !13
  %3642 = load ptr, ptr %23, align 8, !tbaa !5
  %3643 = load i32, ptr %32, align 4, !tbaa !9
  %3644 = sext i32 %3643 to i64
  %3645 = getelementptr inbounds %struct.complex, ptr %3642, i64 %3644
  %3646 = getelementptr inbounds %struct.complex, ptr %3645, i32 0, i32 1
  %3647 = load float, ptr %3646, align 4, !tbaa !15
  %3648 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3649 = load float, ptr %3648, align 4, !tbaa !15
  %3650 = fsub float %3647, %3649
  %3651 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %3650, ptr %3651, align 4, !tbaa !15
  %3652 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %3652, ptr %35, align 4, !tbaa !9
  %3653 = load i32, ptr %48, align 4, !tbaa !9
  %3654 = load i32, ptr %49, align 4, !tbaa !9
  %3655 = load i32, ptr %27, align 4, !tbaa !9
  %3656 = mul nsw i32 %3654, %3655
  %3657 = add nsw i32 %3653, %3656
  store i32 %3657, ptr %36, align 4, !tbaa !9
  %3658 = load ptr, ptr %18, align 8, !tbaa !5
  %3659 = load i32, ptr %35, align 4, !tbaa !9
  %3660 = sext i32 %3659 to i64
  %3661 = getelementptr inbounds %struct.complex, ptr %3658, i64 %3660
  %3662 = getelementptr inbounds %struct.complex, ptr %3661, i32 0, i32 0
  %3663 = load float, ptr %3662, align 4, !tbaa !13
  %3664 = load ptr, ptr %20, align 8, !tbaa !5
  %3665 = load i32, ptr %36, align 4, !tbaa !9
  %3666 = sext i32 %3665 to i64
  %3667 = getelementptr inbounds %struct.complex, ptr %3664, i64 %3666
  %3668 = getelementptr inbounds %struct.complex, ptr %3667, i32 0, i32 0
  %3669 = load float, ptr %3668, align 4, !tbaa !13
  %3670 = load ptr, ptr %18, align 8, !tbaa !5
  %3671 = load i32, ptr %35, align 4, !tbaa !9
  %3672 = sext i32 %3671 to i64
  %3673 = getelementptr inbounds %struct.complex, ptr %3670, i64 %3672
  %3674 = getelementptr inbounds %struct.complex, ptr %3673, i32 0, i32 1
  %3675 = load float, ptr %3674, align 4, !tbaa !15
  %3676 = load ptr, ptr %20, align 8, !tbaa !5
  %3677 = load i32, ptr %36, align 4, !tbaa !9
  %3678 = sext i32 %3677 to i64
  %3679 = getelementptr inbounds %struct.complex, ptr %3676, i64 %3678
  %3680 = getelementptr inbounds %struct.complex, ptr %3679, i32 0, i32 1
  %3681 = load float, ptr %3680, align 4, !tbaa !15
  %3682 = fmul float %3675, %3681
  %3683 = fneg float %3682
  %3684 = call float @llvm.fmuladd.f32(float %3663, float %3669, float %3683)
  %3685 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %3684, ptr %3685, align 4, !tbaa !13
  %3686 = load ptr, ptr %18, align 8, !tbaa !5
  %3687 = load i32, ptr %35, align 4, !tbaa !9
  %3688 = sext i32 %3687 to i64
  %3689 = getelementptr inbounds %struct.complex, ptr %3686, i64 %3688
  %3690 = getelementptr inbounds %struct.complex, ptr %3689, i32 0, i32 0
  %3691 = load float, ptr %3690, align 4, !tbaa !13
  %3692 = load ptr, ptr %20, align 8, !tbaa !5
  %3693 = load i32, ptr %36, align 4, !tbaa !9
  %3694 = sext i32 %3693 to i64
  %3695 = getelementptr inbounds %struct.complex, ptr %3692, i64 %3694
  %3696 = getelementptr inbounds %struct.complex, ptr %3695, i32 0, i32 1
  %3697 = load float, ptr %3696, align 4, !tbaa !15
  %3698 = load ptr, ptr %18, align 8, !tbaa !5
  %3699 = load i32, ptr %35, align 4, !tbaa !9
  %3700 = sext i32 %3699 to i64
  %3701 = getelementptr inbounds %struct.complex, ptr %3698, i64 %3700
  %3702 = getelementptr inbounds %struct.complex, ptr %3701, i32 0, i32 1
  %3703 = load float, ptr %3702, align 4, !tbaa !15
  %3704 = load ptr, ptr %20, align 8, !tbaa !5
  %3705 = load i32, ptr %36, align 4, !tbaa !9
  %3706 = sext i32 %3705 to i64
  %3707 = getelementptr inbounds %struct.complex, ptr %3704, i64 %3706
  %3708 = getelementptr inbounds %struct.complex, ptr %3707, i32 0, i32 0
  %3709 = load float, ptr %3708, align 4, !tbaa !13
  %3710 = fmul float %3703, %3709
  %3711 = call float @llvm.fmuladd.f32(float %3691, float %3697, float %3710)
  %3712 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %3711, ptr %3712, align 4, !tbaa !15
  %3713 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %3714 = load float, ptr %3713, align 4, !tbaa !13
  %3715 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %3716 = load float, ptr %3715, align 4, !tbaa !13
  %3717 = fsub float %3714, %3716
  %3718 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %3717, ptr %3718, align 4, !tbaa !13
  %3719 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %3720 = load float, ptr %3719, align 4, !tbaa !15
  %3721 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %3722 = load float, ptr %3721, align 4, !tbaa !15
  %3723 = fsub float %3720, %3722
  %3724 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %3723, ptr %3724, align 4, !tbaa !15
  %3725 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %3725, ptr %37, align 4, !tbaa !9
  %3726 = load i32, ptr %48, align 4, !tbaa !9
  %3727 = add nsw i32 %3726, 1
  %3728 = load i32, ptr %49, align 4, !tbaa !9
  %3729 = load i32, ptr %27, align 4, !tbaa !9
  %3730 = mul nsw i32 %3728, %3729
  %3731 = add nsw i32 %3727, %3730
  store i32 %3731, ptr %38, align 4, !tbaa !9
  %3732 = load ptr, ptr %17, align 8, !tbaa !5
  %3733 = load i32, ptr %37, align 4, !tbaa !9
  %3734 = sext i32 %3733 to i64
  %3735 = getelementptr inbounds %struct.complex, ptr %3732, i64 %3734
  %3736 = getelementptr inbounds %struct.complex, ptr %3735, i32 0, i32 0
  %3737 = load float, ptr %3736, align 4, !tbaa !13
  %3738 = load ptr, ptr %20, align 8, !tbaa !5
  %3739 = load i32, ptr %38, align 4, !tbaa !9
  %3740 = sext i32 %3739 to i64
  %3741 = getelementptr inbounds %struct.complex, ptr %3738, i64 %3740
  %3742 = getelementptr inbounds %struct.complex, ptr %3741, i32 0, i32 0
  %3743 = load float, ptr %3742, align 4, !tbaa !13
  %3744 = load ptr, ptr %17, align 8, !tbaa !5
  %3745 = load i32, ptr %37, align 4, !tbaa !9
  %3746 = sext i32 %3745 to i64
  %3747 = getelementptr inbounds %struct.complex, ptr %3744, i64 %3746
  %3748 = getelementptr inbounds %struct.complex, ptr %3747, i32 0, i32 1
  %3749 = load float, ptr %3748, align 4, !tbaa !15
  %3750 = load ptr, ptr %20, align 8, !tbaa !5
  %3751 = load i32, ptr %38, align 4, !tbaa !9
  %3752 = sext i32 %3751 to i64
  %3753 = getelementptr inbounds %struct.complex, ptr %3750, i64 %3752
  %3754 = getelementptr inbounds %struct.complex, ptr %3753, i32 0, i32 1
  %3755 = load float, ptr %3754, align 4, !tbaa !15
  %3756 = fmul float %3749, %3755
  %3757 = fneg float %3756
  %3758 = call float @llvm.fmuladd.f32(float %3737, float %3743, float %3757)
  %3759 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %3758, ptr %3759, align 4, !tbaa !13
  %3760 = load ptr, ptr %17, align 8, !tbaa !5
  %3761 = load i32, ptr %37, align 4, !tbaa !9
  %3762 = sext i32 %3761 to i64
  %3763 = getelementptr inbounds %struct.complex, ptr %3760, i64 %3762
  %3764 = getelementptr inbounds %struct.complex, ptr %3763, i32 0, i32 0
  %3765 = load float, ptr %3764, align 4, !tbaa !13
  %3766 = load ptr, ptr %20, align 8, !tbaa !5
  %3767 = load i32, ptr %38, align 4, !tbaa !9
  %3768 = sext i32 %3767 to i64
  %3769 = getelementptr inbounds %struct.complex, ptr %3766, i64 %3768
  %3770 = getelementptr inbounds %struct.complex, ptr %3769, i32 0, i32 1
  %3771 = load float, ptr %3770, align 4, !tbaa !15
  %3772 = load ptr, ptr %17, align 8, !tbaa !5
  %3773 = load i32, ptr %37, align 4, !tbaa !9
  %3774 = sext i32 %3773 to i64
  %3775 = getelementptr inbounds %struct.complex, ptr %3772, i64 %3774
  %3776 = getelementptr inbounds %struct.complex, ptr %3775, i32 0, i32 1
  %3777 = load float, ptr %3776, align 4, !tbaa !15
  %3778 = load ptr, ptr %20, align 8, !tbaa !5
  %3779 = load i32, ptr %38, align 4, !tbaa !9
  %3780 = sext i32 %3779 to i64
  %3781 = getelementptr inbounds %struct.complex, ptr %3778, i64 %3780
  %3782 = getelementptr inbounds %struct.complex, ptr %3781, i32 0, i32 0
  %3783 = load float, ptr %3782, align 4, !tbaa !13
  %3784 = fmul float %3777, %3783
  %3785 = call float @llvm.fmuladd.f32(float %3765, float %3771, float %3784)
  %3786 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %3785, ptr %3786, align 4, !tbaa !15
  %3787 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %3788 = load float, ptr %3787, align 4, !tbaa !13
  %3789 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %3790 = load float, ptr %3789, align 4, !tbaa !13
  %3791 = fsub float %3788, %3790
  %3792 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %3791, ptr %3792, align 4, !tbaa !13
  %3793 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %3794 = load float, ptr %3793, align 4, !tbaa !15
  %3795 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %3796 = load float, ptr %3795, align 4, !tbaa !15
  %3797 = fsub float %3794, %3796
  %3798 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %3797, ptr %3798, align 4, !tbaa !15
  %3799 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %3800 = load float, ptr %3799, align 4, !tbaa !13
  %3801 = load ptr, ptr %23, align 8, !tbaa !5
  %3802 = load i32, ptr %31, align 4, !tbaa !9
  %3803 = sext i32 %3802 to i64
  %3804 = getelementptr inbounds %struct.complex, ptr %3801, i64 %3803
  %3805 = getelementptr inbounds %struct.complex, ptr %3804, i32 0, i32 0
  store float %3800, ptr %3805, align 4, !tbaa !13
  %3806 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %3807 = load float, ptr %3806, align 4, !tbaa !15
  %3808 = load ptr, ptr %23, align 8, !tbaa !5
  %3809 = load i32, ptr %31, align 4, !tbaa !9
  %3810 = sext i32 %3809 to i64
  %3811 = getelementptr inbounds %struct.complex, ptr %3808, i64 %3810
  %3812 = getelementptr inbounds %struct.complex, ptr %3811, i32 0, i32 1
  store float %3807, ptr %3812, align 4, !tbaa !15
  br label %3813

3813:                                             ; preds = %3558
  %3814 = load i32, ptr %48, align 4, !tbaa !9
  %3815 = add nsw i32 %3814, 1
  store i32 %3815, ptr %48, align 4, !tbaa !9
  br label %3554, !llvm.loop !29

3816:                                             ; preds = %3554
  br label %3817

3817:                                             ; preds = %3816, %3114
  br label %3818

3818:                                             ; preds = %3817
  %3819 = load i32, ptr %49, align 4, !tbaa !9
  %3820 = add nsw i32 %3819, 1
  store i32 %3820, ptr %49, align 4, !tbaa !9
  br label %3106, !llvm.loop !30

3821:                                             ; preds = %3106
  br label %4535

3822:                                             ; preds = %3099
  %3823 = load ptr, ptr %13, align 8, !tbaa !5
  %3824 = call i32 @lsame_(ptr noundef %3823, ptr noundef @.str.2)
  %3825 = icmp ne i32 %3824, 0
  br i1 %3825, label %3826, label %4534

3826:                                             ; preds = %3822
  %3827 = load ptr, ptr %15, align 8, !tbaa !5
  %3828 = load i32, ptr %3827, align 4, !tbaa !9
  store i32 %3828, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %3829

3829:                                             ; preds = %4530, %3826
  %3830 = load i32, ptr %49, align 4, !tbaa !9
  %3831 = load i32, ptr %29, align 4, !tbaa !9
  %3832 = icmp sle i32 %3830, %3831
  br i1 %3832, label %3833, label %4533

3833:                                             ; preds = %3829
  %3834 = load ptr, ptr %14, align 8, !tbaa !5
  %3835 = load i32, ptr %3834, align 4, !tbaa !9
  %3836 = icmp eq i32 %3835, 1
  br i1 %3836, label %3837, label %3934

3837:                                             ; preds = %3833
  %3838 = load i32, ptr %49, align 4, !tbaa !9
  %3839 = load i32, ptr %25, align 4, !tbaa !9
  %3840 = mul nsw i32 %3838, %3839
  %3841 = add nsw i32 %3840, 1
  store i32 %3841, ptr %30, align 4, !tbaa !9
  %3842 = load i32, ptr %49, align 4, !tbaa !9
  %3843 = load i32, ptr %25, align 4, !tbaa !9
  %3844 = mul nsw i32 %3842, %3843
  %3845 = add nsw i32 %3844, 1
  store i32 %3845, ptr %31, align 4, !tbaa !9
  %3846 = load ptr, ptr %18, align 8, !tbaa !5
  %3847 = getelementptr inbounds %struct.complex, ptr %3846, i64 1
  %3848 = call <2 x float> @Cf(ptr noundef %3847)
  store <2 x float> %3848, ptr %59, align 4
  %3849 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 0
  %3850 = load float, ptr %3849, align 4
  %3851 = getelementptr inbounds { float, float }, ptr %59, i32 0, i32 1
  %3852 = load float, ptr %3851, align 4
  %3853 = fneg float %3852
  %3854 = call ptr @_pCf(ptr noundef %41)
  %3855 = getelementptr inbounds { float, float }, ptr %3854, i32 0, i32 0
  %3856 = getelementptr inbounds { float, float }, ptr %3854, i32 0, i32 1
  store float %3850, ptr %3855, align 4
  store float %3853, ptr %3856, align 4
  %3857 = load i32, ptr %49, align 4, !tbaa !9
  %3858 = load i32, ptr %27, align 4, !tbaa !9
  %3859 = mul nsw i32 %3857, %3858
  %3860 = add nsw i32 %3859, 1
  store i32 %3860, ptr %32, align 4, !tbaa !9
  %3861 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %3862 = load float, ptr %3861, align 4, !tbaa !13
  %3863 = load ptr, ptr %20, align 8, !tbaa !5
  %3864 = load i32, ptr %32, align 4, !tbaa !9
  %3865 = sext i32 %3864 to i64
  %3866 = getelementptr inbounds %struct.complex, ptr %3863, i64 %3865
  %3867 = getelementptr inbounds %struct.complex, ptr %3866, i32 0, i32 0
  %3868 = load float, ptr %3867, align 4, !tbaa !13
  %3869 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %3870 = load float, ptr %3869, align 4, !tbaa !15
  %3871 = load ptr, ptr %20, align 8, !tbaa !5
  %3872 = load i32, ptr %32, align 4, !tbaa !9
  %3873 = sext i32 %3872 to i64
  %3874 = getelementptr inbounds %struct.complex, ptr %3871, i64 %3873
  %3875 = getelementptr inbounds %struct.complex, ptr %3874, i32 0, i32 1
  %3876 = load float, ptr %3875, align 4, !tbaa !15
  %3877 = fmul float %3870, %3876
  %3878 = fneg float %3877
  %3879 = call float @llvm.fmuladd.f32(float %3862, float %3868, float %3878)
  %3880 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %3879, ptr %3880, align 4, !tbaa !13
  %3881 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %3882 = load float, ptr %3881, align 4, !tbaa !13
  %3883 = load ptr, ptr %20, align 8, !tbaa !5
  %3884 = load i32, ptr %32, align 4, !tbaa !9
  %3885 = sext i32 %3884 to i64
  %3886 = getelementptr inbounds %struct.complex, ptr %3883, i64 %3885
  %3887 = getelementptr inbounds %struct.complex, ptr %3886, i32 0, i32 1
  %3888 = load float, ptr %3887, align 4, !tbaa !15
  %3889 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %3890 = load float, ptr %3889, align 4, !tbaa !15
  %3891 = load ptr, ptr %20, align 8, !tbaa !5
  %3892 = load i32, ptr %32, align 4, !tbaa !9
  %3893 = sext i32 %3892 to i64
  %3894 = getelementptr inbounds %struct.complex, ptr %3891, i64 %3893
  %3895 = getelementptr inbounds %struct.complex, ptr %3894, i32 0, i32 0
  %3896 = load float, ptr %3895, align 4, !tbaa !13
  %3897 = fmul float %3890, %3896
  %3898 = call float @llvm.fmuladd.f32(float %3882, float %3888, float %3897)
  %3899 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %3898, ptr %3899, align 4, !tbaa !15
  %3900 = load ptr, ptr %23, align 8, !tbaa !5
  %3901 = load i32, ptr %31, align 4, !tbaa !9
  %3902 = sext i32 %3901 to i64
  %3903 = getelementptr inbounds %struct.complex, ptr %3900, i64 %3902
  %3904 = getelementptr inbounds %struct.complex, ptr %3903, i32 0, i32 0
  %3905 = load float, ptr %3904, align 4, !tbaa !13
  %3906 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %3907 = load float, ptr %3906, align 4, !tbaa !13
  %3908 = fsub float %3905, %3907
  %3909 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %3908, ptr %3909, align 4, !tbaa !13
  %3910 = load ptr, ptr %23, align 8, !tbaa !5
  %3911 = load i32, ptr %31, align 4, !tbaa !9
  %3912 = sext i32 %3911 to i64
  %3913 = getelementptr inbounds %struct.complex, ptr %3910, i64 %3912
  %3914 = getelementptr inbounds %struct.complex, ptr %3913, i32 0, i32 1
  %3915 = load float, ptr %3914, align 4, !tbaa !15
  %3916 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %3917 = load float, ptr %3916, align 4, !tbaa !15
  %3918 = fsub float %3915, %3917
  %3919 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %3918, ptr %3919, align 4, !tbaa !15
  %3920 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %3921 = load float, ptr %3920, align 4, !tbaa !13
  %3922 = load ptr, ptr %23, align 8, !tbaa !5
  %3923 = load i32, ptr %30, align 4, !tbaa !9
  %3924 = sext i32 %3923 to i64
  %3925 = getelementptr inbounds %struct.complex, ptr %3922, i64 %3924
  %3926 = getelementptr inbounds %struct.complex, ptr %3925, i32 0, i32 0
  store float %3921, ptr %3926, align 4, !tbaa !13
  %3927 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %3928 = load float, ptr %3927, align 4, !tbaa !15
  %3929 = load ptr, ptr %23, align 8, !tbaa !5
  %3930 = load i32, ptr %30, align 4, !tbaa !9
  %3931 = sext i32 %3930 to i64
  %3932 = getelementptr inbounds %struct.complex, ptr %3929, i64 %3931
  %3933 = getelementptr inbounds %struct.complex, ptr %3932, i32 0, i32 1
  store float %3928, ptr %3933, align 4, !tbaa !15
  br label %4529

3934:                                             ; preds = %3833
  %3935 = load i32, ptr %49, align 4, !tbaa !9
  %3936 = load i32, ptr %25, align 4, !tbaa !9
  %3937 = mul nsw i32 %3935, %3936
  %3938 = add nsw i32 %3937, 1
  store i32 %3938, ptr %30, align 4, !tbaa !9
  %3939 = load i32, ptr %49, align 4, !tbaa !9
  %3940 = load i32, ptr %25, align 4, !tbaa !9
  %3941 = mul nsw i32 %3939, %3940
  %3942 = add nsw i32 %3941, 1
  store i32 %3942, ptr %31, align 4, !tbaa !9
  %3943 = load ptr, ptr %18, align 8, !tbaa !5
  %3944 = getelementptr inbounds %struct.complex, ptr %3943, i64 1
  %3945 = call <2 x float> @Cf(ptr noundef %3944)
  store <2 x float> %3945, ptr %60, align 4
  %3946 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 0
  %3947 = load float, ptr %3946, align 4
  %3948 = getelementptr inbounds { float, float }, ptr %60, i32 0, i32 1
  %3949 = load float, ptr %3948, align 4
  %3950 = fneg float %3949
  %3951 = call ptr @_pCf(ptr noundef %42)
  %3952 = getelementptr inbounds { float, float }, ptr %3951, i32 0, i32 0
  %3953 = getelementptr inbounds { float, float }, ptr %3951, i32 0, i32 1
  store float %3947, ptr %3952, align 4
  store float %3950, ptr %3953, align 4
  %3954 = load i32, ptr %49, align 4, !tbaa !9
  %3955 = load i32, ptr %27, align 4, !tbaa !9
  %3956 = mul nsw i32 %3954, %3955
  %3957 = add nsw i32 %3956, 1
  store i32 %3957, ptr %32, align 4, !tbaa !9
  %3958 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3959 = load float, ptr %3958, align 4, !tbaa !13
  %3960 = load ptr, ptr %20, align 8, !tbaa !5
  %3961 = load i32, ptr %32, align 4, !tbaa !9
  %3962 = sext i32 %3961 to i64
  %3963 = getelementptr inbounds %struct.complex, ptr %3960, i64 %3962
  %3964 = getelementptr inbounds %struct.complex, ptr %3963, i32 0, i32 0
  %3965 = load float, ptr %3964, align 4, !tbaa !13
  %3966 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3967 = load float, ptr %3966, align 4, !tbaa !15
  %3968 = load ptr, ptr %20, align 8, !tbaa !5
  %3969 = load i32, ptr %32, align 4, !tbaa !9
  %3970 = sext i32 %3969 to i64
  %3971 = getelementptr inbounds %struct.complex, ptr %3968, i64 %3970
  %3972 = getelementptr inbounds %struct.complex, ptr %3971, i32 0, i32 1
  %3973 = load float, ptr %3972, align 4, !tbaa !15
  %3974 = fmul float %3967, %3973
  %3975 = fneg float %3974
  %3976 = call float @llvm.fmuladd.f32(float %3959, float %3965, float %3975)
  %3977 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %3976, ptr %3977, align 4, !tbaa !13
  %3978 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %3979 = load float, ptr %3978, align 4, !tbaa !13
  %3980 = load ptr, ptr %20, align 8, !tbaa !5
  %3981 = load i32, ptr %32, align 4, !tbaa !9
  %3982 = sext i32 %3981 to i64
  %3983 = getelementptr inbounds %struct.complex, ptr %3980, i64 %3982
  %3984 = getelementptr inbounds %struct.complex, ptr %3983, i32 0, i32 1
  %3985 = load float, ptr %3984, align 4, !tbaa !15
  %3986 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %3987 = load float, ptr %3986, align 4, !tbaa !15
  %3988 = load ptr, ptr %20, align 8, !tbaa !5
  %3989 = load i32, ptr %32, align 4, !tbaa !9
  %3990 = sext i32 %3989 to i64
  %3991 = getelementptr inbounds %struct.complex, ptr %3988, i64 %3990
  %3992 = getelementptr inbounds %struct.complex, ptr %3991, i32 0, i32 0
  %3993 = load float, ptr %3992, align 4, !tbaa !13
  %3994 = fmul float %3987, %3993
  %3995 = call float @llvm.fmuladd.f32(float %3979, float %3985, float %3994)
  %3996 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %3995, ptr %3996, align 4, !tbaa !15
  %3997 = load ptr, ptr %23, align 8, !tbaa !5
  %3998 = load i32, ptr %31, align 4, !tbaa !9
  %3999 = sext i32 %3998 to i64
  %4000 = getelementptr inbounds %struct.complex, ptr %3997, i64 %3999
  %4001 = getelementptr inbounds %struct.complex, ptr %4000, i32 0, i32 0
  %4002 = load float, ptr %4001, align 4, !tbaa !13
  %4003 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %4004 = load float, ptr %4003, align 4, !tbaa !13
  %4005 = fsub float %4002, %4004
  %4006 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %4005, ptr %4006, align 4, !tbaa !13
  %4007 = load ptr, ptr %23, align 8, !tbaa !5
  %4008 = load i32, ptr %31, align 4, !tbaa !9
  %4009 = sext i32 %4008 to i64
  %4010 = getelementptr inbounds %struct.complex, ptr %4007, i64 %4009
  %4011 = getelementptr inbounds %struct.complex, ptr %4010, i32 0, i32 1
  %4012 = load float, ptr %4011, align 4, !tbaa !15
  %4013 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %4014 = load float, ptr %4013, align 4, !tbaa !15
  %4015 = fsub float %4012, %4014
  %4016 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %4015, ptr %4016, align 4, !tbaa !15
  %4017 = load ptr, ptr %17, align 8, !tbaa !5
  %4018 = getelementptr inbounds %struct.complex, ptr %4017, i64 1
  %4019 = call <2 x float> @Cf(ptr noundef %4018)
  store <2 x float> %4019, ptr %61, align 4
  %4020 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 0
  %4021 = load float, ptr %4020, align 4
  %4022 = getelementptr inbounds { float, float }, ptr %61, i32 0, i32 1
  %4023 = load float, ptr %4022, align 4
  %4024 = fneg float %4023
  %4025 = call ptr @_pCf(ptr noundef %44)
  %4026 = getelementptr inbounds { float, float }, ptr %4025, i32 0, i32 0
  %4027 = getelementptr inbounds { float, float }, ptr %4025, i32 0, i32 1
  store float %4021, ptr %4026, align 4
  store float %4024, ptr %4027, align 4
  %4028 = load i32, ptr %49, align 4, !tbaa !9
  %4029 = load i32, ptr %27, align 4, !tbaa !9
  %4030 = mul nsw i32 %4028, %4029
  %4031 = add nsw i32 %4030, 2
  store i32 %4031, ptr %33, align 4, !tbaa !9
  %4032 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %4033 = load float, ptr %4032, align 4, !tbaa !13
  %4034 = load ptr, ptr %20, align 8, !tbaa !5
  %4035 = load i32, ptr %33, align 4, !tbaa !9
  %4036 = sext i32 %4035 to i64
  %4037 = getelementptr inbounds %struct.complex, ptr %4034, i64 %4036
  %4038 = getelementptr inbounds %struct.complex, ptr %4037, i32 0, i32 0
  %4039 = load float, ptr %4038, align 4, !tbaa !13
  %4040 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %4041 = load float, ptr %4040, align 4, !tbaa !15
  %4042 = load ptr, ptr %20, align 8, !tbaa !5
  %4043 = load i32, ptr %33, align 4, !tbaa !9
  %4044 = sext i32 %4043 to i64
  %4045 = getelementptr inbounds %struct.complex, ptr %4042, i64 %4044
  %4046 = getelementptr inbounds %struct.complex, ptr %4045, i32 0, i32 1
  %4047 = load float, ptr %4046, align 4, !tbaa !15
  %4048 = fmul float %4041, %4047
  %4049 = fneg float %4048
  %4050 = call float @llvm.fmuladd.f32(float %4033, float %4039, float %4049)
  %4051 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %4050, ptr %4051, align 4, !tbaa !13
  %4052 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %4053 = load float, ptr %4052, align 4, !tbaa !13
  %4054 = load ptr, ptr %20, align 8, !tbaa !5
  %4055 = load i32, ptr %33, align 4, !tbaa !9
  %4056 = sext i32 %4055 to i64
  %4057 = getelementptr inbounds %struct.complex, ptr %4054, i64 %4056
  %4058 = getelementptr inbounds %struct.complex, ptr %4057, i32 0, i32 1
  %4059 = load float, ptr %4058, align 4, !tbaa !15
  %4060 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %4061 = load float, ptr %4060, align 4, !tbaa !15
  %4062 = load ptr, ptr %20, align 8, !tbaa !5
  %4063 = load i32, ptr %33, align 4, !tbaa !9
  %4064 = sext i32 %4063 to i64
  %4065 = getelementptr inbounds %struct.complex, ptr %4062, i64 %4064
  %4066 = getelementptr inbounds %struct.complex, ptr %4065, i32 0, i32 0
  %4067 = load float, ptr %4066, align 4, !tbaa !13
  %4068 = fmul float %4061, %4067
  %4069 = call float @llvm.fmuladd.f32(float %4053, float %4059, float %4068)
  %4070 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %4069, ptr %4070, align 4, !tbaa !15
  %4071 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %4072 = load float, ptr %4071, align 4, !tbaa !13
  %4073 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %4074 = load float, ptr %4073, align 4, !tbaa !13
  %4075 = fsub float %4072, %4074
  %4076 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %4075, ptr %4076, align 4, !tbaa !13
  %4077 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %4078 = load float, ptr %4077, align 4, !tbaa !15
  %4079 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %4080 = load float, ptr %4079, align 4, !tbaa !15
  %4081 = fsub float %4078, %4080
  %4082 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %4081, ptr %4082, align 4, !tbaa !15
  %4083 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %4084 = load float, ptr %4083, align 4, !tbaa !13
  %4085 = load ptr, ptr %23, align 8, !tbaa !5
  %4086 = load i32, ptr %30, align 4, !tbaa !9
  %4087 = sext i32 %4086 to i64
  %4088 = getelementptr inbounds %struct.complex, ptr %4085, i64 %4087
  %4089 = getelementptr inbounds %struct.complex, ptr %4088, i32 0, i32 0
  store float %4084, ptr %4089, align 4, !tbaa !13
  %4090 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %4091 = load float, ptr %4090, align 4, !tbaa !15
  %4092 = load ptr, ptr %23, align 8, !tbaa !5
  %4093 = load i32, ptr %30, align 4, !tbaa !9
  %4094 = sext i32 %4093 to i64
  %4095 = getelementptr inbounds %struct.complex, ptr %4092, i64 %4094
  %4096 = getelementptr inbounds %struct.complex, ptr %4095, i32 0, i32 1
  store float %4091, ptr %4096, align 4, !tbaa !15
  %4097 = load ptr, ptr %14, align 8, !tbaa !5
  %4098 = load i32, ptr %4097, align 4, !tbaa !9
  %4099 = load i32, ptr %49, align 4, !tbaa !9
  %4100 = load i32, ptr %25, align 4, !tbaa !9
  %4101 = mul nsw i32 %4099, %4100
  %4102 = add nsw i32 %4098, %4101
  store i32 %4102, ptr %30, align 4, !tbaa !9
  %4103 = load ptr, ptr %14, align 8, !tbaa !5
  %4104 = load i32, ptr %4103, align 4, !tbaa !9
  %4105 = load i32, ptr %49, align 4, !tbaa !9
  %4106 = load i32, ptr %25, align 4, !tbaa !9
  %4107 = mul nsw i32 %4105, %4106
  %4108 = add nsw i32 %4104, %4107
  store i32 %4108, ptr %31, align 4, !tbaa !9
  %4109 = load ptr, ptr %19, align 8, !tbaa !5
  %4110 = load ptr, ptr %14, align 8, !tbaa !5
  %4111 = load i32, ptr %4110, align 4, !tbaa !9
  %4112 = sub nsw i32 %4111, 1
  %4113 = sext i32 %4112 to i64
  %4114 = getelementptr inbounds %struct.complex, ptr %4109, i64 %4113
  %4115 = call <2 x float> @Cf(ptr noundef %4114)
  store <2 x float> %4115, ptr %62, align 4
  %4116 = getelementptr inbounds { float, float }, ptr %62, i32 0, i32 0
  %4117 = load float, ptr %4116, align 4
  %4118 = getelementptr inbounds { float, float }, ptr %62, i32 0, i32 1
  %4119 = load float, ptr %4118, align 4
  %4120 = fneg float %4119
  %4121 = call ptr @_pCf(ptr noundef %42)
  %4122 = getelementptr inbounds { float, float }, ptr %4121, i32 0, i32 0
  %4123 = getelementptr inbounds { float, float }, ptr %4121, i32 0, i32 1
  store float %4117, ptr %4122, align 4
  store float %4120, ptr %4123, align 4
  %4124 = load ptr, ptr %14, align 8, !tbaa !5
  %4125 = load i32, ptr %4124, align 4, !tbaa !9
  %4126 = sub nsw i32 %4125, 1
  %4127 = load i32, ptr %49, align 4, !tbaa !9
  %4128 = load i32, ptr %27, align 4, !tbaa !9
  %4129 = mul nsw i32 %4127, %4128
  %4130 = add nsw i32 %4126, %4129
  store i32 %4130, ptr %32, align 4, !tbaa !9
  %4131 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %4132 = load float, ptr %4131, align 4, !tbaa !13
  %4133 = load ptr, ptr %20, align 8, !tbaa !5
  %4134 = load i32, ptr %32, align 4, !tbaa !9
  %4135 = sext i32 %4134 to i64
  %4136 = getelementptr inbounds %struct.complex, ptr %4133, i64 %4135
  %4137 = getelementptr inbounds %struct.complex, ptr %4136, i32 0, i32 0
  %4138 = load float, ptr %4137, align 4, !tbaa !13
  %4139 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %4140 = load float, ptr %4139, align 4, !tbaa !15
  %4141 = load ptr, ptr %20, align 8, !tbaa !5
  %4142 = load i32, ptr %32, align 4, !tbaa !9
  %4143 = sext i32 %4142 to i64
  %4144 = getelementptr inbounds %struct.complex, ptr %4141, i64 %4143
  %4145 = getelementptr inbounds %struct.complex, ptr %4144, i32 0, i32 1
  %4146 = load float, ptr %4145, align 4, !tbaa !15
  %4147 = fmul float %4140, %4146
  %4148 = fneg float %4147
  %4149 = call float @llvm.fmuladd.f32(float %4132, float %4138, float %4148)
  %4150 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %4149, ptr %4150, align 4, !tbaa !13
  %4151 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %4152 = load float, ptr %4151, align 4, !tbaa !13
  %4153 = load ptr, ptr %20, align 8, !tbaa !5
  %4154 = load i32, ptr %32, align 4, !tbaa !9
  %4155 = sext i32 %4154 to i64
  %4156 = getelementptr inbounds %struct.complex, ptr %4153, i64 %4155
  %4157 = getelementptr inbounds %struct.complex, ptr %4156, i32 0, i32 1
  %4158 = load float, ptr %4157, align 4, !tbaa !15
  %4159 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %4160 = load float, ptr %4159, align 4, !tbaa !15
  %4161 = load ptr, ptr %20, align 8, !tbaa !5
  %4162 = load i32, ptr %32, align 4, !tbaa !9
  %4163 = sext i32 %4162 to i64
  %4164 = getelementptr inbounds %struct.complex, ptr %4161, i64 %4163
  %4165 = getelementptr inbounds %struct.complex, ptr %4164, i32 0, i32 0
  %4166 = load float, ptr %4165, align 4, !tbaa !13
  %4167 = fmul float %4160, %4166
  %4168 = call float @llvm.fmuladd.f32(float %4152, float %4158, float %4167)
  %4169 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %4168, ptr %4169, align 4, !tbaa !15
  %4170 = load ptr, ptr %23, align 8, !tbaa !5
  %4171 = load i32, ptr %31, align 4, !tbaa !9
  %4172 = sext i32 %4171 to i64
  %4173 = getelementptr inbounds %struct.complex, ptr %4170, i64 %4172
  %4174 = getelementptr inbounds %struct.complex, ptr %4173, i32 0, i32 0
  %4175 = load float, ptr %4174, align 4, !tbaa !13
  %4176 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %4177 = load float, ptr %4176, align 4, !tbaa !13
  %4178 = fsub float %4175, %4177
  %4179 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %4178, ptr %4179, align 4, !tbaa !13
  %4180 = load ptr, ptr %23, align 8, !tbaa !5
  %4181 = load i32, ptr %31, align 4, !tbaa !9
  %4182 = sext i32 %4181 to i64
  %4183 = getelementptr inbounds %struct.complex, ptr %4180, i64 %4182
  %4184 = getelementptr inbounds %struct.complex, ptr %4183, i32 0, i32 1
  %4185 = load float, ptr %4184, align 4, !tbaa !15
  %4186 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %4187 = load float, ptr %4186, align 4, !tbaa !15
  %4188 = fsub float %4185, %4187
  %4189 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %4188, ptr %4189, align 4, !tbaa !15
  %4190 = load ptr, ptr %18, align 8, !tbaa !5
  %4191 = load ptr, ptr %14, align 8, !tbaa !5
  %4192 = load i32, ptr %4191, align 4, !tbaa !9
  %4193 = sext i32 %4192 to i64
  %4194 = getelementptr inbounds %struct.complex, ptr %4190, i64 %4193
  %4195 = call <2 x float> @Cf(ptr noundef %4194)
  store <2 x float> %4195, ptr %63, align 4
  %4196 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 0
  %4197 = load float, ptr %4196, align 4
  %4198 = getelementptr inbounds { float, float }, ptr %63, i32 0, i32 1
  %4199 = load float, ptr %4198, align 4
  %4200 = fneg float %4199
  %4201 = call ptr @_pCf(ptr noundef %44)
  %4202 = getelementptr inbounds { float, float }, ptr %4201, i32 0, i32 0
  %4203 = getelementptr inbounds { float, float }, ptr %4201, i32 0, i32 1
  store float %4197, ptr %4202, align 4
  store float %4200, ptr %4203, align 4
  %4204 = load ptr, ptr %14, align 8, !tbaa !5
  %4205 = load i32, ptr %4204, align 4, !tbaa !9
  %4206 = load i32, ptr %49, align 4, !tbaa !9
  %4207 = load i32, ptr %27, align 4, !tbaa !9
  %4208 = mul nsw i32 %4206, %4207
  %4209 = add nsw i32 %4205, %4208
  store i32 %4209, ptr %33, align 4, !tbaa !9
  %4210 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %4211 = load float, ptr %4210, align 4, !tbaa !13
  %4212 = load ptr, ptr %20, align 8, !tbaa !5
  %4213 = load i32, ptr %33, align 4, !tbaa !9
  %4214 = sext i32 %4213 to i64
  %4215 = getelementptr inbounds %struct.complex, ptr %4212, i64 %4214
  %4216 = getelementptr inbounds %struct.complex, ptr %4215, i32 0, i32 0
  %4217 = load float, ptr %4216, align 4, !tbaa !13
  %4218 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %4219 = load float, ptr %4218, align 4, !tbaa !15
  %4220 = load ptr, ptr %20, align 8, !tbaa !5
  %4221 = load i32, ptr %33, align 4, !tbaa !9
  %4222 = sext i32 %4221 to i64
  %4223 = getelementptr inbounds %struct.complex, ptr %4220, i64 %4222
  %4224 = getelementptr inbounds %struct.complex, ptr %4223, i32 0, i32 1
  %4225 = load float, ptr %4224, align 4, !tbaa !15
  %4226 = fmul float %4219, %4225
  %4227 = fneg float %4226
  %4228 = call float @llvm.fmuladd.f32(float %4211, float %4217, float %4227)
  %4229 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  store float %4228, ptr %4229, align 4, !tbaa !13
  %4230 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %4231 = load float, ptr %4230, align 4, !tbaa !13
  %4232 = load ptr, ptr %20, align 8, !tbaa !5
  %4233 = load i32, ptr %33, align 4, !tbaa !9
  %4234 = sext i32 %4233 to i64
  %4235 = getelementptr inbounds %struct.complex, ptr %4232, i64 %4234
  %4236 = getelementptr inbounds %struct.complex, ptr %4235, i32 0, i32 1
  %4237 = load float, ptr %4236, align 4, !tbaa !15
  %4238 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %4239 = load float, ptr %4238, align 4, !tbaa !15
  %4240 = load ptr, ptr %20, align 8, !tbaa !5
  %4241 = load i32, ptr %33, align 4, !tbaa !9
  %4242 = sext i32 %4241 to i64
  %4243 = getelementptr inbounds %struct.complex, ptr %4240, i64 %4242
  %4244 = getelementptr inbounds %struct.complex, ptr %4243, i32 0, i32 0
  %4245 = load float, ptr %4244, align 4, !tbaa !13
  %4246 = fmul float %4239, %4245
  %4247 = call float @llvm.fmuladd.f32(float %4231, float %4237, float %4246)
  %4248 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  store float %4247, ptr %4248, align 4, !tbaa !15
  %4249 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %4250 = load float, ptr %4249, align 4, !tbaa !13
  %4251 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %4252 = load float, ptr %4251, align 4, !tbaa !13
  %4253 = fsub float %4250, %4252
  %4254 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %4253, ptr %4254, align 4, !tbaa !13
  %4255 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %4256 = load float, ptr %4255, align 4, !tbaa !15
  %4257 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %4258 = load float, ptr %4257, align 4, !tbaa !15
  %4259 = fsub float %4256, %4258
  %4260 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %4259, ptr %4260, align 4, !tbaa !15
  %4261 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %4262 = load float, ptr %4261, align 4, !tbaa !13
  %4263 = load ptr, ptr %23, align 8, !tbaa !5
  %4264 = load i32, ptr %30, align 4, !tbaa !9
  %4265 = sext i32 %4264 to i64
  %4266 = getelementptr inbounds %struct.complex, ptr %4263, i64 %4265
  %4267 = getelementptr inbounds %struct.complex, ptr %4266, i32 0, i32 0
  store float %4262, ptr %4267, align 4, !tbaa !13
  %4268 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %4269 = load float, ptr %4268, align 4, !tbaa !15
  %4270 = load ptr, ptr %23, align 8, !tbaa !5
  %4271 = load i32, ptr %30, align 4, !tbaa !9
  %4272 = sext i32 %4271 to i64
  %4273 = getelementptr inbounds %struct.complex, ptr %4270, i64 %4272
  %4274 = getelementptr inbounds %struct.complex, ptr %4273, i32 0, i32 1
  store float %4269, ptr %4274, align 4, !tbaa !15
  %4275 = load ptr, ptr %14, align 8, !tbaa !5
  %4276 = load i32, ptr %4275, align 4, !tbaa !9
  %4277 = sub nsw i32 %4276, 1
  store i32 %4277, ptr %30, align 4, !tbaa !9
  store i32 2, ptr %48, align 4, !tbaa !9
  br label %4278

4278:                                             ; preds = %4525, %3934
  %4279 = load i32, ptr %48, align 4, !tbaa !9
  %4280 = load i32, ptr %30, align 4, !tbaa !9
  %4281 = icmp sle i32 %4279, %4280
  br i1 %4281, label %4282, label %4528

4282:                                             ; preds = %4278
  %4283 = load i32, ptr %48, align 4, !tbaa !9
  %4284 = load i32, ptr %49, align 4, !tbaa !9
  %4285 = load i32, ptr %25, align 4, !tbaa !9
  %4286 = mul nsw i32 %4284, %4285
  %4287 = add nsw i32 %4283, %4286
  store i32 %4287, ptr %31, align 4, !tbaa !9
  %4288 = load i32, ptr %48, align 4, !tbaa !9
  %4289 = load i32, ptr %49, align 4, !tbaa !9
  %4290 = load i32, ptr %25, align 4, !tbaa !9
  %4291 = mul nsw i32 %4289, %4290
  %4292 = add nsw i32 %4288, %4291
  store i32 %4292, ptr %32, align 4, !tbaa !9
  %4293 = load ptr, ptr %19, align 8, !tbaa !5
  %4294 = load i32, ptr %48, align 4, !tbaa !9
  %4295 = sub nsw i32 %4294, 1
  %4296 = sext i32 %4295 to i64
  %4297 = getelementptr inbounds %struct.complex, ptr %4293, i64 %4296
  %4298 = call <2 x float> @Cf(ptr noundef %4297)
  store <2 x float> %4298, ptr %64, align 4
  %4299 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 0
  %4300 = load float, ptr %4299, align 4
  %4301 = getelementptr inbounds { float, float }, ptr %64, i32 0, i32 1
  %4302 = load float, ptr %4301, align 4
  %4303 = fneg float %4302
  %4304 = call ptr @_pCf(ptr noundef %43)
  %4305 = getelementptr inbounds { float, float }, ptr %4304, i32 0, i32 0
  %4306 = getelementptr inbounds { float, float }, ptr %4304, i32 0, i32 1
  store float %4300, ptr %4305, align 4
  store float %4303, ptr %4306, align 4
  %4307 = load i32, ptr %48, align 4, !tbaa !9
  %4308 = sub nsw i32 %4307, 1
  %4309 = load i32, ptr %49, align 4, !tbaa !9
  %4310 = load i32, ptr %27, align 4, !tbaa !9
  %4311 = mul nsw i32 %4309, %4310
  %4312 = add nsw i32 %4308, %4311
  store i32 %4312, ptr %33, align 4, !tbaa !9
  %4313 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %4314 = load float, ptr %4313, align 4, !tbaa !13
  %4315 = load ptr, ptr %20, align 8, !tbaa !5
  %4316 = load i32, ptr %33, align 4, !tbaa !9
  %4317 = sext i32 %4316 to i64
  %4318 = getelementptr inbounds %struct.complex, ptr %4315, i64 %4317
  %4319 = getelementptr inbounds %struct.complex, ptr %4318, i32 0, i32 0
  %4320 = load float, ptr %4319, align 4, !tbaa !13
  %4321 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %4322 = load float, ptr %4321, align 4, !tbaa !15
  %4323 = load ptr, ptr %20, align 8, !tbaa !5
  %4324 = load i32, ptr %33, align 4, !tbaa !9
  %4325 = sext i32 %4324 to i64
  %4326 = getelementptr inbounds %struct.complex, ptr %4323, i64 %4325
  %4327 = getelementptr inbounds %struct.complex, ptr %4326, i32 0, i32 1
  %4328 = load float, ptr %4327, align 4, !tbaa !15
  %4329 = fmul float %4322, %4328
  %4330 = fneg float %4329
  %4331 = call float @llvm.fmuladd.f32(float %4314, float %4320, float %4330)
  %4332 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  store float %4331, ptr %4332, align 4, !tbaa !13
  %4333 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 0
  %4334 = load float, ptr %4333, align 4, !tbaa !13
  %4335 = load ptr, ptr %20, align 8, !tbaa !5
  %4336 = load i32, ptr %33, align 4, !tbaa !9
  %4337 = sext i32 %4336 to i64
  %4338 = getelementptr inbounds %struct.complex, ptr %4335, i64 %4337
  %4339 = getelementptr inbounds %struct.complex, ptr %4338, i32 0, i32 1
  %4340 = load float, ptr %4339, align 4, !tbaa !15
  %4341 = getelementptr inbounds %struct.complex, ptr %43, i32 0, i32 1
  %4342 = load float, ptr %4341, align 4, !tbaa !15
  %4343 = load ptr, ptr %20, align 8, !tbaa !5
  %4344 = load i32, ptr %33, align 4, !tbaa !9
  %4345 = sext i32 %4344 to i64
  %4346 = getelementptr inbounds %struct.complex, ptr %4343, i64 %4345
  %4347 = getelementptr inbounds %struct.complex, ptr %4346, i32 0, i32 0
  %4348 = load float, ptr %4347, align 4, !tbaa !13
  %4349 = fmul float %4342, %4348
  %4350 = call float @llvm.fmuladd.f32(float %4334, float %4340, float %4349)
  %4351 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  store float %4350, ptr %4351, align 4, !tbaa !15
  %4352 = load ptr, ptr %23, align 8, !tbaa !5
  %4353 = load i32, ptr %32, align 4, !tbaa !9
  %4354 = sext i32 %4353 to i64
  %4355 = getelementptr inbounds %struct.complex, ptr %4352, i64 %4354
  %4356 = getelementptr inbounds %struct.complex, ptr %4355, i32 0, i32 0
  %4357 = load float, ptr %4356, align 4, !tbaa !13
  %4358 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 0
  %4359 = load float, ptr %4358, align 4, !tbaa !13
  %4360 = fsub float %4357, %4359
  %4361 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  store float %4360, ptr %4361, align 4, !tbaa !13
  %4362 = load ptr, ptr %23, align 8, !tbaa !5
  %4363 = load i32, ptr %32, align 4, !tbaa !9
  %4364 = sext i32 %4363 to i64
  %4365 = getelementptr inbounds %struct.complex, ptr %4362, i64 %4364
  %4366 = getelementptr inbounds %struct.complex, ptr %4365, i32 0, i32 1
  %4367 = load float, ptr %4366, align 4, !tbaa !15
  %4368 = getelementptr inbounds %struct.complex, ptr %42, i32 0, i32 1
  %4369 = load float, ptr %4368, align 4, !tbaa !15
  %4370 = fsub float %4367, %4369
  %4371 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  store float %4370, ptr %4371, align 4, !tbaa !15
  %4372 = load ptr, ptr %18, align 8, !tbaa !5
  %4373 = load i32, ptr %48, align 4, !tbaa !9
  %4374 = sext i32 %4373 to i64
  %4375 = getelementptr inbounds %struct.complex, ptr %4372, i64 %4374
  %4376 = call <2 x float> @Cf(ptr noundef %4375)
  store <2 x float> %4376, ptr %65, align 4
  %4377 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 0
  %4378 = load float, ptr %4377, align 4
  %4379 = getelementptr inbounds { float, float }, ptr %65, i32 0, i32 1
  %4380 = load float, ptr %4379, align 4
  %4381 = fneg float %4380
  %4382 = call ptr @_pCf(ptr noundef %45)
  %4383 = getelementptr inbounds { float, float }, ptr %4382, i32 0, i32 0
  %4384 = getelementptr inbounds { float, float }, ptr %4382, i32 0, i32 1
  store float %4378, ptr %4383, align 4
  store float %4381, ptr %4384, align 4
  %4385 = load i32, ptr %48, align 4, !tbaa !9
  %4386 = load i32, ptr %49, align 4, !tbaa !9
  %4387 = load i32, ptr %27, align 4, !tbaa !9
  %4388 = mul nsw i32 %4386, %4387
  %4389 = add nsw i32 %4385, %4388
  store i32 %4389, ptr %34, align 4, !tbaa !9
  %4390 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %4391 = load float, ptr %4390, align 4, !tbaa !13
  %4392 = load ptr, ptr %20, align 8, !tbaa !5
  %4393 = load i32, ptr %34, align 4, !tbaa !9
  %4394 = sext i32 %4393 to i64
  %4395 = getelementptr inbounds %struct.complex, ptr %4392, i64 %4394
  %4396 = getelementptr inbounds %struct.complex, ptr %4395, i32 0, i32 0
  %4397 = load float, ptr %4396, align 4, !tbaa !13
  %4398 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %4399 = load float, ptr %4398, align 4, !tbaa !15
  %4400 = load ptr, ptr %20, align 8, !tbaa !5
  %4401 = load i32, ptr %34, align 4, !tbaa !9
  %4402 = sext i32 %4401 to i64
  %4403 = getelementptr inbounds %struct.complex, ptr %4400, i64 %4402
  %4404 = getelementptr inbounds %struct.complex, ptr %4403, i32 0, i32 1
  %4405 = load float, ptr %4404, align 4, !tbaa !15
  %4406 = fmul float %4399, %4405
  %4407 = fneg float %4406
  %4408 = call float @llvm.fmuladd.f32(float %4391, float %4397, float %4407)
  %4409 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  store float %4408, ptr %4409, align 4, !tbaa !13
  %4410 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 0
  %4411 = load float, ptr %4410, align 4, !tbaa !13
  %4412 = load ptr, ptr %20, align 8, !tbaa !5
  %4413 = load i32, ptr %34, align 4, !tbaa !9
  %4414 = sext i32 %4413 to i64
  %4415 = getelementptr inbounds %struct.complex, ptr %4412, i64 %4414
  %4416 = getelementptr inbounds %struct.complex, ptr %4415, i32 0, i32 1
  %4417 = load float, ptr %4416, align 4, !tbaa !15
  %4418 = getelementptr inbounds %struct.complex, ptr %45, i32 0, i32 1
  %4419 = load float, ptr %4418, align 4, !tbaa !15
  %4420 = load ptr, ptr %20, align 8, !tbaa !5
  %4421 = load i32, ptr %34, align 4, !tbaa !9
  %4422 = sext i32 %4421 to i64
  %4423 = getelementptr inbounds %struct.complex, ptr %4420, i64 %4422
  %4424 = getelementptr inbounds %struct.complex, ptr %4423, i32 0, i32 0
  %4425 = load float, ptr %4424, align 4, !tbaa !13
  %4426 = fmul float %4419, %4425
  %4427 = call float @llvm.fmuladd.f32(float %4411, float %4417, float %4426)
  %4428 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  store float %4427, ptr %4428, align 4, !tbaa !15
  %4429 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 0
  %4430 = load float, ptr %4429, align 4, !tbaa !13
  %4431 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 0
  %4432 = load float, ptr %4431, align 4, !tbaa !13
  %4433 = fsub float %4430, %4432
  %4434 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  store float %4433, ptr %4434, align 4, !tbaa !13
  %4435 = getelementptr inbounds %struct.complex, ptr %41, i32 0, i32 1
  %4436 = load float, ptr %4435, align 4, !tbaa !15
  %4437 = getelementptr inbounds %struct.complex, ptr %44, i32 0, i32 1
  %4438 = load float, ptr %4437, align 4, !tbaa !15
  %4439 = fsub float %4436, %4438
  %4440 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  store float %4439, ptr %4440, align 4, !tbaa !15
  %4441 = load ptr, ptr %17, align 8, !tbaa !5
  %4442 = load i32, ptr %48, align 4, !tbaa !9
  %4443 = sext i32 %4442 to i64
  %4444 = getelementptr inbounds %struct.complex, ptr %4441, i64 %4443
  %4445 = call <2 x float> @Cf(ptr noundef %4444)
  store <2 x float> %4445, ptr %66, align 4
  %4446 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 0
  %4447 = load float, ptr %4446, align 4
  %4448 = getelementptr inbounds { float, float }, ptr %66, i32 0, i32 1
  %4449 = load float, ptr %4448, align 4
  %4450 = fneg float %4449
  %4451 = call ptr @_pCf(ptr noundef %47)
  %4452 = getelementptr inbounds { float, float }, ptr %4451, i32 0, i32 0
  %4453 = getelementptr inbounds { float, float }, ptr %4451, i32 0, i32 1
  store float %4447, ptr %4452, align 4
  store float %4450, ptr %4453, align 4
  %4454 = load i32, ptr %48, align 4, !tbaa !9
  %4455 = add nsw i32 %4454, 1
  %4456 = load i32, ptr %49, align 4, !tbaa !9
  %4457 = load i32, ptr %27, align 4, !tbaa !9
  %4458 = mul nsw i32 %4456, %4457
  %4459 = add nsw i32 %4455, %4458
  store i32 %4459, ptr %35, align 4, !tbaa !9
  %4460 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %4461 = load float, ptr %4460, align 4, !tbaa !13
  %4462 = load ptr, ptr %20, align 8, !tbaa !5
  %4463 = load i32, ptr %35, align 4, !tbaa !9
  %4464 = sext i32 %4463 to i64
  %4465 = getelementptr inbounds %struct.complex, ptr %4462, i64 %4464
  %4466 = getelementptr inbounds %struct.complex, ptr %4465, i32 0, i32 0
  %4467 = load float, ptr %4466, align 4, !tbaa !13
  %4468 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %4469 = load float, ptr %4468, align 4, !tbaa !15
  %4470 = load ptr, ptr %20, align 8, !tbaa !5
  %4471 = load i32, ptr %35, align 4, !tbaa !9
  %4472 = sext i32 %4471 to i64
  %4473 = getelementptr inbounds %struct.complex, ptr %4470, i64 %4472
  %4474 = getelementptr inbounds %struct.complex, ptr %4473, i32 0, i32 1
  %4475 = load float, ptr %4474, align 4, !tbaa !15
  %4476 = fmul float %4469, %4475
  %4477 = fneg float %4476
  %4478 = call float @llvm.fmuladd.f32(float %4461, float %4467, float %4477)
  %4479 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  store float %4478, ptr %4479, align 4, !tbaa !13
  %4480 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 0
  %4481 = load float, ptr %4480, align 4, !tbaa !13
  %4482 = load ptr, ptr %20, align 8, !tbaa !5
  %4483 = load i32, ptr %35, align 4, !tbaa !9
  %4484 = sext i32 %4483 to i64
  %4485 = getelementptr inbounds %struct.complex, ptr %4482, i64 %4484
  %4486 = getelementptr inbounds %struct.complex, ptr %4485, i32 0, i32 1
  %4487 = load float, ptr %4486, align 4, !tbaa !15
  %4488 = getelementptr inbounds %struct.complex, ptr %47, i32 0, i32 1
  %4489 = load float, ptr %4488, align 4, !tbaa !15
  %4490 = load ptr, ptr %20, align 8, !tbaa !5
  %4491 = load i32, ptr %35, align 4, !tbaa !9
  %4492 = sext i32 %4491 to i64
  %4493 = getelementptr inbounds %struct.complex, ptr %4490, i64 %4492
  %4494 = getelementptr inbounds %struct.complex, ptr %4493, i32 0, i32 0
  %4495 = load float, ptr %4494, align 4, !tbaa !13
  %4496 = fmul float %4489, %4495
  %4497 = call float @llvm.fmuladd.f32(float %4481, float %4487, float %4496)
  %4498 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  store float %4497, ptr %4498, align 4, !tbaa !15
  %4499 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 0
  %4500 = load float, ptr %4499, align 4, !tbaa !13
  %4501 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 0
  %4502 = load float, ptr %4501, align 4, !tbaa !13
  %4503 = fsub float %4500, %4502
  %4504 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  store float %4503, ptr %4504, align 4, !tbaa !13
  %4505 = getelementptr inbounds %struct.complex, ptr %40, i32 0, i32 1
  %4506 = load float, ptr %4505, align 4, !tbaa !15
  %4507 = getelementptr inbounds %struct.complex, ptr %46, i32 0, i32 1
  %4508 = load float, ptr %4507, align 4, !tbaa !15
  %4509 = fsub float %4506, %4508
  %4510 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  store float %4509, ptr %4510, align 4, !tbaa !15
  %4511 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 0
  %4512 = load float, ptr %4511, align 4, !tbaa !13
  %4513 = load ptr, ptr %23, align 8, !tbaa !5
  %4514 = load i32, ptr %31, align 4, !tbaa !9
  %4515 = sext i32 %4514 to i64
  %4516 = getelementptr inbounds %struct.complex, ptr %4513, i64 %4515
  %4517 = getelementptr inbounds %struct.complex, ptr %4516, i32 0, i32 0
  store float %4512, ptr %4517, align 4, !tbaa !13
  %4518 = getelementptr inbounds %struct.complex, ptr %39, i32 0, i32 1
  %4519 = load float, ptr %4518, align 4, !tbaa !15
  %4520 = load ptr, ptr %23, align 8, !tbaa !5
  %4521 = load i32, ptr %31, align 4, !tbaa !9
  %4522 = sext i32 %4521 to i64
  %4523 = getelementptr inbounds %struct.complex, ptr %4520, i64 %4522
  %4524 = getelementptr inbounds %struct.complex, ptr %4523, i32 0, i32 1
  store float %4519, ptr %4524, align 4, !tbaa !15
  br label %4525

4525:                                             ; preds = %4282
  %4526 = load i32, ptr %48, align 4, !tbaa !9
  %4527 = add nsw i32 %4526, 1
  store i32 %4527, ptr %48, align 4, !tbaa !9
  br label %4278, !llvm.loop !31

4528:                                             ; preds = %4278
  br label %4529

4529:                                             ; preds = %4528, %3837
  br label %4530

4530:                                             ; preds = %4529
  %4531 = load i32, ptr %49, align 4, !tbaa !9
  %4532 = add nsw i32 %4531, 1
  store i32 %4532, ptr %49, align 4, !tbaa !9
  br label %3829, !llvm.loop !32

4533:                                             ; preds = %3829
  br label %4534

4534:                                             ; preds = %4533, %3822
  br label %4535

4535:                                             ; preds = %4534, %3821
  br label %4536

4536:                                             ; preds = %4535, %3098
  br label %4537

4537:                                             ; preds = %4536, %2372
  br label %4538

4538:                                             ; preds = %4537, %2371
  store i32 1, ptr %50, align 4
  br label %4539

4539:                                             ; preds = %4538, %96
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  ret void
}

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

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

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

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

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

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

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

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

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


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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1

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

30:                                               ; preds = %12
  %31 = load float, ptr %9, align 4, !tbaa !9
  %32 = fcmp oeq float %31, 0.000000e+00
  br i1 %32, label %33, label %54

33:                                               ; preds = %30
  %34 = load i32, ptr %2, align 4, !tbaa !5
  %.not13141355 = icmp slt i32 %34, 1
  %.not13331352 = icmp slt i32 %28, 1
  %or.cond = or i1 %.not13141355, %.not13331352
  br i1 %or.cond, label %.loopexit1345, label %.preheader.preheader

.preheader.preheader:                             ; preds = %33
  %35 = add i32 %25, 1
  %36 = sext i32 %35 to i64
  %37 = add nsw i64 %26, %36
  %38 = shl nsw i64 %37, 3
  %39 = sext i32 %25 to i64
  %40 = shl nsw i64 %39, 3
  %41 = zext nneg i32 %28 to i64
  %42 = shl nuw nsw i64 %41, 3
  %wide.trip.count1698 = zext nneg i32 %34 to i64
  %43 = getelementptr i8, ptr %10, i64 %38
  %44 = add nsw i64 %wide.trip.count1698, -1
  %xtraiter = and i64 %wide.trip.count1698, 7
  %45 = icmp ult i64 %44, 7
  br i1 %45, label %.loopexit1345.loopexit.unr-lcssa, label %.preheader.preheader.new

.preheader.preheader.new:                         ; preds = %.preheader.preheader
  %unroll_iter = and i64 %wide.trip.count1698, 2147483640
  br label %.preheader

.preheader:                                       ; preds = %.preheader, %.preheader.preheader.new
  %indvar = phi i64 [ 0, %.preheader.preheader.new ], [ %indvar.next.7, %.preheader ]
  %niter = phi i64 [ 0, %.preheader.preheader.new ], [ %niter.next.7, %.preheader ]
  %46 = mul i64 %40, %indvar
  %scevgep = getelementptr i8, ptr %43, i64 %46
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %42, i1 false), !tbaa !9
  %indvar.next = or disjoint i64 %indvar, 1
  %47 = mul i64 %40, %indvar.next
  %scevgep.1 = getelementptr i8, ptr %43, i64 %47
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep.1, i8 0, i64 %42, i1 false), !tbaa !9
  %indvar.next.1 = or disjoint i64 %indvar, 2
  %48 = mul i64 %40, %indvar.next.1
  %scevgep.2 = getelementptr i8, ptr %43, i64 %48
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep.2, i8 0, i64 %42, i1 false), !tbaa !9
  %indvar.next.2 = or disjoint i64 %indvar, 3
  %49 = mul i64 %40, %indvar.next.2
  %scevgep.3 = getelementptr i8, ptr %43, i64 %49
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep.3, i8 0, i64 %42, i1 false), !tbaa !9
  %indvar.next.3 = or disjoint i64 %indvar, 4
  %50 = mul i64 %40, %indvar.next.3
  %scevgep.4 = getelementptr i8, ptr %43, i64 %50
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep.4, i8 0, i64 %42, i1 false), !tbaa !9
  %indvar.next.4 = or disjoint i64 %indvar, 5
  %51 = mul i64 %40, %indvar.next.4
  %scevgep.5 = getelementptr i8, ptr %43, i64 %51
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep.5, i8 0, i64 %42, i1 false), !tbaa !9
  %indvar.next.5 = or disjoint i64 %indvar, 6
  %52 = mul i64 %40, %indvar.next.5
  %scevgep.6 = getelementptr i8, ptr %43, i64 %52
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep.6, i8 0, i64 %42, i1 false), !tbaa !9
  %indvar.next.6 = or disjoint i64 %indvar, 7
  %53 = mul i64 %40, %indvar.next.6
  %scevgep.7 = getelementptr i8, ptr %43, i64 %53
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep.7, i8 0, i64 %42, i1 false), !tbaa !9
  %indvar.next.7 = add nuw nsw i64 %indvar, 8
  %niter.next.7 = add i64 %niter, 8
  %niter.ncmp.7 = icmp eq i64 %niter.next.7, %unroll_iter
  br i1 %niter.ncmp.7, label %.loopexit1345.loopexit.unr-lcssa, label %.preheader, !llvm.loop !11

54:                                               ; preds = %30
  %55 = fcmp oeq float %31, -1.000000e+00
  br i1 %55, label %56, label %.loopexit1345

56:                                               ; preds = %54
  %57 = load i32, ptr %2, align 4, !tbaa !5
  %.not1350 = icmp slt i32 %57, 1
  %.not13131348 = icmp slt i32 %28, 1
  %or.cond1875 = or i1 %.not1350, %.not13131348
  br i1 %or.cond1875, label %.loopexit1345, label %.preheader1346.preheader

.preheader1346.preheader:                         ; preds = %56
  %58 = add nuw i32 %28, 1
  %59 = sext i32 %25 to i64
  %60 = add nuw i32 %57, 1
  %wide.trip.count1693 = zext i32 %60 to i64
  %wide.trip.count = zext i32 %58 to i64
  %61 = zext nneg i32 %28 to i64
  %min.iters.check = icmp ult i32 %28, 4
  %n.vec = and i64 %61, 2147483644
  %ind.end = or disjoint i64 %n.vec, 1
  %cmp.n = icmp eq i64 %n.vec, %61
  br label %.preheader1346

.preheader1346:                                   ; preds = %.preheader1346.preheader, %._crit_edge
  %indvars.iv1690 = phi i64 [ 1, %.preheader1346.preheader ], [ %indvars.iv.next1691, %._crit_edge ]
  %62 = mul nsw i64 %indvars.iv1690, %59
  %invariant.gep1801 = getelementptr %struct.complex, ptr %27, i64 %62
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.body

vector.body:                                      ; preds = %.preheader1346, %vector.body
  %index = phi i64 [ %index.next, %vector.body ], [ 0, %.preheader1346 ]
  %offset.idx = or disjoint i64 %index, 1
  %63 = or disjoint i64 %index, 3
  %64 = getelementptr %struct.complex, ptr %invariant.gep1801, i64 %offset.idx
  %65 = getelementptr %struct.complex, ptr %invariant.gep1801, i64 %63
  %wide.vec = load <4 x float>, ptr %64, align 4, !tbaa !9
  %wide.vec1886 = load <4 x float>, ptr %65, align 4, !tbaa !9
  %interleaved.vec = fneg <4 x float> %wide.vec
  store <4 x float> %interleaved.vec, ptr %64, align 4, !tbaa !9
  %interleaved.vec1890 = fneg <4 x float> %wide.vec1886
  store <4 x float> %interleaved.vec1890, ptr %65, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %66 = icmp eq i64 %index.next, %n.vec
  br i1 %66, label %middle.block, label %vector.body, !llvm.loop !13

middle.block:                                     ; preds = %vector.body
  br i1 %cmp.n, label %._crit_edge, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.preheader1346
  %indvars.iv.ph = phi i64 [ 1, %.preheader1346 ], [ %ind.end, %middle.block ]
  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 ]
  %gep1802 = getelementptr %struct.complex, ptr %invariant.gep1801, i64 %indvars.iv
  %67 = load <2 x float>, ptr %gep1802, align 4, !tbaa !9
  %68 = fneg <2 x float> %67
  store <2 x float> %68, ptr %gep1802, align 4, !tbaa !9
  %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 %._crit_edge, label %scalar.ph, !llvm.loop !16

._crit_edge:                                      ; preds = %scalar.ph, %middle.block
  %indvars.iv.next1691 = add nuw nsw i64 %indvars.iv1690, 1
  %exitcond1694.not = icmp eq i64 %indvars.iv.next1691, %wide.trip.count1693
  br i1 %exitcond1694.not, label %.loopexit1345, label %.preheader1346, !llvm.loop !17

.loopexit1345.loopexit.unr-lcssa:                 ; preds = %.preheader, %.preheader.preheader
  %indvar.unr = phi i64 [ 0, %.preheader.preheader ], [ %indvar.next.7, %.preheader ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.loopexit1345, label %.preheader.epil

.preheader.epil:                                  ; preds = %.loopexit1345.loopexit.unr-lcssa, %.preheader.epil
  %indvar.epil = phi i64 [ %indvar.next.epil, %.preheader.epil ], [ %indvar.unr, %.loopexit1345.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.preheader.epil ], [ 0, %.loopexit1345.loopexit.unr-lcssa ]
  %69 = mul i64 %40, %indvar.epil
  %scevgep.epil = getelementptr i8, ptr %43, i64 %69
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep.epil, i8 0, i64 %42, i1 false), !tbaa !9
  %indvar.next.epil = add nuw nsw i64 %indvar.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %.loopexit1345, label %.preheader.epil, !llvm.loop !18

.loopexit1345:                                    ; preds = %._crit_edge, %.loopexit1345.loopexit.unr-lcssa, %.preheader.epil, %56, %33, %54
  %70 = load float, ptr %3, align 4, !tbaa !9
  %71 = fcmp oeq float %70, 1.000000e+00
  br i1 %71, label %72, label %652

72:                                               ; preds = %.loopexit1345
  %73 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #7
  %.not1324 = icmp eq i32 %73, 0
  br i1 %.not1324, label %275, label %74

74:                                               ; preds = %72
  %75 = load i32, ptr %2, align 4, !tbaa !5
  %.not13311535 = icmp slt i32 %75, 1
  br i1 %.not13311535, label %.loopexit1334, label %.lr.ph1542

.lr.ph1542:                                       ; preds = %74
  %76 = load i32, ptr %1, align 4, !tbaa !5
  %77 = icmp eq i32 %76, 1
  %78 = getelementptr inbounds i8, ptr %5, i64 4
  %79 = getelementptr inbounds i8, ptr %6, i64 4
  %80 = add nsw i32 %76, -1
  %81 = sext i32 %80 to i64
  %82 = getelementptr inbounds %struct.complex, ptr %19, i64 %81
  %83 = getelementptr inbounds i8, ptr %82, i64 4
  %84 = sext i32 %76 to i64
  %85 = getelementptr inbounds %struct.complex, ptr %20, i64 %84
  %86 = getelementptr inbounds i8, ptr %85, i64 4
  %.not1332.not1511 = icmp sgt i32 %76, 2
  %87 = sext i32 %25 to i64
  %88 = sext i32 %22 to i64
  %89 = add nuw i32 %75, 1
  %wide.trip.count1753 = zext i32 %89 to i64
  br i1 %77, label %.lr.ph1542.split.us.preheader, label %.lr.ph1542.split.preheader

.lr.ph1542.split.us.preheader:                    ; preds = %.lr.ph1542
  %invariant.gep2301 = getelementptr i8, ptr %24, i64 8
  %invariant.gep2303 = getelementptr i8, ptr %27, i64 8
  br label %.lr.ph1542.split.us

.lr.ph1542.split.preheader:                       ; preds = %.lr.ph1542
  %invariant.gep1847 = getelementptr %struct.complex, ptr %24, i64 %81
  %invariant.gep1849 = getelementptr %struct.complex, ptr %27, i64 %84
  %invariant.gep1851 = getelementptr %struct.complex, ptr %24, i64 %84
  %wide.trip.count1743 = zext i32 %76 to i64
  %90 = shl nsw i64 %87, 3
  %91 = shl nsw i64 %26, 3
  %92 = getelementptr i8, ptr %10, i64 %90
  %93 = getelementptr i8, ptr %92, i64 %91
  %scevgep2078 = getelementptr i8, ptr %93, i64 16
  %94 = shl nuw nsw i64 %wide.trip.count1753, 3
  %95 = add nsw i64 %94, -8
  %96 = mul i64 %95, %87
  %97 = shl nuw nsw i64 %wide.trip.count1743, 3
  %98 = getelementptr i8, ptr %10, i64 %96
  %99 = getelementptr i8, ptr %98, i64 %91
  %100 = getelementptr i8, ptr %99, i64 %97
  %scevgep2079 = getelementptr i8, ptr %100, i64 -4
  %101 = getelementptr i8, ptr %4, i64 %97
  %scevgep2080 = getelementptr i8, ptr %101, i64 -20
  %102 = shl nsw i64 %88, 3
  %103 = shl nsw i64 %23, 3
  %104 = getelementptr i8, ptr %7, i64 %102
  %105 = getelementptr i8, ptr %104, i64 %103
  %scevgep2081 = getelementptr i8, ptr %105, i64 8
  %106 = mul i64 %95, %88
  %107 = add i64 %106, %103
  %108 = add i64 %107, %97
  %109 = or disjoint i64 %108, 4
  %scevgep2082 = getelementptr i8, ptr %7, i64 %109
  %scevgep2083 = getelementptr i8, ptr %5, i64 8
  %110 = add nsw i64 %97, -12
  %scevgep2084 = getelementptr i8, ptr %5, i64 %110
  %scevgep2085 = getelementptr i8, ptr %6, i64 8
  %scevgep2086 = getelementptr i8, ptr %6, i64 %110
  %111 = getelementptr i8, ptr %10, i64 %90
  %112 = getelementptr i8, ptr %111, i64 %91
  %scevgep2087 = getelementptr i8, ptr %112, i64 20
  %113 = getelementptr i8, ptr %10, i64 %96
  %114 = getelementptr i8, ptr %113, i64 %91
  %scevgep2088 = getelementptr i8, ptr %114, i64 %97
  %scevgep2089 = getelementptr i8, ptr %4, i64 4
  %115 = getelementptr i8, ptr %4, i64 %97
  %scevgep2090 = getelementptr i8, ptr %115, i64 -16
  %116 = getelementptr i8, ptr %7, i64 %102
  %117 = getelementptr i8, ptr %116, i64 %103
  %scevgep2091 = getelementptr i8, ptr %117, i64 12
  %118 = getelementptr i8, ptr %7, i64 %106
  %119 = getelementptr i8, ptr %118, i64 %103
  %120 = getelementptr i8, ptr %119, i64 %97
  %scevgep2092 = getelementptr i8, ptr %120, i64 8
  %scevgep2093 = getelementptr i8, ptr %5, i64 12
  %121 = add nsw i64 %97, -8
  %scevgep2094 = getelementptr i8, ptr %5, i64 %121
  %scevgep2095 = getelementptr i8, ptr %6, i64 12
  %scevgep2096 = getelementptr i8, ptr %6, i64 %121
  %122 = add nsw i64 %wide.trip.count1743, -2
  %invariant.gep2299 = getelementptr i8, ptr %27, i64 8
  %min.iters.check2140 = icmp ult i64 %122, 4
  %bound02097 = icmp ult ptr %scevgep2078, %scevgep2080
  %bound12098 = icmp ugt ptr %scevgep2079, %4
  %found.conflict2099 = and i1 %bound02097, %bound12098
  %stride.check2100 = icmp slt i32 %25, 0
  %123 = or i1 %found.conflict2099, %stride.check2100
  %bound02101 = icmp ult ptr %scevgep2078, %scevgep2082
  %bound12102 = icmp ult ptr %scevgep2081, %scevgep2079
  %found.conflict2103 = and i1 %bound02101, %bound12102
  %124 = or i32 %25, %22
  %125 = icmp slt i32 %124, 0
  %126 = or i1 %found.conflict2103, %125
  %conflict.rdx2106 = or i1 %123, %126
  %bound02107 = icmp ult ptr %scevgep2078, %scevgep2084
  %bound12108 = icmp ult ptr %scevgep2083, %scevgep2079
  %found.conflict2109 = and i1 %bound02107, %bound12108
  %conflict.rdx2111 = or i1 %found.conflict2109, %conflict.rdx2106
  %bound02112 = icmp ult ptr %scevgep2078, %scevgep2086
  %bound12113 = icmp ult ptr %scevgep2085, %scevgep2079
  %found.conflict2114 = and i1 %bound02112, %bound12113
  %conflict.rdx2116 = or i1 %found.conflict2114, %conflict.rdx2111
  %bound02117 = icmp ult ptr %scevgep2087, %scevgep2090
  %bound12118 = icmp ult ptr %scevgep2089, %scevgep2088
  %found.conflict2119 = and i1 %bound02117, %bound12118
  %conflict.rdx2121 = or i1 %found.conflict2119, %conflict.rdx2116
  %bound02122 = icmp ult ptr %scevgep2087, %scevgep2092
  %bound12123 = icmp ult ptr %scevgep2091, %scevgep2088
  %found.conflict2124 = and i1 %bound02122, %bound12123
  %127 = or i32 %25, %22
  %128 = icmp slt i32 %127, 0
  %129 = or i1 %found.conflict2124, %128
  %conflict.rdx2127 = or i1 %conflict.rdx2121, %129
  %bound02128 = icmp ult ptr %scevgep2087, %scevgep2094
  %bound12129 = icmp ult ptr %scevgep2093, %scevgep2088
  %found.conflict2130 = and i1 %bound02128, %bound12129
  %conflict.rdx2132 = or i1 %found.conflict2130, %conflict.rdx2127
  %bound02133 = icmp ult ptr %scevgep2087, %scevgep2096
  %bound12134 = icmp ult ptr %scevgep2095, %scevgep2088
  %found.conflict2135 = and i1 %bound02133, %bound12134
  %conflict.rdx2137 = or i1 %found.conflict2135, %conflict.rdx2132
  %n.vec2143 = and i64 %122, -4
  %ind.end2144 = or disjoint i64 %n.vec2143, 2
  %cmp.n2172 = icmp eq i64 %122, %n.vec2143
  br label %.lr.ph1542.split

.lr.ph1542.split.us:                              ; preds = %.lr.ph1542.split.us.preheader, %.lr.ph1542.split.us
  %indvars.iv1750 = phi i64 [ %indvars.iv.next1751, %.lr.ph1542.split.us ], [ 1, %.lr.ph1542.split.us.preheader ]
  %130 = mul nsw i64 %indvars.iv1750, %87
  %131 = mul nsw i64 %indvars.iv1750, %88
  %132 = load float, ptr %5, align 4, !tbaa !20
  %gep2302 = getelementptr %struct.complex, ptr %invariant.gep2301, i64 %131
  %133 = load float, ptr %78, align 4, !tbaa !22
  %134 = fneg float %133
  %gep2304 = getelementptr %struct.complex, ptr %invariant.gep2303, i64 %130
  %135 = load <2 x float>, ptr %gep2302, align 4, !tbaa !9
  %136 = insertelement <2 x float> poison, float %133, i64 0
  %137 = insertelement <2 x float> %136, float %134, i64 1
  %138 = fmul <2 x float> %135, %137
  %139 = shufflevector <2 x float> %138, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %140 = insertelement <2 x float> poison, float %132, i64 0
  %141 = shufflevector <2 x float> %140, <2 x float> poison, <2 x i32> zeroinitializer
  %142 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %141, <2 x float> %135, <2 x float> %139)
  %143 = load <2 x float>, ptr %gep2304, align 4, !tbaa !9
  %144 = fadd <2 x float> %143, %142
  store <2 x float> %144, ptr %gep2304, align 4, !tbaa !9
  %indvars.iv.next1751 = add nuw nsw i64 %indvars.iv1750, 1
  %exitcond1754.not = icmp eq i64 %indvars.iv.next1751, %wide.trip.count1753
  br i1 %exitcond1754.not, label %.loopexit1334, label %.lr.ph1542.split.us, !llvm.loop !23

.lr.ph1542.split:                                 ; preds = %.lr.ph1542.split.preheader, %.loopexit1337
  %indvars.iv1745 = phi i64 [ 1, %.lr.ph1542.split.preheader ], [ %indvars.iv.next1746, %.loopexit1337 ]
  %145 = mul nsw i64 %indvars.iv1745, %87
  %146 = mul nsw i64 %indvars.iv1745, %88
  %147 = load float, ptr %5, align 4, !tbaa !20
  %148 = getelementptr %struct.complex, ptr %24, i64 %146
  %149 = getelementptr i8, ptr %148, i64 8
  %150 = load float, ptr %78, align 4, !tbaa !22
  %151 = fneg float %150
  %gep2300 = getelementptr %struct.complex, ptr %invariant.gep2299, i64 %145
  %152 = load float, ptr %6, align 4, !tbaa !20
  %153 = getelementptr i8, ptr %148, i64 16
  %154 = load float, ptr %79, align 4, !tbaa !22
  %155 = fneg float %154
  %156 = load <2 x float>, ptr %149, align 4, !tbaa !9
  %157 = insertelement <2 x float> poison, float %150, i64 0
  %158 = insertelement <2 x float> %157, float %151, i64 1
  %159 = fmul <2 x float> %156, %158
  %160 = shufflevector <2 x float> %159, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %161 = insertelement <2 x float> poison, float %147, i64 0
  %162 = shufflevector <2 x float> %161, <2 x float> poison, <2 x i32> zeroinitializer
  %163 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %162, <2 x float> %156, <2 x float> %160)
  %164 = load <2 x float>, ptr %gep2300, align 4, !tbaa !9
  %165 = fadd <2 x float> %163, %164
  %166 = load <2 x float>, ptr %153, align 4, !tbaa !9
  %167 = insertelement <2 x float> poison, float %154, i64 0
  %168 = insertelement <2 x float> %167, float %155, i64 1
  %169 = fmul <2 x float> %166, %168
  %170 = shufflevector <2 x float> %169, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %171 = insertelement <2 x float> poison, float %152, i64 0
  %172 = shufflevector <2 x float> %171, <2 x float> poison, <2 x i32> zeroinitializer
  %173 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %172, <2 x float> %166, <2 x float> %170)
  %174 = fadd <2 x float> %165, %173
  store <2 x float> %174, ptr %gep2300, align 4, !tbaa !9
  %175 = load float, ptr %82, align 4, !tbaa !20
  %gep1848 = getelementptr %struct.complex, ptr %invariant.gep1847, i64 %146
  %176 = load float, ptr %83, align 4, !tbaa !22
  %177 = fneg float %176
  %gep1850 = getelementptr %struct.complex, ptr %invariant.gep1849, i64 %145
  %178 = load float, ptr %85, align 4, !tbaa !20
  %gep1852 = getelementptr %struct.complex, ptr %invariant.gep1851, i64 %146
  %179 = load float, ptr %86, align 4, !tbaa !22
  %180 = fneg float %179
  %181 = load <2 x float>, ptr %gep1848, align 4, !tbaa !9
  %182 = insertelement <2 x float> poison, float %176, i64 0
  %183 = insertelement <2 x float> %182, float %177, i64 1
  %184 = fmul <2 x float> %181, %183
  %185 = shufflevector <2 x float> %184, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %186 = insertelement <2 x float> poison, float %175, i64 0
  %187 = shufflevector <2 x float> %186, <2 x float> poison, <2 x i32> zeroinitializer
  %188 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %187, <2 x float> %181, <2 x float> %185)
  %189 = load <2 x float>, ptr %gep1850, align 4, !tbaa !9
  %190 = fadd <2 x float> %188, %189
  %191 = load <2 x float>, ptr %gep1852, align 4, !tbaa !9
  %192 = insertelement <2 x float> poison, float %179, i64 0
  %193 = insertelement <2 x float> %192, float %180, i64 1
  %194 = fmul <2 x float> %191, %193
  %195 = shufflevector <2 x float> %194, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %196 = insertelement <2 x float> poison, float %178, i64 0
  %197 = shufflevector <2 x float> %196, <2 x float> poison, <2 x i32> zeroinitializer
  %198 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %197, <2 x float> %191, <2 x float> %195)
  %199 = fadd <2 x float> %190, %198
  store <2 x float> %199, ptr %gep1850, align 4, !tbaa !9
  br i1 %.not1332.not1511, label %.lr.ph1514.preheader, label %.loopexit1337

.lr.ph1514.preheader:                             ; preds = %.lr.ph1542.split
  %invariant.gep1839 = getelementptr %struct.complex, ptr %24, i64 %146
  %invariant.gep1841 = getelementptr %struct.complex, ptr %27, i64 %145
  %invariant.gep1843 = getelementptr %struct.complex, ptr %24, i64 %146
  %invariant.gep1845 = getelementptr %struct.complex, ptr %24, i64 %146
  %brmerge = select i1 %min.iters.check2140, i1 true, i1 %conflict.rdx2137
  br i1 %brmerge, label %.lr.ph1514.preheader2273, label %vector.body2146

vector.body2146:                                  ; preds = %.lr.ph1514.preheader, %vector.body2146
  %index2147 = phi i64 [ %index.next2171, %vector.body2146 ], [ 0, %.lr.ph1514.preheader ]
  %offset.idx2148 = or disjoint i64 %index2147, 2
  %200 = or disjoint i64 %index2147, 1
  %201 = getelementptr %struct.complex, ptr %4, i64 %index2147
  %wide.vec2149 = load <8 x float>, ptr %201, align 4, !tbaa !9
  %strided.vec2150 = shufflevector <8 x float> %wide.vec2149, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2151 = shufflevector <8 x float> %wide.vec2149, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %202 = getelementptr %struct.complex, ptr %invariant.gep1839, i64 %200
  %wide.vec2152 = load <8 x float>, ptr %202, align 4, !tbaa !9
  %strided.vec2153 = shufflevector <8 x float> %wide.vec2152, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2154 = shufflevector <8 x float> %wide.vec2152, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %203 = fneg <4 x float> %strided.vec2151
  %204 = fmul <4 x float> %strided.vec2154, %203
  %205 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2150, <4 x float> %strided.vec2153, <4 x float> %204)
  %206 = fmul <4 x float> %strided.vec2153, %strided.vec2151
  %207 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2150, <4 x float> %strided.vec2154, <4 x float> %206)
  %208 = getelementptr %struct.complex, ptr %invariant.gep1841, i64 %offset.idx2148
  %wide.vec2155 = load <8 x float>, ptr %208, align 4, !tbaa !9
  %strided.vec2156 = shufflevector <8 x float> %wide.vec2155, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2157 = shufflevector <8 x float> %wide.vec2155, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %209 = fadd <4 x float> %205, %strided.vec2156
  %210 = fadd <4 x float> %207, %strided.vec2157
  %211 = getelementptr inbounds %struct.complex, ptr %20, i64 %offset.idx2148
  %wide.vec2158 = load <8 x float>, ptr %211, align 4, !tbaa !9
  %strided.vec2159 = shufflevector <8 x float> %wide.vec2158, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2160 = shufflevector <8 x float> %wide.vec2158, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %212 = getelementptr %struct.complex, ptr %invariant.gep1843, i64 %offset.idx2148
  %wide.vec2161 = load <8 x float>, ptr %212, align 4, !tbaa !9
  %strided.vec2162 = shufflevector <8 x float> %wide.vec2161, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2163 = shufflevector <8 x float> %wide.vec2161, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %213 = fneg <4 x float> %strided.vec2160
  %214 = fmul <4 x float> %strided.vec2163, %213
  %215 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2159, <4 x float> %strided.vec2162, <4 x float> %214)
  %216 = fmul <4 x float> %strided.vec2162, %strided.vec2160
  %217 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2159, <4 x float> %strided.vec2163, <4 x float> %216)
  %218 = fadd <4 x float> %209, %215
  %219 = fadd <4 x float> %210, %217
  %220 = or disjoint i64 %index2147, 3
  %221 = getelementptr inbounds %struct.complex, ptr %21, i64 %offset.idx2148
  %wide.vec2164 = load <8 x float>, ptr %221, align 4, !tbaa !9
  %strided.vec2165 = shufflevector <8 x float> %wide.vec2164, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2166 = shufflevector <8 x float> %wide.vec2164, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %222 = getelementptr %struct.complex, ptr %invariant.gep1845, i64 %220
  %wide.vec2167 = load <8 x float>, ptr %222, align 4, !tbaa !9
  %strided.vec2168 = shufflevector <8 x float> %wide.vec2167, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2169 = shufflevector <8 x float> %wide.vec2167, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %223 = fneg <4 x float> %strided.vec2166
  %224 = fmul <4 x float> %strided.vec2169, %223
  %225 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2165, <4 x float> %strided.vec2168, <4 x float> %224)
  %226 = fmul <4 x float> %strided.vec2168, %strided.vec2166
  %227 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2165, <4 x float> %strided.vec2169, <4 x float> %226)
  %228 = fadd <4 x float> %218, %225
  %229 = fadd <4 x float> %219, %227
  %interleaved.vec2170 = shufflevector <4 x float> %228, <4 x float> %229, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec2170, ptr %208, align 4, !tbaa !9
  %index.next2171 = add nuw i64 %index2147, 4
  %230 = icmp eq i64 %index.next2171, %n.vec2143
  br i1 %230, label %middle.block2138, label %vector.body2146, !llvm.loop !24

middle.block2138:                                 ; preds = %vector.body2146
  br i1 %cmp.n2172, label %.loopexit1337, label %.lr.ph1514.preheader2273

.lr.ph1514.preheader2273:                         ; preds = %.lr.ph1514.preheader, %middle.block2138
  %indvars.iv1740.ph = phi i64 [ 2, %.lr.ph1514.preheader ], [ %ind.end2144, %middle.block2138 ]
  br label %.lr.ph1514

.lr.ph1514:                                       ; preds = %.lr.ph1514.preheader2273, %.lr.ph1514
  %indvars.iv1740 = phi i64 [ %indvars.iv.next1741, %.lr.ph1514 ], [ %indvars.iv1740.ph, %.lr.ph1514.preheader2273 ]
  %231 = add nsw i64 %indvars.iv1740, -1
  %232 = getelementptr inbounds %struct.complex, ptr %19, i64 %231
  %233 = load float, ptr %232, align 4, !tbaa !20
  %gep1840 = getelementptr %struct.complex, ptr %invariant.gep1839, i64 %231
  %234 = getelementptr inbounds i8, ptr %232, i64 4
  %235 = load float, ptr %234, align 4, !tbaa !22
  %236 = fneg float %235
  %gep1842 = getelementptr %struct.complex, ptr %invariant.gep1841, i64 %indvars.iv1740
  %237 = getelementptr inbounds %struct.complex, ptr %20, i64 %indvars.iv1740
  %238 = load float, ptr %237, align 4, !tbaa !20
  %gep1844 = getelementptr %struct.complex, ptr %invariant.gep1843, i64 %indvars.iv1740
  %239 = getelementptr inbounds i8, ptr %237, i64 4
  %240 = load float, ptr %239, align 4, !tbaa !22
  %241 = fneg float %240
  %indvars.iv.next1741 = add nuw nsw i64 %indvars.iv1740, 1
  %242 = getelementptr inbounds %struct.complex, ptr %21, i64 %indvars.iv1740
  %243 = load float, ptr %242, align 4, !tbaa !20
  %gep1846 = getelementptr %struct.complex, ptr %invariant.gep1845, i64 %indvars.iv.next1741
  %244 = getelementptr inbounds i8, ptr %242, i64 4
  %245 = load float, ptr %244, align 4, !tbaa !22
  %246 = fneg float %245
  %247 = load <2 x float>, ptr %gep1840, align 4, !tbaa !9
  %248 = insertelement <2 x float> poison, float %235, i64 0
  %249 = insertelement <2 x float> %248, float %236, i64 1
  %250 = fmul <2 x float> %247, %249
  %251 = shufflevector <2 x float> %250, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %252 = insertelement <2 x float> poison, float %233, i64 0
  %253 = shufflevector <2 x float> %252, <2 x float> poison, <2 x i32> zeroinitializer
  %254 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %253, <2 x float> %247, <2 x float> %251)
  %255 = load <2 x float>, ptr %gep1842, align 4, !tbaa !9
  %256 = fadd <2 x float> %254, %255
  %257 = load <2 x float>, ptr %gep1844, align 4, !tbaa !9
  %258 = insertelement <2 x float> poison, float %240, i64 0
  %259 = insertelement <2 x float> %258, float %241, i64 1
  %260 = fmul <2 x float> %257, %259
  %261 = shufflevector <2 x float> %260, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %262 = insertelement <2 x float> poison, float %238, i64 0
  %263 = shufflevector <2 x float> %262, <2 x float> poison, <2 x i32> zeroinitializer
  %264 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %263, <2 x float> %257, <2 x float> %261)
  %265 = fadd <2 x float> %256, %264
  %266 = load <2 x float>, ptr %gep1846, align 4, !tbaa !9
  %267 = insertelement <2 x float> poison, float %245, i64 0
  %268 = insertelement <2 x float> %267, float %246, i64 1
  %269 = fmul <2 x float> %266, %268
  %270 = shufflevector <2 x float> %269, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %271 = insertelement <2 x float> poison, float %243, i64 0
  %272 = shufflevector <2 x float> %271, <2 x float> poison, <2 x i32> zeroinitializer
  %273 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %272, <2 x float> %266, <2 x float> %270)
  %274 = fadd <2 x float> %265, %273
  store <2 x float> %274, ptr %gep1842, align 4, !tbaa !9
  %exitcond1744.not = icmp eq i64 %indvars.iv.next1741, %wide.trip.count1743
  br i1 %exitcond1744.not, label %.loopexit1337, label %.lr.ph1514, !llvm.loop !25

.loopexit1337:                                    ; preds = %.lr.ph1514, %middle.block2138, %.lr.ph1542.split
  %indvars.iv.next1746 = add nuw nsw i64 %indvars.iv1745, 1
  %exitcond1749.not = icmp eq i64 %indvars.iv.next1746, %wide.trip.count1753
  br i1 %exitcond1749.not, label %.loopexit1334, label %.lr.ph1542.split, !llvm.loop !23

275:                                              ; preds = %72
  %276 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #7
  %.not1325 = icmp eq i32 %276, 0
  br i1 %.not1325, label %478, label %277

277:                                              ; preds = %275
  %278 = load i32, ptr %2, align 4, !tbaa !5
  %.not13291605 = icmp slt i32 %278, 1
  br i1 %.not13291605, label %.loopexit1334, label %.lr.ph1612

.lr.ph1612:                                       ; preds = %277
  %279 = load i32, ptr %1, align 4, !tbaa !5
  %280 = icmp eq i32 %279, 1
  %281 = getelementptr inbounds i8, ptr %5, i64 4
  %282 = getelementptr inbounds i8, ptr %4, i64 4
  %283 = add nsw i32 %279, -1
  %284 = sext i32 %283 to i64
  %285 = getelementptr inbounds %struct.complex, ptr %21, i64 %284
  %286 = getelementptr inbounds i8, ptr %285, i64 4
  %287 = sext i32 %279 to i64
  %288 = getelementptr inbounds %struct.complex, ptr %20, i64 %287
  %289 = getelementptr inbounds i8, ptr %288, i64 4
  %.not1330.not1581 = icmp sgt i32 %279, 2
  %290 = sext i32 %25 to i64
  %291 = sext i32 %22 to i64
  %292 = add nuw i32 %278, 1
  %wide.trip.count1768 = zext i32 %292 to i64
  br i1 %280, label %.lr.ph1612.split.us.preheader, label %.lr.ph1612.split.preheader

.lr.ph1612.split.us.preheader:                    ; preds = %.lr.ph1612
  %invariant.gep2307 = getelementptr i8, ptr %24, i64 8
  %invariant.gep2309 = getelementptr i8, ptr %27, i64 8
  br label %.lr.ph1612.split.us

.lr.ph1612.split.preheader:                       ; preds = %.lr.ph1612
  %invariant.gep1861 = getelementptr %struct.complex, ptr %24, i64 %284
  %invariant.gep1863 = getelementptr %struct.complex, ptr %27, i64 %287
  %invariant.gep1865 = getelementptr %struct.complex, ptr %24, i64 %287
  %wide.trip.count1758 = zext i32 %279 to i64
  %293 = shl nsw i64 %290, 3
  %294 = shl nsw i64 %26, 3
  %295 = getelementptr i8, ptr %10, i64 %293
  %296 = getelementptr i8, ptr %295, i64 %294
  %scevgep2174 = getelementptr i8, ptr %296, i64 16
  %297 = shl nuw nsw i64 %wide.trip.count1768, 3
  %298 = add nsw i64 %297, -8
  %299 = mul i64 %298, %290
  %300 = shl nuw nsw i64 %wide.trip.count1758, 3
  %301 = getelementptr i8, ptr %10, i64 %299
  %302 = getelementptr i8, ptr %301, i64 %294
  %303 = getelementptr i8, ptr %302, i64 %300
  %scevgep2175 = getelementptr i8, ptr %303, i64 -4
  %304 = getelementptr i8, ptr %6, i64 %300
  %scevgep2176 = getelementptr i8, ptr %304, i64 -20
  %305 = shl nsw i64 %291, 3
  %306 = shl nsw i64 %23, 3
  %307 = getelementptr i8, ptr %7, i64 %305
  %308 = getelementptr i8, ptr %307, i64 %306
  %scevgep2177 = getelementptr i8, ptr %308, i64 8
  %309 = mul i64 %298, %291
  %310 = add i64 %309, %306
  %311 = add i64 %310, %300
  %312 = or disjoint i64 %311, 4
  %scevgep2178 = getelementptr i8, ptr %7, i64 %312
  %scevgep2179 = getelementptr i8, ptr %5, i64 8
  %313 = add nsw i64 %300, -12
  %scevgep2180 = getelementptr i8, ptr %5, i64 %313
  %scevgep2181 = getelementptr i8, ptr %4, i64 8
  %scevgep2182 = getelementptr i8, ptr %4, i64 %313
  %314 = getelementptr i8, ptr %10, i64 %293
  %315 = getelementptr i8, ptr %314, i64 %294
  %scevgep2183 = getelementptr i8, ptr %315, i64 20
  %316 = getelementptr i8, ptr %10, i64 %299
  %317 = getelementptr i8, ptr %316, i64 %294
  %scevgep2184 = getelementptr i8, ptr %317, i64 %300
  %scevgep2185 = getelementptr i8, ptr %6, i64 4
  %318 = getelementptr i8, ptr %6, i64 %300
  %scevgep2186 = getelementptr i8, ptr %318, i64 -16
  %319 = getelementptr i8, ptr %7, i64 %305
  %320 = getelementptr i8, ptr %319, i64 %306
  %scevgep2187 = getelementptr i8, ptr %320, i64 12
  %321 = getelementptr i8, ptr %7, i64 %309
  %322 = getelementptr i8, ptr %321, i64 %306
  %323 = getelementptr i8, ptr %322, i64 %300
  %scevgep2188 = getelementptr i8, ptr %323, i64 8
  %scevgep2189 = getelementptr i8, ptr %5, i64 12
  %324 = add nsw i64 %300, -8
  %scevgep2190 = getelementptr i8, ptr %5, i64 %324
  %scevgep2191 = getelementptr i8, ptr %4, i64 12
  %scevgep2192 = getelementptr i8, ptr %4, i64 %324
  %325 = add nsw i64 %wide.trip.count1758, -2
  %invariant.gep2305 = getelementptr i8, ptr %27, i64 8
  %min.iters.check2236 = icmp ult i64 %325, 4
  %bound02193 = icmp ult ptr %scevgep2174, %scevgep2176
  %bound12194 = icmp ugt ptr %scevgep2175, %6
  %found.conflict2195 = and i1 %bound02193, %bound12194
  %stride.check2196 = icmp slt i32 %25, 0
  %326 = or i1 %found.conflict2195, %stride.check2196
  %bound02197 = icmp ult ptr %scevgep2174, %scevgep2178
  %bound12198 = icmp ult ptr %scevgep2177, %scevgep2175
  %found.conflict2199 = and i1 %bound02197, %bound12198
  %327 = or i32 %25, %22
  %328 = icmp slt i32 %327, 0
  %329 = or i1 %found.conflict2199, %328
  %conflict.rdx2202 = or i1 %326, %329
  %bound02203 = icmp ult ptr %scevgep2174, %scevgep2180
  %bound12204 = icmp ult ptr %scevgep2179, %scevgep2175
  %found.conflict2205 = and i1 %bound02203, %bound12204
  %conflict.rdx2207 = or i1 %found.conflict2205, %conflict.rdx2202
  %bound02208 = icmp ult ptr %scevgep2174, %scevgep2182
  %bound12209 = icmp ult ptr %scevgep2181, %scevgep2175
  %found.conflict2210 = and i1 %bound02208, %bound12209
  %conflict.rdx2212 = or i1 %found.conflict2210, %conflict.rdx2207
  %bound02213 = icmp ult ptr %scevgep2183, %scevgep2186
  %bound12214 = icmp ult ptr %scevgep2185, %scevgep2184
  %found.conflict2215 = and i1 %bound02213, %bound12214
  %conflict.rdx2217 = or i1 %found.conflict2215, %conflict.rdx2212
  %bound02218 = icmp ult ptr %scevgep2183, %scevgep2188
  %bound12219 = icmp ult ptr %scevgep2187, %scevgep2184
  %found.conflict2220 = and i1 %bound02218, %bound12219
  %330 = or i32 %25, %22
  %331 = icmp slt i32 %330, 0
  %332 = or i1 %found.conflict2220, %331
  %conflict.rdx2223 = or i1 %conflict.rdx2217, %332
  %bound02224 = icmp ult ptr %scevgep2183, %scevgep2190
  %bound12225 = icmp ult ptr %scevgep2189, %scevgep2184
  %found.conflict2226 = and i1 %bound02224, %bound12225
  %conflict.rdx2228 = or i1 %found.conflict2226, %conflict.rdx2223
  %bound02229 = icmp ult ptr %scevgep2183, %scevgep2192
  %bound12230 = icmp ult ptr %scevgep2191, %scevgep2184
  %found.conflict2231 = and i1 %bound02229, %bound12230
  %conflict.rdx2233 = or i1 %found.conflict2231, %conflict.rdx2228
  %n.vec2239 = and i64 %325, -4
  %ind.end2240 = or disjoint i64 %n.vec2239, 2
  %cmp.n2268 = icmp eq i64 %325, %n.vec2239
  br label %.lr.ph1612.split

.lr.ph1612.split.us:                              ; preds = %.lr.ph1612.split.us.preheader, %.lr.ph1612.split.us
  %indvars.iv1765 = phi i64 [ %indvars.iv.next1766, %.lr.ph1612.split.us ], [ 1, %.lr.ph1612.split.us.preheader ]
  %333 = mul nsw i64 %indvars.iv1765, %290
  %334 = mul nsw i64 %indvars.iv1765, %291
  %335 = load float, ptr %5, align 4, !tbaa !20
  %gep2308 = getelementptr %struct.complex, ptr %invariant.gep2307, i64 %334
  %336 = load float, ptr %281, align 4, !tbaa !22
  %337 = fneg float %336
  %gep2310 = getelementptr %struct.complex, ptr %invariant.gep2309, i64 %333
  %338 = load <2 x float>, ptr %gep2308, align 4, !tbaa !9
  %339 = insertelement <2 x float> poison, float %336, i64 0
  %340 = insertelement <2 x float> %339, float %337, i64 1
  %341 = fmul <2 x float> %338, %340
  %342 = shufflevector <2 x float> %341, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %343 = insertelement <2 x float> poison, float %335, i64 0
  %344 = shufflevector <2 x float> %343, <2 x float> poison, <2 x i32> zeroinitializer
  %345 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %344, <2 x float> %338, <2 x float> %342)
  %346 = load <2 x float>, ptr %gep2310, align 4, !tbaa !9
  %347 = fadd <2 x float> %346, %345
  store <2 x float> %347, ptr %gep2310, align 4, !tbaa !9
  %indvars.iv.next1766 = add nuw nsw i64 %indvars.iv1765, 1
  %exitcond1769.not = icmp eq i64 %indvars.iv.next1766, %wide.trip.count1768
  br i1 %exitcond1769.not, label %.loopexit1334, label %.lr.ph1612.split.us, !llvm.loop !26

.lr.ph1612.split:                                 ; preds = %.lr.ph1612.split.preheader, %.loopexit1335
  %indvars.iv1760 = phi i64 [ 1, %.lr.ph1612.split.preheader ], [ %indvars.iv.next1761, %.loopexit1335 ]
  %348 = mul nsw i64 %indvars.iv1760, %290
  %349 = mul nsw i64 %indvars.iv1760, %291
  %350 = load float, ptr %5, align 4, !tbaa !20
  %351 = getelementptr %struct.complex, ptr %24, i64 %349
  %352 = getelementptr i8, ptr %351, i64 8
  %353 = load float, ptr %281, align 4, !tbaa !22
  %354 = fneg float %353
  %gep2306 = getelementptr %struct.complex, ptr %invariant.gep2305, i64 %348
  %355 = load float, ptr %4, align 4, !tbaa !20
  %356 = getelementptr i8, ptr %351, i64 16
  %357 = load float, ptr %282, align 4, !tbaa !22
  %358 = fneg float %357
  %359 = load <2 x float>, ptr %352, align 4, !tbaa !9
  %360 = insertelement <2 x float> poison, float %353, i64 0
  %361 = insertelement <2 x float> %360, float %354, i64 1
  %362 = fmul <2 x float> %359, %361
  %363 = shufflevector <2 x float> %362, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %364 = insertelement <2 x float> poison, float %350, i64 0
  %365 = shufflevector <2 x float> %364, <2 x float> poison, <2 x i32> zeroinitializer
  %366 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %365, <2 x float> %359, <2 x float> %363)
  %367 = load <2 x float>, ptr %gep2306, align 4, !tbaa !9
  %368 = fadd <2 x float> %366, %367
  %369 = load <2 x float>, ptr %356, align 4, !tbaa !9
  %370 = insertelement <2 x float> poison, float %357, i64 0
  %371 = insertelement <2 x float> %370, float %358, i64 1
  %372 = fmul <2 x float> %369, %371
  %373 = shufflevector <2 x float> %372, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %374 = insertelement <2 x float> poison, float %355, i64 0
  %375 = shufflevector <2 x float> %374, <2 x float> poison, <2 x i32> zeroinitializer
  %376 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %375, <2 x float> %369, <2 x float> %373)
  %377 = fadd <2 x float> %368, %376
  store <2 x float> %377, ptr %gep2306, align 4, !tbaa !9
  %378 = load float, ptr %285, align 4, !tbaa !20
  %gep1862 = getelementptr %struct.complex, ptr %invariant.gep1861, i64 %349
  %379 = load float, ptr %286, align 4, !tbaa !22
  %380 = fneg float %379
  %gep1864 = getelementptr %struct.complex, ptr %invariant.gep1863, i64 %348
  %381 = load float, ptr %288, align 4, !tbaa !20
  %gep1866 = getelementptr %struct.complex, ptr %invariant.gep1865, i64 %349
  %382 = load float, ptr %289, align 4, !tbaa !22
  %383 = fneg float %382
  %384 = load <2 x float>, ptr %gep1862, align 4, !tbaa !9
  %385 = insertelement <2 x float> poison, float %379, i64 0
  %386 = insertelement <2 x float> %385, float %380, i64 1
  %387 = fmul <2 x float> %384, %386
  %388 = shufflevector <2 x float> %387, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %389 = insertelement <2 x float> poison, float %378, i64 0
  %390 = shufflevector <2 x float> %389, <2 x float> poison, <2 x i32> zeroinitializer
  %391 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %390, <2 x float> %384, <2 x float> %388)
  %392 = load <2 x float>, ptr %gep1864, align 4, !tbaa !9
  %393 = fadd <2 x float> %391, %392
  %394 = load <2 x float>, ptr %gep1866, align 4, !tbaa !9
  %395 = insertelement <2 x float> poison, float %382, i64 0
  %396 = insertelement <2 x float> %395, float %383, i64 1
  %397 = fmul <2 x float> %394, %396
  %398 = shufflevector <2 x float> %397, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %399 = insertelement <2 x float> poison, float %381, i64 0
  %400 = shufflevector <2 x float> %399, <2 x float> poison, <2 x i32> zeroinitializer
  %401 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %400, <2 x float> %394, <2 x float> %398)
  %402 = fadd <2 x float> %393, %401
  store <2 x float> %402, ptr %gep1864, align 4, !tbaa !9
  br i1 %.not1330.not1581, label %.lr.ph1584.preheader, label %.loopexit1335

.lr.ph1584.preheader:                             ; preds = %.lr.ph1612.split
  %invariant.gep1853 = getelementptr %struct.complex, ptr %24, i64 %349
  %invariant.gep1855 = getelementptr %struct.complex, ptr %27, i64 %348
  %invariant.gep1857 = getelementptr %struct.complex, ptr %24, i64 %349
  %invariant.gep1859 = getelementptr %struct.complex, ptr %24, i64 %349
  %brmerge2315 = select i1 %min.iters.check2236, i1 true, i1 %conflict.rdx2233
  br i1 %brmerge2315, label %.lr.ph1584.preheader2270, label %vector.body2242

vector.body2242:                                  ; preds = %.lr.ph1584.preheader, %vector.body2242
  %index2243 = phi i64 [ %index.next2267, %vector.body2242 ], [ 0, %.lr.ph1584.preheader ]
  %offset.idx2244 = or disjoint i64 %index2243, 2
  %403 = or disjoint i64 %index2243, 1
  %404 = getelementptr %struct.complex, ptr %6, i64 %index2243
  %wide.vec2245 = load <8 x float>, ptr %404, align 4, !tbaa !9
  %strided.vec2246 = shufflevector <8 x float> %wide.vec2245, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2247 = shufflevector <8 x float> %wide.vec2245, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %405 = getelementptr %struct.complex, ptr %invariant.gep1853, i64 %403
  %wide.vec2248 = load <8 x float>, ptr %405, align 4, !tbaa !9
  %strided.vec2249 = shufflevector <8 x float> %wide.vec2248, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2250 = shufflevector <8 x float> %wide.vec2248, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %406 = fneg <4 x float> %strided.vec2247
  %407 = fmul <4 x float> %strided.vec2250, %406
  %408 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2246, <4 x float> %strided.vec2249, <4 x float> %407)
  %409 = fmul <4 x float> %strided.vec2249, %strided.vec2247
  %410 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2246, <4 x float> %strided.vec2250, <4 x float> %409)
  %411 = getelementptr %struct.complex, ptr %invariant.gep1855, i64 %offset.idx2244
  %wide.vec2251 = load <8 x float>, ptr %411, align 4, !tbaa !9
  %strided.vec2252 = shufflevector <8 x float> %wide.vec2251, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2253 = shufflevector <8 x float> %wide.vec2251, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %412 = fadd <4 x float> %408, %strided.vec2252
  %413 = fadd <4 x float> %410, %strided.vec2253
  %414 = getelementptr inbounds %struct.complex, ptr %20, i64 %offset.idx2244
  %wide.vec2254 = load <8 x float>, ptr %414, align 4, !tbaa !9
  %strided.vec2255 = shufflevector <8 x float> %wide.vec2254, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2256 = shufflevector <8 x float> %wide.vec2254, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %415 = getelementptr %struct.complex, ptr %invariant.gep1857, i64 %offset.idx2244
  %wide.vec2257 = load <8 x float>, ptr %415, align 4, !tbaa !9
  %strided.vec2258 = shufflevector <8 x float> %wide.vec2257, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2259 = shufflevector <8 x float> %wide.vec2257, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %416 = fneg <4 x float> %strided.vec2256
  %417 = fmul <4 x float> %strided.vec2259, %416
  %418 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2255, <4 x float> %strided.vec2258, <4 x float> %417)
  %419 = fmul <4 x float> %strided.vec2258, %strided.vec2256
  %420 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2255, <4 x float> %strided.vec2259, <4 x float> %419)
  %421 = fadd <4 x float> %412, %418
  %422 = fadd <4 x float> %413, %420
  %423 = or disjoint i64 %index2243, 3
  %424 = getelementptr inbounds %struct.complex, ptr %19, i64 %offset.idx2244
  %wide.vec2260 = load <8 x float>, ptr %424, align 4, !tbaa !9
  %strided.vec2261 = shufflevector <8 x float> %wide.vec2260, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2262 = shufflevector <8 x float> %wide.vec2260, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %425 = getelementptr %struct.complex, ptr %invariant.gep1859, i64 %423
  %wide.vec2263 = load <8 x float>, ptr %425, align 4, !tbaa !9
  %strided.vec2264 = shufflevector <8 x float> %wide.vec2263, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2265 = shufflevector <8 x float> %wide.vec2263, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %426 = fneg <4 x float> %strided.vec2262
  %427 = fmul <4 x float> %strided.vec2265, %426
  %428 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2261, <4 x float> %strided.vec2264, <4 x float> %427)
  %429 = fmul <4 x float> %strided.vec2264, %strided.vec2262
  %430 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2261, <4 x float> %strided.vec2265, <4 x float> %429)
  %431 = fadd <4 x float> %421, %428
  %432 = fadd <4 x float> %422, %430
  %interleaved.vec2266 = shufflevector <4 x float> %431, <4 x float> %432, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec2266, ptr %411, align 4, !tbaa !9
  %index.next2267 = add nuw i64 %index2243, 4
  %433 = icmp eq i64 %index.next2267, %n.vec2239
  br i1 %433, label %middle.block2234, label %vector.body2242, !llvm.loop !27

middle.block2234:                                 ; preds = %vector.body2242
  br i1 %cmp.n2268, label %.loopexit1335, label %.lr.ph1584.preheader2270

.lr.ph1584.preheader2270:                         ; preds = %.lr.ph1584.preheader, %middle.block2234
  %indvars.iv1755.ph = phi i64 [ 2, %.lr.ph1584.preheader ], [ %ind.end2240, %middle.block2234 ]
  br label %.lr.ph1584

.lr.ph1584:                                       ; preds = %.lr.ph1584.preheader2270, %.lr.ph1584
  %indvars.iv1755 = phi i64 [ %indvars.iv.next1756, %.lr.ph1584 ], [ %indvars.iv1755.ph, %.lr.ph1584.preheader2270 ]
  %434 = add nsw i64 %indvars.iv1755, -1
  %435 = getelementptr inbounds %struct.complex, ptr %21, i64 %434
  %436 = load float, ptr %435, align 4, !tbaa !20
  %gep1854 = getelementptr %struct.complex, ptr %invariant.gep1853, i64 %434
  %437 = getelementptr inbounds i8, ptr %435, i64 4
  %438 = load float, ptr %437, align 4, !tbaa !22
  %439 = fneg float %438
  %gep1856 = getelementptr %struct.complex, ptr %invariant.gep1855, i64 %indvars.iv1755
  %440 = getelementptr inbounds %struct.complex, ptr %20, i64 %indvars.iv1755
  %441 = load float, ptr %440, align 4, !tbaa !20
  %gep1858 = getelementptr %struct.complex, ptr %invariant.gep1857, i64 %indvars.iv1755
  %442 = getelementptr inbounds i8, ptr %440, i64 4
  %443 = load float, ptr %442, align 4, !tbaa !22
  %444 = fneg float %443
  %indvars.iv.next1756 = add nuw nsw i64 %indvars.iv1755, 1
  %445 = getelementptr inbounds %struct.complex, ptr %19, i64 %indvars.iv1755
  %446 = load float, ptr %445, align 4, !tbaa !20
  %gep1860 = getelementptr %struct.complex, ptr %invariant.gep1859, i64 %indvars.iv.next1756
  %447 = getelementptr inbounds i8, ptr %445, i64 4
  %448 = load float, ptr %447, align 4, !tbaa !22
  %449 = fneg float %448
  %450 = load <2 x float>, ptr %gep1854, align 4, !tbaa !9
  %451 = insertelement <2 x float> poison, float %438, i64 0
  %452 = insertelement <2 x float> %451, float %439, i64 1
  %453 = fmul <2 x float> %450, %452
  %454 = shufflevector <2 x float> %453, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %455 = insertelement <2 x float> poison, float %436, i64 0
  %456 = shufflevector <2 x float> %455, <2 x float> poison, <2 x i32> zeroinitializer
  %457 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %456, <2 x float> %450, <2 x float> %454)
  %458 = load <2 x float>, ptr %gep1856, align 4, !tbaa !9
  %459 = fadd <2 x float> %457, %458
  %460 = load <2 x float>, ptr %gep1858, align 4, !tbaa !9
  %461 = insertelement <2 x float> poison, float %443, i64 0
  %462 = insertelement <2 x float> %461, float %444, i64 1
  %463 = fmul <2 x float> %460, %462
  %464 = shufflevector <2 x float> %463, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %465 = insertelement <2 x float> poison, float %441, i64 0
  %466 = shufflevector <2 x float> %465, <2 x float> poison, <2 x i32> zeroinitializer
  %467 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %466, <2 x float> %460, <2 x float> %464)
  %468 = fadd <2 x float> %459, %467
  %469 = load <2 x float>, ptr %gep1860, align 4, !tbaa !9
  %470 = insertelement <2 x float> poison, float %448, i64 0
  %471 = insertelement <2 x float> %470, float %449, i64 1
  %472 = fmul <2 x float> %469, %471
  %473 = shufflevector <2 x float> %472, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %474 = insertelement <2 x float> poison, float %446, i64 0
  %475 = shufflevector <2 x float> %474, <2 x float> poison, <2 x i32> zeroinitializer
  %476 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %475, <2 x float> %469, <2 x float> %473)
  %477 = fadd <2 x float> %468, %476
  store <2 x float> %477, ptr %gep1856, align 4, !tbaa !9
  %exitcond1759.not = icmp eq i64 %indvars.iv.next1756, %wide.trip.count1758
  br i1 %exitcond1759.not, label %.loopexit1335, label %.lr.ph1584, !llvm.loop !28

.loopexit1335:                                    ; preds = %.lr.ph1584, %middle.block2234, %.lr.ph1612.split
  %indvars.iv.next1761 = add nuw nsw i64 %indvars.iv1760, 1
  %exitcond1764.not = icmp eq i64 %indvars.iv.next1761, %wide.trip.count1768
  br i1 %exitcond1764.not, label %.loopexit1334, label %.lr.ph1612.split, !llvm.loop !26

478:                                              ; preds = %275
  %479 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #7
  %.not1326 = icmp eq i32 %479, 0
  br i1 %.not1326, label %.loopexit1334, label %480

480:                                              ; preds = %478
  %481 = load i32, ptr %2, align 4, !tbaa !5
  %invariant.gep1643 = getelementptr i8, ptr %6, i64 -16
  %.not13271645 = icmp slt i32 %481, 1
  br i1 %.not13271645, label %.loopexit1334, label %.lr.ph1648

.lr.ph1648:                                       ; preds = %480
  %482 = getelementptr inbounds i8, ptr %14, i64 4
  %483 = getelementptr inbounds i8, ptr %13, i64 4
  %484 = getelementptr inbounds i8, ptr %16, i64 4
  %485 = getelementptr inbounds i8, ptr %15, i64 4
  %486 = getelementptr inbounds i8, ptr %17, i64 4
  %487 = getelementptr inbounds i8, ptr %18, i64 4
  %488 = sext i32 %25 to i64
  %489 = sext i32 %22 to i64
  %490 = add nuw i32 %481, 1
  %wide.trip.count1778 = zext i32 %490 to i64
  %invariant.gep2311 = getelementptr i8, ptr %27, i64 8
  %invariant.gep2313 = getelementptr i8, ptr %27, i64 8
  br label %491

491:                                              ; preds = %.lr.ph1648, %.loopexit
  %indvars.iv1775 = phi i64 [ 1, %.lr.ph1648 ], [ %indvars.iv.next1776, %.loopexit ]
  %492 = load i32, ptr %1, align 4, !tbaa !5
  %493 = icmp eq i32 %492, 1
  %494 = mul nsw i64 %indvars.iv1775, %488
  %495 = call <2 x float> @Cf(ptr noundef %5)
  %.sroa.015.0.vec.extract = extractelement <2 x float> %495, i64 0
  %.sroa.015.4.vec.extract = extractelement <2 x float> %495, i64 1
  %496 = fneg float %.sroa.015.4.vec.extract
  %497 = mul nsw i64 %indvars.iv1775, %489
  %498 = getelementptr %struct.complex, ptr %24, i64 %497
  %499 = getelementptr i8, ptr %498, i64 8
  br i1 %493, label %500, label %516

500:                                              ; preds = %491
  %501 = call ptr @_pCf(ptr noundef nonnull %13)
  %502 = getelementptr inbounds i8, ptr %501, i64 4
  store float %.sroa.015.0.vec.extract, ptr %501, align 4
  store float %496, ptr %502, align 4
  %503 = load float, ptr %13, align 8, !tbaa !20
  %504 = load float, ptr %483, align 4, !tbaa !22
  %505 = fneg float %504
  %gep2314 = getelementptr %struct.complex, ptr %invariant.gep2313, i64 %494
  %506 = load <2 x float>, ptr %499, align 4, !tbaa !9
  %507 = insertelement <2 x float> poison, float %504, i64 0
  %508 = insertelement <2 x float> %507, float %505, i64 1
  %509 = fmul <2 x float> %506, %508
  %510 = shufflevector <2 x float> %509, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %511 = insertelement <2 x float> poison, float %503, i64 0
  %512 = shufflevector <2 x float> %511, <2 x float> poison, <2 x i32> zeroinitializer
  %513 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %512, <2 x float> %506, <2 x float> %510)
  %514 = load <2 x float>, ptr %gep2314, align 4, !tbaa !9
  %515 = fadd <2 x float> %514, %513
  store <2 x float> %515, ptr %gep2314, align 4, !tbaa !9
  br label %.loopexit

516:                                              ; preds = %491
  %517 = call ptr @_pCf(ptr noundef nonnull %14)
  %518 = getelementptr inbounds i8, ptr %517, i64 4
  store float %.sroa.015.0.vec.extract, ptr %517, align 4
  store float %496, ptr %518, align 4
  %519 = load float, ptr %14, align 8, !tbaa !20
  %520 = load float, ptr %482, align 4, !tbaa !22
  %521 = fneg float %520
  %522 = load <2 x float>, ptr %499, align 4, !tbaa !9
  %523 = insertelement <2 x float> poison, float %520, i64 0
  %524 = insertelement <2 x float> %523, float %521, i64 1
  %525 = fmul <2 x float> %522, %524
  %526 = shufflevector <2 x float> %525, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %527 = insertelement <2 x float> poison, float %519, i64 0
  %528 = shufflevector <2 x float> %527, <2 x float> poison, <2 x i32> zeroinitializer
  %529 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %528, <2 x float> %522, <2 x float> %526)
  store <2 x float> %529, ptr %13, align 8, !tbaa !9
  %gep2312 = getelementptr %struct.complex, ptr %invariant.gep2311, i64 %494
  %530 = getelementptr i8, ptr %498, i64 16
  %531 = load <2 x float>, ptr %gep2312, align 4, !tbaa !9
  %532 = fadd <2 x float> %529, %531
  %533 = call <2 x float> @Cf(ptr noundef %4)
  %.sroa.013.0.vec.extract = extractelement <2 x float> %533, i64 0
  %.sroa.013.4.vec.extract = extractelement <2 x float> %533, i64 1
  %534 = fneg float %.sroa.013.4.vec.extract
  %535 = call ptr @_pCf(ptr noundef nonnull %16)
  %536 = getelementptr inbounds i8, ptr %535, i64 4
  store float %.sroa.013.0.vec.extract, ptr %535, align 4
  store float %534, ptr %536, align 4
  %537 = load float, ptr %16, align 8, !tbaa !20
  %538 = load float, ptr %484, align 4, !tbaa !22
  %539 = fneg float %538
  %540 = load <2 x float>, ptr %530, align 4, !tbaa !9
  %541 = insertelement <2 x float> poison, float %538, i64 0
  %542 = insertelement <2 x float> %541, float %539, i64 1
  %543 = fmul <2 x float> %540, %542
  %544 = shufflevector <2 x float> %543, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %545 = insertelement <2 x float> poison, float %537, i64 0
  %546 = shufflevector <2 x float> %545, <2 x float> poison, <2 x i32> zeroinitializer
  %547 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %546, <2 x float> %540, <2 x float> %544)
  store <2 x float> %547, ptr %15, align 8, !tbaa !9
  %548 = fadd <2 x float> %532, %547
  store <2 x float> %548, ptr %gep2312, align 4, !tbaa !9
  %549 = load i32, ptr %1, align 4, !tbaa !5
  %550 = sext i32 %549 to i64
  %gep1644 = getelementptr %struct.complex, ptr %invariant.gep1643, i64 %550
  %551 = call <2 x float> @Cf(ptr noundef %gep1644)
  %.sroa.012.0.vec.extract = extractelement <2 x float> %551, i64 0
  %.sroa.012.4.vec.extract = extractelement <2 x float> %551, i64 1
  %552 = fneg float %.sroa.012.4.vec.extract
  %553 = call ptr @_pCf(ptr noundef nonnull %14)
  %554 = getelementptr inbounds i8, ptr %553, i64 4
  store float %.sroa.012.0.vec.extract, ptr %553, align 4
  store float %552, ptr %554, align 4
  %555 = load i32, ptr %1, align 4, !tbaa !5
  %556 = trunc nsw i64 %497 to i32
  %557 = add i32 %556, -1
  %558 = add i32 %557, %555
  %559 = load float, ptr %14, align 8, !tbaa !20
  %560 = sext i32 %558 to i64
  %561 = getelementptr inbounds %struct.complex, ptr %24, i64 %560
  %562 = load float, ptr %482, align 4, !tbaa !22
  %563 = fneg float %562
  %564 = load <2 x float>, ptr %561, align 4, !tbaa !9
  %565 = insertelement <2 x float> poison, float %562, i64 0
  %566 = insertelement <2 x float> %565, float %563, i64 1
  %567 = fmul <2 x float> %564, %566
  %568 = shufflevector <2 x float> %567, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %569 = insertelement <2 x float> poison, float %559, i64 0
  %570 = shufflevector <2 x float> %569, <2 x float> poison, <2 x i32> zeroinitializer
  %571 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %570, <2 x float> %564, <2 x float> %568)
  store <2 x float> %571, ptr %13, align 8, !tbaa !9
  %572 = getelementptr %struct.complex, ptr %27, i64 %494
  %573 = getelementptr %struct.complex, ptr %572, i64 %550
  %574 = sext i32 %555 to i64
  %575 = getelementptr inbounds %struct.complex, ptr %20, i64 %574
  %576 = getelementptr %struct.complex, ptr %24, i64 %497
  %577 = load <2 x float>, ptr %573, align 4, !tbaa !9
  %578 = fadd <2 x float> %571, %577
  %579 = call <2 x float> @Cf(ptr noundef nonnull %575)
  %.sroa.011.0.vec.extract = extractelement <2 x float> %579, i64 0
  %.sroa.011.4.vec.extract = extractelement <2 x float> %579, i64 1
  %580 = fneg float %.sroa.011.4.vec.extract
  %581 = call ptr @_pCf(ptr noundef nonnull %16)
  %582 = getelementptr inbounds i8, ptr %581, i64 4
  store float %.sroa.011.0.vec.extract, ptr %581, align 4
  store float %580, ptr %582, align 4
  %583 = load i32, ptr %1, align 4, !tbaa !5
  %584 = sext i32 %583 to i64
  %585 = load float, ptr %16, align 8, !tbaa !20
  %586 = getelementptr %struct.complex, ptr %576, i64 %584
  %587 = load float, ptr %484, align 4, !tbaa !22
  %588 = fneg float %587
  %589 = load <2 x float>, ptr %586, align 4, !tbaa !9
  %590 = insertelement <2 x float> poison, float %587, i64 0
  %591 = insertelement <2 x float> %590, float %588, i64 1
  %592 = fmul <2 x float> %589, %591
  %593 = shufflevector <2 x float> %592, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %594 = insertelement <2 x float> poison, float %585, i64 0
  %595 = shufflevector <2 x float> %594, <2 x float> poison, <2 x i32> zeroinitializer
  %596 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %595, <2 x float> %589, <2 x float> %593)
  store <2 x float> %596, ptr %15, align 8, !tbaa !9
  %597 = fadd <2 x float> %578, %596
  store <2 x float> %597, ptr %573, align 4, !tbaa !9
  %.not1328.not1639 = icmp sgt i32 %583, 2
  br i1 %.not1328.not1639, label %.lr.ph1642.preheader, label %.loopexit

.lr.ph1642.preheader:                             ; preds = %516
  %wide.trip.count1773 = zext nneg i32 %583 to i64
  %invariant.gep1867 = getelementptr %struct.complex, ptr %24, i64 %497
  %invariant.gep1869 = getelementptr %struct.complex, ptr %27, i64 %494
  %invariant.gep1871 = getelementptr %struct.complex, ptr %24, i64 %497
  %invariant.gep1873 = getelementptr %struct.complex, ptr %24, i64 %497
  br label %.lr.ph1642

.lr.ph1642:                                       ; preds = %.lr.ph1642.preheader, %.lr.ph1642
  %indvars.iv1770 = phi i64 [ 2, %.lr.ph1642.preheader ], [ %indvars.iv.next1771, %.lr.ph1642 ]
  %598 = add nsw i64 %indvars.iv1770, -1
  %599 = getelementptr inbounds %struct.complex, ptr %21, i64 %598
  %600 = call <2 x float> @Cf(ptr noundef nonnull %599)
  %.sroa.010.0.vec.extract = extractelement <2 x float> %600, i64 0
  %.sroa.010.4.vec.extract = extractelement <2 x float> %600, i64 1
  %601 = fneg float %.sroa.010.4.vec.extract
  %602 = call ptr @_pCf(ptr noundef nonnull %15)
  %603 = getelementptr inbounds i8, ptr %602, i64 4
  store float %.sroa.010.0.vec.extract, ptr %602, align 4
  store float %601, ptr %603, align 4
  %604 = load float, ptr %15, align 8, !tbaa !20
  %gep1868 = getelementptr %struct.complex, ptr %invariant.gep1867, i64 %598
  %605 = load float, ptr %485, align 4, !tbaa !22
  %606 = fneg float %605
  %607 = load <2 x float>, ptr %gep1868, align 4, !tbaa !9
  %608 = insertelement <2 x float> poison, float %605, i64 0
  %609 = insertelement <2 x float> %608, float %606, i64 1
  %610 = fmul <2 x float> %607, %609
  %611 = shufflevector <2 x float> %610, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %612 = insertelement <2 x float> poison, float %604, i64 0
  %613 = shufflevector <2 x float> %612, <2 x float> poison, <2 x i32> zeroinitializer
  %614 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %613, <2 x float> %607, <2 x float> %611)
  store <2 x float> %614, ptr %14, align 8, !tbaa !9
  %gep1870 = getelementptr %struct.complex, ptr %invariant.gep1869, i64 %indvars.iv1770
  %615 = load <2 x float>, ptr %gep1870, align 4, !tbaa !9
  %616 = fadd <2 x float> %614, %615
  store <2 x float> %616, ptr %13, align 8, !tbaa !9
  %617 = getelementptr inbounds %struct.complex, ptr %20, i64 %indvars.iv1770
  %618 = call <2 x float> @Cf(ptr noundef nonnull %617)
  %.sroa.09.0.vec.extract = extractelement <2 x float> %618, i64 0
  %.sroa.09.4.vec.extract = extractelement <2 x float> %618, i64 1
  %619 = fneg float %.sroa.09.4.vec.extract
  %620 = call ptr @_pCf(ptr noundef nonnull %17)
  %621 = getelementptr inbounds i8, ptr %620, i64 4
  store float %.sroa.09.0.vec.extract, ptr %620, align 4
  store float %619, ptr %621, align 4
  %622 = load float, ptr %17, align 4, !tbaa !20
  %gep1872 = getelementptr %struct.complex, ptr %invariant.gep1871, i64 %indvars.iv1770
  %623 = load float, ptr %486, align 4, !tbaa !22
  %624 = fneg float %623
  %625 = load <2 x float>, ptr %gep1872, align 4, !tbaa !9
  %626 = insertelement <2 x float> poison, float %623, i64 0
  %627 = insertelement <2 x float> %626, float %624, i64 1
  %628 = fmul <2 x float> %625, %627
  %629 = shufflevector <2 x float> %628, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %630 = insertelement <2 x float> poison, float %622, i64 0
  %631 = shufflevector <2 x float> %630, <2 x float> poison, <2 x i32> zeroinitializer
  %632 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %631, <2 x float> %625, <2 x float> %629)
  store <2 x float> %632, ptr %16, align 8, !tbaa !9
  %633 = getelementptr inbounds %struct.complex, ptr %19, i64 %indvars.iv1770
  %indvars.iv.next1771 = add nuw nsw i64 %indvars.iv1770, 1
  %gep1874 = getelementptr %struct.complex, ptr %invariant.gep1873, i64 %indvars.iv.next1771
  %634 = load <2 x float>, ptr %13, align 8, !tbaa !9
  %635 = fadd <2 x float> %632, %634
  %636 = call <2 x float> @Cf(ptr noundef nonnull %633)
  %.sroa.08.0.vec.extract = extractelement <2 x float> %636, i64 0
  %.sroa.08.4.vec.extract = extractelement <2 x float> %636, i64 1
  %637 = fneg float %.sroa.08.4.vec.extract
  %638 = call ptr @_pCf(ptr noundef nonnull %18)
  %639 = getelementptr inbounds i8, ptr %638, i64 4
  store float %.sroa.08.0.vec.extract, ptr %638, align 4
  store float %637, ptr %639, align 4
  %640 = load float, ptr %18, align 4, !tbaa !20
  %641 = load float, ptr %487, align 4, !tbaa !22
  %642 = load <2 x float>, ptr %gep1874, align 4, !tbaa !9
  %643 = fneg float %641
  %644 = insertelement <2 x float> poison, float %641, i64 0
  %645 = insertelement <2 x float> %644, float %643, i64 1
  %646 = fmul <2 x float> %642, %645
  %647 = shufflevector <2 x float> %646, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %648 = insertelement <2 x float> poison, float %640, i64 0
  %649 = shufflevector <2 x float> %648, <2 x float> poison, <2 x i32> zeroinitializer
  %650 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %649, <2 x float> %642, <2 x float> %647)
  %651 = fadd <2 x float> %635, %650
  store <2 x float> %651, ptr %gep1870, align 4, !tbaa !9
  %exitcond1774.not = icmp eq i64 %indvars.iv.next1771, %wide.trip.count1773
  br i1 %exitcond1774.not, label %.loopexit, label %.lr.ph1642, !llvm.loop !29

.loopexit:                                        ; preds = %.lr.ph1642, %516, %500
  %indvars.iv.next1776 = add nuw nsw i64 %indvars.iv1775, 1
  %exitcond1779.not = icmp eq i64 %indvars.iv.next1776, %wide.trip.count1778
  br i1 %exitcond1779.not, label %.loopexit1334, label %491, !llvm.loop !30

652:                                              ; preds = %.loopexit1345
  %653 = fcmp oeq float %70, -1.000000e+00
  br i1 %653, label %654, label %.loopexit1334

654:                                              ; preds = %652
  %655 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #7
  %.not1315 = icmp eq i32 %655, 0
  br i1 %.not1315, label %857, label %656

656:                                              ; preds = %654
  %657 = load i32, ptr %2, align 4, !tbaa !5
  %.not13221388 = icmp slt i32 %657, 1
  br i1 %.not13221388, label %.loopexit1334, label %.lr.ph1395

.lr.ph1395:                                       ; preds = %656
  %658 = load i32, ptr %1, align 4, !tbaa !5
  %659 = icmp eq i32 %658, 1
  %660 = getelementptr inbounds i8, ptr %5, i64 4
  %661 = getelementptr inbounds i8, ptr %6, i64 4
  %662 = add nsw i32 %658, -1
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds %struct.complex, ptr %19, i64 %663
  %665 = getelementptr inbounds i8, ptr %664, i64 4
  %666 = sext i32 %658 to i64
  %667 = getelementptr inbounds %struct.complex, ptr %20, i64 %666
  %668 = getelementptr inbounds i8, ptr %667, i64 4
  %.not1323.not1367 = icmp sgt i32 %658, 2
  %669 = sext i32 %25 to i64
  %670 = sext i32 %22 to i64
  %671 = add nuw i32 %657, 1
  %wide.trip.count1713 = zext i32 %671 to i64
  br i1 %659, label %.lr.ph1395.split.us.preheader, label %.lr.ph1395.split.preheader

.lr.ph1395.split.us.preheader:                    ; preds = %.lr.ph1395
  %invariant.gep2285 = getelementptr i8, ptr %24, i64 8
  %invariant.gep2287 = getelementptr i8, ptr %27, i64 8
  br label %.lr.ph1395.split.us

.lr.ph1395.split.preheader:                       ; preds = %.lr.ph1395
  %invariant.gep1811 = getelementptr %struct.complex, ptr %24, i64 %663
  %invariant.gep1813 = getelementptr %struct.complex, ptr %27, i64 %666
  %invariant.gep1815 = getelementptr %struct.complex, ptr %24, i64 %666
  %wide.trip.count1703 = zext i32 %658 to i64
  %672 = shl nsw i64 %669, 3
  %673 = shl nsw i64 %26, 3
  %674 = getelementptr i8, ptr %10, i64 %672
  %675 = getelementptr i8, ptr %674, i64 %673
  %scevgep1891 = getelementptr i8, ptr %675, i64 16
  %676 = shl nuw nsw i64 %wide.trip.count1713, 3
  %677 = add nsw i64 %676, -8
  %678 = mul i64 %677, %669
  %679 = shl nuw nsw i64 %wide.trip.count1703, 3
  %680 = getelementptr i8, ptr %10, i64 %678
  %681 = getelementptr i8, ptr %680, i64 %673
  %682 = getelementptr i8, ptr %681, i64 %679
  %scevgep1892 = getelementptr i8, ptr %682, i64 -4
  %683 = getelementptr i8, ptr %4, i64 %679
  %scevgep1893 = getelementptr i8, ptr %683, i64 -20
  %684 = shl nsw i64 %670, 3
  %685 = shl nsw i64 %23, 3
  %686 = getelementptr i8, ptr %7, i64 %684
  %687 = getelementptr i8, ptr %686, i64 %685
  %scevgep1894 = getelementptr i8, ptr %687, i64 8
  %688 = mul i64 %677, %670
  %689 = add i64 %688, %685
  %690 = add i64 %689, %679
  %691 = or disjoint i64 %690, 4
  %scevgep1895 = getelementptr i8, ptr %7, i64 %691
  %scevgep1896 = getelementptr i8, ptr %5, i64 8
  %692 = add nsw i64 %679, -12
  %scevgep1897 = getelementptr i8, ptr %5, i64 %692
  %scevgep1898 = getelementptr i8, ptr %6, i64 8
  %scevgep1899 = getelementptr i8, ptr %6, i64 %692
  %693 = getelementptr i8, ptr %10, i64 %672
  %694 = getelementptr i8, ptr %693, i64 %673
  %scevgep1900 = getelementptr i8, ptr %694, i64 20
  %695 = getelementptr i8, ptr %10, i64 %678
  %696 = getelementptr i8, ptr %695, i64 %673
  %scevgep1901 = getelementptr i8, ptr %696, i64 %679
  %scevgep1902 = getelementptr i8, ptr %4, i64 4
  %697 = getelementptr i8, ptr %4, i64 %679
  %scevgep1903 = getelementptr i8, ptr %697, i64 -16
  %698 = getelementptr i8, ptr %7, i64 %684
  %699 = getelementptr i8, ptr %698, i64 %685
  %scevgep1904 = getelementptr i8, ptr %699, i64 12
  %700 = getelementptr i8, ptr %7, i64 %688
  %701 = getelementptr i8, ptr %700, i64 %685
  %702 = getelementptr i8, ptr %701, i64 %679
  %scevgep1905 = getelementptr i8, ptr %702, i64 8
  %scevgep1906 = getelementptr i8, ptr %5, i64 12
  %703 = add nsw i64 %679, -8
  %scevgep1907 = getelementptr i8, ptr %5, i64 %703
  %scevgep1908 = getelementptr i8, ptr %6, i64 12
  %scevgep1909 = getelementptr i8, ptr %6, i64 %703
  %704 = add nsw i64 %wide.trip.count1703, -2
  %invariant.gep2283 = getelementptr i8, ptr %27, i64 8
  %min.iters.check1948 = icmp ult i64 %704, 4
  %bound0 = icmp ult ptr %scevgep1891, %scevgep1893
  %bound1 = icmp ugt ptr %scevgep1892, %4
  %found.conflict = and i1 %bound0, %bound1
  %stride.check = icmp slt i32 %25, 0
  %705 = or i1 %found.conflict, %stride.check
  %bound01910 = icmp ult ptr %scevgep1891, %scevgep1895
  %bound11911 = icmp ult ptr %scevgep1894, %scevgep1892
  %found.conflict1912 = and i1 %bound01910, %bound11911
  %706 = or i32 %25, %22
  %707 = icmp slt i32 %706, 0
  %708 = or i1 %found.conflict1912, %707
  %conflict.rdx = or i1 %705, %708
  %bound01915 = icmp ult ptr %scevgep1891, %scevgep1897
  %bound11916 = icmp ult ptr %scevgep1896, %scevgep1892
  %found.conflict1917 = and i1 %bound01915, %bound11916
  %conflict.rdx1919 = or i1 %found.conflict1917, %conflict.rdx
  %bound01920 = icmp ult ptr %scevgep1891, %scevgep1899
  %bound11921 = icmp ult ptr %scevgep1898, %scevgep1892
  %found.conflict1922 = and i1 %bound01920, %bound11921
  %conflict.rdx1924 = or i1 %found.conflict1922, %conflict.rdx1919
  %bound01925 = icmp ult ptr %scevgep1900, %scevgep1903
  %bound11926 = icmp ult ptr %scevgep1902, %scevgep1901
  %found.conflict1927 = and i1 %bound01925, %bound11926
  %conflict.rdx1929 = or i1 %found.conflict1927, %conflict.rdx1924
  %bound01930 = icmp ult ptr %scevgep1900, %scevgep1905
  %bound11931 = icmp ult ptr %scevgep1904, %scevgep1901
  %found.conflict1932 = and i1 %bound01930, %bound11931
  %709 = or i32 %25, %22
  %710 = icmp slt i32 %709, 0
  %711 = or i1 %found.conflict1932, %710
  %conflict.rdx1935 = or i1 %conflict.rdx1929, %711
  %bound01936 = icmp ult ptr %scevgep1900, %scevgep1907
  %bound11937 = icmp ult ptr %scevgep1906, %scevgep1901
  %found.conflict1938 = and i1 %bound01936, %bound11937
  %conflict.rdx1940 = or i1 %found.conflict1938, %conflict.rdx1935
  %bound01941 = icmp ult ptr %scevgep1900, %scevgep1909
  %bound11942 = icmp ult ptr %scevgep1908, %scevgep1901
  %found.conflict1943 = and i1 %bound01941, %bound11942
  %conflict.rdx1945 = or i1 %found.conflict1943, %conflict.rdx1940
  %n.vec1951 = and i64 %704, -4
  %ind.end1952 = or disjoint i64 %n.vec1951, 2
  %cmp.n1980 = icmp eq i64 %704, %n.vec1951
  br label %.lr.ph1395.split

.lr.ph1395.split.us:                              ; preds = %.lr.ph1395.split.us.preheader, %.lr.ph1395.split.us
  %indvars.iv1710 = phi i64 [ %indvars.iv.next1711, %.lr.ph1395.split.us ], [ 1, %.lr.ph1395.split.us.preheader ]
  %712 = mul nsw i64 %indvars.iv1710, %669
  %713 = mul nsw i64 %indvars.iv1710, %670
  %714 = load float, ptr %5, align 4, !tbaa !20
  %gep2286 = getelementptr %struct.complex, ptr %invariant.gep2285, i64 %713
  %715 = load float, ptr %660, align 4, !tbaa !22
  %716 = fneg float %715
  %gep2288 = getelementptr %struct.complex, ptr %invariant.gep2287, i64 %712
  %717 = load <2 x float>, ptr %gep2286, align 4, !tbaa !9
  %718 = insertelement <2 x float> poison, float %715, i64 0
  %719 = insertelement <2 x float> %718, float %716, i64 1
  %720 = fmul <2 x float> %717, %719
  %721 = shufflevector <2 x float> %720, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %722 = insertelement <2 x float> poison, float %714, i64 0
  %723 = shufflevector <2 x float> %722, <2 x float> poison, <2 x i32> zeroinitializer
  %724 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %723, <2 x float> %717, <2 x float> %721)
  %725 = load <2 x float>, ptr %gep2288, align 4, !tbaa !9
  %726 = fsub <2 x float> %725, %724
  store <2 x float> %726, ptr %gep2288, align 4, !tbaa !9
  %indvars.iv.next1711 = add nuw nsw i64 %indvars.iv1710, 1
  %exitcond1714.not = icmp eq i64 %indvars.iv.next1711, %wide.trip.count1713
  br i1 %exitcond1714.not, label %.loopexit1334, label %.lr.ph1395.split.us, !llvm.loop !31

.lr.ph1395.split:                                 ; preds = %.lr.ph1395.split.preheader, %.loopexit1343
  %indvars.iv1705 = phi i64 [ 1, %.lr.ph1395.split.preheader ], [ %indvars.iv.next1706, %.loopexit1343 ]
  %727 = mul nsw i64 %indvars.iv1705, %669
  %728 = mul nsw i64 %indvars.iv1705, %670
  %729 = load float, ptr %5, align 4, !tbaa !20
  %730 = getelementptr %struct.complex, ptr %24, i64 %728
  %731 = getelementptr i8, ptr %730, i64 8
  %732 = load float, ptr %660, align 4, !tbaa !22
  %733 = fneg float %732
  %gep2284 = getelementptr %struct.complex, ptr %invariant.gep2283, i64 %727
  %734 = load float, ptr %6, align 4, !tbaa !20
  %735 = getelementptr i8, ptr %730, i64 16
  %736 = load float, ptr %661, align 4, !tbaa !22
  %737 = fneg float %736
  %738 = load <2 x float>, ptr %731, align 4, !tbaa !9
  %739 = insertelement <2 x float> poison, float %732, i64 0
  %740 = insertelement <2 x float> %739, float %733, i64 1
  %741 = fmul <2 x float> %738, %740
  %742 = shufflevector <2 x float> %741, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %743 = insertelement <2 x float> poison, float %729, i64 0
  %744 = shufflevector <2 x float> %743, <2 x float> poison, <2 x i32> zeroinitializer
  %745 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %744, <2 x float> %738, <2 x float> %742)
  %746 = load <2 x float>, ptr %gep2284, align 4, !tbaa !9
  %747 = fsub <2 x float> %746, %745
  %748 = load <2 x float>, ptr %735, align 4, !tbaa !9
  %749 = insertelement <2 x float> poison, float %736, i64 0
  %750 = insertelement <2 x float> %749, float %737, i64 1
  %751 = fmul <2 x float> %748, %750
  %752 = shufflevector <2 x float> %751, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %753 = insertelement <2 x float> poison, float %734, i64 0
  %754 = shufflevector <2 x float> %753, <2 x float> poison, <2 x i32> zeroinitializer
  %755 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %754, <2 x float> %748, <2 x float> %752)
  %756 = fsub <2 x float> %747, %755
  store <2 x float> %756, ptr %gep2284, align 4, !tbaa !9
  %757 = load float, ptr %664, align 4, !tbaa !20
  %gep1812 = getelementptr %struct.complex, ptr %invariant.gep1811, i64 %728
  %758 = load float, ptr %665, align 4, !tbaa !22
  %759 = fneg float %758
  %gep1814 = getelementptr %struct.complex, ptr %invariant.gep1813, i64 %727
  %760 = load float, ptr %667, align 4, !tbaa !20
  %gep1816 = getelementptr %struct.complex, ptr %invariant.gep1815, i64 %728
  %761 = load float, ptr %668, align 4, !tbaa !22
  %762 = fneg float %761
  %763 = load <2 x float>, ptr %gep1812, align 4, !tbaa !9
  %764 = insertelement <2 x float> poison, float %758, i64 0
  %765 = insertelement <2 x float> %764, float %759, i64 1
  %766 = fmul <2 x float> %763, %765
  %767 = shufflevector <2 x float> %766, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %768 = insertelement <2 x float> poison, float %757, i64 0
  %769 = shufflevector <2 x float> %768, <2 x float> poison, <2 x i32> zeroinitializer
  %770 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %769, <2 x float> %763, <2 x float> %767)
  %771 = load <2 x float>, ptr %gep1814, align 4, !tbaa !9
  %772 = fsub <2 x float> %771, %770
  %773 = load <2 x float>, ptr %gep1816, align 4, !tbaa !9
  %774 = insertelement <2 x float> poison, float %761, i64 0
  %775 = insertelement <2 x float> %774, float %762, i64 1
  %776 = fmul <2 x float> %773, %775
  %777 = shufflevector <2 x float> %776, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %778 = insertelement <2 x float> poison, float %760, i64 0
  %779 = shufflevector <2 x float> %778, <2 x float> poison, <2 x i32> zeroinitializer
  %780 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %779, <2 x float> %773, <2 x float> %777)
  %781 = fsub <2 x float> %772, %780
  store <2 x float> %781, ptr %gep1814, align 4, !tbaa !9
  br i1 %.not1323.not1367, label %.lr.ph.preheader, label %.loopexit1343

.lr.ph.preheader:                                 ; preds = %.lr.ph1395.split
  %invariant.gep1803 = getelementptr %struct.complex, ptr %24, i64 %728
  %invariant.gep1805 = getelementptr %struct.complex, ptr %27, i64 %727
  %invariant.gep1807 = getelementptr %struct.complex, ptr %24, i64 %728
  %invariant.gep1809 = getelementptr %struct.complex, ptr %24, i64 %728
  %brmerge2316 = select i1 %min.iters.check1948, i1 true, i1 %conflict.rdx1945
  br i1 %brmerge2316, label %.lr.ph.preheader2280, label %vector.body1954

vector.body1954:                                  ; preds = %.lr.ph.preheader, %vector.body1954
  %index1955 = phi i64 [ %index.next1979, %vector.body1954 ], [ 0, %.lr.ph.preheader ]
  %offset.idx1956 = or disjoint i64 %index1955, 2
  %782 = or disjoint i64 %index1955, 1
  %783 = getelementptr %struct.complex, ptr %4, i64 %index1955
  %wide.vec1957 = load <8 x float>, ptr %783, align 4, !tbaa !9
  %strided.vec1958 = shufflevector <8 x float> %wide.vec1957, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1959 = shufflevector <8 x float> %wide.vec1957, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %784 = getelementptr %struct.complex, ptr %invariant.gep1803, i64 %782
  %wide.vec1960 = load <8 x float>, ptr %784, align 4, !tbaa !9
  %strided.vec1961 = shufflevector <8 x float> %wide.vec1960, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1962 = shufflevector <8 x float> %wide.vec1960, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %785 = fneg <4 x float> %strided.vec1959
  %786 = fmul <4 x float> %strided.vec1962, %785
  %787 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec1958, <4 x float> %strided.vec1961, <4 x float> %786)
  %788 = fmul <4 x float> %strided.vec1961, %strided.vec1959
  %789 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec1958, <4 x float> %strided.vec1962, <4 x float> %788)
  %790 = getelementptr %struct.complex, ptr %invariant.gep1805, i64 %offset.idx1956
  %wide.vec1963 = load <8 x float>, ptr %790, align 4, !tbaa !9
  %strided.vec1964 = shufflevector <8 x float> %wide.vec1963, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1965 = shufflevector <8 x float> %wide.vec1963, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %791 = fsub <4 x float> %strided.vec1964, %787
  %792 = fsub <4 x float> %strided.vec1965, %789
  %793 = getelementptr inbounds %struct.complex, ptr %20, i64 %offset.idx1956
  %wide.vec1966 = load <8 x float>, ptr %793, align 4, !tbaa !9
  %strided.vec1967 = shufflevector <8 x float> %wide.vec1966, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1968 = shufflevector <8 x float> %wide.vec1966, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %794 = getelementptr %struct.complex, ptr %invariant.gep1807, i64 %offset.idx1956
  %wide.vec1969 = load <8 x float>, ptr %794, align 4, !tbaa !9
  %strided.vec1970 = shufflevector <8 x float> %wide.vec1969, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1971 = shufflevector <8 x float> %wide.vec1969, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %795 = fneg <4 x float> %strided.vec1968
  %796 = fmul <4 x float> %strided.vec1971, %795
  %797 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec1967, <4 x float> %strided.vec1970, <4 x float> %796)
  %798 = fmul <4 x float> %strided.vec1970, %strided.vec1968
  %799 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec1967, <4 x float> %strided.vec1971, <4 x float> %798)
  %800 = fsub <4 x float> %791, %797
  %801 = fsub <4 x float> %792, %799
  %802 = or disjoint i64 %index1955, 3
  %803 = getelementptr inbounds %struct.complex, ptr %21, i64 %offset.idx1956
  %wide.vec1972 = load <8 x float>, ptr %803, align 4, !tbaa !9
  %strided.vec1973 = shufflevector <8 x float> %wide.vec1972, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1974 = shufflevector <8 x float> %wide.vec1972, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %804 = getelementptr %struct.complex, ptr %invariant.gep1809, i64 %802
  %wide.vec1975 = load <8 x float>, ptr %804, align 4, !tbaa !9
  %strided.vec1976 = shufflevector <8 x float> %wide.vec1975, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1977 = shufflevector <8 x float> %wide.vec1975, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %805 = fneg <4 x float> %strided.vec1974
  %806 = fmul <4 x float> %strided.vec1977, %805
  %807 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec1973, <4 x float> %strided.vec1976, <4 x float> %806)
  %808 = fmul <4 x float> %strided.vec1976, %strided.vec1974
  %809 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec1973, <4 x float> %strided.vec1977, <4 x float> %808)
  %810 = fsub <4 x float> %800, %807
  %811 = fsub <4 x float> %801, %809
  %interleaved.vec1978 = shufflevector <4 x float> %810, <4 x float> %811, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec1978, ptr %790, align 4, !tbaa !9
  %index.next1979 = add nuw i64 %index1955, 4
  %812 = icmp eq i64 %index.next1979, %n.vec1951
  br i1 %812, label %middle.block1946, label %vector.body1954, !llvm.loop !32

middle.block1946:                                 ; preds = %vector.body1954
  br i1 %cmp.n1980, label %.loopexit1343, label %.lr.ph.preheader2280

.lr.ph.preheader2280:                             ; preds = %.lr.ph.preheader, %middle.block1946
  %indvars.iv1700.ph = phi i64 [ 2, %.lr.ph.preheader ], [ %ind.end1952, %middle.block1946 ]
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader2280, %.lr.ph
  %indvars.iv1700 = phi i64 [ %indvars.iv.next1701, %.lr.ph ], [ %indvars.iv1700.ph, %.lr.ph.preheader2280 ]
  %813 = add nsw i64 %indvars.iv1700, -1
  %814 = getelementptr inbounds %struct.complex, ptr %19, i64 %813
  %815 = load float, ptr %814, align 4, !tbaa !20
  %gep1804 = getelementptr %struct.complex, ptr %invariant.gep1803, i64 %813
  %816 = getelementptr inbounds i8, ptr %814, i64 4
  %817 = load float, ptr %816, align 4, !tbaa !22
  %818 = fneg float %817
  %gep1806 = getelementptr %struct.complex, ptr %invariant.gep1805, i64 %indvars.iv1700
  %819 = getelementptr inbounds %struct.complex, ptr %20, i64 %indvars.iv1700
  %820 = load float, ptr %819, align 4, !tbaa !20
  %gep1808 = getelementptr %struct.complex, ptr %invariant.gep1807, i64 %indvars.iv1700
  %821 = getelementptr inbounds i8, ptr %819, i64 4
  %822 = load float, ptr %821, align 4, !tbaa !22
  %823 = fneg float %822
  %indvars.iv.next1701 = add nuw nsw i64 %indvars.iv1700, 1
  %824 = getelementptr inbounds %struct.complex, ptr %21, i64 %indvars.iv1700
  %825 = load float, ptr %824, align 4, !tbaa !20
  %gep1810 = getelementptr %struct.complex, ptr %invariant.gep1809, i64 %indvars.iv.next1701
  %826 = getelementptr inbounds i8, ptr %824, i64 4
  %827 = load float, ptr %826, align 4, !tbaa !22
  %828 = fneg float %827
  %829 = load <2 x float>, ptr %gep1804, align 4, !tbaa !9
  %830 = insertelement <2 x float> poison, float %817, i64 0
  %831 = insertelement <2 x float> %830, float %818, i64 1
  %832 = fmul <2 x float> %829, %831
  %833 = shufflevector <2 x float> %832, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %834 = insertelement <2 x float> poison, float %815, i64 0
  %835 = shufflevector <2 x float> %834, <2 x float> poison, <2 x i32> zeroinitializer
  %836 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %835, <2 x float> %829, <2 x float> %833)
  %837 = load <2 x float>, ptr %gep1806, align 4, !tbaa !9
  %838 = fsub <2 x float> %837, %836
  %839 = load <2 x float>, ptr %gep1808, align 4, !tbaa !9
  %840 = insertelement <2 x float> poison, float %822, i64 0
  %841 = insertelement <2 x float> %840, float %823, i64 1
  %842 = fmul <2 x float> %839, %841
  %843 = shufflevector <2 x float> %842, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %844 = insertelement <2 x float> poison, float %820, i64 0
  %845 = shufflevector <2 x float> %844, <2 x float> poison, <2 x i32> zeroinitializer
  %846 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %845, <2 x float> %839, <2 x float> %843)
  %847 = fsub <2 x float> %838, %846
  %848 = load <2 x float>, ptr %gep1810, align 4, !tbaa !9
  %849 = insertelement <2 x float> poison, float %827, i64 0
  %850 = insertelement <2 x float> %849, float %828, i64 1
  %851 = fmul <2 x float> %848, %850
  %852 = shufflevector <2 x float> %851, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %853 = insertelement <2 x float> poison, float %825, i64 0
  %854 = shufflevector <2 x float> %853, <2 x float> poison, <2 x i32> zeroinitializer
  %855 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %854, <2 x float> %848, <2 x float> %852)
  %856 = fsub <2 x float> %847, %855
  store <2 x float> %856, ptr %gep1806, align 4, !tbaa !9
  %exitcond1704.not = icmp eq i64 %indvars.iv.next1701, %wide.trip.count1703
  br i1 %exitcond1704.not, label %.loopexit1343, label %.lr.ph, !llvm.loop !33

.loopexit1343:                                    ; preds = %.lr.ph, %middle.block1946, %.lr.ph1395.split
  %indvars.iv.next1706 = add nuw nsw i64 %indvars.iv1705, 1
  %exitcond1709.not = icmp eq i64 %indvars.iv.next1706, %wide.trip.count1713
  br i1 %exitcond1709.not, label %.loopexit1334, label %.lr.ph1395.split, !llvm.loop !31

857:                                              ; preds = %654
  %858 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #7
  %.not1316 = icmp eq i32 %858, 0
  br i1 %.not1316, label %1060, label %859

859:                                              ; preds = %857
  %860 = load i32, ptr %2, align 4, !tbaa !5
  %.not13201457 = icmp slt i32 %860, 1
  br i1 %.not13201457, label %.loopexit1334, label %.lr.ph1464

.lr.ph1464:                                       ; preds = %859
  %861 = load i32, ptr %1, align 4, !tbaa !5
  %862 = icmp eq i32 %861, 1
  %863 = getelementptr inbounds i8, ptr %5, i64 4
  %864 = getelementptr inbounds i8, ptr %4, i64 4
  %865 = add nsw i32 %861, -1
  %866 = sext i32 %865 to i64
  %867 = getelementptr inbounds %struct.complex, ptr %21, i64 %866
  %868 = getelementptr inbounds i8, ptr %867, i64 4
  %869 = sext i32 %861 to i64
  %870 = getelementptr inbounds %struct.complex, ptr %20, i64 %869
  %871 = getelementptr inbounds i8, ptr %870, i64 4
  %.not1321.not1433 = icmp sgt i32 %861, 2
  %872 = sext i32 %25 to i64
  %873 = sext i32 %22 to i64
  %874 = add nuw i32 %860, 1
  %wide.trip.count1728 = zext i32 %874 to i64
  br i1 %862, label %.lr.ph1464.split.us.preheader, label %.lr.ph1464.split.preheader

.lr.ph1464.split.us.preheader:                    ; preds = %.lr.ph1464
  %invariant.gep2291 = getelementptr i8, ptr %24, i64 8
  %invariant.gep2293 = getelementptr i8, ptr %27, i64 8
  br label %.lr.ph1464.split.us

.lr.ph1464.split.preheader:                       ; preds = %.lr.ph1464
  %invariant.gep1825 = getelementptr %struct.complex, ptr %24, i64 %866
  %invariant.gep1827 = getelementptr %struct.complex, ptr %27, i64 %869
  %invariant.gep1829 = getelementptr %struct.complex, ptr %24, i64 %869
  %wide.trip.count1718 = zext i32 %861 to i64
  %875 = shl nsw i64 %872, 3
  %876 = shl nsw i64 %26, 3
  %877 = getelementptr i8, ptr %10, i64 %875
  %878 = getelementptr i8, ptr %877, i64 %876
  %scevgep1982 = getelementptr i8, ptr %878, i64 16
  %879 = shl nuw nsw i64 %wide.trip.count1728, 3
  %880 = add nsw i64 %879, -8
  %881 = mul i64 %880, %872
  %882 = shl nuw nsw i64 %wide.trip.count1718, 3
  %883 = getelementptr i8, ptr %10, i64 %881
  %884 = getelementptr i8, ptr %883, i64 %876
  %885 = getelementptr i8, ptr %884, i64 %882
  %scevgep1983 = getelementptr i8, ptr %885, i64 -4
  %886 = getelementptr i8, ptr %6, i64 %882
  %scevgep1984 = getelementptr i8, ptr %886, i64 -20
  %887 = shl nsw i64 %873, 3
  %888 = shl nsw i64 %23, 3
  %889 = getelementptr i8, ptr %7, i64 %887
  %890 = getelementptr i8, ptr %889, i64 %888
  %scevgep1985 = getelementptr i8, ptr %890, i64 8
  %891 = mul i64 %880, %873
  %892 = add i64 %891, %888
  %893 = add i64 %892, %882
  %894 = or disjoint i64 %893, 4
  %scevgep1986 = getelementptr i8, ptr %7, i64 %894
  %scevgep1987 = getelementptr i8, ptr %5, i64 8
  %895 = add nsw i64 %882, -12
  %scevgep1988 = getelementptr i8, ptr %5, i64 %895
  %scevgep1989 = getelementptr i8, ptr %4, i64 8
  %scevgep1990 = getelementptr i8, ptr %4, i64 %895
  %896 = getelementptr i8, ptr %10, i64 %875
  %897 = getelementptr i8, ptr %896, i64 %876
  %scevgep1991 = getelementptr i8, ptr %897, i64 20
  %898 = getelementptr i8, ptr %10, i64 %881
  %899 = getelementptr i8, ptr %898, i64 %876
  %scevgep1992 = getelementptr i8, ptr %899, i64 %882
  %scevgep1993 = getelementptr i8, ptr %6, i64 4
  %900 = getelementptr i8, ptr %6, i64 %882
  %scevgep1994 = getelementptr i8, ptr %900, i64 -16
  %901 = getelementptr i8, ptr %7, i64 %887
  %902 = getelementptr i8, ptr %901, i64 %888
  %scevgep1995 = getelementptr i8, ptr %902, i64 12
  %903 = getelementptr i8, ptr %7, i64 %891
  %904 = getelementptr i8, ptr %903, i64 %888
  %905 = getelementptr i8, ptr %904, i64 %882
  %scevgep1996 = getelementptr i8, ptr %905, i64 8
  %scevgep1997 = getelementptr i8, ptr %5, i64 12
  %906 = add nsw i64 %882, -8
  %scevgep1998 = getelementptr i8, ptr %5, i64 %906
  %scevgep1999 = getelementptr i8, ptr %4, i64 12
  %scevgep2000 = getelementptr i8, ptr %4, i64 %906
  %907 = add nsw i64 %wide.trip.count1718, -2
  %invariant.gep2289 = getelementptr i8, ptr %27, i64 8
  %min.iters.check2044 = icmp ult i64 %907, 4
  %bound02001 = icmp ult ptr %scevgep1982, %scevgep1984
  %bound12002 = icmp ugt ptr %scevgep1983, %6
  %found.conflict2003 = and i1 %bound02001, %bound12002
  %stride.check2004 = icmp slt i32 %25, 0
  %908 = or i1 %found.conflict2003, %stride.check2004
  %bound02005 = icmp ult ptr %scevgep1982, %scevgep1986
  %bound12006 = icmp ult ptr %scevgep1985, %scevgep1983
  %found.conflict2007 = and i1 %bound02005, %bound12006
  %909 = or i32 %25, %22
  %910 = icmp slt i32 %909, 0
  %911 = or i1 %found.conflict2007, %910
  %conflict.rdx2010 = or i1 %908, %911
  %bound02011 = icmp ult ptr %scevgep1982, %scevgep1988
  %bound12012 = icmp ult ptr %scevgep1987, %scevgep1983
  %found.conflict2013 = and i1 %bound02011, %bound12012
  %conflict.rdx2015 = or i1 %found.conflict2013, %conflict.rdx2010
  %bound02016 = icmp ult ptr %scevgep1982, %scevgep1990
  %bound12017 = icmp ult ptr %scevgep1989, %scevgep1983
  %found.conflict2018 = and i1 %bound02016, %bound12017
  %conflict.rdx2020 = or i1 %found.conflict2018, %conflict.rdx2015
  %bound02021 = icmp ult ptr %scevgep1991, %scevgep1994
  %bound12022 = icmp ult ptr %scevgep1993, %scevgep1992
  %found.conflict2023 = and i1 %bound02021, %bound12022
  %conflict.rdx2025 = or i1 %found.conflict2023, %conflict.rdx2020
  %bound02026 = icmp ult ptr %scevgep1991, %scevgep1996
  %bound12027 = icmp ult ptr %scevgep1995, %scevgep1992
  %found.conflict2028 = and i1 %bound02026, %bound12027
  %912 = or i32 %25, %22
  %913 = icmp slt i32 %912, 0
  %914 = or i1 %found.conflict2028, %913
  %conflict.rdx2031 = or i1 %conflict.rdx2025, %914
  %bound02032 = icmp ult ptr %scevgep1991, %scevgep1998
  %bound12033 = icmp ult ptr %scevgep1997, %scevgep1992
  %found.conflict2034 = and i1 %bound02032, %bound12033
  %conflict.rdx2036 = or i1 %found.conflict2034, %conflict.rdx2031
  %bound02037 = icmp ult ptr %scevgep1991, %scevgep2000
  %bound12038 = icmp ult ptr %scevgep1999, %scevgep1992
  %found.conflict2039 = and i1 %bound02037, %bound12038
  %conflict.rdx2041 = or i1 %found.conflict2039, %conflict.rdx2036
  %n.vec2047 = and i64 %907, -4
  %ind.end2048 = or disjoint i64 %n.vec2047, 2
  %cmp.n2076 = icmp eq i64 %907, %n.vec2047
  br label %.lr.ph1464.split

.lr.ph1464.split.us:                              ; preds = %.lr.ph1464.split.us.preheader, %.lr.ph1464.split.us
  %indvars.iv1725 = phi i64 [ %indvars.iv.next1726, %.lr.ph1464.split.us ], [ 1, %.lr.ph1464.split.us.preheader ]
  %915 = mul nsw i64 %indvars.iv1725, %872
  %916 = mul nsw i64 %indvars.iv1725, %873
  %917 = load float, ptr %5, align 4, !tbaa !20
  %gep2292 = getelementptr %struct.complex, ptr %invariant.gep2291, i64 %916
  %918 = load float, ptr %863, align 4, !tbaa !22
  %919 = fneg float %918
  %gep2294 = getelementptr %struct.complex, ptr %invariant.gep2293, i64 %915
  %920 = load <2 x float>, ptr %gep2292, align 4, !tbaa !9
  %921 = insertelement <2 x float> poison, float %918, i64 0
  %922 = insertelement <2 x float> %921, float %919, i64 1
  %923 = fmul <2 x float> %920, %922
  %924 = shufflevector <2 x float> %923, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %925 = insertelement <2 x float> poison, float %917, i64 0
  %926 = shufflevector <2 x float> %925, <2 x float> poison, <2 x i32> zeroinitializer
  %927 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %926, <2 x float> %920, <2 x float> %924)
  %928 = load <2 x float>, ptr %gep2294, align 4, !tbaa !9
  %929 = fsub <2 x float> %928, %927
  store <2 x float> %929, ptr %gep2294, align 4, !tbaa !9
  %indvars.iv.next1726 = add nuw nsw i64 %indvars.iv1725, 1
  %exitcond1729.not = icmp eq i64 %indvars.iv.next1726, %wide.trip.count1728
  br i1 %exitcond1729.not, label %.loopexit1334, label %.lr.ph1464.split.us, !llvm.loop !34

.lr.ph1464.split:                                 ; preds = %.lr.ph1464.split.preheader, %.loopexit1341
  %indvars.iv1720 = phi i64 [ 1, %.lr.ph1464.split.preheader ], [ %indvars.iv.next1721, %.loopexit1341 ]
  %930 = mul nsw i64 %indvars.iv1720, %872
  %931 = mul nsw i64 %indvars.iv1720, %873
  %932 = load float, ptr %5, align 4, !tbaa !20
  %933 = getelementptr %struct.complex, ptr %24, i64 %931
  %934 = getelementptr i8, ptr %933, i64 8
  %935 = load float, ptr %863, align 4, !tbaa !22
  %936 = fneg float %935
  %gep2290 = getelementptr %struct.complex, ptr %invariant.gep2289, i64 %930
  %937 = load float, ptr %4, align 4, !tbaa !20
  %938 = getelementptr i8, ptr %933, i64 16
  %939 = load float, ptr %864, align 4, !tbaa !22
  %940 = fneg float %939
  %941 = load <2 x float>, ptr %934, align 4, !tbaa !9
  %942 = insertelement <2 x float> poison, float %935, i64 0
  %943 = insertelement <2 x float> %942, float %936, i64 1
  %944 = fmul <2 x float> %941, %943
  %945 = shufflevector <2 x float> %944, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %946 = insertelement <2 x float> poison, float %932, i64 0
  %947 = shufflevector <2 x float> %946, <2 x float> poison, <2 x i32> zeroinitializer
  %948 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %947, <2 x float> %941, <2 x float> %945)
  %949 = load <2 x float>, ptr %gep2290, align 4, !tbaa !9
  %950 = fsub <2 x float> %949, %948
  %951 = load <2 x float>, ptr %938, align 4, !tbaa !9
  %952 = insertelement <2 x float> poison, float %939, i64 0
  %953 = insertelement <2 x float> %952, float %940, i64 1
  %954 = fmul <2 x float> %951, %953
  %955 = shufflevector <2 x float> %954, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %956 = insertelement <2 x float> poison, float %937, i64 0
  %957 = shufflevector <2 x float> %956, <2 x float> poison, <2 x i32> zeroinitializer
  %958 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %957, <2 x float> %951, <2 x float> %955)
  %959 = fsub <2 x float> %950, %958
  store <2 x float> %959, ptr %gep2290, align 4, !tbaa !9
  %960 = load float, ptr %867, align 4, !tbaa !20
  %gep1826 = getelementptr %struct.complex, ptr %invariant.gep1825, i64 %931
  %961 = load float, ptr %868, align 4, !tbaa !22
  %962 = fneg float %961
  %gep1828 = getelementptr %struct.complex, ptr %invariant.gep1827, i64 %930
  %963 = load float, ptr %870, align 4, !tbaa !20
  %gep1830 = getelementptr %struct.complex, ptr %invariant.gep1829, i64 %931
  %964 = load float, ptr %871, align 4, !tbaa !22
  %965 = fneg float %964
  %966 = load <2 x float>, ptr %gep1826, align 4, !tbaa !9
  %967 = insertelement <2 x float> poison, float %961, i64 0
  %968 = insertelement <2 x float> %967, float %962, i64 1
  %969 = fmul <2 x float> %966, %968
  %970 = shufflevector <2 x float> %969, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %971 = insertelement <2 x float> poison, float %960, i64 0
  %972 = shufflevector <2 x float> %971, <2 x float> poison, <2 x i32> zeroinitializer
  %973 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %972, <2 x float> %966, <2 x float> %970)
  %974 = load <2 x float>, ptr %gep1828, align 4, !tbaa !9
  %975 = fsub <2 x float> %974, %973
  %976 = load <2 x float>, ptr %gep1830, align 4, !tbaa !9
  %977 = insertelement <2 x float> poison, float %964, i64 0
  %978 = insertelement <2 x float> %977, float %965, i64 1
  %979 = fmul <2 x float> %976, %978
  %980 = shufflevector <2 x float> %979, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %981 = insertelement <2 x float> poison, float %963, i64 0
  %982 = shufflevector <2 x float> %981, <2 x float> poison, <2 x i32> zeroinitializer
  %983 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %982, <2 x float> %976, <2 x float> %980)
  %984 = fsub <2 x float> %975, %983
  store <2 x float> %984, ptr %gep1828, align 4, !tbaa !9
  br i1 %.not1321.not1433, label %.lr.ph1436.preheader, label %.loopexit1341

.lr.ph1436.preheader:                             ; preds = %.lr.ph1464.split
  %invariant.gep1817 = getelementptr %struct.complex, ptr %24, i64 %931
  %invariant.gep1819 = getelementptr %struct.complex, ptr %27, i64 %930
  %invariant.gep1821 = getelementptr %struct.complex, ptr %24, i64 %931
  %invariant.gep1823 = getelementptr %struct.complex, ptr %24, i64 %931
  %brmerge2317 = select i1 %min.iters.check2044, i1 true, i1 %conflict.rdx2041
  br i1 %brmerge2317, label %.lr.ph1436.preheader2277, label %vector.body2050

vector.body2050:                                  ; preds = %.lr.ph1436.preheader, %vector.body2050
  %index2051 = phi i64 [ %index.next2075, %vector.body2050 ], [ 0, %.lr.ph1436.preheader ]
  %offset.idx2052 = or disjoint i64 %index2051, 2
  %985 = or disjoint i64 %index2051, 1
  %986 = getelementptr %struct.complex, ptr %6, i64 %index2051
  %wide.vec2053 = load <8 x float>, ptr %986, align 4, !tbaa !9
  %strided.vec2054 = shufflevector <8 x float> %wide.vec2053, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2055 = shufflevector <8 x float> %wide.vec2053, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %987 = getelementptr %struct.complex, ptr %invariant.gep1817, i64 %985
  %wide.vec2056 = load <8 x float>, ptr %987, align 4, !tbaa !9
  %strided.vec2057 = shufflevector <8 x float> %wide.vec2056, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2058 = shufflevector <8 x float> %wide.vec2056, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %988 = fneg <4 x float> %strided.vec2055
  %989 = fmul <4 x float> %strided.vec2058, %988
  %990 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2054, <4 x float> %strided.vec2057, <4 x float> %989)
  %991 = fmul <4 x float> %strided.vec2057, %strided.vec2055
  %992 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2054, <4 x float> %strided.vec2058, <4 x float> %991)
  %993 = getelementptr %struct.complex, ptr %invariant.gep1819, i64 %offset.idx2052
  %wide.vec2059 = load <8 x float>, ptr %993, align 4, !tbaa !9
  %strided.vec2060 = shufflevector <8 x float> %wide.vec2059, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2061 = shufflevector <8 x float> %wide.vec2059, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %994 = fsub <4 x float> %strided.vec2060, %990
  %995 = fsub <4 x float> %strided.vec2061, %992
  %996 = getelementptr inbounds %struct.complex, ptr %20, i64 %offset.idx2052
  %wide.vec2062 = load <8 x float>, ptr %996, align 4, !tbaa !9
  %strided.vec2063 = shufflevector <8 x float> %wide.vec2062, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2064 = shufflevector <8 x float> %wide.vec2062, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %997 = getelementptr %struct.complex, ptr %invariant.gep1821, i64 %offset.idx2052
  %wide.vec2065 = load <8 x float>, ptr %997, align 4, !tbaa !9
  %strided.vec2066 = shufflevector <8 x float> %wide.vec2065, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2067 = shufflevector <8 x float> %wide.vec2065, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %998 = fneg <4 x float> %strided.vec2064
  %999 = fmul <4 x float> %strided.vec2067, %998
  %1000 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2063, <4 x float> %strided.vec2066, <4 x float> %999)
  %1001 = fmul <4 x float> %strided.vec2066, %strided.vec2064
  %1002 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2063, <4 x float> %strided.vec2067, <4 x float> %1001)
  %1003 = fsub <4 x float> %994, %1000
  %1004 = fsub <4 x float> %995, %1002
  %1005 = or disjoint i64 %index2051, 3
  %1006 = getelementptr inbounds %struct.complex, ptr %19, i64 %offset.idx2052
  %wide.vec2068 = load <8 x float>, ptr %1006, align 4, !tbaa !9
  %strided.vec2069 = shufflevector <8 x float> %wide.vec2068, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2070 = shufflevector <8 x float> %wide.vec2068, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %1007 = getelementptr %struct.complex, ptr %invariant.gep1823, i64 %1005
  %wide.vec2071 = load <8 x float>, ptr %1007, align 4, !tbaa !9
  %strided.vec2072 = shufflevector <8 x float> %wide.vec2071, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec2073 = shufflevector <8 x float> %wide.vec2071, <8 x float> poison, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %1008 = fneg <4 x float> %strided.vec2070
  %1009 = fmul <4 x float> %strided.vec2073, %1008
  %1010 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2069, <4 x float> %strided.vec2072, <4 x float> %1009)
  %1011 = fmul <4 x float> %strided.vec2072, %strided.vec2070
  %1012 = tail call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %strided.vec2069, <4 x float> %strided.vec2073, <4 x float> %1011)
  %1013 = fsub <4 x float> %1003, %1010
  %1014 = fsub <4 x float> %1004, %1012
  %interleaved.vec2074 = shufflevector <4 x float> %1013, <4 x float> %1014, <8 x i32> <i32 0, i32 4, i32 1, i32 5, i32 2, i32 6, i32 3, i32 7>
  store <8 x float> %interleaved.vec2074, ptr %993, align 4, !tbaa !9
  %index.next2075 = add nuw i64 %index2051, 4
  %1015 = icmp eq i64 %index.next2075, %n.vec2047
  br i1 %1015, label %middle.block2042, label %vector.body2050, !llvm.loop !35

middle.block2042:                                 ; preds = %vector.body2050
  br i1 %cmp.n2076, label %.loopexit1341, label %.lr.ph1436.preheader2277

.lr.ph1436.preheader2277:                         ; preds = %.lr.ph1436.preheader, %middle.block2042
  %indvars.iv1715.ph = phi i64 [ 2, %.lr.ph1436.preheader ], [ %ind.end2048, %middle.block2042 ]
  br label %.lr.ph1436

.lr.ph1436:                                       ; preds = %.lr.ph1436.preheader2277, %.lr.ph1436
  %indvars.iv1715 = phi i64 [ %indvars.iv.next1716, %.lr.ph1436 ], [ %indvars.iv1715.ph, %.lr.ph1436.preheader2277 ]
  %1016 = add nsw i64 %indvars.iv1715, -1
  %1017 = getelementptr inbounds %struct.complex, ptr %21, i64 %1016
  %1018 = load float, ptr %1017, align 4, !tbaa !20
  %gep1818 = getelementptr %struct.complex, ptr %invariant.gep1817, i64 %1016
  %1019 = getelementptr inbounds i8, ptr %1017, i64 4
  %1020 = load float, ptr %1019, align 4, !tbaa !22
  %1021 = fneg float %1020
  %gep1820 = getelementptr %struct.complex, ptr %invariant.gep1819, i64 %indvars.iv1715
  %1022 = getelementptr inbounds %struct.complex, ptr %20, i64 %indvars.iv1715
  %1023 = load float, ptr %1022, align 4, !tbaa !20
  %gep1822 = getelementptr %struct.complex, ptr %invariant.gep1821, i64 %indvars.iv1715
  %1024 = getelementptr inbounds i8, ptr %1022, i64 4
  %1025 = load float, ptr %1024, align 4, !tbaa !22
  %1026 = fneg float %1025
  %indvars.iv.next1716 = add nuw nsw i64 %indvars.iv1715, 1
  %1027 = getelementptr inbounds %struct.complex, ptr %19, i64 %indvars.iv1715
  %1028 = load float, ptr %1027, align 4, !tbaa !20
  %gep1824 = getelementptr %struct.complex, ptr %invariant.gep1823, i64 %indvars.iv.next1716
  %1029 = getelementptr inbounds i8, ptr %1027, i64 4
  %1030 = load float, ptr %1029, align 4, !tbaa !22
  %1031 = fneg float %1030
  %1032 = load <2 x float>, ptr %gep1818, align 4, !tbaa !9
  %1033 = insertelement <2 x float> poison, float %1020, i64 0
  %1034 = insertelement <2 x float> %1033, float %1021, i64 1
  %1035 = fmul <2 x float> %1032, %1034
  %1036 = shufflevector <2 x float> %1035, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1037 = insertelement <2 x float> poison, float %1018, i64 0
  %1038 = shufflevector <2 x float> %1037, <2 x float> poison, <2 x i32> zeroinitializer
  %1039 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1038, <2 x float> %1032, <2 x float> %1036)
  %1040 = load <2 x float>, ptr %gep1820, align 4, !tbaa !9
  %1041 = fsub <2 x float> %1040, %1039
  %1042 = load <2 x float>, ptr %gep1822, align 4, !tbaa !9
  %1043 = insertelement <2 x float> poison, float %1025, i64 0
  %1044 = insertelement <2 x float> %1043, float %1026, i64 1
  %1045 = fmul <2 x float> %1042, %1044
  %1046 = shufflevector <2 x float> %1045, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1047 = insertelement <2 x float> poison, float %1023, i64 0
  %1048 = shufflevector <2 x float> %1047, <2 x float> poison, <2 x i32> zeroinitializer
  %1049 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1048, <2 x float> %1042, <2 x float> %1046)
  %1050 = fsub <2 x float> %1041, %1049
  %1051 = load <2 x float>, ptr %gep1824, align 4, !tbaa !9
  %1052 = insertelement <2 x float> poison, float %1030, i64 0
  %1053 = insertelement <2 x float> %1052, float %1031, i64 1
  %1054 = fmul <2 x float> %1051, %1053
  %1055 = shufflevector <2 x float> %1054, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1056 = insertelement <2 x float> poison, float %1028, i64 0
  %1057 = shufflevector <2 x float> %1056, <2 x float> poison, <2 x i32> zeroinitializer
  %1058 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1057, <2 x float> %1051, <2 x float> %1055)
  %1059 = fsub <2 x float> %1050, %1058
  store <2 x float> %1059, ptr %gep1820, align 4, !tbaa !9
  %exitcond1719.not = icmp eq i64 %indvars.iv.next1716, %wide.trip.count1718
  br i1 %exitcond1719.not, label %.loopexit1341, label %.lr.ph1436, !llvm.loop !36

.loopexit1341:                                    ; preds = %.lr.ph1436, %middle.block2042, %.lr.ph1464.split
  %indvars.iv.next1721 = add nuw nsw i64 %indvars.iv1720, 1
  %exitcond1724.not = icmp eq i64 %indvars.iv.next1721, %wide.trip.count1728
  br i1 %exitcond1724.not, label %.loopexit1334, label %.lr.ph1464.split, !llvm.loop !34

1060:                                             ; preds = %857
  %1061 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #7
  %.not1317 = icmp eq i32 %1061, 0
  br i1 %.not1317, label %.loopexit1334, label %1062

1062:                                             ; preds = %1060
  %1063 = load i32, ptr %2, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %6, i64 -16
  %.not13181495 = icmp slt i32 %1063, 1
  br i1 %.not13181495, label %.loopexit1334, label %.lr.ph1498

.lr.ph1498:                                       ; preds = %1062
  %1064 = getelementptr inbounds i8, ptr %14, i64 4
  %1065 = getelementptr inbounds i8, ptr %13, i64 4
  %1066 = getelementptr inbounds i8, ptr %16, i64 4
  %1067 = getelementptr inbounds i8, ptr %15, i64 4
  %1068 = getelementptr inbounds i8, ptr %17, i64 4
  %1069 = getelementptr inbounds i8, ptr %18, i64 4
  %1070 = sext i32 %25 to i64
  %1071 = sext i32 %22 to i64
  %1072 = add nuw i32 %1063, 1
  %wide.trip.count1738 = zext i32 %1072 to i64
  %invariant.gep2295 = getelementptr i8, ptr %27, i64 8
  %invariant.gep2297 = getelementptr i8, ptr %27, i64 8
  br label %1073

1073:                                             ; preds = %.lr.ph1498, %.loopexit1339
  %indvars.iv1735 = phi i64 [ 1, %.lr.ph1498 ], [ %indvars.iv.next1736, %.loopexit1339 ]
  %1074 = load i32, ptr %1, align 4, !tbaa !5
  %1075 = icmp eq i32 %1074, 1
  %1076 = mul nsw i64 %indvars.iv1735, %1070
  %1077 = call <2 x float> @Cf(ptr noundef %5)
  %.sroa.07.0.vec.extract = extractelement <2 x float> %1077, i64 0
  %.sroa.07.4.vec.extract = extractelement <2 x float> %1077, i64 1
  %1078 = fneg float %.sroa.07.4.vec.extract
  %1079 = mul nsw i64 %indvars.iv1735, %1071
  %1080 = getelementptr %struct.complex, ptr %24, i64 %1079
  %1081 = getelementptr i8, ptr %1080, i64 8
  br i1 %1075, label %1082, label %1098

1082:                                             ; preds = %1073
  %1083 = call ptr @_pCf(ptr noundef nonnull %13)
  %1084 = getelementptr inbounds i8, ptr %1083, i64 4
  store float %.sroa.07.0.vec.extract, ptr %1083, align 4
  store float %1078, ptr %1084, align 4
  %1085 = load float, ptr %13, align 8, !tbaa !20
  %1086 = load float, ptr %1065, align 4, !tbaa !22
  %1087 = fneg float %1086
  %gep2298 = getelementptr %struct.complex, ptr %invariant.gep2297, i64 %1076
  %1088 = load <2 x float>, ptr %1081, align 4, !tbaa !9
  %1089 = insertelement <2 x float> poison, float %1086, i64 0
  %1090 = insertelement <2 x float> %1089, float %1087, i64 1
  %1091 = fmul <2 x float> %1088, %1090
  %1092 = shufflevector <2 x float> %1091, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1093 = insertelement <2 x float> poison, float %1085, i64 0
  %1094 = shufflevector <2 x float> %1093, <2 x float> poison, <2 x i32> zeroinitializer
  %1095 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1094, <2 x float> %1088, <2 x float> %1092)
  %1096 = load <2 x float>, ptr %gep2298, align 4, !tbaa !9
  %1097 = fsub <2 x float> %1096, %1095
  store <2 x float> %1097, ptr %gep2298, align 4, !tbaa !9
  br label %.loopexit1339

1098:                                             ; preds = %1073
  %1099 = call ptr @_pCf(ptr noundef nonnull %14)
  %1100 = getelementptr inbounds i8, ptr %1099, i64 4
  store float %.sroa.07.0.vec.extract, ptr %1099, align 4
  store float %1078, ptr %1100, align 4
  %1101 = load float, ptr %14, align 8, !tbaa !20
  %1102 = load float, ptr %1064, align 4, !tbaa !22
  %1103 = fneg float %1102
  %1104 = load <2 x float>, ptr %1081, align 4, !tbaa !9
  %1105 = insertelement <2 x float> poison, float %1102, i64 0
  %1106 = insertelement <2 x float> %1105, float %1103, i64 1
  %1107 = fmul <2 x float> %1104, %1106
  %1108 = shufflevector <2 x float> %1107, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1109 = insertelement <2 x float> poison, float %1101, i64 0
  %1110 = shufflevector <2 x float> %1109, <2 x float> poison, <2 x i32> zeroinitializer
  %1111 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1110, <2 x float> %1104, <2 x float> %1108)
  store <2 x float> %1111, ptr %13, align 8, !tbaa !9
  %gep2296 = getelementptr %struct.complex, ptr %invariant.gep2295, i64 %1076
  %1112 = getelementptr i8, ptr %1080, i64 16
  %1113 = load <2 x float>, ptr %gep2296, align 4, !tbaa !9
  %1114 = fsub <2 x float> %1113, %1111
  %1115 = call <2 x float> @Cf(ptr noundef %4)
  %.sroa.05.0.vec.extract = extractelement <2 x float> %1115, i64 0
  %.sroa.05.4.vec.extract = extractelement <2 x float> %1115, i64 1
  %1116 = fneg float %.sroa.05.4.vec.extract
  %1117 = call ptr @_pCf(ptr noundef nonnull %16)
  %1118 = getelementptr inbounds i8, ptr %1117, i64 4
  store float %.sroa.05.0.vec.extract, ptr %1117, align 4
  store float %1116, ptr %1118, align 4
  %1119 = load float, ptr %16, align 8, !tbaa !20
  %1120 = load float, ptr %1066, align 4, !tbaa !22
  %1121 = fneg float %1120
  %1122 = load <2 x float>, ptr %1112, align 4, !tbaa !9
  %1123 = insertelement <2 x float> poison, float %1120, i64 0
  %1124 = insertelement <2 x float> %1123, float %1121, i64 1
  %1125 = fmul <2 x float> %1122, %1124
  %1126 = shufflevector <2 x float> %1125, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1127 = insertelement <2 x float> poison, float %1119, i64 0
  %1128 = shufflevector <2 x float> %1127, <2 x float> poison, <2 x i32> zeroinitializer
  %1129 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1128, <2 x float> %1122, <2 x float> %1126)
  store <2 x float> %1129, ptr %15, align 8, !tbaa !9
  %1130 = fsub <2 x float> %1114, %1129
  store <2 x float> %1130, ptr %gep2296, align 4, !tbaa !9
  %1131 = load i32, ptr %1, align 4, !tbaa !5
  %1132 = sext i32 %1131 to i64
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %1132
  %1133 = call <2 x float> @Cf(ptr noundef %gep)
  %.sroa.04.0.vec.extract = extractelement <2 x float> %1133, i64 0
  %.sroa.04.4.vec.extract = extractelement <2 x float> %1133, i64 1
  %1134 = fneg float %.sroa.04.4.vec.extract
  %1135 = call ptr @_pCf(ptr noundef nonnull %14)
  %1136 = getelementptr inbounds i8, ptr %1135, i64 4
  store float %.sroa.04.0.vec.extract, ptr %1135, align 4
  store float %1134, ptr %1136, align 4
  %1137 = load i32, ptr %1, align 4, !tbaa !5
  %1138 = trunc nsw i64 %1079 to i32
  %1139 = add i32 %1138, -1
  %1140 = add i32 %1139, %1137
  %1141 = load float, ptr %14, align 8, !tbaa !20
  %1142 = sext i32 %1140 to i64
  %1143 = getelementptr inbounds %struct.complex, ptr %24, i64 %1142
  %1144 = load float, ptr %1064, align 4, !tbaa !22
  %1145 = fneg float %1144
  %1146 = load <2 x float>, ptr %1143, align 4, !tbaa !9
  %1147 = insertelement <2 x float> poison, float %1144, i64 0
  %1148 = insertelement <2 x float> %1147, float %1145, i64 1
  %1149 = fmul <2 x float> %1146, %1148
  %1150 = shufflevector <2 x float> %1149, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1151 = insertelement <2 x float> poison, float %1141, i64 0
  %1152 = shufflevector <2 x float> %1151, <2 x float> poison, <2 x i32> zeroinitializer
  %1153 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1152, <2 x float> %1146, <2 x float> %1150)
  store <2 x float> %1153, ptr %13, align 8, !tbaa !9
  %1154 = getelementptr %struct.complex, ptr %27, i64 %1076
  %1155 = getelementptr %struct.complex, ptr %1154, i64 %1132
  %1156 = sext i32 %1137 to i64
  %1157 = getelementptr inbounds %struct.complex, ptr %20, i64 %1156
  %1158 = getelementptr %struct.complex, ptr %24, i64 %1079
  %1159 = load <2 x float>, ptr %1155, align 4, !tbaa !9
  %1160 = fsub <2 x float> %1159, %1153
  %1161 = call <2 x float> @Cf(ptr noundef nonnull %1157)
  %.sroa.03.0.vec.extract = extractelement <2 x float> %1161, i64 0
  %.sroa.03.4.vec.extract = extractelement <2 x float> %1161, i64 1
  %1162 = fneg float %.sroa.03.4.vec.extract
  %1163 = call ptr @_pCf(ptr noundef nonnull %16)
  %1164 = getelementptr inbounds i8, ptr %1163, i64 4
  store float %.sroa.03.0.vec.extract, ptr %1163, align 4
  store float %1162, ptr %1164, align 4
  %1165 = load i32, ptr %1, align 4, !tbaa !5
  %1166 = sext i32 %1165 to i64
  %1167 = load float, ptr %16, align 8, !tbaa !20
  %1168 = getelementptr %struct.complex, ptr %1158, i64 %1166
  %1169 = load float, ptr %1066, align 4, !tbaa !22
  %1170 = fneg float %1169
  %1171 = load <2 x float>, ptr %1168, align 4, !tbaa !9
  %1172 = insertelement <2 x float> poison, float %1169, i64 0
  %1173 = insertelement <2 x float> %1172, float %1170, i64 1
  %1174 = fmul <2 x float> %1171, %1173
  %1175 = shufflevector <2 x float> %1174, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1176 = insertelement <2 x float> poison, float %1167, i64 0
  %1177 = shufflevector <2 x float> %1176, <2 x float> poison, <2 x i32> zeroinitializer
  %1178 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1177, <2 x float> %1171, <2 x float> %1175)
  store <2 x float> %1178, ptr %15, align 8, !tbaa !9
  %1179 = fsub <2 x float> %1160, %1178
  store <2 x float> %1179, ptr %1155, align 4, !tbaa !9
  %.not1319.not1491 = icmp sgt i32 %1165, 2
  br i1 %.not1319.not1491, label %.lr.ph1494.preheader, label %.loopexit1339

.lr.ph1494.preheader:                             ; preds = %1098
  %wide.trip.count1733 = zext nneg i32 %1165 to i64
  %invariant.gep1831 = getelementptr %struct.complex, ptr %24, i64 %1079
  %invariant.gep1833 = getelementptr %struct.complex, ptr %27, i64 %1076
  %invariant.gep1835 = getelementptr %struct.complex, ptr %24, i64 %1079
  %invariant.gep1837 = getelementptr %struct.complex, ptr %24, i64 %1079
  br label %.lr.ph1494

.lr.ph1494:                                       ; preds = %.lr.ph1494.preheader, %.lr.ph1494
  %indvars.iv1730 = phi i64 [ 2, %.lr.ph1494.preheader ], [ %indvars.iv.next1731, %.lr.ph1494 ]
  %1180 = add nsw i64 %indvars.iv1730, -1
  %1181 = getelementptr inbounds %struct.complex, ptr %21, i64 %1180
  %1182 = call <2 x float> @Cf(ptr noundef nonnull %1181)
  %.sroa.02.0.vec.extract = extractelement <2 x float> %1182, i64 0
  %.sroa.02.4.vec.extract = extractelement <2 x float> %1182, i64 1
  %1183 = fneg float %.sroa.02.4.vec.extract
  %1184 = call ptr @_pCf(ptr noundef nonnull %15)
  %1185 = getelementptr inbounds i8, ptr %1184, i64 4
  store float %.sroa.02.0.vec.extract, ptr %1184, align 4
  store float %1183, ptr %1185, align 4
  %1186 = load float, ptr %15, align 8, !tbaa !20
  %gep1832 = getelementptr %struct.complex, ptr %invariant.gep1831, i64 %1180
  %1187 = load float, ptr %1067, align 4, !tbaa !22
  %1188 = fneg float %1187
  %1189 = load <2 x float>, ptr %gep1832, align 4, !tbaa !9
  %1190 = insertelement <2 x float> poison, float %1187, i64 0
  %1191 = insertelement <2 x float> %1190, float %1188, i64 1
  %1192 = fmul <2 x float> %1189, %1191
  %1193 = shufflevector <2 x float> %1192, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1194 = insertelement <2 x float> poison, float %1186, i64 0
  %1195 = shufflevector <2 x float> %1194, <2 x float> poison, <2 x i32> zeroinitializer
  %1196 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1195, <2 x float> %1189, <2 x float> %1193)
  store <2 x float> %1196, ptr %14, align 8, !tbaa !9
  %gep1834 = getelementptr %struct.complex, ptr %invariant.gep1833, i64 %indvars.iv1730
  %1197 = load <2 x float>, ptr %gep1834, align 4, !tbaa !9
  %1198 = fsub <2 x float> %1197, %1196
  store <2 x float> %1198, ptr %13, align 8, !tbaa !9
  %1199 = getelementptr inbounds %struct.complex, ptr %20, i64 %indvars.iv1730
  %1200 = call <2 x float> @Cf(ptr noundef nonnull %1199)
  %.sroa.01.0.vec.extract = extractelement <2 x float> %1200, i64 0
  %.sroa.01.4.vec.extract = extractelement <2 x float> %1200, i64 1
  %1201 = fneg float %.sroa.01.4.vec.extract
  %1202 = call ptr @_pCf(ptr noundef nonnull %17)
  %1203 = getelementptr inbounds i8, ptr %1202, i64 4
  store float %.sroa.01.0.vec.extract, ptr %1202, align 4
  store float %1201, ptr %1203, align 4
  %1204 = load float, ptr %17, align 4, !tbaa !20
  %gep1836 = getelementptr %struct.complex, ptr %invariant.gep1835, i64 %indvars.iv1730
  %1205 = load float, ptr %1068, align 4, !tbaa !22
  %1206 = fneg float %1205
  %1207 = load <2 x float>, ptr %gep1836, align 4, !tbaa !9
  %1208 = insertelement <2 x float> poison, float %1205, i64 0
  %1209 = insertelement <2 x float> %1208, float %1206, i64 1
  %1210 = fmul <2 x float> %1207, %1209
  %1211 = shufflevector <2 x float> %1210, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1212 = insertelement <2 x float> poison, float %1204, i64 0
  %1213 = shufflevector <2 x float> %1212, <2 x float> poison, <2 x i32> zeroinitializer
  %1214 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1213, <2 x float> %1207, <2 x float> %1211)
  store <2 x float> %1214, ptr %16, align 8, !tbaa !9
  %1215 = getelementptr inbounds %struct.complex, ptr %19, i64 %indvars.iv1730
  %indvars.iv.next1731 = add nuw nsw i64 %indvars.iv1730, 1
  %gep1838 = getelementptr %struct.complex, ptr %invariant.gep1837, i64 %indvars.iv.next1731
  %1216 = load <2 x float>, ptr %13, align 8, !tbaa !9
  %1217 = fsub <2 x float> %1216, %1214
  %1218 = call <2 x float> @Cf(ptr noundef nonnull %1215)
  %.sroa.0.0.vec.extract = extractelement <2 x float> %1218, i64 0
  %.sroa.0.4.vec.extract = extractelement <2 x float> %1218, i64 1
  %1219 = fneg float %.sroa.0.4.vec.extract
  %1220 = call ptr @_pCf(ptr noundef nonnull %18)
  %1221 = getelementptr inbounds i8, ptr %1220, i64 4
  store float %.sroa.0.0.vec.extract, ptr %1220, align 4
  store float %1219, ptr %1221, align 4
  %1222 = load float, ptr %18, align 4, !tbaa !20
  %1223 = load float, ptr %1069, align 4, !tbaa !22
  %1224 = load <2 x float>, ptr %gep1838, align 4, !tbaa !9
  %1225 = fneg float %1223
  %1226 = insertelement <2 x float> poison, float %1223, i64 0
  %1227 = insertelement <2 x float> %1226, float %1225, i64 1
  %1228 = fmul <2 x float> %1224, %1227
  %1229 = shufflevector <2 x float> %1228, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1230 = insertelement <2 x float> poison, float %1222, i64 0
  %1231 = shufflevector <2 x float> %1230, <2 x float> poison, <2 x i32> zeroinitializer
  %1232 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %1231, <2 x float> %1224, <2 x float> %1229)
  %1233 = fsub <2 x float> %1217, %1232
  store <2 x float> %1233, ptr %gep1834, align 4, !tbaa !9
  %exitcond1734.not = icmp eq i64 %indvars.iv.next1731, %wide.trip.count1733
  br i1 %exitcond1734.not, label %.loopexit1339, label %.lr.ph1494, !llvm.loop !37

.loopexit1339:                                    ; preds = %.lr.ph1494, %1098, %1082
  %indvars.iv.next1736 = add nuw nsw i64 %indvars.iv1735, 1
  %exitcond1739.not = icmp eq i64 %indvars.iv.next1736, %wide.trip.count1738
  br i1 %exitcond1739.not, label %.loopexit1334, label %1073, !llvm.loop !38

.loopexit1334:                                    ; preds = %.loopexit1343, %.lr.ph1395.split.us, %.loopexit1341, %.lr.ph1464.split.us, %.loopexit1339, %.loopexit1337, %.lr.ph1542.split.us, %.loopexit1335, %.lr.ph1612.split.us, %.loopexit, %656, %859, %74, %277, %1062, %480, %478, %1060, %652, %12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  ret void
}

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

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

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

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

; 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 nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

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

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

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

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

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


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